孫小英
摘要:該文根據(jù)當前企業(yè)信息化的現(xiàn)狀,提出了實行企業(yè)應用集成(EAI)的必要性。同時基于J2EE集成平臺并結(jié)合WebServices技術(shù)給出了企業(yè)應用集成的解決方案。
關(guān)鍵詞:企業(yè)應用集成(EAI);J2EE;WebServices
中圖分類號:TP3 文獻標識碼:A 文章編號:1009-3044(2012)33-8063-03
隨著企業(yè)信息化的不斷發(fā)展,不少企業(yè)已經(jīng)擁有了相當數(shù)量的應用系統(tǒng),這些應用系統(tǒng)在各自的領(lǐng)域內(nèi)發(fā)揮了較好的作用。但是,這些應用系統(tǒng)基本上是由各個部門自行選擇開發(fā)技術(shù)和開發(fā)方案來建設(shè)的。因此,各應用系統(tǒng)之間無法進行交互,從而形成了一個個“信息孤島”。顯然,這些“信息孤島”阻礙了企業(yè)的信息化建設(shè)。因此,有必要引入一種集成機制,將各個應用系統(tǒng)有機的連接起來,從而實現(xiàn)以下的功能:(1)能對異構(gòu)數(shù)據(jù)庫進行集成,實現(xiàn)數(shù)據(jù)的統(tǒng)一管理;(2)能對企業(yè)內(nèi)部各應用系統(tǒng)進行集成,協(xié)同完成一項業(yè)務(wù);(3)企業(yè)應能向客戶提供多種接入方式來辦理業(yè)務(wù);(4)企業(yè)應能與有業(yè)務(wù)來往的第三方企業(yè)的應用系統(tǒng)集成,進而實現(xiàn)B2B的集成。
1基于J2EE的企業(yè)應用集成系統(tǒng)解決方案
J2EE采用多層的分布式應用模型,應用邏輯按功能劃分為組件,各個應用組件根據(jù)它們所在的層分布在不同的機器上。J2EE的這種多層結(jié)構(gòu)使得重用業(yè)務(wù)邏輯和界面邏輯非常方便。因此,J2EE是較為理想的開發(fā)平臺。采用J2EE的企業(yè)應用集成系統(tǒng)體系結(jié)構(gòu)(如圖1所示)。
1.1用戶接口層組件
用戶接口組件包括:Browser、Applets、移動設(shè)備和GUI客戶端等。其中Browser、Applets、移動設(shè)備是基于Web方式的;GUI客戶端是基于傳統(tǒng)方式的,它通常不經(jīng)過Web層處理。用戶接口層提供了如Browser、移動設(shè)備、Applets等多種的接入方式,為用戶提供更大的靈活性和方便性支持。
1.2Web層組件
Web層組件可以是JSP或Servlet,另外還可能包含某些JavaBean對象來處理用戶輸入,并把輸入發(fā)送給運行在業(yè)務(wù)邏輯層上的EJB來進行處理。容器是運行在服務(wù)器上用于管理特定類型組件的軟件實體。Web容器管理所有J2EE應用程序中JSP頁面和Servlet組件的執(zhí)行,它為用戶接口層的多種接入方式提供支持。
1)JSP頁面通過在HTML代碼中嵌入Java代碼實現(xiàn)。JSP具有較高的平臺獨立性。服務(wù)器在接收到客戶端的頁面請求后對其中的Java代碼進行處理,并生成HTML頁面返回給客戶端的瀏覽器。
2)Servlet是一種使用JavaServletAPI創(chuàng)建的Java類,它提供了一種強大、有效和高度可移植的機制來擴展Web服務(wù)器的功能。Web服務(wù)器將Servlet映射到一個或多個URL,從而對這些地址發(fā)出的所有客戶請求都調(diào)用相關(guān)聯(lián)的Servlet。
1.3業(yè)務(wù)邏輯層組件
業(yè)務(wù)邏輯層組件主要由EJB構(gòu)成。EJB是一種分布式的組件結(jié)構(gòu),主要用于開發(fā)和部署J2EE應用業(yè)務(wù)組件。EJB規(guī)范定義了如何編寫服務(wù)器端組件,提供了組件與管理組件的應用服務(wù)器之間的標準約定,使得開發(fā)人員能夠快速開發(fā)出具有伸縮性的企業(yè)級應用。但EJB并不是實現(xiàn)J2EE的唯一途徑,正是由于J2EE的開放性,使得有些廠商能夠以一種和EJB平行的方式來開發(fā)同樣的產(chǎn)品。EJB容器管理所有J2EE應用程序中Enterprisebean的執(zhí)行。
EJB容器主要包括三種bean:會話(Session)bean,實體(Entity)bean,和消息驅(qū)動(Message-driven)bean。
1)Sessionbean表示與客戶進行通常時間較短的通信會話。這些Sessionbean只在客戶同J2EE應用的會話期間創(chuàng)建和存在。當客戶會話結(jié)束時,Sessionbean和它使用的任何數(shù)據(jù)將不再可用。
2)Entitybean是持久的、以數(shù)據(jù)為中心的組件。Entitybean通過提供與之相關(guān)聯(lián)的底層數(shù)據(jù)實體的邏輯視圖來表示以業(yè)務(wù)為中心的數(shù)據(jù)視圖。與Sessionbean不同,當客戶中止程序或關(guān)閉服務(wù)器時,就會有潛在的服務(wù)保證Entitybean的數(shù)據(jù)得以保存,從而保持數(shù)據(jù)的一致性。
3)Message-drivenbean是能對異步消息做出反應的Enterprisebean。與Sessionbean和Entitybean不同的是,Message-drivenbean的方法不能直接由客戶或是另一個組件調(diào)用,而只能由Sessionbean和Entitybean提供的接口進行調(diào)用。
1.4企業(yè)信息系統(tǒng)(EIS)層
企業(yè)信息系統(tǒng)層包括企業(yè)內(nèi)部各信息系統(tǒng)。如:企業(yè)資源計劃(ERP)、企業(yè)各部門獨立開發(fā)的應用系統(tǒng)、要實現(xiàn)B2B集成的第三方信息系統(tǒng)和各部門的異構(gòu)數(shù)據(jù)庫系統(tǒng)等。
另外,J2EE還提供了一系列APIs(應用程序接口)。這些APIs分布在集成系統(tǒng)的各層中,為各層之間的通信和集成提供支持。APIs包括J2EEConnectorAPI、JDBCAPI、JMSAPI、JTAAPI、JTSAPI等。該文在此重點介紹一下J2EEConnectorAPI和JDBCAPI。
1)J2EEConnectorAPI為J2EE平臺與異種應用服務(wù)器和企業(yè)信息系統(tǒng)的連接提供了一個標準的結(jié)構(gòu)。它定義了一套可伸縮的、安全的和事務(wù)性的機制。這套機制促進了J2EE應用同現(xiàn)有的EIS應用和系統(tǒng)之間的集成。通過J2EEConnectorAPI,可以使用稱為資源適配器的插件組件來實現(xiàn)同EIS的集成,從而實現(xiàn)EIS應用服務(wù)器和企業(yè)應用之間的無縫連接。
2)JDBCAPI通過SQL數(shù)據(jù)庫提供跨平臺DBMS連接來使Java程序能夠訪問多種多樣的表格式數(shù)據(jù)源,為訪問不同的數(shù)據(jù)庫提供了一種統(tǒng)一的途徑。因此,通過JDBCAPI企業(yè)就可以方便的對所有的數(shù)據(jù)庫進行統(tǒng)一的管理,從而實現(xiàn)數(shù)據(jù)資源的共享。
2基于WebServices的企業(yè)應用集成系統(tǒng)解決方案
2.1WebServices相關(guān)技術(shù)
WebServices就是可以通過Web描述、發(fā)布、定位和調(diào)用的模塊化應用。一旦WebServices被部署,其他的應用程序或是WebServices就能發(fā)現(xiàn)并調(diào)用這個部署的服務(wù)。WebServices是多項技術(shù)共同發(fā)展的結(jié)果,主要涉及的技術(shù)有:XML(eXtensibleMarkupLanguage)、SOAP(SimpleObjectAccessProtocol)、UDDI(UniversalDescription,DiscoveryandIntegration)、WSDL(WebServicesDescriptionLanguage)。
1)XML(可擴展標記語言)是一種可擴展的元標記語言。它可以創(chuàng)建標簽并且能將數(shù)據(jù)定義和數(shù)據(jù)顯示分開。它非常適合于異構(gòu)平臺之間的信息交換,因此常被用來在不同的業(yè)務(wù)過程中共享數(shù)據(jù),從而得到一個完美的具有平臺獨立性的解決方案。
2)SOAP(簡單對象訪問協(xié)議)是一種輕量級的消息協(xié)議,它允許用任何語言編寫的任何類型的對象在任何平臺之上相互通信。SOAP消息采用可擴展標記語言(XML)進行編碼,一般通過HTTP進行傳輸。
3)UDDI(通用描述、發(fā)現(xiàn)和集成)是分布式Web服務(wù)的信息注冊規(guī)范,企業(yè)可以通過這一規(guī)范對其提供的WebServices進行注冊,以便被其他企業(yè)發(fā)現(xiàn)。任何企業(yè)都可以通過UDDI注冊中心提供的分類目錄和關(guān)鍵詞等自動找到其所需的WebServices,并自動完成工作。
4)WSDL(WebServices描述語言)是一種XML格式,用來描述服務(wù)器提供的網(wǎng)絡(luò)服務(wù)。它可以用來創(chuàng)建一個文件指明服務(wù)器所提供的服務(wù)及服務(wù)器所支持的每個服務(wù)的操作集。對于每一個已指明的操作,WSDL文件還描述了在請求這個操作時客戶端必須遵循的格式。
2.2使用WebServices實現(xiàn)B2B集成
由于WebServices提供了快速的、廉價的集成方案,并且J2EE提供了一整套API來對WebServices進行支持,如:使用JAXP處理XML;用JAX-RPC創(chuàng)建Web服務(wù)端點和客戶;用SAAJ發(fā)送和接收XML消息;用JAXR訪問XML注冊庫(UDDI)等,使得開發(fā)人員能方便的在基于J2EE平臺的EAI實施過程中實現(xiàn)B2B集成。
通過WebServices技術(shù)實現(xiàn)B2B集成的過程大致如下(如圖2所示)。企業(yè)(服務(wù)提供者)使用一個UDDI注冊服務(wù)器(服務(wù)注冊中心)作為和有業(yè)務(wù)來往的第三方企業(yè)(服務(wù)請求者)集成的機制。這樣,企業(yè)就可以通過WSDL描述其提供的服務(wù),并通過UDDI注冊服務(wù)器發(fā)布服務(wù);第三方企業(yè)也可以通過UDDI注冊服務(wù)器來搜索其需要的服務(wù),并使用SOAP調(diào)用和完成服務(wù)。因此,企業(yè)雙方可以通過WebServices在Internet上方便的進行業(yè)務(wù)交易,從而實現(xiàn)了B2B的集成。
3結(jié)束語
企業(yè)應用集成(EAI)是一種全新的企業(yè)應用解決方案。由于J2EE和WebServices具有良好的開放性和擴展性,使得基于J2EE及WebServices的解決方案不會束縛在任何一個廠商的產(chǎn)品和API上,因此基于J2EE及WebServices平臺構(gòu)建的EAI可以隨著企業(yè)的需要不斷集成新的應用。
參考文獻:
[1](美)AaronE.walsh.J2EE1.4基礎(chǔ)教程[M].李化,瀟東,譯.北京:清華大學出版社,2003.
[2]《程序員2003合訂本》(上、下冊)[M].北京:電子工業(yè)出版社,2003.
[3]林潁賢,林大濱.基于J2EE的企業(yè)信息系統(tǒng)解決方案[J].計算機系統(tǒng)應用,2002(7).
[4]張再華.基于.NET平臺Web服務(wù)安全性的研究與實現(xiàn)[J].電腦知識與技術(shù),2012(6).