您的位置: 网站首页 > 电子商务 > 电子商务原理与技术 > 第7章 电子商务系统规划与网站建设 > 【7.2 电子商务网站建设】

7.2 电子商务网站建设

 

7.2  电子商务网站建设

7.2.1  电子商务网站规划与设计

一个完整的电子商务系统是企业IntranetExtranetInternet的集成,既包括企业内部网的设计也包括企业Web站点的设计与实现。而无论企业是实现对内还是对外的商务活动,基于B/S模式的Web网站的设计与开发都是主要的手段。所以,电子商务网站是电子商务系统工作和运行的主要承担者和表现者,是企业实现电子商务的主要平台。

1.网站规划

电子商务网站的规划是网站建设中一个极其重要的步骤,网站规划的优劣直接影响着电子商务功能的实现。

1)建站目标。电子商务网站是为网站所有者要达到的电子商务目的服务的,所以电子商务网站的建站目标主要有以下几种:形象宣传,提高企业知名度;企业产品和服务的数据展示;开展B2BB2C的电子商务交易;作为交易中间商,建立交易场所;开展中介服务等。企业要根据自己的产品、销售渠道和销售对象等情况,明确自己建立网站的目标,给网站一个准确的定位,从而使网站的结构与功能满足电子商务运作的需要。

2)调查分析。调查分析的目的是为了使电子商务网站的功能得到最大的发挥,从而实现企业的利润目标。调查分析的对象主要有如下几方面:目标市场或交易对象的情况,同行业企业的情况,可以把握本企业在整个行业内所处的状况,由于电子商务将决定企业的市场份额,企业起步太迟必将失去市场;找出适合用于电子商务的产品或服务;电子商务网站所提供的产品和服务的价格和交易对象通过网站交易的成本;企业所在地区基础设施的状况,这将直接关系到企业未来电子商务能否实现;其他还有物流,当地经济发展状况和政府的作用等。

3)可行性分析。电子商务网站实施的可行性分析主要包括技术可行性分析(指构建与运行电子商务网站所必需的软硬件和相关技术)、经济可行性分析(指构建与运行电子商务网站的投入产出效益分析)和管理可行性分析(指保证网站建设中所需要的人力资源即组织人员可行性分析)。建设电子商务网站前的可行性分析可以保证网站为企业获得更大的经济和社会效益。

在进行网站可行性分析中比较重要的是确定网站的赢利模式。目前国内的电子商务网站中存在一个通病,人气够足,但缺乏明确的赢利模式。没有利润的企业网站肯定不能长期维持。国内的电子商务网站的赢利模式具有差异性,如企业网站的在线销售赢利、通过收取网络技术服务费用(排名、搜索、平台使用费、促销软件产品使用费等)实现技术服务赢利模式、免费政策以培养人气和商气等。

2.网站设计

对网站进行总体规划后,需要围绕着目标定位进行网站的设计与开发。

在电子商务中,应用系统设计和业务设计是紧密联系的。本质上说,这就意味着在一个电子商务体系结构中,诸如订单管理、库存管理、客户服务、资金管理、供应链等这些不同的、孤立的业务应用应该被连接在高度集成的模块化构件中,而通常这被称为企业级应用系统。这就需要构建一个复杂的、多项功能集成的应用系统框架。这些应用程序框架构成了电子商务的基础,而且本质上形成了模块化,而这就允许独立设计小的子系统并将这些功能结合起来以提供复杂的服务。一个电子商务应用系统框架一般包括了客户关系管理(CRM)、企业资源规划(ERP)、库存及固定资产、供应链管理(SCM)、电子采购、销售链管理(SeCM)、业务智能(BI)等。这种框架结构要求提高不同部门之间的协作性,每个应用系统框架都是提供某一复杂服务的相关功能。

网站设计应该根据电子商务的需求,在电子商务应用系统框架下进行设计。网站设计就是综合考虑网站响应速度、可用性和专业水准的界面等准则的一个平衡过程。网站设计的目的是突出网站的特色,最大限度地为企业的商务目的服务。可以从以下几个方面入手:

1)网站的主题定位和域名。主题即名字,是网站的灵魂。若名字朴实无华又能体现一定的内涵就能给浏览者更多的视觉冲击和空间想象力,并且要容易记忆、有特色并尽量与企业的名称相符。

域名是企业网站在Internet网上的门牌号。好的域名是一个网站成功的关键因素,好的域名要有吸引力、简洁明了、有内涵、商业价值。好的域名本身具有很高的价值。

2)网站的内容。企业建立网站的目的就是为了表现一定的内容,需要用户根据这些内容进行电子商务的开展,而用户访问网站的主要目的就是想发现自己感兴趣的信息,所以信息内容永远处于网站的第一位。

电子商务网站应该根据自己的主题和目标决定内容和功能。要站在消费者或者浏览者的立场上提供可读性的内容。内容设计要有组织,要方便用户访问和购买,要有完善的检索和信息交互能力并要及时更新信息内容,这样不仅能使网站一直保持新鲜感,不断被光临,也能增加用户对网站的信任,从而增加网站赢利的可能性,为企业商务目的服务。

