VMware Infrastructure 3 Book Excerpt and Author Interview
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
Tracking change and innovation in the enterprise software development community
Posted by Scott Delap on Jun 01, 2007 11:11 AM
As part of their developer days activities this week Google announced a new offline web application API Google Gears. The FAQ defines Gears as:Gears is licensed under the New BSD license allowing the embedding of the Gears runtime API into third party software with minimal restrictions. At present installation is in the form of a browser extension (around 700k in size) that supports IE and Firefox on Windows, and Firefox on Linux and OS X. Support for Opera and Safari is in development.
Digging deeper into the three components provided:
The LocalServer is a specialized URL cache intercepting requests and serving them locally when needed. There are two types of "resource stores" of urls. The most basic of the two is the ResourceStore which allows applications to store ad-hoc user data files associated with a url like a PDF or image. Such cached urls must be explicitly updated by the application. The second type of resource store is called the Managed ResourceStore. This consists of a set of urls defined by a manifest. This set may be automatically updated when the manifest's version number changes. Gears will periodically check if a managed resource store has been updated.
Database
In addition to a url cache Gears also includes a SQLite database instance. Data stored in the database is partitioned by domain and can not be accessed from a different domain other than the one storing the information originally. The syntax to access the database from Javascript looks very similar to JDBC:
resultSet = db.execute (
'INSERT INTO MYTABLE VALUES (?, ?, ?) WHERE id=?',
[1, 2, 'three four', 5]
);
while (rs.isValidRow()) {
console.log(rs.fieldName(0) + " == " + rs.field(0));
rs.next();
}
rs.close();
WorkerPool
The final element included in Google Gears is the WorkerPool API. The documentation defines the reason for its inclusion as:
The WorkerPool behaves like a collection of processes instead of individual threads. Workers do not have access to the DOM only Javascript functions. An onmessage callback is used to perform activities when the worker receives a response.
In terms of initial adoption in Google own web applications, Gears has already been integrated into Google Reader:

The GWT team has also put together the Google API Library for Google Web Toolkit . The Gears API integration takes advantage of GWT's JavaScript Native Interface (JSNI).
Google would like for Gears to become a standard for offline web application development as is indicated in an interview by ZDNet's David Berlind with Google's Linus Upson:
As a first step in those efforts Adobe has announced support of Google Gears. Berlind's article provides more details from Adobe's Michele Turner:
As a demonstration of this integration Adobe's Christophe Coenraets built a Flex application integration with Gears that was demo'd by Kevin Lynch during Google Developer Days. Coenraets also built a SQLAdmin app to help manipulate his Gears database while building the demo.

The announcement of Google Gears also raised speculation as to the future of the Dojo Offline Toolkit. Ajaxian caught up with the project's lead developer Brad Neuberg on the subject. He indicated Dojo was in the loop on the announcement and that he's already ported Dojo Offline to use Google Gears as the base platform. Listen to his interview for more details.
RedMonk also has detailed Gears coverage. Stephen O'Grady speculates on the impact of Gears on some existing alternatives:
If you’re a Joyent, the question is more complicated. They’re targeting a far more specific niche than Google Gears, in Rails apps, so the question will come down to whether or not Slingshot can offer enough differentiating features to Rails devs to justify their usage of it. Compromising their argument is the fact that Slingshot is not, as yet, available on as many platforms as Gears. Still, they appear content to play David.
Interestingly, Adobe seems to be partnering quite closely; willingly aligning their SQLite efforts with Google’s. That bodes well for Google’s ultimate aims.
With the momentum of offline web application development growing in the form of Gears and Apollo among others, web application developers will have to start considering what "offline" means for their individual application. Basement.org comments on this task of "unlearning":
JProbe Freeware – Eclipse Plugin for efficient memory analysis and diagnosis
IBM software architect eKit: Grady Booch podcast, whitepapers, articles
Introducing application infrastructure virtualization and WebSphere Virtual Enterprise
Hacking 101 -The Top 10 Attacks in Web Applications
Spring App Platform, Java Concurrency/Multicore, Eclipse Mylyn and more @ QCon SF Nov 19-21
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
Ruby 1.9's Fibers and non-blocking I/O are getting more attention - we talked to Mohammad A. Ali of the NeverBlock project and Tony Arcieri of the Revactor project.
Tim Mackinnon talks about the aspirations behind the Agile principles and practices, the desire to become efficient, to write quality code which does not end up being thrown away.
Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, STM, concurrency, alternatives to threads, Erlang, Scala.
Often the hardest part of changing technologies is language syntax differences. This new article provides Java developers with a transition guide to Actionscript which forms the foundation of Flex.
Neal Ford talks about having multiple languages running on one of the two major platforms: Java and .NET. He also presents the advantages offered by Ruby compared to static languages like Java or C#.
David Anderson talks about the history of Agile, the current status of it and his vision for the future. The role of Agile consists in finding ways to implement its principles.
Nick Sieger talks about the future of JRuby, Java Integration, and his work on JEE deployment tools for Ruby on Rails like Warbler.
You are viewing a mobilized version of this site...
View original page here
3 comments
Reply