Spring Integration - basics Martin Toshev, Diyan Yordanov Cisco Systems.

Slides:



Advertisements
Similar presentations
Content Integration Architectures November 16, 2005.
Advertisements

Federal Student Aid Technical Architecture Initiatives Sandy England
COMPARING DIFFERENT SOFTWARE INTEGRATION TECHNOLOGIES Author Jones Olaiya Ogunduyilemi (Internet & Software Technology)
1 Chapter 7 IT Infrastructures Business-Driven Technology
JMS Java Message Service Instructor Professor: Charles Tappert By Student: Amr Fouda.
EMEA 2 Enterprise Integration Erik Doernenburg ThoughtWorks, Inc.
Page 1Prepared by Sapient for MITVersion 0.1 – August – September 2004 This document represents a snapshot of an evolving set of documents. For information.
ECSE Software Engineering 1I HO 7 © HY 2012 Lecture 7 Publish/Subscribe.
SOA, EDA, ECM and more Discover a pragmatic architecture for an intelligent enterprise, to maximize impact on the business Patrice Bertrand Software Architect.
September 2011 At A Glance The API provides a common interface to the GMSEC software information bus. Benefits Isolates both complexity of applications.
Enterprise Integration Patterns 1.SOA and Patterns 2.Messaging 3.Using the EIP language to design message flows.
Messaging Technologies Group: Yuzhou Xia Yi Tan Jianxiao Zhai.
© 2006 IBM Corporation SOA on your terms and our expertise Software Overview IBM WebSphere Message Broker Extender for TIBCO RV.
GOVERNMENT SERVICES INTEGRATION INDUSTRY SOLUTION.
SOA, BPM, BPEL, jBPM.
C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.
Run your project with Quadruple A Copyright 2007 TL Consulting, LLC. All Rights Reserved. 1 FEA and Content Integration The Gilbane Conference in DC 6.
Chapter 9 Moving to Design Part 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
ESB Guidance 2.0 Kevin Gock
FIORANO SERVICE BUS The Cloud Enablement Platform
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
Confidential Proprietary Click to edit Master text styles Second level Third level Fourth level Fifth level Software Architecture April-10 Click to edit.
Client Server Technologies Middleware Technologies Ganesh Panchanathan Alex Verstak.
Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)
第十四章 J2EE 入门 Introduction What is J2EE ?
Lecture 15 Introduction to Web Services Web Service Applications.
Red Hat JBoss Fuse Service Works - A Common Framework
(Business) Process Centric Exchanges
National Institute of Science & Technology Architecture of Message Oriented Middleware Anindya Kumar Jena [1] Architecture of Message Oriented Middleware.
Architecture of Message Oriented Middleware [1]
7-1 Management Information Systems for the Information Age Copyright 2004 The McGraw-Hill Companies, Inc. All rights reserved Chapter 7 IT Infrastructures.
CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University March 7, 2005.
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
Server to Server Communication Redis as an enabler Orion Free
CERN IT Department CH-1211 Genève 23 Switzerland t Brief introduction to Messaging Systems Daniel Rodrigues.
WebMethods Architecture By webMethods_KB. EAI Architecture Concepts Introduction  EAI IT Landscape  Integration Evolution Basic Concepts  Messaging.
Enterprise Integration Patterns CS3300 Fall 2015.
SOA-10: Event-Driven SOA: EDA in an SOA World Ken Wilner Vice President of Technology.
Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?
Message Broker
Session 7: JMS, JCA, JSF Dr. Nipat Jongsawat.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks MSG - A messaging system for efficient and.
Dyalog’08. Conga, SSL and WebServices Morten Kromberg Dyalog’08 - Elsinore.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Spring RabbitMQ Martin Toshev.
Integration Patterns in BizTalk Server 2004 Integration Patterns Explained What are integration patterns? What patterns does BizTalk Server 2004 provide.
1 Enterprise Service Bus Mojtaba Akbarzadeh Nov 2015.
Overview of SOA and the role of ESB/OSB
Christian Stiller Technical Account Manager SOA-23: Enterprise Integration Patterns in Sonic ™ ESB.
1 SERVICE ORIENTED ARCHITECTURE ANTHONY GACHANGO D61/70547/2008 DIS 601.
Messaging with Web Services Enhancements 2.0 Benjamin Mitchell Independent Consultant Microsoft Regional Director – UK Blog
Messaging. Literature Hohpe & Woolf, 2004 –We will just scratch the surface Bærbak Christensen2.
December 9, 2004 EC511 Java Pet Store Demo Chandra Donipati.
September 28, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
Best SMS Gateway Software Provider Company in India By Aruhat Technologies.
Design of a Notification Engine for Grid Monitoring Events and Prototype Implementation Natascia De Bortoli INFNGRID Technical Board Bologna Feb.
Kuali Enterprise Notification Tell Me What I Want And Need To Know Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst,
Activiti in an Event- driven architecture Robin Bramley Chief Scientific Officer, Ixxus.
Export Services Deep Dive
Spring Integration - basics
CS 493/693: Distributed Systems Programming
Chapter 9 – RPCs, Messaging & EAI
Express Spring Integration
The future of distributed systems architecture
Message Queuing.
ITAS Cash Management Integration to an ERP
Demo for Partners and Customers
Presentation transcript:

