Google Wave Protocol

This entry is part 4 of 5 in the series Google Wave

wavelogo3

Data Model

The main elements of Google Wave’s data model are:

Wave – Each wave has a globally unique wave ID and consists of a set of wavelets.

Wavelet – A wavelet has an ID that is unique within its containing wave and is composed of a participant list and a set of documents. The wavelet is the entity to which Concurrency Control / Operational Transformations apply.

Participant – A participant is identified by a wave address, which is a text string in the same format as an email address (local-part@domain). A participant may be a user, a group or a robot. Each participant may occur at most once in the participant list.

Document – A document has an ID that is unique within its containing wavelet and is composed of an XML document and a set of “stand-off” annotations. Stand-off annotations are pointers into the XML document and are independent of the XML document structure. They are used to represent text formatting, spelling suggestions and hyper-links. Documents form a tree within the wavelet.

Wave View – A wave view is the subset of wavelets in a wave that a particular user has access to. A user gains access to a wavelet either by being a participant on the wavelet or by being a member of a group that is a participant (groups may be nested).

Operational Transformation

The operational transformation is an integral part of wave. Any wave which is being edited shows up to all users currently under a wave. Users can see in real time what the others are typing and also the server is notified of the changes being happening wait for the server to accept changes. It is cached in case of latency. After the server replies all the actions are carried out in bulk. operations are carried out in a character basis to the server as well as to all the clients unless it involves large scale data manipulation like the upload of images or playing music. All XML documents which are  exchanged between the client and the server carry a checksum which helps in the rapid identification of erroneous communications.

Client-Server Protocol

Operations. Wavelets, the basic component of a wave, go through a series of changes called operational transformations. These changes need to be propagated and applied to each client otherwise a client gets out of sync.

Operation Sequencing. All operations applied to wavelets are sent in strict order. An operation is not sent until the server has responded to the previous one. The server orders the operations based on a version number. Each client needs to apply the operations respecting the proper order.

Opening a wavelet. To start communicating on a wavelet, a client sends an Open Request containing the Wave ID and the Wavelet ID to the server. The server responds with a snapshot – the serialized state of the wavelet – or a history hash of the corresponding version.

Server-client Communication. The server sends to the client one of the following: a delta (a sequence of one or more operations), a version number or a history hash.

Client-server Communication. The client sends: a delta or a version number.

Recovery. When the communication fails, the clients starts by reopening the servlet by sending a history of hashes previously received from the server.

Blog of the day award for iamatechie.

award1-blog-iamatechieIamatechie was awarded as one of the Red Hot Blogs of the Day! on redOrbit.com. redOrbit.com features the hottest blogs and other  hot topics for the day. iamatechie can now sport the redOrbitbadge henceforth. We thank you readers for your constant encouragement and support.
fsfaf

Google Wave Implementation

This entry is part 3 of 5 in the series Google Wave

wavelogo2

Google Wave is infact  three things: a tool, a platform and a protocol. At the heart of Goolge Wave architecture is  Operational Transformation (OT),  which is a  theoretical framework meant to support concurrency control. Waves are hosted XML documents these support concurrent modifications and also latency updates.

Google Wave is built using JavaScript and HTML5 on the client side. It runs on  browsers like Chrome, Firefox, Safari. It also supports mobile platforms (iPhone, Android), and  on the server side we have Java + Python but the  server side can be implemented with anything a developer chooses. The tool was built with GWT and uses Google Gears to enable  drag and drop functionality which is not yet included in HTML 5 (Canvas supports drag nd drop in HTML5) .A dedicated server is required  to handle concurrent communications which is needed especially for large teams. The server can be located outside  the cloud or within a private enterprise or,it can be in someone’s home.

The paltform comes in open source api and developers can extend it using  robots and gadgets. Gadgets are tiny programs which run  inside of a wave and robots are “automated wave participants.” Wave can  be embedded in  blogs and other comunication mediums.

Facebook and Vanity URLS..

facebook_logo_mar09

Wouldn’t it be nice if you could access a Facebook page much like Twitter in the form www.facebook.com/iamatechie rather than www.facebook.com/profile.php? id=e12352 ?. Well for all those who wished for such a vanity url from Facebook , your prayers have  been answered. Come Saturday EDT time 12:01 AM the new feature would be put up by Facebook. All users will be guided to get their Vanity url on their home page.

facebook_vanity_urls_jun09

Rules and guidelines regarding the selection of vanity urls:

1.Only alphanumeric characters are allowed.

2.Minimum of five characters and only one user name per profile/the page they administer.

3.Facebook reserves the right to  remove the name allotted and will work to prevent users from taking up copyrighted names.

4. Brands will be give a chance to protect their pages from imposters.

So all those of you who want their profiles with its own customised urls wait for Friday night.

Spring Source dmServer

dmlogoSpring Source dmServer is a completely modular, OSGi-based Java server which is designed to run Java based applications and applications which are powered by Spring. dmServer provides flexibility and reliability in handling such applications. a diagram explaining the dmServer is given below.

dmserver_graphic_small2

It is based on the Spring source dynamic module kernel.The kernel also provides a module based backbone for the server. It effectively harnesses the power of Spring, Apache Tomcat and OSGi-based technologies. The latest version is SpringSource dm Server 1.0.2.

Google Wave & the Existing communication model.

This entry is part 2 of 5 in the series Google Wave

wavelogo1Speaking of Goolge Wave it offers the functionality of an email program , instant messenger ,a collaborative document sharing and editing tool. The concepts aren’t new just that the many existing concepts have been married together to create a new experience.In Goolge wave anyone can be part of wave and people could be added to an existing wave . Any part of the wave could be edited by anyone within the wave.

