Riding the (Apache) Camel into the cloud!

Similar documents
How to secure your Apache Camel deployment

Red Hat JBoss Integration and Business Rules Mgmt

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

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

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

WELCOME TO Open Source Enterprise Architecture

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

Hummingbird An Open Source Ground Segment for Small Satellites

Building a Service Oriented Architecture with ServiceMix. Jeff Genender CTO Savoir Technologies, Inc

Experiences with Open-Source BPM/SOA-based Stack using Java EE Rok Povše, Matjaž B. Jurič

IBM WebSphere Server Administration

Building a Reliable Messaging Infrastructure with Apache ActiveMQ

The future of middleware: enterprise application integration and Fuse

WebSphere Server Administration Course

Magnus Larsson Callista Enterprise AB

OASIS Implementation - Version 1.1.1

Enterprise Service Bus Evaluation as Integration Platform for Ocean Observatories

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

OpenShift is FanPaaStic For Java EE. By Shekhar Gulati Promo Code JUDCON.IN

Mule Getting Started Guide

JBI and OpenESB. Introduction to Technology. Michael Czapski Advanced Solutions Architect, SOA/BI/Java CAPS Sun Microsystems, ANZ

Page: Unisys Corporation. All rights reserved.

Java in Web 2.0. Alexis Roos Principal Field Technologist, CTO Office OEM SW Sales Sun Microsystems, Inc.

Open Source SOA with Service Component Architecture and Apache Tuscany. Jean-Sebastien Delfino Mario Antollini Raymond Feng

Developing modular Java applications

Next Generation Open Source Messaging with Apache Apollo

SOA Fundamentals For Java Developers. Alexander Ulanov, System Architect Odessa, 30 September 2008

Fuse ESB Enterprise Apache Camel Monitoring Plugin

Fuse ESB Enterprise Installation Guide

Spring Integra,on & Apache Camel

Red Hat JBoss Overview Intelligent Integrated Enterprise!!!! Blaine Mincey Sr. Middleware Solutions Architect

Next-Generation ESB. Kevin Conner SOA Platform Architect, Red Hat Keith Babo JBoss ESB Project Lead, Red Hat. June 23rd, 2010

SCA & SDO Implementations Open Source and Vendor Products

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

Clusters in the Cloud

ESB Versus ActiveVOS

National Aeronautics and Space Administration (NASA) OpenSource ESB. Version 4.0

Application Integration with Red Hat middleware. Giovanni Pirola Senior Solution Architect Red Hat, Inc. Pontedera, June 27th 2014

This training is targeted at System Administrators and developers wanting to understand more about administering a WebLogic instance.

WELCOME. Where and When should I use the Oracle Service Bus (OSB) Guido Schmutz. UKOUG Conference

Introduction to Sun ONE Application Server 7

Web Service Development Using CXF. - Praveen Kumar Jayaram

APP DEVELOPMENT ON THE CLOUD MADE EASY WITH PAAS

Service Component Architecture, Apache Tuscany & WebSphere SOA Feature Pack Beta

Rapid Application Development. and Application Generation Tools. Walter Knesel

Operations and Monitoring with Spring

Open ESB. Sang Shin Java Technology Evangelist Sun Microsystems, Inc. Raffaele Spazzoli Imola Informatica 1

WHITE PAPER How to Use Open Source Integration Software Safely in the Enterprise

SUMMIT. November 2010

Author: Gennaro Frazzingaro Universidad Rey Juan Carlos campus de Mostòles (Madrid) GIA Grupo de Inteligencia Artificial

RED HAT JBOSS FUSE. An open source enterprise service bus

Return on Experience on Cloud Compu2ng Issues a stairway to clouds. Experts Workshop Nov. 21st, 2013

Learning GlassFish for Tomcat Users

ActiveVOS Server Architecture. March 2009

White Paper: Why Upgrade from WebSphere Application Server (WAS) v7 to v8.x?

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

ESB and SOA Infrastructure

Integration of Different Aspects of Multi-Tenancy in an Open Source Enterprise Service Bus

JBS-102: Jboss Application Server Administration. Course Length: 4 days

Saturday, June 30, 12

UNIVERSITÉ DE NANTES LABORATOIRE D INFORMATIQUE DE NANTES ATLANTIQUE. Yann Busnel. Master 2 MIAGE. Yann Busnel ESB - Concept et techniques 1

FUSE ESB. Getting Started with FUSE ESB. Version 4.1 April 2009

Apache CXF Web Services

CERTIFIED MULESOFT DEVELOPER EXAM. Preparation Guide

Beyond the SOA/BPM frontiers Towards a complete open cooperative environment

Building Web Services with Apache Axis2

Java Development for the Cloud, present and future. Scott Rich Distinguished Engineer, IBM Rational

RED HAT JBOSS FUSE COMPARED WITH ORACLE SERVICE BUS

A Comparison of Software Architectures for E-Business Applications

COMPLEX EVENT DETECTION ON AN ENTERPRISE SERVICE BUS

Implementing Enterprise Integration Patterns Using Open Source Frameworks

