Andi Egloff's Weblog

Adventures in technology

Main | Next page »

http://blogs.sun.com/andi/date/20091005 Monday October 05, 2009

Spring DM, Project Fuji and OSGi - thoughts on "three" peas in a pod

Project Fuji icon

Just posted the below blog entry on the aquarium, pointing to the Spring DM support we have in Project Fuji (see the wiki on installing Spring DM framework bundles and the example OSGi bundle)

Sujit has published a blog entry showing a nice example of how to easily leverage Spring DM within OpenESB v3 / Project Fuji; both to either expose a service, or to call existing services on the "bus".

The "bus" (a.k.a. normalized message router) adds the option of a message based, loosely coupled and asynchronous contract to an OSGi environment such as Felix or GlassFish v3. The simple API mechanism allows the (interface centric) OSGi services to implement and invoke message based services. Fuji then includes a host of advanced constructs, including the ability to route, transform and augment these messages.

If you're curious about the architecture and design of Project Fuji you might notice that there are no fancy Fuji specific extensions; it just leverages Spring DM's natural abilities to work well with OSGi services. This, as you might have guessed, is by design; Project Fuji not only leverages OSGi to implement it, but it also allows OSGi (and frameworks that build on it) as a programming model.

Now, I have seen the formation of camps on both sides, the "OSGi, it's what's for breakfast - it solves all problems" and the "YAGNI OSGi" sides. As usual, the right answer for your needs typically needs a bit more nuance, and I'll play my typical Swiss role here: OSGi is great for frameworks to give modularity and dynamism, for application programming models you may not need to use it, or not use it directly. And if you do, it probably will increase your productivity if you use a model such as iPojo or Spring DM (or even OSGi DS) on top.

There is no question that adding OSGi to your application programming model increases complexity. OSGi is an "exact science", meaning that if you know it and apply it correctly, it will do exactly what you want. If you don't have time to dive into the details, maybe your needs are simple, maybe you're rapidly prototyping, it can get in your way very quickly.

I think where a lot of rhetoric falls short is in not distinguishing between use of OSGi in the application development model; and the use of it in an underlying framework. Let's take GlassFish v3 or even Project Fuji as examples: just because it is built using OSGi, it doesn't mean you're forced to develop your applications with it. You can continue to develop Java EE apps "as is", you can write simple POJOs, JRuby, you name it; it's just that the containers that load your code now are more modular and dynamic.

http://blogs.sun.com/andi/date/20090814 Friday August 14, 2009

A look back at JavaOne 2009

As I keep referring to some of the items we did for OpenESB at JavaOne, I'll just summarize some of the artifacts.

I was "lucky" enough to get on stage for the technical keynote with Bob Brewin to show how we used Project Fuji (OpenESB v3) to put together the live application "CluedIn" for J1, using the whole Sun middleware stack.

It was quite an experience, and I had several teams (especially WebSpace server and OpenESB teams) put a lot of effort into making this not just a demo, but something that goes live. The way it works at Sun is that you only get to know a few weeks before the show that your proposal is "on" - hence the quotes around "lucky" ;).

The following days I presented a few sessions:

TS-4839 - Enterprise Integration Patterns in Practice

View more documents from aegloff.

This session I did with Bruce Snyder from SpringSource, he showed how Apache Camel can be used, whilst I showed how IFL from Project Fuji can be used. That went pretty well, my only challenge was reading slide cues off of a small private laptop screen in split screen mode, I recommend using the larger J1 monitors.

TS-5341 - Rethinking the ESB: Lessons Learned from Challenging the Limitations and Pitfalls

View more documents from aegloff.

This presentation I did with my colleague Frank Kieviet. The intent is that folks gain some insight into why frameworks choose to do things a certain way, and hopefully to give you some criteria to evaluate and choose frameworks; so we don't expect everyone to go out and implement their own ESB using these lessons. Several of the lessons translate to frameworks in general and not just ESBs, it might be interesting to do one that focuses solely on how to address and overcome some of the concerns levied against ESBs.

BOF-5004 - OSGi and the Enterprise Service Bus: Friend or Foe?

This was an interesting presentation in a discussion format I did with Guillaume Nodet from ServiceMix / Progress Software, Kevin Conner from JBoss and Keith Babo from Red Hat. Unfortunately the audio in that room was really bad and we had a hard time hearing some of the audience questions; on the bright side it turns out that OSGi and ESBs are pretty good friends ;)

