【正文】
底層RDBMS數(shù)據(jù)源,只檢索后處理形式的數(shù)據(jù);為及時(shí)訪問Web服務(wù)等高延遲資源,它還支持并行的、基于超時(shí)的故障轉(zhuǎn)移工具。因此,BEA AquaLogic Data Services Platform提供對(duì)底層數(shù)據(jù)的自動(dòng)訪問、轉(zhuǎn)換與關(guān)聯(lián)以及底層數(shù)據(jù)訪問優(yōu)化。適應(yīng)應(yīng)用需求的服務(wù):對(duì)于任意服務(wù)調(diào)用,應(yīng)用可能需要許多數(shù)據(jù)子集和各種不同的結(jié)果。比如,對(duì)于一個(gè)返回客戶數(shù)據(jù)的服務(wù),應(yīng)用可能需要查詢按客戶標(biāo)識(shí)排序的數(shù)據(jù)(排序)、郵政編碼為某特定數(shù)字的客戶(篩選)、只要客戶的姓(映射)或客戶數(shù)量(合計(jì))。傳統(tǒng)上,上述操作都必須是獨(dú)立的服務(wù)調(diào)用,這些調(diào)用有相互重復(fù)的數(shù)據(jù)轉(zhuǎn)換和確認(rèn)邏輯。通常,以一個(gè)通用的getCustomer()服務(wù)調(diào)用獲得上述所有數(shù)據(jù)是無法接受的,因?yàn)槟菚?huì)將太多的數(shù)據(jù)帶到中間層,產(chǎn)生性能問題。BEA AquaLogic Data Services Platform的聲明性方法使數(shù)據(jù)服務(wù)架構(gòu)師能定義一個(gè)getCustomer( )服務(wù)調(diào)用,而不會(huì)產(chǎn)生性能問題。開發(fā)人員可以使用應(yīng)用特有的過濾、排序、映射或合計(jì)等功能,BEA AquaLogic Data Services Platform動(dòng)態(tài)地創(chuàng)建針對(duì)各種不同情況而優(yōu)化的查詢和更新規(guī)劃。這消除了針對(duì)不同應(yīng)用需求不斷改變數(shù)據(jù)服務(wù)層的需要,提高了數(shù)據(jù)一致性。服務(wù)上的服務(wù)(視圖演化):如下圖所示,聲明性方法使數(shù)據(jù)服務(wù)架構(gòu)師能利用現(xiàn)有服務(wù)定義新服務(wù),而不必?fù)?dān)心性能下降。BEA AquaLogic Data Services Platform引擎可以優(yōu)化掉服務(wù)調(diào)用的中間層,為服務(wù)調(diào)用產(chǎn)生效率更高的數(shù)據(jù)訪問規(guī)劃。與此相反,基于工作流(或人工編碼)的方法在服務(wù)調(diào)用其他服務(wù)時(shí),性能會(huì)嚴(yán)重下降。各個(gè)服務(wù)按照編碼執(zhí)行,而不考慮高層服務(wù)需要的可能只是一小部分?jǐn)?shù)據(jù);而且每種服務(wù)都有自己的界限,要跨越界限需要進(jìn)行多次數(shù)據(jù)復(fù)制和轉(zhuǎn)換。因此,數(shù)據(jù)服務(wù)架構(gòu)師經(jīng)常不得不為所需的各個(gè)數(shù)據(jù)服務(wù)分別編寫工作流。一次集成與重用:如下圖所示,聲明性方法使數(shù)據(jù)服務(wù)架構(gòu)師能夠創(chuàng)建、共享、專用和重用數(shù)據(jù)服務(wù)。實(shí)例包括了提供單一“客戶”視圖的數(shù)據(jù)服務(wù),或者提供重要業(yè)務(wù)實(shí)體的數(shù)據(jù)服務(wù)。在數(shù)據(jù)服務(wù)層,數(shù)據(jù)服務(wù)架構(gòu)師經(jīng)常創(chuàng)建許多類似的服務(wù)調(diào)用:? getCustomerByID(custID)? getCustomersByRating(rating)? getTopCustomers( )如果客戶數(shù)據(jù)是從多個(gè)數(shù)據(jù)源獲取的,則執(zhí)行這些數(shù)據(jù)服務(wù)的最有效的辦法似乎是使用多個(gè)SQL查詢和服務(wù)調(diào)用。使用BEA AquaLogic Data Services Platform,數(shù)據(jù)服務(wù)架構(gòu)師可以創(chuàng)建一個(gè)通用的數(shù)據(jù)集成服務(wù),比如getCustomerProfile( )。在這個(gè)主要的“單一客戶視圖”上,可以方便快捷地定義多個(gè)專用服務(wù)。由于這些服務(wù)可以利用在底層服務(wù)中已經(jīng)預(yù)先完成的集成工作,所以定義這些高層服務(wù)非常容易。此外,BEA AquaLogic Data Services Platform的聲明性方法使其可以優(yōu)化掉中間層,為在其上構(gòu)建的服務(wù)產(chǎn)生更高效的訪問途徑。與此相反,用工作流或人工編碼來處理此問題,需要為每個(gè)服務(wù)分別編寫程序。BEA AquaLogic Data Services Platform的聲明性方法,支持視圖演化,消除了服務(wù)調(diào)用其他服務(wù)時(shí)產(chǎn)生的性能瓶頸。采用BEA AquaLogic Data Services Platform,通過重用現(xiàn)有服務(wù),定義新服務(wù)變得極為簡(jiǎn)單。而且由于與數(shù)據(jù)有關(guān)的規(guī)則在一個(gè)地方定義和使用后,可以一致地被所有相關(guān)的數(shù)據(jù)服務(wù)使用,因此該特性有助于提高數(shù)據(jù)的一致性。此外,由于改變只需在一個(gè)地方進(jìn)行,使得對(duì)于這些規(guī)則的維護(hù)十分輕松,提高了一致性。BEA AquaLogic Data Services Platform采用獨(dú)特的聲明性方法來定義數(shù)據(jù)服務(wù),支持?jǐn)?shù)據(jù)訪問邏輯的自動(dòng)化,提供“一次定義,多次重用”的體驗(yàn),極大地簡(jiǎn)化了數(shù)據(jù)服務(wù)的開發(fā)和日常維護(hù)。(4)定義數(shù)據(jù)服務(wù)BEA AquaLogic Data Services Platform提供了豐富的建模環(huán)境,能根據(jù)業(yè)務(wù)實(shí)體和它們之間的關(guān)系組織數(shù)據(jù)服務(wù)。使用這一環(huán)境,數(shù)據(jù)服務(wù)架構(gòu)師能在單一地點(diǎn)了解數(shù)據(jù)服務(wù)模式、服務(wù)操作和數(shù)據(jù)服務(wù)管理策略。良好的數(shù)據(jù)服務(wù)模型為應(yīng)用開發(fā)人員提供了使用數(shù)據(jù)服務(wù)的指南,并讓他們更有效地維護(hù)和重用數(shù)據(jù)服務(wù)。BEA AquaLogic Data Services Platform采用如圖的“分段圖(chip diagram)”,以圖形化方式描述每個(gè)數(shù)據(jù)服務(wù)的功能。分段圖以簡(jiǎn)潔的格式概括一個(gè)數(shù)據(jù)服務(wù)的信息,使數(shù)據(jù)服務(wù)架構(gòu)師能夠看到該服務(wù)及相關(guān)人工制品。圖3演示了該數(shù)據(jù)服務(wù)的幾個(gè)方面的信息:178。 數(shù)據(jù)服務(wù)的讀功能178。 與之相關(guān)的數(shù)據(jù)形狀,一種XML Schema178。 提供對(duì)相關(guān)數(shù)據(jù)服務(wù)訪問的導(dǎo)航功能178。 一組用來定義它的低級(jí)數(shù)據(jù)服務(wù)BEA AquaLogic Data Services Platform還支持?jǐn)?shù)據(jù)模型圖的創(chuàng)建和維護(hù),該圖以圖形化方式記錄和共享一個(gè)數(shù)據(jù)服務(wù)層的部分信息。與ER或UML圖表非常類似,每個(gè)數(shù)據(jù)模型圖表都顯示一組數(shù)據(jù)服務(wù)和它們之間的相互關(guān)系。BEA AquaLogic Data Services Platform中的數(shù)據(jù)服務(wù),按照實(shí)際業(yè)務(wù)實(shí)體建模(5)數(shù)據(jù)轉(zhuǎn)換通過數(shù)據(jù)服務(wù)平臺(tái)提供的數(shù)據(jù)轉(zhuǎn)換功能,在不同格式的數(shù)據(jù)之間相互轉(zhuǎn)換,將數(shù)據(jù)格式轉(zhuǎn)化為對(duì)方能識(shí)別的格式。這樣就使得具有不同數(shù)據(jù)格式的服務(wù)能具備更廣泛的兼容性。數(shù)據(jù)轉(zhuǎn)換是指數(shù)據(jù)從一種格式向另一種格式的映射和轉(zhuǎn)換。例如,非 XML 格式的數(shù)據(jù)可以轉(zhuǎn)換為 XML 格式,反之,XML 格式的數(shù)據(jù)也可以轉(zhuǎn)換為非 XML 格式。BEA的數(shù)據(jù)服務(wù)平臺(tái)提供了基于XQuery技術(shù)的可視化的數(shù)據(jù)轉(zhuǎn)換功能,能通過拖拽的手段快速實(shí)現(xiàn)不同格式之間的數(shù)據(jù)轉(zhuǎn)換, 還可以對(duì)下列任意輸入輸出數(shù)據(jù)類型進(jìn)行數(shù)據(jù)轉(zhuǎn)換:XML 數(shù)據(jù)、非 XML 數(shù)據(jù)、Java 原子類型、Java 類。在這個(gè)過程中,不但能夠?qū)崿F(xiàn)數(shù)據(jù)格式上的變化,還能使用XQuery的函數(shù),對(duì)數(shù)據(jù)內(nèi)容本身做各種運(yùn)算。此外,通過BEA服務(wù)平臺(tái)實(shí)現(xiàn)的數(shù)據(jù)轉(zhuǎn)換功能本身也可以被其他模塊復(fù)用。可視化數(shù)據(jù)轉(zhuǎn)換功能 服務(wù)總線平臺(tái)不同系統(tǒng)之間和指揮決策系統(tǒng)同北京市各級(jí)政府的相關(guān)系統(tǒng)之間的系統(tǒng)調(diào)用和信息交換,建議使用Web服務(wù)方法。為了建立開放的服務(wù)調(diào)用管理框架,建議使用BEA AquaLogic Service Bus服務(wù)總線產(chǎn)品。BEA提供了服務(wù)平臺(tái),提供了服務(wù)管理、服務(wù)路由、服務(wù)編排、數(shù)據(jù)轉(zhuǎn)換和消息代理等功能。在BEA提供的服務(wù)平臺(tái)中,“服務(wù)”代表了業(yè)務(wù)功能上可被復(fù)用的應(yīng)用模塊。它不僅僅可以是Web服務(wù)(WebServices),還可以是使用其他任何開放手段可訪問到的應(yīng)用資源,這些開放技術(shù)包括Tuxedo、CORBA、消息機(jī)制、適配器、DCOM等。這種服務(wù)的多樣性充分?jǐn)U展了開放平臺(tái)的資源管理范圍,無論是采用Java、C、C++開發(fā)的應(yīng)用系統(tǒng),還是使用CORBA、Web服務(wù)、消息機(jī)制實(shí)現(xiàn)的異構(gòu)系統(tǒng),這些資源都可以做為可復(fù)用的業(yè)務(wù)資產(chǎn),通過開放的系統(tǒng)架構(gòu)實(shí)現(xiàn)靈活的互聯(lián)互通。 服務(wù)管理首先通過集成功能,將客戶系統(tǒng)中所包含的使用不同實(shí)現(xiàn)技術(shù)、運(yùn)行在不同平臺(tái)的應(yīng)用接入到應(yīng)用架構(gòu)中。在完成集成單獨(dú)應(yīng)用后,這些應(yīng)用模塊就成為在開放架構(gòu)中可以被復(fù)用的業(yè)務(wù)模塊了。為了進(jìn)一步增加應(yīng)用和數(shù)據(jù)的靈活性,來適應(yīng)業(yè)務(wù)發(fā)展的需要,可以將這些接入的應(yīng)用和數(shù)據(jù)資源交給核心層的服務(wù)平臺(tái)進(jìn)行管理。圖:BEA服務(wù)平臺(tái)的服務(wù)資源管理BEA提供的服務(wù)平臺(tái)能夠集中管理集成層接入的各種應(yīng)用服務(wù),它可以從注冊(cè)到其中的服務(wù)自身描述(WSDL)中得到服務(wù)的特性,然后對(duì)眾多基于服務(wù)的應(yīng)用資源進(jìn)行集中管理。通過集中、有效的管理可復(fù)用的應(yīng)用服務(wù),可以清晰的了解在信息平臺(tái)應(yīng)用架構(gòu)中有哪些應(yīng)用和數(shù)據(jù)資源;這些資源是由什么應(yīng)用或數(shù)據(jù)源提供服務(wù)的;它們后臺(tái)實(shí)現(xiàn)實(shí)分布在哪些系統(tǒng)內(nèi)部;它們都能夠提供什么可重用業(yè)務(wù)功能;如何才能訪問它們等信息;它們提供什么安全保護(hù),從而真正實(shí)現(xiàn)了應(yīng)用服務(wù)資產(chǎn)管理。 服務(wù)路由使用服務(wù)的路由功能,可以為信息平臺(tái)實(shí)現(xiàn)更加非常靈活的業(yè)務(wù)調(diào)用過程。在BEA提供的服務(wù)平臺(tái)中,可以實(shí)現(xiàn)基于業(yè)務(wù)規(guī)則的服務(wù)路由功能。首先服務(wù)使用方通過服務(wù)平臺(tái)訪問某個(gè)服務(wù)的入口,當(dāng)服務(wù)平臺(tái)接收到用戶請(qǐng)求后,如果在服務(wù)調(diào)用過程配置了訪問路由,那么平臺(tái)會(huì)使用路由配置表進(jìn)行基于業(yè)務(wù)規(guī)則的匹配,然后根據(jù)不同的匹配結(jié)果,將用戶對(duì)服務(wù)的請(qǐng)求路由到后臺(tái)不同的業(yè)務(wù)提供者。圖:BEA服務(wù)平臺(tái)的服務(wù)路由配置功能BEA實(shí)現(xiàn)的基于應(yīng)用信息的服務(wù)路由功能可以通過可視化的路由配置界面實(shí)現(xiàn),這樣可以在應(yīng)用系統(tǒng)在運(yùn)行的時(shí)候,更加靈活、方便的適應(yīng)業(yè)務(wù)動(dòng)態(tài)變化的需要??捎糜脕碜鰹榕袛嗦酚蓽?zhǔn)則的數(shù)據(jù)可以包括:傳遞進(jìn)來的業(yè)務(wù)信息,與用戶相關(guān)的環(huán)境信息(application context),通過接口可以訪問到的外部信息等內(nèi)容。服務(wù)的路由規(guī)則可以通過服務(wù)平臺(tái)的可視化編排界面實(shí)現(xiàn)既可。如果路由規(guī)則比較復(fù)雜,建議使用規(guī)則服務(wù)提供更加靈活的實(shí)現(xiàn)。服務(wù)在路由過程中,可以結(jié)合核心層的負(fù)載均衡,并能動(dòng)態(tài)判斷后臺(tái)服務(wù)系統(tǒng)的連通情況,實(shí)現(xiàn)智能路由的功能。用戶的請(qǐng)求可以通過負(fù)載均衡轉(zhuǎn)到負(fù)載較小的服務(wù)器上,這樣能夠?qū)ν馓峁└玫腝oS保障。 服務(wù)編排服務(wù)路由功能實(shí)際是服務(wù)編排其中一部分。BEA的服務(wù)平臺(tái)能提供更多強(qiáng)大的服務(wù)編排功能。其中除了服務(wù)路由提供了較為重要的功能外,其他重要功能還包括:圖:BEA服務(wù)平臺(tái)中豐富、靈活的服務(wù)編排功能1. Skip(跳轉(zhuǎn))——跳轉(zhuǎn)到服務(wù)編排中的指定的處理節(jié)點(diǎn)位置上。2. Reply(回應(yīng))——終結(jié)服務(wù)編排調(diào)用,向調(diào)用者返回服務(wù)編排結(jié)果。3. If Then(判斷)——服務(wù)流程判斷結(jié)構(gòu)。4. Publish Table(分支)——服務(wù)流程的分支結(jié)構(gòu)。5. Web Service Callout(Web服務(wù)外調(diào))——調(diào)用指定的Web服務(wù)。6. Validate(校驗(yàn))——使用XML,校驗(yàn)數(shù)據(jù)格式或數(shù)據(jù)內(nèi)容。7. Insert(添加)——添加新的環(huán)境變量?jī)?nèi)容。8. Replace(替換)——替換環(huán)境變量的內(nèi)容。9. Delete(刪除)——?jiǎng)h除環(huán)境變量的內(nèi)容。10. Rename(更改名稱)——更改環(huán)境變量的名稱。11. Raise Error(錯(cuò)誤處理)——定義錯(cuò)誤處理方式。12. Log(日志)——定義記錄日志記錄信息。圖:圖形化的服務(wù)編排功能通過上面這些靈活的