SlideShare une entreprise Scribd logo
1  sur  61
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 Messages




The Cloud already arrived, and must be integrated!




© Talend 2011                                        9
Key Messages




The Cloud already arrived, and must be integrated!
Cloud Integration is already possible!


© Talend 2011                                        10
Key Messages




The 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. Mule
http://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

                      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

© Talend 2011                                                                                   24
Deploy it wherever you need


Standalone                    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



// Producer
from("direct:startToS3")
   .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")


© 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 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")

© Talend 2011                                                                   55
Live Demo




                Cloud Integration via REST in Action

© Talend 2011                                          56
Did you get the Key Message?




© Talend 2011                  57
Key Messages




The 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

Contenu connexe

Tendances

Tendances (20)

Angular interview questions
Angular interview questionsAngular interview questions
Angular interview questions
 
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
 
Flyway
FlywayFlyway
Flyway
 
Docker swarm
Docker swarmDocker swarm
Docker swarm
 
Git Branching Model
Git Branching ModelGit Branching Model
Git Branching Model
 
Ch06 使用 JSP
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
 
Power of Azure Devops
Power of Azure DevopsPower of Azure Devops
Power of Azure Devops
 
Azure DevOps Presentation
Azure DevOps PresentationAzure DevOps Presentation
Azure DevOps Presentation
 
Nuxt.JS Introdruction
Nuxt.JS IntrodructionNuxt.JS Introdruction
Nuxt.JS Introdruction
 
Automate mule deployments with github actions and travis ci
Automate mule deployments with github actions  and  travis ciAutomate mule deployments with github actions  and  travis ci
Automate mule deployments with github actions and travis ci
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for Beginner
 
Angular Introduction By Surekha Gadkari
Angular Introduction By Surekha GadkariAngular Introduction By Surekha Gadkari
Angular Introduction By Surekha Gadkari
 
Xke spring boot
Xke spring bootXke spring boot
Xke spring boot
 
Building blocks of Angular
Building blocks of AngularBuilding blocks of Angular
Building blocks of Angular
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
 
Introduzione a Git
Introduzione a GitIntroduzione a Git
Introduzione a Git
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTree
 
Webpack DevTalk
Webpack DevTalkWebpack DevTalk
Webpack DevTalk
 
Vue.js Getting Started
Vue.js Getting StartedVue.js Getting Started
Vue.js Getting Started
 
Redux training
Redux trainingRedux training
Redux training
 

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

彭—Elastic architecture in cloud foundry and deploy with openstack
彭—Elastic architecture in cloud foundry and deploy with openstack彭—Elastic architecture in cloud foundry and deploy with openstack
彭—Elastic architecture in cloud foundry and deploy with openstack
OpenCity Community
 
T1 05 emc forum track introductions manoj chugh final
T1 05 emc forum track introductions manoj chugh finalT1 05 emc forum track introductions manoj chugh final
T1 05 emc forum track introductions manoj chugh final
EMC Forum India
 
EMC Forum Track Introductions
EMC Forum Track IntroductionsEMC Forum Track Introductions
EMC Forum Track Introductions
EMC Forum India
 
Dell and OpenStack
Dell and OpenStackDell and OpenStack
Dell and OpenStack
eNovance
 
Cloud Computing for Beginners
Cloud Computing for Beginners Cloud Computing for Beginners
Cloud Computing for Beginners
Suman Singh
 
Cloud foundry elastic architecture and deploy based on openstack
Cloud foundry elastic architecture and deploy based on openstackCloud foundry elastic architecture and deploy based on openstack
Cloud foundry elastic architecture and deploy based on openstack
OpenCity Community
 

Similaire à Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012 (20)

Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp...
Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp...Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp...
Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterp...
 