Just as I thought I was done with presenting, Arun caught me for a quick "roaming reporter" video blog

Long live JavaOne!

http://blogs.sun.com/andi/date/20090708 Wednesday July 08, 2009

Another Dose of Usability, Please

My better half started a new blog; if you have any interest in software usability you might want to keep an eye out as I've already seen a glimpse of a dozen or so drafts :)

Tammie Egloff's Usability Blog

http://blogs.sun.com/andi/date/20090420 Monday April 20, 2009

On the road to the next generation of OpenESB - Fuji Milestone 5

We've been having fun (and been incredibly busy) with Project Fuji, and now we pushed out the download for Milestone 5! (M5 Detail Page)

So what's new since the last round of screencasts?

More Built-in enterprise integration patterns

  • Scatter Gather
  • Routing Slip
  • Content-Based Routing (m4)
  • Wire Tap (m4)

Aspects (configurable interceptors) in the context of a messaging layer, including out of the box

  • Policy aspect
  • Logging aspect (m4)

Also a couple of new service types we've started for

  • email
  • REST

As you might know from previous episodes, you can use Fuji with any text editor of choice plus Maven; but we also have plug-ins to enhance your experience with syntax highlighting and code completion

  • Much enhanced Web tooling for service composition
  • First "release" of Eclipse Tooling
  • Enhanced NetBeans Tooling

To get an impression of what this looks like and what you can do with the web tooling have a look at the 2-part hello world example Kirill created.

Part 1: Building Fuji from scratch, simple "note taking" application example
Note that if you download the Milestone zip you can skip the check-out and build steps.

Part 2: Expanding the application, EIPs, tour of the web composition

We're still working on additional write-ups and showing off each cool feature as we race towards JavaOne, so keep your peepers peeled!

http://blogs.sun.com/andi/date/20090417 Friday April 17, 2009

It's that time between Devoxx and JavaOne... Need a little boost?

I enjoyed this video of a cool surprise for onlookers at Antwerp central station; if you've been to Devoxx the location might look familiar albeit less christmassy; it also might make you reminisce about the great time you had at Devoxx ;). Don't fret, lots of us are hard at work preparing for the next big show to satisfy that java conference crave...

http://blogs.sun.com/andi/date/20081021 Tuesday October 21, 2008

Fuji Milestone 2 released - Screencast and Downloads

If you've been following the OpenESB community in regards to Project Fuji you know we've been busy adding a lot of powerful capabilities leveraging (amongst others) the benefits of OSGi, JBI and Maven. It's now time to show how these new capabilities can be used together.

To demo milestone 2 we have chosen a more traditional integration scenario (explained in the screencast below).

Milestone 2 Demo Scenario

This should illustrate that Fuji is not just an "RSS piperator", but a very flexible way to link together any kind of system and protocol - and an easy way to define and link together services.

Have a look at the Fuji Milestone 2 Screencast to get an impression of the new capabilities.

Fuji Milestone 2 Screencast

Next, download milestone 2 and try it out yourself with the Fuji Milestone 2 step-by-step instructions

Note we couldn't fit all new features into one screencast and demo - so look out for further screencasts, particularly on interceptors and more ESB topology options. If you're wondering what is happening with the web based visual GUI, do not fret: that is coming along nicely too and you'll hear a lot more soon :)

Some of the highlights in this release (from the Milestone 2 page and the readme):

  • Enhanced support for Enterprise Integration Patterns
    • Split
    • Aggregate
    • Message Filter

  • New interceptor support which allows cross-cutting concerns such as
    logging, auditing, and security (to name a few) to be addressed in
    a modular fashion. Services can be enriched with additional
    functionality without changing the service implementation.

  • Lots and lots of new NetBeans support to make developers more
    productive. Great new editing features for IFL and service
    configuration.

  • Introduction of a "proxy" bundle which allows the ESB to extended
    through a distributed message bus.

  • A new "Reactive Runtime" feature, where the platform detects
    application changes and automatically refreshes the deployed version
    of an application with updates.

  • More service types
    • Database
    • SMTP
    • FTP
    • HL7

  • IFL language enhancements
    • Nested route definitions
    • Support for inline and external configuration
    • Added EIP keywords: split, aggregate, filter

You may also want to check out our new and improved Fuji portal page to hopefully satisfy your curiosity with further background info, screen casts, joining the community, how to check out and build yourself etc.

