軟件實(shí)體的交互基礎(chǔ)培訓(xùn)資料_第1頁(yè)
軟件實(shí)體的交互基礎(chǔ)培訓(xùn)資料_第2頁(yè)
軟件實(shí)體的交互基礎(chǔ)培訓(xùn)資料_第3頁(yè)
軟件實(shí)體的交互基礎(chǔ)培訓(xùn)資料_第4頁(yè)
軟件實(shí)體的交互基礎(chǔ)培訓(xùn)資料_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、軟件實(shí)體的交互基礎(chǔ)內(nèi)內(nèi) 容容一、網(wǎng)絡(luò)編程基本架構(gòu)一、網(wǎng)絡(luò)編程基本架構(gòu)二、軟件互操作的基本架構(gòu)二、軟件互操作的基本架構(gòu)三、互操作協(xié)議三、互操作協(xié)議四、互操作接口定義四、互操作接口定義五、交互實(shí)體的查找五、交互實(shí)體的查找一、網(wǎng)絡(luò)編程基本架一、網(wǎng)絡(luò)編程基本架構(gòu)構(gòu)1、TCP/IP2、基于、基于Socket的網(wǎng)絡(luò)軟件的網(wǎng)絡(luò)軟件3、直接基于、直接基于Socket編程的不足編程的不足ApplicationPresentationTransportNetworkData linkPhysicalSessionTCP, UDP、TCP/IPTCP/IP(1)ISO/OSI 參考模型 與TCP/IP的對(duì)照ISO/

2、OSI 參考模型參考模型主機(jī)與網(wǎng)絡(luò)的連接:ethernet、token-ring 因特網(wǎng)層:IP 應(yīng)用層:telnet、ftp、smtp、snmp、dns、http、nntp TCP/IP0 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

3、 55 55類類(2 2)IPIP:Internet ProtocolVers. 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 Precede

4、nce D T R unused20 bytes(3)TCP :Transmission Control Protocol lTCP 為兩個(gè)分布式的構(gòu)件提供了雙向的消息通信為兩個(gè)分布式的構(gòu)件提供了雙向的消息通信lUNIX 中的命令中的命令 rsh, rcp 及及 rlogin 全部基于全部基于 TCPl它是一個(gè)可靠但較慢的協(xié)議它是一個(gè)可靠但較慢的協(xié)議l在客戶服務(wù)器雙方進(jìn)行緩沖在客戶服務(wù)器雙方進(jìn)行緩沖以提高速度以提高速度 TCP頭格式頭格式Source portDestination portSequence numberAcknowledgement numberChecksum Urgent

5、 pointer Options (0 or more words)Data (optional)H.lenCode bitsReserved Window sizeUDP : User Datagram Protocol l一個(gè)構(gòu)件向另一個(gè)構(gòu)件發(fā)送消息一個(gè)構(gòu)件向另一個(gè)構(gòu)件發(fā)送消息l另一個(gè)構(gòu)件的標(biāo)識(shí)包含在消息中另一個(gè)構(gòu)件的標(biāo)識(shí)包含在消息中l(wèi)不可靠但快速的協(xié)議不可靠但快速的協(xié)議l消息長(zhǎng)度固定消息長(zhǎng)度固定l消息在接受方排隊(duì)消息在接受方排隊(duì)lUNIX rwho 命令基于命令基于UDP2、基于、基于Socket的網(wǎng)絡(luò)軟件的網(wǎng)絡(luò)軟件服務(wù)器服務(wù)器 客戶客戶 創(chuàng)建 通信套接字 通常通過(guò)隨機(jī)分配得到端口 等待

6、連接套接字 通常對(duì)應(yīng)于一個(gè)固定端口 連接請(qǐng)求 面向連接:面向連接:服務(wù)器服務(wù)器客戶客戶Socket()bind()listen()read()close()Socket()connect()write()close()處理請(qǐng)求write()read()accept()阻塞,等待阻塞,等待客戶連接客戶連接建立連接建立連接請(qǐng)求服務(wù)請(qǐng)求服務(wù)應(yīng)答數(shù)據(jù)應(yīng)答數(shù)據(jù)面向非連接:面向非連接:服務(wù)器服務(wù)器客戶客戶Socket()bind()readfrom()sendto()close()Socket()bind()sendto()readfrom()close()處理請(qǐng)求應(yīng)答數(shù)據(jù)應(yīng)答數(shù)據(jù)請(qǐng)求服務(wù)請(qǐng)求服務(wù)阻塞,等