3)网站的整体风格。设计网站的标志LOGO,并将其放在每个最突出且一致的位置,如同商标一样,见到就能联想到网站、联想到企业;版面设计要一致,对整个站点内的页面风格进行统一控制;使用统一的图片处理效果;网站的颜色搭配要合理,特别是要根据网站浏览对象选择合适的色彩,文化差异、不同地区与年龄层对颜色的反应都会有所不同。

4)网站的栏目。栏目的设置应该紧扣主题,根据网站的内容和功能分门别类地确定主、次栏目,可以设置最新更新或网站指南栏目,可以设置一个双向交流的栏目以收集浏览者的信息,可以设置下载或常见问题回答栏目。借助网站的优势为浏览者或消费者提供更多、更好的服务,同时也可节约企业售后服务的时间。

5)网站的目录结构。网站目录指建立网站时创建的目录。一个企业的电子商务网站内容必定繁多,因此网站目录对于网站的管理和维护意义重大。需要注意的问题有:不要将所有的文件都存在根目录下,按照网站栏目或网站内容建立子目录;在每个子目录下都建立单独的网站资源目录(如图片、动画、音频、视频等);目录的层次不要超过三层;因为一般的服务器都是英文操作系统,所以不要使用中文的、过长的目录名或文件名,目录的命名要尽量有意义。

6)网站的链接结构。目前较好的结构设计是在网站首页与一级页面之间采用星型链接结构,在一级页面与下一级页面之间采用树型链接结构。若站点内容较多,需要超过三级页面,可设置导航条。

7.2.2  网站服务器与J2EE架构

1Web服务器

对于网站来说,最重要的软件系统就是Web服务器和浏览器。

Web技术的独特之处是采用超链接和多媒体信息。Web服务器使用HTML超文本标记语言描述网络的资源,创建网页,以供Web浏览器阅读。HTML文档的特点是交互性。不管是一般文本还是图形,都能通过文档中的超链接连接到服务器上的其他文档,从而使客户快速地搜寻他们想要的资料。HTML网页还可提供表单供用户填写并通过服务器应用程序提交给数据库。这种数据库一般是支持多媒体数据类型的。

Web浏览器是一个用于文档检索和显示的客户应用程序,并通过超文本传输协议HTTPWeb服务器相连。通用的、低成本的浏览器节省了两层结构的C/S模式客户端软件的开发和维护费用。

Web应用的一个进展是HTTPSHyperText Transmission Protocol Secure,安全超文本传输协议)的出现,这种协议保证了Web服务器和Web浏览器之间的通信安全,从而使得电子交易成为可能。

有关这方面内容,可参看本书第3章相关介绍。

2.应用服务器

应用服务器是企业应用架构从传统的两级客户机/服务器向多级,特别是向三级转移的必然产物。这种转移,是企业进入电子商务的关键性步骤。应用服务器软件位于企业服务器之上,连接装有浏览器的“瘦”客户机与后端数据库。应用服务器运行企业应用程序,以前,这些企业应用程序是由一类很臃肿的所谓“胖客户机”运行。

对应用服务器的作用,既不能与经典的两级客户机/服务器完全割裂,也不能据此作过分简单化的理解。虽然从最概念化的层面上看,应用服务器确实只不过是这样一类软件,它负责处理应用中的业务逻辑(business logic)并将业务逻辑作为整个分布式系统的一个有机部分来对待。但事实上,应用服务器不仅在电子商务基础设施中处于很关键的地位,其本身也包含了很丰富的技术内容。对应用服务器最为关注的一方是应用系统集成商,它们在帮助客户建立、配置和运行各种电子商务应用时,所需要的所有灵活性和功能,原则上都来自于应用服务器。全面地看,应用服务器应当解决以下这些问题:

1)体系结构。

应用服务器应当具备的首要特性是至少三个层次的服务器端体系结构。所有的应用请求,都将通过请求接收层,一般就是Web服务器,转给应用处理层中的应用服务器处理。应用服务器是独立的进程,对业务进行处理,并进行事务管理,将其中的所有数据操作转给第三层,也就是数据处理层的数据库服务器。在一定的情况下,也可以转给后面的其他系统。应用服务器体系结构的核心在一般的Web服务器和数据库服务器之间,增加专门的应用服务器来完成业务处理,而不是直接从Web服务器访问数据库服务器。

2)负载均衡。

使用应用服务器体系结构,增加了一层,使系统的复杂度大大增加,但是这也带来很多的好处。最基本的好处就是给系统带来了可扩展的性能。当用户建立自己最初的系统时,无法精确预计未来的系统规模。如果一开始设计的系统规模很小,那么就无法适应可能出现的未来大规模发展。如果一开始设计的规模很大,那么很有可能会造成投资的浪费。在这种情况下,用户的最佳选择是可以先建立一个小规模的系统,而在系统规模扩大时,可以方便地进行扩充,不需要进行应用的重新开发和调整等高风险性的操作。应用服务器体系结构就可以满足用户的这种要求。所有的应用服务器系统,都具有负载均衡的能力,即将用户发来的请求,恰当地分配给各个应用服务器,使大家可以分别负担系统的负载。通过使用负载均衡,用户在扩大系统时,可以仅仅增加几台新的服务器,安装应用服务器软件,进行恰当的配置即可,无需对应用进行任何修改,这样就满足了可扩展性能的要求。

