Content Assembly Mechanism (CAM) business transaction information management

What CAM Is The CAM approach provides these three The CAM specification provides an open critical abilities: – XML based system for using business rules to • documentation of business interchange define, validate and compose specific business transactions, documents from generalized schema elements • design-time assembly support with and structures. verification, and A CAM rule set and document assembly • runtime checking of information content. template defines the specific business context, content requirement, and transactional function Next we consider the limitations of current of a document. A CAM template must be approaches and technologies and how the capable of consistently reproducing documents capabilities that CAM provides can address that can successfully carry out the specific these shortcomings. transactional function that they were designed for. CAM also provides the foundation for The Present Tools and Their Limitations for creating industry libraries and dictionaries Addressing the Problem of schema elements and business document structures to support business process needs. The advent of XML has also meant that other new tools are available to advance the

technology of automatic transaction content Solving the Inherent Problem of Automated handling. These include formal structure Information Integration definitions using XML schema (XSD) with Automated information integration has content control at the element level using been the Holy Grail of e-Business systems datatyping; then XSLT rules and XPath since before XML was conceived. Early expressions and semantic tools such as RDF attempts centered on the use of industry and OWL to provide machine understanding of standard transaction formats typified by EDI the role and usage of the XML based messages1. information itself. These tools typify the approach of controlling the actual XML These quickly showed that three needs instance documents and their content (e.g. were paramount: the ability to design transactions) by creating formal expression transactions consistently, the ability to language that provides external descriptions document their usage in a clear way and then about the possible instance documents that the ability to drive software that can apply rules are allowed. The W3C organization has and test information content to ensure correct centered its efforts on this strategy2. compliance. People usually start this process by defining an XML schema that contains the

2 The World Wide Web consortium (W3C), were the 1 For more information on Electronic Data Interchange creators of the XML syntax – for more information on (EDI) – see N. American standards secretariat group site: XML. XSD, XPath, RDF and OWL see http://www.disa.org http://www.w3c.org Content Assembly Mechanism Brochure - 2 rules of the actual XML structure they wish to What is CAM comprised of? use. This is often sufficient for simple small A CAM template has five sections: transactions between closed communities of assembly structure(s), business context rules, business partners. However for general content referencing, data validation and communities across whole industries this can external mappings. They can be used rapidly become problematic as more and more altogether or in combination. The first two context driven factors are added to the sections are required; the remaining three are schema, since schema does not have by itself optional, so a CAM template can be as simple a native context driven selection mechanism. or sophisticated as the business needs dictate, Further more a large need is the handling of see figure below. industry lists for standard code values and particularly sub-sets of codes where again can have more than one structure layout schema has no direct built-in method for this. Combined XML with instance can add inline rules directly Another approach is to use UML3 modelling structure(s) into structure techniques to create models of the information + Simple Declarative Statements use cases, classes and instances and then makeOptional() derive XML schema definitions from these Business context rules excludeTree() UML structure diagrams. The ebXML core item type="noun" + Content Reference rules name="Agency/@AgencyID" components work and the OASIS UBL UIDReference="ukt000910" technical work have both used this approach. in the same way that XML structure models in XSD are as well. Also industry dictionaries of component definitions are not well integrated What does the addition of context to CAM into UML tools through federated registry do? capabilities. However, CAM supports this In addition the CAM system provides a capability through its direct support for ebXML global context passing mechanism, and an Registry systems and the ability to derive XML rendering for declaring context variables. semantics in XML from such registries. This context mechanism is at the heart of why CAM is so effective. By allowing users to quantify what their context factors are The Issue of Context in Business precisely, this removes the guess work from Interchanges business transaction exchanges between In automating information integration, partners and allows them to formulize their knowing and defining context of use is the collaboration agreements exactly. It also single most pervasive and important factor. makes re-use and identifying potential The older EDI systems however have no way candidate CAM template models much easier. to support dynamic context driven content Simply knowing what the external parameters assembly whereas CAM provides this better are can instantly qualify if a template makes than any other XML syntax system today. In sense for a user and allow them to therefore fact CAM templates work for both old EDI select it. payloads and new XML based transaction structures.

3 Universal Modelling Language (UML) as originally developed in Rational Rose and now part of the Object Management Group (OMG) specifications. Content Assembly Mechanism Brochure - 3

How Does CAM Execute? Each BOD also has associated with it a A CAM implementation requires that a complete list of each information element and reference CAM template be available along basic details of its content. The CAM with the CAM processor engine itself. The technology has been designed fundamentally available jCAM processor4 is implemented in to leverage such dictionaries of noun Java and so can be used in a variety of definitions and so the available OAGi BOD environments. Along with the CAM processor semantics provides the perfect match for this. will typically be an XML instance to be The content reference section of the CAM manipulated by the processor. Also CAM templates provides the means to facilitate this. maybe used as a web service and sample The next section provides and overview of WSDL binding definitions are available to how to use such specific CAM features and facilitate this. techniques.

A practical example of what CAM does How Do You Create CAM Templates and Next the following figure shows how the Rule Sets? CAM template details are used to create a There are several steps required in building specific transaction instance. Consider for a CAM template depending on how complete example a scenario from the current you would like your template to be. To fully automotive industry work on aligning inventory utilize CAM you may want to fill out all six control systems using the Open Applications sections of the CAM template. Most initial Group (OAGi) business transaction formats templates however only use two or three called BODs (Business Object Documents). In sections for structure, business context and the case of such OAGi BODs the CAM content reference sections. template provides the context driven rules and The first thing you require when structure instances derived from the master constructing a CAM template is an actual XML BOPD models that given a particular car model of the information structure you wish to manufacturers requirements will create the manipulate. You can either enter this directly actual resolved structure and rules for the OAG from scratch into the CAM template, in XML, or BODs inventory management information you can cut and paste an example from some exchange required. XML that you are already using. So in the example we are considering – you would XML CAM 1 create a sample instance for a car process transaction Template and content manufacturers system of a typical document compare transaction. 4 + 3 Next you go through that XML structure 2 Generates and do four things: actual XML Context instance - mark each field where information will Statements definition occur with the “%%” substitution to be used placeholder CAM gets passed context from business use 5 - physically enter static information

Results for exactly as and where it should occur in given the XML context and action - duplicate parts of the structure that may be choices, and label those parts with selection names (e.g. as:choiceID=”USA-address”, and as:choiceID=”Canada-address”) 4 The jCAM processor is open source can the resource site is http://jcam.org.uk for the project. Content Assembly Mechanism Brochure - 4

- assign inline rules using the CAM commonly used elements across CAM functions to denote local formatting and templates, but you can also use it to just locally other conditions right into parts of the define field details as well. To complete the XML structure as needed (e.g. content references you simple provide as:setMask=”dYYYY-MM-DD”). statements for each of the elements and attributes in your XML structure that require additional information processing. Each Once this is completed then you can move statement contains the XPath of the item in the to the Business Context section of the CAM XML structure cross referenced by a UID code template. CAM assumes all elements and value that uniquely identifies it. You can attributes are required in a structure unless you assign UID codes simply and easily using a denote them otherwise. So the second step is suitable prefix that you select followed by a 6 to indicate the CAM elements that are optional digit number (e.g. “USPS000100”, and also elements that are repeatable. You “USPS000101”, and so on could reference can also use XPath conditions to express fields in a US postal address structure). business rules choose when things should be used. So you may make an element optional only if a certain condition applies. You can Each content reference statement can also also omit parts of structure, or include others optionally contain data typing, field length and depending on conditions, and link structure other semantics about your fields. components together so if one is selected another is then required as well (conditional cardinality). You can use include statements in CAM templates to optionally retrieve pre-built structure sections and associated content As you create these business rules you reference sections into your current template. may find some conditions relate to values in This allows you to develop libraries of the XML structure associated with the CAM commonly used components, such as address template itself, or others may come from global layouts, product details, and customer parameters that you need to pass to the CAM information and then simply insert them as pre- processor. These global parameters can be built assemblies directly in where you need defined in the header section of the CAM them. Also, because CAM can resolve syntax template and then referenced in the business use through the content reference section you rules or the XML structure itself using the do not need to use cumbersome namespace 5 $name syntax . references to achieve this. Therefore re-use of structure components is made dramatically easier. After creating business rules for the use of the structure, you then go to the next step in the template by entering the content reference The next step is to provide specific data section. In this section you can provide validation rules that you may require. Typically standard definitions for elements. You also these are rules that occur between and across need to use this section if you want to take fields in the XML structure, such as comparing advantage of the extended features CAM has the value of one date field to another date field. for validating attribute use and their content. Again these use XPath expressions to construct the rules you require. For really complex conditions you may also choose to The idea of the content reference section is invoke an external module, such as a web to build up a library and dictionary for your service, to do the testing and return the result back to the CAM processor. 5 e.g. $manufacturer=”GM”, $language=”US-ENG”), or %% Content Assembly Mechanism Brochure - 5

