技术开发 频道

使用J2EE设计面向服务的体系结构框架

    下面列出了 SOA 框架中进行交互的各种组件。这是一种典型的 MVC 2 框架。

    *客户(Client):用户通过 Web 浏览器与不同的应用程序交互,浏览器作为应用程序的客户。比如,出纳部门的用户可能要输入帐单细节并把信息提交给应用程序。可以使用 JSP 页面和 XHTML 来呈现客户页面。

    *应用程序控制器(Application controller):应用程序控制器是您的主控制器 servlet。它负责初始化、委派请求和响应请求处理程序。

    *请求处理程序(Request processor):这是一个 Java 类,通过调用相应的请求执行程序完成要求的处理,对请求进行预处理。这种调用采用命令模式。

    *请求执行程序(Request handlers):请求执行程序完成具体请求的活动,比如与服务交互,向不同的企业信息系统(enterprise information systems,EIS)增加或检索信息。请求执行程序依靠业务定位程序发现相应的服务,然后通过这些服务访问需要的 EIS 信息。

    *业务定位程序(Business locators):这些程序负责隐藏查找服务的复杂性,并提供缓存逻辑。业务定位程序可以采用多种形式,比如 Web 服务定位程序、EJB 组件定位程序或者 JMS 定位程序。

    *会话 Facades(Session Facades):通过聚合来自多个系统或服务的方法,简化复杂对象的视图。会话 facades 是 EJB Web 服务方法的包装器。

    *EJB Web 服务(EJB Web services):根据 EJB 1.4 规范,Web 服务端点可以模型化为无状态的会话 bean。如前所述,这种技术有许多优势。

    *数据访问接口(Data access interfaces):使用不同的技术(比如 EJB-CMP、JDO、DAO) 和不同的持久性技术访问 EIS,所使用的访问技术取决于接口需求以及获取、插入或更新的数据量。这一层负责与 EIS 进行交互,并以相应的 EJB Web 服务方法所期望的格式把数据返回给这些方法。

    *MQSeries/JCA/CCF:现有的基于主机的服务可以公开为 Web 服务,从而向外界展示它们。Web 服务客户使用基于 HTTP 的 SOAP 协议与 EJB Web 服务交互。EJB 方法通过 JMS 协议向 MQSeries 队列发送请求。(使用 MQSeries 是与基于主机的应用程序交互的一种方式。)主机端的 MQSeries 服务器触发相应的基于 COBOL 的程序,后者为与后台系统(比如 IMS DC)进行交互提供必要的逻辑。然后这些程序把响应返回到队列中,应用程序逻辑检索这些响应并返回给 EJB 方法。SOAP 消息可以通过不同协议进行传输,比如 HTTP、HTTPS 和 JMS,但为了统一起见,本例子只使用 HTTP 和 HTTPS。

    这些组件提供了企业内部应用程序面向服务体系结构的基础。接下来讨论把服务向外界公开。

    向外界公开服务

    如果准备向外部用户公开服务,您需要某种安全约束来保证只有授权的用户才能访问服务。一种方法是提供另外的 Web 服务层,过滤掉禁用的 Web 服务请求,并提供登录和安全约束。这种过滤方式还应提供一种工具,向每一客户只公开授权给该用户的服务子集。

    图 3 说明了企业外部应用的面向服务体系结构。它向外界公开了细粒度的服务。

    图 3. 向外界公开的面向服务体系结构

     

0
相关文章