Platform for connected applications

Ensemble Technology

Sophisticated technology supports Ensemble’s ability to make any integration project easier and faster to complete. It starts with the proven, powerful, and massively scalable object technology of the InterSystems Caché database. Ensemble is built on Caché, enabling your Ensemble-based solutions to scale easily to handle thousands of simultaneous users and terabytes of data. The successful solutions you create will always be able to handle their own success, virtually unlimited in ability to handle increasing demand.

All elements of Ensemble are modeled as object classes in the Caché database. This object model is extended, as you develop a solution, by Ensemble’s advanced abstraction facility to all of the applications, services, data sources, business rules, and other components you’re using. In addition, Ensemble’s database is a repository for every message generated by a working solution, and for the current state of every business process. With Ensemble, messages are never lost, and an interrupted business process can always restart from the point of interruption. Sophisticated transactional bitmap indexing enables real-time updating of, and access to, the message database for analytics, business activity monitoring, auditing, and management.

Ensemble’s object model, shared database, and development environment provide a consistent, unified view of the underlying systems, applications, and services in a solution – no matter what platforms, languages, data models, storage architectures, network protocols, or other technologies those underlying parts use. Ensemble reduces the complexity typically associated with integration projects, incorporates services and data as needed into different business processes, and drastically reduces time to solution.

Advanced messaging

The messaging functions inside Ensemble are one part of a whole that, like all other parts, takes advantage of Ensemble’s powerful object model and high-performance data and metadata storage to enable rapid development and ease of management. Ensemble messaging includes:

  • High-speed, highly reliable publish/subscribe, an event driven service-oriented architecture, and content-based routing via an extensible rules engine simple enough for non-programmers to use effectively
  • An extensive adapter library and framework for out-of-the-box connection to a wide range of applications, services, data sources, and technologies such as HTTP, FTP, and SAP
  • Bi-directional support for many standards, including SOAP, XML, and REST, standard messaging formats in healthcare including HL7, DICOM, ASTM, and X12, and standards for financial services, telecommunications, and other industries
  • Graphical creation of XML-based data transformations
  • End-to-end management, including Visual Trace for rapid troubleshooting and message inspection
  • A rapid development environment for easy extension of existing adapters to connect new sources

Rapid and reliable messaging engine

Speed of development, high performance, reliability of deployed solutions, and management efficiency are the primary benefits of the Ensemble messaging engine. This translates into significant time and money savings. But even more important, by using Ensemble IT can put more solutions into production use sooner, giving those solutions more time to deliver their intended value to the enterprise. In healthcare projects, for example, Ensemble users report that development is nearly three times as fast compared to development using other integration products, and message processing that is two times as fast.

The Ensemble messaging engine offers guaranteed message delivery, content-based routing, high-performance message transformation, business rules processing, and support for both synchronous and asynchronous interactions. These reliable and robust messaging services ensure transparent integration of the activities generated by disparate application interfaces, services, technologies, and data sources. The messaging engine also enables real-time access to both live and previously processed messages for auditing and business activity monitoring (BAM), and high reliability and recoverability for long-running business processes.

Extensive and extendable adapter library and framework

Ensemble adapters provide out-of-the-box connectivity and data transformations for packaged applications, databases, industry standards, protocols, and technologies — including SQL, HL7, SOAP, HTTP, FTP, SAP, TCP, LDAP, Pipe, Telnet, and Email. Ensemble gives integration projects a tremendous head start. Adapter code is maintained by InterSystems, further reducing the IT development burden, allowing Ensemble users to focus on business solutions. Ensemble delivers extremely rapid development of custom adapters by using object inheritance and SOAP services to minimize the effort required. Using Ensemble’s unit testing service, custom adapters can be tested without first having to complete the entire project, resulting in faster development and more reliable solutions.

While each adapter has unique attributes – determined by the application, data source, or technology to which it connects – all adapters share a common set of capabilities that ensure a simple, consistent integration model and provide reliable and manageable operations.

