引自
前段时间参加一个会议,有人提到“构件化”和SOA的区别,一时之间竟也没人说得清楚。朱三元老师概括了他自己想法说:构件是“从底下看的”,构件与构件之间的关系应该是紧耦合的;服务(Services)是从系统的角度看的(我的理解:从外观上看的),服务之间的关系是松耦合。也有人说构件化和 SOA是一样的。
我以为两者虽然有些相通的地方,但它们是不一样的。
它们相通的地方如,复用,两者均强调复用,降低软件系统实施成本;遵循软件设计最经典的思想“高内聚低耦合”;实现技术和设计方法没有约束,如面向对象和结构化编程都不影响其作为Service或构件的“身份”。
他们不同的地方有哪些呢?
第一,从服务对象看,构件化源自软件产业本身的需要,服务于软件生产商,而SOA源自软件应用者的需求,如有一定信息化程度的企业团体,即是服务于企业的。
第二,从服务角度看,SOA针对的是业务架构,而构件化针对的是功能或技术架构。亦即,一个服务实现的一定是一个具体的业务目的,而一个构件实现的是一个功能(一个功能通常都没有明确的业务目的,如“报表功能”、“数据持久化”)。当然,构件分“通用构件”和“领域构件”,领域构件实现的就是某个应用领域里的通用的业务需求。但即使如此,这个被实现的业务需求也是尽量通用的,而不针对某个具体业务目的。
第三,存在形式和存在方式不一样。服务需要部署并且可以运行,并且符合某种Web Service标准,构件可能只是一个代码包。服务可以独立运行,构件不可以。构件如果不被使用则这些代码无法被运行。
第四,服务的应用与平台无关,构件的应用往往会受到特定技术参数的约束。服务不管是用什么语言开发的、发布在什么平台上,对使用者来说都是一样的;而构件对使用环境往往比较敏感。如:某某打印构件只能用在.net平台。
第五,他们的生命周期不同,服务可能随着企业业务的调整而卸载,而构件可以存在于多个软件系统中,只要这些软件系统仍然在使用,构件的生命周期就还没有结束。
最后,到目前为止,SOA的定义和实施均有相关的规范标准,而构件的定义、规范标准则相对模糊。按照最宽泛的对构件的理解,只要精神是复用的,就可以称之为“构件”,甚至包括非代码的文档。
分享到:
相关推荐
即使近几年炒得火热的SOA也无法为软件公司带来多少的利润和股价提升。难道软件业真的就这样了,还是在等待新的一次飞跃?我们小时候都读过这段“生产力的提高会促进生产关系的改变,而生产关系的改变又会反过来促进...
而在SOA框架下,服务构件架构(SCA)被提出作为构建和组合服务的一种标准化方法。本文将重点介绍如何利用Spring框架来实现SCA服务构件,旨在为开发人员提供一种高效且灵活的服务构建手段。 #### 二、SOA与SCA简介 ...
软件开发:研究基于构件和SOA技术的农业信息化应用开发平台 本文研究的主要目的是设计和实现基于构件和SOA技术的农业信息化应用开发平台,以支持农村信息化应用软件的快速生成和有效部署。该平台基于Java EE框架下...
SOA作为现代企业应用架构的核心组成部分,通过构件化业务逻辑模型、标准化技术分层架构以及规范化管理框架等手段,解决了传统应用中存在的诸多问题,并带来了客户信息流畅、服务可用性提高、流程敏捷性和良好用户...
同方ezONE平台的核心特点在于其高度模块化、构件化和标准化。平台上的关键组件包括ezPortal企业门户、ezFramework企业框架、ezCMS内容管理系统、ezWorkflow工作流系统、ezStudio开发工具、ezBI商业智能构件、ezESB...
综上所述,SOA的核心理念不仅包括了服务构件化和服务的动态组合等技术要点,还涉及到了软件工厂化的实现方式。通过对这些理念的理解和应用,企业可以构建出更加灵活、高效且可扩展的IT系统,从而更好地应对市场的...
(3) **软件工程方法论的变革:** 从最初的结构化设计,到面向对象设计,再到面向构件和服务的设计思想。 ##### 2. SOA的三个核心要素 (1) **标准化封装:** 指的是将服务的功能以标准的形式封装起来,使得其他服务...
一、构件与构件化开发 构件是软件开发中的基本构建单元,它封装了一定的功能,并提供了标准化的接口供其他构件或系统调用。构件化开发是一种模块化的开发方式,它强调将复杂系统分解为一系列可重用的构件,从而提高...
《SOA_与业务流程:实现连接》可能会深入讨论SOA如何与业务流程紧密相连,如何利用SOA来改进和自动化业务流程,以及如何确保服务与业务目标的一致性。这通常包括业务流程建模、BPEL(Business Process Execution ...
### 基于SOA和MDA的构件...通过将SOA和MDA的原理与构件技术和开源软件相结合,可以有效地提高软件开发的效率和质量。未来的研究可以进一步探索这些技术在更广泛领域的应用,以及如何更好地利用这些技术解决实际问题。
根据文档标题“SOA实施案例(pdf)”及描述“SCA 和SDO 实现:开源产品与商业产品”,本文档主要探讨了面向服务架构(Service-Oriented Architecture, SOA)中的两种关键技术——服务组件架构(Service Component ...
总的来说,SOA架构十大技术理论涵盖了从早期的结构化编程到现代的面向服务设计,强调了软件开发的理论与实践之间的关系,以及如何通过理论指导实践,提升软件开发的效率和质量。这些理论和方法不仅对于SOA架构,而且...
- **适合中国市场的SOA方法论**:例如东方通科技提出的BOA(Business Oriented Architecture)和普元的构件化方法,这些方法论更加贴合中国企业的实际需求和发展现状。 综上所述,随着技术的不断进步和企业对数字化...