The OASIS Content Assembly Mechanism (CAM) Technical Committee works to provide an open XML based system for using business rules to define, validate and compose specific business documents from generalized schema elements and structures. A CAM rule set and document assembly template defines the specific business context, content requirement, and transactional function of a document. A CAM template must be capable of consistently reproducing documents that can successfully carry out the specific transactional function that they were designed for. CAM also provides the foundation for creating industry libraries and dictionaries of schema elements and business document structures to support business process needs.
What is the market need addressed by CAM?
Three needs are paramount to automated information integration: 1) the ability to design transactions consistently, 2) the ability to document their usage in a clear way and 3) the ability to drive software that can apply rules and test information content to ensure correct compliance.
The CAM approach provides these three critical abilities: -
documentation of business interchange transactions,
design-time assembly support with verification, and
runtime checking of information content.
Who should participate in the OASIS CAM Technical Committee?
The OASIS CAM Technical Committee remains open to participation from all affected by this work including:
Developers who are working with handling XML content.
Business analysts creating industry domain transaction standards.
Engineers working on smart applications and agent applications with XML.
Business process engineers defining workflow interactions.
Information modelling analysts creating dictionaries and vocabularies.
Production managers running high volume eBusiness hubs.
Mobile device engineers working with rendering content to small footprint displays.
RFID engineers needing to link XML to physical characteristics of items and build catalogues that can be automatically referenced.
Consultants advising customers on optimal ways to deploy XML technologies.
What components does CAM comprise?
A CAM template has five sections: assembly structure(s), business context rules, content referencing, data validation and external mappings. They can be used together or in combination. The first two sections are required; the remaining three are optional, so a CAM template can be as simple or sophisticated as the business needs dictate.
What does the addition of context to CAM do?
CAM provides a global context passing mechanism and an XML rendering for declaring context variables. This context mechanism is at the heart of CAM's effectiveness. By allowing users to quantify what their context factors are precisely, this removes the guess work from business transaction exchanges between partners and allows them to formulize their collaboration agreements exactly. It also makes re-use and identifying potential candidate CAM template models much easier. Simply knowing what the external parameters are can instantly qualify if a template makes sense for a user and allow them to therefore select it.
How does CAM execute?
A CAM implementation requires that a reference CAM template be available along with the CAM processor engine itself. The available jCAM processor is implemented in Java and so can be used in a variety of environments. Along with the CAM processor will typically be an XML instance to be manipulated by the processor. Also CAM maybe used as a Web service and sample WSDL binding definitions are available to facilitate this.
How does CAM integrate with other application integration/B2B products?
The most obvious use for a CAM processor is in validating information content passing through a messaging system, and particularly a messaging hub. Here the CAM templates can contain business rules to ensure that the information received is compatible with the business systems supported by the messaging system. To complete out the picture a CAM processor may be used to re-structure the information presented to it, after first validating that it is correct.
In addition a business process engine may use a CAM processor to direct the creation or processing of business transactions for it. In this case a step in the business process will have a CAM template associated with it that will be invoked. The CAM processor can then produce the desired information processing for the business process engine.
Next a CAM processor can be deployed as a Web service to allow business partners to pre-validate XML instances before using them in message exchanges. By presenting an XML instance to the web service and selecting a CAM template the partner can have returned a detailed report about the results of the tests and their outcomes.
Within industry standardization efforts CAM templates can be used to capture all the design rules that apply to an industries use of XML structures. The CAM processor can then provide a validation and conformance service. Industry groups can also create CAM templates to document older legacy transaction formats and provide XML based semantics and usage rules for those.
When integrating with E-Forms systems the CAM processor can be used in a variety of modes. It could create forms given some input business transaction, or it could take the output from a form entry process and then validate it and re-structure the content and deliver it as a business transaction.
In short the CAM processor can be used in a variety of roles wherever manipulation or validation of information content structures is required.
The figure shown on the next page shows how CAM can be integrated into an eBusiness stack providing the orchestration of business transaction handling along with typical components of the eBusiness stack such as message handling services, business process management engines, application integration mapping services and industry registry of dictionary definitions and vocabularies.
How does CAM work with or compliment other semantic definition initiatives (UDEF, UBL, OAG, RosettaNet, HL7, STEP, eprXML)?
The CAM technology has been designed fundamentally to leverage dictionaries of noun definitions and libraries of transaction formats built from industry initiatives. By providing the content reference section in the CAM template the processor is able to automatically retrieve semantics from industry registries about individual elements in a XML transaction. This allows consistent definitions to be deployed across a set of industry business transactions. It also includes the ability to version and sub-version definitions. This is especially important for the processing of code lists. Code lists provide the basis for up to 50% of information flowing in legacy EDI transactions. Industry groups define extensive code lists for the products and services used by their members. Yet the W3C XML schema system does not support code list definitions directly. Therefore CAM provides a key capability with its built-in lookup () functionality.
Industry initiatives today have created dictionaries of their nouns (elements) and verbs and labelled them with reference codes. They have also provided classifications and taxonomies for these as in the case of UDEF particularly. By allowing these industry groups to load their dictionaries into XML instances in a registry the CAM approach unlocks the potential of these dictionaries to effect significant improvements in interoperability of information in those industries.
Providing the means to assemble consistent transactions from pre-defined libraries of structure components and also to create libraries of business process definitions that can be context driven are key functionality that CAM delivers.
By linking a CAM processor service to the registry these industry groups can then allow members to validate XML transactions against the standard definitions in their registries or download CAM templates and associated business process definitions that they can use directly in their own systems. By combining CAM technology with a registry in this way provides the foundation for even more sophisticated semantics in the future. Taxonomies and ontologies are emerging as ways for machines to understand more about knowledge in a way that today only humans are able to. Registries can provide ontology and taxonomy driven search results. This allows agent software and human researchers to more effectively locate business transaction processes, such as CAM templates, and determine if they are suitable for the task they need. Enhancing the work of industry groups is a significant benefit that CAM technology delivers today. CAM can also be used in tandem with UML. UML does have a production rules system that can be used to output XML from UML diagrams and it is anticipated that this can allow UML models to output partially complete CAM templates that can then be hand-edited in XML to complete a full information model. Perhaps one of the most exciting potential uses for CAM is with the emerging OASIS work on EPR (Electronic Process) specifications for service oriented applications. Since these are required to be fully model driven, having the CAM templates able to resolve dynamically through context parameters the information exchange formats allows designers of eprAPL (EPR Application) solutions a rapid and consistent way of implementing these.