概述:
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目录下。
相关推荐
基于 Java 的免费开源跨平台内容备份,压缩,远程发送一体化任务调度应用及引擎框架。 A free, open source, cross-platform content backup, content compression, remote sending task scheduling application ...
基于SpringBoot框架,最新使用Java集成京东接口的完整idea项目源码。 源码使用方法: 1.导入SpringBootJD\doc\springbootjd.sql,会自动创建库和表结构 2.修改SpringBootJD\src\main\resources\...
的免费开源跨平台系统运行监控服务应用及引擎框架。 A free, open source, cross-platform system running monitoring service application and engine framework based on Java. 中文 EasyMonitor 是一个基于 Java ...
对于一个 Java EE 应用来说,通常这些服务对象都是被容器管理的(例如,Spring 容器或 EJB 容器),更合适的方法是查找该服务对象而非直接实例化。因此,需要告诉 BlazeDS 通过 Factory 来查找指定的 FlexService ...
对于一个 Java EE 应用来说,通常这些服务对象都是被容器管理的(例如,Spring 容器或 EJB 容器),更合适的方法是查找该服务对象而非直接实例化。因此,需要告诉 BlazeDS 通过 Factory 来查找指定的 FlexService ...
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...
4.常见的JAVA框架有什么???WAF:??全称:WEB APPLICATION FRAMEWORK??主要应用方面:EJB层,(WEB层也有,但是比较弱)。??主要应用技术:EJB等??出处:http://java.sun.com/blueprints/code/index.html??简述:这...
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...
60.JAVA语言国际化应用,Locale类,Unicode 61.描述反射机制的作用 62.如何读写一个文件? 63.在图形界面中,一个按钮如何处理鼠标点击事件? 64.在图形界面中,一个表格,如何实现编辑单元格时弹出下拉框? ...
企业级分布式应用服务EDAS(Enterprise Distributed Application Service) 期望做一个基于go-micro + casbin + jwt 的用户认证和权限的微服务
Spring Boot框架:用于简化Spring应用的开发和部署,提高开发效率。MyBatis框架:用于简化数据库操作,实现对MySQL数据库的访问。Redis缓存:用于提高系统性能,减轻数据库压力。Vue.js框架:用于构建前端页面,实现...
Java可以很方便地集成各种流行的技术栈和框架,下面是一些常见的集成示例及简要...集成Spring Boot主要包括:创建Spring Boot项目、编写入口main类、配置application.properties、编写Controller、Service等组件代码。
答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式允许其service方法,一个实例可以服务于多个请求,并且其实例一般不会被销毁,而CGI对每个请求都产生新的进程,服务完后就销毁,所以效率上...
Java EE应用服务器 - 149 - 支持应用服务器 - 149 - 部署 - 150 - 数据源 - 150 - 定制web.xml - 151 - 基于云的主机Cloud-based hosting - 151 - AWS Elastic Beanstalk - 152 - CloudBees - 152 - Cloud Foundry -...
存放控制器类service:存放服务类dao:存放数据访问对象entity:存放实体类util:存放工具类src/main/resources:存放资源文件application.properties:配置文件static:存放静态资源,如HTML、CSS、JS等template:...
│ └─example│ │ │ └─docmanager│ │ │ ├─controller│ │ │ ├─dao│ │ │ ├─entity│ │ │ ├─service│ │ │ ├─util│ │ │ └─DocManagerApplication.java│ │ └─resources│ │ ├...
该系统采用了Java作为后端编程语言,使用Spring Boot框架进行快速开发,同时结合MySQL数据库进行数据存储。整个系统分为前端界面和后端接口两大部分,实现了学生干部信息的增删改查、活动记录的管理以及通讯录的查询...