ESB pilot project at the FMI



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

How To Integrate With An Enterprise Service Bus (Esb)

WELCOME TO Open Source Enterprise Architecture

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur

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

Replacing a commercial integration platform with an open source ESB. Magnus Larsson magnus.larsson@callistaenterprise.se Cadec

CERTIFIED MULESOFT DEVELOPER EXAM. Preparation Guide

RED HAT JBOSS FUSE SERVICE WORKS 6 COMPARED WITH MULE ESB ENTERPRISE 3.4

Introduction. About the speaker: 31 years old. Degree in Computer Science (BA) in Professional Java Developer ever since

ESB Features Comparison

Oracle Service Bus. Situation. Oracle Service Bus Primer. Product History and Evolution. Positioning. Usage Scenario

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

Real World Integration Challenges and Enterprise Service Bus (ESB)

Event based Enterprise Service Bus (ESB)

BEA AquaLogic Integrator Agile integration for the Enterprise Build, Connect, Re-use

Enterprise Service Bus Evaluation as Integration Platform for Ocean Observatories

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

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

IBM WebSphere application integration software: A faster way to respond to new business-driven opportunities.

Government's Adoption of SOA and SOA Examples

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

Combining Service-Oriented Architecture and Event-Driven Architecture using an Enterprise Service Bus

Implementing Enterprise Integration Patterns Using Open Source Frameworks

How To Build A Financial Messaging And Enterprise Service Bus (Esb)

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

Magnus Larsson Callista Enterprise AB

A standards-based approach to application integration

RED HAT JBOSS FUSE. An open source enterprise service bus

ESB and SOA Infrastructure

Finding Order(s) in the Chaos

GENERAL AMERICAN CORPORATION

Software Life-Cycle Management

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

MD Link Integration MDI Solutions Limited

Enterprise Service Bus

Universal Event Monitor for SOA Reference Guide

Methods and tools for data and software integration Enterprise Service Bus

AquaLogic Service Bus

Oracle SOA Suite Then and Now:

Delivering a platform-independent based ESB for universal connectivity and transformation in heterogeneous IT environments.

JAVA Technologies QUARTER 1 DESKTOP APPLICATIONS - ESSENTIALS QUARTER 2 NETWORKING AND OPERATING SYSTEMS ESSENTIALS. Module 1 - Office Applications

Enterprise Service Bus

SOA-14: Continuous Integration in SOA Projects Andreas Gies

AquaLogic ESB Design and Integration (3 Days)

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Increasing IT flexibility with IBM WebSphere ESB software.

The bridge to delivering digital applications across cloud, mobile and partner channels

COMPLEX EVENT DETECTION ON AN ENTERPRISE SERVICE BUS

Migrating Applications From IBM WebSphere to Apache Tomcat

ActiveVOS Server Architecture. March 2009

Oracle SOA Suite: The Evaluation from 10g to 11g

Introduction. C a p a b i l i t y d o c u m e n t : B i z T a l k S e r v e r

Microsoft BizTalk ESB Toolkit 2.1

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

HP Business Service Management

The Enterprise Java Internet Provider

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

Enterprise Service Bus Defined. Wikipedia says (07/19/06)

Objectif. Participant. Prérequis. Pédagogie. Oracle SOA Suite 11g - Build Composite Applications. 5 Jours [35 Heures]

Technical Track Session Service-Oriented Architecture

Spring Security 3. rpafktl Pen source. intruders with this easy to follow practical guide. Secure your web applications against malicious

Open Source ESBs for Application Integration (SOA Optional)

SOA CERTIFIED CONSULTANT

Understanding Application Servers

SAP INTEGRATION APPROACHES

IBM WebSphere ESB V6.0.1 Technical Product Overview

Creating new university management software by methodologies of Service Oriented Architecture (SOA)

The Service Revolution software engineering without programming languages

Building a Reliable Messaging Infrastructure with Apache ActiveMQ

Mule Enterprise Service Bus (ESB) Hosting

