首页 > 代码库 > SOA架构的理解
SOA架构的理解
实践论认为:从实践提升到理论,再由理论指导实践,由此向前发展。目前SOA的发展的情况…………
通过不少实践,SOA的模型己经被公认为标准规范,目前是正需要进一步总结上升到理论的时候了。
SOA架构的演化过程。
SOA是从面向对象架构、面向构件架构等逐步发展完善的。且相互依托、相互补充、又各自适应不同范围,因此在讨论SOA理论时,
要了解它是如何演化过程来,继承了哪些理论体系,其适应度如何?
//-----------------------------------------------------
20 世纪60年代以前,计算机刚刚投入实际使用,软件设计往往只是为了一个特定的应用而在指定的计算机上设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件的规模比较小,文档资料通常也不存在,很少使用系统化的开发方法,设计软件往往等同于编制程序,基本上是个人设计、个人使用、个人操作、自给自足的私人化的软件生产方式。
60年代中期,大容量、高速度计算机的出现,使计算机的应用范围迅速扩大,软件开发急剧增长。高级语言开始出现;操作系统的发展引起了计算机应用方式的变化;大量数据处理导致第一代数据库管理系统的诞生。软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率,软件危机开始爆发 。
1968年,北大西洋公约组织(NATO)在联邦德国的国际学术会议创造软件危机(Software crisis)一词。而1960年代中期开始爆发众所周知的软件危机,为了解决问题,在1968、1969年连续召开两次著名的NATO会议,并同时提出软件工程的概念。[2]
//-----------------------------------------------------
40年前国际上发生了“软件危机”,如IBM公司开发一个操作系统,或美国的航空公司开发飞机订票系
统,都花费了上千人数年的工作量。它开发周期长、而开发出来的产品却是错误很多,难以维护和适应修改。
一位荷兰的物理家E.W.Dijkstra提出了一种“结构程序设计方法”,他认为:人的智力是有限的,采用数学或物理学的思维方法,
用枚举、抽象、归纳、类比等思维方式简化问题。
鉴于面向对象的缺陷,三位面向对象的奠基人联合起来,创建了UML统一建模语言。
UML
主要理论成果是:统一面向对象的基本概念,并引进了许多新的概念,认为软件开发的过程实质
上是从抽象的模型逐步细化,过渡到具体的实现,其中间的每个阶段都是实现了某一抽象模型,UML为此提供了建立模型的工具。
由于工程上的实施缺乏开发规范,在技术上要求开发人员的素质较高,很少见到真正运用UML的方法于实际的工程开发应用软件中,
最大的问题是被开发出来的软件难以演化,而软件要能适应变化是客观存在的。
软件开发理论
由面向对象发展到面向构件,由面向构件再发展到面向服务,它们的认知观和基础理论都是息息相关的。
解决大型软件的开发效率和质量除了要解决编程的正确性外,还必需解决开发周期长、复用性差、成本高、文档多以及难以适应系统演化等问题,
这些问题十多年来仍旧困惑着这门学科,“软件危机”仍未解决。
中间件技术及其理论。
SOA的主要优点
1. 利用现有的资产。方法是将这些现有的资产,包装成提供企业功能的服务。组织可以继续从现有的资源
中获取价值,而不必重新从头开始构建。
2. 更易于集成和管理复杂性。将基础设施和实现发生的改变所带来的影响降到最低限度。
因为复杂性是隔离的,当更多的企业一起协作提供价值链时,这会变得更加重要。
3. 更快地整合现实。通过利用现有的构件和服务,可以减少完成软件开发生命周期所需的时间。这使得
可以快速地开发新的业务服务,并允许组织迅速地对改变做出响应和缩短开发时间。
4. 减少成本和增加重用。通过以松散耦合的方式公开业务服务,企业可以根据业务要求更轻松地使用和组合服务。
5. SOA业务流程是由一系列业务服务组成的,可以更轻松地创建、修改和管理它来满足不同时期的需要。
SOA架构的理解