您的位置:首页 > 运维架构 > 网站架构

3.2 LiveCycle Data Services ES 服务端架构

2009-04-08 16:12 363 查看
上一篇翻译了LCDS的客户端架构,今天继续LCDS的服务端架构。

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



端点(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提供了一组丰富的适配器和装配器也不同的系统通信,同样自定义的适配器和装配器可以加入到服务端。类似的,你可以不用在配置文件中把所有的终点配置好,你可以在服务端启动的时候或运行的进行动态配置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: