Cogility Studio 6.0 Feature list

Cogility Studio 7.0

Features List

Cogility Studio™ is a tightly integrated, robust software environment for building and deploying mission-critical corporate applications.

Cogility utilizes a Model-Driven approach where much of the technical plumbing needed to develop enterprise applications is automatically achieved, leaving the user to focus more on developing core business processes and functionality. Resulting applications are developed faster than with traditional code-centric approaches. They are malleable and more resilient to change.

Enterprise Application Integration (through web services orchestration, messaging and integration of external databases) and complementary business functionality come together as a Composite Application that is described in one consistent and holistic model. The application is then automatically deployed by a single button push. The “pushed model” directly executes without any additional manual translations. The execution platform is made up of J2EE application servers and relational databases.

Cogility employs an object-oriented approach to modeling that is based on current standards like J2EE, JDBC, SOAP, JMS and XML. However, the modeler is shielded from the low-level programming usually needed to interface with these technologies.

Functions that are automatically managed by Cogility

  • Mapping business objects (UML classes and associations) to relational databases.
  • Automated persistence of business data without requiring low-level JDBC programming.
  • High-level modeling interfaces for in/outbound Web services without requiring SOAP level programming. Modeling interfaces for in/outbound messaging without requiring JMS level programming.
  • Modeling interfaces for XML manipulation without requiring XML level parsing, such as SAX or DOM.
  • Automated deployment of the application to the app-server/database platform.

The Three Components of the Cogility Studio Modular Design

Cogility Modeler

Cogility Modeler provides the application developer with a comprehensive, composite application modeling environment. Modeling changes are automatically saved to a persistent repository, to prevent accidental data loss. Cogility also provides fine grained hierarchical Configuration Management, allowing multiple modelers to effectively collaborate on the development of applications.

Cogility Manager

Cogility Manager is the runtime piece that physically executes inside the application server. It is responsible for executing all of the logic defined in the model.

Cogility Insight

Cogility Insight provides a number of tools for reporting and analysis within the composite application environment. Besides business object data, Cogility also transitionally persists the status of long-lived business processes. This makes it possible for Insight to report on live system data as well as the state of individual business processes.

Cogility Studio at-work, Modeling

Business Data

  • Structural aspects are visually modeled using UML Classes and Associations
  • Automatic mapping to a Relational Database
  • Easy-to-use Action Semantics for data access, without the need for low-level database access programming

Business Processes

  • Business Processes are visually represented with UML State Machines
  • Long-lived, asynchronous business processes can be modeled. These processes are persistently managed so they survive system failures. Often, multiple app-servers will be employed for additional scalability. It is important that any app-server can process a segment of a particular process, at different points in time.
  • Process logic is partitioned on object-oriented principles across multiple business object classes as appropriate.
  • Event-driven enterprise. Cogility provides a layered modeling scheme where often changing details of integration with external systems and databases are described separately from the core business processes. This facilitates a stable description and enforcement, of desired business functions across a changing mix of systems being integrated.

Action Semantics

  • Action Semantics are used to affect different parts of the model with specific logic. For example, at some point during an order fulfillment process, it may be necessary to retrieve the customer’s shipping address and compute the delivery date based on the Zip code.
  • Compile and Consistency checks
    • Action Semantics are statically checked against the model and errors and inconsistencies are flagged.
    • The holistic nature of the model allows various higher level semantic checks and controls that would not ordinarily be possible for a code-based solution.
  • Integration with external Java libraries. Often times, third-party Java libraries will be available that do useful functions. For example, an API to encrypt sensitive business data. Rather than require this functionality to be recreated or recorded inside the model, Cogility allows these API's to be pulled into the model and used as part of Action Semantics. The integration is seamless; a set of Action Semantics references and manipulates both internal model artifacts as well as external Java API's Consistency check and compile failures are reported uniformly against all Action Semantics.
  • Model and syntax assist is available during editing. This is equivalent to code-assist available in Java development tools.
  • Action Semantics are displayed in color to enhance the user experience and the color schemes are user customizable.

Web Services

  • Web services can be modeled at a higher business level, without the need for low-level programming
  • Modeled Web services are automatically deployed to the J2EE environment upon push. This simplifies and speeds up the development process.
  • Outbound calls to Web services defined in other system are similarly facilitated by automatically converting their WSDL to model artifacts in Cogility
  • Built-in support for manipulating XML. Lower level programming for XML parsing is not needed. Once the structure of the XSD schema is exposed to Cogility, XML manipulation is easy and syntactically identical to manipulating business objects.
  • Both SOAP as well as HTTP web services are supported. While SOAP web services can be employed for traditional B2B integrations, HTTP web services provide a lighter weight alternative for things such as Corporate Intranet clients, as well as tighter integration with AJAX technologies.

Scheduling

  • Cogility’s scheduling function allows repeating and ad hoc tasks to be scheduled from within the model, thereby allowing yet another business function to be operated and controlled from one place. The task scheduling and the scheduled activity details are both described in the same model and Operating System level schedulers need not be utilized.
  • Tasks can be scheduled in a structured fashion through Cogility Insight’s user interface. Tasks can also be dynamically scheduled as appropriate, by any logic execution inside the Model, providing additional versatility.

Messaging

  • Since Cogility runs on J2EE application servers, messaging is accomplished through the Java Messaging Service.
  • Just like Web services or database access, messaging is accomplished in the model at a higher level. The modeler does not have to delve into the low-level JMS API in order to publish or consume a message.

Domain Transformation Modeling

  • Often, there is a need to integrate multiple business systems with disjoint and partially overlapping data models.
  • Cogility allows explicit modeling of and transformations between, the data models of multiple systems, based on the CWM specification from OMG.
  • Cogility employs a hub-and-spoke model to reduce direct coupling between different data models and eliminate the brittleness that results from point-to-point interconnections.
  • The hub or the central Data Transformation model is contained in the same Business objects that implement the common Process model. This allows the enforcement of a uniform view of the business that is flexible and resilient to changes.