Broad-based standards support

Standards support within Ensemble allows developers to leverage skills gained from use of the same standards in other projects, and enables interoperability of completed systems with others supporting the same standards.

Ensemble supports a wide range of standards relevant to a number of industries, including healthcare, financial services, and telecommunications. Ensemble also supports REST architectures and the latest Web services standards, including XML, XPATH, XSLT, SAX, SOAP (as a consumer or producer), and DTDs (document type definitions) and schemas.

Visual and flexible data transformation

Ensemble eliminates barriers to project completion raised by the differences in semantics and data schemas between applications or services. For example, when trying to integrate the patient data inside a community physician’s practice management system with the electronic medical record used at the physician’s admitting hospital. Ensemble’s powerful graphical and code-based data transformation capabilities bridge these differences using simple formulas or lookups in data tables (internal or external), and can be extended to any degree of complexity by adding customized functions. Ensemble stores the mappings and calculations that govern data transformations as objects in its embedded database. Once stored, these mappings become as accessible, reliable, reusable, transformable, and scalable as any other piece of Ensemble data.

Ensemble also includes a unit testing service for transformations. In this way transformations can be tested as they are developed, without having to wait for completion of the entire project.

Efficient and productive development environment

The power of Ensemble’s object model and database technology extends to its development environment as well. Ensemble’s consistent object representation of diverse programming models, programming interfaces, and data formats enables application of Ensemble’s single development environment across all aspects of Ensemble – from messaging to process orchestration to business activity monitoring. This unified graphical, XML, and code-based environment simplifies and accelerates modeling and automating of business processes for business analysts and developers. And it enables extremely rapid service-oriented development of composite applications.

Ensemble’s consistent, efficient object representation of disparate programming models and data formats enables use of the latest, most powerful development tools and technologies. Once resources (including legacy application functionality and data) are stored in the database as Ensemble objects, they can be automatically “projected” out to consumers of those resources in a wide variety of forms including ODBC, JDBC, Java, .NET, XML, Web services, or REST.

For service-oriented architectures (SOA), Ensemble can act as a producer or consumer of Web services. As a producer, Ensemble can present any of the functions stored in its database as a Web service. As a consumer, Ensemble identifies external Web services and stores their object representations in its database, where they’re available for incorporation into solutions as easily as local functionality.

Additional benefits of Ensemble’s development environment include:

  • Support for rapid service-oriented development of composite applications by enabling transparent access to SOAP and other service-oriented architectures, such as REST.
  • Streamlined integration with third-party business process management tools by providing the Ensemble Business Processing Language (BPL), based on emerging specifications such as the Business Process Execution Language for Web Services (BPEL4WS or BPEL) and the Business Process Management Language (BPML or BPMI).
  • Full programmatic access to the Ensemble database in real time, via SQL and object views.
  • Support for components written in many programming languages, from Java to C#.
  • Familiarity for BASIC programmers. A built-in BASIC-like scripting language ensures that any developer who knows BASIC will be able to integrate and develop with Ensemble.

End-to-end management

Integrated systems can be the most difficult to manage because they link disparate applications that were not designed to work together. Service-oriented architectures, composed of loosely coupled services, also present thorny management challenges. Ensemble’s repository stores a wealth of information for end-to-end monitoring and management of both types of systems. This information includes all messages, process state, and metadata captured from working systems. Ensemble’s browser-based management portal provides extremely powerful yet easy-to-use features that leverage this information to simplify management and monitoring.

Ensemble’s Visual Trace facility gives administrators the power to trace messages, and examine their content, as they move through the system. It also provides powerful analysis and reporting functions for real-time visibility into business processes, and troubleshooting.

Ensemble solutions are extremely reliable, with users rarely citing unplanned downtime. If trouble does arise, Ensemble provides monitoring and alerting functions that automate contacting the right administrators at the right time, and that also can execute Ensemble business processes that operate in a feedback loop to address the problem itself.

Beyond messaging – Ensemble business process optimization functions

