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