This is radically different and the whole beauty of it is that all the changes made is archived and we could view the changes made to the wave giving us an explanation of what happened to wave ,when it happened and by whom. This makes wave a perfect tool for collabration and communication among office environments .We can reply to messages within a conversation string and we also could  reorganize conversations but as I said earlier all these changes are archived for future reference. Simply speaking it offers wiki style functionality.

In the existing communication model all communication tools exist individually. With Google waves all that can be brought under one single platform. Extensions can be used to iplement Twitter and Facebook extension thereby enabling communication through all potential channels in the web under one single tool. In plain speaking it offers a better communication experience than the existing tools by bringing it all under one paltform.

There is also a playback feature which enables someone who has joint lately to see how the whole conversation developed. This actually helps him to be a part of the wave much better.

Google Wave

This entry is part 1 of 5 in the series Google Wave

wavelogo

According to Google, Google Wave is a new model for communication and collaboration on the web. The five posts ( including this one )  tries to address five questions (Well we can draft the post in such a way as to address many questions but after all it is a matter of personal choice).

1. What is Google Wave? (This post will take care of that).

2. What does it mean to the existing online communication model?

3. What goes into the making of Wave?

4. Google Wave Protocol?

5. Google Wave Enhancements and beyond ?

ss1

The above is a screen shot of Google Wave in its development stage.

Now answering the potential question What is a Wave?

A wave is equal parts conversation and document which means people can communicate and colabrate with richly formatted text, photos, videos, maps, and more in real time enhancing productivity and user experience.

A wave is shared which means a user can share the wave with anyone ,reply to the wave at any point can edit the contents ofwave at any point and if required can view the history of all the changes made to the particular wave.

A wave is live which means the user s can view any changes made to the wave in realtime.

Next post: What does it mean to the existing online communication model?

Linda Rising on Collabration

Linda Rising is an expert in the field of Agile Software Development . Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. The term was coined in the year 2001 when the Agile Manifesto was formulated. Linda Rising has  coauthored a book called “Fearless Change: Patterns for Introducing New Ideas” with Mary-Lynn Manns.She explains about how she got excited with  the activities of the brain and  the social rituals of the ape while she worked on her book. She says that how exciting it is to talk about various agile methodologies but the problem always see in implementing them on how it is very tough in telling and convincing people who struggle to make deadlines about ideas like pair programming or test driven development.

She assumes that it is a matter of logic.If she considers herself a logical person and the people in her team to be all logical then the best way to implement anything would be to outline the logical reason behind its implementation and how it will work out. This is very successful she points out . Most of the time people actually do not think logical and this makes it hard in implementing ideas. She tells that it is the unconscious part of the brain that has vast processing capabilities and the conscious is much like a monitor whereas the unconscious is much like the CPU in analogous terms.

In her own words she says that “We shouldn’t struggle logically and try to introspect looking for solutions”. when she spoke about the social behavior of Chimps and Bonabos in understanding agile Developmnet Methods and why it worked this is what she had to say.”he talk that I gave here might have seemed to some people a little frivolous. I was talking about chimpanzees and bonobos. What I was trying to point out is evolutionary roots for a lot of things that our brains are hardwired to do. And when we considered the success of Agile development, I think we have to look at those evolutionary, biological roots and say: “Maybe the reasons why pair programming works so well, or the idea of keeping teams small, is that we are hardwired to perform best in that kind of environment”.

Microsoft Azure

microsoft-azureMicrosoft’s Azure Services Platform is a cloud platform aimed at delivering cloud computing services and a whole range of computing solutions based on cloud computing.This a significant step by Microsoft in the field of cloud computing following Microsoft’s online services.Azure Services Platform is an application platform which is part of the cloud that allows applications to be hosted and run at Microsoft datacenters cross various locations. It provides a cloud operating system called Windows Azure that serves as a runtime for the applications and provides a set of services that allows development, management and hosting of managed applications off-premises and on-premises. All Azure Services and applications built using them run on top of Windows Azure.

Fabric controller is the hosting environment for Windows Azure.Fabric controller manages many functions like resource management,load control and a host of other features which the connected systems need not worry about.Data storage functionality is also provided such as the Windows Azure Storage Service where the information is stored as unstructured binary blobs. Azure Services Platform provides an API built on REST, HTTP and XML which allows the developer to interact with the services offered by Azure. Besides that a client side library is also provided and is also integrated along with the Microsoft Visual Studio which functions as the premier IDE for developing applications for the environment and also publishing it. The Azureservice platform runs on the Windows Azure Specialized Operating System which in turn is on the topmost layer of  Windows Server systems running on  Windows Server 2008 .

There is also a customized version of Hyper-V which is  known as the Windows Azure Hypervisor and this provides virtualization of services.The Microsoft Azure service Platform also makes of Live Services, SQL Services, .NET Services, SharePoint Services and Dynamics CRM Services. These service can be used by the developers in developing applications for this environment. Microsoft studio is provided with client library,code management tool for the development of specialized applications for the Azure platform. Scalability and reliability is controlled by Fabric Controller which makes sure that the services do not crash. It also runs on the .NET framework SDKs have been provided for JAVA as well as Ruby so that the developers of these languages can integrate with the .NET platform.

Use Multiple Login in Gtalk

googletalklogo_1_2Some of the Gmail users are having multiple accounts, and also they are wished to have multiple login to chat through the same gtalk client.  To attain this feature do some following steps:

Note: If you installed the gtalk client in the default folder, then its more easier to make this feature enabled.Right Click on the Desktop
Select New
Select Shortcut
Paste this into the text box “c:\program files\google\google talk\googletalk.exe” /nomutex

Click Next, and name it whatever: Gtalk Multiple Login, etc.
Click OK until you are done.
Note: Don’t forget to Remove the .exe in the name (if your display file extension mode is off)

So enjoy chat with different Gmail accounts.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes