www.progress.com DEPLOYMENT ARCHITECTURE FOR MICROSOFT.NET ENVIRONMENTS



Similar documents
DEPLOYMENT ARCHITECTURE FOR JAVA ENVIRONMENTS

IBM WebSphere ILOG Rules for.net

I D C V E N D O R S P O T L I G H T. C o r t i c o n T e chnologies: A S o l u t i o n t o

Service Mediation. The Role of an Enterprise Service Bus in an SOA

Jitterbit Technical Overview : Microsoft Dynamics CRM

Open source business rules management system

BEA AquaLogic Integrator Agile integration for the Enterprise Build, Connect, Re-use

Programmabilty. Programmability in Microsoft Dynamics AX Microsoft Dynamics AX White Paper

PROGRESS DATADIRECT QA AND PERFORMANCE TESTING EXTENSIVE TESTING ENSURES DATA CONNECTIVITY THAT WORKS

Open Source Business Rules Management System Enables Active Decisions

SOACertifiedProfessional.Braindumps.S90-03A.v by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

BUSINESS INTELLIGENCE ANALYTICS

Service-Oriented Architecture and Software Engineering

Cloud Deployment Models

SAVVION MANAGEMENT SYSTEM

Introducing Micro Focus Net Express to Develop and Extend COBOL Applications within.net White Paper

The IBM Cognos Platform for Enterprise Business Intelligence

Course 20489B: Developing Microsoft SharePoint Server 2013 Advanced Solutions OVERVIEW

Developing Microsoft SharePoint Server 2013 Advanced Solutions

How To Use X Query For Data Collection

1 What Are Web Services?

The IBM Cognos Platform

Jitterbit Technical Overview : Salesforce

Corticon Server: Deploying Web Services with.net

WHITE PAPER. TimeScape.NET. Increasing development productivity with TimeScape, Microsoft.NET and web services TIMESCAPE ENTERPRISE SOLUTIONS

Executive summary. Table of Contents. Technical Paper Minimize program coding and reduce development time with Infor Mongoose

Developing Microsoft SharePoint Server 2013 Advanced Solutions

High Availability for Citrix XenApp

PROGRESS OPENEDGE PRO2 DATA REPLICATION

Service Computing: Basics Monica Scannapieco

Describe how to utilize the Publishing API to access publishing settings and content.

Azure Scalability Prescriptive Architecture using the Enzo Multitenant Framework

Enterprise Enabler and the Microsoft Integration Stack

E-Business Suite Oracle SOA Suite Integration Options

Server Consolidation with SQL Server 2008


Sentinet for BizTalk Server SENTINET

BUILDING FLEXIBLE ENTERPRISE PROCESSES USING ORACLE BUSINESS RULES AND BPEL PROCESS MANAGER. An Oracle White Paper Jan 2005

Simplifying Processes Interoperability with a Service Oriented Architecture

IBM InfoSphere MDM Server v9.0. Version: Demo. Page <<1/11>>

Developing Microsoft SharePoint Server 2013 Advanced Solutions MOC 20489

Improving Agility at PHMSA through Service-Oriented Architecture (SOA)

IBM Rational Asset Manager

Progress Corticon BRMS

Exam Name: IBM InfoSphere MDM Server v9.0

An Oracle White Paper February Oracle Data Integrator 12c Architecture Overview

Jitterbit Technical Overview : Microsoft Dynamics AX

David Pilling Director of Applications and Development

1 What Are Web Services?

WHITEPAPER. Unlock the value of your.net architecture with MuleSoft. MuleSoft s Anypoint Platform-The Next Generation Integration Solution

A standards-based approach to application integration

Course Outline: Course 20489B: Developing Microsoft SharePoint Server 2013 Advanced Solutions

This module provides an overview of service and cloud technologies using the Microsoft.NET Framework and the Windows Azure cloud.

SOA REFERENCE ARCHITECTURE: WEB TIER

Enhancing A Software Testing Tool to Validate the Web Services

What You Need to Know About Transitioning to SOA

Increasing IT flexibility with IBM WebSphere ESB software.

SOA Planning Guide The Value Enablement Group, LLC. All rights reserved.

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

Ultimus Adaptive BPM Suite V8

Unlock the Value of Your Microsoft and SAP Software Investments

Enhancing BPM with Business Rules Increase your business agility by separating management of decision logic from mechanics of business process

Greater Continuity, Consistency, and Timeliness with Business Process Automation

.NET Application Monitoring with AVIcode Intercept Studio

