中间件业务
IBMS业务
µã»÷ÕâÀï¸øÎÒ·¢ÏûÏ¢ 中间件支持

 
 

 

 

   产品介绍
 

 1、技术背景

    随着分布式应用系统逐步完成由两层结构模式向三层结构模式的转变以及互联网和电子商务的迅猛发展,中间件软件行业应运而生。
    应用服务器中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,应用服务器中间件位于客户机服务器的操作系统之上,管理计算资源和网络通讯。
    中间件产业是新兴产业,在全球范围内,中间件正在成为软件行业新的技术与经济增长点,Internet 的蓬勃发展和网络计算的需求剧增,使位于平台(操作系统、硬件)与应用程序之间的应用服务器中间件产品恰逢其会,崭露头角。
    目前,基于中间件技术,国内外各大厂商分别提供了自己的企业级应用服务器产品,这些提供商主要包括国外的IBM、HP、Microsoft、BEA、SUN、Oracle、SilverStream、Sybase公司,面向无线应用的Motorola、Oracle 公司,以及国内的东方通科技、金蝶阿派斯、艾科公司以及中科院软件所。
    受现有国际垄断格局的影响,中国软件业发展至今,系统级产品仍然寥若晨星,尤其是缺乏自主版权的操作系统和数据库产品。而中间件市场的发展,将为民族软件产业切入战略性、基础性及关键性软件领域提供一次最现实的机遇,并将有助于提升我们在这一领域的研发能力。
产品构成

2. SynchroWEB应用服务器体系结构
2.1 功能简介    SynchroWEB 应用服务器是一个完整的基于J2EE的集成开发和运行环境。SynchroWEB应用服务器提供了应用程序组装工具(AAT),预编译工具(PCT),Application Server,基本的EJB 容器,以及Java 管理扩展(JMX)基础。它也提供了SYNCHROWEB-MQ 用于JMS 消息服务,SYNCHROWEB-TX 用于JTA/JTS 事务服务,CMP 持久性,SYNCHROWEB-SX 用于基于JAAS 的安全服务和SYNCHROWEB-CX 用于JCA 连通性服务。关于Web,对Web组件的支持,例如servlet 和JSP 网页,是由一个抽象Web 集成层所提供的,同时也提供了Web 服务,支持不同Web 组件间的通信。它也提供了CORBA 功能,即允许CORBA 对象访问EJB。
    Web 集成服务的实现是由一个第三方引擎所提供的,例如Tomcat。SynchroWEB 应用服务器使你可以混合匹配这些组件,主要通过将符合JMX 实现的组件去代替任何你想替换的相同API 的组件。

 下图是SynchroWEB服务器的体系结构图


2.2 主要功能模块简介
1) EJB容器
    EJB容器是一个运行EJB的环境,当一个EJB-Jar部署成功后,通常情况下就会创建几个容器用于内部连接应用程序,从而让容器处理Bean之间的关联关系,例如EJB 1.1规范中规定的JNDI EJB-References。
    EJB容器又是一个框架,各不同部分都可以以组件的形式在其中嵌入实现,容器并不做什么重要的工作,只是将不同的组件连接起来。容器一共有三个子类,每一个实现一种特殊类型的Bean,包括实体Bean容器、会话Bean容器和消息驱动Bean容器。
J2EE的应用组件不能直接与其他应用组件相互作用,而是通过使用容器的协议和属性来实现与其他组件和J2EE平台服务之间的相互作用。我们在应用组件与J2EE服务之间加入容器的目的,就是为了将组件部署描述符定义的服务透明的加入系统中,比如声明事务管理,安全检查,资源缓冲池和状态管理。
SynchroWEB应用服务器全面支持EJB 2.0的规范,同时也兼容EJB 1.1的规范。
 实体Bean容器(EntityBeanContainer)
    用于存放实体Bean的实例,一个实体Bean代表一个持久性存储器中的实体(比如数据库中的一行),或者一个实现了的企业应用。实体容器提供了实体Bean的Remote接口和Home接口的实现类(对于CMP 2.0还提供了Bean类的实现子类),管理其生命周期,并处理客户的调用请求。
 无状态会话Bean容器(StatelessSessionBeanContainer)
用于存放无状态会话Bean的实例,一个会话Bean是一种作为单用户执行的对象。作为对远程的调用请求的响应,容器产生一个会话Bean 的实例。会话Bean可以是无状态的, 当应用不需要掌握其客户信息或状态时,就可以使用无状态会话Bean。由于不包含用户信息,无状态会话Bean能够供多个用户使用,而无状态会话容器负责声明无状态会话beans,并将其指定给任何用户。
 有状态会话Bean容器(StatefulSessionBeanContainer)
用于存放有状态会话Bean的实例,一个具有状态的会话Bean称为有状态的会话bean。在其与用户的互操作或会话过程中,该Bean是有状态信息的,但是当用户终止与会话Bean的互操作时,会话就终止了,而且该Bean也不再拥有状态值。有状态会话容器就用于管理这类Bean的生命周期,以及客户的调用请求。
 消息驱动Bean容器(MessageDrivenBeanContainer)
用于存放消息驱动Bean(MDB)的实例,所谓MDB就是一种企业应用Bean,它可以使用 JMS 消息,并且在同一个强健的、基于组件的基础结构中处理这些消息。当在容器中部署了一个MDB以后,它就被指派来处理特定主题或队列中的消息。JMS 客户机(Java 应用程序、Bean 或本地客户机)发送的任何消息,将由消息路由器转发给MDB。当一条消息被发送给一个MDB时,消息驱动容器就会从MDB实例池中选择该Bean的一个实例,来处理这条消息。当该Bean实例调用其onMessage( )方法时,它就会接收到这条消息,并能够以它认为合适的业务方法来处理这条消息。一旦这条消息被使用,则只要事务没有异常中止,这条消息就不会被传送给这个MDB的任何其它实例。消息驱动容器就用于生成和管理这些MDB地实例,并管理它们的生命周期。
 容器工厂(ContainerFactory)
EJB实现的核心就是容器工厂。对于一个准备部署的EJB而言,系统将要创建和初始化必须的EJB容器,每种部署的EJB都需要一个容器。容器工厂包含两个核心方法,“部署”和“反部署”。“部署”的方法使用了一个“URL”指向一个EJB-jar或者与EJB-jar有相同结构的一个目录(这是为了开发环境中使用的)。一旦部署成功后,就可以通过使用相同的“URL”调用“反部署”方法将EJB反部署。如果对一个已经部署的URL再次调用部署方法,结果是先进行反部署,然后再重新部署一次该URL,也就是重部署。SynchroWEB应用服务器中的实现类和接口类均支持重部署,并且将重载任何有改变的类。这样就允许开发者不需要停止服务器运行就可以更新开发的EJB组件。

EJB容器的关键技术包含企业Bean运行环境,分布式支持,对分布式事务的支持,安全管理,部署描述符等。

2) WEB容器
    所谓Web容器是一个带有Jsp环境的servlet容器,Servlet容器是一个根据用户的行为可以管理和激活Servlet的运行时的Shell。在SynchroWEB应用服务器采用集成Jakarta的Tomcat Web服务器的策略,实现Web容器的所有功能。Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件。

3) 名字服务(JNDI
    SynchroWEB应用服务器使用的是SYNCHROWEB-NS名字服务。SYNCHROWEB-NS体系结构是一个基于Java socket/RMI对javax.naming.Context接口的实现。这是一个可以远程访问的客户/服务器实现。这个是现实可选择的,因此,运行有SYNCHROWEB-NS服务器的的同一个虚拟机的访问不需要调用socket。同一个虚拟机的访问通过一个单独的对象引用而发生。

4) 消息服务(JMS)
    JMS是一个异步消息传递摘要,由于它减少了通讯的耦合性,因此在企业集成环境中有很重要的作用。减少通讯的耦合性的意思是当使用基于EJB的RPC情况时,消息的发送者不需要与最终的接收者直接连接。虽然JMS早在1998年8月就形成了规范,但是直到最近它才与J2EE标准集成起来,体现在EJB2.0和J2EE1.3中。SynchroWEB应用服务器的消息服务是JMS1.0.2API规范的一个实现。

5) 事务服务(JTS)
SynchroWEB应用服务器提供的事务服务提供了以下功能:
 为应用程序和应用程序服务器提供控制事务范围及生命周期的功能
 允许多个应用程序组件在一个原子事务中执行操作
 提供将全局事务与事务性资源的工作相关联的功能
 协调跨越多个资源管理器的全局事务的完成
 支持事务同步
 提供和使用CORBA ORB/TS标准接口实现的事务管理器的交互(这对事务管理器的客户端透明)

6) 容器管理持久性(CMP)
    SynchroWEB应用服务器对容器管理持久性1.1和2.0(CMP1.0和CMP2.0)都提供了完善的支持。这是通过对不同版本的Bean分别提供相应的持久性管理器来实现的。对CMP2.0是实体桥来管理的。实体桥的目的之一是加载以抽象方法声明的持久性字段(在部署描述符中有<cmp-field>/</cmp-field>与之对应),以提供给客户端调用时使用;实体桥的另一个目的是加载在bean中声明的cmr部分(同样在部署描述符中有<cmr-field>/</cmr-field>与之对应)。

