面向服务体系架构 面向服务的体系结构中的每个实体都扮演着服务提供者、使用者和注册中心这三种角色中的某一种(或多种)。 面向服务的体系结构中的操作包括: 发布(Publish):为了使服务可访问,需要发布服务描述以使服务使用者可以发现它。 发现(Find):服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。 绑定(Bind)和调用(invoke):在检索到服务描述之后,服务使用者继续根据服务描述中的信息来调用服务。 数据流系统(cont.) 优点 允许设计者将一个系统的整体输入/输出行为理解为各个独立过滤器行为的简单合成。 对复用的支持好:任何两个过滤器之间,如果交流的数据格式匹配,即可以连接在一起。 系统的维护与扩展方便:新的过滤器可以添加到现有系统中,或者利用改进的过滤器替换老的过滤器。 方便系统分析:例如,吞吐量、死锁等 并发性好:每一个过滤器可以作为一个单独的任务实现,可以与其它过滤器并行执行。 缺点 经常导致批处理方式。过滤器易被认为是一个将输入数据转换成输出数据的模块,不利于交互。 在维护或响应两个分离但相关的数据流时,利用管道/过滤器方式不易。 由于依赖于实现,这样的系统可能强迫一种最一般的数据传输标准,从而导致了为每一个过滤器进行数据语法分析的工作,增加了复杂性,降低了性能。 调用-返回系统 调用返回系统通过一个激活模型来描述,该模型包括一个执行操作调用的控制主线程。经典的体系结构是主程序和子程序。 主程序和子程序,面向对象的系统,分层层次 调用返回构架一直是大型软件系统的主流构架样式,它能被分解成子任务组,其中每个子任务都处于一个特定的抽象层次上。它的目标是实现系统的可更改性和可扩展性。它有多种子样式: 主程序-子程序构架 远程过程调用构架 面向对象构架 分层构架 实例:网络协议-OSI模型 Client-Server Style 适用于这样的应用系统: 它的数据和处理分布在一定范围的多个构件上,构件之间通过网络连接。 简单的客户机/服务器系统结构中,应分成两部分。 客户机负责用户输入和展示,服务器则处理低层的功能,例如数据库的运作等。 如果一个系统被划分为两类不同的但相互联系的组成部分,其中一方提出对信息或服务的请求,而另一方提供这种信息或者服务,那么这种体系结构就可看作是一种客户机/服务器模型。 2-tier客户机/服务器结构 数据库服务器 客户机 Client/Servers server client client client 方法调用 方法调用 方法调用 构件之间通过网络相连接 数据和处理分布在一定范 围内的多个构件上 Component: server(服务器组件) client (客户组件) Connector: 某种进程间的通信机制,通常是基于RPC的交互协议; 请求-应答的非对称形式。 Server组件 server 拥有接口,接口能描述它提供的服务 向多个客户提供服务,它永远处在激活状态,监听用户请求 被动 在收到服务请求之前不了解客户机的身份 client 向服务器请 求服务 主动 通信一般是成对的,且由客户组件发起; 客户需了解服务器的身份 模型-视图-控制(MVC) 主要用于处理交互性应用程序,模型包含数据和业务逻辑,视图向用户显示信息,控制接受用户输入。VC共同构成了用户的接口,变更-传播机制保证了用户接口和模型之间的一致性。 视图1 控制器 模型 请求 调用 返回 视图2 更新 独立组件 独立组件是分布式式系统的一种形式。独立组件构架由许多通过发送消息进行通讯的独立进程或对象组成,它的目标是通过解除各运算部分之间的耦合实现可更改性,如股票机、各类短信预定等。它有两类子样式: 事件系统样式 通讯进程样式 通信过程和基于事件的体系结构风格依赖于对操作的隐式调用。调用者和被调用者可以存在于不同的软件过程中甚至不同的处理器中。 如出版-订购通信模式 独立组件 实例-代理者(Broker) 可用于构建带有隔离组件的分布式软件系统,该软件通过调用远程软件服务进行交互。Broker负责协调通信,诸如转发请求等。 结构:客户机,服务器,代理者、桥接、客户机端代理和服务器端代理 优点: 定位的透明性 组件的可变性和可扩展性 代理者系统的可移植性 不同代理者之间的互操作性 可重用性 缺点 测试和调试 虚拟机 虚拟机构架的目标 实现可移植性。虚拟机是模拟硬件功能或抽象软件环境的构架样式。 虚拟机构架常见的示例 解释程序、基于规则的系统、句法shell程序、命令语言处理器等。 虚拟机样式 数据 (程序状态) 被解释执行的程序 内部状态 解释引擎 选定的语句 选定的数据 输出 输入 状态数据 数据 更新 程序语句 库 库风格的体系结构包括一个中央数据
原创力文档

文档评论(0)