1、1,电子商务系统设计与实现,毛郁欣 浙江工商大学计算机与信息工程学院,2,课程的主要内容,第1章 概论 第2章 电子商务系统分析与设计基础 第3章 电子商务系统开发基础 第4章 电子商务系统规划 第5章 电子商务系统分析 第6章 电子商务系统设计 第7章 电子商务应用系统设计 第8章 数据库实现 第9章 电子商务网站开发技术 第10章 电子商务系统的开发模式 第11章 电子商务系统的测试与维护,3,第7章 电子商务应用系统设计,7.1 电子商务应用系统的功能 7.2 电子商务应用系统的体系结构 7.3 电子商务网站的设计 7.4 数据库的设计 7.5 电子商务支付系统的设计 7.6 电子商务
2、安全系统的设计,4,7.1 电子商务应用系统的功能,从系统构成角度上看,一个电子商务系统往往包含以下几部分的功能: (1)商品动态展示和管理功能 (2)交易功能 (3)用户/商家管理功能 (4)在线反馈沟通功能 (5)汇总统计功能,5,7.2 电子商务应用系统的体系结构,体系结构是具有一定形式的结构化元素(即构件)的集合,包括处理构件、数据构件和连接构件。 电子商务应用系统的体系结构主要包括: 客户/服务器体系结构 三层体系结构 多层体系结构 MVC体系结构,6,7.2.1 客户/服务器体系结构,Client/Server,简称C/S结构 在客户/服务器体系结构中,处理被分散在两台机器上:客户
3、机和服务器。 客户机一般负责信息系统图形显示、数据录入和业务处理等,而服务器则提供对数据的存储和管理。 服务器通常专用于运行一个关系型数据库管理系统(简称RDMS),例如Oracle或SQL Server的服务器。 这种结构实现了分布式计算,降低了服务器端的负载,并有助于在企业内实现对业务数据的集中式管理。可以减少网络上交换的数据量,并提高系统的运行效率和网络的稳定性。,7,图 7.1 客户/服务器体系结构,7.2.1 客户/服务器体系结构,8,从80年代后期到90年代初,各个公司都积极地采用两层体系结构,可以快速地构建应用程序。然而不久,人们就发现了这种体系结构的缺点: 对客户端软、硬件的配
4、置要求较高,增加了整个系统的成本。对业务逻辑和表示逻辑的更新必须被部署到所有客户机,当客户机数量较大时,这项工作变的非常难以实施。随着系统的发展,客户机上将业务逻辑和表示逻辑混合在一起,设计越来越复杂,并且为升级维护带来难以想象的难度。,7.2.1 客户/服务器体系结构,9,客户/服务器体系结构是单一服务器且以局域网络为中心的,所以难以扩展到大型企业广域网或Internet。客户机不可能共享诸如数据库连接等稀有资源。因为它需要花费几秒的时间来建立数据库连接,于是两层体系结构的客户机一般会提前打开连接,并且在会话的持续时间内将一直保持该连接。所以一个允许20个并发连接的数据库只能为20个客户机应
5、用程序服务,即使其中许多应用程序闲置,闲置的客户机还是会占用服务器的连接。客户机直接连接数据库同时也为数据安全带来了很大的隐患。,7.2.1 客户/服务器体系结构,10,7.2.1 客户/服务器体系结构,11,12,7.2.2 三层体系结构,Browser/Server,简称B/S结构 B/S结构是三层或多层C/S结构的一种实现方式。其主要特点是:客户端一般是一个浏览器,业务逻辑部署在Web服务器上。这样客户机不再负责处理复杂计算和数据访问等功能,主要负责与用户的交互。系统的绝大多数处理功能都放在Web层上,所有的应用系统、业务逻辑和控制都在这一层上,对数据库的访问也放在这一层上。数据库服务器
6、负责存储大量的数据信息和数据逻辑,所有与数据有关的安全、完整性控制、数据的一致性、并发操作等都是在第三层完成。 三层体系结构并不是指一定要把三层部署在分别不同的计算机上,而是指在软件的层次结构上要把三层分开。,13,图 7.2 三层体系结构,7.2.2 三层体系结构,14,15,7.2.3 多层体系结构,随着应用的规模越来越大,功能越来越复杂,很有必要对软件系统再进行分层处理。这样就构成了多层体系结构。 例如某些大型集团有遍布全国的分公司,在开发大集中型的软件时,可能将应用通讯层分离出来,构成客户层-应用通讯层-应用服务器-数据库服务器的四层结构。 而在基于Web的软件中,目前已有很多大型软件
7、将中间层分为Web层和应用服务层,前者负责系统的表示逻辑,后者负责系统的业务逻辑。,16,多层体系结构的优点,因为客户端不包含业务逻辑,所以它们变得更加简洁。这就使部署和维护工作更加容易,因为更新业务逻辑只需要对应用服务器进行操作。假如业务逻辑层是最易发生变化的层次,那么这个优点将更加显著。 客户机与数据库相分离。应用服务器能够与几个不同的数据源协同工作,并且只对客户机提供单一的访问点。 多层编程促进了应用层的严格划分,并使各层间通过定义好的接口进行通信。从长远的观点看,这样为维护提供了更多的方便,因为不用改变层的接口就可以对它的实现进行更新。 多层应用程序能够水平伸缩。如果设计正确,业务逻辑
8、就能够被复制和分布到几个负载均衡的应用服务器上。如果用户需求增加,则可以添加更多的服务器以满足要求。 应用服务器能将稀有的企业资源(如数据库连接)放入缓冲池中,这样可以在多个客户机上共享它们。,17,多层体系结构的缺点,实现比较困难。 在关键点上设计不好将会削弱多层应用程序的作用,而且它的性能和伸缩性都不比它所取代的两层应用程序更有优势。,18,7.2.4 MVC体系结构,MVC是把一个应用的输入、处理、输出流程按照模型、视图、控制的方式进行分离,这样应用被分为三个层:模型层、视图层、控制层。 模型层(Model):负责表达和访问商业数据,执行业务逻辑和操作。 视图层(View):把表示模型数
9、据及逻辑关系和状态的信息及特定形式展示给用户。 控制层(Control):定义了抽象的业务逻辑,用于控制业务流程。 模型是应用对象,没有用户界面。视图表示它在屏幕上的显示,代表流向用户的数据。控制器定义用户界面对用户输入的响应方式,负责把用户的动作转成针对模型的操作。模型通过更新视图的数据来反映数据的变化。,19,图 7.3 GUI程序中的MVC,7.2.4 MVC体系结构,20,图 7.4 web应用中的MVC,7.2.4 MVC体系结构,21,MVC的实例,MVC是目前很常见的J2EE应用所基于的体系结构,MVC主要适用于交互式的WEB应用,尤其是存在大量页面、多次客户访问及数据显示。其实
10、MVC只是一种设计思想,而怎么实现MVC,则有很多途径,开发人员可以采用已有的框架(如Struts、WebWork等)来实现,也可以自己构建一个MVC框架。 本书所附光盘中的例子JPetStore采用Struts这一流行的MVC框架,视图采用JSP技术,而存储层采用了iBATIS这一O/R Mapping(Object-Relation Mapping,对象关系映射)技术 。,22,7.3 电子商务网站的设计,电子商务系统中,网站往往都具有重要作用,本节内容主要介绍电子商务网站的基本要求、网站的结构构成和网站的设计方法。,23,7.3.1 电子商务网站的基本要求,(1)界面友好,使用方便 (2
11、)访问速度快 (3)兼容性 (4)可扩充性 (5)较高的安全性 (6)提供稳定的724服务 (7)注重保护个人信息,24,7.3.2 电子商务网站的结构,网站的物理结构 文件应根据其功能、层次来存放,而不应将所有的文件都放在根目录下。 根据栏目规划来设计目录结构,目录的层次不宜太多。 目录名应使用简单易识别的英文字母,不要使用中文目录名。 数据库文件应单独放置,同时注意设置好访问权限。 不同目录的权限配置要合理,如:对于静态网页只要可读即可,如果是执行文件,还需执行的权限。将可执行文件与不可执行文件分开放置。 网站的逻辑链接结构 要符合浏览者的思维习惯和浏览习惯。 要使网站中最重要的信息有最多
12、的机会与浏览者见面。,25,7.3.3 电子商务网站的设计方法,(1)网站风格的选择和创意的使用 (2)网站总体形象设计 (3)网站栏目设置 (4)网页布局 (5)网页色彩的搭配技巧例:IBM公司的网站 ,26,27,28,7.4 数据库的设计,数据库设计是指对于一个给定的应用环境,从用户对数据的需求出发,研究并构造数据库结构,使之能够有效的存储数据,满足用户的各种应用需求的过程。,29,7.4.1 关系型数据库的基本概念,(1)关系型数据库 (2)主键 (3)关系 (4)视图 (5)存储过程 (6)E-R图,30,7.4.2 数据库设计的基本原则,(1)数据库设计的基本规则范式 构造数据库必
13、须遵循一定的规则,在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。,31,第一范式(1NF),第一范式要求数据表不能存在重复的记录,即每个表应存在一个关键字。第一范式的第二个要求是每个字段都不可再分,即已经分到最小。主关键字达到下面几个条件: 主关键字段在表中是唯一的; 主关键字段中没有复本; 主关键字段不能存在空值; 每条记录都必须有一个主关键字; 主关键字是关键字的最小子集。,32,第二范式(2NF),如果一个关系属于1NF,且所有的非主关键字段都完全地依赖于主关键字,则称之为第二范式,简记为2NF。,33,第三范式(3NF),定义:如果一个关系属于2NF,且每个非
14、关键字不传递依赖于主关键字,这种关系是3NF。从2NF中消除传递依赖,就是3NF。,34,(2)电子商务系统数据库设计的基本原则,真实性:正确反映数据与数据(信息与信息)之间的层次逻辑关系。 准确性:对进入到数据库中的数据有一个有效性检查。 完整性:对数据库中的数据进行非逻辑操作进行相应的错误处理。 实用性:满足应用功能需求、满足系统对性能上的要求。,35,7.4.3 基于UML 的数据库设计,对关系数据库来说,目前比较常用的设计方法是采用E-R图,但越来越多的人开始采用UML类图进行数据库设计。 相比较而言,UML类图的描述能力更强,不但可以对数据表建模,还可以对触发器和存储过程等建模。 在
15、基于UML的面向对象系统分析完成后,我们已经得到了类图,进而可以方便地采用类图进行数据库设计。 我们可以用类图来描述数据库,用类描述数据库表,用类的操作来描述触发器和存储过程。,36,7.4.4 数据模型与对象模型的关系及转换,一般来说,将对象模型中的类映射成表,将类的属性映射成表的一个字段,而对象之间的关系在数据库中是通过使用外键来实现的。 例:本书附带光盘中的JPetStore,37,数据模型与对象模型的关系及转换,(1)把类的属性映射成表的字段。 (2)把类映射成表 把整个类层次映射为单个数据库表,在表中保存所有类(父类、子类)的属性。 每个具体子类映射成单个数据库表,数据库表包括自身的
16、属性和继承的属性。 每个类均映射为数据库表,父类所对应的表只包含父类的属性,各子类对应的表只包含子类的属性,父类表中的主键同时作为子类对应表的主键和外键。 (3)关系的实现 一对一,一对多关系的映射 多对多关系的映射,38,类图到数据库的转换,1、类到表的转换 (1)转换原则在将UML模型中的类转换(映射)为关系数据库中的表时,类中属性可以映射为数据库表中的0个或多个属性列(并非类中所有属性都需要映射)。如果类中的某个属性本身又是一个对象,则应将其映射为表中的若干列。当然也可将类中若干个属性映射为表中的一个属性列。通常情况下,应当为数据库中的每个表都定义一个主键,而将所有的外键都设计为对主键的
17、引用。主键定义方法:一是将对象标识符映射为表的主键(在表中添加一个对象标识列,并定义为主键);二是将类的某属性映射为表的主键。,39,(2)转换方法(包括继承关系的处理) 方法一:将所有类都映射为表(类的属性映射为表的属性列)。此时,一般类和特殊类都映射为表,它们共享一个主键。,方法二:将有属性的类映射为表,40,方法三:特殊类映射的表中包含一般类的属性。只将特殊类映射为表,一般类并不映射为表。在特殊类映射而来的表中,属性列既有从特殊类属性映射而来的,也有从一般类继承的属性映射而来的。,方法四:一般类映射的表中包含特殊类的属性。只将一般类映射为表,特殊类并不映射为表。在一般类映射而来的表中,属
18、性列既有从一般类属性映射而来的,也有所有特殊类的属性。,41,2、关联关系的转换在UML中,聚合关系、组合关系被认为是特殊的关联关系。 (1)多对多关联关系的映射要映射多对多关联关系,通常使用关联表。关联表是独立的表,它可以维护若干个表之间的关联。通常情况下,将参与关联关系的表的键映射为关联表中的属性。一般将关联表所关联的两个表的名字的组合作为关联表的名字,或是将关联表所实现的关联的名字作为关联表的名字。,42,(2)一对多关联关系的映射在映射一对多关联关系时,有两种方法:一是将外键放置在“多”的一边,而将角色名作为外键属性名的一部分;二是将一对多关联映射为关联表。,方式一,方式二,43,(3
19、)一对一关联关系的映射在映射一对一关联关系时,则可将外键放置在任意一边。注意事项: -不能将多个类与相应的关联合并成一张数据库表,这样违背了关系数据库的第三范式()。,44,-实现一对一关联关系时不能将外键放在两个数据库表中。,45,铁路系统的类图,铁路系统数据库表,46,7.5 电子商务支付系统的设计,支付是电子商务活动中的重要一环。本节内容首先介绍支付系统的功能设计,然后介绍支付系统的数据流程、交易流程设计。,47,7.5.1 支付系统的功能设计,支付系统的功能设计主要涉及电子支付系统的三大部分,即客户端支付软件、支付服务器、支付网关。 客户端支付软件:用户进行支付时使用的界面。 支付服务
20、器:与业务服务相关联的应用程序,通过一组标准的与具体业务不相关的支付控制API接口,支付服务器实现对多种业务模块的支持。 支付网关:连接商家和银行专网的通信及交易桥梁。支付网关主要功能是负责保障通信、协议转换和数据加解密功能,及保护银行内部网络。,48,7.5.2 支付系统的交易流程设计,(1)电子商务支付系统的数据流程 用户终端选择相应的服务,将支付的请求发往应用服务器; 应用服务器根据服务请求中的银行标识信息,将授权请求发往相应的支付服务器; 支付服务器首先进行相应的支付信息、银行标识信息的校验,然后将请求发往相应的银行支付网关。 银行完成处理后,银行支付网关将处理结果反馈给支付服务器;
21、支付服务器将处理结果返回给应用服务器; 应用服务器将处理结果发往业务系统; 业务系统将根据用户服务请求信息提供相应的服务,并返回给应用服务器。 应用服务器将信息反馈给用户终端。,49,(2)基于SSL协议的交易流程设计,用户浏览商家网页,选购商品并洽谈合同; 订单确定后,用户点击商家网页上的支付链接,链接到网上银行的支付页面; 客户端激活SSL安全代理,弹出登录窗口,提示用户输入用户名、密码; 系统自动完成和支付网关间证书的相互认证并建立SSL安全加密通道。交易序列号、用户账号、密码等机密信息则通过安全通道传递; 如果登录成功,则进入网上支付服务网页; 用户填入信息后点击确认,系统将提示用户确
22、认信息并签名。如果确认,则该支付信息将被提交给支付网关处理。 支付网关将用户支付授权信息按预先约定组成合法的消息包发给银行。 如果交易金额在授权金额范围内,并且交易可以接受,银行系统将在处理后,把合同号、银行交易号、交易金额、交易时间、银行处理结果等信息通知商家; 商家的支付服务器随后将支付处理结果发送给用户; 如果交易金额超过授权金额,系统则通知用户支付失败。,50,(3)基于SET协议的交易流程设计,一个完整的SET交易包括持卡人注册申请证书、商家注册申请证书、购买请求、支付授权、支付请款五个步骤。,51,基于SET协议的网上支付的实现,SET协议(Secure Electronic Tr
23、ansaction)保证信息的安全。 保证交易的实时性保证交易参与者信息的相互隔离。商家不知道客户资料解决多方认证问题。消费者、商家和银行之间相互认证 安全协议涉及范围顾客(消费者、企业组织购买)商家(网上商店、网上直销站点)收单银行(通过支付网关处理交易双方的付款问题)发行企业(一般是银行,发行信用卡等电子货币),负责审核和支付工作。认证中心(CA,Certified Authentication),对厂商信誉、消费者的支付手段信誉进行认证。,52,SSL与SET的比较,53,7.6 电子商务安全系统的设计,电子商务发展的基础是网络,即Internet/Intranet,而且其交易的双方不再
24、是面对面的,而是被时空、距离所阻隔,网络的开放性和商务数据的敏感性保密性要求,使得电子商务的安全问题显得尤其重要。 本节内容首先介绍电子商务安全系统框架,然后介绍电子商务安全的需求分析,最后介绍电子商务安全方案的制定。,54,7.6.1 电子商务安全系统框架,(1)硬件设备的物理安全 (2)网络结构安全 (3)网络通信安全 (4)操作系统安全 (5)数据库安全 (6)应用安全 (7)用户认证管理 (8)安全管理 (9)安全策略,55,7.6.2 电子商务安全的需求分析,界定内部网络边界的安全性,如果内部局域网与公用网络相连,则为确保内部局域网边界的安全,需建立防火墙等安全设施。2007年春节前
25、夕爆发的熊猫烧香病毒就是通过互联网感染局域网的一种恶性病毒,局域网中一台电脑感染,往往会祸及局域网中所有其他电脑,会导致局域网的崩溃。 保证网络内部的安全,不仅要保证系统的安全,更要保证数据的安全。 建立全网统一、有效的身份识别系统,实现用户的统一管理,并在此基础上实行统一有效的授权管理,实现用户和资源之间的严格访问控制。 信息输入时要采用措施保证数据完整性和保密性。 需要有较全面的审计、记录的机制,能对网络中发生的与安全有关的事件进行记录,以便事后进行责任认定和进行纠错处理。,56,57,7.6.3 电子商务安全方案的制定,(1)安全方案的内容安全方案的内容主要分技术、组织机构、管理体系三个方面。 技术体系方面:技术体系是对电子商务系统全面提供安全保护的技术保障体系。 组织机构方面:企业应有和电子商务安全策略相配套的人员安排,包括人员配备、岗位设计、职责责任设计、业绩考核设计、技能及培训教育设计等。 管理体系方面:安全方案中还需制定配套的管理体系,从法律和规章制度方面来确定安全技术体系的执行,主要包括安全管理制度的制定、实施和监督。,58,(2)安全方案的制定,安全方案主要包括以下四个基本点: 基本防护 实时监控和审计 攻击响应 恢复,