SynchroWEB应用服务器技术白皮书.docx
- 文档编号:9948561
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:16
- 大小:878.87KB
SynchroWEB应用服务器技术白皮书.docx
《SynchroWEB应用服务器技术白皮书.docx》由会员分享,可在线阅读,更多相关《SynchroWEB应用服务器技术白皮书.docx(16页珍藏版)》请在冰豆网上搜索。
SynchroWEB应用服务器技术白皮书
协同系列软件产品
SynchroWEB(协同应用服务器)
3.0版
技术白皮书
1.技术背景
随着分布式应用系统逐步完成由两层结构模式向三层结构模式的转变以及互联网和电子商务的迅猛发展,中间件软件行业应运而生。
应用服务器中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,应用服务器中间件位于客户机服务器的操作系统之上,管理计算资源和网络通讯。
中间件产业是新兴产业,在全球范围内,中间件正在成为软件行业新的技术与经济增长点,Internet的蓬勃发展和网络计算的需求剧增,使位于平台(操作系统、硬件)与应用程序之间的应用服务器中间件产品恰逢其会,崭露头角。
目前,基于中间件技术,国内外各大厂商分别提供了自己的企业级应用服务器产品,这些提供商主要包括国外的IBM、HP、Microsoft、BEA、SUN、Oracle、SilverStream、Sybase公司,面向无线应用的Motorola、Oracle公司,以及国内的东方通科技、金蝶阿派斯、艾科公司以及中科院软件所。
受现有国际垄断格局的影响,中国软件业发展至今,系统级产品仍然寥若晨星,尤其是缺乏自主版权的操作系统和数据库产品。
而中间件市场的发展,将为民族软件产业切入战略性、基础性及关键性软件领域提供一次最现实的机遇,并将有助于提升我们在这一领域的研发能力。
2.J2EE的概念
目前,Java2平台有3个版本,它们是适用于小型设备和智能卡的Java2平台Micro版(Java2PlatformMicroEdition,J2ME)、适用于桌面系统的Java2平台标准版(Java2PlatformStandardEdition,J2SE)、适用于创建服务器应用程序和服务的Java2平台企业版(Java2PlatformEnterpriseEdition,J2EE)。
J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。
J2EE技术的基础就是核心Java平台或Java2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBCAPI、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技术的全面支持。
其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。
通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持EnterpriseJavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。
3.J2EE的优势
J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:
保留现存的IT资产:
由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。
这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。
J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEATuxedo,IBMCICS,IBMEncina,InpriseVisiBroker以及NetscapeApplicationServer。
这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的'企业计算'领域供应商的参与。
每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。
由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。
高效的开发:
J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。
这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。
高级中间件供应商提供以下这些复杂的中间件服务:
状态管理服务--让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。
持续性服务--让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。
分布式共享数据对象CACHE服务--让开发人员编制高性能的系统,极大提高整体部署的伸缩性。
支持异构环境:
J2EE能够开发部署在异构环境中的可移植程序。
基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。
因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。
这在典型的异构企业计算环境中是十分关键的。
J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。
可伸缩性:
企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。
基于J2EE平台的应用程序可被部署到各种操作系统上。
例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。
(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略。
能消除系统中的瓶颈,允许多台服务器集成部署。
这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。
稳定的可用性:
一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。
因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。
若是意外停机,那会有灾难性后果。
J2EE部署到可靠的操作环境中,他们支持长期的可用性。
一些J2EE部署在WINDOWS环境中,客户也可选择健壮性能更好的操作系统如SunSolaris、IBMOS/390。
最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。
这是实时性很强商业系统理想的选择。
3.SynchroWEB应用服务器介绍
SynchroWEB应用服务器,是一个完整的基于J2EE的集成和开发了如下服务的实现。
SynchroWEB应用服务器提供了ApplicationServer,基本的EJB容器,和Java管理扩展(JMX)基础。
它也提供了XJTU-MQ用于JMS消息服务,XJTU-TX用于JTA/JTS事务服务,CMP持久性,XJTU-SX用于基于JAAS的安全服务和XJTU-CX用于JCA连通性服务。
关于Web,对Web组件的支持,例如servlet和JSP网页,是由一个抽象Web集成层所提供的,同时也提供了Web服务,支持不同Web组件间的通信。
它也提供了CORBA功能,即允许CORBA对象访问EJB。
Web集成服务的实现是由一个第三方引擎所提供的,例如Tomcat。
SynchroWEB应用服务器使你可以混合匹配这些组件,主要通过将符合JMX实现的组件去代替任何你想替换的相同API的组件。
4.SynchroWEB应用服务器体系结构
4.1功能简介
SynchroWEB应用服务器是一个完整的基于J2EE的集成开发和运行环境。
SynchroWEB应用服务器提供了应用程序组装工具(AAT),预编译工具(PCT),ApplicationServer,基本的EJB容器,以及Java管理扩展(JMX)基础。
它也提供了XJTU-MQ用于JMS消息服务,XJTU-TX用于JTA/JTS事务服务,CMP持久性,XJTU-SX用于基于JAAS的安全服务和XJTU-CX用于JCA连通性服务。
关于Web,对Web组件的支持,例如servlet和JSP网页,是由一个抽象Web集成层所提供的,同时也提供了Web服务,支持不同Web组件间的通信。
它也提供了CORBA功能,即允许CORBA对象访问EJB。
Web集成服务的实现是由一个第三方引擎所提供的,例如Tomcat。
SynchroWEB应用服务器使你可以混合匹配这些组件,主要通过将符合JMX实现的组件去代替任何你想替换的相同API的组件。
下图是SynchroWEB服务器的体系结构图
SynchroWEB应用服务器体系结构
4.2主要功能模块简介
1)EJB容器
EJB容器是一个运行EJB的环境,当一个EJB-Jar部署成功后,通常情况下就会创建几个容器用于内部连接应用程序,从而让容器处理Bean之间的关联关系,例如EJB1.1规范中规定的JNDIEJB-References。
EJB容器又是一个框架,各不同部分都可以以组件的形式在其中嵌入实现,容器并不做什么重要的工作,只是将不同的组件连接起来。
容器一共有三个子类,每一个实现一种特殊类型的Bean,包括实体Bean容器、会话Bean容器和消息驱动Bean容器。
J2EE的应用组件不能直接与其他应用组件相互作用,而是通过使用容器的协议和属性来实现与其他组件和J2EE平台服务之间的相互作用。
我们在应用组件与J2EE服务之间加入容器的目的,就是为了将组件部署描述符定义的服务透明的加入系统中,比如声明事务管理,安全检查,资源缓冲池和状态管理。
SynchroWEB应用服务器全面支持EJB2.0的规范,同时也兼容EJB1.1的规范。
✧实体Bean容器(EntityBeanContainer)
用于存放实体Bean的实例,一个实体Bean代表一个持久性存储器中的实体(比如数据库中的一行),或者一个实现了的企业应用。
实体容器提供了实体Bean的Remote接口和Home接口的实现类(对于CMP2.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的TomcatWeb服务器的策略,实现Web容器的所有功能。
Tomcat是JavaServlet2.2和JavaServerPages1.1技术的标准实现,是基于Apache许可证下开发的自由软件。
3)名字服务(JNDI)
SynchroWEB应用服务器使用的是XJTU-NS名字服务。
XJTU-NS体系结构是一个基于Javasocket/RMI对javax.naming.Context接口的实现。
这是一个可以远程访问的客户/服务器实现。
这个是现实可选择的,因此,运行有XJTU-NS服务器的的同一个虚拟机的访问不需要调用socket。
同一个虚拟机的访问通过一个单独的对象引用而发生。
4)消息服务(JMS)
JMS是一个异步消息传递摘要,由于它减少了通讯的耦合性,因此在企业集成环境中有很重要的作用。
减少通讯的耦合性的意思是当使用基于EJB的RPC情况时,消息的发送者不需要与最终的接收者直接连接。
虽然JMS早在1998年8月就形成了规范,但是直到最近它才与J2EE标准集成起来,体现在EJB2.0和J2EE1.3中。
SynchroWEB应用服务器的消息服务是JMS1.0.2API规范的一个实现。
5)事务服务(JTS)
SynchroWEB应用服务器提供的事务服务提供了以下功能:
●为应用程序和应用程序服务器提供控制事务范围及生命周期的功能
●允许多个应用程序组件在一个原子事务中执行操作
●提供将全局事务与事务性资源的工作相关联的功能
●协调跨越多个资源管理器的全局事务的完成
●支持事务同步
●提供和使用CORBAORB/TS标准接口实现的事务管理器的交互(这对事务管理器的客户端透明)
6)容器管理持久性(CMP)
SynchroWEB应用服务器对容器管理持久性1.1和2.0(CMP1.0和CMP2.0)都提供了完善的支持。
这是通过对不同版本的Bean分别提供相应的持久性管理器来实现的。
对CMP2.0是实体桥来管理的。
实体桥的目的之一是加载以抽象方法声明的持久性字段(在部署描述符中有
7)安全服务(JAAS)
SynchroWEB应用服务器以认证的方式来保证安全性,提供了对于资源访问控制、数据完整性、机密性和数据私有性的支持。
同时还支持单一签名(SSO)来提供访问效率。
8)JDBC数据源
SynchroWEB应用服务器提供了连接缓冲池。
连接缓冲池维护着已经打开的物理数据库连接,这些连接可以被客户端重用。
当客户端对Connection对象发出打开、关闭操作时,连接缓冲池会根据缓冲的实际情况作出响应,不一定会真正执行打开、关闭数据库物理连接这些非常耗费系统资源的操作,从而大大提高了系统的性能和灵活性,尤其适用于三层体系结构中,很多客户端要共享一些数据库物理连接的情况。
在SynchroWEB应用服务器中,还使用了一个灵活的数据源装载机制,使得用户能够方便地将自己所需的数据源加载到SynchroWEB应用服务器,并注册到JNDI名字服务中。
这里数据源对象所使用的JNDI名称应该符合J2EE标准规范,格式为java:
comp/env/jdbc/datasourcename。
这样,J2EE应用程序就可以通过JNDI名字服务,查找数据源对象,获取相应的数据库连接。
9)JCA支持
SynchroWEB应用服务器能够支持JCASPI,这样,资源管理器就能与服务器的连接缓冲池、事务管理器与安全管理工具进行集成。
这种集成API定义了以下系统约定:
●连接管理:
允许应用服务器对资源连接进行缓冲管理,从而获得更好的灵活性。
资源连接通常要占用很大的系统开销,所以对它们进行缓冲可以有效地对它们进行重用和管理
●事务管理:
允许应用服务器的事务管理器对资源管理器中的事务进行管理
●安全管理:
允许对资源管理器进行安全访问
10)JavaMail
在java成为一种平台的同时,java应用程序也逐渐成熟起来,也需要更多的功能。
其中一种就是邮件和消息框架。
JavaMailAPI提供了这种功能。
JavaMailAPI提供了一组抽象类,他们组成了一个邮件系统。
这些类包括Message,Store和Transport等。
可以通过扩展这些API来实现新的协议或者增加需要的功能。
JavaMailAPI提供了一些固有的子类。
这些子类包括MimeMessage和MimeBodyPart。
实现了Internet邮件协议和RFC822和RFC2045规范。
他们可以直接在应用程序中使用。
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的状态和环境,从而在某些节点崩溃了或者停机检查时,其它节点可以立刻通过复制管理器得知这一情况,同时客户端也可以在得知之后立刻将调用请求无缝转送到其它节点。
以上的负载平衡和容错都是对用户完全透明的。
用户只是高效率的得到正确的结果,完全不知道是否有集群运行及如何运行。
5.系统技术指标
1)体系结构:
采用以“容器”为中心的体系结构,符合J2EE标准规范。
2)通讯协议:
支持HTTP、IIOP、RMI/JRMP、SMTP、POP3、SSL、SOAP。
3)企业组件应用容器:
支持SessionBean、EntityBean、MessageDrivenBean
4)Web应用容器:
可支持各种Web应用容器
5)数据库接口:
可支持JDBC2.0扩展API
6)标准服务:
可为应用组件提供下列J2EE标准API:
A)Java命名和目录服务接口(JNDI)
B)分布式远程方法调用(RMI)
C)Java邮件服务(JavaMail/JAF)
D)Java消息服务(JavaMessageService,JMS)
E)Java事务服务(API1.0)
F)Java安全服务:
JAASAPI
……
7)Web服务器集成:
可与Apache、IIS、Netscape集成。
8)互操作性:
可支持与CORBA及其他非J2EE平台的互操作。
9)应用组件的动态装配、部署及运行时状态监控
10)负载均衡:
可支持至少3个以上物理结点的均衡负载。
11)故障恢复:
可支持基于备份和系统日志的多结点故障恢复。
12)容错服务:
支持多结点的组件容错服务。
13)管理工具支持:
图形化应用服务器管理控制台、应用框架生成器和HTML、XML模版生成器。
14)操作系统平台:
可支持Linux和Windows2000等主流操 作系统。
15)系统集成性:
可实现与网络软件核心平台中其他项目平台的集成。
16)WebService支持:
可通过标准API提供对WebService的支持。
6.运行环境
JAVA环境
JDK1.5以上版本
操作系统
✓Window(WinNT、Win2000Server、WinXP)
✓Unix(HP-UX、SunSolaris、IbmAix)
✓Linux
✓其他主流操作系统
数据库
✓Oracle8i、Oracle9i
✓SQLServer
✓Sybase
✓DB2
✓其他主流数据库
7.典型应用
⏹国家水利信息化建设
⏹建设行业信息化
⏹科技部“西部行动”计划
⏹广播电视领域
1)中间件系统在数字黄河项目上的应用
2)中间件系统在建设行业信息化的应用
3)其他领域应用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SynchroWEB 应用 服务器 技术 白皮书
![提示](https://static.bdocx.com/images/bang_tan.gif)