Systems Integration in the Cloud Era




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
                Writing

www.mwea.de    Systems Integration in the Cloud Era - Kai Wähner
What is the Problem?




                                                                  Growth

                                                                  •  Applications
                                                                  •  Interfaces
                                                                  •  Technologies
                                                                  •  Products



www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
A new Era: Cloud Computing




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Solution: Systems Integration




                                                              All Roads lead
                                                                to Rome ...
www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Wishes




                                                          •  Standardized Modeling
                                                          •  Efficient Realization
                                                          •  Automatic Testing
www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Systems Integration in the Cloud Era




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
What is the Key Message?




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Key Messages




   The Cloud already arrived, and must be integrated!




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
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
Agenda



       1) Introduction to Cloud Computing


       2) Alternatives for Systems Integration


       3) API


       4) Integration Framework


       5) Enterprise Service Bus




www.mwea.de     Systems Integration in the Cloud Era - Kai Wähner
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 Bus




www.mwea.de     Systems Integration in the Cloud Era - Kai Wähner
Agenda



       1) Introduction to Cloud Computing


       2) Alternatives for Systems Integration


       3) API


       4) Integration Framework


       5) Enterprise Service Bus




www.mwea.de     Systems Integration in the Cloud Era - Kai Wähner
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




www.mwea.de         Systems Integration in the Cloud Era - Kai Wähner
Every Vendor offers Cloud Products




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
IaaS Examples




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
PaaS Examples




     Elastic Beanstalk




www.mwea.de    Systems Integration in the Cloud Era - Kai Wähner
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 SQL
www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
SaaS Examples




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
Agenda



       1) Introduction to Cloud Computing


       2) Alternatives for Systems Integration


       3) API


       4) Integration Framework


       5) Enterprise Service Bus




www.mwea.de     Systems Integration in the Cloud Era - Kai Wähner
Enterprise Integration Patterns (EIP)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Enterprise Integration Patterns (EIP)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Enterprise Integration Patterns (EIP)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Systems Integration in the Cloud Era




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Alternatives for Systems Integration




                                                                  Enterprise Service Bus
                              Integration                                  (ESB)
        API
                              Framework
                                                                                               Complexity
                                                                                              of Integration
   Low                                                                                 High




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Agenda



       1) Introduction to Cloud Computing


       2) Alternatives for Systems Integration


       3) API


       4) Integration Framework


       5) Enterprise Service Bus




www.mwea.de     Systems Integration in the Cloud Era - Kai Wähner
Alternatives for Systems Integration




                                                                  Enterprise Service Bus
                              Integration                                  (ESB)
        API
                              Framework
                                                                                               Complexity
                                                                                              of Integration
   Low                                                                                 High




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Alternatives for Systems Integration




                                                                    Enterprise Service Bus
                                Integration                                  (ESB)
        API
                                Framework
                                                                                                 Complexity
                                                                                                of Integration
   Low                                                                                   High




          API
    Proprietary
   REST Service
   SOAP Service
www.mwea.de     Systems Integration in the Cloud Era - Kai Wähner
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 APIs

www.mwea.de     Systems Integration in the Cloud Era - Kai Wähner
Systems Integration in the Cloud Era




                                                        API




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
APIs




                                  Vendor APIs




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
IaaS - AWS S3 (Ruby API)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
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
IaaS – Microsoft Azure NoSQL Table Storage (C# API)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
APIs




              REST / SOAP APIs




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
SaaS – Salesforce (REST API)




                                                                  •  SOAP
                                                                  •  REST
www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
SaaS – Salesforce (REST API)




                                                                  •  SOAP
                                                                  •  REST
www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
APIs




                                 Generic APIs




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
jClouds (Generic API)


                                                Generic API for IaaS




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
jClouds (Generic API)




                                                                  Compute API
                                                                  Blobstore API

www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
jClouds (Generic API)




                                                Several different
                                                Cloud providers
                                                   supported
www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
jClouds (Generic API) – AWS S3 Blobstore (Java)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
Agenda



       1) Introduction to Cloud Computing


       2) Alternatives for Systems Integration


       3) API


       4) Integration Framework


       5) Enterprise Service Bus




www.mwea.de     Systems Integration in the Cloud Era - Kai Wähner
Alternatives for Systems Integration




                                                                  Enterprise Service Bus
                              Integration                                  (ESB)
        API
                              Framework
                                                                                               Complexity
                                                                                              of Integration
   Low                                                                                 High




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Alternatives for Systems Integration




                                                                  Enterprise Service Bus
                              Integration                                  (ESB)
        API
                              Framework
                                                                                               Complexity
                                                                                              of Integration
   Low                                                                                 High




                             Integration
                             Connectivity
                               Routing
                           Transformation

www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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                                       NIntegrate
www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
Deployment



       Standalone                                                 Application Server

                                                                      Web Container


                                                                            Cloud


www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Systems Integration in the Cloud Era




                                                Integration
                                                Framework




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
A more complex route with different Cloud services




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Code Example – Mule (XML)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Code Example – NServiceBus (.NET Open Source)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Code Example – Camel GAE Component (Java DSL)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Custom Cloud Components



                                                                             Component



                                                                                   Creates




                                                                              Endpoint




                                                                  Consumer                   Producer



www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
Alternative for Custom Cloud Components




                                                                  •  SOAP
                                                                  •  REST
www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
Agenda



       1) Introduction to Cloud Computing


       2) Alternatives for Systems Integration


       3) API


       4) Integration Framework


       5) Enterprise Service Bus




