用Linux構建企業門戶網站
—紅旗網站實例分析
北京中科紅旗軟件技術有限公司(簡稱紅旗軟件)是由中國科學院軟件研究所和上海聯創投資管理公司共同出資組建的高技術企業,公司致力於開發和推廣基於Linux的操作系統及應用軟件。
紅旗Linux網站(www.redflag-linux.com)是中科紅旗軟件技術有限公司的企業門戶網站,欄目內容包括:公司介紹、產品/解決方案的介紹、直接服務和在線培訓等,是用戶了解、購買紅旗Linux最快捷的途徑,是用戶尋求服務的最佳場所。
一、紅旗網站的目標和設計思想
1.面向注冊用戶
紅旗網站是基於用戶的,在這裡注冊的“網站”用戶,可以享用網站為用戶設計的各種功能,浏覽網站的所有資料。與一般的注冊用戶網站不同,這裡為用戶的產品、商務、服務和各種活動等內容建立了完整的記錄,用戶亦可定制自己的界面。用戶的權益(“積分”)隨著您在紅旗網站注冊時間、購買的產品、提問的次數和參加的活動而增長。對於“積分”高的用戶,還能得到特別的優惠。
用戶不只是個人用戶,也包括企業客戶、供應商、銷售商和合作伙伴。紅旗網站做到用戶界面統一,業務分離,互不干擾。網站主界面如圖1所示
(圖1)
2.技術支持智能化
對於Linux和自由軟件進行技術支持,最好的辦法就是開放。紅旗網站把Linux的大量資源集中並整理分類,把用戶提出的問題及工程師提供的解答搜集起來,以便為更多的用戶服務。用戶在網站可以一步一步地細化遇到的問題,搜索知識庫,進行分類查詢,得到多種解決方案。網站還有直接面向工程師的提問界面和技術討論組。同時,網站面向愛好者、開發者和整個Linux界,把紅旗Linux的技術、源程序和文檔貢獻出來。紅旗網站擔負著60%的技術支持工作,成為紅旗Linux服務的重要組成部分。
紅旗承諾對用戶提供支持與服務。這一點就需要很大的努力才能實現,怎樣使用盡量低的成本服務數十萬乃至百萬的用戶?使用上門(Onsite)和電話(Call Center)方式都是難以實現的。使用Web做技術支持,已經是大家的共識。而對於自由軟件這一新的形式,又有新的問題:軟件是開放的,沒有壟斷;服務是集中的,缺乏統一性,這是自由軟件商業模式中一個很難解決的問題。紅旗Linux網站采取“取之於用戶,用之於用戶”的方法,把用戶的實際問題和關於問題的解答,以及Linux業界的各種資料逐步擴大支持“知識庫”,逐步提高服務的效率。如圖2所示。
(圖2)
3.提供在線銷售
充分利用自由軟件的特點,用戶可以免費下載,購買服務和培訓,用戶無需再等待送貨上門,公司無需准備配送體系。對於紅旗的供應商和銷售商而言,這樣的模式與傳統的代理——分銷流程相比更簡單和節約成本。
在紅旗電子商務網站,您可以發現這裡是Linux的超級市場,從系統軟件到應用軟件、解決方案、服務乃至於培訓。借助紅旗Linux操作系統軟件的新的商業模式,開源軟件(“開放源代碼軟件”的簡稱)的銷售環節變得明了。無論是面向消費者還是面向商家,紅旗Linux都提供了更廣闊的網上商務空間。
用戶可以免費下載軟件並使用,然後再購買相應的支持和服務;廠商只需提供一套軟件和足夠多的序列號,而根本不用負擔包裝、零售渠道等銷售成本,這樣一種銷售模式只有在開源軟件豐富、發達的今天才可能實現。
操作系統廠商要面對各種各樣的客戶,有最終的零售用戶,有軟件廠商和硬件廠商,有銷售的伙伴,還有網絡上的業余開發人員。怎樣在如此復雜的客戶網絡中協調各方面的工作,培養業務員還是名片加電話?紅旗網站依靠Web上ISV、OEM、License、Project Container來支持這些渠道的建立和暢通。維持這些渠道的是完善的操作功能和數據存儲。
4.服務愛好者
Linux出生在互聯網,成長在互聯網,Linux同時為互聯網注入新的活力。在網上傳播Linux技術,提高學術水平,推廣開源軟件的精神,也是紅旗Linux的一個重要任務。紅旗Linux在開拓市場的同時,必須對Linux世界作出應有的貢獻。公開全部技術、文檔,只是紅旗要做的一小部分,怎樣利用互聯網代動國內、國際的技術發展,帶動各界Linux愛好者開發更強更好的軟件,才是真正的貢獻。紅旗Linux開發網站,就是本著這個目的規劃的,Linux愛好者和組織可以利用這個網站組成工程項目,利用團體的力量來完成個人難以完成的工程,成就一個又一個的Linus。
樸實的界面,方便的工具,自由的氣氛,眾多紅旗Linux的頂尖技術工程師每天在這裡幫助大家解決各種各樣的技術問題。界面如圖3所示。
(圖3)
5.其他特征
·Linux新聞快速更新
·同時提供英文版和繁體中文BIG5版本
·提供內容全面的下載專區
·全面的、智能的網站關鍵詞搜索
二、紅旗網站的架構和技術基礎
1. 面向對象的設計方法
紅旗網站的開發人員把網站看作是紅旗的一個軟件產品。網站的開發過程,也是按照軟件工程的方法來實施的。企業網站具有鮮明的特點:與企業商務流程緊密聯系,強調可擴展性,完整的格局和統一的風格。因此,面向對象的設計方法最適合於企業網站的設計。網站的每個功能都可以看成是一個對象,眾多重復和相近的功能可以來自一個類,是它的子類和實例。對紅旗網站而言,基本的類是商務類、服務類和用戶類。從商務類上派生出產品類、在線銷售類、下載類。如圖4所示。
(圖4)
2. 紅旗Linux作為操作系統平台
紅旗Linux操作系統,無疑是搭建企業門戶Web系統的最佳平台。紅旗Linux服務器版1.1.2完全支持網站所需要的各種應用程序和數據庫,支持Java的中文處理。網站的DNS、FTP、HTTP和Java Web Service都由免費的軟件構成,穩定而高性能,Oracle數據庫Linux版也被良好支持。
紅旗Linux的高可定制性是非常適合於熟悉開放系統的人員使用的,可以按照網站的實際需求把操作系統定制為最符合需要的模式。
操作系統的安全對於網站十分重要,Linux系統開放源代碼、使用SSL協議及完善的用戶管理,使得網站在安全上有一個基本的保證,再加上一些監控和防火牆軟件,網站將更加安全。
3. 采用Java技術
紅旗網站使用Java技術、Enhydra Java 應用服務器和JDBC。采用Java技術可以最大限度地達到面向對象的設計思路、平台通用性及網站的可擴充性。Java用在服務器端,即Servlet和JSP是近兩年的事,而他們的成功預示著網站發展的方向:面向對象、分布、開放和XML。
(1)完整的、結構化的OpenSource企業網站應用服務器Enhydra
Enhydra是一個純Java的系統,具有很多企業網站應用所必須的素質。比如,使用Java2,支持Cluster、JSP、Enterprise JavaBean、多平台通用、與程序脫離的數據庫連接控制。同時在開發上實現了網站開發的面向對象,頁面和程序分離,極大地提高了復雜Web應用的開發效率。
Enhydra把一個頁面對象(動態)分成三個層次:表現層(presentation)、業務層(business)和數據層(data)。如圖5所示。
(圖5)
它們都有各自的任務,表現層含有外觀頁面(HTML)和負責“對動態內容填空”的Java程序,將動態的數據替換到頁面中打了標記的地方去;數據層負責和數據庫連接和交換數據;業務層負責有關數據的處理、運算。如此將網頁功能細化分,比起ASP、PHP等應用服務器端程序和一般的Java Servlet程序來,顯得繁瑣。但是隨著應用的復雜和擴展,頁面/數據/處理混合在一起的程序必然給設計者、維護者和使用者帶來越來越多的麻煩。
Enhydra的思路就是把功能分開,每個設計、編碼者都有明確的分工和目標,網頁設計員和美工可以自由地、獨立地進行頁面設計,程序員對功能進行編碼,數據庫系統設計員進行表設計和數據流設計。按照Enhydra的分層概念,網站工作變得系統和有機。在復雜的應用中顯得條理清晰。
(2)Enhydra具有平台無關性
使用同一套Enhydra,可以安裝到Windows 98、Windows NT/2000、UNIX系統、Linux系統等一切有Java2(JDK1.2版本)平台支持的操作系統上,方便而快捷。而在Enhydra上開發的系統,不用對頁面和編碼進行任何修改就可以方便地移植和利用,這是Java/Enhydra系統的突出優點。利用免費的在Windows環境下模擬Unix/Linux shell環境的工具,可以在Windows 98系統上方便地運行Enhydra調試程序。
(3)Enhydra提供全面的開發工具
從圖6所示的Enhydra應用的目錄結構,可以清晰了解開發一個Enhydra應用的過程。
可以用任何工具制作HTML文件,只要為動態信息留下ID名稱即可,紅旗網站使用DreamWaver 3.0進行界面制作。
命令行編譯方式適用於任何系統,直觀而快捷,而使用JBuilder和Enhydra Kelp for JBuilder 可以大幅度提高工作效率(由於使用100%的標准Java,紅旗網站是在Microsoft Visual J++的環境中進行編碼的)。
Enhydra有豐富的Web應用API,把復雜的Servlet應用封裝,提供了全方面的基礎類,使用戶能很快開發出專業的動態網頁和電子商務網站,還附帶了應用框架生產器和應用程序向導以及豐富的例子,這些都能為開發企業網站提供方便。
(4)強大的數據庫支持
Enhydra的數據庫連接是完全與應用程序分離的、模塊化和可定制的,支持多種標准和用戶化的ODBC、JDBC,而且可以通過配置文件對數據庫連接進行統一的控制。Enhydra支持Oracle、Sybase、DB2等大型數據庫和一些免費的數據庫例如Mysql等。
(圖6)
(5)全面的應用管理工具—MultiServer Administration
Enhydra有一套全面的應用管理工具,是圖形化的、基於Web的和實時的。可以用它監控網站的Session數量、數據連接數量、請求數量等負載情況,可以打開、關閉和調試Enhydra應用(如圖7所示)。
(圖7)
(6)支持XML
XML代表著網頁的下一代標准,越來越多的網絡技術人員和企業看好XML。XML適用於對復雜事務的表達,帶有自己的格式。電子商務的發展,推動了其最有力的工具XML的發展。Enhydra對XML有本質的支持。
紅旗Linux網站利用XML技術對技術支持知識庫進行了描述和存儲,實踐證明,XML對於復雜的技術問題能有非常理想的描述手段,在以後的發展中有很大的潛力。
4. 使用Oracle和MySql數據庫
紅旗網站使用Oracle數據庫和MySql數據庫。兩種數據庫各有特點和用途。Oracle數據庫為網站存儲大量的產品、用戶、新聞和技術支持知識庫的信息,這些大量的重要信息對數據的安全可靠、檢索的快速和備份有比較高的要求。考慮到在日後的發展中會產生更大量的數據及新的數據結構, Oracle這種大型的完備的數據庫是使用首選。
而MySql這種小巧快速的數據庫,安裝和使用都很簡便,對於論壇、後台應用、技術支持等都很方便,對於這些結構相對簡單的數據結構,使用MySql是非常劃算的。
三、網站系統的其他特點
1.硬件配置
紅旗網站使用多台服務器來分擔不同的任務,力求從成本、帶寬、計算機吞吐量和運算速度上達到和需求的最佳結合點。其中有Compaq的Alpha計算機和裝有RAID控制器的服務器,這些計算機上全部安裝了紅旗Linux(PC版和Alpha版),對硬件的支持良好。Alpha計算機穩定可靠,吞吐量大,用於DNS和FTP服務器。
由於Linux對IP網絡良好的支持和靈活的配置,使得工程師對多台服務器之間的網絡配置得心應手,既減少了網站的硬件、網絡帶寬的投入,又能達到性能上的很好發揮。
紅旗Linux服務器2.0版以後將支持Cluster系統,紅旗網站在用戶數不斷增加的情況下,可以使用LVS系統來達到低成本的擴張。
2. 軟件支持多語言
紅旗公司和產品是面向國際的,所以紅旗網站也要面向使用各種語言編碼的用戶,簡體中文GB2312、繁體中文Big5和英語是基本應該提供的語言支持。對於使用Java實現的Web頁面,只需在輸入輸出嵌入編碼轉換和詞語轉換程序,即可實現中文兩種編碼的互換,而不用修改數據庫的表和數據。
3. 方便的後台維護程序
紅旗網站信息豐富,結構復雜,有大量動態內容,要經常更新、修改和刪除。於是有一套完整的內容維護界面,也是基於Web的,和網站本身使用同樣的設計思路,有多用戶管理和權限分配,修改記錄和在線技術支持工具,是網站維護的有效手段。如圖8所示。
(圖8)