理解ARCIMSServer、Service和Servlet Engine的区别

 理解ARCIMS-Server、Service和Servlet Engine的区别:
我们知道,ARCIMS是一种服务器端Server运行的服务Service,即所谓的BS架构。所谓服务器[Server],一般是指一台服务器硬件,它通过一个主机名或IP来确定它在网络中的唯一位置;一台服务器上可以有多个服务[Service],这些服务,就是一个程序能够通过网络提供的功能,而它们是通过端口port来区分的,每一个service都占据一个端口。

web服务器,它即可以指软件,也可以指硬件,在这里我们理解它是指一种占有80端口的网络服务软件,是一种虚拟服务器,网页文件可以通过这个服务软件在网络上发布。如我们安装IIS(微软的web服务器,XP Home版上不能安装该服务器)。然后我们可以输入http://localhosthttp://127.0.0.1,如果IIS启动了,就一定会弹出一个网页,告诉我们web服务是成功的云云。我们也可以在域名后面加上端口80,如http://127.0.0.1:80,但这个是不必要的,因为访问一台服务器的时候,默认的就是80端口。世界上不止一种web服务器,开源的Apache也是一种web服务器软件,它也是占用80端口的,但一个端口不能让两个服务使用,因此,在安装Apache的时候,最好卸载或关掉IIS,否则Apache是不会安装成功的。

Servlet Engine,是一种Servlet容器。我们知道,IMS是用java开发的,这使得它具有良好的跨平台性,用java开发的基于网络的组件,是一种servlet,即运行在服务器端的java程序。这种程序,即这些servlet,必须在一个容器内才能运行,就像asp文件必须在IIS这个容器内才能运行一样。Tomcat或ServletExec就是这样一种容器,它们负责监听任何对这些servlet的访问并给出响应,确切地说,必须有这种容器,IMS的那些功能才能通过Servlet发布出去。这就是为什么一定要安装servlet Engine的原因。

但是,如果IMS只是依靠Servlet Engine来发布服务,那应该不需要web服务器啊。没错,的确不需要,Servlet Engine是占用8080端口[这个不一定,也可以是其它未用的端口,不过一般是用8080]。这样我们可以通过http://127.0.0.1:8080/xxx(地图文件夹)来访问,这样一点问题都没有。但事实上,我们在访问一个服务器的时候,一般是不习惯带个端口的,即我们习惯使用80端口来访问。这样,我们需要一种协调机制,让访问从占用80端口的服务“传递”到占用8080端口的Servlet Engine中。这样就符合了我们的访问习惯,即http://127.0.0.1/website/mapdemo就可以访问一个站点了。

以Apache和Tomcat为例,在各自安装后,它们还必须配合起来,我们可以在ESRI上下载几个文件,然后进行配置。配置完了,记得打开Tomcat 的Conf文件夹的mod_jk.conf文件,我们可以看到如下的代码:
JkWorkersFile "D:\ApacheGroup\Apache2\conf\workers.properties"
JkLogFile "D:\ApacheGroup\Tomcat 5.5\logs\mod_jk.log"

JkLogLevel all

<VirtualHost * >
ServerName nbjbt

JkMount /servlet ajp13
JkMount /servlet/* ajp13

JkMount /esriadmin ajp13
JkMount /esriadmin/* ajp13

JkMount /examples ajp13
JkMount /examples/* ajp13

JkMount /webdav ajp13
JkMount /webdav/* ajp13

JkMount /tomcat-docs ajp13
JkMount /tomcat-docs/* ajp13

JkMount /manager ajp13
JkMount /manager/* ajp13

JkMount /servlets-examples ajp13
JkMount /servlets-examples/* ajp13
</VirtualHost>

这些文件夹,如servlets-examples ,都是可以不带8080就访问的,反之,如果不配置,在访问的时候,就必须带上8080的端口才行。

原文地址:https://www.cnblogs.com/googlegis/p/2979093.html