




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三章應用軟件集成體系結構概述客戶機/服務器模式分布式計算軟件重用技術中間件技術J2EE應用架構.NET應用架構基于組件的軟件開發(fā)6/30/20231信息系統(tǒng)集成3.1概述軟件應用架構
20世紀60年代到70年代,軟件危機使軟件成本日益增長,開發(fā)速度難以控制,質量無法保證,軟件的維護困難等。軟件工程
軟件工程發(fā)展初期,設計的重點是數據結構和算法的選擇上。隨著規(guī)模和復雜度的變化,人們開始認識到軟件架構的重要性。軟件架構的定義將軟件系統(tǒng)劃分成多個模塊,明確各模塊之間的相互作用,組合起來實現系統(tǒng)的全部特征,就是系統(tǒng)的架構。軟件架構為軟件系統(tǒng)提供了一個結構、行為和屬性的高級抽象,并由構成系統(tǒng)的元素的描述及元素的相互作用、元素集成的模式,以及這些模式的約束組成。6/30/20232信息系統(tǒng)集成3.1概述軟件架構的作用軟件架構是系統(tǒng)環(huán)境中的一個高層概念,每個系統(tǒng)都有一個架構。架構是用于表達整個系統(tǒng)的結構和行為的模型,表達系統(tǒng)如何滿足其環(huán)境上下文的要求,并表示主要的系統(tǒng)構件、其交互和依賴關系,以及其操作所需滿足的約束。軟件架構模型研究軟件架構的首要問題是如何表示軟件架構,即如何對軟件架構建模。根據建模角度(側重點)不同,通常將軟件架構的模型分為5種:結構模型、框架模型、動態(tài)模型、過程模型和功能模型。最常用的是結構模型和動態(tài)模型。6/30/20233信息系統(tǒng)集成3.1概述應用軟件的計算模式應用系統(tǒng)在某種計算問題的解決過程中,采用的對計算資源的組織、調度上的某種有效方法。計算資源是參與計算過程的所有資源:處理器、存儲器、通信線路、程序和數據等。從發(fā)展歷程看,應用系統(tǒng)的計算模式主要包括集中式和分布式計算。20世紀80年代之前,人們深入思考的是如何充分利用計算資源。近年來,網絡技術的發(fā)展使得分布式計算技術成為核心技術。工業(yè)化分布式計算技術的發(fā)展已經經歷了兩代:第一代分布式計算技術是以支持信息共享為目標的面向過程的客戶機/服務器技術;第二代分布計算技術是以面向對象為主要特征的分布式對象技術。當前以Internet為平臺的Agent計算、網格計算等分布式計算技術逐步深入的影響未來分布式計算技術的發(fā)展。6/30/20234信息系統(tǒng)集成3.2客戶機/服務器模式兩層C/S模式C/S的核心特征是任務的分解,由不同的計算資源承擔任務,通過協(xié)作完成任務。兩層C/S模式是最早使用的C/S模式??蛻舳瞬僮飨到y(tǒng)應用業(yè)務邏輯用戶交互界面數據庫數據庫管理系統(tǒng)網絡操作系統(tǒng)服務器客戶機RequestResponse6/30/20235信息系統(tǒng)集成3.2客戶機/服務器模式B/S結構Brower/Server瀏覽器/服務器模式數據庫數據庫管理系統(tǒng)網絡操作系統(tǒng)服務數據庫訪問系統(tǒng)Web支撐系統(tǒng)網絡操作系統(tǒng)Web服務客戶操作系統(tǒng)瀏覽器客戶機HTTPCGITCP/IPIIOPActiveXRequestRequestHTTPTCP/IP6/30/20236信息系統(tǒng)集成3.2客戶機/服務器模式多層C/S結構B/S模式在構造復雜應用系統(tǒng)時,利用CGI等技術開發(fā)部署很難提高系統(tǒng)運行效率?,F有的Web服務器支撐系統(tǒng)很難對各類中間件進行有效的管理和組織,需要專門針對中間件的支撐系統(tǒng)。數據操縱的安全性很難保障。應用系統(tǒng)被劃分為:客戶層、表示層、業(yè)務邏輯層(應用層)、數據管理層(數據層)。6/30/20237信息系統(tǒng)集成3.2客戶機/服務器模式多層C/S模式中,應用系統(tǒng)被劃分為客戶層:一般PC,通過瀏覽器與Web服務器聯系,訪問Web服務器資源。表示層:Web服務器,接受用戶交互式操作,并將操作請求傳遞給應用服務器。業(yè)務邏輯層:應用服務支撐系統(tǒng),分布式對象管理容器,接受Web服務器的請求,執(zhí)行業(yè)務邏輯返回結果,與后臺數據庫綁定,一般將數據庫資源映射為數據對象。數據管理層:數據庫服務器。6/30/20238信息系統(tǒng)集成3.2客戶機/服務器模式多層C/S結構的基本計算過程對多層C/S模式的支持規(guī)范主要有Sun的J2EE和微軟的.NET。數據庫數據庫管理系統(tǒng)網絡操作系統(tǒng)數據庫服務器應用邏輯中間件管理容器網絡操作系統(tǒng)應用服務器客戶操作系統(tǒng)瀏覽器客戶機請求Web支撐系統(tǒng)網絡操作系統(tǒng)Web服務器服務6/30/20239信息系統(tǒng)集成3.3分布式計算移動Agent20世紀90年代初由GeneralMagic公司在推出商業(yè)Telescript時提出的,主要思想在于:結合Agent技術和分布式計算技術,將服務請求Agent動態(tài)移到服務器端執(zhí)行。使此Agent較少依賴網絡傳輸,而直接面對要訪問的服務器資源,降低了對網絡帶寬的依賴。移動Agent不需要統(tǒng)一調度,由用戶創(chuàng)建的Agent,用戶可自行創(chuàng)建多個Agent,同時在一個或多個節(jié)點上運行,形成并行求解能力。可自行決定何時中斷任務,并將自己轉移到另一臺機器上。具有自治性和智能路由的性能。6/30/202310信息系統(tǒng)集成3.3分布式計算網格計算Grid稱為網格計算思想在于:將閑置在Internet各處的MIPS捆綁在一起加以利用,以便用累積的計算能力來完成超級計算機的任務。網格計算主要應用在大批量的小任務,如:聲視頻點播,具有突發(fā)的大量的資源需求,實時分布式儀表系統(tǒng)等。目前對網格的一般理解是指把整個互聯網或某個區(qū)域整合成統(tǒng)一的計算機系統(tǒng)。網格的根本特征不在于規(guī)模,而是資源的廣泛共享。6/30/202311信息系統(tǒng)集成3.3分布式計算分布式對象技術分布式技術的應用使得系統(tǒng)規(guī)模越來越大。網絡間的異構問題必須解決。分布式系統(tǒng)的復雜性使得系統(tǒng)的可靠性降低。分布式軟件的開發(fā)和維護成本高昂。通過結合面向對象技術,實現分布式軟件的可移植性、互操作性、可靠性和可重用性。屏蔽了不同系統(tǒng)間的差異和底層細節(jié),減小分布式系統(tǒng)開發(fā)難度,提高分布式軟件的性能。目前主流的有:COM/DCOM、Java、COBRA6/30/202312信息系統(tǒng)集成3.3分布式計算分布式對象技術采用了面向對象技術中的封裝性和繼承性兩大特點。所操作的對象通常稱之為組件??蛻艨蛻魋tub線路協(xié)議客戶端服務器服務器stub線路協(xié)議服務器端網絡環(huán)境高層中層底層6/30/202313信息系統(tǒng)集成3.4軟件重用技術軟件重用概念指在兩次或多次不同的軟件開發(fā)過程中重復使用相同或相近軟件元素的過程。軟件元素包括:程序代碼、測試用例、設計文檔、設計過程、需求分析文檔或領域知識。將這種可重用的元素成為軟構件,可重用的軟件元素越大,重用的粒度越大。基于構件的軟件開發(fā)通常包括構件獲取、構件分類和檢索、構件評估、適應性修改,以及將現有的構件在新的語境下組裝成新的系統(tǒng)的過程。軟件重用中的構件是指語義完整、語法正確和有可重用價值的單位軟件,是軟件重用過程中可以明確標識的元素。6/30/202314信息系統(tǒng)集成3.4軟件重用技術面向重用的軟件開發(fā)需考慮“使用重用的開發(fā)(Developwithreuse)”和“用于重用的開發(fā)(Developforreuse)”。前者使用已有的構件進行軟件開發(fā);后者的目的是開發(fā)可重用的軟件。用戶需根據應用領域的特點及相似性確定構件的可重用性。一旦確定了重用價值,就可以將構件的設計通用化,然后將其加入到構件庫。整個軟件的開發(fā)過程是構件的不斷積累、不斷完善的漸進過程。在開發(fā)的過程中對構件修改、或替代原有構件。6/30/202315信息系統(tǒng)集成3.4軟件重用技術面向重用的軟件開發(fā)以面向對象方法為基礎,增強軟件的重用性。開發(fā)過程中可重用的構件,可以使面向對象方法中的對象或對象的集合,也可以使非面向對象方法中的可重用構件。領域分析軟件開發(fā)理解構件功能檢索所需構件確認構件的重要性可重用構件庫領域知識用戶需求目標軟件6/30/202316信息系統(tǒng)集成3.5中間件技術中間件概念中間件(Middleware)是位于硬件、操作系統(tǒng)等平臺和應用之間的通用服務。中間件(系統(tǒng)服務)應用程序1應用程序2應用程序3操作系統(tǒng)/硬件平臺1操作系統(tǒng)/硬件平臺26/30/202317信息系統(tǒng)集成3.5中間件技術中間件的目的實現應用與平臺的無關性,滿足大量應用的需要。中間件的作用屏蔽操作系統(tǒng)和網絡協(xié)議的差異,為應用程序提供多種通信機制滿足不同領域的應用需要。中間件服務所遵循的原則離實際還有很大的距離。多數中間件使用專有的協(xié)議,使應用只能構件在單一的廠家的產品之上。有些中間件只提供某些平臺的實現,限制了應用在異構系統(tǒng)之間的移植。6/30/202318信息系統(tǒng)集成3.5中間件技術中間件的分類數據庫訪問中間件遠程過程調用中間件面向消息中間件事務中間件分布式對象中間件6/30/202319信息系統(tǒng)集成3.5中間件技術數據庫訪問中間件通過一個抽象層訪問數據庫,從而允許使用相同或相似的代碼訪問不同的數據庫資源。典型的如:Windows下的ODBC和Java中的JDBC遠程過程調用中間件一個應用程序使用RPC來“遠程”執(zhí)行一個位于不同地址空間內的過程,從效果上看和執(zhí)行本地調用相同。一個RPC應用分為兩個部分:服務器和客戶服務器提供一個或多個遠程過程;客戶向服務器發(fā)出遠程調用??蛻艉头掌髦g的網絡通信和數據轉換通過代理程序(stub與skeleton)完成,從而屏蔽了不同操作系統(tǒng)和網絡協(xié)議。6/30/202320信息系統(tǒng)集成3.5中間件技術面向消息中間件利用高效可靠的消息傳遞機制進行平臺無關的數據交流,并可基于數據通信進行分布系統(tǒng)的集成。典型的產品:IBM的MQSeries使用MOM,通信雙方的程序可以在不同的時間運行,程序不在網絡上直接通話。消息放入適當的隊列,等待目標程序運行。避免了網絡通信的復雜性。消息隊列和網絡通信的維護工作由MOM完成。6/30/202321信息系統(tǒng)集成3.5中間件技術分布式對象中間件采用分布式對象技術,結合面向對象技術實現。對象請求代理(ObjectRequestBroker,ORB)模型提供了一個通信框架,在異構的分布計算環(huán)境中透明地傳遞對象請求。ORB是一種對象總線,定義了異構環(huán)境下對象透明的發(fā)送請求和接受響應的基本機制,是建立對象之間客戶/服務器關系的中間件。ORB使對象可以透明地向其他對象發(fā)出請求或接受其他對象的響應,這些對象可在本地也可遠程ORB攔截請求調用,并負責找到可以實現請求的對象、傳送參數、調用相應的方法、返回結果等??蛻舨恍枰婪掌鞯男畔ⅰ?/30/202322信息系統(tǒng)集成3.5中間件技術事務中間件(TransactionProcessingMonitor)最早出現在大型機上,為其提供大規(guī)模事務處理的可靠運行環(huán)境。事務處理監(jiān)控程序位于客戶和服務器之間,完成事務管理與協(xié)調、負載平衡、失效恢復等任務。隨著對象技術和事務技術的結合,出現了對象事務監(jiān)控器,可保證分布式對象的事務完整性。事務中間件可以滿足現代業(yè)務應用系統(tǒng)的12條基本原則:完整性、安全性、可伸縮性、可用性、可管理性、互操作性、適應性、易開發(fā)性、經濟性、快速的響應時間、數據的可分布性、易用性。采用商業(yè)事務中間件的優(yōu)勢在于縮短產品投放市場所需的時間、節(jié)省應用開發(fā)費用、減少系統(tǒng)運行開銷、簡化應用集成、降低軟件的維護費用等。6/30/202323信息系統(tǒng)集成3.5中間件技術構件技術與中間件中間件作為存在于系統(tǒng)軟件與應用之間的特殊層次,對典型的應用模式進行抽象,從而使應用軟件開阿人員可以將精力更多地放在業(yè)務邏輯上,并按照標準形式進行開發(fā),從而使軟件架構的應用成為可能。構件的使用對架構技術(即環(huán)境、基礎設施、計算平臺等)有極大的依賴性。只有在適當的架構中,軟件才有可能被抽象成為構件。中間件,從本質上說是對分布式應用的抽象,拋開了與應用相關的業(yè)務邏輯細節(jié),保留了典型的分布交互模式的關鍵特征。經過抽象,對復雜的分布式系統(tǒng)進行提煉和必要的封裝隔離后,以統(tǒng)一的形式呈現給應用。中間件與架構是從兩種不同的角度看待軟件的中間層次,可以將中間件理解為架構或構建模型的具體實現,是構件存在的基礎,中間件促進了軟件的構件化。中間件作為分布式計算平臺,涉及各種不同的資源,包括各種操作系統(tǒng)、數據庫、網絡協(xié)議甚至語言,其目標是在分布的環(huán)境中統(tǒng)一使用這些資源。6/30/202324信息系統(tǒng)集成3.5中間件技術應用服務器應用服務器(ApplicationServer)是企業(yè)極應用在Internet上迅速發(fā)展的條件下,出現的一種中間件技術。它可以處理客戶和數據之間的交互操作,并提供一組前面提到的中間件服務,包括事務管理、ORB、MOM、系統(tǒng)安全、負載均衡及資源管理等。應用服務器還提供了一個稱為容器的管理環(huán)境,可以對應用中的組件進行配置和管理。應用服務器在技術上并沒有任何標準和規(guī)范是為某個商業(yè)性公司所獨占,全部都基于Internet上的開放標準,因而具有極強的生命力。使用應用服務器可以幫助企業(yè)構建一個基于Internet的電子商務系統(tǒng),而且擁有很高的穩(wěn)定性、可擴展性和安全性。應用服務器向企業(yè)級用戶提供了設計、開發(fā)、部署、運行和管理Internet電子商務應用系統(tǒng)的平臺,適用于Internet上的電子商務應用。6/30/202325信息系統(tǒng)集成3.5中間件技術應用服務器的優(yōu)點在于:三層架構體系:適合Internet環(huán)境,使系統(tǒng)具有很強的可擴展性和可管理性。分布式環(huán)境:保證系統(tǒng)的穩(wěn)定性,同時擁有較高的性能。面向對象的模塊化構件設計:提高開發(fā)速度,降低開發(fā)成本。采用Java技術:完全跨平臺,適合Internet需要,并獲得大多數廠商的支持,可以保護用戶的投資。應用服務器采用的三層(多層)架構,將應用邏輯單獨作為一層,客戶可以根據不同的應用邏輯專心設計該層。需要擴展業(yè)務時,只需專注于改進中間層的設計,使原系統(tǒng)能夠平滑方便地升級。
6/30/202326信息系統(tǒng)集成3.6J2EE應用架構J2EE(Java2PlatformEnterpriseEdition)是Sun公司領導、各廠商共同制定并得到廣泛認可的工業(yè)標準。J2EE將開發(fā)工作分為兩類:業(yè)務邏輯開發(fā)和表示邏輯開發(fā),其余的系統(tǒng)資源則由應用服務器自動處理,不必為中間層的資源和運行管理進行編碼。將更多的開發(fā)精力集中在應用程序的業(yè)務邏輯和表示邏輯上,從而縮短企業(yè)的應用開發(fā)周期、有效保護企業(yè)的投資。6/30/202327信息系統(tǒng)集成3.6J2EE應用架構J2ME(Java2PlatformMicroEdition)
Java2平臺簡化版,適合嵌入式系統(tǒng)開發(fā)。J2SE(Java2PlatformStandardEdition)
Java2平臺標準版,是為JavaApplet和應用程序提供的Java標準運行環(huán)境支持的平臺,包括輸入/輸出和圖形用戶界面等。J2EE(Java2PlatformEnterpriseEdition)
Java2平臺企業(yè)版,將Java企業(yè)級API捆綁在一起的成為Java語言進行服務器端的企業(yè)應用部署的開發(fā)平臺。J2EE運行在J2SE之上。6/30/202328信息系統(tǒng)集成3.6J2EE應用架構J2EE技術規(guī)范規(guī)范簡稱JavaMessageService:Java消息服務,允許分布對象之間的異步通信JMSJavaMail:Java郵件,滿足平臺無關,協(xié)議無關方式的郵件發(fā)送JavaMailJavaInterfaceDefinitionLanguage:Java接口定義語言,是實現CORBA標準的模型,允許與其他語言的集成和CORBA標準服務的分布處理JavaIDLRemoteMethodInvocation—InternetInter-ORBProtocol:遠程方法調用—InternetInter-ORB協(xié)議,是RMI的可移植性擴展,是基于CORBA標準協(xié)議,允許進程間相互通信,實現CORBA集成RMI-IIOPJavaNamingandDirectoryInterface:Java命名和目錄接口,是透明查找分布對象和服務的機制,用來定位組件和資源在網絡中的位置JNDIJavaService:Java感知對象,可以通過HTTP的請求/響應與Web客戶的交互,通常用來實現表示邏輯Servlet6/30/202329信息系統(tǒng)集成3.6J2EE應用架構J2EE技術規(guī)范(續(xù)表)規(guī)范簡稱JavaServerPage:Java服務頁面,主要用于動態(tài)頁面生成,實際上也是Servlet,由HTML或XML和部分Java代碼交織編寫,也可實現對業(yè)務層的直接訪問JSPJavaAPIforXMLParsing:解析XML的JavaAPIJAXPEnterpriseJavaBeans:企業(yè)級JavaBean,用于封裝業(yè)務邏輯的軟件組件,通過EJB容器來管理EJB的生命周期、安全和事務EJBJavaDatabaseConnectivityExtension:Java數據庫連接擴展,是Java訪問關系數據庫的標準連接橋。JDBC6/30/202330信息系統(tǒng)集成3.6J2EE應用架構J2EE多層架構J2EE采用多層應用架構,整個系統(tǒng)分為客戶層、J2EE應用服務器和企業(yè)信息系統(tǒng)層。大部分J2EE應用都劃分成三層或四層,復雜的系統(tǒng)可能會有更多的層次。這樣每個層次都有明確的職責,系統(tǒng)結構十分清晰。應用客戶/瀏覽器客戶層JSP/ServletWeb層EJB業(yè)務層數據庫EIS層J2EE服務器6/30/202331信息系統(tǒng)集成3.6J2EE應用架構J2EE多層架構J2EE的多層次分布式應用模型是根據功能把應用邏輯分成多個層次,每個層次支持相應的服務器和組件,組件在分布式服務器的組建容器中運行。在企業(yè)開發(fā)邏輯上將系統(tǒng)劃分為五層:客戶層、Web層(表示層)、業(yè)務層、集成層和資源層。6/30/202332信息系統(tǒng)集成3.6J2EE應用架構J2EE多層應用體系結構瀏覽器特制客戶端容器容器容器ServletJSP會話Bean實體Bean消息驅動BeanJDBC公用適配器專用適配器數據庫其他應用系統(tǒng)6/30/202333信息系統(tǒng)集成3.6J2EE應用架構J2EE客戶層系統(tǒng)的客戶端,在J2EE體系中的客戶端可以是瀏覽器,也可以是具有特殊要求的定制客戶端。采用一般瀏覽器的是B/S結構中所提倡的瘦客戶端;采用JavaApplet一般屬于胖客戶端,客戶端程序具有部分業(yè)務邏輯描述,并提供具有Java風格的特制用戶交互界面??蛻舳伺c表示層之間通過HTTP/HTTPS即可交互,承載的語言一般是HTML或XML。對使用胖客戶端的情況,采用的交互手段可以多種多樣。6/30/202334信息系統(tǒng)集成3.6J2EE應用架構表示層:提供交互界面,接受用戶的輸入,將用戶的操作請求傳遞給應用層,等待應用層處理結果處理結果,并將結果返回給用戶。在用戶和應用邏輯之間起到中介作用。表示層可以承擔幾乎全部邏輯,但是基于對系統(tǒng)的可擴展性、可維護性和負載均衡等問題的考慮,在構造大型應用中,Web服務器(表示層)盡量少一些業(yè)務邏輯的處理,而將業(yè)務邏輯交給應用層。表示層與應用層之間的通信主要借助JMS和RMI進行。6/30/202335信息系統(tǒng)集成3.6J2EE應用架構業(yè)務層業(yè)務層主要完成業(yè)務邏輯的執(zhí)行,與數據庫及后臺系統(tǒng)資源進行交互的應用系統(tǒng)部分,在J2EE中,提供應用層業(yè)務邏輯支持和數據庫操作支持的組件主要是EJB。EJB首先是一種技術規(guī)范,它本身并不提供分布式計算支持。EJB的組件特性、分布式計算特征均是由EJB容器提供的。程序員將從繁重復雜的分布式對象和組件構造中解脫出來,而把精力全部投入到業(yè)務邏輯本身。6/30/202336信息系統(tǒng)集成3.6J2EE應用架構集成層集成層主要完成應用層的業(yè)務邏輯與各類數據庫資源、不同應用系統(tǒng)之間的集成。實現數據的共享和應用功能的共享。數據庫連接主要由EJB和JDBC實現,應用程序之間功能操作一般采用適配器來實現。資源層資源層主要是指信息資源,包括各類數據庫、文檔以及其他的應用系統(tǒng)等。可能是系統(tǒng)建設中新建的資源,也可能是企業(yè)信息化過程中遺留下來的系統(tǒng)資源。6/30/202337信息系統(tǒng)集成3.7.NET應用架構.NET概述微軟的.NET是一組開放的互聯網協(xié)議,推出的一系列產品、技術和服務。.NET開發(fā)框架在通用語言運行環(huán)境基礎上,給開發(fā)人員提供了完善的基礎庫類、數據庫訪問技術及網絡開發(fā)技術,開發(fā)者可以使用多種語言快速構建網絡應用。包括企業(yè)內部、企業(yè)之間各類應用的集成統(tǒng)一,也包括個性化集成服務。內容覆蓋了不同的設備接入、Web服務應用的開發(fā)、部署、發(fā)布、服務等。6/30/202338信息系統(tǒng)集成3.7.NET應用架構.NET框架概述.NET框架旨在實現下列目標:提供一個一致的面向對象的編程環(huán)境,而無論對象代碼是在本地存儲執(zhí)行,還是在本地執(zhí)行但在Internet上分布,或者遠程執(zhí)行。提供一個將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境,以消除“DLLHELL”問題。提供一個保證代碼安全執(zhí)行的代碼執(zhí)行環(huán)境。提供一個可消除腳本環(huán)境或解釋環(huán)境的性能問題的代碼執(zhí)行環(huán)境。按照工業(yè)標準生成所有通信,以確?;?NET框架的代碼可與任何其他代碼集成。.NET框架體系結構由以下部分組成:通用語言運行時、框架類庫、ASP.NET以及ADO.NET、企業(yè)服務、Web服務、Windows窗體、遠程處理等。Visual.Studio.NET是全面支持.NET的開發(fā)工具。6/30/202339信息系統(tǒng)集成3.7.NET應用架構.NET開發(fā)框架VBC++C#JScript通用語言規(guī)范ADO.NETASP.NETWindows應用通用語言運行環(huán)境(commonlanguageruntime)框架類庫(frameworkclasslibrary)VisualStudio.NET6/30/202340信息系統(tǒng)集成3.7.NET應用架構通用語言運行環(huán)境(CLR)CLR處于.NET框架的最底層,它是將底層平臺差異進行抽象的運行期基礎設施。CLR支持所有能用公共中間語言CIL表示的編程語言。從而為多種語言提供了一種統(tǒng)一的運行環(huán)境,使得組件和XMLWeb服務的綜合使用不再受編程語言的限制。提供了更多的功能和特性,從而大大簡化了應用程序的發(fā)布和升級;多種語言之間的交互;自動的內存和資源管理等。.NET中的幾個重要的概念是程序集、應用程序域、元數據和IL中間語言。6/30/202341信息系統(tǒng)集成3.7.NET應用架構幾個重要概念程序集程序集是.NET平臺用于部署和配置的單元。它是自我描述的安裝單元,由一個或多個文件組成,一個程序集可以是一個包括元數據的DLL或EXE,也可以由多個文件組成,如資源文件、元數據、DLL和EXE。6/30/202342信息系統(tǒng)集成3.7.NET應用架構應用程序域提供安全而通用的處理單元,處理CLR可使用它來提供應用程序之間的隔離??梢栽诰哂型雀綦x級別的單個程序中運行幾個應用程序域,而不會造成進程間調用或進程間切換等方面的額外開銷,在一個進程內運行多個應用程序的能力顯著增強了服務器的可伸縮性。應用程序域所提供的隔離優(yōu)點在于:在一個應用程序中出現的錯誤不會影響其他應用程序。能夠在不停止整個進程的情況下停止單個應用程序。使用應用程序域可以卸載在黨應用程序中運行的代碼。6/30/202343信息系統(tǒng)集成3.7.NET應用架構元數據在CLR中運行的可執(zhí)行文件與Windows可執(zhí)行文件不同,因為它們不僅有代碼和數據,而且還有元數據(metadata)。在.NET中,元數據包括類型定義、版本信息、外部程序集引用和其他標準化信息。.NET使用元數據描述特定.NET程序集中使用和暴露的所有類型。元數據比類型庫豐富得多,包括程序集、模塊、類、接口、方法、屬性、字段、事件以及全局方法等的描述??梢岳?NET提供的反射API對程序集的元數據進行訪問。6/30/202344信息系統(tǒng)集成3.7.NET應用架構IL中間語言Microsoft將它的語言抽象層成為公用中間語言(commonintermediatelanguage,CLR),IL類似于Java編譯器聲稱的字節(jié)碼,支持所有面向對象特性,包括數據抽象、繼承、多態(tài)以及異常的事件等概念。任何.NET語言都可以轉化為IL,因此.NET支持多種語言,而且將來可能支持多種平臺,只要目標平臺有IL。公用類型系統(tǒng)CTS和公用語言規(guī)范CLS可確保多種語言的兼容性、互操作性和可集成性。6/30/202345信息系統(tǒng)集成3.7.NET應用架構
CLR主要包括類裝載器、JIT編譯器和其他執(zhí)行支持和管理組件。
.NETPE(portableexecutable)文件位于CLR的頂層,在CLR的VEE中執(zhí)行。
類裝載器負責將.NET類裝載進內存并為它們的執(zhí)行做準備。在成功完成之前,必須找到目標類。一旦目標類裝載,類裝載器就向該類的每個方法發(fā)出一個小的存根(stub)。在類裝載器裝載之后,而在IL代碼執(zhí)行之前,驗證器處理必須驗證的代碼。驗證器在運行時用來驗證代碼是否安全。
最后,托管的本機代碼將接受其他執(zhí)行支持組建的處理,如代碼管理、安全管理、無用資源回收、異常管理、調試管理、列集管理和線程管理等。.NETPE文件類裝載器JIT編譯器驗證器JIT執(zhí)行支持和管理6/30/202346信息系統(tǒng)集成3.7.NET應用架構ADO.NETADO.NET是數據訪問模型,用于訪問關系型數據庫系統(tǒng)。ADO.NET優(yōu)點如下:互操作性
采用XML作為其有效的數據格式,解決了公用數據交換的限制,而且,由于XML只是結構化文本,將XML作為HTTP網絡協(xié)議頂層的數據格式,可以將防火墻的相關問題減至最小??缮炜s性
采用非連接數據機,當客戶請求數據時,數據集將被獲得,并傳送至客戶,然后連接會盡可能的及時關閉。提高了可伸縮性和系統(tǒng)的性能。高效性
ADO.NET提供了豐富而可擴展的框架類,開發(fā)者可以在此基礎上快速開發(fā)健壯的、高性能的XMLWeb服務和現在流行的N層應用程序。6/30/202347信息系統(tǒng)集成3.7.NET應用架構ADO.NET的對象模型包括兩組不同的類:內容組件和托管供應器組件。內容組件包括DataSet類和其他支持類:DataTable,DataRow等托管供應器組件用于輔助數據獲取和更新。SQLServer和其他OLEDB數據存儲CommandConnectionConnectionCommandDataReaderDataAdapter數據存儲托管供應器組件與數據相關組件DataSet6/30/202348信息系統(tǒng)集成3.7.NET應用架構ASP.NETASP.NET是Microsoft.NET中的網絡編程結構,使得建造、運行和發(fā)布網絡應用非常方便和高效。ASP.NET網絡表單
設計目的就是使得開發(fā)者能夠非常容易的創(chuàng)建網絡表單,將VB中的快速開發(fā)模型引入到網絡開發(fā)中來。ASP.NETWeb服務
在ASP.NET中,建造和使用網絡服務都非常方便,在ASP.NET中建造網絡服務就是編寫一個擴展名為.asmx的文件,在這個文件中加入需要表現的方法既可,網絡服務的建造者不需要了解SOAP和XML的細節(jié)。ASP.NET應用框架
ASP.NET應用不再是解釋腳本,而是編譯運行,再加上靈活的緩沖技術,從根本上提高了性能;發(fā)布一個網絡應用,僅僅是一個復制文件的過程;開發(fā)者可以將應用的配置信息存放在XML格式的文件中;提供更多的認證和安全管理方式,提高應用程序的可靠性。6/30/202349信息系統(tǒng)集成3.7.NET應用架構J2EE與.NET比較特征J2EE.NET技術類型業(yè)界標準產品中間件廠商30多家微軟解釋器JRECLR動態(tài)Web頁面支持JSPASP.NET中間層組件EJB.NET管理的組件數據庫訪問JDBC,SQL/JADO.NET是否支持Web服務是是是否具備中間件功能是是6/30/202350信息系統(tǒng)集成3.8基于組件的軟件開發(fā)問題的提出計算機的不斷發(fā)展為計算機及網絡應用提供了大量技術先進、功能強大的應用軟件系統(tǒng),同時也給軟件開發(fā)者和用戶提出了問題:軟件系統(tǒng)規(guī)模龐大,研制周期長,維護費用高。軟件系統(tǒng)過于復雜,在一個系統(tǒng)中集成了各種功能,大多數功能不能靈活的裝卸、單獨升級或重復利用。應用軟件不易集成,即使各應用程序是用相同的編程語言編寫的,并且運行在相同的機器上,特定應用程序的數據和功能也不能提供給其他應用程序使用。面向對象的程序設計思想得到很大的發(fā)展,結果卻產生了大量的“對象孤島”。將面向對象思想和組件編程思想結合發(fā)展出急于對象的組建軟件結構,為這一領域開辟了新的道路。6/30/202351信息系統(tǒng)集成3.8基于組件的軟件開發(fā)組件技術的發(fā)展簡史和特點軟件系統(tǒng)規(guī)模龐大,研制周期長,維護費用高。軟件系統(tǒng)過于復雜,在一個系統(tǒng)中集成了各種功能,大多數功能不能靈活的裝卸、單獨升級或重復利用。應用軟件不易集成,即使各應用程序是用相同的編程語言來編寫的,并且運行在相同的計算機上,特定應用程序的數據和功能也不能提供給其他應用程序使用。為克服以上困難,實現行業(yè)范圍軟件的“即插即用”,關鍵是解決軟件系統(tǒng)的可操作性、可擴展性、語言獨立性和跨平臺操作能力。6/30/202352信息系統(tǒng)集成3.8基于組件的軟件開發(fā)軟件組件可看成一種軟件集成電路元件:軟件IC沒有硬件IC的天然聚合性,構成粒度大小自由,便于擴展。通過規(guī)定一個統(tǒng)一的二進制標準,建立起機構之間的智能互操作機制和語言獨立性。外界僅通過接口訪問組件。多側面性,即組件表達的語義層次高,可以從不同側面進行連接,外部特性不惟一。支持封裝、繼承、多態(tài)性。6/30/202353信息系統(tǒng)集成3.8基于組件的軟件開發(fā)開發(fā)EJB組件EJB容器EnterpriseBean是在稱作EJB容器的特殊環(huán)境中運行的軟件組件。容器容納和管理的方式與JavaWeb服務器容納Servlet或HTML瀏覽器容納JavaApplet的方式相同。EJB容器在運行時管理EnterpriseBean的各個方面,包括遠程訪問Bean、安全性、持續(xù)、事務并行性和資源的訪問與合用。容器不允許客戶機應用程序直接訪問EnterpriseBean。當客戶機應用程序調用EnterpriseBean上的遠程方法時,容器首先攔截調用,以保持持續(xù)、事務和安全性都正確應用于客戶機對Bean執(zhí)行的每一個操作。Bean開發(fā)人員可以將精力集中于封裝商業(yè)規(guī)則,而容器處理其他的一切。6/30/202354信息系統(tǒng)集成3.8基于組件的軟件開發(fā)EJB組件的組成規(guī)范的EJB組件由Home接口、Remote接口、組件類和部署描述文件構成。EJB組件的Home接口用于定義創(chuàng)建、查找和刪除組件對象實例的方法。以有狀態(tài)會話類型EJB組件CalcBonusEJB為例,其Home接口定義如下面代碼所示:6/30/202355信息系統(tǒng)集成3.8基于組件的軟件開發(fā)EJB組件的組成在上述定義中,EJB組件的Home接口繼承EJBHome接口,在該接口中包括兩個異構類型的創(chuàng)建組件對象實例的create方法,兩個方法均返回該EJB組件的Remote接口對象。在Home接口中還定義了用于從EJB容器的組件實例池中刪除組件對象實例的remove方法。該方法對應于EJB組件類中定義的ejbRemove方法。對于實體類型EJB組件,在組件的Home接口中還應定義查找組件對象實例的方法,用于客戶端根據實體組件的主鍵值在EJB容器中查找指定的實體類型EJB組件。該方法的定義和實現過程將在第6講中詳細講解。另外,Home接口中定義的create方法和remove方法能夠拋出的RemoteException和CreateException類型異常。兩種類型的異常定義在java.rmi包中并且異常的參數和返回值類型均為合法的RMI-IIOP類型。由異常的返回值形式可以看出:EJB組件對象的Home接口是對JavaRMI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論