一、背景介紹
Tuscany 是 Apache 的開(kāi)源項(xiàng)目,它是 IBM、Oracle、SAP 等廠商聯(lián)合成立的 SOA 標(biāo)準(zhǔn)化組織 -OSOA 支持下開(kāi)發(fā)出的 SCA 框架,它既是開(kāi)源界 SCA 的試金石,也是當(dāng)前開(kāi)源界最成熟的 SCA (SCA: Service Component Architecture)框架之一。
tuscany是一套開(kāi)源的SCA框架模型,是做SOA的基礎(chǔ)架構(gòu),SOA它是面向服務(wù)的體系結(jié)構(gòu),是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱(chēng)為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)
二、知識(shí)剖析
SCA是什么?
SCA為構(gòu)建基于SOA的應(yīng)用和解決方案提供了編程模型。它基于這樣的理念:將業(yè)務(wù)功能作為一系列的服務(wù)而提供,并由這一系列的服務(wù)組裝起來(lái)的解決方案來(lái)滿(mǎn)足特定業(yè)務(wù)需求。這些組合的應(yīng)用既包括為應(yīng)用而新創(chuàng)建的特定服務(wù),也包括源自已已存在系統(tǒng)和應(yīng)用的業(yè)務(wù)邏輯,這些業(yè)務(wù)邏輯作為組合構(gòu)件的一部分被復(fù)用。SCA既為服務(wù)的組合也為服務(wù)構(gòu)件的創(chuàng)建提供了模型,包括對(duì)SCA組組合構(gòu)件中對(duì)已存在應(yīng)用功能的復(fù)用。
(2)
SCA的基礎(chǔ)工件就是component,它是SCA的構(gòu)成單元。構(gòu)件(component)由一個(gè)實(shí)現(xiàn)的可配置(implementation)實(shí)例所組成。在該構(gòu)件中,實(shí)現(xiàn)是提供業(yè)務(wù)功能的程序代碼片段。該業(yè)務(wù)功能作為服務(wù)(service)而提供,為其他構(gòu)件所使用。實(shí)現(xiàn)也許依賴(lài)于由其他構(gòu)件所提供的服務(wù),這些依賴(lài)被稱(chēng)作”引用”(reference)。實(shí)現(xiàn)可以有一個(gè)可設(shè)置的屬性(properties),該屬性是可以影響業(yè)務(wù)功能操作的數(shù)據(jù)值。構(gòu)件通過(guò)提供屬性值和連線(wire)到由其他構(gòu)件提供服務(wù)的引用來(lái)配置實(shí)現(xiàn)。
三、常見(jiàn)問(wèn)題
Tuscany的例子很少。官網(wǎng)已經(jīng)不維護(hù)了,建議多百度,看師兄日?qǐng)?bào)。
四、解決方案
SCA裝配模型在Tuscany中是用一系列接口表示的。如下是些關(guān)鍵的元素。
SCA component 是配置化的SCA實(shí)現(xiàn)的實(shí)例,它可以提供服務(wù)或消費(fèi)服務(wù)。
SCA service用于聲明實(shí)現(xiàn)的可以被外部訪問(wèn)的服務(wù)
SCA reference用于表示該實(shí)現(xiàn)對(duì)某些其他實(shí)現(xiàn)所提供的服務(wù)的依賴(lài)。該依賴(lài)的服務(wù)可以通過(guò)配置來(lái)指定。
Implementation是用于描述軟件技術(shù)的概念,例如在面向服務(wù)的應(yīng)用中實(shí)現(xiàn)了一個(gè)或多個(gè)服務(wù)的Java 類(lèi),BEPL,XSLT轉(zhuǎn)換,C++類(lèi)。SCA composite也是implementaion。
Interface定義了一個(gè)或多個(gè)業(yè)務(wù)功能。這些業(yè)務(wù)功能通過(guò)Service提供,通過(guò)Reference讓其他組件使用。服務(wù)是由實(shí)現(xiàn)的接口來(lái)定義的?,F(xiàn)在SCA支持兩種接口類(lèi)型系統(tǒng):Java接口、SWDL portType
SCA composite是SCA域中的compositon的基礎(chǔ)單元。SCA Composite是組件的裝配,服務(wù)、應(yīng)用和wire都互相連接。
Binding是被服務(wù)和引用所使用的。引用使用綁定來(lái)描述訪問(wèn)機(jī)制,該機(jī)制用于訪問(wèn)連接的服務(wù)。服務(wù)使用綁定來(lái)描述客戶(hù)程序調(diào)用服務(wù)的訪問(wèn)機(jī)制。
Property是考慮到有的實(shí)現(xiàn)配置需要顯式地設(shè)置數(shù)據(jù)值。該數(shù)據(jù)值由組件提供,當(dāng)然也可能來(lái)源于容器composite的屬性。
五、擴(kuò)展思考
什么是Dubbo?它們之前區(qū)別?
提問(wèn)與回答

“我們相信人人都可以成為一個(gè)工程師,現(xiàn)在開(kāi)始,找個(gè)師兄,帶你入門(mén),掌控自己學(xué)習(xí)的節(jié)奏,學(xué)習(xí)的路上不再迷?!薄?/p>
這里是技能樹(shù).IT修真院,成千上萬(wàn)的師兄在這里找到了自己的學(xué)習(xí)路線,學(xué)習(xí)透明化,成長(zhǎng)可見(jiàn)化,師兄1對(duì)1免費(fèi)指導(dǎo)??靵?lái)與我一起學(xué)習(xí)吧 !