jca

JCA (J2EE 連線器架構,Java Connector Architecture)是對J2EE標準集的重要補充。因為它注重的是將Java程式連線到非Java程式和軟體包中間件的開發。連線器特指基於Java連線器架構的源適配器,其在J2EE1.3規範中被定義。JCA連線器同時提供了一個重要的能力,即它使J2EE套用伺服器能夠集成任何使用JCA適配器的企業信息系統(EIS),大大簡化了異構系統的集成。有了JCA,企業只要購買一個基於JCA規範的適配器,就可以將企業套用部署到J2EE伺服器上,這樣不用編寫任何代碼就可以實現與J2EE套用伺服器的集成。JCA還提供了一個套用伺服器和EIS連線的標準Java解決方案。 JCA定義了一套標準的接口,用於讓連線器把兼容的應用程式伺服器無縫的整合起來。同時,定義的另一套標準接口允許客戶(或者應用程式伺服器的應用程式主機)用一種統一的方法使用連線器。這樣,連線器對於跨應用程式伺服器就是可移植的,而客戶程式成為很輕便的連線器。 JCA的目標在於企業應用程式集成方面,它提供的標準化體系結構讓J2EE組件能夠對異構EIS進行“即插即用”的訪問,其中包括ERP、事務處理、老式資料庫系統等。

基本介紹

  • 中文名:連線器架構
  • 外文名:Java Connector Architecture
  • 簡稱:jca
  • 特點:是對J2EE標準集的重要補充
定義,性質,套用,

定義

JCA(J2EE Connector Architecture, 也縮寫為,J2C, J2CA),是J2EE平台上連線傳統系統的一個技術規範。JCA1.0提供了出站操作,1.5提供了訊息流入和事務流入,以及生命周期管理和工作管理等系統契約。但是由於JCA尚未規定統一的元數據獲取方式,開發工具對JCA的支持還很有限。各廠商對JCA的支持也不足,因此JCA在通用性和廣泛接受方面存在不足。

性質

