面向服务架构SOA

丁海升

(石家庄铁道大学,河北省石家庄市050000)

 要:SOA是在1996年提出的一个概念,旨在让软件变的有弹性,能够迅速响应业务的需求,实现实时企业。基本理念是让所有信息系统中需要整合的业务使用服务和接口联系起来,接口中立,与开发平台和编程语言无关。这也使得异构信息系统变的可开发,“信息孤岛”,重复造轮子等问题在SOA的体系架构下不攻自破。

关键词:SOA;信息孤岛;服务和接口;

一、SOA发展

简单通俗的说就是,SOA是不同业务建立不同的服务,服务之间的可以数据交互粗粒度的服务接口分级,这样松散耦合提高服务的重用性,也让业务逻辑变的可组合,并且每个服务可以根据使用情况做出合理的分布式部署,从而让服务变的规范,高性能,高可用。

在之前的开发软件的过程中,也做过一些需求分析的工作,当然想要满软件最后的条件也是要建立在需求的完成度上,而在软件开发过程中呢也需要我们去不断更改和优化,然而SOA便是我们优化过程的一个选择,这也符合他的宗旨,不过它是建立在服务阶层方面,这一点我们也是要去考虑的。

面向服务架构的主要技术之结构编程方法40年前国际上发生了“软件危机”,如IBM公司开发一个操作系统、或美国的航空公司开发飞机订票系统,都花费了上千人年的工作量,开发周期长、而开发出来的产品却是错误很多,难以维护和适应修改。正在此时,一位荷兰的物理家E.W.Dijkstra提出了一种“结构程序设计方法”,他认为:人的智力是有限的,采用数学或物理学的思维方法,用枚举、抽象、归纳、类比等思维方式简化问题。由于我也是数学系毕业的,我拜读了他的所有论文,就编写一本着作“编程方法学”,此书曾三次获得着作大奖,并在全国十多所名牌大学讲过课。用此方法扩展到软件设计中时,称为“结构化分析和结构化设计(SASD)”。所谓“结构程序设计方法”,就是基于面向对象设计方法的早期蓝本,侧重於解决程序正确性的编程的方法,以此为基础建立了软件工程这门学科,建立了编程的基础理论体系。

二、面向服务之面向对象

面向服务架构的主要技术之“面向对象”的可重用理论,我们都知道由面向对象发展到面向构件,由面向构件再发展到面向服务,因此它们的认知观和基础理论都是息息相关的,解决大型软件的开发效率和质量除了要解决编程的正确性外,还必需解决开发周期长、复用性差、成本高、文档多、以及难以适应系统演化等问题,十多年来仍旧困惑着这门学科,“软件危机”仍未解决。人们的知识是从一个定理、一个原理逐步积累起来的,社会是依靠知识的不断积累发展的。然而编制软件每次却都是从零开始,这是造成“软件危机”的根本原因。由此提出了编程工作是否也可以重用以前成功的经验和程序呢?。整整经过十多年的探索,到七十年代才获得成功。

三、面向服务之面向构件架构

面向服务架构的主要技术之构件架构,由于这种OO方法真正用于实际工程中开发的应用软件却很少见到,工程上的实施缺乏开发规范;在技术上要术开发人员的素质较高;最大的问题是被开发出来的软件难以演化,而软件要能适应变化是客观存在的。为此发展出单纯重用的“构件和架构”技术及其理论体系。在1998年日本京都召开的“基于构件的软件开发(CBSD)”国际专题学术会议上,一致认为软件开发技术离不开构件和体系结构。软件体系结构现简称“架构”。在此之前的软件架构都采用层次结构的架构,直到分布式系统提出了用户端/服务器模式后,才产生对架构的研究,出现了构件和架构。

XML和Web服务是当今的热门技术,因为它们在实现面向服务的架构(SOA)上担当了重要的角色。目前独立的、而且通常是相互孤立的应用程序,制约了业务服务的共享,SOA则正在解决这一问题。通过给单个业务操作进行定义或在表层加上“服务访问点”,IT组织能够实现以下目标:1使IT资源与其业务功能更密切地结合在一起。通过以下方法的最佳组合和匹配,建立更加动态、更有效地利用成本的系统。2购买和自建自制和外包,更迅速地发布“组合”应用程序(想想“Web流[Web flow]”和“工作流[work flow]”),提供统一的、面向任务的跨业务视图。3通过更加细致的增量管理需求和变化,在应用程序生命周期上获得更高的灵活性。用提供“业务透明性”的基础架构替换不透明的、“黑盒子”系统更容易——这种基础架构根据流经应用程序的总体信息,提供实时的业务智能。对象和组件已经成功地在应用内提供了重用性(应用程序的定义是:以单元形式开发和部署的代码)。但是,SOA依赖的是在应用程序之间实现重用。用SOA把不同的应用程序互连起来,这根本不是什么新东西——想想以前定义分布式的、应用间通信架构的一些努力(不用费力想什么新的首字母缩略词):4同步的(面向RPC):CICS分布式程序链接(DPL)、分布式计算环境(DCE)、分布式组件对象模型(DCOM)、公共对象请求代理体系结构(CORBA)IIOP、Java远程方法调用(RMI)、关系数据库管理系统(RDBMS)存储过程,等等。5异步的(面向消息的):CICS临时数据队列(TDQ)、Tuxedo ATM、IBM MQSeries、Tibco Rendezvous、Microsoft消息队列(MSMQ)、Java消息服务(JMS),等等。

 

 

参考文献

[1] CSDN软件开发网https://blog.csdn.net/wr98442878/article/details/8992682

[2] 中国知网https://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CJFQ&dbnam

[3] 软件架构实践第二版