fuji overview

43
Project Fuji - The Next Generation of OpenESB http://fuji.dev.java.net Andreas Egloff Lead Architect SOA/BI Sun Microsystems, Inc.

Upload: eduardo-pelegri-llopart

Post on 20-May-2015

1.131 views

Category:

Technology


2 download

DESCRIPTION

OpenESB meets OSGi. Fuji, the next Gen.

TRANSCRIPT

Page 1: Fuji Overview

Project Fuji - The Next Generation of OpenESB

http://fuji.dev.java.net

Andreas EgloffLead Architect SOA/BISun Microsystems, Inc.

Page 2: Fuji Overview

Sun Confidential: Internal Only

Agenda

• Background• Features, features, features• Conclusion• Architecture Sneak Peek• Screencast/Demo

Page 3: Fuji Overview

Sun Confidential: Internal Only

Background

Page 4: Fuji Overview

Sun Confidential: Internal Only

Where is OpenESB at now?

• OpenESB v2 is a platform for SOA and Integration. • 100% Open Source, licensed under CDDL. • An active, responsive and growing community

>e.g. mails on the users list: Jan '09 - 883 Feb '09 - 918 March '09 - 1023

• Enterprise quality distributions and support offering> GlassFish ESB v2 Product

• Project Fuji forms basis of next generation platform

Page 5: Fuji Overview

Sun Confidential: Internal Only

A Growing Component Ecosystem

• Logic, event processing and orchestration> IEP, BPEL, Camel, Java EE, POJO, Scripting, WLM

• Other Interfaces> eMail, File, FTP, HTTP, JMS, JMSJCA, LDAP, RSS, SIP,

Scheduler, LDAP, Notification, Asterisk, Exec, HL7, SNMP, TCPIP, UDDI, XMPP

• EIS Interfaces> EJB, CORBA, DCOM, CICS, IMS, MSMQ, MQSeries,

Screen Scraping, SWIFT, SAP

• Databases and data manipulation> Database, ETL, Data mashup, Encoding, MDM, XSLT

Page 6: Fuji Overview

Sun Confidential: Internal Only

Motivation for Direction of Fuji

• Popularity of simple, productive solutions > A growing number of developers value high productivity and

simplicity over all-encompassing but complex

• Increase productivity of existing users> Whilst existing GlassFish ESB v2 apps work unchanged

• Make it relevant to more uses and technologies> Many developers do tasks that are ideally suited to our platform> ... but they don't necessarily think of it as “integration” or “SOA”

• Align with and leverage GlassFish v3• Innovate!

Page 7: Fuji Overview

Fuji Goals

• Agility +• Flexibility +• Ease-Of-Use =• Productivity

Page 8: Fuji Overview

Sun Confidential: Internal Only

Example Uses of the Platform...

• Easy to interact with new protocols and systems> Familiar, consistent service view> E.g. RSS, Instant Messaging, FTP etc. all just plug-ins

> over 40 adapters already available

• Help realize SOA, light-weight SOA (WOA), EDA• Enable Mash-ups

> Easy to expose wide range of data sources> Data mashup; choice to combine data on client or server

• Patterns to solve common problems> Extensible built-in constructs to realize patterns

Page 9: Fuji Overview

Sun Confidential: Internal Only

What Properties Make it Interesting?

• Convention, Configuration, Code ...> ... In that order for higher productivity

• Service based through and through> Inherent Scaling without explicit coding> Looser coupling, easier maintenance

• Grows with the application> Pick-and-choose only the features required, from rapid

prototyping to enterprise or internet scale use cases

• Easy to add mediation> Cross-cutting concerns addressed outside of business

code; security, auditing, logging, caching...

Page 10: Fuji Overview

Sun Confidential: Internal Only

What Communities can Benefit?• Scripting developers

> Leverage with any language on the Java Platform

• Many frameworks on the Java Platform> Java EE, OSGi, POJO, Spring – use to expose and call services

• GlassFish community> Leverage the containers and services of GlassFish v3

• REST and light-weight SOA (WOA) Developers> Leverage Jersey and Fuji to easily get back-end data to web apps

• SOA Developers, Integration Developers> Contemporary, productive features enrich the SOA story

• EDA Developers> First-class support for event routing, complex event processing

Page 11: Fuji Overview

Sun Confidential: Internal Only

Interesting Features

Web-Based Composition

Page 12: Fuji Overview

Sun Confidential: Internal Only

Service Composition in a Browser

Page 13: Fuji Overview

Sun Confidential: Internal Only

Web UI Features

• All-in-one interface for service composition> Service Definition> Service Wiring> Configuration> Deployment

• Extensible palette of services• Version control support allows for portability across

composition and development environments> Develop services with appropriate tooling

Page 14: Fuji Overview

Sun Confidential: Internal Only

Web UI Advantages

• No need for a full blown IDE just to (re-)use services• “Get started in five minutes” now feasible, no IDE

install required • Appropriate tooling options for differing roles

> Architect composes, developer codes

• Tooling options for different preferences and skills> A visual view might suit the “casual technologist”> A programmer might prefer editing in textual view, but

can still visualize the flows

Page 15: Fuji Overview

Sun Confidential: Internal Only

Interesting Features

Composition using a DSL (domain specific language)

Page 16: Fuji Overview

Sun Confidential: Internal Only

Hello World 1 – Simple Routing

rss “finance-feed”file “archive”

route do from “finance-feed” to “archive”end

Page 17: Fuji Overview

Sun Confidential: Internal Only

Hello World 2 – Pipe-and-Filter Concept

> “think unix pipes” about how messages flow

email "work-mail"jruby "filter-and-transform"xmpp "notify-im"

