Systems Integration in the Cloud Era - API vs. Integration Framework vs. Enterprise Service Bus (ESB)

6,185 views
6,061 views

Published on

Published in: Technology, Business

Systems Integration in the Cloud Era - API vs. Integration Framework vs. Enterprise Service Bus (ESB)

  1. 1. Systems Integration in the Cloud Erawww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  2. 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 Writingwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  3. 3. What is the Problem? Growth •  Applications •  Interfaces •  Technologies •  Productswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  4. 4. A new Era: Cloud Computingwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  5. 5. Solution: Systems Integration All Roads lead to Rome ...www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  6. 6. Wishes •  Standardized Modeling •  Efficient Realization •  Automatic Testingwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  7. 7. Systems Integration in the Cloud Erawww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  8. 8. What is the Key Message?www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  9. 9. Key Messages The Cloud already arrived, and must be integrated!www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  10. 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. 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. 12. Agenda 1) Introduction to Cloud Computing 2) Alternatives for Systems Integration 3) API 4) Integration Framework 5) Enterprise Service Buswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  13. 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 Buswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  14. 14. Agenda 1) Introduction to Cloud Computing 2) Alternatives for Systems Integration 3) API 4) Integration Framework 5) Enterprise Service Buswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  15. 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 controlwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  16. 16. Every Vendor offers Cloud Productswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  17. 17. IaaS Exampleswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  18. 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. 19. PaaS Examples Elastic Beanstalkwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  20. 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 SQLwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  21. 21. SaaS Exampleswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  22. 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. 23. Agenda 1) Introduction to Cloud Computing 2) Alternatives for Systems Integration 3) API 4) Integration Framework 5) Enterprise Service Buswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  24. 24. Enterprise Integration Patterns (EIP)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  25. 25. Enterprise Integration Patterns (EIP)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  26. 26. Enterprise Integration Patterns (EIP)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  27. 27. Systems Integration in the Cloud Erawww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  28. 28. Alternatives for Systems Integration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low Highwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  29. 29. Agenda 1) Introduction to Cloud Computing 2) Alternatives for Systems Integration 3) API 4) Integration Framework 5) Enterprise Service Buswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  30. 30. Alternatives for Systems Integration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low Highwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  31. 31. Alternatives for Systems Integration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High API Proprietary REST Service SOAP Servicewww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  32. 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 APIswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  33. 33. Systems Integration in the Cloud Era APIwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  34. 34. APIs Vendor APIswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  35. 35. IaaS - 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... }www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  36. 36. IaaS - AWS S3 (Ruby API)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  37. 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. 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. 39. IaaS – Microsoft Azure NoSQL Table Storage (C# API)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  40. 40. APIs REST / SOAP APIswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  41. 41. SaaS – Salesforce (REST API) •  SOAP •  RESTwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  42. 42. SaaS – Salesforce (REST API) •  SOAP •  RESTwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  43. 43. APIs Generic APIswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  44. 44. jClouds (Generic API) Generic API for IaaSwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  45. 45. jClouds (Generic API) Compute API Blobstore APIwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  46. 46. jClouds (Generic API) Several different Cloud providers supportedwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  47. 47. jClouds (Generic API) – AWS S3 Blobstore (Java)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  48. 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. 49. Agenda 1) Introduction to Cloud Computing 2) Alternatives for Systems Integration 3) API 4) Integration Framework 5) Enterprise Service Buswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  50. 50. Alternatives for Systems Integration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low Highwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  51. 51. Alternatives for Systems Integration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High Integration Connectivity Routing Transformationwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  52. 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 NIntegratewww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  53. 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. 54. Deployment Standalone Application Server Web Container Cloudwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  55. 55. Systems Integration in the Cloud Era Integration Frameworkwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  56. 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. 57. A more complex route with different Cloud serviceswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  58. 58. Code Example – Mule (XML)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  59. 59. Code Example – NServiceBus (.NET Open Source)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  60. 60. Code Example – Camel GAE Component (Java DSL)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  61. 61. Custom Cloud Components Component Creates Endpoint Consumer Producerwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  62. 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. 63. Alternative for Custom Cloud Components •  SOAP •  RESTwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  64. 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. 65. Agenda 1) Introduction to Cloud Computing 2) Alternatives for Systems Integration 3) API 4) Integration Framework 5) Enterprise Service Buswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  66. 66. Alternatives for Systems Integration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low Highwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  67. 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 Enginewww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  68. 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 Enginewww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  69. 69. Oracle (Proprietary)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  70. 70. Talend (Open Source)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  71. 71. Systems Integration in the Cloud Era ESBwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  72. 72. Oracle (Proprietary)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  73. 73. Talend (Open Source)www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  74. 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 productswww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  75. 75. Recommendation Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low Highwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  76. 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. 77. Did you get the Key Message?www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  78. 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. 79. Did you get the Key Message?www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  80. 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, LinkedInwww.mwea.de Systems Integration in the Cloud Era - Kai Wähner

×