ServiceMix中文教程
http://blog.csdn.net/neusoftware_20063500/article/details/4047253
鏈接:http://blog.csdn.net/juset/archive/2006/12/18/1447626.aspx
?
1.HTTP-binding(ServiceMix)
??
1.4 各組件間傳遞消息流的過程如下:
1.??????? HttpClient:Http客戶端運(yùn)行一個獨(dú)立的Java客戶端程序,通過其中的URLConnection類連接到http://localhost:8912,將request.xml文件發(fā)送到此端口。
2.??????? HttpReceiver:在Http服務(wù)器上(Http server),HttpReceiver通過監(jiān)聽http://localhost:8912端口,得到此消息。
3.??????? HttpReceiver根據(jù)消息的destinationService(目標(biāo)服務(wù))屬性中的信息,將此消息通過NMR發(fā)送給相應(yīng)的stockQuote服務(wù)。
4.??????? stockQuote再將此消息發(fā)送給另一個服務(wù)——soapEndpoint來處理。
5.??????? soapEndpoint處理之后,將響應(yīng)消息返回給stockQuote。
6.??????? stockQuote通過NMR將此相應(yīng)消息發(fā)送給httpReceiver。
7.??????? httpReceiver將相應(yīng)消息發(fā)送到http://localhost:8912端口。
8.??????? HttpClient從端口讀取該響應(yīng)消息。
9.??????? 最終響應(yīng)消息在控制臺輸出。
?
?
?
2.Jms-binding?(ServiceMix)
?
?
2.4消息流按以下方式通過各個組件:
?
?3.BPEL Example(ServiceMix)
?
3.5程序的邏輯流:
1.??????? JMSClient,通過ActiveMQConnectionFactory連接到一個叫"demo.org.servicemix.source"的主題上,并發(fā)送一個包含message.soap file.的文本消息。
2.??????? myComponent, "demo.org.servicemix.source,"主題的一個訂閱者,接收這個消息。
3.??????? myComponent 實(shí)現(xiàn)類,JmsServiceComponent,通過ServiceMix總線發(fā)送消息至PxeBpelEngine,執(zhí)行它的onMessage()方法。destinationService屬性定了了消息的目的地。注意:destinationService屬性在文件servicemix.xml中。
4.??????? PxeBpelEngine通過ServiceMix總線、NMR發(fā)送一個響應(yīng)至myComponent。
5.????? myComponent使用 jmsTemplate bean 發(fā)布消息。.
6.??????? jmsTemplate使用 jmsFactory bean獲得一個到和JMS 主題"demo.org.servicemix.source."相關(guān)的端口的連接。這個消息被發(fā)布在"demo.org.servicemix.source" 主題.
7.????? JMSClient, "demo.org.servicemix.source,"主題的訂閱者,接收這個消息。
8.??????? 響應(yīng)在控制臺上打印。
?
?
4.RSS-binding(ServiceMix)
?
?
?
?
5.File binding(ServiceMix)
?
5.4程序的邏輯流:
1.??????? FilePoller 每1000ms檢索收件箱目錄一次尋找一個文件
2.??????? 一旦在收件箱目錄中找到一個文件,filePoller從workManager處獲得一個線程。這個線程用來處理這個文件。
3.??????? filePoller創(chuàng)建一個包含了將要被傳輸?shù)奈募囊?guī)格化的消息,它把這個規(guī)格化的消息發(fā)送到NMR。NMR把這個消息路由到fileSender組件。
4.??????? fileSender把規(guī)格化的消息轉(zhuǎn)換到一個文件并“發(fā)送”(放置)到發(fā)件箱目錄。
文件傳輸過程中,日志信息被寫到控制臺。
?
?
?6.Basic(ServiceMix)
?
6.4? 消息流按以下方式通過各個組件:
1.??????? Timer組件通過規(guī)格化消息路由(NMR)向inputSender發(fā)送一個消息。
2.??????? inputsender把消息轉(zhuǎn)換(marshals)為一個JMS消息,然后用jmsTemplate bean發(fā)布消息。
3.??????? jmsTemplate用jmsFactorybean獲得一個到和JMS 主題"demo.org.servicemix.source."相關(guān)的端口的連接。這個消息被發(fā)布在"demo.org.servicemix.source" 主題.
4.??????? jencks (the JCA資源適配器)在端口61616上監(jiān)聽消息
5.??????? inputReceiver通過jencks訂閱"demo.org.servicemix.source" 主題并接收JMS消息
6.??????? inputReceiver規(guī)格化JMS消息并通過NMR把它發(fā)送到outputSender
7.??????? outputSender把規(guī)格化的消息marshal為一個JMS消息,并使用jmsTemplate在"demo.org.servicemix.result" 主題上發(fā)布消息。
8.??????? jmsTemplate在"demo.org.servicemix.result" 主題上發(fā)布消息,使用jmsFactory獲得一個到結(jié)果主題的連接。
9.??????? Jencks在61616端口上監(jiān)聽消息。
10.??? jmsTrace訂閱"demo.org.servicemix.result" 主題,并通過jencks接收JMS消息。
11.??? jmsTrace把JMS消息轉(zhuǎn)換成規(guī)格化消息,并通過NMR把它發(fā)送到trace。
12.??? trace把規(guī)格化的消息轉(zhuǎn)換成一個字符串,并在控制臺上記錄日志。
?
每5秒在控制臺上寫一遍日志,還有從trace組件而來的信息。注意,他日ggers&apos,屬性值為“名字”“我的示例工作”“組”,“ServiceMix”用時間戳顯示。
?
?
7.Quartz-binding(ServiceMix)
http://servicemix.apache.org/
總結(jié)
以上是生活随笔為你收集整理的ServiceMix中文教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JBI与SCA的区别
- 下一篇: OSGi介绍及OSGi的Bundle应用