61
2 May 2007 Copyright © 2007 Data Access Technologies, Inc. A division of Data Access Technologies, Inc. Model Driven Service Oriented Architecture Ed Seidewitz

A division of Data Access Technologies, Inc. 2 May 2007 Copyright © 2007 Data Access Technologies, Inc. Model Driven Service Oriented Architecture Ed Seidewitz

Embed Size (px)

Citation preview

2 May 2007

Copyright © 2007 Data Access Technologies, Inc.

A division of Data Access Technologies, Inc.

Model Driven Service Oriented Architecture

Ed Seidewitz

Page 2 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Goals of the Tutorial

• To understand how service oriented concepts can provide a common foundation for business, solution and technical architectures.

• To understand how to use modeling as the basis for creating successful service oriented architectures.

• To understand the relationship between service oriented solution models and Web Services solution implementation.

Page 3 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Agenda

1. Coming to Terms

2. Business Architecture  

3. Solution Architecture

4. Technical Architecture

Page 4 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

1. Coming to Terms

• Model Driven

• Service Oriented

• Enterprise

• Architecture

Page 5 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Model Driven

• Model: A set of statements in some modeling language made in order to describe or specify some system.1

• Model Driven: Using models as primary artifacts to direct the course of understanding, design, construction, deployment, operation, maintenance and modification of a system.2

• Model Driven Architecture™: An (OMG) approach to system specification that separates (models for) the specification of functionality from the specification of the implementation of that functionality on a specific technology platform.2

1Ed Seidewitz, “What Models Mean,” IEEE Software, September/October 2003

2Object Management Group, MDA Guide Version 1.0.1

Page 6 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Model Driven Architecture

• Computation Independent Model (CIM)– The business model

• Platform Independent Model (PIM)– Technology independent system specification

– Conforms to the business model (CIM)

• Platform Specific Model (PSM)– Technology specific (e.g., middleware, application platform, etc.)

system design

– Conforms to the system specification (PIM)

Object Management Group Terminology (as applied here)

Page 7 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Modeling Approach

• Models will be expressed in the Unified Modeling Language (UML)– Using a proposed UML Profile and Metamodel for Services (UPMS)1

– Based on experience with service-oriented business modeling using the older Enterprise Distributed Object Computing (EDOC) Component Collaboration Architecture standard

• The models become primary artifacts– To the greatest extent possible, technology-specific products are

generated from the models

– Generated artifacts may be augmented, but not replaced, by hand-coded artifacts as necessary

– No “round trip” engineering

1Currently under development in response to an OMG RFP.

Page 8 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Service Oriented

• Service: A logical representation of a repeatable business activity that has a specified outcome, is self-contained and maybe composed of other services and is a black box to consumers of the service.1

• Service Oriented: A way of thinking in terms of services and service based development and the outcomes that services bring.1

• Service Oriented Architecture: An architectural style for a community of providers and consumers of services to achieve mutual value, that:2

– Allows participants in the community to work together with minimal co-dependence or technology dependence

– Specifies the contracts to which organizations, people and technologies must adhere in order to participate in the community

– Provides for business value and business processes to be realized by the community

– Allows for a variety of technologies to be used to facilitate interactions within the community

1The Open Group, SOA Definition V

2Object Management Group, SOA SIG, Draft SOA Definition, April 2006

Page 9 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Perspectives on “Service Oriented Architecture”

SOA is:

• An enterprise and business architecture approach – a way to understand and integrate the enterprise in the context of its community and as a network of business services. “A SOA” at the business level is part of the enterprise architecture showing how this network of services delivers business value

• A system of systems solution architecture – a way to understand and integrate enterprise systems internally and externally as a network of technology services. “A SOA” at the systems of systems level is the solutions architecture showing how this network of systems works together to delivers business value.

• A system integration approach – a way to expose existing capabilities to integrate applications and create new composite solutions.

Page 10 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Enterprise

• Enterprise: A system of business endeavor within a particular business environment.1

• Enterprise Architecture: A design for the arrangement and interoperation of business components (e.g., policies, operations, infrastructure, information) that together make up the enterprise's means of operation.1

1Interoperability Clearinghouse Glossary, http://www.ichnet.org/glossary.htm

Page 11 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Architecture

• Architecture: Design; the way components fit together.1

• Architecture: A framework or structure that portrays relationships among all the elements of the subject force, system, or activity.2

These definitions miss the point!

• Architecture: A set of design artifacts, or descriptive representations, that are relevant for describing an object such that it can be produced to requirements (quality) as well as maintained over the period of its useful life (change).3