Often you will have completed your CAM have a CAM template associated with it that template at this point. However you may need will be invoked. The CAM processor can then to relate content using the external mapping produce the desired information processing for section. This allows you to manipulate the business process engine. information and integrate it with an external information source or format such as to a SQL database table, or to a HTML form layout, or to Next a CAM processor can be deployed as another XML structure format. a web service to allow business partners to pre-validate XML instances before using them This is an advanced feature set of CAM in message exchanges. By presenting an XML however, and depending on what information instance to the web service and selecting a integration, (either inbound or outbound), that CAM template the partner can have returned a you need will then affect what rules and detailed report about the results of the tests statements you put in this section. and their outcomes. You may also need to define an additional structure section definition, for instance for HTML or XML targets that you will be using Within industry standardization efforts CAM and referencing. This is also the most templates can be used to capture all the powerful section of the CAM processor and design rules that apply to an industries use of you can provide complete content assembly XML structures. The CAM processor can then and manipulation of business transactions and provide a validation and conformance service. information using it. Industry groups can also create CAM templates to document older legacy transaction formats and provide XML based This completes this overview of creating a semantics and usage rules for those. CAM template. Next we consider utilizing these capabilities of CAM alongside traditional components of an information infrastructure to When integrating with E-Forms systems deliver enhanced system interoperability and the CAM processor can be used in a variety of agility. 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 How Does CAM Integrate with Other and re-structure the content and deliver it as a Application Integration/B2B Products? business transaction. The most obvious use for a CAM processor is in validating information content passing In short the CAM processor can be used in through a messaging system, and particularly a variety of roles wherever manipulation or a messaging hub. Here the CAM templates validation of information content structures is can contain business rules to ensure that the required. information received is compatible with the business systems supported by the messaging system. To complete out the picture a CAM The figure shown on the next page shows processor may be used to re-structure the how CAM can be integrated into an eBusiness information presented to it, after first validating stack providing the orchestration of business that it is correct. transaction handling along with typical components of the eBusiness stack such as message handling services, business process In addition a business process engine may management engines, application integration use a CAM processor to direct the creation or mapping services and industry registry of processing of business transactions for it. In dictionary definitions and vocabularies. this case a step in the business process will

Content Assembly Mechanism Brochure - 6

Integrating CAM into an eBusiness stack maintenance burden and also allows changes to be implemented rapidly and easily. Business agreement

Partners can also begin to become involved in the process themselves by managing and maintaining the CAM template definitions that relate to their own Drives document production systems and configurations. exchanges They can then share those templates with their partners when changes are about to be placed in production.

