版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第三章應(yīng)用軟件集成體系結(jié)構(gòu)概述客戶機(jī)/服務(wù)器模式分布式計(jì)算軟件重用技術(shù)中間件技術(shù)J2EE應(yīng)用架構(gòu).NET應(yīng)用架構(gòu)基于組件的軟件開發(fā)12/31/20221信息系統(tǒng)集成第三章應(yīng)用軟件集成體系結(jié)構(gòu)概述12/28/20221信3.1概述軟件應(yīng)用架構(gòu)
20世紀(jì)60年代到70年代,軟件危機(jī)使軟件成本日益增長,開發(fā)速度難以控制,質(zhì)量無法保證,軟件的維護(hù)困難等。軟件工程軟件工程發(fā)展初期,設(shè)計(jì)的重點(diǎn)是數(shù)據(jù)結(jié)構(gòu)和算法的選擇上。隨著規(guī)模和復(fù)雜度的變化,人們開始認(rèn)識到軟件架構(gòu)的重要性。軟件架構(gòu)的定義將軟件系統(tǒng)劃分成多個(gè)模塊,明確各模塊之間的相互作用,組合起來實(shí)現(xiàn)系統(tǒng)的全部特征,就是系統(tǒng)的架構(gòu)。軟件架構(gòu)為軟件系統(tǒng)提供了一個(gè)結(jié)構(gòu)、行為和屬性的高級抽象,并由構(gòu)成系統(tǒng)的元素的描述及元素的相互作用、元素集成的模式,以及這些模式的約束組成。12/31/20222信息系統(tǒng)集成3.1概述軟件應(yīng)用架構(gòu)12/28/20222信息系統(tǒng)集成3.1概述軟件架構(gòu)的作用軟件架構(gòu)是系統(tǒng)環(huán)境中的一個(gè)高層概念,每個(gè)系統(tǒng)都有一個(gè)架構(gòu)。架構(gòu)是用于表達(dá)整個(gè)系統(tǒng)的結(jié)構(gòu)和行為的模型,表達(dá)系統(tǒng)如何滿足其環(huán)境上下文的要求,并表示主要的系統(tǒng)構(gòu)件、其交互和依賴關(guān)系,以及其操作所需滿足的約束。軟件架構(gòu)模型研究軟件架構(gòu)的首要問題是如何表示軟件架構(gòu),即如何對軟件架構(gòu)建模。根據(jù)建模角度(側(cè)重點(diǎn))不同,通常將軟件架構(gòu)的模型分為5種:結(jié)構(gòu)模型、框架模型、動態(tài)模型、過程模型和功能模型。最常用的是結(jié)構(gòu)模型和動態(tài)模型。12/31/20223信息系統(tǒng)集成3.1概述軟件架構(gòu)的作用12/28/20223信息系統(tǒng)集成3.1概述應(yīng)用軟件的計(jì)算模式應(yīng)用系統(tǒng)在某種計(jì)算問題的解決過程中,采用的對計(jì)算資源的組織、調(diào)度上的某種有效方法。計(jì)算資源是參與計(jì)算過程的所有資源:處理器、存儲器、通信線路、程序和數(shù)據(jù)等。從發(fā)展歷程看,應(yīng)用系統(tǒng)的計(jì)算模式主要包括集中式和分布式計(jì)算。20世紀(jì)80年代之前,人們深入思考的是如何充分利用計(jì)算資源。近年來,網(wǎng)絡(luò)技術(shù)的發(fā)展使得分布式計(jì)算技術(shù)成為核心技術(shù)。工業(yè)化分布式計(jì)算技術(shù)的發(fā)展已經(jīng)經(jīng)歷了兩代:第一代分布式計(jì)算技術(shù)是以支持信息共享為目標(biāo)的面向過程的客戶機(jī)/服務(wù)器技術(shù);第二代分布計(jì)算技術(shù)是以面向?qū)ο鬄橹饕卣鞯姆植际綄ο蠹夹g(shù)。當(dāng)前以Internet為平臺的Agent計(jì)算、網(wǎng)格計(jì)算等分布式計(jì)算技術(shù)逐步深入的影響未來分布式計(jì)算技術(shù)的發(fā)展。12/31/20224信息系統(tǒng)集成3.1概述應(yīng)用軟件的計(jì)算模式12/28/20224信息系統(tǒng)3.2客戶機(jī)/服務(wù)器模式兩層C/S模式C/S的核心特征是任務(wù)的分解,由不同的計(jì)算資源承擔(dān)任務(wù),通過協(xié)作完成任務(wù)。兩層C/S模式是最早使用的C/S模式。客戶端操作系統(tǒng)應(yīng)用業(yè)務(wù)邏輯用戶交互界面數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)服務(wù)器客戶機(jī)RequestResponse12/31/20225信息系統(tǒng)集成3.2客戶機(jī)/服務(wù)器模式兩層C/S模式客戶端操作系統(tǒng)應(yīng)用業(yè)3.2客戶機(jī)/服務(wù)器模式B/S結(jié)構(gòu)Brower/Server瀏覽器/服務(wù)器模式數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)服務(wù)數(shù)據(jù)庫訪問系統(tǒng)Web支撐系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)Web服務(wù)客戶操作系統(tǒng)瀏覽器客戶機(jī)HTTPCGITCP/IPIIOPActiveXRequestRequestHTTPTCP/IP12/31/20226信息系統(tǒng)集成3.2客戶機(jī)/服務(wù)器模式B/S結(jié)構(gòu)數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)網(wǎng)絡(luò)3.2客戶機(jī)/服務(wù)器模式多層C/S結(jié)構(gòu)B/S模式在構(gòu)造復(fù)雜應(yīng)用系統(tǒng)時(shí),利用CGI等技術(shù)開發(fā)部署很難提高系統(tǒng)運(yùn)行效率?,F(xiàn)有的Web服務(wù)器支撐系統(tǒng)很難對各類中間件進(jìn)行有效的管理和組織,需要專門針對中間件的支撐系統(tǒng)。數(shù)據(jù)操縱的安全性很難保障。應(yīng)用系統(tǒng)被劃分為:客戶層、表示層、業(yè)務(wù)邏輯層(應(yīng)用層)、數(shù)據(jù)管理層(數(shù)據(jù)層)。12/31/20227信息系統(tǒng)集成3.2客戶機(jī)/服務(wù)器模式多層C/S結(jié)構(gòu)12/28/20223.2客戶機(jī)/服務(wù)器模式多層C/S模式中,應(yīng)用系統(tǒng)被劃分為客戶層:一般PC,通過瀏覽器與Web服務(wù)器聯(lián)系,訪問Web服務(wù)器資源。表示層:Web服務(wù)器,接受用戶交互式操作,并將操作請求傳遞給應(yīng)用服務(wù)器。業(yè)務(wù)邏輯層:應(yīng)用服務(wù)支撐系統(tǒng),分布式對象管理容器,接受Web服務(wù)器的請求,執(zhí)行業(yè)務(wù)邏輯返回結(jié)果,與后臺數(shù)據(jù)庫綁定,一般將數(shù)據(jù)庫資源映射為數(shù)據(jù)對象。數(shù)據(jù)管理層:數(shù)據(jù)庫服務(wù)器。12/31/20228信息系統(tǒng)集成3.2客戶機(jī)/服務(wù)器模式多層C/S模式中,應(yīng)用系統(tǒng)被劃分為3.2客戶機(jī)/服務(wù)器模式多層C/S結(jié)構(gòu)的基本計(jì)算過程對多層C/S模式的支持規(guī)范主要有Sun的J2EE和微軟的.NET。數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)數(shù)據(jù)庫服務(wù)器應(yīng)用邏輯中間件管理容器網(wǎng)絡(luò)操作系統(tǒng)應(yīng)用服務(wù)器客戶操作系統(tǒng)瀏覽器客戶機(jī)請求Web支撐系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)Web服務(wù)器服務(wù)12/31/20229信息系統(tǒng)集成3.2客戶機(jī)/服務(wù)器模式多層C/S結(jié)構(gòu)的基本計(jì)算過程數(shù)據(jù)庫3.3分布式計(jì)算移動Agent20世紀(jì)90年代初由GeneralMagic公司在推出商業(yè)Telescript時(shí)提出的,主要思想在于:結(jié)合Agent技術(shù)和分布式計(jì)算技術(shù),將服務(wù)請求Agent動態(tài)移到服務(wù)器端執(zhí)行。使此Agent較少依賴網(wǎng)絡(luò)傳輸,而直接面對要訪問的服務(wù)器資源,降低了對網(wǎng)絡(luò)帶寬的依賴。移動Agent不需要統(tǒng)一調(diào)度,由用戶創(chuàng)建的Agent,用戶可自行創(chuàng)建多個(gè)Agent,同時(shí)在一個(gè)或多個(gè)節(jié)點(diǎn)上運(yùn)行,形成并行求解能力。可自行決定何時(shí)中斷任務(wù),并將自己轉(zhuǎn)移到另一臺機(jī)器上。具有自治性和智能路由的性能。12/31/202210信息系統(tǒng)集成3.3分布式計(jì)算移動Agent12/28/202210信息3.3分布式計(jì)算網(wǎng)格計(jì)算Grid稱為網(wǎng)格計(jì)算思想在于:將閑置在Internet各處的MIPS捆綁在一起加以利用,以便用累積的計(jì)算能力來完成超級計(jì)算機(jī)的任務(wù)。網(wǎng)格計(jì)算主要應(yīng)用在大批量的小任務(wù),如:聲視頻點(diǎn)播,具有突發(fā)的大量的資源需求,實(shí)時(shí)分布式儀表系統(tǒng)等。目前對網(wǎng)格的一般理解是指把整個(gè)互聯(lián)網(wǎng)或某個(gè)區(qū)域整合成統(tǒng)一的計(jì)算機(jī)系統(tǒng)。網(wǎng)格的根本特征不在于規(guī)模,而是資源的廣泛共享。12/31/202211信息系統(tǒng)集成3.3分布式計(jì)算網(wǎng)格計(jì)算12/28/202211信息系統(tǒng)集3.3分布式計(jì)算分布式對象技術(shù)分布式技術(shù)的應(yīng)用使得系統(tǒng)規(guī)模越來越大。網(wǎng)絡(luò)間的異構(gòu)問題必須解決。分布式系統(tǒng)的復(fù)雜性使得系統(tǒng)的可靠性降低。分布式軟件的開發(fā)和維護(hù)成本高昂。通過結(jié)合面向?qū)ο蠹夹g(shù),實(shí)現(xiàn)分布式軟件的可移植性、互操作性、可靠性和可重用性。屏蔽了不同系統(tǒng)間的差異和底層細(xì)節(jié),減小分布式系統(tǒng)開發(fā)難度,提高分布式軟件的性能。目前主流的有:COM/DCOM、Java、COBRA12/31/202212信息系統(tǒng)集成3.3分布式計(jì)算分布式對象技術(shù)12/28/202212信息3.3分布式計(jì)算分布式對象技術(shù)采用了面向?qū)ο蠹夹g(shù)中的封裝性和繼承性兩大特點(diǎn)。所操作的對象通常稱之為組件。客戶客戶stub線路協(xié)議客戶端服務(wù)器服務(wù)器stub線路協(xié)議服務(wù)器端網(wǎng)絡(luò)環(huán)境高層中層底層12/31/202213信息系統(tǒng)集成3.3分布式計(jì)算分布式對象技術(shù)客戶客戶stub線路協(xié)議客戶3.4軟件重用技術(shù)軟件重用概念指在兩次或多次不同的軟件開發(fā)過程中重復(fù)使用相同或相近軟件元素的過程。軟件元素包括:程序代碼、測試用例、設(shè)計(jì)文檔、設(shè)計(jì)過程、需求分析文檔或領(lǐng)域知識。將這種可重用的元素成為軟構(gòu)件,可重用的軟件元素越大,重用的粒度越大?;跇?gòu)件的軟件開發(fā)通常包括構(gòu)件獲取、構(gòu)件分類和檢索、構(gòu)件評估、適應(yīng)性修改,以及將現(xiàn)有的構(gòu)件在新的語境下組裝成新的系統(tǒng)的過程。軟件重用中的構(gòu)件是指語義完整、語法正確和有可重用價(jià)值的單位軟件,是軟件重用過程中可以明確標(biāo)識的元素。12/31/202214信息系統(tǒng)集成3.4軟件重用技術(shù)軟件重用概念12/28/202214信息3.4軟件重用技術(shù)面向重用的軟件開發(fā)需考慮“使用重用的開發(fā)(Developwithreuse)”和“用于重用的開發(fā)(Developforreuse)”。前者使用已有的構(gòu)件進(jìn)行軟件開發(fā);后者的目的是開發(fā)可重用的軟件。用戶需根據(jù)應(yīng)用領(lǐng)域的特點(diǎn)及相似性確定構(gòu)件的可重用性。一旦確定了重用價(jià)值,就可以將構(gòu)件的設(shè)計(jì)通用化,然后將其加入到構(gòu)件庫。整個(gè)軟件的開發(fā)過程是構(gòu)件的不斷積累、不斷完善的漸進(jìn)過程。在開發(fā)的過程中對構(gòu)件修改、或替代原有構(gòu)件。12/31/202215信息系統(tǒng)集成3.4軟件重用技術(shù)面向重用的軟件開發(fā)12/28/202213.4軟件重用技術(shù)面向重用的軟件開發(fā)以面向?qū)ο蠓椒榛A(chǔ),增強(qiáng)軟件的重用性。開發(fā)過程中可重用的構(gòu)件,可以使面向?qū)ο蠓椒ㄖ械膶ο蠡驅(qū)ο蟮募?,也可以使非面向?qū)ο蠓椒ㄖ械目芍赜脴?gòu)件。領(lǐng)域分析軟件開發(fā)理解構(gòu)件功能檢索所需構(gòu)件確認(rèn)構(gòu)件的重要性可重用構(gòu)件庫領(lǐng)域知識用戶需求目標(biāo)軟件12/31/202216信息系統(tǒng)集成3.4軟件重用技術(shù)面向重用的軟件開發(fā)領(lǐng)域分析軟件開發(fā)理解構(gòu)3.5中間件技術(shù)中間件概念中間件(Middleware)是位于硬件、操作系統(tǒng)等平臺和應(yīng)用之間的通用服務(wù)。中間件(系統(tǒng)服務(wù))應(yīng)用程序1應(yīng)用程序2應(yīng)用程序3操作系統(tǒng)/硬件平臺1操作系統(tǒng)/硬件平臺212/31/202217信息系統(tǒng)集成3.5中間件技術(shù)中間件概念中間件(系統(tǒng)服務(wù))應(yīng)用程序1應(yīng)用3.5中間件技術(shù)中間件的目的實(shí)現(xiàn)應(yīng)用與平臺的無關(guān)性,滿足大量應(yīng)用的需要。中間件的作用屏蔽操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議的差異,為應(yīng)用程序提供多種通信機(jī)制滿足不同領(lǐng)域的應(yīng)用需要。中間件服務(wù)所遵循的原則離實(shí)際還有很大的距離。多數(shù)中間件使用專有的協(xié)議,使應(yīng)用只能構(gòu)件在單一的廠家的產(chǎn)品之上。有些中間件只提供某些平臺的實(shí)現(xiàn),限制了應(yīng)用在異構(gòu)系統(tǒng)之間的移植。12/31/202218信息系統(tǒng)集成3.5中間件技術(shù)中間件的目的12/28/202218信息系3.5中間件技術(shù)中間件的分類數(shù)據(jù)庫訪問中間件遠(yuǎn)程過程調(diào)用中間件面向消息中間件事務(wù)中間件分布式對象中間件12/31/202219信息系統(tǒng)集成3.5中間件技術(shù)中間件的分類12/28/202219信息系3.5中間件技術(shù)數(shù)據(jù)庫訪問中間件通過一個(gè)抽象層訪問數(shù)據(jù)庫,從而允許使用相同或相似的代碼訪問不同的數(shù)據(jù)庫資源。典型的如:Windows下的ODBC和Java中的JDBC遠(yuǎn)程過程調(diào)用中間件一個(gè)應(yīng)用程序使用RPC來“遠(yuǎn)程”執(zhí)行一個(gè)位于不同地址空間內(nèi)的過程,從效果上看和執(zhí)行本地調(diào)用相同。一個(gè)RPC應(yīng)用分為兩個(gè)部分:服務(wù)器和客戶服務(wù)器提供一個(gè)或多個(gè)遠(yuǎn)程過程;客戶向服務(wù)器發(fā)出遠(yuǎn)程調(diào)用??蛻艉头?wù)器之間的網(wǎng)絡(luò)通信和數(shù)據(jù)轉(zhuǎn)換通過代理程序(stub與skeleton)完成,從而屏蔽了不同操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議。12/31/202220信息系統(tǒng)集成3.5中間件技術(shù)數(shù)據(jù)庫訪問中間件12/28/202220信3.5中間件技術(shù)面向消息中間件利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺無關(guān)的數(shù)據(jù)交流,并可基于數(shù)據(jù)通信進(jìn)行分布系統(tǒng)的集成。典型的產(chǎn)品:IBM的MQSeries使用MOM,通信雙方的程序可以在不同的時(shí)間運(yùn)行,程序不在網(wǎng)絡(luò)上直接通話。消息放入適當(dāng)?shù)年?duì)列,等待目標(biāo)程序運(yùn)行。避免了網(wǎng)絡(luò)通信的復(fù)雜性。消息隊(duì)列和網(wǎng)絡(luò)通信的維護(hù)工作由MOM完成。12/31/202221信息系統(tǒng)集成3.5中間件技術(shù)面向消息中間件12/28/202221信息3.5中間件技術(shù)分布式對象中間件采用分布式對象技術(shù),結(jié)合面向?qū)ο蠹夹g(shù)實(shí)現(xiàn)。對象請求代理(ObjectRequestBroker,ORB)模型提供了一個(gè)通信框架,在異構(gòu)的分布計(jì)算環(huán)境中透明地傳遞對象請求。ORB是一種對象總線,定義了異構(gòu)環(huán)境下對象透明的發(fā)送請求和接受響應(yīng)的基本機(jī)制,是建立對象之間客戶/服務(wù)器關(guān)系的中間件。ORB使對象可以透明地向其他對象發(fā)出請求或接受其他對象的響應(yīng),這些對象可在本地也可遠(yuǎn)程ORB攔截請求調(diào)用,并負(fù)責(zé)找到可以實(shí)現(xiàn)請求的對象、傳送參數(shù)、調(diào)用相應(yīng)的方法、返回結(jié)果等??蛻舨恍枰婪?wù)器的信息。12/31/202222信息系統(tǒng)集成3.5中間件技術(shù)分布式對象中間件12/28/202222信3.5中間件技術(shù)事務(wù)中間件(TransactionProcessingMonitor)最早出現(xiàn)在大型機(jī)上,為其提供大規(guī)模事務(wù)處理的可靠運(yùn)行環(huán)境。事務(wù)處理監(jiān)控程序位于客戶和服務(wù)器之間,完成事務(wù)管理與協(xié)調(diào)、負(fù)載平衡、失效恢復(fù)等任務(wù)。隨著對象技術(shù)和事務(wù)技術(shù)的結(jié)合,出現(xiàn)了對象事務(wù)監(jiān)控器,可保證分布式對象的事務(wù)完整性。事務(wù)中間件可以滿足現(xiàn)代業(yè)務(wù)應(yīng)用系統(tǒng)的12條基本原則:完整性、安全性、可伸縮性、可用性、可管理性、互操作性、適應(yīng)性、易開發(fā)性、經(jīng)濟(jì)性、快速的響應(yīng)時(shí)間、數(shù)據(jù)的可分布性、易用性。采用商業(yè)事務(wù)中間件的優(yōu)勢在于縮短產(chǎn)品投放市場所需的時(shí)間、節(jié)省應(yīng)用開發(fā)費(fèi)用、減少系統(tǒng)運(yùn)行開銷、簡化應(yīng)用集成、降低軟件的維護(hù)費(fèi)用等。12/31/202223信息系統(tǒng)集成3.5中間件技術(shù)事務(wù)中間件(TransactionPro3.5中間件技術(shù)構(gòu)件技術(shù)與中間件中間件作為存在于系統(tǒng)軟件與應(yīng)用之間的特殊層次,對典型的應(yīng)用模式進(jìn)行抽象,從而使應(yīng)用軟件開阿人員可以將精力更多地放在業(yè)務(wù)邏輯上,并按照標(biāo)準(zhǔn)形式進(jìn)行開發(fā),從而使軟件架構(gòu)的應(yīng)用成為可能。構(gòu)件的使用對架構(gòu)技術(shù)(即環(huán)境、基礎(chǔ)設(shè)施、計(jì)算平臺等)有極大的依賴性。只有在適當(dāng)?shù)募軜?gòu)中,軟件才有可能被抽象成為構(gòu)件。中間件,從本質(zhì)上說是對分布式應(yīng)用的抽象,拋開了與應(yīng)用相關(guān)的業(yè)務(wù)邏輯細(xì)節(jié),保留了典型的分布交互模式的關(guān)鍵特征。經(jīng)過抽象,對復(fù)雜的分布式系統(tǒng)進(jìn)行提煉和必要的封裝隔離后,以統(tǒng)一的形式呈現(xiàn)給應(yīng)用。中間件與架構(gòu)是從兩種不同的角度看待軟件的中間層次,可以將中間件理解為架構(gòu)或構(gòu)建模型的具體實(shí)現(xiàn),是構(gòu)件存在的基礎(chǔ),中間件促進(jìn)了軟件的構(gòu)件化。中間件作為分布式計(jì)算平臺,涉及各種不同的資源,包括各種操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡(luò)協(xié)議甚至語言,其目標(biāo)是在分布的環(huán)境中統(tǒng)一使用這些資源。12/31/202224信息系統(tǒng)集成3.5中間件技術(shù)構(gòu)件技術(shù)與中間件12/28/202224信3.5中間件技術(shù)應(yīng)用服務(wù)器應(yīng)用服務(wù)器(ApplicationServer)是企業(yè)極應(yīng)用在Internet上迅速發(fā)展的條件下,出現(xiàn)的一種中間件技術(shù)。它可以處理客戶和數(shù)據(jù)之間的交互操作,并提供一組前面提到的中間件服務(wù),包括事務(wù)管理、ORB、MOM、系統(tǒng)安全、負(fù)載均衡及資源管理等。應(yīng)用服務(wù)器還提供了一個(gè)稱為容器的管理環(huán)境,可以對應(yīng)用中的組件進(jìn)行配置和管理。應(yīng)用服務(wù)器在技術(shù)上并沒有任何標(biāo)準(zhǔn)和規(guī)范是為某個(gè)商業(yè)性公司所獨(dú)占,全部都基于Internet上的開放標(biāo)準(zhǔn),因而具有極強(qiáng)的生命力。使用應(yīng)用服務(wù)器可以幫助企業(yè)構(gòu)建一個(gè)基于Internet的電子商務(wù)系統(tǒng),而且擁有很高的穩(wěn)定性、可擴(kuò)展性和安全性。應(yīng)用服務(wù)器向企業(yè)級用戶提供了設(shè)計(jì)、開發(fā)、部署、運(yùn)行和管理Internet電子商務(wù)應(yīng)用系統(tǒng)的平臺,適用于Internet上的電子商務(wù)應(yīng)用。12/31/202225信息系統(tǒng)集成3.5中間件技術(shù)應(yīng)用服務(wù)器12/28/202225信息系統(tǒng)3.5中間件技術(shù)應(yīng)用服務(wù)器的優(yōu)點(diǎn)在于:三層架構(gòu)體系:適合Internet環(huán)境,使系統(tǒng)具有很強(qiáng)的可擴(kuò)展性和可管理性。分布式環(huán)境:保證系統(tǒng)的穩(wěn)定性,同時(shí)擁有較高的性能。面向?qū)ο蟮哪K化構(gòu)件設(shè)計(jì):提高開發(fā)速度,降低開發(fā)成本。采用Java技術(shù):完全跨平臺,適合Internet需要,并獲得大多數(shù)廠商的支持,可以保護(hù)用戶的投資。應(yīng)用服務(wù)器采用的三層(多層)架構(gòu),將應(yīng)用邏輯單獨(dú)作為一層,客戶可以根據(jù)不同的應(yīng)用邏輯專心設(shè)計(jì)該層。需要擴(kuò)展業(yè)務(wù)時(shí),只需專注于改進(jìn)中間層的設(shè)計(jì),使原系統(tǒng)能夠平滑方便地升級。
12/31/202226信息系統(tǒng)集成3.5中間件技術(shù)應(yīng)用服務(wù)器的優(yōu)點(diǎn)在于:12/28/20223.6J2EE應(yīng)用架構(gòu)J2EE(Java2PlatformEnterpriseEdition)是Sun公司領(lǐng)導(dǎo)、各廠商共同制定并得到廣泛認(rèn)可的工業(yè)標(biāo)準(zhǔn)。J2EE將開發(fā)工作分為兩類:業(yè)務(wù)邏輯開發(fā)和表示邏輯開發(fā),其余的系統(tǒng)資源則由應(yīng)用服務(wù)器自動處理,不必為中間層的資源和運(yùn)行管理進(jìn)行編碼。將更多的開發(fā)精力集中在應(yīng)用程序的業(yè)務(wù)邏輯和表示邏輯上,從而縮短企業(yè)的應(yīng)用開發(fā)周期、有效保護(hù)企業(yè)的投資。12/31/202227信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE(Java2Platfo3.6J2EE應(yīng)用架構(gòu)J2ME(Java2PlatformMicroEdition)
Java2平臺簡化版,適合嵌入式系統(tǒng)開發(fā)。J2SE(Java2PlatformStandardEdition)
Java2平臺標(biāo)準(zhǔn)版,是為JavaApplet和應(yīng)用程序提供的Java標(biāo)準(zhǔn)運(yùn)行環(huán)境支持的平臺,包括輸入/輸出和圖形用戶界面等。J2EE(Java2PlatformEnterpriseEdition)
Java2平臺企業(yè)版,將Java企業(yè)級API捆綁在一起的成為Java語言進(jìn)行服務(wù)器端的企業(yè)應(yīng)用部署的開發(fā)平臺。J2EE運(yùn)行在J2SE之上。12/31/202228信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2ME(Java2Platfo3.6J2EE應(yīng)用架構(gòu)J2EE技術(shù)規(guī)范規(guī)范簡稱JavaMessageService:Java消息服務(wù),允許分布對象之間的異步通信JMSJavaMail:Java郵件,滿足平臺無關(guān),協(xié)議無關(guān)方式的郵件發(fā)送JavaMailJavaInterfaceDefinitionLanguage:Java接口定義語言,是實(shí)現(xiàn)CORBA標(biāo)準(zhǔn)的模型,允許與其他語言的集成和CORBA標(biāo)準(zhǔn)服務(wù)的分布處理JavaIDLRemoteMethodInvocation—InternetInter-ORBProtocol:遠(yuǎn)程方法調(diào)用—InternetInter-ORB協(xié)議,是RMI的可移植性擴(kuò)展,是基于CORBA標(biāo)準(zhǔn)協(xié)議,允許進(jìn)程間相互通信,實(shí)現(xiàn)CORBA集成RMI-IIOPJavaNamingandDirectoryInterface:Java命名和目錄接口,是透明查找分布對象和服務(wù)的機(jī)制,用來定位組件和資源在網(wǎng)絡(luò)中的位置JNDIJavaService:Java感知對象,可以通過HTTP的請求/響應(yīng)與Web客戶的交互,通常用來實(shí)現(xiàn)表示邏輯Servlet12/31/202229信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE技術(shù)規(guī)范規(guī)范簡稱JavaM3.6J2EE應(yīng)用架構(gòu)J2EE技術(shù)規(guī)范(續(xù)表)規(guī)范簡稱JavaServerPage:Java服務(wù)頁面,主要用于動態(tài)頁面生成,實(shí)際上也是Servlet,由HTML或XML和部分Java代碼交織編寫,也可實(shí)現(xiàn)對業(yè)務(wù)層的直接訪問JSPJavaAPIforXMLParsing:解析XML的JavaAPIJAXPEnterpriseJavaBeans:企業(yè)級JavaBean,用于封裝業(yè)務(wù)邏輯的軟件組件,通過EJB容器來管理EJB的生命周期、安全和事務(wù)EJBJavaDatabaseConnectivityExtension:Java數(shù)據(jù)庫連接擴(kuò)展,是Java訪問關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)連接橋。JDBC12/31/202230信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE技術(shù)規(guī)范(續(xù)表)規(guī)范簡稱Ja3.6J2EE應(yīng)用架構(gòu)J2EE多層架構(gòu)J2EE采用多層應(yīng)用架構(gòu),整個(gè)系統(tǒng)分為客戶層、J2EE應(yīng)用服務(wù)器和企業(yè)信息系統(tǒng)層。大部分J2EE應(yīng)用都劃分成三層或四層,復(fù)雜的系統(tǒng)可能會有更多的層次。這樣每個(gè)層次都有明確的職責(zé),系統(tǒng)結(jié)構(gòu)十分清晰。應(yīng)用客戶/瀏覽器客戶層JSP/ServletWeb層EJB業(yè)務(wù)層數(shù)據(jù)庫EIS層J2EE服務(wù)器12/31/202231信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE多層架構(gòu)應(yīng)用客戶/客戶層JS3.6J2EE應(yīng)用架構(gòu)J2EE多層架構(gòu)J2EE的多層次分布式應(yīng)用模型是根據(jù)功能把應(yīng)用邏輯分成多個(gè)層次,每個(gè)層次支持相應(yīng)的服務(wù)器和組件,組件在分布式服務(wù)器的組建容器中運(yùn)行。在企業(yè)開發(fā)邏輯上將系統(tǒng)劃分為五層:客戶層、Web層(表示層)、業(yè)務(wù)層、集成層和資源層。12/31/202232信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE多層架構(gòu)12/28/20223.6J2EE應(yīng)用架構(gòu)J2EE多層應(yīng)用體系結(jié)構(gòu)瀏覽器特制客戶端容器容器容器ServletJSP會話Bean實(shí)體Bean消息驅(qū)動BeanJDBC公用適配器專用適配器數(shù)據(jù)庫其他應(yīng)用系統(tǒng)12/31/202233信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE多層應(yīng)用體系結(jié)構(gòu)瀏特容器容器3.6J2EE應(yīng)用架構(gòu)J2EE客戶層系統(tǒng)的客戶端,在J2EE體系中的客戶端可以是瀏覽器,也可以是具有特殊要求的定制客戶端。采用一般瀏覽器的是B/S結(jié)構(gòu)中所提倡的瘦客戶端;采用JavaApplet一般屬于胖客戶端,客戶端程序具有部分業(yè)務(wù)邏輯描述,并提供具有Java風(fēng)格的特制用戶交互界面??蛻舳伺c表示層之間通過HTTP/HTTPS即可交互,承載的語言一般是HTML或XML。對使用胖客戶端的情況,采用的交互手段可以多種多樣。12/31/202234信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE客戶層12/28/202233.6J2EE應(yīng)用架構(gòu)表示層:提供交互界面,接受用戶的輸入,將用戶的操作請求傳遞給應(yīng)用層,等待應(yīng)用層處理結(jié)果處理結(jié)果,并將結(jié)果返回給用戶。在用戶和應(yīng)用邏輯之間起到中介作用。表示層可以承擔(dān)幾乎全部邏輯,但是基于對系統(tǒng)的可擴(kuò)展性、可維護(hù)性和負(fù)載均衡等問題的考慮,在構(gòu)造大型應(yīng)用中,Web服務(wù)器(表示層)盡量少一些業(yè)務(wù)邏輯的處理,而將業(yè)務(wù)邏輯交給應(yīng)用層。表示層與應(yīng)用層之間的通信主要借助JMS和RMI進(jìn)行。12/31/202235信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)表示層:12/28/202235信息3.6J2EE應(yīng)用架構(gòu)業(yè)務(wù)層業(yè)務(wù)層主要完成業(yè)務(wù)邏輯的執(zhí)行,與數(shù)據(jù)庫及后臺系統(tǒng)資源進(jìn)行交互的應(yīng)用系統(tǒng)部分,在J2EE中,提供應(yīng)用層業(yè)務(wù)邏輯支持和數(shù)據(jù)庫操作支持的組件主要是EJB。EJB首先是一種技術(shù)規(guī)范,它本身并不提供分布式計(jì)算支持。EJB的組件特性、分布式計(jì)算特征均是由EJB容器提供的。程序員將從繁重復(fù)雜的分布式對象和組件構(gòu)造中解脫出來,而把精力全部投入到業(yè)務(wù)邏輯本身。12/31/202236信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)業(yè)務(wù)層12/28/202236信息系3.6J2EE應(yīng)用架構(gòu)集成層集成層主要完成應(yīng)用層的業(yè)務(wù)邏輯與各類數(shù)據(jù)庫資源、不同應(yīng)用系統(tǒng)之間的集成。實(shí)現(xiàn)數(shù)據(jù)的共享和應(yīng)用功能的共享。數(shù)據(jù)庫連接主要由EJB和JDBC實(shí)現(xiàn),應(yīng)用程序之間功能操作一般采用適配器來實(shí)現(xiàn)。資源層資源層主要是指信息資源,包括各類數(shù)據(jù)庫、文檔以及其他的應(yīng)用系統(tǒng)等。可能是系統(tǒng)建設(shè)中新建的資源,也可能是企業(yè)信息化過程中遺留下來的系統(tǒng)資源。12/31/202237信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)集成層12/28/202237信息系3.7.NET應(yīng)用架構(gòu).NET概述微軟的.NET是一組開放的互聯(lián)網(wǎng)協(xié)議,推出的一系列產(chǎn)品、技術(shù)和服務(wù)。.NET開發(fā)框架在通用語言運(yùn)行環(huán)境基礎(chǔ)上,給開發(fā)人員提供了完善的基礎(chǔ)庫類、數(shù)據(jù)庫訪問技術(shù)及網(wǎng)絡(luò)開發(fā)技術(shù),開發(fā)者可以使用多種語言快速構(gòu)建網(wǎng)絡(luò)應(yīng)用。包括企業(yè)內(nèi)部、企業(yè)之間各類應(yīng)用的集成統(tǒng)一,也包括個(gè)性化集成服務(wù)。內(nèi)容覆蓋了不同的設(shè)備接入、Web服務(wù)應(yīng)用的開發(fā)、部署、發(fā)布、服務(wù)等。12/31/202238信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu).NET概述12/28/2022383.7.NET應(yīng)用架構(gòu).NET框架概述.NET框架旨在實(shí)現(xiàn)下列目標(biāo):提供一個(gè)一致的面向?qū)ο蟮木幊汰h(huán)境,而無論對象代碼是在本地存儲執(zhí)行,還是在本地執(zhí)行但在Internet上分布,或者遠(yuǎn)程執(zhí)行。提供一個(gè)將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境,以消除“DLLHELL”問題。提供一個(gè)保證代碼安全執(zhí)行的代碼執(zhí)行環(huán)境。提供一個(gè)可消除腳本環(huán)境或解釋環(huán)境的性能問題的代碼執(zhí)行環(huán)境。按照工業(yè)標(biāo)準(zhǔn)生成所有通信,以確?;?NET框架的代碼可與任何其他代碼集成。.NET框架體系結(jié)構(gòu)由以下部分組成:通用語言運(yùn)行時(shí)、框架類庫、ASP.NET以及ADO.NET、企業(yè)服務(wù)、Web服務(wù)、Windows窗體、遠(yuǎn)程處理等。Visual.Studio.NET是全面支持.NET的開發(fā)工具。12/31/202239信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu).NET框架概述12/28/20223.7.NET應(yīng)用架構(gòu).NET開發(fā)框架VBC++C#JScript通用語言規(guī)范ADO.NETASP.NETWindows應(yīng)用通用語言運(yùn)行環(huán)境(commonlanguageruntime)框架類庫(frameworkclasslibrary)VisualStudio.NET12/31/202240信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu).NET開發(fā)框架VBC++C#JSc3.7.NET應(yīng)用架構(gòu)通用語言運(yùn)行環(huán)境(CLR)CLR處于.NET框架的最底層,它是將底層平臺差異進(jìn)行抽象的運(yùn)行期基礎(chǔ)設(shè)施。CLR支持所有能用公共中間語言CIL表示的編程語言。從而為多種語言提供了一種統(tǒng)一的運(yùn)行環(huán)境,使得組件和XMLWeb服務(wù)的綜合使用不再受編程語言的限制。提供了更多的功能和特性,從而大大簡化了應(yīng)用程序的發(fā)布和升級;多種語言之間的交互;自動的內(nèi)存和資源管理等。.NET中的幾個(gè)重要的概念是程序集、應(yīng)用程序域、元數(shù)據(jù)和IL中間語言。12/31/202241信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu)通用語言運(yùn)行環(huán)境(CLR)12/283.7.NET應(yīng)用架構(gòu)幾個(gè)重要概念程序集程序集是.NET平臺用于部署和配置的單元。它是自我描述的安裝單元,由一個(gè)或多個(gè)文件組成,一個(gè)程序集可以是一個(gè)包括元數(shù)據(jù)的DLL或EXE,也可以由多個(gè)文件組成,如資源文件、元數(shù)據(jù)、DLL和EXE。12/31/202242信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu)幾個(gè)重要概念12/28/2022423.7.NET應(yīng)用架構(gòu)應(yīng)用程序域提供安全而通用的處理單元,處理CLR可使用它來提供應(yīng)用程序之間的隔離??梢栽诰哂型雀綦x級別的單個(gè)程序中運(yùn)行幾個(gè)應(yīng)用程序域,而不會造成進(jìn)程間調(diào)用或進(jìn)程間切換等方面的額外開銷,在一個(gè)進(jìn)程內(nèi)運(yùn)行多個(gè)應(yīng)用程序的能力顯著增強(qiáng)了服務(wù)器的可伸縮性。應(yīng)用程序域所提供的隔離優(yōu)點(diǎn)在于:在一個(gè)應(yīng)用程序中出現(xiàn)的錯(cuò)誤不會影響其他應(yīng)用程序。能夠在不停止整個(gè)進(jìn)程的情況下停止單個(gè)應(yīng)用程序。使用應(yīng)用程序域可以卸載在黨應(yīng)用程序中運(yùn)行的代碼。12/31/202243信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu)應(yīng)用程序域12/28/202243信3.7.NET應(yīng)用架構(gòu)元數(shù)據(jù)在CLR中運(yùn)行的可執(zhí)行文件與Windows可執(zhí)行文件不同,因?yàn)樗鼈儾粌H有代碼和數(shù)據(jù),而且還有元數(shù)據(jù)(metadata)。在.NET中,元數(shù)據(jù)包括類型定義、版本信息、外部程序集引用和其他標(biāo)準(zhǔn)化信息。.NET使用元數(shù)據(jù)描述特定.NET程序集中使用和暴露的所有類型。元數(shù)據(jù)比類型庫豐富得多,包括程序集、模塊、類、接口、方法、屬性、字段、事件以及全局方法等的描述??梢岳?NET提供的反射API對程序集的元數(shù)據(jù)進(jìn)行訪問。12/31/202244信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu)元數(shù)據(jù)12/28/202244信息系3.7.NET應(yīng)用架構(gòu)IL中間語言Microsoft將它的語言抽象層成為公用中間語言(commonintermediatelanguage,CLR),IL類似于Java編譯器聲稱的字節(jié)碼,支持所有面向?qū)ο筇匦?,包括?shù)據(jù)抽象、繼承、多態(tài)以及異常的事件等概念。任何.NET語言都可以轉(zhuǎn)化為IL,因此.NET支持多種語言,而且將來可能支持多種平臺,只要目標(biāo)平臺有IL。公用類型系統(tǒng)CTS和公用語言規(guī)范CLS可確保多種語言的兼容性、互操作性和可集成性。12/31/202245信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu)IL中間語言12/28/2022453.7.NET應(yīng)用架構(gòu)
CLR主要包括類裝載器、JIT編譯器和其他執(zhí)行支持和管理組件。.NETPE(portableexecutable)文件位于CLR的頂層,在CLR的VEE中執(zhí)行。類裝載器負(fù)責(zé)將.NET類裝載進(jìn)內(nèi)存并為它們的執(zhí)行做準(zhǔn)備。在成功完成之前,必須找到目標(biāo)類。一旦目標(biāo)類裝載,類裝載器就向該類的每個(gè)方法發(fā)出一個(gè)小的存根(stub)。在類裝載器裝載之后,而在IL代碼執(zhí)行之前,驗(yàn)證器處理必須驗(yàn)證的代碼。驗(yàn)證器在運(yùn)行時(shí)用來驗(yàn)證代碼是否安全。最后,托管的本機(jī)代碼將接受其他執(zhí)行支持組建的處理,如代碼管理、安全管理、無用資源回收、異常管理、調(diào)試管理、列集管理和線程管理等。.NETPE文件類裝載器JIT編譯器驗(yàn)證器JIT執(zhí)行支持和管理12/31/202246信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu)CLR主要包括類裝載器、JI3.7.NET應(yīng)用架構(gòu)ADO.NETADO.NET是數(shù)據(jù)訪問模型,用于訪問關(guān)系型數(shù)據(jù)庫系統(tǒng)。ADO.NET優(yōu)點(diǎn)如下:互操作性
采用XML作為其有效的數(shù)據(jù)格式,解決了公用數(shù)據(jù)交換的限制,而且,由于XML只是結(jié)構(gòu)化文本,將XML作為HTTP網(wǎng)絡(luò)協(xié)議頂層的數(shù)據(jù)格式,可以將防火墻的相關(guān)問題減至最小??缮炜s性
采用非連接數(shù)據(jù)機(jī),當(dāng)客戶請求數(shù)據(jù)時(shí),數(shù)據(jù)集將被獲得,并傳送至客戶,然后連接會盡可能的及時(shí)關(guān)閉。提高了可伸縮性和系統(tǒng)的性能。高效性
ADO.NET提供了豐富而可擴(kuò)展的框架類,開發(fā)者可以在此基礎(chǔ)上快速開發(fā)健壯的、高性能的XMLWeb服務(wù)和現(xiàn)在流行的N層應(yīng)用程序。12/31/202247信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu)ADO.NET12/28/202243.7.NET應(yīng)用架構(gòu)ADO.NET的對象模型包括兩組不同的類:內(nèi)容組件和托管供應(yīng)器組件。內(nèi)容組件包括DataSet類和其他支持類:DataTable,DataRow等托管供應(yīng)器組件用于輔助數(shù)據(jù)獲取和更新。SQLServer和其他OLEDB數(shù)據(jù)存儲CommandConnectionConnectionCommandDataReaderDataAdapter數(shù)據(jù)存儲托管供應(yīng)器組件與數(shù)據(jù)相關(guān)組件DataSet12/31/202248信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu)ADO.NET的對象模型包括兩組不同3.7.NET應(yīng)用架構(gòu)ASP.NETASP.NET是Microsoft.NET中的網(wǎng)絡(luò)編程結(jié)構(gòu),使得建造、運(yùn)行和發(fā)布網(wǎng)絡(luò)應(yīng)用非常方便和高效。ASP.NET網(wǎng)絡(luò)表單
設(shè)計(jì)目的就是使得開發(fā)者能夠非常容易的創(chuàng)建網(wǎng)絡(luò)表單,將VB中的快速開發(fā)模型引入到網(wǎng)絡(luò)開發(fā)中來。ASP.NETWeb服務(wù)
在ASP.NET中,建造和使用網(wǎng)絡(luò)服務(wù)都非常方便,在ASP.NET中建造網(wǎng)絡(luò)服務(wù)就是編寫一個(gè)擴(kuò)展名為.asmx的文件,在這個(gè)文件中加入需要表現(xiàn)的方法既可,網(wǎng)絡(luò)服務(wù)的建造者不需要了解SOAP和XML的細(xì)節(jié)。ASP.NET應(yīng)用框架
ASP.NET應(yīng)用不再是解釋腳本,而是編譯運(yùn)行,再加上靈活的緩沖技術(shù),從根本上提高了性能;發(fā)布一個(gè)網(wǎng)絡(luò)應(yīng)用,僅僅是一個(gè)復(fù)制文件的過程;開發(fā)者可以將應(yīng)用的配置信息存放在XML格式的文件中;提供更多的認(rèn)證和安全管理方式,提高應(yīng)用程序的可靠性。12/31/202249信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu)ASP.NET12/28/202243.7.NET應(yīng)用架構(gòu)J2EE與.NET比較特征J2EE.NET技術(shù)類型業(yè)界標(biāo)準(zhǔn)產(chǎn)品中間件廠商30多家微軟解釋器JRECLR動態(tài)Web頁面支持JSPASP.NET中間層組件EJB.NET管理的組件數(shù)據(jù)庫訪問JDBC,SQL/JADO.NET是否支持Web服務(wù)是是是否具備中間件功能是是12/31/202250信息系統(tǒng)集成3.7.NET應(yīng)用架構(gòu)J2EE與.NET比較特征J2EE.3.8基于組件的軟件開發(fā)問題的提出計(jì)算機(jī)的不斷發(fā)展為計(jì)算機(jī)及網(wǎng)絡(luò)應(yīng)用提供了大量技術(shù)先進(jìn)、功能強(qiáng)大的應(yīng)用軟件系統(tǒng),同時(shí)也給軟件開發(fā)者和用戶提出了問題:軟件系統(tǒng)規(guī)模龐大,研制周期長,維護(hù)費(fèi)用高。軟件系統(tǒng)過于復(fù)雜,在一個(gè)系統(tǒng)中集成了各種功能,大多數(shù)功能不能靈活的裝卸、單獨(dú)升級或重復(fù)利用。應(yīng)用軟件不易集成,即使各應(yīng)用程序是用相同的編程語言編寫的,并且運(yùn)行在相同的機(jī)器上,特定應(yīng)用程序的數(shù)據(jù)和功能也不能提供給其他應(yīng)用程序使用。面向?qū)ο蟮某绦蛟O(shè)計(jì)思想得到很大的發(fā)展,結(jié)果卻產(chǎn)生了大量的“對象孤島”。將面向?qū)ο笏枷牒徒M件編程思想結(jié)合發(fā)展出急于對象的組建軟件結(jié)構(gòu),為這一領(lǐng)域開辟了新的道路。12/31/202251信息系統(tǒng)集成3.8基于組件的軟件開發(fā)問題的提出12/28/2022513.8基于組件的軟件開發(fā)組件技術(shù)的發(fā)展簡史和特點(diǎn)軟件系統(tǒng)規(guī)模龐大,研制周期長,維護(hù)費(fèi)用高。軟件系統(tǒng)過于復(fù)雜,在一個(gè)系統(tǒng)中集成了各種功能,大多數(shù)功能不能靈活的裝卸、單獨(dú)升級或重復(fù)利用。應(yīng)用軟件不易集成,即使各應(yīng)用程序是用相同的編程語言來編寫的,并且運(yùn)行在相同的計(jì)算機(jī)上,特定應(yīng)用程序的數(shù)據(jù)和功能也不能提供給其他應(yīng)用程序使用。為克服以上困難,實(shí)現(xiàn)行業(yè)范圍軟件的“即插即用”,關(guān)鍵是解決軟件系統(tǒng)的可操作性、可擴(kuò)展性、語言獨(dú)立性和跨平臺操作能力。12/31/202252信息系統(tǒng)集成3.8基于組件的軟件開發(fā)組件技術(shù)的發(fā)展簡史和特點(diǎn)12/283.8基于組件的軟件開發(fā)軟件組件可看成一種軟件集成電路元件:軟件IC沒有硬件IC的天然聚合性,構(gòu)成粒度大小自由,便于擴(kuò)展。通過規(guī)定一個(gè)統(tǒng)一的二進(jìn)制標(biāo)準(zhǔn),建立起機(jī)構(gòu)之間的智能互操作機(jī)制和語言獨(dú)立性。外界僅通過接口訪問組件。多側(cè)面性,即組件表達(dá)的語義層次高,可以從不同側(cè)面進(jìn)行連接,外部特性不惟一。支持封裝、繼承、多態(tài)性。12/31/202253信息系統(tǒng)集成3.8基于組件的軟件開發(fā)軟件組件可看成一種軟件集成電路元件3.8基于組件的軟件開發(fā)開發(fā)EJB組件EJB容器EnterpriseBean是在稱作EJB容器的特殊環(huán)境中運(yùn)行的軟件組件。容器容納和管理的方式與JavaWeb服務(wù)器容納Servlet或HTML瀏覽器容納JavaApplet的方式相同。EJB容器在運(yùn)行時(shí)管理EnterpriseBean的各個(gè)方面,包括遠(yuǎn)程訪問Bean、安全性、持續(xù)、事務(wù)并行性和資源的訪問與合用。容器不允許客戶機(jī)應(yīng)用程序直接訪問EnterpriseBean。當(dāng)客戶機(jī)應(yīng)用程序調(diào)用EnterpriseBean上的遠(yuǎn)程方法時(shí),容器首先攔截調(diào)用,以保持持續(xù)、事務(wù)和安全性都正確應(yīng)用于客戶機(jī)對Bean執(zhí)行的每一個(gè)操作。Bean開發(fā)人員可以將精力集中于封裝商業(yè)規(guī)則,而容器處理其他的一切。12/31/202254信息系統(tǒng)集成3.8基于組件的軟件開發(fā)開發(fā)EJB組件12/28/20223.8基于組件的軟件開發(fā)EJB組件的組成規(guī)范的EJB組件由Home接口、Remote接口、組件類和部署描述文件構(gòu)成。EJB組件的Home接口用于定義創(chuàng)建、查找和刪除組件對象實(shí)例的方法。以有狀態(tài)會話類型EJB組件CalcBonusEJB為例,其Home接口定義如下面代碼所示:12/31/202255信息系統(tǒng)集成3.8基于組件的軟件開發(fā)EJB組件的組成12/28/2023.8基于組件的軟件開發(fā)EJB組件的組成在上述定義中,EJB組件的Home接口繼承EJBHome接口,在該接口中包括兩個(gè)異構(gòu)類型的創(chuàng)建組件對象實(shí)例的create方法,兩個(gè)方法均返回該EJB組件的Remote接口對象。在Home接口中還定義了用于從EJB容器的組件實(shí)例池中刪除組件對象實(shí)例的remove方法。該方法對應(yīng)于EJB組件類中定義的ejbRemove方法。對于實(shí)體類型EJB組件,在組件的Home接口中還應(yīng)定義查找組件對象實(shí)例的方法,用于客戶端根據(jù)實(shí)體組件的主鍵值在EJB容器中查找指定的實(shí)體類型EJB組件。該方法的定義和實(shí)現(xiàn)過程將在第6講中詳細(xì)講解。另外,Home接口中定義的create方法和remove方法能夠拋出的RemoteException和CreateException類型異常。兩種類型的異常定義在java.rmi包中并且異常的參數(shù)和返回值類型均為合法的RMI-IIOP類型。由異常的返回值形式可以看出:EJB組件對象的Home接口是對JavaRMI-IIOP協(xié)議有效的接口,客戶端應(yīng)用可以基于RMI-IIOP協(xié)議訪問部署在EJB容器中的組件對象的Home接口。在Home接口中定義的方法除了能夠拋出上述系統(tǒng)異常外,EJB組件的設(shè)計(jì)人員可以定義用戶類型異常并Home接口中定義的方法拋出。12/31/202256信息系統(tǒng)集成3.8基于組件的軟件開發(fā)EJB組件的組成在3.8基于組件的軟件開發(fā)EJB組件的Remote接口用于定義客戶端應(yīng)用程序能夠調(diào)用的組件商務(wù)方法。與Java接口定義相似,在Remote接口中定義的商務(wù)方法只是一個(gè)框架而沒有具體的實(shí)現(xiàn)代碼。EJB組件設(shè)計(jì)人員根據(jù)Remote接口中定義的商務(wù)方法在組件類中為這些方法編寫實(shí)現(xiàn)代碼。有狀態(tài)會話類型EJB組件CalcBonusEJB的Remote接口定義如下:12/31/202257信息系統(tǒng)集成3.8基于組件的軟件開發(fā)EJB組件的Remote接口用于定3.8基于組件的軟件開發(fā)EJB組件的Remote接口繼承定義在javax.ejb包中的EJBObject接口。在Remote接口中定義了兩個(gè)名稱分別為calculateBonus和calculateTax的方法。兩個(gè)方法均拋出RemoteException類型異常。由Remote接口中定義的方法能夠拋出的異常類型可以看出:Remote接口同樣是對于JavaRMI-IIOP協(xié)議有效的遠(yuǎn)程接口。EJB組件類用于定義兩種類型方法的實(shí)現(xiàn)代碼:一種是EJB組件的生命期方法,另外一種是EJB組件的Remote接口中定義的商務(wù)方法。
12/31/202258信息系統(tǒng)集成3.8基于組件的軟件開發(fā)EJB組件的Rem3.8基于組件的軟件開發(fā)會話類型EJB組件對象的組件類實(shí)現(xiàn)SessionBean接口、實(shí)體類型EJB組件實(shí)現(xiàn)EntityBean接口、消息驅(qū)動類型EJB組件實(shí)現(xiàn)MessageDrivenBean和MessageListener接口。下面代碼為有狀態(tài)會話類型EJB組件CalcBonusEJB的組件類定義代碼:
12/31/202259信息系統(tǒng)集成3.8基于組件的軟件開發(fā)會話類型EJB組件對象的組件類實(shí)現(xiàn)3.8基于組件的軟件開發(fā)上述會話類型EJB組件對象CalcBonusEJB的組件類定義實(shí)現(xiàn)了SessionBean接口對象。就有狀態(tài)會話類型EJB組件而言,在組件類定義中除了實(shí)現(xiàn)組件的商務(wù)方法外,還需要實(shí)現(xiàn)SessionBean接口中定義的ejbCreate、ejbRemove、ejbActivate和ejbPassivate等組件生命期方法。會話類型EJB組件的生命期由EJB組件部署的EJB容器控制,因此在定義的方法中沒有任何代碼。如果定義一個(gè)組件管理持久性(BMP)實(shí)體類型的EJB組件,則需要為所有的組件生命期方法編寫生命期控制代碼。另外還需要明確的是:客戶端應(yīng)用程序調(diào)用部署在EJB服務(wù)器中EJB組件的方法,其實(shí)質(zhì)上不是直接調(diào)用組件類中定義的方法,而是通過EJB組件的Home接口和Remote接口在EJB容器中的映射由EJB容器采用代理方式調(diào)用EJB組件類中的商務(wù)方法或者生命期方法。12/31/202260信息系統(tǒng)集成3.8基于組件的軟件開發(fā)上述會話類型EJB組件對象Calc3.8基于組件的軟件開發(fā)部署描述文件是EJB組件的組裝者和部署者應(yīng)用的XML類型文檔,其主要作用是聲明EJB組件的構(gòu)成、部署過程中需要EJB容器提供的服務(wù)以及對于系統(tǒng)資源的需求等信息。在EJB組件的組裝和部署過程中,部署描述文件和EJB組件的Home接口、Remote接口以及組件類定義文件打包成為JAR壓縮文檔。下面的代碼為CalcBonusEJB組件對象部署描述文件的部分代碼:
12/31/202261信息系統(tǒng)集成3.8基于組件的軟件開發(fā)部署描述文件是EJB組件的組裝者和第三章應(yīng)用軟件集成體系結(jié)構(gòu)概述客戶機(jī)/服務(wù)器模式分布式計(jì)算軟件重用技術(shù)中間件技術(shù)J2EE應(yīng)用架構(gòu).NET應(yīng)用架構(gòu)基于組件的軟件開發(fā)12/31/202262信息系統(tǒng)集成第三章應(yīng)用軟件集成體系結(jié)構(gòu)概述12/28/20221信3.1概述軟件應(yīng)用架構(gòu)
20世紀(jì)60年代到70年代,軟件危機(jī)使軟件成本日益增長,開發(fā)速度難以控制,質(zhì)量無法保證,軟件的維護(hù)困難等。軟件工程軟件工程發(fā)展初期,設(shè)計(jì)的重點(diǎn)是數(shù)據(jù)結(jié)構(gòu)和算法的選擇上。隨著規(guī)模和復(fù)雜度的變化,人們開始認(rèn)識到軟件架構(gòu)的重要性。軟件架構(gòu)的定義將軟件系統(tǒng)劃分成多個(gè)模塊,明確各模塊之間的相互作用,組合起來實(shí)現(xiàn)系統(tǒng)的全部特征,就是系統(tǒng)的架構(gòu)。軟件架構(gòu)為軟件系統(tǒng)提供了一個(gè)結(jié)構(gòu)、行為和屬性的高級抽象,并由構(gòu)成系統(tǒng)的元素的描述及元素的相互作用、元素集成的模式,以及這些模式的約束組成。12/31/202263信息系統(tǒng)集成3.1概述軟件應(yīng)用架構(gòu)12/28/20222信息系統(tǒng)集成3.1概述軟件架構(gòu)的作用軟件架構(gòu)是系統(tǒng)環(huán)境中的一個(gè)高層概念,每個(gè)系統(tǒng)都有一個(gè)架構(gòu)。架構(gòu)是用于表達(dá)整個(gè)系統(tǒng)的結(jié)構(gòu)和行為的模型,表達(dá)系統(tǒng)如何滿足其環(huán)境上下文的要求,并表示主要的系統(tǒng)構(gòu)件、其交互和依賴關(guān)系,以及其操作所需滿足的約束。軟件架構(gòu)模型研究軟件架構(gòu)的首要問題是如何表示軟件架構(gòu),即如何對軟件架構(gòu)建模。根據(jù)建模角度(側(cè)重點(diǎn))不同,通常將軟件架構(gòu)的模型分為5種:結(jié)構(gòu)模型、框架模型、動態(tài)模型、過程模型和功能模型。最常用的是結(jié)構(gòu)模型和動態(tài)模型。12/31/202264信息系統(tǒng)集成3.1概述軟件架構(gòu)的作用12/28/20223信息系統(tǒng)集成3.1概述應(yīng)用軟件的計(jì)算模式應(yīng)用系統(tǒng)在某種計(jì)算問題的解決過程中,采用的對計(jì)算資源的組織、調(diào)度上的某種有效方法。計(jì)算資源是參與計(jì)算過程的所有資源:處理器、存儲器、通信線路、程序和數(shù)據(jù)等。從發(fā)展歷程看,應(yīng)用系統(tǒng)的計(jì)算模式主要包括集中式和分布式計(jì)算。20世紀(jì)80年代之前,人們深入思考的是如何充分利用計(jì)算資源。近年來,網(wǎng)絡(luò)技術(shù)的發(fā)展使得分布式計(jì)算技術(shù)成為核心技術(shù)。工業(yè)化分布式計(jì)算技術(shù)的發(fā)展已經(jīng)經(jīng)歷了兩代:第一代分布式計(jì)算技術(shù)是以支持信息共享為目標(biāo)的面向過程的客戶機(jī)/服務(wù)器技術(shù);第二代分布計(jì)算技術(shù)是以面向?qū)ο鬄橹饕卣鞯姆植际綄ο蠹夹g(shù)。當(dāng)前以Internet為平臺的Agent計(jì)算、網(wǎng)格計(jì)算等分布式計(jì)算技術(shù)逐步深入的影響未來分布式計(jì)算技術(shù)的發(fā)展。12/31/202265信息系統(tǒng)集成3.1概述應(yīng)用軟件的計(jì)算模式12/28/20224信息系統(tǒng)3.2客戶機(jī)/服務(wù)器模式兩層C/S模式C/S的核心特征是任務(wù)的分解,由不同的計(jì)算資源承擔(dān)任務(wù),通過協(xié)作完成任務(wù)。兩層C/S模式是最早使用的C/S模式??蛻舳瞬僮飨到y(tǒng)應(yīng)用業(yè)務(wù)邏輯用戶交互界面數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)服務(wù)器客戶機(jī)RequestResponse12/31/202266信息系統(tǒng)集成3.2客戶機(jī)/服務(wù)器模式兩層C/S模式客戶端操作系統(tǒng)應(yīng)用業(yè)3.2客戶機(jī)/服務(wù)器模式B/S結(jié)構(gòu)Brower/Server瀏覽器/服務(wù)器模式數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)服務(wù)數(shù)據(jù)庫訪問系統(tǒng)Web支撐系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)Web服務(wù)客戶操作系統(tǒng)瀏覽器客戶機(jī)HTTPCGITCP/IPIIOPActiveXRequestRequestHTTPTCP/IP12/31/202267信息系統(tǒng)集成3.2客戶機(jī)/服務(wù)器模式B/S結(jié)構(gòu)數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)網(wǎng)絡(luò)3.2客戶機(jī)/服務(wù)器模式多層C/S結(jié)構(gòu)B/S模式在構(gòu)造復(fù)雜應(yīng)用系統(tǒng)時(shí),利用CGI等技術(shù)開發(fā)部署很難提高系統(tǒng)運(yùn)行效率?,F(xiàn)有的Web服務(wù)器支撐系統(tǒng)很難對各類中間件進(jìn)行有效的管理和組織,需要專門針對中間件的支撐系統(tǒng)。數(shù)據(jù)操縱的安全性很難保障。應(yīng)用系統(tǒng)被劃分為:客戶層、表示層、業(yè)務(wù)邏輯層(應(yīng)用層)、數(shù)據(jù)管理層(數(shù)據(jù)層)。12/31/202268信息系統(tǒng)集成3.2客戶機(jī)/服務(wù)器模式多層C/S結(jié)構(gòu)12/28/20223.2客戶機(jī)/服務(wù)器模式多層C/S模式中,應(yīng)用系統(tǒng)被劃分為客戶層:一般PC,通過瀏覽器與Web服務(wù)器聯(lián)系,訪問Web服務(wù)器資源。表示層:Web服務(wù)器,接受用戶交互式操作,并將操作請求傳遞給應(yīng)用服務(wù)器。業(yè)務(wù)邏輯層:應(yīng)用服務(wù)支撐系統(tǒng),分布式對象管理容器,接受Web服務(wù)器的請求,執(zhí)行業(yè)務(wù)邏輯返回結(jié)果,與后臺數(shù)據(jù)庫綁定,一般將數(shù)據(jù)庫資源映射為數(shù)據(jù)對象。數(shù)據(jù)管理層:數(shù)據(jù)庫服務(wù)器。12/31/202269信息系統(tǒng)集成3.2客戶機(jī)/服務(wù)器模式多層C/S模式中,應(yīng)用系統(tǒng)被劃分為3.2客戶機(jī)/服務(wù)器模式多層C/S結(jié)構(gòu)的基本計(jì)算過程對多層C/S模式的支持規(guī)范主要有Sun的J2EE和微軟的.NET。數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)數(shù)據(jù)庫服務(wù)器應(yīng)用邏輯中間件管理容器網(wǎng)絡(luò)操作系統(tǒng)應(yīng)用服務(wù)器客戶操作系統(tǒng)瀏覽器客戶機(jī)請求Web支撐系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)Web服務(wù)器服務(wù)12/31/202270信息系統(tǒng)集成3.2客戶機(jī)/服務(wù)器模式多層C/S結(jié)構(gòu)的基本計(jì)算過程數(shù)據(jù)庫3.3分布式計(jì)算移動Agent20世紀(jì)90年代初由GeneralMagic公司在推出商業(yè)Telescript時(shí)提出的,主要思想在于:結(jié)合Agent技術(shù)和分布式計(jì)算技術(shù),將服務(wù)請求Agent動態(tài)移到服務(wù)器端執(zhí)行。使此Agent較少依賴網(wǎng)絡(luò)傳輸,而直接面對要訪問的服務(wù)器資源,降低了對網(wǎng)絡(luò)帶寬的依賴。移動Agent不需要統(tǒng)一調(diào)度,由用戶創(chuàng)建的Agent,用戶可自行創(chuàng)建多個(gè)Agent,同時(shí)在一個(gè)或多個(gè)節(jié)點(diǎn)上運(yùn)行,形成并行求解能力??勺孕袥Q定何時(shí)中斷任務(wù),并將自己轉(zhuǎn)移到另一臺機(jī)器上。具有自治性和智能路由的性能。12/31/202271信息系統(tǒng)集成3.3分布式計(jì)算移動Agent12/28/202210信息3.3分布式計(jì)算網(wǎng)格計(jì)算Grid稱為網(wǎng)格計(jì)算思想在于:將閑置在Internet各處的MIPS捆綁在一起加以利用,以便用累積的計(jì)算能力來完成超級計(jì)算機(jī)的任務(wù)。網(wǎng)格計(jì)算主要應(yīng)用在大批量的小任務(wù),如:聲視頻點(diǎn)播,具有突發(fā)的大量的資源需求,實(shí)時(shí)分布式儀表系統(tǒng)等。目前對網(wǎng)格的一般理解是指把整個(gè)互聯(lián)網(wǎng)或某個(gè)區(qū)域整合成統(tǒng)一的計(jì)算機(jī)系統(tǒng)。網(wǎng)格的根本特征不在于規(guī)模,而是資源的廣泛共享。12/31/202272信息系統(tǒng)集成3.3分布式計(jì)算網(wǎng)格計(jì)算12/28/202211信息系統(tǒng)集3.3分布式計(jì)算分布式對象技術(shù)分布式技術(shù)的應(yīng)用使得系統(tǒng)規(guī)模越來越大。網(wǎng)絡(luò)間的異構(gòu)問題必須解決。分布式系統(tǒng)的復(fù)雜性使得系統(tǒng)的可靠性降低。分布式軟件的開發(fā)和維護(hù)成本高昂。通過結(jié)合面向?qū)ο蠹夹g(shù),實(shí)現(xiàn)分布式軟件的可移植性、互操作性、可靠性和可重用性。屏蔽了不同系統(tǒng)間的差異和底層細(xì)節(jié),減小分布式系統(tǒng)開發(fā)難度,提高分布式軟件的性能。目前主流的有:COM/DCOM、Java、COBRA12/31/202273信息系統(tǒng)集成3.3分布式計(jì)算分布式對象技術(shù)12/28/202212信息3.3分布式計(jì)算分布式對象技術(shù)采用了面向?qū)ο蠹夹g(shù)中的封裝性和繼承性兩大特點(diǎn)。所操作的對象通常稱之為組件??蛻艨蛻魋tub線路協(xié)議客戶端服務(wù)器服務(wù)器stub線路協(xié)議服務(wù)器端網(wǎng)絡(luò)環(huán)境高層中層底層12/31/202274信息系統(tǒng)集成3.3分布式計(jì)算分布式對象技術(shù)客戶客戶stub線路協(xié)議客戶3.4軟件重用技術(shù)軟件重用概念指在兩次或多次不同的軟件開發(fā)過程中重復(fù)使用相同或相近軟件元素的過程。軟件元素包括:程序代碼、測試用例、設(shè)計(jì)文檔、設(shè)計(jì)過程、需求分析文檔或領(lǐng)域知識。將這種可重用的元素成為軟構(gòu)件,可重用的軟件元素越大,重用的粒度越大?;跇?gòu)件的軟件開發(fā)通常包括構(gòu)件獲取、構(gòu)件分類和檢索、構(gòu)件評估、適應(yīng)性修改,以及將現(xiàn)有的構(gòu)件在新的語境下組裝成新的系統(tǒng)的過程。軟件重用中的構(gòu)件是指語義完整、語法正確和有可重用價(jià)值的單位軟件,是軟件重用過程中可以明確標(biāo)識的元素。12/31/202275信息系統(tǒng)集成3.4軟件重用技術(shù)軟件重用概念12/28/202214信息3.4軟件重用技術(shù)面向重用的軟件開發(fā)需考慮“使用重用的開發(fā)(Developwithreuse)”和“用于重用的開發(fā)(Developforreuse)”。前者使用已有的構(gòu)件進(jìn)行軟件開發(fā);后者的目的是開發(fā)可重用的軟件。用戶需根據(jù)應(yīng)用領(lǐng)域的特點(diǎn)及相似性確定構(gòu)件的可重用性。一旦確定了重用價(jià)值,就可以將構(gòu)件的設(shè)計(jì)通用化,然后將其加入到構(gòu)件庫。整個(gè)軟件的開發(fā)過程是構(gòu)件的不斷積累、不斷完善的漸進(jìn)過程。在開發(fā)的過程中對構(gòu)件修改、或替代原有構(gòu)件。12/31/202276信息系統(tǒng)集成3.4軟件重用技術(shù)面向重用的軟件開發(fā)12/28/202213.4軟件重用技術(shù)面向重用的軟件開發(fā)以面向?qū)ο蠓椒榛A(chǔ),增強(qiáng)軟件的重用性。開發(fā)過程中可重用的構(gòu)件,可以使面向?qū)ο蠓椒ㄖ械膶ο蠡驅(qū)ο蟮募?,也可以使非面向?qū)ο蠓椒ㄖ械目芍赜脴?gòu)件。領(lǐng)域分析軟件開發(fā)理解構(gòu)件功能檢索所需構(gòu)件確認(rèn)構(gòu)件的重要性可重用構(gòu)件庫領(lǐng)域知識用戶需求目標(biāo)軟件12/31/202277信息系統(tǒng)集成3.4軟件重用技術(shù)面向重用的軟件開發(fā)領(lǐng)域分析軟件開發(fā)理解構(gòu)3.5中間件技術(shù)中間件概念中間件(Middleware)是位于硬件、操作系統(tǒng)等平臺和應(yīng)用之間的通用服務(wù)。中間件(系統(tǒng)服務(wù))應(yīng)用程序1應(yīng)用程序2應(yīng)用程序3操作系統(tǒng)/硬件平臺1操作系統(tǒng)/硬件平臺212/31/202278信息系統(tǒng)集成3.5中間件技術(shù)中間件概念中間件(系統(tǒng)服務(wù))應(yīng)用程序1應(yīng)用3.5中間件技術(shù)中間件的目的實(shí)現(xiàn)應(yīng)用與平臺的無關(guān)性,滿足大量應(yīng)用的需要。中間件的作用屏蔽操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議的差異,為應(yīng)用程序提供多種通信機(jī)制滿足不同領(lǐng)域的應(yīng)用需要。中間件服務(wù)所遵循的原則離實(shí)際還有很大的距離。多數(shù)中間件使用專有的協(xié)議,使應(yīng)用只能構(gòu)件在單一的廠家的產(chǎn)品之上。有些中間件只提供某些平臺的實(shí)現(xiàn),限制了應(yīng)用在異構(gòu)系統(tǒng)之間的移植。12/31/202279信息系統(tǒng)集成3.5中間件技術(shù)中間件的目的12/28/202218信息系3.5中間件技術(shù)中間件的分類數(shù)據(jù)庫訪問中間件遠(yuǎn)程過程調(diào)用中間件面向消息中間件事務(wù)中間件分布式對象中間件12/31/202280信息系統(tǒng)集成3.5中間件技術(shù)中間件的分類12/28/202219信息系3.5中間件技術(shù)數(shù)據(jù)庫訪問中間件通過一個(gè)抽象層訪問數(shù)據(jù)庫,從而允許使用相同或相似的代碼訪問不同的數(shù)據(jù)庫資源。典型的如:Windows下的ODBC和Java中的JDBC遠(yuǎn)程過程調(diào)用中間件一個(gè)應(yīng)用程序使用RPC來“遠(yuǎn)程”執(zhí)行一個(gè)位于不同地址空間內(nèi)的過程,從效果上看和執(zhí)行本地調(diào)用相同。一個(gè)RPC應(yīng)用分為兩個(gè)部分:服務(wù)器和客戶服務(wù)器提供一個(gè)或多個(gè)遠(yuǎn)程過程;客戶向服務(wù)器發(fā)出遠(yuǎn)程調(diào)用。客戶和服務(wù)器之間的網(wǎng)絡(luò)通信和數(shù)據(jù)轉(zhuǎn)換通過代理程序(stub與skeleton)完成,從而屏蔽了不同操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議。12/31/202281信息系統(tǒng)集成3.5中間件技術(shù)數(shù)據(jù)庫訪問中間件12/28/202220信3.5中間件技術(shù)面向消息中間件利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺無關(guān)的數(shù)據(jù)交流,并可基于數(shù)據(jù)通信進(jìn)行分布系統(tǒng)的集成。典型的產(chǎn)品:IBM的MQSeries使用MOM,通信雙方的程序可以在不同的時(shí)間運(yùn)行,程序不在網(wǎng)絡(luò)上直接通話。消息放入適當(dāng)?shù)年?duì)列,等待目標(biāo)程序運(yùn)行。避免了網(wǎng)絡(luò)通信的復(fù)雜性。消息隊(duì)列和網(wǎng)絡(luò)通信的維護(hù)工作由MOM完成。12/31/202282信息系統(tǒng)集成3.5中間件技術(shù)面向消息中間件12/28/202221信息3.5中間件技術(shù)分布式對象中間件采用分布式對象技術(shù),結(jié)合面向?qū)ο蠹夹g(shù)實(shí)現(xiàn)。對象請求代理(ObjectRequestBroker,ORB)模型提供了一個(gè)通信框架,在異構(gòu)的分布計(jì)算環(huán)境中透明地傳遞對象請求。ORB是一種對象總線,定義了異構(gòu)環(huán)境下對象透明的發(fā)送請求和接受響應(yīng)的基本機(jī)制,是建立對象之間客戶/服務(wù)器關(guān)系的中間件。ORB使對象可以透明地向其他對象發(fā)出請求或接受其他對象的響應(yīng),這些對象可在本地也可遠(yuǎn)程ORB攔截請求調(diào)用,并負(fù)責(zé)找到可以實(shí)現(xiàn)請求的對象、傳送參數(shù)、調(diào)用相應(yīng)的方法、返回結(jié)果等??蛻舨恍枰婪?wù)器的信息。12/31/202283信息系統(tǒng)集成3.5中間件技術(shù)分布式對象中間件12/28/202222信3.5中間件技術(shù)事務(wù)中間件(TransactionProcessingMonitor)最早出現(xiàn)在大型機(jī)上,為其提供大規(guī)模事務(wù)處理的可靠運(yùn)行環(huán)境。事務(wù)處理監(jiān)控程序位于客戶和服務(wù)器之間,完成事務(wù)管理與協(xié)調(diào)、負(fù)載平衡、失效恢復(fù)等任務(wù)。隨著對象技術(shù)和事務(wù)技術(shù)的結(jié)合,出現(xiàn)了對象事務(wù)監(jiān)控器,可保證分布式對象的事務(wù)完整性。事務(wù)中間件可以滿足現(xiàn)代業(yè)務(wù)應(yīng)用系統(tǒng)的12條基本原則:完整性、安全性、可伸縮性、可用性、可管理性、互操作性、適應(yīng)性、易開發(fā)性、經(jīng)濟(jì)性、快速的響應(yīng)時(shí)間、數(shù)據(jù)的可分布性、易用性。采用商業(yè)事務(wù)中間件的優(yōu)勢在于縮短產(chǎn)品投放市場所需的時(shí)間、節(jié)省應(yīng)用開發(fā)費(fèi)用、減少系統(tǒng)運(yùn)行開銷、簡化應(yīng)用集成、降低軟件的維護(hù)費(fèi)用等。12/31/202284信息系統(tǒng)集成3.5中間件技術(shù)事務(wù)中間件(TransactionPro3.5中間件技術(shù)構(gòu)件技術(shù)與中間件中間件作為存在于系統(tǒng)軟件與應(yīng)用之間的特殊層次,對典型的應(yīng)用模式進(jìn)行抽象,從而使應(yīng)用軟件開阿人員可以將精力更多地放在業(yè)務(wù)邏輯上,并按照標(biāo)準(zhǔn)形式進(jìn)行開發(fā),從而使軟件架構(gòu)的應(yīng)用成為可能。構(gòu)件的使用對架構(gòu)技術(shù)(即環(huán)境、基礎(chǔ)設(shè)施、計(jì)算平臺等)有極大的依賴性。只有在適當(dāng)?shù)募軜?gòu)中,軟件才有可能被抽象成為構(gòu)件。中間件,從本質(zhì)上說是對分布式應(yīng)用的抽象,拋開了與應(yīng)用相關(guān)的業(yè)務(wù)邏輯細(xì)節(jié),保留了典型的分布交互模式的關(guān)鍵特征。經(jīng)過抽象,對復(fù)雜的分布式系統(tǒng)進(jìn)行提煉和必要的封裝隔離后,以統(tǒng)一的形式呈現(xiàn)給應(yīng)用。中間件與架構(gòu)是從兩種不同的角度看待軟件的中間層次,可以將中間件理解為架構(gòu)或構(gòu)建模型的具體實(shí)現(xiàn),是構(gòu)件存在的基礎(chǔ),中間件促進(jìn)了軟件的構(gòu)件化。中間件作為分布式計(jì)算平臺,涉及各種不同的資源,包括各種操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡(luò)協(xié)議甚至語言,其目標(biāo)是在分布的環(huán)境中統(tǒng)一使用這些資源。12/31/202285信息系統(tǒng)集成3.5中間件技術(shù)構(gòu)件技術(shù)與中間件12/28/202224信3.5中間件技術(shù)應(yīng)用服務(wù)器應(yīng)用服務(wù)器(ApplicationServer)是企業(yè)極應(yīng)用在Internet上迅速發(fā)展的條件下,出現(xiàn)的一種中間件技術(shù)。它可以處理客戶和數(shù)據(jù)之間的交互操作,并提供一組前面提到的中間件服務(wù),包括事務(wù)管理、ORB、MOM、系統(tǒng)安全、負(fù)載均衡及資源管理等。應(yīng)用服務(wù)器還提供了一個(gè)稱為容器的管理環(huán)境,可以對應(yīng)用中的組件進(jìn)行配置和管理。應(yīng)用服務(wù)器在技術(shù)上并沒有任何標(biāo)準(zhǔn)和規(guī)范是為某個(gè)商業(yè)性公司所獨(dú)占,全部都基于Internet上的開放標(biāo)準(zhǔn),因而具有極強(qiáng)的生命力。使用應(yīng)用服務(wù)器可以幫助企業(yè)構(gòu)建一個(gè)基于Internet的電子商務(wù)系統(tǒng),而且擁有很高的穩(wěn)定性、可擴(kuò)展性和安全性。應(yīng)用服務(wù)器向企業(yè)級用戶提供了設(shè)計(jì)、開發(fā)、部署、運(yùn)行和管理Internet電子商務(wù)應(yīng)用系統(tǒng)的平臺,適用于Internet上的電子商務(wù)應(yīng)用。12/31/202286信息系統(tǒng)集成3.5中間件技術(shù)應(yīng)用服務(wù)器12/28/202225信息系統(tǒng)3.5中間件技術(shù)應(yīng)用服務(wù)器的優(yōu)點(diǎn)在于:三層架構(gòu)體系:適合Internet環(huán)境,使系統(tǒng)具有很強(qiáng)的可擴(kuò)展性和可管理性。分布式環(huán)境:保證系統(tǒng)的穩(wěn)定性,同時(shí)擁有較高的性能。面向?qū)ο蟮哪K化構(gòu)件設(shè)計(jì):提高開發(fā)速度,降低開發(fā)成本。采用Java技術(shù):完全跨平臺,適合Internet需要,并獲得大多數(shù)廠商的支持,可以保護(hù)用戶的投資。應(yīng)用服務(wù)器采用的三層(多層)架構(gòu),將應(yīng)用邏輯單獨(dú)作為一層,客戶可以根據(jù)不同的應(yīng)用邏輯專心設(shè)計(jì)該層。需要擴(kuò)展業(yè)務(wù)時(shí),只需專注于改進(jìn)中間層的設(shè)計(jì),使原系統(tǒng)能夠平滑方便地升級。
12/31/202287信息系統(tǒng)集成3.5中間件技術(shù)應(yīng)用服務(wù)器的優(yōu)點(diǎn)在于:12/28/20223.6J2EE應(yīng)用架構(gòu)J2EE(Java2PlatformEnterpriseEdition)是Sun公司領(lǐng)導(dǎo)、各廠商共同制定并得到廣泛認(rèn)可的工業(yè)標(biāo)準(zhǔn)。J2EE將開發(fā)工作分為兩類:業(yè)務(wù)邏輯開發(fā)和表示邏輯開發(fā),其余的系統(tǒng)資源則由應(yīng)用服務(wù)器自動處理,不必為中間層的資源和運(yùn)行管理進(jìn)行編碼。將更多的開發(fā)精力集中在應(yīng)用程序的業(yè)務(wù)邏輯和表示邏輯上,從而縮短企業(yè)的應(yīng)用開發(fā)周期、有效保護(hù)企業(yè)的投資。12/31/202288信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE(Java2Platfo3.6J2EE應(yīng)用架構(gòu)J2ME(Java2PlatformMicroEdition)
Java2平臺簡化版,適合嵌入式系統(tǒng)開發(fā)。J2SE(Java2PlatformStandardEdition)
Java2平臺標(biāo)準(zhǔn)版,是為JavaApplet和應(yīng)用程序提供的Java標(biāo)準(zhǔn)運(yùn)行環(huán)境支持的平臺,包括輸入/輸出和圖形用戶界面等。J2EE(Java2PlatformEnterpriseEdition)
Java2平臺企業(yè)版,將Java企業(yè)級API捆綁在一起的成為Java語言進(jìn)行服務(wù)器端的企業(yè)應(yīng)用部署的開發(fā)平臺。J2EE運(yùn)行在J2SE之上。12/31/202289信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2ME(Java2Platfo3.6J2EE應(yīng)用架構(gòu)J2EE技術(shù)規(guī)范規(guī)范簡稱JavaMessageService:Java消息服務(wù),允許分布對象之間的異步通信JMSJavaMail:Java郵件,滿足平臺無關(guān),協(xié)議無關(guān)方式的郵件發(fā)送JavaMailJavaInterfaceDefinitionLanguage:Java接口定義語言,是實(shí)現(xiàn)CORBA標(biāo)準(zhǔn)的模型,允許與其他語言的集成和CORBA標(biāo)準(zhǔn)服務(wù)的分布處理JavaIDLRemoteMethodInvocation—InternetInter-ORBProtocol:遠(yuǎn)程方法調(diào)用—InternetInter-ORB協(xié)議,是RMI的可移植性擴(kuò)展,是基于CORBA標(biāo)準(zhǔn)協(xié)議,允許進(jìn)程間相互通信,實(shí)現(xiàn)CORBA集成RMI-IIOPJavaNamingandDirectoryInterface:Java命名和目錄接口,是透明查找分布對象和服務(wù)的機(jī)制,用來定位組件和資源在網(wǎng)絡(luò)中的位置JNDIJavaService:Java感知對象,可以通過HTTP的請求/響應(yīng)與Web客戶的交互,通常用來實(shí)現(xiàn)表示邏輯Servlet12/31/202290信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE技術(shù)規(guī)范規(guī)范簡稱JavaM3.6J2EE應(yīng)用架構(gòu)J2EE技術(shù)規(guī)范(續(xù)表)規(guī)范簡稱JavaServerPage:Java服務(wù)頁面,主要用于動態(tài)頁面生成,實(shí)際上也是Servlet,由HTML或XML和部分Java代碼交織編寫,也可實(shí)現(xiàn)對業(yè)務(wù)層的直接訪問JSPJavaAPIforXMLParsing:解析XML的JavaAPIJAXPEnterpriseJavaBeans:企業(yè)級JavaBean,用于封裝業(yè)務(wù)邏輯的軟件組件,通過EJB容器來管理EJB的生命周期、安全和事務(wù)EJBJavaDatabaseConnectivityExtension:Java數(shù)據(jù)庫連接擴(kuò)展,是Java訪問關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)連接橋。JDBC12/31/202291信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE技術(shù)規(guī)范(續(xù)表)規(guī)范簡稱Ja3.6J2EE應(yīng)用架構(gòu)J2EE多層架構(gòu)J2EE采用多層應(yīng)用架構(gòu),整個(gè)系統(tǒng)分為客戶層、J2EE應(yīng)用服務(wù)器和企業(yè)信息系統(tǒng)層。大部分J2EE應(yīng)用都劃分成三層或四層,復(fù)雜的系統(tǒng)可能會有更多的層次。這樣每個(gè)層次都有明確的職責(zé),系統(tǒng)結(jié)構(gòu)十分清晰。應(yīng)用客戶/瀏覽器客戶層JSP/ServletWeb層EJB業(yè)務(wù)層數(shù)據(jù)庫EIS層J2EE服務(wù)器12/31/202292信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE多層架構(gòu)應(yīng)用客戶/客戶層JS3.6J2EE應(yīng)用架構(gòu)J2EE多層架構(gòu)J2EE的多層次分布式應(yīng)用模型是根據(jù)功能把應(yīng)用邏輯分成多個(gè)層次,每個(gè)層次支持相應(yīng)的服務(wù)器和組件,組件在分布式服務(wù)器的組建容器中運(yùn)行。在企業(yè)開發(fā)邏輯上將系統(tǒng)劃分為五層:客戶層、Web層(表示層)、業(yè)務(wù)層、集成層和資源層。12/31/202293信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE多層架構(gòu)12/28/20223.6J2EE應(yīng)用架構(gòu)J2EE多層應(yīng)用體系結(jié)構(gòu)瀏覽器特制客戶端容器容器容器ServletJSP會話Bean實(shí)體Bean消息驅(qū)動BeanJDBC公用適配器專用適配器數(shù)據(jù)庫其他應(yīng)用系統(tǒng)12/31/202294信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE多層應(yīng)用體系結(jié)構(gòu)瀏特容器容器3.6J2EE應(yīng)用架構(gòu)J2EE客戶層系統(tǒng)的客戶端,在J2EE體系中的客戶端可以是瀏覽器,也可以是具有特殊要求的定制客戶端。采用一般瀏覽器的是B/S結(jié)構(gòu)中所提倡的瘦客戶端;采用JavaApplet一般屬于胖客戶端,客戶端程序具有部分業(yè)務(wù)邏輯描述,并提供具有Java風(fēng)格的特制用戶交互界面??蛻舳伺c表示層之間通過HTTP/HTTPS即可交互,承載的語言一般是HTML或XML。對使用胖客戶端的情況,采用的交互手段可以多種多樣。12/31/202295信息系統(tǒng)集成3.6J2EE應(yīng)用架構(gòu)J2EE客戶層12/28/202233.6J2EE應(yīng)用架構(gòu)表示層:提供交互界面,接受用戶的輸入,將用戶的操作請求傳遞給應(yīng)用層,等待應(yīng)用層處理結(jié)果處理結(jié)果,并將結(jié)果返回給用戶。在用戶和應(yīng)用邏輯之間起到中介作用。表示層可以承擔(dān)幾乎全部邏輯,但是基于對系統(tǒng)的可擴(kuò)展性、可維護(hù)性和負(fù)載均衡等問題的考慮,在構(gòu)造大型應(yīng)用中,Web服務(wù)器(表示層)盡量少一些業(yè)務(wù)邏輯的處理,而將業(yè)務(wù)邏輯交給應(yīng)用層。表示層與應(yīng)用層之間的通信主要借助JMS和RMI進(jìn)行。12/31/202296信息系統(tǒng)集成3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中國鮑魚高湯粉市場調(diào)查研究報(bào)告
- 課程設(shè)計(jì)預(yù)期收獲
- 生物免疫調(diào)節(jié)課程設(shè)計(jì)
- 2024至2030年中國素腸香料數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024至2030年中國混凝土噴射機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 人因工程洗漱臺課程設(shè)計(jì)
- 2024年竹鞭手挽項(xiàng)目可行性研究報(bào)告
- 2024年窗式空調(diào)用電機(jī)項(xiàng)目可行性研究報(bào)告
- 2024年丁草胺項(xiàng)目可行性研究報(bào)告
- 中國高端女裝行業(yè)競爭動態(tài)與經(jīng)營模式分析研究報(bào)告(2024-2030版)
- 國家執(zhí)業(yè)醫(yī)師資格考試題庫(針灸學(xué))
- 茅臺紅酒推銷文案策劃案例
- 期中達(dá)標(biāo)測試卷(試題)-2024-2025學(xué)年統(tǒng)編版(2024)語文一年級上冊
- 2024-2025學(xué)年小學(xué)科學(xué)四年級下冊青島版(六三制2024)教學(xué)設(shè)計(jì)合集
- 2024年地質(zhì)礦產(chǎn)勘測行業(yè)技能鑒定考試-地質(zhì)錄井技能考試近5年真題集錦(頻考類試題)帶答案
- 第四章第1節(jié) 陸地與海洋第1課時(shí)教學(xué)設(shè)計(jì)-2024-2025學(xué)年商務(wù)星球版七年級上冊地理
- 社保知識競賽考試題及答案
- 九上道德與法治期中復(fù)習(xí)提綱(知識梳理)(全冊)
- 1-4單元期中提升卷(試題)-2024-2025學(xué)年五年級上冊數(shù)學(xué)人教版
- 生物化學(xué)第二章核酸的結(jié)構(gòu)和功能
- 【仁愛】七上地理知識點(diǎn)總結(jié)
評論
0/150
提交評論