The Benefits of Cogility

537 views

Published on

Provides products to commercial organizations and government projects seeking to improve their application delivery and development timelines and resource load

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
537
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • The OMG Model Driven Architecture™ addresses the complete life cycle of designing, deploying, integrating, and managing applications as well as data using open standards
  • The Benefits of Cogility

    1. 1. Cogility Studio: Product Differentiation Cogility Studio Conceptual Background COGILITY SOFTWARE The Leader In Model Driven Complex Event Processing
    2. 2. When the Model is Not the System <ul><li>Most modeling software is like the Lego tm H2 Hummer </li></ul><ul><ul><li>The Model creates a facsimile of the real thing </li></ul></ul><ul><ul><li>The Model is not executable like the real thing </li></ul></ul><ul><ul><li>Nobody mistakes the model for the real thing </li></ul></ul><ul><ul><li>The Model has value because it helps you understand the high-level components of the real system by using high level abstractions </li></ul></ul><ul><ul><li>In other words, if you actually want a Hummer that you can drive, you still have a lot of work to do </li></ul></ul>
    3. 3. <ul><li>An actual system is like the General Motors H2 Hummer </li></ul><ul><ul><li>It requires much more effort to build </li></ul></ul><ul><ul><li>There are many other actual sub-systems that need to be designed and implemented, beyond the high level abstractions provided by the model </li></ul></ul><ul><ul><li>It takes an enormous amount of effort to actually realize the modeling abstractions </li></ul></ul><ul><ul><li>It actually needs to operate in a real environment </li></ul></ul><ul><ul><li>Nobody mistakes the GM H2 for the Lego H2 </li></ul></ul><ul><ul><li>Most normal people do not attempt to build their own equivalent of the GM H2, even though this is theoretically possible </li></ul></ul>The Real System is MUCH More Complex
    4. 4. <ul><li>It were possible to build a model of a system using a much superior modeling environment with rich semantics that allowed you to describe the most complex artifacts of a real Hummer </li></ul><ul><li>Such a model, after it was built, could actually become the system it represents by animating the model semantics </li></ul><ul><li>It could be operated in a manner indistinguishable from the desired real system…(except that it is much easier to maintain and repair) </li></ul>What if… This is the fundamental difference between Cogility and other modeling tools: Cogility enables the Hummer model to operate like a real Hummer!
    5. 5. <ul><li>A model of an IT system built within Cogility Studio is not a facsimile of the system being modeled, with static representations of desired behavior </li></ul><ul><li>The model specified semantics will actually execute exactly as specified, enabling the model to become the system </li></ul><ul><li>When the Model is the System, as the model is maintained the system follows, automatically </li></ul><ul><li>The executable model can be easily extended to encompass new capabilities as business requirements change </li></ul><ul><li>The model executes in a high-performance, scalable environment </li></ul>Cogility Studio: The Model is the System This is the fundamental difference between Cogility and other modeling tools: Cogility enables the system model to run like the real system, because the Model becomes the System!
    6. 6. Cogility Studio: Architecture Big Picture Cogility Studio: Architecture Big EAI EII BPM MDA: Business Abstraction Layer Data Transforms EDA: Event Driven Architecture SOA: Service Oriented Architecture J2EE: Application Abstraction Layer JDBC: Storage abstraction Layer J2SE: OS Abstraction Layer Schema Processes Event Handlers Web Service Deployment Web Service Orchestration Schema Data Transforms IBM WebSphere BEA Weblogic JBoss Oracle 9i IBM DB2 SQL Server Windows Linux Solaris AIX MacOS OS400 Execution Abstraction Layer Architecture Abstraction Layer
    7. 7. Conventional MDA Approach: Model Translation UML System Model 3GL Form Model Virtual Model Execution Environment <ul><li>Conventional approach to an MDA based executable model is via translation. The UML model is translated by some means to a 3GL language, which is then executed after compilation and deployment in a Virtual Model Execution Environment . </li></ul><ul><li>Problems: Deployment, testability, debugging, interaction, divergence, using pre-existing 3GL libraries, disjoint data and behavior. </li></ul>Data
    8. 8. <ul><li>Model Driven systems are a paradigm shift in the way in which systems are generated. </li></ul><ul><li>MDA with translation is an evolutionary change, since what is ultimately executing is the compiled 3GL code, just as in the hand-coded systems. </li></ul><ul><ul><li>The translation is inherently lossy, because the execution environment does not have the capacity to understand the model semantically </li></ul></ul><ul><ul><li>Furthermore, there is a varying degree of completeness in the translation </li></ul></ul><ul><li>A paradigm shift cannot be effected by evolutionary changes. </li></ul><ul><ul><li>Too easy to fall back into the previous paradigm </li></ul></ul>Translation: An Evolutionary Approach
    9. 9. <ul><li>Cogility’s approach is more akin to “programming with objects” than “object oriented programming”, while offering full benefits of the latter. </li></ul><ul><ul><li>Each model artifact has predefined executable behavior that implements a useful capability </li></ul></ul><ul><ul><li>Generic model artifacts can be combined to create systems that could not have been conceived when the class of model artifacts was created </li></ul></ul><ul><ul><li>Software “Legos” </li></ul></ul><ul><li>Cogility’s MDX approach keeps the model and the implementation tightly synchronized by maintaining the model as an invariant from high-level abstraction to the lowest level of implementation detail. </li></ul><ul><ul><li>Simply put, it is WYSIWYG when it comes to model and implementation </li></ul></ul>Cogility Studio: Model Driven Execution (MDX)
    10. 10. Cogility Studio: Model Driven Execution Executable Model Direct Model Execution Environment <ul><li>Cogility does not depend upon model translation into 3GL code for execution. </li></ul><ul><li>Instead, Cogility’s extensible Model Action Semantics are directly executable within a Model Execution Environment with integrated execution data , which alleviates the problems associated with translation techniques. Auto-deployment, direct debugging, direct interaction, no divergence, direct usage of pre-existing 3GL libraries, integrated data and behavior. </li></ul>Integrated Execution Data and Behavior Configuration Managed Model Cogility Manager Information Process Services XForms Transaction Messaging Behavior
    11. 11. Cogility Studio: Execution Architecture Logic + Data Repository Cogility Modeler App Server Exec Action Semantics Repository Authoring Interface Direct Interface J2EE Interface App Server Authoring Copy Action Semantics WS/JMS Interface Cogility Insight Cogility Manager
    12. 12. Cogility Studio: Automated J2EE Model Interface Executable Model Direct Model Execution Environment J2EE Interface SOA Services DB Activation Generated Browser View EDA Messaging Timing Daemon Cogility Manager
    13. 13. Cogility Studio: Directly Executable Model-Driven Action Semantics Executable Model Direct Model Execution Environment Direct Interface Action Semantics Tests Service Invocation Database Access Message Publish Action Semantics Reports Action Semantics Scripts Action Semantics Extracts Cogility Manager
    14. 14. Cogility Studio: Highly Accessible Execution Data Model Metadata Execution Data RDBMS Execution Repository SQL Reports Database Tuning Database Backups Restores Direct Database Cleanup Federated Data Solutions
    15. 15. Cogility Manager: Model Aware Execution Environment <ul><li>Cogility’s execution environment has complete semantic awareness of the model, with the full richness of the modeling environment </li></ul><ul><ul><li>The system is self aware and has a semantic understanding of the system information model, as well as the interfaces to it and to any other system it communicates with </li></ul></ul><ul><ul><li>The system is aware of the Model Action Semantics it can execute and how these relate to specifics in the system model </li></ul></ul><ul><ul><li>Every row of data in the execution database is self-aware and knows how it relates to others and the business processes and behaviors it provides within the system </li></ul></ul><ul><ul><li>System data structures are aware of behaviors they provide </li></ul></ul>
    16. 16. System Command Console: Cogility ActionPad
    17. 17. Limits of Human Comprehension <ul><li>Research in cognitive science indicates that on average we can integrate 7 ± 2 unrelated concepts at a time without error </li></ul><ul><li>Beyond that, we use a technique called “chunking” to group similar, well understood concepts together to reduce complexity </li></ul><ul><li>These chunks can then be used as building blocks for higher level concepts </li></ul><ul><li>Thus, even highly detailed, extremely complex concepts can be successively aggregated into a finite number of high level building blocks that can be intuitively understood </li></ul>
    18. 18. Chunking and Evolution of Computer Languages <ul><li>The concept of aggregating low-level detail into a reusable chunk is common in the evolution of computer languages </li></ul><ul><ul><li>Converting Binary to Hex is a form of chunking </li></ul></ul><ul><li>Every generation of computer language provides a higher level understanding of the domain, which allows a single command to define a complex sequence of lower-level commands </li></ul><ul><ul><li>1GL (Machine Language): every instruction is at the machine level </li></ul></ul><ul><ul><li>2GL (Assembler): created for specific processors, has a set of structured commands that reflect many machine language instructions </li></ul></ul><ul><ul><ul><li>RISC processor does more chunking </li></ul></ul></ul><ul><ul><li>3GL (C, Java etc): general purpose higher level language that is not processor specific and allows for more general commands than 2GL </li></ul></ul><ul><li>Each higher level language aggregates details of the lower level into reusable chunks </li></ul>
    19. 19. Applying Chunking to a Typical IT System Parse Input Transform? Do Work Read/Save Stuff Talk to Other Command Response
    20. 20. Cogility Studio: Reducing IT Complexity by Chunking <ul><li>Cogility defines an IT System using a combination of powerful, executable, system scaffolding modeling artifacts, which can be instantiated as necessary to represent the functional chunks </li></ul><ul><ul><li>Model Driven Smart Persistent Objects, exhibiting </li></ul></ul><ul><ul><ul><li>Automatic transacted database CRUD behavior with association traversal </li></ul></ul></ul><ul><ul><ul><li>Inheritance </li></ul></ul></ul><ul><ul><ul><li>Behavior Definition </li></ul></ul></ul><ul><ul><ul><li>Process Definition (state full, long-lived) </li></ul></ul></ul><ul><ul><li>Model Driven Smart Data Structures, exhibiting </li></ul></ul><ul><ul><ul><li>Inheritance </li></ul></ul></ul><ul><ul><ul><li>Behavior Definition </li></ul></ul></ul><ul><ul><li>Model Driven Communication Artifacts, exhibiting </li></ul></ul><ul><ul><ul><li>Synchronous input/output using SOA </li></ul></ul></ul><ul><ul><ul><li>Asynchronous input/output using EDA </li></ul></ul></ul><ul><ul><li>Model Driven Data Activation Artifacts, exhibiting </li></ul></ul><ul><ul><ul><li>Remote database input/output </li></ul></ul></ul><ul><ul><ul><li>Ability to respond to remote data triggers </li></ul></ul></ul><ul><ul><li>Model Driven Transformation Artifacts, exhibiting </li></ul></ul><ul><ul><ul><li>Common Warehouse Metamodel based transforms </li></ul></ul></ul><ul><ul><ul><li>XSLT based transforms </li></ul></ul></ul>
    21. 21. Cogility Studio: Executable Action Semantics <ul><li>Further, Cogility provides a number of powerful, executable, system logic modeling artifacts in the form of Model Action Semantics keywords </li></ul><ul><ul><li>Each Action Semantic keyword has inherent executable capability and does not need to be decomposed further and translated to 3GL code to execute </li></ul></ul><ul><ul><ul><li>It would take many lines of 3GL code to implement equivalent capability effectively and consistently for every usage </li></ul></ul></ul><ul><ul><li>Action Semantics can be safely and easily expanded if required. </li></ul></ul><ul><ul><li>Action Semantics artifacts can be combined in arbitrary ways and embedded inside the scaffolding modeling artifacts, allowing them to behave in a manner that is completely new and directly representative of system requirements </li></ul></ul><ul><ul><ul><li>Programmable Software Legos </li></ul></ul></ul><ul><ul><li>Modeling constructs are like a RISC system, making them easier to grasp and retain based upon rules of human cognition, resulting in a flatter learning curve </li></ul></ul><ul><ul><ul><li>Repetitive use of well understood, well tested, automated patterns can build highly complex solutions while drastically reducing hand-coded low-level artifacts </li></ul></ul></ul>
    22. 22. Cogility Studio: Action Semantics Chunks <ul><li>The Action Semantics itself can be chunked as follows </li></ul><ul><ul><li>Basic (Declaration, Assignment, Arithmetic, Logical Operators) </li></ul></ul><ul><ul><li>Database </li></ul></ul><ul><ul><li>Control Structure </li></ul></ul><ul><ul><li>Behavior Invocation </li></ul></ul><ul><ul><li>Communication </li></ul></ul><ul><ul><li>Exceptions </li></ul></ul>
    23. 23. Conclusion: Model Driven Execution With Cogility Studio <ul><li>Cogility Studio provides essential executable modeling artifacts which can be used to model and execute the required system. </li></ul><ul><ul><li>System is much easier to develop </li></ul></ul><ul><li>Each type of modeling artifact provides useful executable capability in the domain where Cogility is used </li></ul><ul><ul><li>It would take an extensive, systematic and expensive coding effort to reproduce the execution capability provided by the modeling artifacts in a 3GL language </li></ul></ul><ul><li>Modeling artifacts are directly executable, and auto deploy to a scalable, cross platform execution environment in a manner that closely integrates execution data with system behavior </li></ul><ul><ul><li>Shields users from technological complexities of the execution environment while maintaining interaction at the system model level </li></ul></ul><ul><li>Modeling artifacts do not require translation into 3GL form, either manually or through code-generation </li></ul><ul><ul><li>System is easier to manage, test, document, certify and maintain </li></ul></ul><ul><li>With Cogility, the Model Is The System, and the two never diverge </li></ul><ul><ul><li>The model becomes the single source of system information and organizational competitive advantage </li></ul></ul>
    24. 24. Additional Reading <ul><li>Some of the concepts that have been discussed here have been discussed by others. </li></ul><ul><li>Some practical books that provide useful concepts </li></ul><ul><ul><li>Business Engineering With Object Technology by David A. Taylor. Published by John Wiley & Sons. </li></ul></ul><ul><ul><ul><li>Old book, but extremely easy to understand and easy to read. Good for model-based concepts. </li></ul></ul></ul><ul><ul><li>The Object Primer, by Scott W. Ambler. Cambridge University Press. </li></ul></ul><ul><ul><ul><li>Parts of this are aimed at hands-on developers, but others are relevant for just about anyone, to understand the modeling process. </li></ul></ul></ul><ul><ul><ul><li>See www.agilemodeling.com </li></ul></ul></ul><ul><li>CAVEAT: These books assume that the modeling effort will be followed by coding, which is NOT the case in Cogility since Cogility models are executable. </li></ul>
    25. 25. Cogility Studio: The Model Is The System <ul><li>Cogility’s unique abilities </li></ul><ul><ul><li>Cogility’s unique capability is Model Driven Execution, which goes beyond just being MDA compatible. </li></ul></ul><ul><ul><li>Cogility Studio uniquely provides a directly executable, auto-generated end-application, unlike other MDA approaches that generate code stubs that have to be manually hand-coded to conform to the system model and then manually synchronized as the system model changes. </li></ul></ul><ul><li>Cogility’s unique features: </li></ul><ul><ul><li>Model Driven Transacted Persistence, allowing model action semantics to automatically control low-level database operations. </li></ul></ul><ul><ul><li>Model Driven Durable Messaging, allowing model action semantics to control low level messaging operations. </li></ul></ul><ul><ul><li>Model Driven Behavior Specification using executable action semantics. </li></ul></ul><ul><ul><li>Model Driven Process Execution, allowing high level business process models to directly execute at the physical level. </li></ul></ul><ul><ul><li>Model Driven Data Transformation, allowing for model action semantics to seamlessly control the access of similar data in dissimilar formats. </li></ul></ul><ul><ul><li>Model Driven Service Specification and Orchestration, allowing the model to directly specify complex services and orchestrate complex remote services with full control over the associated data flow. </li></ul></ul><ul><ul><li>Model Driven Data Activation, allowing the system model to react to changes in data in remote databases. </li></ul></ul><ul><ul><li>Model Driven Test Scenarios, with executable action semantics based tests that can interact directly with the low level physical layer. </li></ul></ul><ul><ul><li>Model Driven Documentation, by exploiting the detailed system metadata inherent in the model. </li></ul></ul><ul><ul><li>Comprehensive Model Configuration Management, from high level abstraction to low level implementation artifact within the execution environment. </li></ul></ul>

    ×