00.SOA設計模式(Design Patterns)

Service Design
服務設計(Service Design)對從特定技術平台能力出身的程序設計師來說, 這是最感到親切與狂熱的一部份, 老魚也是, 管理者是不是也應該曾經是或現在仍是位技術者出身? 這個問題至今仍是二派說法, 但無論如何, 事情總是要有人做.

論文: SOA(SOAD) 分析與設計之原則及模式探究 (老魚撰寫用連結)



SOAD - 服務導向系統分析與設計




SOA相關標準規範與 組織



BPM




SOA Design Patterns


  • 訪談及書摘 ──Thomas Erl的《SOA設計模式》
    • 每個模式都試圖回答:「對於該問題,推薦哪個設計解決方案是能夠幫助實現服務導向的?」,而不是:「用這種特殊技術如 何解決這個問題?」
    • 這些模式並不等價於或特定於Web服務或其他特定技術。
    • 計劃包含 20頁的內容來討論一組受REST啟發的SOA設計模式,它們目前還在進一步的發展,以備討論 REST和SOA的書籍使用。
    • 在Web服務領域中選擇可用的行業標準是件很自然的事情。為了保持抽象內容和基於Web服務的示例相分 離,明確區分了「服務」和「Web服務」
    • SOA相 關的任何技術(包括Web服務)也能夠在非SOA環境下使用
    • 關 注範式還有助於克服歧義和誤解,正是它們導致了對SOA採納情況的失望,因為它們試 圖在不實際應用服務導向的情況下實施SOA
    • 儘管SOA一詞經常被廠商和媒體拿來指代任何跟服務沾邊的東西,但一旦你處於實際 的交付生命週期中,你就需要清楚地認識到「是什麼使一個技術架構成 為服務導向的?」。正是這導致了劃清服務導向服務導向技術架構之間關係和區別的需求。這裡有一種方法可以把事情弄明白:

      服務導向是一種範式,它形成了構建軟件程序的方法基礎,以便使它 們共同幫助實現某個特定的目標狀態。

      這個目標狀態由一組跟面向服務計算相關的戰略目標描述。服務導向的 應用在某種意義上導致了被認為是服務導向邏輯單元(它們被稱為服務)的 軟體程序的產生。

      面向服務的技術架構,在支持服務及由一個或多個服務構成的解決方案(它們被稱為面向服務的解決方案)和促進面向服務的方面有獨特的特點。

  • http://soapatterns.org/

BPMN



Business Process Modeling Notation
http://en.wikipedia.org/wiki/BPMN

http://www.bpmn.org/

BPMN Specification Releases:


OMG: 1.1


SCA/SDO




Java RI - Apache Tuscany

