Integration patterns and practices for cloud and mobile computing

Preview:

DESCRIPTION

Integration patterns and practices for cloud and mobile computing

Citation preview

Integration Patterns and Practices for Cloud & Mobile

Presented By SHAKIL AKHTAR

About Me…v Open Source Technologies Enthusiastic v  Independent Architecture &Technology Consultant v TOGAF 9 Certified v TOGAF 9 Foundation Certified v Spring Source Certified Enterprise Integration Specialist v Oracle Certifier Master Java Enterprise Architect (SCEA 5)-All

Levels. v SCJDWS. v SCWCD v SCJP v Spring Source Groovy Grails Training Certified. v Gemfire Cloud Training Certified v Liferay Training Certified

Agenda

v EIP and their usage v Integration Best Practices for connected world v Patterns in Cloud & Mobile Computing v Use Cases

Never Ending Problem?

What’s so special

v If we were to believe Microsoft it would all just be Web Services

v Microsoft are not to be believed though, fortunately, integration is complex

v XML was suppose to simplify things but you can not retro-fit XML everywhere and in many cases it’s not a good choice §  Low Latency

v Lets start with defining problem

Introduction

v Integrating Enterprise Application can be done in many ways

v Each way has its own pros and cons v Best solution depends on requirements v Things to consider

§  Coupling(logical , temporal) §  Synchronous or Asynchronous §  Overhead §  Data Formats §  Reliability

A Quick History of Integration

•  EAI,B2B Integration •  EDI, RosettaNet, Swift B2B

•  Service based orchestration •  BPEL4WS, ESB, CEP SOA

•  SaaS-SaaS, SaaS-On-Premise based integration •  iPasS platform SaaS

•  Fewer Performance Problems •  Less service interruptions Mobile

Integration Types

v Information Portals v Data Replication v Shared Business Function v Service-Oriented Architecture v Distributed Business Process v Business to Business Integration

EIT-Information portals

v Basic data aggregation v Single source of information

EIT-Data Replication

v Data moves on database tiers v Consistency is dependent on DBMS information

Data  Store  A   Data  Store  B  

EIT-Shares Business Function

v Moves the control to the shared function logic v Tightly couples all clients to the application interfaces

EIT-Service Oriented Architecture

v Connects distributed applications and exposes services through a standard contract

v Complex to design and implement

EIT-Distributed Business Process

v Single point of invocation v Requires other integration solutions to function

EIT- Business to Business Integration

v Higher level of integration v Still requires an integration solution

Enterprise Integration Style

v File Transfer v Shared Database v Remoting v Messaging

File Transfer

v Simple, Interoperable, Fast v Unsafe

§  Non transactional, Concurrency Issues, Security

v Platform dependent v Not event driven

Shared Database

v Simple, Transactional, Triggers(But not portable) v Slower v Impedes Schema evolution

§  Less with No SQL DBs

Data  Store  

Remoting

v Convenient, Stick with OO Paradigm, Speed v Cons

§  Not Interoperable, Hard to version , Not Scalable, Hidden Complexity

Func-on  Call  

Reply  

Messaging

v Asynchronous, Efficient, Scalable, Extensible v Cons

§  Complexity, Longer Response Times, Loss of transactional Context, Loss of Security Context

Applica-on  A   Applica-on  A   Applica-on  A  

Event Layer

Message Bus

Tightly Coupled Interfaces

v Requires minimum n(n-1)/2 interfaces, where n is the number of integrated applications

Loosely Coupled Interfaces

v Requires exactly n interfaces, where n is the number of integrated applications

EIP and their usage

Enterprise Integration Usually evolves messaging

Why we need patterns ?

v Solutions for the same kind problem v Business Integration v Scaling

Did you hear about GoF?

Enterprise Integration Patterns

v Solutions for the same kind problem v Commonly used for Application and Business

Integration

Enterprise Integration Pattern

Applying EIP in Internet Banking(IB)

Using EIP Implementation API

IB

WS

ABS Client-Bank

Porcessing Card-backoffice

POS JDBC

Java Oracle procedure

Spring Integration

Integration Best Practices for Connected World

Patterns in Cloud & Mobile Computing

System Integration In Cloud Era

Cloud to Cloud Integration

v In many ways cloud to cloud integration is no different than other integrations. But they have some unique characteristics

Cloud to cloud Other

RESTful SOAP/WSDL

OAuth authentication Username/Password

JSON XML

No Middleware Middleware Often

Social Data Business/transactional data

No Network Infrastructure req

Network /Infrastructure req

Cloud communication services

v Message Oriented Middleware v Reliable Messaging v Exactly once delivery v At-least once delivery

Cloud to Cloud Integration patterns

v Outbound v Inbound v Hybrid v UI Integration

Outbound Integrations

v Apex Callout §  Use Apex to invoke a WSDL/SOAP or REST service

v Force.com toolkits §  Usually outbound integration

v Outbound Messaging v Apex Email(Outbound)

Salesforce

Inbound Integrations

v Force.com APIs §  SOAP, REST, Chatter REST, Bulk

v Apex Web Services §  SOAP, REST

v Force.com toolkits

Salesforce

Hybrid Integrations

v Integration typically initiated by an outbound call from Force.com

v External cloud application then makes a callback to retrieve/update Force.com data

Salesforce

UI Integration

LinkedIn widget embedded in Visualforce.

A public Force.com Sites page shown in Facebook.

I n t e g r a t i o n i n t h e Enterprise Mobile World

Mobile Integration

Mobile Integration

Enterprise Mobile Integration Patterns

Enterprise Mobile Integration patterns

v Real Time Integration v Queue Based Integration v Event Based Integration v Enterprse Systems APIs

Real-Time Enterprise Systems Integration

Var mySAP= App.Services(‘SAP’).Login({credentials}); Var mySF= App.Services(‘SF’).Login({credentials}); mySAP.Invoke(‘invokeRFC’, {parameters}); mySF.Invoke(‘GetLeads’, {parameters});

Enterprise System Service

SAP Connector

MBaaS

Corp Network

SF.com Connector

Real Time Integration

v Access Content v Server Side Script

Access Content

Var mySAP= App.Services(‘SP’).Login({credentials}); mySF.Invoke(‘GetItem’, {parameters});

Enterprise System Service

Sharepoint Connector

MBaaS

Corp Network

Content Transformer

Server Side Script

Var mySAP= App.Services(‘ORCLDB’).Login({credentials}); mySF.Invoke(‘Query’, {parameters});

Enterprise System Service

Oracle DB Connector

MBaaS

Corp Network

Server Side Script

Queue-Based Enterprise Systems Integration

Queue-Based Integration

JSONObject msg = new JSONObject(... Queue queue = myApplication.Queue("myQueue"); queue.Enqueue(msg, mOnEnqueueCallback);

Mobile Queue Service

SAP Application

MBaaS

Corp Network

Event-Based Enterprise Systems Integration

Event-Based Integration

Mobile Event Service

MBaaS Channel

Channel

Siebel Application

Corp Network

__application.pubSub.Subscribe( “channel name”);

_application.pubSub.Publish( “channel name”, {message});

Enterprise Systems APIs

Mobile Platform ( ex-KidoZen)

Your Datacenter

LOB Kido Agent

LOB

SaaS

LOB Link API

Mobile Integration

Mobile Middleware

MDM-MAM

On-Premise Enterprise

SaaS Enterprise Mobile Testing

Professional Services

Telcos

Mobile Development

Use Cases

IoT

Smart Cities

Summary

v Integration style and patterns v Cloud Integration Patterns v Enterprise Mobile Integration Patterns v Best Practices

Thank You!