Download - Fuji Overview
Project Fuji - The Next Generation of OpenESB
http://fuji.dev.java.net
Andreas EgloffLead Architect SOA/BISun Microsystems, Inc.
Sun Confidential: Internal Only
Agenda
• Background• Features, features, features• Conclusion• Architecture Sneak Peek• Screencast/Demo
Sun Confidential: Internal Only
Background
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
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
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!
Fuji Goals
• Agility +• Flexibility +• Ease-Of-Use =• Productivity
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
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...
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
Sun Confidential: Internal Only
Interesting Features
Web-Based Composition
Sun Confidential: Internal Only
Service Composition in a Browser
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
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
Sun Confidential: Internal Only
Interesting Features
Composition using a DSL (domain specific language)
Sun Confidential: Internal Only
Hello World 1 – Simple Routing
rss “finance-feed”file “archive”
route do from “finance-feed” to “archive”end
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
Complexity (Sample Scenario)A picture speaks a 1000 Words
Complexity40 words to compose in the DSL
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
Sun Confidential: Internal Only
Interesting Features
Enterprise Integration Patterns
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 ...
Sun Confidential: Internal Only
Interesting Features
Interceptors and Aspects
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
Sun Confidential: Internal Only
Interesting Features
Modular and Light Weight
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
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*
Sun Confidential: Internal Only
Interesting Features
Topology Options
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, ...
Homogenous ClusterGlassfish Clusters
Federated Clusters or InstancesTransparent Service Proxies
Sun Confidential: Internal Only
Conclusion
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
Sun Confidential: Internal Only
Architecture Sneak Peek
Sun Confidential: Internal Only
Fuji Architecture
Sun Confidential: Internal Only
Screencast / Demo
37
Thank You
More info, screencasts etc:http://fuji.dev.java.net/
Andreas Egloff
Sun Confidential: Internal Only
Backup Slides
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
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
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.
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