应用中间件产品介绍之三:Apusic - charles qi - JavaEye技术网站

服务

J2EE连接器架构是为了和传统的应用系统进行连接定义的一套标准的架构。它定义了一套可升级的,安全的,能基于事务的机制,以便J2EE平台可以和传统的应用系统进行整合。J2EE连接器架构还定义了公用客户端接口,使其它平台的应用能访问J2EE平台。对于不同的应用,Apusic应用服务器需要其提供资源适配器,Apusic应用服务器能将符合规范的资源适配器插入应用服务器,以达到应用服务器访问异构系统的目的。

Apusic应用服务器目前提供了 JCA 1.5的完整实现。

由于J2EE 应用的关键特性是分布式的,其提供的服务可能分布在任何一个机器或网络,应用的开发统一通过JNDIJava Naming and Directory Interface)来获得服务,开发者在开发时可以不用关心服务的物理位置。

Apusic xx支持使用JNDI 1.2,并且开发完成后,部署者(Deployer)可以在部署工具中配置应用所需要的环境、资源、服务,使应用获得所需的分布式服务,完成最终运行环境的建立。

服务

J2EE 中对于事务的处理是分布式的,Apusic应用服务器xx提供对XA 事务的支持。为了简化开发者对事务的处理,Apusic 应用服务器在EJB 容器中提供容器管理事务(Container Managed Transaction),应用开发者使用EJB 管理数据即自动获得了事务的保证,由于EJB 容器对数据库的管理是分布式的,开发者由此自动获得了对应用开发较为困难的分布事务管理能力,这一切都由应用服务器完成。

为保证应用数据和业务逻辑的的完整性,除了提供xx符合规范和强壮的事务管理器之外,Apusic 应用服务器还提供了强壮而灵活的事务构架。JTAJava事务API)对数据的完整性起到关键作用,Apusic支持的事务包括EJBJMSJCAJDBC等。支持分布式事务,两阶段提交。

Apusic应用服务器能够根据资源等待图自动检测出死锁状态,当事务发生死锁时将其中一个事务回滚,以释放事务所占用的资源,使其他事务能够继续执行。

Apusic应用服务器提供了灵活和强壮的并发控制机制,单独分离出了并发控制部分,可以使用插件的形式同时提供多种并发控制协议。

全局事务

Apusic应用服务器提供了一个作为事务性资源管理器的JMS 提供者(Provider),允许从JSPServlet EJB等应用组件中对JMS 进行事务性的访问。同时,从一个单一事务边界中允许多个应用组件访问JMS 提供者。

数据源服务

Apusic 应用服务器模型中的数据层提供企业应用对关系型数据库和传统企业应用数据的高效而可靠的访问。使得企业应用可以通过JDBC 实现对关系型数据库安全、可靠而且高效的访问。目前Apusic 应用服务器提供了对{zx1}的JDBC3.0 版本的支持。任意合法的J2EE 编程模型都可以从Apusic 应用服务器数据库连接池中获得对关系型数据库的连接。Apusic 应用服务器提供了很多功能或特性,使对数据层访问的开发更为简单,同时达到更为高效和安全的目标。

结果集缓存

对于Session BeanJSPServlet 为主的J2EE 应用中,频繁访问数据库而缺少对应的数据缓存等机制,往往会成为企业应用的瓶颈。因此,Apusic 应用服务器提供了JDBC结果集缓存技术,通过将数据库返回的结果集保存在内存中,可以大幅提高应用系统的性能,同时,使用结果集缓存对应用开发者是xx透明的,保证了应用的可移植特性。

语句缓存

企业应用频繁对数据库的访问,往往会成为企业应用的瓶颈。因此,Apusic 应用服务器还提供了JDBC语句缓存技术,同时使用预编译的查询语句,提高应用程序访问数据库的效率。

JAVA 消息服务(JMS)定义了Java 中访问消息中间件的接口。消息中间件提供数据的异步传输,通过消息中间件,一些原本互相孤立的业务组件可以组合成一个可靠的、灵活的系统。消息中间件分为两类:Point-to-Point(PTP)Publish-Subscribe(Pub/Sub)

