`
橙色稀饭
  • 浏览: 5549 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多
一.动机
   1.你买不来SOA,你必须理解SOA.亲自经历SOA.SOA是一个范式.SOA是和思维方式;SOA是架构和设计的评估体系.
   2.建立SOA不是一个设计新系统的项目,SOA涉及改变现有系统结构,这意味你必须和老平台及向后兼容问题打交道.SOA是对大型系统景观开展"维护"工作的方法.
   3.总线代表了高操作性.其背后的思想是,不去为不同系统间创建和维护单独的通信渠道,每个系统只和总线连接就能和所有其他系统连接起来.
   4.面向服务的架构(SOA)是个范式目的是实现和维护跨越了大型分布式系统的业务流程.它基于三个技术概念:服务,通过企业服务总线达成的互操作性.以及松耦合.
   5.一个服务是一项自足的业务功能.企业服务总线是个基础设施,它分布式系统和服务间的高互操作性成为可能.松耦合是减小系统依赖的概念.
   6.Web Services 自身也引入了一些问题,首先其标准不够成熟.尚不能保证互操作性.其次.Web Services先天不足.无法形成程度适当的松耦合.
  
二.SOA
   1.使用SOA的关键原因是,它确实有助于你的业务.
   2.灵活性总是比质量更重要.
   3.松耦合表达最小化依赖的概念.当依赖被最小化时,改动造成的影响也最小化.即使部分系统崩溃或当机.整个系统也能运转.
   4.只有平常的业务能以尽可能分散的方式来做,大系统才能顺利工作,引入松耦合的一个方法是,避免引入任何不必要的集中.
  
三.服务
   1.所有SOA都同意,服务自足(独立的,自主的,自给自足的)是个设计目标.
   2.幂等性是当你不确认服务是否完成时重做操作的能力.
  
四.松耦合
                                  紧耦合                松耦合
   物理连接                   点对点                    通过中介者
   通信风格                   同步                      异步
   数据模型                   公共复杂类型              只有简单的公共类型
   类型系统                   强                        弱
   交互模式                   通过复杂的对象树导航      以数据为中心,自足的消息
   业务逻辑控制               集中控制                  分布式控制
   绑定方式                   静态                      动态
   平台                       强平台依赖性              平台无关
   事务                       2PC(两阶段提交)           补偿
   部署                       同时进行                  非同时进行
   版本划分                   显式升级                  隐式升级
  
   2.松耦合要付出使系统更加复杂的代价.
   3.异步通信的一个难点发生在当发送都需要一个答复的时候.
   4.服务供应者定义自己提供服务中所使用的数据类型.服务消费者必须接受这些类型.注意,服务消费者应避免在自己的源代码中使用供应者的数据类型.相反,消费者应有一个薄薄的"映射层",将供应者数据类型映射为自己的数据类型.
   5.基础服务数据类型必须稳定.
   6.永远都应使用通用接口,而非严格的类型检查.
   7.事务补偿的优点是,对系统的更新不必同步进行.缺点烛你必须显式提供和调用服务,回滚之前调用的服务的影响.或者,你必须提供程序用于手动错误处理.
   8.数据类型版本划分符合松耦形式时,只是修改是向下兼容的,消费者就不必做任何事情.
  
  
五.企业服务总线
   1.ESB的主要角色是提供互操作性.
   2.间接方式的优点是ESB能够处理SOA景观内的动态变化.
   3.如果一个ESB技术只提供了点对点连接,你仍然可以实现松耦合.一个选择是,在实际发送请求之前,消费者可以询问中间人或名字服务器.弄清把请求发送到哪儿,这个也实现了某种类型的间接性.
   4.负载平衡和失效备援仍然是大型分布系统的核心需求.
   5.协议驱动方法带来分布式通信模式中的第三个层次.在模型的底层,有一个相对稳定的协议,在顶层有一个调用和实现服务的API.在中间有一个层负责将API映射到协议.
   6.开发ESB支持日志和监测的能力,无论投入多少工作量都不过分.
  
六.服务分类
   1.分为基本服务,组合服务,流程服务.
   2.基本服务应该隐藏技术细节.
   3.组合服务由许基本服务组成.
   4.流程服务通常有一个状态,该状态在多个调用之间保持稳定.
   5.比起短期运行组合服务来,长期运行流程服务往往要求更加健壮,软件质量更好.
  
七.业务流程管理
   1.迭代开发是在合理时间内实现复杂系统的唯一方法
   2.BPM工具:ActiveBPEL一个开源业务流程引擎 BPEL
   3.对一个大型分布项目而言,如果一个方法使你开始着手搞全面的系统分析,这通常是自求灾难
   4.不要基于假设投入大量的工作,太多时候,这些假设都被证明是错的,由于系统会越来越复杂.以致你通常会在软件的整个生命周期内为自己的错误付出代价.
  
八.SOA和组织
   1.SOA是一个业务战略而非IT战略.
  
九.上下文环境中的SOA
    1.让流程引擎不但负责流程服务,还负责给流程服务添加所有有用的搜索标准.使服务可以被搜索.
   
十.消息交换模式
   1.EDA(事件驱动的架构)是一种软件架构模式,它鼓励对事件的生产,发现,消费和响应.
  
十一.服务生命周期
     1.任何时候,如果需要修改生产中的服务的行为,你应该做的引入与服务老版本相互独立的新服务或服务的新版本.
    
十二.版本划分
     1.对任何修改,服务提供者都应该通知现有的服务消费者,并且要与这些消费讨论.
     2.以新服务方式引入修改给你一个机会,你可以针对单独一个消费者观察运行时的行为.当确定情况良好时,再把其余所有消费者换到新的服务.
     3.如果老版本不能逐步淘汰的话,整个系统的统一性将会越来越糟.
     4.作为服务消费者,让你的代码多多少少独立于所调用服务的版本划分是个好主意.
    
十三.SOA和性能
     1.你需要一个中间协议,消费者和供应者能用化来交换数据.
     2.如果一个消费者觉得服务的响应时间太长,而你无法能过增加系统硬件和带宽来改善性能的话,通常你必须在消费者端进行解耦.
     3.收集不同服务请求运行时统计数据,长期对这些数据进行监控是个好主意.
     4.粗粒度下,性能仍然可能成为一个问题.
     5.暂时的权宜之计总是有最强生命力的.

十四.SOA和安全
     1.消息层安全通常更可取,因为它带来端到端的安全性,而传输层安全带来仅仅是点到点安全性.
     2.SOA的基础设施和架构必须互相吻合,只提供基础设施,把安全性问题留给参与者考虑,是非常不好和危险的做法.
     3.处理SOA安全性的最好办法是将安全作为服务提供.
    
十五.技术细节
     1.一个无状态的服务是在不同服务调用之间不维持任何状态的服务.
     2.一个有状态的服务.指的是在多个服务调用之间可以保持状态服务.
     3.性能可能是引入有状态服务非常重要的原因.
     4.关联ID是ESB内部在运行时使用技术性数据处理消息的一个例子.
    
十六.Web Services
     1.直到基础设施的细节真正发挥作用之前,不要运用任何特定于Web Services基础设施考量.
    
十七.服务管理
     1.业务库从业务角度来管理服务及其制品.
     2.注册中心从技术的角度来管理服务.
    
十九.建立SOA和SOA监管
      1.引入SOA唯一正确的方法是让它自己一步步成长.
     
二十.后记
     1.数据库复制,海量数据处理和本地客户端尤其不是SOA的强项.
分享到:
评论

相关推荐

    很好的Soa学习资料

    《SOA:面向服务的架构在Web2.0时代的电子商务系统中的应用》 在Web2.0时代,电子商务系统的设计与构建面临着前所未有的挑战与机遇。随着市场环境的快速变化和消费者需求的日益多样化,传统的电子商务系统已难以...

    SOA学习资料.rar

    本资料包“SOA学习资料.rar”提供了全面的SOA学习资源,包括基础概念、入门指南以及解决实际问题的方法,对于SOA初学者来说极具价值。 首先,让我们深入了解一下SOA的核心概念。SOA基于服务的理念,每个服务都有...

    SOA学习资料内部_soa_2.xmind

    SOA学习资料内部_soa_2.xmind

    SOA 学习的一点资料

    面向服务架构(Service-Oriented Architecture,简称SOA)是一种软件设计范式,它强调将独立的功能封装为可重用的服务,这些服务可以通过标准...通过深入学习SOA,你将掌握创建高效、可重用的企业级服务的关键技能。

    专题资料(2021-2022年)SOA学习笔记总结.docx

    **SOA(Service-Oriented Architecture,面向服务架构)**是一种软件架构风格,旨在通过将业务逻辑以服务的形式封装,实现系统的模块化和灵活性。在SOA中,服务是核心的抽象单元,它们是独立的、自包含的,并且具有...

    SOA学习资料,详细,易学,

    面向服务的架构(Service-Oriented Architecture,简称SOA)是一种设计原则,旨在将复杂的软件系统分解为可重用的服务,这些服务通过标准化的接口进行交互,以实现系统的灵活性、可扩展性和集成性。SOA的核心思想是...

    soa学习[收集].pdf

    面向服务架构(Service-Oriented Architecture,简称SOA)是一种设计模式,旨在通过将功能分解为一系列可重用的服务来构建灵活、可扩展且松散耦合的IT系统。SOA的核心理念是业务驱动服务,服务驱动技术,强调业务...

    SOA 学习心得

    **SOA(Service-Oriented Architecture,面向服务架构)学习心得** SOA是一种软件设计和架构模式,它提倡将业务功能作为独立的服务进行构建,这些服务之间通过标准接口进行通信,实现了服务之间的松耦合。在SOA架构...

    Web 2.0需要向SOA学习的五件大事

    以下是Web 2.0可以从SOA中学习的五个关键点: 1. **采用新的商业模式**:SOA 提倡将服务解耦,这为构建全新的商业模式提供了可能。同样,Web 2.0通过互动和社区参与,也为企业提供了与客户和合作伙伴交流的新渠道,...

    SOA principles & practice(SOA课程课件 10章)

    本课件详细介绍了SOA的原理及其实践,共分为10个章节,旨在提供一个全面、深入的SOA学习路径。** ### 第一章:SOA基础 这一章将介绍SOA的基本概念,包括服务的定义、服务之间的交互方式以及SOA的核心原则。服务作为...

    SOA核心技术及应用(源代码)

    了解微服务的架构原则、技术栈(如Spring Boot、Kubernetes)以及如何进行服务间通信(如gRPC、API Gateway)也是SOA学习的一部分。 10. **案例研究与最佳实践**:通过实际案例,可以深入理解SOA如何解决企业问题和...

    estoque-livros-service:图书列表网络服务-SOA学习案例

    《estoque-livros-service:图书列表网络服务-SOA学习案例》 本项目是一个基于SOA(Service-Oriented Architecture,面向服务架构)设计原则的图书列表网络服务,旨在为用户提供一个灵活、可扩展的图书库存管理解决...

    SOA_JG 2

    这些文件共同构成了一套全面的SOA学习资料,涵盖了理论、实践、工具和技术等多个层面,对于希望理解和实施SOA的IT专业人员来说极具价值。深入学习这些文档,可以增强对服务设计、服务组合、服务生命周期管理以及服务...

    SOA专业人员开发指南系列2

    综上所述,《SOA专业人员开发指南系列2》是一份全面而深入的SOA学习资料,它不仅提供了理论知识,还包含了实践经验,是SOA开发人员和架构师不可或缺的参考工具。通过阅读这份指南,专业人士能够更好地理解和实施SOA...

    soa文档学习 文档

    标题:SOA文档学习 描述:SOA文档学习的重要性在于理解和掌握服务导向架构(Service-Oriented Architecture,简称SOA)的核心概念与实践方法。SOA是一种设计和实现软件架构的模式,它将应用程序的不同功能单元...

    SOA.rar_SOA_SOA 开发

    虽然现在XFire已经被Apache CXF所替代,但在学习SOA和Web服务开发的过程中,XFire仍是一个重要的历史参考。 ### XFire入门 1. **安装与配置**:首先,你需要下载XFire的JAR文件,并将其添加到项目的类路径中。...

Global site tag (gtag.js) - Google Analytics