`
844604778
  • 浏览: 553650 次
文章分类
社区版块
存档分类
最新评论

UNICON是一个架构描述语言 翻译 BY Lychee(蒋礼青)

 
阅读更多
UNICON一个架构描述语言其重点支持各种建筑部件和风格在现实世界中他们体系结构描述构建系统发现描述架构UNICON的感觉这里一个简短的例子

UNICON体系结构描述一套组件和连接器组件是一个数据或计算轨迹连接介导组件之间相互作用每个组件都有一个接口,导出球员这些球员使人产生该组件可以与外界进行交互的方式同样一个连接协议出口产生的方式连接可以调解互动角色为了说明这一点,这里是一个例子制作使用UNICON图形化编辑器


该图的特点两部分组成,标记A和B,这是UNIX的过滤他们每个出口三名球员以三角形绘制;左侧球员代表输入流标准”右边的球员代表输出流“标准输出“标准错误两个组件之间的连接器,它代表了UNIX管道连接出口的两个角色一个晃来晃去;晃来晃去一个代表散热器
在上面的图片没有组件和连接器之间互动;什么迷上了要指定应该有一个连接一个球员必须与一定的作用在图形编辑器这是通过拖动球员作用,并放弃它散热器和B的输入下降结果如下所示:


球员和角色的关联相互作用的部件整体配置可以指定
UNICON当前版本支持不仅像那些上面的管道过滤系统过程调用共享数据交互模块分布式系统的RPC调用共享处理器根据各种实时学科和数据库访问过程SQL命令

下面举一个例子来说明一下:

1 构件的定义

<component>:==COMPONENT <identifier>

<interface>

<component_implementation>

END <identifier>

定义包括两方面的内容,即接口和实现。

2 构件接口的定义

接口定义了构件所承担的计算任务,规定了使用构件时的约束条件。还对构件的性能和行为做要求。

<interface>:==INTERFACE IS

TYPE <component_type>

<property_list>

<player_list>


构件类型: 构件所承担的功能种类

属性: 对构件整体信息进行补充说明,
以“特性-值”形式成对出现


3 构件实现的定义

<component_implementation>:==  

<primitive_implementation>|<composite_implementation>
<primitive_implementation>:==IMPLEMENTATION IS

<property_list>

<variant_list>

END IMPLEMENTATION
<composite_implementation>:==IMPLEMENTATION IS

<property_list>

<composite_statement_list>

END IMPLEMENTATION

4 连接件的定义

<connector>:==CONNECTOR <identifier>  

<protocol>  

<connector_implementation>  

END <identifier>

定义包括两方面的内容,即协议和实现

连接件协议的定义

协议定义了多个构件之间所允许的交互,并为这些交互提供保障

<protocol>:==PROTOCOL IS   

TYPE <connector_type>    

<property_list>    

<role_list>   

END PROTOCOL

协议定义包括3方面信息:连接件类型、属性和角色

连接件类型表达了连接件所承担的构件交互种类

属性: 对连接件整体信息进行补充说明,
以“特性-值”形式成对出现

角色: 通过角色在构件之间进行中介。构件和连接件 有交互时,构件的参与者和连接件的角色被关 联起来。

连接件实现的定义

实现方式是UniCon语言内建的
UniCon不提供任何的机制支持用户自定义的实现


一下为例子:

UniCon Example

UniCon描述管道的例子。两个连接由构件和连接件实例分开。

USES p1 PROTOCOL Unix-pipe   

USES sorter INTERFACE Sort-filter   

CONNECT sorter.output TO p1.source

USES p2 PROTOCOL Unix-pipe   

USES printer INTERFACE Print-filter   

CONNECT printer.input TO p2.sink


假设一个实时系统采用客户/服务器体系结构。在该系统中,两个任务共享同一个计算机资源,这种共享通过远程过程调用(Romoter Procedure Call,RPC)实现。

component Real_Time_System

interface is  

type General

implementation is
  

uses client interface rtclient

PRIORITY(10)

……

end client

uses server interface rtserver

PRIORITY(10)

……

end server

establish RTM-realtime-sched with

client.application1 as load

server.application2 as load
server.services as load

algorithe(rate_monotonic)

end RTM-realtime-sched

estalbish RTM-remote-proc-call with

client.timeget as caller

server.timeget as definer

IDLTYPE(Mach)

end RTM-remote-proc-call
end implementation end Real-Time-System

connector RTM-realtime-sched

protocol is

type RTScheduler

role load is load

end protocol

implementation is
builtin

end implementation end RTM-realtime-sched


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics