免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Apache Tuscany SCA Java 架構(gòu)指南,Java實(shí)例教程,Java系列教...

Apache Tuscany SCA Java 架構(gòu)指南

www.firnow.com 時(shí)間 : 2008-01-21 作者:佚名 編輯:本站 點(diǎn)擊: 589 [ 評(píng)論 ]

-

概況

SCA JAVA 運(yùn)行時(shí)是由內(nèi)核和擴(kuò)展兩部分組成。內(nèi)核本質(zhì)上是一個(gè)連接多個(gè)VM的引擎,使用依賴注入(Dependency Injection

)和控制反轉(zhuǎn)( Inversion of Control
)將構(gòu)件連接在一起。

內(nèi)核

其核心是設(shè)計(jì)簡(jiǎn)單和功能有限的。它將不同的功能單元連接到一起,并且提供SPIs以讓擴(kuò)展之間可以互動(dòng),例如服務(wù)發(fā)現(xiàn),可靠性,支持透明協(xié)議,等等。這些功能都以擴(kuò)展的方式提供。

擴(kuò)展

擴(kuò)展提高了SCA運(yùn)行時(shí)的功能型。擴(kuò)展類型并不固定,Tuscany的核心通過提供一個(gè)可調(diào)整的模型的設(shè)計(jì)使其盡可能的靈活。現(xiàn)在,已知的擴(kuò)展類型有:

  • 組件實(shí)現(xiàn)類型:例如,spring、Groovy、Javascript
  • 綁定類型:例如:Axis、CXF、AMQP、ActiveMQ、JXTA
  • 數(shù)據(jù)綁定類型:例如,JAXB、SDO、XmlBeans
  • 接口綁定類型:例如,WSDL、Java

具體細(xì)節(jié)可參考擴(kuò)展開發(fā)向?qū)?/a>

JAVA SCA 運(yùn)行時(shí)高層次概覽

下圖是Java SCA運(yùn)行時(shí)的一個(gè)高層次概覽,其中包括以下關(guān)鍵模塊:

  1. SCA規(guī)格API:SCA JAVA客戶端的API和執(zhí)行規(guī)格
  2. API:實(shí)現(xiàn)SCA規(guī)格API的Tuscany API
  3. 接口綁定:支持服務(wù)定義的類型,例如WSDL、Java……
  4. 數(shù)據(jù)綁定:實(shí)現(xiàn)數(shù)據(jù)支持,例如SDO、JAXB……
  5. 主機(jī)平臺(tái):提供Tuscany運(yùn)行時(shí)的環(huán)境

bootsrap

Bootstrap 進(jìn)程受主機(jī)環(huán)境控制。默認(rèn)進(jìn)程是由DefaultBootstrapper實(shí)現(xiàn)的。運(yùn)行時(shí)進(jìn)程服務(wù)使用SCA XML形式進(jìn)行集成,也可以采用其他形式:

 

集成模型

SCA的裝配模型在Tuscany中是通過一系列接口實(shí)現(xiàn)的。以下是一些關(guān)鍵件:

發(fā)布

Tuscany運(yùn)行時(shí)提供了一個(gè)框架,以支持SCA發(fā)布。該框架可針對(duì)以下擴(kuò)展點(diǎn)進(jìn)行擴(kuò)展:

PackageProcessorExtensionPoint:負(fù)責(zé)處理不同的包或者檔案格式,例如:文件夾、JAR包、osgi包、EAR、WAR以及ZIP。

ArtifactProcessorExtensionPoint:負(fù)責(zé)處理具體類型的服務(wù),例如:WSDL、XSD、構(gòu)件、JAVA類、BPEL。

 

實(shí)現(xiàn)擴(kuò)展

實(shí)現(xiàn)擴(kuò)展負(fù)責(zé)支持實(shí)現(xiàn)方式的類型:比如Java、Script、BPEL等。

綁定擴(kuò)展

綁定擴(kuò)展負(fù)責(zé)支持綁定方式的類型:Web服務(wù)、JMS、JSON-RPC以及RMI。

接口擴(kuò)展

接口擴(kuò)展負(fù)責(zé)支持接口的類型,例如Java接口和WSDL1.1 portType。

數(shù)據(jù)綁定擴(kuò)展

請(qǐng)參考Tuscany Databinding Guide。

復(fù)合組件激活

在一個(gè)復(fù)合組件在配置好以后,它可以在SCA域進(jìn)行激活,Tuscany運(yùn)行時(shí)通過以下步驟去激活它:

1、構(gòu)建:在此階段,復(fù)合組件被進(jìn)一步常態(tài)化,以更容易和運(yùn)行時(shí)互動(dòng),元數(shù)據(jù)在服務(wù)/引用升級(jí)以后進(jìn)行合并?;诒馄降哪P?,我們可以在構(gòu)建級(jí)獲取全部的信息。

2、配置:在此階段,復(fù)合組件的層次被引導(dǎo)到配置一個(gè)組件的實(shí)現(xiàn),在組件間以及組件和外部服務(wù)之間,引用綁定和服務(wù)綁定會(huì)在以后的步驟中用來創(chuàng)建運(yùn)行時(shí)連接。