So where do we go from here? The current plan (with the usual caveats) is to shoot for an early access release around JavaOne 2009, with a release in the second half of 2009. Obviously we will continue to publish milestones along the way to get early feedback from the community.

Let us know if you have feedback on Fuji!

http://blogs.sun.com/andi/date/20081016 Thursday October 16, 2008

InformIT interview on Project Fuji and OpenESB

InformIT interviewed Keith and I and we talk about Project Fuji and OpenESB, including a whole slew of things such as OSGi, Maven, DSLs, EIP. It was an interesting format with no pre-set topic and a full blown professional production crew shooting this. I think we got into the swing of things after a while, have a look!

Project Fuji and Open ESB - Part 1

Project Fuji and Open ESB - Part 2

They actually shot this interview at JavaOne earlier this year, so it's interesting to see how it is still very relevant to Fuji Milestone 2 (which we're presenting next Wednesday 10/22/2008 in the OpenESB Innovation Series).

http://blogs.sun.com/andi/date/20080715 Tuesday July 15, 2008

Podcasts on Fuji and Open ESB from the Jazoon GlassFish Day

GlassFish day


Alexis recorded the session I presented at the GlassFish day in Zuerich and split it into 2 GlassFish podcasts. Sound quality is a little crackly in the beginning, it gets a little better after that :)


Episode 13 covers Open ESB v2 and what we're doing with the current production version of this platform (which is included in Java CAPS 6 and will form the basis of GlassFish ESB v2 later this year)

Episode 14 gives a quick introduction to the future platform research we're doing with Project Fuji - including OSGi, JBI and domain specific languages (DSL)

And here is the presentation as a pdf: Open ESB v2, Open ESB.next and Project Fuji

http://blogs.sun.com/andi/date/20080619 Thursday June 19, 2008

Open ESB and Fuji go to Jazoon and "JavaOne afterglow"

Next week I'll be showing off Open ESB and Project Fuji in good ol' Switzerland and Belgium. Handy Jazoon is 15 minutes from where I grew up, so I will also get to see old friends and family! And no I'm not calling you "old" :). I also used to live and work in Belgium, so I'll be sure to toast a beer or two to good old times!

GlassFish community day 2008 at Jazoon
It's free, just register. Find the schedule here

Monday June 23rd 2008
WhenWhatWhereSite
11:00 - 11:45Open ESB v2, and Open ESB.next, Project FujiArena 7GlassFish day

Jazoon Conference in Zuerich, Switzerland

Wednesday, June 25th 2008
WhenWhatWhereSite
14:00 - 14:50Integration Profile for GlassFish v3Arena 9Jazoon

This is where you'll hear about and see demos of OSGi, JBI, IFL - the domain specific language for integration, GlassFish v3, Open ESB and more

JavaOne Afterglow in Affligem, Belgium

Friday, June 27th 2008
WhenWhatWhere
11:30 - 12:30Project FujiDe Montil

http://blogs.sun.com/andi/date/20080609 Monday June 09, 2008

Open ESB joins the GlassFish community!

Open ESB and all its sub-projects are now under the GlassFish community! So what does that mean? It means we are sharing the same light weight governance model and strive to achieve or surpass the same level of transparency and community involvement in those projects. Come participate on our mailing lists or contribute to our components!

GlassFish, thanks for having us :)

http://blogs.sun.com/andi/date/20080529 Thursday May 29, 2008

Fuji GUI sneak peek: Fingers too tired to type DSLs?
How about Enterprise Integration in a browser?

The last few weeks we've been showing how easy it can be to compose services and route messages to create integration applications with the domain specific language in Project Fuji, check out the original Fuji screencast if you haven't already.

The natural question that came up regularly after showing the demo was: are you working on any visual tooling on top of the DSL? Well, the answer is a resounding YES; one goal of keeping the artifacts simple to start with is that adding tooling on top is much simpler.

I've been working with Kirill in St. Petersburg to experiment with web based tooling for Fuji. So here is a little sneak peek screencast showing how to build the same scenario as in the Fuji screencast using visual tools in a browser.

Hot off the developer's desk, so no fancy voice overs yet :) but I think it speaks for itself.

The technologies used? It's just CSS layers and canvases, no plug-ins to install. We're still working on integrating this with the OSGi and JBI based Fuji runtime; so stay tuned! Also remember that whilst the demo shows an RSS feed, we have over 30 adapters and containers already that can be leveraged, ranging from legacy systems to modern protocols. Have ideas of how this can be improved? Join Project Fuji!