How Does CAM Work With or Compliment Other Semantic Definition Initiatives (UDEF, UBL, OAG, RosettaNet, HL7, STEP, eprXML) A Real World CAM Scenario The CAM technology has been designed The original implementation of CAM by fundamentally to leverage dictionaries of noun British Telecomm (BT) in the UK is providing definitions and libraries of transaction formats transaction validation against hundreds of built from industry initiatives. By providing the trouble ticket message formats that BT content reference section in the CAM template receives daily. These trouble ticket formats the processor is able to automatically retrieve used in the telecommunications industry are semantics from industry registries about XML messages using the xCBL syntax individual elements in a XML transaction. This approach and are highly complex XML allows consistent definitions to be deployed structures. The information carried in them is across a set of industry business transactions. highly variable and differs according to the It also includes the ability to version and sub- originators own telecommunications switches version definitions. This is especially important and configuration details. The message for the processing of code lists. Code lists details change frequently every three to four provide the basis for up to 50% of information months as new services and products are flowing in legacy EDI transactions. Industry introduced and provisioned in response to groups define extensive code lists for the demands from highly dynamic and technology products and services used by their members. driven markets within the industry. Yet the W3C XML schema system does not support code list definitions directly. Therefore CAM provides a key capability with its built-in Managing these structures and formats lookup () functionality. takes significant manpower and especially to detect when solution partners have made Industry initiatives today have created changes to their transactions and details dictionaries of their nouns (elements) and without first notifying the systems connected to verbs and labelled them with reference codes. them. This may also happen inadvertently They have also provided classifications and when new devices are installed in the field and taxonomies for these as in the case of UDEF they start producing new trouble ticket reports particularly. By allowing these industry groups automatically. to load their dictionaries into XML instances in a registry the CAM approach unlocks the potential of these dictionaries to effect Being able to direct and manage this significant improvements in interoperability of implementation space using the XML scripts in information in those industries. the CAM templates significantly reduces this Content Assembly Mechanism Brochure - 7

parameters the information exchange formats Providing the means to assemble consistent allows designers of eprAPL (EPR Application) transactions from pre-defined libraries of solutions a rapid and consistent way of structure components and also to create implementing these. libraries of business process definitions that can be context driven are key functionality that CAM delivers. Summary Reviewing what CAM represents and the By linking a CAM processor service to the registry opportunities it opens up we find a range of these industry groups can then allow members to use cases; from sophisticated discreet tasks as validate XML transactions against the standard definitions in their registries or download CAM part of specific architectures such as ebXML templates and associated business process business processes or Service Oriented definitions that they can use directly in their own Architectures environments, to simple local systems. document verification as a standalone By combining CAM technology with a business tool. registry in this way provides the foundation for The value of the CAM approach is in even more sophisticated semantics in the managing context and business rules directly future. Taxonomies and ontologies are and tying these to consistent information emerging as ways for machines to understand semantics. The lesson learned is that more about knowledge in a way that today only consistent information exchanges must include humans are able to. Registries can provide context management. The result from this will ontology and taxonomy driven search results. be to transform the ability of industry to deploy This allows agent software and human successful and interoperable eBusiness researchers to more effectively locate business information exchanges simply and quickly. transaction processes, such as CAM templates, and determine if they are suitable Contacts and Additional Information for the task they need. The CAM technology is a product of the Enhancing the work of industry groups is a OASIS Business Content Assembly significant benefit that CAM technology Mechanism Technical Committee. More delivers today. details can be found from the specifications CAM can also be used in tandem with and documents that the committee has UML. UML does have a production rules produced. These include the latest CAM system that can be used to output XML from specification, presentations introducing CAM, UML diagrams and it is anticipated that this and examples of CAM templates. These and can allow UML models to output partially other documents can be obtained through the complete CAM templates that can then be OASIS website at: www.-open.org. hand-edited in XML to complete a full For more information on how to participate information model. in CAM activities, please see the membership Perhaps one of the most exciting potential links from the main OASIS web site or the uses for CAM is with the emerging OASIS CAM TC area directly. work on EPR (Electronic Process) specifications for service oriented applications6. Since these are required to be Content Assembly fully model driven, having the CAM templates Mechanism Technical able to resolve dynamically through context Committee

6 For more information on the EPR work and the eprXML and eprAPL components – please see the Chair: David Webber – [email protected] OASIS BCM TC area at http://oasis-open.org