首页 > 代码库 > 平台化软件的设计与应用前景分析

平台化软件的设计与应用前景分析

1.背景描述

    近年来,在政策和市场的双重拉动下,中国软件市场保持了持续快速的增长。2002年,中国软件市场实现了21.1%的增长率,销售额达到345 亿元。2003年,中国软件市场销售额达到400亿元左右,软件市场进一步升温。在几百亿元的市场规模下,掩盖了这样一个事实:软件项目成功率非常低。根据统计,超过80%的项目不能在最初估计的预算和进度内成功交付。这对用户和厂商都产生了严重的影响,对于软件产业的健康成长也非常不利。用户对厂商的效率和能力产生怀疑,对使用软件的效果产生怀疑。

    厂商在项目过程中难以维持健康的现金流和获得足够的利润,无力提升产品研发水平和效率。业界一直在试图解决这种恶性循环,解决方法一是靠软件工程,厂商采用更科学、更规范的流程组织项目开发,如软件生产过程中的CMM(软件成熟度模型)规范;二是靠软件技术。而就软件技术而言,平台化技术是软件产品发展的重要趋势,平台化的软件具有独立性、开放性、可管理性和可扩展性等特点。

    平台化软件分为技术支撑型平台和应用实现型平台。技术支撑型平台的用户为软件开发人员,提供商负责平台的维护和升级,用户负责基于平台的上层实现。这类平台包括软件中间件、开发工具、应用服务器等。应用实现型平台的用户为终端用户,提供商不但负责平台的维护和升级,还要负责实现基于平台的上层应用。

    例如:一个网站使用应用服务器WebLogic为技术支撑型平台,服务器的提供商(BEA)不会负责具体网站内容的建设。而应用实现型平台(如集尔普的Our-ERP系统)不但负责平台的维护和升级,更重要的是负责上层应用的实现,如企业管理软件中的财务管理,进销存,校园管理中的总务管理,教务管理等。本文章主要描述应用开发型平台的目标,定义,技术架构,实现和应用前景。

    如果没有特殊说明,在后面描述中平台化软件指应用开发型平台软件。

    2.平台化软件的设计要求

    1)具备灵活方便的二次开发能力

    传统的管理软件大多脱胎于财务软件和MRPII的结合,这种结合不仅生硬、集成度不高,而且结构僵化、死板,无法适应千变万化的企业环境和需求,在客户化和二次开发过程时往往进度缓慢,实施困难。作为新一代软件系统,平台化软件则应该具备更好的应用开发和维护的工具和接口,实施时可以迅速根据用户的特点进行部署和二次开发,用户可以最大限度地使用贴近自身特点的管理软件。

    2)实现分布式应用系统

    传统的管理软件局限于内部的资源管理。平台化软件应该将整条产业链上的多家企业通过Internet和数据平台组成一个更加紧密的协同化生产组织,实现企业与企业之间的资源共享,疏通企业的各自的信息孤岛,实现各类功能互连、互通、互动的有效集成。过去以自身为主的企业与企业之间的竞争,转变成为协同化作业的企业链与企业链之间的竞争,极大地增强企业的竞争能力。

    3)做到硬件独立和软件环境独立

    这样做给用户带来的好处是,用户不必关心采用何种硬件或数据库平台,应用软件也不受硬件平台的迁移的影响。例如,大部分传统的国产管理软件系统只能支持windows操作系统和MS SQL Server数据库,对UNIX、OS/390等大型主机平台以及Oracle、DB2等企业级数据库就无能为力,而新一代的平台化软件则可以支持各种操作系统平台,多种数据库系统,用户可以有更灵活、广泛的选择余地。

    4)实现上层应用的技术无关性

    平台化软件使运行于上层的应用软件在某种程度上做到与技术无关,而是面向具体业务;一个平台可以运行企业管理系统、校园管理系统或医院管理系统等。

    5)采用B/S与C/S结构相结合

    B/S结构具有免安装的特点,C/S则具有更高的安全性,不安装无法访问。只要能上网,就可以通过浏览器对B/S结构系统访问,输入帐号和密码后任意机器(如网吧)可以登录系统。所以,对于网上交易、门户网站等可以采用B/S结构,但是对于重要的内部数据,如财务管理、物资管理等内部机密资料和数据,最好采用C/S结构。但是无论B/S还是C/S结构,都必须采用分布式结构,可远程网络访问,平台设计采用三层结构。

    此外,工作流、报表图表工具等也应与应用开发工具组合在一起,提供一个支持管理应用开发的平台。

    3.平台化软件的设计思路

    1)平台架构

    平台架构包括了系统的用户终端、系统管理工具和应用开发工具。用户终端主要用于组织和呈现上层应用系统内容,使用者为终端用户,如会计人员可以在用户终端进行财务数据的处理。系统管理工具主要用于上层应用和运行环境的基本维护,如系统日志查看,人员信息维护等。

    应用开发工具在不同阶段可以由不同的人员维护。在应用系统开发期间由平台提供商的系统建模人员使用,用于设计和实现上层应用系统;在系统维护期间,由平台提供商的系统维护人员和用户的系统管理员共同使用(应该主要由平台提供商的系统维护人员负责)。

    2)上层应用

    由于平台化软件的技术无关性和应用无关性,平台化软件可以广泛使用在社会的各个领域和各个行业,例如企业、学校、医院等,除了特殊需求 (硬件与外部系统接口等)外,其他部分可以通过应用开发工具,实现免编程的应用系统构筑。上层系统的构筑之前应进行相信的需求调研和分析,进行系统的设计和论证,使用平台的应用开发工具进行系统的免编程实现在总体工作量中只能占到1/3-1/4。

    3)运行环境及其他

    包括应用服务器、数据库系统、远程通讯系统、操作系统。着名的应用服务器厂商包括BEA WebLogic, IBM WebSphere, JBoss Org等。数据库系统包括Oracle、IBM DB2,MS SQL SERVER等。远程通讯系统的设计应优先考虑网络传输速度问题。系统的设计还应该能够跨平台应用,Windows/Unix系统可以联合使用,如应用服务器能够运行在高性能的多CPU的Solaris或OS2操作系统上。

    4.平台化软件的优势

    1)应用的广泛性

    平台化软件的功能更加全面、覆盖面更加广泛。在过去,各类独立功能的管理软件名目繁多,很难集成,例如客户关系管理(CRM)、人力资源管理 (HR)、物流管理(LM)、教务管理,图书管理等,企业、学校或医院的人、财、物不能得到统一的管理和监控。ERP能有效地将财务管理、销售管理、财务管理、客户关系、采购与库存、人力资源等各种管理模块集成在一起,形成一个庞大的系统。平台化软件的各种信息统一存储,实现管理信息的共享,从而提高各级组织内部有效的协作和快速反应。

    2)良好的开发性

    与其他软件不同的是,平台化软件是由建立在共同平台上的一个系统,模块相互之间既具有较强的独立性,又可以独立使用,通过统一的数据接口又以可实现相互间的无缝集成,同时可以实现一致的对外接口。因此,平台化软件具有更大程度的灵活性和扩展性,不仅可以根据客户当前的需求进行选择和搭配使用,而且具备了更好的二次开发接口。

    3)快捷的适应性

    用户需求变更使软件提供商最头痛的事情,但由于双方的沟通和理解不同,软件系统在研发和使用过程中需求变更不可避免。据统计,软件源码 20%以上的变动所需的工作量就不会小于重新开发一套系统,这也是软件系统失败的主要原因之一。平台化软件的上层应用开发工具可以实现免编程的应用系统修改,具有更快捷、方便的适应能力。

    5.平台化软件的应用前景

    设计良好的平台化软件应可以普遍应用于企业管理系统、校园管理系统、电子政务、医院管理系统等各行各业。企业管理软件中的销售与分销管理、生产管理、库存与采购管理、客户关系管理、办公自动化、人力资源管理等系统可以完全集成为一个系统,所有的企业资源(人、财、物)全部共享,全面降低企业的运营成本。

    校园管理系统中的总务与后勤管理、教务管理、办公自动化、注册与离校系统可以集成为一个系统,实现学校的集中式管理,严格控制支出和消耗。医院管理系统的收费与挂号、财务管理、住院管理、医生站护士站等可以集成为一个系统,实现快捷、方便的医院管理。

    2002年初,Gartner公司(ERP/MRPII理论的首创者)在对未来软件架构发展报告中认为平台化软件是管理软件的发展趋势。目前,由于平台化软件不可替代的优越性,SAP、Oracle等国外管理软件公司的产品都已经转向平台化,许多国产管理软件开发商都在宣称要将战略重点转向平台化软件,甚至宣称自己现在的产品就是平台化产品。

    进入2004年以后,第一代ERP悄然消退的趋势更加明显。笔者认为,真正的平台化产品不应该在原有的固化的软件基础上的改造,因为原有的系统使用硬写代码的方式实现,无法与新型的平台化软件的运行支撑系统和应用开发工具结合,实现客户个性化需求的免编程定制。新型的平台化产品必须具备两个基本要素,实现应用的完全可定制,而不是原有系统外围的所谓“二次开发”。

    由于平台化软件有着诸多优点,许多软件公司准备研发类似产品,十分关心产品研发需要注意的问题。根据统计,平台产品的研发壁垒有三个方面:一是投入资金大,一般一期的产品研发至少要3000万元,而完成成熟产品需要投入近亿元;二是研发周期长,需要2-3年的时间;三是核心技术壁垒高,需要软件技术人员、管理专家的集体参与。

    随着中国软件产业的发展,国产管理软件在平台化软件技术和产品上已经有了很大的突破,许多过程的平台化软件产品已经能够与国外软件公司的产品保持同步,这必将给国内众多企业用户带来更大的效益。

声明:转载CIO时代网(www.ciotimes.com)

平台化软件的设计与应用前景分析