3)高可靠性。

应用服务器是一种特定形式的分布式系统,而分布式系统最重要的特征之一是建立高可靠性的系统。在应用服务器领域,一般说的可靠性是指错误容忍和错误恢复两个特性。错误容忍是指在发生一定的错误,包括硬件错误、软件错误和网络错误的情况下,系统对外仍然可以正常工作。这里所说的一定的错误,对于大多数应用服务器系统,是指至少还有一台应用服务器还在工作。

错误容忍有两个等级,一个比较初步的等级是发生错误时正在处理的请求将不能被正确处理,当然用户可以重发请求,此外可能由另一个正常的服务器处理完成。比较完善的等级是将这些处理了一部分的请求转给其他服务器来继续处理,用户端感觉不到任何区别。当然,这个等级提供的服务较好,但是一般是以性能和复杂度为代价的,各个应用可以根据自己的特点,选择某个错误容忍等级。在发现错误和容忍错误的前提下,更加完善的应用服务器还可以进行错误恢复,即错误发生后,如果经过自动或手工的处理,错误被排除了,那么这些应用服务器应当可以恢复工作,继续为用户提供服务。这方面的技术与提供高可用性的技术相关。

4)数据库连接池。

众所周知,数据库处理往往是整个业务处理中最耗时的步骤。而在各种数据库操作的步骤中,数据库的连接和释放往往又特别耗时。在应用服务器系统中,一般都采用数据库连接池(Connection Pool)的技术,即在系统初起,或者初次使用时,完成数据库的连接,而后不再释放此连接,而是在处理后面的请求时,反复使用这些已经建立的连接。这种方式可以大大减少数据库的处理时间,有利于提高系统的整体性能,因此被广泛地应用在各种应用服务器产品中。

5)分布会话管理。

由于标准的HTTP请求是每个请求一个连接的,为了方便用户使用,系统一般都会利用cookieIP地址识别等技术来实现会话管理。例如在用户登录后,记住用户的基本信息等。在单服务器的情况下,会话管理是比较容易实现的,但是在多服务器时,存在会话信息的存放地点问题。一般有两种解决方法:一种是在每个服务器上保存自己的会话信息,这样,进行负载分配时,必须是基于会话的,而不是基于请求的,不然会造成会话信息的不一致。另一种是专门建立一个会话服务器,利用它进行会话信息的保存。这样做可以方便负载分配算法,易于进行错误容忍。但是其缺点是增加一次网络通信的时间,使处理速度减慢。

6)嵌入对象。

在应用服务器中,一般都提供嵌入对象,以便完成各种底层的功能,并实现与其他系统的连接。但是各个应用服务器之间在嵌入对象方面的差别很大。主要在对象放置的位置和对象接口上。应用服务器中的嵌入对象,一般可以放置在应用服务器上,也可以放置在应用服务器后端。放在应用服务器上,可以使对象访问成为本地的访问,不需要进行任何网络通信,性能较好,但是这些对象在各个应用服务器上会同时存在,因此,不能实现对象的内部状态。

放置在应用服务器上时,又有两种实现,一种是全对称的,即各个应用服务器上都安装所有的对象,另一种是非对称的,有些对象只安装于某些服务器上,这样做还需要负载分配程序的配合。如果将嵌入对象放在应用服务器后端,实际上就又增加了一个层次,即嵌入对象层,使整个系统变成四层。这样做会增加网络通信,降低性能,但是对象的设计将比较灵活,而且可以使用各种现有的对象连接接口。当前已经成为标准的对象访问接口主要是CORBADCOMCORBA是由OMGObject Management Group)定义的标准接口,在国外已经被广泛地应用,包括EJB等都使用CORBA标准,而DCOMMicrosoft定义的标准,可以直接连接ActiveX控件。当前也有一些应用服务器有自己独有的对象访问接口。

7)集成化的开发方法。

为了能够最好地方便用户的开发,各个应用服务器一般还提供自己的集成开发环境,将本地编辑、上传、项目管理和调试工具等集中在一起,使开发工作在一个界面内全部完成。还有一些开发环境同时提供后台系统的开发环境,以便同时进行开发管理。有些应用服务器提供了开发版的服务器,以便进行各种调试工作。此外,还有一些产品内置一些代码的自动生成器,数据库设计辅助工具等,例如ORMObject Relationship Mapping)等。

8)高速缓存机制。

为了达到最佳的性能,许多应用服务器都采用了高速缓存机制。在应用服务器中使用高速缓存一般包括两个地方,即页面的缓存和数据库的缓存。页面的缓存是指将特定的URL对应的页面在缓存中予以记录,以便在未来再次访问同一个URL时,直接使用。这里的缓存可以达到最佳的缓存性能,任何后面的操作都不需要进行了,只需将缓存读出,然后输出即可。但是,由于大多数URL对应的页面中,往往都有少量需要变动的信息,这些页面不能使用这种方法进行缓存。

