999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于中間件的企業計算模型

2007-01-01 00:00:00曹寶香
計算機應用研究 2007年2期

摘 要:在分析中間件技術的基礎上,提出在J2EE平臺上引入SOA架構實現企業計算的模型,并圍繞健壯、高效、復用和擴展等性能,重點闡述模型的設計模式、容器實例化組件的思想及組件間的通信技術。

關鍵詞:中間件; J2EE; SOA; 容器; 組件; Struts; 模式

中圖法分類號:TP311.11文獻標識碼:A

文章編號:1001—3695(2007)02—0069—04

1 引言

企業計算是網絡計算中最普遍和最實用的一種,它是以實現大型組織內部和組織之間的信息共享和協同工作為主要需求而形成的網絡計算技術,其核心是Client/Server計算模型和相關的中間件技術。本文在對一種主流中間件技術標準J2EE優化的基礎上引入SOA架構,提出JWS企業計算機模型,解決了傳統企業計算在諸多方面的不足。

2 中間件技術

2.1 中間件的界定

中間件是一種獨立的系統軟件或服務程序,位于客戶機或服務器的操作系統之上,管理計算機資源和網絡通信,分布式應用程序借助它在不同的技術之間共享資源。中間件是從OO技術發展起來的,但它推廣了對象封裝的內涵,側重于復雜系統中組成部分的協調關系,強調實體在環境中的存在形式,將重點從建模本身發展到對軟件生產的考慮,即中間件可以在應用領域的軟件生產中作為零件納入新的體系中被重用。中間件屏蔽了底層分布式環境的復雜性和異構性,簡化了分布式應用程序的開發,使分布式應用程序的健壯性、可擴展性、可重用性更好。 

2.2 中間件技術的主流標準

(1)DNA(Distributed Internet Applications)標準。它是Microsoft在推出Windows 2000系列操作系統平臺的基礎上,擴展了分布計算模型以及改造Back Office系列服務器端分布計算產品后發布的新的分布計算體系結構和規范。DNA構架由三層組成:①表示層,可以由瀏覽器組成的客戶,也可以是具有一定商業邏輯處理能力的胖客戶;②商業邏輯層,由COM/COCOM+/COM等組件組成;③數據層,可以是數據庫,也可以是外部應用程序。

(2)CORBA(Common Object Request Broker Architecture)標準。它是OMG基于眾多開放系統平臺廠商提交的分布對象互操作內容的公共對偶請求代理體系規范。CORBA標準主要分為三個層次:①對象請求代理,使得在分布式環境下的對象之間能夠透明地發送請求和接收響應;②對象服務,是必需的且獨立于特定的應用域;③公共設施,是能夠被多個應用所共享的一系列服務。

(3)J2EE(Java 2 Platform Enterprise Edition)標準。它是Sun公司把企業用戶、廠商及技術專家聚集到JCP(Java Community Process)開發的企業級Java API標準,是一種利用Java 2平臺來簡化企業解決方案的開發、部署和管理等復雜問題的體系結構。它不僅鞏固了標準版中的許多優點,如“Write Once,Run Anywhere”的特性,方便存取數據庫的JDBC API以及能夠在Internet應用中保護數據的安全模式等,還提供了對 EJB,Servlets,JSP以及XML技術的全面支持。

三者的比較如表1所示。

3 基于J2EE+SOA架構的企業計算模型

從表1可以看出,J2EE優于其他兩種標準。因此,在企業內部(即Intranet)采用J2EE的四層架構;而在企業間(即Internet)采用的是SOA架構,我們稱之為JWS模型,其架構如圖1所示。

3.1 模型整體架構

3.1.1 五層架構 

(1)客戶層

客戶層采取C/S和B/S結構相結合。C/S結構的數據存儲管理功能較為透明,應用服務器運行數據負荷較輕,但遠程數據管理存在不足,需要數據庫服務器的支持,高昂的維護成本且投資大;B/S結構是近幾年伴隨Internet迅速發展起來的一種技術,與C/S結構相比具有數據一致性強、實時性高、維護和升級方式簡單、成本低、應用范圍廣等優點,但應用服務器運行數據負荷較重。因此采用兩者結合的方式,前臺信息顯示采用B/S結構,后臺數據管理采用C/S結構。這樣客戶端的應用程序既可是傳統的Java Application和Applet,也可以是基于Web方式的網頁,或是基于JMS的個人數字助理等。