PTP是点对点传输消息,建立在消息队列的基础上,每个客户端对应一个消息队列,客户端发送消息到对方的消息队列中,从自己的消息队列读取消息。

Pub/Sub是将消息定位到某个层次结构栏目的节点上,Pub/Sub 通常是匿名的并能够动态发布消息,Pub/Sub 必须保证某个节点的所有发布者(Publisher)发布的信息准确无误地发送到这个节点的所有消息订阅者(Subscriber)

Apusic应用服务器支持以上两种模型,并xx实现了JMS1.1版本。

JavaMail 是一个用于阅读,编写和发送电子消息的API,可以用来建立基于标准的电子邮件客户机,它支持各种因特网邮件协议,包括SMTP,POP,IMAP,MIME,NNTP,S/MIME及其他协议。

Apusic服务器支持所有邮件协议,并xx支持JavaMail 1.4版本。

JMXJava Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。基于JMX架构的Apusic应用服务器具备高度可管理性。而服务器基于JMX的体系架构,也带来管理的便利性与可靠性。我们可以通过JMX管理获取服务器的运行现状,并能够通过微内核所提供的诊断数据了解服务器的健康水平。

Web Services是一种自包含、模块化的应用,且能够在网络上发布、定位和调用。Web Services是一种发展中的用于实现服务驱动架构(SOA)的技术,其注意力主要集中于如何使应用功能模块能够通过标准的互联网协议进行互用,而与运行平台、编程语言等无关。

引擎

Apusic应用服务器5.0提供了符合JavaEE 5及相关规范的Web Services服务支持。ApusicWeb Service的支持包括:

规范

J2EE 1.4使用JAX-RPC作为Web ServicesAPI规范,Java EE 5引入了Java API for XML-Based Web Services (JAX-WS)规范。这个规范是对JAX-RPC扩展,由一系列相关规范整合而成,包括JAX-WS 2.1 JAXB 2.0 SAAJ 1.3等等,用于取代原有的JAX-RPC规范。Apusic Web Services引擎xx支持JAX-WS规范,同时向下兼容JAX-RPC规范。

Apusic应用服务器5.0Web Services引擎具有以下特性:

UDDI Universal Discovery Description and Integration

UDDI提供了在互联网上进行全球范围的业务注册并相互发现的开放式注册框架。

JAXB 2.0定义了JavaXML数据绑定规范,并提供了JavaXML间双向的自定义数据绑定规则。它提供了一种简便的方法,通过使用Java对象来处理XML文档。

SOAP定义了在HTTP协议上通过XML实现跨系统信息交换的轻量级协议。

SOAP with Attachments API for Java

SAAJJava平台提供了在互联网上发送XML文档的标准方法。

Metadata annotation

JAX-WS定义了Java语言注解(JSR 175)Web Services中的应用,并支持Java平台Web Services注解(JSR 181),使客户端与服务器端应用开发更为方便简洁。

WS-I BP是由Web Services可互用性组织(Web Services Interoperability Organization)整理的一系列非其私有的规范集合,并对这些规范进行了阐明、修正、扩展等,用于提高Web Services的可互用性。

加入了对客户端异步操作的支持。

传输机制的支持

JAX-WS增强了XML消息与底层传输机制的分离,简化了非HTTP传输的使用。

JAX-RPC 1.1的会话(Session)管理依赖于HTTP协议。JAX-WS 2.0加入了对基于消息的会话管理的支持。

的支持

Apusic应用服务器5.0遵循Web Services for JavaEE规范(JSR109),允许建立基于JavaEE组件架构的Web Services服务架构,提供了一个可在多应用服务器间移植和互动的客户端与服务器端编程模型。这个模型提供了可扩展的安全环境,并为JavaEE开发人员所熟悉。

在客户端,允许服务客户通过JNDI查找来获取服务接口(Service Interface)或服务端点接口(Service Endpoint Interface)。服务客户还可使用WebServiceRef注解来注入服务或服务端点。Apusic应用服务器扮演中间代理的角色,保证JNDI查找在web容器、EJB容器以及客户端容器中顺利进行。

