用 SUN ONE 開發 WEB 服務
Sun ONE白皮書
目錄
|
Forte for Java Enterprise Editio和Systinet Web服務定序—iPlanet Integration Server |
實施摘要
本文對在北美的一家最大能源公司TransCanada PipeLines Limited的原型Web服務實現做了高層次的技術回顧。TransCanada的信息系統部門正在致力于提供一個標準的基礎設施以支持有效和高效的業務交付系統以滿足業務的需要。
第一步的工作是描繪出他們的要求,包括避免廠商依賴性并能夠在不重新調整規劃他們的IT系統的條件下進行增量升級的一種基礎設施。TransCanada決定將工作建立在Java™技術和XML數據格式的基礎上以實現這一目標。
這一項目是由Sun™專家服務和TransCanada IS共同開發的,并且與Sun的集成伙伴ThoughtWorks和Sun的軟件開發伙伴OpenView有密切的合作。這個項目起名為SPINE(網絡環境中的服務提供基礎設施 Service Provisioning Infrastructure for Network Environment),目標為制定一種全功能的Web服務設計,并根據Sun開放網絡環境(Sun Open Net Environment Sun ONE)體系結構創建一個參考實現。SPINE設計是由Sun Proffesional Services使用SunTone™ Architecture Methodology開發的[鏈接: http://www.sun.com/service/sunps/jdc/suntonearchmethod.html],這是根據多年針對跨行業范圍和Internet業務模型的Java 2平臺企業版(J2EE™)體系結構經驗開發的結構方法建立的靈活的實踐和樣式。TransCanada的SPINE項目的原型實現后來移植到iForce Center demo。本文中許多體系結構描述指的是后者的安裝。TransCanada設計小組描繪了這個項目的一些業務結果,包括減少總擁有成本(TCO)及減少投放市場的時間(TTM)。SPINE利用了Sun ONE體系結構和Web服務技術以滿足這些結果:
- 通過交付一個可擴展的、安全的、可管理的、可靠的、主要由一家廠商——Sun供貨的基礎設施減少TCO。
- 通過利用Web服務技術部署或者集成業務系統與使用可重復的web服務框架以及一組公用服務,不需要做很多工作并使開發人員可以將精力放到增值業務邏輯上,從而減少TTM。
- 通過開放標準體系結構為TransCanada提供根據需要與其他廠商組件集成的極大靈活性。
最初的設計是相對直觀的貨幣兌換功能。雖然這種能力看起來很簡單,但是其背后是強壯的設計,包括身份驗證、授權、服務查詢、監視、計量等等。SPINE原型展示了Sun ONE環境的Web服務能力——在這種高度模塊化的框架內,可以迅速創建、部署和管理組件。
本文提供了在創建SPINE原型時使用的技術和設計準則的回顧,并對在這個項目中使用的操作、產品和技術進行了技術討論。
- 第二章提供了對在Web服務中使用的標準以及對Sun ONE的技術回顧。
- 第三章描繪了TransCanada試圖要解決的問題,以及項目的整體目標。
- 第四章提供了該原型的操作回顧,以及對所使用的產品和技術的回顧。
介紹和回顧
基于Internet技術快速開發和可靠部署可擴展的、高度可用的業務系統的能力是IT行業最關注的事情。要想取得成功,這些系統必須與傳統應用程序和數據集成、并且對不同組織的眾多團體——雇員、伙伴、客戶——和各種設備具有可用性。
今天,Web已經成為交付高價值解決方案的萬能平臺。實際上可以用任何設備,包括手機、PDA和臺式機訪問服務。已開發的技術和協議可以集成現有的業務過程與資源并讓它們在Web上可用。
企業使用不同的分布式系統來運行它們的操作。
- 本地應用程序:在特定PC上運行的應用程序,如office應用程序。其中也有一些應用程序是基于LAN的。
- 客戶/服務器應用程序:由大型服務器承載的應用程序。一般來說這些應用程序是業務關鍵性的——財務、人力資源、制造——并且需要大型數據庫后端?蛻/服務器應用程序同時使用專有的和基于Web的前端。
- Web服務應用程序:運行在Web上的應用程序,如電子郵件和日程表。它們通常是專用的、單功能的應用程序,并且通常需要專門的客戶端軟件。Web應用程序可以在內部使用,也可以由應用服務提供商(ASP)提供,還可以是這兩者的結合。
- Web服務:在Web上運行的服務,可以與其他服務結合以創建更有用或者更強大的解決方案。Web服務是模塊化的、設計好的和封裝的功能,用于在應用程序或者系統之間松散耦合集成。
- 操作環境服務:提供可擴展的和像群集、動態再配置和高可用性這樣的可靠性。這些服務通常是由像Solaris™操作環境(Operating Environment OE)這樣的操作系統提供的。Sun使用術語“按需服務(Services on Demand)”描述所有這些內容。
按需服務是企業使用他們的IT環境進行事務和報告業務操作、并與其他人——任何地方、任何時間、在任何設備上——通信的方式。按需服務概念是模塊化、靈活、可集成性和從實際上任何地方自動訪問數字資產——包括計算資源的基礎。
按需服務構想是完整的框架,涵蓋了傳統的基于NET的服務,如安全性、身份驗證和目錄,并包括了更先進的功能,包括虛擬儲存和復合服務(由組合的單獨服務所創建的服務)。
按需服務代表了進化而不是革命——它們不取代其他的網絡和開發方式。為了使按需服務模型具有吸引力,企業必須能夠利用現有的應用資產并將它們作為服務公開。
按需服務并不是連接到現有資源,而是可以利用并擴展它們。廠商現在提供可以減少轉換到這種新模型的成本、風險和復雜性的工具。Sun提供的按需服務的體系結構就是Sun ONE體系結構。此外,按需服務結構可以容易地與現有其他廠商的產品集成。
Sun ONE
Sun One平臺是今天基于擴展性、可靠性、開放標準的Web應用程序和明天的按需服務的基礎。這個結構包含了(從下到上):
- 操作系統、硬件、存儲和網絡平臺,它包括了必要的目錄技術以定義用戶、訂閱者、組織和策略。
- 表示、業務邏輯和數據訪問
- 服務交付是表示層。在這個體系結構中,門戶服務器向任何設備交付服務、聚集內容、提供安全性、個性化。
- 服務容器提供了業務邏輯——Web服務就在這個容器中運行——通常是一個J2EE應用服務器。服務容器包含企業要構建或者購買的“預構建的Web服務”,通常是由現有的商業或者通信應用程序所承載的。
- 服務集成是數據訪問層。這一層集成了企業資產如B2B和EAI應用程序、傳統應用程序和數據庫存儲。
- 創建、組裝、部署和測試服務的工具。
Sun ONE體系結構提供了按需服務的技術、產品和標準,以及跨平臺的優秀集成并定義了與傳統系統和非Sun提供的軟件的互操作性。Sun ONE體系結構提供了下列能力:
- Web應用程序中間件,包括今天可以使用的標準消息和Web服務器能力
- Web服務器中間件,它為基本XML Web服務提供了新功能
- 標識和內容(有關用戶偏好、意圖和目標的知識)服務
- Web客戶模型,它定義了如何向具有Java 2 Platform, Micro Edition J (J2ME™)的便攜設備和具有桌面Java標準的桌面設備提供富Java應用程序
- 當前作為產品接口提供的其他中間件接口和核心Web服務:目錄服務、門戶服務、安全和策略、電子商務服務和通信能力
- Java和Web開發工具,包括包裝傳統語言用于Web服務的能力
- Web應用程序和Web服務的系統和應用程序管理
- 與Web應用程序和Web服務容器相關的平臺服務
Sun ONE體系結構表示可集成的堆棧,它基于API和協議的開放標準。Sun ONE積極采用標準Web接口并且將它作為其互操作性策略的基礎。正如本文后面所展示的,可以將最好的產品集成到一個整體Web服務解決方案中。
技術
除了成熟的Web協議——HTTP、HTML和SSL,正在涌現其他支持新Web服務模型的技術。雖然不是所有的技術都被完全定義為標準,但是它們在廣泛的業界支持下迅速成熟。關鍵的技術如下:
- XML:擴展標記語言(XML)描述了儲存在計算機中稱為XML文檔的一類數據對象,它部分描述了處理這些對象的程序的行為。XML的目標是在Web上以像今天HTML的方式提供、接收和處理準化的數據
- SOAP: 簡單對象訪問協議(Simple Object Access Protocol SOAP)提供了簡單和輕型的機制用于在離散的、分布式環境中的個體之間交換結構化的和類型化的信息。SOAP本身沒有定義任何像編程模型這樣的應用程序語意或者實現特定的語意,相反,它通過提供模塊化的包裝模型和對模塊中的數據進行編碼的編碼機制定義了表達應用程序語意的簡單機制。這使SOAP可以用于多種不同的系統和軟件應用程序環境中?/li>
SOAP包括三部分:
- SOAP envelope construct定義了表達消息內容的整體框架——誰應該處理它、它是可選的還是必需的。
- SOAP編碼規則定義了一個可以用于交換應用程序定義的數據類型實例的序列化機制。
- SOAP RPC representation定義了可以用于表示遠程過程調用和響應的規范。
- WSDL: Web服務描述語言(Web Services Description Language WSDL)是一種XML格式,用于將網絡服務描述為對包含文檔導向的或者過程導向的信息的消息的一系列端點操作。操作和消息是抽象描述的,然后綁定到具體的網絡協議和消息格式以定義一個端點。相關的具體端點結合到抽象端點(服務)。WSDL是可擴展的,以便在通信使用任何消息格式或者網絡協議時,都可以描述端點及其消息。
- UDDI:通用描述、發現和集成(Universal Description, Discovery, and Integration UDDI)是發布基于Web的Web服務信息注冊表的規范。UDDI還是讓企業注冊有關在企業內部或者企業之間提供的Web服務的信息的可公開訪問的一組規范實現。
- 白頁,包括地址、合同和已知標識
- 黃頁,包括基于標準分類的行業目錄
- 綠頁,有關由企業公開的服務的技術信息。綠頁包括對Web服務規范的引用,以及不同文件的打印機支持和基于URL的目錄機制。
- ebXML:.ebXML(電子商務XML Electronic Business XML)是世界范圍的項目,用以標準化電子商務數據的交換。ebXML的基本目標是創建一個全球電子市場。這是通過開發一組國際認可的規范實現的。 ebXML是完整的B2B框架,它通過共享基于Web的業務服務使企業合作成為可能?蚣苤С侄x和執行以精心設計的業務服務交換序列表示的企業內和企業間B2B業務過程。在企業間傳送XML消息的傳輸可以是SOAP或者由ebXML提供的SOAP擴展。ebXML消息傳輸使消息可以安全和可靠地傳輸,不需要程序員處理這些細節
- J2EE: 開發和部署企業應用程序的一個環境。J2EE平臺由一組提供開發多層、基于Web的應用程序的功能的服務、應用程序、API和協議組成。J2EE技術是一個通常用于大型企業的、框架范圍計算的Java平臺。Sun Microsystems(與IMB這樣的行業伙伴一起)設計了J2EE平臺以簡化在瘦客戶環境中應用程序的開發。J2EE平臺通過創建標準化的、可重用的模塊組件并且通過使J2EE容器可以自動處理編程的許多方面簡化了應用程序開發,并減少了對編程和程序員培訓的需要。
Web服務
術語“Web服務”現在有了由業界廠商和評論家所賦予的特定意義。Web服務是自描述的組件,它可以在Internet上發現和使用其他Web服務以完成復雜的任務。與固化的應用程序——如桌面或者客戶端服務器應用程序——不同,Web服務是松散偶合的,可以動態定位Internet上的其他組件并與之互動以提供服務。
Web服務通常傳遞XML消息。這可以用遠程過程調用方式同步地、或者以可靠消息傳遞方式異步地完成。RPC的主要標準是SOAP?煽肯⒎绞娇梢允峭ㄟ^message bus,如Java消息服務(Java Messaging Service JMS),或者使用新出現的ebXML互操作消息服務。
在這個關系圖中,開發工具訪問UDDI注冊表以發現有哪些服務可用。注冊表可以是公開的,也可以是企業私有注冊表。工具通過用SOAP協議發送XML消息瀏覽注冊表。在注冊表中有可用服務的描述,其中WSDL格式的項描述了服務和接口。這個模型稱為靜態查詢,因為服務發現是在開發時進行的。
方案
TransCanada是北美主要能源公司。它的主要業務是是天然氣傳輸和動力服務。公司有大約38 000公里的傳輸管道網絡,將加拿大西部大部分天然氣產量傳輸到加拿大和美國快速增長的市場。TransCanada擁有、控制或者正在建設總量大約2250兆瓦的動力——可以滿足2百多萬一般家庭的需要。公司的股票以代碼TRP在多倫多和紐約股票市場交易。
在最近幾年,TransXanada采用了更流線化的、成本效率更高的方式提供服務和開展業務。這個“更好、更快、更便宜”的方式是由公司的IS部門采用的。這使他們可以集成可以增值的部門并讓他們可以在特定的業務領域對變化做出快速反映,甚至更換整個系統以減少對其它系統的影響和依賴性。
為了滿足業務要求,IS部門著手一個試驗項目以構建下一代應用程序。目標是創建一個軟件開發環境,在這個環境中他們不必從頭開始創建每一個應用程序。這個目標可以通過開發一組公共服務組件實現,這些組件可以在未來的應用程序開發中使用。通過提供這些服務,TransCanada開發人員可以依靠它們的存在并在需要時調用它們。
理想情況下,在提供了服務后,它們就被“黑箱化”了,它可以通過定義良好的API提供特定的能力。這可以使開發人員注重于如何可以使用它們而不是底層的代碼。他們的項目的一個最主要的要求是避免廠商依賴性或者專有技術。Java™技術和XML數據格式這兩種技術將是他們大多數工作的基礎。
- Java技術提供了很多工具和能力。它的開放標準通過一個community process得到支持,其技術由多家公司提供。
- XML作為在Internet上調用事務的方式出現,這種方式相對來說與設備和應用程序無關。HTTP上的XML是理想的協議——并且被普遍采用。
在分析了目標和可能的不同結構后,IS人員決定他們的下一代基礎設施需要公共服務基礎。
Sun、TransCanada和其他新出現的Web技術消費者團體和廠商加入到TransCanada的IS小組,參與SPINE項目。他們的目標是根據這一具體企業業務案例設計、構建和實現在Sun ONE體系結構中實現了按需服務的參考體系結構。雖然原形展示了簡單的過程——用戶請求和接收貨幣兌換率,但是其底層Web服務基礎結構可以使用在不同的服務中。
與所有業務關鍵的項目一樣,定義了一些原則和要求。
業務需求
由Sun和TransCanada共同確立的關鍵業務需求決定了SPINE結構。它們是:
- 減少技術開支:減少TransCanada對應用程序和軟件基礎結構的操作、維護和更新成本,該成本以TCO計算。
- 提高業務響應性:提高TransCanada IT項目中業務改變要求的響應性,由新業務服務的減少的TTM計算。
功能需求
在原型階段開發了簡單服務。這個服務是貨幣轉換器,用于支持交易柜臺。盡管在概念上很直觀,但是原型是一個綜合的工作,涉及:
- 創建和部署J2EE應用程序
- 創建Web服務
- 部署Web服務
- Web服務UDDI注冊和查詢
- 消費Web服務
- Web服務身份驗證
- Web服務授權
- Web服務計量
- Web服務性能計量捕獲和報告
- Web服務排序
他們決定將工作重點放在創建提供在需要時可以發現和使用的測量、安全性和報告功能的服務。項目小組預計實際上所有Web服務都會需要這些能力。
服務水平要求
下面是一些不同的部署方案,包括內聯網(內部)、外聯網(行業伙伴VPN)和Internet(提供的公開可用的服務)。服務水平需求根據部署方案可能有很大的不同。Web服務就像其他分布系統方案一樣,必須明確服務水平要求——TransCanada將它作為要解決的第一個問題。在原型階段,TransCanada選擇主要關注可管理性和安全服務水平要求。服務水平要求包括:
- 可管理性:可管理性是系統設計和操作中一個完全獨特的領域?晒芾硇钥梢杂帽O視系統和測試與性能和故障相關的操作特性的難易程度、配置(和重新配置)系統的難易程度以及提供什么程度的控制信息來表示。
- 對于SPINE原型,實現了錯誤和事件監視、性能和占用測量服務以分別實現SAL管理和基于使用的付賬。
- 安全性:安全性不只是機密性(如身份驗證、訪問控制、加密)和完全性(識別或者防止損壞)問題,而且包括與可能影響服務可用性的不可否認 (驗證操作的客戶標識)有關。
對于SPINE原型,實現了增強的簡單名字/密碼身份驗證的框架,并有角色身份和用戶策略驗證能力。
- 性能:系統作為OoS組件的性能與特定性能計量(如響應性或者延遲性)和用戶對于性能的體驗相關。在SPINE原型中創建了性能監視的框架。
- 可靠性:作為OoS屬性的可靠性與服務器底層單獨的組件的可靠性密切相關。它由包括可靠消息、復制、故障轉移等等技術增強?煽肯⑹荢PINE原型計劃中的擴展。
- 可用性:可靠性對可用性起作用,但是通過使用冗余組件和可以降低平均修復時間的故障轉移機制,當單獨的組件失敗時也可以實現可用性。在SPINE原型中提供了簡單的Web服務重定向工具。
- 擴展性:擴展性與隨著時間增加容量、因而增加用戶的能力相關。擴展性通常需要額外的資源,但是擴展性不應該因為規模的擴大而需要改變結構、重新設計或者損失服務。
- 縱向擴大:縱向擴大是增加一個系統或者系統群組中的硬件資源(如增加CPU、內存磁盤、I/O等等以增加服務器的能力)。
- 橫向擴大:橫向擴大適用于有縱向擴大極限并且狀態保留不是一個重要的要求的情況、或者通過一致性狀態復制可以提供成本效率高的狀態保留的情況。在這種情況下,可以橫向增加或者平行配置服務器以擴大系統。
- 維護性:系統的維護性用兩個一般區域表示:
- 系統可以修復和組件可以更換的區域
- 維護活動占用系統及系統服務停止或者重新啟動的程度。
結構原理
SPINE結構的設計應用的結構原理包括:
N-層:N-層結構是一種軟件設計,將軟件的功能邏輯地分為分布式網絡中的3個或者更多組件。
基于開放標準:基于開放標準的結構最大程度地使用了由多家廠商通過參與開放標準工作組以協調的方式開發、維護和支持的技術。
松散耦合:松散耦合結構定義了不同層組件之間的接口,通過使用廣泛接受的、基于開放標準的技術,使得開發人員不用關心從每一個組件內部技術的細節。真正的松散耦合結構使得一個層中主要組件的更換對于到另一層中的組件的連接只有很少或者沒有影響(例如,重新設計)。
結構
設計、開發、部署和維護Web服務可能需要許多不同的工具和技術。在本章后面描述TransCanada展示階段的主要組件,如Forte™ for Java™ Enterprise Edition IDE、iPlanet™ Directory Server Access Management Edition、 iPlanet Application Server、OpenView Operations、OpenView Trend Performance、iPlanet Integration Server和Systinet WASP。為理解這些工作是如何結合到一起的,下面做一個簡要的操作回顧。
操作
下面是對在iForce Ready Center 中實現的TransCanada貨幣兌換Web服務原型實現的高層次描述。參見下圖。
1.使用Forte for Java IDE和Systinet WASP Web服務插件程序完成幾乎所有Web服務的創建和部署。
- 創建貨幣兌換企業級JavaBean (EJB™)組件的代碼
- 部署這個EJB組件到應用服務器中
- 創建簡單的、請求貨幣兌換率的GUI客戶端。
2.在IDE中,應用程序是作為iPlanet Aplication Server的一個會話EJB組件創建和部署的。然后創建一個Web服務包裝器并部署到SOAP服務器上作為EJB服務的facade。
3.在IDE中生成Web服務WSDL
4.用UDDI注冊表發布WSDL,使其可以被瀏覽
5.在GUI客戶端,調用Web服務的get exchange rate方法
6.從SOAP請求頭中提取用戶憑據并用來透明地進行身份驗證,并授權用戶訪問Web服務。對于身份驗證和授權都有Web服務hook(SOAP頭處理器)。這樣就可以使用實際上所有安全產品或者架構以管理訪問和策略。
7.處理了SOAP請求頭后,它還觸發對Web服務的測量和監視。當貨幣兌換服務完成并返回給GUI客戶端時,向同一個系統發出關閉信號。這使OpenView子系統可以測量持續時間,并在出現不正常的遲延時給出報告。
8.原型階段目的是成為更復雜的解決方案的一部分。這個Web服務的大多數功能可以通過集成服務器或者排序引擎啟用和擴充。使用圖形界面,Web服務開發人員可以重復使用現有的基礎設施來創建新的Web服務。為此可以使用iPlanet集成引擎。
SPINE—主要組件
創建和部署Web服務
Forte for Java Enterprise Edition和Systinet
Web服務的創建和部署是用Forte for Java IDE及Systinet’s WASP Web服務模塊完成的。這種組合使開發人員可以迅速和容易地利用現有的類——或者在UDDI中查找這些類——并在IDE中直接將它變成Web服務。在IDE中使用Systinet WASP工具,開發人員可以在IDE中直接生成SOAP客戶代理和WSDL文件。Forte for Java Enterprise Edition還使開發人員可以:
- 用現有EJB組件創建Web服務
- 使用這個服務讓使用HTTP上的XML進行通信的客戶可以訪問EJB組件。
- 使用JavaServer Pages™ (JSP™)框架讓其他Web客戶,如Web瀏覽器、手機和DPA可以訪問Web服務。
- 利用IDE和iPlanet Application Enterprise Edition服務器的緊密集成在IDE中方便地開發、部署和測試Web服務。
在IDE中,開發人員可以使用現有的Java技術類作為Web服務façade加入到部署的EJB應用程序中,并使用Systinet’s WASP模塊生成、包裝和部署Web服務。WASP工具將自動生成描述Web如何、怎樣和何處的WSDL接口定義。
對于SPINE原型,Forte for Java IDE用于:
- 創建EJB組件
- 將這些組件部署到應用服務器上
- 創建使用EJB組件的Web服務facade
- 創建Web服務部署包
- 在包中添加頭處理器(可鏈接的句柄)配置
- 部署Web服務
- 創建和部署GUI客戶端
用IDE創建簡單的、無狀態的EJB組件以表示貨幣轉換服務。需要一個業務方法以得到一個示例兌換率,其簽名如下:
‘public float getRate(java.lang.String countryOne, java.lang.String
countryTwo) throws RemoteException;’
這就是貨幣轉換Web服務所調用的EJB業務方法。服務在WASP SOAP服務器上運行,它在應用程序服務器上使用RMI/IIOP調用它。
IDE的GUI驅動的開發環境有助于簡化EJB組件的創建和屬性調整。例如,通過以下屬性菜單可以啟用對ExchangeRate bean的IIOP可訪問性:
注意屬性“Allow IIOP Client Access”標記為“true”。
然后將EJB應用程序部署到應用服務器上?梢岳肍orte for Java Enterprise Edition IDE與iPlanet Application Server軟件之間的具有的緊密集成簡化在應用服務器上對EJB應用程序的部署。
在IDE中,如下選擇要部署的默認應用程序服務器,然后選擇Create New EJB Module:
然后,用這個窗口命名這個服務:
可以在IDE runtime選項卡中確認部署,如下所示:
創建貨幣兌換Web服務
Web服務的創建和部署是用Forte for Java IDE的WASP Web服務插件程序完成的。這個插件程序使開發人員可以迅速和容易地使用現有的類——或者在UDDI中查找它——并在IDE中直接將它轉變為Web服務。
在IDE中,作為Web服務façade的現有的Java類被部署到J2EE應用服務器上。WASP工具會自動生成完全描述了Web服務的WSDL接口定義。WSDL還在運行時用于為客戶生成動態客戶代理類,這樣它就可以與基于SOAP-RPC的Web服務互動。
注意這段代碼與EJB組件有相同的getRate方法簽名。這是WASP在收到SOAP請求后調用的方法。它在iPlanet Application Server上進行EJB組件JNDI查詢,然后用IIOP創建它。這個façade使WASP服務器成為iPlanet Application Server中的IIOP富客戶端。
可以用IDE中的一個向導創建façade和新的Web服務——下圖顯示了其做法:
這一步使開發人員可以選擇ExchangeRateService façade類。
這一步用于讓getRate方法作為服務公開。
這一步用于設置WSDL屬性。
這個工具生成服務,如下所示:
部署貨幣兌換Web服務
為了部署Web服務和WSDL,創建了一個新的服務包。這個包包含以下內容:
- ExchangeRateService類——facade
- Exchange Rate EJB本地和遠程接口
- 用于進行身份驗證、授權、測量和監視的Web服務SOAP頭處理器的支持類
- WASP配置XML文件,它提供了使用哪一個頭處理程序的細節
在IDE中,包是通過一個向導界面創建的。IDE的源代碼編輯器內容:
注意Web服務使用輸入和輸出可鏈接的頭處理程序進行身份驗證、授權、監視和計量。代碼還提供了Web服務和WSDL的綁定。
IDE還打包JAR庫。這個庫包含了頭處理程序的支持類。這也是用GUI菜單進行的。
完成了包以后,就將這個包部署到應用服務器上。
注冊和發現——UDDI
Systinet WASP工具提供了UDDI瀏覽器和發布功能?梢杂肗etscape Web瀏覽器查看UDDI項。WASP UDDI注冊表使用Oracle 8作為其數據庫。
SPINE UDDI瀏覽器為服務管理員和消費者提供了以下能力:
- 支持將WAR、EJB JAR和/或EAR部署到應用服務器環境。
- 根據指定前/后處理鏈組件信息和服務的接口定義生成SOAP部署描述符。
- 將SOAP描述符部署到部署環境中。
- 將WSDL文件移植到部署環境中。
GUI客戶端
原型使用了在IDE中直接創建的簡單Swing GUI客戶端。原型也可以使用其他技術,如applet、JSP頁、servlet或者專用的門戶渠道實現同樣的目標。之所以選擇GUI方式是為了表現在IDE中可以直接開發、部署和測試幾乎所有內容。
代碼量很小——不需要低層SOAP或者XML編碼。
這段代碼
- 執行ExchangeRateService的URL設置
- 建立WASP查詢上下文
- 根據façade類文件執行對ExchangeRateService的查詢
- 調用使用動態生成Web服務客戶代理的getRate方法。在這里調用getRate使SOAP請求進行格式編排并發送給WASP服務器,并接收WASP SOAP響應,對其進行解析(unmarshalled),并將響應值返回給原來的調用者。
- 這個客戶的另一個重要的方面是它使用一個客戶端頭處理程序用于:
- 通過SOAP指定進行身份驗證
- 將用戶上下文(用戶標識和密碼)裝載到SOAP頭以便服務器
- 提取并用以進行身份驗證,等
目錄服務
目錄服務對用戶身份和授權憑證進行驗證。接收來自服務組件的XML格式請求,并對其檢查以確定其權限和策略允許對特定服務的訪問。
使用iPlanet Directory Server,Access Management Edition提供目錄服務以及對身份證驗證和訪問策略的管理和增強。這個軟件包配合基于角色的身份驗證提供了基于策略的授權。這使開發人員可以創建特定用戶根據他們在組織中的角色確定對應用程序和服務的訪問的環境。盡管原型展示的是一個服務,當SPINE能力擴大時,基于角色的服務將在整個基礎設施中起重要作用。
瀏覽和測量——OpenView
監視(截獲和展現問題事件的任務)和計量(測量和報告響應時間和流量的任務)是每一個將投入生產的軟件系統所必需的。服務提供者通常需要負責可用性和可接受的性能,以及根據用戶和組提供記賬。
可管理性存在于Web服務部署框架內,所以EJB和Web服務開發人員不必擔心可管理性,它更應該是部署時的任務。每一個新部署的Web服務都可以利用現有計量和監視能力。
Openview管理解決方案為SPINE原型提供了監視和計量服務。底層基礎設施,包括Solaris OE、UDDI數據庫、iPlanet Directory Server或者iPlanet Application Server,也是管理域的一部分。這使TransCanada可以事先檢測基礎設施中可能影響Web服務可用性的問題。
OpenView產品
HP OpenView軟件為SPINE原型提供了監視和測量服務。SPINE原型的關鍵OpenView組件是:
OpenView產品名 |
功能 |
OV Operations for the Solaris OE |
事件管理、基礎設施和系統監視 |
OV Service Navigator |
服務影響計算和最終原因分析 |
OV TREND Performance Manager |
Web服務性能報告 |
OV Performance |
系統資源計量和可視化 |
OV Smart Plug-Ins |
監視和測量應用程序的插件程序,包括iPlanet、Oracle和其他。 |
Web服務事件管理
SPINE Web服務體系結構的事件管理實現基于管理基礎設施的開放的、基于標準的實現,基于Solaris產品的OpenView操作作為企業級的后端事件管理解決方案。OpenView操作建立在三層結構上:•
- Autonomous 代理:這是一個小型的footprint 軟件,在后臺運行,根據特定的一組(模板形式的)策略監視本地系統和應用程序。代理可以創建事件、根據規則篩選和關聯事件,將事件發送給管理服務器,并根據事件觸發修正行動。即使到管理服務器的網絡連接丟失,代理也會繼續工作,并在網絡連接恢復后自動重新連接并發送緩存的消息。
- 管理服務器:這是所有代理發送的事件和所有代理配置的聯合層。所有數據,包括事件和配置數據,都儲存在底層Oracle數據庫中。代理軟件和配置(以模板的形式)可以由服務器集中發布?梢栽诜⻊掌魃蠈崿F其他的篩選和關聯。OpenView服務瀏覽器的服務引擎提取所有事件并計算服務影響。
- 用戶界面:OpenView操作提供基于Java技術和X/Motif的用戶界面,通過消息瀏覽器提供一組事件的內部信息,并提供一個控制臺啟動操作任務。對于操作人員和管理人員有不同的用戶界面。
由Web服務引擎生成的問題事件被基于JMX的管理基礎設施用SOAP引擎的“錯誤處理器”功能所截獲。對每一個由SOAP引擎生成的錯誤都調用這個錯誤處理器。SPINE中的錯誤處理器為錯誤指定一個嚴重級別并轉送給JMX基礎設施中的相應的MBean。錯誤監聽器組件會收取這個錯誤并通過SOAP/XML將它發送給遠程管理Web服務。
遠程事件管理結構
管理服務器上的Web服務SOAP引擎收取請求,并觸發相應的方法,它通過Web服務事件的OpenView特定的適配器將事件提供給OpenView事件管理基礎設施。OpenView適配器可以進行高級的篩選,它用特定的指令和預定義的行動豐富了原始的事件,這樣就極大地提高了操作的效率。
服務模型
服務模型定義了IT基礎設施的低層組件和由環境提供的高層業務服務——Web服務——之間的關系。這種方法可以對IT基礎設施中問題對業務服務的影響進行評估。相關性在性質上可能很復雜,所以使用可以定義真實模型的強大建模語言很重要。OpenView使用基于 XML的服務建模語言,它提供了所需要的表達能力,并可以根據發現腳本用于自動生成服務模型。
對于SPINE原型,貨幣兌換Web服務的服務模型是用OpenView服務瀏覽器開發的。這個服務模型定義了貨幣兌換Web服務是如何取決于其他軟件組件的,包括iPlanet Application Server軟件、Systinet WASP SOAP服務器、iPlanet Directory Server軟件以及Solaris操作環境。下面的屏幕顯示了OpenView Java控制臺的服務可視化組件。
所有進入OpenView事件基礎設施的問題事件都賦予了低層服務圖標(通過監視屬于對應OV操作消息的一部分的服務ID)。根據事件嚴重性,更新服務圖標問題狀態,再通過服務樹傳播新問題狀態。操作員只需要監視高層業務服務圖標。一旦在IT基礎設施中發生問題,最終原因分析(root cause analysis)功能就可以使它們從高級業務服務深入到低層IT組件找出問題的原因。
分析Web服務性能
SPINE Web服務結構的計量解決方案給出了客戶對Web服務性能的體驗的內涵。測量每一位用戶的響應時間和服務調用的次數,這樣可以將測量數據提供給付賬系統。
SPINE原型使用OpenView Trand Performance產品收集、積累并可視化性能統計。OV Trend Performance使用基于Web的用戶界面進行報告。OpenView產品還用于測量底層系統平臺的性能。
計量解決方案是用與監視解決方案類似的結構實現的。在每一次對Web服務調用之前和之后,實現了調用應用程序響應時間測量(Application Response Time Measurement ARM)標準的start()和stop()API函數特定的頭處理程序。得到的響應時間數據點(其中包括用戶信息)再儲存到JMX基礎設施中的MBean中。Web服務性能數據通過SOAP/XML發送給遠程管理Web服務。為了控制通過網絡的數據數量,在MBean進行初級的聚集。
在遠程管理服務器上,SOAP引擎收取性能數據并觸發一個OpenView特定的適配器,它將數據提供給Trend Performance基礎設施。
Web服務定序—iPlanet Integration Server
iPlanet Integration Server是由設計時和運行時組件和工具組成,在Forte Unified Development Server(UDS)開發和運行時環境中創建。它是為了在企業EAI解決方案中使用,這個方案可能包括工作流、應用程序集成、組件和Web服務定序、以及通過使用預打包的CRM/ERP類系統應用程序連接器提供的各種可能性。iPlanet Integration Server的核心是強大的、高性能處理引擎,它可以管理遠超過上百萬運行時業務進程的進程執行和狀態。
iPlanet Integration Server業務進程是在Process Definition Workshop中以圖形方式構建的,這描述了進程應該如何對構成Web服務定序的不同的業務步驟或者活動。進程以調用First的行動開始,以調用Last結束,它作為庫部署在運行時引擎,使它可以“熱部署”新的或者現有的進程定義而無需重新啟動服務器引擎。例如,如果SPINE進程最初定序兩個Web服務,現在需要第三個,可以簡單地修改進程定義并重新部署。新進程請求會自動取用新的定義。
SPINE原型使用的進程定義稱為SpineTransferProc,如下所示:
上圖顯示了簡單的序列,它擴展了這個服務使之超出現了SPINE原型中的貨幣兌換:
- 進行貨幣兌換率查詢活動
- 使用這個兌換率用電匯Web服務在兩個賬戶之間電匯貨幣。
- 在成功完成電匯轉移后,通知進程starter進程已經完成了。
參與活動的行稱為router。彩色代碼幫助開發人員理解哪些活動成功完成了,哪些沒有成功完成。
不成功的活動可以向進程starter提供即時通知。還包括一個計時器保護可能的系統或者Web服務掛起。計時器超時可以用于為管理員提供早期警告信號。
結論
SPINE項目展示了IT部門正在采用按需服務的概念——發送和管理Web服務的能力,Sun的按需發送服務體系結構是Sun ONE。對于TransCanada來說,Sun ONE的吸引力是很大的——在可以采用和護現有IT資源的、可集成的和可管理的框架上用開放技術構建的Web服務。Sun ONE既是可集成的、也是已集成的——Sun和iPlanet提供了完整的軟件報價,它可以提供任何的所有所需要的組件。TransCanada使用Sun ONE體系結構以用它們自己的“更好、更快、更便宜”版本發展。Sun有交付按需服務的vision、結構、產品和經驗。用市場領先的工具創建、組裝、集成、部署和測試,Sun為Sun ONE提供了一個完整的環境。在這個項目中展示了Sun對開放API的承諾:集成器、第三方產品和行業標準技術,所有這些都為其成功做出了貢獻。TransCanada正在接近實現其基于非專有產品的設計的IT環境的目標——可以比以前更快和更容易地幾乎無縫地改進、維護、管理和更新它。
SPINE原型表明使用Sun解決方案和Sun合作伙伴,機構可以更快和以更低的成本構建和管理按需服務。
文章來源于領測軟件測試網 http://www.kjueaiud.com/