7、待阻塞,等待客戶數(shù)據(jù)客戶數(shù)據(jù)3、直接基于、直接基于Socket編程的不足編程的不足套接字的出現(xiàn)促進(jìn)了軟件從單機(jī)環(huán)境向網(wǎng)絡(luò)環(huán)境的發(fā)展擴(kuò)展了軟件的應(yīng)用范圍人們很快不滿足于直接基于套接字的開(kāi)發(fā)過(guò)程基于套接字的開(kāi)發(fā)方式較為繁瑣這種軟件的排錯(cuò)十分困難特別是當(dāng)服務(wù)器端需要根據(jù)用戶的不同請(qǐng)求內(nèi)容區(qū)分不同的處理過(guò)程時(shí)根本原因在于基于套接字的交互層次較低根本原因在于基于套接字的交互層次較低 不同軟件之間需要約定專門(mén)的消息格式、數(shù)據(jù)類型等不同軟件之間需要約定專門(mén)的消息格式、數(shù)據(jù)類型等 二、軟件互操作的基本架二、軟件互操作的基本架構(gòu)構(gòu)為支持為支持應(yīng)用層的某一實(shí)體使用另一實(shí)體應(yīng)用層的某一實(shí)體使用另一實(shí)體而制定的一套技

8、術(shù)規(guī)范而制定的一套技術(shù)規(guī)范 互操作消息互操作消息 客戶端指代客戶端指代 互操作接口定義語(yǔ)言互操作接口定義語(yǔ)言 互操作協(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ù)器端程序服務(wù)器端程序 互操作實(shí)現(xiàn)(以互操作實(shí)現(xiàn)(以RPC 為例)為例) 實(shí)體查找方式實(shí)體查找方式 互操作規(guī)范互操作規(guī)范 底層協(xié)議底層協(xié)議 決定決定 決定決定 軟件互操作體系與軟件互操作體系與人類交互過(guò)程的比較人類交互過(guò)程的比較 底層協(xié)議提供了基本的通信基礎(chǔ)底層協(xié)議提供了基本的通信基礎(chǔ) 互操作消息是軟件之間進(jìn)行交互時(shí)所表述的語(yǔ)互操作消息是軟件

9、之間進(jìn)行交互時(shí)所表述的語(yǔ)言言互操作協(xié)議是對(duì)這些語(yǔ)言的語(yǔ)法說(shuō)明互操作協(xié)議是對(duì)這些語(yǔ)言的語(yǔ)法說(shuō)明 互操作接口定義是軟件之間的一種約定互操作接口定義是軟件之間的一種約定接口定義語(yǔ)言是合約的撰寫(xiě)規(guī)則接口定義語(yǔ)言是合約的撰寫(xiě)規(guī)則 實(shí)體查找方式是交互雙方建立聯(lián)系的途徑實(shí)體查找方式是交互雙方建立聯(lián)系的途徑包括白頁(yè)、黃頁(yè)、綠頁(yè)等多種途徑包括白頁(yè)、黃頁(yè)、綠頁(yè)等多種途徑1、 底層協(xié)議底層協(xié)議底層協(xié)議是互操作協(xié)議所依賴的底層通信機(jī)制底層協(xié)議是互操作協(xié)議所依賴的底層通信機(jī)制目前最受重視的協(xié)議目前最受重視的協(xié)議 是前面講過(guò)的是前面講過(guò)的TCP/IP協(xié)議協(xié)議也可以是也可以是 ATM等其它協(xié)議等其它協(xié)議2、互操作協(xié)議、互操

10、作協(xié)議消息中關(guān)于字節(jié)序、數(shù)據(jù)表示等問(wèn)題的解決方法消息中關(guān)于字節(jié)序、數(shù)據(jù)表示等問(wèn)題的解決方法體現(xiàn)了通信雙方之間關(guān)于消息的體現(xiàn)了通信雙方之間關(guān)于消息的數(shù)據(jù)格式數(shù)據(jù)格式 消息的類型消息的類型 等的約定等的約定類似的約定還有類似的約定還有 服務(wù)器的管理服務(wù)器的管理 等等等等所有這些約定所有這些約定 共同構(gòu)成了互操作的高層協(xié)議共同構(gòu)成了互操作的高層協(xié)議互操作協(xié)議一般獨(dú)立于底層協(xié)議互操作協(xié)議一般獨(dú)立于底層協(xié)議即互操作協(xié)議可以向不同的底層協(xié)議進(jìn)行映射即互操作協(xié)議可以向不同的底層協(xié)議進(jìn)行映射從而由不同的底層協(xié)議進(jìn)行支持從而由不同的底層協(xié)議進(jìn)行支持互操作協(xié)議一般都比較煩瑣互操作協(xié)議一般都比較煩瑣其實(shí)現(xiàn)由應(yīng)用服務(wù)

