建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和記娛棒h88285:Apache Tuscany SCA Java架構指南

?

概述

SCAJava運行時由core和extension組成。Core本色上來說是一個多VM的wiring引擎。該引擎應用IOC(節制反轉)和DI(依附注入)原則來連接組件。

Core

Core在機能方面是簡單而有限的。它將功能單元連接在一路,并供給可以和extension交互的SPI機制。例如象辦事發明,靠得住性,對傳輸協議的支持等特點都是經由過程extension來做的。

Extension

Extension增強SCA運行時的功能。Extesion類型不是固定的。而core則是經由過程供給對extension模塊開放支持來使得設計只管即便機動。

組件實現類型,例如:Spring, Groovy 和Javascript

綁定類型,比如:Axis, CXF ,AMQP ,ActiveMQ, JXTA

數據綁定類型,比如:JAXB, SDO ,XmlBean

接口綁定類型,比如:WSDL, Java

關于若何實現一個extension的具體信息可以在Extensions Guide中查看。

運行時

Core是設計得可以嵌入于許多不合的主機情況下的。例如,core大概用于OSGI容器、零丁的運行時情況、serlvet引擎或J2EE利用辦事器中。運行時的機能根據主機情況不合而不合。

Java SCA運行時的高層概述:

下圖是由關鍵的模塊/包組成的SCA運行時高層視圖

1、 SCA Spec API:由SCA Java Client and Implementation定義的API

2、 API:擴展了SCA Spec API的Tuscany API

3、 Core:運行時實現和SPI擴展機制

4、 Extension:

1. Component(英文原版有差錯) implementation – 擴展說話支持:例如 BPEL,Python,C++,Ruby等

2. Binding – 擴展協議支持:例如 Axis2, CXF等

3. Interface Binding – 擴展辦事定義類型:比如SWDL, Java等

4. Databinding – 擴展數據支持:比如SDO, JAXB等

5、 Host platforms:Tuscany運行時的主機情況

內部高層視圖

參考下圖:

向導歷程

向導歷程是由主機情況節制的。默認的實現是DefaultBootstrapper。運行時由某個成型的SCA Assembly XML文件序列化而來并處置懲罰辦事裝置。

裝載階段處置懲罰SCDL并創建一個內存模型處置懲罰響應的運行時工件(例如組件componet,辦事service,引用reference)

連接階段將對辦事的引用連接起來

裝置模型

SCA裝置模型在Tuscany中是用一系列接口表示的。如下是些關鍵的元素。

SCA component 是設置設置設備擺設擺設化的SCA實現的實例,它可以供給辦事或破費辦事。

SCA service用于聲明實現的可以被外部造訪的辦事

SCA reference用于表示該實現對某些其他實現所供給的辦事的依附。該依附的辦事可以經由過程設置設置設備擺設擺設來指定。

Implementation是用于描述軟件技巧的觀點,例如在面向辦事的利用中實現了一個或多個辦事的Java 類,BEPL,XSLT轉換,C++類。SCA composite也是implementaion。

ComponentType涉及實現的可設置設置設備擺設擺設的方面。

Interface定義了一個或多個營業功能。這些營業功能經由過程Service供給,經由過程Reference讓其他組件應用。辦事是由實現的接口來定義的。現在SCA支持兩種接口類型系統:Java接口、SWDL portType

SCA composite是SCA域中的compositon的根基單元。SCA Composite是組件的裝置,辦事、利用和wire都相互連接。

SCA wire將辦事引用連接到辦事上。

Binding是被辦事和引用所應用的。引用應用綁定來描述造訪機制,該機制用于造訪連接的辦事。辦事應用綁定來描述客戶法度榜樣調用辦事的造訪機制。

Property是斟酌到有的實現設置設置設備擺設擺設必要顯式地設置數據值。該數據值由組件供給,當然也可能濫觴于容器composite的屬性。

Contribution

Tuscany運行時供給了一個框架來支持SCA的contribution。框架可以經由過程下列的兩個擴展點來擴展:

PackageProcessorExtensionPoint:它用于處置懲罰不合的包裝款式或歸檔的擴展,可所以目錄、Jar、OSGI bundle、EAR、War或Zip。

ArtifactProcessorExtensionPoint:它用于處置懲罰特定工件類型的擴展,可所以SWDL,XSD,composite,java類后BEPL。

l 包處置懲罰器會掃描安裝了的contribution,并孕育發生必要處置懲罰的工件列表。當前有支持文件夾/文件系統和 Jar contribution包。為了讓contribution辦事有效,包處置懲罰器要注書自己給包處置懲罰extension 。

l 工件處置懲罰器用于處置懲罰contribution上的每個有效的工件。為了讓contribution辦事有效,工件處置懲罰器要注書自己給工件處置懲罰extension 。對付每個工件,工件處置懲罰器分兩個階段被調用。

? 讀階段:這里是你讀取工件(可所以一個文檔、XML元素或類等等)的地方,組裝描述工件的模型并返回它。SCA  contribution辦事在所有注冊了工件處置懲罰器的工件上調用ArtifactProcessor.read()。要是你的模型引用了其他的模型,不必要立即裝載那些模型,你只必要維持描述引用的信息,在resolve階段,你將會把該信息轉換成指向被引用模型的指針。留意:你沒有需要在這個時候完全讀取并裝載模型,你可以在今后來完成這些事情。

? 解析階段:這個階段讓你有時機解析對其他模型的引用。這個時候,SCA contribution中所有的描述工件的模型都已經讀取,并注冊了工件解析器,籌備被解析。

l 所有可支配的composite應該在現在籌備支配到SCA域中。

包處置懲罰器會掃描安裝了的contribution,并孕育發生必要處置懲罰的工件列表。當前有支持文件夾/文件系統和Jar contribution包。為了讓contribution辦事有效,包處置懲罰器要注書自己給包處置懲罰extension 。

工件處置懲罰器用于處置懲罰contribution上的每個有效的工件。為了讓contribution辦事有效,工件處置懲罰器要注書自己給工件處置懲罰extension 。對付每個工件,工件處置懲罰器分兩個階段被調用。

? 讀階段:這里是你讀取工件(可所以一個文檔、XML元素或類等等)的地方,組裝描述工件的模型并返回它。SCA contribution辦事在所有注冊了工件處置懲罰器的工件上調用ArtifactProces和記娛棒h88285sor.read()。要是你的模型引用了其他的模型,不必要立即裝載那些模型,你只必要維持描述引用的信息,在resolve階段,你將會把該信息轉換成指向被引用模型的指針。留意:你沒有需要在這個時候完全讀取并裝載模型,你可以在今后來完成這些事情。

? 解析階段:這個階段讓你有時機解析對其他模型的引用。這個時候,SCA contribution中所有的描述工件的模型都已經讀取,并注冊了工件解析器,籌備被解析。

所有可支配的composite應該在現在籌備支配到SCA域中。

實現擴展

實現擴展認真實現類型的支持,例如Java,Script和BEPL

綁定擴展

綁定擴展認真對綁定類型進行支持,例如web service,JMS,JSON-RPC和RMI

接口擴展

接口擴展認真接口類型的擴展,例如Java接口和WSDL 1.1 portType

數據綁定擴展

請看我翻譯的Tuscany數據綁定指南

Composite 激化

在composite完備地設置設置設備擺設擺設后,就能在SCA域中激活它。Tuscany運行時用以下步驟激化composite:

1、 構建composite:這個階段,composi和記娛棒h88285te模型更進一步地正規化來方便運行時的交互。元數據在service/reference提升后統一化了。根據這個扁平模型,我們可以獲取所有的組件級信息。

2、 設置設置設備擺設擺設composite:這個階段,composite層次布局用于導航組件實現的設置設置設備擺設擺設信息。引用綁定和辦事經由過程供給者工廠來創建運行時組件以及外部辦事之間的連接。

3、創建運行時連接(wire):這個階段,為組件引用和組件辦事以選定的綁定形式創建運行時連接。運行時連接是一個調用鏈的聚攏。這些調用鏈按照操作來分成區。每個調用鏈都由一系列的調用器和攔截器構成。調用器供給到綁定協講和實現技巧的邏輯調用。攔截器是特定類型的調用器,為調用它供給了附加的功能,比如數據傳輸和事務節制。對付一個組件引用,我們創建運行時連接(wire)來描述以選定綁定的形式對外的調用。對付組件辦事,我們創建運行時連接 (wire)來描述對實現的對內調用。回調連接(callback wire)能附加到組件辦事上來描述來自辦事的一個回調調用。

4、啟動composite:這個階段,由ImplementationProvider、ReferenceBindingProvider和 ServiceBindingProvider定義的start()回調措施會被調用。終極,組件,組件引用和組件辦事被初始化而辦事于組件和記娛棒h88285的交互。辦事 監聽 器會啟動,從而吸收來自綁定層(binding layer)的入內哀求。

調用概述

調用會被分發到WireInvocationHandler

WireInvocationHandler查找精確的InvocationChain

然后創建一個消息,設置有效負載,設置TargetInvoker,并通報消息給下層鏈

當消息到達鏈的末尾,TargetInvoker會被調用,現在輪到TargetInvoker認真叫調用分發到目標

存儲在outbound界限上的TargetInvoker當連接源的感化域值即是或小于目標的感化域值時,容許緩存目標實例。運行時情況經由過程 Inboundwire和Outboundwire供給組件。調用鏈附著于組件連接(wire)中,是以是無狀態的。和記娛棒h88285以是調用鏈可以具有動態行徑,例如新攔截器的參與和從新連接。

裝載SCA裝置

工件處置懲罰器用于處置懲罰contribution上的每個有效的工件。為了讓contribution辦事有效,工件處置懲罰器要注書自己給工件處置懲罰extension 。對付每個工件,工件處置懲罰器分兩個階段被調用。

? 讀階段:這里是你讀取工件(可所以一個文檔、XML元素或類等等)的地方,組裝描述和記娛棒h88285工件的模型并返回它。SCA contribution辦事在所有注冊了工件處置懲罰器的工件上調用ArtifactProcessor.read()。要是你的模型引用了其他的模型,不必要立即裝載那些模型,你只必要維持描述引用的信息,在resolve階段,你將會把該信息轉換成指向被引用模型的指針。留意:你沒有需要在這個時候完全讀取并裝載模型,你可以在今后來完成這些事情。

? 解析階段:這個階段讓你有時機解析對其他模型的引用。這個時候,SCA contribution中所有的描述工件的模型都已經讀取,并注冊了工件解析器,籌備被解析。

裝載Java SCA

SCA辦事裝置以SCDL文件的形式被宣布到SCA域中。Tuscany運行時工件處置懲罰器將SCDL裝載成一系列模型工具。這些模型工具是一系列持有元數據信息的Java bean。

有兩種裝載器:

StAXElementLoader:從StAX(Streaming API for XML)事故載入XML元素

ComponentTypeLoader:經由過程解析文件或自察機制來載入實現的組件類型

裝載組件類型

為特定的實現載入組件類型定義:

若何做是實現規范

大概會裝載XML文件(該文件由詳細實現來定位)

大概自察實現工件(例如 Java評釋機制)

或其他的任何要領

Loading composite componentType Loader

從供給的URL中載入SCDL

從composite包解壓并載入SCDL

POJO componetType Loader

自察Java 評釋

使用可插入的評釋處置懲罰框架來自察Java類

運行時工件的類圖

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
南粤风采36选7预测最准确 江苏时时彩平台 凯发彩票2019年最新 95后赚钱创业故事 河南22选5好运3复试 安徽十一选五走势图- 台湾棒球比分直播 赚钱联盟给我打电话说我刷扫码量 河北时时彩开奖结果 七星彩走势图体彩网