• Save
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 5,808 views

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

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

Statistics

Views

Total Views
5,808
Views on SlideShare
5,806
Embed Views
2

Actions

Likes
9
Downloads
0
Comments
1

2 Embeds 2

http://www.exquisitetweets.com 1
http://strategic-hr.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • Systems Integration in the Cloud Era with Apache Camel Kai Wähner, Principal Consultant
  • 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
  • What is the Problem? Growth •  Applications •  Interfaces •  Technologies •  Products© Talend 2011 3
  • A new Era: Cloud Computing© Talend 2011 4
  • Solution: Systems Integration All Roads lead to Rome ...© Talend 2011 5
  • Wishes •  Standardized Modeling •  Efficient Realization •  Automatic Testing© Talend 2011 6
  • 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 10
  • Key MessagesThe Cloud already arrived, and must be integrated!Cloud Integration is already possible!Apache Camel helps a lot!© Talend 2011 11
  • 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
  • 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
  • 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
  • Every Vendor offers Cloud Products© Talend 2011 15
  • 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
  • Alternatives for Systems Integration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High© Talend 2011 17
  • 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
  • Enterprise Integration Patterns (EIP) Apache Camel Implements the EIPs© Talend 2011 19
  • 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 22
  • Choose your favorite DSL XML (not production-ready yet)© Talend 2011 23
  • 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
  • Deploy it wherever you needStandalone Application Server Web Container Spring Container OSGi Cloud© Talend 2011 25
  • Enterprise-ready •  Open Source •  Scalability •  Error Handling •  Transaction •  Monitoring •  Tooling •  Commercial Support© Talend 2011 26
  • 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 Services) 4) PaaS Integration (Google App Engine) 5) SaaS Integration (Salesforce) 6) Custom Cloud Components© Talend 2011 28
  • 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
  • Infrastructure as a Service (IaaS)© Talend 2011 30
  • 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
  • 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
  • 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
  • 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 Services) 4) PaaS Integration (Google App Engine) 5) SaaS Integration (Salesforce) 6) Custom Cloud Components© Talend 2011 35
  • 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
  • Platform as a Service (PaaS) Elastic Beanstalk© Talend 2011 37
  • 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
  • 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
  • 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
  • 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 Services) 4) PaaS Integration (Google App Engine) 5) SaaS Integration (Salesforce) 6) Custom Cloud Components© Talend 2011 44
  • 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
  • Software as a Service (SaaS)© Talend 2011 46
  • 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
  • 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
  • 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
  • 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 Services) 4) PaaS Integration (Google App Engine) 5) SaaS Integration (Salesforce) 6) Custom Cloud Components© Talend 2011 51
  • Custom Cloud Components Component Creates Endpoint Consumer Producer© Talend 2011 52
  • Live Demo Custom Cloud Component in Action© Talend 2011 53
  • Alternative for Custom Cloud Components •  SOAP •  REST© Talend 2011 54
  • 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
  • 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 lot!© Talend 2011 58
  • 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 www.kai-waehner.de LinkedIn / Xing @KaiWaehner