An introduction to SOA and the HP NonStop server environment

Son of SOA Resource-Oriented Computing Event-Driven Architecture

PROVIDING INSIGHT FOR OPERATIONAL SUCCESS

Developers Integration Lab (DIL) System Architecture, Version 1.0

Jitterbit Technical Overview : Microsoft Dynamics CRM

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE

Stock Trader System. Architecture Description

INTEGRATING ESB / BPM / SOA / AJAX TECHNOLOGIES

Part 2: The Neuron ESB

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

JAVA WEB START OVERVIEW

PROVIDING INSIGHT FOR OPERATIONAL SUCCESS

Presentation Outline. Key Business Imperatives Service Oriented Architecture Defined Oracle SOA Platform SOA Maturity/Adoption Model Demo Q&A

ATHABASCA UNIVERSITY. Enterprise Integration with Messaging

SDK Code Examples Version 2.4.2

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

The Way to SOA Concept, Architectural Components and Organization

The Challenges in Real Life ESB Deployments

Design Document. Offline Charging Server (Offline CS ) Version i -

The Move Is On To Open Source Integration Software

Government Service Bus

EAI OVERVIEW OF ENTERPRISE APPLICATION INTEGRATION CONCEPTS AND ARCHITECTURES. Enterprise Application Integration. Peter R. Egli INDIGOO.

ESB Versus ActiveVOS

Service Governance and Virtualization For SOA

Datatype Channel p. 111 Invalid Message Channel p. 115 Dead Letter Channel p. 119 Guaranteed Delivery p. 122 Channel Adapter p. 127 Messaging Bridge

Advancing Integration Competency and Excellence with the WSO2 Integration Platform

Enterprise Integration

This document gives an outline of Tim Ward s work on mobile phone systems

PEtALS Quick Start. PEtALS Team Roland NAUDIN - February

An Oracle White Paper March Guide to Implementing Application Integration Architecture on Oracle Service Bus

Transcription:

ESB pilot project at the FMI EGOWS 2008 Pekka Rantala Finnish Meteorological Institute

Contents 1) What is it? 2) Why do we want to look at it? 3) What did we set out to do? 4) What did we actually do? 5) How did it feel? 6) And what next?

What is an ESB? Enterprise Service Bus From Mule glossary: An architecture that allows different applications to communicate with each other by acting as a transit system for carrying data between applications within or outside your intranet. Typically the term ESB is used to denote the software infrastructure that enables such an architecture A messaging integration solution Canonical messages decoupling of disparate parts of a system so that everything only needs to communicate with the bus (Mostly) asynchronous communication: programming model considerations Most ESB implementations offer a wide selection of adapters or end points (JMS, file, ftp, socket,...) out of the box for applications' use

FMI production environment A large number of systems taking part in the production Various platforms: Unix, Linux, Windows Numerous technologies, languages etc. Some form of integration needed; would an ESB help? Some architectural plans

ESB pilot at the FMI: Mission To build a proof of concept: use an ESB as a notification channel of events concerning new data To find and assess possible benefits of using an ESB as a part of FMI's production environment To evaluate ease of deployment, ease of configuration and usage of two ESB implementations (Mule, Apache ServiceMix) The two products are Open Source ServiceMix not evaluated due to lack of time Will keep an eye on Spring Integration, that is still very much in the making To evaluate necessary integration work on already existing software Performance and maintenance issues decidedly left out of scope at this point

FMI ESB pilot: components Mule: an Open Source ESB, the back bone ActiveMQ, an Open Source JMS implementation: the primary communication channel Handles persistence of messages for guaranteed delivery Home grown (Mule) components: Two transformers to handle transforming of a properties file into a canonical message object A filter to assist in routing canonical messages based on their content

