Scientific Journal of E-Business October 2013, Volume 2, Issue 4, PP.68-76
The Advantages of E-commerce Enterprise for Use the LAMP to Building Network Service System Jun Li 1, Cheng Ma 2, Mingxiao Li 3, Xiang Li3, Sujie Zhao3, Wei Lin3 1. School of Information Engineering, Tianjin University of Commerce, Tianjin, 300134, China 2. School of Art, Tianjin University of Commerce, Tianjin, 300134, China 3. School of Information Engineering, Tianjin University of Commerce, Tianjin, 300134, China Email: tj-lijun@163.com
Abstract E-commerce, as the indispensable component of modern service industry, is characterized by high human capital, technological requirement and added value; as well as innovation on technology, formation and mode; and holds the core competitiveness that its market is globalization; trading is continuous, with low cost and resource consumption; which significantly improves the profit, and strengthens the links of partners, broadens the business slope. How to make the best use of bet resource while keeping the reasonable investment is the key to the development of e-commerce enterprises. Keywords: E-commerce; LAMP; Framework; Network; CMS; Web
基于 LAMP 架构建设网站系统对 电商企业网络服务的优势* 李军,马铖,李明晓,李想,赵素杰,林为 天津商业大学,天津 300134 摘
要:电子商务作为现代服务业中的重要产业,具有高人力资本含量、高技术含量和高附加价值,含有新技术、新业态、
新方式的技术特点,带有市场全球化、交易连续化、成本低廉化、资源节约化,人流、物流、资金流、信息流“四流合一” 的核心优势,大大提高商业活动的效率,并且增进了各方之间的联系,改善了原有封闭、狭窄的商业范围。对于诸多新增 电子商务企业、组织及个人而言,如何利用好网络资源并合理控制投资成本,成为企业发展和运作的重要制约条件。 关键词:电子商务;LAMP;架构;网络;CMS;Web
引言 随着越来越多组织者或个人投入到电子商务中来,各类角色规模不断增长,竞争加剧使得中小规模的组织 或企业开始面临资金、技术和人才缺乏的难题,导致竞争力存在差异。而在电子商务中,企业或组织的竞争力 及其发展能力很大程度依赖于对互联网的应用。如何在节约成本,花费最低代价的条件下,充分利用网络资源, 选用合理技术,建设和运行其所需服务系统,发布信息内容和提供的功能,成为控制成本和保持竞争力的关键 因素。
1
基于 B/S 的 Web 系统三层体系
1.1 B/S 结构(Browser/Server,浏览器/服务器) 随着 Internet 和 WWW 的流行,以往的主机/终端和 C/S(Client/Server,客户机/服务器)结构已无法满足 *天津市普通高等学校本科教学质量与教学改革研究计划重点项目,项目代码:B02-1102。
- 68 www.sjae.org
当前的全球网络开放、互连、信息随处可见和信息共享的要求,于是就出现了 B/S 型模式。B/S 模式最大特点 是:用户可以通过 WWW 浏览器去访问 Internet 上的文本、数据、图像、动画、视频点播和声音信息,客户端 除了 WWW 浏览器,一般无须任何用户程序,只需从 Web 服务器下载程序到本地来执行,与数据库有关的指 令交给数据库端来解释执行,并返回给 Web 服务器,Web 服务器再返回给用户,因此企业可以在此结构基础 上建立起自己的 Internet 服务。 互联网快速发展,移动办公和分布式办公越来越普及,对系统扩展性要求越来越高。传统 C/S 结构,利用 客户端与服务器端协同,在客户端处理作业的方式,移动扩展性不强,实施远程访问需要专门的技术来对系统 进行专门设计来处理分布式的数据,且针对不同的操作系统系统开发不同版本的客户端软件,安装配置工作量 大,任何客户端计算机出现问题,都需要进行安装或维护。系统升级维护的成本较高。 由此,C/S 结构的系统,随着应用范围的扩大,投资会连续不断,加之产品的更新频率越来越快,维护效 率和工作量也越受影响。而与之相比,B/S 结构系统一般只有初期成本投入,对于企业来讲,有利于软件项目 控制和节省成本,因此目前 B/S 结构已成为企业建立网络服务的首选。
页面请求
客户机
数据请求
页面应答
数据应答 页面请求 应用服务器
数据服务器
页面应答
管理机
图 1 B/S 架构的三层体系
1.1.1
B/S 结构的分层式设计
B/S 结构的三层体系如图 1 所示: 界面表现层--用来在客户浏览器上显示信息的界面。 业务逻辑层--提供功能调用。 数据存储层--数据库的交互。
2
技术的选择 LAMP 是非常流行的一种 Web 开发平台架构,其成本低廉,灵活、安全、稳定和良好的扩展性吸引了不
少企业用户。对于初创公司,LAMP 可以帮助其快速搭建系统原型。目前,越来越多的组织和个人开始选择使 用 LAMP 架构来构建其网站和服务系统。
2.1 LAMP 架构 LAMP 是一个缩写,它指一组通常一起使用并以此组成架构来运行动态网站或者服务器的自由软件,最初 这些开放源代码的程序并不是专门设计成一起工作的,但由于它们的廉价和使用普遍性,这个组合开始流行。 LAMP 由以下组件组成: 2.1.1
Linux 操作系统
Linux 操作系统是一种自由和开放源码的类 Unix 操作系统。 - 69 www.sjae.org
2.1.2
Apache Web 服务器
Apache Web 服务器一个开放源码的网页服务器,由于其多平台和安全性被广泛使用,是最流行的 Web 服 务器端软件之一。 2.1.3
MySQL 数据库管理系统
MySQL 是一个关系型数据库管理系统,它分为社区版和商业版,由于其系统规模小、速度快、总体拥有 成本低,可与 PHP 和 Apache 搭配组成良好的开发环境,一般中小型电子商务网站的开发都选择 MySQL 作为 网站数据库。 2.1.4
PHP(Hypertext Preprocessor)服务器脚本语言
PHP 是一种广泛使用的通用脚本语言,尤其适合 Web 开发,并且可以嵌入到 HTML 中。大多数 Linux 发 行版本捆绑了以上这些软件。当一起使用的时候,它们表现的像一个具有活力的解决方案包。目前,LAMP 已 经成为最强大的网站解决方案之一。
2.2 网站内容管理系统(CMS :Content Management System)及其作用 内容管理系统是指在一个合作模式下,用于管理工作流程的一套制度。该系统既可应用于手工操作,也可 应用到电脑或网络里,实现将相关内容集中储存并群组管理,执行操作更新,控制发布等功能。在数据的存储、 管理、修订及文档发布等方面有着广泛的应用。内容管理系统在本文中专指对互联网门户或商业网站的运作及 更新发布提供操作支持的网站内容管理系统。 网站作为所有者发布信息的媒介,其内容包括了任何类型的数据信息的结合体,可以是文本、图形图像、 Web 页面、业务文档、数据表单、视频、声音、XML 文件等。网站内容管理是协助网站所有者,借助信息技 术,实现内容的创建、储存、分享、应用、检索,并能在业务、战略等方面直接或间接的产生价值。
3
选用 LAMP 架构进行开发设计的理由
3.1 成功的案例 许多著名的大型网站基于 LAMP 平台构建,如维基百科、Facebook、百度、雅虎等(如表 1 所示),证明 了 LAMP 架构具有可靠性和适应性。[1] 表 1 经典 LAMP 网站架构 Yahoo Facebook Wikimedia Flickr Sina Audiogalaxy Friendster YouTube Mixi.jp TypePad liveJournal
System FreeBSD +Linux FreeBSD Linux Redhat Linux FreeBSD+Solaris Linux Linux Suse Linux Linux Linux Linux
Server Apache Apache Apache+Lighttpd Apache Apache+Nginx Apache Apache Apache+Lighttpd Apache Apache Apache
Storage MySQL MySQL+ Memcached MySQL+Memcached MySQL+Memcached MySQL+Memcachedb MySQL MySQL MySQL MySQL+Memcached MySQL+Memcached MySQL+Memcached
Script PHP PHP PHP PHP + Perl PHP PHP PHP+Perl Python Perl Perl Perl
3.2 成本低 PHP 语言流行以前,很多中小型系统都是使用 Java 来开发,而运行 Java 应用程序,包括服务器租用或专 线租用等费用相对较昂贵,比 PHP 应用程序的费用高出不少。目前市场上可以找到很多廉价的支持 PHP 的租 用服务器,但很难找到便宜的可运行 Java 应用的租用服务器,更多服务提供商都提供了对 PHP5、MySQL、 PostgreSQL 等的支持。另外使用 Java 开发系统费时费力,加之 PHP 版本不断升级后性能有很大提升,所以选 - 70 www.sjae.org
择 PHP 进行中小型应用系统的开发是非常明智的,可以花费低廉的成本,利用其资源快速的构筑电子商务平 台及网络服务应用。
3.3 技术比较 除 PHP 之外,也存在 CGI、ASP、JSP(使用 Java 语言开发的服务器端脚本)等其他各种服务器技术。[2] 3.3.1
CGI 与 PHP 比较
PHP 一开始就是为制作 Web 网站而定制的语言,常用功能和函数库等已经非常完备,而以 Perl、C 等为代 表的古典的 CGI 服务器端技术,虽可对选择语言的优点完全移植,但仍存在应用的不方便的问题。并且,CGI 是在服务器上调用外部程序时,即用户每发出一次 Request 就需要建立一个新的执行进程,对服务器资源占用 严重,存在“资源瓶颈”问题。 3.3.2
ASP 与 PHP 比较
ASP 是微软公司开发的代替 CGI 脚本程序的一种应用系统,在 ASP3.0 中开始采用 Visual Basic、C#等编 译型语言,提升了性能。但运行环境限制在 Windows+IIS 平台,存在开发局限性。随后能在 Linux 等 UNIX 系 列操作系统运行的.NET 环境为其带来了希望,但从实际使用情况看,在 UNIX 系统上广泛使用.NET 还有很长 的路要走。而 PHP 原则上在 UNIX/Windows/Mac 等操作系统上都能运行,而且还支持 IIS、Sun Java System Web 等 Web 服务器产品,在 Web 服务器市场占有率第一的 Apache 上更能发挥其最大功效。具有良好的平台通用 性。 3.3.3
JSP/Servlet 与 PHP 比较
图 2 TIOBE 语言排行榜,截至 2012 年 11 月[3]
JSP(Java Server Pages)/Servlet 是具有代表性的 Web 开发语言 Java 的服务器端版本,JSP/Servlet 不用选择环 - 71 www.sjae.org
境,有很好的移植性,Servlet 负责应用程序的逻辑部分,而 JSP 用于网页显示,彼此分工明确。但是,Java 语 言的开发门槛与脚本语言相比较门槛较高。尽管最近的 JSF(Java Server Faces)、Groovy 等标榜着 EoD(Ease of Development 容易开发)的新技术纷纷出现,但与追求直观易懂的 PHP 相比较,还是需要更多的技术水平和开 发时间。 图 2 给出了编程语言排行榜(TIOBE 统计数据,截至 2012 年 11 月)。
3.4 MySQL—数据存储的选择 作为一对“黄金搭档”,PHP 为 MySQL 提供了强大的支持,PHP 中提供了一整套的 MySQL 函数,对 MySQL 进行了全方位的支持。MySQL 支持大型的数据库。虽然对于用 PHP 编写的网页来说只要能够存放上 百条以上的记录数据就足够了,但 MySQL 可以方便地支持上千万条记录的数据库。作为一个开放源代码的数 据库,MySQL 可以针对不同的应用进行相应的修改。同时 MySQL 可运行在不同的操作系统下,支持多种操 作系统平台,可移植性高,应用扩展性强。另外,MySQL 的查询功能强大,支持 SELECT 和 WHERE 语句的 全部运算符和函数,查询快捷方便。综上,对于追求性能和成本的企业网站和其 CMS 的架构,MySQL 在性能、 稳定性和功能上是首选。
LAMP 架构的实施和方案(针对中小型企业)
4
4.1 系统搭建 4.1.1
Apache
Apache 是世界使用排名第一的 Web 服务器,市场占有率达 60%左右。它的特点是简单、速度快、性能稳 定、源代码开放、支持跨平台应用(可以运行在几乎所有的 Unix、Windows、Linux 系统平台上)、模块化结 构以及可移植性等方面。[4] Apache 官方网站为 www.apache.org,组织和个人可以从 http://httpd.apache.org/download.cgi 下载到 Apache 的最新版本,目前最新稳定版是 Apache HTTP Server 2.4.3(2012-08-21 发布)。 4.1.2
MySQL
由于 Mysql 开放源码的特性,所以 Mysql 在发布时有源代码和预编译二进制两种格式,一般使用官方的预 编译二进制版,支持大多数常用的选项的版本。Apache 官方网站为 http://www.mysql.com/,从网站可以选择 MySQL 企业版获得下载。 对于 MySQL 的配置,可以通过 MySQL Configuration Wizard 配置向导进行。首先选择配置类型:Detailed Configuration(详细配置)和 Standard Configuration(标准配置),默认为前者。之后对服务器类型进行选择: Developer Machine 代表工作站类型,Server Machine 代表服务器类型,Dedicated MySQL Server Machine(专用 MySQL 服务器)代表专用服务器类型。选择哪种策略将影响到 MySQL 对系统资源的使用策略,例如选择专 用服务器类型(第三种)情况下,MySQL 可使用所有可用的系统资源。完成其他所有配置后,向导将配置写 入 my.ini 中。也可以直接修改此文件进行配置的修改。[5] 4.1.3
PHP
可以从 http://www.php.net/downloads.php 下载最新 PHP 版本,目前最新的版本为 PHP 5.4.10 (2012 年 12 月 20 日发布)。具体的配置选项可以通过 #./configure --help | more 命令进行查看,可根据需求启用特定的功 能。
4.2 网站内容及系统功能 根据企业和组织的需求,网站的内容应依据合理模式进行排版和规划,系统的功能应依据网站内容和需求 - 72 www.sjae.org
进行分析和设计,并通过后台 CMS 运作完成功能支持和控制,并于用户层进行表现。通常中小型的电子商务 企业网络服务所需的版面内容一般有:产品浏览、产品宣传、信息查询、企业组织简介、在线咨询、业务答疑 (FAQ)、信息推广、用户注册登录、资料查询、客户论坛等类似功能。相应需要的系统功能应有产品信息登 录管理、信息资料发布、版面介绍编辑、用户评论投票管理、注册资料管理审核、版面更换模板等功能。依据 企业所需进行选择加入和设计。相关的网站内容架构和网站系统架构如图 3 和图 4 所示。
图 3 网站内容架构
图 4 网站系统架构
4.3 CMS(内容管理系统)设计模式与方案 4.3.1
需求
对于需要大量即时信息发布和更新变化的电子商务类企业网站来说,很多企业建立的站点存在建设困难、 信息更新不及时、服务功能不健全、信息实效性不强等诸多问题。例如:功能扩展困难,增加栏目需要美工设 - 73 www.sjae.org
计、程序编码;栏目增加、发布的信息增多,维护成本高;数据增多,系统运行缓慢,信息实时性差等。CMS 实际上是上述问题的解决方案,其设计思想是将网站内容和形式分离,即页面设计存储在模板里,而内容存储 在数据库或独立的文件中。当一个用户请求页面时,各部分联合生成一个标准的页面,合成的页面可能包含多 个数据源。CMS 的基本分工和实现流程图如图 5 所示。
图 5 CMS 的基本分工和实现流程图
4.3.2
基于 MVC 模式的 CMS
MVC(Model-View-Controller)是一种目前广泛流行的软件设计模式。设计思想是把应用的输入、处理、输 出流程按照 Model、View、Controller 的方式进行分离,即分为模型层、视图层和控制层。随着网络应用的增 加,MVC 模式对于 Web 系统应用的开发是一种非常先进的思想,适合于 CMS 中内容和形式分离的需求,可 以把 CMS 的总体结构在逻辑上分成三部分:即视图类,控制类和模型类,如图 6 所示。视图类位于服务器端, 代表用户界面(Web),负责界面的显示;控制类位于服务器端,负责接收用户的请求(HTTP Request),将用户的 输入翻译成数据请求并负责处理具体的业务逻辑;模型类位于服务器端,负责与数据源的交互。控制类接到用 户的请求后将数据请求传送给模型类,模型类处理数据源的各种数据后将结果返给控制类,控制类将结果返给 视图类,视图类为用户选择适当的视图并显示给用户。[6]
图 6 MVC 模式
4.3.3
结构设计
利用 PHP、MySQL、XML 等技术,可具体实现 CMS 功能。其中,整体框架采用 MVC 模式架构,PHP 语 言编写总体结构和逻辑流程,MySQL 数据库作为后台存储, XML 负责定义模板、模块及组件等所需的参数。 - 74 www.sjae.org
根据内容管理的需求,整个系统由核心系统、界面模版、模块、组件等组成, 其中核心系统包括前台用 户界面和后台管理界面,方便用户使用和系统管理员管理,可以实现用户管理、版面内容管理、文章发布管理、 首页管理、网站链接、投票调查、内容搜索组件管理、模块管理、界面模版管理、数据库操作等诸多系统管理 功能及组件,提供菜单、登录框、用户界面等常用模块及模版,并提供组件的标准接口,可以方便地进行界面 改版和功能扩展。
4.4 总体运维,性能调优(适于后期发展) 4.4.1
服务器附加
Apache 是 LAMP 架构最核心的 Web Server,开源、稳定、模块丰富是 Apache 的优势。Apache 做为 Web Server 是负载 PHP 的最佳选择。另外在使用 Apache 的同时,也可附带一些轻量级 Web 服务器来负载非 PHP 的 Web 请求。例如轻量级的 HTTP 服务器 nginx,对负载均衡和容错有良好支持,可与 Apache 做出良好配合。其次, 对于服务器缓存的优化也有多种方案。例如使用 Squid Cache,对 Apache 提供外加的缓存模块(作为服务器前 置 cache,缓存动态 Web 内容),设置合理 cache 有效时间进行控制,可有效的提高 Apache 响应能力。[7] 4.4.2
数据存储的扩展
在大容量的 LAMP 系统中(访问量巨大),可以将 M 的概念扩展到 Memcached,考虑使用 Memcached 作为分布式缓存。Memcached 是一个高性能并开放源码的分布式的内存对象缓存系统,用于加快动态 Web 应 用程序速度,减轻数据库负载,支持多进程和多线程及多客户端的能力,Wikipedia、Flickr、Youtube 及 Twitter 等一批大型应用站点都采用了此系统。[8] 4.4.3
PHP 提速
使用 PHP 加速器可以对 PHP 脚本进行缓存以提升性能。在 Linux 下的 PHP 加速器有 APC(官方)、 eAccelerator(第三方)、XCache 和 Zend Platform(商业的)等选择。利用 PHP 加速器可以优化和提高 PHP 脚本的缓存性能,降低脚本编译对服务器的开销,加快系统效率。
5
结语 由于一直奉行的开源宗旨,LAMP 参与研究和优化的拥护者不断增长,发展迅速,资源丰富,疑难问题也
能够很快发现并被修复,解决方案更加全面,安全性和稳定性俱佳。同时与其它架构相比,LAMP 具有轻量、 跨平台、高性能、低价格的优势。因此,在电商行业竞争激烈,网络市场趋于白热化的今天,对于发展型中小 电商企业来说,无论考虑性能、质量还是价格,LAMP 都是搭建网站和服务系统的首选架构。
REFERENCES [1]
Xi Zhu. “Tencent LAMP structure profile ” tencent, 2010.3
[2]
Zhigang Wang, Lei Zhu. “PHP5 application example explanation: use the Zend Framework&Smarty build true MVC pattern application” ,Chapter 1 and chapter 5 , Publishing House of Electronics Industry,2010.9
[3]
TIOBE Programming Community Index for November 2012 http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
[4]
Jianhua Zhang. “LAMP:Basic to Advanced”, Zhejiang University Press,2006
[5]
Luke Welling,Laura Thomson.”PHP and MySQL Web Development (4th Edition)”, 2009.4
[6]
Qiaoming Zeng, Meng Xiao, Wei Tang. “The application of MVC pattern in the CMS and PHP realize.” Wuhan communication command college,2007
[7]
Yan Zhang. “Actual Nginx: replacing the Apache high performance Web server”, Publishing House of Electronics Industry,2010.3
[8] memcached.org. “About Memcached” http://memcached.org/about, (accessed Dec 30, 2012)
- 75 www.sjae.org
【作者简介】 1 李军(1964-
),性别:男,民族:汉族
4 李想(1990-
),性别:男,民族:汉族
学位:硕士,职称:副教授
学位:学士
研究方向:电子商务
研究方向:web 信息系统
Email:tj-lijun@163.com
学习经历::天津商业大学本科 Email: popharbor@126.com
2 马铖(1992-
),性别:男,民族:哈尼
5 赵素杰(1991-
),性别:女,民族:汉族
学位:学士
研究方向:电子商务
研究方向:计算机网络技术
学习经历::天津商业大学本科
学习经历:天津商业大学本科
Email: 842044471@QQ.com
Email: mc-zone@163.com 3 李明晓(1989-
),性别:女,民族:汉
6 林为(1993-
),性别:男,民族:汉族
族
研究方向:电子商务
学位:学士
学习经历::天津商业大学本科
研究方向:计算机网络技术
Email: 624081926@QQ.com
学习经历;天津商业大学本科 Email: tjlimingxiao@163.com
- 76 www.sjae.org