本书处于 开放评论 状态。希望获得来自读者的更多反馈以完善内容。阅读时,如果遇到一些文字内容需要求助,可以采用如下方式与我互动: 先用鼠标选择文本 在释放鼠标左键时将会有 annotate 弹窗,点击弹窗上的 ,如果已经注册的话,可以直接留言评论,否则先注册再留言。 你也可以点击页面右上角的 符号,可以看到其他人的留言评论。

2.1 电子商务系统的硬软件构成

1.2.2 节回顾信息技术的应用历程时我们已指出:一个典型的电子商务系统由硬件和软件组成。自20世纪90年代以来,电子商务系统逐渐在各类组织中广为应用,迄今而言,大多数电子商务系统多采用分布式架构,如图 2.1 所示:

三层分布式系统的架构示意

图 2.1: 三层分布式系统的架构示意

上图可以看到,采用三层分布式架构的电子商务系统一般分为服务器端和客户端,客户端面向终端用户的使用,或者输入数据或信息,或者呈现系统输出的数据或信息,客户端地理上一般较为分散,用户可以通过手机、平板电脑、笔记本电脑、PC机等多种终端访问;服务器端主要根据用户的请求,处理并存储数据,服务器端地理上一般较为集中,通常位于服务器机房或数据中心。连接客户端和服务器端的桥梁是数据通信网络,终端用户可以通过局域网(Local area network, LAN)或广域网(Wide area network, WAN)访问服务器端的应用。

进一步而言,分布式电子商务系统由硬件和软件构成,硬件包括服务器、网络设备和存储设备;软件包括系统软件和应用软件,其中系统软件又可以细分为操作系统、数据库和中间件。典型的分布式电子商务系统硬软件构成如图 2.2 所示:

分布式电子商务系统的硬软件构成

图 2.2: 分布式电子商务系统的硬软件构成

2.1.1 电子商务系统的硬件

1. 网络设备

常用的网络设备包括交换机和路由器。交换机通过过滤、转发等机制互连一个局域网的不同网络节点。路由器利用一种或几种网络协议将本地或远程的一些独立的网络连接起来。

网络设备的选型要考虑带宽、安全性及扩充性三个因素。网络交换设备包括:网卡、集线器、交换机、路由器、硬件防火墙等。

2. 服务器

1)服务器的用途和常见分类

服务器(或称主机)是一种高性能计算机,是一种承载企业复杂业务应用的高性能计算机,它和PC机结构相似,也有CPU、内存、硬盘和总线等,但其技术先进性超过PC,他的处理能力、稳定性、可靠性、安全性、可扩展性和可管理性远超过PC。服务器和PC之间的区别打个比方来说,PC就是几乎什么病都能看的门诊医生,但是医术不是那么精湛;而服务器则是某个方面的专家,其处理能力是针对具体网络特制的,所以它的处理速度和系统可靠性都要比普通PC要高得多。服务器有以下几种具体分类:

(1)按网络规模划分:工作组级服务器、部门级服务器和企业级服务器

工作组服务器用于联网计算机在几十台左右或者对处理速度和系统可靠性要求不高的小型网络,其硬件配置相对比较低,但仍不能满足大型数据库系统应用。部门级服务器属于中高档服务器,用于联网计算机在百台左右、对处理速度和系统可靠性中等的中型网络,其硬件配置相对较高,其可靠性居于中等水平。企业级服务器其采用最起码4个以上的CPU对称处理结构,用于联网计算机在数百台以上、对处理速度和数据安全要求最高的大型网络,硬件配置最高,系统可靠性要求最高。

(2)按用途划分:通用型服务器和专用型服务器

通用型服务器是可以全面提供各种基本服务功能的服务器,并不是为某种特殊服务专门设计的,目前大多数服务器是通用型服务器。由于这类服务器适用性较强,在设计时需兼顾多方面的应用需求,所以这样服务器的构造相对复杂,且价格也较高。专用型(或称“功能型”)服务器是专门为某一种或某几种功能专门设计的服务器。常见的几种专用服务器有文件服务器、数据库服务器、应用服务器等。

(3)按芯片架构划分:基于CISC处理器的IA架构服务器( PC 服务器)和基于RISC处理器的UNIX服务器

(4)按服务器的机箱结构划分:塔式服务器、机架式服务器、机柜式服务器和刀片式服务器

塔式服务器也称为“台式服务器”,目前这类服务器在整个服务器市场中占有相当大的份额。塔式服务器配置高,主板扩展性较强,插槽也很多,而且其服务器的机箱内部往往会预留很多空间,以便进行硬盘,电源等的冗余扩展;性能能满足大部分中小企业用户的要求,目前的市场需求空间还是很大的。

