Communication
Distributed Shared Memory
The Web is evolving rapidly. From being a set of hyperlinked, read-only static web pages, the Web is now much more interactive than it has ever been before. Today, people interact with each other in real-time and consume user-generated data on social media sites. Web applications are also starting to deliver the same performance and functionality as native applications. With the evolution of HTML, it will soon be possible to embed conversational high-definition video/audio components in web applications, thus making the Web even more interactive.
We believe combining embedded real-time media with advanced sharing features will enable new types of web-based collaborative services that will enhance the productivity and the user experience. The Distributed Shared Memory (DSM) service enables development of highly interactive and responsive collaborative web applications. In short, it is a distributed in-memory database for JavaScript applications that allows developers to synchronize application states in real-time. By synchronizing application states, it becomes possible to develop shared JavaScript applications that multiple users can run and interact with at the same time.
Below is a short YouTube clip showing an example of a collaborative web application we have developed using the DSM service and a modified WebKit browser supporting conversational HTML5 audio/video components.
The YouTube clip below gives a short technical introduction to the DSM service and shows some more prototype applications we have developed.
This is just some example applications where the DSM service can be used. Other use-cases include:
- Telecare, e.g. remote health care and specialist consultation
- E-learning
- Call center support
- Collaborative work, e.g. a shared whiteboard or other collaborative editing systems
Technology behind DSM
The DSM service is available as a JavaScript library and a hosted DSM server. The JavaScript library runs in Firefox and WebKit-based browsers without any plug-ins.
A core component of the DSM service is Operational Transformation (OT). It makes it possible to implement a distributed architecture where each JavaScript application has its own local copy (replica) of the database. All changes are always done locally and then synchronized in the background with all other replica clients. Merge conflicts are automatically resolved using the OT framework.
A distributed solution based on OT has a number of benefits. For example, the database does not have to be locked to preserve data integrity, and the user interface can be updated immediately without having to wait for server responses. This non-blocking and lock-free property makes OT a key technology to implement collaboration features in web environments.
We are excited to see how you will use the DSM service. Remember that the DSM service is still experimental. All feedback is very welcome!
Click here to read more about the DSM service.



