版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件互操作軟件互操作 1/62高級軟件工程高級軟件工程在一定程度上在一定程度上人類的思維產(chǎn)生于人類的思維產(chǎn)生于簡單個體之間的相互作用簡單個體之間的相互作用Marvin Minsky軟件互操作軟件互操作 2/62高級軟件工程高級軟件工程軟件互操作軟件互操作 3/62高級軟件工程高級軟件工程內(nèi)內(nèi) 容容一、網(wǎng)絡(luò)編程基本架構(gòu)一、網(wǎng)絡(luò)編程基本架構(gòu)二、軟件互操作的基本架構(gòu)二、軟件互操作的基本架構(gòu)三、互操作協(xié)議三、互操作協(xié)議四、互操作接口定義四、互操作接口定義五、交互實體的查找五、交互實體的查找軟件互操作軟件互操作 4/62高級軟件工程高級軟件工程一、網(wǎng)絡(luò)編程基本架構(gòu)一、網(wǎng)絡(luò)編程基本架構(gòu)1、TCP/IP2、
2、基于、基于Socket的網(wǎng)絡(luò)軟件的網(wǎng)絡(luò)軟件3、直接基于、直接基于Socket編程的不足編程的不足軟件互操作軟件互操作 5/62高級軟件工程高級軟件工程ApplicationPresentationTransportNetworkData linkPhysicalSessionTCP, UDP、TCP/IPTCP/IP(1)ISO/OSI 參考模型 與TCP/IP的對照ISO/OSI 參考模型參考模型主機與網(wǎng)絡(luò)的連接:ethernet、token-ring 因特網(wǎng)層:IP 應(yīng)用層:telnet、ftp、smtp、snmp、dns、http、nntp TCP/IP軟件互操作軟件互操作 6/62高級
3、軟件工程高級軟件工程0 Network Host 1 0 Network Host 1 1 0 Network Host 1 1 1 0 Multicast address 1 1 1 1 0 Reversed for future use ABCDE 55地址范圍地址范圍 55 55 55 55類類(2 2)IPIP:Internet Protocol軟件互操作軟件互操作 7/6
4、2高級軟件工程高級軟件工程Vers. H.len Service type Total length Identification Flags Fragment offset dataTime to live Protocol Header checksum Source IP addressDestination IP address IP options (may be omitted) PaddingIPIP頭頭Service typeService type Precedence D T R unused20 bytes軟件互操作軟件互操作 8/62高級軟件工程高級軟件工程(3)TCP
5、 :Transmission Control Protocol lTCP 為兩個分布式的構(gòu)件提供了雙向的消息通信為兩個分布式的構(gòu)件提供了雙向的消息通信lUNIX 中的命令中的命令 rsh, rcp 及及 rlogin 全部基于全部基于 TCPl它是一個可靠但較慢的協(xié)議它是一個可靠但較慢的協(xié)議l在客戶服務(wù)器雙方進行緩沖在客戶服務(wù)器雙方進行緩沖以提高速度以提高速度軟件互操作軟件互操作 9/62高級軟件工程高級軟件工程 TCP頭格式頭格式Source portDestination portSequence numberAcknowledgement numberChecksum Urgent po
6、inter Options (0 or more words)Data (optional)H.lenCode bitsReserved Window size軟件互操作軟件互操作 10/62高級軟件工程高級軟件工程UDP : User Datagram Protocol l一個構(gòu)件向另一個構(gòu)件發(fā)送消息一個構(gòu)件向另一個構(gòu)件發(fā)送消息l另一個構(gòu)件的標(biāo)識包含在消息中另一個構(gòu)件的標(biāo)識包含在消息中l(wèi)不可靠但快速的協(xié)議不可靠但快速的協(xié)議l消息長度固定消息長度固定l消息在接受方排隊消息在接受方排隊lUNIX rwho 命令基于命令基于UDP軟件互操作軟件互操作 11/62高級軟件工程高級軟件工程2、基于、基
7、于Socket的網(wǎng)絡(luò)軟件的網(wǎng)絡(luò)軟件服務(wù)器服務(wù)器 客戶客戶 創(chuàng)建 通信套接字 通常通過隨機分配得到端口 等待連接套接字 通常對應(yīng)于一個固定端口 連接請求 軟件互操作軟件互操作 12/62高級軟件工程高級軟件工程面向連接:面向連接:服務(wù)器服務(wù)器客戶客戶Socket()bind()listen()read()close()Socket()connect()write()close()處理請求write()read()accept()阻塞,等待阻塞,等待客戶連接客戶連接建立連接建立連接請求服務(wù)請求服務(wù)應(yīng)答數(shù)據(jù)應(yīng)答數(shù)據(jù)軟件互操作軟件互操作 13/62高級軟件工程高級軟件工程面向非連接:面向非連接:服務(wù)器
8、服務(wù)器客戶客戶Socket()bind()readfrom()sendto()close()Socket()bind()sendto()readfrom()close()處理請求應(yīng)答數(shù)據(jù)應(yīng)答數(shù)據(jù)請求服務(wù)請求服務(wù)阻塞,等待阻塞,等待客戶數(shù)據(jù)客戶數(shù)據(jù)軟件互操作軟件互操作 14/62高級軟件工程高級軟件工程l套接字的出現(xiàn)促進了軟件從單機環(huán)境向網(wǎng)絡(luò)環(huán)境的發(fā)展擴展了軟件的應(yīng)用范圍l人們很快不滿足于直接基于套接字的開發(fā)過程基于套接字的開發(fā)方式較為繁瑣這種軟件的排錯十分困難l特別是當(dāng)服務(wù)器端需要根據(jù)用戶的不同請求內(nèi)容區(qū)分不同的處理過程時根本原因在于基于套接字的交互層次較低根本原因在于基于套接字的交互層次較低
9、 不同軟件之間需要約定專門的消息格式、數(shù)據(jù)類型等不同軟件之間需要約定專門的消息格式、數(shù)據(jù)類型等 軟件互操作軟件互操作 15/62高級軟件工程高級軟件工程二、軟件互操作的基本架構(gòu)二、軟件互操作的基本架構(gòu)為支持為支持應(yīng)用層的某一實體使用另一實體應(yīng)用層的某一實體使用另一實體而制定的一套技術(shù)規(guī)范而制定的一套技術(shù)規(guī)范軟件互操作軟件互操作 16/62高級軟件工程高級軟件工程 互操作消息互操作消息 客戶端指代客戶端指代 互操作接口定義語言互操作接口定義語言 互操作協(xié)議互操作協(xié)議 網(wǎng)絡(luò)基礎(chǔ)設(shè)施網(wǎng)絡(luò)基礎(chǔ)設(shè)施 網(wǎng)絡(luò)基礎(chǔ)設(shè)施網(wǎng)絡(luò)基礎(chǔ)設(shè)施 互操作消息互操作消息 服務(wù)器端指代服務(wù)器端指代 客戶端程序客戶端程序 服務(wù)器端
10、程序服務(wù)器端程序 互操作實現(xiàn)(以互操作實現(xiàn)(以RPC 為例)為例) 實體查找方式實體查找方式 互操作規(guī)范互操作規(guī)范 底層協(xié)議底層協(xié)議 決定決定 決定決定 軟件互操作軟件互操作 17/62高級軟件工程高級軟件工程軟件互操作體系與人類交互過程的比較軟件互操作體系與人類交互過程的比較 底層協(xié)議提供了基本的通信基礎(chǔ)底層協(xié)議提供了基本的通信基礎(chǔ) 互操作消息是軟件之間進行交互時所表述的語言互操作消息是軟件之間進行交互時所表述的語言互操作協(xié)議是對這些語言的語法說明互操作協(xié)議是對這些語言的語法說明 互操作接口定義是軟件之間的一種約定互操作接口定義是軟件之間的一種約定接口定義語言是合約的撰寫規(guī)則接口定義語言是合
11、約的撰寫規(guī)則 實體查找方式是交互雙方建立聯(lián)系的途徑實體查找方式是交互雙方建立聯(lián)系的途徑包括白頁、黃頁、綠頁等多種途徑包括白頁、黃頁、綠頁等多種途徑軟件互操作軟件互操作 18/62高級軟件工程高級軟件工程1、 底層協(xié)議底層協(xié)議底層協(xié)議是互操作協(xié)議所依賴的底層通信機制底層協(xié)議是互操作協(xié)議所依賴的底層通信機制目前最受重視的協(xié)議目前最受重視的協(xié)議 是前面講過的是前面講過的 TCP/IP協(xié)議協(xié)議也可以是也可以是 ATM等其它協(xié)議等其它協(xié)議軟件互操作軟件互操作 19/62高級軟件工程高級軟件工程2、互操作協(xié)議、互操作協(xié)議消息中關(guān)于字節(jié)序、數(shù)據(jù)表示等問題的解決方法消息中關(guān)于字節(jié)序、數(shù)據(jù)表示等問題的解決方法體
12、現(xiàn)了通信雙方之間關(guān)于消息的體現(xiàn)了通信雙方之間關(guān)于消息的數(shù)據(jù)格式數(shù)據(jù)格式 消息的類型消息的類型 等的約定等的約定類似的約定還有類似的約定還有 服務(wù)器的管理服務(wù)器的管理 等等等等所有這些約定所有這些約定 共同構(gòu)成了互操作的高層協(xié)議共同構(gòu)成了互操作的高層協(xié)議互操作協(xié)議一般獨立于底層協(xié)議互操作協(xié)議一般獨立于底層協(xié)議即互操作協(xié)議可以向不同的底層協(xié)議進行映射即互操作協(xié)議可以向不同的底層協(xié)議進行映射從而由不同的底層協(xié)議進行支持從而由不同的底層協(xié)議進行支持互操作協(xié)議一般都比較煩瑣互操作協(xié)議一般都比較煩瑣其實現(xiàn)由應(yīng)用服務(wù)器開發(fā)者承擔(dān)其實現(xiàn)由應(yīng)用服務(wù)器開發(fā)者承擔(dān)應(yīng)用系統(tǒng)的開發(fā)者在開發(fā)具體系統(tǒng)時應(yīng)用系統(tǒng)的開發(fā)者在開
13、發(fā)具體系統(tǒng)時不必關(guān)心協(xié)議的實現(xiàn)問題不必關(guān)心協(xié)議的實現(xiàn)問題軟件互操作軟件互操作 20/62高級軟件工程高級軟件工程 3、互操作接口定義語言、互操作接口定義語言客戶指代主要完成上層代碼(客戶程序、服務(wù)器程序)客戶指代主要完成上層代碼(客戶程序、服務(wù)器程序)與底層代碼(與底層代碼(RPC API等)之間的等)之間的“映射映射” 其參數(shù)傳遞、編排、服務(wù)器定位等功能完全其參數(shù)傳遞、編排、服務(wù)器定位等功能完全與應(yīng)用系統(tǒng)具體的業(yè)務(wù)邏輯實現(xiàn)細節(jié)無關(guān)與應(yīng)用系統(tǒng)具體的業(yè)務(wù)邏輯實現(xiàn)細節(jié)無關(guān)因此因此只要系統(tǒng)明確定義了服務(wù)器的接口只要系統(tǒng)明確定義了服務(wù)器的接口即可以產(chǎn)生與該接口對應(yīng)的指代即可以產(chǎn)生與該接口對應(yīng)的指代接口
14、定義語言(接口定義語言(Interface Definition Language)描述了描述了 客戶與服務(wù)器之間的接口客戶與服務(wù)器之間的接口軟件互操作軟件互操作 21/62高級軟件工程高級軟件工程4、實體查找方式、實體查找方式實體查找方式主要是指服務(wù)器的定位實體查找方式主要是指服務(wù)器的定位根據(jù)自己掌握的信息根據(jù)自己掌握的信息客戶如何才能查找到具體服務(wù)器客戶如何才能查找到具體服務(wù)器這實際上涉及這實際上涉及 服務(wù)器端服務(wù)信息的發(fā)布服務(wù)器端服務(wù)信息的發(fā)布服務(wù)信息的管理等問題服務(wù)信息的管理等問題軟件互操作軟件互操作 22/62高級軟件工程高級軟件工程互操作體系名稱互操作體系名稱互操作協(xié)議互操作協(xié)議接
15、口定義語言接口定義語言實體查找實體查找RPCRPCIDLRPC注冊注冊DCOMORPCMIDL系統(tǒng)注冊系統(tǒng)注冊CORBAGIOP(IIOP)IDL命名服務(wù)命名服務(wù)EJBJRMPJava InterfaceJNDIWeb ServiceSOAPWSDLUDDI現(xiàn)有互操作架構(gòu)比較現(xiàn)有互操作架構(gòu)比較軟件互操作軟件互操作 23/62高級軟件工程高級軟件工程通信消息通信消息 對于計算機的重要性對于計算機的重要性 完全類似于人類的言語對于人類的重要性完全類似于人類的言語對于人類的重要性協(xié)議是協(xié)議是通信雙方傳輸消息時必須遵守的規(guī)則的集合通信雙方傳輸消息時必須遵守的規(guī)則的集合 Protocol: IP、 TC
16、P、UDP、 IIOP、JRMP、SOAP FTP、HTTP、SMTP、SNMP1、概念、概念軟件互操作軟件互操作 24/62高級軟件工程高級軟件工程對于互操作協(xié)議,盡管其發(fā)展的歷史不長對于互操作協(xié)議,盡管其發(fā)展的歷史不長但目前也已經(jīng)有許多協(xié)議被設(shè)計、實現(xiàn)但目前也已經(jīng)有許多協(xié)議被設(shè)計、實現(xiàn)例如:例如:RPC協(xié)議、協(xié)議、IIOP、JRMP、SOAP等等等等與人類言語類似,它們的實現(xiàn)方式也十分豐富與人類言語類似,它們的實現(xiàn)方式也十分豐富可以建立在不同的底層協(xié)議之上可以建立在不同的底層協(xié)議之上例如例如TCP/IP、HTTP、ATM等等等等到目前為止,在互操作方面使用得最廣泛的協(xié)議是到目前為止,在互操
17、作方面使用得最廣泛的協(xié)議是IIOP這主要得益于這主要得益于CORBA的巨大成功的巨大成功以及以及IIOP對異構(gòu)平臺的支持對異構(gòu)平臺的支持軟件互操作軟件互操作 25/62高級軟件工程高級軟件工程所謂互操作協(xié)議要素是指所謂互操作協(xié)議要素是指設(shè)計一個互操作協(xié)議時必須考慮的主要問題設(shè)計一個互操作協(xié)議時必須考慮的主要問題這些問題主要包括:這些問題主要包括:數(shù)據(jù)表示數(shù)據(jù)表示消息格式消息格式引用表示引用表示 等等等等其它需要考慮的問題包括:其它需要考慮的問題包括:如何將協(xié)議映射到底層協(xié)議之上如何將協(xié)議映射到底層協(xié)議之上如何管理連接過程如何管理連接過程如何提高協(xié)議的效率如何提高協(xié)議的效率等等等等 2 2、互操
18、作協(xié)議要素、互操作協(xié)議要素軟件互操作軟件互操作 26/62高級軟件工程高級軟件工程在單機環(huán)境內(nèi),數(shù)據(jù)表示屬于硬件層、語言層在單機環(huán)境內(nèi),數(shù)據(jù)表示屬于硬件層、語言層而在網(wǎng)絡(luò)環(huán)境下,調(diào)用參數(shù)必須經(jīng)由網(wǎng)絡(luò)進行傳輸而在網(wǎng)絡(luò)環(huán)境下,調(diào)用參數(shù)必須經(jīng)由網(wǎng)絡(luò)進行傳輸這意味著這些數(shù)據(jù)將變成一種字節(jié)流的形式這意味著這些數(shù)據(jù)將變成一種字節(jié)流的形式以便于參數(shù)(數(shù)據(jù))在網(wǎng)絡(luò)上傳輸以便于參數(shù)(數(shù)據(jù))在網(wǎng)絡(luò)上傳輸就產(chǎn)生了如何在網(wǎng)絡(luò)傳輸上表示程序中的數(shù)據(jù)問題就產(chǎn)生了如何在網(wǎng)絡(luò)傳輸上表示程序中的數(shù)據(jù)問題數(shù)據(jù)表示是一種傳輸語法數(shù)據(jù)表示是一種傳輸語法描述各種數(shù)據(jù)類型在傳輸線路上描述各種數(shù)據(jù)類型在傳輸線路上以字節(jié)流的形式表示出來的格
19、式以字節(jié)流的形式表示出來的格式ONC-RPC中使用的格式為外部數(shù)據(jù)表示中使用的格式為外部數(shù)據(jù)表示(XDR:eXternal Data Representation)而而CORBA中使用的格式為公共數(shù)據(jù)表示中使用的格式為公共數(shù)據(jù)表示(CDR:Common Data Representation) (1)數(shù)據(jù)表示數(shù)據(jù)表示軟件互操作軟件互操作 27/62高級軟件工程高級軟件工程底層協(xié)議底層協(xié)議 主要解決通信的主要解決通信的 可行性可行性 以及部分以及部分 可靠性可靠性 等問題等問題高層協(xié)議不同于底層協(xié)議的一個明顯特征在于高層協(xié)議不同于底層協(xié)議的一個明顯特征在于高層協(xié)議帶有一定的語義信息高層協(xié)議帶有一
20、定的語義信息幾乎每種高層協(xié)議幾乎每種高層協(xié)議都對消息進行分類都對消息進行分類定義了多種不同類型的消息格式定義了多種不同類型的消息格式對于互操作協(xié)議而言對于互操作協(xié)議而言一次調(diào)用通常至少包含請求與應(yīng)答兩種消息一次調(diào)用通常至少包含請求與應(yīng)答兩種消息消息的種類較為類似消息的種類較為類似但消息格式差異較大但消息格式差異較大 (2)消息格式消息格式軟件互操作軟件互操作 28/62高級軟件工程高級軟件工程互操作協(xié)議必須映射到底層協(xié)議上互操作協(xié)議必須映射到底層協(xié)議上方能得到實現(xiàn)方能得到實現(xiàn)目前的互操作協(xié)議都定義協(xié)議一到多種向傳輸層的映射目前的互操作協(xié)議都定義協(xié)議一到多種向傳輸層的映射例如例如GIOP定義了向
21、定義了向TCP/IP的映射:的映射:IIOPSOAP主要定義了向主要定義了向HTTP的映射的映射(3)向底層協(xié)議的映射向底層協(xié)議的映射軟件互操作軟件互操作 29/62高級軟件工程高級軟件工程2、協(xié)議比較、協(xié)議比較1)互操作開銷不同)互操作開銷不同IIOP、JRMP使用二進制的字節(jié)流形式編排消息使用二進制的字節(jié)流形式編排消息 (CDR、XDR)SOAP采用字符型的采用字符型的XML編排消息編排消息 SOAP消息要比消息要比IIOP、JRMP消息長得多消息長得多SOAP的編排開銷大、占用內(nèi)存空間大的編排開銷大、占用內(nèi)存空間大2)表達能力不同)表達能力不同SOAP易于學(xué)習(xí)、易于開發(fā)、易于調(diào)試易于學(xué)習(xí)
22、、易于開發(fā)、易于調(diào)試SOAP不支持消息的批處理、對象引用、對象激活等特性不支持消息的批處理、對象引用、對象激活等特性降低了降低了SOAP的表達能力的表達能力并使得基于并使得基于SOAP的交互受到限制的交互受到限制而而IIOP、JRMP等則不存在這種限制等則不存在這種限制軟件互操作軟件互操作 30/62高級軟件工程高級軟件工程3)適應(yīng)能力不同)適應(yīng)能力不同IIOP、JRMP嚴重制約于防火墻嚴重制約于防火墻防火墻一般由兩個路由器與一個應(yīng)用程序網(wǎng)關(guān)構(gòu)成防火墻一般由兩個路由器與一個應(yīng)用程序網(wǎng)關(guān)構(gòu)成 路由器負責(zé)路由器負責(zé)IP層的分組信息層的分組信息列出可接受、禁止的源端和目標(biāo)端等信息列出可接受、禁止的源
23、端和目標(biāo)端等信息 應(yīng)用程序網(wǎng)關(guān)在應(yīng)用程序級進行控制應(yīng)用程序網(wǎng)關(guān)在應(yīng)用程序級進行控制 根據(jù)頭信息字段、消息長度、消息內(nèi)容等根據(jù)頭信息字段、消息長度、消息內(nèi)容等 決定傳送還是丟棄消息決定傳送還是丟棄消息這是這是IIOP、JRMP的應(yīng)用受到限制的核心因素之一的應(yīng)用受到限制的核心因素之一SOAP則基本不受其限制則基本不受其限制4)適用環(huán)境不同)適用環(huán)境不同JRMP適用于使用適用于使用JAVA的應(yīng)用系統(tǒng)的應(yīng)用系統(tǒng)IIOP、SOAP支持各種語言,因此適用面更廣支持各種語言,因此適用面更廣IIOP適合于同一個防火墻內(nèi)部之間的交互適合于同一個防火墻內(nèi)部之間的交互而而SOAP則適合于跨越防火墻的交互則適合于跨越
24、防火墻的交互軟件互操作軟件互操作 31/62高級軟件工程高級軟件工程1、概念、概念接口(Interface)軟件互操作軟件互操作 32/62高級軟件工程高級軟件工程應(yīng)用編程接口(應(yīng)用編程接口(API)對象接口對象接口構(gòu)件接口構(gòu)件接口抽象?實在?抽象?實在?模塊通常由接口和實現(xiàn)兩部分組成模塊通常由接口和實現(xiàn)兩部分組成模塊的接口部分模塊的接口部分刻畫了各個模塊是如何耦合的刻畫了各個模塊是如何耦合的其他模塊的設(shè)計者和使用者需要知道其他模塊的設(shè)計者和使用者需要知道模塊的實現(xiàn)部分模塊的實現(xiàn)部分是各個模塊的內(nèi)部事務(wù)是各個模塊的內(nèi)部事務(wù)其他模塊的設(shè)計者和使用者不需要知道其他模塊的設(shè)計者和使用者不需要知道包含
25、什么具體內(nèi)容?(功能性、約束性)包含什么具體內(nèi)容?(功能性、約束性)利用什么形式描述?(接口定義語言)利用什么形式描述?(接口定義語言)含義解釋含義解釋軟件互操作軟件互操作 33/62高級軟件工程高級軟件工程單機環(huán)境下的不同軟件模塊之間單機環(huán)境下的不同軟件模塊之間主要定義模塊的功能性(主要定義模塊的功能性(Functional)內(nèi)容內(nèi)容類似于一個函數(shù)的映射過程類似于一個函數(shù)的映射過程接口的功能性定義是對接口中各個接口的功能性定義是對接口中各個操作操作調(diào)用方式的描述調(diào)用方式的描述操作操作是由操作符標(biāo)識的實體是由操作符標(biāo)識的實體指明了一個不可再分的服務(wù)原語指明了一個不可再分的服務(wù)原語請求一個操作的
26、動作被稱為調(diào)用一個操作請求一個操作的動作被稱為調(diào)用一個操作對一個操作功能的描述由輸入、輸出兩部分組成對一個操作功能的描述由輸入、輸出兩部分組成 也被稱為一個基調(diào)(也被稱為一個基調(diào)(signature)用于描述操作的輸入、輸出參數(shù)名稱及類型用于描述操作的輸入、輸出參數(shù)名稱及類型功能性(功能性(FunctionalFunctional)軟件互操作軟件互操作 34/62高級軟件工程高級軟件工程網(wǎng)絡(luò)環(huán)境下的不同軟件模塊的合作需要考慮的因素網(wǎng)絡(luò)環(huán)境下的不同軟件模塊的合作需要考慮的因素不僅僅包含功能方面不僅僅包含功能方面還涉及分布性、可靠性、安全性等方面的因素還涉及分布性、可靠性、安全性等方面的因素網(wǎng)絡(luò)環(huán)
27、境下的接口網(wǎng)絡(luò)環(huán)境下的接口 除需要定義模塊的功能性內(nèi)容外除需要定義模塊的功能性內(nèi)容外還需要定義模塊的約束性內(nèi)容還需要定義模塊的約束性內(nèi)容接口的約束性定義是指對功能以外特征的描述接口的約束性定義是指對功能以外特征的描述簡單的包括:例外處理、執(zhí)行語義等簡單的包括:例外處理、執(zhí)行語義等復(fù)雜一些的包括:復(fù)雜一些的包括:(1 1)行為特征)行為特征: :用于描述操作的輸出用于描述操作的輸出 通過對操作增加前置與后置條件而實現(xiàn)通過對操作增加前置與后置條件而實現(xiàn)(2 2)同步特征)同步特征: :用于描述分布性與并發(fā)性用于描述分布性與并發(fā)性約束性(約束性(ConstraintConstraint)軟件互操作軟
28、件互操作 35/62高級軟件工程高級軟件工程2、接口定義語言、接口定義語言IDL: Interface Definition LanguageWSDL: Web Service Description Language服務(wù)描述語言服務(wù)描述語言interface Hospital typedef string PatientId;PatientId admit_patient ( );void release_patient ( in PatientIdpatient );軟件互操作軟件互操作 36/62高級軟件工程高級軟件工程有的以描述結(jié)構(gòu)化程序的功能為主有的以描述結(jié)構(gòu)化程序的功能為主例如例如
29、RPC-IDLRPC-IDL微軟的微軟的-IDL-IDL有的以描述對象的功能為主有的以描述對象的功能為主例如例如CORBACORBA的的IDLIDL有的以描述服務(wù)為主有的以描述服務(wù)為主例如例如web serviceweb service的的WSDLWSDL1 1)描述對象不同)描述對象不同比較比較軟件互操作軟件互操作 37/62高級軟件工程高級軟件工程有的以具體計算機語言的方式表達有的以具體計算機語言的方式表達例如例如SUNSUN的的Java InterfaceJava Interface有的以獨立于具體的計算機語言有的以獨立于具體的計算機語言但十分類似于計算機語言的方式表達但十分類似于計算機
30、語言的方式表達例如:例如:RPC-IDLRPC-IDL微軟的微軟的-IDL-IDLCORBACORBA的的IDLIDL有的以有的以XMLXML為方式表達為方式表達例如:例如:web serviceweb service的的WSDLWSDL2 2)描述方式不同)描述方式不同軟件互操作軟件互操作 38/62高級軟件工程高級軟件工程有的僅描述接口的語法信息有的僅描述接口的語法信息例如:例如:RPC-IDL微軟的微軟的-IDLCORBA的的IDL有的還包括與底層協(xié)議的綁定信息有的還包括與底層協(xié)議的綁定信息例如:例如:WSDL等等在在CORBA中這部分信息包含在中這部分信息包含在IOR中中3)描述內(nèi)容不
31、同)描述內(nèi)容不同軟件互操作軟件互操作 39/62高級軟件工程高級軟件工程網(wǎng)絡(luò)環(huán)境中的資源具有明顯的分布性這些資源可能分布于不同的節(jié)點之上問題: 分布在不同節(jié)點上的實體如何查找到其他的實體?軟件互操作軟件互操作 40/62高級軟件工程高級軟件工程1、三種查找方式、三種查找方式2、命名服務(wù)、命名服務(wù)3、目錄服務(wù)、目錄服務(wù)4、合約服務(wù)、合約服務(wù)內(nèi)內(nèi) 容容軟件互操作軟件互操作 41/62高級軟件工程高級軟件工程l命名命名(Naming)服務(wù):服務(wù):通過外部名字定位構(gòu)件通過外部名字定位構(gòu)件類似于(電話本)白頁類似于(電話本)白頁. 公司甲公司甲 67890001 公司乙公司乙 67890002 公司丙公
32、司丙 67890003CORBA的命名服務(wù)的命名服務(wù)TCP/IP中的中的DNSCOM、JVM中的注冊表等中的注冊表等 皆提供了類似的服務(wù)皆提供了類似的服務(wù) 1、三種查找方式、三種查找方式軟件互操作軟件互操作 42/62高級軟件工程高級軟件工程l目錄目錄(Directory)服務(wù):服務(wù):通過服務(wù)特性定位構(gòu)件通過服務(wù)特性定位構(gòu)件類似于(電話本)黃頁類似于(電話本)黃頁 IT領(lǐng)域領(lǐng)域 存儲器公司存儲器公司 公司甲公司甲 67890001 計算機公司計算機公司公司乙公司乙 67890002公司丙公司丙 67890003公司丁公司丁 67890004SUN的網(wǎng)絡(luò)信息系統(tǒng)(的網(wǎng)絡(luò)信息系統(tǒng)(Network
33、Information System:NIS)Novell目錄服務(wù)(目錄服務(wù)(Novell Directory Service:NDS)IUT/ISO的的X.500以及以及LDAPCORBA的交易服務(wù)的交易服務(wù)微軟的微軟的Active Directory Service等等提供了類似的服務(wù)提供了類似的服務(wù) 軟件互操作軟件互操作 43/62高級軟件工程高級軟件工程l合約合約(Contract)服務(wù):服務(wù):通過技術(shù)規(guī)范定位構(gòu)件通過技術(shù)規(guī)范定位構(gòu)件綠頁綠頁 IT領(lǐng)域領(lǐng)域 計算機公司計算機公司 公司乙公司乙 電話電話 67890002地址地址 北京市海淀區(qū)中關(guān)村大街北京市海淀區(qū)中關(guān)村大街XX號號 Em
34、ail CPU Intel P4 硬盤硬盤 Seagate 40G 鼠標(biāo)鼠標(biāo) 雙飛燕雙飛燕 USB Web Service的的UDDI即包含這方面的信息即包含這方面的信息CORBA的接口池也具有部分的接口池也具有部分“綠頁綠頁”功能功能 軟件互操作軟件互操作 44/62高級軟件工程高級軟件工程不同的查找服務(wù)提供的功能:不同的查找服務(wù)提供的功能: 白頁黃頁綠頁DNS CORBA Naming CORBA Trading CORBA IR X.500/LDAP UDDI軟件互操作軟件互操作 45/62高級軟件工程高級軟件工程名字是知識的基礎(chǔ)名字是知識的基礎(chǔ)本體論(本體論(Ontology)名實論(
35、名,所以謂也,實,所謂也名實論(名,所以謂也,實,所謂也 墨子)墨子)操作系統(tǒng)中的進程名操作系統(tǒng)中的進程名文件系統(tǒng)中的文件名文件系統(tǒng)中的文件名程序語言中的程序語言中的變量名、過程名、變量名、過程名、數(shù)據(jù)結(jié)構(gòu)名、對象名數(shù)據(jù)結(jié)構(gòu)名、對象名網(wǎng)絡(luò)環(huán)境下的計算機名、數(shù)據(jù)庫名網(wǎng)絡(luò)環(huán)境下的計算機名、數(shù)據(jù)庫名 、構(gòu)件名、構(gòu)件名2、命名服務(wù)、命名服務(wù)軟件互操作軟件互操作 46/62高級軟件工程高級軟件工程名字與標(biāo)識、引用名字與標(biāo)識、引用 標(biāo)識標(biāo)識 引用引用 名字與引用的關(guān)聯(lián)名字與引用的關(guān)聯(lián) 指代指代 名字名字 服務(wù)使用者的空間服務(wù)使用者的空間 服務(wù)提供者的空間服務(wù)提供者的空間 查找 注冊 (綁定) 調(diào)用 解析
36、名字 引用 軟件互操作軟件互操作 47/62高級軟件工程高級軟件工程名字系統(tǒng)名字系統(tǒng)主要功能是將名字映射到對象主要功能是將名字映射到對象一組一組context的集合的集合l這些這些context是連接的是連接的l使用同樣的命名規(guī)則使用同樣的命名規(guī)則l提供同樣的操作集合并具有同樣的語義提供同樣的操作集合并具有同樣的語義 例如:例如: c:/win98/system軟件互操作軟件互操作 48/62高級軟件工程高級軟件工程名字分類名字分類Atomic name(原子名字原子名字)l名字中不可分割的部分名字中不可分割的部分lUsr/local/bin中的中的usr, local, pku, edu,
37、cnCompound name(復(fù)合名字)復(fù)合名字)l包含了零個或多個原子名字的一個序列包含了零個或多個原子名字的一個序列l(wèi)Usr/local/bin, 軟件互操作軟件互操作 49/62高級軟件工程高級軟件工程lComposite Name(合成名字)(合成名字)與復(fù)合名字與復(fù)合名字(compound name)不同不同是跨越多個命名系統(tǒng)的名字是跨越多個命名系統(tǒng)的名字包含了一個有序的復(fù)合或原子名字的列表包含了一個有序的復(fù)合或原子名字的列表l每個復(fù)合或原子名字屬于不同的命名系統(tǒng)名字空每個復(fù)合或原子名字屬于不同的命名系統(tǒng)名字空間間http:/ : 來自來自“URL scheme-id”名字空間名字
38、空間/in-notes/rfc2195.txt : 來自來自DNS名字空名字空間間lPublic/index.html : 來自主機文件的名字空間來自主機文件的名字空間軟件互操作軟件互操作 50/62高級軟件工程高級軟件工程軟件互操作軟件互操作 51/62高級軟件工程高級軟件工程l命名服務(wù)(命名服務(wù)(Naming Service)維護了(分布或集中式)系統(tǒng)中資源的名字維護了(分布或集中式)系統(tǒng)中資源的名字與地址之間的與地址之間的映射關(guān)系(映射關(guān)系(binding)軟件互操作軟件互操作 52/62高級軟件工程高級軟件工程 命名上下文命名上下文lContext是一個對象是一
39、個對象其狀態(tài)(屬性)是一組其狀態(tài)(屬性)是一組binding的集合,這些的集合,這些binding的原子名字各不相同的原子名字各不相同每個每個Context都有自己的命名規(guī)則都有自己的命名規(guī)則至少提供至少提供lookup操作操作允許用戶查找指定允許用戶查找指定原子名字原子名字的對象的對象也可能提供也可能提供建立建立/刪除刪除/枚舉枚舉binding的操作的操作lInitial Context用戶使用命名服務(wù)的入口用戶使用命名服務(wù)的入口軟件互操作軟件互操作 53/62高級軟件工程高級軟件工程lSubcontext某個某個Context對象中的原子名字可以與另一個對象中的原子名字可以與另一個Con
40、text對象綁定,此時后者就是前者的對象綁定,此時后者就是前者的subcontext目的是為了支持目的是為了支持復(fù)合名字復(fù)合名字的查找的查找l按照原子名字的順序在對應(yīng)的按照原子名字的順序在對應(yīng)的subcontext中查找中查找bindingl在在UNIX文件系統(tǒng)中,目錄類似文件系統(tǒng)中,目錄類似subcontext(usr, local),),而路徑名類似復(fù)合名字而路徑名類似復(fù)合名字(usr/local/bin)軟件互操作軟件互操作 54/62高級軟件工程高級軟件工程 解析名字解析名字根據(jù)名字查找屬性的過程根據(jù)名字查找屬性的過程 軟件互操作軟件互操作 55/62高級軟件工程高級軟件工程 deve
41、loper manager U1 1 M1 U3 M2 MIS Network M1 N1 M2 user NamingContext Contains Name & OR U2 2 3 4 5 6 7 8 Root Context Server 軟件互操作軟件互操作 56/62高級軟件工程高級軟件工程 3、目錄服務(wù)、目錄服務(wù)基本實現(xiàn)基本實現(xiàn) 目錄服務(wù)目錄服務(wù)是增強的命名服務(wù)是增強的命名服務(wù)存儲了一組名字與屬性的關(guān)聯(lián)集合存儲了一組名字與屬性的關(guān)聯(lián)集合 軟件互操作軟件互操作 57/62高級軟件工程高級軟件工程l目錄對象目錄對象(Directory object)命名系統(tǒng)中一類特殊的對象,
42、用以表達計算環(huán)境的多種信息命名系統(tǒng)中一類特殊的對象,用以表達計算環(huán)境的多種信息換言之,維護了(分布或集中式)系統(tǒng)中資源的名字與及其換言之,維護了(分布或集中式)系統(tǒng)中資源的名字與及其多種信息的映射關(guān)系多種信息的映射關(guān)系一個目錄對象具有多個屬性一個目錄對象具有多個屬性(attributes)一個屬性具有一個標(biāo)識符一個屬性具有一個標(biāo)識符(identifier)以及一組值以及一組值(values)一個目錄對象同時可以是一個一個目錄對象同時可以是一個context,因此,這種特殊的對,因此,這種特殊的對象不僅可以維護名字到對象的映射,也可以維護與這個象不僅可以維護名字到對象的映射,也可以維護與這個binding相關(guān)的一些信息相關(guān)的一些信息CORBA Trader Service軟件互操作軟件互操作 58/62高級軟件工程高級軟件工程 Naming System Directory Object Context Binding Attribute Attribute Attribute ( as a context ) identifier value v
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024買賣房產(chǎn)合同樣本
- 女裝批量采購合同
- 醫(yī)院勞動合同書2024年
- 房屋合同法律效力分析
- 2024年小區(qū)物業(yè)管理系統(tǒng)合同
- 2024年度XX房地產(chǎn)營銷代理合同
- 工程代理加盟居間合同樣本
- 旅游客運車輛包車合同
- 2024代理商分銷合同探討與研究
- 2024養(yǎng)豬場荒山租賃合同
- 2024年第九屆“鵬程杯”六年級語文邀請賽試卷(復(fù)賽)
- 國開2024年《建筑結(jié)構(gòu)#》形考作業(yè)1-4答案
- DL-T1475-2015電力安全工器具配置與存放技術(shù)要求
- 漏檢分析改善措施
- 新制定《公平競爭審查條例》學(xué)習(xí)課件
- GB/T 44051-2024焊縫無損檢測薄壁鋼構(gòu)件相控陣超聲檢測驗收等級
- TD/T 1060-2021 自然資源分等定級通則(正式版)
- 完整加快發(fā)展新質(zhì)生產(chǎn)力課件
- 三位數(shù)除以兩位數(shù)300題-整除-有標(biāo)準(zhǔn)答案
- 辦公室裝修工程施工方案講義
- 奇異的仿生學(xué) 知到智慧樹網(wǎng)課答案
評論
0/150
提交評論