趙正旭,白英杰,吳曉進
(1. 石家莊鐵道大學 復雜網絡與可視化研究所,河北 石家莊 050043;2. 北京航天飛行控制中心 軟件室,北京 100000)
操作系統是計算機應用程序運行的基石,是信息安全的保障。而我國計算機系統依然依賴于國外。近年來,由于外部壓力和國內政策的雙重刺激,國產操作系統迎來了短暫的發展,并取得了一定的成就。但公開發布的國產操作系統多基于著名 Linux內核改造和開發的,實際上,真正完全自主開發的操作系統并不存在;而國產操作系統的數量和使用范圍相對較小,未能形成完善的軟件生態系統。所以,國產操作系統還有相當長的路要走。
如今,網絡技術不斷提高并日趨成熟。越來越多的企業選擇建立基于互聯網的Web應用系統進行辦公,網絡的巨大優勢越來越凸顯。主要提出了基于國產操作系統JSP服務器的部署和實現方案,以及相關技術的介紹,為國產操作系統取代現行操作系統提供部署web服務的理論依據和實踐參考。
Web一般指提供網絡服務的計算機網站程序,它駐留于連接在互聯網上的某種服務器上,客戶端通過瀏覽器發出請求,服務器響應并為客戶端提供服務,實現資源共享[1]。目前,比較流行的Web服務器主要有三個:Apache、IIS和Nginx[2]。
Apache是一款開源的Web應用程序軟件,它跨平臺性良好,在所有的平臺上幾乎都可以運行,它具有速度快、可靠性高和拓展性良好等特點,是目前因特網上使用率最高的Web服務器軟件[3]。
IIS即“互聯網信息服務(Internet Information Server)”的縮寫,是Microsoft公司設計、提供的一種與Windows NT系統集成的網絡服務。由于IIS能夠很好的與Windows NT系統產品集成在一起,并且提供快速可拓展的Internet服務,具有支持多腳本語言、簡單易用等特點,所以大多數中小型規模的Web網站服務均采用IIS架構。IIS功能強大,但只能運行在微軟的操作系統平臺上[4],[5]。
Nginx(engine x)是一款由俄羅斯設計輕量級、高性能的Web服務器/反向代理服務器,同時也是一個電子郵件(IMAP/POP3)代理服務器,運行在BSD-like協議下。服務器占用內存少,并發能力強,根據實際測試可以承受3萬以上的并發連接數[6]。
Tomcat是 Apache公司一個開源的項目,實質上是一個免費JSP引擎。Tomcat是一個在SUN公司的JSWDK的基礎上發展而來的優秀的Java Web容器,是SUN公司推薦的Servlet/JSP容器。目前,Tomcat可以和絕大多數主流 HTTP服務器(如 IIS和Apache服務器)一起工作,而且運行穩定、可靠、效率高。Servlet/JSP網絡拓撲圖如圖1所示。
Tomcat安裝完成后,主要有七個目錄,不同的目錄分管著不同的任務,其部分主要目錄結構和相關配置說明如圖2所示。
靜態網頁是指網頁制作完成后,就不能隨意更改,用戶只能瀏覽,不能與服務器進行交互操作;動態網頁是相對于靜態網頁而言的,即網頁的URL不固定,能夠通過后臺與用戶進行數據交互,實現用戶查詢等動作。動態網頁與靜態網頁相比較具有明顯的優勢。當前,比較流行的動態網頁技術主要有ASP、PHP和JSP。

圖1 Servlet/JSP網絡拓撲圖Fig.1 The Network Topology of Servlet/JSP

圖2 Tomcat主要目錄結構及相關配置說明Fig.2 The primary directory structure and related configuration instructions for the Tomcat
JSP是Java Server Pages(JAVA服務器頁面)的縮寫,是由Sun公司倡導、推出的一種動態網頁技術標準。JSP技術實質上是服務器端的腳本語言,是一種動態網頁生成技術,底層實現是Java Servlet。JSP頁面由HTML代碼和Java代碼組成;基于Java Servlet以及整個Java體系,具有強大的跨平臺性;先編譯后運行等方式極大的提高了執行的效率[7]。逐漸成為網站開發的主流技術。JSP的運行原理如圖3所示。
當服務器收到客戶端請求后,JSP Parser將其編譯成Servlet程序,調用JSDK將Servlet程序進行編譯,并加載的內存中執行,把結果響應給客戶端。執行過程如圖4所示。

