- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于CORBA服务器-客户间对象定位
基于CORBA的服务器-客户间对象定位 一般模型 特定于ORB的方法 商业上的ORB还典型地支持定位对象的专有机制。这些机制很容易使用,很受欢迎。例如IONA Technologies和Borland的ORB都实现了专有的_bind()方法,这是由IDL编译器为每个接口生成的。这两个机制的详情很不一样,但它们都受到同样的制约—缺少抽象性。 在以上两种专有方法中,客户机程序员都必须提供在ORB领域内能唯一识别目标对象的信息。特别是,当这些信息是与对象实例和系统配置紧密结合在一起的时候。例如,客户机可能会规定一些信息,象伺服对象运行在哪个主机,或ORB的内部对象标识。这里没有什么工具来关联一个对象的高层次信息,客户机只能使用低层次信息来查找对象。 使用对象引用字符串 获取对象引用的另一个遵循CORBA的方法是使用对象引用字符串。CORBA规范要求ORB支持ORBA :: ORB :: object_to_string() 方法。这个方法把提供的对象引用字符串化,把它转化为标准的字符串格式。客户机应用程序激发CORBA::ORB::string_to_object()方法,而ORB把该字符串再转化为对象引用。 这个方法遵循定位对象模型,虽然这种情况下的对象目录不是一个服务,而只是应用程序设计者选择的一个容器。服务器通过把对象字符串化来公布它的对象,并把字符串写到某个输出地方。逻辑上,这些字符串化的对象引用存储在对象目录中。而实际上,它们会存储在客户端配置文件或外壳脚本中。客户机应用程序通过从字符串的存储地方取得字符串,并把它转化为对象引用来查找对象。 使用命名服务 命名服务层次范例 使用工厂对象 在CORBA系统中一个普遍使用的模式是工厂对象。工厂是一个对象,该对象的一个方法激发的结果是返回另一个对象引用。前边已经提到过工厂对象的一个例子—在账户管理器中的AccountManager对象。注意工厂对象并不只是用来创建新的CORBA对象,它还可用来返回已存在CORBA对象的引用,这是很重要的。 工厂对象是极其有用的,特别是在客户机能使用大量对象的时候。服务器可以只公布一些工厂对象,而不公布所有伺服对象的引用,客户机可以用这些工厂对象来获取它所需的剩余对象的引用。要注意工厂对于减少某个时间在一个服务器进程中激活的对象数量也是有用的。工厂允许服务器程序员推迟对象的实例化,直至客户机明确地请求该对象,而不需要着急实例化所有可能的对象。这些优点使得工厂对于多数的大规模CORBA系统都是很重要的。 工厂对象本身的发布仍然需要其他机制. 对象发布/定位机制的选择 通常,不要使用与特定ORB相关的机制,它们依赖于专有的机制,并没有工具把高层次信息和对象关联起来,而且不能与其他ORB互操作。 对于很简单的静态环境,使用对象引用字符串是恰当的。这个方法不依赖于任何附加服务的可用性。客户机只需使用对象引用字符串并连接到合适的服务器。 对于更复杂的环境,命名服务更加适合。它们要求更多的考虑,但相对于其他方法,它们能向用户提供更多的功能。 * * 每个分布式系统都必须设法回答同样的问题:客户端组件如何找到服务器组件并建立连接?基于CORBA的分布式系统也不例外,不过问题的描述稍微有点改变:客户机组件如何获取对象引用? 有很多可能的方式来回答这个问题,而每个方法又有自己的优点和缺点。解决方案可能易于使用但缺少灵活性和可伸缩性,或是功能强大但却很复杂。同样地,解决方案可能专属于特定的O R B实现或遵循CORBA。理想的方法是允许客户机轻易地获取任意主机上的任意对象的引用,又保持遵循CORBA,并足够灵活以扩展到大的CORBA系统。 对象目录 客户机 服务器 1.公布 2.查找 3.使用 CORBA命名服务是对象目录的一个简单例子。它在类似于文件系统的层次结构中存储对象引用。每个对象引用都有一个和它关联的名字。一个名字包含两个字符串域,id和kind。概念上,这些相当于文件系统中的文件名和扩展名。层次由命名上下文组成,这些上下文包含对象引用和其他命名上下文。在这个意义上,它们相当于文件系统中的目录。命名上下文可存储多个对象引用,而在这些引用的名字结构中,id域和kind域必须有一个与之不同。一个简单的命名服务层次如下页图所示。 :NamingContext :NamingContext :AccountManager :AccountManager “账户管理员” “中国银行” “建设银行” 命名上下文组件 对象引用 遗憾的是: 尽管我们在这个图中使用中文作为对象名字,但是在实际CORBA命名服务中,并不支持中文名字,对象名字必须使用ISO 8859-1 (Latin-1)字符集中的字符,且不包括空字符(0x00)和其他不可打印字
您可能关注的文档
最近下载
- 2024年城市管理网格员四级-中级理论知识试题及答案.docx VIP
- 2024年城市管理网格员三级(高级)理论知识考试试题及答案.docx VIP
- 2020-2021学年北京师大二附中实验学校九年级上学期期中数学试卷(含解析).pdf VIP
- 2025年城市管理网格员三级(高级)理论知识考试试题及答案.docx VIP
- 压力性尿失禁的护理查房PPT课件.pptx VIP
- 2024-2025学年辽宁铁道职业技术学院单招《英语》试卷及答案详解【典优】.docx VIP
- 辽宁铁道职业技术学院单招考试文化素质数学通关考试题库(完整版)附答案详解.docx VIP
- 学年西城区四中初三上学期期中数学试卷.pdf VIP
- 2019-2020学年北京四中九年级(上)期中数学试卷--含详细解析.docx VIP
- 中国餐饮企业发展报告.pptx VIP
文档评论(0)