概述
ABP_J2EE——Agile Business Plat Base J2EE(基于SOA的敏捷业务软件平台系统软件),诞生于2000年,是虎蜥公司研发团队在大量艰苦的ERP/MRPII/CRM等信息化项目中逐步积累并开发成功的基础业务软件平台,具有面向业务、技术无关性、敏捷开发和易扩展等特性,非常适合中小规模企业信息化快速开发,在已经实施的项目中,它的快速开发和高成功率已经受到更多客户的认可和欢迎。
ABP_J2EE的出现如一缕清风,在当前如火如荼的信息化大潮中,一路走来,逐渐的被睿智的企业选中,成为他们实现信息化的一把利器。
基础业务软件平台被称为软件产业的一次革命,已经被众多厂商所追逐,在广大客户当中也成为共识,逐步成为企业实施信息化项目能否成功的关键考核指标。
1.为什么需要基础业务软件平台?
1.1. 企业信息化现状与困惑
随着软件开发语言、工具以及数据库技术的快速发展,人们可以利用信息技术来解决企业发展过程中的各种管理问题,但随着信息技术进入的问题域越来越宽,需要解决的问题也越来越复杂,信息化项目的失败率也随之升高。据计世资讯的数据,当前国内信息化项目的成功率只有10~20%,国际上也只有20~30%(Gartner Group的调查统计图)。
企业信息化市场虽然前景巨大,但较高的失败率却也是信息化产业的最大问题。 国际化工业研究表明:ERP项目70%以上都不成功,而且成本平均超预算240%,安装时间超预计178%。ERP作为管理变革和升级的理念已经被描述得几近神奇,而众多企业倾其所有也不过成为ERP神坛上的祭品。
残酷的事实表明:70%以上的ERP系统,无论是自行开发还是专业系统集成商代为设计,都没有达到客户原来预定的目标,平均只能得到预计功能的50%左右。成功者的喜悦在此就不必多说,而失败所付出的代价却是灾难性的。
如此高的失败率,不是一个正常现象,我们应该知道在什么地方出现了问题,要搞明白项目高失败率现象背后的原因,让我们先看看企业对信息化项目的要求是什么?
(1)实施简单,快速带来效益
(2)满足个性化,这包含空间上的个性化和时间上的个性化
(3)完善的服务和低成本
(4)良好的稳定性和集成性
(5)易扩展和易维护
一个项目如果判定为失败,至少在上面一点或几点没有达到企业的要求,根据权威机构的调查资料,我们看到了大部分企业对失败项目的评价集中在下面三点:
(1)软件产品不满足企业实际情况。
(2)软件灵活性、扩展性、集成性差。
(3)软件不适应企业发展变化。企业个性化需求广泛存在,分为空间上的个性化(行业和企业特色)和时间上的个性化(企业不同发展阶段),软件供应商难于用一种业务模式的软件产品来套用企业的需求。
以ERP为例,回顾国内大型企业应用软件的发展历史,软件开发商和企业用户都经历了一个艰辛的实践过程,从MRP、MRPII到ERP逐步了解这种先进的企业管理理念,伴随近十多年以来软件开发语言工具的迅猛发展,逐步建立起了国内ERP软件的市场和软件基础,这期间,很多大型企业交了高昂的学费,得到的结果并不令人满意;而开发商在企业需求不断变化、升级扩展的过程中,将产品越做越大,越做越辛苦,系统越做越欠稳定,最终导致多数项目无果而终或应用效果不良。到头来,企业不满意,开发商出力不讨好。
是什么原因导致了信息化行业如此状况呢?
行业应用的现状使软件供应商必须面对,那么如何突破呢?从项目失败的原因来看,软件供应商从技术手段和生产力上进行突破是首当其冲的重任。
软件业激动人心之处就在于不断创新和不断的融合,在这个演化的过程中软件业发展成为一个多层复杂体系。如果说局部技术的创新和融合给整个产业不断注入新鲜的活力,层级之间的演变往往带来的是深层理论的变革和产业格局的大调整。
基础业务软件平台就是在这样的大背景下诞生的……
2. 基础业务软件平台的产生历程
2.1. 软件开发工具及方法论的历史
对于软件开发语言(工具)市场的商业个体来说,技术领域的竞争就是没有硝烟的战场,从计算机被发明IT产业兴起以来就从来没有停止过激烈的竞争,时至今日,人们已经在软件开发语言(工具)的战场上征战了五十多年。
第一代语言(1GL):原始的机器语言编程方式
50多年前,是计算机及编程语言的“石器时代”,当时的计算机只能识别和执行由0和1组成的串,人们把指令和数据以0/1序列的形式输入那些由真空管组成的庞然大物,依靠0/1序列来获取人们需要的计算结果或对计算机进行控制。不但如此,人们还不得不为每个字节的内存绞尽脑汁,为每个时钟周期冥思苦想--高昂的硬件成本使得机器成为计算的重心。
第二代语言(2GL):汇编语言
随后,汇编语言的出现把人们从0和1的比特流中解放了出来,简单的指令集代码彻底地避免了人脑的思维方式二进制化。但是,不得不承认在这同时,它仍然摆脱不了以机器为中心的计算方法的命运。
第三代语言(3GL):高级编程语言(如PL/I,C,JAVA)
20世纪60年代到70年代,硬件技术的巨大进步带来的晶体管、超大规模集成电路、随机存储技术使得人们不需要再为了几个字节的内存空间和几个周期的时间片而花费大量精力,这使得第三代编程语言(3GL)的出现成为可能,程序员们放下了手工敲入汇编代码这个庞大的包袱,开始花费更多的精力在应用逻辑上,之后结构化程序设计几乎完全统治了第二次计算机浪潮后软件开发的黄金时代。
结构化编程带给人集中于创造性思考的快感的同时,也带给程序员们松散凌乱的代码和难循其踪的复杂流程,人们还是不得不更多地从计算机的角度考虑问题,直到面向对象技术的出现。OO思想使得人们终于可以从尽可能自然的角度计算这个世界,直到现在,OO思想依然是整个程序开发行业的支柱。
最近的十年,企业级的分布式应用飞速成为主流,带来了对系统性能、可伸缩性的严格要求,大量分布式系统的出现,大量异构平台的整合需求,引发了中间件战争的爆发,过去的十年,是企业应用系统和中间件技术的十年。人们不再像汇编的时代那样关心一点一滴的内存得失,而开始把更多的精力用于搭建灵巧的架构、实现变化多端的业务逻辑,因此Java得以大行其道,设计模式、AOP等等更高抽象层级的软件理论方兴未艾。
伴随软件开发工具及语言的发展,软件体系架构思想也经历了不断发展和完善。体系架构在这个过程中经历了以下发展历程:
2.2. 基础业务软件平台和SOA架构
五十多年的软件技术之路写满了这样的事实,那就是人所需要考虑的计算的层面越来越抽象,越来越集中于业务逻辑而非在计算平台上的实现细节。
抽象的根本原因是软件越来越复杂,复杂到人脑已经不能同时把握原有抽象层面上所有的细节,而软件的复杂性根源于软件所解决的问题的复杂性,而且随着计算机越来越多地应用,这种问题也将越来越复杂,因此软件的复杂化是计算机发展的自然趋势,抽象也渐渐成为不可逆转的方向,甚至连停滞都不可能,伴随着软件开发工具的不断进步,人们开始逐步期待软件能够解决现实世界中更深更复杂的问题,对软件设计者来讲,设计的重心必须转移到对需要解决的业务问题的需求分析和设计上来,这种趋势迫使软件开发工具要使开发人员摆脱编程语言和工具的关注,而直接面对要解决的问题,因此、可视化的要具备很好的抽象工具、更智能化、更加符合人对问题的思考和认识习惯。
这就是当前逐步被人们认识的软件中间件或平台化的思想。
管理软件发展经历过两次技术变革,第一次技术变革的主题是从DOS平台转移到Windows平台;第二次技术变革的主题是从两层架构转向多层架构。据计世资讯研究发现,用户对现有应用软件最不满意的前三个因素分别是:不适应变化、灵活性差和不满足企业实际情况。从全球范围来看,管理软件面临三大难题,即集成、适应变化和效率,这三大世界难题是管理软件业进一步发展的三道鸿沟,也正是这三大难题促使了管理软件第三次革命的到来。
为解决软件产业的基本矛盾,软件学术界进行了大量有益的探索,一直在进行着持续不断的努力。概括起来,努力有两个方向,一是软件工程、软件项目管理的方向,一是软件技术革新的方向。从诞生到现在,软件产业涌现了大量的技术革新。每一次的技术革新都向解决软件产业的基本矛盾迈进了一步。在所有的技术革新中,软件平台化是最有意义的,也是最有生命力的。
基于平台的管理软件是软件开发技术的第三次革命,软件平台化终将导致软件产业深刻的技术革命。
什么是软件平台?
软件平台是用来构建和支持应用软件的独立软件系统,包含支持环境和开发体系这两个基本要素,其本质是将复杂应用软件进行系统分层。
目前软件平台可以分为操作系统平台、软件基础架构平台和业务基础软件平台。
(1) 操作系统平台解决的是硬件系统和应用软件交互的问题。
(2) 软件基础架构平台是构建在操作系统之上的平台,它为复杂的软件系统提供技术支撑。
(3) 业务基础软件平台是新出现的一个层级(如下图),是以业务为导向和驱动的、可快速构建应用软件的软件平台,包含集成应用平台和开发维护体系。
业务基础软件平台
业务基础软件平台是一种以业务为导向,可快速构建应用软件的平台。它解决了管理软件的业务描述以及与操作系统、软件基础构架平台之间的交互管理问题,同时它屏蔽了技术细节,使开发人员能够集中全力关注产品研发中的业务与管理问题,摆脱技术细节的困扰,从而大大提高了产品研发效率。它有两种表现途径:第一种是“组件化业务基础软件平台”,第二种是“模型化业务基础软件平台”。业务基础软件平台就好比是一个技术门槛较低并且功能强大的开发工作台,在此之上,软件专业人员和用户可以开发各种各样的专业平台和应用软件。
SOA(Service-Oriented Architecture 面向服务架构)体系架构
每一种软件平台,必然基于一种软件体系架构,体系架构是支撑应用软件系统的技术标准和体系模型,是软件平台赖以存在的底层技术基础,那么当前被业界看好的业务基础平台基于何种体系架构才能更有生命力呢,近些年,体系架构理论的发展日新月异,新的标准和体系学说不断出现,客户刚刚部署了三层架构,那边已经开始有分布式了,这些发展源于近年来IT技术的迅猛发展以及客户系统越来越复杂,IT经理们及专业人员不断在找寻解决这些复杂难题的方法。当前,人们已经越来越相信,近乎完美的答案已经找到了,这就是SOA体系架构。
面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
3. 业务基础软件平台的优势
3.1. 快速响应
能够快速响应用户需求的变化,满足用户对实施效率的要求。通过开发工具,软件供应商能够很快地研制出用户所需要的复杂应用软件系统。
3.2. 满足个性化需求
完全满足用户个性化的需求,通过灵活的平台工具,软件商能很方便地满足用户个性化的需求。对于用户的业务需求,平台以业务建模或业务组件为基本手段,预置了很多供参考的行业软件模块-业务模型,在业务模型基础上结合用户需求直接定制来实施业务应用系统,定制功能比ERP(企业资源规划 Enterprise Resource Planning)升蓝 www.hi-blue.com的二次开发更能满足客户个性化的需要。
3.3. 面向业务和技术无关性
操作系统平台、软件基础架构平台等都是面向软件开发人员,使用它的技术门槛比较高,而业务基础软件平台面向业务人员,它使用得更多的是“业务语言”或“管理语言”,这是业务人员就能理解的语言。这一特性消除了业务与技术人员之间沟通的障碍,有利于复杂系统的实施。业务基础软件平台优势可以通过与传统开发方式的比较看出,如下图:
技术无关性屏蔽了操作系统、软件基础架构平台的技术细节,使得应用系统的开发和实施者可以仅关注业务任务,而不必关注其技术的实现。
(1)良好的扩展性和可维护性
(2)满足用户跨平台的需要
业务基础平台解决了用户需求的个性化与软件产品的通用性之间的矛盾,以其快速、灵活、符合个性化的优势,从根本上突破了企业信息化的障碍,主要表现在:成本降低,个性化深度满足,可持续扩展。由于障碍的突破,业务基础平台的进展不仅为软件平台供应商创造了机会,也为应用软件商、咨询公司,行业方案提供商开拓市场提供了巨大的商机。
北京虎蜥信息技术有限公司成立之初,就将公司的发展方向定位为业务基础软件平台的研发和推广上,并且一直是公司的核心业务和研究方向,目前公司的ABP_J2EE敏捷业务平台就是虎蜥业务基础软件平台的代表产品。