Version Overview. Business value

New Features in Neuron ESB 2.6

Service Oriented Architecture (SOA) An Introduction

JOURNAL OF OBJECT TECHNOLOGY

Complementing Your Web Services Strategy with Verastream Host Integrator

CSCI 5828 Spring 2010 Foundations of Software Engineering. - Arpit Sud

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS

I D C T E C H N O L O G Y S P O T L I G H T. B r e a k i n g t h e Rules in BRMS Technolog y

How To Build A Financial Messaging And Enterprise Service Bus (Esb)

Developing Microsoft Azure Solutions 20532B; 5 Days, Instructor-led

InRule. The Premier BRMS for the Microsoft Platform. Benefits THE POWER OF INRULE. Key Capabilities

White Paper. ILOG Rules for.net and Microsoft BizTalk Server

Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems

SONIC ESB 7. KEY CAPABILITIES > Connects, mediates and controls. KEY BENEFITS > Creates new processes using

Service Oriented Architecture

Web Application Development for the SOA Age Thinking in XML

PASS4TEST 専 門 IT 認 証 試 験 問 題 集 提 供 者

Service-Oriented Architectures

Answers to Top BRMS Questions

The Evolution of Load Testing. Why Gomez 360 o Web Load Testing Is a

What's New in ActiveVOS 9.1

Introduction to Service Oriented Architectures (SOA)

Service-oriented architecture in e-commerce applications

Ensuring Web Service Quality for Service-Oriented Architectures. An Oracle White Paper June 2008

Oracle Service Bus Examples and Tutorials

Microsoft Dynamics GP econnect Installation and Administration Guide

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA

C05 Discovery of Enterprise zsystems Assets for API Management

Dynamic Decision-Making Web Services Using SAS Stored Processes and SAS Business Rules Manager

Deploying Rule Applications

Integrating Mainframe Systems in Microsoft Environments

SPT2013: Developing Solutions with. SharePoint DAYS AUDIENCE FORMAT COURSE DESCRIPTION STUDENT PREREQUISITES

Transcription:

DEPLOYMENT ARCHITECTURE FOR MICROSOFT.NET ENVIRONMENTS

TABLE OF CONTENTS Introduction 1 Progress Corticon Product Architecture 1 Deployment Options 2 Option 1: Remote Server 3 Option 2: In-Process Server 3 Corticon Server Installation Options 4 Invoking Corticon Decision Services 4 Messaging 4 Request Message 4 Response Message 4 Using Service Contracts (WSDLS or SML Schemas) 5 Corticon Rule Engine 5 Enterprise Data Connectivity 6 Multi-Threading and Concurrency 6 Clustering and Load Balancing 7 Summary 8 About Progress Corticon 8

1 INTRODUCTION The Progress Corticon Business Rules Management System (Corticon BRMS) fits naturally in today s service-oriented architectures (SOA), deploying as a service, and leverages the enterprise-class performance, scalability, and high-availability features of leading application servers. It has been designed to support standards critical to enterprise customers building and integrating composite applications. The Progress Corticon Server is the patented no-coding rules engine for Corticon BRMS, with performance unmatched in the industry. This document describes Corticon Server.NET runtime architecture with particular emphasis on how Corticon Server fits within various enterprise environment. PROGRESS CORTICON PRODUCT ARCHITECTURE The Corticon BRMS consists of a set of rule modeling tools (Corticon Studio) and deployment tools (Corticon Deployment Console), along with a highly scalable execution environment (Corticon Server.NET). The business rules are modeled as rule sets and deployed as Corticon decision services. Client applications call decision services to apply decision-making logic (i.e., business rules) as needed within the application flow. These fully encapsulated decision services can be invoked as web services or in-process depending on technical requirements. A single instance of Corticon Server.NET can supply decision services to diverse client applications. Figure 1 illustrates the Corticon BRMS architecture for.net environments. PROGRESS CORTICON STUDIO PROGRESS CORTICON DEPLOYMENT CONSOLE MICROSOFT IIS PROGRESS CORTICON SERVER.NET ENTERPRISE DATA CONNECTOR MICROSOFT.NET MICROSOFT WINDOWS WEB SERVICE POLICY MAKERS BUSINESS AND IT ENTERPRISE APPLICATIONS ENTERPRISE DATA SOURCES Figure 1 Corticon product architecture for.net environments

2 Consider the following: 1. Each decision service encapsulates the logic of a single decision-making activity (e.g., calculate a rate, verify a claim, accept an applicant). Corticon Studio provides tools to analyze and test the logic, ensuring that it is complete and unambiguous; it always provides one, and only one, correct answer. 2. Corticon Server.NET may be deployed in Microsoft s Internet Information Services (IIS) or may be called in-process from a.net client application. 3. Decision services may be deployed into Corticon Server.NET using a Corticon Deployment Descriptor (CDD) or via Corticon Server.NET APIs. All necessary deployment artifacts, including the executable services and WSDLs, can be generated by Corticon tools. Client-side proxy classes can be generated by using the.net framework utility programs. 4. Client applications include any business program that uses decision services or business process management (BPM) systems that manage many activity steps in a business process flow. 5. Client applications invoke Corticon decision services by first constructing an XML message or by creating a collection of.net business objects that contain business facts. The client application communicates this information to Corticon Server.NET via WCF, ASP.NET or an in-process call. DEPLOYMENT OPTIONS Corticon decision services conform to SOA. Each decision service: Automates a business decision-making activity Is implemented by a set of business rules Is managed by software developers or business analysts In each enterprise, the application architect needs to determine: How decision services become part of the enterprise architecture Which applications utilize decision services How client applications will invoke the decision services These choices depend on the current and future technical requirements of the enterprise. The available options are summarized in the following table and addressed in detail below: CORTICON DEPLOYMENT OPTION Option 1: Remote Server Application Server: IIS applications invoke decision services remotely as web services Option 2: In-process Server: Applications invoke decision services directly via Corticon Server.NET APIs APPROPRIATE FOR Service-oriented architectures Distributed architectures Rule modernizing legacy systems with ability to make calls to remote decision services Systems that require the fastest possible performance Systems that require tight coupling of client application with the Corticon Server MESSAGING OPTIONS XML SOAP REST/JSON WCF ASP.NET XML.NET objects

3 OPTION 1: REMOTE SERVER This option requires the Corticon Server.NET to be deployed in Microsoft Internet Information Services (IIS). Decision services can be invoked as web services using one of the following protocols: SOAP, REST/JSON, WCF, and ASP.NET. To prepare for web services deployment, the Corticon Deployment Console is used to generate CDDs (Corticon Deployment Descriptor files) and WSDLs/XSDs (service contracts). A CDD is an optional deployment descriptor file which defines a set of decision services to be deployed in Corticon Server.NET. The CDD specifies the locations of rule sets, performance-related parameters and other administrative details that the server needs to effectively deploy the decision services. A WSDL/XSD is effectively a service contract for a decision service. Each decision service has a WSDL/XSD that defines the decision service s expected inputs and outputs. Utility programs included in.net Framework can transform WSDLs into WCF or ASP. NET client-side proxy classes. Client applications can incorporate these proxy classes to communicate with Corticon Server.NET. Alternatively, client applications can forgo proxies and construct custom-tailored SOAP messages as long as those messages conform to WSDL specifications or use REST/JSON. PROGRESS CORTICON SERVER.NET SOAP Figure 2 Corticon Server.NET deployed in IIS REST/JSON WCF MICROSOFT IIS ASP.NET CUSTOM APPLICATIONS OPTION 2: IN-PROCESS SERVER Client applications can invoke decision services and perform administrative functions in-process via the Corticon Server.NET API. This option can deliver high performance but lacks the flexibility and loose coupling that web services can provide. PROGRESS CORTICON SERVER.NET Figure 3 Corticon Server.NET deployed in-process XML.NET APIs REQUEST MESSAGE CUSTOM APPLICATIONS.NET CLR.NET OBJECTS

