WebSphere從入門到學通

           

          WebSphere快速入門

          我們已經走進電子商務時代,本書將帶您進入電子商務應用開發的世界。本書第一章介紹電子商務理念及有關技術基礎,包括Internet、Web和Java。第二章介紹IBM電子商務應用框架,包括WebSphere。第三章給您帶來WebSphere Studio應用開發技術。第四、五章分別介紹新一代Web應用的關鍵技術:Java Servlet和JSP。第六章介紹新一代Web應用服務器軟件:WebSphere應用服務器。第七章帶給您新一代Web應用編程技術:WebSphere應用編程技術。本書附錄中的實驗指導帶您一起走過使用WebSphere技術開發電子商務應用的過程。
          本書特別適合于信息技術類的高年級大學生和研究生,以及從事電子商務應用開發的技術人員。通過學習本書,您將了解電子商務應用開發的先進技術,并快速掌握WebSphere電子商務應用開發的基本技術。
          第一章 電子商務基礎知識
          Web正改變著我們生活的方方面面,但任何領域都沒有象商務運作方式那樣經歷著一場快速而巨大的變革。眾多商家正在準備或已經走向轉變到電子商務的道路,即使用Internet技術轉變關鍵的商務過程。本章介紹電子商務理念及有關技術基礎,包括Internet、Web和Java。
          1.1 電子商務理念
          從20世紀70年代以來,很多機構依靠電子數據交換(EDI、Electronic Data Interchange)實現業務處理的自動化。EDI著重于商業伙伴之間的事務處理標準化,但是EDI標準缺乏靈活性和可擴展性。進入20世紀90年代,隨著Web技術的發展,尤其是在1995年Java出現以后,許多機構開始采用Web應用系統來支持電子商務。電子商務(e-business)是指借助Internet及相關技術進行商務活動,而一個電子商務(an e-business)是這樣的一個機構,它通過內部網、外部網和Web將關鍵業務系統直接連接到客戶、員工、供應商和業務伙伴。一個機構要轉型為一個電子商務,就要使用Internet技術轉變關鍵的業務過程,如客戶關系管理、電子商貿、供應鏈管理、企業內部管理。這個轉變過程也是一個綜合使用Internet技術、信息技術、商務技術轉變業務方式的過程。
          然而,電子商務不僅僅是技術更新。轉變到電子商務必須對需要做什么有一個明確的藍圖,以及對實現這個藍圖有一個清晰的發展指南。電子商務周期模型正是為企業開展電子商務提供了一個模型。電子商務周期(參見圖1-1)由四個組成階段,包括轉變、構造、運行和利用。想要轉變到電子商務的機構無論何時均可以從任何一個階段開始。這也是一個重復的過程。

          圖1-1:電子商務周期模型

          1) 轉變階段是關于轉變核心的商務過程,也就是要將現有的商務模型擴展到網絡世界以創造一個電子商務模型。應用Internet技術為商務創造最大限度的價值,電子商務改變著客戶關系管理、供應鏈和電子商貿的傳統準則。在轉變商務過程時,每一個商務過程應該放在整體環境中加以考慮。否則,充其量只是離散的各個更好的商務過程,無法帶來期望的改善客戶服務和提高電子商務價值的效果。
          2) 構造階段是關于構造新的應用系統。轉變核心的商務過程需要新一代的應用系統。構造階段也包括使用一個基于開放標準的途徑將已有應用系統遷移到Web上。要求電子商務應用系統是基于標準的、以服務器為中心的、可伸縮的、可快速部署、易用和易管理的。
          3) 運行階段涉及一個可伸縮的、可用的、安全的運行環境。圍繞著商務和應用系統通常有一個基礎設施。基礎設施提供的服務要求是可用的、可伸縮的、易管理的和安全的。
          4) 利用階段是關于知識和信息的利用。這里的焦點是知識管理,也就是說利用我們知道的東西。與信息管理不同,知識管理包括對顯式知識和隱式知識的管理。傳統的 IT系統處理的是顯式知識,即能寫下來并能編程處理的。而隱式知識是人們知道的但沒有被寫下來的東西,它基于直覺、經驗和洞察力。
          從簡單的開始,快速地增長。從現有的基礎上構造電子商務應用系統,逐步將核心業務擴展到Internet上,最終實現電子商務帶來的巨大的投資回報。然而,電子商務的技術基礎主要包括Internet、Web和Java,本章以下各節介紹這些技術的基礎知識。
          1.2 Internet基礎知識
          Internet已經成為企業、政府和研究機構共享信息的基礎設施,同時也是開展電子商務的基礎。Internet 的先驅是ARPANET。**國防高級研究計劃局 (Defense Advanced Research Project Agency、簡稱DARPA)于20 世紀 60 年代后期資助開發了一種叫做 ARPANET的實驗性通訊系統。起初,它僅用于連接**軍事機構的計算機網絡,但隨后不久,這個網絡很快擴展到與國防有關的公司和研究機構。從此,面向特定應用需求的不同網絡協議及網絡技術相繼出現,同時也帶來了網絡互連的問題。如果兩個網絡使用不同的協議,即使采用某種網絡技術將它們在物理上互相連接起來,應用系統(如郵件系統)之間也無法相互溝通。為此,很多組織,如CCITT(Consultative Committee on International Telephony and Telegraphy,現在成為 ITU-T,即International Telecommunications Union - Telecommunication Standardization Sector)和ISO(國際標準化組織),開始考慮定義一套分層協議族,使得應用系統之間能相互通信,即使這些應用系統運行在不同的網絡環境中(如不同的操作系統和不同的網絡技術)。DARPA從1970年左右開始研究一套稱之為TCP/IP的分層協議族,于1978年左右基本定形。ARPANET于 1980年左右開始采用TCP/IP協議族,并于1983年全面實現。與此同時,TCP/IP協議族在 UNIX操作系統中也得到了實現(由加利福尼亞大學伯克利分校完成),并免費分發。從此,TCP/IP在大學和研究機構中迅速傳播,并成為連接UNIX系統的標準協議。這些互相連接的網絡廣泛深入到大學和其它組織(一開始主要是非贏利組織)。由于個人計算機的迅速普及,該網絡擴展到全球大部分地方,并且開始吸引成千上萬的個人以及贏利組織加入,由此逐漸形成了所謂的 Internet(因特網)。Internet指的是全球性互連網絡。它由下列網絡群構成:
          1) 主干網:通常為大規模網絡,這些網絡主要用來與其它網絡互連,如**的NSFNET(NSF是指**國家自然科學基金會)、歐洲的EBONE、大型的商用主干網。
          2) 區域網:如連接大專院校的區域網。
          3) 商用網絡:為客戶提供連接骨干網的服務的網絡,或只供公司內部使用且連接到Internet的網絡。
          4) 局域網:如校園網。
          90年代,Internet發展十分迅猛,這與1991年HTML的問世和Gopher的免費發放有關,也與1993年Mosaic的問世有關,Internet的商用也加速了Internet的擴張。到20世紀末,Internet已經成為一種通過服務器將小型網絡連接起來的錯綜復雜的網絡結構。大部分情況下,服務器通過專門進行 Internet 通訊的線路來傳送數據。個人計算機則通過直接線路,或者通過電話線和調制解調器連接到這些服務器上。直接線路一般是高速的電訊線路,專門用于在建筑物之間或組織之間傳送數據。而標準的電話線路,現在主要是綜合業務數字網絡(ISDN)的線路,則通常用于連接個人計算機。

          WebSphere快速入門 (2)

          1.3 Web基本知識
          Web(World Wide Web、萬維網)技術是電子商務的核心技術。Web的思想可追溯到Tim Berners-Lee于1989年3月在CERN (Centre European pour la Recherche Nucleaire,或稱European Laboratory for Particle Physics、歐洲粒子物理實驗室)寫的一個關于信息管理的項目建議書(Information Management: A Proposal)。該建議書提出了分布式超文本系統的設想,旨在將CERN已有的幾個信息服務器一體化,并提供一個簡單的用戶界面來存取各種形式的信息。1990年Web瀏覽器和Web服務器使用面向對象技術相繼在CERN實現。Berners-Lee 和他的合作伙伴成功引入了構成Web體系結構的基本元素:Web服務器、Web瀏覽器、瀏覽器與服務器之間的通信協議HTTP(Hypertext Transfer Protocol 、超文本傳輸協議)、寫Web文檔的語言HTML(Hypertext Markup Language、超文本標記語言)、以及用來標識Web上資源的URL(Universal Resource Locator 、統一資源定位器)。1993年,**伊利諾斯大學國家超級計算應用中心NCSA (National Center for Supercomputing Applications)的Marc Andreesen及其合作者發布了稱為Mosaic的瀏覽器,這是第一個較健壯的易用的瀏覽器,它具有友善的圖形用戶界面。從此,Web迅速成長為全球范圍內的信息寶庫。1994 年,W3 聯盟在Tim Berners-Lee的領導下成立,該組織通過制定技術規范與提供參考軟件來發展Web的技術標準并促進Web產品之間的互操作性。
          URL(Universal Resource Locator 、統一資源定位器)用來唯一標識Web上的資源,包括Web 頁面、圖象文件(如gif 格式文件和jpeg格式文件)、音頻文件(如au格式)、視頻文件 (如mpeg格式文件)。URL的格式為:協議://主機名<:端口號>/標識符(例如 http://www.seu.edu.cn:80/index.html )。協議可以是HTTP、HTTPS(安全的超文本傳輸協議)、FTP;主機名用來標識被請求的服務器;端口通常為不同協議保留,例如FTP和HTTP守護進程偵聽不同的端口,FTP缺省的端口號為21,HTTP缺省的端口號為80;標識符說明被請求的是什么,可以是文件名(含路徑)或一個應用關鍵字 (如/cgi-bin/和/servlet/)加上一些信息(如一個腳本的名字和servlet的名字)。例如,用戶鍵入URL格式的地址(例如 http://www.seu.edu.cn:80/index.html );瀏覽器請求主機www.seu.edu.cn 在80端口提供的HTTP服務,并要求取得該服務器上的index.html文件;服務器接受請求,取得該文件;服務器把文件返回瀏覽器,并告訴瀏覽器這是一個HTML文件;瀏覽器在顯示器上顯示這個頁面。在瀏覽器和web服務器之間使用的協議是HTTP。
          HTTP(Hyper Text Transfer Protocol、超文本傳輸協議)是用來在互連網上傳輸文檔的協議,它是Web上最常用也是最重要的協議,也是Web服務器和Web客戶(如瀏覽器)之間傳輸Web頁面的基礎。HTTP是建立在TCP/IP之上的應用協議,但并不是面向連接的,而是一種請求/應答(Request /Response)式協議。瀏覽器通常通過HTTP向Web服務器發送一個HTTP請求,其中包括一個方法、可能的幾個頭、一個體。常用的方法類型包括:GET(請求一個網頁)、POST(傳送一個表單中的信息)、PUT(存入這個信息、類似于FTP中的PUT)和DELETE(刪除這個信息)。Web服務器接受到HTTP請求之后,執行客戶所請求的服務,生成一個HTTP應答返回給客戶。HTTP應答有一個狀態行、可能的幾個頭、一個體。在頭中可以定義返回文檔的內容類型(MIME類型)、Cache控制、失效時間。MIME類型包括:“text/html”(HTML文本)、 “image/jpeg”(JPEG圖)、“audio/ra”(RealAudio文件)。HTTP本身也在不斷完善和發展,目前,常用的是 HTTP1.1,它更好地利用TCP的特性,對HTTP1.0作了改進。
          HTML (Hypertext Markup Language、超文本標記語言)是Web誕生與發展的要素之一,它旨在使得Web頁面能顯示在任何HTML使能的瀏覽器中,而與連網的機器平臺無關。HTML并不是一個程序設計語言,而是一個標記語言,它所提供的標記是由SGML(Standard Generalized Markup Language,標準的通用標記語言)定義的。SGML是ISO(國際標準化組織)在1986年推出的一個用來創建標記語言的語言標準,它源自IBM早在1969年開發的 GML(Generalized Markup Language),該語言的名稱也正好包含了三位創始人姓字的第一個字母,他們分別是Charles F. Goldfarb, Edward Mosher,Raymond Lorie。SGML是一種元語言,即用來定義標記語言的語言,它提供了一種將數據內容與顯示分離開來的數據表示方法,使得數據獨立于機器平臺和處理程序。這些特性促使Tim Berners-Lee 采用SGML來創建稱之為HTML的標記語言。1993年形成HTML 1.0,以后不斷完善,HTML 4.0發表于1997年。特別需要指出的是HTML提供的鏈接機制是Web的本質特性之一。但是,HTML更多的關注Web瀏覽器如何在頁面上安排文本、圖象和按鈕等,過多地考慮外觀使其缺乏對結構化數據的表示能力。另外,HTML中有限的標記不能滿足很多Web應用的需要,如基于Web的大型出版系統和新一代的電子商務,而為各種應用需要不斷地往HTML中增加標記顯然不是最終的解決方法,究其原因是HTML缺乏可擴展性。解決方案應該是簡化SGML使之能應用到Web上。為此,從1996年開始,W3C(World Wide Web Consortium) 的一個工作組在Jon Bosak的領導下致力于設計一個超越HTML能力范圍的新語言,這個語言后來被命名為XML(Extensible Markup Language,可擴展標記語言)。1998年2月,W3C發布了XML 1.0作為其推薦標準。現在,W3C已經用XML設計出一個與HTML4.01功能等價的語言,稱為XHTML1.0 (Extensible HyperText Markup Language)。
          Web客戶通常指的是Web瀏覽器,如Netscape Navigator和Microsoft Internet Explorer。這種瀏覽器能理解多種協議,如HTTP、HTTPS、FTP;也能理解多種文檔格式,如text、HTML、JPEG(一種圖象文件格式)、XML(有的尚未支持);也具備根據對象類型調用外部應用的功能。需要指出的是HTML文檔中的鏈接在Web瀏覽器中通常以帶下劃線的方式顯示,用戶點擊某個鏈接就能瀏覽到所鏈接的Web資源,這也是Web的魅力所在。
          Web服務器(或稱HTTP服務器)提供HTTP服務。本來Web服務器只提供“靜態”內容,即返回在URL里指定的文件的內容,一般具備將URL名映射到文件名的功能,并能實施某種安全策略。現在,可采用CGI(通用網關接口)技術或Java Servlet技術從一個運行的程序里得出“動態”內容,可以采用應用關鍵字(如/cgi-bin/和/servlet/)來組織腳本文件和Servlet文件,而且現在的Web服務器通常還具備連接數據庫的功能,這些形成了Web應用的出現。通常,一個Web服務器還提供其它服務,如FTP服務。有的還可作為代理服務器。一個代理服務器是一個可以從別的服務器上為它的客戶取文件的服務器。代理服務器可以通過緩存應答(頁面)使得響應時間更快,也可以降低網絡流量,對外能隱藏內部網信息。
          總之,URL、HTTP、HTML(以及XML)、Web服務器和Web瀏覽器是構成Web的五大要素。Web的本質內涵是一個建立在Internet基礎上的網絡化超文本信息傳遞系統,而Web的外延是不斷擴展的信息空間。Web的基本技術在于對Web資源的標識機制(如URL)、應用協議(如HTTP和HTTPS)、數據格式(如HTML和XML)。這些技術的發展日新月異,同時新的技術不斷涌現,因此Web的發展前景不可限量。
          1.4 Java 簡介
          現代技術的發展,尤其是網絡技術,給現代企業帶來了許多新的機遇和挑戰,如改善客戶服務、全球化和信息檢索等,這些在技術上反映為信息的獲取、系統管理、系統集成、新技術的開發、Internet、Intranet等等與商業的結合。而這些要求一個隨處可用的開放的結構和在不同的平臺之間低成本的信息傳遞方式,Java正好滿足這些要求。
          Java是由Sun Microsystems公司于1995年5月推出的Java程序設計語言(以下簡稱Java語言)和Java平臺的總稱。用Java實現的 HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺、動感的Web、Internet計算。從此,Java被廣泛接受并推動了Web的迅速發展,常用的瀏覽器現在均支持Java applet。另一方面,Java技術也不斷更新。
          Java平臺由Java虛擬機(Java Virtual Machine)和Java 應用編程接口(Application Programming Interface、簡稱API)構成。Java 應用編程接口為Java應用提供了一個獨立于操作系統的標準接口,可分為基本部分和擴展部分。在硬件或操作系統平臺上安裝一個Java平臺之后,Java 應用程序就可運行。現在Java平臺已經嵌入了幾乎所有的操作系統。這樣Java程序可以只編譯一次,就可以在各種系統中運行。Java應用編程接口已經從1.1.x版發展到1.2版。目前常用的Java平臺基于Java1.2。
          Java語言是一個支持網絡計算的面向對象程序設計語言。Java語言吸收了Smalltalk語言和C++語言的優點,并增加了其它特性,如支持并發程序設計、網絡通信、和多媒體數據控制等。主要特性如下:
          1) Java語言是簡單的。Java語言的語法與C語言和C++語言很接近,使得大多數程序員很容易學習和使用Java。另一方面,Java丟棄了C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉換。特別地,Java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為內存管理而擔憂。
          2) Java語言是一個面向對象的。Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現機制(關鍵字為implements)。Java語言全面支持動態綁定,而C++ 語言只對虛函數使用動態綁定。總之,Java語言是一個純的面向對象程序設計語言。
          3) Java語言是分布式的。Java語言支持Internet應用的開發,在基本的Java應用編程接口中有一個網絡應用編程接口(java.net),它提供了用于網絡應用編程的類庫,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分布式應用的重要手段。
          4) Java語言是健壯的。Java的強類型機制、異常處理、廢料的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。
          5) Java語言是安全的。Java通常被用在網絡環境中,為此,Java提供了一個安全機制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網絡下載的類具有一個安全防范機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節代碼檢查,并提供安全管理機制(類SecurityManager)讓Java應用設置安全哨兵。
          6) Java語言是體系結構中立的。Java程序(后綴為java的文件)在Java平臺上被編譯為體系結構中立的字節碼格式(后綴為class的文件), 然后可以在實現這個Java平臺的任何系統中運行。這種途徑適合于異構的網絡環境和軟件的分發。
          7) Java語言是可移植的。這種可移植性來源于體系結構中立性,另外,Java還嚴格規定了各個基本數據類型的長度。Java系統本身也具有很強的可移植性,Java編譯器是用Java實現的,Java的運行環境是用ANSI C實現的。
          8) Java語言是解釋型的。如前所述,Java程序在Java平臺上被編譯為字節碼格式,然后可以在實現這個Java平臺的任何系統中運行。在運行時,Java平臺中的Java解釋器對這些字節碼進行解釋執行,執行過程中需要的類在聯接階段被載入到運行環境中。
          9) Java是高性能的。與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨著JIT(Just-In-Time)編譯器技術的發展越來越接近于C++。
          10) Java語言是多線程的。在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創建。通常有兩種方法來創建線程:其一,使用型構為Thread(Runnable) 的構造子將一個實現了Runnable接口的對象包裝成一個線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創建的對象即為線程。值得注意的是Thread類已經實現了Runnable接口,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。 Java語言支持多個線程的同時執行,并提供多線程之間的同步機制(關鍵字為synchronized)。
          11) Java語言是動態的。Java語言的設計目標之一是適應于動態變化的環境。Java程序需要的類能動態地被載入到運行環境,也可以通過網絡來載入所需要的類。這也有利于軟件的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查。
          Java語言的優良特性使得Java應用具有無比的健壯性和可靠性,這也減少了應用系統的維護費用。Java對對象技術的全面支持和Java平臺內嵌的 API能縮短應用系統的開發時間并降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結構和在多平臺之間傳遞信息的低成本方式。特別是Java企業應用編程接口(Java Enterprise APIs)為企業計算及電子商務應用系統提供了有關技術和豐富的類庫。
          1) JDBC(Java Database Connectivity)提供連接各種關系數據庫的統一接口。
          2) EJB(Enterprise JavaBeans)使得開發者方便地創建、部署和管理跨平臺的基于組件的企業應用。
          3) Java RMI(Java Remote Method Invocation)用來開發分布式Java應用程序。一個Java對象的方法能被遠程Java虛擬機調用。這樣,遠程方法激活可以發生在對等的兩端,也可以發生在客戶端和服務器之間,只要雙方的應用程序都是用Java寫的。
          4) Java IDL(Java Interface Definition Language) 提供與CORBA(Common Object Request Broker Architecture)的無逢的互操作性。這使得Java能集成異構的商務信息資源。
          5) JNDI(Java Naming and Directory Interface)提供從Java平臺到的統一的無逢的連接。這個接口屏蔽了企業網絡所使用的各種命名和目錄服務。
          6) JMAPI(Java Management API)為異構網絡上系統、網絡和服務管理的開發提供一整套豐富的對象和方法。
          7) JMS(Java Message Service)提供企業消息服務,如可靠的消息隊列、發布和訂閱通信、以及有關推拉(Push/Pull)技術的各個方面。
          8) JTS(Java transaction Service)提供存取事務處理資源的開放標準,這些事務處理資源包括事務處理應用程序、事務處理管理及監控。

          在Java技術中,值得關注的還有JavaBeans,它是一個開放的標準的組件體系結構,它獨立于平臺,但使用Java語言。一個JavaBean是一個滿足JavaBeans規范的Java類,通常定義了一個現實世界的事物或概念。一個JavaBean的主要特征包括屬性、方法和事件。通常,在一個支持JavaBeans規范的開發環境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可視地操作JavaBean,也可以使用JavaBean構造出新的JavaBean。JavaBean的優勢還在于Java帶來的可移植性。現在,EJB (Enterprise JavaBeans) 將JavaBean概念擴展到Java服務端組件體系結構,這個模型支持多層的分布式對象應用。除了JavaBeans,典型的組件體系結構還有DCOM 和CORBA,關于這些組件體系結構的深入討論超出了本書的范圍。
          第二章 電子商務應用框架
          要轉變傳統的業務過程,就需要開發和部署電子商務應用系統的一個基礎,電子商務應用框架正是這樣的一個基礎。許多企業希望電子商務應用系統具備下列特征:
          1) 基于標準;
          2) 以服務器為中心;
          3) 可伸縮;
          4) 能利用已有的核心系統;
          5) 可快速部署和易用;
          6) 易管理。
          本章介紹的電子商務應用框架能滿足企業開發電子商務應用系統的上述需求。所謂一個框架是指一個可復用的設計,表示為一組抽象的元素范例以及元素范例之間合作的接口。框架是有針對性的,如一個用戶界面框架只為軟件系統的用戶界面提供了一個設計,而一個應用框架為整個應用系統提供了一個設計。一個應用框架中的元素范例也可稱之為組件。本節介紹的電子商務應用框架基于業界標準;它為開發和部署電子商務應用系統提供了一組完整的服務;它提供的Web應用編程模型定義了Web應用拓撲結構以及使用框架提供的服務來設計Web應用的一個模型。這個框架基于獨立于平臺和提供商的技術標準,包括關于客戶端、應用服務器、網絡、數據和基礎設施的標準。這些標準使得客戶能在任何時候在網絡上的任何地方存取有關數據和服務,也使得開發的應用軟件只需寫一次就能到處運行,并能即插即用各種組件。下面介紹電子商務應用框架的基本系統模型、體系結構和Web應用編程模型。

          WebSphere快速入門(3)

          2.1 基本系統模型
          電子商務應用框架為設計電子商務解決方案提供了一個模型。這個框架基于一個多層的分布式環境,在這個環境中,任何多的各層應用邏輯和商業服務分離為各種組件,這些組件通過網絡相互通信。在它的最基本的形式中,可以被描述為一個“邏輯上”的3層計算模型,即分層是在邏輯上的,并不要求是物理上的。這個基本的3層系統模型包括客戶、Web 應用服務器、服務器(見圖2-1)。在這3個邏輯層中的應用元素通過一組業界標準的協議、服務和軟件連接器互相連接起來。
          圖2-1:基本系統模型

          1. 客戶。這個應用框架支持廣泛的客戶端設備,從個人數字助理(PDA)、智能卡(smartcard)、數字無繩電話等大眾普遍使用的設備到網絡計算機和個人計算機。將這些客戶端設備連結到 Web應用服務器的思路是使用一組被廣泛支持的基于Internet的技術和協議。客戶端的主要作用是將應用產生的結果信息顯示給用戶。正因為如此,這種客戶通常被稱為“瘦客戶”,也就是說在客戶端執行的應用邏輯很少或沒有,這樣,很小的軟件(如Web瀏覽器)需要在客戶端安裝。
          2. Web應用服務器。Web應用服務器是這樣的一個平臺,它為應用的業務邏輯提供了一個運行環境。它包括HTTP服務器和企業Java服務,支持分布式網絡環境下應用軟件的快速開發和部署。應用軟件在Web應用服務器及其內嵌的JVM(Java Virtual Machine,Java虛擬機)中運行。這些服務端的組件通過HTTP或IIOP(Internet Inter-ORB Protocol)與客戶和其它組件通信,并利用網絡基礎架構提供的目錄和安全服務。這些組件還可以利用數據庫、事務處理、和群件等設施。
          3. 連到外部服務的連接器。外部服務通常是企業在信息技術上多年投資的結果,是人們日常工作所依賴的應用和數據。這些應用和數據是重要的商務資源,需要以一種安全且可控的方式連接到Web上,使得企業充分發揮它們的作用為顧客、業務伙伴和員工服務。連接器就是使得它成為現實的一種機制。連接器將中間層內新增的業務邏輯連結到企業已有的應用和數據,從而將Internet的力量無縫地連接到企業中來。

          這個電子商務基本系統模型集中體現了面向Web的網絡計算風格,并結合了顯示、業務邏輯、數據存貯這3層應用元素。這個基本系統模型的特性如下:
          1. 基于Web瀏覽器/Java applet使能的廣泛的客戶連接。
          2. 易管理的客戶,通過配置需要很少或無須本地的軟件安裝和數據備份。
          3. 寫一次、到處可運行的應用軟件的快速開發及即時部署。
          4. 提倡軟件復用,使得新添程序量最小化、生產效率最大化,并提高軟件質量。
          5. 與外部服務的連接,在這些外部服務系統中駐留著已有業務應用和數據,充分發揮它們的作用為顧客、業務伙伴和員工服務。
          2.2 體系結構
          電子商務應用框架的體系結構為開發和部署電子商務應用系統提供了一組完整的服務。這個體系結構由下列關鍵元素構成(參見圖2-2):

          圖2-2:應用框架的體系結構

          1) 客戶基于Web瀏覽器/Java applet模式,使得對應用系統的存取變得很普遍,并且應用組件能即時發送。
          2) 網絡基礎設施提供了如TCP/IP、目錄和安全等服務,這些服務的能力可通過開放且標準的接口和協議來存取。
          3) 應用服務器軟件為電子商務應用系統提供了一個平臺,包括HTTP服務器、數據庫和事務處理服務、郵件和群件服務、和消息服務。
          4) 應用集成使得異構應用系統間相互通信,使得Web能存取現有數據和應用系統。
          5) Web應用編程環境為創建動態和健壯的電子商務應用系統提供了服務端Java編程環境。
          6) 電子商務應用服務為方便電子商務解決方案的創建提供了高層應用的特定功能。
          7) 系統管理用來滿足網絡計算的管理需求,系統中的元素包括用戶、應用、服務、基礎構架、和硬件。
          8) 開發工具用來創建、組裝、部署、和管理應用系統。

          1. 客戶
          客戶通常為“瘦客戶”,也就是說在客戶端執行的應用邏輯很少或沒有,這樣,很小的軟件(如Web瀏覽器)需要在客戶端安裝。在這個模型中,應用被安排在服務器上并動態地即時(on-demand )下載到發出請求的客戶。正因為如此,新一代應用的客戶端部分應該用HTML、DHTML、XML、Java applets來實現。這種新一代應用支持廣泛的客戶端設備,從大眾普遍使用的個人數字助理(PDA)和智能卡(smartcard)等設備到網絡計算機和個人計算機。

          2. 網絡基礎設施
          它為整個體系結構提供了一個安全的可伸縮的分布式網絡平臺,包括下列均基于開放標準的服務:
          1) TCP/IP和網絡服務。如DHCP和WAP,DHCP為進入網絡的設備動態地分配IP地址,而WAP(Wireless Application Protocol、無繩應用協議)將信息和電話服務發送到移動電話和其它的無繩設備。
          2) 安全服務。基于公開密鑰技術的安全服務支持用戶辨認和鑒別、存取控制、保密、數據完整性和交易的無否認性。
          3) 目錄服務。基于LDAP(Lightweight Directory Access Protocol、輕型目錄存取協議)的目錄服務定位網絡中的用戶、服務和資源。
          4) 文件和打印服務。可以通過Web瀏覽器來存取和管理文件和打印服務

          3. 應用服務器軟件
          應用服務器軟件層為開發和支撐運行在Web應用服務器上的電子商務應用系統的商務邏輯提供了核心功能。包括下列服務:
          1) HTTP服務器。它協調、收集并組合包含靜態和動態內容的Web頁面,并將它們發送給客戶。
          2) 郵件和社團服務。它們提供e-mail、工作日歷、小組工作安排、聊天、新聞組討論等服務。
          3) 群件服務。它提供一個豐富的共享的虛擬工作間,并支持業務工作流程的協調。
          4) 數據庫服務。它將一個面向對象數據庫的特性及功能與Web應用服務器集成起來。
          5) 事務處理服務。它通過提供一個高可用的、健壯的、可擴充的、安全的事務處理應用執行環境來擴展Web應用服務器的功能。
          6) 消息發送服務。它提供健壯的異步通信和消息代理設施來支持通信的發表/訂閱模型和消息轉換。

          4. 應用集成
          應用集成部分使得異構應用系統間在企業內或跨越企業相互通信,這些異構應用系統可能是用不同的程序設計語言實現的,也可能建立在不同的體系結構之上。企業目前的大量關鍵數據和應用程序(特別是事務處理程序)駐留在已有的系統中。應用集成使得Web客戶以及服務器能與企業已有系統中的數據和程序一起工作,將 Internet的力量無縫地連接到企業中來。所支持的集成方法包括連接器、應用消息發送服務、商務過程集成與工作流服務、組件集成服務。

          5. Web應用編程環境
          Web應用編程環境基于Java servlets、Java Server Pages (JSP)、Enterprise Java services 和 Enterprise JavaBean 組件模型, 為創建在Web應用服務器上的動態和健壯的商務應用提供了編程環境。該環境提供了有關服務來鼓勵業務邏輯與顯示的分離,使得應用能按用戶興趣和客戶端設備來動態剪裁內容。

          6. 電子商務應用服務
          電子商務應用服務部分便利電子商務解決方案的創建。該部分包括的是面向高層應用的組件。它們建立在應用服務器軟件及網絡基礎設施的基礎上,并面向特定應用類型的功能需求按照應用框架的編程模型來實現的。比如支付服務和定單管理服務。
          7. 系統管理
          對于企業內部,系統管理服務為支持端到端的管理提供了核心功能,提供的有關工具和服務來支持應用系統整個生命周期的管理,從安裝和配置到運作特性的監控。跨越企業,系統管理服務提供一個協作管理途徑,包括策略管理和數據倉庫等。
          8. 開發工具
          開發工具用來創建、組裝、部署、和管理應用系統。

          WebSphere快速入門(4)

          2.3 Web應用編程模型
          Web應用是這樣的應用系統,它利用Web客戶(如Web瀏覽器)、Web服務器和標準的Internet協議。通常,Web應用也能利用來自外部非Web服務的應用系統和數據。Web應用編程模型定義了Web應用拓撲結構以及使用框架提供的服務來設計Web應用的模型。

          圖2-3:Web應用的拓撲結構

          圖2-3顯示了Web應用的拓撲結構(包括主要的元素)。值得注意的是,Web應用服務器和外部服務是不同邏輯層,它們可能運行在同一臺機器上。另外,Web應用服務器的功能可能分散在多臺機器上。通常,一個Web應用中的前端和業務邏輯部分運行在不同的機器上。Web應用的拓撲結構包含的元素有客戶、Web應用服務器、基礎設施服務和外部服務。
          1. 客戶
          客戶使用Internet技術標準(如TCP/IP、HTTP、HTML和XML)與Web應用服務器通信來存取業務邏輯和數據。客戶端的基本功能是接受并驗證用戶輸入,顯示從Web應用服務器到用戶的返回結果。客戶可以是Internet 、Intranet(內部網)和Extranet(外部網)中的客戶。Web應用編程模型的重要準則之一是Web應用的商務邏輯總是運行在服務端而不是在客戶端。其優點如下:
          1) 支持更廣泛的客戶端設備
          2) Web應用服務器能集成對資源(如數據庫)的存取,從而簡化應用的設計,增強可伸縮性,并提供對資源的更好保護。
          3) 運行在服務端的商務邏輯容易得到保護、更新和維護。
          4) 運行在服務端的商務邏輯使得用戶的應用環境得到集中管理并能在不同的客戶機上重建。

          2. Web應用服務器
          Web應用服務器是 Web應用拓撲結構的核心,它為Web應用提供了廣泛的程序設計、數據存取和應用集成等服務。我們可以把一個Web應用看作一個客戶與Web站點之間一系列的交互作用。整個交互過程從顯示在Web瀏覽器中一個頁面開始。用戶單擊該頁面上的一個按鈕或鏈接就產生一個請求,該請求被送到Web應用服務器。Web應用服務器對這個請求進行處理,產生新的頁面,并送回到客戶端。在Web瀏覽器中顯示的新頁面就是這一次請求的結果,可能也是下一次請求的開始。所以說,Web應用包含了一組交互或處理步驟,每一步必須產生一個頁面形式的響應,這個頁面作為后繼交互作用的入口。

          圖2-4:Web應用的交互模型

          深究單個交互的細節,不難發現這里有三個共用的處理要求,包括業務邏輯層、用戶界面層和交互控制器層(參見圖2-4)。具體來講:
          1) 業務邏輯層。記錄并處理用戶輸入的部分。比如:對應于在購物籃中添加一項商品的數據庫更新操作,或從一個銀行帳戶到另一個的資金轉帳操作。
          2) 用戶界面層。構造HTML頁面的部分。構造出來的頁面將被送回給用戶,它決定了交互結果的顯示形式和風格。
          3) 交互控制器層。控制其它元素的部分。處理HTTP請求,從業務邏輯層選擇要運行的組件,根據業務邏輯的運行結果從用戶界面層選擇相應的組件,以構造響應頁面。
          這三層正好對應到經典的M/V/C(Model/View/Controller,模型/視圖/控制器)范例。這一點很重要,因為不同層通常需要不同的開發技術和工具。應用框架為各層提供使用各種組件的支持,這些組件之間有一個良定的接口。

          3. 基礎設施服務
          除了上述程序設計機制, 應用開發者還需要運行時刻的服務來支撐Web應用。方便地定位應用組件、保證它們的可用性以及對它們安全的存取和執行等等都是在Internet、 Intranet和Extranet環境中實施Web應用的關鍵要素。基礎設施服務為支持Web應用提供下列設施:
          1) 目錄服務,本框架支持使用JNDI來存取基于LDAP協議的安全目錄服務。
          2) 認證授權,這個設施能產生用來鑒別用戶和服務器的證書。公開密鑰技術已經成為電子商務首選的可信賴的機制,而認證授權是公開密鑰技術中的一個關鍵部分,它提供了數據保密、數據完整性、簽名驗證和用戶鑒別等特性。
          3) 防火墻,它作為可信賴的內部網絡和不可信賴的外部網絡之間的一個接口。通常,防火墻使用報文過濾器根據報文的源地址、宿地址、和服務類別(即端口號)來過濾報文流。使用防火墻來控制外部網絡中的那些(IP級)能允許存取內部網絡、能使用那種類別的應用服務;同樣的模式能控制內部網絡對外部網絡的存取。
          4) 代理服務器,它起到為多個瀏覽器檢索Internet上數據的作用。作為客戶和Web應用服務器之間的一個管道,代理服務器將客戶的請求遞交給有關的服務器并把服務器的響應返回給客戶。這種工作方式還可以提供附加功能,如地址安全性和緩沖功能。

          4. 外部服務
          在這些外部服務系統中駐留著企業已有的應用和數據、以及商業伙伴的服務系統,如支付服務和外部信息服務。通常,這些應用和服務系統控制著關鍵的商務過程,需要與Web服務器集成起來為顧客、業務伙伴和員工服務。

          使用電子商務應用框架開發和部署電子商務應用系統帶來下列優勢:
          1) 極大地方便電子商務應用系統的快速開發和部署。
          2) 適應任何客戶端設備。
          3) 確保應用系統能移植到各種不同的服務器環境中。
          4) 利用并擴展已有的信息技術資源。
          這也是形成這個電子商務應用框架的重要原則

          WebSphere快速入門(5)

          2.4 WebSphere
          電子商務的靈魂是軟件,而電子商務應用系統通常采用以Web服務器為中心的計算模式(參見基本系統模型),因此,Web應用服務器軟件是電子商務市場的焦點。IBM WebSphere Application Server(WebSphere應用服務器)是眾多Web應用服務器軟件中的杰出代表。
          事實上,IBM WebSphere產品系列是一套典型的電子商務應用開發工具及運行環境。該產品系列包括:
          1) NetObject Fusion提供許多構建和組織站點的工具,可用來建立和管理整個Web站點;
          2) NetObject BeanBuilder是一個構建applets的可視化寫作工具;
          3) NetObjects ScriptBuilder提供了Smart HTML、JavaScript、JSP等的編輯器;
          4) Lotus Domino Go Webserver是一個Servlet使能的Web服務器;
          5) IBM WebSphere Studio提供了項目工作臺和有關向導,這些向導可用來存取數據庫、創建JavaBean和servlet等等;
          6) IBM WebSphere Application Server (WebSphere應用服務器)是一個Web應用服務器(內含IBM Http Server),它本質上是適合于servlet的Web服務器插件,提供了增強的Servlet API和Servlets管理工具,并集成了JSP技術和數據庫連接技術。
          第三章 WebSphere Studio應用開發
          本章結合IBM WebSphere Studio產品的使用,介紹電子商務應用開發技術。
          3.1 Lotus Domino Go Webserver
          Lotus Domino Go Webserver是一個Web服務器軟件。它具有下列特性:
          = 支持CGI、Servlet和一些其它的應用編程接口。這些應用編程接口用來創建動態頁面。
          = 具備代理服務器(Proxy Server)的功能。一個代理服務器是一個請求代理(Broker)。瀏覽器把請求發到代理服務器,代理服務器從網上或從緩存里取這個頁。
          = 支持SSL 3.0。SSL用來確保在web服務器和web瀏覽器之間安全通信。
          = 支持PICS(Platform for Internet Content Selection)。PICS使得用戶可以過濾他們遇到的材料,按照材料的分級(由Web管理員設置)接受或者拒絕材料。
          = 集成了搜索引擎。集成的搜索引擎是NetQuestion.
          = 易維護性。如很容易地維護用戶和訪問控制列表
          下面就Domino Go Webserver的特性及有關使用技術加以詳述,包括Web服務器的配置、啟動Web服務器、URL與目錄映射規則、服務器日志、訪問控制、代理服務器。
          1.Web服務器的配置
          配置Lotus Domino Go Webserver有兩種方式,一種是使用Web瀏覽器來配置和管理,另一種是直接編輯配置文件。第一種方法更簡單。安裝Lotus Domino Go Webserver 之后,啟動Web服務器,使用web瀏覽器打開http://127.0.0.1/frntpage.html,輸入用戶名和口令后,瀏覽器就顯示配置和管理Web服務器的表單。.這些表單是CGI程序和HTML表格的結合,為配置Web服務器或查看Web服務器的當前配置提供一個簡單的方法。瀏覽器可以和服務器在同一臺機器上或在訪問Web服務器的遠程的客戶機上。在遠程的客戶機上進行配置和管理時需要訪問http://your.server.name/,當然要求輸入正確的用戶名和口令。另一種方法是直接編輯配置文件。缺省地,配置文件名為httpd.cnf,在系統目錄下,通常是C:"WINNT。配置文件是由指示語句(directive)構成的。通過更新這些directives來設置Web服務器的配置項,如主機名(Hostname)和URL傳遞規則(Passing Rules)。
          2.啟動Widows NT上的Web服務器
          有兩種方式來啟動Widows NT上的Web服務器。第一種是從服務面板啟動(NT Service Panel->StartUp Panel),有3個可選的啟動類型(Auto、Manual、Disable),并提供了從系統帳號啟動的方式,當選擇從系統帳號啟動Web服務器時,還可以選擇在桌面上啟動圖形用戶界面來顯示日志或跟蹤信息。另一種是用命令行啟動,命令的語法為:whttpg [-p port] [-r config_file]。其中,端口號(port)指定Web服務器偵聽的端口,而配置文件名(config_file)指定Web服務器的配置文件,通常不是缺省的配置文件(在WINNT目錄下的httpd.cnf文件)。
          需要指出的是在一個Widows NT上可以運行多個Web服務器,但是有兩個注意事項。第一,同時運行的Web服務器必須使用不同的端口。第二,最多有一個Web服務器可以從服務面板啟動,也就是說,附加的Web服務器需要用命令行啟動,并使用不同的端口,但可以使用同一個配置文件(建議使用不同的配置文件為妥)。另外,一個Web服務器可以有多個IP地址,每個IP地址有不同的主機名,這稱為多IP服務器。一個Web服務器也可以只有一個IP地址,但是有多個主機名,這稱為虛擬主機。多IP和虛擬主機可以為不同的虛擬主機提供不同的信息,盡管不同的虛擬主機是由同一個Web服務器服務的。
          3.URL與目錄映射規則
          URL(Uniform Resource Locator、統一資源定位器)是指定Web上資源項的地址的約定規則。它包括協議、后面跟著完整的主機名、和請求。一個URL的語法時:
          協議://主機名[:端口][/[目錄名[/...][/文件名[?變量名= 值[&...]]]]]。
          協議指的是提供http、https、ftp等服務的有關協議,Go WebServer服務器提供自己的http和https服務,并代理ftp、gopher、wais等服務。通常,Web服務器把URL的主機名和端口后面的部分映射到一個路徑和文件名,即所謂的目錄映射。Go WebServer的Web文檔根目錄缺省為c:"WWW"HTML,在安裝該Web服務器軟件時可以指定Web文檔根目錄。當服務器收到的URL請求沒有規定文件名字時,Web服務器會在相應的目錄里搜索某個文件名列表,該文件名列表稱為歡迎頁面(Welcome Pages)列表。歡迎頁面列表通常包括Welcome.html和index.htm等。關于目錄映射,Go WebServer使用URL傳遞規則來實現所需的目錄映射。傳遞模板及示例如下:
          傳遞模板 動作 請求模板 替代的文件路徑
          示例 Pass /test/* c:"myhome"test"*
          其中,請求模板代表被請求的URL,可以包含(*)通配符。當一個URL匹配請求模板時,Web服務器按照替代的文件路徑訪問系統資源。這些規則可以用來維護物理文件系統的獨立性。而動作類型及其含義如下:
          (1) Map:Web服務器按照替代的文件路徑改變URL,繼續比較。
          (2) Pass:Web服務器接受請求。
          (3) Fail:Web服務器拒絕請求。
          (4) Exec:Web服務器接受請求,并按照替代的文件路徑運行一個CGI程序。
          (5) Redirect:Web服務器使用一個由替代的文件路徑確定的URL來響應。
          (6) NameTrans:Web服務器接受請求,在處理請求的名字轉換步驟中,運行一個由替代的文件路徑
          確定的API應用。
          (7) Service:Web服務器接受請求,在處理請求的服務步驟中,運行一個由替代的文件路徑確定的API
          應用。
          如果設置了下列傳遞規則:
          = Map /beta/* /text/*
          = Exec /cgi-bin/* c:"www"cgi-bin"*
          = Pass /* c:"www"html"*
          = Pass /abc.html c:"abc.html
          URL請求與實際的系統資源之間的對應舉例如下:
          表3-1:URL到系統資源之間的對應舉例
          URL請求 對應的系統資源 應用的規則
          /cgi-bin/search.exe c:"www"cgi-bin"serch.exe 規則1)、2)
          /index.html c:"www"html"index.html 規則3)
          /beta/download.html c:"www"html"test"download.html 規則1)、3)
          /abc.html c:"www"html"abc.html 規則3)
          在匹配了Map規則以后,服務器會繼續比較余下的規則。服務器會在Exec和Pass規則后停止比較。第4個規則永遠不會被使用,因為任何可以匹配第4個規則的都會匹配第3個規則。因此,Pass /* 規則通常應該放在最后。

          WebSphere快速入門(6)

          4.服務器日志
          缺省地web服務器會在c:"www"logs目錄下記錄所有東西,Web服務器每天在午夜啟動一個新的日志文件(如果那時它在運行的話)。否則,Web服務器會在某天首次啟動時開始一個新的日志文件。日志文件通常包括下列類型:
          (1) httpd-log:記錄Web被訪問的統計情況。
          (2) agent-log:記錄客戶使用的Web瀏覽器的情況。
          (3) referer-log:記錄引用到請求頁面的頁面的情況。
          (4) httpd-error:記錄Web服務器內部錯誤的情況
          (5) cgi-error:記錄CGI錯誤的情況。
          日志的刪除可以選擇在若個天后刪除,或在若個MB存儲空間被用完后刪除,或運行“User Exit” 刪除。也可以通過配置:對某些請求不作記錄。
          5.訪問控制
          Web服務器中的資源通常需要各種不同程度的保護。可以在Web服務器的配置文件里進行保護設置,也可以在每一個目錄里設置ACL(Access Control List),ACL是一個包含保護規則列表的文件,用來保護同一個目錄的文件。保護的類型有用戶名保護和地址保護等方式,用戶名保護決定誰可以訪問這個資源(可以要求口令驗證),地址保護使用地址模板來決定哪些客戶機(IP地址)可以訪問這個資源。
          6.代理服務器
          代理服務器是一個可以為它的客戶從別的服務器那里取得文件的服務器。一個代理可以降低網絡流量,對Internet隱藏內部網信息。可以代理http、ftp、gopher、wais和SSL隧道(如https和snews),通常通過設置URL傳遞規則來實現。為啟用SSL代理,還必須啟用connect方法。要使用Web服務器提供的代理功能,瀏覽器必須設置該Web服務器為代理服務器并指定這個Web服務器的端口。
          啟用的代理緩存功能可以提高運行效率。代理緩存是在代理服務器端保存http、 https或ftp等緩存文件以減少不必要的重復的請求處理。有幾個設置參數需要注意:緩存文件的一個給定的存儲空間稱為緩存容量,存放緩存文件的目錄稱為緩存文件的根目錄,對某些URL進行緩存(其它的不需要)稱為緩存過濾。另外,未被使用的緩存文件的時間限制用來規定服務器保存未被使用的緩存文件的最長時間,而存儲空間回收用來移走過期的緩存文件

          WebSphere快速入門(7)

          3.2 IBM WebSphere Studio
          Web
          站點的內容是由靜態和動態內容組成的。靜態內容以HTML、圖片等形式出現。除了在客戶端的動態效果以外,在一個Web服務器上動態內容通常以服務器端程序的形式存在,它們在被請求時產生動態內容。許多站點已經使用applet來達到在web上的動態效果。雖然這個方法能做到這一點,但是java和網絡性能的問題阻礙了這種方法的大規模應用。服務器端生成動態內容在大多數情況下是更好的方法。因為:
          = 更容易支持瘦客戶。
          = 提供更大的靈活性和安全性。
          = 在大多數情況下動態內容來自數據庫。
          = 服務器端程序可以執行數據庫操作,然后向瀏覽器報告結果。
          服務器端生成動態內容符合瘦客戶或超瘦客戶設計模式,它使得軟件開發者在一個web應用的客戶端放盡量少的商務或數據訪問邏輯。而胖客戶是指在一個應用的客戶端放置了太多商務邏輯和訪問。這會影響網頁的下載時間,可能引起其它問題。服務器端數據庫訪問是一個好的解決方案,可以更好地利用服務器,從客戶減輕客戶端的負擔。通過Java訪問數據庫是利用JDBC(Java Database Connectivity)應用編程接口進行的。總之,在為一個網站提供動態內容時,會涉及到服務器端應用程序。CGI和/或Servlets將是典型的部署載體。Servlet是生成動態內容的焦點。然而,大多數動態內容會涉及到數據庫。
          WebSphere Studio提供了項目工作臺和有關向導。項目工作臺用來把各種生成的組件集成進一個項目,而各種向導可用來存取數據庫、創建JavaBean和servlet等等。
          1.項目工作臺
          項目工作臺是一個在資源控制管理下的Web站點對象管理工具,其站點管理能力與NetObject Fusion大致雷同。項目工作臺具有下列特性:
          (1) 同任何網站開發工具互操作。通過將站點對象的文件類型注冊到相關的應用,項目工作臺可用來啟動應用(工具)來操作(打開,顯示)站點對象。從而能有效的管理那些與站點有關的對象資源,與資源控制環境的交互使得Web站點的小組開發得以有效地進行。因此它是能集成很多網站開發工具的理想的工具集成環境。
          (2) 提供靈活的站點發布能力。項目工作臺為兩類對象資源提供各自獨立的發布路徑,一類是Servlets和JavaBeans,另一類是所有其它的東西。項目工作臺提供了網站的本地發布或遠程發布兩種方式。
          WebSphere Studio 有一個雙框圖形用戶界面,還有許多與桌面應用程序相似的功能特性。以下分別介紹框架、分解視圖、具欄和按鈕、過濾器。
          (1) 框架
          左邊的框架顯示所選項目及其文件夾的圖形分層。右邊的框架顯示在左邊框架中選擇的一些項目的細節。
          l 一個項目可包含文件和文件夾。
          l 文件夾可包含文件或其它文件夾。
          l 文件包含數據。
          您可以按喜歡的方法來組織文件,并使它容易地將一個項目中的有關文件作為一個單元進行管理,比如,公布一個項目中的若干個文件或所有文件至目標服務器上(如 WebSphere 應用服務器)。
          (2) 分解視圖
          當您從視圖菜單中選擇分解視圖表,文件夾及子文件夾中的所有文件將顯示在詳細視圖表中。表格包括附加的路徑信息以幫助您區分它們。文件夾本身不顯示。 快捷方式按鈕位于工作臺的右下方,您可對分解視圖的開或關進行切換。
          (3) 工具欄和按鈕
          此界面包括菜單欄、工具欄、狀態欄和過濾器按鈕的垂直行。
          l 菜單欄允許您訪問所有的可用功能。
          l 工具欄允許您快速訪問大多數的普通功能和向導。
          l 過濾器通過文件擴展名或文件類型來控制顯示文件。
          l 狀態欄列出一般信息,例如您的視圖的大小和對象的數目,也包括被過濾器隱藏的文件數。
          (4) 過濾器
          過濾器按鈕位于主窗口的右邊。它通過文件類型和文件擴展名來控制哪些文件顯示在詳細框架中。單擊它可進行開和關的切換。打開過濾器,請單擊過濾器按鈕,在詳細視圖中將顯示此種文件類型的文件。過濾器類別是:HTML 文件、圖像文件、SQL 文件、Java 文件、Java 類文件、文本文件。同時要打開多個過濾器,請在單擊每個過濾器按鈕時按下 Ctrl 鍵。要暫時關閉所有過濾器,請先從視圖菜單中選擇“過濾器”,然后選擇“顯示全部”。
          在分解視圖上使用過濾器能夠管理在分組中選擇文件類型的所有文件,而不考慮它們的相對位置。 例如,若要打開一個包含文件夾及子文件夾的項目,但其中只有 HTML 文件, 您就可打開分解視圖和 HTML 文件過濾器來顯示整個項目中的所有 HTML 文件。
          2.向導
          有關向導及其基本功能如下:
          (1) SQL 向導:創建一個可被數據庫訪問 Servlet 使用的 SQL 語句。語句可查詢關系數據庫,并從表中選擇數據顯示在 Web 頁面上。SQL向導要求連接數據庫,以驗證連接參數,提取元數據來支持SQL語句的開發。
          (2) 數據庫訪問向導:創建 Servlet 來訪問關系數據庫。使用一個生成的SQL文件,數據庫訪問sevlet向導生成5個文件:servlet、servletBean、輸入HTML表格、輸出頁面(JSP)、和可選的錯誤頁面(JSP)。其中,可選的輸入表格(HTML)用來為SQL命令傳參數,ServletBean提供一個可執行方法來調用SQL命令,Servlet創建那個ServletBean的一個實例,執行它的方法,然后決定調用有關結果頁面。
          (3) 基本 Servlet向導:創建使用指定的 JavaBean(包括 Navigator 和為 VisualAge for Java Enterprise Access Builder 建立 VisualAge 時的命令)的 Servlet。它同時產生一個調用 Servlet 及捕捉用戶輸入的輸入頁面和顯示結果的輸出頁面。
          (4) 到期 HTML Servlet向導:創建隨日期而更改內容的Servlet。則它生成 Servlet 以及包括 HTML 的變量部分的頁面。
          (5) 注冊Servlet向導:創建一個可在 WebSphere應用服務器 的 UserProfile 特性中設置或獲得數據的Servlet。這使可維護 Web 訪問器的詳細信息,并且此訪問器對于用戶注冊和其它的 Web 應用程序都是一樣的。 向導同時產生一個調用 Servlet 及捕捉用戶輸入的輸入頁面和顯示結果的輸出頁面。
          (6) JavaBean向導:創建能夠進行編輯和擴展的JavaBean的基本實現。 指定在 Bean 中所需的屬性,向導將創建方法來設置和獲得其值。 一旦完成 Bean,就可在基本向導中使用它。
          上述向導對快速地制作用于創建和顯示動態內容的中間層(和客戶層)元素的原型有用,對提供模板代碼來定制有用。而且與WebSphere應用服務器的“編程模型”緊密集成。下面以使用數據庫訪問向導為例來創建訪問數據庫的Servlet。數據庫訪問向導幫助創建Java Servlet,它用來從關系數據庫中檢索指定數據并在 HTML 頁面中顯示信息。
          向導需要 SQL 語句文件,Studio SQL 向導將幫助創建它。該 SQL 語句告訴數據庫訪問 Servlet 連接哪個數據庫、搜索哪個表格、選擇哪個數據以及如何排序。實際上,無需知道 Java 或 SQL 語法,就可創建數據庫訪問 Servlet。瀏覽至想放置 .jsp 文件的文件夾。
          從“工具”菜單,選擇“Studio 向導”。
          (1) 選擇“數據庫訪問 Servlet”。
          (2) 單擊“下一步”啟動向導,繼續標記的頁面。
          (3) 當完成所有要求后單擊“完成”。
          (4) 當完成后,可“照原樣”使用文件或根據需要進行定制。
          向導將創建:
          (1) 調用 Servlet 的輸入頁面(.html)
          (2) 提供實現指定 SQL 語句數據庫訪問邏輯的 JavaBean 文件(.class 和 .java)
          (3) 配置 Servlet 的 Servlet 配置文件(.servlet)
          (4) 包含選中數據庫列 JSP 和 HTML 的輸出標記的 JSP 文件(.jsp)
          (5) 按照下列步驟完成數據庫訪問 Servlet 向導:
          注意:可使用這樣的方式建立和測試數據庫Servlet,使用某一現有數據庫,通過修改 .servlet 配置文件中的一個或多個以下值,將其創建為另一個 Servlet:
          = URL
          = driver
          = userID
          = password
          此方法可能需要數據庫服務器的模式別名。請參閱 Servlet 配置文件,了解更多關于 .servlet 文件的詳細信息。
          3.腳本編輯
          IBM WebSphere Studio能與NetObjects ScriptBuilder很好的集成起來。從WebSphere Studio的項目工作臺項可以啟動ScriptBuilder來對有關文件進行編輯,可編輯的文件類型包括HTML、JavaScript、Java、 JSP和XML等。
          NetObjects ScriptBuilder是適合于Web的腳本開發工具,為Web站點的客戶端和服務器端腳本提供了一個快速的開發方法。它將強大的腳本編輯器與豐富的可視化開發工具有機結合,以加速腳本的開發。它也是架構Netscape,、Microsoft、 IBM、Sun Microsystems等各大公司的不同Web腳本環境的橋梁。它支持CFML (Cold Fusion Markup Language)、Dynamic HTML、 ECMAScript、 HTML、JSP、Java、LotusScript、 ASP、CDF (Channel Definition Format)、DOM (Document Object Model)、Jscript、VBScript、JavaScript、LiveWire、Perl、和WML (Wireless Markup Language)。使用NetObjects ScriptBuilder, 開發者能夠:
          (1) 檢查腳本的語法錯誤
          (2) 創建面向對象的腳本組件。
          (3) 訪問語言的參考書目
          (4) 使用XML定制語言參考書
          (5) 檢查文檔與瀏覽器的兼容性
          (6) 把所需的語言元素拖放到文檔中。
          (7) 使用標準的Web語言或其它語言
          (8) 快速導航到嵌入的函數和組件
          (9) 自動化重復性的任務
          (10) 預覽文檔

          WebSphere快速入門(8)

          3.3 NetObjects Fusion
          NetObject Fusion
          是一個可視化的Web站點的構建和管理工具。NetObjects Fusion是Web站點構建過程的中心。NetObjects Fusion是一個面向站點的工具,而不是僅僅處理單個頁面。在Web站點開發的過程中,會創建許多頁面,頁面之間有很多鏈接。手工地更改這個結構是相當困難的。用NetObjects Fusion可以設計Web站點的通用元素,創建并維護Web站點的結構,構建各個頁面,并能容易地維護這些頁面。
          總之,使用NetObject Fusion,可以設計Web站點、構建各個頁面、容易地維護Web站點。下面介紹NetObject Fusion 中的站點視圖(Site view)、頁面視圖(Page view)、樣式視圖(Style view)、對象集視圖(Assets View、或稱資源視圖)、和發布視圖(Publishing view)。
          1.站點視圖
          站點的結構視圖(參見圖3-1)是站點視圖的一種,單擊“輪廓視圖”標簽就顯示站點的輪廓視圖。在結構視圖中,頁面的顏色是可以由開發者選擇,通常用來為頁面分組,但是頁面顏色對實際頁面沒有影響。用戶站點的文件格式為“*.nod”,模板文件格式為“*.nft”,樣式文件格式為“*.ssf”。使用站點視圖,可以創建(或修改)一個站點的層次結構、操縱頁面、引入/導出(Import/Export)站點、引入模板以改變站點的風格、打印站點的結構圖等等。例如,可以引入一個已有的站點將它轉成NetObjects Fusion的格式或保留為外部HTML頁面。如果這些被引入的頁面不會被改變,通常可以將引入的頁面保留為外部HTML頁面。
          圖3-1:站點視圖

          2.頁面視圖
          站點的頁面視圖(見圖3-2)包括頁面布局(Page Layout)和主控邊框(MasterBorder),并提供面板和工具欄。面板包括屬性面板和對象樹,工具欄包括標準工具欄、表單工具欄、組件工具欄、和高級工具欄。對象樹是關于當前頁面中所有對象的樹狀結構,開發者可以通過對象樹來定位目標對象,也可以直接選擇目標對象。一旦選定目標對象,屬性面板就顯示該對象的屬性,對象屬性依賴于對象的類型,不同類型的對象(如文本和applet)有不同的屬性,可以使用屬性面板來設置對象屬性,當然有的屬性可以可視地編輯。
          在頁面視圖中,可以可視地或通過屬性面板來定義主控邊框和頁面布局。主控邊框勾畫出一個頁面的五個區域:中間的布局區域和四個(左、右、上、下)邊緣區域。這些邊緣區域包含多個頁面共有的元素,如水平標注和導航條,可以通過屬性面板設置主控邊框的自動邊框(AutoFrame)屬性,把某些邊緣設置成框架(frame)。關于布局,而布局區域用來放置該頁面的內容。需要注意的是頁面布局包括頁面的實際內容,不僅僅是頁面的布局,也許一個頁面有好幾個布局或版本,例如有框架(frame)的和沒有框架的版本。NetObjects Fusion使用表格(table)來組織它生成的HTML頁的內容,也可以通過設置布局屬性來選擇布局是表單。也可以通過彈出菜單或單擊屬性面板中的 “HTML”按扭在來顯示生成的HTML文檔。
          圖3-2 頁面視圖
          工具欄通常在窗口的邊上,也可以拖進窗口里面(如圖3-2)。工具欄包括標準工具欄、表單工具欄、組件工具欄、和高級工具欄。這些工具欄為頁面的制作提供了許多實用工具。
          (1) 標準工具條
          = 選擇(Select):選擇一個特定的組件并移到另一個地點或重新設置大小。
          = 縮放(Zoom In/Out):使頁面的視圖圍繞鼠標擊中的區域放大或縮小。
          = 文本(Text):向頁面增加一個包含一些文本的組件。
          = 圖片(Picture):向頁面增加一個圖片。可以是一個.gif或.jpg文件。Fusion接受BMP,PCX,PICT,GIF,JPEG的圖。
          = 熱點(Hotspots):把一個圖片中的某個區域標記為可單擊(鏈接到某個URL),從而使該區域成為熱點。這個區域可以是圓形、矩形、和多邊形
          = 布局區域(Layout Region):在布局區域或主控邊框里創建一個布局區域,它可以擁有與包含元素不同的布局屬性(例如,一個不同的背景色)。
          = 表格(Table):創建一個HTML表格,可以規定表格的行數和列數。
          = 表單區域(Form Area):創建一個或多個表單。可以選擇創建基于布局區域的表單、基于表格的表單、或基于文本的表單。也可以把一個表單加到邊緣區域,從而能在多個頁面里顯示。
          = 導航條(Navigation Bar):用來創建導航條。可以使用按鈕或文字形式,從當前頁面鏈向站點里的別的頁面,比如在Web站點結構里的父層、當前層或子層。
          = 水平標注(Banner)。用來在頁面的任何地方創建一個水平標注,反映這個頁面的名字。通常在頁面的頂部,來標志這個頁面。
          = 繪制(Draw):繪制工具,這些工具用來在一個頁面里畫圓形、矩形、圓角矩形和多邊形。
          = 直線(Line):畫直線的工具,這些工具用來在一個頁面里畫水平線、任意角度的在線、站點樣式的水平線。
          需要注意的是Hotspots、Draw、Line這三個工具還包括可選的子工具,按下按扭不放就會顯示可選的子工具,保持按下按扭并移動就可選擇所要的工具。
          (2) 表單工具欄
          這些工具用來創建表單。表單可以用來收集信息,然后送回服務器端CGI程序或Java Servlet。
          = 表單按扭(Button):一個表單按鈕通常被用來啟動一個后端服務程序或來重置表單。
          = 表單復選框(Check Box):一個復選框代表一個布爾值,選中表示真值,否則表示假。
          = 表單單選按扭(Radio Button):一個單選按鈕是一組單選按扭的一部分,這組單選按扭是互斥的,即只能有一個為真,而別的都為假互斥的。
          = 表單編輯字段(Edit Field):表單上的一個區域,用戶可以輸入一行信息如名或姓。
          = 表單多行文本(Multi-Line):表單上的一個區域,用戶可以輸入多行信息,如對一個產品的說明或目錄里的一項。
          = 表單組合框(Combo box):一個下拉列表,用戶可以選擇。一個例子是:頭發顏色的列表。用戶可以選一個。
          (3) 組件工具欄
          = 動態按扭(DynaButtons):對按鈕使用站點風格
          = 磁帶(Ticker Tape):一個水平滾動文字區域,不斷重復。
          = 站點映射器(Site Mapper):一個用來顯示站點結構的按扭。
          = 消息板(Message Board):一個BBS 設施
          = 表單句柄(Form Handler):實現一個簡單的CGI程序。用來檢查表單中的字段
          = 圖片反轉(Picture Rollover):一個反轉按扭。當鼠標滾過圖片,圖片改變成指定的圖片反轉。當= 鼠標在圖片上單擊,圖片會改變,一個URL鏈接會顯示。
          = 基于時間的圖片(Time Based Picture):在這個地點的不同時間顯示不同的圖。
          = 圖片加載器(Picture Loader):使用其它資源中的圖片
          = 旋轉圖片(Rotating Picture):簡單動畫。通常用來顯示廣告。
          (4)高級工具欄
          = Media:一個子工具條,包括了一些項目象Shockwave、Quicktime、Video、Sound和別的插件
          = Java:允許往頁面上加一個Java applet。
          = ActiveX Control:允許往頁面上加一個ActiveX控件。
          = Data:一個子工具條,允許你訪問內部和外部數據對象。
          = External HTML:包括一些需要特殊的、手工寫的HTML頁面。可以在外部引用HTML文件并把
          它們放在站點的任何地方,而不是引入并轉換這個HTML。NetObjects Fusion在發布Web站點時不分析這個HTML。
          上述工具欄提供的有關工具可用來增加頁面的互動性。如可以在頁面上增加腳本、放置ActiveX控件、增加Java applets等等。腳本可以加到一個Fusion生成的HTML元素的前面、后面或里面。增加Java applets時使用Java對象屬性設置有關參數,Fusion將增加的class文件作為對象集(assets)中的元素。
          3.樣式視圖
          樣式視圖(參見圖3-3)可用來選擇站點樣式、編輯樣式、或創建新的樣式。Fusion提供的樣式適合于簡單的站點或者可用來取得用戶的反饋信息,重要的站點通常需要創建新的樣式。Fusion用樣式中指定的字體生成水平標注和按鈕上的文字。因此,應該為水平標注和按鈕選擇任何你的系統里的字體,Fusion將使用指定的字體生成有關圖象,瀏覽器只看到一個圖象。對于在HTML里創建的文字組件,瀏覽器可以控制自己使用的字體。
          圖3-3:樣式視圖

          4. 對象集視圖
          對象集視圖(參見圖3-4)是一個管理所有對象的地方,包括文件、鏈接、數據對象、變量,對象通過別名來訪問。Fusion提供預定義的變量,如日期、時間和站點名等等。開發者可以創建自己的變量,并在對象集視圖中管理。每當開發者需要選擇圖象或別的文件時,打開文件對話框(Open File dialog)上會有一個對象集標簽(Assets tab),單擊該標簽就顯示對象集中的有關文件,開發者就可以選擇所需要的文件。這種就對象進行統一管理的方式支持“一次更新,每個地方都更新”。例如標識公司的圖案(logo),如果一個公司改變了它的標識圖案,只要在對象集視圖中改變有關標識圖案的文件,Fusion可以改變這個站點里的每一頁。

          圖3-4:對象集視圖

          5.發布視圖
          發布視圖(參見圖3-5)用來配置發布選項,并進行發布。發布選項包括本地發布位置和遠程發布位置等。本地發布是指發布到本機的文件系統里,遠程發布需要使用FTP把文件傳輸到服務器。如果你選擇發布到一個遠程站點,這個站點必須支持FTP,發布者必須知道所需的用戶名和口令。通常在正式發布之前需要發布到一個臨時服務器上進行測試,并需要使用不同平臺上的不同瀏覽器進行測試。發布時,Fusion將生成HTML頁面以及目錄結構,拷貝所有的對象到指定的目錄,這些目錄里包含HTML文件、圖象、Java 類等等。目錄結構可以是單一的(flat)、基于對象類型的(asset)、或基于站點區域的(section)。所有生成的HTML使用相對路徑。在發布之前還可以使用預覽功能。預覽創建HTML文件,生成任何需要的圖象,但它不拷貝任何別的對象,從而不顯示嵌入的組件。在按下CTRL 鍵時單擊預覽按扭就可以只預覽當前頁。

          圖3-5:發布視圖

          總之,Fusion是一個Web站點的組裝工具,對管理站點范圍的格式模板有強力支持,支持豐富的“對象”,鏈接和對象集管理使得部署到多個站點變得很容易。可以使用Fusion設計站點結構、構建和管理站點頁面、設計和寫頁面內容、設計站點的圖形化風格、管理和測試站點的對象集、把站點發布到本地或遠程服務器、更新和維護站點。

          posted on 2009-07-31 10:37 安陽 閱讀(805) 評論(0)  編輯  收藏 所屬分類: Java筆記

          <2009年7月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類(8)

          隨筆檔案(9)

          文章檔案(1)

          最新隨筆

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宣武区| 常熟市| 都江堰市| 虎林市| 富民县| 黑山县| 上栗县| 个旧市| 远安县| 榆林市| 睢宁县| 兴国县| 漳州市| 绥化市| 丹东市| 固始县| 虹口区| 莆田市| 饶阳县| 玉龙| 北碚区| 青田县| 金昌市| 浦北县| 灌南县| 星座| 全州县| 高淳县| 桂林市| 农安县| 习水县| 巍山| 咸丰县| 巴里| 芜湖市| 嘉禾县| 安乡县| 琼海市| 隆德县| 磐石市| 准格尔旗|