May 22, 2009

Prism: The Future of Web Apps?

Mozilla Labs continues to turn out interesting projects. Prism, a single-serving browser for web apps, extends and protects your online applications.

Mozilla Labs recently released the 1.0 beta of Prism. Let’s take a look at Prism and see where it might fit in with your Web strategy or personal desktop.

What is Prism?

In simplest terms, Prism is a XULRunner-based browser designed to run a specific Web application. It gets rid of all the “clutter” around the application (all the menus, extra toolbars, etc.) and provides what the Moz folks call a “distraction free browser.” (Unfortunately, Prism does nothing to block annoying phone calls and other distractions. There’s only so much the Mozilla developers can do, apparently.)

Prism isn’t for standard Web browsing. If you want to bop around the Web checking Facebook, posting to Twitter, and browsing random Google search results, then Firefox is still the browser to use.

But if you’re using a Web-based application as part of your daily workflow, like Gmail, Google Docs, Salesforce.com, or one of the 37 Signals family of applications, then Prism is exactly what you want.

Why do I want a Site Specific Browser?

The most obvious benefit with Prism is that it separates the Web application from the rest of your browsing experience. A typical browsing session may involve opening dozens of tabs and multiple windows while browsing — finding your Web application amidst all the clutter can be annoying at best. By segregating out the Web application(s), you can work (or play) more efficiently.

Of course, this also means it separates your Web application from crashes — at least when something else brings down Firefox. Web application developers have gotten pretty skilled at writing applications that automatically back up your data, so you don’t lose that email, blog post, or document when the browser crashes. But, even when the Web app does save your data, it’s still disruptive to lose your place and have to start over again.

Other browsers, like Chrome, have introduced a similar feature to separate processes between tabs. That’s great for standard Web browsing, but still means that the application feels like part of your Web browsing session instead of working as a standalone application.

As a user, SSBs simply make life more convenient.

For Web application developers, Prism is a blessing because it means the ability to write an application that works with a standard Web browser but to also be able to ship a “standalone” application like the folks over at Zimbra. Because Prism is based on Firefox, it should be trivial to target Firefox and Prism, and even ship your own bundled application based on Prism.

It’s also a nice alternative for IT shops that want to give users access to Web based ticketing systems and so on, without giving users full access to the Web. You can opt to display (or not) the location bar within Prism, but if the location bar is visible, it’s read-only. So you can copy and paste the URL in the location bar, but it’s not possible to modify it.

Finally, Prism includes a JavaScript API that can be used to customize the Web application and provide desktop integration. This means that application developers can add additional functionality that makes their Web-based application more like a native desktop application.

Limitations

Prism does have a few limitations that make it not entirely suitable for all use cases. One downside to Prism is that it doesn’t offer the full range of Firefox’s features. You can’t easily install extensions within Prism, which means no Greasemonkey scripts for Web apps run within Prism or other extensions (like Google Gears) to enhance your favorite apps.

Prism also does away with bookmarks, history, and the ability to tweak preferences the way you can in Firefox. Why do you need this additional functionality when you’re running a specific Web application? Maybe you don’t, but many useful Web applications benefit from bookmarks and the ability to browse through the session history. For example, help desk personnel might be able to work a bit more effectively by bookmarking tickets that are accessed frequently.

On Linux, Prism doesn’t have quite all the functionality available to Windows and Mac OS X users, though the missing features are minimal. This seems to be more of a platform limitation than intentional feature disparity.

The ability to minimize to the system tray is limited to Windows, even though GNOME and KDE both support similar functionality. On Windows and Mac OS X, the icon in the Dock or System Tray (for Mac and Windows, respectively) can be updated to provide notifications — like the number of unread items in Google Reader.

Getting Started with Prism

Prism is available in two “flavors,” an extension for Firefox or a standalone application that can be deployed whether or not Firefox is installed on the system.

To get Prism, either install the extension or grab the archive that includes Prism. For Linux users, all that’s required is to uncompress the tarball in a directory under $home, or other desired directory, and run the prism executable in the main directory.

This will pop up the Prism dialog, which will allow you to configure your Web application. Provide a URL and name for the application, and check the “Desktop” box if you’d like an icon for the application on your desktop. Prism will grab an icon for the application from the site’s favicon if it has one, but you can also set a custom icon.

Once all that’s done, Prism will fire up the site and you can go to town.

Alternately, if you’re using the Extension, it’s even easier to create a Prism-ized version. Once you’re on the site that you want to use, just go to Tools -> Convert Website to Application. You’ll see a dialog remarkably similar to the standalone version of Prism. Once you’re done with that, again, you’ll have a desktop shortcut for the application that you can use to run the app as if it were a regular desktop application.

Note that if you choose to run the extension, you must be running a supported version of Firefox. If you like to run the latest Firefox testing builds, this might be a problem for you. And, of course, the extension requires a copy of Firefox. That might not be desirable if you’re trying to restrict users to a specific Web site.

If you’re feeling fancy, you can provide users with a Webapp Bundle to use Prism. This is a zip file that holds a configuration file, icons, and (optionally) a JavaScript file to modify Prism’s default behavior or add functionality.

There’s information on creating these on the Mozilla Prism wiki. Basically, you just need to create a file called “webapp.ini” with information about the Web site/application you want the user to run and then compress it with Zip. You can also include (if you’d like to get really fancy) JavaScript and CSS files to modify Prism.

Though you can’t easily install extensions with Prism, you can add the same kind of functionality with a script included with the Webapp Bundle.

Learning More

For more on Prism, see the Prism section on the Mozilla Developer Center. You can also poke around the Mozilla Labs Prism group and search the Web a bit, you can find tutorials on hacking Prism and extending Extensions to work with Prism.

For a while, development on Prism had appeared to have stalled, but it looks like Prism is on its way to maturity — which is a good thing for those of us who spend far too much time using Web applications.

Joe 'Zonker' Brockmeier is Managing Editor for Linux Magazine and the openSUSE Community Manager for Novell. His blog is at zonker.opensuse.org.

source link

Posted by staff at May 22, 2009 09:22 AM