Exploring the Future Potential of AI-Enabled Smartphone Processors
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Enterprise Service Bus (ESB)
1. Systems Integration in the Cloud Era
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
2. Kai Wähner
Main Tasks
Evaluation of Technologies and Products
Requirements Engineering
Enterprise Architecture Management
Business Process Management
Architecture and Development of Applications
Planning and Introduction of SOA
Integration of Legacy Applications
Cloud Computing
Big Data
Consulting Contact
Email: kontakt@kai-waehner.de
Developing Blog: www.kai-waehner.de/blog
Speaking Twitter: @KaiWaehner
Coaching Social Network: Xing, LinkedIn
Writing
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
3. What is the Problem?
Growth
• Applications
• Interfaces
• Technologies
• Products
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
4. A new Era: Cloud Computing
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
5. Solution: Systems Integration
All Roads lead
to Rome ...
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
6. Wishes
• Standardized Modeling
• Efficient Realization
• Automatic Testing
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
7. Systems Integration in the Cloud Era
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
8. What is the Key Message?
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
9. Key Messages
The Cloud already arrived, and must be integrated!
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
10. Key Messages
The Cloud already arrived, and must be integrated!
Cloud Integration is already possible!
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
11. Key Messages
The Cloud already arrived, and must be integrated!
Cloud Integration is already possible!
Different APIs, Frameworks and Products help a lot!
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
12. Agenda
1) Introduction to Cloud Computing
2) Alternatives for Systems Integration
3) API
4) Integration Framework
5) Enterprise Service Bus
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
13. Agenda
1) Introduction to Cloud Computing
2) Alternatives for Systems Integration
3) API
Amazon Web Services (IaaS)
4) Integration Framework Googe App Engine (PaaS)
Salesforce (SaaS)
5) Enterprise Service Bus
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
14. Agenda
1) Introduction to Cloud Computing
2) Alternatives for Systems Integration
3) API
4) Integration Framework
5) Enterprise Service Bus
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
15. Cloud Computing
Infrastructure Platform Software
On Premise
On Premise as a Service as a Service as a Service
hosted
(IaaS) (PaaS) (SaaS)
App App App App App
VM VM VM VM VM
Server Server Server Server Server
Storage Storage Storage Storage Storage
Network Network Network Network Network
Organisation Control Vendor
has control is shared has control
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
16. Every Vendor offers Cloud Products
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
18. IaaS Concepts (AWS)
Compute
Amazon Elastic Compute Cloud (EC2)
Amazon Elastic MapReduce (EMR)
Storage
Amazon Simple Storage Service (S3)
Amazon Elastic Block Store (EBS)
SimpleDB (SDB)
Database
Amazon Relational Database Service (RDS)
Amazon DynamoDB (DDB)
Amazon ElastiCache
Application Services
Amazon Simple Workflow Service (SWF)
Amazon Simple Queue Service (SQS)
Amazon Simple Notification Service (SNS)
Amazon Simple Email Service (SES)
Many more ...
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
19. PaaS Examples
Elastic Beanstalk
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
20. PaaS Concepts (GAE)
Application Deployment
Easy Deployment
Automatic Scaling
Development Restrictions
JRE Class White List
Workarounds for Frameworks
No „naked“ Domains
No „write once run everywhere“
Quotas and Limits
Services
Push Queue
Pull Queue
URL Fetch
Accounts
Mail
Memcache
XMPP
Images
Datastore
Cloud Storage
Cloud SQL
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
22. SaaS Concepts (Salesforce)
Software (CRM)
Sales
Service
Social
Data.com
AppExchange
... more ...
Development
Online-Development
(even the Compiler is in the Cloud!)
Own Addons Force.com (PaaS)
Apex Integration of Interfaces
Visualforce
REST
SOAP
Client APIs (Java, etc.)
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
23. Agenda
1) Introduction to Cloud Computing
2) Alternatives for Systems Integration
3) API
4) Integration Framework
5) Enterprise Service Bus
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
27. Systems Integration in the Cloud Era
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
28. Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
29. Agenda
1) Introduction to Cloud Computing
2) Alternatives for Systems Integration
3) API
4) Integration Framework
5) Enterprise Service Bus
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
30. Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
31. Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
API
Proprietary
REST Service
SOAP Service
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
32. Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
API
Proprietary Vendor APIs
REST Service vs.
SOAP Service Generic APIs
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
33. Systems Integration in the Cloud Era
API
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
34. APIs
Vendor APIs
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
36. IaaS - AWS S3 (Ruby API)
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
37. PaaS - Google App Engine (Java API)
public class GAEJCreateTaskServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String strCallResult = "";
resp.setContentType("text/plain");
try {
String strEmailId = req.getParameter("emailid");
if (strEmailId == null) throw new Exception ("Email Id field cannot be empty.");
strEmailId = strEmailId.trim();
if (strEmailId.length() == 0) throw new Exception("Email Id field cannot be empty.");
Queue queue = QueueFactory.getQueue("subscription-queue");
queue.add(TaskOptions.Builder.url(“signupsubscriber“)
.param("emailid",strEmailId));
strCallResult = "Successfully created a Task in the Queue";
resp.getWriter().println(strCallResult);
}
catch (Exception ex) {
strCallResult = "Fail: " + ex.getMessage();
resp.getWriter().println(strCallResult);
} }}
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
38. SaaS – Salesforce (Java API)
ConnectorConfig config = new ConnectorConfig();
config.setUsername(userId);
config.setPassword(passwd);
config.setAuthEndpoint(authEndPoint);
connection = new EnterpriseConnection(config);
GetUserInfoResult userInfo = connection.getUserInfo();
System.out.println("User Full Name: " + userInfo.getUserFullName());
QueryResult qResult = null;
String soqlQuery = "SELECT FirstName, LastName FROM Contact"; // SOQL
qResult = connection.query(soqlQuery);
boolean done = false;
if (qResult.getSize() > 0) {
System.out.println("Logged-in user can see " +
qResult.getRecords().length +
" contact records."
);
while (! done) {
SObject[] records = qResult.getRecords();
for ( int i = 0; i < records.length; ++i ) {
Contact con = (Contact) records[i];
String fName = con.getFirstName();
String lName = con.getLastName();
// ... more stuff here ...
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
39. IaaS – Microsoft Azure NoSQL Table Storage (C# API)
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
40. APIs
REST / SOAP APIs
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
41. SaaS – Salesforce (REST API)
• SOAP
• REST
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
42. SaaS – Salesforce (REST API)
• SOAP
• REST
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
43. APIs
Generic APIs
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
44. jClouds (Generic API)
Generic API for IaaS
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
45. jClouds (Generic API)
Compute API
Blobstore API
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
46. jClouds (Generic API)
Several different
Cloud providers
supported
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
47. jClouds (Generic API) – AWS S3 Blobstore (Java)
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
48. jClouds (Generic API) – AWS S3 Blobstore (Java)
Use another provider?
Just change this line!
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
49. Agenda
1) Introduction to Cloud Computing
2) Alternatives for Systems Integration
3) API
4) Integration Framework
5) Enterprise Service Bus
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
50. Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
51. Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
Integration
Connectivity
Routing
Transformation
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
52. Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
Spring Integration
VS
Integration Mule
VS
Connectivity
Apache Camel
Routing VS
Transformation NIntegrate
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
53. Architecture
http://java.dzone.com/articles/apache-camel-integration
(Exemplarily: Apache Camel => Concepts are all the same, only different names)
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
54. Deployment
Standalone Application Server
Web Container
Cloud
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
55. Systems Integration in the Cloud Era
Integration
Framework
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
56. Code Example - Camel AWS Component (Java)
// Producer
from(“jms:toS3")
.setHeader(S3Constants.KEY, simple(“order.txt"))
.to("aws-s3://myBucket?accessKey=" + a+ "&secretKey= " + s)
// Consumer
from("aws-s3://myBucket?accessKey=“a+ "&secretKey=" + s)
.to(“log:S3logging")
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
57. A more complex route with different Cloud services
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
58. Code Example – Mule (XML)
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
59. Code Example – NServiceBus (.NET Open Source)
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
60. Code Example – Camel GAE Component (Java DSL)
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
61. Custom Cloud Components
Component
Creates
Endpoint
Consumer Producer
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
62. Code Example – Camel Salesforce Component
// Producer
from(“jms:toSalesforce“)
.to("salesforce://Article__c?user=u&password=p&item=myItem");
// Consumer
from("salesforce://Article__c?user=u&password=p")
.to(“log:fromSalesforce");
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
63. Alternative for Custom Cloud Components
• SOAP
• REST
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
64. Code Example – Salesforce REST (HTTP)
// Salesforce Query (SOQL) via REST API
from("direct:salesforceViaHttpLIST")
.setHeader("X-PrettyPrint", 1)
.setHeader("Authorization", accessToken)
.setHeader(Exchange.CONTENT_TYPE, "application/json")
.to("https://na14.salesforce.com/services/data/v20.0/query?q=SELECT+name+from
+Article__c")
// Salesforce CREATE via REST API
from("direct:salesforceViaHttpCREATE")
.setHeader("X-PrettyPrint", 1)
.setHeader("Authorization", accessToken)
.setHeader(Exchange.CONTENT_TYPE, "application/json“)
.to("https://na14.salesforce.com/services/data/v20.0/sobjects/Article__c")
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
65. Agenda
1) Introduction to Cloud Computing
2) Alternatives for Systems Integration
3) API
4) Integration Framework
5) Enterprise Service Bus
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
66. Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
67. Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
Middleware Product
Integration Integration
Connectivity Business Process Management
Routing Business Activity Monitoring
Transformation Registry / Repository
Rules Engine
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
68. Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
Apache ServiceMix,
Talend ESB,
NServiceBus, etc. Middleware Product
VS Integration
IBM Message Broker, Business Process Management
IBM ESB, Oracle ESB, Business Activity Monitoring
Windows Azure Registry / Repository
Service Bus, etc. Rules Engine
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
74. ESB Characteristics (compared to Integration Frameworks)
• Integrate everything (as with an integration framework)
• Unified solution (not just integration)
• Standalone product
• More power (and therefore higher complexity)
• Visual designer („zero coding“ and not just for developers)
• Less flexibility / extensibility *
• Money *
* proprietary products
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
75. Recommendation
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
76. Recommendation
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
KISS
(„Keep it simple, stupid!“)
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
77. Did you get the Key Message?
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
78. Key Messages
The Cloud already arrived, and must be integrated!
Cloud Integration is already possible!
Different APIs, Frameworks and Products help a lot!
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
79. Did you get the Key Message?
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
80. Thank you for your Attention. Any Questions?
Kai Wähner
MaibornWolff et al: www.mwea.de
Email: kontakt@kai-waehner.de
Twitter: @KaiWaehner
Blog: www.kai-waehner.de/blog
Social Network: Xing, LinkedIn
www.mwea.de Systems Integration in the Cloud Era - Kai Wähner