![Page 1: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/1.jpg)
www.mwea.de
Systems Integration in the Cloud Era
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 2: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/2.jpg)
www.mwea.de
Kai Wähner
Consulting Developing Speaking Coaching
Writing
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
Contact Email: [email protected] Blog: www.kai-waehner.de/blog
Twitter: @KaiWaehner Social Networks: Xing, LinkedIn
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 3: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/3.jpg)
www.mwea.de
What is the Problem?
• Applications
• Interfaces
• Technologies
• Products
Growth
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 4: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/4.jpg)
www.mwea.de
A new Era: Cloud Computing
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 5: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/5.jpg)
www.mwea.de
Solution: Systems Integration
All Roads lead to Rome ...
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 6: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/6.jpg)
www.mwea.de
Wishes
• Standardized Modeling • Efficient Realization • Automatic Testing
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 7: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/7.jpg)
www.mwea.de
Systems Integration in the Cloud Era
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 8: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/8.jpg)
www.mwea.de
What is the Key Message?
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 9: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/9.jpg)
www.mwea.de
Key Messages
The Cloud already arrived, and must be integrated!
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 10: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/10.jpg)
www.mwea.de
Key Messages
The Cloud already arrived, and must be integrated!
Cloud Integration is already possible!
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 11: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/11.jpg)
www.mwea.de
Key Messages
The Cloud already arrived, and must be integrated!
Cloud Integration is already possible!
Apache Camel helps a lot!
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 12: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/12.jpg)
www.mwea.de
Agenda
1) Introduction to Cloud Computing
2) Introduction to Apache Camel
3) IaaS Integration (Amazon Web Services)
4) PaaS Integration (Google App Engine)
5) SaaS Integration (Salesforce)
6) Custom Cloud Components
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 13: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/13.jpg)
www.mwea.de
Agenda
1) Introduction to Cloud Computing
2) Introduction to Apache Camel
3) IaaS Integration (Amazon Web Services)
4) PaaS Integration (Google App Engine)
5) SaaS Integration (Salesforce)
6) Custom Cloud Components
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 14: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/14.jpg)
www.mwea.de
Cloud Computing
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
Organisation has control
Control is shared
Vendor has control
Software as a Service
(SaaS) On Premise On Premise
hosted
Infrastructure as a Service
(IaaS)
Platform as a Service
(PaaS)
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 15: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/15.jpg)
www.mwea.de
Every Vendor offers Cloud Products
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 16: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/16.jpg)
www.mwea.de
Agenda
1) Introduction to Cloud Computing
2) Introduction to Apache Camel
3) IaaS Integration (Amazon Web Services)
4) PaaS Integration (Google App Engine)
5) SaaS Integration (Salesforce)
6) Custom Cloud Components
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 17: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/17.jpg)
www.mwea.de
Alternatives for Systems Integration
Complexity of Integration
Low High
Integration Framework
Enterprise Service Bus (ESB)
API
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 18: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/18.jpg)
www.mwea.de
Alternatives for Systems Integration
Complexity of Integration
Low High
Integration Framework
Enterprise Service Bus (ESB)
Apache Camel vs. Spring Integration vs. Mule http://www.kai-waehner.de/blog/2012/01/10/spoilt-for-choice-which-integration-framework-to-use-spring-integration-mule-esb-or-apache-camel/
API
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 19: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/19.jpg)
www.mwea.de
Enterprise Integration Patterns (EIP)
Apache Camel Implements the EIPs
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 20: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/20.jpg)
www.mwea.de
Enterprise Integration Patterns (EIP)
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 21: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/21.jpg)
www.mwea.de
Enterprise Integration Patterns (EIP)
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 22: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/22.jpg)
www.mwea.de
Architecture
http://java.dzone.com/articles/apache-camel-integration
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 23: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/23.jpg)
www.mwea.de
Choose your favorite DSL
XML
(not production-ready yet)
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 24: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/24.jpg)
www.mwea.de
Choose your required Components
HTTP
FTP
File
XSLT
MQ
JDBC
Akka
TCP SMTP
RSS Quartz
Log
LDAP
JMS
EJB
AMQP
Atom AWS-S3
Bean-Validation
CXF
IRC
Jetty
JMX
Lucene
Netty
RMI
SQL
Many many more Custom Components
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 25: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/25.jpg)
www.mwea.de
Deploy it wherever you need
Standalone
OSGi
Application Server
Web Container
Spring Container
Cloud
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 26: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/26.jpg)
www.mwea.de
Enterprise-ready
• Open Source • Scalability • Error Handling • Transaction • Monitoring • Tooling • Commercial Support
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 27: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/27.jpg)
www.mwea.de
Live Demo
Apache Camel in Action
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 28: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/28.jpg)
www.mwea.de
Agenda
1) Introduction to Cloud Computing
2) Introduction to Apache Camel
3) IaaS Integration (Amazon Web Services)
4) PaaS Integration (Google App Engine)
5) SaaS Integration (Salesforce)
6) Custom Cloud Components
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 29: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/29.jpg)
www.mwea.de
Cloud Computing
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
Organisation has control
Control is shared
Vendor has control
Software as a Service
(SaaS) On Premise On Premise
hosted
Infrastructure as a Service
(IaaS)
Platform as a Service
(PaaS)
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 30: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/30.jpg)
www.mwea.de
Infrastructure as a Service (IaaS)
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 31: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/31.jpg)
www.mwea.de
IaaS Concepts (Example: 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 ...
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 32: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/32.jpg)
www.mwea.de
Code Example - AWS S3 (Java API)
AmazonS3 s3 = new AmazonS3Client(new PropertiesCredentials( S3Sample.class.getResourceAsStream("AwsCredentials.properties")));
String bucketName = "my-first-s3-bucket-" + UUID.randomUUID(); String key = "MyObjectKey";
try {
s3.createBucket(bucketName); s3.putObject(new PutObjectRequest(bucketName, key, createSampleFile()));
S3Object object = s3.getObject(new GetObjectRequest(bucketName, key));
ObjectListing objectListing = s3.listObjects(new ListObjectsRequest() .withBucketName(bucketName) .withPrefix("My"));
s3.deleteObject(bucketName, key); s3.deleteBucket(bucketName);
} catch (AmazonServiceException ase) { // error handling... } catch (AmazonClientException ace) { // error handling... }
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 33: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/33.jpg)
www.mwea.de
Code Example - Camel AWS Component
// Producer from("direct:startToS3") .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")
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 34: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/34.jpg)
www.mwea.de
Live Demo
IaaS Integration in Action
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 35: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/35.jpg)
www.mwea.de
Agenda
1) Introduction to Cloud Computing
2) Introduction to Apache Camel
3) IaaS Integration (Amazon Web Services)
4) PaaS Integration (Google App Engine)
5) SaaS Integration (Salesforce)
6) Custom Cloud Components
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 36: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/36.jpg)
www.mwea.de
Cloud Computing
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
Organisation has control
Control is shared
Vendor has control
Software as a Service
(SaaS) On Premise On Premise
hosted
Infrastructure as a Service
(IaaS)
Platform as a Service
(PaaS)
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 37: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/37.jpg)
www.mwea.de
Platform as a Service (PaaS)
Elastic Beanstalk
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 38: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/38.jpg)
www.mwea.de
PaaS Conepts (Example: 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
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 39: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/39.jpg)
www.mwea.de
Hint
Google App Engine is a complex scenario for Apache Camel (and most other applications) due to its many restrictions!
Other „more open“ PaaS solutions such as OpenShift or Heroku are easier to use and integrate...
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 40: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/40.jpg)
www.mwea.de
Code Example - 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);
} } }
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 41: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/41.jpg)
www.mwea.de
Code Example – Camel GAE Component
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 42: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/42.jpg)
www.mwea.de
Code Example – Camel GAE Component
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 43: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/43.jpg)
www.mwea.de
Live Demo
PaaS Integration in Action
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 44: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/44.jpg)
www.mwea.de
Agenda
1) Introduction to Cloud Computing
2) Introduction to Apache Camel
3) IaaS Integration (Amazon Web Services)
4) PaaS Integration (Google App Engine)
5) SaaS Integration (Salesforce)
6) Custom Cloud Components
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 45: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/45.jpg)
www.mwea.de
Cloud Computing
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
App
VM
Network
Server
Storage
Organisation has control
Control is shared
Vendor has control
Software as a Service
(SaaS) On Premise On Premise
hosted
Infrastructure as a Service
(IaaS)
Platform as a Service
(PaaS)
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 46: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/46.jpg)
www.mwea.de
Software as a Service (SaaS)
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 47: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/47.jpg)
www.mwea.de
SaaS Concepts (Example: Salesforce)
Apex Visualforce
REST SOAP
Client APIs (Java, etc.)
Software (CRM) Sales Service Social Data.com AppExchange ... more ...
Development Online-Development (even the Compiler is in the Cloud!) Own Addons Force.com (PaaS) Integration of Interfaces
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 48: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/48.jpg)
www.mwea.de
Code Example – 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 ...
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 49: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/49.jpg)
www.mwea.de
Code Example – Camel Salesforce Component
// Producer from("direct:toSalesforce“) .to("salesforce://Article__c?user=u&password=p&item=myItem");
// Consumer from("salesforce://Article__c?user=u&password=p") .to("mock:fromSalesforce");
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 50: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/50.jpg)
www.mwea.de
Live Demo
SaaS Integration in Action
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 51: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/51.jpg)
www.mwea.de
Agenda
1) Introduction to Cloud Computing
2) Introduction to Apache Camel
3) IaaS Integration (Amazon Web Services)
4) PaaS Integration (Google App Engine)
5) SaaS Integration (Salesforce)
6) Custom Cloud Components
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 52: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/52.jpg)
www.mwea.de
Custom Cloud Components
Component
Endpoint
Producer Consumer
Creates
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 53: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/53.jpg)
www.mwea.de
Live Demo
Custom Cloud Component in Action
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 54: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/54.jpg)
www.mwea.de
Alternative for Custom Cloud Components
• SOAP • REST
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 55: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/55.jpg)
www.mwea.de
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")
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 56: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/56.jpg)
www.mwea.de
Live Demo
Cloud Integration via REST in Action
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 57: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/57.jpg)
www.mwea.de
Did you get the Key Message?
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 58: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/58.jpg)
www.mwea.de
Key Messages
The Cloud already arrived, and must be integrated!
Cloud Integration is already possible!
Apache Camel helps a lot!
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 59: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/59.jpg)
www.mwea.de
Did you get the Key Message?
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 60: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/60.jpg)
www.mwea.de
Whet your Appetite?
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 61: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/61.jpg)
www.mwea.de
Become a Part of the Open Source Community
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
![Page 62: Next Generation – Systems Integration in the Cloud Era with Apache Camel - JavaOne 2012](https://reader034.vdocuments.net/reader034/viewer/2022042814/554ea2a5b4c905977e8b471a/html5/thumbnails/62.jpg)
www.mwea.de
Thank you for your attention... Questions?
"Systems Integration in the Cloud Era with Apache Camel" by Kai Wähner --- JavaOne 2012
Contact
MaibornWolff et al GmbH Theresienhöhe 13 D-80339 München
Mobile +49 151 544 277 88 Email [email protected] Twitter @KaiWaehner
Kai Wähner IT Consultant