上海软件构件化服务中心构件技术推广应用实践
上海软件构件化服务中心
1 上海软件构件化服务中心情况概述
上海软件构件化服务中心是上海市科委2003年批准成立的软件构件化专业技术服务机构,是上海计算机软件技术开发中心的重要组成部分,也是863软件专业孵化器上海基地的技术支撑单位。构件化服务中心以推进软件工程化开发和工业化生产为宗旨,从事基于构件的软件工程(CBSE)相关的技术、方法、标准、工具的应用研究,以及软件资源库为核心的上海软件构件化服务平台的建设与运营,为软件资源共享、企业信息化建设和软件构件化开发提供技术服务。
2 企业面临的主要技术问题,推广构件技术的动机
2.1 企业面临的主要问题
2002年,上海的大部分软件企业以应用软件开发为主,规模较小,年收入1000万元以下的软件企业占80%以上,50位左右员工的企业占了大约软件企业总数的70%左右。
软件企业在技术创新和研发中存在的问题主要有:
(1)软件功能需求变化不断加剧,规模和复杂程序迅速增大。
(2)大部分软件企业没有形成内部可复用的软件资产(构件),缺乏开发所需的构件,缺乏专业技术人才,尤其是架构设计、构件提炼人才,还是一切从零开始的软件开发模式。
(3)开发的构件产品缺乏畅通的市场渠道,中小企业的发展需要更快的产品研发和资金回笼时间,但没有足够的市场调研和推广人力。
(4)缺乏技术服务,中小企业面对技术更新换代快、软件产品或项目的时间性强等现状,缺乏软件研发过程方法(包括基于构件的软件开发方法)、关键技术难题等方面的综合性技术服务。
2.2 软件构件化是解决问题的现实和有效途径
软件构件化开发已成为提高软件生产率与质量,解决软件危机的主流技术手段。软件构件的专业化开发和多次的复用可大大提高软件构件的质量;通过对已有构件的组装集成实现软件系统的开发,可大大降低软件开发成本,缩短开发周期,提高软件系统的整体质量。
软件构件技术受到各国政府的高度重视。2001年,美国PITAC将基于构件的开发方法、构件库等技术列为提高软件生产率和质量的主要手段。2002年7月,国务院47号文将构件库列为影响整个软件产业的重大关键共性软件。同年,上海市政府将软件构件化作为推动上海软件产业发展的一项重大举措。2002年7月,在上海市有关领导的关注下,作为推动上海软件构件化的一项重大具体措施——上海构件库的建设正式启动,9月,上海构件库被列为国家863计划信息技术领域重大专项。
3 上海软件构件化发展过程
3.1 阶段一(2002—2003年):上海构件库建设阶段
以构件共享为特征的上海构件库建设阶段。以科技部863项目“上海构件库及其应用”和上海市科委重大项目“上海构件库及其研究”为依托,围绕重点领域需求开展构件的征集、共享,通过成功应用北京大学研发的863成果——构件库管理系统,完成上海构件库建设与示范应用推广,推进企业内部构件共享。主要工作如下:
2002年2月,上海市政府召开上海软件工作大会,将软件构件化作为推动上海软件产业发展的一项重大举措。
2002年8月,上海构件库及其应用被列为国家863计划信息技术领域重大专项,以及上海市科委信息技术领域专项。
2003年3月,上海软件行业协会构件专业委员会成立。
2003年6月,上海市软件行业协会、上海软件园、IBM公司、上海计算机软件技术开发中心联合举办“IBM J2EE构件制作大奖赛”。
2003年8月,上海构件库网站试运行。
2003年9月,上海构件库和上海市软件行业协会举办上海软件构件评优活动。
2003年12月,上海市科委主办、上海计算机软件技术开发中心承办召开上海构件化带动软件工业化推进会,会上当时的严隽琪副市长揭牌成立上海软件构件化服务中心。
3.2 阶段二(2004—2006年):上海软件构件化专业服务平台推进阶段
上海软件构件化专业服务平台推进阶段。联合产学研建立上海软件构件化服务平台,推进企业之间的构件共享和构件技术推广工作。
3.2.1 平台和资源建设
建设上海软件构件化专业服务平台,服务平台功能包括构件发布、检索、交易、构件开源、构件外包等服务。服务平台网站在著名搜索引擎google上的“构件”、“构件库”、“构件技术”等关键字搜索结果集中排名第一。上海构件库及其应用项目已通过上海科技进步奖二等奖。
经过不断征集,上海库中构件达到8100多个,其中企业自主知识产权构件1800多个,优秀构件100多个,开源构件1000多个。会员发展到180多家,地域上包括江西、重庆、杭州等地,会员专业分工出现多样化,如有专业构件制作商、专业构件代理销售商、构件工具商、大学与研究机构、软件开发商、软件应用机构等。
3.2.2 构件化服务开展
为上海宝信、新致、金仕达等5家构件化应用示范项目提供架构设计、过程实施、构件推荐等技术咨询服务100多次;与重庆慧都、超蓝软件等24家企业签订了构件化服务协议;依托平台,2006年实现构件交易额351万元,销售构件335个;为上海鹏达等10多家公司提供构件推荐、外包等服务30多次。
3.2.3 构件化技术推广
为推进软件构件化发展,在上海与长三角地区开展了构件制作大奖赛、构件评优、技术培训和企业研讨等各类构件化技术推广活动。具体如下:
2004年,上海软件行业协会、微软公司、上海计算机软件技术开发中心、上海软件构件化服务中心联合举办“华东区‘微软杯’软件构件制作大奖赛”;上海软件构件化服务中心召开2004年会员大会,上海市科委信息处、上海软件行业协会、复旦大学、50多家软件企业的代表出席了大会;上海软件构件化服务中心开展2004年度上海市优秀构件评优活动。
2005年,上海软件构件化服务中心与上海市大学生科技创业基金合作举办了2005年创业杯高校构件制作大奖赛,共有6个省市、25所高校、637人参赛。在华东区12所高校举办技术讲座,普及培训2100多人次;面向企业构件技术培训300多人次;举办构件化推进研讨会、会员大会、构件技术研讨与产品推荐会等活动10多次;出版《上海软件构件化发展研究报告(2003-2004)》。
举办2006年创业杯高校构件制作大奖赛,有400多人参赛,在华东地区11所高校开展技术培训1500多人次;在苏州工业园、交大慧谷软件园和浦东软件园组织专业培训200多人次;与上海生物信息中心合作成立上海生物信息构件技术联合实验室,与东华大学计算科学与技术学院合作成立上海软件构件与应用技术联合实验室。
3.3 阶段三(2007年至今):构件化技术服务深化阶段
面向企业构件化技术服务深化阶段,围绕市场需求,优化服务资源,开展领域分析与设计、领域资产推荐、评估与应用、软件产品构件化认定和软件复用过程体系建设等深化服务。
3.3.1 完善服务平台,建设领域专业资源库
成功应用北京大学研发的863成果——构件库管理系统,建立了以上海构件库为核心、与区域型(沈阳、昆明)构件库互联、与企业软件资产库互动的分布式软件资源库服务平台。上海构件库已成为国内最大的区域性公共构件库,库中构件/产品总数接近18000个,技术资源共3000多篇,受到国内外同行关注。北京信息办、赛迪集团、Component Source(亚太区)、欧盟OW2、澳洲维多利亚州多媒体局等先后组团来考察交流;有多家科研同行主动要求进行构件技术的科研合作。
基于服务平台,开发了集软件资源共享、构件化技术咨询、信息化咨询于一体的信息化服务网站——软源网。围绕企业构件化服务和信息化服务需求,建设领域信息化专业资源库,现已建设制造业专业领域资源库。
3.3.2 面向软件产业,开展构件化资源共享服务
2007年至2009年,基于构件化专业服务平台,累计提供服务810次,服务对象数达451家,服务产品/项目数为787个。其中为上海锐道、上海道宁、西安楚凡等213家企业发布构件1617个;为上海海关、云南蓝泰和江西瑞奇等151家企业提供构件查找、推荐和交易服务183次。
通过积极开展构件化资源共享服务,促进软件资源在中小企业的共享与复用,加快企业基于复用的软件开发方式的转变和深化,提升企业自主创新能力,推动企业自主创新产品的推广与应用,增强企业的竞争力。
3.3.3 面向软件企业,开展深化的构件化和信息化咨询服务
面向市场需求,不断探索、创新,提炼形成了领域分析与设计、领域资产推荐、评估与认证、软件产品构件化认定、软件复用过程体系建设、信息化规划与设计等构件化和信息化咨询服务模式,并通过开展软件架构、构件化评估和认证、软件生产线、TOGAF、COBIT等标准和技术的研究,形成相应的服务能力,在技术服务方面取得了较好的经济效益,2009年横向服务合同额100多万元。
在面向企业的构件化咨询服务方面,为南京新联电子股份有限公司、中国电子科技集团第54所提供领域构件化技术实施咨询服务,为杨浦创业园区内企业提供软件产品构件化认定服务;为上海软中公司提供基于构件的系统解决方案评估与选型,以及全文检索构件深加工服务。
在信息化规划咨询服务方面,为上海申通地铁集团、龙工集团提供信息化规划、设计、咨询服务。
4 推广应用模式
4.1 基于平台推广模式
建设了上海软件构件化服务平台(http://www.sstc.org.cn),它是推进上海软件产业实现构件化生产的服务性公共基础设施,是上海市研发公共服务平台的重要组成部分,也是国家863软件孵化器上海基地的主要技术支撑之一。服务平台以软件构件化为手段,推动软件产业内可复用资源共享、企业间分工与协作,以及技术交流与创新。
基于服务平台开展构件化技术推广,在轨道交通、制造业、生物科技、金融、现代社区、司法、公安、社保、证券、教育等领域的信息化建设和软件项目开发中发挥了重要的作用。基于平台的推广模式如图1所示。
图1 基于平台的推广模式
4.2 产学研结合推广模式
2004年上海市科委批准成立上海软件构件化专家委员会,指导上海软件构件化发展。同时,联合产学研形成了一支专业技术服务团队,服务平台会员达到了280多家,会员中有构件制作商、构件代理销售商、构件工具商、大学与研究机构、软件开发商等,共同提供软件构件化技术服务。
4.3 服务模式
在已有工作基础上,面向市场需求,确定了三大服务模式:软件资源共享服务、构件化咨询服务、信息化咨询服务。服务团队开展三大服务,主要服务案例包括:上海轨道交通网络信息化规划服务,上海复旦科技园软件产品构件化认证服务,万达公司构件可信评估服务,文化市场执法监管系统解决方案服务,米鼠即时通信软件MSC构件化开发咨询服务,等等。
4.4 以构件技术标准规范为指导
标准是产业发展的技术关键,上海软件构件化服务中心作为软件构件标准工作组成员,密切跟踪国内外标准研究,联合产学研用,参与制定构件相关技术标准规范,指导服务和推广工作。相关技术标准规范包括可复用资产规范(国家标准)、软件资产管理技术指南(国家标准)、企业信息系统架构框架(国家软件与信息服务业标准)、软件密集型系统架构性描述推荐实践等。
基于研究成果,在核心期刊上发表论文20多篇,申请了多项软件著作权,并组织软件企业多次开展构件技术标准的宣贯与培训活动,有效地推动了构件化技术的推广应用。
4.5 举办多种形式的推广活动
举办多种形式的活动,推广构件化技术与应用。
(1)大奖赛:从2003年至2007年,每年举行大学生软件构件制作大奖赛,在各上海高校开展普及培训,累计培训8687人次,较好地推动了构件技术的传播,并受到上海各大高校的好评。
(2)专业培训:每年与相关机构(浦东软件园、交大慧谷软件园、苏州工业园等)、企业联合举办各种专业培训,包括软件复用、架构设计、软件资产管理等。
(3)构件评优:举办了3届上海软件企业构件评优,评选出优秀构件158个。
(4)各类研讨会和展会:每年召开各类研讨会,包括构件化带动软件工业化大型推进会、国际ObjectWeb开源构件技术研讨会、2009年中国软件复用与构件技术实践与标准会议等;并参展2007年和2008年上海工业博览会、第十届中国国际软件博览会,展示、推广构件化技术与应用。
5 取得的成效
软件构件化在提升软件企业竞争能力、推动产业发展方面取得了显著的成效。
5.1 软件构件技术对上海市软件产业发展起到了推动作用
2006年,由上海软件构件化服务中心联合上海市软件行业协会、中国计算机报(华东专刊)对上海市软件构件化发展情况进行了二次调查,调查有效样本为180个,结果显示:
采用软件构件化开发的企业数量增加。采用构件化技术和方法开发的企业占57.4%,12%的企业开始着手准备采用构件化开发,两者相加占全部被调查企业的69.4%。
构件化开发给企业带来了较好的回报。据对上海第一批构件化示范企业的调查,采用构件化后,生产率提高33%~200%,开发成本降低10%~50%,开发周期缩短20%~70%;又据对第二批5家构件化示范应用企业的调查,采用构件化后,新增产值8140万元,实现利润1340万元,降低开发成本3522万元。
通过对2004年度上海市优秀构件的跟踪调查,这些优秀构件平均被复用次数为45次,减少开发工作量48.6%。现在上海市优秀构件不仅给企业带来效益,更成为企业参与项目竞标的一项资质。
由此可见,经过构件化推广工作和示范项目的示范作用,软件企业对构件化开发给企业带来的好处已经认可,越来越多的企业在项目开发中采用了构件化开发技术和方法,并获得了较好的回报,构件化的发展对上海市软件产业近几年的快速发展起到了推动作用。
5.2 构件化开发对上海市重大项目建设起到了支撑作用
通过构件化服务中心推进软件构件化,提供构件化服务,上海市骨干软件企业和一些示范应用项目在上海市的重大项目建设中发挥了作用。
5.2.1 上海东海大桥建设和翔殷路越江隧道建设
翔殷路隧道是上海市政重大工程,上海宝信软件公司承担了翔殷路隧道工程监控系统的开发工作,由于采用了构件化开发,保证了这个市重点工程的如期交付使用。翔殷路隧道工程监控系统涉及31个子系统,规模大,如果完全重新开发,工作量将是不可想象的。通过利用公司成熟的构件搭建系统平台,并利用专业构件来组成相应的业务应用子系统。最终,项目组投入了10个人月开发新增的系统功能构件,5人月进行实施,15人月完成了翔殷路隧道工程监控系统软件的开发,共计代码行数65万行,复用代码行数约为60万行,代码复用率高达92.3%,共节省了131人月,是项目总投入的8.7倍。
东海大桥智能交通系统开发中也复用了这些成熟的构件,为洋山深水港建设作出了贡献。
5.2.2 上海社区政务管理
“社区政务管理开发系统”是上海新致软件有限公司研发的一个面向电子政务领域的管理系统。新致公司在构件化服务中心的协助下,采用构件化的技术和方法,总结了上海市19个区40多个街道社区信息化试点工作的成功经验,并遵循了国家电子政务的相关标准以及相关条线的业务标准开发,整个开发平台涵盖了从通用的基本构件到领域共性构件计划共计350个构件。
通过社区政务管理系统和社区信息服务平台的建设,精简、优化了街道40%的业务流程,精简了20%的人员编制,促进了各部门信息资源在街道层面的互通和共享,提高了街道的工作效率和为民服务能力,全面推进了上海信息化社区政务管理。
5.2.3 上海生命科学与生物技术发展
2006年,上海生物信息技术研究中心承担了上海生命科学与生物技术数据中心的建设工程。按计划要求,需完成上海生命科学与生物技术数据中心体系架构设计和开发,建设血吸虫、SNPS主题数据库。要快速完成数据中心的主要框架,并兼顾平台将来的发展,是一个很大的挑战。
构件化服务中心为生物中心提供了大量软件开发工具,并成立了技术服务小组,以提供现场服务。同时对开发人员进行构件化技术培训与组织分工,建立了构件化开发流程,协助其进行领域分析,建立系统架构,共拆分出50多个构件。在一个月不到的时间内,生物中心完成了一个可运行的数据中心的原型,并得到了领导的高度肯定,为上海生命科学与生物技术发展作出了贡献。
5.2.4 上海文化市场执法指挥监管
上海市文化市场执法指挥监管系统是上海市信息委软件专项资金项目,由上海金鑫计算机系统工程公司于2006年年底开始建设。该系统建设时间进度紧、功能需求复杂。
软件构件化服务中心对该系统开展了构件推荐与架构验证服务。首先在协助系统架构设计和构件拆分的基础上,针对工作流引擎、全文检索引擎、数据挖掘等构件需求,推荐并提供了6个构件。其次,该系统在试运行时,出现了不稳定、响应时间长等缺陷难以定位的棘手问题。服务中心依托构件化中试集成环境,提供了架构验证服务,对于已开发的系统,在中试环境中的SOA平台上进行部署优化,提出了系统存在的问题和改进建议,从而加强了上海市文化市场执法指挥监管系统的可靠性、可维护性和伸缩性,为上海市文化市场执法指挥监管系统提供了质量保证。
5.2.5 上海申通地铁信息化建设
上海轨道交通网络在前期的信息化建设过程中,未能从整体上进行总体的研究和规划,面临着一些制约其进一步发展的问题,主要表现在:信息系统缺少统一性规划,造成系统管理、安全方面的隐患;信息共享程度低;信息化建设缺乏统一的标准;与行业外部相关系统的接口不完善。
为解决以上问题,软件构件化服务中心开展企业信息化规划方法及关键共性技术研究,结合构件化思想,提出了一套轨道交通网络信息化建设的总体规划,作为整个轨道交通信息化发展的指导框架和建设依据。一方面,开展了信息化总体框架规划、应用架构、信息资源架构等方面的研究,有效地从方法论上解决其在管理需求、发展战略、运行手段等方面的矛盾;另一方面,通过该服务项目,为轨道交通网络搭建了完整的企业信息化架构,提出了一系列解决方案,包括系统建设技术方案、适应性改造方案和信息系统实施改造路线图,指明了信息系统的建设及改造方法、策略和实施路线。
该项目为申通集团信息化的建设指明了方向,同时提升了企业信息化对内及对外服务的水平、为企业节约了可观的信息化建设成本,产生了巨大的社会效益和经济效益。
5.3 建立了公共服务平台,集聚了一批资源,形成了一批自主产品,提升了企 业的创新能力,促进了专业化分工
建立上海软件构件化技术服务平台,并在此基础上建立集软件设计、研发、测试与质量保证、运维服务等于一体的涵盖软件生命周期服务的上海软件公共技术服务平台,服务平台资源库中资源超过18000个。上海软件公共技术服务平台2008年上线运行,至今共为2250家企业提供服务7976次,服务对象涉及上海、北京、长三角、珠三角等近30个省市和地区。
服务平台的可复用软件资源下载次数达84500多次,软件技术资源浏览次数达52600多次。依托服务平台为中介代理销售构件2120个,销售额615万元;为软件企业发布构件966个;为企业提供构件咨询及推荐服务100多次。
通过公共服务平台为企业提供的服务,帮助企业形成了一批自主产品,提升了企业的创新能力,促进了专业化分工。
6 今后展望
上海软件构件化今后的发展思路是通过建立上海企业创新平台(见图2),针对创新主体——软件企业,提供创新服务;针对创新服务机构,提供成果相关服务;针对成果应用机构,提供成果转化服务,从而提升上海软件企业的竞争力。
图2 上海企业创新平台
6.1 创新资源
创新资源是为企业提供创新服务的基础资源库,包括:
(1)可信软件资源——建立具有自主知识产权的可信软件资源库,作为国家级软件资源库的基础,具体包括构件/产品/工具、标准、领域知识解决方案、可信证据。
(2)联盟会员——集聚优势专业机构,建立创新服务联盟,包括软件领域内研发、检测、用户、中介、认证、咨询、科技文献/标准/专利、投融资等专业机构。
(3)政策法规——软件及服务业相关的政策法规。
6.2 创新服务
针对创新主体——软件企业,提供创新服务。
6.2.1 SaaS服务
提供创新的软件应用模式——SaaS服务,积极探索软件服务模式创新。开展在线研发外包,即围绕软件企业研发外包需求,建立在线研发外包协作平台,提升企业研发水平,促进软件开发资源的集聚和专业化分工。
6.2.2 基于云计算的可信研发平台
基于云计算模式,以及生产线设施中的软件资源库、各类生产和管理工具,形成一个对软件生产者透明、可按需在线使用、网络化协同开发的有机“云”平台,并提供软件可信生产的自动处理,保障通过该平台生产出的软件是可信的。
6.2.3 创新集群服务
联合产学研,集聚优势专业机构,建立创新服务联盟,形成基于平台的服务协作机制,营造软件专业服务链,提供创新集群服务。
6.3 成果服务
针对创新服务机构,提供成果发布及应用相关服务。
6.3.1 资源可信评估
建立软件及服务资源的可信性评估体系,对企业软件技术创新成果进行可信评估。
6.3.2 资源发布发现
基于平台,发布和推广企业自主研发的创新成果,并共享企业需要的创新资源。
6.3.3 技术标准服务
通过跟踪国外技术标准,联合产学研各方面研究和制定技术标准,为产业技术服务的规范化提供标准咨询和宣贯服务。
6.3.4 知识产权服务
提供双软认定、著作权与专利登记等服务,帮助企业保护自主知识产权。
6.4 转化服务
针对成果应用机构,提供成果转化服务。
6.4.1 支付平台
建立支付平台,为软件资源交易提供支付服务,促进成果转化。
6.4.2 认证与培训
联合产学研,按照标准规范,对企业自主研发的软件产品提供认定服务(软件产品构件化认定),授予相关证书,并开展专业技术培训。
6.4.3 产业政策服务
提供政策法规、政府项目、创新创业优惠等信息服务,即主要针对创新服务机构和成果应用机构,提供信息化咨询服务。
6.4.4 规划设计
面向企业信息化建设需求提供规划设计与咨询服务,从业务架构、应用架构、数据架构、技术架构、已有系统适应性改造、IT治理等方面,为用户提出系统性的解决方案。
6.4.5 应用解决方案服务
跟踪研究软件、信息系统相关标准和技术新进展,基于可信软件资源库,提供应用解决方案咨询服务。
6.4.6 产品选型
根据客户需求,对相关软件进行评估,推荐最合适用户需求的软件产品或应用解决方案,形成软件产品选型报告。