对于SOA,尤其是像开发人员和CIO等仍有若干关键问题需要回答。
Web 服务以及越来越多的面向服务架构(Service Oriented Architecture,SOA)已经在市场上投放了大量广告。两者都可以给企业带来广泛的短期和长期利益。但对于SOA,尤其是像开发人员和CIO等仍有若干关键问题需要回答。
问:SOA的前提是能够使应用程序像服务那样工作。软件如何像服务一样工作呢?
答:没有SOA,软件包是被编写为独立的(self-contained)软件,即在一个完整的软件包中将许多应用程序功能整合在一起。实现整合应用程序功能的代码通常与功能本身的代码混合在一起。我们将这种方式称作软件设计"单一应用程序"。与此密切相关的是,更改一部分代码将对使用该代码的代码具有重大影响,这会造成系统的复杂性,并增加维护系统的成本。而且还使重新使用应用程序功能变得较困难,因为这些功能不是为了重新使用而打的包。
SOA旨在将单个应用程序功能彼此分开,以便这些功能可以单独用作单个的应用程序功能或"组件"。这些组件可以用于在企业内部创建各种其他的应用程序,或者如有需要,对外向合作伙伴公开,以便用于合作伙伴的应用程序。
"服务"的概念是要使用与实施细节无关的标准化接口来构建这些"组件"。针对一套应用程序服务的Web服务描述语言文档,描述需要作为请求特殊服务(例如,"检查库存"功能可能需要零件数)输入来传输的数据名称和类型,并描述服务响应的细节(它可能返回表示库存中零件数量的一个整数)。
这些详细信息看上去好像与 Java、C++、COBOL 等中实施的功能相同,因此,服务的请求程序无需知道使用的何种语言,而且可以使用任何语言来编写请求程序。这就使一个平台上的服务可以和为另一个平台编写的应用程序集成。互操作性的关键是请求和响应消息,例如,使用SOAP消息发送,其消息使用 XML 编写代码。
问:请举例说明 SOA 如何使企业受益。
答:关键的优势是互操作性,可以使用任何平台之间的功能,而与编程的语言、操作系统和计算机类型等等无关。在上述示例中,"检查库存"功能可能已经编写为一个应用程序要求的服务,例如,监控库存并在需要时自动重新定购的服务,但我们后来发现,同样的服务无需修改即可用于支持由员工使用的基于 Web 的库存监控工具。
就内部而言,应用程序的重复使用是一项关键优势,因为它可以降低开发成本。服务的重复使用,其长期作用在于减少企业中冗余的功能,简化基础架构,从而降低维护代码的成本。通过按服务的使用者来组织应用程序,与传统的编程技术相比,我们获得一个要灵活敏捷得多的集成模型,使我们可以迅速修改业务流程模型。
就外部而言,为服务交互而详细定义的"合同"使业务合作伙伴之间的交互"自由联合",提供集成所必需的稳定性,并提供更改基层软件(underlying software)问题的一个解决方案。当保留了相同的消息格式时,支持该格式的软件只要仍然支持消息合同,则可以按需进行更改。只要它支持相同的消息格式,甚至可以使用另一种编程语言的实施来完全替换系统,请求程序无需更改。当消息合同不断发展而必须更改时,与相当困难的任务,即支持多个版本的程序 API 和文件格式相比,它使用版本控制(versioning),更容易作为过渡策略支持多个版本的应用程序。
这些是部分关键益处,还有许多其他益处。
问:SOA与Web服务以及SOA和网格计算之间是何关系。
答:SOA是一种面向业务应用程序系统的体系架构设计风格,但可以应用于其他系统,包括中间件技术,例如网格计算。
Web服务是可以用于创建SOA的一套标准。尽管没有Web服务标准也可能创建SOA(例如,在SOAP之前,人们已经在HTTP或JMS上使用XML来实现相似的结果),但运用Web服务标准却是我们目前针对与外部软件交互的最佳方法。
网格计算是一种系统管理策略,其目标是最大限度地减少硬件资源的使用。例如,当突然的需求溢出指定的服务器时,它可能临时将一些请求转向相对没那么繁忙的服务器。网格计算设计为一种面向服务架构(用于调整网格计算的服务叫做网格服务)。
随着我们转向SOA,我们将看到该方法用于支持各种其他新的系统功能。另外一个示例是自主计算伙子管理系统。事实上,SOA是Web服务高级功能的基础,例如WS-Trust和联合身份识别管理规范。
问:因为还没有通用互操作性标准,SOA最大的问题不仍然是供应商中心性(vendor-centricity)吗?
答:有一些基本标准正好适用于Web服务,它们可以用于实施面向服务架构。XML和XML方案分别自1998年和2001年就已成为标准。SOAP 1.2自2003年6月成为标准。UDDI在2003年夏天标准化。WS-Security在2004年4月成为标准。
除了著名标准机构(例如W3C和OASIS)支持的这些正式标准以外,许多"技术建议书规范"也被广泛接受,并作为事实标准得到充分支持。例如,直到 W3C完成WSDL 2.0为止,要求在其产品中支持Web服务的大多数供应商都支持WSDL 1.1规范。
事实上,目前大部分软件供应商对Web服务标准的支持,已导致使用Web服务来广泛实施SOA。
问:SOA如何影响SLA?而您如何让SLA适合您的SOA?
答:当前企业之间的SOA实施通常侧重于改善合作伙伴之间现有业务的效率。同样,性能保证的概念并不是像方便的互操作性和自由联合集成那样的问题,它们可以借助Web服务标准来实现。
当服务成为企业付费的产品时,对特定水平的性能或可用性的保证,以及其它服务质量注意事项具有更为重要的作用。我们可以想象这在将来会成为一个常见要求,正在进行这方面的工作以支持该模型。
问:我如何着手构建 SOA?
答:最佳的方法时开始构建较小的SOA,侧重于提高当前缺乏效率的交互性。例如,假设使用一个系统上需要重新键入到另一个系统的打印报告,将两个计算机系统紧密联系在一起,这会消耗时间、浪费成本,导致出错,而且数据无法保持罪行。可以设计一个简单的基于Web服务SOA项目,直接链接信息,将含更新的SOAP消息发送到合作伙伴系统,而不是打印报告。
开始简单的SOA使企业可以在作出大投资之前先衡量ROI,并在出现大的问题之前获得小改善的经验。
CIO在购买软件时应该询问供应商关于对Web服务和SOA的支持,作为一个重要的注意事项。应该检查新应用程序的开发,以便考虑是否某些应用程序功能可能需要用于其他目的,以及可以嵌入对Web服务标准的支持以支持重复使用。
最终要完成大规模的企业转型,可能需要通过建立企业服务总线(形成SOA的骨干网或神经系统)来开始该工作。然后以企业合理的节奏,将服务提供商何服务请求程序逐渐添加到ESB。随着IT的SOA的增长,ESB成为在服务水平上连接应用程序,并调节消息流量以提高效率和可靠性的一种有力方式。
问:管理SOA需要哪些新的服务管理技能?
答:在运用Web服务之前,因缺乏标准和自由联合的策略,合作伙伴整合受到严重限制。随着我们开始使用Web服务和SOA来整合合作伙伴,我们可以发现,使用业务合作伙伴所提供的功能的IT系统已经开始依赖于这些功能的可用性。我们从内部管理我们自己服务的可用性转向要求监视和管理(可能有许多)企业之间的可用性。这明显大大增加了管理IT系统的复杂性,但它也带来了巨大的价值,这就是为什么许多企业要转到这个方向的原因。
Web应用程序系统正在不断发展以支持Web服务标准。"Web服务分布式管理"或WSDM标准正在由OASIS开发,对Web服务管理提供标准化的支持,通过使用Web服务来实现对不同平台的管理,满足涉及独立业务实体的大规模SOA对分布式管理的要求。
分享到:
相关推荐
总的来说,SOA是一种战略性的架构,它改变了传统的软件开发和集成方式,强调服务的独立性和可组合性,以实现企业业务流程的高效、灵活和可持续发展。通过理解并有效应用SOA,企业和开发者能够构建更加适应变化、易于...
为了有效解答这些问题,许多企业在实施SOA的过程中会成立一个专门的SOA卓越中心(Center of Excellence for SOA)。这个跨部门小组负责评估所需的各种资源,并规划出实施SOA的最佳路径。 #### 构建SOA的策略 - **...
“关于SOA的七个关键性问题解答”部分可能涵盖了如下常见问题: 1. **服务的定义与边界**:如何确定服务的职责范围和边界,使其既不过于庞大导致复杂性增加,也不过小导致冗余接口增多。 2. **服务发现与治理**:...
8. **问题讨论**:会议或报告中通常会预留时间进行问题讨论,以便解答参与者关于金蝶SOA解决方案的疑问,深入探讨其在不同企业环境中的应用和潜在挑战。 综上所述,金蝶的SOA企业IT架构解决方案旨在帮助企业跨越...
Enterprise Service Bus (ESB)是SOA架构中的核心组件,它作为一个中间层,负责服务之间的通信。ESB提供了一种松耦合的方式,使得服务消费者与服务提供者之间无需直接交互。IBM WebSphere ESB是IBM提供的ESB解决方案...
2. **系统架构设计**:这部分内容涉及如何构建可扩展、高可用、高性能的系统架构,需要理解不同架构模式(如微服务、SOA、分布式等),并能根据业务需求选择合适的架构策略。 3. **网络与通信技术**:掌握TCP/IP...
4. **SOA(面向服务的架构)**:SOA强调服务的独立性和可重用性,通过服务间的消息传递实现系统间的协作。理解WSDL、UDDI和SOAP等关键技术是必要的。 5. **微服务架构**:微服务强调小型、独立的服务,每个服务都有...
SOA(Service-Oriented Architecture,面向服务架构)是一种软件设计模式,旨在通过将功能分解为独立、可重用的服务来提高灵活性、可维护性和互操作性。在SOA实施中,关键在于构建松散耦合的服务,这些服务能够独立...
10. **答案解析**:近几年的试题答案解析有助于考生理解解题思路,学习正确解答架构设计问题的方法,从而提高自己的分析和解决问题的能力。 这些知识点的深入理解和应用是通过软考架构师的关键。考生可以通过反复...
“7Layer”可能指的是七层模型,这是分层架构设计的一种,每一层负责不同的功能,确保了系统组件间的低耦合性和高内聚性。同样,“ProjectProject”和“PCSchemaTier”可能涉及项目管理、PC架构和数据库模式设计。 ...
- **重要性**:良好的架构设计是项目成功的关键,能够有效避免后期出现难以解决的技术难题,减少不必要的成本投入。 ##### 2. **软件架构模式** - **分层架构**:将系统划分为多个层次,每一层负责不同的功能,如...
这份压缩包包含了综合知识试题、案例分析以及论文题目及其详细的解答,旨在帮助备考者全面理解和掌握架构设计的核心概念、技术和实践应用。 一、综合知识试题 这部分试题覆盖了系统架构设计的基础理论,包括但不...
**服务导向架构(Service-Oriented Architecture,SOA)实践指南中文...阅读这三部分文档,读者将能够全面理解SOA的核心理念,掌握实施SOA的关键技术和注意事项,为构建灵活、可扩展的企业级应用体系架构提供有力支持。
“系统架构师”是信息技术领域的关键角色,他们负责设计和规划软件系统的整体结构,确保系统的可扩展性、可靠性、性能和安全性。这个职位需要深厚的计算机科学基础,包括操作系统、网络、数据库、编程语言等,同时还...
此考试全面覆盖了与SOA相关的各种主题和技术,确保考生具备设计高效、可扩展且可靠的SOA架构所需的专业知识。 #### 考试重点 根据提供的部分内容,我们可以推断出考试将涵盖以下关键知识点: 1. **面向服务架构...
1. **软件设计与架构**:这部分通常会涉及到软件设计模式、架构风格(如微服务、SOA等)、软件质量属性(如可扩展性、可靠性、安全性)以及如何根据业务需求选择合适的架构。 2. **系统分析与设计**:考生需要理解...
【架构师考试历年真题】是一份集合了过往考试的实际题目和对应详细解答的重要学习资料。对于准备参加软考(即全国计算机技术与软件专业技术资格(水平)考试)中的架构师级别考试的考生来说,这份资源是提升复习效果...
通过深入研究《系统架构师2009-2017历年真题加详解》中的每一个问题和答案,考生不仅可以巩固理论知识,还能提高解决实际问题的能力,为成功通过系统架构师考试打下坚实的基础。同时,这些真题也可以作为自我评估的...
标题中的“系统架构2011-03-17”表明这可能是一个关于2011年3月17日进行的系统架构讨论或学习资料的集合。在这个主题下,我们可以深入探讨系统架构的基本概念、重要性以及2011年当时的主流架构趋势。 系统架构是...