机架式服务器的外形看起来不像计算机,而是类似交换机。高度以U为单位,其规格有1U(1U=1.75英寸=44.45毫米)、2U、4U、6U、8U等规格。通常1U的机架式服务器最节省空间,但性能和可扩展性较差,使用范围受限。4U以上的产品性能和扩展性都比较高,一般支持4个以上的大量的标准热插拔部件和高性能处理器。由于机架式服务器与塔式服务器相比,空间大大缩小,所以其在扩展性、散热性及应用范围上受到限制,且相同配置的服务器价格要比塔式服务器高。

机柜式服务器是在一些高档企业服务器中由于内部结构复杂,内部设备较多,有的还具有许多不同的设备单元或几个服务器都放在一个机柜中,因此称之为机柜式服务器。

刀片式服务器是一种高可用高密度(High Availability High Density,HAHD)的低成本服务器平台,是指在标准高度的机架式机箱内可插装多个卡式的服务器单元。其中每一块“刀片”实际上就是一块系统母板,类似于一个个独立的服务器。在这种模式下,每一个母板运行自己的系统,服务于指定的不同用户群,相互之间没有关联。不过可以使用系统软件将这些母板集合成一个服务器集群。在集群模式下,所有的母板可以连接起来提供高速的网络环境,可以共享资源,为相同的用户群服务。

常见的几类服务器如图 2.3 示意:

典型服务器示意

图 2.3: 典型服务器示意

3. 存储设备

存储是根据不同的应用环境通过采取合理、安全、有效的方式将数据保存到某些介质上以便能有效访问。当我们谈及存储时,一般包含两方面含义:一方面,它是数据临时或长期驻留的物理媒介;另一方面,它是保证数据完整安全存放的方式或行为。存储就是把这两个方面结合起来,向客户提供一套数据存放解决方案。

存储设备是用来存储各类数据的硬件设备。常用的存储策略有一级存储和二级存储。一级存储即支持核心在线业务应用需要高性能存储及生产数据的备份,选用磁盘;二级存储主要应用于数据检索和查询且备份数据量较小时,选光盘库较为合适,如果是应用于大量的数据备份选磁带库较为合适。常用的存储介质选择策略见图 2.4所示:

常用的存储介质选择策略

图 2.4: 常用的存储介质选择策略

常用的存储设备一般分为联机存储(online-storage)设备和脱机备份(offline-backup)设备。联机存储设备包括硬盘和磁盘阵列;脱机备份设备包括磁带机和磁带库。其中RAID是独立磁盘冗余阵列的缩写,磁盘阵列由阵列控制器、盘柜和磁盘构成。RAIDA盘阵列常用的划分方法为:RAID 0+1;RAID 10;RAID5等。

随着电子商务系统规模的日趋扩大,越来越多的企业都将电子商务系统的硬件(包括但不限于服务器、存储设备等)放置在数据中心(Data center)中(如图 2.5 示意)。

大型数据中心示意

图 2.5: 大型数据中心示意

2.1.2 电子商务系统的软件

1. 系统软件

常见的系统软件包括:操作系统(OS)、数据库(Database)和中间件(Middleware)。

操作系统(Operating System, OS)通常是最靠近硬件的一层系统软件,它把硬件裸机改造成为功能完善的一台虚拟机,使得计算机系统的使用和管理更加方便。同时,有了操作系统,用户就不用和计算机的硬件直接打交道,把所需的操作通过操作系统传达给计算机,然后由操作系统输出结果。

对于分布式系统而言,操作系统分服务器端和客户端,服务器端的操作系统有Linux或Windows server等,其中最常用的服务器端操作系统有CentOS和Ubuntu(两者都是Linux操作系统的不同发行版);客户端的常用操作系统有微软公司开发的Windows系列,苹果公司开发的MAC系列等。

数据库(Database,DB)是存放数据的地方,计算机中,数据库是数据和数据对象的集合。数据库管理系统(Database Management System,DBMS)是用于管理数据的计算机软件,是位于用户和操作系统之间的用于建立、使用和维护数据库的软件。

数据库系统(Database System)有狭义和广义之分。狭义地讲是由数据库、数据库管理系统和用户构成;广义地讲是由计算机硬件、操作系统、数据库管理系统以及在它支持下建立起来的数据库、应用程序、用户和维护人员组成的一个整体。常用的中小型数据库软件,如Access、MYSql等,大型数据库软件,如Oracle、MSSQLServer、Sybase、DB2等。

关系数据库管理系统(RDBMS) 出现于20世纪70年代,它将数据存储在具有行和列的表里面,使用结构化查询语言(SQL)进行查询和维护数据库。关系数据库基本上就是多个表的集合,每个表中都有一个模式(schema),模式严格定义了所存储数据的属性和类型,以及标识用于访问的特定行或列的键。RDBMS曾经由Oracle和IBM所统治,但现在,出现了许多开源的数据库系统,如MySQL、SQLite和PostgreSQL等等,也同样很受欢迎。

流行的关系数据库管理系统排名(截至2019年8月)

图 2.6: 流行的关系数据库管理系统排名(截至2019年8月)

