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

下载本文档

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

文档简介

1、第2章 分布式通信 中国科技大学软件学院丁箐第1页,共138页。主要内容2.1 通信基础2.2 客户/服务器模型2.3 套接字socket 2.4 远程过程调用2.5 Web Service 2.6 消息队列 2.7 分布式对象2.8 组通信第2页,共138页。2主要内容2.1 通信基础2.2 客户/服务器模型2.3 套接字socket 2.4 远程过程调用2.5 Web Service 2.6 消息队列 2.7 分布式对象2.8 组通信第3页,共138页。32.1 通信基础开放式系统:使用标准化规则与其它开放系统通信的系统 协议:进程间通信所必须遵循的规则,消息的格式、内容和意义协议的种类面

2、向连接、非面向连接分层协议ISO OSI参考模型Internet第4页,共138页。4OSI参考模型分层协议进程A进程B第5页,共138页。5The Internet 协议NetworkIPTCPUDPApplicationTransportDatagramsMessages (UDP)Streams (TCP)第6页,共138页。6典型消息结构第7页,共138页。7网络技术的发展(1)分组交换协议Dr.L.Kleinrock(MIT),1962TCP/IP协议R.Kahn(MIT,ARPA),V,Cerf(UCB,Stanford), IEEE通信974CDMA协议与EthernetDr.B

3、.Metcalfe(HU,MIT,PARC),19733COM,以太网适配器第8页,共138页。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页,共138页。9ATM网络技术分组交换、线路交换和信元交换信元(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交换网络及交换机内部构造第13页,共138页。13主要内容2.1 通信基础2.2 客户/服务器模型2.3 套接字socket 2.4 远程过程调用2.5 Web Service 2.6 消息队列 2.7 分布式对象2.8 组通信第14页,共138页。142.2 客户/服务器模型 服务器:为用户提供服务的一

5、组协同进程 客户:代理用户第15页,共138页。15客户/服务器(1-1)ServerClientClientinvocationresultServerinvocationresult第16页,共138页。16客户-服务器交互 (I)Remote procedure call第17页,共138页。17客户-服务器交互(II)多层结构第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; /* 发送者标识*/ long dest; /* 接受者标识 */ long opcode; /* 操作码:读、写、创建、删除 */ long result; /* 返回结果代码 :成功、失

7、败*/ long offset; /* 读写位置 */ long count; /* 读写计数 */ char filenameMAX_PATH; /* 文件名*/ char dataBUF_SIZE; /* 数据区*/第26页,共138页。26服务器程序void main(void) struct message m1,m2; /* 输入、输出的消息 */ int r; /* 返回的执行结果 */ while (1) receive(FILE_SERVER,&m1); /* 等待客户请求 */ case(m1.opcode) /* 执行请求的操作 */ case READ: r = do_r

8、ead(&m1,&m2); break; : default: r = E_BAD_OPCODE; m2.result = r; send(m1.source,&m2); /* 返回结果 */ 第27页,共138页。27客户程序int read(char *file, int position , int nbytes, char *buf) struct message m1; /* 消息缓冲区 */ m1.opcode = READ; /* 设置参数 */ m1.offset = position; /* 读位置 */ m1.count = nbytes; /* 读长度 */ strcpy

9、(&m1.filename,src) /* 文件名 */ send(FILE_SERVER, &m1); /* 发送请求 */ receive(CLIENT,&m1); /* 等待服务器应答 */ if(m1.result = OK) strcpy(buf, &m1.data); /* 置缓冲区 */ return(m1.result); /* 返回结果 */ 第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)阻塞发送原语 同步原语(2)非阻塞发送原语 异步原语在消息被发送之前,发送者不能修改消息缓冲区 时间时间第32页,共138页。32有缓冲与无缓冲型接收无缓冲区发送比接收先发生 ?直接丢弃消息暂存“意外”消息有缓冲区邮箱(mailbox):缓存所有的输入消息“溢出

11、”问题第33页,共138页。33可靠的和非可靠的发送和接收非可靠的收发可能丢失消息由用户负责确认独立的确认消息内核-内核确认应答用作请求的确认消息客户内核确认折衷方法服务器端设置计时器,超时后,发确认消息第34页,共138页。34第35页,共138页。35实现技术小结项目选择1选择2 选择3寻址机器+进程共享进程地址ASCII名字通过服务器查找阻塞阻塞原语具有拷贝到核的非阻塞 具有中断的非阻塞原语无缓冲,丢弃不期望的消息无缓冲,临时保持不期望的消息邮箱可靠性非可靠请求-应答确认第36页,共138页。36客户/服务器协议中的包类型代码包类型来源至说明REQ请求客户服务器客户要求服务REP应答服务

12、器客户服务器对客户的应答ACK确认服务器、客户其他前面的包已到达AYA你在这里吗?客户服务器查看服务器是否崩溃IAA我在这里服务器客户服务器没有崩溃TA再试一次?服务器客户服务器没有空间AU地址未知服务器客户没有进程在使用此地址第37页,共138页。37包交换举例第38页,共138页。38主要内容2.1 通信基础2.2 客户/服务器模型2.3 套接字socket 2.4 远程过程调用2.5 Web Service 2.6 消息队列 2.7 分布式对象2.8 组通信第39页,共138页。392.3 套接字socket socket通信的基本原理 socket通信的工作过程第40页,共138页。4

13、0 一个socket在逻辑上有三个特征(三要素):网域类型规程第41页,共138页。41网域:表明一个socket用于哪一种网络或说哪一族网络规程。各种网络对节点地址的命名方法不同,又称“地址族”或“规程族”。AF_INET表示Internet网插口,故各节点使用IP地址。AF_IPX为Novell的IPX网插口,AF_X25为X.25网插口,等等。其中的特殊,不走网络而在同一台计算机上用于进程通信,BSD称为AF_UNIX,在POSIX标准里定义了一种AF_LOCAL域名。第42页,共138页。42类型:表明网络中通信所遵循的模式“面向连接”:又叫“虚电路”模式,通信双方先要在互相之间建立起

14、一种虚拟连接(线路),再通过虚拟线路进行通信。在通信过程中,所有报文传递保持原来次序,所以,报文之间是有关联的,每个报文都不是孤立的。在这种模式中,所有报文的传递都是可靠的,由网络中物理线路引入差错控制来保证。 “无连接”:事先不必建立虚线路,直接可发送和接收报文。但报文是孤立的,正确性没有保证,甚至可能丢失。由于网络延迟或路径不同,接收端收到报文的次序可能与发送端发送报文的次序不一样。这种模式传递的报文是不可靠的,无保证的。也没有“流量控制”手段,进程从系统调用返回时仅表明该socket会把报文发送去,并不表明报文已到达了接收方的socket。 第43页,共138页。43规程:表明具体网络规

15、程。一般来说,网域与类型结合作一起就大体上决定了规程。如网域为AF_INET,而类型为“无连接”,则规程大致为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调用recvsendsocketbindlocalhostsockaddr_in()listenacceptpeersockaddr_in()socketconnectrecvse

17、ndpeersockaddr_in()SERVERCLIENT第46页,共138页。46 服务器方客户方socket()建立数据报式套接字,返回套接字号socket()建立数据报式套接字,返回套接字号bind()把套接字s与本地地址相连接bind()把套接字s与本地地址相连接recvfrom()/sendto()在s上读写数据,直至结束recvfrom()/sendto()在s上读写数据,直至结束closesocket()关闭套接字,服务结束closesocket()关闭套接字,结束对话无连接协议的套接字调用时序第47页,共138页。47 面向连接的套接字调用时序accept()接收连接,并得

18、到第二个套接字nsrecev()/send()在ns上读写数据,直到结束Closesocket()关闭套接字s,结束TCP/IP对话服务器方客户方socket()建立流式套接字,返回套接字号sbind()把套接字s与本地地址相连listen()通知TCP/IP,服务器准备好接收连接closesocket()关闭套接字nsclosesocket()关闭最初套接字ssocket()建立流式套接字,返回套接字号sconnect()把套接字s与远程主机相连send()/recev()在ns上读写数据,直到结束建立连接服务请求服务响应第48页,共138页。48Berkeley Sockets调用 Con

19、nection-oriented communication pattern using sockets.第49页,共138页。49数据流 (1)Setting up a stream between two processes across a network.第50页,共138页。50数据流(2)Setting up a stream directly between two devices.第51页,共138页。51数据流(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主要内容2.1 通信基础2.2 客户/服务器模型2.3 套接字socket 2.4 远程过程调用2.5 Web Service 2.6 消息队列 2.7 分布式对象2.8 组通信第58页,共138页。582.4 远程过程调用允许程序去调用位于其它机器上的过程 调用者和被调者都不用考虑消息通信举例:int read(int fd, char * buf, int nbytes);count = read(fd

23、, buf, nbytes);参数传递call-by-valuecall-by-reference第59页,共138页。59传统的过程调用本地过程调用中的参数传递:调用读前的堆栈调用过程激活时的堆栈第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中的调用与消息 客户机客户存根客户应用客户OS内核本地调用客户打包参数拆包参数返回结果OS内核服务器 本地调用服务存根服务应用服务过程打包参数拆包参数返回结果OS内核网络消息传送12345678910第62页,共138页。62RPC执行的主要步骤1.客户过程以普通方式调用相应的客户存根。2.客户存根建立消息并激活内核陷阱。3.内核将消息发送到远程内核。4.远程内核将消息送到服务器存根。5.服务器存根取出消息中的参数后调用服务器的过程。6.服务器完成工作后将结果返回至服务器存根。7.服务器存根将它打包并激活内核陷

25、阱。8.远程内核将消息发送至客户内核。9.客户内核将消息交给客户存根。10.客户存根从消息中取出结果返回给客户。第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=编译结果 /* 参数定义 */ 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)调用read之前的栈; b)调用过程处于激活状

