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
軟體的工程。