zoukankan      html  css  js  c++  java
  • SOA是什么

     估计很多人都听说过SOA这个词了,但是很多人还是不知道到底什么是SOA。开发人员很容易理解为是一个Web Service,但是这绝对不是SOA,那顶多只能算是SOA的一种实现方法。那么,到底什么是SOA呢?最近正在看SOA Source Book,本篇我将介绍一下SOA到底是什么?如有错误,欢迎指正。

        SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式。从服务、基于服务开发和服务的结果来看,向服务是一种思考方式

    服务

    • 是一种有特定结果的可重复业务活动的逻辑表示(例如,检查客户信用度、提供天气预报等)
    • 自包含
    • 可以组合其他服务
    • 对于服务使用者来说是"黑盒"的

    SOA架构样式

    • 基于服务的设计,这些服务代表的是组成企业业务流程的业务活动
    • 服务提供上下文描述(业务流程、目标、规则、策略、服务接口和服务组件),使用服务编排来实现服务
    • 对技术设施提出要求,建议采用开放标准,以便更好的实现可交互性和透明性
    • 实现是基于特定环境的,约束和使能都必须在上下文中进行描述
    • 服务描述和实现需要很好的治理
    • 需要进行验证式的测试之后才能决定这个服务是否好的服务

    SOA和EA

        虽然SOA和企业架构(EA)的开始不一样,但是现在SOA已经成为企业架构的一个组成部分,所以这里也介绍一下企业架构。

    • 企业架构比IT范围大很多
      • 除技术之外的业务操作、财务、人等
      • 它包含除IT之外的技术,例如制造或物流等
    • 组织实现最大化定义的一些改变
    • 对当前操作的基本控制和治理
    • 企业持续改变,带来成本的减少并能提高商业价值

        TOGAF是一个业界企业架构框架,如果想更多了解TOGAF,可以参考我写的企业架构框架-TOGAF v0.2.pdf

        由于企业架构范围很大,SOA Source Book值关注企业架构的IT组件:

    • 企业IT的战略性开发
    • 一个完整的企业系统,而不只是一部分系统
    • 长期的IT演进,而不只是满足于短期目标

    SOA

    • SOA并不会增大IT系统的内容,但是会提高它们的可交互性
    • IT系统执行一些被明确定义和描述业务活动上下文的服务
    • 之前的应用是那种大的、一整块的应用,只有很小的可交互接口,比较勉强的做集成,对交互也不提供保证。而SOA提供一些小的、模块化的服务,这些服务接口被清晰描述和约定。

    Overview of SOA

    SOA架构维度

    • 成功应用SOA需要具备丰富的知识和技能
    • SOA不能解决所有IT问题,IT架构师必须知道什么时候以及如何使用SOA
    • SOA将是一个大的投资,是从企业长期战略来考虑的
    • 有时候,技术可能会改变战略,但是业务需要和可能性仍旧是主要驱动力。这也是引入企业架构的原因,企业架构会依据企业的长期战略来设计IT战略。

    SOA和无边界信息流(Boundaryless Information Flow)

    • The Open Group的愿景是Boundaryless Information Flow.

    • 因为SOA可以带来无边界信息流,所以SOA在The Open Group占据了重要地位
    • 使用服务来替代应用

    SOA给企业带来敏捷

    有三个不同的方法来实现企业敏捷性

    • 服务组合
    • 模型驱动开发
    • 服务虚拟化

    架构师能够把这些方法都应用到SOA上,但是它们需要不同的基础设施的支持,你必须根据需求来选择合适的方案。

    SOA功能和作用

    功能

    作用

    基础设施

    Service

    • 改善的信息流
    • 对外公布的能力
    • 功能组织的灵活性
     

    Service Re-use

    • 低的软件开发和管理费用

    Service repository

    Messaging

    • 配置灵活性

    Messaging program

    Message Monitoring

    • 商业智能Business intelligence
    • 绩效度量
    • 安全攻击检测

    Activity monitor

    Message Control

    • 应用管理策略
    • 应用安全策略

    PDPs and PEPs

    Message Transformation

    • 数据转换

    Data translator

    Message Security

    • 数据机密和集成

    Encryption engine

    Complex Event Processing

    • 简化软件结构
    • 快速适配外部不同环境的能力
    • 提高可管理性和安全性

    Event processor

    Service Composition

    • 快速开发新的功能组合

    Composition engine

    Service Discovery

    • 优化绩效、功能和成本的能力
    • 更容易的系统升级

    Service registry

    Asset Wrapping

    • 集成现有资产的能力
     

    Virtualization

    • 提高可靠性
    • 可以扩充满足不同要求级别
     

    Model-driven Implementation

    • 快速开发新功能

    Model-implementation

    environment

    推荐:你可能需要的在线电子书 

    我的新浪围脖: http://t.sina.com.cn/openexpressapp

    欢迎转载,转载请注明:转载自周金根 [ http://zhoujg.cnblogs.com/ ]

  • 相关阅读:
    Java找N个数中最小的K个数,PriorityQueue和Arrays.sort()两种实现方法
    POJ 1661 Help Jimmy(C)动态规划
    LeetCode第8场双周赛(Java)
    Eclipse访问外部网站(比如:CSDN首页)
    LeetCode第151场周赛(Java)
    LeetCode第152场周赛(Java)
    Eclipse Block Selection(块选择)快捷键 Alt + Shift + A
    PAT(B) 1090 危险品装箱(Java)
    PAT(B) 1050 螺旋矩阵(Java:24分)
    PAT(B) 1045 快速排序(C)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1963701.html
Copyright © 2011-2022 走看看