ISA标准和惯例

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/2705731 ISA标准和惯例 ISA(Interactive Services Architecture)交互式服务架构1)软件设计模式ISA设计团队采用Factory模式来实现ISA设计的主要方面。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/2705731

ISA标准和惯例

 

ISA(Interactive Services Architecture)交互式服务架构
1)软件设计模式
ISA设计团队采用Factory模式来实现ISA设计的主要方面。
2)UML
ISA架构使用Rational Rose设计工具来创建复杂的面向对象系统的对象模型。
3)ISA1.4的实现
ISA1.4的实现采用下面的软件:
CORBA2.0
IDL
XML
IIOP作为基本的互操作能力协议
4)ISA对象模型
分布式对象技术:采用CORBA2.0作为理想的ISA兼容系统的实现,理由:
面向对象的能力
定位的独立性
语言的独立性
实现的独立性
硬件架构的独立性
操作系统的独立性
协议的独立性
传输的独立性
5)CORBA服务
CORBA提供了大量的预定义服务,
(1)命名服务
任何分布式系统都要解决的关键问题之一是怎样获得对象的引用,不管对象的实际位置。
对象位置透明 是CORBA的主要特征之一。
CORBA命名服务提供了一个分层的分布式命名服务。
(当服务器对象开始执行时,它用CORBA命名服务注册自身为一特殊的名字。客户端可使用此名字向命名服务器发出一请求,然后命

名服务器返回一对象引用供客户端调用对象的方法。)
为了客户端高效使用命名服务,ISA定义了标准的命名分层结构,客户端很清楚要使用的对象的标准名字。
(2)命名结构
CORBA命名服务以树结构分层命名的方式存储对象引用,类似于Windows的文件系统。
ISA架构采用了一个非常特殊的策略来使用CORBA命名服务和决定注册到命名服务的对象类型。此策略就是命名服务中的Factory

Object Reference。
Factory模式是:将对象的创建交由父类中定义的一个标准方法来完成,而不是其构造函数,究竟该创建何种对象由具体的子类负责

决定,并提供一个共同的接口来创建相互关联的多个对象。
Factory对象是创建其它对象的对象。
(3)通知服务
分布式系统中,当一些组件感兴趣的事件出现后,需要通知相关的系统组件。
CORBA通知服务提供了一个框架来异步发送通信消息(通知)到对象,提醒指定的事件已发生。
CORBA通知服务使用supplier/consumer分布式模型。
ISA事件模型由下面组件组成:
· PUSH Supplier(推供应商):
一ISA组件、连接到“代理推消费者”,通过调用适当的推方法来传输事件数据到消费者。
· Proxy Push Consumer(代理推消费者):
事件通道支持的一个接口,代理所有注册到事件通道的推消费者,接收事件并发送到实际的消费者。
· Push Consumer(推消费者):
一ISA组件,连接到"代理推消费者".
· Proxy Push Supplier(代理推供应商):
事件通道支持的一个接口,工作在事件通道的消费者端。消费者连接“代理推供应商”。
(4)通知服务支持三种方式的事件交付
· In CORBA::Any
· A CosNotification::StructuredEvent
· A sequence of StructuredEvents
基于事件通知使用的类型,适当的代理消费者和供应商必须被用于各自的供应商和消费者端。
事件通知经事件通道发送到组件。
一个事件通道是一个CORBA对象,它允许其它的对象相互通信而无需知道对方。
供应商是对象,提供事件到事件通道。
消费者是对象,从事件通道接收事件。
提供事件的过程有时是调用publishing事件。
通知服务提供了QoS设置,允许应用程序控制为事件消息交付的QoS所需的东西。
ISA事件模型使用通知服务的通信推事件模型。(此模型中,每个个体都关注事件通道提供的代理消费者。代理消费者从供应商处接

收事件通信,然后使用代理供应商传递事件数据到实际的消费者。简单说,供应商调用在消费者的接口来推事件。
(5)事件过滤
通知服务支持事件过滤,给事件消费者过滤事件的能力。
事件消费者能定义过滤器,它封装了一套限制,并添加到proxy或admin。
过滤器包含了限制表达式,限制表达式定义了过滤标准。
每个限制表达式由事件类型序列组成,使用限制语言,缺省的限制语言是EXTENDED_TCL。

目录
相关文章
|
12月前
|
程序员 Python
Python编码规范:标识符
Python编码规范:标识符
|
C语言 Perl
西门子S7-200 SMART如何分配符号?如何定义、编辑和选择符号?
西门子S7-200 SMART如何分配符号?如何定义、编辑和选择符号?
西门子S7-200 SMART如何分配符号?如何定义、编辑和选择符号?
西门子S7-200 SMART如何分配符号,如何定义、编辑和选择符号
本篇我们来学习西门子S7-200 SMART如何使用符号。首先我们来看为什么要使用符号:为存储器地址或常量指定符号名称可以增强程序的可读性,方便编辑和调试。下面我们来介绍如何在STEP7-Micro/WIN SMART中创建和使用符号。
西门子S7-200 SMART如何分配符号,如何定义、编辑和选择符号
上拉电阻与下拉电阻用途
上拉电阻与下拉电阻用途
141 0
|
运维 负载均衡 安全
SecDevOps,软件定义安全来了吗?
SecDevOps,软件定义安全来了吗?
266 0
SecDevOps,软件定义安全来了吗?
|
边缘计算 物联网 5G
5G的7大用途,你知道几个?
5G时代悄悄来临,甚至成为街头巷尾都在讨论的话题。相信你一定有过一些疑问:什么是5G?仅仅只是网速更快吗?5G如何做到毫秒级的延迟?网络切片是什么?5G的标准之争是怎么回事,在争什么?看完本文,相信你对5G能有基本的了解。
4655 0
5G的7大用途,你知道几个?
|
C#
“在引用COM组件时,出现了无法嵌入互操作类型。。。”的错误
  这两天在做一个需要将wps文档转换成word文档的程序,在调用wps的com组件时项目编译是没有问题的,但当运行的时候却弹出了下面的错误提示: 从网上百度一番后,找到了正确的解决方法。    先从Com组件中添加引用:   选中引入的Com组件库,右键-> 属性:   将“嵌入互操作类型”改为 False 选项:   重新编译,程序正常运行。
1086 0
|
API
为类提供软件约定“.NET研究”
  根据一种很好的旧软件开发做法,应在每个方法的顶部(即实现任何重要行为之前)放置一个条件语句作为屏障。 每个条件语句都检查输入值必须验证的不同条件。 如果条件未通过验证,代码会引发异常。 这种模式通常称为 If-Then-Throw。
674 0