Your SlideShare is downloading. ×
0
Systems Integration in the Cloud EraKai Wähner, MaibornWolff et al GmbH
Kai Wähner (MaibornWolff et al GmbH, Munich, Germany)                                            Main Tasks               ...
What is the Problem?                       Growth                       •  Applications                       •  Interface...
A new Era: Cloud Computing
Solution: Systems Integration                                All Roads lead                                  to Rome ...
Wishes         •  Standardized Modeling         •  Efficient Realization         •  Automatic Testing
Systems Integration in the Cloud Era
What is the Key Message?
Key MessagesThe Cloud already arrived, and must be integrated!
Key MessagesThe Cloud already arrived, and must be integrated!Cloud Integration is already possible!
Key MessagesThe Cloud already arrived, and must be integrated!Cloud Integration is already possible!Apache Camel helps a l...
Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS In...
Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS In...
Cloud Computing                              Infrastructure#     PlaCorm#        So;ware#                On#Premise#On#Pre...
Every Vendor offers Cloud Products
Upcoming Procedure• Overview of Alternatives• Concepts of chosen Product• Code Example• Live Demo
Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS In...
Alternatives for Systems Integration                                 Enterprise*Service*Bus*(ESB)*               Integra(o...
Alternatives for Systems Integration                                                                   Enterprise*Service*...
Enterprise Integration Patterns (EIP)                                    Apache Camel                                  Imp...
Enterprise Integration Patterns (EIP)
Enterprise Integration Patterns (EIP)
Apache Camel               h>p://java.dzone.com/ar(cles/apacheAcamelAintegra(on*
Choose your favorite DSL                           XML#
Choose your required Components                    TCP*SQL*                                                   SMTP*       ...
Deploy it wherever you needStandalone                     Application Server           Web Container                      ...
Enterprise-ready
Live Demo            Apache Camel in Action
Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS In...
Cloud Computing                              Infrastructure#     PlaCorm#        So;ware#                On#Premise#On#Pre...
IaaS Overview
IaaS Concepts                Compute                Amazon Elastic Compute Cloud (EC2)                Amazon Elastic MapRe...
Code Example - AWS S3 (Java API)     AmazonS3*s3*=*new*AmazonS3Client(new*Proper(esCreden(als(*     ********S3Sample.class...
Code Example - Camel AWS Component// Producerfrom("direct:startToS3")   .setHeader(S3Constants.KEY, simple(“order.txt"))  ...
Live Demo            IaaS Integration in Action
Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS In...
Cloud Computing                              Infrastructure#     PlaCorm#        So;ware#                On#Premise#On#Pre...
PaaS OverviewElastic Beanstalk
PaaS Concepts                Application Deployment                Easy Deployment                Automatic Scaling       ...
Hint       Google*App*Engine*       is*a*complex*scenario*for*Apache*Camel*       due*to*its*many*restric(ons!*       Othe...
Code Example - Google App Engine (Java API)  public*class*GAEJCreateTaskServlet*extends*HLpServlet#{*        *public*void*...
Code Example – Camel GAE Component
Code Example – Camel GAE Component
Live Demo            PaaS Integration in Action
Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS In...
Cloud Computing                              Infrastructure#     PlaCorm#        So;ware#                On#Premise#On#Pre...
SaaS Overview
SaaS Concepts                           Software (CRM)                           Sales                           Service  ...
Code Example – Salesforce (Java API)          ConnectorConfig#config*=*new*ConnectorConfig();*          ******config.setUserna...
Code Example – Camel Salesforce Component // Producer  from("direct:toSalesforce“)  .to("salesforce://Article__c?user=myUs...
Live Demo            SaaS Integration in Action
Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS In...
Custom Cloud Components                                      Component#                                            Creates...
Live Demo            Custom Cloud Component in Action
Alternative for Custom Cloud Components                                          •  SOAP                                  ...
Code Example – Salesforce REST (HTTP)// Salesforce Query (SOQL) via REST APIfrom("direct:salesforceViaHttpLIST")  .setHead...
Live Demo            Cloud Integration via REST in Action
Did you get the Key Message?
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?
Whet your Appetite?
Become a Part of the Open Source Community
Thank you for your Attention. Any Questions?                                          Kai Wähner   MaibornWolff et al: ww...
Upcoming SlideShare
Loading in...5
×

2012 05 confess_camel_cloud_integration

1,956

Published on

Presentation from Java Conference Confess_2012 in Leogang, Salzburg (Austria)

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,956
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
34
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "2012 05 confess_camel_cloud_integration"

  1. 1. Systems Integration in the Cloud EraKai Wähner, MaibornWolff et al GmbH
  2. 2. Kai Wähner (MaibornWolff et al GmbH, Munich, Germany) 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 Consulting Contact Developing Email: kai.waehner@mwea.de Speaking Blog: www.kai-waehner.de/blog Coaching Twitter: @KaiWaehner Writing Social Networks: Xing, LinkedIn
  3. 3. What is the Problem? Growth •  Applications •  Interfaces •  Technologies •  Products
  4. 4. A new Era: Cloud Computing
  5. 5. Solution: Systems Integration All Roads lead to Rome ...
  6. 6. Wishes •  Standardized Modeling •  Efficient Realization •  Automatic Testing
  7. 7. Systems Integration in the Cloud Era
  8. 8. What is the Key Message?
  9. 9. Key MessagesThe Cloud already arrived, and must be integrated!
  10. 10. Key MessagesThe Cloud already arrived, and must be integrated!Cloud Integration is already possible!
  11. 11. Key MessagesThe Cloud already arrived, and must be integrated!Cloud Integration is already possible!Apache Camel helps a lot!
  12. 12. Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS Integration (Google App Engine)5) SaaS Integration (Salesforce)6) Custom Cloud Components
  13. 13. Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS Integration (Google App Engine)5) SaaS Integration (Salesforce)6) Custom Cloud Components
  14. 14. Cloud Computing Infrastructure# PlaCorm# So;ware# 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#Organisa5on# Control## Vendor# has#control# is#shared# has#control#
  15. 15. Every Vendor offers Cloud Products
  16. 16. Upcoming Procedure• Overview of Alternatives• Concepts of chosen Product• Code Example• Live Demo
  17. 17. Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS Integration (Google App Engine)5) SaaS Integration (Salesforce)6) Custom Cloud Components
  18. 18. Alternatives for Systems Integration Enterprise*Service*Bus*(ESB)* Integra(on*No+Tool+ Framework* Complexity+ of+Integra2on+Low+ High+
  19. 19. Alternatives for Systems Integration Enterprise*Service*Bus*(ESB)* Integra(on*No+Tool+ Framework* Complexity+ of+Integra2on+Low+ High+ Apache#Camel*vs.*Spring*Integra(on*vs.*Mule*ESB# h>p://www.kaiAwaehner.de/blog/2012/01/10/spoiltAforAchoiceAwhichAintegra(onAframeworkAtoAuseAspringAintegra(onAmuleAesbAorAapacheAcamel/*
  20. 20. Enterprise Integration Patterns (EIP) Apache Camel Implements the EIPs
  21. 21. Enterprise Integration Patterns (EIP)
  22. 22. Enterprise Integration Patterns (EIP)
  23. 23. Apache Camel h>p://java.dzone.com/ar(cles/apacheAcamelAintegra(on*
  24. 24. Choose your favorite DSL XML#
  25. 25. Choose your required Components TCP*SQL* SMTP* JMS* Netty* Jetty* RMI* FTP* Lucene* JDBC EJB* Bean-Validation* MQ* IRC* JMX* Quartz* RSS* AMQP* Atom* Log* AWS-S3* HTTP* XSLT* LDAP*File* Akka* Many many more* CXF* Custom Components
  26. 26. Deploy it wherever you needStandalone Application Server Web Container Spring Container OSGi Cloud
  27. 27. Enterprise-ready
  28. 28. Live Demo Apache Camel in Action
  29. 29. Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS Integration (Google App Engine)5) SaaS Integration (Salesforce)6) Custom Cloud Components
  30. 30. Cloud Computing Infrastructure# PlaCorm# So;ware# 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#Organisa5on# Control## Vendor# has#control# is#shared# has#control#
  31. 31. IaaS Overview
  32. 32. IaaS Concepts 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 ...
  33. 33. Code Example - AWS S3 (Java API) AmazonS3*s3*=*new*AmazonS3Client(new*Proper(esCreden(als(* ********S3Sample.class.getResourceAsStream("AwsCreden(als.proper(es")));* String*bucketName#=*"myAfirstAs3AbucketA"*+*UUID.randomUUID();* String*key*=*"MyObjectKey";* try*{* ****s3.createBucket(bucketName);* ****s3.putObject(new*PutObjectRequest(bucketName,*key,*createSampleFile()));* ****S3Object*object*=*s3.getObject(new*GetObjectRequest(bucketName,*key));* ****ObjectLis(ng*objectLis(ng*=*s3.listObjects(new*ListObjectsRequest()* ************.withBucketName(bucketName)* ************.withPrefix("My"));* ****s3.deleteObject(bucketName,*key);*** ****s3.deleteBucket(bucketName);* }*catch*(AmazonServiceExcep(on*ase)*{* ***//*error*handling...* }*catch*(AmazonClientExcep(on*ace)*{* ***//*error*handling...**** }*
  34. 34. Code Example - Camel AWS Component// Producerfrom("direct:startToS3") .setHeader(S3Constants.KEY, simple(“order.txt")) .to("aws-s3://myBucket?accessKey=" + myAccessKey + "&secretKey= " + mySecretKey)// Consumerfrom("aws-s3://myBucket?accessKey=“myAccessKey + "&secretKey=" + mySecretKey) .to("log:S3logging")
  35. 35. Live Demo IaaS Integration in Action
  36. 36. Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS Integration (Google App Engine)5) SaaS Integration (Salesforce)6) Custom Cloud Components
  37. 37. Cloud Computing Infrastructure# PlaCorm# So;ware# 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#Organisa5on# Control## Vendor# has#control# is#shared# has#control#
  38. 38. PaaS OverviewElastic Beanstalk
  39. 39. PaaS Concepts 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
  40. 40. Hint Google*App*Engine* is*a*complex*scenario*for*Apache*Camel* due*to*its*many*restric(ons!* Other*„more*open“*PaaS*solu(ons** such*as*OpenShid*or*Heroku* are*easier*to*use*...*
  41. 41. Code Example - Google App Engine (Java API) public*class*GAEJCreateTaskServlet*extends*HLpServlet#{* *public*void*doGet(H>pServletRequest*req,*H>pServletResponse*resp)*throws*IOExcep(on*{* *String*strCallResult*=*"";* *resp.setContentType("text/plain");* *try*{* * *String*strEmailId*=*req.getParameter("emailid");* * *if*(strEmailId*==*null)*throw*new*Excep(on*("Email*Id*field*cannot*be*empty.");* * *strEmailId*=*strEmailId.trim();* * *if*(strEmailId.length()*==*0)*throw*new*Excep(on("Email*Id*field*cannot*be*empty.");* * *Queue#queue#=#QueueFactory.getQueue("subscrip5onUqueue");# * *queue.add(TaskOp5ons.Builder.url(“/signupsubscriber").param("emailid",strEmailId));# * *strCallResult*=*"Successfully*created*a*Task*in*the*Queue";* * *resp.getWriter().println(strCallResult);* * *}* *catch*(Excep(on*ex)*{* * *strCallResult*=*"Fail:*"*+*ex.getMessage();* * *resp.getWriter().println(strCallResult);* }**}*}*
  42. 42. Code Example – Camel GAE Component
  43. 43. Code Example – Camel GAE Component
  44. 44. Live Demo PaaS Integration in Action
  45. 45. Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS Integration (Google App Engine)5) SaaS Integration (Salesforce)6) Custom Cloud Components
  46. 46. Cloud Computing Infrastructure# PlaCorm# So;ware# 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#Organisa5on# Control## Vendor# has#control# is#shared# has#control#
  47. 47. SaaS Overview
  48. 48. SaaS Concepts 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 SOAPClient APIs (Java, etc.)
  49. 49. Code Example – Salesforce (Java API) ConnectorConfig#config*=*new*ConnectorConfig();* ******config.setUsername(userId);* ******config.setPassword(passwd);* ******config.setAuthEndpoint(authEndPoint);* ******connec(on*=*new*EnterpriseConnec5on(config);* ******GetUserInfoResult#userInfo#=#connec5on.getUserInfo();# ******System.out.println("User*Full*Name:*"*+*userInfo.getUserFullName());* ***QueryResult#qResult*=*null;* ***String*soqlQuery#=*"SELECT*FirstName,*LastName*FROM*Contact";*//*SOQL# ***qResult*=#connec5on.query(soqlQuery);# ***boolean*done*=*false;* ***if*(qResult.getSize()*>*0)*{* *****System.out.println("LoggedAin*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*...*
  50. 50. Code Example – Camel Salesforce Component // Producer from("direct:toSalesforce“) .to("salesforce://Article__c?user=myUser&password=myPasswordj&item=myItem"); // Consumer from("salesforce://Article__c?user=myUser&password=myPassword") .to("mock:fromSalesforce");
  51. 51. Live Demo SaaS Integration in Action
  52. 52. Agenda1) Introduction to Cloud Computing2) Introduction to Apache Camel3) IaaS Integration (Amazon Web Services)4) PaaS Integration (Google App Engine)5) SaaS Integration (Salesforce)6) Custom Cloud Components
  53. 53. Custom Cloud Components Component# Creates Endpoint# Consumer# Producer#
  54. 54. Live Demo Custom Cloud Component in Action
  55. 55. Alternative for Custom Cloud Components •  SOAP •  REST
  56. 56. 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")
  57. 57. Live Demo Cloud Integration via REST in Action
  58. 58. Did you get the Key Message?
  59. 59. Key MessagesThe Cloud already arrived, and must be integrated!Cloud Integration is already possible!Apache Camel helps a lot!
  60. 60. Did you get the Key Message?
  61. 61. Whet your Appetite?
  62. 62. Become a Part of the Open Source Community
  63. 63. Thank you for your Attention. Any Questions?  Kai Wähner MaibornWolff et al: www.mwea.de Email: kai.waehner@mwea.de Twitter: @KaiWaehner Blog: www.kai-waehner.de/blog Social: LinkedIn / Xing
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×