This one is closer.

1Interoperability Clearinghouse Glossary, http://www.ichnet.org/glossary.htm

2Department of Defense, DOD Dictionary of Military and Associated Terms, Joint Publication 1-02

3John Zachman

Page 12 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Architecture – as a practice

• Architecture: The practice of finding creative design solutions that meet the needs of the client, fit the environment in which they are to be deployed, and are feasible to implement.

Architecture provides the bridge between desires of the client and the capabilities of available technology.

Architecture provides the bridge between desires of the client and the capabilities of available technology.

Page 13 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

2. Business Architecture

• Example: Financial Management Enterprise Architecture

• The business context

• Service-oriented business architecture

• How to model business processes 

• How to model information

Page 14 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Example: Financial Management Enterprise Architecture

• A simplified Financial Management Enterprise Architecture for a Federal Government agency (also largely applicable to commercial financial management)

• Consistent with the Federal Financial Management Line of Business architecture

• Based on work done for the General Services Administration (GSA) that delivered:– A target business architecture for consistent and comprehensive

financial management supporting all GSA services and staff offices.– A logical system architecture for a cohesive financial management

suite supporting the business architecture, particularly in areas in which a transition needed to be made off legacy systems.

– A set of interface definitions to act as the basis for a standard GSA financial management service-oriented architecture.

Page 15 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Fundamental Concepts

• Participant: A specification of the responsibility to perform specific functions in the context of a business process.

• Collaboration: A set of two or more participants interacting to carry out a business process to achieve some joint purpose.

• Service Contract: A collaboration that defines a conversation in which a service or services is provided to consumers by providers. This conversation may be extended over time (i.e., responses of one participant to the other may not be immediate).

Page 16 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Financial Management Business Context

External ParticipantExternal Participant

FocusProvided service

Provided service

Consumed service

Consumed service

• A Service Contract is modeled as a UML Collaboration.

• An interaction between participants conforming to a contract is modeled as a UML Collaboration Use.

• A Collaboration via Service Contracts defines an SOA Business Model.

• A Service Contract is modeled as a UML Collaboration.

• An interaction between participants conforming to a contract is modeled as a UML Collaboration Use.

• A Collaboration via Service Contracts defines an SOA Business Model.

Role binding

Collaboration Use

Role

Page 17 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Composite Billing Service Contract

Service providerService provider

Service consumerService

consumer

Nested serviceNested service

Page 18 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Simple Bill Submission Service Contract• A service contract is modeled as a

UML Collaboration.

• The required conversation may be specified using an Owned Behavior (e.g., Interaction or Activity)

• A service contract is modeled as a UML Collaboration.

• The required conversation may be specified using an Owned Behavior (e.g., Interaction or Activity)

Indicates ownership

First the submitter submits a bill to the receiver…

First the submitter submits a bill to the receiver…

…then either the bill is successfully delivered or it is returned.

…then either the bill is successfully delivered or it is returned.

Note that, while one Participant requests the service and the other

responds, information may flow both ways during the interaction.

Note that, while one Participant requests the service and the other

responds, information may flow both ways during the interaction.

Page 19 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Financial Management Enterprise Context

Other enterprise level participants

Other enterprise level participants

• The service-oriented business architecture of an enterprise is modeled as a Collaboration of enterprise-level Participants.

• The service-oriented business architecture of an enterprise is modeled as a Collaboration of enterprise-level Participants.

Page 20 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Financial Management Business ArchitectureService representing delegated responsibility for interaction with

an external participant.

Service representing delegated responsibility for interaction with

an external participant.

Service representing interaction with another participant within

Financial Management.

Service representing interaction with another participant within

Financial Management.

Page 21 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Realizing a Composite Service Contract (1)

Financial Management is responsible for providing a number of Acquisition

Accounting services.

Financial Management is responsible for providing a number of Acquisition

Accounting services.

Page 22 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Realizing a Composite Service Contract (2)

Acquisition is an External Consumer relative to

Financial Management.

Acquisition is an External Consumer relative to

Financial Management.

The Acquisition Accounting Services are delegated to a number of different

Participants within Financial Management.

The Acquisition Accounting Services are delegated to a number of different

Participants within Financial Management.

Page 23 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Receivables Accounting Business ArchitectureParticipants at this level

could roughly be individual people or system functions.

Participants at this level could roughly be individual people or system functions.

Internal interactions needed to carry out the

required business services.

Internal interactions needed to carry out the

required business services.

Business service provided and consumed by

Receivables Accounting.

