CaroWorks is architected for implementation as part of a Service Oriented Architecture but it can also be implemented and be entirely useful in a more simple architecture. The following diagram is a pictorial depiction of the CaroWorks architecture for SOA.

The Enterprise Layer is a Client for the services offered, it consists really of application front-ends or end-points that provide access to the services. This layer is not technically part of CaroWorks except that in some instances we do have pre-build web clients for some facets of the suite. At this level the Application Server can service HTTP requests and the Web Services support interoperable machine-to-machine interaction over the network via SOAP messages.
The Business Process Layer provides support for the critical business processes of the organization. Compositions and choreographies of services exposed are defined in this layer. We use service composition to combine groups of services into flows, or we choreograph services into flows, thereby establishing applications out of services. These applications support specific use cases and business processes.

To do this, visual flow composition tools can be used for design of application flows. The diagram above shows how a business process P can be implemented using services A, B, and C from the services layer. Process P contains the logic for the sequence in which the services need to be invoked and executed. The services that are aggregated as a business process, or flow, can be individual services or composite services made up of individual services.
The Services Layer is a set of services providing an area of business functionality that is controlled by a single organization. As an example, for the accounts department in a business, the service layer might cover all financial related function, and it might contain a series of modules dealing with specific areas of accounting, with one for customer accounts and the other dealing with accounts payable.
Services at this layer should be made accessible via different middleware, supporting synchronous and asynchronous, client/server, peer-to-peer, long running or short lived interactions. This approach maximizes the autonomy of the components also making it easier for them to be composed/integrated by other components. Exposed services reside in this layer; they can be discovered and invoked or possibly choreographed to create a composite service.
The Component Service Layer contains a series of pre-built business components. Any single business component models and implements business logic, rules and constraints that are typical, recurrent and characterize a domain or business area of the enterprise. They are key abstractions.
Each component encompasses five dimensions
- A component’s business purpose is the logical reason for its existence within the organization, as defined by the value it provides to other components.
- Each component conducts a mutually exclusive set of activities to achieve its business purpose.
- Components require resources, the people, knowledge and assets that support their activities.
- Each component is managed as an independent entity, based on its own governance model.
- Similar to a standalone business, each business component provides and receives business services.
The Technology/Operational Layer is made up of existing application software systems; thereby, it is used to leverage existing IT investments in implementing an SOA solution.
- Existing monolithic custom applications, including J2EE and Microsoft .NET applications
- Legacy applications and systems
- Existing transaction processing systems
- Existing databases
- Existing packaged applications and solutions, including enterprise resource planning (ERP) and customer relationship management (CRM) packages (such as SAP and Oracle solutions)