Delivering Process-Driven, Dynamic Applications

2,634 views

Published on

Published in: Business, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,634
On SlideShare
0
From Embeds
0
Number of Embeds
24
Actions
Shares
0
Downloads
77
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Delivering Process-Driven, Dynamic Applications

  1. 1. David RR Webber SOA Architect Integrity One Partners Model-Driven, Open Architecture BPM: Delivering Process-Driven, Dynamic Applications
  2. 2. Overview <ul><li>Change is constant - How do we make self-adaptive, smarter implementations that are better able to cope? </li></ul><ul><li>How do we leverage and align standards based mechanisms and tools within our business processes to make them compatible? </li></ul><ul><li>How does this fit into modern SOA approach? </li></ul><ul><li>Ability to align business conceptual details with actual implementation through use of XML templates as intermediary common shared representation. </li></ul>
  3. 3. “The devil is in the details” <ul><li>XML is multi-faceted – it can represent: </li></ul><ul><ul><li>data (information exchanges) </li></ul></ul><ul><ul><li>rules </li></ul></ul><ul><ul><li>workflows and processes </li></ul></ul><ul><ul><li>forms and reports </li></ul></ul><ul><ul><li>configuration and control </li></ul></ul><ul><ul><li>semantics (metadata) </li></ul></ul><ul><ul><li>documents and contracts </li></ul></ul><ul><ul><li>multimedia and presentations </li></ul></ul>
  4. 4. Template Driven Approach Analysis Design Coding Test Maintenance SW DEVELOPERS Specification Agile Dynamic Components TEMPLATES Adoption, integration Installation Implementation /Use Needs Requirements Procurement BUSINESS USERS BPMN models Excel spreadsheet XML visualization XML artifacts Dynamic Static Conventional Models, Artefacts, Code WSDL,XSD,UML,XML
  5. 5. Template Wizard runtime configuration Library Object templates/Components design time Facets Questions / Data Technology Targeting Syntax specific production rules Partner / Component Interface Agreement builder + review / support / completion workflow 1 3 4 XML 2 Conceptual Factors Stored XML XML XML XML Solution Specific Syntax 5
  6. 6. <ul><li>Context is the pervasive driver to effective engineering </li></ul><ul><li>Drives dynamic process configuring and control </li></ul><ul><li>Ensures accurate information capture, packaging and delivery </li></ul><ul><li>Key to correct relationships between partners in a collaboration </li></ul>Understanding about Context Lack of context control mechanisms is the most prominent reason why legacy business systems are difficult and complex to extend and support Date: circa 1568 1 : the parts of a discourse that surround a word or passage and can throw light on its meaning 2 : the interrelated conditions in which something exists or occurs
  7. 7. Context, role and use <ul><li>Context, context and context </li></ul><ul><ul><li>Interoperability absolutely requires the software to understand and apply context from the ground up in a consistent way that links to the external world functional needs – and that is not hard-coded into rigid software methods – but exposed across the information space </li></ul></ul><ul><li>Role and context </li></ul><ul><ul><li>Role is a convenient way to group together context and manage that for classes of functional users </li></ul></ul><ul><li>Use based solutions </li></ul><ul><ul><li>This determines how and what results are expected given role and context that allows users to perform their business use cases effectively without information issues. </li></ul></ul>
  8. 8. Today’s SOA / Mashup’s have extended service model needs
  9. 9. Common Data Issues <ul><li>Information Security Management </li></ul><ul><li>Electronic Document Management </li></ul><ul><li>Poor and Inconsistent Documentation </li></ul><ul><li>Data / Customer / Process Integration </li></ul><ul><li>Collaboration and Messaging </li></ul><ul><li>Authentication Technologies </li></ul><ul><li>Storage Technology </li></ul><ul><li>Remote communication challenges </li></ul><ul><li>System Development Life Cycle </li></ul><ul><li>Change Management </li></ul><ul><li>Segregation of Duties </li></ul>Exchange & Information Technology
  10. 10. Solution / Problem Metrics <ul><li>Can I create a standard simple open format to describe my message structures and data content rules? </li></ul><ul><li>Can my partners validate their transactions in test BEFORE they send them? </li></ul><ul><li>How do people know what I will send them? </li></ul><ul><li>I want something that’s simple and standards based – leverages existing XML components </li></ul><ul><li>Can I generate HTML documentation that is readable by business analysts? </li></ul>
  11. 11. Defining Information Services Create Samples Rules Editor XML Analyst Templates Samples Develop Verify Structure Rules Context Vocabulary 3 2 Rules html XML Results html Publish 1 Detail Use Rules Test Rules on Samples 4 Share Results Enabling Agile Information Exchanges Structure + Vocabulary Rules + Context Templates Verify Template Outcomes
  12. 12. Configure the Business Exchange Content Assembly Template XML instance structure(s) Business context rules + Content Reference rules + Data Validation rules + External Mapping rules Logical business transaction can have more than one structure layout can relate rules directly with structure makeOptional () excludeTree() item type=&quot;noun&quot; name=&quot;Agency/@AgencyID&quot; UIDReference=&quot;ukt000910&quot; <conditional expression=&quot;'//SupplierID' and lookup(value,'SGIRWSDL:supplierID_check')&quot; <MapRule output=&quot;type&quot; input=&quot;Sales/Company/Year/Qtr/Product@type&quot;/> Simple Declarative Statements BPM Step transaction template OASIS Content Assembly Mechanism (CAM)
  13. 13. Business Functionality <ul><li>Simple and obvious domain solution templates </li></ul><ul><li>Local deployment and simple change support </li></ul><ul><li>Handling local context drivers and flexibility </li></ul><ul><li>Opening up business integration rules so that partners can confirm their usage + validating </li></ul><ul><li>HTML reporting of rules and layouts </li></ul><ul><li>Processing content with open public specification and sharable rules base </li></ul>OASIS Content Assembly Mechanism Specification: http://wiki.oasis-open.org/cam http://www.jcam.org.uk Organization for Advancement of Structured Information Standards
  14. 14. SOA, BPM and Data Services Transport Security Delivery Process 3 2 5 1 Data Services 4 C A M Internet Infrastructure Query / Response WSDL SOAP / http / https Vocabulary / Semantics Packaging / Encoding XML / edi Validation / Assembly Mapping / Transform XSD, CAM, Schematron Business Model Service Agreement Context / Roles Business Processes Description Msg Exchange Profile State & Context Addressing / Envelope Transactions Coordination Push / Pull
  15. 15. Exchange Facilitation Needs <ul><li>For business communities: </li></ul><ul><ul><li>Ability to create sharable templates for communities of practice that need consistent XML transaction handling definitions that are open and public. </li></ul></ul><ul><li>For business data analysts: </li></ul><ul><ul><li>Printable rule documentation support and features. </li></ul></ul><ul><ul><li>Example domain templates within communities of practice </li></ul></ul><ul><ul><li>Supporting codelists implementation (Genericode). </li></ul></ul><ul><li>For programmers: </li></ul><ul><ul><li>XML content manipulation support and rules ( xslt, XPath …) </li></ul></ul><ul><ul><li>Web services and SOA support </li></ul></ul>
  16. 16. Metrics of Information Sharing <ul><li>To effectively exchange information, there must be a common semantic understanding of data among participants, and the data must be formatted in a consistent manner that matches the business process context </li></ul>Common Lexicon
  17. 17. Interoperability – what is it really? <ul><li>What it really is: </li></ul><ul><ul><li>Solve the business functional needs as the priority - ability for systems to accommodate each others functional requirements in a holistic and agile way so that users can maximize the business value obtained today and adapt that to tomorrows changing needs rapidly and easily </li></ul></ul><ul><ul><li>Predictability – when the mechanisms being used are using known, consistent and extensible methodology </li></ul></ul><ul><ul><li>Need to support semantically rich information (human), contextual mechanisms, and not just rigid lists of enforced content (machine) </li></ul></ul><ul><ul><li>Reduce collaboration and adoption costs by making exchanges quick and easy to build and self-adaptive – cost is barrier to interoperability </li></ul></ul><ul><ul><li>Ability to support routing and intermediary services with views of exchange content based on role and use context </li></ul></ul><ul><li>How do you get there? </li></ul>
  18. 18. Example: NIEM XSD Reference Architecture Exchange xml *Exchange xsd *Extension xsd Namespace * Optional NIEM xsd subset *Constraint xsd IEPDs have their own target namespaces Constraint Validation Conformance Validation NIEM = National Information Exchange Model (www.niem.gov) for DOJ/DHS *Code list xsd XML Schema
  19. 19. Domain-specific XML Schemas <ul><li>NIEM – a comprehensive model of all entities of interest in government domain </li></ul><ul><ul><li>Defines terms shared between various agencies: persons, places, things </li></ul></ul><ul><li>LEXS – information-sharing protocols and messages, with NIEM as foundation </li></ul><ul><ul><li>Establishes patterns of requests and responses </li></ul></ul><ul><ul><li>Provides structure around NIEM data elements </li></ul></ul>
  20. 21. Versioning Challenges <ul><li>If the schema version changes – how to ensure it does not break our in place validations? </li></ul><ul><li>How to rapidly adapt to rule changes in a production environment? </li></ul><ul><li>How to develop user context driven deep version control and re-use of sub-components? </li></ul><ul><li>Enhance and automate Test release cycle by improving transparency for bug fix process and expose change deltas to speed testing process? Support for regression testing? </li></ul>
  21. 22. Problem: XSD is non-deterministic! <ul><li>XSD does not have direct context mechanisms </li></ul><ul><li>The schema contains the superset of every exchange component variation </li></ul><ul><li>People make everything in schema optional </li></ul><ul><li>Dependencies are not clear </li></ul><ul><li>It is difficult to understand the constructs and to document the rules clearly for business users to verify </li></ul><ul><li>It is hard to create test cases and instances (the “want list” tough to visualize) </li></ul><ul><li>Disconnect between XML data types and legacy data – e.g. dates, telephone formats, post codes </li></ul>
  22. 23. Consequences for Interoperability <ul><li>Multiple WSDL’s introduces risk that services won’t talk to each other </li></ul><ul><li>Bypassing validation permits exchange of incorrect documents </li></ul><ul><li>Propagation of incorrect documents in the system pushes problems to the perimeter </li></ul><ul><li>User interfaces in each participating system must adapt to proliferating special cases </li></ul>
  23. 24. What makes something Agile? <ul><li>Re-usable methods that can be applied to many areas </li></ul><ul><ul><li>Based on open standards and approach; not proprietary </li></ul></ul><ul><li>Context and role driven and aware </li></ul><ul><ul><li>This allows tailoring to specific profiles and use pattern templates dynamically </li></ul></ul><ul><li>Self-adaptive </li></ul><ul><ul><li>When requirements change can be adjusted on-the-fly in real time </li></ul></ul><ul><li>Fault tolerant and not brittle </li></ul><ul><ul><li>Ability to ignore non-critical interchange items and especially not to fail for trivial reasons or slight version nuances </li></ul></ul><ul><ul><li>Leveraging XML capabilities to make self-describing transactions possible rather than static fixed legacy exchanges </li></ul></ul><ul><li>Able to support new uses without extensive reprogramming </li></ul><ul><ul><li>Usage patterns set via external configuration allowing broad but controlled uses </li></ul></ul>
  24. 25. Extract XSD to Assembly Template EXTRACT Structure Rules Documentation XSD 2 CAM XSLT Tools Exchange xml *Exchange xsd *Extension xsd *Code list xsd Namespace * Optional XML Schema NIEM xsd subset *Constraint xsd
  25. 26. Example Generation – OASIS EDXL Structure Declarative Rules XSLT XPath structure flexibility Assertion logic
  26. 27. Example Generated Documentation Enhanced Data type Logic Better code list handling Clear use pattern XPath functions
  27. 28. CAM - Just re-shuffled syntax? <ul><li>If we built the CAM template directly from the XSD how can we have added rules value? </li></ul><ul><li>CAM validation significantly more capable and agile than rigid XSD parsing: </li></ul><ul><ul><li>XPath based assertions </li></ul></ul><ul><ul><li>30 added functions add control </li></ul></ul><ul><ul><li>Mask functions better content matching </li></ul></ul><ul><ul><li>Context mechanism allows adaptive rules/structure </li></ul></ul><ul><ul><li>Cross-dependencies </li></ul></ul><ul><ul><li>Enhanced code list handling </li></ul></ul><ul><ul><li>Flexible error handling and reporting </li></ul></ul><ul><li>CAM syntax exposes logic for human verification </li></ul>
  28. 29. Value Proposition - Deterministic <ul><li>Making XML transaction handling simpler and predictable </li></ul><ul><li>Quick and easy rule/example building from sample XSD </li></ul><ul><li>Extends and clarifies your existing XSD schema structures </li></ul><ul><li>Enabling more robust fault tolerant processing + versioning </li></ul><ul><li>Providing open sharable templates and documentation </li></ul><ul><li>Re-use easier through support for includable components </li></ul><ul><li>Ability to integrate to business processes and context </li></ul><ul><li>Open source, open public standard toolkit – editor + engine </li></ul>
  29. 30. Eclipse CAM Editor 1 2 3 4 5 Available structures Structure Rule Viewer Rule Details Results Viewer Validation Process
  30. 31. How does CAM work? <ul><li>CAM uses WYSIWYG approach to XML </li></ul><ul><li>Starting with your XML structure layout makes template from that + default data content model </li></ul><ul><li>Next – add your structure use rules – optional / repeatable, date fields, allowed values, lookups </li></ul><ul><li>Then make context business rules – cross field use rules, exclude, include, variables </li></ul><ul><li>Save template – run against samples </li></ul><ul><li>Eclipse editor tool makes this all easy to do! </li></ul><ul><li>Deploy to production using jCAM processor </li></ul>
  31. 32. Modelling & Simulation Testing Scenario <ul><li>Emergency Response Services Workflow using OASIS EDXL exchanges </li></ul>
  32. 33. Conceptual View of EDXL transaction Transaction Templates Structure Rules Context 3 2 Use Rules html XML Reports html Publish 1 Common Details Rules 4 Share Details Address Facility Contact Vehicles Emergency Resources Activity Content Rules Lookup Values Context Versioning Resources
  33. 34. Illustrative EDXL requirements <ul><li>When Admissions Total > 50 </li></ul><ul><ul><li>AND Deaths > 0 </li></ul></ul><ul><li>When AdultICU Bed type > 0 </li></ul><ul><ul><li>AND Triage Quantity > 5 </li></ul></ul><ul><li>Require Facility State = CA, NV, NM </li></ul>
  34. 35. CAM rules syntax <ul><li><as:BusinessUseContext> </li></ul><ul><li><as:Rules> </li></ul><ul><li><as:default> </li></ul><ul><li><as:context> </li></ul><ul><ul><li><as:constraint condition=&quot;//Activity24Hr /Admissions > 50 </li></ul></ul><ul><ul><li>and( // Activity24Hr /Deaths > 0)&quot; action=&quot;restrictValues(// Activity24Hr /Admissions, ‘Alert – possible outbreak’) &quot;/> </li></ul></ul><ul><ul><li><as:constraint action=&quot;restrictValues(//ns5:AdministrativeArea /ns5:NameElement , 'CA|NV|NM')&quot;/> </li></ul></ul><ul><li></as:context> </li></ul><ul><li></as:default> </li></ul><ul><li></as:Rules> </li></ul><ul><li></as:BusinessUseContext> </li></ul>
  35. 36. CAM Summary <ul><li>XSD to CAM template extraction via XSLT makes quick adoption and low learning curve </li></ul><ul><li>CAM templates provide agile mechanisms to enhance control over information exchanges </li></ul><ul><li>Context mechanisms support BPM techniques and tailoring handling to match processing needs </li></ul><ul><li>Better documentation support for human verification </li></ul><ul><li>Link templates to partner agreements and use patterns </li></ul><ul><li>More flexible versioning and non-brittle handling </li></ul><ul><li>Test suites and conformance checking with regression testing and deterministic rule based examples </li></ul><ul><li>Open public standard and open source implementation </li></ul><ul><li>Sharable public templates for partner collaboration </li></ul>
  36. 37. Process Driven Dynamic Applications <ul><li>Templates provide linkage between business needs and software mechanics </li></ul><ul><li>Semantics can be morphed into different renderings depending on interfacing needs </li></ul><ul><ul><li>Validation scripts </li></ul></ul><ul><ul><li>Forms logic </li></ul></ul><ul><ul><li>Data storage and sharing </li></ul></ul><ul><ul><li>Workflow steps </li></ul></ul><ul><ul><li>HTML documentation </li></ul></ul><ul><li>Exploiting agile adaptable mechanisms using XML </li></ul>
  37. 38. Questions?
  38. 39. www.jcam.org.uk wiki.oasis-open.org www.oasis-open.org/committees/cam docs.oasis-open.org/cam www.oasis-open.org/committees/emergency www.niem.gov Resources:
  39. 40. Thank You! <ul><li>David RR Webber </li></ul><ul><li>SOA Architect </li></ul><ul><li>Integrity One Partners </li></ul><ul><li>Contact Information: </li></ul><ul><li>703.581.6500 </li></ul><ul><li>[email_address] </li></ul>

×