Business service provided and consumed by

Receivables Accounting.

Page 24 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Receivables Management Activities

• Workflow is modeled using UML Activities.

• Workflow is modeled using UML Activities.

Received eventReceived event

ActivityActivity Sent eventSent event

Information flowInformation flow

Page 25 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Establish Unfilled Customer Order Subactivities

SubactivitySubactivity

Input parameters

Input parameters

Output parameter

Output parameter

Internal information flow

Internal information flow

• Complicated activities may be decomposed into subactivities.

• Complicated activities may be decomposed into subactivities.

Page 26 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Record Unfilled Customer Order Behavior

Control flowControl flow

• Ultimately, behavior can be specified using basic UML Activity Diagrams.

• Ultimately, behavior can be specified using basic UML Activity Diagrams.

Page 27 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Record Unfilled Customer Order Requirements

Record Unfilled Customer Order

Description

• Record a new unfilled customer order, as established via a specific sales agreement.

Requirements

1. Generate general ledger transactions to increase Unfilled Customer Orders and decrease Anticipated Reimbursements.

2. If the Customer Order is against a Sales Agreement that requires recurring payments, establish a recurring receivable.

3. …

Record Unfilled Customer Order

Description

• Record a new unfilled customer order, as established via a specific sales agreement.

Requirements

1. Generate general ledger transactions to increase Unfilled Customer Orders and decrease Anticipated Reimbursements.

2. If the Customer Order is against a Sales Agreement that requires recurring payments, establish a recurring receivable.

3. …

• Detailed requirements and business rules can be documented for activities separately from the process flow.

• Detailed requirements and business rules can be documented for activities separately from the process flow.

Page 28 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Information Model

This means “zero or more”

This means “one or more”This indicates a compositional (as opposed to referential) association.

This is a constraint that defines the sub-classification.

A term in the vocabulary represents a class of things to be described.

A term in the vocabulary represents a class of things to be described.

Attributes specify descriptive information having simple types.

Attributes specify descriptive information having simple types.

Entities may be described as having a unique identity.

Entities may be described as having a unique identity.

A relation between terms is described by an association between classes.

A relation between terms is described by an association between classes.

A class may be specialized into sub-classifications.

A class may be specialized into sub-classifications.

An un-shaded class is not detailed on this diagram.

Page 29 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Information Model: What Is It For?

Business transaction Business transaction

The information model details the vocabulary of the business entities and transactions used in the process model.

The information model details the vocabulary of the business entities and transactions used in the process model.

The process model describes how business activities are (or are to be) carried out.

The process model describes how business activities are (or are to be) carried out.

State changes due to the activities

Workflow

Activities

Implicit memory of business information

Page 30 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Information Model: Entities and Transactions

For example, the billing address for a party being billed may change over time, but the billing address used for a specific bill submission always stays the same.

Note the use of composition associations

A business transaction represents a snapshot of the information required to carry out a business action.

A business transaction represents a snapshot of the information required to carry out a business action.

A business entity represents the current state of information that may change over time.

A business entity represents the current state of information that may change over time.

Page 31 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

3. Solution Architecture

• Example: Core Financial Management System  • Service-oriented component architecture • How to model components • How to specify  functionality  • How to model data

Page 32 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

From Business Architecture to System Architecture

Financial Management Discipline

Protocols

Enterprise RolesWork Roles

Activities

Information ModelClasses

Financial Management Discipline

Protocols

Enterprise RolesWork Roles

Activities

Information ModelClasses

Core Financial System Specification

Service Interfaces

Work ComponentsService Manager Components

Behavioral Specifications

Message SpecificationsData Manager Components

Persistent Data Specifications

Core Financial System Specification

Service Interfaces

Work ComponentsService Manager Components

Behavioral Specifications

Message SpecificationsData Manager Components

Persistent Data Specifications

Business Architecture Logical System Architecture

Page 33 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Three-Tier Component Architecture

Presentation Components provide user access to application services.

Presentation Components provide user access to application services.

Service Components provide transactional implementation of application services.

Service Components provide transactional implementation of application services.

Data Components persist data between application transactions.

Data Components persist data between application transactions.

• System architecture is modeled using UML Components.

• System architecture is modeled using UML Components.

Component

Port

Connector allowing bidirectional communication

Simple unidirectional usage dependency

Page 34 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Provided and Required Interfaces

Provided interfaceRequired interface

RealizationUsage dependency

Ports with “conjugate” interfaces may be interconnected.

Ports are typed by Port Types that realize and use service interfaces.

Ports are typed by Port Types that realize and use service interfaces.

