熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

JCA適配器技術綜述

2022-06-13   來源: JSP教程 

  什麼是JCA?它最吸引人的特點是什麼?它有什麼不足之處?有哪些廠商支持JCA?是否還存在替代JCA的產品以便選購時貨比三家?本文將幫助你解答所有這些問題
  JCA及其特點
  JCA即Java Connector Architecture或Java連接器體系它完善了用JEE構造企業應用的技術體系在JCA出現之前基於JEE應用服務器的開發體系為企業應用各個部分提供了相應的開發工具但是與傳統系統連接的部分仍未得到很好的解決為了與這些EIS系統集成各個公司為每一種系統提供了定制的開發工具有了JCA應用服務器廠商就能夠為Java平台組件與後端系統的連接提供一層抽象應該說JCA完全符合JEE應用服務器市場的自然發展歷程
  在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適配器和JEE應用服務器內建的服務
  ▲ 公共的客戶端接口JCA還定義了用戶級的編程接口稱為公共客戶端接口(CCICommon Client Interface)這個接口集在JCA 中是可選的允許EIS客戶程序的開發者按照一種標准的方式連接目標EIS系統或與目標EIS交互(執行命令並獲取結果)
  應用服務器的JCA支持
  對JCA的支持來自兩個方面支持JCA的應用服務器支持JCA的EIS應用適配器JCA 是JEE 規范的一部分遵從JEE 規范的應用服務器必須提供合適的環境支持必要的JCA功能包括緩沖池事務和集成的安全機制表一列出了常見的應用服務器以及它們的JCA支持情況
  表一JCA支持現狀
   
  BEA的WebLogic Server是最早支持JCA的應用服務器之一年開始WebLogic 就內建了對JCA Beta的支持當時的JCA 規范正處於最終草案狀態經過一年的發展之後多次獲獎的WebLogic Server已經是支持JCA的最佳應用服務器之一IBM的WebSphere應用服務器是另一個廣受歡迎並獲獎的JEE應用服務器年中期左右它開始支持JCAJBoss也是值得特別指出的應用服務器如果預算比較緊張你就應該注意一下這個應用服務器JBoss也支持JCA而且它具有無可比擬的價格優勢它是免費的!
  適配器廠商和產品
  連接後端EIS應用時要用到JCA適配器目前已經有許多集成商開發了JCA適配器如表二所示
  表二JCA廠商與適配器
  
  從表二可以看出有許多廠商為同樣的EIS應用提供了JCA適配器然而即使對於同一個EIS應用來自不同廠商的JCA適配器可能支持不同的功能集這是由於兩個因素造成的首先一些規范例如JCA 中的CCI是可選的是否在當前發行版中包含某個功能完全由適配器廠商決定其次一些重要的EIS集成功能並未包含在當前的JCA規范中為了增強適配器適配器廠商可能決定增加一些額外的功能這些在規范中沒有定義的功能將在稍後詳細討論
  
  由於這些在JCA規范中沒有定義的功能可能是很重要的許多廠商在這個問題上采取了更實在的策略走到了規范之前即使面臨著非標准化的風險為了提供額外的功能它們也會為適配器加上一些輔助特性
  
  Insevo為許多EIS應用提供了JCA適配器包括SAPPeopleSoftEdwards和Siebal這些適配器除了支持JCA定義的CCI之外還支持一種基於XML的接口它們既支持客戶程序和EIS應用之間的同步通信也支持異步通信另外它們還支持雙向通信而不是JCA定義的單向通信這些額外的功能使得Insevo的適配器不僅適用於應用集成而且適用於過程集成(Process Integration)另外這些附加的功能已經被作為JCA 規范的一部分考慮因此從某種意義上來說Insevo的適配器是一個超前JCA規范的版本盡管額外增加的功能不遵從當前的JCA規范但如果你確實需要它們還有比這更好的事情嗎?
  
  Resource Adapters的RAi連接器是另一組采取此種策略的JCA適配器也包含了一些預期將在JCA 規范中定義的功能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和BB適配器擁有迄今為止最廣泛的覆蓋面webMethods擁有的適配器多達個以上這些適配器還不支持JCA但webMthods正在快速地向支持JCA的方向發展
  
  
  JCA的優點和不足
  
  
  JCA的優點很明顯它為EIS廠商提供了一種按照開放的產業標准定義EIS接口的途徑通過使用公共的可調用接口以及繼承JCA提供的QoS機制程序員能夠在不犧牲性能和系統完整性的前提下簡化EIS的集成工作
  
  JCA的局限不是顯而易見但不容忽視和所有其他新技術一樣JCA第一個版本的不成熟性往往成為最令人擔心的問題另外JCA適配器應該是可在應用服務器之間移植的然而就目前的情況來看對於你正在使用的應用服務器來說這一判斷未必正確因為適配器對某種應用服務器的支持情況由適配器廠商根據個案進行測試和發布此外JCA還有其他一些已知的局限其中有些局限有望在JCA標准的下一個版本中得到解決其中包括
  
  ▲ 異步消息傳輸調用EIS應用時JCA 采取同步消息傳輸方式它不能處理來自EIS應用的異步消息或向EIS應用傳遞異步消息如果要異步傳遞消息就要在使用JCA時結合JMS(Java Message Service)或其他隊列服務或者選擇使用JCA適配器中內建的非標准化異步消息支持
  
  ▲ 長時間運行的事務這是一種運行時間可能達到數天甚至
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19460.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.