Systems Integration in the Cloud Era with Apache Camel. Kai Wähner, Principal Consultant



Similar documents
Spoilt for Choice Which Integration Framework to choose? Mule ESB. Integration. Kai Wähner

Scalable Application. Mikalai Alimenkou

Public Cloud Offerings and Private Cloud Options. Week 2 Lecture 4. M. Ali Babar

EEDC. Scalability Study of web apps in AWS. Execution Environments for Distributed Computing

How to secure your Apache Camel deployment

Razvoj Java aplikacija u Amazon AWS Cloud: Praktična demonstracija

The Cloud as a Computing Platform: Options for the Enterprise

ur skills.com

WELCOME TO Open Source Enterprise Architecture

JAVA IN THE CLOUD PAAS PLATFORM IN COMPARISON

Scaling in the Cloud with AWS. By: Eli White (CTO & mojolive) eliw.com - mojolive.com

Salesforce integration with Enterprise Open Source. Mischa de Vries László van den Hoek SFDC Consultant OS Consultant

Users VM A A A. Application. Compute/Storage/Network. VM Virtual Machine. On-Premises Data Center

PaaS - Platform as a Service Google App Engine

SCOUT IN THE CLOUD. How to Scale Eclipse Scout Applications in the Cloud? Judith Gull & Thomas Schweigler

A Comparison of Clouds: Amazon Web Services, Windows Azure, Google Cloud Platform, VMWare and Others (Fall 2012)

The Scenario: Priority Matrix for Cloud Computing

Cloud Platforms Today: The Big Picture

Written examination in Cloud Computing

Cloud computing taxonomy

Uses the Apache Chemistry client API to interface with CMIS supporting CMS

Thing Big: How to Scale Your Own Internet of Things.

Cloud Computing Training

Son of SOA Resource-Oriented Computing Event-Driven Architecture

Riding the (Apache) Camel into the cloud!

Running Oracle Applications on AWS

Cloud computing taxonomy

Cloud Computing and Amazon Web Services. CJUG March, 2009 Tom Malaher

Lets SAAS-ify that Desktop Application

How to choose the right Integration Framework - Apache Camel (JBoss, Talend), Spring Integration (Pivotal) or Mule

Cloud to Cloud Integrations with Force.com. Sandeep Bhanot Developer

Cloud Computing. Technologies and Types

CPET 581 Cloud Computing: Technologies and Enterprise IT Strategies

How To Manage An Orgsync Database On An Amazon Cloud 2 Instance

Certified Cloud Computing Professional VS-1067

AIST Data Symposium. Ed Lenta. Managing Director, ANZ Amazon Web Services

FUSE-ESB4 An open-source OSGi based platform for EAI and SOA

Technical Writing - Definition of Cloud A Rational Perspective

Cloud Computing Benefits for Educational Institutions

Cloud computing - Architecting in the cloud

Cloud and the future of Unemployment Sean Rhody, CTO Capgemini Government Solutions

Amazon AWS in.net. Presented by: Scott Reed

Amazon Web Services. Elastic Compute Cloud (EC2) and more...

A programming model in Cloud: MapReduce

Course Details V1.0. Selinis Technologies Pvt Ltd. 2012, All Rights Reserved

Dynamic Deployment and Scalability for the Cloud. Jerome Bernard Director, EMEA Operations Elastic Grid, LLC.

APP DEVELOPMENT ON THE CLOUD MADE EASY WITH PAAS

Equinox above the Cloud ( - Some call it Heaven!!)

Last time. Today. IaaS Providers. Amazon Web Services, overview

Advancing Integration Competency and Excellence with the WSO2 Integration Platform

Ø Teaching Evaluations. q Open March 3 through 16. Ø Final Exam. q Thursday, March 19, 4-7PM. Ø 2 flavors: q Public Cloud, available to public

Azure and Its Competitors

Platforms in the Cloud

CMIS as the basis for ECM services in the cloud

Open Cloud System. (Integration of Eucalyptus, Hadoop and AppScale into deployment of University Private Cloud)

Last time. Today. IaaS Providers. Amazon Web Services, overview

Cloud Computing. Lecture 24 Cloud Platform Comparison

SOC on Amazon Web Services (AWS) What You Need To Know Understanding the regulatory roadmap for SOC on AWS

Microservices on AWS

Netop Environment Security. Unified security to all Netop products while leveraging the benefits of cloud computing

Cloud Architecture and Virtualisation. Lecture 2 Cloud Computing Overview