4 Using Corticon Server as a.net in-process component, client applications have the option to communicate via XML or.net objects written in any.net language such as C# or Visual Basic. Using.NET objects can yield superior performance by eliminating XML translation overhead. CORTICON SERVER INSTALLATION OPTIONS Corticon Server.NET can be set up to run in Microsoft IIS by installing it in a dedicated IIS virtual directory. Alternatively, the Corticon.NET assemblies can be installed directly into any desired location for in-process use. INVOKING CORTICON DECISION SERVICES Once Corticon decision services have been loaded into Corticon Server.NET, they are ready to be invoked by client applications. The integration approach differs depending upon the selected deployment option. The service requests contain rich payloads that can be either carried via XML or.net objects. The contents of the payloads are analyzed in more depth below. MESSAGING Messaging between a client application and a decision service is conceptually identical across deployment approaches, regardless of the transport protocol used. 1. The client application sends a request message to the Corticon Server, containing a payload of data and targeted at a specific decision service. 2. The Corticon Server invokes the appropriate decision service, which processes its rules against the request payload. 3. When the rules processing is complete, the Corticon Server returns a response message. REQUEST MESSAGE The request message consists of data to be sent to the rules engine. The payload is a collection of application-specific entity instances that are defined in the user s vocabulary. Entity instances may have any number of attributes and may have associations with other entity instances. The collection of entity instances are the facts upon which the rules engine operates. RESPONSE MESSAGE The response message payload includes two discrete sets of data: the data payload and posted messages. The data payload contains a copy of the incoming data that has been updated as a consequence of rules firing. Entity instances may be created, updated or removed. In addition, associations between entity instances may be created or removed. In other words, the response message data payload reflects the state of the decision service working memory after all rules have fired. Posted messages contain an audit trail of rules fired by the decision service during the processing of the request, including the sequence of firing. The messages are posted using natural-language rule statements.

5 USING SERVICE CONTRACTS (WSDLS OR XML SCHEMAS) The Corticon request and response messages must adhere to the message structure and data specification as defined in the service contracts. The service contracts can be generated for each Corticon decision service (one service contract per decision service) using the Corticon Deployment Console, as either WSDL or XML schema files (XSDs). Service contracts are helpful integration specifications used by application developers to assemble services into larger applications. WSDL is used when the customer has chosen web services architecture. The WSDL file defines a complete interface description, including: Decision service name Request message structure Response message structure SOAP envelope and binding information XSDs can be used in conjunction with the.net in-process deployment option. The XSD file is identical to the WSDL file minus the SOAP envelope and binding information. When using XML payloads, the XSD file defines the necessary structure of the XML document (i.e., the XML document can be validated against the XSD using a validating parser). You also have the option to use REST/JSON for executing decision services, in which case you do not have to adhere to a service contract. CORTICON RULE ENGINE Corticon Server employs an engine that has been built specifically to address the needs of business decision automation within the context of a business process. In decision automation, efficient processing of business rules and consistent results are essential to achieve fully automated straight-through-processing ( STP ). Most rule engines analyze rules during execution. This means significant processing is taking place when systems are looking for an answer from the rules system. The traditional pattern matching algorithm to efficiently process and execute rules is Rete. Rete-based inference algorithms are built to address the needs of expert systems in which rules are used for decision support, not decision automation. In those systems a person typically queries a large rule base with a question, and the system converges on zero or more (sometimes conflicting) answers. Because a human interprets the results, logical inconsistencies (such as no answers, or conflicting answers) are tolerated and, in fact, architecturally required. In order to achieve STP, decision automation requires consistent answers (i.e., guaranteed, conflict-free results) each and every time because typically no human expert is available to be the final arbiter. Furthermore, Rete-based inference engines are designed to allow individual rules to be dynamically added or removed to/from the rule base, as this is a requirement for expert systems. Using a one-activated-rule-at-a-time process to support its dynamic conflict resolution architecture, the Rete algorithm inherently produces a processing bottleneck. While Rete scales well with an increasing number of rules, it degrades exponentially with the increasing complexity of data, resulting in a performance scalability problem well known as the Rete wall. Corticon took a radically different approach for decision automation. Decision services, which are made up of sets of rules, are deployed/ undeployed as a unit, so the rule engine does not need to support dynamic tweaking of individual rules.

