• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 181, 文章 - 2, 評(píng)論 - 85, 引用 - 0
            數(shù)據(jù)加載中……

            用于實(shí)現(xiàn) Web 服務(wù)的 SOA 編程模型,第 1 部分: IBM SOA 編程模型簡(jiǎn)介

            IBM? 面向服務(wù)體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)編程模型使非程序員可以創(chuàng)建和重用 IT 資產(chǎn),而不需要掌握 IT 技能。該模型包括組件類型,布線,模板,應(yīng)用程序適配器,統(tǒng)一數(shù)據(jù)表示和企業(yè)服務(wù)總線(Enterprise Service Bus,ESB)。本文是系列文章的第一部分,該系列文章介紹了 IBM SOA 編程模型,選擇、開發(fā)、部署工作所需的內(nèi)容,以及建議的編程模型元素。本文陳述的內(nèi)容考慮了使用該模型的開發(fā)人員可能具備不同的技術(shù)水平和工作角色。

            SOA 編程模型系列

            對(duì)于任何獨(dú)立程序員來(lái)說(shuō),有效的掌握和應(yīng)用飛速增長(zhǎng)的軟件技術(shù)、實(shí)踐、工具和平臺(tái),變得越來(lái)越困難,當(dāng)然更不用說(shuō)非程序員了。然而,如果業(yè)務(wù)流程轉(zhuǎn)換能夠成功進(jìn)行,很多的非程序員就可以使用現(xiàn)有的 IT 資產(chǎn)來(lái)進(jìn)行他們的工作,而不用去學(xué)習(xí)繁瑣的底層技術(shù)細(xì)節(jié)。本系列文章描述了一個(gè)新的面向服務(wù)體系結(jié)構(gòu)(SOA)編程模型,該模型實(shí)現(xiàn)了業(yè)務(wù)關(guān)系的分離,因此企業(yè)中具備不同技術(shù)水平和工作角色的人,即使不是專業(yè)的 IT 人員,也可以在軟件開發(fā)生命周期每個(gè)階段創(chuàng)建和使用 IT 資產(chǎn)。這可以顯著提高隨需應(yīng)變企業(yè)的業(yè)務(wù)靈活性。







            引言

            IBM 產(chǎn)品逐漸應(yīng)用了 SOA 和編程模型。程序員構(gòu)建服務(wù)、使用服務(wù),并且開發(fā)聚集服務(wù)的解決方案。我們?cè)谶@里使用"程序員(programmer)"這個(gè)泛稱,因?yàn)?SOA 編程模型的一個(gè)關(guān)鍵方面是將"編程"的概念擴(kuò)展到非傳統(tǒng)開發(fā)人員的工作角色和技能,比如業(yè)務(wù)分析員和腳本語(yǔ)言用戶。

            大多數(shù)關(guān)于 Web 服務(wù)的文章主要集中在服務(wù)接口和這些接口的使用方面。為了補(bǔ)充接口標(biāo)準(zhǔn)和最佳實(shí)踐,IBM 引入了一個(gè)編程模型,來(lái)實(shí)現(xiàn)服務(wù)并將它們組合為解決方案。擴(kuò)展 IBM 軟件平臺(tái)的范圍,使之能夠被更多的用戶團(tuán)體使用 -- 包括非傳統(tǒng)的開發(fā)人員 -- 這個(gè)模型提供了新的組件類型與用戶的角色、目標(biāo)、技能和概念框架相匹配。這些組件類型使更直觀的開發(fā)工具可以使用。另一個(gè)主要的主題是通過編程模型特性和功能的逐步透明化來(lái)增強(qiáng)可使用性

            這是關(guān)于 SOA 編程模型系列文章中的第一篇,特別針對(duì)軟件開發(fā)專業(yè)人員。在本系列中,我們介紹了實(shí)現(xiàn)這些目標(biāo)的一些新的編程模型元素。我們介紹了如何利用它們來(lái)使您選擇、開發(fā)、建議或管理的軟件能夠更加容易的開發(fā)、重用和消費(fèi)。將軟件構(gòu)造為服務(wù)對(duì)于按需的企業(yè)來(lái)說(shuō)更加有價(jià)值,因?yàn)椴痪邆涮嗉寄艿拈_發(fā)人員可以將其"接入"到解決方案中,或者編入一個(gè)業(yè)務(wù)流程編排流中來(lái)滿足快速變更的業(yè)務(wù)需求。不管你是大型企業(yè)或者小型業(yè)務(wù)的開發(fā)人員、獨(dú)立軟件供應(yīng)商(ISV),還是應(yīng)用程序提供者或者中間件供應(yīng)商,你都可以通過這種方式構(gòu)造你的軟件,從而從中受益。那么,讓我們立即開始應(yīng)用 SOA 原理。







            SOA 編程模型的亮點(diǎn)

            讓我們首先重點(diǎn)介紹 SOA 編程模型的幾個(gè)主要特性。

            服務(wù)數(shù)據(jù)對(duì)象(SDO)是 IBM SOA 中的一個(gè)基礎(chǔ)概念。SDO 大大提高了開發(fā)人員的生產(chǎn)力,并且將你從如何訪問特定后端數(shù)據(jù)源、應(yīng)用程序和服務(wù)的技術(shù)細(xì)節(jié)中解脫出來(lái)。它們提供了簡(jiǎn)化的抽象,使程序員可以更多的集中在業(yè)務(wù)邏輯上。SDO 還提供了統(tǒng)一的消息表示來(lái)與服務(wù)交互,淘汰了用于數(shù)據(jù)表示的復(fù)雜技術(shù)迷宮,僅僅訪問單個(gè)統(tǒng)一模型。

            SOA 編程模型同樣需要統(tǒng)一的范型來(lái)創(chuàng)建和訪問業(yè)務(wù)邏輯。為了易于使用,服務(wù)應(yīng)該隱藏實(shí)現(xiàn)技術(shù)之間的差別,并應(yīng)該建立在比現(xiàn)有編程結(jié)構(gòu)(比如 Enterprise Java?Bean(EJB))更高級(jí)別的抽象上。服務(wù)可以通過組裝到模塊(這些模塊可以組成解決方案)中的組件來(lái)實(shí)現(xiàn)。通過組件公開的服務(wù)可以使用可定位的接口來(lái)調(diào)用。您可以使用 Web 服務(wù)描述語(yǔ)言(WSDL)、Java 或其他語(yǔ)言來(lái)描述接口。這個(gè)實(shí)現(xiàn)類型可以有對(duì)所需服務(wù)的待定引用,在將組件結(jié)合在一起執(zhí)行之前,這些服務(wù)是滿足需求的。

            這個(gè)編程模型還引入了良好定義的組件類型,對(duì)程序員開發(fā)和部署到解決方案中的常用構(gòu)件建模。例子包括"無(wú)格式舊 Java 對(duì)象"、業(yè)務(wù)流程執(zhí)行語(yǔ)言(BPEL)流程、結(jié)構(gòu)化查詢語(yǔ)言(SQL)服務(wù)、Adaptive Business Objects、通過 Java 連接器體系結(jié)構(gòu)(J2C)資源適配器訪問的 CICS?程序、使用 SAP 業(yè)務(wù)應(yīng)用程序編程接口的應(yīng)用程序、Java 2 Enterprise Edition(J2EE)無(wú)狀態(tài)會(huì)話 bean 和 MQSeries? 應(yīng)用程序。

            企業(yè)服務(wù)總線是多協(xié)議結(jié)構(gòu)的一個(gè)關(guān)鍵角色,將服務(wù)組件編成無(wú)縫的交互,通過在消息路徑中加入被稱為中介的特別組件,來(lái)代理服務(wù)間的交互,而不用更改現(xiàn)有的端點(diǎn),從而允許在核心級(jí)別上處理企業(yè)關(guān)注的內(nèi)容 -- 比如審核、日志、路由、不匹配接口的適配、等價(jià)組件的增量替換、安全等。

            新的流程語(yǔ)言縮小了 IT 概念和業(yè)務(wù)構(gòu)件之間的間隙。很重要的一個(gè)是 BPEL。雖然流程可以通過業(yè)務(wù)分析員引入圖形化工具來(lái)定義,但它也是一個(gè)可執(zhí)行程序。流程在按需業(yè)務(wù)轉(zhuǎn)換中占有重要的地位,例如為擴(kuò)展價(jià)值鏈描述長(zhǎng)時(shí)間運(yùn)行的可執(zhí)行流程。通過擴(kuò)展價(jià)值鏈,我們可以跨越多個(gè)供應(yīng)商和 IT 域來(lái)進(jìn)行業(yè)務(wù)安排,比如一個(gè)零售商和他的多個(gè)獨(dú)立的供應(yīng)商,保險(xiǎn)公司及其眾多的第三方理賠員,IT 外購(gòu)狀況等。

            業(yè)務(wù)狀態(tài)機(jī)(business state machine)是業(yè)務(wù)分析師可以通過圖形工具創(chuàng)建流程的另一個(gè)編程框架,并且在流程設(shè)計(jì)引擎中執(zhí)行。狀態(tài)機(jī)可以表示業(yè)務(wù)構(gòu)件 -- 比如采購(gòu)單、保險(xiǎn)索賠等 -- 這些轉(zhuǎn)換通過一些良好定義的狀態(tài)來(lái)響應(yīng)特定的生命周期"事件"。

            需要重用的組件可以封裝為具有可變店(points of variability)的模板,可以在放入解決方案中時(shí)進(jìn)行設(shè)計(jì)。這種適配成為我們的編程模型的第一部分,同時(shí)結(jié)合規(guī)則語(yǔ)言和相關(guān)的工具,為新型用戶提供定制的能力。

            另一個(gè)創(chuàng)新領(lǐng)域是新的解決方案模型,它讓部署者、管理者和其它業(yè)務(wù)用戶可以將組件組裝成解決方案。在開發(fā)的時(shí)候,你可以將服務(wù)實(shí)現(xiàn)與托管服務(wù)的拓?fù)洌ㄏ到y(tǒng)架構(gòu)師建模的部署拓?fù)洌╆P(guān)聯(lián)在一起。模型捕捉的系統(tǒng)需求和環(huán)境假設(shè)在早期的實(shí)現(xiàn)中進(jìn)行校驗(yàn),降低了應(yīng)用程序生命周期的費(fèi)用,并且極大的提高了可靠性和可計(jì)賬性(accountability)。該模型的特性還包括現(xiàn)有應(yīng)用程序的后期綁定、數(shù)據(jù)轉(zhuǎn)換中介和適配器,可以通過企業(yè)服務(wù)總線來(lái)實(shí)現(xiàn)面向服務(wù)的交互。

            總的來(lái)說(shuō),SOA 編程模型將開發(fā)和部署活動(dòng)分割為不同的階段,這些階段可以發(fā)生在不同的時(shí)間,并且可以通過不同的個(gè)人使用不同的技能來(lái)實(shí)現(xiàn)。這就產(chǎn)生了關(guān)系的分離,使軟件組件可以被重用。它也將軟件體驗(yàn)劃分為單獨(dú)用戶的業(yè)務(wù)角色、技能和任務(wù)。最終,它使軟件生命周期可以適應(yīng)按需企業(yè)的需要,因?yàn)樗鼈兺ㄟ^針對(duì)業(yè)務(wù)靈活性重新設(shè)計(jì) IT 流程來(lái)尋求更高的有效性。







            編程模型的概念

            編程模型通常是 IBM SOA 和 IBM 產(chǎn)品的核心。它定義了程序員可以構(gòu)建和使用的概念和抽象。運(yùn)行時(shí)產(chǎn)品,例如 WebSphere? Application Server,DB2?和 CICS,可以運(yùn)行或托管編程模型構(gòu)件。開發(fā)工具支持編程模型構(gòu)件的建模和實(shí)現(xiàn)、組裝到應(yīng)用程序(解決方案),以及部署到運(yùn)行時(shí)環(huán)境中。最后,系統(tǒng)管理產(chǎn)品、代理和設(shè)備支持對(duì)運(yùn)行時(shí)和它們托管的編程模型構(gòu)件的管理。

            編程模型是什么?雖然目前沒有公認(rèn)的一般定義,但我們喜歡將它定義為:

            • 程序員構(gòu)建的一套部件類型。部件類型包括多種編程模型構(gòu)件:超文本標(biāo)記語(yǔ)言(HTML)文件、數(shù)據(jù)庫(kù)存儲(chǔ)過程、Java 類、可擴(kuò)展標(biāo)記語(yǔ)言(XML)Schema 定義、定義 MQSeries 消息的 C 結(jié)構(gòu),等等。
            • 一系列角色,將具備相似技能和知識(shí)的開發(fā)和管理人員分組。用這種方式對(duì)開發(fā)人員分類有助于生產(chǎn)適應(yīng)于角色的工具,使非程序員可以實(shí)現(xiàn)服務(wù)并將服務(wù)組裝為解決方案。業(yè)務(wù)分析人員定義業(yè)務(wù)流程,銷售專家定義顧客分類的策略并計(jì)算產(chǎn)品折扣。每一種角色包含:
              • 角色所具備的技能。例如,用戶界面開發(fā)人員開發(fā)界面,用來(lái)呈現(xiàn)應(yīng)用程序或者解決方案的功能構(gòu)件。假設(shè)這個(gè)角色了解正在開發(fā)的應(yīng)用程序和它的業(yè)務(wù)目標(biāo),充分了解應(yīng)用程序的用戶及他們的任務(wù),精通一些用戶界面設(shè)計(jì)方法,能夠通過為每個(gè)任務(wù)選擇恰當(dāng)?shù)念愋蛠?lái)創(chuàng)建易于使用的用戶接口。
              • 角色交互(消費(fèi)或者生產(chǎn))所用的部件類型和應(yīng)用程序接口。例如,動(dòng)態(tài)頁(yè)面設(shè)計(jì)人員 -- 角色 -- 生產(chǎn) JavaServer Page(JSP)并消費(fèi) EJB -- 部件類型 -- 包裝現(xiàn)有的信息資源和應(yīng)用程序。
              • 角色使用的工具。例如,Web 開發(fā)人員所用的適合于角色的工具是所見即所得的頁(yè)面設(shè)計(jì)工具,用來(lái)構(gòu)建動(dòng)態(tài)頁(yè)面,使用與 HTML 和 JSP 標(biāo)簽庫(kù)相關(guān)的控件,并將控件連接到 EJB。

            使 Web 服務(wù)易于實(shí)現(xiàn)和使用的關(guān)鍵是對(duì)現(xiàn)有技術(shù)和知識(shí)進(jìn)行增量擴(kuò)展,從而使 SOA 可以被消費(fèi)。以 CICS COBOL 事務(wù)程序形式存在的服務(wù)與用 BPEL 編寫的服務(wù)差別很大。從數(shù)據(jù)庫(kù)存儲(chǔ)過程中調(diào)用服務(wù)與從 JSP 中調(diào)用也是不同的;技能和期望值是不同的。通過提供工具的分類來(lái)使部件類型適應(yīng)于各種技能,并適應(yīng)于開發(fā)流程的階段,你可以實(shí)現(xiàn)可消費(fèi)性(consumability)。

            本系列的后續(xù)文章更加詳細(xì)的介紹了 SOA 編程模型的部件類型。







            產(chǎn)品架構(gòu)


            圖 1. 產(chǎn)品架構(gòu)
            產(chǎn)品架構(gòu)

            支持 IBM SOA 方案的產(chǎn)品分成兩個(gè)主要類別:服務(wù)端點(diǎn)和連接它們的消息傳送結(jié)構(gòu)。這個(gè)通用的架構(gòu) -- 包含了許多產(chǎn)品,這些產(chǎn)品都不是 IBM SOA 的專用傳輸工具 -- 如圖 1 所示。

            核心是服務(wù)間的 ESB 提供的連通性。ESB 是多協(xié)議的,支持點(diǎn)到點(diǎn)和發(fā)布-訂閱兩種通信類型,并支持快速處理消息的中介服務(wù)。IBM WebSphere MQ,IBM WebSphere MQ Integrator Broker 以及支持 Web 服務(wù)和 Java 消息服務(wù)(JMS)的 WebSphere 都屬于第一個(gè)類別。

            服務(wù)存在于抽象的托管環(huán)境(容器)中,并且提供了特定的編程框架。容器加載服務(wù)的實(shí)現(xiàn)代碼,提供到 ESB 的連接性,并管理服務(wù)實(shí)例。不同類型的服務(wù)存在于不同的容器中。(在典型的遞規(guī)設(shè)計(jì)的例子中,ESB 本身被認(rèn)為是用于中介服務(wù)的容器。)表 1 列出了一些主要的 IBM SOA 托管環(huán)境和托管的組件類型。

            表 1. 托管各種組件和服務(wù)類型的容器

            服務(wù)/組件類型 容器
            用 COBOL、PL/1 和其他語(yǔ)言編寫的事務(wù)處理程序 CICS 或者 IMS(信息管理系統(tǒng) -- 一種企業(yè)事務(wù)處理系統(tǒng))。程序員可以使用 SOAP/HTTP、WebSphere MQ 和 J2EE J2C 連接來(lái)訪問服務(wù)。
            業(yè)務(wù)流程編排 WebSphere Business Integration Server Foundation。該容器支持長(zhǎng)期存在的工作流,這些工作流實(shí)現(xiàn)了 Web 服務(wù)接口并調(diào)用其他 Web 服務(wù)上的操作。它同樣支持長(zhǎng)期運(yùn)行的業(yè)務(wù)活動(dòng)事務(wù)。
            應(yīng)用程序適配器 -- 為現(xiàn)有的應(yīng)用程序和系統(tǒng)提供 SOA/Web 服務(wù)的會(huì)話虛包(facade)。 WebSphere Business Integration Server Foundation 提供的應(yīng)用程序適配器容器。適配器在 SOA 協(xié)議和格式,以及現(xiàn)有應(yīng)用程序和系統(tǒng)的協(xié)議和格式之間進(jìn)行轉(zhuǎn)換。例如,SAP 適配器將 SOA 編碼并通過 HTTP 傳輸?shù)?XML 轉(zhuǎn)換到 SAP 的現(xiàn)有業(yè)務(wù)應(yīng)用程序編程接口格式和 Remote Function Call(RFC)。
            預(yù)定義的 SQL 查詢、XML 查詢或數(shù)據(jù)庫(kù)存儲(chǔ)過程實(shí)現(xiàn)的服務(wù) DB2 結(jié)合 WebSphere Application Server。查詢的參數(shù)來(lái)自 SOA 操作的輸入消息以及提供輸出消息的結(jié)果。
            使用 Java 類和 EJB 實(shí)現(xiàn)的服務(wù)。 WebSphere Application Server。






            結(jié)束語(yǔ)

            IBM SOA 編程模型系列文章的第一篇概述了 IBM 工具和產(chǎn)品如何適用于模型,以及開發(fā)人員如何有效的在應(yīng)用程序開發(fā)中使用它。

            • 使用 SDO 簡(jiǎn)化數(shù)據(jù)訪問
            • 服務(wù)定義以及組件模型發(fā)展?fàn)顩r的介紹
            • 用組件類型來(lái)簡(jiǎn)化開發(fā)
            • 基本組件類型
            • 服務(wù)組合和定制
            • 流程組件:BPEL 和業(yè)務(wù)狀態(tài)機(jī)
            • 定制服務(wù):設(shè)計(jì)模式,模板和可變點(diǎn)
            • 面向服務(wù)的用戶接口
            • 用于管理的 SOA 方法
            • SOA 軟件生命周期開發(fā)工具
            • SOA 的安全性

            posted on 2006-04-17 03:37 wsdfsdf 閱讀(195) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 技術(shù)文章

            亚洲乱亚洲乱淫久久| 久久久久人妻精品一区二区三区 | 热久久最新网站获取| 国产A三级久久精品| 国产三级久久久精品麻豆三级| 97精品国产97久久久久久免费| 久久亚洲AV无码精品色午夜麻豆| 996久久国产精品线观看| 亚洲人成无码网站久久99热国产| 久久发布国产伦子伦精品| 久久av免费天堂小草播放| 久久精品一本到99热免费| 久久中文精品无码中文字幕| 国产精品久久99| 久久久综合九色合综国产| 狠狠综合久久综合88亚洲| 久久精品国产网红主播| 嫩草影院久久国产精品| 精品久久久久久国产| 久久精品国产色蜜蜜麻豆| 国产婷婷成人久久Av免费高清| 亚洲国产成人精品无码久久久久久综合| 亚洲人成伊人成综合网久久久| 久久久久亚洲AV无码专区网站| 久久久久久a亚洲欧洲aⅴ | 久久播电影网| 性高湖久久久久久久久AAAAA| 好属妞这里只有精品久久| 久久综合精品国产二区无码| 一日本道伊人久久综合影| 亚洲国产精品综合久久网络| 久久国产成人午夜AV影院| 欧美激情精品久久久久| 久久精品国产色蜜蜜麻豆| 久久精品国产第一区二区三区 | 国内精品久久久人妻中文字幕| 久久久WWW成人免费毛片| 久久人人爽人人爽人人片av麻烦| 思思久久99热免费精品6| 久久久噜噜噜久久中文字幕色伊伊| 国产国产成人久久精品|