Ensemble’s business process optimization functions can be thought of as “plug-ins” to Ensemble messaging engine. As plug-ins, they make use of messaging functionality and add additional value to the product. Unlike plug-ins, however, Ensemble business process optimization functions are integrated to the core with the rest of the product. They draw on the fundamental object and database technologies that give Ensemble so much of its power. When the business need arises, these functions are ready to go, accessed and used in the same way, from the same development and management environment, as the messaging technology.

Ensemble Application Integration Tool

Figure 1. Conceptually, Ensemble is a layered product, with a set of foundation technologies used by all features in layers above. Each upper layer uses the features of the layer immediately beneath it.

The benefits of Ensemble’s business process optimization functions go well beyond what conventional products can offer. These extended functions enable business analysts and software developers to collaborate on projects that can easily blend all four of the following integration types:

  • Making applications and information more easily and more widely accessible through a variety of devices
  • Collecting and collating information from disparate sources (on a customer, patient, product, and so on) into a single, comprehensive view
  • Automating business processes, including easily modifiable business rules to direct process execution, and human workflow
  • Achieving data consistency across disparate applications and databases

Ensemble’s business process optimization functions leverage the product’s advanced object model, its comprehensive store of operational data and metadata about the integrated environment, its powerful messaging foundation, and its unified development environment to:

  • Orchestrate and maintain the state of business processes of any duration
  • Change behavior of working business processes via rules, rather than coding
  • Incorporate human workflow into otherwise automated processes
  • Monitor activity and state of the entire system and key performance indicators

Harmonious business process orchestration
A business process is a sequence of tasks that must be performed in order to accomplish a business objective, such as processing a mortgage application or checking a patient into a hospital. Orchestration is a design process that focuses on business process, rather than technology. Taking this view, business analysts can use Ensemble’s rich, graphical editor to diagram processes and information flows, including rules and workflow, with a focus on the logical interactions between systems without lower-level concerns about application interfaces, adapters, or middleware mechanisms. Ensemble automatically generates executable code for the process from the resulting model. The graphical model facilitates dialog and sound communication between analysts and developers, leading to faster development and systems that better match business requirements.

Developers can refine automatically generated code, if needed, with additional graphical modeling, written descriptions using the Ensemble Business Processing Language (BPL, a superset of the BPEL standard), XML documents, or code. The ability to “mix and match” these tools enables efficient addressing of the widest range of integration issues using the widest variety of development approaches.

Intelligent messaging and processes with business rules
Non-programmers, such as business analysts and support personnel, can use Ensemble’s business rules editor to quickly configure and change decision points in a business process. In financial services, for example, a business manager can use the business rules editor to configure changes in the loan origination process, instead of having a developer make changes to the application code. This reduces the cost of making such changes, and frees developers to focus work on new projects – reducing backlogs and getting applications and integrated systems into production use sooner. Administrators and developers also can use rules for intelligent routing of messages to specific business processes by message type, content, and subscription. Rules are stored as objects in Ensemble’s database, entirely separate from business process code, and can be reused, sub-classed, and modified as easily as any other Ensemble object.

Adaptable workflow engine
With people obviously playing a major role in business processes, it’s ironic that most integration products, including ESBs, do not include fully integrated workflow functionality. A workflow management system automates the distribution of tasks among users and incorporates their decisions into the system automatically, according to a predefined strategy. Ensemble Workflow makes task assignment more efficient and task execution more accountable.

Ensemble’s integrated Workflow Engine takes full advantage of the product’s unified architecture. Workflow tasks, created using Ensemble’s graphical editor, are represented as objects and stored in Ensemble’s database. As a result, any automated business process can use the stored tasks as easily as it can use a Web service, enterprise application, data source, or other technology modeled in Ensemble’s database. Because the Workflow Engine is fully integrated within Ensemble:

  • Composite applications can easily incorporate complex manual interactions that reach across geographical, technological, and departmental divisions.
  • User-based process definitions can be separated from business logic, allowing developers and analysts to define each segment distinctly within a cohesive whole.
  • The workflow system is more versatile, more powerful, easier to construct, and simpler to maintain.

