XFire Internals
XFire is 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 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 the service that is being invoked and passes a MessageContext and service name off to 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. |