The operations defined on Service Interfaces provide the basis for bidirectional service interactions.

The operations defined on Service Interfaces provide the basis for bidirectional service interactions.

Page 35 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Port Types from Service Contracts

The Participant Types act as the Service Interfaces.The Participant Types act as the Service Interfaces.

Page 36 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Port Types for Composite Service Contracts

Participant Types get ports corresponding to the roles they play in each of the nested services.

Participant Types get ports corresponding to the roles they play in each of the nested services.

To have ports, the Participant Types need to be classes rather than interfaces.

The types of the ports are the Port Types defined for the nested services.

The types of the ports are the Port Types defined for the nested services.

Page 37 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Service Components from Service Architectures

The Plays Role dependency specifies the interfaces of a service component by declaring how it is to participate in the business architecture.

The Plays Role dependency specifies the interfaces of a service component by declaring how it is to participate in the business architecture.

The Service Component gets a port corresponding to each roles played by the indicated participant.

The Service Component gets a port corresponding to each roles played by the indicated participant.

Page 38 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Complete Financial Management Component

Page 39 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Financial Management Business Architecture(from Business Model)

Page 40 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Financial Management Component Architecture

Delegation of a provided service to an internal part.

Delegation of a provided service to an internal part.

Internal service connectionInternal service connection

A composite service can be delegated piecewise to multiple internal parts.

A composite service can be delegated piecewise to multiple internal parts.

Delegation of a consumed service by an internal part.

Delegation of a consumed service by an internal part.

Page 41 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Receivables Accounting Business Architecture(from Business Model)

Page 42 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Receivables Accounting Component Architecture

User of a consumed service by multiple internal parts.

User of a consumed service by multiple internal parts.

Page 43 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Receivables Management Activities (from Business Model)

Related to Customer Orders

Related to Receivables

Page 44 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Receivables Management Component Architecture

Explicit component for scheduling triggers

Explicit cross-transactional coupling via the data tier

Implements the Establish Customer Order activity. Implements the Establish Customer Order activity.

Implements the Generate Recurring Receivable and Establish and Accrue Revenue activities.

Implements the Generate Recurring Receivable and Establish and Accrue Revenue activities.

Page 45 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Establish Unfilled Customer Order Activities (from Business Model)

Page 46 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Record Unfilled Customer Order Behavior(from Business Model)

Page 47 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Record Unfilled Customer Order Functional Specification

1. Receive CustomerOrderEstablishment

2. Let newOrder = CreateCustomerOrder(CustomerOrderEstablishment.newOrder).data

3. Send GeneralLedgerTransaction to increase Unfilled Customer Orders and decrease Anticipated Reimbursements

4. Send newOrder as RecurrentCustomerOrder (Note: EstablishRecurringReceivables will check if there are actually any creation triggers.)

5. Send CustomerOrderEstablished

1. Receive CustomerOrderEstablishment

2. Let newOrder = CreateCustomerOrder(CustomerOrderEstablishment.newOrder).data

3. Send GeneralLedgerTransaction to increase Unfilled Customer Orders and decrease Anticipated Reimbursements

4. Send newOrder as RecurrentCustomerOrder (Note: EstablishRecurringReceivables will check if there are actually any creation triggers.)

5. Send CustomerOrderEstablished

Page 48 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Billing Component Architecture

Human interaction is integral to the discrepancy resolution process

Note that data managers may be shared across component architectures.

Note that data managers may be shared across component architectures.

Page 49 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Bill Discrepancy Management Service

The behavior of this service defines required human work flow as part of the implementation of the business process.

The behavior of this service defines required human work flow as part of the implementation of the business process.

Page 50 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Handle Billing Discrepancy Process

Required human interaction

Page 51 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Data Models

• Message Model

• Persistence Model

Page 52 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Example Transaction Information Model (from Business Model)

Business Transaction

Business Entity

Page 53 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Example Transaction Message Model

Message

Namesake• Messages can be modeled by “marking up” the information model.

• Messages can be modeled by “marking up” the information model.

Messages are based on business transactions and constructed from namesakes of business entities.

Messages are based on business transactions and constructed from namesakes of business entities.

Realization is used to “mark up” information model elements with message model elements.

Realization is used to “mark up” information model elements with message model elements.

Restricted realization allows for explicit inclusion and exclusion of attributes and associations

Restricted realization allows for explicit inclusion and exclusion of attributes and associations

Page 54 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Equivalent Message Structure

This is the equivalent message structure resulting from the mark up of the information model. If this message structured was modeled independently, then it would have to be updated in parallel every time the corresponding information model elements where updated.

