分布式通信课件_第1页
分布式通信课件_第2页
分布式通信课件_第3页
分布式通信课件_第4页
分布式通信课件_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分布式通信2022/10/18分布式通信分布式通信2022/10/15分布式通信主要内容2.1通信基础2.2客户/服务器模型2.3套接字socket

2.4远程过程调用2.5WebService

2.6消息队列

2.7分布式对象2.8组通信分布式通信2主要内容2.1通信基础分布式通信2主要内容2.1通信基础2.2客户/服务器模型2.3套接字socket

2.4远程过程调用2.5WebService

2.6消息队列

2.7分布式对象2.8组通信分布式通信3主要内容2.1通信基础分布式通信32.1通信基础开放式系统:使用标准化规则与其它开放系统通信的系统协议:进程间通信所必须遵循的规则,消息的格式、内容和意义协议的种类面向连接、非面向连接分层协议ISOOSI参考模型Internet分布式通信42.1通信基础开放式系统:使用标准化规则与其它开放系统通信OSI参考模型分层协议进程A进程B分布式通信5OSI参考模型分层协议进程A进程B分布式通信5TheInternet协议NetworkIPTCPUDPApplicationTransportDatagramsMessages(UDP)Streams(TCP)分布式通信6TheInternet协议NetworkIPTCPUDP典型消息结构分布式通信7典型消息结构分布式通信7网络技术的发展(1)分组交换协议Dr.L.Kleinrock(MIT),1962TCP/IP协议R.Kahn(MIT,ARPA),V,Cerf(UCB,Stanford),《IEEE通信》974CDMA协议与EthernetDr.B.Metcalfe(HU,MIT,PARC),19733COM,以太网适配器分布式通信8网络技术的发展(1)分组交换协议分布式通信8网络技术的发展(2)ARPANET与InternetIPTO,Dr.J.Licklider(1960),Dr.B.Taylor(1966)Dr.L.Roberts(MIT),BBN公司ARPANET(1969,UCB,SRI)Stanford校园网与LANL.Bosack,S.Lerner(Stanford),1980-1983Cisco(1984),Cisco路由器分布式通信9网络技术的发展(2)ARPANET与Internet分布式通ATM网络技术分组交换、线路交换和信元交换信元(cell):小的、定长的单元信元交换:同时支持点到点(point-point)和多播(multicast)功能分布式通信10ATM网络技术分组交换、线路交换和信元交换分布式通信10ATM参考模型物理层:SONETOC-1(51.8M),OC-3c(155M)ATM层:信元传输和路由适配层:VBR,CBR上面各层适配层ATM层物理层分布式通信11ATM参考模型物理层:上面各层适配层ATM层物理层分布式通信信元头格式分布式通信12信元头格式分布式通信12ATM交换网络及交换机内部构造分布式通信13ATM交换网络及交换机内部构造分布式通信13主要内容2.1通信基础2.2客户/服务器模型2.3套接字socket

2.4远程过程调用2.5WebService

2.6消息队列

2.7分布式对象2.8组通信分布式通信14主要内容2.1通信基础分布式通信142.2客户/服务器模型

服务器:为用户提供服务的一组协同进程