3、創(chuàng)建運(yùn)行時(shí)連接: 在此階段,通過選定的綁定方式,創(chuàng)建了組件引用和組件服務(wù)的運(yùn)行時(shí)連接。運(yùn)行時(shí)連接是調(diào)用鏈的集合。每個(gè)執(zhí)行鏈包含一組執(zhí)行器和攔截器。執(zhí)行器為綁定協(xié)議和實(shí)現(xiàn)技術(shù)提供調(diào)用的邏輯,攔截器是一種特殊的執(zhí)行器,它為方法執(zhí)行提供了附加的邏輯,例如數(shù)據(jù)轉(zhuǎn)換以及交易控制。對(duì)于一個(gè)組件引用來說,我們創(chuàng)建運(yùn)行時(shí)連接來表示通過綁定的對(duì)外執(zhí)行;對(duì)于組件服務(wù)呢,我們創(chuàng)建運(yùn)行時(shí)連接表示對(duì)實(shí)現(xiàn)類型的向內(nèi)連接?;卣{(diào)連接可以被附加到組件服務(wù)之上,表示來自服務(wù)的回調(diào)執(zhí)行。

4、啟動(dòng)服務(wù)組件:在這個(gè)階段,ImplementationProvider, ReferenceBindingProvider和ServiceBindingProvider 定義的start() 回調(diào)方法將被調(diào)用,最后,組件、組件引用以及組件服務(wù)被初始化去服務(wù)組件間的互動(dòng)。服務(wù)監(jiān)聽器被啟動(dòng)已接受從綁定層來的連接請(qǐng)求。

調(diào)用概況

1、調(diào)用被分派到WireInvocationHandler

2、WireInvocationHandler 尋找正確的InvocationChain

3、創(chuàng)建一條消息,設(shè)值payload,設(shè)值TargetInvoker,然后將消息通過鏈向下傳遞

4、當(dāng)消息到達(dá)鏈的底部后,TargetInvoker 會(huì)被調(diào)用,它按順序?qū)δ繕?biāo)進(jìn)行調(diào)度

5、當(dāng)將TargetInvoker 存儲(chǔ)后,當(dāng)連接源的可視范圍等于或小于目標(biāo)時(shí)(例如:request-》composite),外向端允許將目標(biāo)實(shí)例進(jìn)行緩存。

運(yùn)行時(shí)提供具有InboundWires 和OutboundWires的構(gòu)件。InvocationChains 被構(gòu)件連接所持有,因此它是無狀態(tài)的,允許引入新的攔截器以及重新連接等動(dòng)態(tài)事件的發(fā)生。

加載SCA部件

組件處理器

組件處理器被用來處理發(fā)布包中的組件,為了保持對(duì)發(fā)布服務(wù)可用,組件處理器需要使用組件處理擴(kuò)展進(jìn)行自我注冊(cè),組件處理器會(huì)在以下兩個(gè)步驟進(jìn)行調(diào)用:

  • 讀?。?在這里你可以讀取一個(gè)組件(一個(gè)文檔、XML、類等等),實(shí)例化一個(gè)代表組件的模型并銷毀它。SCA發(fā)布服務(wù)對(duì)注冊(cè)了ArtifactProcessor的組件調(diào)用ArtifactProcessor.read() 方法,如果你的模型對(duì)另外一個(gè)模型有引用,不要試圖也立即實(shí)例化另一個(gè)模型,你應(yīng)該只保留引用信息,在處理階段這將變成一個(gè)指針,注意現(xiàn)在你沒必要完全讀取并實(shí)例化你的模型,可以延遲實(shí)例化。
  • 處理:本階段給你機(jī)會(huì)使你可以處理對(duì)其他模型的引用(WSDL,類,其他復(fù)合組件,或者一個(gè)組件類型(componentType))。這時(shí),所有代表發(fā)布包里組件的模型被全部讀取出來,并且在發(fā)布的 ArtifactResolver進(jìn)行注冊(cè),準(zhǔn)備處理。

加載JAVA SCA

SCA服務(wù)部件在SCA里以SCDL文件的形式進(jìn)行部署,Tuscany運(yùn)行時(shí)組件處理器加載這些SCDL到模型對(duì)象,這些對(duì)象包含了元數(shù)據(jù)。

有兩種主要的加載器:

1、StAXElementLoader:從StAX 事件加載XML

2、ComponentTypeLoader:為一個(gè)實(shí)現(xiàn)加載組件類別或者處理一個(gè)文件

加載組件類別

為實(shí)現(xiàn)規(guī)范加載組件類型定義

1、如何實(shí)現(xiàn)是實(shí)現(xiàn)規(guī)范

運(yùn)行時(shí)組件的類圖

 

 


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Apache Tuscany SCA Java 架構(gòu)指南
我所了解的微服務(wù)架構(gòu),90%以上的程序員都想知道
三句話講清楚SOA - - SOA面向服務(wù)架構(gòu)
SCA(Service Component Architecture)編程模型入門
SOA將使C++在2008年重現(xiàn)活力
java筆試題大匯總(二)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服