上一篇文章講到了如何使用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是如何應用的,謝謝~