由于一些特性非常受欢迎,关系数据库在商业领域中找到了一席之地,而数据完整性是关系数据库中最重要的特性之一。RDBMS须满足原子性、一致性、隔离性和持久性(ACID)的要求,它利用一些约束来确保所存储数据是可靠的、准确的,这就使它们成为监测和存储一些诸如帐号、订单和付款等数据信息的理想选择。

但是,这些约束也带来了高昂的代价。由于模式和数据类型的限制,RDBMS在存储非结构化或半结构化数据方面的表现非常糟糕。死板的模式也使得RDBMS在创建、维护和升级等方面的成本变得更高。建立RDBMS需要用户预先拥有特定的用例,对模式的任何更改通常都是非常困难和耗时的。另外,传统的RDBMS被设计用在一个单机上运行,这意味着它们在处理大量数据时的速度要慢得多。在保证ACID特性的同时,水平扩展RDBMS(分库分表)也是一项非常具有挑战性的任务。所有的这些属性使得传统关系型数据库管理系统无法处理现如今的大数据。

2000年以来,互联网业务快速的发展推动一些互联网公司开发了大量的非关系型(NoSQL)数据库,因为已有的 RDBMS 可能无法长时间地支撑一个成功的互联网公司。在当时没有任何已有解决方案的情况下,这些互联网公司创造了新的方法和工具来处理收集到的大量非结构化数据:谷歌发布了GFS、MapReduce和BigTable;亚马逊发布了DynamoDB;雅虎发布了Hadoop;Facebook发布了Cassandra和Hive;LinkedIn发布了Kafka。其中一些公司开放了他们的源代码,一些公司则发布了他们详细的研究设计论文,这也就促进了各种新数据库与新技术的激增,而NoSQL数据库成为了行业中的一个主要的参与者。

NoSQL数据库与模式无关,它提供了存储和操作大量非结构化和半结构化数据所需的灵活性。用户不需要知道在创建数据库的时候将存储哪些类型的数据,系统可以适应数据类型和模式的变化。NoSQL数据库可以跨节点分发数据,它通常具有更高的水平伸缩性和分区容错性。但是,这些性能优势同时也还伴随着成本的开销。NoSQL数据库不符合ACID特性,因而,数据一致性也无法得到保证。

相反,它们提供了“最终一致性”:当旧数据被覆盖时,它们将返回暂时有些出入的结果。例如,当人们同时搜索同一个词的时候,谷歌的搜索引擎索引不能更新这个词的相关数据,因此它在我们搜索时不会返回给我们最新的数据结果,但它会返回最合适的结果。虽然这个特性在绝对需要保证数据一致性的情况下(如金融交易)不太适合,但对于那些需要效率而不是精确度的任务的场景,它却非常的适合。

现在,NoSQL分为几个不同的类别,每个类别都有其特定的作用。

  • 键值存储,如Redis、DynamoDB和Cosmos DB,只用于存储键值对,并提供检索与已知键相关联的值的基本功能。当速度因素很重要的时候,它们在简单的数据库模式下执行的效率最高。

  • 宽列存储,如Cassandra、Scylla和HBase,将数据存储在列族或表中,并用来为大型分布式系统管理PB级的数据量。

  • 文档存储,如MongoDB和Couchbase,以XML或JSON格式存储数据,文档名称作为主键,文档内容作为值。文档可以包含许多不同的值类型,并且可以嵌套,使它们特别适用于管理分布式系统的半结构化数据。

  • 图形数据库,如Neo4J和Amazon Neptune等将数据表示为相关联节点或对象的网络,以便于数据的可视化和图形化分析。图形数据库对于分析异构数据点之间的关系特别的有用,例如防欺诈或Facebook的好友关系图。

MongoDB是目前最流行的NoSQL数据库,它为一些一直在使用传统RDBMS方法处理非结构化数据的企业带来了巨大的帮助。关于MongoDB的进一步介绍请访问 MongoDB 教程

这里有两个行业例子:MetLife花费了多年的时间,试图在一个可以处理其所有保险产品的RDBMS上建立一个集中式的客户数据库,之后,一个Hackathon的人在数小时内就用MongoDB创建了一个数据库,该数据库在不到90天就投入了生产。YouGov是一家每小时收集5GB数据的市场调查公司,它将所有的数据从RDBMS迁移到了MongoDB,存储空间节省了70%。

中间件(Middleware)是处于操作系统与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。中间件分为交易中间件、消息中间件和应用服务器中间件等。

2. 应用软件

应用软件包括业务应用软件、工具类软件和其他应用软件。

业务应用软件是开发商为企事业单位所开发的通用或专用软件包,目的是为了更好地解决组织的业务问题,如面向中小型企业的OA软件、内容管理软件等;面向大中型企业应用的ERP、CRM、SCM、PDM、EC软件等。工具类软件包括软件建模工具RationalRose、Visio、代码编程工具.NET和Java等、用户界面(UI)设计工具:DW、PS、FW、墨刀等、软件测试工具,MI、Rational。其他应用软件如信息安全类软件(防火墙、杀病毒软件)等。