概述:
Java Application Service ,Java应用程序服务,简称JAS,JAS是专门用来运行Java应用程序的一个组件,其唯一的使命就是运行Java应用程序。平常我们用Java做一个网站,其实是一个web应用程序,一般放在tomcat上运行,我们配置web.xml文件等,都是tomcat规定你要这样子配置才能够允许在tomcat中运行,这个时候,tomcat充当的就是一个web应用程序运行容器的一个角色。然而在很多时候,我们会编写一些后台的服务,守护进程需要不断运行的程序往往找不到合适的方法让程序运行。在window上,可以在命令行上使用java命令将程序运行,但是这会弹出一个黑框,一旦黑框关闭,程序也自动关闭了。在Linux上虽然可以让其后台运行,但是一旦程序运行出错,也就关闭了。出于一个热爱编程的开发者的身份来考虑,总希望自己的程序能够得到统一的管理,也就是:编写一个程序运行的内核,以后只需要实现某些接口或者按照某些规则开发即可方便完成应用程序的开发!
JAS优点:
基于此服务的应用程序可以快速开发部署,方便对各组件的管理。
基于此服务可以避免程序运行尴尬现象
基于此服务可以开发大型后台服务
JAS引擎架构:
JAS部署目录:
F:/Root /bin 服务启动,关闭脚本,JNI应用程序存放处
/conf 服务配置文件存放处
/lib 服务内核类库
/logs 服务运行日志
/app 外部服务存放目录
JAS部署内核Jar包:
bootstrap.jar (JAS启动类库,初始化JAS的类加载库)
kernel-version.jar (JAS内核类库,version是内核版本)
JAS的类装载体系:
JAS类加载的设计是为了将应用程序隔离开来,一来保护JAS内核,二来隔离多个App服务,解决类重复加载和类冲突问题!
JAS生命周期
JAS使用事件驱动机制,内核服务生命周期由LifeCycle,LifeCycleListener,LifeCycleEvent进行管理,提供一个LifeCycleSupport类。
JAS内核服务开发
方式1:继承cn.std.mos.service.StanderService类,覆盖public void serv() throws SecurityException 方法,服务运行业务就在serv方法内实现,如果需要不断运行服务,则需要使用while(started)循环,循环控制条件started,是父类StanderService属性
方式2:参考cn.std.mos.service.StanderService类,实现LifecycleListener,Service接口,相对来说,第一种方式比较方便
服务启动:服务启动是根据conf目录下的配置文件kernel.xml配置来指定,
每开发一个服务,只需要添加一个节点
其中<name>节点是系统服务类名,需要全称,包括包名<type>节点,需要一个值AUTO_START,此值为自动启动<name>节点上指定的服务,其他值则不启动服务。
至此,一个系统服务开发完毕。
JAS外部服务开发
外部服务是跟内核服务隔离的服务,每个服务是一个独立的项目,可加载项目依赖的jar包,并且每个服务之间相互隔离,互不影响。
JAS外部服务放在app目录下,此目录可以在conf的mos.properties配置文件下配置,配置key值是service.dir,采用相对路径配置,相对于JAS系统工作目录,也就是bin文件夹所在的目录。
每一个外部服务的结构都采用这种结构
app /serv /conf 服务的配置文件
/lib 服务所需要的jar包
/logs 服务日志存放处
/serv.xml 服务主配置文件
/serv.xml配置文件主要配置两个值
JAS在启动外部服务的时候会自动去/lib目录下加载jar包,然后找到<class>节点下的入口类,生成一个实例,调用<method>节点下的入口方法,程序开始运行。
服务框架就说到此处,在后续的日子会继续完善,敬请关注,哈哈哈....
附件:src.rar 包含(bootstrap.jar 源码 Kernel-version.jar 源码) 源码发布方式直接是EClipse项目
mos.rar 此包是在window上部署为服务运行,执行bin目录下的相关脚本即可,配置文件在conf目录下。
相关推荐
标题“30种java技术框架图”与描述“这个介绍的比较全面,内容比较详细 对初学者有很大...由于文档内容是通过OCR扫描得到,可能会存在识别错误,读者在学习时需要结合实际的Java框架知识,对发现的问题进行纠正和理解。
Java技术框架主要包括Spring框架、JavaWeb框架、SpringBoot、SpringCloud以及JSF等组件,每个组件都有其特定的应用场景和技术要点。 1. Spring框架:Spring是Java技术框架中最核心的一个组件,其提供了全面的编程和...
6. **JMS(Java Message Service)**:JMS是Java消息服务规范,允许应用之间进行异步通信。通过消息队列,应用可以解耦,提高系统伸缩性和可靠性。 7. **CDI(Contexts and Dependency Injection)**:CDI是Java EE...
首先,Android框架是一个基于Java的移动应用开发平台,它提供了丰富的APIs和工具,让开发者可以创建功能丰富的移动应用程序。Android框架的核心组件包括Activity、Service、BroadcastReceiver、ContentProvider和...
Java Web技术是互联网应用程序开发的核心之一,它涵盖了各种技术和框架,用于构建动态、交互式的Web应用程序。在这个高级应用的主题中,我们主要探讨的是Java Web技术的深入理解和实践,由知名软件培训专家张孝祥...
标题中的"demoApplication_java_"似乎指的是一个Java编程项目,很可能是一个使用Spring框架构建的应用程序。在Java开发领域,Spring框架是极为流行的一个开源框架,它主要用于构建企业级的Web应用程序。Spring提供了...
Java EE 6是Java平台上用于构建分布式、多层架构的服务器端应用的框架,它提供了丰富的API和服务,以支持各种企业功能,如数据访问、事务处理、安全性和并发控制。 在本教程中,你将学习到以下关键知识点: 1. **...
Java RabbitMQ通用实现框架是一种基于RabbitMQ消息队列的解决方案,它整合了SpringBoot框架,为开发者提供了方便快捷地处理消息传递的能力。RabbitMQ是用Erlang语言开发的开源消息代理软件,它遵循Advanced Message ...
它提供了一系列的API和服务,包括Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等,使得开发者能够方便地开发、部署和管理Web应用、企业应用和后端服务。 1. **Servlet**: Servlet是...
综上所述,这个"java框架配置文件收集"涵盖了开发Java Web应用时常用的各个层面,包括服务层、持久层、表现层框架的配置,以及项目构建管理和日志记录。理解和掌握这些配置文件的内容,能够帮助开发者更有效地搭建和...
Jersey 是一个基于 Java 规范的 REST 风格 Web Service 开发框架,旨在帮助开发者快速构建 REST 风格 Web 服务。Jersey 是 JAX-RS(Java API for RESTful Web Services)的参考实现,已经达到了 0.7 版本。Jersey 的...
3. **安全性设置**:WebSphere提供了强大的安全框架,支持角色-基线访问控制(Role-Based Access Control, RBAC)、安全管理策略、数字证书、SSL加密和JAAS(Java Authentication and Authorization Service)。...
本文概括了基于Java EE的SOA服务模型及其应用的主要内容,包括SOA框架的组成元素、SOA服务模型的设计和实现、基于Java EE平台的SOA服务模型的应用、SOA服务模型的优点和前景等。 SOA框架 SOA(Service-Oriented ...
Java Web Service 是一种基于WSDL(Web服务描述语言)和SOAP(简单对象访问协议)的规范,用于构建可互操作的、平台独立的网络服务。当你将一个Java Web Service项目打包成WAR(Web Archive)文件时,这通常意味着你...
Java Web Service引擎Xfire是一个用于构建和消费Web服务的开源框架,它简化了在Java平台上创建和使用Web服务的过程。这个图文教程将指导你如何使用Xfire来实现一个简单的Web服务。 首先,你需要在你的Web项目中添加...