Project Fuji Web Tooling Screencast

Does this mean that we're moving away from full blown IDEs? Not at all, for doing the heavy lifting of writing services a fully featured IDE is the tool of choice; for composing services however and maybe simple scripting a low overhead approach looks promising. Actually I would also like to push some boundaries here to see whether JWebPane could bring the two closer together...

http://blogs.sun.com/andi/date/20080521 Wednesday May 21, 2008

Why is OSGi on everyone's tongue
- or why you should take the red pill

In a JBoss blog on "OSGi - The placebo that will rejuvenate this industry (just ask your vendor)" Sacha paints a picture of everyone just following the latest buzz-word and (at least in title) not much substance.

So is that really the end of the story?

Hold on, wouldn't that be a really strange story for Sun which had quite a mixed and turbulent affair with OSGi in the past? And now we (as in Sun) are barrelling ahead with native OSGi support in GlassFish v3 as well as Open ESB with Project Fuji... Doesn't seem to make sense that they'd just change their minds for a cheap thrill of name dropping...

I'll admit it now. before digging into it I was very skeptical of OSGi; not that I didn't like the premise of abolishing classpath hell, but oftentimes enterprise quality features come at a large cost of complexity. Also the worry was if the "API" based services of OSGi would mesh well with the message-based, mediated services architecture we require for our SOA / integration platform with lofty goals and a lot to live up to. Project Fuji is all about looking at every aspect of our platform and making it more approachable and flexible, so if a technology doesn't add enough there is no way I'm going to add it.

Now, I'm completely sold. It turns out the OSGi spec does its core job very well and in a very stable fashion; plus it actually is surprisingly straight forward for our platform to take advantage of without being overly intrusive. In fact to start with it only required one minor enhancement (adding some additional entries in the jar's manifest.mf) to make our existing adapters, containters as well as applications run in OSGi enabled environments.

Also it turns out that the current standard for message based, mediated exchanges - Java Business Integration (JBI) - sits very well on top of OSGi and in fact our experiences so far in Project Fuji indicate that the specs add features to each other that really have the potential to bring out the best in both. We simply made our JBI framework implementation an OSGi bundle which then can listen for bundle deployments it should service..

What we gain from OSGi in Fuji

  • Take control of classpath hell - by being very explicit about what "services" (interfaces) to expose from a jar (bundle) and in turn declaring exactly what external services and their versions we consume from other bundles it creates a very robust way of managing dependencies and easily allows for multiple versions without conflct
  • Sizes to fit your problem. Only installs the containers / adapters needed, no need to add complexity or overhead with parts of the system you don't need
  • Easy to dynamically add features to the platform. We leverage a whiteboard pattern for example to add interceptors within the message routing.
  • Trivial to create a stand-alone distribution that can be zipped up and installed anywhere. The well defined dependencies of your application and the OSGi enabled pieces allow us to easily find and package all the required pieces for a given application with one command/click.
  • Allows us to focus on the real value of the platform and leaves the lower level grunt work of a component model to a very robust solution with multiple implementation choices. The core runtime implementation of Fuji on top of OSGi is currently under 300K!
  • The ability to safely exchange optimized payload representations (such as POJOs) between loosely coupled services becomes a reality
  • More deployment options, easy to run on any OSGi enabled runtime, small size allows flexibility to embed even in platforms wtihout OSGi out of the box
And we're only scratching the surface here, we're planning to leverage more features of OSGi!

Some of what OSGi currently gains with Fuji

  • Mediated model allows for easily adding platform value-add such as auditing, security, routing features ...
  • A message based, very loosely coupled service layer can make for more stable production system with lower maintenance; it also meshes well with other SOA systems.
  • Inherent scalability without explicit coding of a SEDA based architecture; threads are not tied to specific requests, components choose the optimal way to process the messages
  • Interoperability of any component plugged into this layer; standard contract for exchanging messages without prior knowledge of the provider or consumer
  • More choice of adapters and containers, from multiple vendors; combined with interoperability this can allow for best of breed in a unified platform
  • A very productive way of defining routing / message flows between services using common patterns that closely match the problem domain by using the Integration flow language (IFL) - a domain specific language (DSL)