11、器開(kāi)發(fā)者承擔(dān)其實(shí)現(xiàn)由應(yīng)用服務(wù)器開(kāi)發(fā)者承擔(dān)應(yīng)用系統(tǒng)的開(kāi)發(fā)者在開(kāi)發(fā)具體系統(tǒng)時(shí)應(yīng)用系統(tǒng)的開(kāi)發(fā)者在開(kāi)發(fā)具體系統(tǒng)時(shí)不必關(guān)心協(xié)議的實(shí)現(xiàn)問(wèn)題不必關(guān)心協(xié)議的實(shí)現(xiàn)問(wèn)題 3、互操作接口定義語(yǔ)言、互操作接口定義語(yǔ)言客戶指代主要完成上層代碼(客戶程序、服務(wù)器程序)客戶指代主要完成上層代碼(客戶程序、服務(wù)器程序)與底層代碼(與底層代碼(RPC API等)之間的等)之間的“映射映射” 其參數(shù)傳遞、編排、服務(wù)器定位等功能完全其參數(shù)傳遞、編排、服務(wù)器定位等功能完全與應(yīng)用系統(tǒng)具體的業(yè)務(wù)邏輯實(shí)現(xiàn)細(xì)節(jié)無(wú)關(guān)與應(yīng)用系統(tǒng)具體的業(yè)務(wù)邏輯實(shí)現(xiàn)細(xì)節(jié)無(wú)關(guān)因此因此只要系統(tǒng)明確定義了服務(wù)器的接口只要系統(tǒng)明確定義了服務(wù)器的接口即可以產(chǎn)生與該接口對(duì)應(yīng)的

