近年来,SaaS、云计算等众多软件行业的新名词,使得soa相形之下声势略减。但是,作为一整套彻底改变企业IT核心基础架构、一种已广为企业IT主管所认知和认可的协同架构理念,soa已经从技术推广初期步入纵深发展阶段。我们可以看到,基于soa这一架构理念的软件产品已经开始致力于在此基础上实现更多用户价值。
soa是英文Service-Oriented Architecture的缩写,中文名称为“面向服务架构”,是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。
尽管这一定义看上去有些晦涩难懂,但只要告诉你这样一个事实,我们最熟悉的HTTP协议就是一个非常典型的soa架构设计,你就可能会对soa 有了好感。
面向服务强调逻辑处理单元(服务)之间的松耦合。其核心在于将单个应用程序功能彼此分开,以便这些功能可以单独用作单个的应用程序功能或”组件”。这些组件可以用于在企业内部创建各种其他的应用程序,或者如有需要,对外向合作伙伴公开,以便用于合作伙伴的应用程序。
而在没有soa的情况下,软件包是被编写为独立的(self-contained)软件,即在一个完整的软件包中将许多应用程序功能整合在一起。实现整合应用程序功能的代码通常与功能本身的代码混合在一起。我们将这种方式称作软件设计”单一应用程序”。与此密切相关的是,更改一部分代码将对使用该代码的代码具有重大影响,这会造成系统的复杂性,并增加维护系统的成本。AMR研究公司的报告就指出,成功构架soa将节约大量时间、金钱和其他商业资源,包括减少成百上千的冗余商业应用,增加应用数据。成功应用soa的企业平均每年节约100万美元,每6个商业节点创造的年回报约为1000万~2000万美元。而且还使重新使用应用程序功能变得较困难,因为这些功能不是为了重新使用而打的包。
soa架构理念最关键的优势在于交互性(互操作性),在基于soa的系统平台上,人们可以使用任何平台之间的功能,而不必考虑编程的语言、操作系统和计算机类型等等。soa可以实现软件程序的大量复用。不仅仅是在开发层被调用,而是在应用层可以被用户调用,可以根据服务请求通过分布式网络对松散耦合的应用群件进行部署、组合和使用。用户通过调用soa的程序服务,可以建立适合自己的软件应用功能,可以为直接用户建立起完全个性化的软件应用功能,实现表单的多样化和角色的动态化、流程的柔性化,以适应深化协同软件应用和管理变革的需要。
soa架构使得应用程序的重复使用成为可能,并且能够降低开发成本。服务的重复使用,其长期作用在于减少企业中冗余的功能,简化基础架构,从而降低维护代码的成本。通过按服务的使用者来组织应用程序,与传统的编程技术相比,企业将能够获得一个要灵活敏捷得多的集成模型,从而可以迅速修改业务流程模型。
soa等新需求的提出,使得协同软件概念也赋予了新的含义。在激烈竞争的市场环境下,企业的管理模式很难固化,当企业要做出一些改动时需要面对巨大的挑战。同时,随着信息化建设的深入,不同应用系统之间的功能界限已趋于模糊。目前的协同软件,已经超出了早期的公文管理等简单内容,参与协同的事务不仅包括了行政办公事务,还包括了企业的人、财、物等等多项管理事务,这就要求协同软件能够自动与企业现有的管理信息系统,如ERP、CRM、HR等实现无缝连接,满足企业业务灵活性和数据接口复杂性的需求。这种需求定决定了基于soa理念的协同软件在未来将大有所为。
作为国内OA行业的领导者,泛微OA一直在理念和技术上走在行业前端,在soa理念的落地上,同样也是表现出色。目前,基于soa的泛微OA系统已经在数千家企业得以成功应用,不仅在用户交互性方面表现卓越,也为众多企业的信息化系统集成应用带来了便捷。在这种架构模式下,企业信息化系统各司其职与企业的信息化整体规划实现了统一,企业能够从自身需求出发,整合各应用系统为其所用,而不至于被信息化所累。