您现在的位置是:首页 >技术教程 >基于J2EE在分布式环境下的底层结构的自动动态配置的应用网站首页技术教程
基于J2EE在分布式环境下的底层结构的自动动态配置的应用
为了实现广域网中符合工业标准基于组件的应用程序中动态的可适应性,我们需要一种框架来在这样的环境里自动化地配置J2EE 应用程序。这种需要对于哪怕在单一的应用程序服务器上尝试部署J2EE应用的人来说也显而易见,这种任务设计到大量的系统服务和应用组件的配置。
1 前言
近几年,我们已经看到基于组件的企业应用开发的显著增加。这种应用程序通常被部署在公司的内部网或者是因特网上,以高事务容量,大量的用户和覆盖范围广的访问为特征,它通常会被部署在中央区域,采用服务器集群来均衡负载从而支持用户下载。但是这种平均负荷的方法被证明只对减少应用转发的用户可以察觉的反应时间有效,而对于减少网络方面的延迟作用不大,垂直分割(例如…运行网络层和事务层在不同的虚拟机)被用于错误分离和均衡负荷,但是它是不符合实际的由于远程调运的大量使用显著地增加了运行时时间。最近的著作已经表明在广域网中利用垂直负荷而不引起前面所述的超时问题的可行性。那非研究的主要结论可以概括如下:
(1) 应用合适的应用程序,在广域网中的垂直负荷可以察觉的延迟。
(2) 广域垂直层需要复制应用层组件而且需要维持和原组件间的一致性。
(3) 新加的复制组件可以被动态配置以满足新的需要。
(4) 事实上,不同的复制组件可能会根据应用不同的方式实现相组件。
(5) 新的请求路径可以复用先前的组件配置路径。
应用智能监视和人工智能规划方法再结合那个研究得出的结论,我们看到通过动态布置基于动态监视的额外的应用组件,在广域网中符合工业标准基于组件的应用程序中动态的可适应性是可以实现的。然而,为了实现这种动态可适性,我们需要一种框架来在这样的环境里自动化地配置J2EE 应用程序。这种需要对于哪怕在单一的应用程序服务器上尝试布置J2EE应用的人来说也显而易见,这种任务设计到大量的系统服务和应用组件的配置。例如你必须在配置和部署应用组件前先建立JDBC数据源,设立消息目的地和资源适配器。在需要跨越多个节点服务器的广域网配置中,这将更加复杂,因为更多的便利内部节点通信的系统服务需要配置和启动,而且多种配置数据比如IP地址,端口号,JNDI名字和其他的数据在多个节点的配置文件中必须维持一致性。这种分布式配置框架必须满足:
(1) 声明内部组件一致性规范和定义它对组件配置部署的影响。
(2) 声明应用程序组件对应用服务器,以及它们的配置和部署的依赖性。
(3) 提供简单但可表达的抽象方法去控制通过部署和拆卸组件获得的适用性。
(4) 能够复用服务和组件从而高效的利用网路节点资源。
(5) 提供上述便利而不会增加应用程序员的设计负担。
在本论文中,我们提出自动动态部署J2EE应用程序的框架涉及了上面的所有问题,这种框架为组件定义了结构描述语言,链接说明和集合。这种组件说明语言用来描述应用程序组件和链接,它使得应用组件与系统组件中清晰的分开。一种灵活的系统类型用来定义组件接口和端口的兼容性。一种为配置组件属性而开发的定义和表述语言允许内部组件间独立的规范和组件间属性的继承。组件集合语言允许先前定义的复制的组件通过连接合适的端口集合到应用路径,连接时通过链接复制对象和具体把这些复制组件映射到目标应用服务器节点。组件配置过程评估了应用程序路径的正确性,确认在系统组件上的应用组件的独立性和完成复制组件的部署。根据这些配置使先前部署的复制组件在新的路径中得以匹配和复用的努力正在做出。我们把这种架构作为JBoss开源java应用服务器的一部分加以实现,在几个J2EE样本程序比如Java PetStore,,RUB和 TPC_W_NYU中进行测试。这种架构实现利用了JBoss的可扩展的微内核结构,基于JMX规范。JBoss的组件结构允许根据部署应用程序的需要增加服务配置。我们相信通过动态部署和拆卸系统服务来重构应用服务器对构建高效资源框架的动态分布部署的J2EE应用程序来说是非常必要的。本文如下部分是这样组织的。第2部分提供了必要的背景以理解和研究有关的J2EE组件技术规范。第3部分对这种架构给出了一般性的描述。第4部分更深入的描述了有关这种架构特别重要的和有趣的内部机制。第五部分描述了如何实现这种架构,相关联的工作将在第六部分介绍。
2 J2EE背景知识
2.1 介绍
组件框架。组件框架是一种中间件系统,它支持遵守一定标准的有不同组件构成的应用程序。应用组件被塞入这种确立它们运行环境和规定它们交互的框架中。这通常是通过容器,组件持有者来实现的。这种容器也提供通常需要的功能以实现命名,安全性,事务,和持久性!组件框架为组件的执行提供了一个集成的环境,因此显著的减少了在设计,实现,部署和维护应用程序时工作。现在工业上的组件框架标准以对象管理组的CORBA组件模型, SUN 公司的JAVA 2 Platform J企业版[J2EE]和微软公司的.NET标准,其中在企业里应用最为广泛的组件框架是2EEE。J2EE. J2EE是开发多层企业应用JAVA程序的综合性的标准。J2EE规范定义如下:
(1) 组件编程模型。
(2) 组件和主服务器的链接。
(3) 服务器提供给组件的服务。
(4) 各种各样的人物角色。
(5) 兼容性检验装置和编译测试程序。
在众多的服务列表中,消息通信,事务处理,命名机制和其它应用组件用到的服务是应用服务器必须提供的。用J2EE进行应用开发必须遵守经典的3层结构—表现层,业务层和企业信息系统层。属于各层的J2EE组件在开发时遵守具体的J2EE标准。
1、表现层或者网络层
这一层实际上又被分为客户端和服务器端。客户端包括浏览器,applets,Java应用程序等和负责和服务器端的表现层或者业务层进行交互。服务器端包括servlet、jsp和静态网页内容。这些组件负责把业务数据传递给终端用户。数据本身通常从业务层获得有时也从企业信息系统层直接获得。表现层的服务器端通常通过Http协议来进行访问。
- 业务层或者EJB层
这一层包含EJB,即企业应用的事务逻辑模型。这些组件提供了持久化机制和事务支持。EJB中的组件通过RMI被调用。在Java虚拟机调用或者异步的消息传递,取决与EJB组件的类型。EJB规范定义了很多种组件。它们在调用风格(同步和异步,本地和远程)与状态(完全状态,不可持久状态,可持久)方面不同。同步调用的EJB组件通过特定的工厂代理对象来表现自己。这种工厂代理对象通常被EJB部署者绑定在JNDI中。EJB对象允许或者本地EJB对象是特定EJB实例的代理。
3、企业信息系统或者数据层
这一层指的就是企业信息系统,比如关系数据库,ERP系统,消息系统等。业务层
未完待续...