...
OrderDetails getOrderDetails(String orderId) Pre-conditions
- The orderID argument must not be null.
- The orderID must be a valid order id.
Post-conditions
- Return the details of the purchase order, which include the status of each of the airline requests (both departing and returning flights), hotel booking request and activity requests.
Usage restrictions
- Authorization. Only a signed in user is authorized to call this operation. A customer user can only get information about orders he created. A sales representative user can get information about any order.
- Concurrent access. There isn't any limitation on the number of concurrent accesses of this interface. The service is implemented by using EJBs and concurrent calls to it are managed by the EJB container.
...
| Anchor | ||||
|---|---|---|---|---|
|
Java-to-WSDL approach for design of interface
Since both the consumer website and the order processing center reside in the same enterprise we prefer the ease of development provided by JavaToWsdl compiler over stability of a manually-maintained WSDL description. However, this may result in rewriting the clients of this service every time we make a change to this interface.
Using JAX-RPC for passing parameters
Since the consumer website and the order processing center reside in the same enterprise, we avoid using complex XML processing and pass parameters as Java objects. It makes the interface slightly less interoperable but simplifies implementation.
Publishing the web service as a WSDL
This web service is published as a WSDL in a well known location (static web service instead of using a registry) since it is not available for general public use. It is only used by the consumer website. The option to use SOAP instead of Java RMI or direct EJB calls is motivated by the possibility of replacing the Consumer website implementation with a different technology (e.g., .NET); SOAP can provide the required interoperability in that case.
Using the EJB endpoint type
We chose the EJB endpoint type because the order processing center is implemented using a set of session beans.
| Anchor | ||||
|---|---|---|---|---|
|
...