We need to look at possible architectures for implementing the payment module of the an application.
We can think of the payment module as a Java process that does the following 1. validate the card and some other stuff....
The payment module should be able to support non java clients...
Take the case when a customer swipes a card at a store.... Another process (call it the router) determines if the transaction info needs to be sent to my java program... If yes , the router invokes my payment module. The router can vary from store to store ... So my Payment module will be invoked by non java clients... As part of deciding on the architecture we need to decide on the protocol used for communication http/tcp/iiop etc.
Also, we need to decide on the various options for implementing the payment module.... It can be webservices, EJB Session Beans etc... But the key point is ,.....performance.... A huge volume of transactions can be expected to come in and these need to be processed at high speed(response time of 5 seconds or so).