電子商務 作者:潘鐳
內容提要:本文闡述了ASP技術的作用與特點及其在電子商務中的應用。
關鍵詞:ASP ;電子商務。
一、ASP技術 ASP(Active Server Pages動態網頁)是微軟公司推出的一種用以取代CGI(Common Gateway Interface通用閘道介面)的技術。目前,Internet上的許多基於Windows平台的Web網站已開始應用ASP來替換CGI。 簡單地講,ASP是一個位於伺服器端的指令碼運行環境,通過這種環境,使用者可以建立和運行動態互動式Web伺服器應用程式,如互動式動態網頁,包括使用HTML表單收集和處理資訊,上傳與下載等等。通常情況下,使用者通過瀏覽器看到的網頁大多是靜態,目前Internet 上的許多網站,仍然提供"靜態"(static)的首頁內容。 所謂"靜態",指的就是網站的首頁內容是"固定不變"的。 當瀏覽器通過Internet 的HTTP (Hypertext Transport Protocol)協議,向站台伺服器(Web Server)要求提供首頁的內容時,站台伺服器收到要求後,就傳送原已設計好的靜態HTML 的檔案資料給瀏覽器。 一個"靜態"的網站,若要更新首頁的內容,必須手動的來更新其HTML的檔案資料。而隨著Web應用的發展,使用者希望能夠看到根據要求而動態產生的首頁,例如響應使用者查詢資料庫的要求、產生報表等。當在瀏覽器上填好表單(form)的輸入資料,以提供HTTP要求時,可以在站台伺服器中執行的應用程式,而不只是一個HTML 檔案。站台伺服器收到要求執行的應用程式,分析表單(form)的輸入資料,將執行的結果以HTML的格式傳送給瀏覽器。 根據使用者請求產生動態首頁的傳統方法有CGI、ISAPI等。CGI是根據瀏覽器端的http請求啟用響應進程,每一個請求對應一個進程。當同時有很多請求時,程式擠占系統資源,造成效率低下;ISAPI針對這一缺點進行改進,利用dll(動態連結程式庫)技術,以線程代替進程,提高了效能和速度,但要考慮線程的同步問題,而且開發步驟煩瑣。這兩種技術和另一普遍使用的開發動態網頁的技術Java都還存在著另外一個問題,那就是開發困難,程式的開發和HTML寫作是兩個完全不同的過程,需要專門的程式員開發。而較簡單的開發技術如JavaScript和IDC(Internet Database Connector)等功能有限,不敷使用。 ASP使用的ActiveX技術基於開放設計環境,使用者可以自己定義和製作組件加入其中,使自己的動態網頁幾乎具有無限的擴充能力,這是傳統的CGI等程式所遠遠不及的地方。ASP與常見的在Client端實現動態首頁的技術如Java applet、ActiveX Control、VBScript、JavaScript等不同,ASP中的命令和Script語句都是由伺服器來解釋執行的,執行結果產生動態產生的Web頁面並送到瀏覽器;而Client端技術的Script命令則是由瀏覽器來解釋執行。由於ASP是在伺服器端解釋執行,開發人員可以不必考慮瀏覽器是否支援ASP;同時由於它在伺服器端執行,開發人員也不必擔心別人下載程式從而竊取編程邏輯。 ASP通過尾碼名為.asp的ASP檔案來實現,一個.asp檔案相當於一個可執行檔,因此必須放在Web伺服器上有可執行許可權的目錄下。當使用者從瀏覽器輸入了.asp檔案的地址後,瀏覽器就將這個URL請求發給Web Server,如果Web Server上裝了ASP,就調用ASP。ASP讀出相應.asp檔案,解釋並執行命令,動態產生一個HTML頁面回傳Web Server,然後Web Server再把結果發送給瀏覽器。ASP檔案的製作和HTML類似,且和HTML開發整合,可以在同一個過程完成,利用ASP將可以執行的指令碼嵌入到HTML檔案中(將HTML檔案的尾碼名改為.asp),這使得HTML檔案的編寫與指令碼的開發融合在一起。通過ASP內建的對象、伺服器組件(Server Component)可以完成非常複雜的任務,而且使用者還可以自己開發或利用別人開發的伺服器組件完成專門的任務。ASP比較網關及伺服器擴充模式有著以下優點:
(1)完全與HTML檔案融合在一起;
(2)容易建立,不需要其它編譯、連結程式;
(3)物件導向的並通過ActiveX Server對象可擴充。
二、電子商務資料訪問方式
電子商務是指通過電子方式,並在網路基礎上實現物資、人員過程的協調,以便商業交換的活動。在電子商務系統中,Web提供了與客戶進行通訊聯絡的有效手段,利用Web技術,實現Web伺服器與資料庫系統的串連,完成對資料的處理與查詢,使用者可以通過操作簡單易學的瀏覽器來查詢處理所需要的各種資料。 實現Web伺服器與資料庫的串連一般有兩種方法:
一種是利用中介軟體技術在兩者之間建立串連和通訊,如CGI(通用閘道介面)和API(API)。Web伺服器通過調用CGI程式實現與Web瀏覽器的互動,即CGI程式接受瀏覽器發給Web伺服器的資訊,進行處理後,將相應結果再送回給Web伺服器,通過Web伺服器將資訊傳送給瀏覽器。但CGI程式在響應速度和資源利用等方面有較大局限性,用戶端每請求一個CGI程式,伺服器端便開啟一個進程,當請求的數量較大時容易引起瓶頸現象,開發人員常利用API編程來擴充伺服器功能,API程式占系統資源少,運行效率較高,但它的編程較CGI程式更為複雜;
另一種是由瀏覽器中的Java小應用程式(Java Applet)通過瀏覽器訪問Web伺服器上的資料庫,利用了JDBC(Java Database Connectivity)技術,它通過JDBC提供的API實現對Web Server的訪問。由於Java Applet本身的局限性,目前大多數的應用是基於中介軟體技術的。 ASP也是屬於中介軟體的一種模式,但在Windows平台上它比較網關及伺服器擴充模式有著較大的優點。網關的最大特點是它的平台無關性,但網關程式通常較難編寫和改變。網關程式通常是一個獨立的程式,並不和HTML檔案融合在一起,它需要用如C、C++、VB、Perl等語言來編寫獨立的應用程式,而ASP應用改變了這一點。使用ASP不僅可以讀取Access和 SQL Server的資料庫,而且還可以讀取其他ODBC(Open Database Connect 開放式資料庫互聯)相容的資料庫。在ASP中訪問資料庫是通過ADO(ActiveX Database Object活動資料對象)及交易處理語句來實現的。ADO是一種操作Microsoft所支援的資料庫的方法,是一項容易使用並且可擴充的將資料庫訪問添加到 Web 頁的技術。ADO對象的使用與DAO(Data Access Objects)、RDO(遠端資料物件)的方式相似。在ASP中,ADO可以看作是一個伺服器組件,更簡單點說,是一系列的對象,應用這些功能強大的對象,即可輕鬆完成對資料庫複雜的操作。
三、ASP在電子商務中的應用
在電子商務中,對使用者而言,進行網上資訊查詢的目的是尋找自己需要的產品或服務,而對於商品或服務提供者來說,其目的則是向使用者推銷自己的產品或服務。因此,讓使用者通過瀏覽器查詢服務器的後端資料庫是許多Web服務提供者必需有的服務,ASP通過內建的ADODB組件來實現這一功能。可以使用ADO去編寫緊湊簡明的指令碼以便串連到ODBC 相容的資料庫和 OLE DB 相容的資料來源。具體的操作步驟可以歸納為以下幾步:
① 建立資料庫源名(DSN) ADODB通過ODBC工作,因此要在ODBC中設定DSN(資料來源名)。開啟Windows的"控制台",雙擊"ODBC"的表徵圖,然後選擇"檔案 DSN "的屬性頁面,單擊<添加>,選擇資料庫驅動程式,然後單擊"下一步",按照螢幕的指示鍵入資料來源檔案的名稱,然後單擊"下一步",再單擊"完成"建立資料來源。
②建立資料庫連結 連結用以保持一些關於正在訪問的資料的動態資訊,以及連結者資訊。利用ADODB的成員函數Open和先前設定的DSN與資料庫連接,其文法如下: SetConnect=Server.CreateObject("ADODB.Connection") '建立了連結化物件Connect。 Connect.Open("DSN=dsnname;UID=userID;PWD=password") '開啟連結。dsnname為資料來源名;userID為使用者名稱;password為使用者口令。
③建立資料對象 ADO中的資料對象通常儲存的是查詢結果。RecordSet 是ADO中最複雜的對象,有許多屬性和方法,靈活運用,可以達到許多好的效果。其建立方法如下: Set RecordSet =Connect.Execute(sqtStr) '建立並開啟了對象RecordSet ,sqtStr是一個串,代表一條標準的SQL語句。例如: sqlStr="SELECT*FROM b1" Set RecordSet =Connect.Execute(sqlStr) 這條語句執行後,對象RecordSet中就儲存了b1中的所有記錄。
④操作資料庫 可利用Execute方便地執行資料的插入、修改、刪除等操作。如執行插入操作: sqlStr="Insert Into b1Values(1,2)" Connect.Execute(sqlStr)
⑤關閉資料對象和連結 在使用了ADO對象之後,一定要關閉資料對象和連結。在ASP中通過調用方法close實現關閉。 關閉建立的資料對象:Record Set .close Set Record Set=Nothing 關閉建立的連結化物件:Connect. close Set Connect=Nothing 完整的程式片段: <% SetConnect=Server.CreateObject("ADODB.Connection")'產生組件執行個體 Connect.Open("DSN=dsnname;UID=userID;PWD=password") '串連資料庫 SQL=select*fromtablename SetRS=Connect.Execute(SQL) '執行查詢 %> <%DoWhile Not RS.EOF%>'顯示結果 <%=RS(fieldname)%> <% Rs.MoveNext Loop %> 上述是用ASP訪問資料庫的全過程,由於應用物件導向思想,所有操作都比較簡單,使用者需要注意的僅是對資料結構的瞭解、當前所操作的對象及對象的屬性等等,只要對這些有了清晰的認識,再加上ASP強大功能,在網路上使用資料庫,實現使用者與頁面間交換資訊,就再也不是什麼難事了。
結束語:隨著Web技術的發展,基於Intranet的電子商務系統無疑較傳統商務有著更大的應用前景,如何提務系高這種電子商統中的資料訪