Insightful analytics for business activity monitoring
Ensemble possesses the performance, capacity, and reliability to store all messages and events passing between every component of an integrated system. And it makes that data, and metadata about the components and activities in the system, available in a consistent format to Ensemble’s Business Activity Monitoring (BAM) function. Ensemble BAM draws on this rich trove of data to provide managers with immediate awareness of business events and changing business conditions across the enterprise via graphical dashboards, email alerts, and other means. This clearly presented information enables appropriate and timely decisions by IT and business management. By providing managers with this kind of real-time information, Ensemble reduces costs and speeds the execution of business strategies.

Ensemble comes with features that speed the development of BAM solutions. Ensemble’s advanced object technology and wizard-driven development make it easy to define “business metrics” that gather, or calculate, key performance indicators and other information about an integrated system at developer-defined intervals. That information can be associated with meters displayed on a customizable browser-based dashboard. Business metrics also can contain logic that implements a feedback loop within the integrated system. For example, when a measured parameter (such as the stock level of a product in a warehouse) goes outside of its expected limits, a business metric can automatically take corrective action (such as re-order the product), provide notification, and so on.

End-to-end management
Management of Ensemble’s business process optimization functions is no different than management of its messaging components. The same secure, browser-based portal gives administrators complete reporting and analysis capabilities for enterprise data (message contents that flow through the solution) and solution metadata (operational statistics regarding the Ensemble solution).

Ensemble management capitalizes on the product’s tightly integrated architecture. It offers full access to solution data through viewing mechanisms such as Ensemble Visual Trace and dashboards, and programmatically through SQL and object views.

Developers can easily customize management interfaces, using Ensemble’s development environment, so that solution users can query, filter, select, and highlight the information of most interest to the enterprise. Alerts can be designed to contact enterprise staff when a problem requires immediate attention. Developers can custom-code management elements into an Ensemble solution, or accept the rich set of default management tools that ship with Ensemble.

More valuable IT with Ensemble, more value for the business

With other integration products and methodologies, IT managers often find themselves having to integrate multiple tools (sometimes from the same vendor!), to keep their integration projects rolling. Working this way IT can’t roll fast enough, and the goals of IT agility and business agility keep slipping away.

Ensemble covers the full spectrum of integration scenarios with comprehensive and tightly integrated technology that is easy to learn, use, and manage. The innovative technology in Ensemble, including its object model, advanced abstraction functionality, ultra-fast messaging engine, and its high-performance and highly reliable database, makes your IT environment more valuable and the business more agile by enabling you to:

  • Focus on improving business processes instead of which technology to use
  • Develop and deploy IT assets faster, natively or as services, in a flexible integrated architecture
  • Bring legacy application functionality into the integrated system
  • Align IT assets rapidly with frequently changing business requirements and processes
  • Integrate within your existing frameworks and methodologies
  • Move to a service oriented architecture at a lower cost and with less risk

Appendix I – Ensemble Adapter Library

Ensemble adapter library

You can give your integration projects a tremendous head start by using Ensemble adapters for out-of-the-box connectivity and data transformations for packaged applications, databases, industry standards, protocols, and technologies. Ensemble includes adapters for:

  • Delimited files
  • Email
  • File handling
  • FTP
  • HTTP
  • IBM WebSphere MQ
  • Java
  • JSON
  • LDAP
  • .NET
  • Pipe
  • REST
  • SAP Java Connector
  • SOAP
  • SQL
  • TCP
  • Telnet
  • Web Services/SOAP
  • XML

Appendix II - Standards support

Standards support within Ensemble allows you to leverage skills gained from use of the same standards in other projects, and enables interoperability of completed systems with others supporting the same standards. Standards supported:

  • ASTM
  • ebXML MS
  • HL7
  • REST
  • UDDI
  • WSDL
  • X12
  • XSD