2/25/2013 Miro Remias, Solution Architect

Slides:



Advertisements
Similar presentations
MQ Series Cross Platform Dominant Messaging sw – 70% of market Messaging API same on all platforms Guaranteed one-time delivery Two-Phase Commit Wide EAI.
Advertisements

Visit the ccScan Website Scan, Import, and Automatically File documents to the Cloud SCAN, IMPORT, AND AUTOMATICALLY FILE DOCUMENTS TO SALESFORCE ® Introduction.
ASP.NET Ajax Supplementary Tutorial. Why Use ASP.NET AJAX? - I ASP.NET AJAX enables you to build rich Web applications that have many advantages over.
Intracompany Stock Transfer Scenario Overview
SOAP Quang Vinh Pham Simon De Baets Université Libre de Bruxelles1.
Chapter 5 Data Management. – The Best & Most Convenient Way to Learn Salesforce.com 2 Objectives By the end of the module, you.
© 2008 RightNow Technologies, Inc. Title Best Practices for Maintaining Your RightNow Knowledge Base Penni Kolpin Knowledge Engineer.
Advantage Data Dictionary. agenda Creating and Managing Data Dictionaries –Tables, Indexes, Fields, and Triggers –Defining Referential Integrity –Defining.
Milestone 5 presentation Harlan Broughton Stephen Link.
Click to add text Introduction to z/OS Basics © 2006 IBM Corporation Chapter 15: WebSphere MQ.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 7: Planning a DNS Strategy.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
Jason Morrill NCOAUG Training Day February, 2008
Presented By: Product Activation Group Syndication.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Real World Examples – Part II 7/26/2013Miro Remias, Sr. Solution Architect.
Database testing Prepared by Saurabh sinha. Database testing mainly focus on: Data integrity test Data integrity test Stored procedures test Stored procedures.
SDL Proprietary and Confidential IMS Campaign Manager Intra-day Updates and Response Attribution SDL Campaign Management Solutions.
Module 14: WCF Send Adapters. Overview Lesson 1: Introduction to WCF Send Adapters Lesson 2: Consuming a Web Service Lesson 3: Consuming Services from.
Maintaining a Mirrored Database Tips and Tricks by Paul G. Hiles.
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
1 Accelerated Web Development Course JavaScript and Client side programming Day 2 Rich Roth On The Net
Management Information Systems MS Access MS Access is an application software that facilitates us to create Database Management Systems (DBMS)
1 OPOL Training (OrderPro Online) Prepared by Christina Van Metre Independent Educational Consultant CTO, Business Development Team © Training Version.
Phone: Mega AS Consulting Ltd © 2007  CAT – the problem & the solution  Using the CAT - Administrator  Mega.
MS Access 2007 Management Information Systems 1. Overview 2  What is MS Access?  Access Terminology  Access Window  Database Window  Create New Database.
Deferred Messaging Brown Bag 1. Agenda 2 Background Solution Implementation Details Additional Information.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
What's New in Kinetic Calendar 2.0 Jack Boespflug Kinetic Data.
DAT 332 SQL Server 2000 Data Transformation Services (DTS) Best Practices Euan Garden Product Unit Manager SQL Server Development Microsoft Corporation.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Welcome to Azure App Services! Amie Seisay
Registration Solutions for your Event Management.
Internal and Confidential Cognos CoE COGNOS 8 – Event Studio.
Welcome to Azure App Services! Amie Seisay
AJAX Use Cases for WSRP Subbu Allamaraju BEA Systems Inc WSRP F2F Meeting, May 2006.
Module 5: Managing Content. Overview Publishing Content Executing Reports Creating Cached Instances Creating Snapshots and Report History Creating Subscriptions.
INFORMATION DEPLOYED. SOLUTIONS ADVANCED. MISSIONS ACCOMPLISHED. PDS Punch-Out v1.0 SPS Spotlight Series October 2014.
Developer Exam Preparation Thom Robbins Bryan Soltis
Using the Kentico CMS API Thom Robbins Bryan Soltis
Confidential | Copyright © 2014 TriZetto Corporation 1.
1 A Look at the Application Authorized users can access Communicator! NXT from any Internet-capable computer via the Web.
Discover Unlimited Website Possibilities Prague, October 18-20, 2010.
MQ Series Cross Platform Dominant Messaging sw – 70% of market
SPS Spotlight Series October 2014
Integrating ArcSight with Enterprise Ticketing Systems
Integrating ArcSight with Enterprise Ticketing Systems
Working in the Forms Developer Environment
Archiving and Document Transfer Utilities
z/Ware 2.0 Technical Overview
Section 13 - Integrating with Third Party Tools
Beyond the BDC\BCS Model
Receiving New Lending requests
Get the Most Out of GoAnywhere: Agents
Introduction to Replication
Microsoft Dynamics.
iVend Retail Extensibility
JDXpert Workday Integration
Harness the Power of Promotional Packages in MX
Java Messaging Service (JMS)
Building my on-line store
Oracle Sales Cloud Sales campaign
Java Messaging Service (JMS)
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
MQ Series Cross Platform Dominant Messaging sw – 70% of market
Performing Database Recovery
A Scripting Server for Domain Automation Tasks
ITAS Risk Reporting Integration to an ERP
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Presentation transcript:

