协作应用程序的新世界使开发人员的角色朝更好的方向改变。它在相当大的程度上提高了组织中开发人员的价值,这是因为他们不用在一个特别的基础上再去组装单个应用程序或处理应用程序集成,而是负责给整个业务定义一个架构。企业构架师比一般意义上的开发人员的角色更关键。为了有利于一个新的应用程序,单个工程可能会被取消,开发投入大量个人经验开发的应用程序可能会被清除。但是所有的企业承认他们需要一个可伸缩的、适应性强的基础结构,这个结构可以不影响已有的业务而按照需要添加新的应用程序,他们也在求助于技术专家开发这种结构方法。
SOA给开始用服务构建应用程序的开发人员带来了许多益处。
松耦合
如果您根据由通信服务组成的光纤想一想SOA,很容易会发现松散耦合是如何减少在一个服务中修改代码也会要求在另外一个服务中修改代码的机率。在这种情况中光纤可以看成是总的应用程序。如果使用传统应用程序中的步骤将这些服务硬编码在一起,则更改一个步骤就像在一个真实的光纤上拉一根线一样。结果整个光纤将会坏掉。利用SOA,就能够大批的迁移或者取代单个的服务而不影响总的组合应用程序。
位置透明性
想一下关于从客户/服务器模式转移到事件驱动模型我们说了什么?在事件驱动模型中,服务的消费者无需知道服务位于网络哪个地方。SOA中的服务在注册表中已经注册。这个注册表可能是数据库、目录服务、UDDI注册表或者XML文件,它能很容易地被客户端应用程序定位。所有注册和发现都由SOA处理,所以开发人员可以集中精力去解决业务问题。
事实上,这种位置透明性是让Web服务工作的一个必不可少的部分。以这种方式把应用程序开发和部署分开使得企业能灵活地把服务迁移到不同的服务器中,而不需要考虑那样会如何影响客户端应用程序,它也使得开发人员满足了业务可用性、符合服务级别和可伸缩性的要求。
代码重用
开发人员会怀疑是否有能达到代码真正重用的切实可行的办法,这是可以原谅的。自从过程化语言让位于面向对象的开发,我们一直期待着将来应用程序的开发是一种Lego积木方式的简单插拔对象方式。虽然面向对象的框架在普通环境中有一些成功,但是使它们穿过异构平台工作的困难一直使人畏缩,主要是因为缺乏标准化和一种易理解的公开描述方法的方式。
我们还没有达到那样的程度,但是SOA实际上可以通过用UDDI在注册表中列出服务和公开WSDL文档中方法(包括参数和类型),使开发人员从代码重用中受益成为可能。
每次开发人员要集成新的应用程序时,他们不需要重新开发。不需要修改现有应用程序就能达到新的功能。
通用服务
通用服务将取代硬编码集成,这使得开发人员能够将精力集中于总体解决方案和更高级别的策略实现。例如,企业软件的通用方面(如可靠传递和智能路由)将由基础结构本身作为服务提供,无需开发人员再为这些功能编写代码。
平台独立性
SOA提供了一个能适应多类硬件、操作系统、中间件、语言和数据存储的抽象层,在许多情况下,企业架构师在不了解每个组件的情况下也能够集成这些多样性组件。
文章来源于领测软件测试网 https://www.ltesting.net/