7) 安全服务(JAAS)
    SynchroWEB应用服务器以认证的方式来保证安全性,提供了对于资源访问控制、数据完整性、机密性和数据私有性的支持。同时还支持单一签名(SSO)来提供访问效率。

8) JDBC数据源
    SynchroWEB应用服务器提供了连接缓冲池。连接缓冲池维护着已经打开的物理数据库连接,这些连接可以被客户端重用。当客户端对Connection对象发出打开、关闭操作时,连接缓冲池会根据缓冲的实际情况作出响应,不一定会真正执行打开、关闭数据库物理连接这些非常耗费系统资源的操作,从而大大提高了系统的性能和灵活性,尤其适用于三层体系结构中,很多客户端要共享一些数据库物理连接的情况。
    在SynchroWEB应用服务器中,还使用了一个灵活的数据源装载机制,使得用户能够方便地将自己所需的数据源加载到SynchroWEB应用服务器,并注册到JNDI名字服务中。这里数据源对象所使用的JNDI名称应该符合J2EE标准规范,格式为java:comp/env/jdbc/datasourcename。这样,J2EE应用程序就可以通过JNDI名字服务,查找数据源对象,获取相应的数据库连接。

9) JCA支持    SynchroWEB应用服务器能够支持JCA SPI,这样,资源管理器就能与服务器的连接缓冲池、事务管理器与安全管理工具进行集成。这种集成API定义了以下系统约定:
 连接管理:允许应用服务器对资源连接进行缓冲管理,从而获得更好的灵活性。资源连接通常要占用很大的系统开销,所以对它们进行缓冲可以有效地对它们进行重用和管理
 事务管理:允许应用服务器的事务管理器对资源管理器中的事务进行管理
 安全管理:允许对资源管理器进行安全访问

10) JavaMail
    在java成为一种平台的同时,java应用程序也逐渐成熟起来,也需要更多的功能。其中一种就是邮件和消息框架。JavaMail API提供了这种功能。
    SynchroWEB应用服务器集成了javaMail功能,使得应用程序可以使用标准的JavaMail来进行邮件的发送、接收以及管理。
11) CORBA
    SynchroWEB应用服务器提供了基本的CORBA功能,允许CORBA客户端访问以IIOP方式部署在应用服务器中的EJB。由于ORB产品之间兼容性不理想,另外目前IDL反编译工具生成的IDL文件并不通用,所以目前只支持Java编写的CORBA客户端,而且只有客户端使用jacorb作为本地通信代理的时候,才能保证调用过程不出错。如果使用其他的java实现的ORB,会报不同程度的错误。

12) WEB服务
    Web服务是一种基于标准的应用集成方式,它可以将运行在通过Intranet、Extranet或Internet上连接的分布式服务器上的应用集成在一起。
目前SynchroWEB的Web服务由集成的第三方引擎Tomcat来实现。

13) 管理控制台
    对于SynchroWEB应用服务器中的多个模块以及部署的组件都需要统一的管理,这一工作正是由管理控制台来完成的。SynchroWEB应用服务器的管理控制台是基于Web的管理平台,管理员可以通过该控制台远程监听应用服务器的运作信息以及远程设置应用服务器的配置。

14) 应用程序组装工具
    SynchroWEB应用服务器提供了具有友好图形界面的应用程序组装工具来辅助EJB的开发。EJB提供者在书写完EJB后,只需在组装向导的带领下来定制自己的EJB(如JNDI名、资源引用等),最后就可以得到一个完整的、可以直接部署运行的jar文件。

15) 集群服务
    SynchroWEB应用服务器提供了集群服务,可以实现负载平衡和容错。SynchroWEB应用服务器支持进行水平和垂直两种划分方式,可以完善的运行于网络环境。
    在此基础上,更进一步的提供了负载平衡和容错能力。SynchroWEB应用服务器提供了方法级的负载平衡,也就是在每次方法调用时都会重新选择请求的节点,这有别于大部分J2EE应用服务器的Bean级负载平衡。系统运行时根据访问量和节点状况,策略器会将各个节点按权值排序,提供给客户端的stub来决定方法调用的去向,以将访问量较为平均的分给各个节点,从而提供了运行效率和系统吞吐量。
    在运行时系统不断的同步各个节点上EJB的状态和环境,从而在某些节点崩溃了或者停机检查时,其它节点可以立刻通过复制管理器得知这一情况,同时客户端也可以在得知之后立刻将调用请求无缝转送到其它节点。
    以上的负载平衡和容错都是对用户完全透明的。用户只是高效率的得到正确的结果,完全不知道是否有集群运行及如何运行。

 

快速通道:

 
 

------------------------------------

 

 

  |  网站地图  |  法律声明  |  联系我们  |  协同集团  |                                                                      © 1997-2008 西安协同时光软件有限公司 版权所有    陕ICP备05016409号