JCA是J2EE體系架構的一部分,為開發人員提供了一套連線各種異類的企業信息系統(EIS,包括ERP、SCM、CRM等,這些系統可能是歷史遺留下來非JAVA語言編寫的系統)的體系架構,對於EIS開發商而言,它們只需要開發一套基於JCA的EIS連線適配器,開發人員就能夠在任何的J2EE套用伺服器中連線並使用它。基於JCA的連線適配器的實現,需要涉及J2EE中的事務管理、安全管理及連線管理等服務組件。
注意JCA也有成龍歷險記之意,英文縮寫.
JCA及其特點
JCA即Java Connector Architecture,或Java連線器體系,它完善了用J2EE構造企業套用的技術體系。在 JCA出現之前,基於J2EE套用伺服器的開發體系為企業套用各個部分提供了相應的開發工具,但是,與傳統系統連線的部分仍未得到很好的解決。為了與這些EIS系統集成,各個公司為每一種系統提供了定製的開發工具。有了JCA,套用伺服器廠商就能夠為Java平台組件與後端系統的連線提供一層抽象。應該說,JCA完全符合J2EE套用伺服器市場的自然發展歷程。
在JCA出現之前,人們在連線EIS時面臨著一系列類似的問題。
首先,每一個EIS套用有自己的編程接口,與一個異種的EIS套用互動意味著要針對一組特定的API編程。因此,人們需要一組公共的客戶端接口,以便簡化客戶端編程。
其次,與後端EIS系統的互動通常總是很繁忙。為了降低連線開銷、提高性能,人們需要連線池
第三,與EIS套用的連線往往是面向事務的。為了保證數據完整性,人們需要內建的事務支持,以便把編程工作量降低到最少限度。 最後一點(但並非最不重要的一點)是人們迫切需要提高EIS套用和EIS客戶程式集成的安全性。
仔細分析上述問題,可以發現,它們與人們以前連線資料庫時面臨的問題相似。對於資料庫連線,由於JDBC API之類的技術被廣泛採用,問題已經得到解決:作為一個程式設計師,你現在再也不必直接與資料庫互動,而是可以通過JDBC與資料庫互動,JDBC接口對於所有流行的資料庫系統來說都是一樣的;你可以方便地使用資料庫連線池,卻不必自己動手實現它;你可以方便地使用事務支持和安全集成能力,因為這些功能都是內建的。要是對於EIS套用也有類似JDBC的技術,它一定能夠為你帶來不少方便吧?如果你的回答是肯定的,答案就是JCA。
為了解決連線EIS時面臨的各種問題,JCA提供以下功能:
連線緩衝池:EIS連線通常屬於昂貴的資源,創建EIS連線需要大量的時間開銷。連線池使得套用伺服器能夠創建和共享EIS套用的連線,使得套用能夠更高效地使用昂貴的連線資源。
事務管理:事務管理能力使得EIS套用能夠獲取套用伺服器提供的事務環境的支持,使得伺服器能夠把EIS系統的事務作為一個單元管理。
安全:安全接口的實現允許套用伺服器在不影響EIS特有安全機制的情況下,對整體安全性進行有效的管理。驗證、授權和安全關聯都屬於該接口包含的範圍,它們都屬於為JCA適配器和J2EE套用伺服器內建的服務。
公共的客戶端接口:JCA還定義了用戶級的編程接口,稱為公共客戶端接口(CCI,Common Client Interface)。這個接口集在JCA 1.0中是可選的,允許EIS客戶程式的開發者按照一種標準的方式,連線目標EIS系統,或與目標EIS互動(執行命令並獲取結果)。
套用伺服器的JCA支持
對JCA的支持來自兩個方面:支持JCA的套用伺服器,支持JCA的EIS套用適配器。JCA 1.0是J2EE 1.3規範的一部分,遵從J2EE 1.3規範的套用伺服器必須提供合適的環境支持必要的JCA功能,包括緩衝池、事務和集成的安全機制。表一列出了常見的套用伺服器以及它們的JCA支持情況。
表一:JCA支持現狀
BEA的WebLogic Server是最早支持JCA的套用伺服器之一。從2001年開始,WebLogic 6.0就內建了對JCA Beta的支持,當時的JCA 1.0規範正處於最終草案狀態。經過一年的發展之後,多次獲獎的WebLogic Server已經是支持JCA的最佳套用伺服器之一。IBM的WebSphere套用伺服器是另一個廣受歡迎並獲獎的J2EE套用伺服器,2001年中期左右,它開始支持JCA。JBoss也是值得特別指出的套用伺服器,如果預算比較緊張,你就應該注意一下這個套用伺服器。JBoss也支持JCA,而且它具有無可比擬的價格優勢--它是免費的!
適配器廠商和產品
連線後端EIS套用時要用到JCA適配器。目前已經有許多集成商開發了JCA適配器,如表二所示。
表二:JCA廠商與適配器
從表二可以看出,有許多廠商為同樣的EIS套用提供了JCA適配器。然而,即使對於同一個EIS套用,來自不同廠商的JCA適配器可能支持不同的功能集。這是由於兩個因素造成的。首先,一些規範,例如JCA 1.0中的CCI,是可選的;是否在當前發行版中包含某個功能,完全由適配器廠商決定。其次,一些重要的EIS集成功能並未包含在當前的JCA規範中;為了增強適配器,適配器廠商可能決定增加一些額外的功能。這些在規範中沒有定義的功能將在稍後詳細討論。
由於這些在JCA規範中沒有定義的功能可能是很重要的,許多廠商在這個問題上採取了更實在的策略,走到了規範之前;即使面臨著非標準化的風險,為了提供額外的功能,它們也會為適配器加上一些輔助特性。
Insevo為許多EIS套用提供了JCA適配器,包括SAP、PeopleSoft、Edwards和Siebal。這些適配器除了支持JCA定義的CCI之外,還支持一種基於XML的接口。它們既支持客戶程式和EIS套用之間的同步通信,也支持異步通信。另外,它們還支持雙向通信,而不是JCA定義的單向通信。這些額外的功能使得Insevo的適配器不僅適用於套用集成,而且適用於過程集成(Process Integration);另外,這些附加的功能已經被作為JCA 2.0規範的一部分考慮。因此,從某種意義上來說,Insevo的適配器是一個超前JCA規範的版本。儘管額外增加的功能不遵從當前的JCA規範,但如果你確實需要它們,還有比這更好的事情嗎?
Resource Adapters的RAi連線器是另一組採取此種策略的JCA適配器,也包含了一些預期將在JCA 2.0規範中定義的功能。RAi支持輸入(Inbound)連線和輸出(Outbound)連線,支持同步和異步通信模式。RAi連線器除了支持CCI之外,還支持一組基於XML的API和XML元數據,並提供了日誌和監視工具,為實際工作帶來了巨大的方便。
除此之外,Attunity和Insevo還提供了許多數據源適配器和傳統適配器,這些適配器往往只需單向的同步通信。一些數據源和傳統適配器不支持事務之類的JCA功能,因此,它們並不提供對JCA的完整支持。
與其他類型的適配器比較
除了JCA適配器,還有其他一些根據不同需求而開發的適配器類型,其中之一是Web服務適配器,它是一種重要的新適配器類型,正在迅速地獲得人們的認可。另外,在JCA出現之前就有許多非標準的適配器被開發出來,因此這些適配器擁有更長的發展和成熟時間。
Web服務適配器
當前,企業套用的平台有各種各樣的類型,當然有一部分是以Java為基礎的。在開發各類系統的過程中,企業投入了大量的資源,當然不肯輕言放棄。問題在於,如何才能在不增加額外投資的情況下,讓這些異種的系統能夠協作運行?兩種流行的技術使這一切成為可能:第一是HTTP,第二是XML。這兩者是每一種平台上都使用的技術,非常適合於異種平台的集成。Web服務規範就建立在這兩種簡單但關鍵的技術的基礎上。儘管詳細討論Web服務已經超出了本文的範圍,但從下面的簡要說明可以看出Web服務的主要特點: 網管網
XML接口:Web服務以XML為基礎,它利用Web服務描述語言WSDL)描述終端服務者的服務形式。
HTTP/HTTPS協定:Web服務事實上的通信協定
SOAP:基於WSDL的Web服務和HTTP/HTTPS通信協定之間的綁定協定。
Web服務仍未提供任何QoS機制,因此是一種異步協定。對於異種系統的寬鬆結合來說,它是一種很合適的協定。
Web服務和JCA提供的功能互相完善了對方。如果這兩種技術最終把它們的特點合併了起來,我們不應該感到奇怪。實際上,一些廠商已經向這個方向發展。例如,Attunity和Sirvisetti等廠商已經在它們的JCA適配器中提供了對Web服務的支持。
非標準化的適配器
在JCA出現之前,一些中立的廠商,例如webMethods和TIBCO等,推出集成適配器已有數年。這些適配器一般具有非標準化的API,有時它們不能從集成軟體包分開。儘管如此,這些適配器已經經過多年實踐的檢驗,比JCA適配器涵蓋範圍更廣泛的EIS。特別地,webMethods Enterprise Adapter和B2B適配器擁有迄今為止最廣泛的覆蓋面。webMethods擁有的適配器多達60個以上,這些適配器還不支持JCA,但webMthods正在快速地向支持JCA的方向發展。
JCA的優點和不足
JCA的優點很明顯。它為EIS廠商提供了一種按照開放的產業標準定義EIS接口的途徑。通過使用公共的可調用接口以及繼承JCA提供的QoS機制,程式設計師能夠在不犧牲性能和系統完整性的前提下,簡化EIS的集成工作。
JCA的局限不是顯而易見,但不容忽視。和所有其他新技術一樣,JCA第一個版本的不成熟性往往成為最令人擔心的問題。另外,JCA適配器應該是可在套用伺服器之間移植的;然而,就目前的情況來看,對於你正在使用的套用伺服器來說這一判斷未必正確,因為適配器對某種套用伺服器的支持情況由適配器廠商根據個案進行測試和發布。此外,JCA還有其他一些已知的局限,其中有些局限有望在JCA標準的下一個版本中得到解決,其中包括:
異步訊息傳輸:調用EIS套用時,JCA 1.0採取同步訊息傳輸方式;它不能處理來自EIS套用的異步訊息或向EIS套用傳遞異步訊息。如果要異步傳遞訊息,就要在使用JCA時結合JMS(Java Message Service)或其他佇列服務,或者選擇使用JCA適配器中內建的非標準化異步訊息支持。
長時間運行的事務:這是一種運行時間可能達到數天甚至