Now also throw in all the capabilities of an application server getting modularized and natively supporting OSGi; as the GlassFish team is doing with GlassFish v3, and Fuji gains even more capabilities it can leverage to add scripting, web container, ejb, comet etc... support; without having to create one huge deployable that you may only use 10% of... (hint: stay tuned for what we're cooking up with GlassFish ESB v3 as well ;) ).

Now with the above said, I don't expect all our users to rush out and learn the deepest ins and outs of OSGi. Just like JBI, I primarily see this as an enabling technology for the platform, only if you want to extend the platform itself would you typically touch it directly. As an example I'd expect users to develop simple scripts or POJOs and for example use Spring DM to consume and provide services; so you inherit the advantages of the platform without necessarily having to explicitly touch the underlying technologies.

Coming back to the original blog I am curious how easy it will be to leverage the OSGi-on-the-side story and "don't use it directly" approach JBoss seems to be talking about so far, I would personally like to see Fuji on top of JBoss with an easy way to natively leverage all it's capabilties in the near future as well :)

http://blogs.sun.com/andi/date/20080511 Sunday May 11, 2008

The power of JBI, OSGi and language oriented programming:
Screencast of Open ESB v3's Project Fuji

Wow! It's been a great week at JavaOne. I'm glad we're getting some great constructive feedback on what we're doing in Open ESB v3 with Project Fuji in making a services and integration platform much more productive and approachable.

Project Fuji is the new core integration stack at the heart of Open ESB v3 and the technlogy preview shows goodies such as a domain specific language (DSL) for integration, a JBI enabled OSGi runtime and simple yet powerful Maven enabled tooling.

We've been demoing the technology preview in our session, demo pods and to anyone who wanted to see it - and I have yet to run into someone who wasn't impressed with how quick and easy it is. Better yet, some excited souls are starting to see and think about what else could make it even more powerful.

You can see the demo for yourself in the screencast Keith recorded during JavaOne - he's using his best announcer voice :)

Project Fuji Screencast

In a few minutes it shows how to poll from an RSS feed, run it through a JRuby filter, then send results to an instant messaging client as well as to a file.

Personally I find it very satisfying and empowering to be able to realize a scenario like this in minutes in a straight-forward fashion that is close to the way I think about the problem - rather than hours or days and potentially having to figure out how to make the tooling and technologies fit such an integration challenge.

Project Fuji logo

http://blogs.sun.com/andi/date/20080503 Saturday May 03, 2008

JavaOne 2008 - A Crazy Year for Java CAPS and Open ESB!

JavaOne 2008 is nearly upon and we've been very busy bees over the last year!

On top of the job as lead architect for Open ESB I also took on the job of lead architect for Sun Java CAPS 6 (composite application platform suite) which is slated for release this quarter.

This is Sun’s first commercial suite that includes the JBI based Open ESB runtime which brings the full power of this open source community and its partner ecosystem to our commercial offering.

The new service layer Open ESB adds to the suite is fully integrated with the rest of the suite, so it can fully leverage the new powerful annotated JSR 181 pojo model and a wide array of JCA resource adapters (RAs). It truly manages to deliver on an open, standards based platform that can take advantage of the rest of the Sun stack and its powerful features; it uses a standard Netbeans 6 and GlassFish v2 as the IDE and the integration server runtime respectively for example. All that innovation and we managed to make it evolutionary as well! Existing Java CAPS application will continue to run on the new platform.

So what else do we have in store? More Open JBI components are in the pipeline to be released on top of the upcoming release 6.

We’re also looking ahead much further and we’ll be showing off a technology preview of the core stack for Open ESB v3, called Project Fuji.

Project Fuji logo

Stay tuned for a lot more content here and on the Fuji site by JavaOne and swing by our booths in the pavilion. For those interested in what we’re cooking up with Project Fuji I will be giving a technical session with Keith on Wednesday: See you there!

TS-6385 Integration Profile for GlassFish Project v3
Andreas Egloff, Keith Babo
Wednesday May 07, 09:30-10:30
Moscone Center, Esplanade 304/306

Sun Campus Invaded!

I went up to the Santa Clara campus a few weeks ago to present some of the cool things we've been working on for JavaOne. To my surprise the campus had been overrun.... by dolphins!

Presumably Sakila and her many cousins checking out her new home...

Sakila dolphins on Santa Clara Sun Microsystems Inc. campus

Just hanging out!

Sakila dolphins on Santa Clara Sun Microsystems Inc. campus


Valid HTML! Valid CSS!

Andreas Egloff is the Lead Architect for SOA / Business Integration at Sun Microsystems, Inc.
This is a personal weblog, I do not speak for my employer.