WebObjects Application Server Types / Deployment Styles
There are two ways to deploy your WebObjects Application, "Standard" and "Servlet". They have different components and configurations, but they all take your Application as a .woa bundle.
This is how a great majority of WebObjects applications are deployed. This is the type of deployment for which there is the most documentation and support. It requires four distinct pieces of software to be installed to support your application:
- JavaMonitor - a Web front-end to manage your wotaskd configuration. You can use one copy of JavaMonitor to manage multiple wotaskd daemons running on different application servers. JavaMonitor is actually a WebObjects application in its own right.
- wotaskd - a daemon whose main task is to start up instances of your applications when the application server (host) is restarted. wotaskd also receives lifebeats from your application instances. If wotaskd stops receiving lifebeats after a certain amount of time it will assume that your application is dead. The wotaskd daemon is also a WebObjects application in its own right, but with no browser interface.
- HTTP Adapter - This is an Apache httpd module that serves as the interface between the Apache httpd web server and your application instances. The adaptor routes requests from the web server to the appropriate application instance and sends the responses generated back to the web server. The adaptor does this while performing load balancing to distribute an application's users among its active instances. Load balancing helps to spread the user load of your site evenly across your application hosts.
- Apache Adapter: mod_WebObjects
- IIS Adapter:
- Webserver (Apache httpd or Window IIS)
Usually, people run wotaskd, JavaMonitor, their applications and the Web server on the same server, but it's also possible to run each part on different servers, or to have multiple servers filling each role if needed.
Servlet Deployment (Tomcat)
Apache Java Protocol (AJP) Deployment (NO LONGER AVAILABLE)
Andrew Lindesay has written an open-source AJP adaptor for WebObjects 5 which should allow you to deploy your WebObjects application without servlets or the 'wotaskd' infrastructure. Such a deployment is most easily achieved with versions of the Apache HTTP server 2.2 or better as they have built-in support for load-balancing and AJP request-forwarding.
This adaptor is distributed under the LEWOStuff open-source framework. It is however stand-alone and has no direct dependency on other libraries or frameworks other than obviously WO 5. For more details on this, see the relevant section of the PDF overview supplied with the LEWOStuff framework.
- AJP Adaptor
- WebServer (Apache)
All three of these Application Servers / Deployment Styles can run on any platform that supports Java 1.5 or later. The ones that there is documentation for are:
- Deploying on Amazon EC2
- Deploying on FreeBSD 6.x and 7.x (WO 5.3.3)
- Deploying on FreeBSD 8.2 and WebObjects 5.4.3
- Deploying on Linux
- Deploying on Mac OS X 10.6 (Snow Leopard)
- Deploying on Solaris (WO 5.3.3) (DELETABLE)
- Deploying on Windows
- Deploying with Tomcat
- Deployment using Docker Container
- Installing a deployment environment on Debian or Ubuntu
- Installing a deployment environment on RedHat, CentOS or Amazon Linux
You can learn more about deployment by listening to the Practical Deployment session from WOWODC 2009, available from the podcast page on wocommunity.org.
Differences between Apple's and Wonder's versions of the deployment tools
wotaskd and JavaMonitor were released by Apple to the community as open source when WebObjects 5.4 was released in 2007. They were added to Wonder and improvements and bug fixes were made to the tools. We strongly suggest that you use the Wonder Versions.