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……
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!
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!
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
UPDATE: Clarifications regarding WebORB and messaging protocols.
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.