12、指代即可以產(chǎn)生與該接口對(duì)應(yīng)的指代接口定義語(yǔ)言(接口定義語(yǔ)言(Interface Definition Language)描述了描述了 客戶與服務(wù)器之間的接口客戶與服務(wù)器之間的接口4、實(shí)體查找方式、實(shí)體查找方式實(shí)體查找方式主要是指服務(wù)器的定位實(shí)體查找方式主要是指服務(wù)器的定位根據(jù)自己掌握的信息根據(jù)自己掌握的信息客戶如何才能查找到具體服務(wù)器客戶如何才能查找到具體服務(wù)器這實(shí)際上涉及這實(shí)際上涉及 服務(wù)器端服務(wù)信息的發(fā)布服務(wù)器端服務(wù)信息的發(fā)布服務(wù)信息的管理等問(wèn)題服務(wù)信息的管理等問(wèn)題互操作體系名稱互操作體系名稱互操作協(xié)議互操作協(xié)議接口定義語(yǔ)言接口定義語(yǔ)言實(shí)體查找實(shí)體查找RPCRPCIDLRPC注冊(cè)注冊(cè)DCO

13、MORPCMIDL系統(tǒng)注冊(cè)系統(tǒng)注冊(cè)CORBAGIOP(IIOP)IDL命名服務(wù)命名服務(wù)EJBJRMPJava InterfaceJNDIWeb ServiceSOAPWSDLUDDI現(xiàn)有互操作架構(gòu)比現(xiàn)有互操作架構(gòu)比較較通信消息通信消息 對(duì)于計(jì)算機(jī)的重要性對(duì)于計(jì)算機(jī)的重要性 完全類似于人類的言語(yǔ)對(duì)于人類的重要性完全類似于人類的言語(yǔ)對(duì)于人類的重要性協(xié)議協(xié)議是是通信雙方傳輸消息時(shí)必須遵守的規(guī)則的集合通信雙方傳輸消息時(shí)必須遵守的規(guī)則的集合 Protocol: IP、 TCP、UDP、 IIOP、JRMP、SOAP FTP、HTTP、SMTP、SNMP1、概念、概念三、互操作協(xié)議三、互操作協(xié)議對(duì)于互操作

14、協(xié)議,盡管其發(fā)展的歷史不長(zhǎng)對(duì)于互操作協(xié)議,盡管其發(fā)展的歷史不長(zhǎng)但目前也已經(jīng)有許多協(xié)議被設(shè)計(jì)、實(shí)現(xiàn)但目前也已經(jīng)有許多協(xié)議被設(shè)計(jì)、實(shí)現(xiàn)例如:例如:RPC協(xié)議、協(xié)議、IIOP、JRMP、SOAP等等等等與人類言語(yǔ)類似,它們的實(shí)現(xiàn)方式也十分豐富與人類言語(yǔ)類似,它們的實(shí)現(xiàn)方式也十分豐富可以建立在不同的底層協(xié)議之上可以建立在不同的底層協(xié)議之上例如例如TCP/IP、HTTP、ATM等等等等到目前為止,在互操作方面使用得最廣泛的協(xié)議是到目前為止,在互操作方面使用得最廣泛的協(xié)議是IIOP這主要得益于這主要得益于CORBA的巨大成功的巨大成功以及以及IIOP對(duì)異構(gòu)平臺(tái)的支持對(duì)異構(gòu)平臺(tái)的支持所謂互操作協(xié)議要素是指所

15、謂互操作協(xié)議要素是指設(shè)計(jì)一個(gè)互操作協(xié)議時(shí)必須考慮的主要問(wèn)題設(shè)計(jì)一個(gè)互操作協(xié)議時(shí)必須考慮的主要問(wèn)題這些問(wèn)題主要包括:這些問(wèn)題主要包括:數(shù)據(jù)表示數(shù)據(jù)表示消息格式消息格式引用表示引用表示 等等等等其它需要考慮的問(wèn)題包括:其它需要考慮的問(wèn)題包括:如何將協(xié)議映射到底層協(xié)議之上如何將協(xié)議映射到底層協(xié)議之上如何管理連接過(guò)程如何管理連接過(guò)程如何提高協(xié)議的效率如何提高協(xié)議的效率等等等等 2 2、互操作協(xié)議要素、互操作協(xié)議要素在單機(jī)環(huán)境內(nèi),數(shù)據(jù)表示屬于硬件層、語(yǔ)言層在單機(jī)環(huán)境內(nèi),數(shù)據(jù)表示屬于硬件層、語(yǔ)言層而在網(wǎng)絡(luò)環(huán)境下,調(diào)用參數(shù)必須經(jīng)由網(wǎng)絡(luò)進(jìn)行傳輸而在網(wǎng)絡(luò)環(huán)境下,調(diào)用參數(shù)必須經(jīng)由網(wǎng)絡(luò)進(jìn)行傳輸這意味著這些數(shù)據(jù)將變成

16、一種字節(jié)流的形式這意味著這些數(shù)據(jù)將變成一種字節(jié)流的形式以便于參數(shù)(數(shù)據(jù))在網(wǎng)絡(luò)上傳輸以便于參數(shù)(數(shù)據(jù))在網(wǎng)絡(luò)上傳輸就產(chǎn)生了如何在網(wǎng)絡(luò)傳輸上表示程序中的數(shù)據(jù)問(wèn)題就產(chǎn)生了如何在網(wǎng)絡(luò)傳輸上表示程序中的數(shù)據(jù)問(wèn)題數(shù)據(jù)表示是一種傳輸語(yǔ)法數(shù)據(jù)表示是一種傳輸語(yǔ)法描述各種數(shù)據(jù)類型在傳輸線路上描述各種數(shù)據(jù)類型在傳輸線路上以字節(jié)流的形式表示出來(lái)的格式以字節(jié)流的形式表示出來(lái)的格式ONC-RPC中使用的格式為外部數(shù)據(jù)表示中使用的格式為外部數(shù)據(jù)表示(XDR:eXternal Data Representation)而而CORBA中使用的格式為公共數(shù)據(jù)表示中使用的格式為公共數(shù)據(jù)表示(CDR:Common Data Repr

17、esentation) (1)數(shù)據(jù)表示數(shù)據(jù)表示底層協(xié)議底層協(xié)議 主要解決通信的主要解決通信的 可行性可行性 以及部分以及部分 可靠性可靠性 等問(wèn)題等問(wèn)題高層協(xié)議不同于底層協(xié)議的一個(gè)明顯特征在于高層協(xié)議不同于底層協(xié)議的一個(gè)明顯特征在于高層協(xié)議帶有一定的語(yǔ)義信息高層協(xié)議帶有一定的語(yǔ)義信息幾乎每種高層協(xié)議幾乎每種高層協(xié)議都對(duì)消息進(jìn)行分類都對(duì)消息進(jìn)行分類定義了多種不同類型的消息格式定義了多種不同類型的消息格式對(duì)于互操作協(xié)議而言對(duì)于互操作協(xié)議而言一次調(diào)用通常至少包含請(qǐng)求與應(yīng)答兩種消息一次調(diào)用通常至少包含請(qǐng)求與應(yīng)答兩種消息消息的種類較為類似消息的種類較為類似但消息格式差異較大但消息格式差異較大 (2)消息

18、格式消息格式互操作協(xié)議必須映射到底層協(xié)議上互操作協(xié)議必須映射到底層協(xié)議上方能得到實(shí)現(xiàn)方能得到實(shí)現(xiàn)目前的互操作協(xié)議都定義協(xié)議一到多種向傳輸層的映射目前的互操作協(xié)議都定義協(xié)議一到多種向傳輸層的映射例如例如GIOP定義了向定義了向TCP/IP的映射:的映射:IIOPSOAP主要定義了向主要定義了向HTTP的映射的映射(3)向底層協(xié)議的映向底層協(xié)議的映射射2、協(xié)議比、協(xié)議比較較1)互操作開(kāi)銷不同)互操作開(kāi)銷不同IIOP、JRMP使用二進(jìn)制的字節(jié)流形式編排消息使用二進(jìn)制的字節(jié)流形式編排消息 (CDR、XDR)SOAP采用字符型的采用字符型的XML編排消息編排消息 SOAP消息要比消息要比IIOP、JRM

