zoukankan      html  css  js  c++  java
  • SOA,不看你永远不知道的事

            你买不来SOA,只能设计自己的SOA。

    SOA不是新东西

            SOA没有引入新概念,它是个把现有概念和实践放到一起,用于特定需求集的范式。你甚至可以说SOA别的什么都 不是,就是将实用主义和头脑风暴运用到分布式系统上而已。

    SOA的基本组成

    •         服务(递进关系)

                    基本服务(最底层)

                    组合服务,对基本服务的一个组合。

                    流程服务,对基本服务的一个配置。

    •         互操作性(Web Services为其一个实现)
    •         松耦合

                    对于松耦合,书中用了专门的一章来介绍松耦合,但是没有什么硬性规定和快速指南,我们必须根据特定的上下文环境和架构,作出适当的松耦合决策。

    构建SOA需要考虑什么?

    •         基础设施:ESB为其一个实现(正要开始研究。。。);
    •         架构:用来加以限制;
    •         流程

                    业务流程建模(BPM),感觉很像工作流,但文中介绍说是比工作流大一点

                    服务生命周期

                    模型驱动的软件开发(MDSD),对于介个吧,感觉平时用EA建模,然后生成代码是不是就是这个意思呢?

    SOA与事务

            之前一直认为很好很强大的二阶段提交被作者说:在大型项目中,你会惊讶于二阶段提交使用的是如此的少。。

            2PC是中间件被最为爆炒的特性之一。只要是对中间件的评估,是否支持2PC的问题就会被提出。但是所有后端系统都必须支持它,所以它带来了一些编程工作量,并且绑住了一些资源。主要的问题在于所有的系统都必须在线,而且,直到更改在最后的系统上完成之前,所有的系统都必须提供资源。耦合度相对较大。

            既保证总体一致性,同时耦合程度也更松的方法是补偿。对于补偿的使用还没有详细研究(已安排下去),这里只说一下它的优缺点。优点是,对系统的更新不必同步进行(当更新有的后端系统时,它们甚至可以不在线)。缺点是你必须显式的提供和调用服务,回滚之前调用的服务的影响,或者,你必须提供程序用于手动错误处理。(BPEL是Web Services 的流程执行语言,它直接支持补偿~)

    SOA与安全

            SOA需要的不只是点到点的安全,而是端到端的安全,对于安全,将安全当作服务进行引入,不失为一个上好的决策。

    对于SOA的一些个人看法

            SOA中的服务个人感觉很像经典三层中的业务逻辑层,只不过被赋予了远程调用等其它概念而已。

            可否用工作流来代替复杂业务逻辑层的编写?但是事务要怎样控制(BPEL中把持补偿)?权限又该怎样控制?

            是否需要对所有非查询方法都要设置幂等?什么样的方法才需要设置幂等?

            SOA的设计思路是:从大处考虑,从小处着手,迭代设计。但是没有接触过SOA的系统,对SOA的概念理解远不如OO的系统理解深刻。对于这个“小”着实有点难把控。。。

            ESB作为一个基础设施的存在,对于它的研究或许能够对SOA的思想进一步理解吧。

            还有就是协议驱动和API驱动,这两个名词其实整的人很蛋疼……

            最后,再发表一下个人看SOA一本书的整体心灵感受吧:
            一个一个的中国汉字都认识,可是合到一起,就不知道说的是什么了,对于对汉字理解能力不强的我来说,真是一个恶梦。。。


  • 相关阅读:
    spring boot @value 使用
    mac Navicat premium 链接oracle
    List sort 排序
    mac 配置jdk+maven环境变量
    mybatis 根据主键批量insert或update
    git 常用命令
    SpringBoot整合Activiti案例
    Activiti网关-并行网关
    Activiti网关-包含网关
    Activiti网关-排他网关
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3322820.html
Copyright © 2011-2022 走看看