在服务器端,允许服务提供方使用无状态会话Bean来作为服务实现BeanService Implementation Bean),在实现服务逻辑过程中,可查找或请求容器注入上下文实例,访问容器所提供的各种资源与服务。Apusic应用服务器自动管理服务实现Bean的生存周期与实例池。

Apusic应用服务器还为所部署的Web Services提供基于Java EE规范的安全环境。包括JavaEE身份验证与授权模型。

应用服务器的消息安全机制

Apusic应用服务器采用OASISWeb Services安全标准(WS-Security),这是一套为可交互的Web Services安全性而订的国际标准,由加盟OASIS的主要网络服务技术提供商共同制定。

Web Services安全标准是一套使用XML加密技术与XML数字签名技术的消息安全机制,保证在SOAP协议上的消息安全性。消息安全机制将安全信息插入到消息中,伴随消息一起传输到发送目的地。消息安全机制独立于传输层安全机制,因此能保证在传输完成后,消息仍然是受保护的。

Apusic应用服务器遵循Web Services安全标准,支持多种安全标识(Token),包括X.509认证,SAML断言,Username/Password标识等,来验证与加密SOAP上的Web Services消息。

UDDI提供了一个基于XML,可以让全球范围的业务注册并相互发现的开放式注册框架,其最终目的是允许不同公司的业务系统能在全球互联网上相互发现,共享描述信息并协同工作,简化在线事务处理。Apusic应用服务器5.0支持全部UDDI V3 API以及部分UDDI V1UDDI V2 API。同时,Apusic应用服务器5.0中整合了符合UDDI V3标准的UDDI注册服务。

对于企业应用而言,应用服务器所能提供的安全方面的功能,是保证企业应用数据完整、逻辑完整和减少被入侵可能的重要特性。针对多层的分布式企业应用的安全要求,Apusic 应用服务器提供了可靠高效的安全构架。同时,为应用程序的加密需求提供了一个安全、强壮、高效的JCE(Java Cryptography Extension)提供者。

同时,Apusic5.0应用服务器以一种可靠的安全框架实现对资源(Web资源,EJB资源,数据源资源)进行有效保护,Apusic应用服务器的安全框架提供了灵活,易于扩展的机制,并允许用户实现自己的安全认证服务。

授权和鉴定服务(JAAS

JAVA授权和鉴定服务(JAAS)是基于用户的访问控制,即根据谁在运行代码来进行授权。JAAS认证被实现为可插入的方式,允许应用程序与具体认证技术保持独立,新增或者更新认证方法并不需要更改应用程序本身。

JAAS目前已经整合进了Java 2 SDK 1.4及以上版本,作为标准的用户认证与授权模型。Apusic应用服务器也提供了JAAS的实现。

容器的授权合约(JACC

JavaEE容器的授权合约(JACC, 定义了J2EE容器和外部授权系统之间的合约,定义了外部授权提供者如何与 J2EE 进行交互,以达到使用其它授权系统的目的。例如,J2EE和网络管理系统的结合等。

Apusic应用服务器提供了JACC1.0的完整实现。

Apusic Security ExtensionsApusic应用服务器的安全扩展特性,Apusic服务器提供了一套方便、灵活的安装机制能够用于处理Apusic应用服务器本身的安全,同时也提供了与第三方安全验证产品整合的能力,如:LDAP、数据库系统、Sun Access Manager等,共同完成身份验证和授权工作。同时,Apusic应用服务器所提供的安全扩展功能,允许开发自己的安全提供程序,来完成与自己的特有系统进行安全整合。

SSO全称Single Sign On,即单点登录,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。Apusic SSO提供了单点登录的解决方案,市场上所提供的单点登录产品有Yale CASOpenSSOSun Access Manager等,Apusic应用服务器能够有效地与这些产品整合.

Apusic 应用服务器提供了面向用户、调用过程和客户端调用等方式的身份鉴定,通过使用用户名和密码、证书等等方式,将合法的应用用户和调用程序与非法的入侵者区分开来。

授权是使企业应用的完整性和安全性得以保证的重要因素,Apusic 应用服务器对企业应用的授权策略提供了易于配置和修改的方法与工具,同时提供了可靠安全的授权机制。

对于企业应用中的敏感数据的保存和交换,Apusic 提供了高效可靠的加密机制。Apusic 安全服务提供了数字签名、消息摘要、消息鉴别码、RSA 非对称加密、序列密码加密、分组密钥密码加密、密钥生成、密钥交换等常用的算法。

对于系统中的关键数据,如消息、用户信息等等,Apusic 提供了安全的内部保护存储机制。

Apusic应用服务器管理模型基于JMX框架并遵循JSR160规范。使用JMX框架能通过Java语言封装软硬件资源并将其暴露在分布式环境下。JMX同时还提供了映射框架,以便将已存在的管理协议如SNMP集成到自身的管理体系结构中。

Apusic应用服务器提供管理服务,它作为管理工具与服务器MBean之间的接口,为管理工具提供必要的管理功能。

Apusic应用服务器提供管理服务作为管理接口,分为以下几部分:

提供对Apusic应用服务器大部分的管理功能,如启动与停止应用服务器、创建数据源及设置优化选项、配置多路复用端口号、设置事务缺省超时时间、调整HTTP线程池{zd0}线程数等。

提供应用部署管理功能,如部署与卸载应用、启动与停止应用等。

提供监控Apusic应用服务器运行时状态的功能,如观察某个数据源的连接创建数、某个Servlet的执行时间、HTTP线程池的当前工作线程数等。

Apusic应用服务器提供以下管理工具:

管理控制台Admin Console

Admin管理控制台是基于Eclipse技术的管理工具通过它可以方便的对Apusic应用服务器以及Apusic MQ服务器进行配置与监控操作。

Admin管理控制台提供性能监控功能,使用它可以通过曲线视图的方式观察最近自定义时间段内Apusic应用服务器组件及服务的运行状况,如观察最近一段时间内某个Servlet的服务时间;同时用户可以通过表格的方式查看当前监控项的一些统计信息,如Servlet服务的{zd0}时间、最小时间、平均时间等等。它还能够在一个视图中监控多个项,如在一个视图中监控两台Apusic应用服务器中HTTP线程池的工作线程个数,方便用户对多个监控项进行比较查看。

管理控制台(Web Admin

Apusic Web管理控制台是基于浏览器的管理工具。用户通过Web浏览器就能够对Apusic应用服务器进行配置与管理操作。Web浏览器支持目前比较流行的IEFirefox,其中IE支持6.0及以上版本,Firefox支持1.5及以上版本。

Web管理控制台的界面风格与Apusic管理控制台类似,实现的配置功能也xx相同,但它不提供监控功能。如果没有安装Apusic管理控制台,可以通过浏览器完成大部分相同的配置操作。

为方便用户进行自动化操作,Apusic 5.0提供了通过Shell命令方式对Apusic应用服务器进行配置与管理操作,这些命令存在于<APUSIC_HOME>/bin以及<DOMAIN_HOME>/bin下。

Apusic 5.0还提供了一些Ant task,如对Web模块进行JSP的预编译、对应用进行管理操作等。

Apusic应用服务器对集群服务提供了优异的支持,通过Apusic集群服务,企业应用能够获得高可用性及水平可扩展性。

Apusic集群提供了创新性的设计与实现。例如:Apusic独创的Client Session Cache(客户端会话缓存)技术。我们知道在集群中需要在各结点之间同步一些状态信息,如果采用通用的内存复制技术,将耗费大量的网络带宽,对性能也有很大影响。这是因为每当一个结点的状态发生变化时,都需要通过多播等方式向其他结点传递状态信息,随着集群内部结点的增多,内存复制将会非常频繁,从而造成广播风暴,严重阻塞带宽。在某些集群场景下, Apusic所采取的技术是客户端缓存,直接将状态信息保存在客户端,当服务器失效时将状态转移到可用服务器,这将有效降低广播风暴出现的机率,从而大大提升集群效果。

Apusic作为专业的、成熟的JavaEE应用服务器,它提供了整套的、灵活的、有效的集群方案,是金融、电信、电力等行业的基于JavaEE技术的高性能、高可用、可扩展系统的保障。

Apusic集群主要包括Web集群、JNDI集群、EJB集群、JMS集群。

集群

一般来说,Web集群试图解决两个问题:客户请求的负载均衡和Session的高可用。

Apusic Web集群为这两个问题提供了灵活、全面的解决方案。客户请求的负载均衡是指客户的请求依赖特定算法被合理地分配给多台Web Server来处理。Session的高可用性是指当某台Web Server失效,这台Web Server服务的客户的请求会被透明地转发给其它有效Web Server,而会话状态(Session)依然可用。我们把集群范围内具有高可用性的Session称为集群Session

Apusic Session集群采取Instant Replication,即某节点的Session操作是即时传播(同步)到集群中的其它节点的;一些应用服务器厂商的集群Session同步采取非即时的方式,这会降低Session可用性。还有一个比较常见的场景是新节点加入工作中的Apusic集群时,新节点的Session会自动与集群同步。

集群

JNDI作为JavaEE的基础技术,JNDI集群往往是其它上层集群技术的必要条件。JNDI集群是Apusic服务器提供的一个服务,一旦启用这个服务,集群的各节点(指Apusic服务器)都拥有一个集群JNDI树,它有别于本地JNDI树,事实上,在JNDI集群节点中,这两棵树是同时存在的。

Apusic JNDI同时具有JNDI负载均衡和失效恢复能力。Apusic JNDI负载均衡和失效恢复能力,可以通过指定JNDI服务的集群节点来实现,也可以通过启动discovery服务,自动发现能够提供JNDI服务的集群节点。

集群

Apusic EJB集群主要面向两个问题:负载均衡和高可用性。值得注意的是,EJB集群一般都是针对EJB远程调用而言,而非本地调用(包括集群节点内部使用远程接口,因为对于这种情况,Apusic会自动优化成本地调用)。

EJB负载均衡指EJB调用通过特定算法分配到多台应用服务器的行为。这里的EJB调用指对EJB Bean接口的调用。然而,Apusic EJB集群还支持Home接口的负载均衡。目前,Apusic EJB集群支持的负载均衡算法有:RANDOMROUND_ROBINWEIGHTEDSTICKY

EJB高可用性指在某集群节点失效的时候,对它的EJB Home接口的调用或者Bean接口的调用会透明地转移到其它有效节点。

集群

JMSJavaEE相当重要的一部分,它为开发异步、可靠、高性能、灵活的系统提供支持。目前广泛应用于EAIEDI等领域。Apusic JMS集群主要包括消息路由和集群队列功能。

消息路由一般用来解决在发送消息的客户端和消息目的地不能直接连通的情况。依赖智能路由算法,Apusic会在JMS网络中选择一个或多个消息路由器(Router)组成一条到达消息目的地的{zy}通路,负责转发消息。

Apusic MQ支持消息队列集群(Message Queue Clustering)。所谓消息队列集群是指在多个Apusic MQ之间建立路由连接,从而组成一个消息路由网络。在网络中任何一个节点上定义的集群队列都将被全部节点所共享,通过任何一个节点向一个集群队列发送/接收消息都是等效的,对客户来说无法察觉是否正在使用集群,集群中网络拓扑结构发生变化对客户也没有任何影响。

当路由节点与其他节点建立连接时,通过发布自身定义的集群队列,从而使集群队列获得共享,无须系统管理员干预,大大减少了路由网络的维护量。使用集群还可以提高系统的可用性,路由网络中单个节点发生故障停机或部分网络无法连通时并不影响集群队列的使用,同时在发送消息时根据各节点的负荷情况对负载进行分配,从而使节点处理能力和网络带宽被充分利用。

?

郑重声明:资讯 【应用中间件产品介绍之三:Apusic - charles qi - JavaEye技术网站】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——