上篇
第3章 軟件構件與中間件
本章要點:
- 構件及其在信息項目中的重要性
- 常用構件標準(COM/DCOM/COM+、CORBA 和 EJB)
- 軟件中間件
3.1 構件模型及實現
構件是具有一定的功能,能夠獨立工作或能同其他構件裝配起來協調工作的程序體,構件的使用同它的開發、生產無關。
構件是對一組類的組合進行封裝,并代表完成一個或多個功能的特定服務,也為用戶提供了多個接口。整個構件隱藏了具體的實現,只用接口對外提供服務。
構件模型(Model)是對構件本質特征的抽象描述。
模型因目標和作用各不相同而分為:
- 參考模型
- 描述模型
- 實現模型
模型的三個主要流派:
- OMG 的 CORBA
通用對象請求代理結構,CORBA,Common Object Request Broker Architecture
- Sun 的 EJB
EJB,Enterprise Java Bean
- Microsoft 的 DCOM
分布式構件對象模型,DCOM,Distributed Component Object Model
構件模型組成(以青鳥構件模型為例):
1. 外部接口
構件的外部接口是指構件向其重用者提供的基本信息,是構件與外部世界的一組交互點。
基本信息包括:
- 構件名稱
- 功能描述
- 對外功能接口
- 所需的構件
- 參數化屬性
2. 內部結構
構件的內部結構包括兩方面內容:
- 內部成員(具體成員,虛擬成員)
- 內部成員之間的關系(內部成員之間的互聯,內部成員與外部接口之間的互聯)
3.2 常用構件標準
構件標準三大流派:
- COM/DCOM/COM+
- CORBA
- EJB
3.2.1 EJB 基礎知識
EJB 是用于開發和部署多層結構的、分布式的、面向對象的 Java 應用系統的跨平臺的構建體系結構。
EJB 的三種類型:
- 會話(Session)Bean
一個 SB 描述了與客戶端的一個短暫會話,執行完成數據消失。 - 實體(Entity)Bean
描述了存儲在數據庫的表中的持久數據。 - 消息驅動(Message-driven)Bean
結合了一個 SB 和一個 JSM(Java 信息服務) 信息監聽者的功能。
3.2.2 COM/DCOM/COM+ 基礎知識
在 COM 構架下,人們可以開發出各種各樣的功能專一的組件,然后將它們按照需要組合起來,構成復雜的應用系統。
DCOM 特性:
- 位置獨立性
構件的位置完全透明,無論位于客戶的同一進程中或是地球的另一端。 - 語言無關性
任何語言都可以用來創建 COM 組件。
COM+ 把 COM 組件軟件提升到應用層而不再是底層的軟件結構,通過操作系統的各種支持,使組件對象模型建立在應用層上,把所有組件的底層細節留給操作系統。
3.2.3 CORBA 基礎知識
CORBA 的主要目標是提供一種機制,使得對象可以透明地發出請求和獲得應答,從而建立起一個異質的分布式應用環境。
CORBA 技術規范的主要內容:
- IDL
接口定義語言,IDL,Interface Definition Language
IDL 是 CORBA 規范定義的一種中性語言,它用來描述對象的接口,而不涉及對象的具體實現。
- IR
接口池,Interface Repository,IR
包括分布計算環境中所有可用的服務器對象的接口表示。
- DII
動態調用接口,Dynamic Invocation Interface,DII
提供了一些標準函數以供客戶對象動態創建請求、動態構造請求參數。
- OA
對象適配器,Object Adapter,OA
用于屏蔽 ORB 內核的實現細節,為服務器對象的實現者提供抽象接口,以便他們使用 ORB 內部的某些功能。
對象請求代理,Object Request Broker,ORB
3.3 中間件技術
中間件用自己的復雜換取了企業應用的簡單。
3.3.1 中間件的定義
objectweb.org 的定義:
在一個分布式系統環境中處于操作系統和應用程序之間的軟件。IDG 的定義:
中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統之上,管理計算資源和網絡通信。
3.3.2 中間件的功能
中間件屏蔽了底層操作系統的復雜性,使程序開發人員面對一個簡單而統一的開發環境,減少程序設計的復雜性,將注意力集中在自己的業務上,不必再為程序在不同系統軟件上的移植而重復工作,從而大大減少了技術上的負擔。
3.3.3 中間件的分類
按層次劃分:
- 底層中間件
主流技術有 JVM, CLR, ACE, JDBC, ODBC - 通用型中間件
主流技術有 CORBA, J2EE, MOM, COM - 集成型中間件
主流技術有 WorkFlow, EAI
中間件細化:
- 通信處理(消息)中間件
- 事務處理(交易)中間件
- 數據存儲管理中間件
- Web 服務中間件
- 安全中間件
- 跨平臺和構架的中間件
- 專用平臺中間件
- 其他中間件
如數據流中間件、門戶中間件、銀行及電信專用中間件等。
3.3.4 中間件技術在集成中的應用
使用者 | 集成需求 | 技術與產品 |
---|---|---|
業務設計人員 | 業務流程 | 業務流程,工作流 |
IT 技術人員 | 組件/服務 | EJB, CCM, COM |
基礎架構人員 | 消息/傳輸 | MQSeries, TIBCO, JMS/NET, CORBA, JAVA, RMI |
3.3.5 中間件的發展趨勢
- 規范化
- 構件化和松耦合
- 平臺化