such as JCA allow adapters to be created in a vendor-neutral manner. Data format and transformation To avoid every adapter having to convert data to/from every other application's formats, EAI systems usually stipulate an application-independent (or common) data format. The EAI system usually provides a data transformation service as well to help convert between application-specific and common formats. This is done in two steps: the adapter converts information from the application's format to the bus's common format. Then, semantic transformations are applied to this (converting zip codes to city names, splitting/merging objects from one application into objects in the other applications, and so on). Integration modules An EAI system could be participating in multiple concurrent integration operations at any given time, each type of integration being processed by a different integration module. Integration modules subscribe to events of specific types and process notifications that they receive when these events occur. These modules could be implemented in different ways: on Java-based EAI systems, these could be web applications or EJBs or even POJOs that conform to the EAI system's specifications. Support for transactions When used for process integration, the EAI system also provides transactional consistency across applications by executing all integration operations across all applications in a single overarching distributed transaction (using two-phase commit protocols or compensating transactions). Communication architectures Currently, there are many variations of thought on what constitutes the best infrastructure, component model, and standards structure for Enterprise Application Integration. There seems to be a consensus that four components are essential for a modern enterprise application integration architecture: A centralized broker that handles security, access, and communication. This can be accomplished through integration servers (like the School Interoperability Framework (SIF) Zone Integration Servers) or through similar software like the enterprise service bus (ESB) model that acts as a services manager. An independent data model based on a standard data structure, also known as a canonical data model. It appears that XML and the use of XML style sheets have become the de facto and in some cases de jure standard for this uniform business language. A connector, or agent model where each vendor, application, or interface can build a single component that can speak natively to that application and communicate with the centralized broker. A system model that defines the APIs, data flow and rules of engagement to the system such that components can be built to interface with