RED HAT JBOSS FUSE. An open source enterprise service bus

Optimizing Service Levels in Public Cloud Deployments

Salesforce Admin Course Content: Chapter 1 CRM Introduction Introduction to CRM? Why CRM?

Welcome to the Force.com Developer Day

Oracle Database Cloud

The Evolution of PaaS QCon London 2012

Cloud Hosting. QCLUG presentation - Aaron Johnson. Amazon AWS Heroku OpenShift

Cloud Service Models. Seminar Cloud Computing and Web Services. Eeva Savolainen

Introduction to Azure: Microsoft s Cloud OS

Introduction to AWS in Higher Ed

Cloud Computing Now and the Future Development of the IaaS

Last time. Today. IaaS Providers. Amazon Web Services, overview

Cloud Computing: Making the right choices

Development Model for the Cloud Paradigm Shift of the Same Old Same Old? Dr. Umit Yalcinalp, Salesforce.com Developer Evangelist

Kai Wähner. The Next-Generation BPM for a Big Data World: Intelligent Business Process Management Suites (ibpms)

Mike Boyarski Jaspersoft Product Marketing Business Intelligence in the Cloud

Magnus Larsson Callista Enterprise AB

Unisys Cost Schedule. Unisys Cost Schedule. Page 1

TECHNOLOGY WHITE PAPER Jun 2012

Scalability in the Cloud HPC Convergence with Big Data in Design, Engineering, Manufacturing

JBoss & Infinispan open source data grids for the cloud era

President and Director OeHF. Implementing IHE Actors using the Open ehealth Integration Platform (IPF)

A Review on Leaders in Cloud Computing Service Providers and Cloud SQL a Case Study

CIS 4930/6930 Spring 2014 Introduction to Data Science Data Intensive Computing. University of Florida, CISE Department Prof.

Développement logiciel pour le Cloud (TLC)

HYBRID CLOUD SUPPORT FOR LARGE SCALE ANALYTICS AND WEB PROCESSING. Navraj Chohan, Anand Gupta, Chris Bunch, Kowshik Prakasam, and Chandra Krintz

Cloud Application Development (SE808, School of Software, Sun Yat-Sen University) Yabo (Arber) Xu

Integration in the cloud - IPaaS with Fuse technology. Charles Moulliard Apache Committer

Private Clouds with Open Source

White paper. Planning for SaaS Integration

A SHORT INTRODUCTION TO CLOUD PLATFORMS

CLOUD COMPUTING. Dana Petcu West University of Timisoara

Big Data on AWS. Services Overview. Bernie Nallamotu Principle Solutions Architect

2.2 Understanding the different classifications of cloud s

Amazon Elastic Beanstalk

Preparing Your Data For Cloud

Oracle Cloud Bjarte Drivenes Enterprise Architect. Copyright 2014 Oracle and/or its affiliates. All rights reserved.

Building. Applications. in the Cloud. Concepts, Patterns, and Projects. AAddison-Wesley. Christopher M. Mo^ar. Cape Town Sydney.

Transcription:

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 Coaching Speaking Writing Contact Email: kwaehner@talend.com 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 On Premise On Premise hosted Infrastructure as a Service (IaaS) Platform as a Service (PaaS) Software as a Service (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 has control Control is shared Vendor 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 API Integration Framework Enterprise Service Bus (ESB) Low High Complexity of Integration Talend 2011 17

Alternatives for Systems Integration API Integration Framework Enterprise Service Bus (ESB) Low High Complexity of Integration 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 SQL TCP Netty SMTP Jetty JMS RMI FTP Lucene JDBC EJB JMX Bean-Validation RSS AMQP MQ IRC Quartz File AWS-S3 HTTP Many many more Atom Akka CXF LDAP Log XSLT 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 On Premise On Premise hosted Infrastructure as a Service (IaaS) Platform as a Service (PaaS) Software as a Service (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 has control Control is shared Vendor 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 On Premise On Premise hosted Infrastructure as a Service (IaaS) Platform as a Service (PaaS) Software as a Service (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 has control Control is shared Vendor 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 Cloud SQL Talend 2011 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 On Premise On Premise hosted Infrastructure as a Service (IaaS) Platform as a Service (PaaS) Software as a Service (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 has control Control is shared Vendor 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... Apex Visualforce REST SOAP Client APIs (Java, etc.) Development Online-Development (even the Compiler is in the Cloud!) Own Addons Force.com (PaaS) Integration of Interfaces 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(); //... more stuff here... Talend 2011 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