SOA_and_ESB(WMB)5

与J2EE的系统集成,关键是看应用系统是否按照上面所描述的模型方式来建设,如果系统的逻辑层次分明,则集成会相对容易,反之会麻烦。我们在集成J2EE应用的时候,比较关注的是该系统能抽取哪些服务重用,是通过什么样的方式将服务发布出来。一般说来,在J2EE系统中,Java Bean、POJO、EJB、JMS、Servlet、JCA等是服务的常见封装方式。我们建议在和ESB进行集成的时候,采用JMS、POJO是比较方便、简单的方式。

3.1.2    与基于MQ系统的集成

WebSphere MQ是非常通用、成熟的商业消息中间件,应用系统对外交互的接口为消息队列,同时提供消息/数据传输的可靠性保障。MQ消息中间件一般同时提供同步、异步两种通讯方式。使用消息队列,消息系统可以管理很多通讯细节。此种接口方式为典型松耦合模式,是应用集成普遍使用的方式之一,可以实现接口的重用能力。目前, IT系统中使用消息中间件比较多,技术也比较成熟,因此,采用面向消息队列的集成是非常可行的方案。

下面是采用MQ连接企业服务总线的示意图:

 

 

3.1.3    与基于CICS系统的集成

CICS在其客户机端支持JAVACCOBOL等语言,也采用统一的应用编程接口(API),客户可以采用两种方式来编制CICS的客户端程序,一种是External Call Interface(ECI),另一种是External Presentation Interface(EPI)。另外CICS也提供了符合J2EE JCA规范的适配器

下面是CICS服务和企业服务总线集成的示意图:


 

3.1.4    与基于邮件系统的集成

基于邮件(如Domino)的应用提供了多种方式的集成,可以通过Java调用、本地调用、Web Service、消息等方式和ESB进行交互。考虑到我们建议的ESB的技术特点,首先我们建议采用和CICS类似的方式,通过消息的方式和ESB进行集成,可以参考上面的图例。

另外,邮件系统一般提供了比较好的Web Service支持,可以直接接受SOAP的请求,因此通过Web Service调用也是可行的。

 

3.1.5    与基于C/S架够系统的集成

基于C/S的应用是上世纪九十年代比较普遍的方式,对集成的考虑比较少。由于一般C/S的应用将页面和应用逻辑混在了一起,因此不容易抽象出后台服务给其他系统使用。对C/S的应用改造会有比较多的工作量。C/S方式的应用多数是采用VBPBDelphi等工具实现,集成的困难是在页面和逻辑的分离上。考虑到我们建议的ESB特点,建议通过MQ消息中间件的方式进行集成,可以参考CICS的图例。但是和CICS集成的重要区别是C/S系统要通过使用本地语言编程来实现连接MQ的适配器。

 

3.2    平台扩展性与高可用性的实现

ESB平台我们建议使用IBMWebSphere Message Broker实现,它是一个高性能的产品,在国内外许多大型的系统中有成功应用的案例。Message BrokerMQ都提供了Cluster群集解决方案,通过横向扩展提高系统的吞吐能力,下面是示意图:

 

ESB是一个服务于广大后台系统的关键系统,除了要求系统具备足够的吞吐能力外,也要求系统具有相当高的可用性,来支持业务的连续运行。

高可用性的关键在于避免系统的单点故障 (Single Point Of Failure) WebSphere Message Broker完全提供了集群功能,实现了整个系统能够有效支持近似7*24小时不间断运行。当系统需要升级或安装补丁时,可对集群中的成员进行逐一更新,支持系统在升级期间不间断运行。

多个企业服务总线可以共同组成一个 Cluster 环境,实现系统的高可用性。另外,连接外部系统的Adapter 需要服务于固定的系统连接,需要利用系统的 HACMP 实现高可用性。

对于采用软件 Cluster 方式的部分,当其中的一个部分需要升级或安装补丁时,可以让其中的一个成员暂时停止服务,对其进行相应的操作后重新加入 Cluster 中。按照此方法可以对每个成员逐一进行处理。

需要说明的是,以上两方面都需要对系统、中间件和应用进行仔细的规划。并且在进行充分的测试后,再在生产系统中使用。

3.3    平台安全性的考量

ESB平台是应用集成的核心和基础,对安全性有很高的要求。一般来说,对安全的考虑主要涉及到认证、授权两个方面,认证主要是判断使用者是不是”合法”的ESB用户,授权是判断使用者有没有权限访问ESB特定中的资源。对于我们推荐使用的ESB产品WebSphere Message Broker,对与安全有比较详细的考虑。

WebSphere Message Broker中的安全管理工作包括了配置、运行工具、性能问题确定、资料收集等,参与到上述任务的人员都需要WebSphere Message Broker一定的授权。如果希望可以正确地使用系统授权,管理员必须进行一些操作。同时,由于WebSphere Message Broker涉及比较多的MQ资源,对MQ安全控制也是考虑的重要因素。

对于WebSphere Message Broker,授权主要关注谁有权限存取系统中的资源,确保想访问系统资源的用户是被许可的,例如:

    可以配置WebSphere Message Broker,如使用mqsicreatebroker命令

    存取系统队列,如放置一个消息到消息流的启动队列中

    在开发工作台中进行操作,如部署消息流到运行环境中

    发布、订阅主题

对于系统运行时候的服务,也是需要进行授权才可以访问的。WebSphere Message Broker中的运行对象存在于Broker Domain中,每一个运行对象都有一个存取控制列表(Access Control List,ACL),ACL决定了哪个用户或者组有权限存取运行对象。ACL中的条目明确谁可以查看、修改运行对象。需要说明的是ACL虽然许可或者拒绝用户访问运行对象,但ACL并不对运行对象进行保护。

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营