服务软件体系架构原理与范例研究
任香
摘要:随着计算机技术的进步,社会的运转方式已经出现了一定的改变,它对人类生活产生了非常深刻的影响,与此同时,人们对软件的要求也越来越高。但是由于软件升级无法进入大规模的流水线生产,其在数量和质量上都没有办法满足消费者的需要。软件产品本身的不足严重影响了计算机的进步,成为计算机发展路途上的一个重要阻碍。解决这种危机,帮助软件实现规模化的生产,是未来软件行业进步发展的必经之路。文章对面向服务软件体系架构原理与范例进行了研究。
关键词:软件体系结构;面向服务体系架构;协同商务平台
软件开发从开始之初就已经经过了非常多的改变,其传统的结构已经没有办法满足现阶段软件的生存需要。随着电脑的普及,软件行业也迎来了面向服务的新型架构阶段。由于这个时期软件的应用范围变得越来越大,开发难度逐渐增加,究竟应该怎样降低开发成本,提高现有资源的利用率,成为每一个软件行业研究人员急需解决的问题。在这样的前提下,软件行业提出了一个新型的概念,那就是所谓的“面向服务体系结构”,即SOA。通过利用这样的概念,能够很好地提高软件行业的敏捷性,使行业以更快的速度面对更新的挑战,增加行业本身的竞争优势,为消费者提供更高水平的软件服务,使锻件行业生产实现规模化、流水线化、产业化。
1 软件危机的表现
所谓软件危机就是指在计算机软件开发时所遇到的各种各样的问题。实际上从计算机出现以来,软件危机就一直存在,但是因为最初软件相对比较简单,并不像现在的软件规模比较大,所以这种危机并没有得到非常突出的表现,近几年由于软件开发的规模越来越大,复杂程度越来越高,日常运营和维护的成本也在逐渐增加,这就导致软件危机变得越来越突出。
1.1 软件成本越来越高
在计算机产生之初,最主要的应用领域是军事领域。正因为如此,当时进行计算机开发的经费主要由国家承担,开发者本身并不考虑成本的问题。由于计算机越来越普及,表现出明显的民用化倾向,投资者就必须考虑软件开发的成本问题。与此同时,计算机硬件的价钱出现了明显的跳水,这就使软件成本在计算机系统中所占比例越来越高。
1.2 开发进度难以控制
软件实际上就是一种智力产品,其存在的前提是内在的逻辑关系,这也是它相较于其他产品所表现出来的巨大不同。相较于硬件产品而言,传统的加班制度以及倒班制度并没有办法应用在现在的软件开发上。程序员在进行软件开发的时候,会有非常多意料之外的因素出现,影响了软件开发的整个流程,使其难以真正按照预先设置的计划进行。这也增加了项目计划和项目论证的难度。此外,因为软件系统的结构比较复杂,每一个部分都存在着非常密切的关系,简单地增加人手是没有办法提高软件开发的效率的,有些时候还有可能加重软件开发中出现的问题。
1.3 软件质量难以令人满意
软件开发中常遇到的另一个重要的问题就是很多软件虽然能够按时完成相关任务,但是其本身所表现出来的结果却很难让人满意,这一点在全世界范围内都非常常见,程序上的故障很有可能带来更加严重的损失。在这个过程里,因为整个软件开发并没有整体的思想引导,程序员本身习惯于根据自己的想法开发,这就导致软件设计本身带有非常大的主观色彩,这也就是软件产品本身质量难以让所有客户满意的最重要原因。
1.4 软件维护成本高
大部分的软件在投入使用之后还是存在着一定的错误的,在一些情况下这种错误就会导致故障,所以很多软件都是需要进行日常维护的。可是,因为在软件开发的过程里并没有遵照相关的标准进行,其本身带有主观色彩,缺乏必要的技术性文档,这就增加了软件维护的难度。同时,软件修改本身存在着非常大的危险,也有可能为软件带来新的潜在的问题。
2 面向服务体系架构理论概念
2.1 面向服务体系架构的含义
实际上,现在学界对于面向服务体系架构尚没有形成统一的定义。很多组织从自己的角度对SOA进行了定义,其中比较常见的包括以下几种。
W3C认为:“面向服务体系架构实际上就是一种应用体系架构,在这个概念中所有的功能实际上都是一种独立的服务,每一种服务都有着自己独立的可调用接口,可以利用事先设计好的程序来调动相关服务完成整个过程”。SOA的核心实际上就是服务,对此W3C认为,这里所说的服务器本质是一种结果,是服务提供者通过一系列的工作最终给服务使用者提供的结果。
而Service-architecture.com则认为,SOA实际上是一种集合,是对各种服务的整合,每一种服务之间存在着必要的沟通,这种沟通的本质就是简单、基本的数据传输。SOA实际上也可以通过各种各样的服务协调完成活动,这些服务之间存在着一定的方法相互连接。这里所说的服务强调的是精确的定义、完善的封装。
2.2 面向服务体系架构的优点
面向服务体系架构本身有着非常多的特点,其抽象性比较高,操作起来比较灵活,这些特点决定了面向服务体系架构在很多方面都能够满足用户的需要。
(1)服务体系架构能够为软件开发者提供一个更加自由的开发模式,帮助软件企业改善开发方法,提高开发技术,改进现有的开发效率。服务架构能够利用现在的软件提供者以及软件的使用方之间存在的松散耦合关系,屏蔽其本身存在的过分复杂的内在逻辑,相较于系统的表示层,它仅仅能够照顾到服务接口,对于其本身的相关细节并不重视。利用标准的接口,各种服务能够相互引用,不必再考虑服务的平台、开发的语言,大大提高了软件开发的效率。
(2)面向服务的体系结构另一个最大的优点就是能够利用现有的系统进行开发,并不需要对原有的系统重新创建,在合适的情况下,利用现有的框架能够帮助整个企业改善服务效率,将现在的业务服务变成各种各样的组件服务的综合体。利用这一服务架构能够忽略其本身的细节性问题,实现较为复杂的数据传输,提高软件开发的效率,为批量化生产奠定基础。
3 SOA架构的ECC系统总体设计
ECC利用面向服务体系架构,其相关的展开技术可以利用微软的XML Web Services完成。系统里的每一个部分实际上都有自己独立的功能,而这每一种功能实际上就是一种独立的服务,而这些独立的服务能够给客户端能够提供网络服务接口。业务外观层,其业务流程的形成主要是通过2种途径来实现的:一种是单个服务,另一种是多种服务结合而成的,这也给表示层奠定了一个整体的轮廓。
实际上,在现有的各种各样的客户端中,大部分的客户端实际上还是能够利用标准化的网络服务接口的应用来实现业务逻辑的。通过这样的设计能够保证业务伙伴的外部用户和内部用户访问一样的服务,这将能够将企业和其外部相应合作伙伴之间的流程和业务进行必要的整合。比如说,在需求链子系统的相关建构工作中,可以利用产品查询功能,帮助外部客户在企业的系统里调动需要的产品信息。与此同时,企业不仅能够给自己的合作伙伴提供必要的帮助,其本身也是服务的重大受益者。换言之,企业本身也能够利用供应商提供的各种各样的订单服务来完成订单的相关工作。
而涉及系统的业务逻辑问题时,可以利用第三方提供的服务完成相关工作。比如当一个企业想要在自己的系统中添加采购、销售、仓库、财务等内容的时候,其最重要的工作就是利用企业自己的需求进行相关的客户端设计,随后通过远程连接,提供商提供一定的服务,这不仅能够大大降低软件开发的工作量,还能够提高工作的效率,为软件的批量化生产、规模化生产奠定扎实基础。
4 结语
软件开发是近几年软件行业面对的最重要的障碍之_,也是软件危机最重要的表现。国内现在的软件生产大多面临着难以推进规模化、产业化生产的窘境。这也影响了软件为客户提供服务的整体质量水平,对于整个软件行业的发展是非常不利的,所以推进软件生产的改革已经成为迫在眉睫的问题。面向服务软件体系架构的实施,能够极大地提高软件开发的效率,降低软件开发人员的工作量,保证软件的质量,为日后软件的维护工作奠定扎实的基础,这也是帮助软件行业克服危机的一个重要举措,同时由于其本身对于硬件的要求比较低,成本相对也比较低,所以有着较强的可行性和可实践性。本文主要对面向服务软件体系架构的相关原理进行了简要的介绍,并对相关的范例进行了简单的分析。