The Product Server
The main Web applications in LAS (the Product Server and the UI Server) are build on top of Struts. The Product Server is a Struts action class that takes in the LAS client request (typically an Ajax application running in a browser), breaks the request apart and farms out the work necessary to build the product to one or more backend services, collects the results from the services and forwards the response back to the client.
The product server is also responsible for managing the LAS cache so that requests for the exact same product can be handled directly without sending them to the backend services. And the product server is responsible for keeping track of active requests and joining requests from two clients for the exact same product into a single thread so that the system need only create the product one time. Additionally, the Product Server will communicate with the client in the event that the request takes a long time, letting it know that the request is still being worked on and how long the request has been active. The Product Server will also accept email addresses in the case of a long running job to notify the user when the product is finished. The Product Server will also accept requests to cancel jobs and will notify the services involved that they are to stop working on the request.
The User Interface Server
The Backend Services
The Backend Services are Plain Ordinary Java Objects with one method the receives a String argument (that is an XML Backend Request) and returns a single String argument (an XML Backend Response). These services are deployed as SOAP services using Apache Axis. You can see the services available for a particular LAS by looking the the ProductServer.do URL for the LAS.