圖3 JSP運行原理Fig.3 The operation principle of JSP

圖4 JSP執行過程Fig.4 The Executing processes of JSP
JSP服務器部署主要為四個部分:Java環境配置、Tomcat服務器搭建、開發環境以及所依賴數據庫的配置。其中,java環境選擇 JDK-1.8;Tomcat服務器選擇 Tomcat-8.0;數據庫選擇 MySQL-5.5;開發環境選擇MyEclipse 2014。采用本地安裝的策略,在中標麒麟6.0系統上進行安裝部署[8],具體過程和實現方案如下。
Java環境是 Tomcat運行的基礎。JDK(Java Development Kit)是Java的軟件開發工具包(SDK),是整個Java開發的核心[9]。其配置主要過程如下。
卸載系統JDK:安裝之前先查看系統的JDK版本,如果存在則建議先將其卸載,防止安裝配置JDK是發生錯誤,卸載命令為# yum remove java java-1.7.0openjdk-devel.i686。此命令為卸載JDK及其依賴的安裝包。其中,java-1.7.0openjdk-devel.i686是查看獲取的JDK版本。
安裝新版本JDK:卸載完成后,到官方網站下載源碼jdk-8u11-linux-x64.tar.gz,將其解壓,其命令為# tar –zxvf jdk-8u11-linux-x64.tar.gz -C/usr/local/。-C/usr/local/表示解壓到指定的目錄。
配置JDK環境變量:JDK解壓好后要對其進行環境變量的配置,JDK環境變量文件的存放的位置為/etc/profile。
在profile文件末尾加入如下配置信息。
export JAVA_HOME=/usr/local/jdk1.8.0_11 export JRE_HOME=/usr/local/jdk1.8.0_11/jre export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/dt.jar
其中,JAVA_HOME指向的是JDK的安裝位置;JRE_HOME的位置為jre的安裝位置;PATH指向的是JDK的bin和jre的bin目錄;CLASSPATH指向的是bin目錄下的tools和jre/lib目錄下的dt.jar。注意在:之前需加., 否則會出現錯誤。
測試:命令為java -version或javac,其中java-version的測試結果如下。
# java –version //查看 JDK 版本信息,以下為輸出內容。
java version “1.8.0_11”
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
tomcat依賴于java語言,其功能優越,性能良好,具有強大的跨平臺性。安裝配置過程方便快捷。官網下載安裝包apache-tomcat-8.0.30.tar.gz,解壓安裝到/usr/local目錄下,其命令為:# tar –zxvf apachetomcat-8.0.30.tar.gz -C/usr/local/。完成后需要配置環境變量,其配置方法和過程如下。
打開配置文件所在目錄,位置是Tomcat安裝目錄的 bin文件夾下,修改文件夾下的 startup.sh和shutdown.sh文件,加入以下配置信息。
JAVA_HOME=/usr/local/jdk1.8.0_11
JRE_HOME=/usr/local/jdk1.8.0_11/jre
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bi n:$PATH
CLASSPATH=.;$JAVA_HOME/lib/tools.jar:$JAV A_HOME/jre/lib/dt.jar
TOMCAT_HOME=/usr/local/apache-tomcat-8.0.30
其中,JAVA_HOME和JRE_HOME是已經配置好的JDK和JRE目錄;TOMCAT_HOME為當前的Apache-Tomcat-8.0目錄;conf目錄下為服務器的配置文件;bin下存放啟動和關閉服務器的文件。
測試:在bin目錄下文件startup.sh為開啟服務器,shutdown.sh為關閉服務器。測試過程和結果如下(以測啟動服務器為例)。
# ./startup.sh //啟動Tomcat服務器。
Using CATALINA_BASE:/usr/local/apachetomcat-8.0.30
Using CATALINA_HOME: /usr/local/apachetomcat-8.0.30
Using CATALINA_TMPDIR: /usr/local/apachetomcat-8.0.30/temp
Using JRE_HOME:/usr/local/jdk1.8.0_11
Using CLASSPATH: /usr/local/apachetomcat-8.0.30/bin/bootstrap.jar:、/usr/local/apache-tomcat-8.0.30/bin/tomcat-juli.jar
Tomcat started.
此為啟動成功;測試結果如圖5所示。

