C S T - RO CornerSoft Technologies - Bucharest
 
 

    Services >> Enterprise Application Integration

Company Profile
Services
Products
Community Access
Technology Corner
Jobs
Talk to us
Download
Links
Search


Enterprise Application Integration (EAI) was the term used by a group of vendors to identify the market space for application integration. Using the word "application integration" in the name to depict the value that software products in this space deliver to customers is quite misleading. A more expressing term would be "business integration". That term would describe what this new space promises to deliver to customers. While the word "enterprise" tells some of the story, the term is much too limiting. The opportunity here is to deliver value to customers by integrating business functions and applications not only within the enterprise, but also across the enterprise - to all stakeholders with whom the organization conducts business (including customers, trading partners, and suppliers). Business and application integration in-depth across several categories, including e-business, m-commerce, B2B, application integration, ERP integration, data integration, and process flow.

When evaluating the technology of the software vendors it helps to separate the software stack into some standard components, which are: Architecture, Integrated Design/Development/Deployment Environment (IDE), System Support Facilities, Intelligent Adapters, Transport, Routing/Message Broker, Reformatting, Transformation, Business Process Support as described below.

Architecture If the functional architecture cannot be described in a block diagram, using hierarchies to organize and simplify, you are going to have lots of scalability and performance problems, not to mention maintenance and ease of use. Additionally, your system is not going to scale functionally if its architecture isn't uniform: That means integration will eventually become a costly headache. A uniform, distributed architecture permits all components to be used together seamlessly. Architectures have evolved from simplistic point-to-point, hub, multi-hub, and finally, peer-to-peer or service-oriented, descriptive of the routing that is taken by messages between interconnected software systems in an attempt to improve scalability and performance.

Integrated Design/Development/Deployment Environment (IDE) If you might think the IDE has little to do with scalability and performance, you're wrong. When user-written extensions and product extensions are developed with the same tools, that great bane of scalability and performance - known as impedance mismatch - can be minimized.

System Support Facilities A great way to add overhead to a system is to develop functionally redundant and variant support facilities, almost a certain outcome if standard system support facilities are not supplied. Such redundancy adds unnecessary code that must be supported and increases the likelihood of context switches. It almost certainly will decrease Application Program Interface (API) uniformity, an essential element of good scalability and high performance. With every additional interface conversion or wrapper, we increase the execution path length for business functions.

Intelligent Adapters Adapters (or Connectors) are rapidly becoming the primary and most powerful component in integration suites. Early adapters did little more than provide data and message formatting. Today, these components are instrumented at many levels, providing system management and monitoring, meta-data interfaces, error recovery and logging, encryption, and much more. Because functionality varies so much, spend some time comparing adapters: they are not a checklist item. The wrong adapter can mean lots of development and high support costs. Good adapters can do a great deal to minimize message volume and message overhead. If the adapter is an intelligent agent, it can be interrogated and remotely, dynamically configured to work the most appropriate way. A more or less autonomous adapter enables availability and higher performance. Tasks like message reformatting and data transformation might be done locally, with the output routed directly to the next business.

Transport Each of the major products offer some form of native transport, a method of communicating messages. It may be synchronous or asynchronous, with subcategories, with subcategories such as RPC, request/reply, fire and forget (datagram), or publish/subscribe. If asynchronous, queue management is required. An implementation may very well use multiple transports, requiring adapters between the product's native transport and some pre-existing one. Offering a native transport avoids the potential cost of third-party product, and need for additional selection, deployment, support and compatibility. Not every method of communicating messages is appropriate for every instance of application-to-application communication. While asynchronous messaging (and, in particular, publish/subscribe) is very flexible, it is not very helpful when transactional integrity requires synchronization among distributed business functions. Flexible, configurable choice in the transport can make the difference between timely and slow unreliable integration.

Routing/Message Broker If you happen to need one, the throughput capabilities of your broker forms a floor on system performance. Try to make certain it will scale linearly, either with multiple brokers or, preferably, through peer-to-peer distribution of the brokering function. Message overhead shouldn't depend on routing complexity. Each of the major products offers a mechanism for flexibly routing messages. Most now provides request/reply and publish/subscribe routing, as well as both content-based and logical address routing. Content-based routing introduces a conditional element, which can be based on anything that can be incorporated as part of the content of the message. Pre-defined routing can be extremely efficient where it is applicable.

Reformatting Because aspects of the message that do not pertain to the content may need to be altered between source and destination, each of the major products offers some means of altering message format (reformatting). Note that this is distinct from content transformation. Often reformatting is done within the adapter, although some products perform such functions within a central broker. It's even better if formats are remotely configurable and have low overhead.

Transformation Altering message content between source and destination requires a transformation engine, perhaps as simple as inline translation. Transformation rules can be extremely complex, using content interpretation, meta-data (such as a record header or trailer), remote function calls, or simply field position, type, and length. Transformation engines may be hub-based, but the trend is toward adapter-based, providing multi-source to multi-destination transformation and multi-record to single record transformation without programming. All reformatting and transformation rules need to be maintained in an open, distributed repository. Distributed transformation is more efficient and scalable than hub-based transformation. This is true even if state-dependent fan-in or fan-out is required or the transformation rules change frequently, but a local "transformation engine" may be required. Watch out for XML overhead. Pay attention to rules repository efficiency: Both storage and access can be bottlenecks.

Business Process Support Business processes represent sequences of business events and activities, each of which may be implemented under the control of either personnel or software. Support ranges from simple workflow management to complex business process automation. A workflow or process definition controls routing of messages, and drives destination-based transformation. Unlike the point-to-point routing of a message broker, business process support introduces a higher level of routing control end-to-end. Sophisticated business process support will include hierarchies, simulation, analysis, optimization, transaction, recovery, graphical design, and both forward and reverse engineering at the click of a mouse. A high-performance process definition and instance status repository is required. A business process engine must support high-performance process definition, redefinition, and process state update and interrogation. Like other components, process management is most scalable if distributed. Process definitions can be replicated from a central repository, thereby enabling local and efficient lookups for each process instance. A slow process engine will become a serious bottleneck and impede scalability.

/\ TOP of Page 

Virtual Enterprise Management System
  © 2002 CST GROUP

ISO 9001 Certified

Microsoft Certified Partner, Romania, Eastern Europe