groove
TRANSCRIPT
A. Dogac Ceng 520
Groove: A P2P Collaboration Platform
A. Dogac Ceng 520
Collaboration: Where the Technology Stands Today? Groove Workspace technology:
Coordinated supply requests on the front lines in the war in Iraq
Groove system was:• collecting damage assessments and supply needs on laptops while offline and • then transferring the requests back to the supply center when connectivity was available
A. Dogac Ceng 520
What is Groove? “Combination of software and services that
transform the Internet into a personal medium for direct communication and interaction.”
Peer-to-Peer network technology Virtual space for small work groups (ideally
for 30 or less)
A. Dogac Ceng 520
How Does Groove Work? Shared space – a secure environment for
invited members Stored locally on members computers Space synchronized Offline usage P2P architecture
A. Dogac Ceng 520
System Level Services Security
Public/private key and user authentication Local storage, synchronization and peer
connection services License management Component management Usage reporting and monitoring
A. Dogac Ceng 520
Capabilities of Groove1. Communication tools
Live voice, instant messaging, text-based chat, and threaded discussion
2. Content sharing toolsShared files, pictures, and contacts
3. Joint activity toolsCo-Web browsing, multiple-user drawing and editing, and group scheduling/calendar
A. Dogac Ceng 520
Advantages of Groove Ease of connection Flexibility and adaptability Self-updating Cost effective Reduced centralized management resources
A. Dogac Ceng 520
Strengths of Groove Gartner Research Messaging
Secure, flexible and microphone applications Cooperation
Distributed “state-management” engine allowing multiple users to share/currently operate programs
Application Platform Compatibility with other web technology
A. Dogac Ceng 520
Strengths of Groove Gartner Research Multilayered security
Encrypted through public and private keys
All data, objects and transactions are fully encrypted
A. Dogac Ceng 520
Weaknesses of GrooveGartner Research Server licensing
Inability to license the product’s server modules No third-party service providers
Lack of workflow management COM-centric
May not be attractive for Java only environments Easily imitated
A. Dogac Ceng 520
Groove - Ideal MatchGartner Research “Unstructured collaborative efforts employed
by knowledge workers” Private messaging communities Wireless or remote environments Adaptable with a variety of portable Internet
devices Small group interactions
A. Dogac Ceng 520
Groove Pricing
Revenue Model: Licensing + Network Service
Licensing: $49 per user (one-time license fee)
Service: $8 per user per month
A. Dogac Ceng 520
Introduction The basic idea behind Groove’s implementation is to provide a
shared workspace (also known as shared space ) where users can simultaneously perform operations
This shared space is virtual in nature, as it is implemented by always keeping all users local copies of shared space synchronized
The Groove tools are designed to support operations in this shared space
All the users have their own local copy of shared space and every user can perform one or more operations in the shared space
If these operations cause changes to the shared data and view, these operations are sent to other users to be executed on their local copies of shared space
A. Dogac Ceng 520
Introduction
In order to enable the updates across large numbers of users, Groove offers the necessary services for Network communication Security Data storage and persistence Fault-tolerance, and User presence awareness
Further, it also incorporates complimentary services for user interfaces and user accounts
Groove makes its shared space management services available to the developer community via published APIs and special development kits
A. Dogac Ceng 520
Groove Architecture The concept of shared workspace is the center point of
the Groove architecture Users can join shared workspaces to collaborate and
leave at will, without disrupting the shared workspace Another important concept behind Groove is that of tools
operating in a shared workspace All copies of a shared workspace are synchronized e.g.
operations on one are executed on all
A. Dogac Ceng 520
Shared Space Services Services are responsible for shared space management:
Member Services Deltas and Dynamic Services Communication services UI Services Storage Services Component Services Network Services Security Services Device and User Awareness
A. Dogac Ceng 520
Member Services These services maintain and provide user account information A user account can contain one or more user identities, where
each identity can belong to many shared workspaces An identity contains three important pieces of information; user
contact information in vCard format, security information and network addresses of all user devices
To support Groove users access to shared workspaces from multiple and different devices, member services manage user accounts over all devices in use
User account information is stored and synchronized across all user devices using a special purpose shared workspace
Further, these services provide mechanisms for account/identity management including creation, update and deletion
A. Dogac Ceng 520
Deltas and Dynamic Services
The shared workspace synchronization is provided by delta and dynamics services (DS)
Delta, the construct used to represent change in Groove is a collection of operations/commands to be executed on a tool’s data storage
DS are responsible for the creation, dissemination, and execution of the deltas among all workspaces
DS use communications services for actual transfer of delta over network
A. Dogac Ceng 520
Deltas and Dynamic Services The DS sequence the deltas upon creation, to
provide a deterministic data model across the shared workspaces
Upon receiving a delta from the communications services or from local shared workspace tools, the DS use delta sequence numbers to decide on delta execution order
This practice ensures consistent data among all shared workspaces
By having the same data in all local shared workspaces, every user can see changes made by other users
A. Dogac Ceng 520
Deltas and Dynamic Services Delta processing involves contacting corresponding tools in the
local shared workspaces and passing the commands to be executed by each tool
Deltas are applied to the local data storage in a synchronous fashion
However, all remote instances of a shared workspace are updated asynchronously
This avoids any delays for changes in the UI of users to ensure a better experience
DS themselves have no knowledge of active shared spaces and/or tools within them
It is the responsibility of the tools to register with the DS in order to receive deltas of their interest
A. Dogac Ceng 520
Deltas and Dynamic Services
Services are also responsible for delta recovery and cleanup
A delta recovery is performed by requesting re-submission of delta from the delta originator
In cases, where the originator cannot be contacted e.g. the originating user has gone offline; other shared workspace members are requested for delta re-submission
The DS also removes all executed deltas from the shared workspace when they are no longer required (garbage collection)
A. Dogac Ceng 520
Deltas and Dynamic Services
Lastly, smart bandwidth consumption is also embedded in the DS, e.g. upon detection of low bandwidth availability, deltas are only submitted to one shared space user with possibly high bandwidth to further disseminate deltas
The shared-space services allow delta transmission among many heterogeneous online users without any centralization
However, in case of offline and firewall protected shared workspace, Groove uses relay services for delta transmissions
A. Dogac Ceng 520
User Interface Services The first set of UI services provides management of UI
components Examples of these components include buttons, text areas,
menus, lists and forms Each UI component has its own set of design-time properties,
which can be set to customize component’s look and behavior within tool
UI services also provide many layout schemes for UI components such as HTML tables, and X/Y positioning
UI components within the tools make it possible for user to modify tools data
Groove has also made it possible to use platform specific UI components
This enables tool developers to provide platform specific look and feel to their tools
The second set of UI services are responsible for updating UI components upon changes in underlying tool data storage
A. Dogac Ceng 520
Communication Services
Communication services (CS) provide wire transport of deltas to dynamics services
These services include routing, session management and device connections
CS are capable of supporting transmission in three different modes: Unicasting, Multicasting and Broadcasting
A. Dogac Ceng 520
Communication Services
CS establishes the best mode of communication after discovering device bandwidth and end point availabilities
If targeted user(s) are online and originating device have sufficient bandwidth, deltas are directly sent to other users
Otherwise communication services send data to a selected device or to relay server, which on behalf of device can forward data to requested end points
A. Dogac Ceng 520
Storage services All Groove data, including both system and user data, is stored in
XML Storage services provide data integrity, update, security,
programmatic access, transactions and logging These services are only responsible for operations on local data
storages Other services such as DS, which are responsible for data
persistence across all workspaces, use storage services to achieve persistent data
Using these services tools can query data storage to display data in their user interfaces
All data access is within the scope of a transaction and is done in a secure fashion
Groove transactions are typical ACID transactions Security is provided through data encryption/decryption prior to
read and write operation
A. Dogac Ceng 520
Component Services Groove is a component-based implementation and the Groove
tools require many components to be available and updated in order to function
A Groove component offers a set of services that can be used by other components
Component services are responsible for identifying component requirements for a tool, retrieving, verifying, and installing required components
Identification, retrieval, and verification of component are done asynchronously, where as installation requires user interaction and therefore is a synchronous process
Component services employ communication service and its wire transport mechanism to download components
A. Dogac Ceng 520
Network Services Services in this category refer to services hosted by
Groove Networks These services provide downloadable components for
Groove users, directory listing of Groove users, and relay services
Relay services play four main roles and are essential for Groove’s functionality They provide storage of deltas for offline users Deltas are forwarded to users when they come online to ensure
that their workspace is synchronized with other shared space members
A. Dogac Ceng 520
Network Services Second, relays can act as proxies for delta
transmission to users behind firewall Groove uses its proprietary transport protocol (Simple
Symmetrical Transmission Protocol), however, in case of users located behind a firewall, it switches to HTTP
Third, relay servers are used for delta transmissions in situations when the originator is of low bandwidth and needs to submit deltas to a large number of users
In this case, deltas are only sent to relay servers, which can then multicast deltas to all shared space users
Forth, relay service transmits device presence information between users
A. Dogac Ceng 520
Security Services Security is a key issue within the Groove network All the data either on-the-wire or on local disk is confidential Data is also ensured to be correct; hence Groove provides data
integrity and authentications mechanisms for users of shared workspaces
All of this is part of the Groove security services Tool developers can access these services programmatically to
define roles and perform user authentications. Further, security services are used by other services, e.g. the DS
uses security services to encrypt data before it is sent to users in shared space
A. Dogac Ceng 520
Security Services The security services architecture consists of three layers The top layer is responsible for the implementation of the
security protocols using primitives provided by lower layers All other services requiring security communicate with this top
layer. The middle layer provides abstract interfaces, which are then
implemented in the bottom layer also know as concrete layer The main idea behind this layered architecture is to allow easy
access to different implementation of security primitives For example, various encryption algorithm implementations can
be interchanged in the concrete layer to make them available for use by the top protocol implementation layer
A. Dogac Ceng 520
Security Services “Groove runs automatically with out-of-the-box defaults for
universally trusted algorithms, and for key lengths that are more than sufficient for almost all users
Users only have to provide a strong pass phrase; Groove handles all the details of securing the data
Behind the scenes, the default secret-key algorithm is MARC4 (Modified-Alleged-RC4)
The default public-key algorithms are ElGamal and DiffieHellman The default digest (hash) algorithm is SHA1, and the default
integrity-protection algorithm is HMAC-SHA1 The default size for secret-keys in Groove is 24 bytes (192 bits),
and the default size for public/private-keys is 192 bytes (1536 bits)”
A. Dogac Ceng 520
Security Services User public-private keys are generated when the user creates a
new identity in an account Public keys are exchanged among shared space users upon
sending and receiving membership invitations These keys are also used to confirm a user’s identity A hash of public-private keys is used for this purpose Private keys exist only in the user account and therefore, it is
impossible to spoof public-private key hash Every custom groove tool must sign its component before it can
be deployed in Groove to ensure component authentication
A. Dogac Ceng 520
Device and User Awareness There are two types of awareness in Groove, device awareness and
user awareness Device awareness is related to online status of any user device, where
as user awareness refers to the online status of a particular user or identity on any device
A Groove relay server is used for device awareness Devices register with the relay server upon start up so that the relay
server can announce their presence to other interested devices At start up time, devices also obtain information about other available
devices and can then either communicate directly or use relay server to communicate with other devices, which might be located behind a firewall
Devices also un-register with relay server when Groove is shut down to notify other shared workspace members of their unavailability
User presence awareness is possible without using a relay server Every Groove client can poll other users in the shared workspace or can
subscribe to events from other clients to learn about their presence
A. Dogac Ceng 520
Groove Transceiver & Shared Spcace Architecture
A. Dogac Ceng 520
Groove and XML
My Services
Calendar Tool
XMI (XML/SOAP)