摘要:本文以實例來詳細分析運用J2EE技術(shù)架構(gòu)來搭建企業(yè)級電子商務(wù)網(wǎng)站的全過程,并對關(guān)鍵部件的實現(xiàn)以及相關(guān)技術(shù)進行具體剖析,同時結(jié)合筆者經(jīng)驗,提出很多有價值的思路和方法。
一. 前言:
近年來,隨著互聯(lián)網(wǎng)業(yè)務(wù)的迅猛發(fā)展,企業(yè)間、企業(yè)與消費者間實現(xiàn)電子商務(wù)已經(jīng)成為可能,建立企業(yè)級的電子商務(wù)平臺不僅可以拓寬企業(yè)的營銷渠道,而且對提升企業(yè)品牌形象等方面有重要的戰(zhàn)略意義。
本文將以目前國內(nèi)最大服務(wù)交易平臺如易網(wǎng)(http://www.routease.com/)為例,來深入剖析一個電子商務(wù)交易平臺搭建的全過程。
《準備篇》
一個項目的實施首先確定項目目標、項目需求與開發(fā)環(huán)境(為方便理解,將如易網(wǎng)作為項目來描述)。本篇主要討論這三個方面:
一.實施目標
如易網(wǎng)的創(chuàng)辦目標:建設(shè)為國內(nèi)最大的服務(wù)類交易平臺和在線工作平臺。由于本篇以技術(shù)講解為主,如要了解更多的背景資料,可以訪問:http://www.routease.com/AboutUs.htm 。
二.實施需求
目標決定需求,定制清晰明確的項目需求是整個項目成敗的關(guān)鍵。可以使用Rose工具來建立項目對象實體圖,這里就不再贅述了,以下就幾個重要對象做一些描述:(可以對照http://www.routease.com/來瀏覽下面內(nèi)容):
TotradeEntity:交易實體對象。該對象為核心對象,標識交易的服務(wù)對象。比如翻譯服務(wù),開鎖服務(wù)等。
ServiceRequirement:服務(wù)需求對象。該對象標識用戶需求。比如需要電腦維修的信息等。
SHOP:店鋪對象。該對象為中小企業(yè)或者個人開的網(wǎng)店,一個店鋪對應(yīng)多個交易實體。
USER:用戶對象。該對象標識從事網(wǎng)站的合法注冊用戶,它保留用戶信息。
Account:帳戶對象。該對象標識用戶的帳戶信息。
Message:消息對象。該對象標識用戶之間交流的信息。
Credit:信譽對象。該對象標識用戶交易的信譽等級信息,為交易提供有力參考。
三.開發(fā)/運行環(huán)境
基于以上需求分析,本站采用J2EE/Structs應(yīng)用架構(gòu),服務(wù)器主機采用WIN2003 SERVER+APACHE2.0.54+TOMCAT 5.5.4的系統(tǒng)環(huán)境,開發(fā)環(huán)境:Eclipse+JDK1.5,數(shù)據(jù)庫DAO采用的著名的ORM工具TopLink9.0.4.5。以下對相應(yīng)開發(fā)技術(shù)及其工具做一個簡要介紹:
1. Structs技術(shù)
Web應(yīng)用的開發(fā)經(jīng)歷了一個由P2P(Page to Page)到MVC(model view controller)的發(fā)展過程。早期的Web應(yīng)用對用戶請求的處理和響應(yīng)均是在頁面上完成的,如圖1-1所示,即所的JSP1.0。這樣的Web架構(gòu)最大的好處就是開發(fā)效率較高,然后近幾年隨著互聯(lián)網(wǎng)的迅猛發(fā)展,網(wǎng)站功能日益增強,而這種P2P的網(wǎng)站架構(gòu)(因為其業(yè)務(wù)規(guī)則代碼與頁面代碼混為一團,不利于維護)已經(jīng)不再適應(yīng)大規(guī)模應(yīng)用的發(fā)展要求,取而代之的是基于MVC的Web架構(gòu)。MVC的核心思想是將應(yīng)用分為模型、視圖和控制器三部分。模型是指應(yīng)用程序的數(shù)據(jù),以及對這些數(shù)據(jù)的操作;視圖是指用戶界面;controller負責用戶界面和程序數(shù)據(jù)之間的同步,也就是完成兩個方向的動作:a.在根據(jù)用戶界面(view)的操作完成對程序數(shù)據(jù)(model)的更新,b.將程序數(shù)據(jù)(model)的改變及時反應(yīng)到用戶界面(view)上。通過MVC的Web架構(gòu),可以弱化各個部分的耦合關(guān)系,并將業(yè)務(wù)邏輯處理與頁面以及數(shù)據(jù)分離開來,這樣當其中一個模塊的代碼發(fā)生改變時,并不影響其他模塊的正常運行,所以基于MVC的Web架構(gòu)更適應(yīng)于大規(guī)模軟件應(yīng)用開發(fā)的潮流。
![]() 圖1 ![]() 圖2 |
目前基于MVC的開發(fā)框架主要有Structs、Spring等。本站選用其中的Structs作為開發(fā)框架,采用Structs應(yīng)用框架開發(fā)應(yīng)用程序,將開發(fā)人員從繁瑣的代碼編制中解放出來,取而代之的是配置一些含有對應(yīng)關(guān)系的XML文件,這樣當應(yīng)用環(huán)境發(fā)生變化時,不需重新編譯程序即可運行,并且使得應(yīng)用更加靈活、高效,而且重用度高。
從開發(fā)角度,Struts主要有如下的功能:
·包含一個controller servlet,能將用戶的請求發(fā)送到相應(yīng)的Action對象。通過Web.xml文件來配置其相關(guān)參數(shù)。
·tag庫,并且在controller servlet中提供關(guān)聯(lián)支持,幫助開發(fā)人員創(chuàng)建交互式表單應(yīng)用。
·通過配置Structs-config.xml文件,將Action對象與用戶請求以及請求結(jié)果頁面關(guān)聯(lián)起來。
如需更多了解Structs的相關(guān)信息,請其官方網(wǎng)站:http://jakarta.apache.org/struts
2.TopLink技術(shù)
過去,對模型數(shù)據(jù)的存取訪問往往是直接是應(yīng)用通過ODBC這樣的數(shù)據(jù)庫接口訪問數(shù)據(jù)庫。但是這樣處理并不符合OOP的精神,而且應(yīng)用開發(fā)人員必須熟悉后臺數(shù)據(jù)庫的模型構(gòu)造,這就加大開發(fā)的難度。為此,ORM(Object Relational Mapping)技術(shù)應(yīng)運而生.ORM技術(shù)實際是一個對象持久化的框架,其核心思想是建立了Java對象與后臺數(shù)據(jù)庫之間的映射關(guān)系。這樣對這些Java對象的訪問實際就是對后臺數(shù)據(jù)庫的訪問,從而屏蔽了數(shù)據(jù)庫訪問的細節(jié),開發(fā)人員甚至可以在不了解后臺數(shù)據(jù)庫的情況下進行開發(fā)工作。此外,Toplink在數(shù)據(jù)緩存優(yōu)化上也有很好的表現(xiàn)。本項目采用著名的ORM工具Toplink進行開發(fā)。