19、P消息長(zhǎng)得多消息長(zhǎng)得多SOAP的編排開(kāi)銷大、占用內(nèi)存空間大的編排開(kāi)銷大、占用內(nèi)存空間大2)表達(dá)能力不同)表達(dá)能力不同SOAP易于學(xué)習(xí)、易于開(kāi)發(fā)、易于調(diào)試易于學(xué)習(xí)、易于開(kāi)發(fā)、易于調(diào)試SOAP不支持消息的批處理、對(duì)象引用、對(duì)象激活等特性不支持消息的批處理、對(duì)象引用、對(duì)象激活等特性降低了降低了SOAP的表達(dá)能力的表達(dá)能力并使得基于并使得基于SOAP的交互受到限制的交互受到限制而而IIOP、JRMP等則不存在這種限制等則不存在這種限制3)適應(yīng)能力不同)適應(yīng)能力不同IIOP、JRMP嚴(yán)重制約于防火墻嚴(yán)重制約于防火墻防火墻一般由兩個(gè)路由器與一個(gè)應(yīng)用程序網(wǎng)關(guān)構(gòu)成防火墻一般由兩個(gè)路由器與一個(gè)應(yīng)用程序網(wǎng)關(guān)構(gòu)成

20、路由器負(fù)責(zé)路由器負(fù)責(zé)IP層的分組信息層的分組信息列出可接受、禁止的源端和目標(biāo)端等信息列出可接受、禁止的源端和目標(biāo)端等信息 應(yīng)用程序網(wǎng)關(guān)在應(yīng)用程序級(jí)進(jìn)行控制應(yīng)用程序網(wǎng)關(guān)在應(yīng)用程序級(jí)進(jìn)行控制 根據(jù)頭信息字段、消息長(zhǎng)度、消息內(nèi)容等根據(jù)頭信息字段、消息長(zhǎng)度、消息內(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支持各種語(yǔ)言,因此適用面更廣支持各種語(yǔ)言,因此適用面更廣IIOP適合于同

21、一個(gè)防火墻內(nèi)部之間的交互適合于同一個(gè)防火墻內(nèi)部之間的交互而而SOAP則適合于跨越防火墻的交互則適合于跨越防火墻的交互1、概念、概念接口(Interface)四、互操作接口定義四、互操作接口定義應(yīng)用編程接口(應(yīng)用編程接口(API)對(duì)象接口對(duì)象接口構(gòu)件接口構(gòu)件接口抽象?實(shí)在?抽象?實(shí)在?模塊通常由接口和實(shí)現(xiàn)兩部分組成模塊通常由接口和實(shí)現(xiàn)兩部分組成模塊的接口部分模塊的接口部分刻畫(huà)了各個(gè)模塊是如何耦合的刻畫(huà)了各個(gè)模塊是如何耦合的其他模塊的設(shè)計(jì)者和使用者需要知道其他模塊的設(shè)計(jì)者和使用者需要知道模塊的實(shí)現(xiàn)部分模塊的實(shí)現(xiàn)部分是各個(gè)模塊的內(nèi)部事務(wù)是各個(gè)模塊的內(nèi)部事務(wù)其他模塊的設(shè)計(jì)者和使用者不需要知道其他模塊的

22、設(shè)計(jì)者和使用者不需要知道包含什么具體內(nèi)容?(功能性、約束性)包含什么具體內(nèi)容?(功能性、約束性)利用什么形式描述?(接口定義語(yǔ)言)利用什么形式描述?(接口定義語(yǔ)言)含義解含義解釋釋單機(jī)環(huán)境下的不同軟件模塊之間單機(jī)環(huán)境下的不同軟件模塊之間主要主要定義模塊的功能性(定義模塊的功能性(Functional)內(nèi)容內(nèi)容類似于一個(gè)函數(shù)的映射過(guò)程類似于一個(gè)函數(shù)的映射過(guò)程接口的功能性定義是對(duì)接口中各個(gè)接口的功能性定義是對(duì)接口中各個(gè)操作操作調(diào)用方式的描述調(diào)用方式的描述操作操作是由操作符標(biāo)識(shí)的實(shí)體是由操作符標(biāo)識(shí)的實(shí)體指明了一個(gè)不可再分的服務(wù)原語(yǔ)指明了一個(gè)不可再分的服務(wù)原語(yǔ)請(qǐng)求一個(gè)操作的動(dòng)作被稱為調(diào)用一個(gè)操作請(qǐng)求一

23、個(gè)操作的動(dòng)作被稱為調(diào)用一個(gè)操作對(duì)一個(gè)操作功能的描述由輸入、輸出兩部分組成對(duì)一個(gè)操作功能的描述由輸入、輸出兩部分組成 也被稱為一個(gè)基調(diào)(也被稱為一個(gè)基調(diào)(signature)用于描述操作的輸入、輸出參數(shù)名稱及類型用于描述操作的輸入、輸出參數(shù)名稱及類型功能性(功能性(FunctionalFunctional)網(wǎng)絡(luò)環(huán)境下的不同軟件模塊的合作需要考慮的因素網(wǎng)絡(luò)環(huán)境下的不同軟件模塊的合作需要考慮的因素不僅僅包含功能方面不僅僅包含功能方面還涉及分布性、可靠性、安全性等方面的因素還涉及分布性、可靠性、安全性等方面的因素網(wǎng)絡(luò)環(huán)境下的接口網(wǎng)絡(luò)環(huán)境下的接口 除需要定義模塊的功能性內(nèi)容外除需要定義模塊的功能性內(nèi)容外

24、還需要定義模塊的約束性內(nèi)容還需要定義模塊的約束性內(nèi)容接口的約束性定義是指對(duì)功能以外特征的描述接口的約束性定義是指對(duì)功能以外特征的描述簡(jiǎn)單的包括:例外處理、執(zhí)行語(yǔ)義等簡(jiǎn)單的包括:例外處理、執(zhí)行語(yǔ)義等復(fù)雜一些的包括:復(fù)雜一些的包括:(1 1)行為特征)行為特征: :用于描述操作的輸出用于描述操作的輸出 通過(guò)對(duì)操作增加前置與后置條件而實(shí)現(xiàn)通過(guò)對(duì)操作增加前置與后置條件而實(shí)現(xiàn)(2 2)同步)同步特征特征: :用于描述分布性與并發(fā)性用于描述分布性與并發(fā)性約束性(約束性(ConstraintConstraint)2、接口定義語(yǔ)、接口定義語(yǔ)言言IDL: Interface Definition Languag

25、eWSDL: Web Service Description Language服務(wù)描述語(yǔ)言服務(wù)描述語(yǔ)言interface Hospital typedef string PatientId;PatientId admit_patient ( );void release_patient ( in PatientIdpatient );有的以描述結(jié)構(gòu)化程序的功能為主有的以描述結(jié)構(gòu)化程序的功能為主例如例如RPC-IDLRPC-IDL微軟的微軟的-IDL-IDL有的以描述對(duì)象的功能為主有的以描述對(duì)象的功能為主例如例如CORBACORBA的的IDLIDL有的以描述服務(wù)為主有的以描述服務(wù)為主例如例如we

26、b serviceweb service的的WSDLWSDL1 1)描述對(duì)象不描述對(duì)象不同同比較比較有的以具體計(jì)算機(jī)語(yǔ)言的方式表達(dá)有的以具體計(jì)算機(jī)語(yǔ)言的方式表達(dá)例如例如SUNSUN的的Java InterfaceJava Interface有的以獨(dú)立于具體的計(jì)算機(jī)語(yǔ)言有的以獨(dú)立于具體的計(jì)算機(jī)語(yǔ)言但十分類似于計(jì)算機(jī)語(yǔ)言的方式表達(dá)但十分類似于計(jì)算機(jī)語(yǔ)言的方式表達(dá)例如:例如:RPC-IDLRPC-IDL微軟的微軟的-IDL-IDLCORBACORBA的的IDLIDL有的以有的以XMLXML為方式表達(dá)為方式表達(dá)例如:例如:web serviceweb service的的WSDLWSDL2 2)描述方式

27、不)描述方式不同同有的僅描述接口的語(yǔ)法信息有的僅描述接口的語(yǔ)法信息例如:例如:RPC-IDL微軟的微軟的-IDLCORBA的的IDL有的還包括與底層協(xié)議的綁定信息有的還包括與底層協(xié)議的綁定信息例如:例如:WSDL等等在在CORBA中這部分信息包含在中這部分信息包含在IOR中中3)描述內(nèi)容不)描述內(nèi)容不同同五、交互實(shí)體的查找五、交互實(shí)體的查找網(wǎng)絡(luò)環(huán)境中的資源具有明顯的分布性這些資源可能分布于不同的節(jié)點(diǎn)之上問(wèn)題: 分布在不同節(jié)點(diǎn)上的實(shí)體如何查找到其他的實(shí)體?1、三種查找方、三種查找方式式2、命名服務(wù)、命名服務(wù)3、目錄服務(wù)、目錄服務(wù)4、合約服務(wù)、合約服務(wù)內(nèi)內(nèi) 容容l命名命名(Naming)服務(wù):服務(wù)