Apache Tuscany
Apache Tuscany 提供全方位的開源SOA基礎架構以利於開發, 組裝, 發佈, 管理組件式應用服務(Composite Applications)及 Data 處理. 該 Project 實現服務組件體系(SCA: Service Component Architecture)和服務資料物件(SDO: Service Data Objects)等 OASIS OpenCSA(http://www.oasis-opencsa.org/) 標準.
Apache Tuscany 提供開放式可擴展的運行環境以支持現在和將來的各種技術.這將解除應用程序對底層技術的依賴和偶合,使得跨技術網絡平台的組裝成為可能並大大簡化. 
  • 多 種組件實現, 包括 Java, BPEL, XQuery, JavaScript
  • 多種通訊協議, 包括 RMI, Web Services, JSONRPC, Feed, EJB, CORBA
  • 多種介面語言, 包括 Java , WSDL
  • 多 種資料綁定, 包括 XML, JavaBeans, JAXB, SDO, XMLBeans, JSON, AXIOM
Apache Tuscany 整合其他技術包括 OSGi, Spring, JEE 和 Web 2.0. 該 Project 提供了從小型到企業級業務的廣譜支持. 解決方案提供商,中間軟體平台提供商和最終用戶和開發人員都可獲益. Tuscany是一輕載的平台,可以獨立運行或嵌入在WebSphere, Geronimo, Tomcat和Jetty等應用服務器中.

Tuscany SCA Java

Tuscany Java SCA is a lightweight runtime that is designed to run standalone or provisioned to different host environments. The modularized architecture allows users to pick and choose modules that cater to their business needs therefore resulting in small footprint.

At a high level,Tuscany Java SCA infrastructure can be divided into two categories of modules: core and extensions. The core modules consist of selectable components that provide support for SCA and data handling as well as the core runtime. The core runtime includes functions such as loading system and application services, building and managing composites. The extension category consists of a set of selectable modules that support integration of various technologies that are required in SOA environment. This includes support for various protocols through bindings, programming languages through implementations, data types, security and transaction through policies. This whole thing constitutes an SCA node. An SCA composite application can be spread across multiple nodes in a cloud or be run on a single node. This administrative scope is referred to as the SCA domain.


Latest Tuscany Releases

Eclipse IDE plug-in : http://www.apache.org/dist/tuscany/java/sca/1.4/tuscany-sca-1.4-updatesite/

Architecture Guide


SCA與JEE6架構之探究(老魚私人書)

SCA Extensions for Event Processing and Pub/Sub - 2009-05-07


OSGi





EclipseLink SDO


The EclipseLink SDO component delivers the reference implementation of the Service Data Objects (SDO) 2.1.1. The EclipseLink SDO implementation enables Java developer to efficiently build and use data object models that can be incorporated into service architectures.


Implemented in Java


JSR

JSR 224: JAX-WS 2.0

  • JSR 224: JavaTM API for XML-Based Web Services (JAX-WS) 2.0 / 2.1
    • The JAX-WS 2.0 specification is the next generation web services API replacing JAX-RPC 1.0.
    • Java EE 5 平台的一個重要組成部分。作為 Java API for XML-based RPC 1.1 (JAX-RPC) 發行版的後續版本,JAX-WS 簡化了使用 Java 技術開發 Web 服務的任務。它通過為多種協議(如 SOAP 1.1、SOAP 1.2、XML)提供支持,以及提供用於支持其他協議和 HTTP 的工具,解決了 JAX-RPC 1.1 中存在的一些問題。JAX-WS 使用 JAXB 2.0 執行資料綁定,並支持客製化來控制產出服務端點介面。JAX-WS 利用其對註釋型態的支持,簡化了 Web 服務開發,並減小了運行時 JAR 文件的大小。
  • Apache Axis2[inside]
  • Web 服務提示與技巧: JAX-RPC 與JAX-WS 的比較 

JavaEE.Web.Services.1001.JAX-WS


JSR 311: JAX-RS 1.0

SAAJ, SOAP with Attachments API for Java


Pruning in Java EE 6


Java Web Services RIs

Apache CXF 2

Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.
  • JAX-WS, JAX-WSA, JSR-181, and SAAJ
  • SOAP 1.1, 1.2, WS-I BasicProfile, WS-Security, WS-Addressing, WS-RM and WS-Policy
  • WSDL 1.1 and 2.0
  • MTOM


Features for IDE / Tools


Eclipse Platform

SOA Tool Platform Project (STP)

  • Eclipse ATLAS Transformation Language (ATL)
    • 您將使用 Eclipse ATL 項目執行 Eclipse STP 的 BPMN 到 BABEL BPMN 的轉換。本教程將使用 ATL Ready-To-Use Bundles 標題下的名為 ATL Bundle 2.0 Standard Version 的版本。
  • Apache ODE
    • 在業務流程開發完成後需要使用 Apache ODE 部署業務流程。下載 WAR 分發文件。
  • ODE Servlet Container
    • Apache Tomcat / Jetty
[Manage Site...]
 


[分享製圖] Eclipse STP (服務導向架構工具平臺) - 2009-04-29

NetBeans IDE

  • SOA Plug-in
    • Composite Application
    • BPEL module
    • SQL module
    • XSLT module




Comments