mule
Mule 2 and Beyond
Ross Mason
CTO, Co-founder,
MuleSource Inc.
Agenda
?What is Mule?
?Introduction to Mule 2
–New platform
–New features
?Beyond Mule 2
–OSGi
?What else is going on with Mule?
–Review
–MuleForge
–MuleIDE
What is Mule?
Overview
What is Mule ESB?
Mule 2 - Buzzwords
?“Service Container”
?“Routing and Mediation Engine”
?“Runtime environment”
?“Light-weight, Embeddable”
?“Integration Platform”
?“SOA backbone”
?“Distributed Application
Environment”
Spring features in Mule
?Namespace Handlers
–Schema based Con?guration
–Xml no longer contains framework class name –Much more descriptive
–IDE / Editor friendly: code completion ?AOP Support
–New validation and monitoring possibilities ?Improved Transaction Integration ?JDBC / DAO support
Namespace Handlers
?Mule 1.x Con?guration
1
2
3
4
5
6
7
8
9
10
11
12
13
Namespace Handlers
?Mule 2.0 Con?guration
–No class names
–Properties are de?ned in the schema
–Validation that the properties are set correctly
Using different modules (namespaces)
xmlns:xsi="https://www.360docs.net/doc/4d2349831.html,/2001/XMLSchema-instance" xmlns:spring="https://www.360docs.net/doc/4d2349831.html,/schema/beans" xmlns:jdbc="https://www.360docs.net/doc/4d2349831.html,/schema/mule/jdbc/2.0"> . . . Configuration Repository ?Con?guration can be managed centrally or per server. ?Support for multiple repositories. ?Mix and match con?gurations for different apps. Under the Covers ?No more Mule Manager –Replaced by ManagementContext ?Better Lifecycle support –Registries manage object lifecycle ?Performance Optimization ?Improved QA ?OSGi Ready Mule Streaming ?Allows services to consume very large events in an ef?cient way ?Event payloads are not read into memory ?Simple routing rules based on event meta-data still possible ?Can combine Streaming and non-streaming endpoints ?Support for Streaming Transformers… –on the todo list ?Streaming support in Mule 2: –SOAP, File, FTP, FTPS, TCP, SSL, HTTP and HTTPS Streaming Example ?Streaming components are hosted in the streaming-model ?In Mule 2.0 the Streaming behaviour can be ‘discovered’ ?Can mix non-streaming components by adding different component models Calling out to another service ?Using Java interface bindings Nested Router Bindings . . . . public interface CreditChecker { public void validate(PaymentDetails pd) throws ValidationException; } Implementation public class AmulzonService implements BookstoreService { private CreditChecker creditChecker; public ProcessedOrder process(Order order) { ProcessedOrder po = new ProcessedOrder(order); try { creditChecker.validate(order.getPaymentDetails()); po.setSuccessful(“Order was processed sucessfully”); } catch (ValidationException e) { po.setFailed(e.getMessage()); } return po; } // setCreditChecker(..), getCreditChecker()} Looking ahead Beyond Mule 2.0 What is OSGi? ?Open Services Gateway Initiative ?Dynamic module system for Java ? A sort of Java OS ?SOA within your app! Benefits of OSGi ?Plug & Play! ?Change parts of your app. dynamically without requiring restarts ?Components dynamically discover each other for collaboration ?Increased security: more isolation between modules of your app.