28、:通過(guò)外部名字定位構(gòu)件通過(guò)外部名字定位構(gòu)件類似于(電話本)白頁(yè)類似于(電話本)白頁(yè). 公司甲公司甲 67890001 公司乙公司乙 67890002 公司丙公司丙 67890003CORBA的命名服務(wù)的命名服務(wù)TCP/IP中的中的DNSCOM、JVM中的注冊(cè)表等中的注冊(cè)表等 皆提供了類似的服務(wù)皆提供了類似的服務(wù) 1、三種查找方、三種查找方式式l目錄目錄(Directory)服務(wù):服務(wù):通過(guò)服務(wù)特性定位構(gòu)件通過(guò)服務(wù)特性定位構(gòu)件類似于(電話本)黃頁(yè)類似于(電話本)黃頁(yè) IT領(lǐng)域領(lǐng)域 存儲(chǔ)器公司存儲(chǔ)器公司 公司甲公司甲 67890001 計(jì)算機(jī)公司計(jì)算機(jī)公司公司乙公司乙 67890002公司丙公司丙

29、 67890003公司丁公司丁 67890004SUN的網(wǎng)絡(luò)信息系統(tǒng)(的網(wǎng)絡(luò)信息系統(tǒng)(Network Information System:NIS)Novell目錄服務(wù)(目錄服務(wù)(Novell Directory Service:NDS)IUT/ISO的的X.500以及以及LDAPCORBA的交易服務(wù)的交易服務(wù)微軟的微軟的Active Directory Service等等提供了類似的服務(wù)提供了類似的服務(wù) l合約合約(Contract)服務(wù):服務(wù):通過(guò)技術(shù)規(guī)范定位構(gòu)件通過(guò)技術(shù)規(guī)范定位構(gòu)件綠頁(yè)綠頁(yè) IT領(lǐng)域領(lǐng)域 計(jì)算機(jī)公司計(jì)算機(jī)公司 公司乙公司乙 電話電話 67890002地址地址 北京市海淀區(qū)

30、中關(guān)村大街北京市海淀區(qū)中關(guān)村大街XX號(hào)號(hào) Email CPU Intel P4 硬盤(pán)硬盤(pán) Seagate 40G 鼠標(biāo)鼠標(biāo) 雙飛燕雙飛燕 USB Web Service的的UDDI即包含這方面的信息即包含這方面的信息CORBA的接口池也具有部分的接口池也具有部分“綠頁(yè)綠頁(yè)”功能功能 不同的查找服務(wù)提供的功能:不同的查找服務(wù)提供的功能: 白頁(yè)黃頁(yè)綠頁(yè)DNS CORBA Naming CORBA Trading CORBA IR X.500/LDAP UDDI名字是知識(shí)的基礎(chǔ)名字是知識(shí)的基礎(chǔ)本體論(本體論(Ontology)名實(shí)論(名,所以謂也,實(shí),所謂也名實(shí)論(名,所以謂也,實(shí),所謂也 墨子)墨

31、子)操作系統(tǒng)中的進(jìn)程名操作系統(tǒng)中的進(jìn)程名文件系統(tǒng)中的文件名文件系統(tǒng)中的文件名程序語(yǔ)言中的程序語(yǔ)言中的變量名、過(guò)程名、變量名、過(guò)程名、數(shù)據(jù)結(jié)構(gòu)名、對(duì)象名數(shù)據(jù)結(jié)構(gòu)名、對(duì)象名網(wǎng)絡(luò)環(huán)境下的計(jì)算機(jī)名、數(shù)據(jù)庫(kù)名網(wǎng)絡(luò)環(huán)境下的計(jì)算機(jī)名、數(shù)據(jù)庫(kù)名 、構(gòu)件名、構(gòu)件名2、命名服、命名服務(wù)務(wù)名字與標(biāo)識(shí)、引名字與標(biāo)識(shí)、引用用 標(biāo)識(shí)標(biāo)識(shí) 引用引用 名字與引用的關(guān)聯(lián)名字與引用的關(guān)聯(lián) 指代指代 名字名字 服務(wù)使用者的空間服務(wù)使用者的空間 服務(wù)提供者的空間服務(wù)提供者的空間 查找 注冊(cè) (綁定) 調(diào)用 解析 名字 引用 名字系名字系統(tǒng)統(tǒng)主要功能是將名字映射到對(duì)象主要功能是將名字映射到對(duì)象一組一組context的集合的集合l這些這

32、些context是連接的是連接的l使用同樣的命名規(guī)則使用同樣的命名規(guī)則l提供同樣的操作集合并具有同樣的語(yǔ)義提供同樣的操作集合并具有同樣的語(yǔ)義 例如:例如: c:/win98/system名字分名字分類類Atomic name(原子名字原子名字)l名字中不可分割的部分名字中不可分割的部分lUsr/local/bin中的中的usr, local, pku, edu, cnCompound name(復(fù)合名字)(復(fù)合名字)l包含了零個(gè)或多個(gè)原子名字的一個(gè)序列包含了零個(gè)或多個(gè)原子名字的一個(gè)序列l(wèi)Usr/local/bin, lComposite Name(合成名字)(合成名字) 與復(fù)合名字與復(fù)合名字(

33、compound name)不同不同 是跨越多個(gè)命名系統(tǒng)的名字是跨越多個(gè)命名系統(tǒng)的名字 包含了一個(gè)有序的復(fù)合或原子名字的列表包含了一個(gè)有序的復(fù)合或原子名字的列表l 每個(gè)復(fù)合或原子名字屬于不同的命名系統(tǒng)名字空間每個(gè)復(fù)合或原子名字屬于不同的命名系統(tǒng)名字空間 http:/ http : 來(lái)自來(lái)自“URL scheme-id”名字空間名字空間l /in-notes/rfc2195.txt : 來(lái)自來(lái)自DNS名字空間名字空間l Public/index.html : 來(lái)自主機(jī)文件的名字空間來(lái)自主機(jī)文件的名字空間l命名服務(wù)(命名服務(wù)(Naming Service) 維護(hù)了(分布或集中

34、式)系統(tǒng)中資源的名字維護(hù)了(分布或集中式)系統(tǒng)中資源的名字與地址之間的與地址之間的映射關(guān)系(映射關(guān)系(binding) 命名上下文命名上下文l Context 是一個(gè)對(duì)象是一個(gè)對(duì)象 其狀態(tài)(屬性)是一組其狀態(tài)(屬性)是一組binding的集合,這些的集合,這些binding的原子名字各不的原子名字各不相同相同 每個(gè)每個(gè)Context都有自己的命名規(guī)則都有自己的命名規(guī)則 至少提供至少提供lookup操作操作允許用戶查找指定允許用戶查找指定原子名字原子名字的對(duì)象的對(duì)象 也可能提供也可能提供建立建立/刪除刪除/枚舉枚舉binding的操作的操作l Initial Context 用戶使用命名服務(wù)的入

35、口用戶使用命名服務(wù)的入口lSubcontext 某個(gè)某個(gè)Context對(duì)象中的原子名字可以與另一個(gè)對(duì)象中的原子名字可以與另一個(gè)Context對(duì)象綁定,此時(shí)后者就是前者的對(duì)象綁定,此時(shí)后者就是前者的subcontext 目的是為了支持目的是為了支持復(fù)合名字復(fù)合名字的查找的查找l 按照原子名字的順序在對(duì)應(yīng)的按照原子名字的順序在對(duì)應(yīng)的subcontext中查找中查找bindingl 在在UNIX文件系統(tǒng)中,目錄類似文件系統(tǒng)中,目錄類似subcontext(usr, local),而路徑名類似復(fù)合名),而路徑名類似復(fù)合名字字(usr/local/bin) 解析名字解析名字根據(jù)名字查找屬性的過(guò)程根據(jù)名字

36、查找屬性的過(guò)程 developer 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 3、目錄服務(wù)、目錄服務(wù)基本實(shí)現(xiàn)基本實(shí)現(xiàn) 目錄服務(wù)目錄服務(wù)是增強(qiáng)的命名服務(wù)是增強(qiáng)的命名服務(wù)存儲(chǔ)了一組名字與屬性的關(guān)聯(lián)集合存儲(chǔ)了一組名字與屬性的關(guān)聯(lián)集合 目錄對(duì)象目錄對(duì)象(Directory object)命名系統(tǒng)中一類特殊的對(duì)象,用以表達(dá)計(jì)算環(huán)境的多種信息命名系統(tǒng)中一類特殊的對(duì)象,用以表達(dá)計(jì)算環(huán)境的多種信息換言之,維護(hù)了(分布或

37、集中式)系統(tǒng)中資源的名字與及其換言之,維護(hù)了(分布或集中式)系統(tǒng)中資源的名字與及其多種信息的映射關(guān)系多種信息的映射關(guān)系一個(gè)目錄對(duì)象具有多個(gè)屬性一個(gè)目錄對(duì)象具有多個(gè)屬性(attributes)一個(gè)屬性具有一個(gè)標(biāo)識(shí)符一個(gè)屬性具有一個(gè)標(biāo)識(shí)符(identifier)以及一組值以及一組值(values)一個(gè)目錄對(duì)象同時(shí)可以是一個(gè)一個(gè)目錄對(duì)象同時(shí)可以是一個(gè)context,因此,這種特殊的,因此,這種特殊的對(duì)象不僅可以維護(hù)名字到對(duì)象的映射,也可以維護(hù)與這個(gè)對(duì)象不僅可以維護(hù)名字到對(duì)象的映射,也可以維護(hù)與這個(gè)binding相關(guān)的一些信息相關(guān)的一些信息CORBA Trader Service Naming System Directory Object Context Binding Attribute Attribute Attribute ( as a context ) identifier value value name object 4、合約服、合約服務(wù)務(wù)合約服務(wù)合約服務(wù)是增強(qiáng)的目錄服務(wù)是增強(qiáng)的目錄服務(wù)可以在不斷變化的網(wǎng)絡(luò)環(huán)境中提供定位服務(wù)的功能可以在不斷變化的網(wǎng)絡(luò)環(huán)境中提供定位服務(wù)的功能目前只有目前只有Web服務(wù)的服務(wù)的UDDI提供合約服務(wù)提供合約服

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論