InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Merapi Project Utilizes Java to Expand the Desktop Capabilities of Adobe Air

Posted by Scott Delap on May 22, 2009

Sections
Development
Topics
Rich Internet Apps ,
Java ,
Rich Client / Desktop
Tags
Adobe Integrated Runtime ,
Flex ,
Flash

The Merapi project recently was open sourced.  Merapi is a technology that can be used as a messaging bridge between applications that run in the Adobe Flash player or Adobe AIR and applications written in Java.  Air's security sandbox allows some common desktop interactions like systray support, file access, etc.  However, it does not allow other operations such as access to USB devices or launching of native applications.  This is where Merapi comes in by creating a simple messaging framework to allow Flash, Flex and Air applications to communicate Java.   Java can then be used to proxy requests and interation with such sources. Sending messages can be done via a simple API:

var message : Message = new Message();
message.data = " Hello from Merapi Flex.";
message.type = "Reply";
Bridge.instance.sendMessage( message );

One of the higher profile uses of the new technology is in the Tesla Model S car:

...Merapi is a revolutionary solution for bridging traditional desktop and Web technologies, closing the gap between what has traditionally been a separation of the two. Merapi's key advantages include:
-- Access to hardware devices: Browser-based technologies (Adobe Flash, Microsoft Silverlight, AJAX) previously did not have native access to hardware other than microphone and Web cam.
-- Access to existing APIs: Merapi makes existing open source and commercial software accessible from the browser or from runtime engines such as Adobe AIR without the need for a server.
-- Improved core performance of an application.
Thanks by Adam Flater Posted
GPL3 by Roger Voss Posted
Re: GPL3 by 万 安平 Posted
Re: GPL3 by Adam Flater Posted
Re: GPL3 (is actually LGPL3) by Roger Voss Posted
  1. Back to top

    Thanks

    by Adam Flater

    Thanks for the coverage. There's also more on my blog about the release:

    adamflater.blogspot.com/2009/05/merapi-is-open....

    cheers
    -adam

  2. Back to top

    GPL3

    by Roger Voss

    We lost complete interest in Merapi when we saw it decided to go with GPL3 license.

    This licensing is the kiss of death per any manner of corporate update of this library.

    It's architecture ended up being frustrating anyway. What we wanted was a mini JMS-like message broker sitting on the Java side where multiple AIR apps (and/or other Java processes) could connect as clients (i.e., multiple clients). And that concepts like pub/sub topics would be supported.

    Looks like we can take BlazeDS servlet, drop it in to jetty, and embed jetty in the Java app to accomplish exactly that. Then we'll have a much more flexible solution than Merapi. BlazeDS has a basic intrinsic pub/sub messaging capability. It supports a persistent-style of Comet connection to enable message push. So bi-directional messaging can be accomadated.

  3. Back to top

    Re: GPL3

    by 万 安平

    Oh,Greate.

  4. Back to top

    Re: GPL3

    by Adam Flater

    Could you elaborate on your concerns about the license? It's licensed under LGPL3 not GPL3.. meaning, all you have to do is include our source (or link back to it). This does not require your source to be open or free.

    That said, it's not going to be the solution for every problem. Our goal is to start reaching many platforms in a ubiquitous manner. That leaves out using platform specific technologies to build the framework on. Also, we're looking to keep it very light weight. Blaze + Jetty is just a too heavy for many problems.

    Thanks for the feedback.
    -adam

  5. Back to top

    Re: GPL3 (is actually LGPL3)

    by Roger Voss

    Adam Flater clarified with me in private email exchange that Merapi is under LGPL3 - not GPL3. The Merapi google code web site is being adjusted to where the license is properly referenced as LGPL3.

    As such our company will get behind Merapi as the definitive open source solution for Java and AIR interprocess communication.

Educational Content

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.