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!