• <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ù)加載中……

            4月23日-----總結(jié):讀完《用于實(shí)現(xiàn) Web 服務(wù)的 SOA 編程模型》系列7篇文章

            又讀完了一個(gè)系列7篇文章,感覺對(duì)SOA有個(gè)更深的理解,我總結(jié)之!繼續(xù)!
            第一部分:
            編程模型的定義為:
            程序員構(gòu)建的一套部件類型。部件類型包括多種編程模型構(gòu)件:超文本標(biāo)記語言(HTML)文件、數(shù)據(jù)庫存儲(chǔ)過程、Java 類、可擴(kuò)展標(biāo)記語言(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)品折扣。每一種角色包含:
            1.角色所具備的技能。例如,用戶界面開發(fā)人員開發(fā)界面,用來呈現(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ù)念愋蛠韯?chuàng)建易于使用的用戶接口。
            2.角色交互(消費(fèi)或者生產(chǎn))所用的部件類型和應(yīng)用程序接口。例如,動(dòng)態(tài)頁面設(shè)計(jì)人員 -- 角色 -- 生產(chǎn) JavaServer Page(JSP)并消費(fèi) EJB-- 部件類型 -- 包裝現(xiàn)有的信息資源和應(yīng)用程序。
            3.角色使用的工具。例如,Web 開發(fā)人員所用的適合于角色的工具是所見即所得的頁面設(shè)計(jì)工具,用來構(gòu)建動(dòng)態(tài)頁面,使用與 HTML 和 JSP 標(biāo)簽庫相關(guān)的控件,并將控件連接到 EJB。
            第二部分:
            這部分提出了一個(gè)很重要的概念-----服務(wù)對(duì)象數(shù)據(jù)(Service Data Object,SDO),它使用統(tǒng)一的抽象代替了各種各樣的數(shù)據(jù)訪問模型來創(chuàng)建、檢索、更新和刪除供服務(wù)實(shí)現(xiàn)使用的業(yè)務(wù)數(shù)據(jù)。SDO 定義了一種單一的、統(tǒng)一的方法來訪問和操作來自異構(gòu)數(shù)據(jù)源的數(shù)據(jù),包括關(guān)系型數(shù)據(jù)庫、可擴(kuò)展標(biāo)記語言eXtensible Markup Language,XML)數(shù)據(jù)源、Web 服務(wù)以及企業(yè)信息系統(tǒng) (EIS)。它們是基于數(shù)據(jù)圖(data graph)的概念。數(shù)據(jù)圖就是一組可以從數(shù)據(jù)源中分離出來的樹形結(jié)構(gòu)的對(duì)象。SDO 可以在整個(gè)應(yīng)用程序體系結(jié)構(gòu)中使用。
            這部分還給出了許多的示例:
            示例 1. 使用 XML 的 SDO 類型定義

            <? xml?version="1.0"?encoding="UTF-8" ?>
            < schema? xmlns ="http://www.w3.org/2001/XMLSchema" ?
            ????????????????xmlns:tns
            ="http://www.myvalue.com"
            ????????targetNamespace
            ="http://www.myvalue.com" >
            ????
            < element? name ="customer" ?type ="Customer" />
            ????
            < complexType? name ="Customer" >
            ????????
            < sequence >
            ????????????
            < element? name ="customerID" ?type ="string" />
            ????????????
            < element? name ="firstName" ?type ="string" />
            ????????????
            < element? name ="lastName" ?type ="string" />
            ????????????
            < element? name ="stockSymbol" ?type ="string" />
            ????????????
            < element? name ="stockQuantity" ?type ="int" />
            ????????
            </ sequence >
            ????
            </ complexType >
            </ schema >

            示例 2. 使用 Java 的 SDO 類型定義

            public ? interface ?Customer? {
            ????String?getCustomerID();
            ????
            void ?setCustomerID(String?customerID);
            ????String?getFirstName();
            ????
            void ?setFirstName(String?firstName);
            ????String?getLastName();
            ????
            void ?setLastName(String?lastName);????
            ????????String?getStockSymbol();
            ????
            void ?setStockSymbol(String?stockSymbol);
            ????
            int ?getStockQuantity();
            ????
            void ?setStockQuantity( int ?stockQuantity);
            }

            還有一些示例,可以查看http://www.shnenglu.com/zhangji198543/archive/2006/04/17/5702.html
            第三部分:
            這部分講了業(yè)務(wù)流程和業(yè)務(wù)狀態(tài)機(jī)。概要地列出了 BPEL 的一些特性以及 IBM 的 WebSphere Business Integration 中的 BPEL 實(shí)現(xiàn)所提供的擴(kuò)展:
            1.可以與多個(gè)合作伙伴交互的長時(shí)間運(yùn)行的業(yè)務(wù)流程。
            2.將人員整合到流程。
            3.將流程嵌入到 Java? 2 Platform, Enterprise Edition (J2EE)。
            4.服務(wù)質(zhì)量。
            5.與 WebSphere 集成。
            下圖為表示訂購單的業(yè)務(wù)狀態(tài)機(jī),很有啟發(fā)性:
            業(yè)務(wù)狀態(tài)機(jī)
            第四部分:
            這一部分對(duì)IBM 企業(yè)服務(wù)總線做了介紹,IBM ESB 模式提供以下幾方面的虛擬化:
            1.位置和標(biāo)識(shí)。
            2.交互協(xié)議。
            3.接口。
            4.(交互)服務(wù)質(zhì)量 (QoS)。
            另外用戶角色也是很重要的,對(duì)我們以后的開發(fā)人員分配有幫助。業(yè)務(wù)分析人員確定業(yè)務(wù)需求,并檢查業(yè)務(wù)流程。他們將概括出解決方案的目標(biāo)、涉及的業(yè)務(wù)流程、監(jiān)視解決方案的運(yùn)行狀況和狀態(tài)的關(guān)鍵指標(biāo),以及 IT 系統(tǒng)需要提供的業(yè)務(wù)服務(wù)的類型。
            解決方案架構(gòu)師確定哪些業(yè)務(wù)需求可以通過對(duì)現(xiàn)有 IT 資產(chǎn)進(jìn)行重用、修改或組合得到滿足,哪些需要編寫或購買新的 IT 資產(chǎn)。他們定義 IT 資產(chǎn)間的交互,包括消息交換的內(nèi)容。
            開發(fā)工作在三個(gè)角色中分配。實(shí)現(xiàn)人員編寫新的應(yīng)用程序代碼,這些代碼將通過服務(wù)接口調(diào)用。適配器開發(fā)人員構(gòu)建包裝現(xiàn)有或新采購的應(yīng)用程序和軟件包的服務(wù),從而為其他服務(wù)提供可訪問性。集成開發(fā)人員使用 ESB 的相關(guān)工具和技術(shù)構(gòu)建邏輯,以控制請求在這些服務(wù)間路由的方式。
            最后講了ESB模式:
            1.交互模式:允許服務(wù)交互點(diǎn)將消息發(fā)送到總線或從總線接收消息。
            2.中介模式:允許對(duì)消息交換進(jìn)行操作。
            3.部署模式:支持將解決方案部署到聯(lián)合基礎(chǔ)設(shè)施中。
            模型-視圖-控制器(Model-View-Controller,MVC)范例是現(xiàn)代大多數(shù) UI 應(yīng)用程序框架的基礎(chǔ)。SOA 操作提供模型層,而 UI 位于視圖層。UI 技術(shù)可以在各種設(shè)備上呈現(xiàn)信息,這些設(shè)備包括的范圍很廣,從窗口小部件和智能電話到瀏覽器和能夠進(jìn)行大量客戶端處理的富客戶機(jī)。中間件和工具將視圖層 UI 技術(shù)連接到模型層 Web 服務(wù)和數(shù)據(jù)。
            第五部分:

            在 SOA 方法中,宿主組件的環(huán)境抽象成容器,它提供已知的服務(wù)集。從 UI 的角度來說,承載客戶端 UI 組件的三個(gè)主要的容器是:

            基本 Web 瀏覽器。
            使用 Java?Script 和動(dòng)態(tài) HTML 增強(qiáng)的 Web 瀏覽器。
            IBM Workplace? Client Technology?——具有本地 IBM WebSphere? Application Server 客戶機(jī)支持的 Eclipse 富客戶機(jī)。
            這些容器可以通過支持下列技術(shù)得以增強(qiáng):Servlet、JavaServer Page (JSP) 和 JSP Tag;用于頁面排序的 Struts;用于高級(jí)頁面組合的 JavaServer Face (JSF);以及合并在同一頁面上的多應(yīng)用程序視圖的 Portlet 技術(shù)。

            UI 開發(fā)框架可以簡化創(chuàng)建面對(duì)用戶的復(fù)雜應(yīng)用程序的過程。通常使用下列的 UI 框架來創(chuàng)建 UI 組件:
            1.Struts,
            2.JavaServer Faces
            3.Java Widget Library (JWL)

            第六部分:
            組件是這篇文章的重點(diǎn)。組件這個(gè)概念在其他方面的程序設(shè)計(jì)中也是經(jīng)常用的到。而對(duì) SOA來說良好定義的組件應(yīng)該支持生態(tài)系統(tǒng)中的各種用戶角色——例如業(yè)務(wù)分析人員、集成開發(fā)人員、適配器開發(fā)人員和解決方案管理員——通過實(shí)例化、使用、組裝和自定義符合用戶目標(biāo)、技能和概念性框架的不同組件類型,來創(chuàng)建面向服務(wù)的應(yīng)用程序。
            SOA 是一種分布式組件體系結(jié)構(gòu)。SOA 組件封裝功能,并支持通過業(yè)務(wù)分析人員和業(yè)務(wù)模型建模的抽象級(jí)別的重用。聲明性的、計(jì)算機(jī)可處理的約定允許第三方訪問 SOA 組件提供的服務(wù)。可以動(dòng)態(tài)地發(fā)現(xiàn)、選擇、綁定(通過其聲明性屬性)和集成SOA 組件。

            我們的 SOA 是由以下規(guī)范定義的:

            一、服務(wù)規(guī)范 以組件提供和使用的一組服務(wù)的形式提供了組件的視圖。它由以下三組規(guī)范定義:
            1.接口,通常是 WSDL portTypes。
            2.策略,記錄 QoS 屬性,例如事務(wù)行為和安全性。
            3.行為描述,例如 BPEL4WS 抽象流程。另一個(gè)例子可能是統(tǒng)一建模語言 V2 (UML2) 狀態(tài)模型,該模型指定了哪些操作對(duì)不同的狀態(tài)和操作所引發(fā)的狀態(tài)事務(wù)是有效的。調(diào)用方可以通過狀態(tài)模型計(jì)算有效的操作序列。
            二、服務(wù)組件實(shí)現(xiàn) 是由以下四組規(guī)范定義的:
            1.提供的服務(wù)規(guī)范。
            2.需要的服務(wù)規(guī)范。
            3.可以在組件上設(shè)置以調(diào)整或自定義的屬性。
            4.為此提供基本支持的屬性;更復(fù)雜的方案使用可變點(diǎn)和對(duì)自定義組件的外部調(diào)用。
            5.對(duì)所有實(shí)現(xiàn)實(shí)例都保持不變的容器指示(策略)。
            6.定義組件實(shí)現(xiàn)的實(shí)現(xiàn)構(gòu)件(例如 Java 類、BPEL 文檔或 XSLT 規(guī)則集)。
            三、服務(wù)組件(實(shí)例)由以下規(guī)范定義:
            1.名稱。
            2.服務(wù)組件實(shí)現(xiàn)。
            3.實(shí)現(xiàn)的任何屬性的值,設(shè)置用于調(diào)整實(shí)例。
            4.任何服務(wù)的規(guī)范,解析實(shí)現(xiàn)需要的服務(wù)規(guī)范。它們可以是連接組件實(shí)例的“網(wǎng)絡(luò)”,也可以是在運(yùn)行時(shí)執(zhí)行以查找組件的“查詢”,所查找的組件實(shí)現(xiàn)相關(guān)接口,具有相關(guān)的 QoS 策略,并且匹配指定的行為(例如抽象流程或狀態(tài)模型)。

            有兩種定義 SOA 組件的基本方法。這些定義可以通過開發(fā)工具生成,也可以由開發(fā)人員手動(dòng)創(chuàng)建。

            第一種方法是控制文件,顧名思義,控制文件即關(guān)聯(lián)或聯(lián)接組件的所有部分的文檔。例如,控制文件可以引用 WSDL 定義(提供的接口)、實(shí)現(xiàn)組件的 Java 類(實(shí)現(xiàn)構(gòu)件)或相關(guān)的策略文檔(策略斷言)。 它們可以是對(duì)文件系統(tǒng)、類路徑、源代碼管理系統(tǒng)或 Web URL 的引用。控制文件方法將多個(gè)單獨(dú)開發(fā)的構(gòu)件聚合在一起組成組件。應(yīng)用程序開發(fā)工具可以幫助定義控制文件。

            第二種方法是使用 pragmas,指定相同信息的語言元素,但是包含在單個(gè)源文件的主體中。Java 方面的支持正在不斷增加(例如,JSR 175 中的 XDoclet 標(biāo)記),以用 Java 語言編寫這些批注部分。但是這種方法尚不支持其他等同的有效 SOA 組件實(shí)現(xiàn)技術(shù)(如 SQL 或 XQuery 語句集)。每種組件類型都有用于其實(shí)現(xiàn)構(gòu)件的相關(guān)源文件格式,例如 Java 文件、狀態(tài)機(jī)或 SQL 文件。IBM WebSphere? Rapid Deployment 中的批注支持可以生成所有組成包含 pragmas 的源文件中的組件的單個(gè)元素。例如,Java 源文件中的結(jié)構(gòu)化注釋指示哪些 Java 方法將成為所生成的定義組件的服務(wù)接口中的 Web 服務(wù)操作。

            第七部分:
            次篇文章在安全性的角度討論了SOA,尤其是如何去保護(hù)SOA應(yīng)用程序。
            總之,通過閱讀這一系列文章,感覺到離SOA的具體實(shí)現(xiàn)又貼近了一步,更加豐富自己這方面的知識(shí)。繼續(xù)努力吧!

            posted on 2006-04-23 21:32 wsdfsdf 閱讀(253) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 交流心得

            99国产精品久久| 亚洲av日韩精品久久久久久a| 久久91精品国产91久久麻豆| 久久久青草青青亚洲国产免观| 中文字幕成人精品久久不卡| 欧美精品一区二区久久| 狠狠色丁香久久婷婷综合五月| 国产精品激情综合久久| 久久久久久无码Av成人影院| 久久久无码精品午夜| 国内精品久久国产大陆| 亚洲国产精品成人久久| 久久精品国产亚洲一区二区三区| 精产国品久久一二三产区区别| 国产精品久久久久久久| 7777久久久国产精品消防器材| 亚洲欧美精品伊人久久| 久久午夜伦鲁片免费无码| 亚洲精品午夜国产va久久| 日韩亚洲欧美久久久www综合网| 伊人久久大香线蕉亚洲| 亚洲国产成人精品91久久久| 久久天堂电影网| 狠狠色丁香婷综合久久| 久久狠狠高潮亚洲精品| 亚洲精品国精品久久99热一| 久久笫一福利免费导航| 久久久噜噜噜久久中文字幕色伊伊| 亚洲午夜久久久精品影院| 99久久精品午夜一区二区| 亚洲第一极品精品无码久久| 久久久久波多野结衣高潮| 亚洲精品乱码久久久久久不卡| 久久www免费人成精品香蕉| 亚洲国产成人久久精品影视| 久久久久免费精品国产| 99久久精品免费| 久久久久久青草大香综合精品| 久久久久亚洲精品中文字幕| 国产AⅤ精品一区二区三区久久| 国产毛片久久久久久国产毛片|