当前位置: 首页 > 专利查询>北京大学专利>正文

应用服务器公共服务松耦合接入方法技术

技术编号:2918351 阅读:269 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种应用服务器公共服务松耦合接入方法,定义EJB容器同公共服务之间的合约,分析合约和同一公共服务不同实现的API之间的匹配程度,利用适配器模式和反射机制将公共服务松耦合地集成到应用服务器中。本发明专利技术可为应用服务器开发者建立一个灵活的、可扩展的服务集成框架,框架中通过引入适配器模式和反射机制,将具体的公共服务实现同EJB容器分离,从而使应用服务器中系统构件的升级和替换相互独立,最终为应用服务器建立一个可插拔体系结构。

【技术实现步骤摘要】

本专利技术属于软件
,是一种针对应用服务器中公共服务集成的松耦合 方法。
技术介绍
如今各大公司、机构如今都在搭建各自的企业级信息平台,这些平台通过开 发新的功能模块,或整合原有独立开发的应用系统,以提供统一完整的框架。 J2EE(Java 2 platform Enterprise Edition, 见SUN Microsystems, Java 2 Platform Enterprise Edition Specification, Version 1.3, 2001)技术正是在这种情况下应运而生, 它通过定义一系列开发分布式企业级应用的规范(如图l所示),简化企业级应用 的开发、部署和管理等复杂问题,EJB (Enterprise Java Beans)作为其中的构件规 范,开发人员按照此规范开发实现业务逻辑的EJB构件,然后利用这些应用构件, 像搭积木一样建立分布式企业级应用系统。J2EE应用服务器遵循J2EE规范,介 于操作系统与企业级应用之间,将分布式企业级应用中存在的共性如事务,如事 务、安全、通信等特性剥离出来,形成公共服务,为应用构件提供开发和运行环 境。 一般来说,J2EE应用服务器包含两类系统构件 一类是公共服务,向应用构 件提供非功能属性,如安全、事务等;另一类是构件容器,包括EJB容器和Web 容器,提供应用构件的运行环境和所需的公共服务,例如构件的生命周期管理、 分布事务的支持,数据库连接的管理等,使应用构件(如EJB构件)可以更加高 效地运行在应用服务器中。随着J2EE规范的不断扩充,J2EE应用服务器的复杂度和规模也不断增长, 因此除了一些专业厂商外,对大多数应用服务器开发商而言,很难建立一个全面 的应用服务器体系,也就说任何应用服务器开发商都无法实现J2EE规范中要求的 所有公共服务或容器。为了应对日渐庞大的应用服务器规模,目前大多数应用服 务器开发商一方面选择自己实现EJB容器和某些公共服务,另一方面希望能够集 成第三方提供的公共服务和Web容器。与此同时, 一些开源社区也开始提供可靠 的公共服务实现,这就使在应用服务器中集成公共服务成为一种主流趋势。目前大多数公共服务集成都采用一种紧耦合的方式,EJB容器直接在代码中写入对某个公共服务实现的调用,这就使应用服务器中容器和公共服务的演化相互 依赖,譬如当公共服务实现提供给容器的调用方法改变后,容器中的调用代码也 需要相应地进行修改,由此带来了很高的维护代价;另一方面也不能使应用服务 器用户根据企业应用的需求,动态地配置或定制公共服务的实现,譬如对于事务 服务,有的应用服务器用户希望其具有较快的事务处理速度而无需过多的事务处 理附加功能,有的用户则恰好相反,同时由于EJB容器已经在代码中硬性地绑定 了某一确定的公共服务实现,而用户不可能直接修改应用服务器中的EJB容器代 码,因此这就使得应用服务器无法根据用户的不同需求集成不同的事务服务实现。 由此不难看出,如何以一种松耦合的方式集成公共服务,即不在应用服务器的代 码中硬性地绑定某一个公共服务实现,已成为应用服务器方面一个亟待解决的问 题。
技术实现思路
本专利技术的目的是提供一种应用服务器中公共服务的松耦合接入方法,指导 应用服务器开发者建立一个灵活的、可扩展的服务集成框架,框架中通过引入 适配器模式和反射机制,将具体的公共服务实现同EJB容器分离,从而使应用 服务器中系统构件(公共服务和容器)的升级和替换相互独立,最终为应用服 务器建立一个可插拔体系结构。本专利技术的,其步骤包括-1. 根据应用服务器设定该服务器构件容器所需实现的公共服务功能;2. 将上述公共服务所需提供的每一功能用一方法表示;3. 将上述方法封装在一接口中,此接口作为不同连接适配器面向应用服 务器的统一接口;4. 如一公共服务实现能够提供上述构件容器所需实现的公共服务功能, 则选定能够提供上述相应功能的一个或多个方法;如该公共服务实现无法提供 上述构件容器所需实现的功能,则编制能够实现该功能的方法;5. 将上述方法进行封装或组合,'为该公共服务实现实现包含4)所述统一 接口的公共服务实现的连接适配器;6. 应用服务器的构件容器通过公共服务实现的连接适配器调用该公共服 务实现,接入该公共服务。如一公共服务实现能够提供上述构件容器所需实现的公共服务功能,该公共服务实现的连接适配器为一个配置文件,配置文件将统一接口中的接口或方 法名对应于该公共服务实现中对应的接口或方法名。如一公共服务实现无法提供上述构件容器所需实现的功能,则该公共服务 实现的连接适配器为一实现类,实现类中的每一方法对应于构件容器所需实现 的一功能,该实现类保留该公共服务实现的实例。在应用服务器中创建公共服务信息文件,该文件指定待调用的公共服务实现。应用服务器的构件容器通过公共服务工厂类在运行时刻读取公共服务信 息文件,利用反射机制通过连接适配器调用相应的公共服务实现。对于能够提供上述构件容器所需实现的公共服务功能的公共服务实现,所 述公共服务信息文件为连接适配器的配置文件。对于不能够提供上述构件容器所需实现的公共服务功能的公共服务实现, 所述公共服务信息文件写入指定的连接适配器实现类类名。本专利技术方法总体包括三个方面(1) 定义EJB容器同公共服务之间的合约。(2) 分析合约和同一公共服务不同实现的API之间的匹配程度。(3) 利用适配器模式和反射机制将公共服务松耦合地集成到应用服务器中。一、定义EJB容器同公共服务之间的合约合约是指EJB容器需要公共服务提供的一个或多个方法或接口 (方法在其它编程语言中也可以称为函数,接口是计算机面向对象中的经典概念,这里可 以理解为方法的聚合),这些接口和方法表示了构件容器要求公共服务对外提 供的功能,这样当容器需要公共服务的某些功能的时候,在容器代码中可以直 接调用这些方法和接口,实现对公共服务的调用。因此一个准确定义的合约是应用服务器中公共服务集成的重要基础。而目前J2EE规范中有关EJB容器同 公共服务之间关系的定义相当模糊,也就是说通常情况下对公共服务对外提供 的功能接口,即服务提供商接口 (SPI)没有明确的定义或者分散在多个规范 中。因此为了定义出EJB容器同公共服务之间清晰的合约,本步由以下两阶段 构成第一阶段收集需求。在收集需求阶段,应用服务器开发者需要对服务相关的规范和主流应用服务器关于该项服务的实现情况进行调研。确定构件容 器,如EJB容器必须实现的公共服务的服务功能和扩展功能,这些功能通过容 器调用公共服务实现获得。第二阶段定义合约。在定义合约阶段,应用服务器开发者应首先对现存的有关该项服务的J2EE规范进行分类,然后根据需求选择J2EE规范中相关的 服务提供商接口 (SPI)。对规范中无法满足的需求,定义特定的方法或接口。 二、分析合约和同一公共服务不同实现的API之间的匹配程度 类似于生活中多个不同的生产厂商提供同一商品,对于某一公共服务可能 有多个不同的服务提供商,提供不同的公共服务实现。通常情况下,大多数公 共服务实现都会提供一个描述其功能的应用编程接口 (Application Programming Interface,简称API),外界通过这个接口调用公共服本文档来自技高网
...

【技术保护点】
一种应用服务器公共服务松耦合接入方法,其步骤包括:1)根据应用服务器设定该服务器构件容器所需实现的公共服务功能;2)将上述公共服务所需提供的每一功能用一方法表示;3)将上述方法封装在一接口中,此接口作为不同连接适配器 面向应用服务器的统一接口;4)如一公共服务实现能够提供上述构件容器所需实现的公共服务功能,则选定能够提供上述相应功能的一个或多个方法;如该公共服务实现无法提供上述构件容器所需实现的功能,则编制能够实现该功能的方法;5)将上述 方法进行封装或组合,为该公共服务实现实现包含4)所述统一接口的公共服务实现的连接适配器;6)应用服务器的构件容器通过公共服务实现的连接适配器调用该公共服务实现,接入该公共服务。

【技术特征摘要】

【专利技术属性】
技术研发人员:梅宏周明辉曹东刚李研
申请(专利权)人:北京大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1