Systems Integration in the Cloud Era                 with Apache Camel               Kai Wähner, Principal Consultant
Kai Wähner                                            Main Tasks                                      Requirements Enginee...
What is the Problem?                       Growth                       •  Applications                       •  Interface...
A new Era: Cloud Computing© Talend 2011                4
Solution: Systems Integration                                All Roads lead                                  to Rome ...© ...
Wishes                •  Standardized Modeling                •  Efficient Realization                •  Automatic Testing...
Systems Integration in the Cloud Era© Talend 2011                          7
What is the Key Message?© Talend 2011              8
Key MessagesThe Cloud already arrived, and must be integrated!© Talend 2011                                        9
Key MessagesThe Cloud already arrived, and must be integrated!Cloud Integration is already possible!© Talend 2011         ...
Key MessagesThe Cloud already arrived, and must be integrated!Cloud Integration is already possible!Apache Camel helps a l...
Agenda     1) Introduction to Cloud Computing     2) Introduction to Apache Camel     3) IaaS Integration (Amazon Web Serv...
Agenda     1) Introduction to Cloud Computing     2) Introduction to Apache Camel     3) IaaS Integration (Amazon Web Serv...
Cloud Computing                              Infrastructure    Platform       Software                 On Premise   On Pre...
Every Vendor offers Cloud Products© Talend 2011                        15
Agenda     1) Introduction to Cloud Computing     2) Introduction to Apache Camel     3) IaaS Integration (Amazon Web Serv...
Alternatives for Systems Integration                                  Enterprise Service Bus                Integration   ...
Alternatives for Systems Integration                                                                             Enterpris...
Enterprise Integration Patterns (EIP)                               Apache Camel                             Implements th...
Enterprise Integration Patterns (EIP)© Talend 2011                           20
Enterprise Integration Patterns (EIP)© Talend 2011                           21
Architecture                http://java.dzone.com/articles/apache-camel-integration© Talend 2011                          ...
Choose your favorite DSL                           XML                             (not production-ready yet)© Talend 2011...
Choose your required Components                      TCPSQL                                                      SMTP     ...
Deploy it wherever you needStandalone                    Application Server                Web Container                  ...
Enterprise-ready                   •  Open Source                   •  Scalability                   •  Error Handling    ...
Live Demo                Apache Camel in Action© Talend 2011                            27
Agenda     1) Introduction to Cloud Computing     2) Introduction to Apache Camel     3) IaaS Integration (Amazon Web Serv...
Cloud Computing                              Infrastructure    Platform       Software                 On Premise   On Pre...
Infrastructure as a Service (IaaS)© Talend 2011                        30
IaaS Concepts (Example: AWS)                               Compute                               Amazon Elastic Compute Cl...
Code Example - AWS S3 (Java API)                AmazonS3 s3 = new AmazonS3Client(new PropertiesCredentials(               ...
Code Example - Camel AWS Component// Producerfrom("direct:startToS3")   .setHeader(S3Constants.KEY, simple(“order.txt"))  ...
Live Demo                IaaS Integration in Action© Talend 2011                                34
Agenda     1) Introduction to Cloud Computing     2) Introduction to Apache Camel     3) IaaS Integration (Amazon Web Serv...
Cloud Computing                              Infrastructure    Platform       Software                 On Premise   On Pre...
Platform as a Service (PaaS)  Elastic Beanstalk© Talend 2011                  37
PaaS Concepts (Example: GAE)                               Application Deployment                               Easy Deplo...
Hint                Google App Engine is a complex                scenario due to its many restrictions!                Ot...
Code Example - Google App Engine (Java API)         public class GAEJCreateTaskServlet extends HttpServlet {              ...
Code Example – Camel GAE Component© Talend 2011                        41
Code Example – Camel GAE Component© Talend 2011                        42
Live Demo                PaaS Integration in Action© Talend 2011                                43
Agenda     1) Introduction to Cloud Computing     2) Introduction to Apache Camel     3) IaaS Integration (Amazon Web Serv...
Cloud Computing                               Infrastructure    Platform       Software                  On Premise    On ...
Software as a Service (SaaS)© Talend 2011                  46
SaaS Concepts (Example: Salesforce)                                  Software (CRM)                                  Sales...
Code Example – Salesforce (Java API)                ConnectorConfig config = new ConnectorConfig();                   conf...
Code Example – Camel Salesforce Component// Producer from("direct:toSalesforce“) .to("salesforce://Article__c?user=u&passw...
Live Demo                SaaS Integration in Action© Talend 2011                                50
Agenda     1) Introduction to Cloud Computing     2) Introduction to Apache Camel     3) IaaS Integration (Amazon Web Serv...
Custom Cloud Components                                     Component                                          Creates    ...
Live Demo                Custom Cloud Component in Action© Talend 2011                                      53
Alternative for Custom Cloud Components                                          •  SOAP                                  ...
Code Example – Salesforce REST (HTTP)// Salesforce Query (SOQL) via REST APIfrom("direct:salesforceViaHttpLIST")       .se...
Live Demo                Cloud Integration via REST in Action© Talend 2011                                          56
Did you get the Key Message?© Talend 2011                  57
Key MessagesThe Cloud already arrived, and must be integrated!Cloud Integration is already possible!Apache Camel helps a l...
Did you get the Key Message?© Talend 2011                  59
Whet your Appetite?© Talend 2011         60
Thank you for your attention. Questions?                 kwaehner@talend.com                  0049 / 154 19 260 34        ...
Prochain SlideShare
Chargement dans... 5
×

Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012

5,508

Published on

Shows the elegance of Apache Camel to integrate different cloud providers such as Amazon Web Services (IaaS), Google App Engine (PaaS), or Salesforce (SaaS).

Published in: Technologies
1 Comment
10 mentions J'aime
Statistiques
Remarques
Aucun téléchargement
Vues
Total des vues
5,508
Sur Slideshare
0
À partir des ajouts
0
Nombre d'ajouts
1
Actions
Partages
0
Téléchargements
0
Commentaires
1
J'aime
10
Ajouts 0
No embeds

No notes for slide

Transcript of "Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012"

  1. 1. Systems Integration in the Cloud Era with Apache Camel Kai Wähner, Principal Consultant
  2. 2. Kai Wähner Main Tasks Requirements Engineering Enterprise Architecture Management Business Process Management Architecture and Development of Applications Service-oriented Architecture Integration of Legacy Applications Cloud Computing Big Data Consulting Developing Contact Coaching Email: kwaehner@talend.com Speaking Writing Blog: www.kai-waehner.de/blog Twitter: @KaiWaehner Social Networks: Xing, LinkedIn© Talend 2011 2
  3. 3. What is the Problem? Growth •  Applications •  Interfaces •  Technologies •  Products© Talend 2011 3
  4. 4. A new Era: Cloud Computing© Talend 2011 4
  5. 5. Solution: Systems Integration All Roads lead to Rome ...© Talend 2011 5
  6. 6. Wishes •  Standardized Modeling •  Efficient Realization •  Automatic Testing© Talend 2011 6
  7. 7. Systems Integration in the Cloud Era© Talend 2011 7
  8. 8. What is the Key Message?© Talend 2011 8
  9. 9. Key MessagesThe Cloud already arrived, and must be integrated!© Talend 2011 9
  10. 10. Key MessagesThe Cloud already arrived, and must be integrated!Cloud Integration is already possible!© Talend 2011 10
  11. 11. Key MessagesThe Cloud already arrived, and must be integrated!Cloud Integration is already possible!Apache Camel helps a lot!© Talend 2011 11
  12. 12. 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© Talend 2011 12
  13. 13. 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© Talend 2011 13
  14. 14. 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© Talend 2011 14
  15. 15. Every Vendor offers Cloud Products© Talend 2011 15
  16. 16. 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© Talend 2011 16
  17. 17. Alternatives for Systems Integration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High© Talend 2011 17
  18. 18. Alternatives for Systems Integration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High Apache Camel vs. Spring Integration vs. Mulehttp://www.kai-waehner.de/blog/2012/01/10/spoilt-for-choice-which-integration-framework-to-use-spring-integration-mule-esb-or-apache-camel/ © Talend 2011 18
  19. 19. Enterprise Integration Patterns (EIP) Apache Camel Implements the EIPs© Talend 2011 19
  20. 20. Enterprise Integration Patterns (EIP)© Talend 2011 20
  21. 21. Enterprise Integration Patterns (EIP)© Talend 2011 21
  22. 22. Architecture http://java.dzone.com/articles/apache-camel-integration© Talend 2011 22
  23. 23. Choose your favorite DSL XML (not production-ready yet)© Talend 2011 23
  24. 24. Choose your required Components TCPSQL SMTP JMS Netty Jetty RMI FTP Lucene JDBC EJB Bean-Validation MQ IRC JMX Quartz RSS AMQP Atom Log AWS-S3 HTTP XSLT LDAPFile Akka Many many more CXF Custom Components© Talend 2011 24
  25. 25. Deploy it wherever you needStandalone Application Server Web Container Spring Container OSGi Cloud© Talend 2011 25
  26. 26. Enterprise-ready •  Open Source •  Scalability •  Error Handling •  Transaction •  Monitoring •  Tooling •  Commercial Support© Talend 2011 26
  27. 27. Live Demo Apache Camel in Action© Talend 2011 27
  28. 28. 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© Talend 2011 28
  29. 29. 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© Talend 2011 29
  30. 30. Infrastructure as a Service (IaaS)© Talend 2011 30
  31. 31. 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 ...© Talend 2011 31
  32. 32. 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... }© Talend 2011 32
  33. 33. Code Example - Camel AWS Component// Producerfrom("direct:startToS3") .setHeader(S3Constants.KEY, simple(“order.txt")) .to("aws-s3://myBucket?accessKey=" + a + "&secretKey= " + s)// Consumerfrom("aws-s3://myBucket?accessKey=“ + a + "&secretKey=" + s) .to("log:S3logging")© Talend 2011 33
  34. 34. Live Demo IaaS Integration in Action© Talend 2011 34
  35. 35. 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© Talend 2011 35
  36. 36. 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© Talend 2011 36
  37. 37. Platform as a Service (PaaS) Elastic Beanstalk© Talend 2011 37
  38. 38. PaaS Concepts (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© Talend 2011 Cloud SQL 38
  39. 39. Hint Google App Engine is a complex scenario due to its many restrictions! Other „more open“ PaaS solutions such as Jelastic or Amazon Beanstalk are easier to use and integrate...© Talend 2011 39
  40. 40. 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); } }}© Talend 2011 40
  41. 41. Code Example – Camel GAE Component© Talend 2011 41
  42. 42. Code Example – Camel GAE Component© Talend 2011 42
  43. 43. Live Demo PaaS Integration in Action© Talend 2011 43
  44. 44. 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© Talend 2011 44
  45. 45. 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© Talend 2011 45
  46. 46. Software as a Service (SaaS)© Talend 2011 46
  47. 47. SaaS Concepts (Example: 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.)© Talend 2011 47
  48. 48. 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();© Talend 2011 // ... more stuff here ... 48
  49. 49. 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");© Talend 2011 49
  50. 50. Live Demo SaaS Integration in Action© Talend 2011 50
  51. 51. 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© Talend 2011 51
  52. 52. Custom Cloud Components Component Creates Endpoint Consumer Producer© Talend 2011 52
  53. 53. Live Demo Custom Cloud Component in Action© Talend 2011 53
  54. 54. Alternative for Custom Cloud Components •  SOAP •  REST© Talend 2011 54
  55. 55. Code Example – Salesforce REST (HTTP)// Salesforce Query (SOQL) via REST APIfrom("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 APIfrom("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")© Talend 2011 55
  56. 56. Live Demo Cloud Integration via REST in Action© Talend 2011 56
  57. 57. Did you get the Key Message?© Talend 2011 57
  58. 58. Key MessagesThe Cloud already arrived, and must be integrated!Cloud Integration is already possible!Apache Camel helps a lot!© Talend 2011 58
  59. 59. Did you get the Key Message?© Talend 2011 59
  60. 60. Whet your Appetite?© Talend 2011 60
  61. 61. Thank you for your attention. Questions? kwaehner@talend.com 0049 / 154 19 260 34 www.kai-waehner.de LinkedIn / Xing @KaiWaehner

×