Spring Integration - basics Martin Toshev, Diyan Yordanov Cisco Systems

Agenda Overview of Software Integration What are the Enterprise Integration Patterns ? What is Spring Integration ? Enterprise Integration Patterns implementation in Spring Integration

Overview of Software Integration Enterprise companies have many software applications developed in different languages and run on different platforms. These applications need to communicate. Even the big ERP systems can not live alone and should be integrated with other systems. Application integration needs to provide efficient, reliable and secure data exchange between multiple enterprise applications in order to support common business processes and data sharing. EAI Suite – suites that encompass messaging, business process automation, workflow, portals, and other functions. Key players in this marketplace are IBM WebSphere MQ, Microsoft BizTalk,TIBCO, WebMethods, SeeBeyond, Vitria, CrossWorlds, and others. Many of these products include JMS as one of the many client API’s they support.

What are Enterprise Integration Patterns ? A collection of design patterns for use in enterprise application integration and message-oriented middleware Understanding the patterns allows you to: o build effective messaging systems o develop applications that provide the ability to integrate with another systems in a cleaner manner using messaging o gain insight on how to integrate completely different applications using messaging Several frameworks already implement these patterns (Spring Integration, Apache Camel, Guarana DSL etc.)

There are seven categories of enterprise integration patterns (organized in a catalogue) : o Messaging Systems o Messaging Channels o Message Construction o Message Routing o Message Transformation o Messaging Endpoints o System Management

An open-source framework for Enterprise Application Integration Builds on top of the Spring framework Supports message-driven architectures where IoC (inversion of control) applies to runtime concerns (the messaging and integration concerns are handled by the framework, so business components are further isolated from the infrastructure and developers are relieved of complex integration responsibilities)

4 different applications should be integrated: - 3 clothing manufactures – Adidas, Reebok and Nike - 1 reseller that buys from them

direct communication using application-layer sockets enforces high coupling between applications

communication using shared files can lack timeliness may not enforce data format sufficiently

communication using a shared database can lack timeliness the database can turn into a performance bottleneck

communication using RPC although reduced - coupling is still an issue

messaging – delegates communication details to the messaging system

EIP in Spring Integration Use case: reseller wants to buy from Nike (they are aware of the messaging system)

EIP in Spring Integration Messaging Systems o Message o Message Channel

EIP in Spring Integration Messaging Channels o Point-to-Point Channel

EIP in Spring Integration Message Construction o Command Message

EIP in Spring Integration DEMO – Simple Channel

EIP in Spring Integration Use case: reseller wants to buy from Nike (reseller is aware of the messaging system and Nike is not)

EIP in Spring Integration Messaging Systems o Message Endpoint

EIP in Spring Integration Messaging Endpoints o Service Activator

EIP in Spring Integration DEMO – Service Activator

EIP in Spring Integration Use case: reseller wants to buy from Nike (both Nike and the reseller and not aware of the messaging system)

EIP in Spring Integration Messaging Endpoints o Messaging Gateway

EIP in Spring Integration Message Construction o Request-Reply

EIP in Spring Integration DEMO – Messaging Gateway

EIP in Spring Integration Use case: reseller wants to buy from Nike using JMS (both reseller and Nike are not aware of the messaging system)

EIP in Spring Integration Messaging Channel o Channel Adapter

EIP in Spring Integration DEMO – Channel Adapter

EIP in Spring Integration Use case: reseller wants to buy from Nike and Nike requires authentication from the reseller

EIP in Spring Integration Messaging Systems o Pipes and Filters

EIP in Spring Integration Messaging Routing o Filter o Content Filter

EIP in Spring Integration DEMO – Pipes and Filters

