成長(zhǎng)的記憶

          整理學(xué)習(xí)中的心得體會(huì),記錄開(kāi)發(fā)中的酸甜苦辣,這是成長(zhǎng)的記憶

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            5 隨筆 :: 0 文章 :: 36 評(píng)論 :: 0 Trackbacks

          OpenAdaptor白皮書(shū)

          介紹


          ?

          競(jìng)爭(zhēng)不斷地要求如今的企業(yè)集中他們的能力,迅速地結(jié)合,移動(dòng)和度量他們的電腦系統(tǒng),以滿(mǎn)足不斷改變的市場(chǎng)需求。

          成功的公司必須確保他們的系統(tǒng)是通過(guò)無(wú)縫地結(jié)合多個(gè)應(yīng)用軟體來(lái)建造的。

          IT
          基礎(chǔ)設(shè)施不僅要設(shè)計(jì)得強(qiáng)大,可靠,而且要靈活,可升級(jí),以滿(mǎn)足以後的新要求。

          openadaptorTM
          是能夠?qū)Ω哆@些挑戰(zhàn)的解決辦法。

          opendaptorTM
          公司提供他們結(jié)合資料所需要的,應(yīng)用軟體之間的資訊流,也就是資料來(lái)自何處,誰(shuí)對(duì)它感興趣,以及該資料怎樣能被每個(gè)系統(tǒng)使用。明確地,它將資訊的提供者和消費(fèi)者分離開(kāi)來(lái),這樣就產(chǎn)生了不受資料實(shí)際位置影響,不受要訪(fǎng)問(wèn)資訊的消費(fèi)者數(shù)目影響的,靈活的系統(tǒng)。這樣,資訊就可以在系統(tǒng)之間結(jié)合,而不需要用戶(hù)化每一個(gè)應(yīng)用軟體。

          ?

          什麼是 openadaptorTM ?

          openadaptorTM
          是一個(gè)用 Java 語(yǔ)言編寫(xiě)的軟體工具包,一個(gè)適配器框架。這一適配器框架的目的是要簡(jiǎn)化多個(gè)系統(tǒng)之間的結(jié)合,而這些系統(tǒng)不結(jié)合就很難共用資料。

          在大組織里存在連接多個(gè)不同的系統(tǒng),以相互傳送資訊的要求是很正常的。這通常都需要一條專(zhuān)用的,點(diǎn)到點(diǎn)的資料連線(xiàn),以及用戶(hù)化的編程,以允許系統(tǒng)相互交談。隨著新系統(tǒng)的產(chǎn)生,專(zhuān)線(xiàn)的數(shù)目和用戶(hù)化編輯都增加了,最終產(chǎn)生了資訊流動(dòng)中的瓶頸。

          ?

          一些組織通過(guò)開(kāi)發(fā)像應(yīng)用程式之間的資料代理一樣的中間件產(chǎn)品,從而專(zhuān)注於這一問(wèn)題。中間件大大地減低了系統(tǒng)體系結(jié)構(gòu)的復(fù)雜性,因?yàn)槊總€(gè)新的資訊提供者都在相同的中心介面程式中編碼,而該程式通過(guò)網(wǎng)路與其他程式建立連接。因此,隨著新應(yīng)用程式的引進(jìn),只要編寫(xiě)一條資訊介面與系統(tǒng)的其他部分通話(huà)。



          不幸地,中間件解決辦法也有它的局限性。當(dāng)它為某個(gè)中心點(diǎn)提供通信時(shí),它就不能自動(dòng)化自定義介面編程。另外,中間件產(chǎn)品還使組織受困于信任某些產(chǎn)品賣(mài)主。

          openadaptorTM
          通過(guò)創(chuàng)建一個(gè)應(yīng)用軟體管道設(shè)備解決辦法,專(zhuān)注於該問(wèn)題,這一辦法自動(dòng)化了系統(tǒng)結(jié)合所需的自定義編碼的大部分。它通過(guò)為開(kāi)發(fā)者提供一組標(biāo)準(zhǔn)的,能用來(lái)連接系統(tǒng)與系統(tǒng),或系統(tǒng)與中間件的連接器,或適配器,來(lái)做到這一點(diǎn)。

          openadaptorTM
          現(xiàn)在為以下傳送器或產(chǎn)品提供一組標(biāo)準(zhǔn)的適配器:
          - TIBCO ETX
          Rendezvous
          - IBM MQ
          系列
          - JMS
          - JDBC
          - RMI
          - Flat Files
          -
          插座

          ?

          openadaptorTM 也提供關(guān)於系統(tǒng)結(jié)合問(wèn)題的適配器,如文件轉(zhuǎn)換,過(guò)濾和充實(shí),以及對(duì)資料交流標(biāo)準(zhǔn)的支援,如 XML FIX , SWIFT 等。該產(chǎn)品能做的事情要將處理和標(biāo)準(zhǔn)檢測(cè)除外。所有這些種類(lèi)的適配器都可以無(wú)縫地結(jié)合到出版和訂閱系統(tǒng)中去。

          openadaptorTM
          解除了開(kāi)發(fā)者們對(duì)某一個(gè)中間件提供者的依賴(lài),因?yàn)樗鼮樵S多不同種類(lèi)的中間件介面提供適配器。這是通過(guò)代碼包實(shí)現(xiàn)的,它提煉介面協(xié)定要求,并將適當(dāng)?shù)慕槊?/span> openadaptorTM 框架與潛在的中間件產(chǎn)品一起使用。

          新適配器可以迅速地,簡(jiǎn)單地執(zhí)行。感謝 openadaptorTM open source 許可,一旦某個(gè)工程生產(chǎn)了一種新的適配器類(lèi)型,它可以自動(dòng)地產(chǎn)所有工程使用。

          對(duì)行業(yè)標(biāo)準(zhǔn)的支援
          openadaptorTM 被設(shè)計(jì)來(lái)利用現(xiàn)存的標(biāo)準(zhǔn)。例如,資訊可以先映射為 XML ,通過(guò)資訊基礎(chǔ)設(shè)施進(jìn)行傳送,然後重新映射成網(wǎng)路中每個(gè)訂閱系統(tǒng)所要求的特定資訊格式。

          可升級(jí)
          openadaptorTM 出版 / 訂閱 包含了一個(gè)內(nèi)在的可升級(jí)的設(shè)計(jì),它確保成長(zhǎng),而不犧牲性能。這樣就使新系統(tǒng)迅速地,簡(jiǎn)單地連接,而不影響生產(chǎn)能力。這樣,組織就可以在全球范圍內(nèi)結(jié)合應(yīng)用軟體。

          ?

          普通特徵
          openadaptorTM 普通介面標(biāo)準(zhǔn)允許的企業(yè)級(jí)的功能執(zhí)行有:
          。資料壓縮 -- 壓縮減少帶寬瓶頸。
          。例外處理 -- 建立和維護(hù)資訊醫(yī)院,它們是介面,保留了一些因?yàn)槟承┰蚨荒芴幚淼馁Y訊。這些例外資訊被修理,然後送回去重新處理。
          。標(biāo)準(zhǔn)檢測(cè) -- 允許對(duì)比性地測(cè)試元件運(yùn)行得怎麼樣,特別是相互關(guān)聯(lián)的元件。
          。程式管理 -- 提供簡(jiǎn)單的工具運(yùn)行和監(jiān)控 openadaptorTM 程式。這包括一個(gè)瀏覽器介面上的遠(yuǎn)端控制功能,以及記錄功能。

          使用 openadaptorTM 的優(yōu)勢(shì)
          。未來(lái)證明 -- 通過(guò)將應(yīng)用軟體聯(lián)合或分離,這樣就使介面在系統(tǒng)環(huán)境中更可維持。對(duì)介面的改變被掩蓋在 openadaptorTM 通用介面的後面。相似的, openadaptorTM 使取代過(guò)時(shí)應(yīng)用軟體大大地變易。
          。重新使用 -- 全球性的 openadaptorTM 框架提供重新使用應(yīng)用軟體代碼所必需的框架。

          容易使用
          每個(gè) openadaptorTM 適配器都是用一個(gè)簡(jiǎn)單的配置文件定義的。因?yàn)?/span> openadaptorTM 提供一套有現(xiàn)貨的元件,因此有可能建造一個(gè)適配器而根本不用編寫(xiě)任何實(shí)際的程式碼。

          更多資訊
          你可以在 openadaptorTM 的網(wǎng)站中找到更多關(guān)於 openadaptorTM 的資訊( http://www.openadaptor.org )。

          ?

          openadaptorTM 框架

          ?

          openadaptorTM 框架是一個(gè)以資訊為基礎(chǔ)的系統(tǒng)集成工具包。系統(tǒng)集成工作,簡(jiǎn)單的可以像處理一個(gè)文件一樣,復(fù)雜的可以像建立系統(tǒng)之間的即時(shí)饋送一樣。

          該框架提煉在系統(tǒng)(或傳送器)之間發(fā)送資訊的程式。它提供一個(gè)已經(jīng)建造好了的元件框架,可以馬上組裝起來(lái)集成系統(tǒng)(通過(guò)使用簡(jiǎn)單的配置文件,而不是編寫(xiě)實(shí)際的程式碼)。

          該框架現(xiàn)在允許適配器的建造(這一框架也將被擴(kuò)充,允許以資訊為基礎(chǔ)的服務(wù)和閘道的建造)。

          適配器是一個(gè)或多個(gè)起源地與一個(gè)或多個(gè)目的地之間的單向連線(xiàn)。起源地和目的地可以是一些不同的東西,如平面文件, TCP/IP 插座,資料庫(kù),特定系統(tǒng) API (應(yīng)用編程介面),中間件, RMI 服務(wù), JMS 佇列等。

          發(fā)送資訊所要求的不同工作步驟如下所示:



          首先,要有與起源地的連接(連接器)。一旦做到了這一點(diǎn),還要有一些資料憑以壓入和拉出的機(jī)制(協(xié)定)。那時(shí)資料就被轉(zhuǎn)換成資訊(資訊格式化)。在目的地連接那里也反過(guò)來(lái)進(jìn)行同樣的步驟。

          ?

          還有一些其他的選擇性功能:

          。壓縮和加密
          出於性能的原因而將資訊壓縮(和解壓),和 / 或?yàn)榘踩康亩用埽ê徒饷埽?,都是必要的?/span>

          。資料充實(shí)
          充實(shí)資訊的內(nèi)容是正當(dāng)?shù)?。這要以對(duì)另一個(gè)系統(tǒng)的查看為基礎(chǔ),或是以嚴(yán)重編碼的規(guī)則為基礎(chǔ)。檢查資料的統(tǒng)一性,以及資訊內(nèi)容的完整性都是有必要的。

          。資訊過(guò)濾
          以?xún)?nèi)容為基礎(chǔ)確認(rèn)某些種類(lèi)的資訊可能也是正當(dāng)?shù)?。這可能是出於放棄這一資訊,或是對(duì)它應(yīng)用特別規(guī)則的目的。

          。資訊轉(zhuǎn)換
          它涉及將資訊從一個(gè)系統(tǒng)翻譯到另一個(gè)系統(tǒng),以確保相容。

          。例外處理
          被拒絕了的資訊需要特別的對(duì)待和處理。

          ?

          一個(gè)適配器是一個(gè)單獨(dú)的程式 -- 每個(gè)原始資料元件都是作為一個(gè)單獨(dú)的執(zhí)行線(xiàn)程運(yùn)行的。以下是一些很簡(jiǎn)單的適配器的例子:

          1


          該適配器讀取來(lái)自資料庫(kù)的資料,然後將它發(fā)布給 TIBCO (一個(gè)出版 / 訂閱基礎(chǔ)設(shè)施)。

          2



          該適配器從一個(gè) MQ 序列拉出資訊,以?xún)?nèi)容為基礎(chǔ),過(guò)濾該資訊,然後將它寫(xiě)入一個(gè)文件。

          導(dǎo)管可以像雛菊花環(huán)一樣串起來(lái)。這樣設(shè)計(jì)提供了高度的模組性和配置性。它像 UNIX 外殼中使用的命令行導(dǎo)管。一個(gè)典型的適配器如下:

          ?

          適配器并不限定於線(xiàn)性結(jié)構(gòu)。扇入和散開(kāi)適配器也可以創(chuàng)建,像這樣:


          或像這樣:


          或可能像這樣:



          或甚至像這樣:

          ?

          openadaptorTM 現(xiàn)在提供以下種類(lèi)的已經(jīng)建造好了的原始資料和接收器:

          平面文件:

          允許對(duì)平面文件進(jìn)行讀和寫(xiě)。它對(duì)於移動(dòng)工作和測(cè)試是很有用的。這些元件是不能交易的。

          插座:

          允許對(duì) TCP/IP 插座進(jìn)行讀和寫(xiě)。它使用簡(jiǎn)單的協(xié)定進(jìn)行換手和事項(xiàng)協(xié)調(diào)。

          JDBC

          允許對(duì)相關(guān)的資料庫(kù)的資料進(jìn)行讀和寫(xiě),如 Sybase, Oracle, MS SQL 伺服器。

          RMI

          允許將該適配器介紹為一個(gè) RMI 服務(wù),或是向 RMI 服務(wù)發(fā)送資訊。

          TIBCO ETX &Rendezvous

          允許出版和訂閱 TIBCO 中間件產(chǎn)品。

          MQ 系列

          允許對(duì) IBM MQ 系列中間件進(jìn)行讀和寫(xiě)。

          JMS

          允許向 JMS Java 資訊服務(wù))序列和主題收發(fā)資料。


          另外,一些工程已經(jīng)為某些特定的系統(tǒng)(如 Fidessa DROM )編寫(xiě)了原始資料和接收器元件。

          原始資料和接收器主要是負(fù)責(zé)支援起源地和目的地的傳送器和協(xié)定。內(nèi)部地, openadaptorTM 聲稱(chēng)資料是叫做 DateObject (看第 13 頁(yè)的 DataObject )的自我描述的資料結(jié)構(gòu)??蚣軆?nèi)的資訊被描述為 DataObjects 序列。 openadaptorTM 已經(jīng)開(kāi)發(fā)了一種可以用來(lái)描繪 DataObjects 序列的,以 ASCLL 碼為基礎(chǔ)的字串格式。這一格式也支援壓縮,并且將被擴(kuò)充,支援安全功能,如加密和資訊領(lǐng)會(huì)。這一格式被稱(chēng)作 DataObject XML

          在沒(méi)有特定的 API (應(yīng)用編程介面)時(shí),這就是起源地和目的地之間交流的資料格式。如果那時(shí)使用了文件接收器,默認(rèn)行為就是將一則資訊作為 DataObjectXML 寫(xiě)出來(lái)。

          ?

          然而,還是有可能接通不同的資料格式。 Source 可以被分配為一個(gè)能將不同種類(lèi)的以 ASCLL 碼為基礎(chǔ)的格式轉(zhuǎn)換為 DataObjects 的閱讀器。相反的,接收器可以被分配為一個(gè)能用 DataObjects 為生不同種類(lèi)的以 ASCLL 碼為基礎(chǔ)的格式的復(fù)寫(xiě)器?,F(xiàn)在, openadaptorTM 只提供一些普通的閱讀器和復(fù)寫(xiě)器,以支援定界領(lǐng)域,固定帶寬領(lǐng)域,以及 XML 。 openadaptorTM 還為容易執(zhí)行的自定義格式提供框架。一些貢獻(xiàn)者正致力於標(biāo)準(zhǔn)資料格式,包括 SWIFT FIX 。

          openadaptorTM
          現(xiàn)在提供以下種類(lèi)的普通導(dǎo)管元件:

          別名:

          允許資訊結(jié)構(gòu)和內(nèi)容的轉(zhuǎn)換。

          過(guò)濾:

          允許以結(jié)構(gòu)和內(nèi)容為基礎(chǔ)放棄或發(fā)送電報(bào)。

          例外處理:

          允許抓住應(yīng)程式例外,并且改道發(fā)送資訊。

          加密:

          允許以資訊內(nèi)容和種類(lèi)為基礎(chǔ),將之加密(解密)。

          審計(jì):

          允許記錄已經(jīng)被成功地處理的消息的資訊,以及察覺(jué)復(fù)制的應(yīng)用程式消息。


          典型的工程都是通過(guò)結(jié)合和配置這些普通導(dǎo)管,或在自定義導(dǎo)管中編寫(xiě)少量的代碼,來(lái)執(zhí)行自定義行為。

          ?

          DataObjects

          DataObjects
          openadaptorTM 作為基礎(chǔ)的基本資料結(jié)構(gòu)。當(dāng)某則資訊被稱(chēng)作是 openadaptorTM 出版 / 訂閱基礎(chǔ)結(jié)構(gòu)( ETX )資訊時(shí),它實(shí)際上是意味著某些 DataObjects 的連續(xù)表示。當(dāng)某個(gè)程式要將資訊發(fā)布到出版 / 訂閱基礎(chǔ)結(jié)構(gòu)時(shí),或是要將資訊寫(xiě)入某個(gè)文件時(shí),它就需要?jiǎng)?chuàng)建 DataObjects

          DataObjects
          是在 openadaptorTM 適配器中內(nèi)部地使用的。在 Source 元件中產(chǎn)生的資訊,擠過(guò)導(dǎo)管,然後在接收器元件中結(jié)束,這就是 DataObjects 的序列。

          在最簡(jiǎn)單的級(jí)別, openadaptorTM 可以被認(rèn)為是一個(gè) 名稱(chēng) - 線(xiàn)對(duì)的集合 -- 該集合有一個(gè)種類(lèi),并且每個(gè) 名稱(chēng) - 線(xiàn)對(duì)都被叫做一個(gè)屬性。例如,一個(gè)類(lèi)型為 "Person" DataObject 可能有兩個(gè)屬性,名字和年齡,這些屬性各自的值可能為 Fred 21 。

          為了支援更復(fù)雜的資料結(jié)構(gòu),某些屬性的值不應(yīng)該只是原始值(整數(shù),雙數(shù),字串,布林值,等);它也可以是 DataObjects 的一個(gè)序列。例如,一個(gè)類(lèi)型為 "Team" DataObjects 可能有兩個(gè)屬性,名稱(chēng)和成員;這些屬性各自的值可能是 openadaptor DataObjects 中的一個(gè) Person 序列。

          DataObjects
          被開(kāi)發(fā)出來(lái)了,因此就有一種簡(jiǎn)單的輕便的資料結(jié)構(gòu)可以在服務(wù)和應(yīng)用軟體之間交流。 openadaptorTM 最重要的方面就是自我描述。這就意味著任何寫(xiě)得很好的代碼都可以收到任何 DataObject ,以及提取資訊。

          ?

          控制器

          下圖說(shuō)明了一個(gè)正在運(yùn)行的適配器中所有在工作的元件:



          像原始資料,導(dǎo)管和接收器一樣,也有一個(gè)控制器??刂破髫?fù)責(zé)為動(dòng) source 元件中線(xiàn)程,協(xié)調(diào)元件之間的通信,以及管理事項(xiàng)。

          每個(gè) source 元件在一個(gè)單獨(dú)的線(xiàn)程中運(yùn)行。在所有的元件都被初始化了之後,控制器為動(dòng)所有這些線(xiàn)程。

          當(dāng) source 元件創(chuàng)造了一則資訊時(shí),它將向控制器請(qǐng)求下一個(gè)可用的事項(xiàng)。

          然後 source 元件會(huì)將資訊傳送給控制器,控制器就將它傳送到管道中的下一個(gè)元件,等等。這是一個(gè)同步的呼叫,如果資訊成功地處理,最終將返回 source, 否則就會(huì)產(chǎn)生例外。

          如果 source 元件收到了例外,它將退回這一事項(xiàng),否則,它會(huì)答應(yīng)負(fù)責(zé)這一事項(xiàng)。

          控制器負(fù)責(zé)傳播呼叫,以開(kāi)始,提交和退回事項(xiàng)。


          1 也可以選擇性的有一個(gè)遠(yuǎn)端控制器和遠(yuǎn)端記錄器。遠(yuǎn)端控制器可以在適配器運(yùn)行時(shí),與之相互影響,并管理它。遠(yuǎn)端記錄器可以過(guò)濾適配器,并向遠(yuǎn)端客戶(hù)廣播資訊。
          2 openadaptorTM
          現(xiàn)在提供一個(gè)控制器的執(zhí)行。它叫做簡(jiǎn)單控制器,也是默認(rèn)控制器。使用配置文件可以推翻這一點(diǎn)。

          ?

          DataObjects 字串閱讀器和復(fù)寫(xiě)器

          DataObjects
          字串閱讀器和復(fù)寫(xiě)器是用來(lái)在 DataObjects 和字串表示法之間進(jìn)行轉(zhuǎn)換。它們主要是被引進(jìn)來(lái),為接收器和 source 的擴(kuò)散提供解決辦法的。以前的 openadaptorTM 版本包含了以定界的,固定帶寬的,私人擁有的格式文件為基礎(chǔ)的接收器和 source 的變體。除了這一點(diǎn),像 MqSink 等接收器還提供固定帶寬格式化。如果某個(gè)開(kāi)發(fā)者想要處理一個(gè)自定義文件格式,那時(shí)他就要編寫(xiě)一個(gè)自定義 source 元件。

          從今以後,每個(gè)傳送器就都只有一個(gè)接收器和 source 。每個(gè)接收器和 source 都能夠分配一個(gè) DOString 復(fù)寫(xiě)器和閱讀器。當(dāng)某個(gè) source 被分配了一個(gè) DOString 閱讀器時(shí),它就會(huì)把將字串轉(zhuǎn)換成 DataObjects 的任務(wù)委托給閱讀器。

          這就意味著 DOString 閱讀器和復(fù)寫(xiě)器可以與接收器和 source 聯(lián)合起來(lái),以產(chǎn)生每一個(gè)功能結(jié)合。那些想要讀(或?qū)懀┮粋€(gè)自定義文件格式的開(kāi)發(fā)者,現(xiàn)在只需要編寫(xiě)一個(gè)閱讀器(或復(fù)寫(xiě)器)。通常這只是一個(gè)執(zhí)行 chop stick 方法的問(wèn)題,這兩種方法將記錄砍成欄位字串,或?qū)谖蛔执迟N成記錄。

          ?

          資訊醫(yī)院

          在理想的世界中,資訊在系統(tǒng)之間相互發(fā)送,并且每個(gè)系統(tǒng)都能夠成功地處理每則資訊。明顯地,事情并不是這樣的,應(yīng)用軟體和系統(tǒng)通常要拒絕某則資訊,然後繼續(xù)處理。

          資訊醫(yī)院可以被認(rèn)為是不受任何適配器處理的, DataObjects 的修理佇列?,F(xiàn)在已提供了一個(gè)使用 Sybase 和一個(gè)命令行介面的基本執(zhí)行。還有一些帶有資訊醫(yī)院的,用來(lái)集成適配器的適配器元件,在例外發(fā)生時(shí)接納資訊,并在晚一點(diǎn)的時(shí)候排出資訊。

          ?

          為什麼一個(gè)框架就好了?

          一個(gè)框架給了我們以下好處:

          標(biāo)準(zhǔn)化
          因?yàn)槊總€(gè)適配器都建立在相同框架的基礎(chǔ)之上,所以它們都擁有相同的 " 外觀和感覺(jué) " 。從支援和維護(hù)的觀點(diǎn)看,這是一個(gè)很大的好處。

          發(fā)展速度
          因?yàn)?/span> openadaptorTM 提供一套有現(xiàn)貨的元件( source ,接收器和導(dǎo)管),因此有可能不用編寫(xiě)任何代碼就能建造一個(gè)適配器。

          靈活性
          與為每個(gè)需要建造特定的適配器相反,一個(gè)框架允許我們動(dòng)態(tài)地配置適配器。簡(jiǎn)簡(jiǎn)單單地改變一個(gè)文本配置文件,該框架就允許動(dòng)態(tài)地混合和匹配不同的 source 和接收器元件。這在測(cè)試中會(huì)有幫助,因產(chǎn)可以用一個(gè)能夠讀取測(cè)試實(shí)例文件,或指定一則產(chǎn)生問(wèn)題的資訊的文件 source ,來(lái)代替一般的 source

          隨意用戶(hù)化
          在某個(gè)工程需要建造特定工程 source 和接收器(如某個(gè)老的套接協(xié)定的橋接器)時(shí),就可以遵照 source 和接收器框架介面建造。它馬上就可以用配置將文本拉入那一適配器 -- 就跟預(yù)先建造的元件一模一樣。開(kāi)發(fā)者只需要編寫(xiě)最小部分的代碼,因?yàn)槠渌氖敲赓M(fèi)獲取的。

          用於重新使用的平臺(tái)
          因?yàn)榭蚣茉x得很好,并且可以在運(yùn)行時(shí)結(jié)合起來(lái),因此開(kāi)發(fā)工程要建造一些能被更廣泛的工程重新使用的元件是很容易的。標(biāo)準(zhǔn)檢測(cè)工具允許對(duì)元件進(jìn)行單元測(cè)試。

          普通功能
          一個(gè)框架免費(fèi)提供普通功能,這樣減少了冗余和重復(fù)。另外,該框架所有的用戶(hù),只需要最小的努力,就可以馬上獲得框架更新的好處。

          ?

          openadaptorTM 框架包含的普通功能有:

          -
          錯(cuò)誤記錄和通知
          -
          程式管理和監(jiān)控
          -
          例外 / 修理佇列
          -
          資訊壓縮和安全
          -
          標(biāo)準(zhǔn)檢測(cè)和回歸率測(cè)驗(yàn)

          ?

          商標(biāo)

          openadaptorTM Dresdner Kleinwort Wesserstein 公司的商標(biāo)。

          此文件中使用的其他產(chǎn)品商標(biāo)是它們各自所有者的財(cái)產(chǎn)。

          ?

          openadaptorTM 簡(jiǎn)史

          ?

          看看軟體發(fā)展的前後關(guān)系通常都是很有趣的。

          1997
          年, Dresdner Kleinwort Wesserstein 公司(那時(shí)的 Dresdner Kleinwort Benson 公司)決定大修它的資訊技術(shù)系統(tǒng),以并入當(dāng)時(shí)可用的最好的技術(shù)解決辦法。

          很明顯,這樣會(huì)涉及大量的集成和移動(dòng)工作。出版 / 訂閱被看作是能做這一工作的主要的技術(shù)范例。這一工程叫做 Dealbus 。

          有很多產(chǎn)品受到了評(píng)估,并且, TIBCO 企業(yè)事務(wù)快車(chē)( ETX )和 TIBCO Rendezvous 被選為那時(shí)最好的品種。 TIBCO ETX Rendezvous Dealbus 的基礎(chǔ)設(shè)施)最初是在倫敦大量生產(chǎn)的。負(fù)責(zé)這一基礎(chǔ)設(shè)施的小組曾經(jīng)在法克福,紐約,東京和香港安裝了節(jié)點(diǎn)。

          它提供了基本的基礎(chǔ)設(shè)施,但還有一些重大問(wèn)題不能解決:
          1
            我們?cè)鯓硬拍苁构こ倘菀椎厥褂眠@一基礎(chǔ)設(shè)施?
          2
            我們?cè)鯓颖苊赓u(mài)主禁閉?
          3
            我們?cè)鯓硬拍芸刂迫藗冇盟鼇?lái)做什麼,明確地,也就是匯流排上的資訊格式將是什麼?

          同時(shí),有一些工程正在建造使用 CORBA 的分散式系統(tǒng)。一致同意, COBRA 服務(wù)傳達(dá)的資料與匯流排上發(fā)行的資料要是相同的格式。另外,它還要以 ASCLL 碼為基礎(chǔ),并且是自我描述的。這樣就產(chǎn)生了 DataObjects DataObject 轉(zhuǎn)換器。它原本是用 Java 語(yǔ)言編寫(xiě)的,作為使用 COBRA 的分散式系統(tǒng)的一部分。

          1998
          年中, DataObjects DataObject 轉(zhuǎn)換器被引入到了被開(kāi)發(fā)來(lái)提煉 TIBCO 產(chǎn)品 API (應(yīng)用編程介面)的 C++ C++ 程式庫(kù)。這就是人們了解的通用出版 / 訂閱程式庫(kù)?,F(xiàn)已開(kāi)發(fā)了一些通用應(yīng)用軟體,允許來(lái)自 Sybase 資料庫(kù)和平面文件的出版和訂閱。開(kāi)發(fā)了 COBRA 服務(wù)之後, Java 應(yīng)用軟體也可以出版和訂閱。這一工作形成了 Dealbus 軟體早期版本的基礎(chǔ)。

          ?

          這時(shí), XML 作為一個(gè)不斷成長(zhǎng)的資料交流標(biāo)準(zhǔn)冒了出來(lái)。 DataObjects 轉(zhuǎn)換器被增強(qiáng)了,以將 DataObjects 佇列描述為 XML 文件。這就是知名的 DataObjectXML 。

          Dealbus
          下一版本的驅(qū)動(dòng)因素就是,使用出版 / 訂閱基礎(chǔ)設(shè)施,開(kāi)發(fā)者們不需要編寫(xiě)軟體這一基本觀念。它包括連接到 TIBCO ,以及我們所擁有的任何內(nèi)部系統(tǒng),也包括與資料轉(zhuǎn)換,資料充實(shí),統(tǒng)一性檢查和例外處理相關(guān)的典型工作。在我們的觀念中,勾入 Dealbus 只是一件幾分種和幾小時(shí)的事情,而不是幾天和幾周。另外,通過(guò)提供一個(gè)框架和已經(jīng)建造好了的元件,我們可以確??煽啃?,通過(guò)重新使用,我們可以將行為標(biāo)準(zhǔn)化。這就是 Infobus 適配器框架( IBAF )。

          該適配器框架,允許開(kāi)發(fā)者們通過(guò)編寫(xiě)配置文件,而不是軟體來(lái)建立系統(tǒng)和出版 / 訂閱基礎(chǔ)設(shè)施之間的連接。這一配置文件指定那些像雛菊花一樣串起來(lái)的,已經(jīng)建造好了的元件,與 UNIX 命令行中的導(dǎo)管的工作方式是一樣的。如果用戶(hù)要執(zhí)行一些已建造好了的元件不提供的功能,就會(huì)提供框架來(lái)執(zhí)行這些功能??量桃稽c(diǎn)的就是,開(kāi)發(fā)者需要編寫(xiě)可能的,最少的代碼。

          Dealbus
          框架的第一版于 1999 年初發(fā)行。在核心框架沒(méi)有重大改變的同時(shí),已建造好元件的數(shù)目和框架功能卻在繼續(xù)擴(kuò)充和發(fā)展。最近的版本包含完整的 Java 源代碼。 Dealbus 開(kāi)發(fā)小組以外的開(kāi)發(fā)者捐獻(xiàn)數(shù)目繼續(xù)增加。

          最重要的改變就是認(rèn)識(shí)到了,這一框架并不是具體針對(duì) TIBCO 基礎(chǔ)設(shè)施和出版 / 訂閱的。越來(lái)越多使用 Dealbus 的工程不再使用 ETX Rendezvous 了。 Dealbus 框架真的是一個(gè)以資訊為基礎(chǔ)的,系統(tǒng)集成和移動(dòng)工具包?,F(xiàn)在,在 Dresdner Kleinwort Wesserstein 公司中有 50 多個(gè)使用 Dealbus 軟體的工程。

          posted on 2006-06-06 22:35 小牧 閱讀(1927) 評(píng)論(6)  編輯  收藏 所屬分類(lèi): OpenAdaptor

          評(píng)論

          # re: OpenAdaptor學(xué)習(xí)筆記(2) 2006-11-02 11:32 ondying@hotmail.com
          正在看openadaptor,能不能告訴我說(shuō)如何部署配置它?  回復(fù)  更多評(píng)論
            

          # re: OpenAdaptor學(xué)習(xí)筆記(2) 2007-03-25 18:10 小牧
          由于工作關(guān)系,很久沒(méi)有登錄Blog了,現(xiàn)在才看到你的問(wèn)題。抱歉

          我主要用的是OpenAdaptor V1.x。以現(xiàn)在最新版本V1.7.2為例:

          這個(gè)版本只提供了shell腳本,而沒(méi)有bat。因此無(wú)法在Windows下直接運(yùn)行,但其目錄下有build.xml和build.properties,這也就表示其開(kāi)發(fā)部署使用了Apache Ant。安裝jdk是不可少的,建議1.4以上,然后安裝Ant,添加系統(tǒng)環(huán)境變量ANT_HOME=<ant的安裝目錄>,并設(shè)置path=%ANT_HOME%\bin;%path%。cmd命令行下,進(jìn)入openAdapator目錄,運(yùn)行ant usage,可以查看運(yùn)行參數(shù),但是其編輯工具卻沒(méi)有顯示,運(yùn)行ant editor,會(huì)出現(xiàn)可視化的編輯工具AFE,編輯,運(yùn)行,都可以在此工具上處理,非常方便。  回復(fù)  更多評(píng)論
            

          # re: OpenAdaptor學(xué)習(xí)筆記(2) 2007-03-25 18:44 小牧
          對(duì)應(yīng)的命令行操作為
          進(jìn)入<openAdaptor_dir>/examples,執(zhí)行
          set_classpath_jdk_1_4.bat
          再執(zhí)行java命令:
          1、運(yùn)行AFEditor
          java org.openadaptor.adaptor.editor.AFEditor
          2、運(yùn)行適配器
          java org.openadaptor.adaptor.RunAdaptor test.props A
          如上命令中,test.props為openAdaptor的適配器文件名,A為適配器名
            回復(fù)  更多評(píng)論
            

          # re: OpenAdaptor學(xué)習(xí)筆記(2) 2010-06-03 15:52 Vian
          你好..你能告訴怎么配置OpenAdaptor從多個(gè)source獲取數(shù)據(jù)嗎?
          如果有時(shí)間麻煩發(fā)到我郵箱.pantie05@qq.com
          謝謝  回復(fù)  更多評(píng)論
            

          # re: OpenAdaptor學(xué)習(xí)筆記(2) 2010-06-04 22:38 小牧
          @Vian

          抱歉,OpenAdaptor已經(jīng)丟了很多年  回復(fù)  更多評(píng)論
            

          # re: OpenAdaptor學(xué)習(xí)筆記(2) 2011-07-06 18:07 adaptor
          <bean id="Router" class="org.openadaptor.core.router.Router"> <property name="processMap">
          <map>
          <entry key-ref="ReaderA" value-ref="Writer"/>
          <entry key-ref="ReaderB" value-ref="Writer"/>
          </map>
          </property>
          </bean>

          怎么配置OpenAdaptor從多個(gè)source獲取數(shù)據(jù)  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 洪泽县| 揭东县| 思茅市| 香河县| 织金县| 白河县| 梨树县| 达州市| 丹寨县| 古浪县| 辽宁省| 库伦旗| 交口县| 迁安市| 沙雅县| 怀化市| 大埔区| 蓝田县| 上杭县| 尖扎县| 黎川县| 清徐县| 冕宁县| 沿河| 贵州省| 永康市| 黄龙县| 同心县| 桐乡市| 习水县| 广西| 天镇县| 东光县| 泰和县| 瑞昌市| 阿拉善左旗| 绥阳县| 阳东县| 高淳县| 河间市| 泽普县|