route do from "work-mail" to "filter-and-transform" to "notify-im"end

Page 18: Fuji Overview

Complexity (Sample Scenario)A picture speaks a 1000 Words

Page 19: Fuji Overview

Complexity40 words to compose in the DSL

Page 20: Fuji Overview

Sun Confidential: Internal Only

Domain Specific Language Advantages

• Designed to enable “Top-down” design• Simplicity

> Productive even with simple text editor, command line> Syntax highlight, code completion in multiple IDEs

(NetBeans, Eclipse today)

• Extensible Pattern Constructs> Out of the box productivity, users can extend

• Matches up well with any general purpose language> Attractive to more communities on the Java Platform

Page 21: Fuji Overview

Sun Confidential: Internal Only

Interesting Features

Enterprise Integration Patterns

Page 22: Fuji Overview

Integration Patterns

• Patterns as a first-class citizen in the architecture> Popular way to model common solutions

http://www.enterpriseintegrationpatterns.com> Available both in our visual composition and text (DSL)

• Existing patterns> Pipes & Filters> Broadcast> Aggregate> Content-Based Router

• Upcoming patterns> Publish-Subscribe> Scatter-Gather

> Message Filter> Split> Wire Tap

> Routing Slip> Many more, Extensible ...

Page 23: Fuji Overview

Sun Confidential: Internal Only

Interesting Features

Interceptors and Aspects

Page 24: Fuji Overview

Aspects in the Messaging Model• Aspects can be added/removed/configured at runtime

> Aspects are pre-built, configurable interceptors• Aspects address cross-cutting concerns for message based

Services• Out of the box examples

> Logging Aspect> Policy Aspect > Coming: Caching, Auditing ...

• Users can write their own interceptors and aspects and enrich the community

Page 25: Fuji Overview

Sun Confidential: Internal Only

Interesting Features

Modular and Light Weight

Page 26: Fuji Overview

Sun Confidential: Internal Only

Modularity Framework

• Core framework is an OSGi bundle• Runs on GlassFish v3 and any OSGi R4 framework

implementation (Felix, Equinox, Knopflerfish) • Microkernel size

> ~300 KB

• More flexibility in partitioning functionality and embedding for given communities and applications

Page 27: Fuji Overview

Light Weight in What Way?

• Light weight in download, runtime footprint> Micro kernel architecture > Size to your needs, add features and components

dynamically• Light weight in development process

> Simplified tooling options, productivity features• Light weight to add mediation

> Aspects to apply policy, interceptors managed at runtime• Light weight in administration and maintenance

> Enhanced versioning*, manage routing*

Page 28: Fuji Overview

Sun Confidential: Internal Only

Interesting Features

Topology Options

Page 29: Fuji Overview

Topology Options

• Support for > SOA style

> Explicit exposing and calling of remote services> “Federated ESB” option

> Transparent if consumer/provider co-lcoated or remote> Distributing the ESB at the messaging (NMR) level

> Linking both of (homogenous) clusters* and (heterogeneous) instances> * Once GlassFish v3 releases cluster support

• Added pluggable distribution mechanism> First implementation uses the GlassFish mechanism –

GMS / Project Shoal> Can plug in HTTP, JMS, ...

Page 30: Fuji Overview

Homogenous ClusterGlassfish Clusters

Page 31: Fuji Overview

Federated Clusters or InstancesTransparent Service Proxies

Page 32: Fuji Overview

Sun Confidential: Internal Only

Conclusion

Page 33: Fuji Overview

Project Fuji is...

• Revolutionary...> Radically light weight and modular> Simplifies for productivity at every layer> Enriches the GlassFish v3 offering> Capabilities targeted at new communities

> Scripting, POJO, Spring, OSGi developers ...> Leverage from Web 2.0 applications> REST and Web Oriented Architecture (WOA / ROA)

• Evolutionary...> Leverages and extends existing component ecosystem> Leverages existing enterprise features> ... but enhances and simplifies how they are used

Page 34: Fuji Overview

Sun Confidential: Internal Only

Architecture Sneak Peek

Page 35: Fuji Overview

Sun Confidential: Internal Only

Fuji Architecture

Page 36: Fuji Overview

Sun Confidential: Internal Only

Screencast / Demo

Page 37: Fuji Overview

37

Thank You

More info, screencasts etc:http://fuji.dev.java.net/

Andreas Egloff

Page 38: Fuji Overview
Page 39: Fuji Overview

Sun Confidential: Internal Only

Backup Slides

Page 40: Fuji Overview

Sun Confidential: Internal Only

Service Composition

• Top-down design model • IFL : Integration Flow Language

> Domain-specific Language for Enterprise Integration

• Web-Based Composition Tool> Drag-and-drop integration

Page 41: Fuji Overview

Sun Confidential: Internal Only

Programmatic Interface

• Expand the range of languages and frameworks that can interact easily with our platform

• Dynamic Languages> Scripting the platform> Ruby, Groovy*, JavaScript*, PHP*, etc.

• POJOs, Spring Framework> Spring Dynamic Modules> Beans consume and provide services

Page 42: Fuji Overview

Sun Confidential: Internal Only

Service Artifacts

• Simplify user interface to service artifacts• Convention, Configuration, Code ...

> ... In that order!

• Maven used extensively> Quick start with archetypes> Tooling is portable across IDEs

> NetBeans, Eclipse, IDEA, etc.

Page 43: Fuji Overview

Sun Confidential: Internal Only

Integration Runtime

• Build on robust core in OpenESB v2> Same components> V2 applications deploy directly into Fuji

• Interceptors• Distributed Message Bus