EIP in Spring Integration Use case: reseller wants to buy from Nike and Nike wants to send a notification on order receipt

Demo – Notification With Retry EIP in Spring Integration

Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (using publish-subscribe channel)

EIP in Spring Integration Messaging Channel o Publish-Subscribe Channel

EIP in Spring Integration DEMO – Publish-Subscribe

EIP in Spring Integration 10 minute BREAK

EIP in Spring Integration Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (using recipient list)

Messaging Systems o Message Router

Message Routing o Recipient List

EIP in Spring Integration DEMO – Recipient List

EIP in Spring Integration Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (Reebok and Adidas require authentication with monitoring)

Messaging Channels o Dead Letter Channel o Invalid Message Channel EIP in Spring Integration

Messaging Channels o Guaranteed Delivery EIP in Spring Integration

System management o Message Store EIP in Spring Integration

DEMO – Invalid/Dead Letter Channel

EIP in Spring Integration Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (they accept different types of messages)

EIP in Spring Integration DEMO – Transformer

EIP in Spring Integration Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (the reseller wants to explicitly specify the manufacturer)

Message Routing o Content-based Router

EIP in Spring Integration DEMO – Content-based Router

EIP in Spring Integration Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (reseller wants to send a batch request and receive a response)

Message Routing o Splitter o Aggregator

Message Construction o Correlation Identifier EIP in Spring Integration

DEMO – Splitter/Aggregator

EIP in Spring Integration Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (ordering should be monitored and managed externally)

Message Routing o Wire Tap o Control Bus EIP in Spring Integration

DEMO – Management/Monitoring

Messaging Channels o Messaging Bridge o Message Bus EIP in Spring Integration

Messaging Channels o Datatype Channel EIP in Spring Integration

Message Construction o Document Message o Event Message EIP in Spring Integration

Message Construction o Return Address EIP in Spring Integration

Message Construction o Message Expiration o Format Indicator – enables the sender to tell the receiver the format of the message EIP in Spring Integration

Message Construction o Message Sequence EIP in Spring Integration

Message Routing o Dynamic Router EIP in Spring Integration

Message Routing o Resequencer o Composed Message Processor EIP in Spring Integration

Message Routing o Scather-Gather o Routing Slip EIP in Spring Integration

Message Routing o Process Manager o Message Broker EIP in Spring Integration

Message Transformation o Envelope Wrapper o Content Enricher EIP in Spring Integration

Message Transformation o Claim Check EIP in Spring Integration

Message Transformation o Normalizer o Canonical Data Model EIP in Spring Integration

Messaging Endpoints o Messaging Mapper o Transactional Client EIP in Spring Integration

Messaging Endpoints o Polling Consumer o Event-Driven Consumer EIP in Spring Integration

Messaging Endpoints o Competing Consumers o Message Dispatcher EIP in Spring Integration

Messaging Endpoints o Selective Consumer o Durable Subscriber EIP in Spring Integration

Messaging Endpoints o Idempotent Receiver – an endpoint that is able to receive and distinguish between duplicate messages EIP in Spring Integration

System Management o Detour EIP in Spring Integration

System Management o Message History EIP in Spring Integration

System Management o Smart Proxy EIP in Spring Integration

System Management o Test Message o Channel Purger EIP in Spring Integration

Summary Design carefully your integration solutions – think of maintainability, performance, scalability and other critical factors that are of higher priority Hopefully – you have a better insight on how to integrate different applications/components (and in particular - using Spring Framework) You can find this presentation and the associated source code in GitHub (

Q&A Thank you !

References

Enterprise Integration Patterns – Designing, Building and Deploying Messaging Solutions, Gregor Hohpe, Bobby Woolf Spring integration (springsource.com) Implementing enterprise integration patterns (springsource.com) patterns-part-0/ Getting started with Spring Integration v2 and Enterprise Integration Patterns – A Simple Example using File and Mail Adapters

References Getting started with Spring Integration v2 and Enterprise Integration Patterns – A Simple Example using File and Mail Adapters Solving the Enterprise Integration Puzzle with Spring Integration integration-puzzle-with-spring-integration/ Spring Integration – Enterprise Integration Patterns (Vikas Kumar’s blog) Enterprise Application Integration (wikipedia category of articles) Understanding Enterprise Integration Patterns

References Spring Integration in 10 minutes Spring Integration Samples Spring Integration Sample – Just Add Maven maven/ Spring Integration: A new addition to the Spring portfolio maven/