32、态时的栈; (c)返回调用者之后的栈 值参调用和变参调用 call-by-copy/restore第72页,共138页。72参数定义和产生StubprocedureCorresponding message第73页,共138页。73参数传递参数编组(marshalling):将参数装入消息例:add(i,j)远程计算第74页,共138页。74参数传递问题编码表示:ASCII, EDBIC数字表示:小末端、大末端规范形式:整形、字符型、布尔型、浮点型等指针参数:copy/restoredereference第75页,共138页。75参数传递问题(a)486中的原始消息;(b)在SPARC上接受到

33、的消息;(c)经过翻译之后的消息;(框中的小数字表明了每一个字节的地址) 第76页,共138页。76建立表示基本数据类型的标准 第77页,共138页。77参数传递问题如何传递 指针 ?只有在特定地址空间才有意义! 已知长度的数组和结构Copy/restore 语义IN/OUT/INOUT 标签到任意数据结构的指针 ?没有一般的解决办法 通常: 把指针传递给它的 “源”第78页,共138页。78客户如何定位服务器呢?将服务器的网络地址固化到客户机中 动态捆绑 第79页,共138页。79动态捆绑 绑定、调用客户绑定器服务器注册、取消查找 第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):程序号认证:身份标识调用输 入输 出注册名字、版本、句柄、唯一id注销名字、版本、唯一id查找名字、版本句柄、唯一id第83页,共138页。83RPC故障处理客户不能定位服务器返回错误号errno产生例外:SIG_NOSERVER丢失请求信息超时重发丢失应答信息等幂性请求序号第84页,共138页。84RPC故障处理4. 服务器崩溃解决至少一次语义 (重发请求 )至多一次语义 (立即放弃并报告失败)不做任何保证恰好一次?(a)正常状态;(b)执行后崩溃;(c)执行前崩溃第85页,共138页。85RPC

36、故障处理5. 客户崩溃孤儿问题:资源浪费、资源封锁解决方案:根除(日志文件 )再生(epochs,所有远程计算被终止 )温和再生(试图去找到该远程计算的调用者 )过期(标准时间段T )第86页,共138页。86RPC实现技术RPC可以使用哪些协议?TCP 提供可靠传输ACKs, timeouts, retransmissionsUDP 不提供可靠传输,但RPC执行RETRANSMIT timeout因此在total timeout后,无论使用TCP或UDP都重复请求TCP需要建立连接 对于一些短的RPCs,有额外开销专门协议信包和报文的长度 第87页,共138页。87RPC实现技术确认停等(s

37、top-and-waitt)协议(b)爆发 (blast)协议差错控制流量控制:数据溢出(overrun)第88页,共138页。88RPC实现技术关键路径客户机调用存根过程准备消息缓冲区将参数编排进缓冲区填写消息头陷入内核将上下文切换到内核将消息复制到内核确定目的地址将地址写入消息头设置网络接口启动计时器服务器执行服务调用服务器在堆栈上设置参数解析参数将上下文切换到存根将消息复制到存根检查存根是否在等待确定使用哪个服务器存根检查消息包的有效性处理中断第89页,共138页。89RPC实现技术拷贝DMA分散-聚集(scatter-gather)虚拟内存映射客户存根网络内核内核服务器存根第90页,共

38、138页。90RPC实现技术计时器管理计时器列表扫描算法(sweep algorithms) (a)排序表中的时间片耗尽;(b)进程表中的时间片耗尽 第91页,共138页。91RPC实现技术6. 存在的问题全局变量的共享弱数据类型的传递,数组?指针传递管道:读驱动、写驱动(a)管道(b)读驱动方法(c)写驱动方法 第92页,共138页。92主要内容2.1 通信基础2.2 客户/服务器模型2.3 套接字socket 2.4 远程过程调用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 框架可以用术语描述为: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 体系结构SOAP消息服务提供方服务请求方服务代理方 WSDL docs 使用 e-services的应用2创建业务/服务 1发现业务/服务 437调用服务 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 “libraries”.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主要内容2.1 通信基础2.2 客户/服务器模型2.3 套接字socket 2.4 远程过程调用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消息队列的一般结构 (I)队列层地址和网络层地址间的关系第115页,共138页。115消息队列的一般结构(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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论