上一篇文章讲到了如何使用Adobe Flex/Flash客户端与LCDS(Adobe LiveCycle Data Services)相连,这篇文章我们着重讲一下LCDS是如何与基于J2EE的web应用服务器相连的。Flex客户端发送请求到LCDS应用服务器端,这一请求经过一系列的Java对象,包括MessageBroker, service, destination and adapter。 最后由Adapter来决定这个请求是在本地直接处理还是需要连接远程的backend服务器处理。
LCDS服务器有两种类型的endpoints,分别是基于servlet的endpoint和基于NIO的endpoint。 NIO主要用来处理Java新的输入输出请求,而servlet包含在J2EE的容器里面,它的作用是处理HTTP会话的输入和输出。NIO的endpoint必须运行在基于NIO为基础的服务器上面,它的endpoint处理过程并不是一对一的,而是一对多的。
Flex的客户端应用使用channel与LCDS的endpoint通信,客户端的channel与服务器端的endpoint存在映射关系,channel和endpoint使用相同的信息格式才能让连接成功建立,通讯完成。 一个使用AMF信息格式的channel,例如AMFChannel,必须与使用AMF 信息格式的endpoint配对,例如AMFEndpoint。
用户需要在LCDS服务器的WEB/flex目录下找到services-config.xml文件进行配置。下面举个例子,创建AMFChannel与AMFEndpoint进行通讯:
<channels>
…
<channel-definition id=“samples-amf”
Type=”mx.messaging.channels.AMFChannel”>
<endpoint url=”http://servername:8400/myapp/messagebroker/amf” port=”8700”
Type=”flex.messaging.endpoints.AMFEndpoint”/>
</channel-definition>
</channel>
下面对这些配置文件中的元素做一个简单的解释:
1. Id和channel class类型定义了客户端使用什么类型的channel来连接服务器
2. Endpoint元素定义了服务器端的URL路径,端口号以及endpoint的类型
关于客户端通过LCDS与服务器端相连的内容今天就先讲到这里,下面会给大家一个实际案例,看看实际在生产环境中LCDS是如何应用的,谢谢~