




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,在一定程度上人类的思维产生于简单个体之间的相互作用,MarvinMinsky,.,第三讲软件实体的交互基础,.,内容,一、网络编程基本架构二、软件互操作的基本架构三、互操作协议四、互操作接口定义五、交互实体的查找,.,一、网络编程基本架构,1、TCP/IP2、基于Socket的网络软件3、直接基于Socket编程的不足,.,Application,Presentation,Transport,Network,Datalink,Physical,Session,TCP,UDP,、TCP/IP,(1)ISO/OSI参考模型与TCP/IP的对照,ISO/OSI参考模型,主机与网络的连接:ethernet、token-ring,因特网层:IP,应用层:telnet、ftp、smtp、snmp、dns、http、nntp,TCP/IP,.,0NetworkHost,10NetworkHost,110NetworkHost,1110Multicastaddress,11110Reversedforfutureuse,ABCDE,55,地址范围,55,55,55,55,类,(2)IP:InternetProtocol,.,Vers.H.lenServicetypeTotallength,IdentificationFlagsFragmentoffset,data,TimetoliveProtocolHeaderchecksum,SourceIPaddress,DestinationIPaddress,IPoptions(maybeomitted)Padding,IP头,Servicetype,PrecedenceDTRunused,20bytes,.,(3)TCP:TransmissionControlProtocolTCP为两个分布式的构件提供了双向的消息通信UNIX中的命令rsh,rcp及rlogin全部基于TCP它是一个可靠但较慢的协议在客户服务器双方进行缓冲以提高速度,.,TCP头格式,Sourceport,Destinationport,Sequencenumber,Acknowledgementnumber,Checksum,Urgentpointer,Options(0ormorewords),Data(optional),H.len,Codebits,Reserved,Windowsize,.,UDP:UserDatagramProtocol一个构件向另一个构件发送消息另一个构件的标识包含在消息中不可靠但快速的协议消息长度固定消息在接受方排队UNIXrwho命令基于UDP,.,2、基于Socket的网络软件,服务器,客户,创建,通信套接字,通常通过随机分配得到端口,等待连接套接字,通常对应于一个固定端口,连接请求,.,面向连接:,服务器,客户,Socket(),bind(),listen(),read(),close(),Socket(),connect(),write(),close(),处理请求,write(),read(),accept(),阻塞,等待客户连接,建立连接,请求服务,应答数据,.,面向非连接:,服务器,客户,Socket(),bind(),readfrom(),sendto(),close(),Socket(),bind(),sendto(),readfrom(),close(),处理请求,应答数据,请求服务,阻塞,等待客户数据,.,3、直接基于Socket编程的不足,套接字的出现促进了软件从单机环境向网络环境的发展扩展了软件的应用范围人们很快不满足于直接基于套接字的开发过程基于套接字的开发方式较为繁琐这种软件的排错十分困难特别是当服务器端需要根据用户的不同请求内容区分不同的处理过程时,根本原因在于基于套接字的交互层次较低不同软件之间需要约定专门的消息格式、数据类型等,.,二、软件互操作的基本架构,为支持应用层的某一实体使用另一实体而制定的一套技术规范,.,互操作消息,客户端指代,互操作接口定义语言,互操作协议,网络基础设施,网络基础设施,互操作消息,服务器端指代,客户端程序,服务器端程序,互操作实现(以,RPC,为例),实体查找方式,互操作规范,底层协议,决定,决定,.,软件互操作体系与人类交互过程的比较底层协议提供了基本的通信基础互操作消息是软件之间进行交互时所表述的语言互操作协议是对这些语言的语法说明互操作接口定义是软件之间的一种约定接口定义语言是合约的撰写规则实体查找方式是交互双方建立联系的途径包括白页、黄页、绿页等多种途径,.,1、底层协议底层协议是互操作协议所依赖的底层通信机制目前最受重视的协议是前面讲过的TCP/IP协议也可以是ATM等其它协议,.,2、互操作协议消息中关于字节序、数据表示等问题的解决方法体现了通信双方之间关于消息的数据格式消息的类型等的约定类似的约定还有服务器的管理等等所有这些约定共同构成了互操作的高层协议互操作协议一般独立于底层协议即互操作协议可以向不同的底层协议进行映射从而由不同的底层协议进行支持互操作协议一般都比较烦琐其实现由应用服务器开发者承担应用系统的开发者在开发具体系统时不必关心协议的实现问题,.,3、互操作接口定义语言客户指代主要完成上层代码(客户程序、服务器程序)与底层代码(RPCAPI等)之间的“映射”其参数传递、编排、服务器定位等功能完全与应用系统具体的业务逻辑实现细节无关因此只要系统明确定义了服务器的接口即可以产生与该接口对应的指代接口定义语言(InterfaceDefinitionLanguage)描述了客户与服务器之间的接口,.,4、实体查找方式实体查找方式主要是指服务器的定位根据自己掌握的信息客户如何才能查找到具体服务器这实际上涉及服务器端服务信息的发布服务信息的管理等问题,.,现有互操作架构比较,.,通信消息对于计算机的重要性完全类似于人类的言语对于人类的重要性协议是通信双方传输消息时必须遵守的规则的集合,Protocol:IP、TCP、UDP、IIOP、JRMP、SOAPFTP、HTTP、SMTP、SNMP,1、概念,三、互操作协议,.,对于互操作协议,尽管其发展的历史不长但目前也已经有许多协议被设计、实现例如:RPC协议、IIOP、JRMP、SOAP等等与人类言语类似,它们的实现方式也十分丰富可以建立在不同的底层协议之上例如TCP/IP、HTTP、ATM等等到目前为止,在互操作方面使用得最广泛的协议是IIOP这主要得益于CORBA的巨大成功以及IIOP对异构平台的支持,.,所谓互操作协议要素是指设计一个互操作协议时必须考虑的主要问题这些问题主要包括:数据表示消息格式引用表示等等其它需要考虑的问题包括:如何将协议映射到底层协议之上如何管理连接过程如何提高协议的效率等等,2、互操作协议要素,.,在单机环境内,数据表示属于硬件层、语言层而在网络环境下,调用参数必须经由网络进行传输这意味着这些数据将变成一种字节流的形式以便于参数(数据)在网络上传输就产生了如何在网络传输上表示程序中的数据问题数据表示是一种传输语法描述各种数据类型在传输线路上以字节流的形式表示出来的格式ONC-RPC中使用的格式为外部数据表示(XDR:eXternalDataRepresentation)而CORBA中使用的格式为公共数据表示(CDR:CommonDataRepresentation),(1)数据表示,.,底层协议主要解决通信的可行性以及部分可靠性等问题高层协议不同于底层协议的一个明显特征在于高层协议带有一定的语义信息几乎每种高层协议都对消息进行分类定义了多种不同类型的消息格式对于互操作协议而言一次调用通常至少包含请求与应答两种消息消息的种类较为类似但消息格式差异较大,(2)消息格式,.,互操作协议必须映射到底层协议上方能得到实现目前的互操作协议都定义协议一到多种向传输层的映射例如GIOP定义了向TCP/IP的映射:IIOPSOAP主要定义了向HTTP的映射,(3)向底层协议的映射,.,2、协议比较,1)互操作开销不同IIOP、JRMP使用二进制的字节流形式编排消息(CDR、XDR)SOAP采用字符型的XML编排消息SOAP消息要比IIOP、JRMP消息长得多SOAP的编排开销大、占用内存空间大2)表达能力不同SOAP易于学习、易于开发、易于调试SOAP不支持消息的批处理、对象引用、对象激活等特性降低了SOAP的表达能力并使得基于SOAP的交互受到限制而IIOP、JRMP等则不存在这种限制,.,3)适应能力不同IIOP、JRMP严重制约于防火墙防火墙一般由两个路由器与一个应用程序网关构成路由器负责IP层的分组信息列出可接受、禁止的源端和目标端等信息应用程序网关在应用程序级进行控制根据头信息字段、消息长度、消息内容等决定传送还是丢弃消息这是IIOP、JRMP的应用受到限制的核心因素之一SOAP则基本不受其限制4)适用环境不同JRMP适用于使用JAVA的应用系统IIOP、SOAP支持各种语言,因此适用面更广IIOP适合于同一个防火墙内部之间的交互而SOAP则适合于跨越防火墙的交互,.,1、概念,接口(Interface),四、互操作接口定义,.,应用编程接口(API)对象接口构件接口抽象?实在?,模块通常由接口和实现两部分组成模块的接口部分刻画了各个模块是如何耦合的其他模块的设计者和使用者需要知道模块的实现部分是各个模块的内部事务其他模块的设计者和使用者不需要知道,包含什么具体内容?(功能性、约束性)利用什么形式描述?(接口定义语言),含义解释,.,单机环境下的不同软件模块之间主要定义模块的功能性(Functional)内容类似于一个函数的映射过程接口的功能性定义是对接口中各个操作调用方式的描述操作是由操作符标识的实体指明了一个不可再分的服务原语请求一个操作的动作被称为调用一个操作对一个操作功能的描述由输入、输出两部分组成也被称为一个基调(signature)用于描述操作的输入、输出参数名称及类型,功能性(Functional),.,网络环境下的不同软件模块的合作需要考虑的因素不仅仅包含功能方面还涉及分布性、可靠性、安全性等方面的因素网络环境下的接口除需要定义模块的功能性内容外还需要定义模块的约束性内容接口的约束性定义是指对功能以外特征的描述简单的包括:例外处理、执行语义等复杂一些的包括:(1)行为特征:用于描述操作的输出通过对操作增加前置与后置条件而实现(2)同步特征:用于描述分布性与并发性,约束性(Constraint),.,2、接口定义语言,IDL:InterfaceDefinitionLanguage,WSDL:WebServiceDescriptionLanguage,服务描述语言,interfaceHospitaltypedefstringPatientId;PatientIdadmit_patient();voidrelease_patient(inPatientIdpatient);,.,有的以描述结构化程序的功能为主例如RPC-IDL微软的-IDL有的以描述对象的功能为主例如CORBA的IDL有的以描述服务为主例如webservice的WSDL,1)描述对象不同,比较,.,有的以具体计算机语言的方式表达例如SUN的JavaInterface有的以独立于具体的计算机语言但十分类似于计算机语言的方式表达例如:RPC-IDL微软的-IDLCORBA的IDL有的以XML为方式表达例如:webservice的WSDL,2)描述方式不同,.,有的仅描述接口的语法信息例如:RPC-IDL微软的-IDLCORBA的IDL有的还包括与底层协议的绑定信息例如:WSDL等在CORBA中这部分信息包含在IOR中,3)描述内容不同,.,五、交互实体的查找,网络环境中的资源具有明显的分布性这些资源可能分布于不同的节点之上问题:分布在不同节点上的实体如何查找到其他的实体?,.,1、三种查找方式2、命名服务3、目录服务4、合约服务,内容,.,命名(Naming)服务:通过外部名字定位构件类似于(电话本)白页,.公司甲67890001公司乙67890002公司丙67890003,CORBA的命名服务TCP/IP中的DNSCOM、JVM中的注册表等皆提供了类似的服务,1、三种查找方式,.,目录(Directory)服务:通过服务特性定位构件类似于(电话本)黄页,IT领域存储器公司公司甲67890001计算机公司公司乙67890002公司丙67890003公司丁67890004,SUN的网络信息系统(NetworkInformationSystem:NIS)Novell目录服务(NovellDirectoryService:NDS)IUT/ISO的X.500以及LDAPCORBA的交易服务微软的ActiveDirectoryService等提供了类似的服务,.,合约(Contract)服务:通过技术规范定位构件绿页,IT领域计算机公司公司乙电话67890002地址北京市海淀区中关村大街XX号ECPUIntelP4硬盘Seagate40G鼠标双飞燕USB,WebService的UDDI即包含这方面的信息CORBA的接口池也具有部分“绿页”功能,.,不同的查找服务提供的功能:,.,名字是知识的基础本体论(Ontology)名实论(名,所以谓也,实,所谓也墨子)操作系统中的进程名文件系统中的文件名程序语言中的变量名、过程名、数据结构名、对象名网络环境下的计算机名、数据库名、构件名,2、命名服务,.,名字与标识、引用,标识,引用,名字与引用的关联,指代,名字,服务使用者的空间,服务提供者的空间,查找,注册,(绑定),调用,解析,名字,引,用,.,名字系统,主要功能是将名字映射到对象一组context的集合这些context是连接的使用同样的命名规则提供同样的操作集合并具有同样的语义例如:c:/win98/system,.,名字分类,Atomicname(原子名字)名字中不可分割的部分Usr/local/bin中的usr,local,.,CompositeName(合成名字)与复合名字(compoundname)不同是跨越多个命名系统的名字包含了一个有序的复合或原子名字的列表每个复合或原子名字属于不同的命名系统名字空间,.,.,命名服务(NamingService)维护了(分布或集中式)系统中资源的名字与地址之间的映射关系(binding),.,命名上下文,Context是一个对象其状态(属性)是一组binding的集合,这些binding的原子名字各不相同每个Context都有自己的命名规则至少提供lookup操作允许用户查找指定原子名字的对象也可能提供建立/删除/枚举binding的操作InitialContext用户使用命名服务的入口,.,Subcontext某个Context对象中的原子名字可以与另一个Context对象绑定,此时后者就是前者的subcontext目的是为了支持复合名字的查找按照原子名字的顺序在对应的subcontext中查找binding在UNIX文件系统中,目录类似subcontext(usr,local),而路径名类似复合名字(usr/local/bin),.,解析名字,根据名字查找属性的过程,.,.,3、目录服务,基本实现,目录服务是增强的命名服务存储了一组名字与属性的关联集合,.,目录对象(Directoryobject)命名系统中一类特殊的对象,用以表达计算环境的多种信息换言之,维护了(分布或集中式)系统中资源的名字与及其多种信息的映射关系一个目录对象具有多个属性(attributes)一个属性具有一个标识符(identifier)以及一组值(values)一个目录对象同时可以是一个context,因此,这种特殊的对象不仅可以维护名字到对象的映射,也可以维护与这个binding相关的一些信息CORBATrade
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 经营城市的探索与实践
- 走中部特色的新型工业化道路
- 热电公司党建工作总结及工作计划
- 公司工作职能管理制度
- 公司环保组织管理制度
- 江苏开放大学2025年春大学英语复习题4(25春)
- 2025年北京市家具买卖合同样本
- 广西南宁市2023-2024学年高一下册5月段考数学试卷附解析
- 2025年中考语文(长沙用)课件:复习任务群4 常用标点符号
- 2024年深圳市光明区区属公办中小学招聘教师真题
- 扶贫工作考勤管理制度
- 占道施工安全培训
- 工地试验室安全培训内容
- 2025年湖南省南华大学招聘7人历年高频重点提升(共500题)附带答案详解
- 全国教育科学规划课题立项申请书范文
- 2024年上海市普通高中学业水平合格性考试物理试题及答案
- 混凝土结构设计原理-004-国开机考复习资料
- 社会学概论-终结性考核-国开(SC)-参考资料
- 商业建筑空调水系统优化方案
- 海尼曼G1文本76本编辑版
- 《塑料材质食品相关产品质量安全风险管控清单》
评论
0/150
提交评论