17 Jan 2008

Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, …, ouch!!

Author: ceefour | Filed under: Ajax, Cool, Enterprise, JRuby, Opinions, Praises, Rails, Ruby, Tips, Tools, Web 2.0

You know what, I really wanna learn this whole JavaEE-related thingy……

For some reason it’s unavoidable……. it’s bound to be touched by me……

 Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, …, ouch!!

You see, the trend is going RIA. MVC is going away. AJAX ain’t gonna compete. At least not fully. And will lose in many ways in respect to something like Adobe’s Flex. (Unfortunately there’s not much competitor better than Flex, and fortunately it’d probably be “standard” in the near future). Esp. with Flex going open source. Flex will need a backend, since it’s not a server-side product. There is Flex LiveCycle Data Services ES (what a name!!) by Adobe. There’s also BlazeDS open source. There’s also the excellent WebORB, which is free and open source for Rails and PHP. Oh yeah, it’s free for Rails! icon smile Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, …, ouch!!

Sure you can go with plain Rails, but it’s maybe too much work, when WebORB already does it for you.

This is wonderful, but it only gives you plain RPC. It’s traditional (legacy?) synchronous RPC camouflaged as “asynchronous”.

Real asynchronous power comes from Messaging. And the buzzword is now Comet. The latest Jetty already supports Comet technique, which can continuously “streams” asynchronous messages and data to (instead of being pulled) your client-side web UI… (that might just be a Flex app)

Simple messaging is fine, but the real power of messaging comes from features that had existed for a long time it’s actually legacy, such as publish/subcribe, message routing, and reliable delivery and timeouts. Fortunately, we have ActiveMQ, and yes we have activemessaging library for Ruby and Rails plugin.

Unfortunately messaging servers have different protocols. Although there are “universal” protocols like Stomp and AMQP (backed by RabbitMQ), you can also use an ESB like Mule or OpenESB or Apache ServiceMix if your component needs to talk to components with a different protocol. Oh yes they’re from the Java world.

Even as we’re embracing THE ActiveRecord, the Java community coming up with an also-cool solution called JPA, supported by all popular Java ORM tools such as Hibernate and TopLink; Microsoft strikes back with the invulnerable LINQ.

Yet we still have too many queued messages and database records to handle, we need to know how to make use of them. EDA comes to the rescue, like what Esper does. And of course BI and reporting tools such as JasperReports, Pentaho and Ruby’s Ruport.

We like REST‘s simplicity over WS-* for enterprise-y SOA apps. Microformats is very nice with just a little Hpricot and Mofo goodness. And thanks to Mechanize or Scrubyt or openkapow and the good ole’ RSS, mashup is always getting easier. Let’s hope Atom’s APP really does take off as well. But sometimes we want more flexibility, we want BPM-powered workflow. No worries, we have JBoss’ jBPM. Our Ruby community also has OpenWFEru!

Everybody hates the login form, especially if it comes more often than we brush our teeth. We want SSO, be it CAS, OpenID, SAML, or plain LDAP (with OpenLDAP), we want it now.

And no, I haven’t forgotten Android, nor iPhone, nor Symbian, nor Windows Mobile. The mobile space is getting more, not less, fragmented. All because they know the market is growing. Everybody wants a pie. (me too!)

You’ve heard him. Not all startups are profitable. Especially not when we’re fighting with each other. The “enterprise”, and corporate, has money… (unfortunately not all of us do, no matter how much we [all] want it…)

Users are getting more demanding and demands are getting more complicated, so are the technologies. We probably should embrace these technologies and the people who work on them (whether paid or unpaid or voluntary or forced…!) more so than we criticize and demotivate each other.

Ruby is a great tool, and so is Java (JVM) and so is JRuby and its close mates like Groovy, Scala, Jython, and Rhino with ECMAScript 4 and E4X support. Some people are also starting to fall in love with Erlang.

Oh well… This isn’t a rant. It’s just a brain-dump from me. Hope somebody finds it useful. Good morning guys icon smile Ruby on Rails, Java EE, RIA, Adobe Flex, Comet, Messaging, EDA, SOA, …, ouch!!

UPDATE: Clarifications regarding WebORB and messaging protocols.

No related posts.

Related posts brought to you by Yet Another Related Posts Plugin.

Tags: 286, 291, 299, 309, 311, 322, 325, 327, 330, 331, 332, 333, 350, 351, 353, 358, 366, 368

  • James Strachan

    If you want to do messaging with Rails you don’t need to wait for AMQP to be finished (which might take a long time! :-) or limit yourself to only AMQP based message brokers (of which there are only a small number and of limited quality and features).

    You can use ActiveMessaging today and use the STOMP protocol which works with ActiveMQ as well as any JMS provider via StompConnect so you can use legacy messaging systems like MQ Series or TibCo too together with any AMQP provider if you really wanna use those.

    Also no ESB is required for working with Rails and messaging via ActiveMQ or Stomp.

  • Hendy Irawan

    Thank you James for the clarification!

  • Mark Piller

    Thank you for mentioning WebORB. I would like to add that the product is also available for free for Java and provides unlimited connectivity between Flex, Flash clients and Java POJOS, EJBs and Spring beans.

  • Hendy Irawan

    Thank you Mark. I’ve updated the post regarding WebORB.