www.mwea.de     Systems Integration in the Cloud Era - Kai Wähner
Alternatives for Systems Integration




                                                                  Enterprise Service Bus
                              Integration                                  (ESB)
        API
                              Framework
                                                                                               Complexity
                                                                                              of Integration
   Low                                                                                 High




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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 Engine
www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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 Engine
www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Oracle (Proprietary)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Talend (Open Source)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Systems Integration in the Cloud Era




                                                      ESB




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Oracle (Proprietary)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
Talend (Open Source)




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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 products



www.mwea.de    Systems Integration in the Cloud Era - Kai Wähner
Recommendation




                                                                  Enterprise Service Bus
                              Integration                                  (ESB)
        API
                              Framework
                                                                                               Complexity
                                                                                              of Integration
   Low                                                                                 High




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
Did you get the Key Message?




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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
Did you get the Key Message?




www.mwea.de   Systems Integration in the Cloud Era - Kai Wähner
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, LinkedIn


www.mwea.de         Systems Integration in the Cloud Era - Kai Wähner

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

  • 1.
    Systems Integration inthe Cloud Era www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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 Writing www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 3.
    What is theProblem? Growth •  Applications •  Interfaces •  Technologies •  Products www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 4.
    A new Era:Cloud Computing www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 5.
    Solution: Systems Integration All Roads lead to Rome ... www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 6.
    Wishes •  Standardized Modeling •  Efficient Realization •  Automatic Testing www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 7.
    Systems Integration inthe Cloud Era www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 8.
    What is theKey Message? www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 9.
    Key Messages The Cloud already arrived, and must be integrated! www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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.
    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.
    Agenda 1) Introduction to Cloud Computing 2) Alternatives for Systems Integration 3) API 4) Integration Framework 5) Enterprise Service Bus www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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 Bus www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 14.
    Agenda 1) Introduction to Cloud Computing 2) Alternatives for Systems Integration 3) API 4) Integration Framework 5) Enterprise Service Bus www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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 control www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 16.
    Every Vendor offersCloud Products www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 17.
    IaaS Examples www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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.
    PaaS Examples Elastic Beanstalk www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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 SQL www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 21.
    SaaS Examples www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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.
    Agenda 1) Introduction to Cloud Computing 2) Alternatives for Systems Integration 3) API 4) Integration Framework 5) Enterprise Service Bus www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 24.
    Enterprise Integration Patterns(EIP) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 25.
    Enterprise Integration Patterns(EIP) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 26.
    Enterprise Integration Patterns(EIP) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 27.
    Systems Integration inthe Cloud Era www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 28.
    Alternatives for SystemsIntegration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 29.
    Agenda 1) Introduction to Cloud Computing 2) Alternatives for Systems Integration 3) API 4) Integration Framework 5) Enterprise Service Bus www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 30.
    Alternatives for SystemsIntegration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 31.
    Alternatives for SystemsIntegration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High API Proprietary REST Service SOAP Service www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 32.
    Alternatives for SystemsIntegration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High API Proprietary Vendor APIs REST Service vs. SOAP Service Generic APIs www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 33.
    Systems Integration inthe Cloud Era API www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 34.
    APIs Vendor APIs www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 35.
    IaaS - AWSS3 (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.
    IaaS - AWSS3 (Ruby API) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 37.
    PaaS - GoogleApp 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.
    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.
    IaaS – MicrosoftAzure NoSQL Table Storage (C# API) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 40.
    APIs REST / SOAP APIs www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 41.
    SaaS – Salesforce(REST API) •  SOAP •  REST www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 42.
    SaaS – Salesforce(REST API) •  SOAP •  REST www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 43.
    APIs Generic APIs www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 44.
    jClouds (Generic API) Generic API for IaaS www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 45.
    jClouds (Generic API) Compute API Blobstore API www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 46.
    jClouds (Generic API) Several different Cloud providers supported www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 47.
    jClouds (Generic API)– AWS S3 Blobstore (Java) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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.
    Agenda 1) Introduction to Cloud Computing 2) Alternatives for Systems Integration 3) API 4) Integration Framework 5) Enterprise Service Bus www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 50.
    Alternatives for SystemsIntegration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 51.
    Alternatives for SystemsIntegration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High Integration Connectivity Routing Transformation www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 52.
    Alternatives for SystemsIntegration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High Spring Integration VS Integration Mule VS Connectivity Apache Camel Routing VS Transformation NIntegrate www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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.
    Deployment Standalone Application Server Web Container Cloud www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 55.
    Systems Integration inthe Cloud Era Integration Framework www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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.
    A more complexroute with different Cloud services www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 58.
    Code Example –Mule (XML) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 59.
    Code Example –NServiceBus (.NET Open Source) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 60.
    Code Example –Camel GAE Component (Java DSL) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 61.
    Custom Cloud Components Component Creates Endpoint Consumer Producer www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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.
    Alternative for CustomCloud Components •  SOAP •  REST www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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.
    Agenda 1) Introduction to Cloud Computing 2) Alternatives for Systems Integration 3) API 4) Integration Framework 5) Enterprise Service Bus www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 66.
    Alternatives for SystemsIntegration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 67.
    Alternatives for SystemsIntegration 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 Engine www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 68.
    Alternatives for SystemsIntegration 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 Engine www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 69.
    Oracle (Proprietary) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 70.
    Talend (Open Source) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 71.
    Systems Integration inthe Cloud Era ESB www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 72.
    Oracle (Proprietary) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 73.
    Talend (Open Source) www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 74.
    ESB Characteristics (comparedto 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 products www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 75.
    Recommendation Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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.
    Did you getthe Key Message? www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 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.
    Did you getthe Key Message? www.mwea.de Systems Integration in the Cloud Era - Kai Wähner
  • 80.
    Thank you foryour 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, LinkedIn www.mwea.de Systems Integration in the Cloud Era - Kai Wähner