共找到2條詞條名為tuscany的結果 展開

tuscany

工程項目

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

T

引言


如今在企業級應用中,AjaxWidget、RSS/Atom 等 Web 2.0 技術正在得到越來越廣泛的使用,這些技術不但產生了良好的用戶體驗,同時也來越來越多地影響著許多前端系統的編程模式和系統架構。許多傳統的 Java EE 產品和框架也在越來越多地引入這些 Web 2.0 技術,如 Struts2JSF 都有了越來越完善的 Ajax 擴展,Portal 產品中也基於 Dojojavascript 框架引入部分刷新等機制,大幅提升了性能和用戶體驗。可以看出,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 的開源項目,它是 IBMOracleSAP 等廠商聯合成立的 SOA 標準化組織 -OSOA 支持下開發出的 SCA 框架,它既是開源界 SCA 的試金石,也是當前開源界最成熟的 SCA 框架之一。
Tuscany 基本架構
圖 1 為 Tuscany 的基本架構圖,從圖中可以看出,作為一個輕量級 SCA 框架,Tuscany 提供了非常鬆散耦合的框架結構。主要有以下幾個特點:
· Tuscany 是平台無關的可嵌入框架,可以在各種 Hosting Platform 上運行,如 TomcatJBossWAS 等 Web 容器上運行,也可以在 J2SE 環境下運行。
· Tuscany 的核心模塊提供了 SCA 規範的 API 實現,Tuscany 系統的 SPI 介面,一些系統基本實現(如事件,工廠類,存儲等),以及一整套擴展機制,這些擴展機製為 Tuscany 整合各個平台的服務提供了基礎。
Tuscany 的擴展是完全鬆散耦合的,框架本身提供了大量的擴展實現,用戶也可以在自己的系統中擴展 Tuscany 的實現,只需要遵循 Tuscany 的擴展規範以及 API 介面。 Tuscany 主要有以下幾個方面的擴展:
· Implementation:SCA 組件(Component)的實現方式,一個 SCA 組件可以由各種語言或技術平台實現,如:POJOEJB,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)的介面暴露方式,一般有 JavaWSDL 等類型。
Tuscany 的 Web 2.0 擴展
Tuscany 在 Web 2.0 方面主要提供了以下幾類擴展:
· Implementation 擴展:script implementation 提供了各種腳本語言的實現,如 Javascript,pythonruby 等,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 等)之間互相轉換的能力。