SOA是英文Service-Oriented Architecture的缩写,中文名称为“面向服务架构”,是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。尽管这一定义看上去有些晦涩难懂,但只要告诉你这样一个事实,我们最熟悉的HTTP协议就是一个非常典型的SOA架构设计,你就可能会对SOA 有了好感。面向服务强调逻辑处理单元(服务)之间的松耦合。其核心在于将单个应用程序功能彼此分开,以便这些功能可以单独用作单个的应用程序功能或"组件"。
这些组件可以用于在企业内部创建各种其他的应用程序,或者如有需要,对外向合作伙伴公开,以便用于合作伙伴的应用程序。而在没有SOA的情况下,软件包是被编写为独立的(self-contained)软件,即在一个完整的软件包中将许多应用程序功能整合在一起。实现整合应用程序功能的代码通常与功能本身的代码混合在一起。我们将这种方式称作软件设计"单一应用程序"。与此密切相关的是,更改一部分代码将对使用该代码的代码具有重大影响,这会造成系统的复杂性,并增加维护系统的成本。而且还使重新使用应用程序功能变得较困难,因为这些功能不是为了重新使用而打的包。
SOA架构理念最关键的优势在于交互性(互操作性),在基于SOA的系统平台上,人们可以使用任何平台之间的功能,而不必考虑编程的语言、操作系统和计算机类型等等。SOA可以实现软件程序的大量复用。不仅仅是在开发层被调用,而是在应用层可以被用户调用,可以根据服务请求通过分布式网络对松散耦合的应用群件进行部署、组合和使用。用户通过调用SOA的程序服务,可以建立适合自己的软件应用功能,可以为直接用户建立起完全个性化的软件应用功能,实现表单的多样化和角色的动态化、流程的柔性化,以适应深化协同软件应用和管理变革的需要。SOA架构使得应用程序的重复使用成为可能,并且能够降低开发成本。服务的重复使用,其长期作用在于减少企业中冗余的功能,简化基础架构,从而降低维护代码的成本。
SOA等新需求的提出,使得协同软件概念也赋予了新的含义。在激烈竞争的市场环境下,企业的管理模式很难固化,当企业要做出一些改动时需要面对巨大的挑战。同时,随着信息化建设的深入,不同应用系统之间的功能界限已趋于模糊。目前的协同软件,已经超出了早期的公文管理等简单内容,参与协同的事务不仅包括了行政办公事务,还包括了企业的人、财、物等等多项管理事务,这就要求协同软件能够自动与企业现有的管理信息系统,如ERP、CRM、HR等实现无缝连接,满足企业业务灵活性和数据接口复杂性的需求。这种需求定决定了基于SOA理念的协同软件在未来将大有所为。
|