tuscany[工程項目]

tuscany[工程項目]
tuscany[工程項目]
更多義項 ▼ 收起列表 ▲

tuscany是Apache組織關於SOA實現的一個開放源碼的工程項目 Apache組織關於SOA實現的一個開放源碼的工程項目.該項目主要基於SCA,SDO,DAS等標準上實現的。 T

引言

如今在企業級套用中,Ajax、Widget、RSS/Atom 等 Web 2.0 技術正在得到越來越廣泛的使用,這些技術不但產生了良好的用戶體驗,同時也來越來越多地影響著許多前端系統的編程模式和系統架構。許多傳統的 Java EE 產品和框架也在越來越多地引入這些 Web 2.0 技術,如 Struts2 和 JSF 都有了越來越完善的 Ajax 擴展,Portal 產品中也基於 Dojo 等 javascript 框架引入部分刷新等機制,大幅提升了性能和用戶體驗。可以看出,Web 2.0 不僅是網際網路套用的概念,它為企業級套用乃至整個軟體行業都產生著深遠影響。

基於 SOA 的企業套用,要考慮和 Web 2.0 的結合,首先需要解決的是怎樣將各種各樣的服務與那些 Web 2.0 技術整合在一起,在很多時候服務端和客戶端的整合是具有一定難度的。SCA 作為一種跟具體語言、平台無關的 SOA 編程模型,必然需要考慮那些 SOA 傳統技術與 Web 2.0 技術的整合。Apache Tuscany 作為開源界最成熟的 SCA 框架之一,在這方面提供了很多支持。本文正是從這個角度出發,結合實例介紹 Tuscany 在 Web 2.0 方面提供的諸多功能,同時對 SCA 和一些典型的 Web 2.0 技術作一定的介紹。

Tuscany 簡介

SCA 的基本概念以及 SCA 規範的具體內容並不在本文的範疇之內,有興趣的讀者可以通過一些相關文檔了解相關內容,這也是閱讀本文的基礎。下面本文首先對 Tuscany 框架做一定的介紹。

Tuscany 是 Apache 的開源項目,它是 IBM、Oracle、SAP 等廠商聯合成立的 SOA 標準化組織 -OSOA 支持下開發出的 SCA 框架,它既是開源界 SCA 的試金石,也是當前開源界最成熟的 SCA 框架之一。

Tuscany 基本架構

圖 1 為 Tuscany 的基本架構圖,從圖中可以看出,作為一個輕量級 SCA 框架,Tuscany 提供了非常鬆散耦合的框架結構。主要有以下幾個特點:

· Tuscany 是平台無關的可嵌入框架,可以在各種 Hosting Platform 上運行,如 Tomcat,JBoss,WAS 等 Web 容器上運行,也可以在 J2SE 環境下運行。

· Tuscany 的核心模組提供了 SCA 規範的 API 實現,Tuscany 系統的 SPI 接口,一些系統基本實現(如事件,工廠類,存儲等),以及一整套擴展機制,這些擴展機制為 Tuscany 整合各個平台的服務提供了基礎。

Tuscany 的擴展是完全鬆散耦合的,框架本身提供了大量的擴展實現,用戶也可以在自己的系統中擴展 Tuscany 的實現,只需要遵循 Tuscany 的擴展規範以及 API 接口。 Tuscany 主要有以下幾個方面的擴展:

· Implementation:SCA 組件(Component)的實現方式,一個 SCA 組件可以由各種語言或技術平台實現,如:POJO,EJB,Spring Bean,bpel 流程,各種腳本語言等等。

· Binding:是 SCA 的綁定(Binding)規範的實現,SCA 服務(Service)和引用(Reference)的綁定方式,即一個 SCA 服務可以暴露為 Web Service,Java RMI 服務,http 資源,jms 訊息等等,一個 SCA 引用也可以通過 Web Service,RMI 調用,http 調用,jms 調用等方式調用遠端服務。

· Databinding:數據綁定方式,這是 Tuscany 提出的概念,一般用與在 Binding 中定義參數的傳輸格式,比如 Web Service 的 Binding 一般用 XML 格式,SCA 的 Binding 一般用 SDO 格式,Jsonrpc 的 Binding 一般用 Json 格式等等。

· Interface:是 SCA 的接口(Interface)規範的實現,SCA 服務(Service)和引用(Reference)的接口暴露方式,一般有 Java,WSDL 等類型。

Tuscany 的 Web 2.0 擴展

Tuscany 在 Web 2.0 方面主要提供了以下幾類擴展:

· Implementation 擴展:script implementation 提供了各種腳本語言的實現,如 Javascript,python,ruby 等,widget implementation 提供了將一個 SCA Component 封裝成 widget 的能力。resource implementation 提供了一種簡單的 http 資源的實現。

· Binding 擴展:atom binding 提供了 atom 方式的綁定實現,dwr binding 提供了利用 dwr 框架進行 ajax 調用的能力,http binding 提供了直接進行 http 訪問的能力,jsonrpc binding 提供了在 Javascript 中使用 jsonrpc 進行 ajax 調用的能力。

Databinding 擴展:json 格式的 databinding 提供了將 json 格式的數據與其他格式(如 xml,Java Bean,SDO 等)之間互相轉換的能力。

相關詞條

相關搜尋

熱門詞條

聯絡我們