上一篇文章讲到了如何使用Adobe Flex/Flash客户端与LCDS(Adobe LiveCycle Data Services)相连,这篇文章我们着重讲一下LCDS是如何与基于J2EEweb应用服务器相连的。Flex客户端发送请求到LCDS应用服务器端,这一请求经过一系列的Java对象,包括MessageBroker, service, destination and adapter。 最后由Adapter来决定这个请求是在本地直接处理还是需要连接远程的backend服务器处理。

下面这张图就是LCDS服务器架构图:

LCDS服务器有两种类型的endpoints,分别是基于servletendpoint和基于NIOendpoint  NIO主要用来处理Java新的输入输出请求,而servlet包含在J2EE的容器里面,它的作用是处理HTTP会话的输入和输出。NIOendpoint必须运行在基于NIO为基础的服务器上面,它的endpoint处理过程并不是一对一的,而是一对多的。

Flex的客户端应用使用channelLCDSendpoint通信,客户端的channel与服务器端的endpoint存在映射关系,channelendpoint使用相同的信息格式才能让连接成功建立,通讯完成。 一个使用AMF信息格式的channel,例如AMFChannel,必须与使用AMF 信息格式的endpoint配对,例如AMFEndpoint

用户需要在LCDS服务器的WEB/flex目录下找到services-config.xml文件进行配置。下面举个例子,创建AMFChannelAMFEndpoint进行通讯:

<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.  Idchannel class类型定义了客户端使用什么类型的channel来连接服务器

2.  Endpoint元素定义了服务器端的URL路径,端口号以及endpoint的类型

关于客户端通过LCDS与服务器端相连的内容今天就先讲到这里,下面会给大家一个实际案例,看看实际在生产环境中LCDS是如何应用的,谢谢~