2Amazon 技术架构及可信性分析
Amazon 电子商务系统的技术架构
Amazon 是全球最大的电子商务公司之一,无论从商业还是技术上都具有典型性。下面分别从 Amazon 电子商务系统的模型、功能、架构和实现技术几个方面展开介绍。
1 Amazon电子商务系统模型
Amazon 电子商务系统的主要业务采用 B2C 模式 。B2C 模式的中文名称叫商家对消费者,也就是通常说的商业零售,直接面向消费者销售产品和服务。如图1 所示,这种形式的电子商务一般是商家与顾客之间的商务活动,也就是通常所说的“网上购物网站”。企业、商家可充分利用电子商城提供的网络基础设施、支付平台、安全平台、管理平台等共享资源有效地、低成本地开展自己的商业活动。该模式通常以网络零售业为主,主要借助于 Internet 开展在线销售活动。
2 Amazon电子商务系统典型功能和实现技术
Amazon 电子商务系统主要有以下几种典型功能:
1)购物车。这种订单处理技术允许消费者在购买的期间先收集他们想购买的商品,然后到最后才展开交易,决定是否进行付款。
2)产品目录。购物车技术会带有一个产品目录,该目录是以数据库的形式存储于商务服务器中。商务服务器是商家购买的用于数据存储和系统管理的工具。数据库是商务服务器的一部分,存储和记录庞大的商品信息。比如,一家网上服装零售商的数据库通常会存储产
品的规格,像物品描述、尺寸、购买信息、库存量和订单信息等。数
据库还会存储消费者的信息,如姓名、地址、信用卡信息和购买记录。
3)数据库。Amazon 在服务器端也使用一个数据库来存储所有商品的详细信息,并允许消费者在客户端使用客户机/服务器应用程序提供的特定方法对这些信息进行搜索和访问。这个庞大的数据库还允许商品的交叉引用。
4)在线支付。在线支付业务是指企业(卖方)与个人(买方)通过因特网上的电子商务网站进行交易时,银行为其提供网上资金结算服务的一种业务。目前个人网上银行的在线支付系统支持有Amazon 账户,并开通网上支付功能的网上银行个人客户进行网上购物所开发的支付平台。 客户在 Amazon 选定货物后,根据网站提示或链接,去虚拟收银台付款。
5)交易记录。Amazon 还设置一个数据库专门来为它的回头客服务。该数据库对顾客的所有交易进行记录,包括购买的商品、货品托运方式以及信用卡信息。在这些顾客重新浏览网页时,会收到带有他们名字的欢迎信息。Amazon 还会根据存储于数据库中顾客的购买记录,推断其喜好,罗列出推荐购买的商品。通过对这些顾客数据的检测,Amazon 充当了导购员的角色为顾客提供量身定做的服务。而且,Amazon 计算机系统的其他促销形式,也全都是自动化的,完全摈弃了人为的因素。
6)Amazon 的物品对物品算法。推荐商品系统是 Amazon 主要的市场工具,并广泛地应用于迎合单个客户的习惯和品位,从而达到定制和个性化网站的目的。在用户登录之后,用户可以点击“My Recommendations ”连接,进入到推荐商品区域。在该区域,用户会看到系统已经根据他们之前的购物记录过滤了的推荐商品,以及他们以前购买过的商品。此外,在此个性化领域,客户还会看到基于他们购物车中现有的商品所作出的推荐商品。
7)Amazon 电子商务服务(Amazon ECS)。Amazon ECS允许开发者进入 Amazon 庞大,详细的数据库,访问产品信息,来增强自己的电子商务应用程序。用户一旦注册了账号,就可以免费地访问 Amazon 数据库。这些查询操作能提供记录在Amazon 产品目录上任意产品的大量的信息,包括产品数据(名称、价格、图像)以及从 Amazon 客户那收集来的反馈信息。
Amazon 技术架构的可信性分析
接下来,分析Amazon 系统的可信性。在第一部分中,已经说过,本文对可信的定义是在电子商务交易中,系统在可用性、可靠性、安全性方面所获得的用户信任。故在下面的分析中,也从可用性、可靠性、安全性这三个方面展开。
1 Amazon系统架构可用性分析
根据本文定义 :可用性,是指在要求的外部资源得到保证的前提下,系统在规定的条件下和规定的时刻或时间区间内处于可执行规定或恢复功能的能力。下面分析Amazon 架构的可用性。
1)松散耦合的架构有利于系统应用的快速开发和恢复。Amazon 的架构是松散耦合的,并且围绕着服务进行构建。面向服务的架构提供给他们的隔离特性,让他们能够快速、独立地完成许多软件组件的开发。逐渐地,Amazon 拥有了数百个服务,并有若干应用服务器,从服务中聚合信息。生成Amazon.com 站点页面的应用就位于这样的一台应用服务器之上。提供 Web 服务接口、顾客服务应用以及卖家接口的应用也都是类似的情况。
2)可扩展性增加可用性。对于一个服务来说,当增加为其分配的系统资源之后,它的性能增长能够与投入的资源按比例提升,就说这个服务具有可扩展性。通常意义上的性能提升,意味着能够提供更多的服务单元,也可以为更大的工作单元提供服务,比如增长的数据集等。Amazon 使用了没有分享的架构,对系统进行分区,且在 Amazon 架构中,不使用中间件技术,降低了各部件之间的依赖关系,增加了其可扩展性。从而使系统具有良好的可用性。
3)一致性与可用性的动态选择。所谓一致性,是指写入一个值然后再读出来,得到的返回值应该和写入的是同一个值。在一个分区系统中有些情况并非如此。在 Amazon 架构中,由于对系统进行分区不可避免,因此针对特定的系统,要在高一致性或者高可用性之间做出选择。必须找到可用性和一致性的恰当重叠部分。特定的实现方法是基于服务的需要来选择的:对于结账的过程,总是想让更多的物品放入顾客的购物车,因为这样可以增加收入。在这种情况下需要选择高可用性。错误对顾客是隐藏的,过后才会被拿出来分析。当一个
顾客提交订单过来时,要将关注点更多地放在保持高一致性上。因为几个不同的服务——信用卡处服务、配送服务、报表功能等——在同时访问那些数据 。
4)部署机制。Amazon 系统在进行部署时,首先创建一个特殊的基础设施,来完成对依赖性的管理和对完成服务的部署。所有的应用代码、监控机制、许可证机制等都应该在一个“主机”中。每个人都有一个自己的系统来解决这些问题。部署进程的输出是一个虚拟机,可以用 EC2 来运行。这种机制的目标是让所有正确的服务可以在一个主机中部署,系统具有高可用性。
5)开放的 API 增强可用性。Amazon 将系统及其 API 同时开放,这样会围绕着Amazon 的应用创建了一个生态系统。同时增强了系统的可用性。
2 Amazon电子商务系统可靠性分析
根据本文的定义,所谓可靠性,指系统在规定条件下,规定时间内,完成规定功能的能力。下面分析Amazon 技术架构的可靠性。
1)系统都由自己构建。由于性能、可靠性和成本控制的原因,可能需要自己来构建基础设施架构。自己构建这些基础架构即便 Amazon 关门了也不必说是某某公司的错误导致的。自己构建的系统可能没有其他的易用,不过相对使用第三方的东西来说,可以更快地对自己构建的基础架构进行修补、调试和部署,这是系统可靠的前提保证。
2)无分享的架构。Amazon 创建了一个没有分享的基础架构。对于开发和部署来说,基础架构也是共享资源,就像在逻辑层和数据层共享的资源一样,也会遭遇到出问题的时候。可能会导致锁机制和屏蔽机制,并产生死锁。一个面向服务的架构,允许采取并行和分离的开发流程,使得开发与系统的增长相匹配。这样的系统更为可靠。
3)状态管理机制 。对于大型可扩展系统来说状态管理是核心问题。就内部而言,Amazon 系统可以提供无限存储空间。结账等必要步骤是有状态的,但并不是所有的操作都有状态。通过分析最近点击过的页面的 SessionID ,可以为用户提供推荐商品建议。系统追踪、保存着所有的数据,所以保持了所有的状态。这种状态管理机制极大增强了系统的可靠性。
4)开发自己的基础技术。许多第三方的技术难以适用Amazon 这
种网站的规模,特别是通讯基础架构技术。它们在一定范围内工作得很好,但是如果范围再扩大的话,它们就不适用了。因此,Amazon 只好自己开发相应的基础技术。不在一种技术上“吊死”。Amazon 在有的地方使用 jboss/java, 不过只是使用 servlets ,并没有完全使用 j2ee 中所涉及到的技术。从而降低对其他技术的依赖度,增加系统可靠性。
5)不采用中间件。Amazon 不喜欢采用中间件技术,因为它看起来更像一种框架而不是一个工具。如果采用了某种中间件,那么就会被那种中间件所采用的软件模式所困扰。只能选用第三方的软件。如果想采用不同的软件几乎是不可能的。如果中间件能够以更小的组件的方式提供,更像一个工具而不是框架。Amazon 的这种做法使得系统的框架更为开放,也更为可靠。
6)尽量简单的分布式系统。Amazon 以最小化的设计来结束设计过程。如果想要构建一个很大并且可靠的分布式系统,简单性是关键。
3 Amazon电子商务系统安全性分析
根据本文定义 :安全性是指免除不可接受的风险影响的特性。下面对 Amazon 架构和相关技术的安全性进行讨论和分析。Amazon 的安全技术体系结构是保证其电子商务中数据安全的一个完整的逻辑结构。Amazon 电子商务安全体系结构从下至上由网络服务层、加密技术层、安全认证层、安全协议层、应用系统层组成 , 如图 2 所示。
图2 Amazon 安全技术体系结构
Amazon 安全技术体系结构各层采用各种安全控制技术,来实现其安全策略,以保证商业交易的安全。网络服务层保证网络层的安全,加密技术层、安全认证层和安全协议层,
是为电子交易数据的安全而
构筑 :
1)网络服务层。它提供信息传送的载体和用户接入的手段,通过入侵检测、安全扫描、各种反黑客技术、防火墙技术等保证网络层的安全。其中最重要的就是防火墙技术。防火墙的主要功能是加强网络之间的访问控制,防止外部网络用户以非法手段通过外部网络侵入内部网络。它对两个或多个网络之间传输的数据包和链接方式按照一定的安全策略对其进行检查,来决定网络之间的通信是否被允许,并监视网络运行状态。
2)加密技术层。Amazon 架构中加密技术层的使用是保证其系统安全所采用的最基本的安全措施,它用于满足电子商务对保密性的需求。数据加密被认为是电子商务最基本的安全保障形式,可以从根本上满足信息完整性的要求,它是通过一定的加密算法,利用密钥来对敏感信息进行加密,然后把加密好的数据和密钥通过安全方式发送给接收者,接收者可利用同样的算法和传递过来的密钥对数据进行解密,从而获取敏感信息并保证网络数据的机密性。
3)安全认证层。Amazon 安全认证层中的认证技术对加密技术层中提供的多种加密算法进行综合运用,是保证电子商务活动中的交易双方身份及其所用文件真实性的必要手段。包括:数字摘要、数字签名、数字时间戳、数字证书、认证、智能卡。
4)安全协议层。Amazon 系统在线支付是通过 Internet 完成的,必须使用安全协议来保证支付信息传输的安全、交易方的合法身份的确认及支付过程的完整。不同交易协议的复杂性、开销、安全性各不相同。同时,不同的应用环境对协议目标的要求也不尽相同。比如有安全电子交易协议(SET )、安全套接层协议(SSL )等。
这些技术是 Amazon 的安全技术体系结构中一个完整的逻辑结构,是保证其电子商务中数据安全的有力工具。
4 结束语
电子商务具有便捷、高效的特点,同时对系统的可信性提出了更高的要求。Amazon 作为全球最大的电子商务站点之一,其基础架构是该公司的巨大核心竞争力,通过一些相对简单的底层服务,可以构建出非常复杂的应用,快速发布新的服务。
本文从技术架构的角度,根据电子商务自身的运行特点,给出了电子商务可信性的定义,介绍了Amazon 的技术架构,并在此基础上,
具体分析了Amazon 技术架构的可信性。随着电子商务的迅猛发展,对可信的要求会越来越高,也会赋予其更加丰富的内涵,其中智能化和移动化与可信计算平台的结合将是今后研究的热点。