国产操作系统JSP服务器部署策略的设计与实现
2018-07-13赵正旭白英杰吴晓进
赵正旭,白英杰,吴晓进
(1. 石家庄铁道大学 复杂网络与可视化研究所,河北 石家庄 050043;2. 北京航天飞行控制中心 软件室,北京 100000)
0 引言
操作系统是计算机应用程序运行的基石,是信息安全的保障。而我国计算机系统依然依赖于国外。近年来,由于外部压力和国内政策的双重刺激,国产操作系统迎来了短暂的发展,并取得了一定的成就。但公开发布的国产操作系统多基于著名 Linux内核改造和开发的,实际上,真正完全自主开发的操作系统并不存在;而国产操作系统的数量和使用范围相对较小,未能形成完善的软件生态系统。所以,国产操作系统还有相当长的路要走。
如今,网络技术不断提高并日趋成熟。越来越多的企业选择建立基于互联网的Web应用系统进行办公,网络的巨大优势越来越凸显。主要提出了基于国产操作系统JSP服务器的部署和实现方案,以及相关技术的介绍,为国产操作系统取代现行操作系统提供部署web服务的理论依据和实践参考。
1 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]。
2 Tomcat服务器简介
Tomcat是 Apache公司一个开源的项目,实质上是一个免费JSP引擎。Tomcat是一个在SUN公司的JSWDK的基础上发展而来的优秀的Java Web容器,是SUN公司推荐的Servlet/JSP容器。目前,Tomcat可以和绝大多数主流 HTTP服务器(如 IIS和Apache服务器)一起工作,而且运行稳定、可靠、效率高。Servlet/JSP网络拓扑图如图1所示。
Tomcat安装完成后,主要有七个目录,不同的目录分管着不同的任务,其部分主要目录结构和相关配置说明如图2所示。
3 JSP技术简介
静态网页是指网页制作完成后,就不能随意更改,用户只能浏览,不能与服务器进行交互操作;动态网页是相对于静态网页而言的,即网页的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
4 设计与实现
JSP服务器部署主要为四个部分:Java环境配置、Tomcat服务器搭建、开发环境以及所依赖数据库的配置。其中,java环境选择 JDK-1.8;Tomcat服务器选择 Tomcat-8.0;数据库选择 MySQL-5.5;开发环境选择MyEclipse 2014。采用本地安装的策略,在中标麒麟6.0系统上进行安装部署[8],具体过程和实现方案如下。
4.1 Java环境配置
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)
4.2 Tomcat安装与配置
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
4.3 MySQL安装与配置
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服务器。
4.4 开发环境配置
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相同。
4.5 测试
创建数据库,编写读取数据库测试文件,其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
5 结论
中标麒麟作为国产操作系统的领导者,采用强大的Linux作为内核,其安全机制优于Windows;性能稳定,极少出现宕机的现象;与现行操作系统相比具有巨大的优势。对Tomcat服务器和JSP技术进行了简单的介绍,设计了基于中标麒麟 6.0系统的服务器搭建方案并对其进行了验证。结果表明,基于java的网站构建方案在国产操作系统上切实可行,对下一步推广使用国产操作系统打下了坚实的基础,也为国产操作系统网站构建提供了技术方案和实验支持。
致谢:本文的工作是在石家庄铁道大学复杂网络与可视化研究所中进行的,研究部分由国家科学、技术和工业管理局资助,在民用和军用合并方案下进行,受到河北省“河北省国家重大国防可视化系列系统及软件产品的研发与实际推广应用”(资金编号Z66906)项目和河北省第三批创新团队及领军人才"巨人计划"(冀办字[2018]33号)的资助与支持。