版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第2章 分布式通信 中國科技大學軟件學院丁箐第1頁,共138頁。主要內(nèi)容2.1 通信基礎(chǔ)2.2 客戶/服務器模型2.3 套接字socket 2.4 遠程過程調(diào)用2.5 Web Service 2.6 消息隊列 2.7 分布式對象2.8 組通信第2頁,共138頁。2主要內(nèi)容2.1 通信基礎(chǔ)2.2 客戶/服務器模型2.3 套接字socket 2.4 遠程過程調(diào)用2.5 Web Service 2.6 消息隊列 2.7 分布式對象2.8 組通信第3頁,共138頁。32.1 通信基礎(chǔ)開放式系統(tǒng):使用標準化規(guī)則與其它開放系統(tǒng)通信的系統(tǒng) 協(xié)議:進程間通信所必須遵循的規(guī)則,消息的格式、內(nèi)容和意義協(xié)議的種類面
2、向連接、非面向連接分層協(xié)議ISO OSI參考模型Internet第4頁,共138頁。4OSI參考模型分層協(xié)議進程A進程B第5頁,共138頁。5The Internet 協(xié)議NetworkIPTCPUDPApplicationTransportDatagramsMessages (UDP)Streams (TCP)第6頁,共138頁。6典型消息結(jié)構(gòu)第7頁,共138頁。7網(wǎng)絡技術(shù)的發(fā)展(1)分組交換協(xié)議Dr.L.Kleinrock(MIT),1962TCP/IP協(xié)議R.Kahn(MIT,ARPA),V,Cerf(UCB,Stanford), IEEE通信974CDMA協(xié)議與EthernetDr.B
3、.Metcalfe(HU,MIT,PARC),19733COM,以太網(wǎng)適配器第8頁,共138頁。8網(wǎng)絡技術(shù)的發(fā)展(2)ARPANET與InternetIPTO,Dr.J.Licklider(1960),Dr.B.Taylor(1966)Dr.L.Roberts(MIT),BBN公司ARPANET(1969,UCB,SRI)Stanford校園網(wǎng)與LANL.Bosack,S.Lerner(Stanford),1980-1983Cisco(1984),Cisco路由器第9頁,共138頁。9ATM網(wǎng)絡技術(shù)分組交換、線路交換和信元交換信元(cell):小的、定長的單元信元交換:同時支持點到點(poin
4、t-point)和多播(multicast)功能第10頁,共138頁。10ATM參考模型物理層:SONETOC-1(51.8M),OC-3c(155M)ATM層:信元傳輸和路由適配層:VBR,CBR上面各層適配層ATM層物理層第11頁,共138頁。11信元頭格式第12頁,共138頁。12ATM交換網(wǎng)絡及交換機內(nèi)部構(gòu)造第13頁,共138頁。13主要內(nèi)容2.1 通信基礎(chǔ)2.2 客戶/服務器模型2.3 套接字socket 2.4 遠程過程調(diào)用2.5 Web Service 2.6 消息隊列 2.7 分布式對象2.8 組通信第14頁,共138頁。142.2 客戶/服務器模型 服務器:為用戶提供服務的一
5、組協(xié)同進程 客戶:代理用戶第15頁,共138頁。15客戶/服務器(1-1)ServerClientClientinvocationresultServerinvocationresult第16頁,共138頁。16客戶-服務器交互 (I)Remote procedure call第17頁,共138頁。17客戶-服務器交互(II)多層結(jié)構(gòu)第18頁,共138頁。18客戶-服務器交互(III)異步 remote procedure call第19頁,共138頁。19客戶/服務器(1-N)第20頁,共138頁。20Example: Web proxy server第21頁,共138頁。21客戶-服務器交
6、互(IV)第22頁,共138頁。22Peer-to-Peer 合作第23頁,共138頁。23Mobile Code Example: Applet第24頁,共138頁。24瘦客戶ThinClientApplicationProcessNetwork computer or PCCompute servernetwork第25頁,共138頁。25消息格式struct message long source; /* 發(fā)送者標識*/ long dest; /* 接受者標識 */ long opcode; /* 操作碼:讀、寫、創(chuàng)建、刪除 */ long result; /* 返回結(jié)果代碼 :成功、失
7、敗*/ long offset; /* 讀寫位置 */ long count; /* 讀寫計數(shù) */ char filenameMAX_PATH; /* 文件名*/ char dataBUF_SIZE; /* 數(shù)據(jù)區(qū)*/第26頁,共138頁。26服務器程序void main(void) struct message m1,m2; /* 輸入、輸出的消息 */ int r; /* 返回的執(zhí)行結(jié)果 */ while (1) receive(FILE_SERVER,&m1); /* 等待客戶請求 */ case(m1.opcode) /* 執(zhí)行請求的操作 */ case READ: r = do_r
8、ead(&m1,&m2); break; : default: r = E_BAD_OPCODE; m2.result = r; send(m1.source,&m2); /* 返回結(jié)果 */ 第27頁,共138頁。27客戶程序int read(char *file, int position , int nbytes, char *buf) struct message m1; /* 消息緩沖區(qū) */ m1.opcode = READ; /* 設(shè)置參數(shù) */ m1.offset = position; /* 讀位置 */ m1.count = nbytes; /* 讀長度 */ strcpy
9、(&m1.filename,src) /* 文件名 */ send(FILE_SERVER, &m1); /* 發(fā)送請求 */ receive(CLIENT,&m1); /* 等待服務器應答 */ if(m1.result = OK) strcpy(buf, &m1.data); /* 置緩沖區(qū) */ return(m1.result); /* 返回結(jié)果 */ 第28頁,共138頁。28尋址方式(Addressing)1、機器號+本地標識號例:UNIX機器IP地址端口號(port)/* Socket address, internet style. */struct sockaddr_in s
10、hort sin_family; /*AF_INET*/ u_short sin_port; struct in_addr sin_addr; char sin_zero8;第29頁,共138頁。292、廣播定位進程全局唯一標識號第30頁,共138頁。303、ASCII碼進程名名字服務器第31頁,共138頁。31阻塞與非阻塞原語 (1)阻塞發(fā)送原語 同步原語(2)非阻塞發(fā)送原語 異步原語在消息被發(fā)送之前,發(fā)送者不能修改消息緩沖區(qū) 時間時間第32頁,共138頁。32有緩沖與無緩沖型接收無緩沖區(qū)發(fā)送比接收先發(fā)生 ?直接丟棄消息暫存“意外”消息有緩沖區(qū)郵箱(mailbox):緩存所有的輸入消息“溢出
11、”問題第33頁,共138頁。33可靠的和非可靠的發(fā)送和接收非可靠的收發(fā)可能丟失消息由用戶負責確認獨立的確認消息內(nèi)核-內(nèi)核確認應答用作請求的確認消息客戶內(nèi)核確認折衷方法服務器端設(shè)置計時器,超時后,發(fā)確認消息第34頁,共138頁。34第35頁,共138頁。35實現(xiàn)技術(shù)小結(jié)項目選擇1選擇2 選擇3尋址機器+進程共享進程地址ASCII名字通過服務器查找阻塞阻塞原語具有拷貝到核的非阻塞 具有中斷的非阻塞原語無緩沖,丟棄不期望的消息無緩沖,臨時保持不期望的消息郵箱可靠性非可靠請求-應答確認第36頁,共138頁。36客戶/服務器協(xié)議中的包類型代碼包類型來源至說明REQ請求客戶服務器客戶要求服務REP應答服務
12、器客戶服務器對客戶的應答ACK確認服務器、客戶其他前面的包已到達AYA你在這里嗎?客戶服務器查看服務器是否崩潰IAA我在這里服務器客戶服務器沒有崩潰TA再試一次?服務器客戶服務器沒有空間AU地址未知服務器客戶沒有進程在使用此地址第37頁,共138頁。37包交換舉例第38頁,共138頁。38主要內(nèi)容2.1 通信基礎(chǔ)2.2 客戶/服務器模型2.3 套接字socket 2.4 遠程過程調(diào)用2.5 Web Service 2.6 消息隊列 2.7 分布式對象2.8 組通信第39頁,共138頁。392.3 套接字socket socket通信的基本原理 socket通信的工作過程第40頁,共138頁。4
13、0 一個socket在邏輯上有三個特征(三要素):網(wǎng)域類型規(guī)程第41頁,共138頁。41網(wǎng)域:表明一個socket用于哪一種網(wǎng)絡或說哪一族網(wǎng)絡規(guī)程。各種網(wǎng)絡對節(jié)點地址的命名方法不同,又稱“地址族”或“規(guī)程族”。AF_INET表示Internet網(wǎng)插口,故各節(jié)點使用IP地址。AF_IPX為Novell的IPX網(wǎng)插口,AF_X25為X.25網(wǎng)插口,等等。其中的特殊,不走網(wǎng)絡而在同一臺計算機上用于進程通信,BSD稱為AF_UNIX,在POSIX標準里定義了一種AF_LOCAL域名。第42頁,共138頁。42類型:表明網(wǎng)絡中通信所遵循的模式“面向連接”:又叫“虛電路”模式,通信雙方先要在互相之間建立起
14、一種虛擬連接(線路),再通過虛擬線路進行通信。在通信過程中,所有報文傳遞保持原來次序,所以,報文之間是有關(guān)聯(lián)的,每個報文都不是孤立的。在這種模式中,所有報文的傳遞都是可靠的,由網(wǎng)絡中物理線路引入差錯控制來保證。 “無連接”:事先不必建立虛線路,直接可發(fā)送和接收報文。但報文是孤立的,正確性沒有保證,甚至可能丟失。由于網(wǎng)絡延遲或路徑不同,接收端收到報文的次序可能與發(fā)送端發(fā)送報文的次序不一樣。這種模式傳遞的報文是不可靠的,無保證的。也沒有“流量控制”手段,進程從系統(tǒng)調(diào)用返回時僅表明該socket會把報文發(fā)送去,并不表明報文已到達了接收方的socket。 第43頁,共138頁。43規(guī)程:表明具體網(wǎng)絡規(guī)
15、程。一般來說,網(wǎng)域與類型結(jié)合作一起就大體上決定了規(guī)程。如網(wǎng)域為AF_INET,而類型為“無連接”,則規(guī)程大致為UDP了。但有時,還會有其他選擇。第44頁,共138頁。44Berkeley Sockets APISocket primitives for TCP/IP.PrimitiveMeaningSocketCreate a new communication endpointBindAttach a local address to a socketListenAnnounce willingness to accept connectionsAcceptBlock caller unti
16、l a connection request arrivesConnectActively attempt to establish a connectionSendSend some data over the connectionReceiveReceive some data over the connectionCloseRelease the connection第45頁,共138頁。45基本的socket調(diào)用recvsendsocketbindlocalhostsockaddr_in()listenacceptpeersockaddr_in()socketconnectrecvse
17、ndpeersockaddr_in()SERVERCLIENT第46頁,共138頁。46 服務器方客戶方socket()建立數(shù)據(jù)報式套接字,返回套接字號socket()建立數(shù)據(jù)報式套接字,返回套接字號bind()把套接字s與本地地址相連接bind()把套接字s與本地地址相連接recvfrom()/sendto()在s上讀寫數(shù)據(jù),直至結(jié)束recvfrom()/sendto()在s上讀寫數(shù)據(jù),直至結(jié)束closesocket()關(guān)閉套接字,服務結(jié)束closesocket()關(guān)閉套接字,結(jié)束對話無連接協(xié)議的套接字調(diào)用時序第47頁,共138頁。47 面向連接的套接字調(diào)用時序accept()接收連接,并得
18、到第二個套接字nsrecev()/send()在ns上讀寫數(shù)據(jù),直到結(jié)束Closesocket()關(guān)閉套接字s,結(jié)束TCP/IP對話服務器方客戶方socket()建立流式套接字,返回套接字號sbind()把套接字s與本地地址相連listen()通知TCP/IP,服務器準備好接收連接closesocket()關(guān)閉套接字nsclosesocket()關(guān)閉最初套接字ssocket()建立流式套接字,返回套接字號sconnect()把套接字s與遠程主機相連send()/recev()在ns上讀寫數(shù)據(jù),直到結(jié)束建立連接服務請求服務響應第48頁,共138頁。48Berkeley Sockets調(diào)用 Con
19、nection-oriented communication pattern using sockets.第49頁,共138頁。49數(shù)據(jù)流 (1)Setting up a stream between two processes across a network.第50頁,共138頁。50數(shù)據(jù)流(2)Setting up a stream directly between two devices.第51頁,共138頁。51數(shù)據(jù)流(3)An example of multicasting a stream to several receivers.第52頁,共138頁。52定義 QoS (1)A
20、 flow specification.Characteristics of the InputService Requiredmaximum data unit size (bytes)Token bucket rate (bytes/sec)Toke bucket size (bytes)Maximum transmission rate (bytes/sec)Loss sensitivity (bytes)Loss interval (sec)Burst loss sensitivity (data units)Minimum delay noticed (sec)Maximum del
21、ay variation (sec)Quality of guarantee第53頁,共138頁。53定義 QoS (2)The principle of a token bucket algorithm.第54頁,共138頁。54配置流The basic organization of RSVP for resource reservation in a distributed system.第55頁,共138頁。55同步機制 (1)The principle of explicit synchronization on the level data units.第56頁,共138頁。56同
22、步機制 (2)The principle of synchronization as supported by high-level interfaces.2-41第57頁,共138頁。57主要內(nèi)容2.1 通信基礎(chǔ)2.2 客戶/服務器模型2.3 套接字socket 2.4 遠程過程調(diào)用2.5 Web Service 2.6 消息隊列 2.7 分布式對象2.8 組通信第58頁,共138頁。582.4 遠程過程調(diào)用允許程序去調(diào)用位于其它機器上的過程 調(diào)用者和被調(diào)者都不用考慮消息通信舉例:int read(int fd, char * buf, int nbytes);count = read(fd
23、, buf, nbytes);參數(shù)傳遞call-by-valuecall-by-reference第59頁,共138頁。59傳統(tǒng)的過程調(diào)用本地過程調(diào)用中的參數(shù)傳遞:調(diào)用讀前的堆棧調(diào)用過程激活時的堆棧第60頁,共138頁。60軟件層Applications and ServicesRPC and RMIrequest-reply protocolmarshalling and external data representationUDP and TCPmiddlewareRPC is more than a (transport) protocol: a structuring mechani
24、sm for distributed systems第61頁,共138頁。61RPC中的調(diào)用與消息 客戶機客戶存根客戶應用客戶OS內(nèi)核本地調(diào)用客戶打包參數(shù)拆包參數(shù)返回結(jié)果OS內(nèi)核服務器 本地調(diào)用服務存根服務應用服務過程打包參數(shù)拆包參數(shù)返回結(jié)果OS內(nèi)核網(wǎng)絡消息傳送12345678910第62頁,共138頁。62RPC執(zhí)行的主要步驟1.客戶過程以普通方式調(diào)用相應的客戶存根。2.客戶存根建立消息并激活內(nèi)核陷阱。3.內(nèi)核將消息發(fā)送到遠程內(nèi)核。4.遠程內(nèi)核將消息送到服務器存根。5.服務器存根取出消息中的參數(shù)后調(diào)用服務器的過程。6.服務器完成工作后將結(jié)果返回至服務器存根。7.服務器存根將它打包并激活內(nèi)核陷
25、阱。8.遠程內(nèi)核將消息發(fā)送至客戶內(nèi)核。9.客戶內(nèi)核將消息交給客戶存根。10.客戶存根從消息中取出結(jié)果返回給客戶。第63頁,共138頁。63客戶和服務StubsPrinciple of RPC between a client & server program.第64頁,共138頁。64異步RPC (I)第65頁,共138頁。65異步RPC (II)第66頁,共138頁。66編寫Client和Server的步驟第67頁,共138頁。67RPC編程舉例/* 生成RPC程序 */rpcgen FILE_RPC.x=編譯結(jié)果 /* 參數(shù)定義 */ FILE_RPC_xdr.c /* 服務器端程序 */
26、 FILE_RPC_svc.c /* server存根 */ FILE_RPC_server.c /* 服務器模版程序 */ /* 客戶端程序 */ FILE_RPC_clnt.c /* client存根 */ FILE_RPC_client.c /* 客戶模版程序 */第68頁,共138頁。68RPC申明- File_RPC.x #define RPC_ARGSIZE 256#define RPC_RETSIZE 256/* the interface version number */#define uSERVERVERS1/* program number range establish
27、ed by ONC */#define uSERVERPROG 0 x20000051struct CallArg_t char bodyRPC_ARGSIZE; /* RPCs arg data form */struct Return_t char bodyRPC_RETSIZE; /* RPCs arg data form */* program definition*/program SERVERPROG version SERVERVERS Return_t FILE_CREATE(CallArg_t) = 1;Return_t FILE_READ(CallArg_t) = 2; R
28、eturn_t FILE_WRITE(CallArg_t) = 3; Return_t FILE_DEL(CallArg_t) = 2; = uSERVERVERS; = uSERVERPROG;第69頁,共138頁。69RPC服務端程序 - FileRPC_svc.c .void main2() SVCXPRT *transp; transp = svcudp_create(RPC_ANYSOCK); svc_register(transp, SERVERPROG, SERVERVERS, serverprog_1, IPPROTO_UDP); /* 注冊 */ transp = svctc
29、p_create(RPC_ANYSOCK, 0, 0); svc_register(transp, SERVERPROG, SERVERVERS, serverprog_1, IPPROTO_TCP) ; /* 注冊 */ svc_run(); / 啟動RPC exit(1);static void serverprog_1(struct svc_req * rqstp, SVCXPRT * transp) union CallArg_t file_create_1_arg;CallArg_t file_read_1_arg; : argument; switch (rqstp-rq_proc
30、) : case FILE_READ: xdr_argument = xdr_CallArg_t; xdr_result = xdr_Return_t; local = (char *(*)(char *,struct svc_req *) file_read_1_svc; break; : default:svcerr_noproc(transp);return; 第70頁,共138頁。70RPC客戶端程序 - FileRPC_clnt.c ./* Default timeout can be changed using clnt_control() */static struct time
31、val TIMEOUT = 25, 0 ;Return_t * file_read_1(CallArg_t *argp, CLIENT *clnt) static Return_t res; bzero(char *)&res, sizeof(res);if (clnt_call(clnt, FILE_READ, xdr_CallArg_t, argp, xdr_Return_t, &res, TIMEOUT) != RPC_SUCCESS) return (NULL);return (&res); .第71頁,共138頁。71基本RPC操作(a)調(diào)用read之前的棧; b)調(diào)用過程處于激活狀
32、態(tài)時的棧; (c)返回調(diào)用者之后的棧 值參調(diào)用和變參調(diào)用 call-by-copy/restore第72頁,共138頁。72參數(shù)定義和產(chǎn)生StubprocedureCorresponding message第73頁,共138頁。73參數(shù)傳遞參數(shù)編組(marshalling):將參數(shù)裝入消息例:add(i,j)遠程計算第74頁,共138頁。74參數(shù)傳遞問題編碼表示:ASCII, EDBIC數(shù)字表示:小末端、大末端規(guī)范形式:整形、字符型、布爾型、浮點型等指針參數(shù):copy/restoredereference第75頁,共138頁。75參數(shù)傳遞問題(a)486中的原始消息;(b)在SPARC上接受到
33、的消息;(c)經(jīng)過翻譯之后的消息;(框中的小數(shù)字表明了每一個字節(jié)的地址) 第76頁,共138頁。76建立表示基本數(shù)據(jù)類型的標準 第77頁,共138頁。77參數(shù)傳遞問題如何傳遞 指針 ?只有在特定地址空間才有意義! 已知長度的數(shù)組和結(jié)構(gòu)Copy/restore 語義IN/OUT/INOUT 標簽到任意數(shù)據(jù)結(jié)構(gòu)的指針 ?沒有一般的解決辦法 通常: 把指針傳遞給它的 “源”第78頁,共138頁。78客戶如何定位服務器呢?將服務器的網(wǎng)絡地址固化到客戶機中 動態(tài)捆綁 第79頁,共138頁。79動態(tài)捆綁 綁定、調(diào)用客戶綁定器服務器注冊、取消查找 第80頁,共138頁。80綁定(SUN RPC)Port M
34、apper (rpcbind) listens at UDP port 111Server registers program ID & versionrpcinfo -p - display all registered RPC serversWhen client issues clnt_create, the port mapper is contacted:program-to-port number mappingarguments: (program ID, version, protocol)response: servers port number第81頁,共138頁。81綁定
35、(DCE)第82頁,共138頁。82綁定接口句柄(handle): 如IP地址唯一標識(ID):程序號認證:身份標識調(diào)用輸 入輸 出注冊名字、版本、句柄、唯一id注銷名字、版本、唯一id查找名字、版本句柄、唯一id第83頁,共138頁。83RPC故障處理客戶不能定位服務器返回錯誤號errno產(chǎn)生例外:SIG_NOSERVER丟失請求信息超時重發(fā)丟失應答信息等冪性請求序號第84頁,共138頁。84RPC故障處理4. 服務器崩潰解決至少一次語義 (重發(fā)請求 )至多一次語義 (立即放棄并報告失敗)不做任何保證恰好一次?(a)正常狀態(tài);(b)執(zhí)行后崩潰;(c)執(zhí)行前崩潰第85頁,共138頁。85RPC
36、故障處理5. 客戶崩潰孤兒問題:資源浪費、資源封鎖解決方案:根除(日志文件 )再生(epochs,所有遠程計算被終止 )溫和再生(試圖去找到該遠程計算的調(diào)用者 )過期(標準時間段T )第86頁,共138頁。86RPC實現(xiàn)技術(shù)RPC可以使用哪些協(xié)議?TCP 提供可靠傳輸ACKs, timeouts, retransmissionsUDP 不提供可靠傳輸,但RPC執(zhí)行RETRANSMIT timeout因此在total timeout后,無論使用TCP或UDP都重復請求TCP需要建立連接 對于一些短的RPCs,有額外開銷專門協(xié)議信包和報文的長度 第87頁,共138頁。87RPC實現(xiàn)技術(shù)確認停等(s
37、top-and-waitt)協(xié)議(b)爆發(fā) (blast)協(xié)議差錯控制流量控制:數(shù)據(jù)溢出(overrun)第88頁,共138頁。88RPC實現(xiàn)技術(shù)關(guān)鍵路徑客戶機調(diào)用存根過程準備消息緩沖區(qū)將參數(shù)編排進緩沖區(qū)填寫消息頭陷入內(nèi)核將上下文切換到內(nèi)核將消息復制到內(nèi)核確定目的地址將地址寫入消息頭設(shè)置網(wǎng)絡接口啟動計時器服務器執(zhí)行服務調(diào)用服務器在堆棧上設(shè)置參數(shù)解析參數(shù)將上下文切換到存根將消息復制到存根檢查存根是否在等待確定使用哪個服務器存根檢查消息包的有效性處理中斷第89頁,共138頁。89RPC實現(xiàn)技術(shù)拷貝DMA分散-聚集(scatter-gather)虛擬內(nèi)存映射客戶存根網(wǎng)絡內(nèi)核內(nèi)核服務器存根第90頁,共
38、138頁。90RPC實現(xiàn)技術(shù)計時器管理計時器列表掃描算法(sweep algorithms) (a)排序表中的時間片耗盡;(b)進程表中的時間片耗盡 第91頁,共138頁。91RPC實現(xiàn)技術(shù)6. 存在的問題全局變量的共享弱數(shù)據(jù)類型的傳遞,數(shù)組?指針傳遞管道:讀驅(qū)動、寫驅(qū)動(a)管道(b)讀驅(qū)動方法(c)寫驅(qū)動方法 第92頁,共138頁。92主要內(nèi)容2.1 通信基礎(chǔ)2.2 客戶/服務器模型2.3 套接字socket 2.4 遠程過程調(diào)用2.5 Web Service 2.6 消息隊列 2.7 分布式對象2.8 組通信第93頁,共138頁。932.5 Web Services “Web servi
39、ces” is an effort to build a distributed computing platform for the Web.第94頁,共138頁。94Web Services 框架可以用術(shù)語描述為:What goes “on the wire”: Formats and protocols.What describes what goes on the wire:Description languages.What allows us to find these descriptions:Discovery of services.第95頁,共138頁。95Web-Serv
40、ices 體系結(jié)構(gòu)SOAP消息服務提供方服務請求方服務代理方 WSDL docs 使用 e-services的應用2創(chuàng)建業(yè)務/服務 1發(fā)現(xiàn)業(yè)務/服務 437調(diào)用服務 8UDDIRegistryXSD docsServlets, CGI, Perl65檢索 WSDL文檔 第96頁,共138頁。96XML Messaging: SOAPSOAP 1.1 defined:An XML envelope for XML messaging,Headers + bodyAn HTTP binding for SOAP messaging.SOAP is “transport independent”.A
41、 convention for doing RPC.An XML serialization format for structured dataSOAP Attachments addsHow to carry and reference data attachments using in a MIME envelope and a SOAP envelope.第97頁,共138頁。97The SOAP Envelope . . .第98頁,共138頁。98What goes on the wireInternet-scale integration needs a lingua-franc
42、aXML messaging protocol over HTTP: SOAPIntra-enterprise integration needs to allow alternates:CORBA, RMIMessagingIn-memory method callsSOAP SecurityAttachmentsReliabilityRoutingTransactionsContextW3C第99頁,共138頁。99Descriptions: Meta-dataIntegration requires interoperable machine-understandable descrip
43、tionsEnables dynamic, delayed binding of components. Language extensibility provides support for different levels of application integration.InterfaceService QoS ServicePublic FlowsFlows and CompositionAgreementsWSDLWSFLXML Schema第100頁,共138頁。100Web Services Description LanguageProvides functional de
44、scription of network services: IDL descriptionProtocol and deployment detailsPlatform independent description. Extensible language.A short history:WSDL v1.0, 9/2000WSDL v1.1 submitted to W3C 3/2001.A de facto industry standard.第101頁,共138頁。101WSDL StructureportTypeAbstract definition of a service (se
45、t of operations)Multiple bindings per portType:How to access itSOAP, JMS, direct callPortsWhere to access itServicePort(e.g. http:/host/svc)Binding(e.g. SOAP)Abstract interfaceportTypeoperation(s)inMesageoutMessagePortBinding第102頁,共138頁。102Using WSDLAs extended IDL: WSDL allows tools to generate com
46、patible client and server stubs.Tool support for top-down, bottom-up and “meet in the middle” development.Allows industries to define standardized service interfaces.Allows advertisement of service descriptions, enables dynamic discovery and binding of compatible services. Used in conjunction with U
47、DDI registryProvides a normalized description of heterogeneous applications.第103頁,共138頁。103Client Proxy objectRMI-IIOPJMS/MQSOAP/HTTPClient invocationSingle stub can invoke services over different bindingsDepends only on abstract interface.Are independent of binding (but pluggable).Add new bindings
48、without recompiling/redeploying stubAllows optimisations based on the bindings of service.Will support extended services models if describedIn WSDL第104頁,共138頁。104WSFL OverviewWSFL describes Web Service compositions.Usage patterns of Web Services: describes workflow or business processes.Interaction
49、patterns: describes overall partner interactions.ABC WS WS第105頁,共138頁。105WSFL Flow ModelsActivities represent units of processing.Flow of data is modeled through data links. WSActivities can be mapped to the flow interfaceControl links define execution flow as a directed acyclic graphActivities are
50、associated with specific typed service providers第106頁,共138頁。106Using Flow Models“Public flows” provide a representation of the service behavior as required by its users.Typically, an abstraction of the actual flow begin executedDefines a “behavioral contract” for the service.Internal implementation
51、need not be flow-based.Flows are reusable: specify components types, but not what specific services should be used!“Private flows” are the flows executed in practice. WSFL serves as a “portable flow implementation language”Same language is used in WSFL to represent both types of processes. 第107頁,共13
52、8頁。107Global ModelsGlobal models describe how the composed Web Services interact. RosettaNet automated.Like an ADL.Interactions are modeled as links between endpoints of two service interfaces (WSDL operations).An essentially distributed description of the interaction. ABC第108頁,共138頁。108Discovery: F
53、inding Meta-dataStatic binding requires service “l(fā)ibraries”.Dynamic binding requires runtime discovery of meta-dataInspectionDirectoryADS,DISCOUDDI第109頁,共138頁。109UDDI OverviewUDDI defines the operation of a service registry:Data structures for registeringBusinessesTechnical specifications: tModel is
54、 a keyed reference to a technical specification.Service and service endpoints: referencing the supported tModelsSOAP Access APIRules for the operation of a global registry“private” UDDI nodes are likely to appear, though.第110頁,共138頁。110UDDI RelationshipsWeb ServiceWeb ServiceSIC CODENAICSDUNS Number
55、sThomas Registry IDRosetta-NetBASDASimple.BuySchemas,Interchange specificationbusinessEntitybusinessEntitybusinessEntitybusinessServicebusinessServicebindingTemplatebindingTemplateInstanceDetailsInstanceDetailscategoryBagkeyedReferencekeyedReferenceidentifierBagkeyedReferencekeyedReferencetModels第11
56、1頁,共138頁。111主要內(nèi)容2.1 通信基礎(chǔ)2.2 客戶/服務器模型2.3 套接字socket 2.4 遠程過程調(diào)用2.5 Web Service 2.6 消息隊列 2.7 分布式對象2.8 組通信第112頁,共138頁。1122.6 消息隊列四種松散組合的通信使用隊列第113頁,共138頁。113消息隊列原語PrimitiveMeaningPutAppend a message to a specified queueGetBlock until the specified queue is nonempty, and remove the first messagePollCheck
57、a specified queue for messages, and remove the first. Never block.NotifyInstall a handler to be called when a message is put into the specified queue.第114頁,共138頁。114消息隊列的一般結(jié)構(gòu) (I)隊列層地址和網(wǎng)絡層地址間的關(guān)系第115頁,共138頁。115消息隊列的一般結(jié)構(gòu)(II)2-29第116頁,共138頁。116消息代理The general organization of a message broker in a messag
58、e-queuing system.第117頁,共138頁。117IBM MQSeries第118頁,共138頁。118ChannelsSome attributes associated with message channel agents.AttributeDescriptionTransport typeDetermines the transport protocol to be usedFIFO deliveryIndicates that messages are to be delivered in the order they are sentMessage lengthMaximum length of a single messageSetup retry countSpecifies maximum number of retries to start up the remote MCADelivery retriesMaximum times MCA will try to put received message into queue第119頁,共138頁。119消息傳輸 (I)使用路由表和別名表第120頁,共138頁。120消息傳輸 (II)IB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高一學生學習計劃
- 好玩的游戲幼兒園戶外小班教案
- 公司季度工作計劃合集7篇
- 500ta多晶硅、16kta三氯氫硅新建可行性研究報告-圖文
- 競聘衛(wèi)生演講稿范文合集7篇
- 國慶閱兵觀后感
- 小學五年級教學工作計劃大全
- 學生年度學習計劃
- 小松機械制造(山東)有限公司HD系列重卡生產(chǎn)項目環(huán)評報告表
- 交通安全保證書模板集錦10篇
- 校園自動售貨機投標書模板
- Word使用技巧培訓課件下載兩篇
- 加強對道路交通違法行為的打擊力度維護社會秩序
- 初中學生網(wǎng)絡安全教育(完美版)課件兩篇
- 報價單(報價單模板)
- 2023教學工作檢查評估總結(jié)
- 銅排設(shè)計技術(shù)規(guī)范
- 英國文學史及選讀復習要點總結(jié)
- 貴州省貴陽市花溪區(qū)2023-2024學年數(shù)學三年級第一學期期末聯(lián)考試題含答案
- 整改回復書樣板后邊附帶圖片
- 中小學校園人車分流方案模板
評論
0/150
提交評論