为什么用SOA架构?

目前软件开发面临两个难题:
1) 软件在不断地发展,用户需求在不断地增加,软件功能模块在不断地扩充,软件的重新设计和整合的成本成为企业无休止的投资陷阱。

2) 目前管理软件中不同种类的操作系统、应用软件、系统软件、数据格式相互交织,要将这些不同网络、不同平台、不同数据格式、不同软件完全统一是不可能的,只能在现有的软件、数据、平台基础上进行扩充。

基于上述两点原因,我们在软件架构的上需要做出必要的调整。

首先,要解决软件功能模块扩展的问题,减小未来软件投资风险,除了常规的软件升级更新,扩充功能以外,降低模块间的耦合度、模块间使用明确定义的接口进行交互、模块组件化的方式,能够有效地减小模块间的依赖性,延长模块生命周期,增加模块间交互能力,增强软件扩展能力,减少企业软件开发和集成投资,并能够保护用户的IT基础建设投资,提高产品竞争力。

其次,要解决跨网络、跨平台处理不同数据格式、与不同软件的软件进行交互的问题,必须采用标准化技术。软件交互、数据格式、网络协议等均有国际标准或行业标准,利用和实现这些标准所规定的内容,即可以相对简单的解决跨网络、跨平台处理不同数据格式、与不同软件的软件进行交互的问题。

目前能够实现了上述理念的软件架构就是“面向服务架构(SOA)”。面向服务架构不是一种技术,也不是一种标准,而是一种应用框架,但SOA基于技术和标准,是技术和标准的累积,它着眼于日常的业务应用,并将它们划分为单独的业务功能和流程,即所谓的服务。SOA 使用户可以构建、部署和整合这些服务,且无需依赖应用程序及其运行计算平台,从而提高业务流程的灵活性。这种业务灵活性可使企业加快发展速度,降低总体拥有成本,改善对及时、准确信息的访问。SOA 有助于实现更多的资产重用、更轻松的管理和更快的开发与部署。

因此我们将以SOA作为软件的架构的重要构成部分。但由于实现完整的SOA架构极为复杂,在有限的人力、资金和时间内无法对软件整体全部实现SOA架构,我们将选择相对易于实现并能够快速投入使用的部分首先实现SOA架构,并在项目整体完成后的2~3年内逐渐将项目模块按照SOA架构从集成项系统中分离出来,最终形成完整的SOA体系架构。
 
(摘自公司内部项目资料)

原文地址:https://www.cnblogs.com/yuxs/p/420999.html