📄 umlcomoad003.htm
字号:
<p></font>CORBA对象的外部表示</p> </b><font face="Times New Roman"><p></font>ES标准流数据格式中定义的外部表示,如文件格式,和CDIF不同。交换语法和编码(Interchange Syntax and Encoding)使用OA&D工具中的丰富的语义进行编码,这一点是很重要的。否则,不同抽象层次间的翻译就很可能会引起错误和混淆。</p> <p>我们选择了CDIF的编码而没有选择外部服务中定义的编码。这是因为:</p> <blockquote> <font face="Times New Roman"><p></font>CDIF的定义与元模型转换的详细程度是一致的;</p> <p>有许多工具实现了CDIF;</p> <p>在不同的情况下,CDIF可以以不同的结合方式与ES服务连接,以获得最大限度的可移植性和使用效率。</p> </blockquote> <font face="Times New Roman"><p></font><br> 采用CDIF标准的其它理由在文档《<i>依从UML的交换格式</i>》中讨论。</p> <b><font face="Arial"><p></font>ES服务和CDIF的不同结合方式</p> </b><p>下面的三个图说明了CDIF与CORBA外部服务的三种结合方式。这些图是按照从不需要ES服务到充分利用ES服务的顺序排列的。</p> <p> <font size="3"><img border="0" src="i/image54.gif" WIDTH="336" HEIGHT="88"></font></p> <b><p>图1 - 从CASE工具到CDIF<font face="Times New Roman"></p> </font> </b><p> <font face="Times New Roman"></p> </font><p>图1(上图)说明了不使用外部服务从CASE工具输出转换模型的步骤。这种方法适合在没有ES服务的环境中进行模型传送转换。对于多重传送转换,CDIF标准提供了一个灵活的格式载体,可以直接转换成分析和设计元模型。</p> <font face="Times New Roman"><p></font> <img border="0" src="i/image55.gif" WIDTH="536" HEIGHT="88"></p> <font face="Times New Roman" size="3"><p> </p> </font><b><p>图2 - 从CASE工具到ES服务到CDIF<font face="Times New Roman"></p> </font> </b><p> <font face="Times New Roman"></p> </font><p>图2(上图)说明了通过采用CASE数据交换格式(Case Data Interchange Format,即CDIF)的外部服务,从CASE工具输出转换模型的步骤。图中,采用CDIF外部服务的功能。这种方法实现了与CDIF标准的多重工具移植相结合的标准流机制的ES特性。</p> <font face="Times New Roman"><p></font> <img border="0" src="i/image56.gif" WIDTH="736" HEIGHT="88"></p> <font face="Times New Roman" size="3"><p> </p> </font><b><p>图3 - 从CASE工具到ES/CDIF到CDIF<font face="Times New Roman"></p> </font> </b><p> <font face="Times New Roman"></p> </font><p>图3(上图)说明了通过采用标准流数据格式(Standard Stream Data Format,即SSDF)的外部服务,从CASE工具输出转换模型的步骤。CDIF包含在SSDF的对象信息(Object Info)部分。这种方法实现了与CDIF标准的多重工具移植相结合的标准流机制的ES特性、可移植性和分布性。</p> <b><font face="Arial"><p></font>2.2.4.3 集合服务(Collection Service)</p> </b><font face="Times New Roman"><p></font>OA&D工具使用了集合服务(也称对象集合服务)中定义的集合,而不是序列(sequences)。工具的IDL模型采用了通用的集合,但在工具的实现中可以使用有序集合或者其它集合。这些集合的接口都是相同的。集合服务还添加了一些操作,如add、remove、replace和iterators。为了采用某些类型安全机制,工具的IDL模型还对集合作了类型定义。</p> <b><font face="Arial"><p></font>2.2.4.4 命名服务(Naming Service)</p> </b><p>只是在OA&D工具的实现部分才需要给用户对象链接名字和解开名称约束。例如,在输入或输出部分模型的过程中,如包。因此,虽然工具的实现依赖于命名服务,但工具的规范与命名服务没有关系。</p> <p>使用命名服务只是为了更好的对聚集(aggregation)进行管理。聚集和名字域都是UML语言预先定义的概念。UML自己执行命名规则(例如包),因此不必赋予用户对命名空间的更多控制。</p> <p>命名服务仅限于UTS-8或ISO Latin。这也是一个问题。</p> <p>注意不要因为可量测性问题(scalability issues)混淆了命名服务和生命周期服务。OA&D工具所依赖的是生命周期服务。</p> <b><font face="Arial"><p></font>2.2.4.5 事件(通知)服务(Event Service)</p> </b><p>当某些模型或视图元素发生改变时,OA&D工具可能需要给客户发送一个通知。工具的客户,如制图工具,可能希望在模型发生改变时更新模型的图形。工具的规范中并不包括这些特性,但如果工具开发者愿意实现这些特点,实际上并不会发生什么矛盾。</p> <b><font face="Arial"><p></font>2.2.4.6 查询服务(Query Service)</p> </b><p>查询服务(QS)中定义的集合已经被集合服务(CS)所取代,因此我们采用集合服务,而不采用查询服务中的集合。</p> <p>查询服务所提供的查询功能是很有用的,但OA&D工具并不一定必须使用查询功能。因此,我们没有定义OA&D工具与查询服务的接口关系。例如,我们没有采用“模式匹配”之类的查询功能,而是为集合/重复定义了按名字查询的接口。如果客户想知道“模型中何处使用了某个对象”,可能会需要完全的查询功能。但这是高级的功能,而不是基本功能。</p> <b><font face="Arial"><p></font>2.2.4.7 其它服务</p> </b><font face="Times New Roman"><p></font>OA&D工具与下列服务没有任何接口关系:</p> <blockquote> <p>持久对象服务(Persistent Object Service)</p> <p>对象处理服务(Object Transaction Service)</p> <p>并发控制服务(Concurrency Control Service)</p> <p>关系服务(Relation Service)</p> <p>注册服务(Licensing Service)</p> <p>属性服务(Property Service)</p> <font face="Times New Roman"><p></font>CORBA安全服务(CORBASecurity Service)</p> <p>时间服务(Time Service)</p> <p>对象贸易者服务(Object Trader Service)</p> </blockquote> <b><font face="Arial" size="4"><p></font><font size="4">2.2.5<a name="2.2.5"></a> CORBA工具</p> </font><font face="Arial"><p></font>2.2.5.1 已采纳的CORBA工具</p> </b><font face="Times New Roman"><p></font>OA&D工具与下列工具之间没有任何接口关系:</p> <blockquote> <p>系统管理工具(System Management Facility)</p> <p>分布文档构件工具(Distributed Document Component Facility)(即基于 OPEN DOC 的“复合表示和交换(Compound Presentation & Interchange)”) <font face="Times New Roman"></p> </blockquote> </font><b><font face="Arial"><p></font>2.2.5.2 正在审议的CORBA工具</p> <font face="Arial"><p></font>2.2.5.2.1 元对象工具</p> </b><font face="Times New Roman"><p></font>OA&D工具可以继承元对象工具(MOF)的某些接口,但目前还没有作这方面的定义。在修改版中会考虑是否定义这些接口。</p> <p>我们之所以想在OA&D工具定义中继承MOF的某些接口,是因为MOF定义了一些工具客户向往的功能。我们将考虑如下的MOF接口:</p> <blockquote> <p>在集合中按名字查找对象</p> <p>返回对象的属性集合,可以包括对象继承的属性</p> <p>返回所有的子类和超类</p> </blockquote> <b><font face="Arial"><p></font>2.2.5.2.2 商业对象工具</p> </b><p>商业对象工具(BOF)可以作为OA&D工具的客户。OA&D工具规范与BOF工具无关。</p> </body>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -