`

分层架构中的服务层-SOA

阅读更多

SOA Service-Oriented Architecture 面向服务的架构

 

  1 引言

  分布式系统中的服务层和面向服务有很大关系。根据面向服务的规范设计出来的架构就叫做面向服务的架构SOA。

  SOA最有价值的地方是它增进了松散的耦合,进行业务流程建模的时候以服务为基础。SOA通过开放的标准实现相互通信和整合。在SOA中,方案由不同语言编写的服务组成,还可能宿主在不同的平台之上,可以支持不同的绑定模式。

  SOA不是一个服务,SOA是服务的设计原则,包括服务层中的服务。

  2 SOA的原则

  在一个SOA应用中,构建的块是服务而不是组件。服务应该遵循面向对象的基本原则,例如:封装和多态,还包括下面的原则:

  •   边界明确
  •   服务自治
  •   使用协议,而不是类
  •   兼容性

  这些原则应该反映到你设计的服务中。但是要记住每个组织都有自己的需求和希望。对于企业来说,很难找到两个相似的SOA。

  2.1 边界明确

  一个SOA服务暴露清晰和明确的协议。任何与服务的交互都通过公共的接口来实现。实现接口的方法是进入服务体系的入口。方法签名中的数据以消息的形式被服务使用和理解。

  设计服务的时候,作为开发者,你因该使得接口(协议)越简单越好,保留将来的升级空间。这意味着服务的操纵的输入消息和输出消息都要设计好。输入和输出消息应该是容易序列化的类,没有循环引用和依赖,只是一个普通的数据容器。

  

   2.2 服务是自治的

  每一个服务都是独立的,可以和系统的其他部分完全分离。

  从本质来说独立的服务才是松散耦合的服务。他的设计和部署都是独立于其他服务的,但是又可以使用在策略制定的协议基础之上的消息,和其他服务进行通信。

  服务协议被设计为静态的,在部署之后不应该被修改。

  2.3 使用

分享到:
评论

相关推荐

    基于面向服务体系架构SOA和ROA的业务组件模型

    在《面向服务体系架构(SOA)和业务组件(BC)的思考》(以下简称《SOA和BC》)一文中介绍了基于面向服务体系架构(SOA)的组件模型,本文按照“分离”的原则,通过比较当前多种流行的客户端和服务器端的通讯机制,...

    基于SOA技术的管理信息系统设计

    提出了业务组件化、服务化、应用分层的设计思想,对系统运行流程、各软件层和组件的功能进行了论述,提出了系统关键层的设计要求和实现方法.通过对系统一年多的实际应用结果表明,采用基于SOA模式的系统架构可以很...

    结合领域驱动设计的SOA分布式软件架构

    本文来自于博客园,文章介绍了作者在工作过程中开发SOA系统所认识到的问题,详细介绍了应用层、系统总体架构等相关知识。本文主要是参考MartionFowler所著的《企业应用架构模式》与EricEvans所著的《领域驱动设计》...

    dubbo面试题

    它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以...

    某容器云资源管理系统的设计与实现

    某容器云资源管理系统的设计与实现,张仕杰,张笑燕,本文提出了一种某容器云资源管理系统,该系统采用SOA(Service-Oriented Architecture)思想的分层架构,共分为展示层、接口层、业务层和数�

    ASP.NET设计模式-杨明军译(源码)

    6.1 服务层介绍 6.1.1 SOA 6.1.2 SOA的4项信条 6.1.3 Facade设计模式 6.2 应用Messaging模式 6.2.1 Document Message和 Request-Response模式 6.2.2 Reservation模式 6.2.3 Idempotent模式 6.3 SOA示例 ...

    asp.net知识库

    将 ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005 ASP.NET 2.0 中的数据源控件 使用 ASP.NET 2.0 ObjectDataSource 控件 ASP.NET 2.0 的内部变化 使用SQL Cache Dependency 代替 ...

    微服务,正确实施的SOA?

    微服务架构是一种分布式系统的方法,它可以促进使用具有自身生命周期的细粒度服务。由于微服务主要是围绕单个业务流程/功能而建模的,所以它们避免了传统分层 (多层/n层)体系结构(如单体应用)的问题。微服务同时还...

    领域驱动设计与模式实战

    10.2.14 SOA和不可用的服务 10.2.15 复杂的消息传递处理 10.2.16 服务的可伸缩性 10.2.17 小结 10.3 控制反转和依赖注入 10.3.1 任何对象都不是孤岛 10.3.2 工厂、注册类和服务定位器 10.3.3 构造方法依赖注入 ...

    dubbo中文文档官方版本

    Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。此中文文档可以让你更快更容易上手理解及应用到实际项目当中。

Global site tag (gtag.js) - Google Analytics