(2)Web層

Web層采用HTML,XML,JSP,Servlet交互動態顯示網頁,HTML,XML,JSP負責頁面的動態顯示,而Servlet負責頁面的轉向對Cookie操作。一般也將與Web顯示有關的JavaBean歸入這一層,如處理字符編碼,特別是Java內部的字符16bits Unicode與GB2312碼轉換,或者是對傳遞表單參數的加密和解碼,以及處理文檔或圖片頭部信息的JavaBean。

(3)業務邏輯層

業務邏輯層是企業計算的核心,所有業務均在此層完成,包括與數據庫的操作、企業的決策支持、數據挖掘、與遺留系統的互操作等以及EJB對CORBA的調用。

(4)Web Service層

Web Service是使應用程序可以用與平臺無關和與編程語言無關的方式進行相互通信的一項技術,由分布式計算的組件發展而來。它描述了一組操作,可以在網絡上通過標準化的XML消息傳遞來訪問。這一層是企業與企業間交互的接口,屬于松耦合結構,方便地實現了企業間的分布式計算,只需將其注冊即可供客戶或企業查詢使用。這一層采取的是J2EE組件轉換成Web Service。

(5)EIS(企業信息系統)層

EIS層包括企業基礎信息建設系統,如ERP,PDM,OLTP(聯機事務處理)及DB和Legacy System(企業的遺留系統)等。3.1.2 Struts實現MVC模式

MVC(Model-View-Contorller)模式減弱了業務邏輯接口與數據接口之間的耦合,并使視圖層更富于變化。Struts是一個實現MVC模式的開源框架,開發人員利用它進行開發時不用再自己編碼實現全套MVC模式,極大地節省了時間,能充分滿足應用開發的需求,簡單易用、敏捷迅速,它已成為Web應用中最流行的開發框架之一。其組件間的調用過程如圖2所示。

(1)模型

模型封裝了應用程序的數據結構和事務邏輯,集中體現了應用程序的狀態,它以一個或多個Bean的形式存在。這些Bean分為三類,即ActionForm,Action,JavaBean或EJB。Action-Form通常稱之為FormBean,它封裝了來自于頁面的用戶請求信息,如表單信息等;Action通常稱之為ActionBean,獲取從ActionSevlet傳來的FormBean,取出FormBean中的相關信息,并通過調用JavaBean或EJB作出相關的處理。

(2)視圖

視圖是模型的外在表現,界面開發人員不需要了解EIS層的信息,也不需要了解事務邏輯進行的操作。Struts提供豐富的JSP標簽庫,如HTML,Bean,Logic,Template等,這有利于分開表現業務邏輯和程序邏輯,主要由JSP頁面完成視圖。

(3)控制器

控制器對用戶的輸入進行響應并將模型和視圖聯系在一起,以實現企業計算的控制和流程。這部分由ActionServlet和Action完成。

(4)調用過程

在Struts的配置文件Struts-Config.xml中有以下組件:①Global-forwards是全局轉發,為Web應用程序中的JSP頁面定義一個邏輯,并為實際的JSP名稱和邏輯名稱之間建立映射,這樣就可以使用邏輯名代替真實的JSP頁面的名稱;②Action-mappings用來進行框架內部的流程控制,把用戶請求的URL映射到Action類,并將Action與ActionForm Beans相關聯;③Form-beans用來配置實現業務的模型;④Data-sources用來配置Web應用中使用的數據源。其調用過程是:JSP引擎在接收到一個Web應用的客戶請求時,會根據Action-mappings定義的映射將請求轉發到相應的Action類,并將請求中相應的屬性賦值給ActionForm對象;Action在處理完畢后,根據Global-forwards中定義的名稱將請求轉發給相應的JSP頁面。

3.1.3 SOA架構

SOA(Service-Oriented Architecture,面向服務結構)是一個組件模型,它將應用程序的不同功能單元(服務)通過這些服務之間定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的,它應該獨立于實現服務的硬件平臺、操作系統和編程語言,這使得構建于各種這樣的系統中的服務能以一種統一和通用的方式進行交互。企業在SOA中既是服務提供者也是使用者。

(1)SOA的角色包括①Service Provider(服務提供者),它是一個可通過網絡尋址的實體,它接收和執行來自使用者的請求,將自己的服務和接口契約發布(Publish)到服務注冊中心,以便服務使用者可以發現和訪問該服務;②Service Consumer(服務使用者),它是一個應用程序、一個軟件模塊或需要一個服務的另一個服務,它對注冊中心中的服務進行查詢(Find),通過傳輸綁定服務并根據接口契約來執行服務功能;③Service Registry(服務注冊中心),它是服務發現的支持者,包含一個可用服務的存儲庫,并允許服務使用者查找服務提供者接口。 

(2)SOA的優勢包括:動態服務發現和服務接口契約的定義;服務是自包含和模塊化的;服務支持互操作性;服務是松散耦合的;服務是位置透明的;服務是由組件組成的組合模塊。 

3.2 基于組件的開發(CBD)

3.2.1 EJB和JavaBean的設計模式

(1)EJB技術

EJB(Enterprise JavaBeans)是一種服務器端組件體系結構,它簡化了Java企業級開發的分布式組件應用程序的過程。按EJB 3.0規范分為三類:①會話Bean(Session Bean)。模擬商務過程和執行動作,實現SessionBean接口。根據客戶進程與Bean之間的通信是否需要Bean保存調用的狀態信息,又將其分為有狀態會話Bean和無狀態會話Bean。在企業計算中,可以用會話Bean調用其他的EJB、訪問遺留系統、執行工作流引擎或計價引擎等。②實體Bean(Entity Bean)。模擬商務數據,代表持久狀態的Java對象,用于持久化數據,包含核心商務數據,實現EntityBean接口。一個實體Bean操作數據庫中的一個實體(即數據庫中的一個表),封裝與數據庫相關的操作,用于提供數據庫中的數據記錄在EJB服務器中的對象類型視圖。按其生命期管理方式,將其分為BMP(Bean Managed Persistence,Bean管理持久性)和CMP(Container Managed Persistence,容器管理持久性)。在BMP實體中,需要編寫數據庫訪問代碼,用于修改、插入、刪除和查詢數據庫中的實體Bean數據,其優點是可以完全靈活地處理實體Bean的持久性數據;而CMP實體Bean有一組容器管理的字段,這些字段存儲在數據庫中,并可從中加載。通常每個容器管理的字段都對應于關系數據庫中的一個列。③消息驅動Bean。與會話Bean類似,它代表動作,是Java消息服務(JMS)和EJB的一個有用組合,是無狀態的,由容器在消息到達時調用。

(2)Session Facade模式及改進

若通過網絡直接訪問實體Bean,使用很多遠程接口,代價非常高,且降低了實體Bean組件的復用特性,還需記住很多JNDI名字,不方便使用,為此采用Session Facade模式。Session Facade模式是J2EE門面設計模式的一種,即用無狀態會話Bean通過本地接口調用已經存在的實體Bean實例,而不是直接操縱實體Bean,外部用戶永遠不會看到實體Bean,而實體Bean運行類似于會話Bean執行持久化。其調用過程是:會話Bean通過JNDI查找實體Bean的Home對象,調用Home對象的Create方法、實體EJB對象的商務方法和Remove方法,若用戶需求有所變化可只需改變會話Bean的商務方法,充分發揮會話Bean網絡性能的優化作用。本文對Session Facade模式再次封裝:

①將調用無狀態會話Bean的操作封裝成JavaBean,其封裝的內容為

Properties properties=new Properties();

//連接Web Logic服務器的屬性類

properties.put(Context.INITIAL_CONTEXT_FACTORY,\"weblogic.jndi.WLInitialContextFactory\");

properties.put(Context.PROVIDER_URL,\"t3://localhost:7001\");

//設置訪問服務器的參數

Context ctx=new InitialContext(properties);

//創建JNDI對象的搜索器

Object beanJNDI=ctx.lookup(\"Bean\");

//查找Home JNDI Name為Bean的會話EJB

BeanHome home=(BeanHome)PortableRemoteObject.narrow(beanJNDI,BeanHome.class); 

Bean bean=(Bean)PortableRemoteObject.narrow(home.create(),Bean.class);//取得實體Bean的Home接口和遠程接口

②實體Bean與數據庫的交互是開銷大且耗時的操作,為此采用數據庫連接池技術并用連接工廠DataSource獲取數據源。在實體Bean中建立好的數據庫連接使用的是邏輯連接,而實際的物理連接被存儲在池中并加以維護。當下一次訪問時,直接從連接緩沖池中取得一個數據庫連接,而不需要重新連接數據庫。在操縱數據庫時,使用宏語句PreparedStatement實現動態查詢,向數據庫傳遞的是不帶參數的語句,能夠緩存一個SQL語句和它的編譯結果,以提高執行速度。

3.2.2 第三方組件 

除了J2EE本身的組件技術和Web Service外,為了降低開發成本、提高開發效率、縮短項目周期,在企業計算中可以引入第三方組件。例如開源的JspSmart組件,它是由www.jspsmart.com公司開發的一個全功能的文件上傳/下載組件,適用于嵌入執行上傳/下載操作的JSP文件中。

3.3 容器實例化組件

容器是一種運行在服務器上的軟件實體,用于管理特定類型的組件、負責管理部署在其中的組件的生命周期、方法調用的并發管理、強制執行安全和事務及諸如資源匯集之類的工作。容器在部署組件時將其實例化,組件總是在容器中運行,每次調用組件只是調用的實例。通過容器體系結構就能在開發和部署中提供無關性,并在不同類型的中間層服務器間提供可移植性。JWS模型提供四種不同類型的容器:①Web容器,它屬于服務器端容器,包括JSP和Servlet兩種組件。Web容器中的組件可以使用EJB容器中的組件完成復雜的商務邏輯。②EJB容器,它屬于服務器端容器,包含的組件為EJB。它主要用于服務器端的商業邏輯實現,以簡化企業級應用的開發,使其較容易地具備可伸縮性、可移植性、分布式事務處理、多用戶和安全性等。③Applet容器,它屬于客戶端容器,包含的組件為Applet。僅當使用Web頁面無法充分表現數據或應用界面時才使用它。④Application Client容器,它屬于客戶端容器,包含的組件為Application Client。該組件是一種較重量級的客戶端,它能夠使用J2EE的大多數服務和API。Web Service不需要新的容器,只需J2EE的容器托管,其實例的生命周期和并發管理則依賴于調用它的J2EE組件所在的容器。

3.4 組件間的互操作及其通信協議

3.4.1 互操作分類

(1)J2EE組件訪問CORBA。其方式有兩種:①EJB的客戶端,包括Java客戶端程序、Applet、JSP和Servlet,訪問任何語言實現的CORBA對象提供的服務;②EJB中Bean的實現類訪問任何語言實現的CORBA對象提供的服務。因為CORBA本身支持Java,將EJB看作是Java編寫的客戶端,這兩種方式均可以實現。

(2)J2EE組件轉換為Web Service。其方式有兩種:①無狀態會話 Bean轉換,服務提供者通過實現無狀態會話EJB來實現Web服務業務邏輯。EJB的遠程接口方法說明必須與服務端點接口的方法說明一致,還必須包含服務端點接口的所有方法。②JavaBean或Servlet類轉換,服務提供者根據基于JAX-RPC Servlet的服務實現模型定義的需求來實現Web服務業務邏輯。

(3)J2EE組件調用Web Service。其方式有兩種,即JSP調用和Servlet調用。由于Servlet負責流程,所以常采用Servlet調用,而EJB運行開銷較大,不推薦其調用Web Service。Servlet調用Web Service過程的時序圖如圖3所示。

3.4.2 通信協議

(1)分布式通信協議

①Java RMI(Remote Method Invoke,遠程方法調用),它是實現Java對象間的遠程通信。服務器用注冊器把一個名字和遠程對象綁在一起,客戶機通過名字從服務器注冊器上查找遠程對象,找到后下載遠程對象的本地代理,調用遠程對象的方法。②Java IDL(Interface Defilation Language,接口定義語言)。它可以實現Java對象符合CORBA規范的遠程對象通信。③JNDI(Java Naming and Directory Interface,Java命名和目錄接口)。它為分布式系統訪問遠程對象提供了一個標準的命名接口。EJB主接口對象、數據源、消息服務器等都可以用JDNI樹的形式注冊到名稱服務器中,調用它們的對象通過符合JDNI的程序接口在JNDI名稱服務器中查找指定名稱的遠程對象。④JMS(Java Message Service,Java消息服務)。它為開發消息中間件應用程序定義了一套規范,Java客戶端和Java中間層訪問消息系統只要實現JMS定義的簡單接口,就可以實現復雜的應用,而不必去關注低級的技術細節。(2)SOA協議

SOA的核心協議都是基于XML的。SOAP協議(Simple Object Access Protocol)提供了標準的RPC (Remote Procedure Call,遠程過程調用)方法來調用Web Service,并在應用與Web Service之間傳送命令、參數和XML文檔。WSDL(Web Service Description Language)用于描述Web Service本身及其參數和返回值。UDDI(Universal Description Discovery and Integration)提供注冊、發現Web Service機制,可以一次注冊、到處發布。

4 結束語

信息經濟飛速發展的今天,企業計算日益受到業界的重視,能高效地進行企業計算是企業的戰略優勢。本文提出一個企業計算的五層架構模型,并重點分析模型各層的工作模式,但由于Web Service尚屬較新的技術,其安全性在此模型中只是托管于調用其組件的容器,還要作進一步的研究。此模型已在我們開發的PLM系統中得到驗證,并取得了很好的效果。

本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。

主站蜘蛛池模板: 青青久久91| 国产日本欧美亚洲精品视| 亚洲精品你懂的| 国产成人精品2021欧美日韩| 亚洲日韩久久综合中文字幕| 中美日韩在线网免费毛片视频| 亚国产欧美在线人成| 在线精品亚洲国产| 国产又粗又猛又爽| 欧美日韩在线亚洲国产人| 中文字幕亚洲乱码熟女1区2区| 国产AV无码专区亚洲精品网站| 国产男女免费视频| 老熟妇喷水一区二区三区| 欧美啪啪网| 女同久久精品国产99国| 日韩毛片在线播放| 国产精品女人呻吟在线观看| 性色生活片在线观看| 麻豆精品国产自产在线| 国产精品亚欧美一区二区| 亚洲免费成人网| a级毛片免费在线观看| 国产在线精彩视频二区| 丁香婷婷激情综合激情| 国产午夜无码片在线观看网站 | 国产在线八区| 97精品伊人久久大香线蕉| 亚洲精品777| 日本一本在线视频| 又黄又湿又爽的视频| 真人高潮娇喘嗯啊在线观看| 色欲综合久久中文字幕网| 免费国产无遮挡又黄又爽| 好紧太爽了视频免费无码| 国产欧美成人不卡视频| 国产一区二区三区夜色 | 中文字幕日韩视频欧美一区| 制服丝袜一区| 在线国产毛片手机小视频| 尤物特级无码毛片免费| 亚洲精品午夜天堂网页| 欧美色视频网站| 国产视频自拍一区| 国产成人精品男人的天堂| 国产欧美性爱网| 婷婷六月综合网| 国产精品网拍在线| 一级毛片在线播放免费观看| 久久精品亚洲热综合一区二区| 亚洲av无码片一区二区三区| 就去吻亚洲精品国产欧美| 欧美在线综合视频| 国产麻豆91网在线看| 中文字幕人妻av一区二区| 国产sm重味一区二区三区| 波多野结衣一二三| 亚洲三级视频在线观看| 污网站免费在线观看| 国产精品视频系列专区| 激情亚洲天堂| 日韩无码视频专区| 国产精品免费福利久久播放 | 成人在线视频一区| 亚洲国产日韩一区| 久久久成年黄色视频| 欧美一级在线播放| 久久久精品国产亚洲AV日韩| 亚洲天堂在线免费| 91福利一区二区三区| 色AV色 综合网站| 久久频这里精品99香蕉久网址| 理论片一区| 三区在线视频| 精品无码一区二区三区电影| 国产亚洲精品91| 国产91高清视频| 久久成人免费| 色欲不卡无码一区二区| 青青草国产在线视频| 国产精品jizz在线观看软件| 四虎永久免费网站|