客户:代理用户分布式通信152.2客户/服务器模型服务器:为用户提供服务的一组协同进客户/服务器(1-1)ServerClientClientinvocationresultServerinvocationresult分布式通信16客户/服务器(1-1)ServerClientClienti客户-服务器交互(I)Remoteprocedurecall分布式通信17客户-服务器交互(I)Remoteprocedurec客户-服务器交互(II)多层结构分布式通信18客户-服务器交互(II)多层结构分布式通信18客户-服务器交互(III)异步remoteprocedurecall分布式通信19客户-服务器交互(III)异步remoteprocedu客户/服务器(1-N)分布式通信20客户/服务器(1-N)分布式通信20Example:Webproxyserver分布式通信21Example:Webproxyserver分布式通信客户-服务器交互(IV)分布式通信22客户-服务器交互(IV)分布式通信22Peer-to-Peer合作分布式通信23Peer-to-Peer合作分布式通信23MobileCodeExample:Applet分布式通信24MobileCodeExample:Applet分布式瘦客户ThinClientApplicationProcessNetworkcomputerorPCComputeservernetwork分布式通信25瘦客户ThinClientApplicationProces消息格式structmessage{longsource;/*发送者标识*/longdest;/*接受者标识*/longopcode;/*操作码:读、写、创建、删除*/longresult;/*返回结果代码:成功、失败*/longoffset;/*读写位置*/longcount;/*读写计数*/charfilename[MAX_PATH};/*文件名*/chardata[BUF_SIZE];/*数据区*/}分布式通信26消息格式structmessage{分布式通信26服务器程序voidmain(void){structmessagem1,m2;/*输入、输出的消息*/intr;/*返回的执行结果*/while(1){

receive(FILE_SERVER,&m1);/*等待客户请求*/case(m1.opcode){/*执行请求的操作*/caseREAD:r=do_read(&m1,&m2);break;:default:r=E_BAD_OPCODE;}m2.result=r;

send(m1.source,&m2);/*返回结果*/}}分布式通信27服务器程序voidmain(void){分布式通信27客户程序intread(char*file,intposition,intnbytes,char*buf){structmessagem1;/*消息缓冲区*/m1.opcode=READ;/*设置参数*/m1.offset=position;/*读位置*/m1.count=nbytes;/*读长度*/

strcpy(&m1.filename,src)/*文件名*/send(FILE_SERVER,&m1);/*发送请求*/receive(CLIENT,&m1);/*等待服务器应答*/

if(m1.result==OK)strcpy(buf,&m1.data);/*置缓冲区*/return(m1.result);/*返回结果*/}}分布式通信28客户程序intread(char*file,intp寻址方式(Addressing)1、机器号+本地标识号例:UNIX机器IP地址端口号(port)/*Socketaddress,internetstyle.*/structsockaddr_in{shortsin_family;/*AF_INET*/u_shortsin_port;structin_addrsin_addr;charsin_zero[8];};分布式通信29寻址方式(Addressing)1、机器号+本地标识号分布式2、广播定位进程全局唯一标识号分布式通信302、广播定位进程分布式通信303、ASCII码进程名名字服务器分布式通信313、ASCII码进程名分布式通信31阻塞与非阻塞原语(1)阻塞发送原语同步原语(2)非阻塞发送原语异步原语在消息被发送之前,发送者不能修改消息缓冲区

时间时间分布式通信32阻塞与非阻塞原语(1)阻塞发送原语时间时间分布式通信32有缓冲与无缓冲型接收无缓冲区发送比接收先发生?直接丢弃消息暂存“意外”消息有缓冲区邮箱(mailbox):缓存所有的输入消息“溢出”问题分布式通信33有缓冲与无缓冲型接收无缓冲区分布式通信33可靠的和非可靠的发送和接收非可靠的收发可能丢失消息由用户负责确认独立的确认消息内核-内核确认应答用作请求的确认消息客户内核确认折衷方法服务器端设置计时器,超时后,发确认消息分布式通信34可靠的和非可靠的发送和接收非可靠的收发分布式通信34分布式通信35分布式通信35实现技术小结项目选择1选择2选择3寻址机器+进程共享进程地址ASCII名字通过服务器查找阻塞阻塞原语具有拷贝到核的非阻塞具有中断的非阻塞原语无缓冲,丢弃不期望的消息无缓冲,临时保持不期望的消息邮箱可靠性非可靠请求-应答确认分布式通信36实现技术小结项目选择1选择2选择3寻址机器+进程共客户/服务器协议中的包类型代码包类型来源至说明REQ请求客户服务器客户要求服务REP应答服务器客户服务器对客户的应答ACK确认服务器、客户其他前面的包已到达AYA你在这里吗?客户服务器查看服务器是否崩溃IAA我在这里服务器客户服务器没有崩溃TA再试一次?服务器客户服务器没有空间AU地址未知服务器客户没有进程在使用此地址分布式通信37客户/服务器协议中的包类型代码包类型来源至说明REQ请求客户包交换举例分布式通信38包交换举例分布式通信38主要内容2.1通信基础2.2客户/服务器模型2.3套接字socket

2.4远程过程调用2.5WebService

2.6消息队列

2.7分布式对象2.8组通信分布式通信39主要内容2.1通信基础分布式通信392.3套接字socket•socket通信的基本原理•socket通信的工作过程分布式通信402.3套接字socket•socket通信的基本原理

一个socket在逻辑上有三个特征(三要素):网域类型规程分布式通信41一个socket在逻辑上有三个特征(三要素):分布式通信网域:表明一个socket用于哪一种网络或说哪一族网络规程。各种网络对节点地址的命名方法不同,又称“地址族”或“规程族”。AF_INET表示Internet网插口,故各节点使用IP地址。AF_IPX为Novell的IPX网插口,AF_X25为X.25网插口,等等。其中的特殊,不走网络而在同一台计算机上用于进程通信,BSD称为AF_UNIX,在POSIX标准里定义了一种AF_LOCAL域名。分布式通信42网域:表明一个socket用于哪一种网络或说哪一族网络规程。类型:表明网络中通信所遵循的模式“面向连接”:又叫“虚电路”模式,通信双方先要在互相之间建立起一种虚拟连接(线路),再通过虚拟线路进行通信。在通信过程中,所有报文传递保持原来次序,所以,报文之间是有关联的,每个报文都不是孤立的。在这种模式中,所有报文的传递都是可靠的,由网络中物理线路引入差错控制来保证。“无连接”:事先不必建立虚线路,直接可发送和接收报文。但报文是孤立的,正确性没有保证,甚至可能丢失。由于网络延迟或路径不同,接收端收到报文的次序可能与发送端发送报文的次序不一样。这种模式传递的报文是不可靠的,无保证的。也没有“流量控制”手段,进程从系统调用返回时仅表明该socket会把报文发送去,并不表明报文已到达了接收方的socket。

分布式通信43类型:表明网络中通信所遵循的模式分布式通信43规程:表明具体网络规程。一般来说,网域与类型结合作一起就大体上决定了规程。如网域为AF_INET,而类型为“无连接”,则规程大致为UDP了。但有时,还会有其他选择。分布式通信44规程:表明具体网络规程。一般来说,网域与类型结合作一起就大体BerkeleySocketsAPISocketprimitivesforTCP/IP.PrimitiveMeaningSocketCreateanewcommunicationendpointBindAttachalocaladdresstoasocketListenAnnouncewillingnesstoacceptconnectionsAcceptBlockcalleruntilaconnectionrequestarrivesConnectActivelyattempttoestablishaconnectionSendSendsomedataovertheconnectionReceiveReceivesomedataovertheconnectionCloseReleasetheconnection分布式通信45BerkeleySocketsAPISocketpri基本的socket调用recvsendsocketbindlocalhostsockaddr_in()listenacceptpeersockaddr_in()socketconnectrecvsendpeersockaddr_in()SERVERCLIENT分布式通信46基本的socket调用recvsocketbindlocal

服务器方客户方socket()建立数据报式套接字,返回套接字号socket()建立数据报式套接字,返回套接字号bind()把套接字s与本地地址相连接bind()把套接字s与本地地址相连接recvfrom()/sendto()在s上读写数据,直至结束recvfrom()/sendto()在s上读写数据,直至结束closesocket()关闭套接字,服务结束closesocket()关闭套接字,结束对话无连接协议的套接字调用时序分布式通信47服务器方客户方socket()建立数据报式套接字,返回套

面向连接的套接字调用时序accept()接收连接,并得到第二个套接字nsrecev()/send()在ns上读写数据,直到结束Closesocket()关闭套接字s,结束TCP/IP对话服务器方客户方socket()建立流式套接字,返回套接字号sbind()把套接字s与本地地址相连listen()通知TCP/IP,服务器准备好接收连接closesocket()关闭套接字nsclosesocket()关闭最初套接字ssocket()建立流式套接字,返回套接字号sconnect()把套接字s与远程主机相连send()/recev()在ns上读写数据,直到结束建立连接服务请求服务响应分布式通信48面向连接的套接字调用时序accept()接收连接,并得到第BerkeleySockets调用Connection-orientedcommunicationpatternusingsockets.分布式通信49BerkeleySockets调用Connection-数据流(1)Settingupastreambetweentwoprocessesacrossanetwork.分布式通信50数据流(1)Settingupastreambet数据流(2)Settingupastreamdirectlybetweentwodevices.分布式通信51数据流(2)Settingupastreamdire数据流(3)Anexampleofmulticastingastreamtoseveralreceivers.分布式通信52数据流(3)Anexampleofmulticasti定义QoS(1)Aflowspecification.CharacteristicsoftheInputServiceRequiredmaximumdataunitsize(bytes)Tokenbucketrate(bytes/sec)Tokebucketsize(bytes)Maximumtransmissionrate(bytes/sec)Losssensitivity(bytes)Lossinterval(sec)Burstlosssensitivity(dataunits)Minimumdelaynoticed(sec)Maximumdelayvariation(sec)Qualityofguarantee分布式通信53定义QoS(1)Aflowspecification定义QoS(2)Theprincipleofatokenbucketalgorithm.分布式通信54定义QoS(2)Theprincipleofat配置流ThebasicorganizationofRSVPforresourcereservationinadistributed

system.分布式通信55配置流ThebasicorganizationofR同步机制(1)Theprincipleofexplicitsynchronizationontheleveldataunits.分布式通信56同步机制(1)Theprincipleofexpl同步机制(2)Theprincipleofsynchronizationassupportedbyhigh-levelinterfaces.2-41分布式通信57同步机制(2)Theprincipleofsynch主要内容2.1通信基础2.2客户/服务器模型2.3套接字socket

2.4远程过程调用2.5WebService

2.6消息队列

2.7分布式对象2.8组通信分布式通信58主要内容2.1通信基础分布式通信582.4远程过程调用允许程序去调用位于其它机器上的过程

调用者和被调者都不用考虑消息通信举例:intread(intfd,char*buf,intnbytes);count=read(fd,buf,nbytes);参数传递call-by-valuecall-by-reference分布式通信592.4远程过程调用允许程序去调用位于其它机器上的过程分传统的过程调用本地过程调用中的参数传递:调用读前的堆栈调用过程激活时的堆栈分布式通信60传统的过程调用本地过程调用中的参数传递:调用读前的堆栈分布式软件层ApplicationsandServicesRPCandRMIrequest-replyprotocol

marshallingandexternaldatarepresentationUDPandTCPmiddlewareRPCismorethana(transport)protocol:astructuringmechanismfordistributedsystems分布式通信61软件层ApplicationsandServicesRPRPC中的调用与消息客户机客户存根客户应用客户OS内核本地调用客户打包参数拆包参数返回结果OS内核服务器本地调用服务存根服务应用服务过程打包参数拆包参数返回结果OS内核网络消息传送12345678910分布式通信62RPC中的调用与消息客户机客户存根客户应用客户OS内核本地RPC执行的主要步骤1.客户过程以普通方式调用相应的客户存根。2.客户存根建立消息并激活内核陷阱。3.内核将消息发送到远程内核。4.远程内核将消息送到服务器存根。5.服务器存根取出消息中的参数后调用服务器的过程。6.服务器完成工作后将结果返回至服务器存根。7.服务器存根将它打包并激活内核陷阱。8.远程内核将消息发送至客户内核。9.客户内核将消息交给客户存根。10.客户存根从消息中取出结果返回给客户。分布式通信63RPC执行的主要步骤1.客户过程以普通方式调用相应的客户存根客户和服务StubsPrincipleofRPCbetweenaclient&serverprogram.分布式通信64客户和服务StubsPrincipleofRPCbet异步RPC(I)分布式通信65异步RPC(I)分布式通信65异步RPC(II)分布式通信66异步RPC(II)分布式通信66编写Client和Server的步骤分布式通信67编写Client和Server的步骤分布式通信67RPC编程举例/*生成RPC程序*/rpcgenFILE_RPC.x==〉编译结果/*参数定义*/

FILE_RPC_xdr.c/*服务器端程序*/

FILE_RPC_svc.c/*server存根*/FILE_RPC_server.c/*服务器模版程序*/

/*客户端程序*/FILE_RPC_clnt.c

/*client存根*/FILE_RPC_client.c

/*客户模版程序*/分布式通信68RPC编程举例/*生成RPC程序*/分布式通信68RPC申明--File_RPC.x

#defineRPC_ARGSIZE256#defineRPC_RETSIZE256

/*theinterfaceversionnumber*/#defineuSERVERVERS 1

/*programnumberrangeestablishedbyONC*/#defineuSERVERPROG0x20000051

structCallArg_t{charbody[RPC_ARGSIZE];};/*RPC'sargdataform*/

structReturn_t{charbody[RPC_RETSIZE];};/*RPC'sargdataform*/

/*programdefinition*/programSERVERPROG{ versionSERVERVERS{

Return_tFILE_CREATE(CallArg_t)=1; Return_tFILE_READ(CallArg_t)=2;Return_tFILE_WRITE(CallArg_t)=3;Return_tFILE_DEL(CallArg_t)=2;

}=uSERVERVERS;}=uSERVERPROG;分布式通信69RPC申明--File_RPC.x

structRetRPC服务端程序--FileRPC_svc.c

.....voidmain2(){SVCXPRT*transp;

transp=svcudp_create(RPC_ANYSOCK);svc_register(transp,SERVERPROG,SERVERVERS,serverprog_1,IPPROTO_UDP);/*注册*/transp=svctcp_create(RPC_ANYSOCK,0,0);svc_register(transp,SERVERPROG,SERVERVERS,serverprog_1,IPPROTO_TCP));/*注册*/

svc_run();//启动RPC

exit(1);}staticvoidserverprog_1(structsvc_req*rqstp,SVCXPRT*transp){union{CallArg_tfile_create_1_arg; CallArg_tfile_read_1_arg;:}argument;

switch(rqstp->rq_proc){ :caseFILE_READ: xdr_argument=xdr_CallArg_t; xdr_result=xdr_Return_t;local=(char*(*)(char*,structsvc_req*))file_read_1_svc; break;:default: svcerr_noproc(transp); return; }

}分布式通信70RPC服务端程序--FileRPC_svc.c....RPC客户端程序--FileRPC_clnt.c

.....

/*Defaulttimeoutcanbechangedusingclnt_control()*/staticstructtimevalTIMEOUT={25,0};

Return_t*file_read_1(CallArg_t*argp,CLIENT*clnt){ staticReturn_tres;

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);}

.....分布式通信71RPC客户端程序--FileRPC_clnt.c.基本RPC操作(a)调用read之前的栈;b)调用过程处于激活状态时的栈;(c)返回调用者之后的栈值参调用和变参调用call-by-copy/restore分布式通信72基本RPC操作(a)调用read之前的栈;b)调用参数定义和产生StubprocedureCorrespondingmessage分布式通信73参数定义和产生StubprocedureCorrespond参数传递参数编组(marshalling):将参数装入消息例:add(i,j)远程计算分布式通信74参数传递参数编组(marshalling):将参数装入消息分参数传递问题编码表示:ASCII,EDBIC数字表示:小末端、大末端规范形式:整形、字符型、布尔型、浮点型等指针参数:copy/restoredereference分布式通信75参数传递问题编码表示:ASCII,EDBIC分布式通信75参数传递问题(a)486中的原始消息;(b)在SPARC上接受到的消息;(c)经过翻译之后的消息;(框中的小数字表明了每一个字节的地址)分布式通信76参数传递问题(a)486中的原始消息;分布式通信76建立表示基本数据类型的标准分布式通信77建立表示基本数据类型的标准分布式通信77参数传递问题如何传递指针?只有在特定地址空间才有意义!已知长度的数组和结构Copy/restore语义IN/OUT/INOUT标签到任意数据结构的指针?没有一般的解决办法通常:把指针传递给它的“源”分布式通信78参数传递问题如何传递指针?分布式通信78客户如何定位服务器呢?将服务器的网络地址固化到客户机中动态捆绑分布式通信79客户如何定位服务器呢?将服务器的网络地址固化到客户机中分布动态捆绑绑定、调用客户绑定器服务器注册、取消查找分布式通信80动态捆绑绑定、调用客户绑定器服务器注册、取消查找分布式通绑定(SUNRPC)PortMapper(rpcbind)listensatUDPport111ServerregistersprogramID&versionrpcinfo-p->displayallregisteredRPCserversWhenclientissuesclnt_create,theportmapperiscontacted:program-to-portnumbermappingarguments:(programID,version,protocol)response:server’sportnumber分布式通信81绑定(SUNRPC)PortMapper(rpcbin绑定(DCE)分布式通信82绑定(DCE)分布式通信82绑定接口句柄(handle):如IP地址唯一标识(ID):程序号认证:身份标识调用输入输出注册名字、版本、句柄、唯一id注销名字、版本、唯一id查找名字、版本句柄、唯一id分布式通信83绑定接口句柄(handle):如IP地址调用输入输RPC故障处理客户不能定位服务器返回错误号errno产生例外:SIG_NOSERVER丢失请求信息超时重发丢失应答信息等幂性请求序号分布式通信84RPC故障处理客户不能定位服务器分布式通信84RPC故障处理4.服务器崩溃解决至少一次语义(重发请求)至多一次语义(立即放弃并报告失败)不做任何保证恰好一次?(a)正常状态;(b)执行后崩溃;(c)执行前崩溃分布式通信85RPC故障处理4.服务器崩溃解决(a)正常状态;(b)执行RPC故障处理5.客户崩溃孤儿问题:资源浪费、资源封锁解决方案:根除(日志文件)再生(epochs,所有远程计算被终止)温和再生(试图去找到该远程计算的调用者)过期(标准时间段T)分布式通信86RPC故障处理5.客户崩溃分布式通信86RPC实现技术RPC可以使用哪些协议?TCP提供可靠传输ACKs,timeouts,retransmissionsUDP不提供可靠传输,但RPC执行RETRANSMITtimeout因此在totaltimeout后,无论使用TCP或UDP都重复请求TCP需要建立连接对于一些短的RPCs,有额外开销专门协议信包和报文的长度分布式通信87RPC实现技术RPC可以使用哪些协议?分布式通信87RPC实现技术确认停等(stop-and-waitt)协议(b)爆发(blast)协议©差错控制流量控制:数据溢出(overrun)分布式通信88RPC实现技术确认分布式通信88RPC实现技术关键路径客户机调用存根过程准备消息缓冲区将参数编排进缓冲区填写消息头陷入内核将上下文切换到内核将消息复制到内核确定目的地址将地址写入消息头设置网络接口启动计时器服务器执行服务调用服务器在堆栈上设置参数解析参数将上下文切换到存根将消息复制到存根检查存根是否在等待确定使用哪个服务器存根检查消息包的有效性处理中断分布式通信89RPC实现技术关键路径客户机服务器分布式通信89RPC实现技术拷贝DMA分散-聚集(scatter-gather)虚拟内存映射客户存根网络内核内核服务器存根分布式通信90RPC实现技术拷贝客户存根网络内核内核服务器存根分布式通信9RPC实现技术计时器管理计时器列表扫描算法(sweepalgorithms)(a)排序表中的时间片耗尽;(b)进程表中的时间片耗尽分布式通信91RPC实现技术计时器管理分布式通信91RPC实现技术6.存在的问题全局变量的共享弱数据类型的传递,数组?指针传递管道:读驱动、写驱动(a)管道(b)读驱动方法(c)写驱动方法分布式通信92RPC实现技术6.存在的问题分布式通信92主要内容2.1通信基础2.2客户/服务器模型2.3套接字socket

2.4远程过程调用2.5WebService

2.6消息队列

2.7分布式对象2.8组通信分布式通信93主要内容2.1通信基础分布式通信932.5WebServices

“Webservices”isanefforttobuildadistributedcomputingplatformfortheWeb.分布式通信942.5WebServices分布式通信94WebServices框架可以用术语描述为:Whatgoes“onthewire”: Formatsandprotocols.Whatdescribeswhatgoesonthewire:

Descriptionlanguages.Whatallowsustofindthesedescriptions: Discoveryofservices.分布式通信95WebServices框架可以用术语描述为:分布式通信9Web-Services体系结构SOAP消息服务提供方服务请求方服务代理方WSDLdocs

使用e-services的应用2创建业务/服务1发现业务/服务437调用服务8UDDIRegistryXSDdocsServlets,CGI,Perl65检索WSDL文档分布式通信96Web-Services体系结构SOAP消息服务提供方服务XMLMessaging:SOAPSOAP1.1defined:AnXMLenvelopeforXMLmessaging,Headers+bodyAnHTTPbindingforSOAPmessaging.SOAPis“transportindependent”.AconventionfordoingRPC.AnXMLserializationformatforstructureddataSOAPAttachmentsaddsHowtocarryandreferencedataattachmentsusinginaMIMEenvelopeandaSOAPenvelope.分布式通信97XMLMessaging:SOAPSOAP1.1deTheSOAPEnvelope<SOAP-ENV:Envelopexmlns="/soap/envelope/"><SOAP-ENV:Header>...</SOAP-ENV:Header><SOAP-ENV:Body>...</SOAP-ENV:Body>...</SOAP-ENV:Envelope>分布式通信98TheSOAPEnvelope<SOAP-ENV:EnvWhatgoesonthewireInternet-scaleintegrationneedsalingua-francaXMLmessagingprotocoloverHTTP:SOAPIntra-enterpriseintegrationneedstoallowalternates:CORBA,RMIMessagingIn-memorymethodcallsSOAPSecurityAttachmentsReliabilityRoutingTransactionsContextW3C分布式通信99WhatgoesonthewireInternet-Descriptions:Meta-dataIntegrationrequiresinteroperablemachine-understandabledescriptionsEnablesdynamic,delayedbindingofcomponents.Languageextensibilityprovidessupportfordifferentlevelsofapplicationintegration.InterfaceServiceQoSServicePublicFlowsFlowsandCompositionAgreementsWSDLWSFLXMLSchema分布式通信100Descriptions:Meta-dataInterfaWebServicesDescriptionLanguageProvidesfunctionaldescriptionofnetworkservices:IDLdescriptionProtocolanddeploymentdetailsPlatformindependentdescription.Extensiblelanguage.Ashorthistory:WSDLv1.0,9/2000WSDLv1.1submittedtoW3C3/2001.Adefactoindustrystandard.分布式通信101WebServicesDescriptionLanguWSDLStructureportTypeAbstractdefinitionofaservice(setofoperations)MultiplebindingsperportType:HowtoaccessitSOAP,JMS,directcallPortsWheretoaccessitServicePort(e.g.http://host/svc)Binding(e.g.SOAP)AbstractinterfaceportTypeoperation(s)inMesageoutMessagePortBinding分布式通信102WSDLStructureportTypeServicePUsingWSDLAsextendedIDL:WSDLallowstoolstogeneratecompatibleclientandserverstubs.Toolsupportfortop-down,bottom-upand“meetinthemiddle”development.Allowsindustriestodefinestandardizedserviceinterfaces.Allowsadvertisementofservicedescriptions,enablesdynamicdiscoveryandbindingofcompatibleservices.UsedinconjunctionwithUDDIregistryProvidesanormalizeddescriptionofheterogeneousapplications.分布式通信103UsingWSDLAsextendedIDL:WSDClientProxyobjectRMI-IIOPJMS/MQSOAP/HTTPClientinvocationSinglestubcaninvokeservicesoverdifferentbindingsDependsonlyonabstractinterface.Areindependentofbinding(butpluggable).Addnewbindingswithoutrecompiling/redeployingstubAllowsoptimisationsbasedonthebindingsofservice.WillsupportextendedservicesmodelsifdescribedInWSDL分布式通信104ClientProxyRMI-JMS/SOAP/ClieWSFLOverviewWSFLdescribesWebServicecompositions.UsagepatternsofWebServices:describesworkfloworbusinessprocesses.Interactionpatterns:describesoverallpartnerinteractions.ABC[WS][WS]分布式通信105WSFLOverviewWSFLdescribesWeWSFLFlowModelsActivitiesrepresentunitsofprocessing.Flowofdataismodeledthroughdatalinks.[WS]ActivitiescanbemappedtotheflowinterfaceControllinksdefineexecutionflowasadirectedacyclicgraphActivitiesareassociatedwithspecifictypedserviceproviders分布式通信106WSFLFlowModelsActivitiesrepUsingFlowModels“Publicflows”providearepresentationoftheservicebehaviorasrequiredbyitsusers.Typically,anabstractionoftheactualflowbeginexecutedDefinesa“behavioralcontract”fortheservice.Internalimplementationneednotbeflow-based.Flowsarereusable:specifycomponentstypes,butnotwhatspecificservicesshouldbeused!“Privateflows”aretheflowsexecutedinpractice.WSFLservesasa“portableflowimplementationlanguage”SamelanguageisusedinWSFLtorepresentbothtypesofprocesses.分布式通信107UsingFlowModels“PublicflowsGlobalModelsGlobalmodelsdescribehowthecomposedWebServicesinteract.RosettaNetautomated.LikeanADL.Interactionsaremodeledaslinksbetweenendpointsoftwoserviceinterfaces(WSDLoperations).Anessentiallydistributeddescriptionoftheinteraction.ABC分布式通信108GlobalModelsGlobalmodelsdesDiscovery:FindingMeta-dataStaticbindingrequiresservice“libraries”.Dynamicbindingrequiresruntimediscoveryofmeta-dataInspectionDirectoryADS,DISCOUDDI分布式通信109Discovery:FindingMeta-dataInUDDIOverviewUDDIdefinestheoperationofaserviceregistry:DatastructuresforregisteringBusinessesTechnicalspecifications:tModelisakeyedreferencetoatechnicalspecification.Serviceandserviceendpoints:referencingthesupportedtModelsSOAPAccessAPIRulesfortheoperationofaglobalregistry“private”UDDInodesarelikelytoappear,though.分布式通信110UDDIOverview分布式通信110UDDIRelationshipsWebServiceWebServiceSICCODENAICSDUNSNumbersThomasRegistryIDRosetta-NetBASDASimple.BuySchemas,InterchangespecificationbusinessEntitybusinessEntitybusinessEntitybusinessServicebusinessServicebindingTemplatebindingTemplateInstanceDetailsInstanceDetailscategoryBagkeyedReferencekeyedReferenceidentifierBagkeyedReferencekeyedReferencetModels分布式通信111UDDIRelationshipsWebServiceW主要内容2.1通信基础2.2客户/服务器模型2.3套接字socket

2.4远程过程调用2.5WebService

2.6消息队列

2.7分布式对象2.8组通信分布式通信112主要内容2.1通信基础分布式通信1122.6消息队列四种松散组合的通信使用队列分布式通信1132.6消息队列四种松散组合的通信使用队列分布式通信113消息队列原语PrimitiveMeaningPutAppendamessagetoaspecifiedqueueGetBlockuntilthespecifiedqueueisnonempty,andremovethefirstmessagePollCheckaspecifiedqueueformessages,andremovethefirst.Neverblock.NotifyInstallahandlertobecalledwhenamessageisputintothespecifiedqueue.分布式通信114消息队列原语PrimitiveMeaningPutAppen消息队列的一般结构(I)队列层地址和网络层地址间的关系分布式通信115消息队列的一般结构(I)队列层地址和网络层地址间的关系分布消息队列的一般结构(II)2-29分布式通信116消息队列的一般结构(II)2-29分布式通信116消息代理Thegeneralorganizationofamessagebrokerinamessage-queuingsystem.分布式通信117消息代理ThegeneralorganizationoIBMMQSeries分布式通信118IBMMQSeries分布式通信118ChannelsSomeattributesassociatedwithmessagechannelagents.AttributeDescriptionTransporttypeDeterminesthetransportprotocoltobeusedFIFOdeliveryIndicatesthatmessagesaretobedeliveredintheordertheyaresentMessagelengthMaximumlengthofasinglemessageSetupretrycountSpecifiesmaximumnumberofretriestostartuptheremoteMCADeliveryretriesMaximumtimesMCAwilltrytoputreceivedmessageintoqueue分布式通信119ChannelsSomeattributesassoci消息传输(I)使用路由表和别名表分布式通信120消息传输(I)使用路由表和别名表分布式通信120消息传输(II)IBMMQSeriesMQI原语PrimitiveDescr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论