EAI and Spring Integration. Josh Long Architect, Software Engineer JoshLong.com

Creating Web Services Applications with IntelliJ IDEA

WebLogic Server 11g Administration Handbook

AquaLogic Service Bus

Chapter 1: Web Services Testing and soapui

What is the NXTware Evolution Server Peter Marquez, Product Marketing ecube Systems

Web Services in Oracle Fusion Middleware. Raghu Kodali Consulting Product Manager & SOA Evangelist Oracle Fusion Middleware Oracle USA

How To Deploy A Banking System In Java On A Server With A Bank On A Network (E-Banking) On A Microsoft Server (Ebt) On An Ebt (Eb) On The Network (Jee) On Your

Weblogic 12c: Mastering The Cloud Foundation. Patrick Dewael & Kristof Satory

Source SOA JEFF DAVIS UNIVERSITATSB1BLIOTHEK HANNOVER TECHNISCHE INFORMATIONSBIBLIOTHEK MANNING. (74 w. long.) Greenwich

Advancing Integration Competency and Excellence with the WSO2 Integration Platform

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

APM for Java. AppDynamics Pro Documentation. Version 4.0.x. Page 1

Framework Adoption for Java Enterprise Application Development

WebSphere Product Family Overview

APAC WebLogic Suite Workshop Oracle Parcel Service Overview. Jeffrey West Application Grid Product Management

Building the European Biodiversity. Observation Network (EU BON)

SOA using Open ESB, BPEL, and NetBeans. Sang Shin Java Technology Evangelist Sun Microsystems, Inc.

Reusing Existing * Java EE Applications from Oracle SOA Suite

Apigee Gateway Specifications

Enterprise Application Development In Java with AJAX and ORM

Integration with ESB. Filip Nguyen Jiří Kolář

Oracle WebLogic Server 11g: Administration Essentials

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010

JBOSS ESB. open source community experience distilled. Beginner's Guide. Enterprise. Magesh Kumar B

