Wednesday, December 25, 2013

ArcGIS for Server Web Adaptor

You may have stumbled upon this new component that ESRI added in 10.1.  You see it there, in the installation menu, not sure if you should install it or not. You don't even know what does it do. I remember skipping the Web Adaptor first time, I installed ArcGIS for Server successfully and things worked just fine without it. But that was before going to production.

Prior 10.1, ArcGIS for Server (hereafter known as just Server) depends on Internet Information Services (IIS) to publish system web sites which are required for communications between Server components. Server uses these sites to publish and manage GIS Services. However, coupling ArcGIS for Server to IIS like that created a dependency on Microsoft, which prevented ease of upgrade to other platforms.

ArcGIS for Server requires a Web Server Software in order to function. It is where the system web sites are published. That is why in 10.1, ESRI shipped the product with a free built-in Web Server (Apache TomCat 7.0.27) and allowed all system related sites to be published on that built-in Web Server. They even choose a unique port for that purpose, 6080. This allowed ESRI to simplify the installation and easily maintain one architecture across multiple platforms.

After you complete the installation, you can access your services and manage them through this port over HTTP. Assume your Server host name is GIS-SERVER

You use this link to view all services
http://GIS-SERVER:6080/arcgis/rest/services 

This will view a particular service (LANDCOVER) REST description
http://GIS-SERVER:6080/arcgis/rest/services/landcover/MapServer

This will view the service using javascript api
http://GIS-SERVER:6080/arcgis/rest/services/landcover/MapServer?f=jsapi

This gives you access to the ArcGIS for Server Manager
http://GIS-SERVER:6080/arcgis/manager

And so many other uses.

Although this approach seems clean and decoupled, there is however a problem with it. You are really limited with what you can do with this built-in web server. You don't have the luxury to modify the web server configuration, set permissions, change the port or allow authentication. Moreover, you have to enable the 6080 port on your firewall if you want to allow someone outside your network to access it. There are other security issues involved, like Cross Domain. Cross Domain is when a web site or a page requests data from another page which is not hosted on the same domain and port. If you will start publishing web applications and pointing to your services through this port 6080, you will need to enable the cross domain to allow your applications to communicate with other domains. This is a big security risk, as malicious attackers might use this hole to inject scripts on your website that communicate with a remote site and retrieve/send vital information. The Web Adaptor comes in here to fix this.

The Web Adaptor is a web site that acts like a bridge between the existing Apache built-in web servers and your own dedicated Web Server software. It redirects the traffic between the two and allow you to freely configure your Web Server without affecting the existing one. You can publish your Web Adaptor on IIS or any other Web Server using your choice of port. This is usually the default port which is 80. You can also choose to install the Web Adaptor on a separate server making it a dedicated Web Server and point to existing GIS setup. This requires you to open port 6080 between the Web Server and the GIS Server. The GIS Server is the server where you installed ArcGIS for Server.



Click to enlarge



We will discuss more about ArcGIS for Server in future posts. Stay tuned and subscribe.