2/25/2013 Miro Remias, Solution Architect Integration Bus 2/25/2013 Miro Remias, Solution Architect

Agenda General Purpose Integration Options Integration bus REST, Kentico API, Scheduled tasks, Event Handlers, Integration bus Integration bus Main idea How it works Inbound & outbound direction Synchronous & Asynchronous task processing Example: Sample implementation

General Purpose Integration Options REST (READ, INSERT, UPDATE, DELETE) Used when there is NO DIRECT access to Kentico DB (or via Kentico API) from external system, Example: Client application for administrators to access Kentico Event Log, Outbound direction: needs to be ensured FROM the external system - NOT a REAL TIME synchronization, NO notifications about system changes, Possible solution: Event handlers (trigger for events), Both directions: NO processing (task) QUEUE – what if processing fails? Using Kenico API / controls outside of Kentico Requires DIRECT access to Kentico DB (connection string), REAL TIME data access, Event handlers REAL TIME synchronization ONLY for OUTBOUND direction, NO QUEUE if processing fails, Processing within page request – could SLOW DOWN the web site. Custom scheduled task(s) Run in the context of the web site or as windows service, NOT mentioned for a REAL TIME synchronization, Option to set the execution interval to 1 second – DON’T DO IT!, Example: Synchronization of objects (e.g.: contacts) to external system (e.g.: SalesForce),

System Integration Bus Kentico CMS External System Connector What is the main idea? What is the connector? What was the goal? When to use it ? More advanced scenarios where REST Service is not enough Active notifications about changes in CMS are needed Robust processing of incoming tasks is required - task queue!

Sample Scenarios #1 External logging of document modifications Why integration bus? REST module CAN NOT be used – on demand solution, If external system is DOWN, changes are still logged in Kentico and can be processed later once the external system is UP and RUNNING, Possibly you can use Event Handlers (triggers) – NO QUEUE if processing fails! #2 Products added to external system are automatically imported to the CMS REST CAN BE used if you DO NOT require failed product processing.

Direction From The CMS (Outbound) Kentico CMS Objects External System Connector Tasks queue Subscription 1 Tasks logging processing Subscription 2 Documents DB <XML> <Type-safe object> Subscriptions Tasks queue Data stored as XML in database

Direction From The CMS – Synch Types Synchronous Asynchronous NOTE: The same applies also for documents. Object action Object processing CMS Object Thread Task logging XML Tasks queue DB Object action Object processing CMS Object CONTEXT IS AVAILABLE! ACCESS TO PROPERTIES LIKE Parent or Children OBJECT CAN BE LOST! SLOWS DOWN PAGE PROCESSING!

Type Of Data - Subscription Snapshot – this type is useful when you want to synchronize multiple objects at once. E.g. a main object with its children, e.g. polls together with poll answers. SimpleSnapshot – use this type when you are planning to synchronize whole objects and when you want to preserve foreign key bindings (translations). Simple – use it when you are interested only in partial contents of an object (e.g. a text field), i.e. when you are not planning to synchronize the whole object. Simple SimpleSnapShot SnapShot Value Objects Documents Synch Asynch Translation data (only for Asynch) Child objects, bindings, categories etc. SnapShot YES NO SimpleSnapShot Simple

