3.2 LiveCycle Data Services ES 服务端架构

  上一篇翻译了LCDS的客户端架构,今天继续LCDS的服务端架构。

 

  LCDS服务端是一个J2EE web服务器和高度可扩展的网络socket服务器的结合。Flex客户端通过通道(channel)发送请求,该请求接着被路由到LCDS服务端上的端点(endpoint)。从端点,请求又被路由到java对象链,该链包括MessageBroker对象,一个服务对象,一个终点对象和最后的适配器对象。适配器可以通过调用本地或后端系统或像JMS服务这样的远程服务完成该请求。下面是LCDS服务端的架构图:

 LCDS Server Arch

端点(Endpoints)
    LCDS有两种端点:基于servlet的端点和基于NIO的端点。NIO代表Java new Input/Output。基于servlet的端点包含在J2EE servlet容器内,这表示servlet替端点处理I/O和HTTP会话。基于servlet的端点由MessageBrokerServlet启动,该Servlet由web应用程序中的web.xml文件配置。除些之外web.xml文件中还注册了一个HTTP会话侦听器(listener),于是LCDS这拥有了HTTP会话属性和侦听绑定的支持能力。

   基于NIO的端点在一个基于NIO的socket服务器中运行。该端点可提供很高的扩展性,因为它不被限制为一个链接一个线程而是一个线程可以处理多个I/O请求。

    Flex客户端使用通道与LCDS的端点通信。客户端的通道和服务端的端点之间有一个映射。它们之间使用相同的消息格式很重要。一个使用AMF消息格式的通道,如AMFChannel,必须使用相应的使用AMF消息格式的端点,如AMFEndpoint或NIOAMFEndpoint。一个使用AMFX消息格式,如HTTPChannel和通道不能于使用AMF消息格式的端点配对。同样,一个使用流的通道必须与使用流的端点配对。

   你可以在WEB-INF/flex目录下的services-config.xml文件中配置端点。

 

MessageBroker

    MessageBroker是LCDS服务端的核心,它负责把消息路由到相应的服务。在端点初始化请求后,它提取消息并传递给MessageBroker。MessageBroker检查消息的终点后把消息传递给预期的服务。如果终点由安全约束保护,MessageBroker于是在传递消息之前运行制验证和授权处理程序。你可以在services-config.xml文件中配置MessageBroker。

 

  服务和终点(Services and destinations)

     服务和终点是LCDS服务端消息处理链上的一下步。系统包括了四个服务和它相应的终点:

  • RemoteingService and RemoteingDesination
  • HTTPProxyService and HTTPProxyDestination
  • MessageService and MessageDestination
  • DataService and DataDestination

    服务是客户端Flex组件消息的目标,可以认为终点是以某种方式配置的服务的实例。例如,一个在Flex客户端使用的RemoteObject组件与RemoteingService通信。你必须指定一个终点ID属性,与远程的相同ID终点的某属性对应,该属性就如你用在它上面调用方法的类。客户端的Flex组件和LCDS的对应关系如下:

  • HTTPService and WebService communicate with HTTProxyService/HTTPProxyDestination
  • RemoteObject communicates with RemotingService/RemotingDestination
  • Producer and Consumer communicate with MessageService/MessageDestination
  • DataService communicates with DataService/DataDestination

   你可以在services-config.xml文件中配置服务和终点,但最好还是把配置放在分开的文件中:

  • RemotingService configured in the remoting-config.xml file
  • HTTPProxyService configured in the proxy-config.xml file
  • MessageService configured in the messaging-config.xml file
  • DataService configured in the data-management-config.xml file

适配器和装配器(Adapter and assemblers)

    适配器和可选的装配器是消息处理链中的最后一步。当消息到达正确的终点后传递给适配器,适配器通过调用本地的或后端和或像JMS服务这样的远程服务来完成请求。一些适配器使用被叫做装配器的层继续中断处理过程。例如,DataDestination可以使用JavaAdapter,而JavaAdapter可以使用HibernateAssembler也Hibernate通信。LCDS在终点和适配器/装配器之间使用如下映射关系:

  • RemotingDestination uses JavaAdapter
  • HTTPProxyDestination uses HTTPProxyAdapter or SOAPAdapter
  • MessageDestination uses ActionScriptAdapter or JMSAdapter
  • DataDestination uses ASObjectAdapter or JavaAdapter
  • JavaAdapter uses HibernateAssembler, SQLAssembler, or a custom assembler

   适配器和装配器和对应的终点在同一个配置文件中配置。尽管LCDS提供了一组丰富的适配器和装配器也不同的系统通信,同样自定义的适配器和装配器可以加入到服务端。类似的,你可以不用在配置文件中把所有的终点配置好,你可以在服务端启动的时候或运行的进行动态配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值