数据库的缓存是指系统对数据库的访问结果进行缓存,这样,相同的SQL再次去访问数据库时,就不需要进行真正的数据库操作,而只需读取缓存即可。这种缓存能够达到良好效果的前提是系统的主要开销在于数据库访问。由于系统依然需要进行有关页面生成等工作,所以缓存效果不如页面缓存,但是适用面比较广。

3J2EE简介

目前大多数应用服务器是基于Sun公司的J2EE的架构,因此,学习一下JavaJ2EE的相关知识,可以帮助我们更好地了解应用服务器和电子商务网站开发。

Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2PlatformMicroEditionJ2ME)、适用于桌面系统的Java 2平台标准版(Java 2Platform- StandardEditionJ2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2Plat- formEnterpriseEditionJ2EE)。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBCAPICORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJBEnterprise JavaBeans)、Java Servlets APIJSPJava Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。

J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。

J2EE为搭建具有可伸缩性、灵活性、易维护性的电子商务系统提供了良好的机制。在电子商务系统的开发中使用J2EE的体系架构具有明显的优势。

1)业界支持。

任何一个商业化的技术要想拥有良好的市场态势,业界内重要企业的大量参与是十分重要的。J2EE是由SUN引导,各厂商共同发起的,并得到广泛认可的工业标准。业内“企业计算”领域的大企业如:IBMBEA SystemsOracle等都有参与。

J2EE规范制定阶段让供应商参与进来,能够吸收他们在企业计算领域多年来成熟的经验,而且能够推动他们迅速开发出J2EE的产品。因为采取了以上策略,现在已经超过25个不同的服务器端平台支持J2EE规范。

由于采用开放的协作制定规范,J2EE也体现了众多企业计算领域供应商的知识和专业技术。这意味着产品解决方案能够满足任何商业需求。由于有大量的厂商支持,所以用户的选择范围会更广泛。

2)保护未来的IT投资,适应变化。

J2EE能让一个公司具有更强的适应变化的能力。因为每一个基于J2EE平台的产品都保证支持最基本的J2EE服务。公司可以只需构造一次编码良好,符合J2EE的程序,然后在部署时按应用环境做出决策。如果客户的J2EE应用程序设计良好,并能符合标准,这个系统可以随着时间的推移通过更换底层中间件、操作系统或硬件来进行放缩,却不会显著地更动应用程序。用这种方式对未来IT投资的保护是很具吸引力的建议。对市场需求的反应时间缩至最短,可以让公司以Internet所要求的那种速度采取行动。

3)可伸缩性。

公司必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64256个处理器。J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。

选择J2EE这种开放结构,客户可以选择产品,还能保留在现有应用开发方面的投资。如果基于J2EE平台的应用程序设计正确,客户可以变更产品供应商,以最小的移植代价来满足一定的伸缩性或功能需要。

4)支持异构环境。

一些大的公司拥有异构的服务器端部署环境,使用多种操作系统、硬件、中间件产品。异构的环境在以下情况也可能出现:要完成多个不同项目的机构;对拥有不同部署环境的公司进行合并、收购。因此,跨异构操作系统的可移植性与互操作性是非常重要的。

J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构公司计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制定整个方案所需的费用。

5)切入市场的时间。

缩短切入市场时间的一种方法就是选择便于应用程序快速开发的服务器端平台。J2EE允许公司把一些通用的、很烦琐的服务端任务交给中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。J2EE能让供应商鲜明地提供各种不同特性而同时保持与平台的兼容性。以下这些复杂的中间件服务是高级中间件供应商所特有的:

·    状态管理服务。可以让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。

·    持续性服务。可以让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。

·    分布式共享数据对象CACHE服务。可以让开发人员编制高性能的系统,极大地提高整体部署的伸缩性。

J2EE平台快速切入市场的特性也有益于那些已拥有成型的电子商务软件的供应商,如SAPPeoplesoftTrilogyOracleTradexECCubedIntegralI-mindIntershop等。供应商选择J2EE平台能够构造部署到任何客户目标平台的可移植程序,这些目标平台包括WindowsUnix、其他已有系统,也包括任何基于J2EE平台的产品。基于J2EE的程序是独立于某一特定技术的,如数据库、操作系统或硬件。这对一个拥有广泛的异构环境下客户的供应商是必需的。

4J2EE的四层模型

J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,Sun设计J2EE的初衷正是为了解决两层模式(Client/Server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议——通常是某种数据库协议,它使得重用业务逻辑和界面逻辑非常困难。现在J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,图7-2J2EE典型的结构。

·    运行在客户端机器上的客户层组件。

·    运行在J2EE服务器上的Web层组件。

·    运行在J2EE服务器上的业务逻辑层组件。

·    运行在EIS服务器上的企业信息系统(Enterprise Information System)层软件。

7-2  J2EE四层结构

J2EE应用程序是由组件构成的。J2EE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EE应用程序,并与其他组件交互。J2EE说明书中定义了以下的J2EE组件:应用客户端程序和applets是客户层组件、JavaServletJava Server PagesJSP)是Web层组件、Enterprise JavaBeansEJB)是业务层组件。