6 The Corticon engine was designed from the ground-up for decision automation, not decision support. Since Corticon Studio helps the rule author identify and resolve logical conflicts during the rule modeling phase, the Corticon engine s smart compilers automatically generate optimal processing sequences for any decision service. This results in a best-of-both-worlds solution as Corticon delivers blazing performance that scales linearly with both the number of rules and the complexity of the data. Corticon decision service execution is stateless, where all state is maintained in the message payloads. A single incoming message payload seeds the engine working memory after which rules processing commences. Once rules processing ceases, the final state of the engine working memory is returned as an outgoing message payload, along with an association rule audit log. ENTERPRISE DATA CONNECTIVITY Corticon supports two distinct modes of operation: 1. Requiring the client program to supply all input data as specified by the service contract 2. Allowing Corticon Server.NET with EDC (enterprise data connectivity) to dynamically access data in an enterprise data source (e.g., relational database) as needed during execution In the first mode of operation, the rule author can decide what information must be passed to the decision service. This is done through a combination of the vocabulary, the rules written using that vocabulary, and the service contract, which specifies the data elements required to process a particular decision service. In the second mode of operation, the client application can supply primary key information in the request message while the rules engine dynamically retrieves (and optionally updates) additional information in an enterprise data source. For example, in a loan pricing application, the client may supply the ID of a loan applicant, and, based on rules, the engine may automatically retrieve the applicant s payment history in order to infer new facts such as loan risk. Since the client application supplies only the minimum necessary information, this mode results in looser coupling between the client and the server; rules that refer to enterprise data can evolve freely without affecting the decision service contract or client program logic. Additionally, this mode is very useful when it is difficult to collect in advance all the data necessary to make a decision or if the amount of data required can be substantial in size and difficult to pass into the decision service. In either mode of operation, rules are authored in precisely the same manner. Enterprise mapping specifications are declared in the vocabulary, but those mappings are transparent to the rule author. This key advantage can reduce costs associated with developing and maintaining enterprise rules which require data access. Traditional rule engines typically require technical skills to code database connectivity and the use of SQL to query the database. MULTI-THREADING AND CONCURRENCY Each incoming request message is processed in its own thread of execution: that is, each decision service instance runs in a separate thread. The Corticon Server does not spawn any threads and does not perform thread management; rather, the thread of execution

7 is established and managed by the enclosing container that receives the request (i.e., Microsoft IIS). In cases where an in-process call is made from the client application, the thread of Corticon execution is the same one in which the client runs. When the Corticon Deployment Console is used, the person responsible for deployment decides how many instances of the same decision service may run concurrently. This is called the decision service pool. Different decision services may have different pool sizes in the same Corticon Server depending on their individual load requirements. CLUSTERING AND LOAD BALANCING In large-volume scenarios, enterprises will typically deploy multiple IIS Servers as a cluster. Corticon Server.NET, as a well-behaved, IIS-managed web service, can leverage this capacity to scale. In addition, a variety of means exist to spread the incoming workload across the multiple IIS Servers. Illustrations of the Corticon Server in active/passive (Figure 4) and active/active (Figure 5) clustering configurations are shown below. PRODUCTION SERVERS Figure 4 Corticon Server.NET with active/ passive clustering LOAD BALANCER MESSAGE ONLY IF PRODUCTION SERVERS FAILS CUSTOM APPLICATIONS WARM STANDBY PRODUCTION SERVERS Figure 5 Corticon Server.NET with active/ active clustering LOAD BALANCER MESSAGE CUSTOM APPLICATIONS

8 SUMMARY The Corticon Server.NET supports a variety of enterprise deployment options. Corticon Server s architecture is well-suited for enterprise environments, leveraging the inherent scalability, availability, and manageability of Microsoft s IIS. Corticon-based applications can easily adjust to changes in the business landscape and can help organizations achieve the benefits of a service-oriented architecture. ABOUT PROGRESS CORTICON Progress Corticon is the Business Rules Management System (BRMS) that delivers highquality, high-fidelity, high-performance automated business decisions. It helps increase agility of decision change processes, and enables new insights into the connections between individual recurring decisions and business performance. Corticon separates decisions from processes, helping both business and IT users to quickly create or reuse business rules as well as create, improve, collaborate on, and maintain decision logic. Corticon is the market-leading platform for automating and executing business changes used by over 500 customers worldwide. Customers such as ebay, Commonwealth of Pennsylvania, Unum, Adobe and DBS (Development Bank of Singapore) have realized significant bottom- and top-line results using Corticon to improve decision automation, decision change processes and decision-related insights. PROGRESS SOFTWARE Progress Software Corporation (NASDAQ: PRGS) is a global software company that simplifies the development, deployment and management of business applications onpremise or in the cloud, on any platform or device, to any data source, with enhanced performance, minimal IT complexity and low total cost of ownership. WORLDWIDE HEADQUARTERS Progress Software Corporation, 14 Oak Park, Bedford, MA 01730 USA Tel: +1 781 280-4000 Fax: +1 781 280-4095 On the Web at: Find us on facebook.com/progresssw twitter.com/progresssw youtube.com/progresssw For regional international office locations and contact information, please go to /worldwide Progress and Corticon are trademarks or registered trademarks of Progress Software Corporation or one of its affiliates or subsidiaries in the U.S. and other countries. Any other marks contained herein may be trademarks of their respective owners. Specifications subject to change without notice. 2011-2014 Progress Software Corporation. All rights reserved. Rev. 06/14 140623-0065