Wednesday, July 29, 2009

Google releases Wave protocol implementation source code

Google has opened the source code of several key components of Wave, the company's new collaborative messaging platform. The code, which is available under the Apache Software License, will allow third-party developers to start experimentally bringing Wave-compatible federated messaging to their own software.

Google releases Wave protocol implementation source code

At the Google I/O conference earlier this year, the search giant revealed an intriguing new communication service called Wave that aims to deliver concurrent messaging and collaborative editing in a single cohesive environment. The underlying Wave Federation Protocol is designed to make it possible for third parties to host their own interoperable Wave instances.

Google intends to open the source code of its own implementation in order to encourage widespread adoption of the protocol. The company took its first major steps in that direction on Friday by releasing the source code of its Operational Transform (OT) code and a simple client/server reference implementation that is built on top of the protocol. This code, which is available under the open source Apache Software License, will give developers a way to start experimenting with the protocol and potentially even building their own Wave-compatible services.

"To kickoff Federation Day, we open sourced two components: 1) the Operational Transform (OT) code and the underlying wave model, and 2) a basic client/server prototype that uses the wave protocol," says an announcement in the official Google Wave developer blog. "The OT code is the heart and soul of the collaborative experience in Google Wave and we plan that code will evolve into the production-quality reference implementation,"

One of the most sophisticated characteristics of Wave is its deep support for concurrent communication. Multiple users can be manipulating the same content at the same time and user activity is immediately visible to other participants. This means that each individual character appears on the screen of all active users as it is being typed. Providing that level of concurrency in a seamless way and making it scale to accommodate a significant number of users is an extremely difficult problem to solve, especially in a highly diverse and extensible medium that can support rich media and other kinds of content.

The architecture of Google Wave is largely built around the concept of Operational Transformation. In Wave, individual operations are immediately performed locally and then get transmitted to the server, where all of the operations will converge. Then, the updated operational state history will be propagated back out to the individual clients. Applying the user's actions immediately in the local user interface rather than first propagating all events and rendering them linearly in true chronological order will help to ameliorate the perception of lag. Google refers to this behavior as "optimistic" user interaction.

Because of the complexity of Wave's concurrency model, Google is concerned that third-party implementations of the underlying OT framework will not be able to interoperate correctly with each other. Google aims to provide a standard production-quality reference implementation that all adopters will be able to use in order to minimize the risk of inconsistent behavior. The company says that it will also provide comprehensive testing frameworks to help guarantee the compatibility of third-party implementations.

"In a federated system, it is critical that each wave provider manage the operation stream consistently, otherwise convergence cannot be guaranteed," wrote Google's Jochen Bekmann in a message posted to the Wave Protocol Google Group. "This means it is highly recommended that anyone attempting to federate waves should exactly match the [concurrency control] functionality of every other wave server. We believe this is easiest if our released code is used."

The OT code that Google has released to the public is more recent than the version that is running today in the company's Wave Sandbox developer prototype. This reflects the rapid pace at which the protocol and its specification are evolving. Google is working on updating its sandbox version and bringing it into alignment with the latest OT code. At that point, the company hopes to enable federated messaging on the sandbox, giving third-party developers a working Wave instance with which to test the interoperability of their own.

Wave is highly exciting technology with enormous potential. As the platform opens further, it's likely that we will see Google's Wave protocol reference implementation code repurposed in innovative ways and integrated with other independent services.

Friday, July 24, 2009

Google Docs, Slowly Morphing into Google Drive

The new interface of Google Docs, which is slowly rolled out to all users, brings the service one step closer to an online storage service. The "items by type" menu replaced "PDFs" with "Files", suggesting that Google Docs will allow users to upload any type of files.

Google Docs also added the advanced search options that are available in Gmail:
* exact phrase matching ("todo list")
* negative matching (summer -trip)
* disjunctive matching (budget OR invoice)
* built-in labels (is:starred, is:hidden)
* collaborators: to find the documents shared by Michael Robinson, you need to search for:, assuming that's his email address. The problem is that you need to know the email address, since the operator doesn't support (partial) names.
At some point in the near future, Google Docs will allow you to upload any type of files. Some of the files can be edited, other files can be previewed online, while the rest of them are only stored online. For example, PDF files can't be edited online, but you can view them and share them.

It will be interesting to see how Google Drive integrates with other Google services that store files (Gmail, Picasa Web Albums, YouTube) and to find the free quota limits.
Tony Ruscoe found in January an internal Google document about Cosmo, described as an upgrade from GDrive, a service that was only available to Google's employees. "We're in the process of migrating all Google Doc accounts to Cosmo," mentioned the document.
Update: Kevin Mohr found an interesting image referenced in Google Docs' code: . It's a folder icon that includes Google Chrome's logo, so it could be related to Google Chrome OS, a browser-centric operating system that will probably use Google Drive to store files online. There's also an icon for videos which suggests that videos will be uploaded to YouTube.

Saturday, July 18, 2009

Google Docs Makeover Coming

The Google Docs guys are making changes to the word processing application and have promised to roll them out over the next few weeks.

Some bloggers think the Docs guys are knee-jerking from the accolades Microsoft has been getting over the software maker's Office Web answer to Google Apps.

I agree, but it's also high time for a mini-makeover for the app. Google Docs Product Manager Vijay Bangaru, who also promised a new interface for Docs, wrote:

    We're always looking for ways to make it easier to find what you're looking for in Google Docs, which is why we're taking some time to do a bit of remodeling to the Docs list. Over the next few weeks you'll see a number of small changes, culminating in a brand new shiny interface.

For starters, Google said it will do away with the "Shared with..." list in the left hand pane. Instead, the company is recommending users use search to do the same thing by clicking "Search Options" and typing the user's name into the "Shared with:" box. Users can also save this search to make it accessible in "Saved Searches."

I'm not sure how users will feel about this. When you take away a list that people can use to decide with whom they want to share documents and replace it by telling users to type the names of people to share documents with, you're creating more work. But I ask you Docs users: will you like this change?

There will also be a new Sharing Menu that moves all of our sharing functionality into one box so that users can manage sharing without having to leave the Docs list. That sounds like a grand plan to me. Consolidated management is the kind of sharing we want.

There is also new search options, to let users search by:

    * exact phase matching, by using quotes: ["match this phrase exactly"]
    * Or: ["tacos" OR "nachos"]
    * Negation: [salsa -dancing]. This will include items with salsa recipes, but not items about dancing
    * Who the doc is shared from or to: [] or []
    * Star or Hidden state: [is:starred] or [is:hidden]

Overall, I love the consolidated sharing box and approve of the search operators, but I'm leery of the requirement to manually search for contacts with whom to share items.

Google Watchers protested loud and clear when the Gmail Labs team took away right-side labels. I wonder if we can expect the same protest when Google takes away our "Shared With" lists option.

Google India launches mobile voice search engine

Google India launches mobile voice search engineThe mobile voice search engine, custom-built by Google India has been launched by Google India, free for mobile services subscribers in India. However, the voice-based search engine services are currently limited to BlackBerry users. 

The mobile voice search engine is another big achievement of Google India on the mobile front. Earlier, Google India launched a SMS-based search engine services.

Google India’s mobile voice search engine is a Beta launch. It is only available on Blackberry. Presently, it reaches 400,000 people.

According to reports, In its voice-based search engine, Google India is having a number of problem because of different accent and pronunciation ways of the people of India.