1)客户层组件。J2EE应用程序可以是基于Web方式的,也可以是基于传统方式的。

2Web层组件。J2EE Web层组件可以是JSP页面或Servlets。按照J2EE规范,静态的HTML页面和Applets不算是Web层组件。如图7-3所示,在客户层,Web层可能包含某些JavaBeans对象来处理用户输入,并把输入发送给运行在业务层上的Enterprise Beans来进行处理。

3)业务层组件。业务层代码的逻辑用来满足银行、零售、金融等特殊商务领域的需要,由运行在业务层上的Enterprise Beans进行处理。图7-4表明了一个Enterprise Beans是如何从客户端程序接收数据,进行处理(如果必要的话),并发送到EIS层储存的,这个过程也可以逆向进行。

7-3  JavaBeans示意图

7-4  JavaBean与数据库的会话

有三种企业级的Beans:会话(SessionBeans、实体(EntityBeans和消息驱动(Message-DrivenBeans。会话Beans表示与客户端程序的临时交互。当客户端程序执行完后,会话Beans和相关数据就会消失。相反,实体Beans表示数据库的表中一行永久的记录。当客户端程序中止或服务器关闭时,就会有潜在的服务保证实体Beans的数据得以保存。消息驱动Beans结合了会话BeansJMS的消息监听器的特性,允许一个业务层组件异步接收JMS消息。

4)企业信息系统层。企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP)、大型机事务处理、数据库系统和其他信息系统。例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。

5J2EE的结构

这种基于组件、具有平台无关性的J2EE结构使得J2EE程序的编写十分简单,因为业务逻辑被封装成可复用的组件,并且J2EE服务器以容器的形式为所有的组件类型提供后台服务。

1)容器与服务。

容器是J2EE中最为重要的概念之一。通过对容器的配置,系统可以定制J2EE服务器所提供的内在支持,包括安全、事务管理、JNDIJava Naming and Directory Interface)寻址、远程连接等服务,以下列出最重要的几种服务。

·    J2EE安全Security模型:可以配置Web组件或Enterprise Beans,这样只有被授权的用户才能访问系统资源。每一客户属于一个特别的角色,而每个角色只允许激活特定的方法。

·    J2EE事务管理Transaction Management模型:指定组成一个事务中所有方法间的关系,这样一个事务中的所有方法被当成一个单一的单元。当客户端激活一个Enterprise Beans中的方法,容器介入管理事务。因有容器管理事务,在Enterprise Beans中不必对事务的边界进行编码。要求控制分布式事务的代码会非常复杂。只需在布置描述文件中声明Enterprise Beans的事务属性,而不用编写并调试复杂的代码。容器将读此文件并处理此Enterprise Beans的事务。

·    JNDI寻址JNDI Lookup服务:向企业内的多重名字和目录服务提供了一个统一的接口,这样应用程序组件可以访问名字和目录服务。

·    J2EE远程连接Remote Client Connectivity模型:管理客户端和Enterprise Beans间的低层交互。当一个Enterprise Beans创建后,一个客户端可以调用它的方法就像它和客户端位于同一虚拟机上一样。

·    生存周期管理Life Cycle Management模型:管理Enterprise Beans的创建和移除,一个Enterprise Beans在其生存周期中将会历经几种状态。容器创建Enterprise Beans,并在可用实例池与活动状态中移动它,而最终将其从容器中移除。即使可以调用Enterprise BeansCreateRemove方法,容器也将会在后台执行这些任务。

·    数据库连接池Database Connection Pooling模型:获取数据库连接是一项耗时的工作,并且连接数非常有限。容器通过管理连接池来缓和这些问题。Enterprise Beans可从池中迅速获取连接。在Beans释放连接之可为其他Beans使用。

2)容器类型。

J2EE应用组件可以安装部署到以下的几种容器中,如图7-5所示。

7-5  J2EE容器

·    EJB容器管理所有J2EE应用程序中企业级Beans的执行。Enterprise Beans和它们的容器运行在J2EE服务器上。

·    Web容器管理所有J2EE应用程序中JSP页面和Servlet组件的执行。Web组件和它们的容器运行在J2EE服务器上。

·    应用程序客户端容器管理所有J2EE应用程序中应用程序客户端组件的执行。应用程序客户端和它们的容器运行在J2EE服务器上。

·    Applet容器是运行在客户端机器上的Web浏览器和Java插件的结合。

6J2EE的核心API与组件

J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述。

1JDBCJava Database Connectivity):JDBC API为访问不同的数据库提供了一种统一的途径,像ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。

2JNDIJava Nameand Directory Interface):JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源,如DNLDAP、本地文件系统或应用服务器中的对象。

3EJBEnterprise JavaBeans):J2EE技术之所以赢得广泛重视的原因之一就是EJB。它提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。

4RMIRemote Method Invoke):RMI协议调用远程对象方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。

5JavaIDL/CORBA:在JavaIDL的支持下,开发人员可以将JavaCORBA集成在一起。他们可以创建Java对象并使之可在CORBAORB中展开,或者他们还可以创建Java类并作为和其他ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将新的应用和旧的系统相集成。

6JSPJava Server Pages):JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

7JavaServletServlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGIPerl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而Servlets全部由Java写成并且生成HTML

8XMLExtensible Markup Language):XML是一种可以用来定义其他标记语言的语言。它被用来在不同的商务过程中共享数据。XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将JavaXML的组合,可以得到一个完美的具有平台独立性的解决方案。

9JMSJava Message Service):用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有支持发布/订阅(Publish/Subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递、事务型消息的传递、一致性消息和具有持久性的订阅者支持。JMS还提供了另一种方式来对应用与旧的后台系统相集成。

10JTAJava Transaction Architecture):JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。

11JTSJava Transaction Service):JTSCORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。

12Java Mail:用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。

13JAFJavaBeans Activation Framework):Java Mail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF

7.2.3  网站开发工具

现在的应用开发工具基本上可以分为两大阵营,MicrosoftASP.NET技术,以及Java技术。对于这两种技术,所使用的应用开发工具也是完全不同的。至于究竟应当采用这两种技术中的哪一种来实现自己的网站的开发工作,则需要根据开发公司的实际技术能力来确定,当然也可以根据用户的偏好来确定。下面介绍IBM VisualAgeJbuilder这两种基于Java的电子商务系统的开发技术,在本书第8章还要介绍其他的电子商务解决方案。

1IBM VisualAge for Java

IBM WebSphere软件平台(全套的集成电子商务解决方案,包括Visual Age for Java 1.2版)是电子商务应用构架的关键部分,该构架是IBM在同一编程模型上开发的统一的端对端体系结构。作为公共编程模型,EJB规范得到了行业范围内的广泛支持,它也是电子商务应用构架的集成部件模型。Visual Age for Java是提供了向导功能的第一个JavaIDE,它可以生成大量的EJB基础结构代码,从而简化了EJB开发过程。另外,对话和实体Beans的创建向导、把Beans映射到现有关系数据存储以及先进的测试环境极大地减少了创建、测试和部署EJB所花的时间。

Visual Age for Java持续性工具能让开发人员把EJB映射到现有的关系数据库结构。利用对对话和实体BeansCMP)的支持,开发人员能从现有的数据库表生成EJB或从现有的EJB生成数据库结构。Visual Age for Java还能提供把对象模型映射到数据模型的手段,从而把数据库管理员和Java开发人员联系在一起。另外,Visual Age for Java 3.5版还支持IBMDB2S/390Sybase,以及支持IBMDB2通用数据库和Oracle

如果在Visual Age for Java中主机运行IBM WebSphere测试环境(WTE),开发人员还能在把EJBServlet部署到远程服务器前对它们进行预测试。由于开发人员能启动和停止服务器和应用程序,并能在Visual Age for Java IDE中任意改变应用,所以开发人员不必远程部署和测试代码,从而节省了大量时间。

生成测试客户机能让开发人员测试服务器端的EJB而无须编写一个用户界面或等待图形制作人员给出的强制性界面。另外,当用户界面完成时,它还能作为一个测试工具,决定问题是存在于应用程序的客户机部分还是服务器部分。

Visual Age for Java还简化了把EJB添加到现有应用程序中的过程。通过生成AccessBeansVisual Age for Java隐藏了EJB的远程和本地接口并把它融合到JavaBeans编程模型中。这提供了到EJB的简化的JavaBeans接口,简化了企业BeansServletJSP间的编程接口,得到了所有Java开发人员的普遍认可。另外,AccessBeans引入了先进的EJB属性本地缓存功能,减少了远程调用的次数,提供了对EJB的快速访问能力。

IBM为建设Web站点所推出的WebSphere Studio Advanced Edition及其包含的Visual Age for JavaProfessionalEdition软件已转向以Java为中心。Studio所提供的工具有:Web站点管理、快速开发JDBC页向导程序、HTML编辑器和HTML语法检查等。StudioVisualAge集成度很高,菜单中提供了在两种软件包之间快速移动代码的选项。这就让使用StudioWeb页面设计人员和使用VisualAgeJava程序员可以相互交换文件、协同工作。

Studio提供了建立Java Server Pages的完整前端开发环境。许多向导程序可以帮助用户以更快捷、更难以出错的方式实现特定的开发任务。比如说,SQL向导程序就可以在测试所用的Oracle 8i数据库中浏览各表、执行多种SQL任务(比如增加连接、限制带约束的查询以及在存储结果之前查看查询结果等等)。

IBM新增加的标签可以让JSP访问数据的工作变得更加方便,比如<tsx:repeat>标签就负责遍历查询中各行而无须增加处理数据库的Java代码。这些标签表明IBM正在逐步采用以标签为中心的数据访问解决方案。

在编辑页面的时候,有好几个工具可供选择,包括一个图形界面的所见即所得页面编辑器、一个可以显示页面层次结构的纲要视图以及HTML源代码编辑视图。不过我们发现这些编辑工具之间存在整合方面的一些问题,相比之下还是Dreamweaver或者ColdFusion做得好一些。

StudioVisualAge都包括了Java Server Page调试器。因为Java Server Page在执行前采用预编译方式运行,所以IBM为其预编译表单所提供的页面调试方式值得关注,这种方式并没有在服务器上实际运行Java源代码表单。有了VisualAgeJava Server Page调试器,就可以在页面调试的时候从输出窗口中查看HTML显示。不过在编译Java Server Page之后,编译器的输出却只列出错误结果而不自动地标记那些出现错误的源代码。

Visual Age for Java支持团队开发,内置的代码库可以自动地根据我们做出改动而修改程序代码,这样就可以很方便地将目前代码和早期版本做出比较。Studio本身并不提供源代码版本管理的支持,它只是包含了一个内置文件锁定系统,当编辑项目文件的时候可以防止其他人对这些文件的错误修改。软件还支持诸如Microsoft Visual SourceSafe这样的第三方源代码控制系统。因为Studio对多服务器和多阶段项目部署都提供了完整的可定置支持,所以开发完应用程序之后,在测试服务器和产品服务器上的应用部署都很快。

WebSphere Studio Advanced Edition3.5Visual Age for JavaEnterpriseEdition3.5对开发团队而言都是可供选择的优秀开发环境,它们提供了对单一项目下多个开发人员的内置支持。

2JBuilder

JBuilder软件的目标定位是代码开发人员而不是高级设计人员,所以JBuilder中包含了大量的向导程序和其他针对中间层的快速开发工具。JBuilder性能稳定、使用方便,特别适用于创建Java组件。此外该软件还提供了很多JSP功能。

JBuilder本身通过内置的JavaSwingJavaGUI程序框架)技术支持跨平台的软件开发:它可以运行在WindowsLinuxSolaris操作系统之上,操作界面和工具完全一致,如图7-6所示。这种所谓的“all-Java”策略意味着软件运行JBuilder的内存不会太多。128MB是系统最小需求,推荐装备512MB内存以获得更好的性能。

7-6  JBuilder的运行界面

JBuilder IDE设计得更富于效率性和功能性。可以在同一开发环境下很方便地查看JavaHTMLJSP文件。JBuilder具有了相当出色的响应界面。在多种令人注目的特性之后,方便的自动补充功能(Auto-Completionwizardry)特别受人欢迎,该功能不仅支持即时帮助还支持键入Java代码的参数自动填充。

JBuilder Enterprise版更提供了对Enterprise JavaBeans组件开发的支持。在JBuilder中,可以更容易地创建(Create)、配置(Deploy)企业JavaBeans,提供了一系列的向导来进行创建、处理、配置企业JavaBeans的流程。把IAS的配置描述编辑器集成到JBuilder的开发环境中。JBuilder还支持BEAWebLogicServer5.1

JBuider提供EJB Group功能。每一个EJB Group都代表了一个可配置的JAR文件。通过EJB Group,可以对已有的EJBEJB Group之间进行移植。一个Project工程中可以有多个EJB Group

JBuilder处理同时也建立在中间层的EJB之上的事务可谓得心应手。尽管用JBuilder创建默认的JSP非常容易,但还是可以用基本的HTML表单而不是Web Sphere Studio中的工具来完成该项工作。JSP本身对JBuilder而言还是一种很新颖的技术,可以用简单的JavaBeans技术来管理Java Server Page

JBuilder Enterprise包含了300多种组件,其中,大多数组件都属于JavaBeansSwing控件,这对建立客户端小程序和独立运行的Java应用程序是很有用的。此外软件还包括16种名为Internet Beans的特殊控件。不过,这些控件都是专用于JSPServlet的。这些组件封装了Web表单中采用的控件,其范围不仅包括了简单的按钮也包括表这样的高级特性。

这些对象都将HTML和后台的JSP/Servlet代码分割开来,这样Web设计人员在无须Java程序员修改底层代码的情况下就可以单独修改HTML。这种解决方案很有吸引力,有了它也就拥有了未来扩展的足够余地。事实上,同类组件还可以让用户生成用于无线设备的WML代码,只需要将模版改为WML,这些Internet Beans就会动态地填充用于WAP设备的数据。在真实的应用环境中,完全可以采用自己喜欢的HTML工具从事HTML编辑工作。

JBuilder支持Web应用程序的开发,增加了对XML的支持,提供了更好的ServletJSP的支持。通过Internet Beans Express和一些组件,能够在JavaHTML之间进行无缝数据转换。JBuilder内置了Tomcat 3.1,可以动态地调试ServletJSP程序。每一个Servlet都有一个别名(Servlet-name)和init()初始化函数的参数,能够离开SHTML独立执行。Jbuilder提供了增强的JSP支持,很容易地就可以直接调试JSP源代码。提供了XML的支持。能够简单快速地编写XML文件。XML关键字的高亮度显示很容易地对整个XML文件的结构了如指掌。通过Internet Beans Express控件,可以动态地产生Web页面的内容。

