SOA体系结构是基于服务组件模型,将应用程序的不同功能单元通过定义良好的接口契约联系起来,接口是采用中立方式进行定义的,独立于实现服务的硬件平台,操作系统和编程语言。使得构建在这样的系统中的服务可以以一种统一的,通用的,灵活的方式进行交互,SOA组件模型 具有以下特点:

  1. 可重用:一个服务穿件后能用于多个应用和业务流程。
  2. 松耦合:服务请求者到服务提供者的绑定与服务之间应该是送耦合的,因此,服务请求者不需要知道服务提供者实现的技术细节,只需要知道服务名与服务接口即可。服务的部署,迁移,扩容极其便利。
  3. 明确定义的服务接口: 服务交互必须是明确定义的。SOA 服务组件提供标准周知的服务接口,服务请求者根据服务名,标准服务接口来获取服务,Web 服务描述语言WSDL 用于描述服务请求所有者所要求的绑定到服务提供者的细节。WSDL 不包括服务实现的任何技术细节
  4. 基于开放标准:当前SOA细节的实现形式基于开放标准
  5. 无状态的服务设计: 服务应该是独立的,自包含的请求, 在实现时它不需要获取从一个请求到另一个请求的信息或状态,服务不应该依赖于其他服务的上下文和状态。当产生依赖时。他们可以定义成通用的业务流程,函数和数据模型。

SOA不是一项技术,也不是一个标准,而是一种架构,SOA架构独立于标准,提供了架构的蓝图 。架构蓝图切开,分块和组合企业应用程序层,将组件服务化,SOA中的服务于业务功能相关联,但在技术上 独立于业务功能的实现。

SOA的基本概念 
SOA 是一个软件架构,包含了四个关键架构, 包含了四个关键概念: 应用程序前段,服务,服务库和服务总线。 一个服务包含了一个合约,一个或者多个接口以及一个实现。 
其中:

  1. 应用程序前端 ——–>> 业务流程的所有者。
  2. 服务——–>> 提供业务的功能,可以 供应多个程序前端或者其他服务使用
  3. 实现——–>>提供业务逻辑和数据
  4. 合约——–>>为服务客户指定功能,使用和约束。
  5. 接口——>> 物理地公开功能
  6. 服务库——>> 存储SOA中各个服务的服务合约
  7. 服务总线——>>将应用程序前端和服务联在一起。

SOA 架构中, 必须要有三个重要实体角色,分别是 服务请求者,服务管理中心,托管服务进程

基于Web Service 的SOA 
1 , XML-RPC 
一个XMK-RPC 消息的例子

<methodCall>
<methodName>
sample.sumAndDifference
</methodName>
<params>
<param><value><int>5</int></param>
<param><value><int>3</int></param>
</params>
</methodCall>

最新文章

  1. ExecutorService与ThreadPoolTaskExecutor
  2. Net作业调度(五)—quartz.net动态添加job设计
  3. jquery的回调对象Callbacks详解
  4. 【转】创建SVN仓库的步骤
  5. PHP非阻塞模式 (转自 尘缘)
  6. string length()
  7. DP:Cow Exhibition(POJ 2184)(二维问题转01背包)
  8. drbd
  9. 跨平台音乐播放器qmmp(Cross-Platform Audio Player Qmmp)
  10. 专注于个人服装定做_服装设计_Fabric_Design_Tailor-迦勒定制网
  11. oracle删除用户所有的表
  12. web api 2 学习笔记 (OData Batch request)
  13. 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级)
  14. 篇2 安卓app自动化测试-初识python调用appium
  15. Making the Grade (bzoj1592)
  16. Android CoordinatorLayout、AppBarLayout、DrawerLayout、NavigationView 的使用及问题小结
  17. Linux内存机制以及手动释放swap和内存
  18. Mybatis源码之Statement处理器RoutingStatementHandler(三)
  19. 2018-2019-2 《Java程序设计》第8周学习总结
  20. VueJS第2天 初阅API(初识MarkDown)

热门文章

  1. BBS论坛(三十二)
  2. Java操作符真的简单到易如反掌?
  3. DDD实战进阶第一波(十五):开发一般业务的大健康行业直销系统(总结篇)
  4. pyhive 连接 Hive 时错误
  5. 带着新人学springboot的应用09(springboot+异步任务)
  6. ueditor上传图片尺寸过大导致显示难看的解决办法
  7. Linux基础知识第一讲,基本目录结构与基本命令
  8. Docker 镜像之存储管理
  9. 流式大数据计算实践(3)----高可用的Hadoop集群
  10. 使用codis-admin搭建codis集群