电子商务系统设计
电子商务系统是互联网时代计算机系统的主流应用,是集成了数据管理、事务处理、业务流程重组、系统安全管理等技术的复杂系统。很多企业管理者和信息系统技术负责人在被电子商务系统的广阔前景所吸引的同时,亦为不知如何开展电子商务系统的建设而烦恼。系统集成商参与项目开发的困难更多:用户需求不准确、经常变化,开发人员与业务人员沟通困难、误差极大。最后上网工程变成了网页设计大赛,花费了大量人力物力建造的网站并没有为企业带来预期中的收益,反而变成了一个摆设,甚至因为要不断投入维护费用而成了企业的负担。 本文着重讨论电子商务系统工程中系统需求分析和系统概要设计的基本方法,向项目经理和技术负责人介绍如何组织电子商务项目的开展。事实上电子商务系统一方面是一个相当复杂的工程,需要科学的系统规划和项目管理,另一方面电子商务系统也只不过是一种应用计算机的系统工程,虽然涉及的技术内容和业务因素较多,但只要遵循合理的系统工程实施方法进行,仍然可以顺利地完成电子商务系统的建设。 电子商务技术可能目前世界上最令人眼花暸乱的技术领域,新名词、新技术、新术语每天都在出现,如何建设电子商务系统,似乎有无数种可能,令人无所适从,不知如何作出正确的决策。技术本身并不能为企业带来效益,只有合理应用技术建造的系统才能帮助企业解决业务运作中的问题,帮助企业发展业务,所以设计电子商务系统时必须坚持一个原则:企业的需求是目的,任何技术都只是实现需求的手段,建设电子商务系统不是为了应用某项新技术,而是为了解决企业的实际问题。只有坚持这个原则才能避免常见的失误:采用了很多不成熟或者复杂的技术,工程费用超标,项目进度无法保证,应用效果未如理想等等。电子商务系统的目标可以用以下几个问题来总结。 应用环境:系统将为哪些用户服务?他们使用什么平台,如何访问企业的电子商务系统? 系统功能:系统为用户提供了什么服务?哪些是已经有的,哪些要修改,哪些要重新开发? 数据资源:为了实现这些服务功能,系统将使用哪些数据?数据量多大,如何存储? 安全管理:系统的安全性如何保证?系统管理如何实施?其中系统功能是范围最广泛的问题,从最早的信息发布到现在很流行的B2C,B2B,ASP等都是系统功能的一种,按实现这些功能的技术核心可以分为三类: 1 信息共享与数据交换
数据存储与数据通讯技术是实现这类功能的核心技术,这类系统帮助用户通过电子邮件、搜索引擎、数据发布技术等高效地获得信息,提高数据交换的速度与信息共享的效率。 信息共享型的电子商务系统可以降低企业内部由于信息沟通不灵而带来的损耗,减少日常工作的文书往来,提高工作效率,更有效地管理企业内的信息使用情况。 2 电子商务交易
以电子化的方式实现商务交易过程中的每一个步骤,能适应业务的快速发展而变化是实现这类系统的关键,电子商务交易系统是目前最具挑战性的领域,技术核心是应用系统开发能力与事务处理技术,其中也包括与金融系统接口进行网上支持的SET及相关技术,目前的B2C,B2B即属于这一类系统。 电子商务交易系统是现代企业在互联网时代扩展新市场的重要手段,设计良好的交易系统能使企业一天24小时不停地运转,为客户提供优良的服务。如果能将企业核心业务系统与互联网系统有机地集成起来,就能大大地扩展企业的运作范围,降低经营成本和销售成本。 3 互联网服务器上的应用服务
扩展互联网服务器的服务能力,定制满足客户需求的应用服务,其内容可能包含了所有电子商务系统的功能,JAVA技术与事务处理技术是这类系统的技术核心。这类系统通常指企业级的门户网站或ASP,由于其极高的处理负载,还需要提供额外的集群技术、性能管理等复杂的技术支持。 这类系统或者是把原有的企业核心业务系统与互联网服务器集成起来,或者是在互联网服务器上开发功能完善的应用服务系统。访问这类互联网服务器的客户能得到自动更新的最新数据,获得定制化的自助服务。访问这类系统的客户数极多,因此要求具有较好的可扩展能力,性能不会受客户连接数变化的影响,一直保持良好的状态,所以要采用连接管理技术、事务管理与资源协调等复杂的技术。 本文分三大部分,分别介绍系统需求分析与系统设计的组织方法,以及开展功能检验与性能测试的过程,着重介绍基本原则,并不泛及特定相关技术的细节。至于系统实施阶段所采用的技术与方法,由于电子商务系统的复杂性、新技术层出不穷,实在不是用一篇文章甚至一两本书所能涵盖的。 系统需求分析 系统需求分析是为了系统开发人员准确地理解业务部门的目标,制定合适的实施方案,系统需求对系统实施的重要性不但应该反复强调,还应该避免收集系统需求过程中常见的几个误区: 1 系统需求分析不是一次性的工作,而是一个反复递进的过程,随着电子商务应用系统的推广,业务部门会提出新的需求,或者改变原来的业务需求。这是允许的,而且是正常的,技术部门不能拒绝业务部门提出的新需求,而应积极配合,对原有的实施方案作相应的改变。
2 系统需求的根源是业务部门运作的需求,而不是技术部门为了实现某种先进技术而提出的需求。系统方案不能因为出现了某项新技术而作改变,毕竟,使用新技术只是手段,支持企业的商业运作才是最终目的。
3 系统需求不仅限于业务需求,还包括了客观条件的各种限制,如项目进度的要求、与已有系统兼容的要求(如企业的所有核心数据都已经存储在Sybase数据库中、或者企业的旧系统留下几千台终端必须加以利用)或其他政策法规的限制(如商业系统中使用的密码系统必须经过政府有关部门的认证)。制定应用系统的实施方案时应把这些因素考虑在内。
收集系统需求的主要途径是系统分析人员与最终用户通过交谈发掘搣真正攠的系统需求,获得用户的认同,在业务部门的帮助下准确地认识业务环境(这一点是大多数技术人员最缺乏的),收集足够完整的信息,完成一系列文档作为确认本阶段工作的检查标记,并作为进行下一步工作的基础。
哪么什么才是搣真正攠准确的系统需求,当一个客户向系统分析人员提出要求:搣我们要建立一个网上商城,让我们公司的客户可以在网上直接下订单攠,这是一个绝对真实的要求,但并不一定是一个准确的系统需求,或者说这并不一定是最适合该企业实际需求的目标。因为客户在提出要求时,一般已经对电子商务有了一些先入为主的认识,认为电子商务就是这样的,或者只能是这样的,又或者同行和竞争者已经这样做了,所以我们也要这样做。实际上他们所真正需要的,可能比这个要求多,可能比这个要求少,甚至完全是另一个系统。这时系统分析人员就要耐心地发掘客户的实际需求,通常是提出这样的问题:
您希望这套电子商务应用建立起来后,能为您的企业达到以下这些目标中的哪些呢?哪些目标是您最希望达到的,您认为您的企业目前在这些方面存在什么主要问题,您希望电子商务系统能在多大程度上解决这些问题呢?
增加客户数量 降低企业运营成本或提高营业额
提升公司的总体形象
加快产品推向市场的速度
使企业比同行更具竞争力
缩短新产品的开发周期
改善库存管理和采购流程管理的效率
改善企业与代理商之间的合作关系
提高客户满意度和客户服务的质量
提高本企业员工的合作沟通效率
帮助企业拓展新的市场这样的谈话最好是在系统分析人员和企业的业务负责人之间进行,而不和企业的电脑部门技术负责人,只有这样才能发掘出系统真正的需求。系统分析人员通常会从企业负责人那里得到一些与电子商务技术完全无关的情况,例如搣客户抱怨我们的交货期不准时攠、搣我们的企业太大了,各部门间的合作沟通很成问题,总是左手不知道右手在做什么攠等。这样的交谈能帮助系统分析人员准确地为电子商务系统定位,规定其功能边界。
企业的负责人通常会更多地着眼于总体的业务规划,负责需求分析的系统分析人员和项目经理应利用这个机会,向企业管理人员详细地解释几类电子商务系统的功能和应用,启发他们更深入地发掘企业的需求,以实践经验和成功案例向他们说明企业电子商务系统的预期目标,帮助他们树立正确的期望值。多数企业都是第一次实施电子商务系统,且由于媒体的大肆宣扬等外界因素的影响,可能对系统的预期效果产生不切实际的期望,系统分析人员在需求分析阶段就要准确地掌握和调整客户的心理期望。客户的期望值也是系统需求的一个重要因素,直接影响系统完成后的实施效果。
客户的态度和技术水平是影响系统设计者作出方案的重要因素,也是系统需求的一部分,系统需求分析阶段要和客户一起作出充分的交流和评估。客户的态度指企业决策者对新技术的接受程度以及愿意承受风险的程度,电子商务领域的新技术层出不穷,成熟技术的功能比不上新技术,但风险却较低,企业决策者在这方面的态度影响系统设计者设计方案时的技术选择,如果企业决策者选择较先进的新技术,系统分析人员有责任提醒他采用新技术可能面临的风险:失败的可能性较高,项目进度和开发成本可能超出预期。切勿投客户所好,隐瞒新技术背后的不利因素。企业决策者在选择系统集成商时也应小心,集成商的技术水平不是由掌握新技术的程度所决定,而是由他们运用技术解决实际问题的水平所反映。
中国的大多数大型企业都有专门的计算机部门,电子商务系统建成后维护管理甚至二次开发的工作都将由他们负责,方案设计时也应把客户方技术人员的知识基础和专业训练程度考虑在内。系统需求分析阶段最好对客户方技术人员作一次全面的评估,考察他们对与电子商务系统相关的技术领域的掌握程度,评估的内容有:互联网服务器,对象技术,JAVA,应用开发工具,数据库技术,事务处理技术,安全技术以及对工业标准的认识程度。
系统分析人员要把这些分散的需求汇总成系统的目标,制成初步系统概要需求书,准确而完整地描述企业的总体需求,再次强调系统的预期目标,并获得企业负责人的认同,再在此基础上作系统的初步设计。
系统需求分析的工作并未就此结束,反而才刚刚开始。项目经理应作一些准备工作,召集第一次项目会议,会议的参加者包括客户方的业务和技术负责人,以及项目建造方的项目经理,会议的主要目的是进一步确认和细化系统概要需求书中列出的需求,确定系统建造的方向。这些会议应原则上达成下列这些目标: 1.详细讨论当前环境的情况和系统需求。2.检讨目前正在使用的应用系统,明确列出需要解决的问题。3.在适当的时候交换各自对电子商务系统所持的思路与观点,创造较易达成共识的认知基础。4.确定系统的主要目标,当系统需求的范围比较广泛,系统目标也可分为短期目标和远期目标。5.列出为保证系统顺利而要解决的主要问题,划出最突出、最紧迫的问题,争取客户方的合作,在系统开始实施前即加以解决。6.向客户解释实施系统过程中使用的核心技术和方案的总体思路。7.基于会上达成的共识,制定各人的行动计划表。这样的一个会议不可能在一两个小时内完成,可能需要几天的时间,甚至在不同的场合下以不同的形式组织,如方案展示会、讨论会、现场参观等。在条件许可的情况下,组织项目会议成员参观一些类似的电子商务系统,作为背景参考资料,引导项目会议成员参考成功的电子商务系统的实施经验,对会议的成功有很大帮助。IBM在全世界各地帮助实施电子商务系统的经验表明,这样的项目会议对项目的成功有极其重要的意义。项目会议上技术人员与业务人员面对面地交流,节省了大量时间,技术人员能更好地理解业务人员的需求,作出切合实际的方案设计,业务人员也能更好地了解技术手段的限制,双方的沟通还可以促进企业的业务流程向更合理、更适合计算机管理的方向改进。
实际运作中,参与项目会议的管理人员的时间相当宝贵,把所有人集中起来的机会不多,项目会议的召集人不能简单地约定一个时间就召开会议,应该在召开会议前作认真的准备。准备工作主要有以下这些:1.确定客户方的与会者名单,和每个与会者单独交谈,说明会议的目的,听取他们的意见收集更细致的需求。客户方与会者人数以四至六人为宜,太多了沟通效率就会下降。2.确定开发方的与会者名单,开发方的与会者人数以四人左右为宜,主要是项目负责人、系统设计员、开发经理和技术负责人,确定会议上讨论的题目,为每个题目指定责任人向客户说明。双方与会总人数不宜超过十二人。3.准备需求分析文档作为讨论的基础,这些文档主要的内容是:
目标系统概述:目标系统的主要功能描述和运作方式。
* 系统结构:当前系统的逻辑及物理结构,正在运行的软件及其配置图。
* 数据库结构:描述企业核心数据的结构,确定哪些数据将开放到互联网服务器上,互联网用户访问数据的方式与范围。
* 网络环境:当前系统的网络拓扑结构图,目标系统的网络结构图,以及网络上采用的工业标准如通讯协议、命名规则等。
* 安全性要求: 企业系统当前使用的安全管理方式,以及为适应电子商务系统的运行应作出哪些安全管理方面的改进。
* 性能要求:系统性能受很多因素的影响,性能要求分析把事务流程分解,针对每一环节讨论性能要求,充分讨论制约性能的不利因素,以及保证性能要求的技术手段。
系统组织结构图:企业的人事组织结构和业务流程图,列出为了保证电子商务系统顺利运行而配置的组织结构,及每个岗位的技术素质要求。4.会议召开前公布会议的主题,以及与会者名单,附上每个人的背景材料如职位、在项目中的角色等。总之,会议前订立明确的主题和充分的准备(包括文档准备和会前的单独沟通)是会议成功的基础,作为会议召集人,要在会上以自已的技术基础与行业知识作出方向性的指导,控制时间,及时制止会上一些不能在短期内得出结论的讨论。会议的重点应放在分析系统的现状与需求,避免过早地引入特定的技术手段,以免提前给方案的设计设下局限。系统现状的分析除了总结与回顾在第一阶段所作的系统需求的结果,还可以具体地对现有环境作技术性的分析。
系统环境的技术性分析主要有以下内容:
* 网络环境的分析:网络拓扑结构分析,当前系统的网络结构,网络上的服务器配置等。网络流量需求分析,分析当前网络带宽是否能满足新系统的要求。网络系统的安全体系及安全管理策略,电子商务系统是比传统的企业网更开放的系统,安全性要求更严格。
* 应用环境的分析:当前系统的软件配置及版本,应用程序的运行模式(运行平台、是否需要实时访问和联机事务处理等)。数据库结构,应用系统的核心数据模式。用户熟悉的应用开发方式和熟练掌握的开发工具,用户的经验可能是宝贵的资源,能加快系统开发的进度和保证系统使用的效果,因为无需重新培训而节省成本、降低风险;也可能是采用新技术的重大阻碍,由于习惯性心理而抗拒新的开发工具和应用运行方式,即使投入大量资源重新培训,仍然要冒很大风险,系统维护人员可能由于不熟练而发生人为失误,造成运行故障。这种情况在中国企业中尤其普遍,系统设计人员要以非常谨慎的态度来对待。
* 客户运行环境的分析:电子商务系统的客户是互联网上使用浏览器或其他设备的客户,不同于传统的企业内部网中所有客户运行环境都是预定定制的固定环境,系统需求列出电子商务系统支持的客户环境要求,如浏览器类型,是否要支持JAVA,是否支持上网手机等。
* 其他特殊需求,如客户的系统一定要采用Linux平台,或者有特殊的多国语言字符支持问题等。
经过详细的分析后,项目会议最可能的结果就是听到一大堆意见和要求。一个可控制进度与预算的项目不可能达成不受控制地产生的要求,分出轻重缓急才能简单直接地解决问题。项目负责人先取得与会者的认同,目标太多不能在一个项目内完成,请大家先选出要在当前项目内完成的目标,然后评估这些目标的重要性。如果意见不能统一,被列为很重要的目标仍然很多,就要重新筛选这些目标。对于最后列出的目标,再次征求大家的意见,确认这些目标已经包含了目标系统的基本功能,没有重大的错误和遗漏。系统设计者对被列为很重要的目标和要求应特别重视,它们是影响系统方案的主要因素。第一次项目会议的成果是详细而明确的系统需求,系统设计人员根据系统需求和目标进行详细的方案设计。