How To Develop A Web Service In A Microsoft J2Ee (Java) 2.5 (Oracle) 2-Year Old (Orcient) 2Dj (Oracles) 2E (Orca) 2Gj (J

This document summarizes the steps of deploying ActiveVOS on oracle Weblogic Platform.

Christoph Emmersberger. Florian Springer. Senacor Technologies AG Wieseneckstraße Schwaig b. Nürnberg

Cloud computing taxonomy

Transcription:

Riding the (Apache) Camel into the cloud! James Strachan 1

Your speaker today James Strachan james@fusesource.com twiner: @jstrachan blog: hnp://macstrac.blogspot.com/ So3ware Fellow at FuseSource leaders in open source integra6on & messaging we provide training, consul6ng, support, distribu6ons & tools for open source integra6on so3ware Open Source hacker created the Groovy programming language created Apache Camel co- founder of Apache Ac6veMQ, ServiceMix, Geronimo Scalate lets not men6on Jelly :) 2

Todays talk what s this Apache Camel thing anyway? what did the cloud ever do for us anyway? so how d you ride this Camel in the cloud then? Q & A (hopefully...) 3

What are Enterprise Integra6on PaNerns? 4

Book by Gregor & Bobby! 5

A selec6on of some of the panerns... 6

What is Apache Camel? http://camel.apache.org/ 7

What is Apache Camel? Apache Camel is a Powerful Open Source Integra6on Framework based on known Enterprise Integra6on PaNerns hnp://camel.apache.org/enterprise- integra6on- panerns.html 8

Lets look at a panern! 9

Message Filter 10

Message Filter : XML <camelcontext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:topic:quotes"/> <filter> <xpath>/quote/product = widget </xpath> <to uri="mqseries:widgetquotes"/> </filter> </route> </camelcontext> 11

Message Filter : Spring XML <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> <camelcontext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:topic:quotes"/> <filter> <xpath>/quote/product = widget </xpath> <to uri="mqseries:widgetquotes"/> </filter> </route> </camelcontext> </beans> 12

Message Filter : XML <camelcontext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:topic:quotes"/> <filter> <xpath>/quote/product = widget </xpath> <to uri="mqseries:widgetquotes"/> </filter> </route> </camelcontext> 13

Expressions & Predicates 15 Expression Languages BeanShell Python EL Ruby Groovy Simple JavaScript SpEL JSR 223 SQL OGNL XPath MVEL XQuery PHP 14

URIs, Endpoints and Components (120+) hnp://camel.apache.org/components.html activemq cxf flatpack jasypt activemq-journal cxfrs freemarker javaspace amqp dataset ftp/ftps/sftp jbi atom db4o gae jcr bean direct hdfs jdbc bean validation ejb hibernate jetty browse esper hl7 jms cache event http jmx cometd exec ibatis jpa crypto file irc jt/400 15

120+ components... language properties seda stream ldap quartz servlet string-template mail/imap/pop3 quickfix sip test mina ref smooks timer mock restlet smpp validation msv rmi snmp velocity nagios rnc spring-integration vm netty rng spring-security xmpp nmr rss spring-ws xquery printer scalate sql xslt 16

Message Filter : XML <camelcontext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:topic:quotes"/> <filter> <xpath>/quote/product = widget </xpath> <to uri="mqseries:widgetquotes"/> </filter> </route> </camelcontext> 17

Message Filter : Java from("activemq:topic:quotes ). filter().xpath("/quote/product = widget "). to("mqseries:widgetquotes"); 18

Message Filter : Java Complete package com.acme.quotes; import org.apache.camel.builder.routebuilder; public class MyRouteBuilder extends RouteBuilder { public void configure() { } } // forward widget quotes to MQSeries from("activemq:topic:quotes ). filter().xpath("/quote/product = widget "). to("mqseries:widgetquotes"); 19

Message Filter : Scala "direct:a" when(_.in == "<hello/>") { to("mock:a") } 20

Create CamelContext in Spring <camelcontext xmlns="http://camel.apache.org/schema/spring"> <package>com.acme.quotes</package> </camelcontext> 21

Create CamelContext in Java CamelContext context = new DefaultCamelContext(); context.addroutes(new MyRouteBuilder()); context.start(); 22

IDE support

IDE support (XML) 24

Recap - core concepts of Camel Enterprise Integra6on PaNerns Rou6ng Domain Specific Language (DSL) Endpoints & URIs Predicates & Expressions Components (lots of em!) Test Kit and much more... 25

Beans 26

Bean as a Message Translator from("activemq:incoming ). beanref("mybeanname, somemethod"). to("activemq:outgoing"); 27

Bean public class Foo { } public String somemethod(string name) { return Hello + name; } 28

Binding Beans to Camel Endpoints public class Foo { } @Consume(uri="activemq:cheese") public Object oncheese(string name) {... } 29

Binding Method Arguments public class Foo { } public Object oncheese( @XPath("/foo/bar") String name, @Header("JMSCorrelationID") String id) {... } for more annota6ons see hnp://camel.apache.org/bean- integra6on.html 30

Sending messages to endpoints public class Foo { @Produce(uri="activemq:foo.bar") ProducerTemplate producer; } public void dosomething() { if (whatever) { producer.sendbody("<hello>world!</hello>"); } } 31

Sending messages to endpoints public interface MyListener { String sayhello(string name); } public class MyBean { @Produce(uri = "activemq:foo") protected MyListener producer; } public void dosomething() { // lets send a message String response = producer.sayhello("james"); } 32

Fastest way to learn... Manning top- 15 year to date (2010) #10 #12

Fuse IDE: the fastest way to get riding! free eclipse based tool for Apache Camel & Ac6veMQ etc create projects, edit routes, run stuff, visualise, trace & diagnose hnp://fusesource.com/ 34

Cloud schmoud! 35

How we got here.. Opera6ng Systems Virtual Processes (JVM /.Net / LLVM) Applica6on Server Virtualisa6on of hardware Clouds Mul6- clouds? 36

Riding the camel into the cloud 37

Tips for Camel riding in the cloud Loose coupling! messaging is the best loose coupling both 6me and loca6on! what if you can t? discovery, load balancing & coordina6on can be hard... 38

What is Fuse Fabric? hnp://fuse.fusesource.org/fabric/ open source PaaS for running your integra6on solu6ons on any kind of cloud Apache License 2.0 no catches or hidden bits :) small & lightweight 39

Fuse Fabric overview Agent Fuse IDE for developers CXF endpoints ActiveMq Cluster Camel endpoints Fabric Fuse ESB Fuse Management Console for Operations 40

Fuse Fabric Features configura6on registry rolling upgrades easy integra6on with source control & releasing real 6me updates without restar6ng/reinstalling run6me registry discovery coordina6on federated services dynamic provisioning within the cloud containers / processes on exis7ng machines or spin up/down on cloud features in containers 41

How Fuse Fabric helps Camel Riders easy lifecycle, provision & versioning of Camel as bundles/wars/config files rolling upgrade of routes & support mul6ple version centralised environment configura6on use profiles to keep things DRY 42

Camel Fabric discovery & load balancing Invoking a remote Camel endpoint from("activemq:someinput"). to("fabric:myname") Exposing a Camel endpoint into the fabric from("fabric:myname:jetty:http://0.0.0.0:0"). to("bean:foo") 43

Camel - HA Routes Implements Master / Hot Standby routes To ensure only a single JVM runs a par6cular route at any point in 6me from("master:foo:someuri")... 44

Riding Camel in the cloud: Summary Camel rocks buy the book & try Fuse IDE Use messaging easy loose coupling in the cloud Fuse Fabric can help fine grained lifecycle, provisioning & configura6on HA Camel discovery & load balancing when you can t use messaging 45

What should I do next? Ride that Camel hnp://camel.apache.org/ Download Fuse IDE hnp://fusesource.com Fuse Fabric hnp://fuse.fusesource.org/fabric/ Don t get the hump! 46

Any Ques6ons? twiner: @jstrachan #fusenews hnp://fusesource.com 47