Asynchronous Processing - Direction From The CMS External system Connector starts to fetch tasks from the oldest to the newest, Task is transformed to a strongly typed object and passed to the methods implemented by the developer in the connector class. Some additional methods might be called, e.g. when a foreign key translation is desirable. When the task is processed, the result value is returned to notify the connector - the connector decides what to do next.

Translation Management – Asynchronous Processing NOTE: You can transfer columns also of child objects – useful for ‘SnapShot’ data type .

Synchronous Processing - Direction From The CMS Processing of synchronous tasks starts immediately after some object or document matching some subscription is changed. Unlike the asynchronous processing where the logging and processing is postponed till the application reaches EndRequest, this type of processing sends the data instantly to the subscribed connectors. External system NOTE: CONTEXT IS AVAILABLE! OBJECT CAN BE LOST! EXCEPTION/ERROR LOGGED IN KENTICO EVENT LOG. SLOWS DOWN PAGE PROCESSING! NO TranslateColumnsToExternal() method, custom implementation needed!

Direction From The CMS – Implementation I/III We should be decided:   • Which objects and/or documents you want to synchronize, • Which data type you want to use, • Whether you want to use the synchronous or the asynchronous mode, Sample Scenario Event booking attendees – TWO WAY synchronization with external web site. KENTICO EXTERNAL SYSTEM

Basic Classes – Direction From CMS II/III Base connector class BaseIntegrationConnector Init() Method to override initialization of the connector defining ConnectorName property and subscriptions Subscriptions ObjectIntegrationSubscription, DocumentIntegrationSubscription Classes for subscriptions - defining process type, task type Other helper methods in base connector SubscribeToXXX() SubscribeToObjects(), SubscribeToAllDocuments()… CustomConnector BaseIntegrationConnector Subscription1 Subscription2 Methods to be implemented ProcessInternalTaskAsync - ensures asynchronous processing of objects or documents (depending on the chosen override). GetExternalObjectID - used in asynchronous processing for ID translations when synchronized objects or documents reference objects inheriting from BaseInfo. GetExternalDocumentID - used in asynchronous processing for ID translations when synchronized objects or documents reference documents (TreeNode). ProcessInternalTaskSync - ensures synchronous processing of objects or documents (depending on the chosen override).

Direction From The CMS – Implementation III/III Task processing options   Utilize API of the external system if you add references to its namespaces. Use CMSConnectionScope and GeneralConnection and perform a query upon the external database. Push the data to an external endpoint in a format which it is able to consume -e.g. by a web service existing in the external system.  Are there other ways?

Direction To The CMS I/II (Inbound) Connector DLLs in external system Kentico CMS Objects External System Connector Tasks queue Tasks logging processing Documents DB <XML> <Type-safe object>

Direction To The CMS II/II Connector DLLs in CMS using service Kentico CMS DB Objects External System Connector Tasks queue Tasks processing Documents Service (Web, WCF) logging <XML> <Type-safe object>

Task Processing - Direction To The CMS ALTERNATIVES: • Making a request to a special page (~/CMSPages/IntegrationNotify.aspx) NOTE: Can be done with Kentico API. • Manually by clicking Synchronize in UI.

Direction To The CMS - Implementation The following methods need to be implemented to ensure synchronization in the inbound direction:   PrepareInternalObject - ensures processing of an object or a document. GetInteralObjectParams - prepares translation information for an object or a document that has a foreign key to an object (BaseInfo). GetInternalDocumentParams - prepares translation information for an object or a document that has a foreign key to a document (TreeNode). KENTICO EXTERNAL SYSTEM WEB SERVICE

Summary Robust solution with built-in QUEUE Task processing – ONE BY ONE, TEST the performance of your connector, Might NOT BE suitable FOR simple scenarios, Think about other options (REST, HANDLERS, SCHEDULED TAKS etc.), Future plans Support for bulk operations to reduce amount of transactions, General service to be called from external system,

Contact Miro Remias e-mail: miro@kentico.com consulting: http://www.kentico.com/Support/Consulting/Overview