Systems Integration in the NoSQL Era with Apache Camel (Neo4j, CouchDB, AWS S...
Systems Integration in the NoSQL Era with Apache Camel (Neo4j, CouchDB, AWS S...Systems Integration in the NoSQL Era with Apache Camel (Neo4j, CouchDB, AWS S...
Systems Integration in the NoSQL Era with Apache Camel (Neo4j, CouchDB, AWS S...
 
Jazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
Jazoon 2012 - Systems Integration in the Cloud Era with Apache CamelJazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
Jazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
 
彭—Elastic architecture in cloud foundry and deploy with openstack
彭—Elastic architecture in cloud foundry and deploy with openstack彭—Elastic architecture in cloud foundry and deploy with openstack
彭—Elastic architecture in cloud foundry and deploy with openstack
 
Cloud Computing - Making IT Simple
Cloud Computing - Making IT SimpleCloud Computing - Making IT Simple
Cloud Computing - Making IT Simple
 
Cloud Computing: Making IT Simple
Cloud Computing: Making IT SimpleCloud Computing: Making IT Simple
Cloud Computing: Making IT Simple
 
Cloud Computing - Making IT Simple
 Cloud Computing - Making IT Simple Cloud Computing - Making IT Simple
Cloud Computing - Making IT Simple
 
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...
 
T1 05 emc forum track introductions manoj chugh final
T1 05 emc forum track introductions manoj chugh finalT1 05 emc forum track introductions manoj chugh final
T1 05 emc forum track introductions manoj chugh final
 
EMC Forum Track Introductions
EMC Forum Track IntroductionsEMC Forum Track Introductions
EMC Forum Track Introductions
 
Dell and OpenStack
Dell and OpenStackDell and OpenStack
Dell and OpenStack
 
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
 
ASG CloudFactory
ASG CloudFactoryASG CloudFactory
ASG CloudFactory
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Cloud Computing for Beginners
Cloud Computing for Beginners Cloud Computing for Beginners
Cloud Computing for Beginners
 
2012 05 confess_camel_cloud_integration
2012 05 confess_camel_cloud_integration2012 05 confess_camel_cloud_integration
2012 05 confess_camel_cloud_integration
 
Cloud Computing and VCE
Cloud Computing and VCECloud Computing and VCE
Cloud Computing and VCE
 
Systems Resource Management with NetIQ AppManager
Systems Resource Management with NetIQ AppManagerSystems Resource Management with NetIQ AppManager
Systems Resource Management with NetIQ AppManager
 
Cloud foundry elastic architecture and deploy based on openstack
Cloud foundry elastic architecture and deploy based on openstackCloud foundry elastic architecture and deploy based on openstack
Cloud foundry elastic architecture and deploy based on openstack
 
102 1630 1700
102 1630 1700102 1630 1700
102 1630 1700
 

Plus de Kai Wähner

Kappa vs Lambda Architectures and Technology Comparison
Kappa vs Lambda Architectures and Technology ComparisonKappa vs Lambda Architectures and Technology Comparison
Kappa vs Lambda Architectures and Technology Comparison
Kai Wähner
 
The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022
Kai Wähner
 

Plus de Kai Wähner (20)

Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)
Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)
Apache Kafka as Data Hub for Crypto, NFT, Metaverse (Beyond the Buzz!)
 
When NOT to use Apache Kafka?
When NOT to use Apache Kafka?When NOT to use Apache Kafka?
When NOT to use Apache Kafka?
 
Kafka for Live Commerce to Transform the Retail and Shopping Metaverse
Kafka for Live Commerce to Transform the Retail and Shopping MetaverseKafka for Live Commerce to Transform the Retail and Shopping Metaverse
Kafka for Live Commerce to Transform the Retail and Shopping Metaverse
 
The Heart of the Data Mesh Beats in Real-Time with Apache Kafka
The Heart of the Data Mesh Beats in Real-Time with Apache KafkaThe Heart of the Data Mesh Beats in Real-Time with Apache Kafka
The Heart of the Data Mesh Beats in Real-Time with Apache Kafka
 
Apache Kafka vs. Cloud-native iPaaS Integration Platform Middleware
Apache Kafka vs. Cloud-native iPaaS Integration Platform MiddlewareApache Kafka vs. Cloud-native iPaaS Integration Platform Middleware
Apache Kafka vs. Cloud-native iPaaS Integration Platform Middleware
 
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies?
 
Serverless Kafka and Spark in a Multi-Cloud Lakehouse Architecture
Serverless Kafka and Spark in a Multi-Cloud Lakehouse ArchitectureServerless Kafka and Spark in a Multi-Cloud Lakehouse Architecture
Serverless Kafka and Spark in a Multi-Cloud Lakehouse Architecture
 
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
 
Data Streaming with Apache Kafka in the Defence and Cybersecurity Industry
Data Streaming with Apache Kafka in the Defence and Cybersecurity IndustryData Streaming with Apache Kafka in the Defence and Cybersecurity Industry
Data Streaming with Apache Kafka in the Defence and Cybersecurity Industry
 
Apache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare IndustryApache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare Industry
 
Apache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare IndustryApache Kafka in the Healthcare Industry
Apache Kafka in the Healthcare Industry
 
Apache Kafka for Real-time Supply Chain in the Food and Retail Industry
Apache Kafka for Real-time Supply Chainin the Food and Retail IndustryApache Kafka for Real-time Supply Chainin the Food and Retail Industry
Apache Kafka for Real-time Supply Chain in the Food and Retail Industry
 
Kafka for Real-Time Replication between Edge and Hybrid Cloud
Kafka for Real-Time Replication between Edge and Hybrid CloudKafka for Real-Time Replication between Edge and Hybrid Cloud
Kafka for Real-Time Replication between Edge and Hybrid Cloud
 
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0
Apache Kafka for Predictive Maintenance in Industrial IoT / Industry 4.0
 
Apache Kafka Landscape for Automotive and Manufacturing
Apache Kafka Landscape for Automotive and ManufacturingApache Kafka Landscape for Automotive and Manufacturing
Apache Kafka Landscape for Automotive and Manufacturing
 
Kappa vs Lambda Architectures and Technology Comparison
Kappa vs Lambda Architectures and Technology ComparisonKappa vs Lambda Architectures and Technology Comparison
Kappa vs Lambda Architectures and Technology Comparison
 
The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022
 
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
Event Streaming CTO Roundtable for Cloud-native Kafka ArchitecturesEvent Streaming CTO Roundtable for Cloud-native Kafka Architectures
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
 
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
Apache Kafka in the Public Sector (Government, National Security, Citizen Ser...
 
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
Telco 4.0 - Payment and FinServ Integration for Data in Motion with 5G and Ap...
 

Dernier

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Dernier (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

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

  • 1. Systems Integration in the Cloud Era with Apache Camel Kai Wähner, Principal Consultant
  • 2. Kai Wähner Main Tasks Requirements Engineering Enterprise Architecture Management Business Process Management Architecture and Development of Applications Service-oriented Architecture Integration of Legacy Applications Cloud Computing Big Data Consulting Developing Contact Coaching Email: kwaehner@talend.com Speaking Writing Blog: www.kai-waehner.de/blog Twitter: @KaiWaehner Social Networks: Xing, LinkedIn © Talend 2011 2
  • 3. What is the Problem? Growth •  Applications •  Interfaces •  Technologies •  Products © Talend 2011 3
  • 4. A new Era: Cloud Computing © Talend 2011 4
  • 5. Solution: Systems Integration All Roads lead to Rome ... © Talend 2011 5
  • 6. Wishes •  Standardized Modeling •  Efficient Realization •  Automatic Testing © Talend 2011 6
  • 7. Systems Integration in the Cloud Era © Talend 2011 7
  • 8. What is the Key Message? © Talend 2011 8
  • 9. Key Messages The Cloud already arrived, and must be integrated! © Talend 2011 9
  • 10. Key Messages The Cloud already arrived, and must be integrated! Cloud Integration is already possible! © Talend 2011 10
  • 11. Key Messages The Cloud already arrived, and must be integrated! Cloud Integration is already possible! Apache Camel helps a lot! © Talend 2011 11
  • 12. Agenda 1) Introduction to Cloud Computing 2) Introduction to Apache Camel 3) IaaS Integration (Amazon Web Services) 4) PaaS Integration (Google App Engine) 5) SaaS Integration (Salesforce) 6) Custom Cloud Components © Talend 2011 12
  • 13. Agenda 1) Introduction to Cloud Computing 2) Introduction to Apache Camel 3) IaaS Integration (Amazon Web Services) 4) PaaS Integration (Google App Engine) 5) SaaS Integration (Salesforce) 6) Custom Cloud Components © Talend 2011 13
  • 14. Cloud Computing Infrastructure Platform Software On Premise On Premise as a Service as a Service as a Service hosted (IaaS) (PaaS) (SaaS) App App App App App VM VM VM VM VM Server Server Server Server Server Storage Storage Storage Storage Storage Network Network Network Network Network Organisation Control Vendor has control is shared has control © Talend 2011 14
  • 15. Every Vendor offers Cloud Products © Talend 2011 15
  • 16. Agenda 1) Introduction to Cloud Computing 2) Introduction to Apache Camel 3) IaaS Integration (Amazon Web Services) 4) PaaS Integration (Google App Engine) 5) SaaS Integration (Salesforce) 6) Custom Cloud Components © Talend 2011 16
  • 17. Alternatives for Systems Integration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High © Talend 2011 17
  • 18. Alternatives for Systems Integration Enterprise Service Bus Integration (ESB) API Framework Complexity of Integration Low High Apache Camel vs. Spring Integration vs. Mule http://www.kai-waehner.de/blog/2012/01/10/spoilt-for-choice-which-integration-framework-to-use-spring-integration-mule-esb-or-apache-camel/ © Talend 2011 18
  • 19. Enterprise Integration Patterns (EIP) Apache Camel Implements the EIPs © Talend 2011 19
  • 20. Enterprise Integration Patterns (EIP) © Talend 2011 20
  • 21. Enterprise Integration Patterns (EIP) © Talend 2011 21
  • 22. Architecture http://java.dzone.com/articles/apache-camel-integration © Talend 2011 22
  • 23. Choose your favorite DSL XML (not production-ready yet) © Talend 2011 23
  • 24. 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 © Talend 2011 24
  • 25. Deploy it wherever you need Standalone Application Server Web Container Spring Container OSGi Cloud © Talend 2011 25
  • 26. Enterprise-ready •  Open Source •  Scalability •  Error Handling •  Transaction •  Monitoring •  Tooling •  Commercial Support © Talend 2011 26
  • 27. Live Demo Apache Camel in Action © Talend 2011 27
  • 28. Agenda 1) Introduction to Cloud Computing 2) Introduction to Apache Camel 3) IaaS Integration (Amazon Web Services) 4) PaaS Integration (Google App Engine) 5) SaaS Integration (Salesforce) 6) Custom Cloud Components © Talend 2011 28
  • 29. Cloud Computing Infrastructure Platform Software On Premise On Premise as a Service as a Service as a Service hosted (IaaS) (PaaS) (SaaS) App App App App App VM VM VM VM VM Server Server Server Server Server Storage Storage Storage Storage Storage Network Network Network Network Network Organisation Control Vendor has control is shared has control © Talend 2011 29
  • 30. Infrastructure as a Service (IaaS) © Talend 2011 30
  • 31. IaaS Concepts (Example: AWS) Compute Amazon Elastic Compute Cloud (EC2) Amazon Elastic MapReduce (EMR) Storage Amazon Simple Storage Service (S3) Amazon Elastic Block Store (EBS) SimpleDB (SDB) Database Amazon Relational Database Service (RDS) Amazon DynamoDB (DDB) Amazon ElastiCache Application Services Amazon Simple Workflow Service (SWF) Amazon Simple Queue Service (SQS) Amazon Simple Notification Service (SNS) Amazon Simple Email Service (SES) Many more ... © Talend 2011 31
  • 32. Code Example - AWS S3 (Java API) AmazonS3 s3 = new AmazonS3Client(new PropertiesCredentials( S3Sample.class.getResourceAsStream("AwsCredentials.properties"))); String bucketName = "my-first-s3-bucket-" + UUID.randomUUID(); String key = "MyObjectKey"; try { s3.createBucket(bucketName); s3.putObject(new PutObjectRequest(bucketName, key, createSampleFile())); S3Object object = s3.getObject(new GetObjectRequest(bucketName, key)); ObjectListing objectListing = s3.listObjects(new ListObjectsRequest() .withBucketName(bucketName) .withPrefix("My")); s3.deleteObject(bucketName, key); s3.deleteBucket(bucketName); } catch (AmazonServiceException ase) { // error handling... } catch (AmazonClientException ace) { // error handling... } © Talend 2011 32
  • 33. Code Example - Camel AWS Component // Producer from("direct:startToS3") .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") © Talend 2011 33
  • 34. Live Demo IaaS Integration in Action © Talend 2011 34
  • 35. Agenda 1) Introduction to Cloud Computing 2) Introduction to Apache Camel 3) IaaS Integration (Amazon Web Services) 4) PaaS Integration (Google App Engine) 5) SaaS Integration (Salesforce) 6) Custom Cloud Components © Talend 2011 35
  • 36. Cloud Computing Infrastructure Platform Software On Premise On Premise as a Service as a Service as a Service hosted (IaaS) (PaaS) (SaaS) App App App App App VM VM VM VM VM Server Server Server Server Server Storage Storage Storage Storage Storage Network Network Network Network Network Organisation Control Vendor has control is shared has control © Talend 2011 36
  • 37. Platform as a Service (PaaS) Elastic Beanstalk © Talend 2011 37
  • 38. PaaS Concepts (Example: GAE) Application Deployment Easy Deployment Automatic Scaling Development Restrictions JRE Class White List Workarounds for Frameworks No „naked“ Domains No „write once run everywhere“ Quotas and Limits Services Push Queue Pull Queue URL Fetch Accounts Mail Memcache XMPP Images Datastore Cloud Storage © Talend 2011 Cloud SQL 38
  • 39. Hint Google App Engine is a complex scenario due to its many restrictions! Other „more open“ PaaS solutions such as Jelastic or Amazon Beanstalk are easier to use and integrate... © Talend 2011 39
  • 40. Code Example - Google App Engine (Java API) public class GAEJCreateTaskServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { String strCallResult = ""; resp.setContentType("text/plain"); try { String strEmailId = req.getParameter("emailid"); if (strEmailId == null) throw new Exception ("Email Id field cannot be empty."); strEmailId = strEmailId.trim(); if (strEmailId.length() == 0) throw new Exception("Email Id field cannot be empty."); Queue queue = QueueFactory.getQueue("subscription-queue"); queue.add(TaskOptions.Builder.url(“signupsubscriber“) .param("emailid",strEmailId)); strCallResult = "Successfully created a Task in the Queue"; resp.getWriter().println(strCallResult); } catch (Exception ex) { strCallResult = "Fail: " + ex.getMessage(); resp.getWriter().println(strCallResult); } }} © Talend 2011 40
  • 41. Code Example – Camel GAE Component © Talend 2011 41
  • 42. Code Example – Camel GAE Component © Talend 2011 42
  • 43. Live Demo PaaS Integration in Action © Talend 2011 43
  • 44. Agenda 1) Introduction to Cloud Computing 2) Introduction to Apache Camel 3) IaaS Integration (Amazon Web Services) 4) PaaS Integration (Google App Engine) 5) SaaS Integration (Salesforce) 6) Custom Cloud Components © Talend 2011 44
  • 45. Cloud Computing Infrastructure Platform Software On Premise On Premise as a Service as a Service as a Service hosted (IaaS) (PaaS) (SaaS) App App App App App VM VM VM VM VM Server Server Server Server Server Storage Storage Storage Storage Storage Network Network Network Network Network Organisation Control Vendor has control is shared has control © Talend 2011 45
  • 46. Software as a Service (SaaS) © Talend 2011 46
  • 47. SaaS Concepts (Example: Salesforce) Software (CRM) Sales Service Social Data.com AppExchange ... more ... Development Online-Development (even the Compiler is in the Cloud!) Own Addons  Force.com (PaaS) Apex Integration of Interfaces Visualforce REST SOAP Client APIs (Java, etc.) © Talend 2011 47
  • 48. Code Example – Salesforce (Java API) ConnectorConfig config = new ConnectorConfig(); config.setUsername(userId); config.setPassword(passwd); config.setAuthEndpoint(authEndPoint); connection = new EnterpriseConnection(config); GetUserInfoResult userInfo = connection.getUserInfo(); System.out.println("User Full Name: " + userInfo.getUserFullName()); QueryResult qResult = null; String soqlQuery = "SELECT FirstName, LastName FROM Contact"; // SOQL qResult = connection.query(soqlQuery); boolean done = false; if (qResult.getSize() > 0) { System.out.println("Logged-in user can see " + qResult.getRecords().length + " contact records." ); while (! done) { SObject[] records = qResult.getRecords(); for ( int i = 0; i < records.length; ++i ) { Contact con = (Contact) records[i]; String fName = con.getFirstName(); String lName = con.getLastName(); © Talend 2011 // ... more stuff here ... 48
  • 49. Code Example – Camel Salesforce Component // Producer from("direct:toSalesforce“) .to("salesforce://Article__c?user=u&password=p&item=myItem"); // Consumer from("salesforce://Article__c?user=u&password=p") .to("mock:fromSalesforce"); © Talend 2011 49
  • 50. Live Demo SaaS Integration in Action © Talend 2011 50
  • 51. Agenda 1) Introduction to Cloud Computing 2) Introduction to Apache Camel 3) IaaS Integration (Amazon Web Services) 4) PaaS Integration (Google App Engine) 5) SaaS Integration (Salesforce) 6) Custom Cloud Components © Talend 2011 51
  • 52. Custom Cloud Components Component Creates Endpoint Consumer Producer © Talend 2011 52
  • 53. Live Demo Custom Cloud Component in Action © Talend 2011 53
  • 54. Alternative for Custom Cloud Components •  SOAP •  REST © Talend 2011 54
  • 55. 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") © Talend 2011 55
  • 56. Live Demo Cloud Integration via REST in Action © Talend 2011 56
  • 57. Did you get the Key Message? © Talend 2011 57
  • 58. Key Messages The Cloud already arrived, and must be integrated! Cloud Integration is already possible! Apache Camel helps a lot! © Talend 2011 58
  • 59. Did you get the Key Message? © Talend 2011 59
  • 60. Whet your Appetite? © Talend 2011 60
  • 61. Thank you for your attention. Questions? kwaehner@talend.com 0049 / 154 19 260 34 www.kai-waehner.de LinkedIn / Xing @KaiWaehner