This is the equivalent message structure resulting from the mark up of the information model. If this message structured was modeled independently, then it would have to be updated in parallel every time the corresponding information model elements where updated.

Page 55 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Example Persistence ModelIndicates a reference to an entity persisted elsewhere.

Indicates an entity persisted in this data manager.

Indicates a separately persisted relation.

Page 56 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

4. Technical Architecture

• Example: Core Financial System Implementation

• Web Services

Page 57 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Core Financial System Specification

Service Interfaces

Work ComponentsService Manager Components

Behavioral Specifications

Message SpecificationsData Manager Components

Persistent Data Specifications

Core Financial System Specification

Service Interfaces

Work ComponentsService Manager Components

Behavioral Specifications

Message SpecificationsData Manager Components

Persistent Data Specifications

From System Architecture to System Implementation

Core Financial System Implementation

Web Services

System ComponentsSystem Functions

XML SchemasData Bases

Data Base Schemas

Core Financial System Implementation

Web Services

System ComponentsSystem Functions

XML SchemasData Bases

Data Base Schemas

System ImplementationLogical System Architecture

Page 58 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Example Implementation Architecture

Infrastructure

Legacy Client

System(s)

AdapterD

ata T

ier

Adapter

FunctionT

ier

FM

EA

Data

Tier

FM

EA

A

pplication T

ier

Mom

entum

Integration

Tier

Back EndEnterpriseSystems

FM

EA

P

resentation T

ier

LegacyAdapters

Core Financial Management

System

Back EndIntegration

Legacy Client Interface

Legacy Client Interface

Provided Service Interface

Provided Service Interface

Consumed Service Interface

Consumed Service Interface

Back End System interface

Back End System interface

The “top down” solution architecture must be informed by what exists and existing capabilities should be exposed and

integrated based on a system of systems architecture

The “top down” solution architecture must be informed by what exists and existing capabilities should be exposed and

integrated based on a system of systems architecture

Page 59 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

From Service Model to Web Service Implementation

Logical View

Physical View

A single bidirectional connection between consumer and provider service ports.

A single bidirectional connection between consumer and provider service ports.

The consumer requests services via the provider’s port.The consumer requests services via the provider’s port.

The provider “calls back” via the consumer’s port.The provider “calls back” via the consumer’s port.

For synchronous services, an alternative is to map “call back” operations into return types.

For synchronous services, an alternative is to map “call back” operations into return types.

Web services port

Web services port type

Page 60 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Example Web Services Generation

<wsdl:portType name=“BillSubmission.BillSubmissionReceiverInterface"> <wsdl:operation name=“submitBill"> <wsdl:input message="tns:BillSubmissionCluster“ name=“billSubmission"> </wsdl:input> </wsdl:operation> </wsdl:portType>

<wsdl:portType name=“BillSubmission.BillSubmissionSubmitterInterface"> <wsdl:operation name=“notifyBillDelivered"> <wsdl:input message="tns:BillDeliveredCluster“ name=“billDelivered"> </wsdl:input> </wsdl:operation> <wsdl:operation name=“notifyBillReturned"> <wsdl:input message="tns:BillReturnedCluster“ name=“billReturned"> </wsdl:input> </wsdl:operation> </wsdl:portType>

Page 61 Copyright © 2007 Data Access Technologies, Inc. 2 May 2007

Example Transaction Message XML Document<BillSubmissionCluster>

<BusinessTransaction><transactionID> … </transactionID>

</BusinessTransaction><BillSubmission>

<bill><Bill>

<billID> … </billID><principleAmount> … </principleAmount>…

<payer><Party>

<partyID> … </customerID></Party>

</payer>…

<lineItems> … </lineItems>

</Bill> </bill>

<billingAddress><BillingAddressCluster>

<Address> … </Address><BillingAddress> … </BillingAddress>

</BillingAddressCluster><billingAddress>

</BillSubmission></BillSubmissionCluster>

<BillSubmissionCluster><BusinessTransaction>

<transactionID> … </transactionID></BusinessTransaction><BillSubmission>

<bill><Bill>

<billID> … </billID><principleAmount> … </principleAmount>…

<payer><Party>

<partyID> … </customerID></Party>

</payer>…

<lineItems> … </lineItems>

</Bill> </bill>

<billingAddress><BillingAddressCluster>

<Address> … </Address><BillingAddress> … </BillingAddress>

</BillingAddressCluster><billingAddress>

</BillSubmission></BillSubmissionCluster>