没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记97(2004)241-258www.elsevier.com/locate/entcs为软件体系结构Ant'oniaLopes1里斯本大学科学院信息学系,Campo Grande,1749-016葡萄牙我是路易斯·菲亚德尔莱斯特大学计算机科学系地址:University Road,Leicester LE1 7RH,UK摘要移动性已经成为软件系统构建和演化中的一个新的复杂因素。在本文中,我们将展示如何架构描述技术可以丰富,以支持增量和组合构造的位置感知系统。在我们的方法中,在分布式系统的架构模型中集成和管理移动性的过程不会干扰在其他两个维度-计算和协调-的级别上做出的选择。这意味着计算、协调和分布之间的真正分离可以在架构模型级别上实施保留字: 软件架构、移动性、细化和连接器。1介绍移动计算的出现为软件系统的构思和开发开辟了全新的途径在这种新的计算方式下,可以通过利用数据、代码和代理在执行过程中可以改变位置的事实例如,代理的远程执行和本地交互是1电子邮件:mal@di.fc.ul.pt2电子邮件:jose@fiadeiro.org1571-0661 © 2004 Elsevier B. V.根据CC BY-NC-ND许可证开放访问。doi:10.1016/j.entcs.2004.04.039242A.洛佩斯,J.L. Fiadeiro /理论计算机科学电子笔记97(2004)241-258当等待时间很长并且交互很广泛时,最好是远程交互;由移动代理进行的软件动态更新比由用户执行的新版本的典型静态安装简单得多。因此,正如[15]和[11]中所论证的那样,在效率和灵活性方面,可以获得优于传统分配形式的优势。然而,这些优势是有代价的。虽然已经证明在静态配置上构建分布式应用对于现有的软件开发方法和技术来说是具有足够挑战性的,但是由于需要考虑在运行时可能发生的变化,移动性引入了额外的复杂性因素,在组件执行计算并相互交互的拓扑级别近年来,基于架构的方法已被证明有助于驯服的复杂性设计和构建高度分布式系统。通过在计算之间强制严格分离关注点,如由单个组件执行的,以及通过显式连接器协调组件交互方式的机制,体系结构描述语言支持系统的总体模块化,可以以组合的方式逐步细化,通过添加细节到在所选平台和支持协调的通信协议中执行计算的方式。组合性意味着可以在不干扰已经在另一个维度上做出的选择的情况下对其中一个维度进行细化这同样适用于进化:连接器可以被改变或替换,而不干扰组件在本地执行以执行系统服务所需的计算的代码,并且代码本身可以被演进(例如优化),而不干扰连接器,例如干扰用于互连组件的通信协议。在本文中,我们报告了我们目前在IST项目AGILE(移动性架构)中所做的工作,目的是将架构方法与考虑分布和移动性的需求相协调。更确切地说,我们调查的分离和组合的水平,已获得的计算和协调可以扩展到分布,使一个可以支持的建设和发展的位置感知的建筑模型,通过叠加显式连接器,处理的流动性方面,同时保持“静态”的属性,可以推断出从一个位置透明的架构视图为此,我们利用我们以前的工作,通过这些工作,可以在建筑模型中显式地解决移动性的原语的发展[7]。特别是,我们利用了一个设计原语A.洛佩斯,J.L. Fiadeiro /理论计算机科学电子笔记97(2004)241-258243架构连接器[2]在外部化组件之间的交互。在这种情况下,我们表明,位置透明的建筑模型可以通过叠加的组件和连接器的分布connec- tors的位置感知以这种方式,例如,可以调节组件和连接器对位置和连接它们的网络基础设施的属性的依赖性,而不干扰考虑位置无关属性的计算和协调方面。我们提出了我们的方法在Community,一种语言,我们一直在开发,以支持架构描述在其更基本的水平,即在头脑中,以方便分析和形式化的架构语义原语,而不是软件架构本身的建模。从这个意义上说,Community是一种“原型”语言,剥离到最低限度,支持从计算中外部化协调。Community最近得到了扩展,以支持对移动系统的描述[7]。在本文中,我们使用此扩展来描述移动架构,并说明如何利用计算,协调和分布之间的三向分离。2社区中的建筑描写位置透明性通常被认为是分布式系统设计的一个重要抽象原则。它假设基础结构屏蔽了系统的物理和逻辑分布,并提供了位置透明的通信和对资源的访问:组件不需要知道它们互连的组件驻留在哪里并执行它们的计算,也不需要知道它们自己如何在分布网络中移动。传统上,软件设计的架构方法也遵循这一原则;本质上,它们都共享这样的观点,即系统架构是根据组件和架构连接器来构建的。组件是计算的场所,而连接器,叠加在某些组件或组件组上,明确定义了这些组件相互作用的方式。在Community中,组件是根据一组通道V(声明为输入、输出或私有)和一组动作Γ(共享或私有)来设计的,它们共同构成了我们所说的签名。更准确地说,• 输入通道用于从环境中读取数据;组件无法控制这些通道中提供的值。输出和专用通道由组件在本地控制。输出通道允许环境读取组件产生的数据244A.洛佩斯,J.L. Fiadeiro /理论计算机科学电子笔记97(2004)241-258nent。• 私有操作表示内部计算,因为它们的执行是唯一受组件控制的,而共享操作表示组件和执行之间可能的交互。在Community中,通过将每个动作g与以下形式的表达式相关联来描述计算方面:g[D(g)]:L(g),U(g)→R(g)哪里• D(g)由局部通道组成,动作的执行可以将值放入其中。我们经常忽略这个集合,因为它可以从R(g)中的赋值推导出来。给定一个私有或输出通道v,我们也将用D(v)表示动作g的集合,使得v∈D(g)。我们用F(g)表示在D(g)中或在L(g)、U(g)或R(g)中使用的通道的集合。• L(g)和U(g)是两个条件,它们建立了实现g的任何保护命令的启用条件必须位于其中的间隔。只有当L(g)和U(g)等价时,使能条件才完全确定,在这种情况下,我们只写一个条件。• R(g)是关于V和D(g)J的条件,其中通过D(g)J,我们表示来自g的写入帧的启动局部信道的集合。像往常一样,这些启动的通道考虑了对通道在行动的执行。这些条件通常是一个关联的形式,预预不涉及启动通道。它们对应于霍尔意义上的前/后条件规范。当R(g)是这样的,充分确定的启动通道,我们得到一个条件多重分配,在这种情况下,我们使用的符号,通常是在编程语言中找到。当写帧D(g)为空时,R(g)是重言式的,我们用skip表示。Community中的设计定义为一组数据类型,用于构建通道传输的数据,并定义执行所需计算的操作。因此,数据类型的选择基本上决定了组件可以在本地执行的基本计算的性质,这些计算被抽象为对数据元素的操作。为了简单起见,我们假设数据类型的集合是固定的,也就是说,我们将不讨论在将设计及其互连映射到支持计算和协调的平台时需要涉及的数据细化过程。为了保持独立于任何特定的语言来定义这些数据类型,我们A.洛佩斯,J.L. Fiadeiro /理论计算机科学电子笔记97(2004)241-258245发送器同步接收器以一阶代数的形式表示。也就是说,我们假设一个数据签名S,,其中S是一个集合(排序),是一个S×S-索引的集合族(操作),与一个集合一起给出Φ的一阶语句指定的功能的操作。在Community中,“计算”和“协调”之间的分离组件之间的交互模型基于动作同步和通过输入和输出通道的数据交换。这些是互连软件组件的标准方法.Community与其他并行程序设计语言的区别在于,组件之间的这种交互必须通过提供相应的名称绑定来显式化;在不同的签名中使用相同的名称不能推断出隐式交互;这种巧合被视为偶然的,并且在系统的全局性中被消除歧义。下面的例子说明了Community如何在一个非常简单的发送者-接收者系统中支持这种关注点分离。发送方一次性产生比特字,然后通过同步消息传递将比特字一个接一个地传输到接收方。该系统的抽象架构模型描述如下:图1.一、在Community中,模型由图2中所示的(配置)图组成,其中bsenderis outobit:bitprvword:array(N,bit),k:nat,rd:booldonew-w[k,word]:k=Nk'=0[]new-b:rdN:=truobit:=word[k]k:=k+1[] send:rdrd:=false设计breceiver在ibit:bit中输出w:array(N,bit),k:natprvrd:bool,word:array(N,bit)dorec:k N word[k]:=ibit:=k+1:=false[]prvsave-w:rd k=Nrd:= :=word[]new-w: =Nrd:= :=0设计bsender建模一个组件,重复产生新的246A.洛佩斯,J.L. Fiadeiro /理论计算机科学电子笔记97(2004)241-258字(动作new-w),并逐个发送它们的比特:它将比特放置在输出信道obit中,然后等待该比特已被环境读取的确认(动作send)。设计breceiver对通过输入通道ibit接收位并产生N位字的组件进行建模,该N位字通过输出通道w对环境可用。线材cable奥比特阿比特阿比特发送iibitacrecbsender设计同步是breceiverini:bitdoac:true图二、为了定义两个组件通过同步消息传递进行通信,我们必须明确bsender的动作send和breceiver的动作rec的同步以及用于比特传输的通道obit和ibit的i/o互连下面给出的设计电缆模拟了一个没有计算行为的组件,其作用是执行通道之间的绑定并建立互连所需的绑定和renewal-vous本身通过箭头表示。设计电缆在i:bit中doa:fun事实上,这些箭头是数学对象,与设计一起定义了DSGN类别(见下文)。Com- mUnity中的配置图是DSGN中的简单分类图。取图的共限,通过内化所有的互连,将配置折叠成范畴的对象,从而提供了系统的整体设计(关于范畴方法的更多细节和动机可以在[6]中找到)。给定一个设计Pi,我们表示• 由Xi表示的通道集,输入、输出和专用通道集分别通过in(Xi)、out(Xi)和prv(Xi),以及通过local(Xi)的输出和私有信道的并集;• 由Γi表示的动作集合以及分别由sh(Γi)和prv(Γi)定义2.1态射σ:P1→P2由全函数σch组成:X1→X2和部分映射σac:Γ2→ Γ1满足:1. 对于每个x∈X1:A.洛佩斯,J.L. Fiadeiro /理论计算机科学电子笔记97(2004)241-258247(a) sort2(σch(x))=sort1(x)(b) 如果x∈out(X1),则σch(x)∈out(X2)(c) 若x∈prv(X1),则σch(x)∈prv(X2)(d) 如果x∈in(X1),则σch(x)∈out(X2)∈in(X2)2. 对任意g∈Γ2 s.t. σac(g)定义为(a) 若g∈sh(Γ2),则σac(g)∈sh(Γ1)(b) 若g∈prv(Γ2),则σac(g)∈prv(Γ1)3. 对任意g∈Γ2 s.t. σac(g)定义为(a) σch(D1(σac(g)<$D2(g)(b) σac是D2(σch(x))上的和,且σac(D2(σch(x)<$D1(x),对任意x∈本地(X1)(c)第(1)款 Φ(R2(g)<$σ(R1(σac(g)(d)其他事项 Φ(L2(g)<$σ(L1(σac(g)(e)Φ(U2(g)<$σ(U1(σac(g))))其中,有效性是指在底层数据类型的公理化Φ上采用的一阶意义上的有效性。设计和态射构成了DSGN范畴。为了总结CommUnity如何支持架构设计的概述,重要的是要提到连接器可以通过(配置)图表示为第一级实体。例如,表示消息的单向同步传输的连接器可以通过图3中描述的配置图进行建模。连接器用于构造发送器-接收器系统,通过使用组件bsender和breceiver建立其角色sender和receiver的实例化。同步电缆我的天啊发送电子邮件设计发送方是设计同步是设计接收方是输出o:bitin i:bitin i:bitprvrd:booldoac:true跳过dorec:true,false跳过doprod:rd,false:=false[]send:< :=true奥博比特第三章发送发送我是一名记者,b发送器b接收器图3.第三章。连接器的每个角色都定义了每个连接器所期望的行为248A.洛佩斯,J.L. Fiadeiro /理论计算机科学电子笔记97(2004)241-258被指定的交互的合作伙伴。当且仅当组件满足角色确定的义务时,角色与组件的实例化在Community中,角色的实例化也被定义在一个设计类别上,但使用了不同的态射概念来捕获行为细化。这种细化的概念允许交换组件甚至连接器,但不会改变系统的整体结构。关于设计之间和连接器之间的这些精化态射的细节可以分别在[6]和[8]中找到3设计位置感知Community在[7]中进行了扩展,具有支持描述具有移动组件和位置感知计算或交互模式的系统的功能。这种扩展基于分布拓扑的显式表示:预期的这种类型应该以一种被认为适合于系统所嵌入或将要嵌入的特定应用领域的方式对空间的位置进行建模。我们唯一的要求是在一个特殊的地方–直觉认为,“一个”是一个特殊的位置,用于定位可以以位置透明的方式与任何其他实体通信的实体的空间。下文将进一步讨论联合国难民事务高级专员办事处的作用为了对具有位置感知的系统进行建模,我们使用一组在Loc上类型化的位置变量Lλ来丰富签名,并为每个输出和私有通道以及每个动作分配一组位置变量:• 每个本地信道x与位置l相关联。我们通过简单地在x的声明中写入x@l来显式地进行这种赋值。 直观上,l的值表示x的值可用的空间的当前位置。l的值的改变需要x的移动以及位于l的其他通道和动作的移动。• 每个动作名称g与一组位置Λ(g)相关联,这意味着动作g的执行分布在这些位置上。换句话说,g的执行包括在这些位置中的每一个中同步执行受保护命令,现在可能包括涉及位置变量的读取或写入的赋值,与定位的动作相关联,即,对g@l,其中l∈Λ(g).位置可以像通道一样声明为输入或输出。输入位置是从环境中读取的,A.洛佩斯,J.L. Fiadeiro /理论计算机科学电子笔记97(2004)241-258249组件,并且因此,位于输入位置处的任何成分的移动都在环境的控制下。输出位置只能通过在动作内执行的赋值进行局部修改,因此,位于输出位置的任何成分的移动都在组件的控制之下。每个集合L λ具有可区分的输出位置- λ。这个位置的特殊性在于它的值是不变的,并且由π给出。当一个人不想对渠道或行动的位置做出承诺时,就使用它。例如,输入通道总是位于λ,因为它们存储的值是由环境以位置透明的方式提供的;它们的位置是在配置时连接到其他组件的输出通道时确定的。唯一地位于λ处的动作对没有做出位置感知承诺的活动进行建模;在这些情况下,对λ的引用通常被省略。 在开发过程的后期阶段,这些动作的执行可以分布在几个位置上,即与g@λ相关联的受保护命令可以被分成与形式g@l的定位动作相关联的几个受保护命令,其中l是适当的位置。当与g@λ相关的命令在给定的一组位置上完全分布时,在这个意义上,它的所有保护和效应都已被考虑在内,对g@λ的引用通常被省略。为了说明新原语的使用,考虑第2节中讨论的发送者-接收者系统。假设我们想让接收器成为一个移动组件:一旦接收到一个定义位置的单词,组件就应该将计算的执行移动到该位置。Community的设计对这种行为进行了建模,如下所示:设计mobile_breceiverisoutloc l单位: ibit:bit输出w@l:array(N,bit),k@l:natprvrd@l:bool,word@l:array(N,bit)dorec@l:k
下载后可阅读完整内容,剩余1页未读,立即下载
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- VMP技术解析:Handle块优化与壳模板初始化
- C++ Primer 第四版更新:现代编程风格与标准库
- 计算机系统基础实验:缓冲区溢出攻击(Lab3)
- 中国结算网上业务平台:证券登记操作详解与常见问题
- FPGA驱动的五子棋博弈系统:加速与创新娱乐体验
- 多旋翼飞行器定点位置控制器设计实验
- 基于流量预测与潮汐效应的动态载频优化策略
- SQL练习:查询分析与高级操作
- 海底数据中心散热优化:从MATLAB到动态模拟
- 移动应用作业:MyDiaryBook - Google Material Design 日记APP
- Linux提权技术详解:从内核漏洞到Sudo配置错误
- 93分钟快速入门 LaTeX:从入门到实践
- 5G测试新挑战与罗德与施瓦茨解决方案
- EAS系统性能优化与故障诊断指南
- Java并发编程:JUC核心概念解析与应用
- 数据结构实验报告:基于不同存储结构的线性表和树实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)