XFire is based a component based framework. A quick look at the components and you will have a pretty good understanding of how everything fits together. First a rundown from of how things look when a service is invoked, then there will be a table of components.
Users will most likely be accessing the services through Transports. A transport (like HTTP) passes off the SOAP message to the XFire component.
The transport determines that service that is being invoked then passes a MessageContext and service name off the the XFire class. The XFire class looks up the Service from the ServiceRegistry and then invokes the Handler.
Component |
Description |
XFire |
This is point of access for transports. Here you can invoke a service by providing an XML SOAP document and get the response programmatically. |
Service |
This is a description of a SOAP service. |
Invoker |
An Invoker allows you to controller the mechanism by which the underlying object that services a request is created. |
ServiceRegistry |
A registry of all the services within the system. |
Handler |
A processing module within XFire. This could do anything from processing an incoming XML stream to accessing your database. |
TransportManager |
Manages the transports within XFire. Custom transports should be registered here. It also has the ability to turn off/on transports for certain services. |
Transport |
An encapsulation of a transport mechanism, such as HTTP or JMS. A transport is responsible for managing incoming and outgoing communications using a particular wire protocol. |
FaultHandler |
FaultHandlers take an exception and create a fault message. Note that they do not extend Handler. |
|