Operations

  • A set of Action Semantic commands can be grouped as an Operation on a business object. Unlike the long-lived, asynchronous Business Processes, Operations are chunks of synchronously executing commands.
  • Operations can be partitioned along object oriented principles across multiple business object classes. Operations allow Action Semantics reuse.
  • An Operation, as defined in the UML specification, is implemented as a pair of artifacts with a ‘definition’, which defines an interface or signature to its callers, and a ‘method’, which contains the implementation. Inheritance and polymorphism are supported.

External Databases

  • Besides connecting to systems via messaging or Web services, Cogility allows external databases to be directly accessed from the Model.
  • Java or JDBC level programming is not required.
  • Two modes of access are supported:
    • Access of a database is initiated by a business process or Web service executing in Cogility.
    • A change to the database contents initiates access to logic defined in the model. Statistical Chart Views and HTML-based Graphical Reports
  • Can be modeled to view and visualize the contents of the database. Chart Views can be created as: Pie Charts Line Charts Point Charts Bar Charts Area Charts
  • Chart views can be linked together to drill down from higher level charts to more detailed charts.
  • HTML views and their associated objects define HTML web applications deployed by Cogility Modeler to the application server. When the model is deployed to execution, the web-based views are automatically available.
  • Standard Cogility Action Semantics are used to populate the contents of these views.

Cogility Studio at-work, Development Process Support

Configuration Management

  • Fine-grained and hierarchical versioning of model artifacts
  • Two and three-way comparisons of model artifacts, coupled with the hierarchical model organization, allows multiple people to collaborate on a model and easily merge their work.
  • Support for export/import of entire model as a single file. Works well for small and medium sized projects because a single file can be easily tracked and managed.
  • Support for fine-grained multiple files/directories format. Works well for very large models because import/exports are fast. Also, off-the-shelf CM tools can be leveraged, if desired, for handling the ASCII text files.

Model Push and Execution

Deployment Process

  • Easy
  • Model changes are directly deployed to the running application server and database with the push of a button. There are no additional manual steps involved.
  • Metadata-based
  • The model is converted into metadata that resides in the execution database. This means no code generation and fewer artifacts that need to be deployed to the application server.
  • Fast Delta Pushes
  • Metadata-based execution allows the contents of the Model to be compared to what is currently in the execution database and only changed artifacts are pushed to the database.
  • Fast
  • No application or app-server restart. Since the metadata resides in the database, in most cases, no new artifacts need to be physically pushed to the application server. This means that the application does not have to be shut down during the push process. At the end of the push, all metadata changes are pushed to the database and committed. At this point, the application server’s connection to the database is refreshed and it starts to execute the newly pushed Model.
  • Flexible
  • Multiple Deployment model artifacts—combined pointer to the app-server and database where the push is targeted—can be created outside of the main Business Model. Users can change the environment that the Model gets pushed to, simply by choosing the appropriate Deployment object, during the Push process. The Deployment object can identify multiple app-server locations, eliminating the need to push multiple times.

Multi-Server Deployment

  • Cogility Modeler now supports deployment to multiple application server instances in a single push operation.

Deployment Tool

  • The Deployment Tool provides a way to load a Model into a repository and to deploy that Model to one or more App Servers. It processes a script and executes the directives within that script without user interaction (other than selecting the script). Iterative Deployment
  • Iterative development is facilitated by two factors:
    • Model-based rapid prototyping
    • Efficient deployment process described above Runtime Scalability
  • Cogility combines the rapid Model-Driven development process, with the power of a standards based execution environment. The two components of the execution platform—J2EE app-servers and Relational databases—are widely available, supported and scalable.
  • Cogility provides an additional level of scalability by persistently storing process state information in the database and allowing the app-servers to be mere caching/computing devices. A specific step in a long running business process can be handled by any of a number of app-servers that are running the Cogility model.

Push Preview

  • Preview the objects that will be pushed to the database before executing the push.

Transactional Semantics

  • Automatic Business logic is automatically wrapped inside transactions. Changes to business objects—made by Action Semantics that are part of a Web service or an individual business process step—are automatically committed to the database as a unit.
  • Process and Business Data Correlation When a particular step in a business process completes, the process status change and any changes to business objects are persisted to the database, as part of one unified transaction. Alternatively, if there is an exceptional condition which causes a particular business process step to become not-completed, then any partial changes made to business objects are also rolled back.
  • Message and Database Transaction Correlation Messages to external systems—that are part of a business process step—are only sent out after business data changes are correctly committed to the database.

Support Tools

The support tools can be used for general purpose testing and debugging by mimicking external systems, allowing the Model to be developed and debugged in isolation.

Web service Exerciser

  • Can import Web service metadata from the execution database.
  • Able to invoke modeled Web services that have been deployed to the app-server.
  • Import Web service definitions from a WSDL file or URL.
  • Web service definitions and data used to invoke them, can be saved and reused.

Action Pad

  • Able to read metadata from the execution database and execute snippets of Action Semantics based on that.
  • Action Semantics are compile checked, just like they would be if they existed inside the Model. All of the functionality available inside the Model is also available for executing from the Action Pad.
  • Can be used to test Action Semantics in isolation— before putting them inside the Model—or to write test scripts to invoke Action Semantics defined in the model and running on the app-server.
  • Action Semantics can be converted into stand alone scripts that can be executed at the Operating System level, either manually through a scheduler.

Message Viewer/Editor

  • Can be used to publish JMS messages to the app server
  • Can be configured to listen to messages published by the app-server as part of executing the model