SOA面向服务架构(经典)
- 格式:ppt
- 大小:835.50 KB
- 文档页数:30
模拟题答案1. 下面关于业务流程的描述哪些是错误的?A. 业务流程由一系列活动组成B. SOA中,业务流程可以包含人工操作C. SOA中,业务流程可以执行数小时甚至数月D. 任务由一系列步骤组成E. 流程中任务的顺序可以调整2.下面关于SOA和Web 2.0的关系哪些是正确的?A.SOA可提供更高的安全性、可靠性和可管理性B. Mashup应用可通过可视化的方式来构建C.Mashup应用不可以组装Web服务D.Web 2.0可完全取代SOA3. 将复杂的系统分解为多个不同的关注点分别加以解决是下面哪种原则的做法A.封装B.松耦合C.关注点分离D.单一实现4. 下面哪个功能是IBM SOA参考架构中流程服务的功能?A.对已有的应用和功能进行封装B.对同构或异构数据源的访问C.将多个服务组合起来D.应用与用户之间的交互5. 下面哪些信息是包含在服务注册中心(Registry)中的?A.服务端点信息B.服务策略信息C.服务代码D.服务版本管理信息6. 下面哪些是ESB所具有的功能?A.注册中心B.身份验证C.消息转换D.服务寻址7. 下面哪些是总线结构的特点?A. 易于管理B. 单点发生故障将整体瘫痪C.易于扩展D.功能更多8. 下面哪些是实施SOA的优势?A. 可降低IT的灵活性B. 可实现业务上的灵活性C. 可提高集成的投资回报D.可更新已有的IT设施E.提高集成的ROI9. Web服务是SOA中实现服务的首选技术,主要是因为:A. Web服务是基于标准的服务实现B.Web服务是面向消息的C. Web服务是针对具体编程语言的D. SOA和Web服务是等价的10. 两个应用中都有NOTEBOOK一词,但一个是指普通的笔记簿,一个是指笔记本电脑,这两个应用通过SOA集成时如何不会发生冲突?A.通过使用XML名字空间B.通过SOAP消息C.重新修改名称D.通过管理制度11. 下面哪些关于SOA和Web服务的描述是正确的?A.SOAP文档是XML格式的B. 服务的接口是通过XML构造和发布的C. 服务的查找可以通过UDDI进行D. 服务的消息传递是基于SOAP的。
soa 原理SOA原理。
SOA(Service-Oriented Architecture,面向服务的架构)是一种设计原则,旨在通过将应用程序设计为一组相互关联的服务,以实现更高效的软件开发、集成和维护。
SOA的核心理念是将应用程序划分为多个独立的、可重用的服务,这些服务可以被其他应用程序或服务调用,从而实现系统的灵活性和可扩展性。
在SOA中,服务是系统中的基本构建块,它们可以被独立开发、部署和管理。
每个服务都有清晰的接口和功能,可以被其他服务或应用程序调用。
这种松散耦合的设计使得系统更易于维护和升级,同时也提高了系统的灵活性和可扩展性。
SOA的核心原则包括服务的独立性、可重用性、标准化接口和松散耦合。
这些原则使得系统更易于扩展和集成,同时也提高了系统的稳定性和可靠性。
在SOA架构中,服务之间通过标准化的接口进行通信,这使得不同的服务可以在不同的平台上运行,从而实现了跨平台的互操作性。
此外,SOA还提供了一套标准化的协议和规范,如SOAP(Simple Object Access Protocol)、WSDL(Web Services Description Language)和UDDI(Universal Description, Discovery, and Integration),这些标准化的协议和规范使得不同的服务可以相互协作,实现系统的集成和互操作。
SOA架构的另一个重要特点是松散耦合,这意味着服务之间的依赖性较低,一个服务的变化不会对其他服务产生影响。
这种松散耦合的设计使得系统更易于维护和升级,同时也提高了系统的灵活性和可扩展性。
总的来说,SOA是一种面向服务的架构,它通过将应用程序设计为一组相互关联的服务,以实现更高效的软件开发、集成和维护。
SOA的核心原则包括服务的独立性、可重用性、标准化接口和松散耦合,这些原则使得系统更易于扩展和集成,同时也提高了系统的稳定性和可靠性。
同时,SOA还提供了一套标准化的协议和规范,如SOAP、WSDL和UDDI,这些标准化的协议和规范使得不同的服务可以相互协作,实现系统的集成和互操作。
SOA定义及解决方案SOA (Service-Oriented Architecture)是一种软件架构风格,它基于服务的概念和面向服务的设计原则,使得软件系统的组件可以通过网络进行互联,并以松散耦合的方式协同工作。
SOA通过将应用程序划分为一系列可重用的、可独立部署的服务,从而提供了一种灵活且可扩展的架构,使企业能够更加敏捷地响应业务需求。
SOA的核心理念是将功能划分为服务,并通过服务之间的通信来实现业务逻辑的协作。
每个服务都是独立的、自治的,并通过公开的接口与其他服务进行交互。
服务之间的通信可以通过传统的基于网络的通信协议,如HTTP和SOAP,也可以采用更轻量级的协议,比如REST。
通过使用标准化的接口和协议,SOA促进了服务的可重用性和互操作性,使得系统可以更容易地扩展和集成现有应用。
SOA的优势在于它提供了一种面向业务的设计方法,使得系统能够更好地适应变化的业务需求。
通过将功能划分为独立的服务,企业可以更快速地构建和部署新的业务流程,并且可以根据需要灵活地组合和重用现有的服务。
此外,SOA还提供了一种松散耦合的机制,使得系统的不同部分可以以独立的方式发展和迭代,从而降低了系统的维护成本和风险。
为了构建一个成功的SOA解决方案,以下是一些关键的考虑因素:1.服务设计:在SOA中,服务是架构的核心组件。
服务的设计应该遵循一些原则,如高内聚、低耦合、可重用性等。
服务应该提供明确定义的接口,并具有明确的功能和责任。
2.服务注册与发现:由于SOA系统中服务的数量庞大,服务的注册与发现是非常重要的。
注册表或服务目录可以用于跟踪和管理可用的服务,并允许应用程序动态地发现和使用这些服务。
3. 服务编排与协作:SOA系统中的服务可能需要协同工作以实现复杂的业务逻辑。
服务编排通过组合和串联不同的服务来实现这种协作。
编排可以通过使用BPM工具(Business Process Management)或编排引擎来实现。
通俗地理解⾯向服务的架构(SOA)以及微服务之间的关系SOA是⼀种软件的应⽤架构⽅法,它基于⾯向对象,但⼜不是⾯向对象,整体上是⾯向服务的架构。
SOA由精确的服务定义、松散的构件服务组成,以及业务流程调⽤等多个⽅⾯形成的⼀整套架构⽅法。
这话是不是听起来,让⼈觉得有点晕,我们就细细品读⼀下。
SOA的架构思想(⼀)SOA架构是⾯向服务的,只不过是基于⾯向对象SOA继承了很多⾯向对象的特点,⽐如说⾯向对象的封装,经常代表很多类封装成⼀个模块,为其他对象调⽤者提供接⼝调⽤,良好的⾯向对象设计就是暴露接⼝,隐藏实现,类⽐到SOA的设计,SOA也需要精准明确地定义好服务接⼝,具体服务内部的逻辑实现都是隐藏在背后的,只不过有两个很⼤的区别:(1)⾯向对象的实现都是基于同⼀个编程语⾔或平台(同构),但SOA服务彻底隐藏了实现上⽤何种语⾔平台的具体细节(异构)(2)⾯向对象的实现其实⼤部分都是本地⽅法之间的调⽤,当然也具备分布式远程⽅法调⽤,但SOA是纯粹提供了独⽴的服务,⾯向分布式的远程服务调⽤。
(⼆)SOA的服务定义是精确的这个怎么理解呢?因为SOA的服务⼀旦发布出来,那么就会有很多其他的异构平台服务进⾏调⽤,这时候的服务接⼝修改就不像⼀个⼈或者⼀个⼩团队之间协作那么容易了,可能涉及到⼀个⼤型企业多部门的信息协作,或者对构件已经形成依赖的⽣态链条。
因此这就牵扯出了SOA另外⼀个特征,那就是服务接⼝的粒度⼀般要设置得⽐较粗。
若提供过多的服务接⼝,服务⼜定义得很细粒度,那么频繁修改是在所难免的。
这⼀点上就注定了SOA架构适合在较重量的环境下存在。
那什么是较重量的环境呢?(1)体系健全、制度稳定的重管理型企业,(2)业务逻辑复杂,服务的独⽴性,开放性需求⼜⼤,服务的稳定性也是刚需。
例如:医院信息化系统架构。
(三)SOA是由松散的构件服务组成为什么是松散的呢?由上述我们可以了解到SOA的服务接⼝是粗粒度的,⽽且组成服务的构件都是独⽴部署并具有独⽴的上下⽂环境,这种形态就是为了降低与其他构件之间的强依赖性。
SOA⾯向服务体系架构SOA概念1、什么是SOA⾯向服务的体系结构(Service-Oriented Architecture,SOA)是⼀个组件模型。
它将应⽤程序的不同功能单元(称为服务)通过这些服务之间定义良好的接⼝和契约联系起来;接⼝是采⽤中⽴的⽅式进⾏定义的,它应该独⽴于实现服务的硬件平台、操作系统和编程语⾔;构建在各种这样的系统中的服务可以⼀种统⼀和通⽤的⽅式进⾏交互。
Web serviceWeb service平台是⼀套标准,它定义了应⽤程序如何在Web上实现互操作性。
你可以⽤任何你喜欢的语⾔,在任何你喜欢的平台上写Web service,只要我们可以通过Web service标准对这些服务进⾏查询和访问。
Web service是技术规范,SOA是设计原则。
从本质上讲,SOA是⼀种架构模式,⽽web service是利⽤⼀组标准实现的服务。
Web service是实现SOA的⽅式之⼀。
⽤web service 实SOA的好处是:可以实现⼀个中⽴平台,来获取服务,获取更好的通⽤性。
Web Services的⽬标是即时装配、松散耦合以及⾃动集成。
2、为什么要使⽤SOA传统的架构,软件包是被编写为独⽴的(self-contained)软件,即在⼀个完整的软件包中将许多应⽤程序功能整合在⼀起。
实现整合应⽤程序功能的代码通常与功能本⾝的代码混合在⼀起。
我们将这种⽅式称作软件设计“单⼀应⽤程序“。
与此密切相关的是,更改⼀部分代码将对使⽤该代码的代码具有重⼤影响,这会造成系统的复杂性,并增加维护系统的成本。
⽽且还使重新使⽤应⽤程序功能变得较困难,因为这些功能不是为了重新使⽤⽽打的包。
缺点:代码冗余、不能重⽤、紧耦合、成本⾼SOA旨在将单个应⽤程序功能彼此分开,以便这些功能可以单独⽤作单个的应⽤程序功能或“组件”。
这些组件可以⽤于在企业内部创建各种其他的应⽤程序,或者如有需要,对外向合作伙伴公开,以便⽤于合作伙伴的应⽤程序。
ICS备案号:Q/CSG 中国南方电网责任有限公司企业标准面向服务的信息技术架构(SOA)框架规范中国南方电网责任有限公司发布目次前言 (III)1范围 (1)2规范性引用文件 (1)3术语与定义 (1)3.1面向服务的体系结构 (1)3.2服务 (1)3.3企业服务总线 (1)3.4企业资源规划 (1)3.5企业应用集成 (1)3.6企业信息门户 (1)3.7SOA项目 (1)4总则 (1)4.1持续发展原则 (1)4.2先进性原则 (2)4.3实用性原则 (2)4.4操作性原则 (2)5SOA架构模型 (2)5.1服务体系 (2)5.1.1服务体系设计依据 (2)5.1.2服务体系图 (2)5.1.3服务体系各层定义 (3)5.2应用体系 (4)5.3服务部署体系 (5)5.4技术标准规范体系 (6)5.4.1技术标准规范体系图 (6)5.4.2服务开发技术标准规范 (9)5.4.3服务集成技术标准规范 (13)5.5SOA架构模型特征 (14)6SOA服务设计与开发 (14)6.1服务识别 (14)6.2服务定义 (14)6.3服务设计 (16)6.3.1总体设计原则 (16)6.3.2访问服务 (16)6.3.3数据服务 (17)6.3.4业务服务 (17)6.3.5流程服务 (17)6.3.6综合服务 (17)6.3.7展现服务 (17)6.4服务实现 (18)6.4.1服务封装原则 (18)6.4.2服务封装方式 (18)7SOA服务集成 (18)I7.1企业服务总线 (18)7.2服务描述 (19)7.3服务注册/发布 (19)7.4服务发现/调用 (19)7.5服务编排 (19)7.6服务管理 (19)7.6.1管理内容 (19)7.6.2参考流程 (20)8SOA项目管理 (24)8.1项目实施方法 (24)8.2项目实施策略 (24)8.3项目实施路线 (25)8.4项目实施步骤 (26)8.4.1项目准备 (26)8.4.2项目需求分析 (27)8.4.3项目设计与实现 (27)8.5项目验收 (28)8.5.1总体要求 (28)8.5.2验收文档规范 (28)II前言随着中国南方电网有限责任公司(以下简称为南方电网公司)企业信息化应用的不断发展和信息资源的不断积累,公司在探讨与实践企业信息技术架构时认识到:多元化的信息技术架构不利于企业信息化应用的发展和企业信息资源的积累与共享。
⾯向服务的架构设计⼀.什么是SOA SOA 是⼀种在计算环境中设计、开发、部署和管理离散逻辑单元(服务)模型的⽅法。
SOA 并不是⼀个新鲜事物,⽽只是⾯向对象模型的⼀种替代。
虽然基于 SOA 的系统并不排除使⽤ OOD 来构建单个服务,但是其整体设计却是⾯向服务的。
由于 SOA 考虑到了系统内的对象,所以虽然SOA 是基于对象的,但是作为⼀个整体,它却不是⾯向对象的。
SOA 系统原型的⼀个典型例⼦是 CORBA,它已经出现很长时间,其定义的概念与 SOA 相似。
SOA 建⽴在 XML 等新技术的基础上,通过使⽤基于 XML 的语⾔来描述接⼝,服务已经转到更动态且更灵活的接⼝系统中,CORBA 中的 IDL ⽆法与之相⽐。
⼆.基本结构 服务模型的表⽰层从逻辑层分离出来,中间增加了服务对外的接⼝层。
通过服务接⼝的标准化描述,使得服务可以提供给在任何异构平台和任何⽤户接⼝使⽤。
这允许并⽀持基于服务的系统成为松散耦合、⾯向构件和跨技术实现,服务请求者很可能根本不知道服务在哪⾥运⾏、是由哪种语⾔编写的,以及消息的传输路径,⽽是只需要提出服务请求,然后就会得到答案。
三.SOA设计原理 在 SOA 架构中,继承了来⾃对象和构件设计的各种原则,例如,封装和⾃我包含等。
那些保证服务的灵活性、松散耦合和复⽤能⼒的设计原则,对 SOA 架构来说同样是⾮常重要的。
关于服务,⼀些常见的设计原则如下:(1)明确定义的接⼝。
服务请求者依赖于服务规约来调⽤服务,因此,服务定义必须长时间稳定,⼀旦公布,不能随意更改;服务的定义应尽可能明确,减少请求者的不适当使⽤;不要让请求者看到服务内部的私有数据。
(2)⾃包含和模块化。
服务封装了那些在业务上稳定、重复出现的活动和构件,实现服务的功能实体是完全独⽴⾃主的,独⽴进⾏部署、版本控制、⾃我管理和恢复。
(3)粗粒度。
服务数量不应该太多,依靠消息交互⽽不是远程过程调⽤,通常消息量⽐较⼤,但是服务之间的交互频度较低。
⾯向服务架构(SOA)吐⾎整理作者:初光来源:糖果Autosar1 ⾯向服务架构(SOA)的概述及意义1.1 ⾯向服务架构概述开局⼀张图,先有个⼤概的印象。
服务的设计⼀般包括图中的⼏个部分:软件组件的设计软件组件的服务接⼝的设计(详细可进⼀步为⽅法和事件及属性的设计)⼀般传统的架构设计⽅法是:系统被划分为⼦系统,各个⼦系统通过定义的接⼝,实现交互通信,⼀般⼦系统之间的依赖性较⾼。
⽽⾯向服务的体系架构的设计⽅法是:不同的系统资源被打包到⼀个“服务”中,该“服务”提供特定的系统功能,同时保持它们⾃⼰的内部状态。
实现服务的组件代表服务的单个实例,其由服务实例ID标识。
当客户端想要使⽤服务实例时,它只需要遵循定义语⾔规范来请求服务。
我们先看⼀下规范怎么定义服务和服务接⼝及服务实例的?缩写/⾸字母缩略词:描述:Service 零个或多个⽅法methods、零个或多个事件events以及零个或多个字段fields的逻辑组合(允许空服务,例如⽤于在 SOME/IP-SD 中声明⾮ SOME/IP 服务)。
说⼈话就是⼀个离散功能单元,我们可以封装成⼀个函数来实现这个功能Service Interface 服务「包括其⽅法,事件和字段」的正式规范(formal specification ),说⼈话就是能够被其他模块调⽤的函数名称/API ,服务通过这个函数名称/API被其他ECU所使⽤Service Instance 服务接⼝的软件实现,可以在车辆上或ECU 上存在不⽌⼀次,说⼈话就是⼀个函数名称/API的定义和实现服务的接⼝以标准定义语⾔指定,该语⾔将在系统的每个元素之间共享。
其包含三个要素:⽅法,事件和属性(也叫Filed)。
我们先看⼀下规范怎么定义⽅法,事件和属性的?缩写/⾸字母缩略词:描述:Method ⽅法、过程、函数或被调⽤的⼦例程。
(即从客户端到服务的消息),根据服务器是否有反馈结果分为请求/响应(Request/Response, R/R)通信和Fire&Forget(F&F)通信Event ⼀种单向数据传输,根据实际的应⽤场景,可以有不同的发送⽅式。
soa 的基本概念及设计原则浅议SOA(面向服务的架构)是一种软件架构风格,它强调将业务功能和数据封装为可重用的服务,并通过标准化的接口进行交互。
SOA的基本概念包括:1. 服务:服务是SOA的基本单位,它封装了某个业务功能或数据,并提供了明确的接口。
服务可以是任何可重用的功能,如数据访问、业务流程、业务规则等。
2. 接口:接口定义了服务之间的交互方式,它定义了服务提供者和消费者之间的契约。
接口采用中立、基于标准的方式进行定义,独立于实现服务的硬件平台、操作系统和编程语言。
3. 松耦合:在SOA中,服务之间的耦合度较低,这意味着服务提供者和消费者之间的依赖关系较小,服务可以独立地进行更改和升级,而不会对其他服务产生影响。
4. 业务驱动:SOA强调业务驱动IT,即IT和业务更加紧密地对齐。
在SOA中,业务需求被视为首要考虑因素,IT架构和设计需要满足业务需求。
SOA的设计原则包括:1. 服务可重用性:服务应该是可重用的,能够在不同的场景和项目中重复使用。
2. 服务可扩展性:服务应该具有可扩展性,能够适应业务的变化和发展。
3. 服务可维护性:服务应该易于维护和升级,能够快速地响应业务需求的变化。
4. 服务安全性:服务应该具有安全性,能够保护数据和系统的安全。
5. 服务可靠性:服务应该具有可靠性,能够保证服务的稳定性和可用性。
6. 服务性能:服务应该具有性能,能够满足业务的需求和用户的体验。
总之,SOA是一种基于服务的架构风格,它强调将业务功能和数据封装为可重用的服务,并通过标准化的接口进行交互。
SOA的设计原则包括服务可重用性、可扩展性、可维护性、安全性、可靠性和性能等方面。
详解SOA五种基本架构模式1.前言目前,面向服务的架构(SOA)已成为连接复杂服务系统的主要解决方案。
虽然SOA的理论很容易理解,但要部署一个设计良好、真正实用的SOA系统却非常困难。
本文试图通过解析SOA的模式,提供与架构相关的技术指导,进而对以上问题提供详尽的的解答。
在本文中,一共提到了五种模式。
表1列出了这五种模式以及各自相关的问题。
表1:模式列表其中服务托管(ServiceHost)与主动式服务(Active Service)是两种最常见的模式——即使服务的使用范围很小,通常也会使用这两种模式。
这两种模式的主要内容都与解决服务相关问题有关,即与具体的服务部署有关(见图1)。
2.模式介绍2.1.服务托管服务托管是我们要讨论的第一个模式。
它是最基本的模式,或者至少是最基本的模式之一。
服务托管模式主要负责运行着服务实例的环境,以及与此相关的路由任务。
问题随便选一个服务,任何服务都可以,别告诉我具体是哪个:)。
你可以找到一些处理传入的消息或请求的监听代码;你可以找到一些连接组件的代码,还有一些初始化并激活这个服务的代码;或许你还能找到一些能适当地配置服务的代码。
有没有觉得我很厉害?实际上,你可以在服务里找到上面的所有代码,至少是大部分。
有许多工作都是重复性的、常见的。
我们可以好好利用这一点。
如何使服务能够适应不同的配置,避免设置监听器、组件连接等重复性常规工作?第一个办法(实际上也不是什么办法),就是为每一个服务重写所有的连接代码。
很显然,这不是个好方法,因为重写的次数越多,就越可能产生一些缺陷。
并且,对于维护来说,许多重复的代码产生的问题更为严重。
在维护的时候,你不仅要确保每一个服务中的缺陷都已经得到修正,还要保证没有任何疏漏、所有的服务都已经同步更新。
另一个相对较合理的办法,就是创建一个共同任务库,所有的服务都通过API与库相连接。
这样确实会有所帮助,但是为了充分利用库的功能,你仍然需要编写连接代码。
soa概念SOA概念随着信息技术的不断发展,企业面临着越来越多的挑战。
为了提高企业的竞争力和灵活性,SOA(Service-Oriented Architecture,面向服务的架构)应运而生。
SOA是一种软件设计模式,它将应用程序构建为可重用的服务,并通过这些服务来实现业务流程。
一、什么是SOA1.1 SOA定义SOA是一种面向服务的架构,它将应用程序构建为可重用的服务,并通过这些服务来实现业务流程。
SOA通过标准化接口和协议来实现不同应用程序之间的互操作性。
1.2 SOA特点(1)松散耦合:各个服务之间相互独立,可以单独进行开发、测试、部署和维护。
(2)可重用性:每个服务都是独立的功能单元,可以在不同的应用程序中被重复使用。
(3)灵活性:可以根据需要添加、删除或修改服务,以适应不断变化的业务需求。
(4)标准化接口和协议:通过使用标准化接口和协议,不同应用程序之间可以进行无缝集成。
二、SOA架构2.1 SOA层次结构SOA架构包括四个层次:服务消费者、服务提供者、服务注册与发现、服务总线。
(1)服务消费者:使用SOA提供的服务。
(2)服务提供者:提供SOA的服务。
(3)服务注册与发现:将所有可用的服务进行注册,以便其他应用程序可以找到它们并使用它们。
(4)服务总线:将所有的应用程序连接起来,使它们可以相互通信和交换数据。
2.2 SOA组件SOA架构包括以下组件:(1)业务流程管理器:负责管理业务流程中的各个步骤和任务,并将其映射到相应的服务上。
(2)消息传递机制:负责在不同应用程序之间传递消息和数据。
(3)安全性管理器:负责保护SOA中的数据和信息安全性。
(4)事务处理管理器:负责处理SOA中的事务,并确保数据一致性和完整性。
三、SOA优点3.1 提高业务灵活性由于SOA采用松散耦合的设计,因此可以根据需要添加、删除或修改服务,以适应不断变化的业务需求。
这使得企业可以更快地响应市场变化,从而提高了企业的竞争力和灵活性。
SOA架构设计方法详解1、什么是SOASOA(面向服务的架构)可以理解为一种架构设计方法,它是将一个系统所具有的能力抽象成可调用的并具有标准接口的服务,从而可以通过调用服务或者调用多个服务的组合来满足系统的业务需求。
SOA并不是某一种具体的技术实现,而是一种系统架构的设计思想。
SOA的提出是为了解决随着面临的问题越来越复杂,软件系统变得难以维护、难以扩展、容易出错等问题。
SOA也是一种软件架构设计方案,它用以组织和运用分散在系统不同部分的能力(capabilities)。
能力与运用能力,概念上有所差别。
需求与能力可以独立于 SOA 而存在。
在SOA架构中,服务是更高效地利用现有能力满足需求的一种手段,这也是SOA的意义。
2、为什么汽车上要应用SOASOA在IT领域已经存在很久,究竟是什么原因促使SOA应用在汽车上呢?对于任何一个系统来说,外部对系统的“需求”和系统本身具备的“能力”是决定如何设计系统的2个最关键的因素。
能力越强则可以满足更多的需求,但能力越强也意味着需要耗费更多的资源。
资源从来都是有限和稀缺的,但需求却不断地增加和快速地变化。
有限的资源和能力与无限的需求之间的矛盾是系统设计面临的最大挑战。
对于任何一个盈利性组织来讲,在设计开发汽车电气系统时,如何用相同的能力满足更多的需求,如何用更少的能力满足相同的需求,如何用现有的能力更快速地、更好地满足不断增长的复杂多变的需求,这是促使SOA设计思想和设计方法应用在汽车上的最本质原因。
3、如何实现SOA1)汽车EEA的发展使SOA具备了初步的应用条件汽车EEA从分布式逐步向集中式发展。
从整车厂的角度,这种趋势背后的最大驱动力也是为了更好地解决能力与需求的结合和匹配问题。
所谓分布式EEA,可以理解为汽车电气系统的软硬件资源和能力是分散的,分散在不同的供应商手中。
ECU的软硬件开发全部由供应商完成,整车厂主要负责提出设计需求和测试验证。
分布式EEA导致的ECU软硬件资源和能力的浪费是显而易见的。
经典软件架构模式(三)之SOA模式REST 模式让我们回到服务器端开发。
一直以来,互联网服务就以数据互通为最重要的业务特性。
我们来看看一个微博系统的案例。
【此案例并非完全真实情况,有一定提炼修改成分】微博作为一个非常常用的“用户制造内容”服务,一直都是各种互联网网站最喜欢的项目之一。
微博本身的功能抽象并不复杂:发微博、读微博、发评论、看评论。
但是需要微博数据的外部系统却很多,比如微博自己就有WEB 平台、手机平台、Pad 平台,在各种合作厂商那里,又要提供可以发微博晒产品、真人秀、炫耀成就……等等。
可以说微博是一个结合大量其他应用系统的信息中心。
初期的产品设计,可能会比较简单:在这个模型里面,我们一般把功能分层两组,一组是本系统的服务器,如 WEB 平台和手机平台。
另外一组是开放给第三方的接口服务器。
我们希望这样能分流负载,并且隔离不同平台的故障。
但是,随着业务的发展,策划有可能对最简单的微博功能,要求增加一下活动,比如“集赞抽奖”之类的,那么我们就要增加一些专门的“游戏活动”服务器。
但是为了让第三方也能参加,自然就要部署多套,而且其中功能可能还有一些不同。
——这就造成了积累下来的业务逻辑重复代码增多的问题。
随着第三方的接入商越来越多,除了会剧烈增加第三方TCP 接口服务器的负载外,还有针对外部厂商的开发语言提供越来越多格式的API ,这些维护工作量往往会占据掉开发团队大量的开发时间。
有没有一种一蹴而就的方法呢?答案是有的。
在互联网数据共享和互联的服务里面,一种叫 REST 的模型迅速超越了古老的 corba RPC 方案,战胜了 JAVA 专用的 RMI 技术,也干掉了各种 WebService 方案(包括SOAP ),登上了最流行互联网接口的宝座。
因此当我们改成使用REST 模型的方案后,我们终于可以集中精力在微博系统本身的业务功能开发上了。
由于我们把微博的功能都集中到REST 功能服务器上,我们可以把各种用户界面相关的代码独立出去,集中精力做好核心功能逻辑。