FMI ESB pilot: characteristics We use the bus for passing around messages about data, not the data itself None of the participant applications know about Mule: Input from CineSat & storage servlet via files Java Message Service (JMS) as a communication channel for Smartmet II workstation; standard JMS (JMS is a messaging standard that allows application components [ ] to create, send, receive, and read messages. It enables distributed communication that is loosely coupled, reliable, and asynchronous (Sun JMS Homepage) The data producing applications don't know Who is supposed to receive the message Whether anyone ever consumes the event

FMI ESB pilot: overview

Simple scenario: notify others of storing a set of meteorological objects

1 1) A user has edited a set of meteorological objects and asks the Smartmet II workstation to store them. The workstation sends the file(s) to a storage servlet

2 2) The servlet stores the file(s) and writes a descriptive.properties file of the storage event

3 3) Mule reads the.properties file and converts it into a canonical message...

4 4)...puts it into a JMS topic and

5 5) routes it according to routing rules to different subscribers

6 6) Kiosk flavoured Smartmet II Workstation receives the message, downloads the new set of Meteorological objects and updates its display to show it

What actually happened? We conveyed a message of a single storage event to one possible consumer of such events It is worth noting that any number of such consumers may (and generally do) exist From the storage agent's point of view this event was fire and forget We managed to monitor the message delivery by wiretapping the message channel

FMI ESB pilot: simple scenario II (inform the Workstation of a new satellite image) 1) CineSat produces a PNG image of some satellite data and writes a descriptive.properties file about the said PNG 2) Mule a) reads the file, b) converts it into a Canonical Message and c) sends it into a JMS Topic to be d) routed to the Workstation 3) Kiosk Workstation receives the message and does nothing currently, but should present a satellite image view with the corresponding analysis, if available; aggregation is a big part of message routing

FMI ESB pilot participants and integration work done Servlet for storing conceptual model XML files Added a filter to create and write.properties files based on the storage servlet's response ~ 1 day CineSat Modified a shell script to produce.properties files of newly created images ~ 1 day Smartmet II workstation JMS support was already built in the workstation Event monitor Tweaked bridging from canonical message format into workstation's native event model ~ 2 days Used Mule's console log Three in house built Mule components (two transformers and a filter) ~ half a day Summary: these integration steps were quite cheap

Conclusions An ESB might really help in certain scenarios Mule looks to be a quite promising ESB implementation Mule also has some convincing references Integration work was pretty cheap, typically a couple of days or a few hours per application

Conclusions: testing Easy to develop separately testable components Difficult to test the whole with truly meaningful results Are we testing the right thing?

Thoughts and concerns Event Driven programming model Messaging integration is by nature event driven Technology risks Handling of unpredictable loads may be a problem A good candidate to be a single point of failure Some coupling still You need to be very careful in versioning your canonical message type

Experiences with Mule Configuration rather clear, especially with the 2.0.* version's XML Schema based syntax proper XML tools can assist a whole lot Documentation quality ranges from poor to excellent (2.0.* documentation still a work in progress) Javadoc, code, Google Extending Mule is extremely easy Problems with JMS Connector; workaround found

Experiences with Mule: configuration Declarative forming of message routes helps bring clarity to a complex system; all logical routing can be kept in a single file Spring based configuration is a huge plus (for those who like Spring) Visualizations are easy to create from the configuration XML

What next? Seems that we will employ an ESB, possibly Mule At least for Smartmet II workstation's benefit Dump/debug utility for analysing error situations User feedback channel via JMS Chat for Meteorologists Will probably try out ServiceMix, Spring Integration Serious testing ahead, as well as evaluation of maintenance costs Possibly a trial to orchestrate an execution chain from raw data into an (image) Product

Resources http://en.wikipedia.org/wiki/enterprise_service_bus Mule home: http://mule.mulesource.org/ Sun JMS home: http://java.sun.com/products/jms/ Apache ServiceMix home: http://servicemix.apache.org/ Spring integration home: http://www.springframework.org/spring integration Enterprise integration patterns: http://www.enterpriseintegrationpatterns.com/

Thank you (Easy) questions? Contact: pekka.rantala@fmi.fi