套用

JCA與EIS集成套用
在電子商務時代,具有網際網路功能的業務應用程式,以及在網際網路上集成業務處理已經成為各大廠商獲得競爭優勢的基礎。不過在網際網路經濟之前,許多公司已經在業務和管理信息套用系統方面進行了大量的投入,如:
企業資源規劃(Enterprise Resource Planning,ERP)套用,如SAP R/3和BAAN
◆ 客戶關係管理(Customer Relationship Management,CRM)套用,如Siebel和Clarify。
◆ 資料庫應用程式,如DB2Sybase
◆ 大型事務處理套用,如CICS
◆ 老式資料庫系統,如IBM公司的IMS。
這些系統一般稱為企業信息系統(EIS ,Enterprise Information Systems)。EIS為整個企業提供信息基礎設施和服務。這些信息的形式可能是—個資料庫中的一組記錄、一個ERP中的業務對象、一個CRM系統的工作流對象,或者是一個事務處理應用程式中的事務程式。
在連線器出現之前,一些應用程式伺服器廠商為集成EIS系統提供了各種可自定義的適配器。這些適配器還提供了自定義的本機接口。但這些內容很複雜,不易理解,並且因為它們試圖支持一種標準體系結構而受到限制。其中一些具體的限制情況如下:
◆ EIS的應用程式編程本身是專用的,而套用系統的多樣性表明沒有適用於與開放式體系結構集成的通用接口機制。
◆ 大型Web應用程式要求在客戶、連線管理等方面具有高可用性可擴展性。傳統情況下,客戶的數量及他們的活動連線在—個EIS中代價是昂貴的,並且自定義的適配器也缺乏應用程式伺服器提供的連線管理機制。
◆ 管理眾多後端套用的安全性和分散式事務極其複雜並且缺乏可靠的機制。這意味著現在沒有標準的基礎設施解決方案來提供一個比較中性的安全性機制,也沒有對眾多EIS資源管理器的通用事務管理支持。這種情況對於EAI實現會帶來巨大的問題。
考慮到上述難點,Su公司發布了JCA,以便為J2EE伺服器與異構EIS資源的集成提供一個標準的體系結構。其主要目標是,通過在一個一致的J2EE環境中定義一個通用的API及一組通用的服務來簡化開發過程。JCA為開發者提供了一種容易的辦法,以便把EIS與J2EE系統平台組件無縫地集成起來。圖1顯示了一個帶有JCA的組件和EIS集成套用的結構圖。
從圖1可看出,如果需要把一個基於J2EE的應用程式與一個現有的EIS集成起來,所需做的就是把適當的EIS連線器(一個遵守JCA規範的資源適配器,即Resource-adapter)安裝到應用程式伺服器上。安裝了這個適配器之後,我們可以開發J2EE組件,以便使用CCI( Common Client Interface,通用客戶接口)API與EIS接口。採用的方式與使用JDBC與關係資料庫接口相同。也就是說,通過採用非EIS專門化的編程而簡化開發,並且所做配置與後端EIS完全獨立。

圖-1
Sun的想法是,所有應用程式伺服器廠商最終都會實現JCA服務,並且EIS廠商將實現遵守JCA規範的EIS資源適配器。通過支持JCA,所有遵守J2EE的應用程式伺服器都可以保證能夠處理眾多和異構的EIS資源。因此,JCA既提高了J2EE應用程式開發者的生產率,同時又通過J2EE提供一個可以擴展的集成方案,減少了開發成本,並且保護了在EIS系統中的現有投資。
jca

相關詞條

熱門詞條

聯絡我們