圖5 Tomcat服務器測試結果Fig.5 The results of Tomcat server test
MySQL是一個開源的輕量級的數據庫系統,成本低;在對資源占用率不高的情況下,運行速度快,因此被廣泛應用于中小型網站中。其安裝配置過程如下。
新建 mysql組用戶:用于啟動 MySQL服務。相關命令為。
# groupadd mysql //新建 mysql用戶組。
# useradd –g mysql mysql//向 mysql用戶組中添加mysql用戶[10]。
安裝MySQL服務:下載軟件安裝包MySQL-5.5.55-1.linux2.6.x86_64.rpm-bundle.tar,里面有七個.rpm 文件,選擇安裝服務器和客戶端[11]。
MySQL-server-5.5.55-1.linux2.6.x86_64.rpm
MySQL-client-5.5.55-1.linux2.6.x86_64.rpm
采用rpm本地安裝方式,其安裝命令如下(以安裝server為例)。
# rpm –ivh MySQL-Server-5.5.55-1.linux2.6.x86_64.rpm
啟動與測試:由于Linux安全機制問題,此時,任何一個用戶都無法啟動 mysql服務,需要進入目錄/var/lib/mysql賦予權限才可以啟動服務,其過程的相關命令如下。
# cd /var/lib/mysql//進入到目錄/var/lib/mysql下。
# chown –R mysql:mysql .//將當前目錄所有權修改為mysql組用戶的mysql用戶。
賦予權限后切換mysql用戶后啟動服務,命令為。
$ service mysql start
Starting MySQL..[ 確定 ]
即啟動完成。
登陸mysql進行測試,相關命令和過程如下。
# mysql -uroot -p//連接本地數據庫。
Enter password:
Welcome to the MySQL monitor. Commands end with ;or g.
......
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.
mysql>
即成功地登陸了本地MySQL服務器。
java的開發環境有很多,以 MyEclipse2014為例,采用本地安裝的方式進行部署。下載軟件包myeclipse-pro-2014-GA-offline-installer-linux.run,通過chmod命令修改權限后,進行安裝,其主要過程和相關命令如下。
# chmod 777 myeclipse-pro-2014-GA-offlineinstaller-linux.run
777為-r-w-x的數字表示方法,表示可讀寫和執行的權限。修改后可通過命令進行查看,未修改前為紅色,修改之后為綠色。之后輸入命令進行安裝。
# ./myeclipse-pro-2014-GA-offline-installer-linu x.run
Starting installer - please wait...
- Preparing install engine
- Extracted install engine
- Detected JVM architecture: 64 bit
- Launching install engine: waiting for completion
執行到此后會彈出圖形界面,其安裝配置與Windows相同。
創建數據庫,編寫讀取數據庫測試文件,其JSP頁面部分代碼內容如下。
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager. getConnection
("jdbc:mysql://localhost:3306/test","root","root");
Statement state=con.createStatement();
String sql2="select * from test";
ResultSet rs=state.executeQuery(sql2);
while(rs.next()){
String uID=rs.getString("id");
String uName=rs.getString("name");out.println(" ID : "+
uID +" "+" ;Name :  "+uName+"
");
}
out.println(" Operator success..."+"
");
state.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
將編寫好的 JSP文件放入到 Tomcat/webapps/ROOT目錄下進行測試,其測試結果如圖6所示。其中,前兩行為數據庫中讀出的內容,最后一行為提示信息。

圖6 Tomcat測試結果Fig.6 The results of Tomcat test
中標麒麟作為國產操作系統的領導者,采用強大的Linux作為內核,其安全機制優于Windows;性能穩定,極少出現宕機的現象;與現行操作系統相比具有巨大的優勢。對Tomcat服務器和JSP技術進行了簡單的介紹,設計了基于中標麒麟 6.0系統的服務器搭建方案并對其進行了驗證。結果表明,基于java的網站構建方案在國產操作系統上切實可行,對下一步推廣使用國產操作系統打下了堅實的基礎,也為國產操作系統網站構建提供了技術方案和實驗支持。
致謝:本文的工作是在石家莊鐵道大學復雜網絡與可視化研究所中進行的,研究部分由國家科學、技術和工業管理局資助,在民用和軍用合并方案下進行,受到河北省“河北省國家重大國防可視化系列系統及軟件產品的研發與實際推廣應用”(資金編號Z66906)項目和河北省第三批創新團隊及領軍人才"巨人計劃"(冀辦字[2018]33號)的資助與支持。