版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Jboss SOA縱覽,主題概要,SOA的基本概念 JBoss SOA簡(jiǎn)述 JBoss Esb基本概念 JBoss Esb的體系結(jié)構(gòu),為什么要SOA?,IT基礎(chǔ)設(shè)施越來(lái)越昂貴、越來(lái)也復(fù)雜,對(duì)于從事IT的人技能要求越來(lái)越高,為什么要SOA?,目前的做法存在摩擦,新的業(yè)務(wù)需求,重新設(shè)計(jì) 業(yè)務(wù)流程,人工實(shí)現(xiàn)流程,更改IT系統(tǒng)或基礎(chǔ)設(shè)施,達(dá)到業(yè)務(wù)目的,尋求更有效方法,新的業(yè)務(wù)需求,調(diào)整業(yè)務(wù)流程,整合新的需求到SOA,節(jié)省下來(lái)的時(shí)間,用戶需求的快速變更,什么是SOA?,SOA不是 Web Service ESB 具體架構(gòu)具體實(shí)現(xiàn)技術(shù) 而是 一種架構(gòu)風(fēng)格 關(guān)注業(yè)務(wù)流程 包含運(yùn)行環(huán)境、編程模型、架構(gòu)風(fēng)格和相
2、關(guān)方法論在內(nèi)的分布式軟件構(gòu)造方法和環(huán)境。,SOA是什么,從建模和設(shè)計(jì)的角度,SOA更側(cè)重在業(yè)務(wù)層次上,也就是通過業(yè)務(wù)建模把業(yè)務(wù)組件抽象為業(yè)務(wù)服務(wù)。 從架構(gòu)的角度: SOA側(cè)重于如何把企業(yè)內(nèi)部的系統(tǒng)連接起來(lái) 如何將它們的功能數(shù)據(jù)封裝為服務(wù) 如何通過服務(wù)中介保證服務(wù)之間以松耦合的方式交互 如何把服務(wù)封裝為流程,SOA的目標(biāo),首要的目標(biāo):IT與業(yè)務(wù)對(duì)齊,支持業(yè)務(wù)的快速變化 IT架構(gòu)的靈活性 IT資產(chǎn)的重用,SOA架構(gòu)風(fēng)格-服務(wù),服務(wù)是最核心的抽象手段 服務(wù)可以組裝為流程 業(yè)務(wù)來(lái)驅(qū)動(dòng)IT,以粗粒度的服務(wù)為基礎(chǔ)來(lái)對(duì)業(yè)務(wù)建模,服務(wù)的特性,相對(duì)獨(dú)立 松耦合 可重用 位置透明 可交互,SOA架構(gòu)風(fēng)格-消息,從
3、松耦合角度的考慮,在SOA里,服務(wù)間的通信最好的方式就是通過異步消息。 異步消息:能快速穩(wěn)定頻繁的傳輸各種格式的消息。 異步消息必須具備以下特性: 異步消息不能要求通信雙方同時(shí)處于運(yùn)行的狀態(tài) 異步消息能在傳輸過程中進(jìn)行轉(zhuǎn)換而不需要發(fā)送者或接受者的參與 異步消息必須傳輸非常快速高效 消息系統(tǒng)必須保證消息的可靠性和事務(wù)性,SOA機(jī)構(gòu)風(fēng)格-企業(yè)服務(wù)總線(ESB),企業(yè)服務(wù)總線是SOA服務(wù)架構(gòu)方式的一種實(shí)現(xiàn),它通過使用異步消息服務(wù)、內(nèi)容轉(zhuǎn)換服務(wù)、注冊(cè)中心等等服務(wù)把業(yè)務(wù)服務(wù)整合成自動(dòng)的業(yè)務(wù)流程。,企業(yè)服務(wù)總線,它是面向服務(wù)架構(gòu)的實(shí)現(xiàn)。 它支持Web服務(wù)標(biāo)準(zhǔn)。 它支持消息傳遞(同步、異步、點(diǎn)對(duì)點(diǎn)、發(fā)布-訂
4、閱)。 它包含基于標(biāo)準(zhǔn)的適配器(如J2C/JCA),用于集成傳統(tǒng)系統(tǒng)。 它包含對(duì)服務(wù)編制(orchestration)和編排(choreography)的支持。 它包含智能、基于內(nèi)容的路由服務(wù)(itenerary路由)。 它包含轉(zhuǎn)換服務(wù)(通常是使用XSLT),在發(fā)送應(yīng)用和接收應(yīng)用之間轉(zhuǎn)換格式,簡(jiǎn)化數(shù)據(jù)格式和值的轉(zhuǎn)換。,如何SOA,以服務(wù)來(lái)抽象業(yè)務(wù),使得業(yè)務(wù)成為一一個(gè)相對(duì)獨(dú)立的業(yè)務(wù)服務(wù)。 定義好服務(wù)交互的消息格式。(消息內(nèi)容定義) 有很多服務(wù),并且服務(wù)種類多樣(ejb、webservice等等),這時(shí)就應(yīng)該考慮使用ESB。 業(yè)務(wù)流程組織服務(wù)。,一個(gè)真實(shí)的例子,ESB的解決方案,企業(yè)內(nèi)部的ESBs
5、,服務(wù)聚集,總結(jié),SOA是一種架構(gòu)風(fēng)格,是分布式應(yīng)用的架構(gòu)方法論和計(jì)算環(huán)境,而不是具體的實(shí)現(xiàn)技術(shù)。 服務(wù)是SOA的核心抽象手段,它可以讓我們從業(yè)務(wù)、業(yè)務(wù)流程的角度來(lái)構(gòu)建我們的系統(tǒng)。 服務(wù)間的通信最佳的方式是使用異步消息。 ESB是SOA風(fēng)格架構(gòu)的一種實(shí)現(xiàn)。,Jboss SOA簡(jiǎn)介,JBoss企業(yè)SOA平臺(tái)的核心是Rosetta,Rosetta是一個(gè)任務(wù)評(píng)估站點(diǎn)部署的商用ESB實(shí)現(xiàn),至今已經(jīng)運(yùn)行了4年多。,Rosetta,為了通過簡(jiǎn)單的配置即可與多種傳輸機(jī)制協(xié)同工作,如電子郵件和Java消息服務(wù)。 為了提供一個(gè)通用對(duì)象庫(kù) 為了提供可互換的數(shù)據(jù)轉(zhuǎn)換機(jī)制。 為了支持當(dāng)流通過框架時(shí),這些互動(dòng)的日志記錄
6、,(包括業(yè)務(wù)和處理事件)。 為了更方便的隔離傳輸業(yè)務(wù)邏輯和觸發(fā)機(jī)制。 為了給業(yè)務(wù)邏輯和數(shù)據(jù)轉(zhuǎn)換提供靈活的插件。 為了將來(lái)用戶替換或擴(kuò)展框架的標(biāo)準(zhǔn)基礎(chǔ)類提供一個(gè)簡(jiǎn)單的方式。 為了提供觸發(fā)機(jī)制和傳輸不能識(shí)別的自定義觸發(fā)類,JBOSS SOA,JBoss Esb基本概念,重要概念 Services 服務(wù) Actions Listener 監(jiān)聽器 Providers 傳輸資源提供者 endpoint references (EPRs) 服務(wù)地址 Messages 消息,服務(wù)(Services),在JBoss企業(yè)總線中,服務(wù)的定義是:按照順序處理消息的action類列表;這個(gè)類列表被稱為“action管
7、道”。 一個(gè)服務(wù)可以定義一個(gè)“監(jiān)聽器”列表。監(jiān)聽器作為服務(wù)的訪問路由,把消息路由到action管道。,Services和Actions,Action管道,Action,Action是Esb服務(wù)的實(shí)體,即這個(gè)服務(wù)能做什么是由action來(lái)定義的。 Actions能用作于: 控制消息流向 代理已經(jīng)存在的業(yè)務(wù)組件 調(diào)用架構(gòu)組件 調(diào)用業(yè)務(wù)規(guī)則組件 保存消息 Action能在多個(gè)服務(wù)里被共用,如何編寫一個(gè)Action,你編寫的Action: implements org.jboss.soa.esb.actions.ActionPipelineProcessor extend org.jboss.soa.
8、esb.actions.AbstractActionPipelineProcessor,如何編寫一個(gè)Action,編寫的無(wú)狀態(tài)action的生命周期都會(huì)被正確管理。 在每一個(gè)服務(wù)中配置的action,都有自己的一個(gè)生命周期。 可以在初始化的方法里,緩存一些資源。 在銷毀的方法里,釋放這些資源。 實(shí)現(xiàn)的Action類,必須存在一個(gè)接受消息參數(shù)和返回消息值的方法 該方法名稱可以在配置服務(wù)action的時(shí)候引用,比如Process=“myMethod” 實(shí)現(xiàn)的Action類,必須存在一個(gè)接受ConfigTree參數(shù)的構(gòu)造方法,ConfigTree是什么,ConfigTree代表配置action pr
9、operty的xml。 可以通過configTree.getAttribute(propertyName)獲取xml的值。,ConfigTree例子,HelloWord Action,Jboss Esb提供很多可用的Action,Routers/Notifiers Aggregator ContentBasedRouter StaticRouter Notifier MessageFilter JMSRouter HTTPRouter Transformers and Converters ByteArrayToString ObjectToCSVString ObjectToXStream
10、SmooksAction,Jboss Esb提供很多可用的Action,Business Process Management BpmProcessor Scripting GroovyActionProcessor WebServices/SOAP SOAPClient Business Rules BusinessRulesProcessor Miscellaneous SystemPrintln MessagePersister BeanConfiguredAction,監(jiān)聽(Listener),Listener的作用是負(fù)責(zé)監(jiān)聽傳輸端點(diǎn);一般來(lái)說,客戶端是發(fā)送消息到Listener,然后
11、有Listener把消息傳遞給action管道, 我們可以把Listener看做是inbound router. 在JBossESB中,我們是叫GatewayListener, 它一般來(lái)說做兩件事情. 監(jiān)聽Message. ESB-unaware message和 ESB-aware message的互轉(zhuǎn).,監(jiān)聽器,監(jiān)聽器可以分為兩類: Gateways監(jiān)聽器(Gateway Listeners),這種監(jiān)聽器目的是接受外部節(jié)點(diǎn)的消息,并把消息轉(zhuǎn)為esb內(nèi)部消息,然后路由給非gateways監(jiān)聽器。 非gateways監(jiān)聽器(ESB Aware Listeners),目的是處理Esb內(nèi)部消息,并
12、把消息傳遞給action管道處理。任何一個(gè)esb服務(wù)都必須配置一個(gè)非gateways監(jiān)聽器。 監(jiān)聽器主要配置屬性:,Gatesway 監(jiān)聽器,Invm監(jiān)聽器,Invm監(jiān)聽器是非gateways監(jiān)聽器。 InVM監(jiān)聽器是企業(yè)服務(wù)總線提供的一個(gè)在同一Java虛擬機(jī)內(nèi)運(yùn)行的服務(wù)間通信的特性。這意味著,ServiceInvoker實(shí)例可以在同一個(gè)虛擬機(jī)內(nèi),通過名字調(diào)用任何服務(wù),而調(diào)用過程中不存在任何網(wǎng)絡(luò)和消息序列化的開銷。 只需要在服務(wù)配置加上 invmScope=GLOBAL,Providers,消息的傳遞是由各種Providers來(lái)傳遞的。 監(jiān)聽器可以從Providers獲取消息。 目前,Jbos
13、s esb提供了各種常用的監(jiān)聽器jms provider, http provider, ftp provider等等。,消息,在Jboss Esb的世界里,消息分為兩大類: ESB unaware Message,即Jboss Esb服務(wù)沒法直接識(shí)別,需要gatways轉(zhuǎn)換后才可使用。這種消息大多指的是外部消息,比如jms 消息,soap消息,http報(bào)文、文件等等。 ESB-aware message,即Jboss Esb服務(wù)可以直接識(shí)別消費(fèi)的消息。接下來(lái),假如沒有沒特別的說明,消息一般指的是ESB-aware message。,消息,Jboss Esb的消息,其結(jié)構(gòu)類似于SOAP Mes
14、sage。 消息頭部(header)包含了路由和地址信息,這個(gè)與ws-adress w3c規(guī)范一樣。 消息上下文(context)主要存放了會(huì)話相關(guān)的內(nèi)容,比如事務(wù)上下文、安全上下文。 消息體(body)主要存放了消息內(nèi)容。Jboss Esb對(duì)消息內(nèi)容序列化支持兩種消息格式: MessageType.JBOSS_XML MessageType.JAVA_SERIALIZED,ESB Message Structure Sample Schema, ,Message API,Package: org.jboss.soa.esb.message Attachment a = myMessage.g
15、etAttachment(); Body b = myMessage.getBody(); Context c = myMessage.getContext(); Fault f = myMessage.getFault(); Header h = myMessage.getHeader(); Properties p = myMessage.getProperties();,消息頭,Jboss esb消息頭存放了路由和地址信息,這些信息定義為消息地址(ERPS),與WS-Addressing w3c標(biāo)準(zhǔn)時(shí)一樣。 消息頭包含的信息地址(EPRs)如下: To FaultTo From Repl
16、yTo,消息地址(EPRs),在Jboss Esb里,所有的客戶端和服務(wù)都是通過EPRs來(lái)定位和交互的。 EPRs 基于WS-Addressing (2004)標(biāo)準(zhǔn)實(shí)現(xiàn)的。 EPRs是一個(gè)xml結(jié)構(gòu): Address:地址信息,只能一個(gè),描述如何訪問目標(biāo)資源 reference properties:對(duì)應(yīng)多個(gè),傳輸一些資源實(shí)體的特殊描述。 reference parameters:對(duì)應(yīng)多個(gè),傳遞一些如何與資源交互的信息。 一個(gè)ERP,本質(zhì)上就是一個(gè)地址,確定了資源的位置,并定義如何去訪問資源。比如ftp ERP、jms ERP。地址描述類似: jms:/foo.bar。,消息頭,消息頭,在開發(fā)
17、服務(wù)和使用服務(wù)的時(shí)候,是需要考慮的。 實(shí)現(xiàn)同步調(diào)用服務(wù)(請(qǐng)求響應(yīng)方式)時(shí),需要設(shè)置replyTo,或使用默認(rèn)的地址。 在JBossESB中,每種傳輸類型都有默認(rèn)的ReplyTo值。在要求有響應(yīng),且ReplyTo為空的情況下,使用默認(rèn)值。有些默認(rèn)值需要系統(tǒng)管理員配置。在JBossESB中,每種傳輸類型都有默認(rèn)的ReplyTo值。在要求有響應(yīng),且ReplyTo為空的情況下,使用默認(rèn)值。有些默認(rèn)值需要系統(tǒng)管理員配置。,消息頭,replyTo,faultTo一般使用的是邏輯地址,邏輯地址是相對(duì)于物理地址而言的。如JMS-EPR。邏輯地址(LogicalEPR)是一個(gè)端點(diǎn)引用,只需指定ESB服務(wù)或端點(diǎn)的名稱和類別。它不包含物理尋址信息。 FaultTo,默認(rèn)的情況下, FaultTo指向的是DeadLetterService EPR。也就是服務(wù)執(zhí)行出錯(cuò)時(shí),可以到這個(gè)地址找到該服務(wù)。,消息體,是消息存放內(nèi)容的地方。 可以看做是一個(gè)Map。,消息體,可以在客戶端或Action中獲取消息內(nèi)容,服務(wù)的發(fā)布,Jboss Esb服務(wù),都在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職(電子商務(wù))電子商務(wù)基礎(chǔ)期末測(cè)試題及解析
- 2025年高職康復(fù)治療技術(shù)(康復(fù)心理學(xué))試題及答案
- 2025年高職第二學(xué)年(數(shù)字印刷)可變數(shù)據(jù)印刷綜合測(cè)試試題及答案
- 2025年高職(水利水電建筑工程)水工建筑物基礎(chǔ)試題及答案
- 2025年中職(勞保產(chǎn)品銷售)防護(hù)性能階段測(cè)試卷
- 2025年大學(xué)機(jī)械應(yīng)用技術(shù)(機(jī)械應(yīng)用)試題及答案
- 2025年大學(xué)交通運(yùn)輸工程(交通工程學(xué))試題及答案
- 2025年大學(xué)(金融學(xué))金融工程試題及答案
- 2025年中職(護(hù)理基礎(chǔ))鼻飼操作試題及解析
- 2025年大學(xué)醫(yī)學(xué)檢驗(yàn)技術(shù)(檢驗(yàn)研究)試題及答案
- 2025年紹興市諸暨市輔警考試真題附答案解析
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)化學(xué)發(fā)光行業(yè)發(fā)展趨勢(shì)預(yù)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 2026北京市中央廣播電視總臺(tái)招聘124人筆試參考題庫(kù)及答案解析
- 《物流系統(tǒng)工程-理論、方法與案例分析(第4版)》全套教學(xué)課件
- 2025版安全標(biāo)志大全高清
- 2025-2026學(xué)年度上學(xué)期八年語(yǔ)文試卷
- 中國(guó)臨床腫瘤學(xué)會(huì)(csco)乳腺癌診療指南2025
- 2025年幼兒園后廚工作面試題庫(kù)及答案
- 電渣爐的維護(hù)與管理制度(3篇)
- 早產(chǎn)兒喂養(yǎng)不耐受臨床診療指南
- 外來(lái)物種入侵事件應(yīng)急預(yù)案
評(píng)論
0/150
提交評(píng)論