1.2.2 网上书店
实验室科研项目管理系统是一个局域网环境的网络信息系统,只限于专用网络上授权获得运行程序的计算机用户使用,对于更大范围内的信息共享需求,局域网就无法满足了。随着互联网(Internet)成为全球化的国际网络,全球范围共享信息成为可能,网上书店就是一个立足于Internet网络,以书籍为商品的专业性购书网站。网上书店对图书进行信息化管理,为Internet网络上的所有用户提供一种高质量,比传统书店更快捷、更方便的购书方式。网上书店不仅可用于图书的在线销售,也可用于音碟、影碟的在线销售,而且提供图书在线查询、书籍类商品管理、购物车、订单管理、会员管理、在线支付等功能。网上书店的图书信息存储在网站所在地的数据库中,世界各地的用户可以通过Internet网络在自己的计算机上访问该网站,浏览、查询相关图书信息,填写购买信息、在线支付,通过其他(书店之外)的渠道获得商品。网上书店的运行环境如图1-5所示。
这个例子是一个典型的基于Internet网络的Web信息系统,系统采用浏览器/服务器体系架构。图书的信息存储在远程某地(网站服务器),用户(客户)借助Internet网络使用该网站提供的服务,下面将粗略分析每个功能及实现技术。
①访问网站:实际就是运行网上书店的应用程序。用户在世界的任何地方,只要用安装有Web浏览器并可以连接到Internet上的任意一台计算机访问书店的统一资源定位符(URL,Uniform Resource Locator)地址,即可运行该网站程序,进入网站主页。这么容易?运行程序在哪里?在服务器中,用户不用在本地机保存它。不用考虑计算机的操作系统吗?你上网的时候考虑过这一点吗?
②图书在线查询:在网站的主页上即可浏览书店网站的图书信息;服务器可以接收用户的查询条件,在网站的数据库或XML文件、Web网页中查找匹配的图书信息,返回给用户显示或者将其他地方的链接地址返回给用户。
③会员管理:网上书店的浏览和查询功能对所有的用户开放,但是为了交易安全,书店只允许会员购买图书。会员管理主要包括注册管理和身份确认管理,另外会有一些价格优惠等政策。注册管理中,书店保证用户在本书店有一个唯一标识,这个标识可以由用户自己输入,由书店在数据库中检索保证其唯一性,或者由书店管理的标识产生机制来分配;身份确认管理,为每个用户提供一种验证身份的方法,目前大多数采用用户输入密码的方式。那么,密码传输的过程安全吗?在上网时,在确认某种身份时经常显示一个歪歪扭扭的图像让用户输入其中的数字或字符(图1-6),这种输入验证码的方法正是利用图片传输防止传输过程的数据(密码)被人窃取的安全保护措施。
图1-5 网上书店运行环境
图1-6 验证码方法
④购物车:用户可以利用购物车功能,在一个网站连续购买多本图书。读者可能很奇怪,这个功能有什么特别的?买多本书很特别吗?在普通书店买多本书和买一本书的区别就是多拿几本而已,为什么网站都在强调专门的所谓购物车功能?这个原因说来话长,但可以想象,这是一个原本比较难解决的问题,因为Web程序需要通过超文本传输协议(HTTP,Hyper Text Transfer Protocol)进行通信,需要访问数据库记录或读取相应数据,而数据库连接方式和Internet应用层传输协议HTTP的连接方式完全不同,前者是有状态连接,后者是请求-响应式的无状态连接,这就造成程序无法判断两次连接是否为同一人,使购买多本图书变成多次购买一本图书。虽然费了一些周章,但是显然用购物车的功能解决了这个问题,至于解决的细节,本书会在后面的网络协议和网络编程开发章节进行详细论述。
⑤订单管理:网站能够接收并记录用户购买产品、付费、送货等信息,网站按照这些信息完成图书交易的后续工作。
⑥在线支付:一般网上书店都有三种类型的支付方式,即货到付款类支付、汇款类支付、在线支付。前两类付款方式属于离线支付方式,我们只侧重讨论在线支付方式。现在的网上支付从早期的唯一一种在线支付方式发展为多种方式,包括支付宝、微信、网银、信用卡,等等。
早期的在线支付是指卖方与买方通过Internet上的交易网站进行交易时,银行为其提供网上资金结算服务的一种业务。在线支付实际是一种网上支付,以电子信息传递的形式来实现资金的流通和支付。它以金融电子化网络为基础,以商用电子化工具和各类交易卡为媒介,采用现代计算机技术和通信技术作为手段,通过计算机网络系统,特别是Internet进行传输。网上支付系统的构成主要包括两部分,一是网上支付主体,涉及网上商家、持卡人、银行和第三方认证机构;二是网上支付技术,如基于Internet的TCP/IP(Transmission Control Protocol/Internet Protocol)协议标准、万维网(WWW,World Wide Web)技术规范和以安全网络数据交换为宗旨的电子数据交换协议SSL和SET。在线支付系统的基本构成如图1-7所示。
图1-7 在线支付系统的基本构成
现在的支付宝、微信等支付方式,引入第三方平台(图1-8),改变担保方式,规避卖家和买家的风险,获得了巨大成功,但是本书限于技术讨论,对此不再赘述。
图1-8 引入第三方支付示意图
网上书店是Internet上的Web应用系统,它运行的网络环境不同于实验室科研项目管理系统的运行环境,因此它的信息的组织、存储,程序的开发、运行方法都与实验室科研项目管理系统不同,主要区别在于以下几点。
①运行的网络环境不同。局域网环境下,网络节点间通信遵循TCP/IP协议;Internet环境下,底层网络协议采用TCP/IP协议,应用层采用HTTP协议。
②信息形式,信息的组织、存储方式不同。首先,信息的形式不同,科研信息都是文本信息,书店信息中含有大量的音频、视频信息,我们称为多媒体数据,多媒体数据在存储、检索、传输和使用时都更复杂。其次,信息的组织和存储方式不同,一般的应用程序,采用数据库管理系统管理数据,信息组织成关系模型的结构化数据,存储在关系数据库中;Internet环境下的Web应用程序,数据除了采用关系数据库之外,为了适合HTTP协议传输,还有相当一部分的数据采用半结构化形式,用XML语言或网页描述,以文件的形式存储在网站的服务器中。
③应用软件的开发工具不同。一般的应用程序,采用C、Java等语言开发;Web应用程序采用支持网页运行的专门的开发语言,静态网页使用超文本标记语言(HTML,Hyper Text Markup Language)和客户端脚本语言,动态网页使用JSP(Java Server Pages)、ASP(Active Server Pages)、PHP(Hypertext Preprocessor)语言,等等。不管哪类语言,开发环境都与操作系统相关。
④运行程序形式、客户端显示原理不同。一般的应用程序,必须存储在运行的机器上,运行程序以编译后的代码形式存在,程序可以访问本地机器;Web应用程序,必须存储在服务器端,客户端没有运行程序,只有客户端使用浏览器访问时才从服务器传送到浏览器,在浏览器中边解释边执行,Web应用程序被严禁访问本地机器。普通应用程序的屏幕输出是操作系统管理完成的,由程序调用操作系统的系统调用,直接送到屏幕终端显示;而Web应用程序的屏幕输出是浏览器完成的,浏览器遵循HTTP协议,由HTML语言表达输出,与操作系统无关。图1-9所示是同一个网站在操作系统不同的机器上运行的界面,(a)为界面运行在Linux操作系统上,(b)为界面运行在Windows 7操作系统上。
图1-9 网上书店运行在不同操作系统上