精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-12-05
概述: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使用事件驱动机制,内核服务生命周期由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配置来指定,
至此,一个系统服务开发完毕。
JAS外部服务开发外部服务是跟内核服务隔离的服务,每个服务是一个独立的项目,可加载项目依赖的jar包,并且每个服务之间相互隔离,互不影响。 JAS外部服务放在app目录下,此目录可以在conf的mos.properties配置文件下配置,配置key值是service.dir,采用相对路径配置,相对于JAS系统工作目录,也就是bin文件夹所在的目录。 每一个外部服务的结构都采用这种结构 app /serv /conf 服务的配置文件 /lib 服务所需要的jar包 /logs 服务日志存放处 /serv.xml 服务主配置文件 /serv.xml配置文件主要配置两个值
服务框架就说到此处,在后续的日子会继续完善,敬请关注,哈哈哈.... 附件:src.rar 包含(bootstrap.jar 源码 Kernel-version.jar 源码) 源码发布方式直接是EClipse项目 mos.rar 此包是在window上部署为服务运行,执行bin目录下的相关脚本即可,配置文件在conf目录下。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-12-06
可以热部署吗?
|
|
返回顶楼 | |
发表时间:2013-07-09
楼主这是你自己写的?有后续更新不?貌似运行有问题啊
|
|
返回顶楼 | |
浏览 8116 次