JBuilder还针对团队开发推出了CVS版本控制功能,该技术已经被程序员用于建立测试应用程序。采用CVS,开发队伍就可以方便地跟踪项目开发全过程。JBuilder对每一个版本都提供更改的支持。要查看一个文件的版本信息,单击底部的Histroy标签,里面有每个文件的历史修改记录。JBuilder自动地保持着文件的备份,还可以设定备份的个数。Histroy页面就用这些备份来管理着历史的修改记录,既可以访问上一个版本文件,也可以查看两个版本之间做了哪些修改。JBuilder企业版还提供了CVSConcurrentVersionsSystem并发版本系统)。

JBuilder漂亮的IDE环境充分展示了InpriseBorland开发人员的一贯喜好,JBuilder将继续获得Java程序员的青睐。这一装备了获得好评的帮助程序和服务器端EJB工具的软件在总体水准上是一款相当成熟和优秀的Java开发环境。

一个良好的开发工具基本上可以满足一个专业技术开发人员的需求。对于许多业余的开发人员来说,也可以选择一些小型的、快速的“傻瓜型”的开发工具来迅速构建一些模块。但是,使用这种快速开发工具所获得的代码通常都非常复杂,给进一步进行开发将带来一些问题。

7.2.4  电子商务网页设计与制作

网页的制作基本上可以分为HTML文件编辑、图片编辑、动态效果制作等几个部分组成。网页制作工具很多,下面简要介绍几个常用的工具。

1Microsoft FrontPage

如果曾对Word很熟悉,那么相信用FrontPage进行网页设计一定会非常顺手。使用FrontPage制作网页,能真正体会到“功能强大、简单易用”的含义。页面制作由FrontPage中的Editor完成,其工作窗口由3个标签页组成,分别是“所见即所得”的编辑页、HTML代码编辑页和预览页。FrontPage带有图形和GIF动画编辑器,支持CGICSS。向导和模板都能使初学者在编辑网页时感到更加方便。

FrontPage最强大之处是其站点管理功能。在更新服务器上的站点时,不需要创建更改文件的目录,FrontPage会跟踪文件并拷贝那些新版本文件。FrontPage是现有网页制作软件中唯一既能在本地计算机上工作,又能通过Internet直接对远程服务器上的文件进行工作的软件。

2Dreamweaver

Dreamweaver是一个优秀的、专业化的网页设计软件,它包括可视化编辑、HTML代码编辑的软件包,并支持ActiveXJavaScriptJavaFlashShockwave等特性,而且它还能通过拖曳从头到尾制作动态的HTML动画,支持动态HTMLDynamic HTML)的设计,使得页面没有plug-in也能够在NetscapeInternet Explorer浏览器中正确地显示页面的动画。同时它还提供了自动更新页面信息的功能。

Dreamweaver还采用了RoundtripHTML技术。这项技术使得网页在DreamweaverHTML代码编辑器之间进行自由转换,HTML句法及结构不变。这样,专业设计者可以在不改变原有编辑习惯的同时,充分享受到可视化编辑带来的益处。Dreamweaver最具挑战性和生命力的是它的开放式设计,这项设计使任何人都可以轻易扩展它的功能。

3Fireworks

Fireworks是专为网络图像设计而开发,内建丰富的支持网络出版功能,比如Fireworks能够自动切图、生成鼠标动态感应的JavaScript。而且Fireworks具有十分强大的动画功能和一个几乎完美的网络图像生成器(Export功能)。它增强了与Dreamweaver的联系,可以直接生成DreamweaverLibrary甚至能够导出为配合CSS式样的网页及图片。

Fireworks的出现使Web作图发生了革命性的变化。

4Flash

Flash是用在Internet上动态的、可互动的shockwave。它的优点是体积小,可边下载边播放,这样就避免了用户长时间的等待。Flash可以用来生成动画,还可在网页中加入声音。这样就能生成多媒体的图形和界面,而文件的体积却很小。Flash虽然不可以像一门语言一样进行编程,但用其内置的语句并结合JavaScript,也可以做出互动性很强的主页来。

DreamweaverFireworksFlash号称是Micromedia公司网页制作三剑客,也是专业制作网页人员的首选。尤其是Flash,现在在Internet上甚至有一批以制作Flash动画为业的人,称之为“闪客”。虽然现在Flash以提供动画短片为主,但是随着网络带宽的条件改善,完全以Flash制作的站点对于商业站点,尤其是演示型的商业站点来说,还是具有相当的吸引力的。

除了以上所说的这些工具,还有一些其他的工具。比如说图形制作,专业人员就更多地使用Photoshop。由于现在的网页制作技术的发展,商业用户对网站制作的精美度的要求也越来越高,因此对于专业开发公司来说,就有网页编辑人员和美工的分工,从而保证两方面的要求都得到满足。