I have to credit my good friend Adam Flater for giving me the opportunity to write this post. He's the brainchild of my topic, and the reason that I've gotten myself fully involved with the Open Source project for Mirapi.
Some Background
To understand why Mirapi has the potential to impact the development (and user-value) of hybrid web/desktop applications. We've all been struggling for a while to think of a new buzzword that is the 2008 equivalent to earlier "client-server" or "thin client" applications.
Adobe has made the first move to really have an impact in this space with the release of the Adobe Integrated Runtime (AIR), giving less-technical "web" developers a solid platform to create desktop software applications using the technologies and tools that they are familiar with. (It isn't that designers and developers that build for the Web are a bunch of dummies, quite the contrary!) Desktop software development just takes different skills to do well, including the download, install, update and removal processes required to get your Warez out to market and onto users' computers.
The benefits of this new generation of application are varied, and when most industry folks talk about why take this approach, you typically get the following:
- Can work online or offline
- Can store data locally
- "Feels" like software
- Allows you to store assets locally so you can re-use them in the user experience (video for example)
- Provides for local file system access
- Easy installs and upgrades for users
- Some OS Integration (Via AIR API)
Solving the Problem of Adobe AIR and OS Integration
There is, however, one thing that I (and many others including my pal Adam) think is missing is the ability for the AIR application to access the operating system and utilize it the way that a desktop application "should" be able to. I don't blame Adobe for not cooking full OS integration into the platform. They would be crazy to do so. It is all about security. While AIR doesn't have the limited sandbox that the flashplayer has, it still has pretty strict boundaries around what you can or can't do. When you compare it to a pure desktop application, AIR seems a bit limited.
What are these things you speak of?
Allowing your AIR application to:
- Integrate with external devices (such as a plugged in cell phone, or any other USB or serial device)
- Offload data crunching to the Operating System
- Integration with other software applications (plugins, etc)
- Did I say integration with external devices? :)
Now that we've gone this far, let's back up to "pre-AIR" times, when Adobe first launched the "Apollo" platform. Apollo was, of course, the code name for AIR when it was in development (and a greek god... get to that in a minute)
At the time Apollo was released, I was part of the team working on a project with Adobe and the folks at eBay. This project was the first iteration of what is now publicly available as "eBay Desktop." As with all projects, when kicking around strategy talk, you start thinking about the future and "out there" user scenarios. With the promise of Apollo and with an interesting model like eBay's you can imagine the thoughts flying around and landing on white-boards.
Also at the time of Adobe's release of the first alphas of Apollo, the community started talking about other potential uses for AIR. This is where Adam nailed a pretty cool concept.
Adobe "Apollo" needed a helping hand. In mythology, Apollo's twin sister was named Artemis. Adam got to work, pulled in the help of some friends and an open source project named Artemis was born.
With the release of Adobe AIR, the same folks behind Artemis have started a new branch that is designed to work with the release of the fully-baked Adobe Integrated Runtime. This evolution takes on the name Mirapi. In true geek fashion, the name comes from a powerful volcano on the island of Java.
Mirapi: So, what the hell is it?
Mirapi is a java companion to the Adobe Integrated Runtime. It runs in tandem on a user's machine, providing a direct bridge between applications built to run in AIR and the power of the underlying operating system. At it's root, it's the ability to make AIR apps that run like desktop applications.
Based on a very flexible plugin architecture, developers can leverage the OS by writing java plugins to Mirapi, and build their Flex, Flash and AJAX applications for Adobe AIR, and utilizing Mirapi to make them do things that AIR just can't do by itself.
We are working to get the first public development release out the door, as well as putting up a Web site, FAQ, and all that other good stuff. I wish the whole Mirapi team had more time right now, but we are all working on projects of one kind or another and up to our ears in existing stuff. No fear though! Mirapi will be available soon, and with the excitement created by the announcement at the On AIR event in Atlanta, it looks as if the community is going to get behind the project and really help us mix up the Rich client desktop battle!
Some of the current projects that members of the Mirapi project are working on:
- USB device connectivity: Using a Web Service-Connected AIR Application to connect to, communicate with, dignose and repair mobile devices
- "Piano Hero" - The title says it all. Piano battling over the Web using USB keyboards
- Connecting a line of Robot Toys via bluetooth or USB to send and recieve data in order to connect physical toy robots with the online game environment (this one's patented folks!)
For more information, check Adam's post announcing the birth of Mirapi and this post about the death of Artemis and rise of Mirapi.


1 comments:
in 2003-4 i used flash as replacement for tcl/tk in linux, firing system commands using ssh apache@localhost via php from flash 5.
this worked, yet obv required webserver.
later, to get around this, i used a basic java socket to fire system commands from flash w/o webserver - code here
i don't really do this sort of thing anymore; meanwhile it's neat to see the problems being solved for a wider audience!
Post a Comment