Title: Groove: A P2P Collaboration Platform
1Groove A P2P Collaboration Platform
2Collaboration 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
3What 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)
4How Does Groove Work?
- Shared space a secure environment for invited
members - Stored locally on members computers
- Space synchronized
- Offline usage
- P2P architecture
5System Level Services
- Security
- Public/private key and user authentication
- Local storage, synchronization and peer
connection services - License management
- Component management
- Usage reporting and monitoring
6Capabilities of Groove
- Communication tools
- Live voice, instant messaging, text-based chat,
and threaded discussion - Content sharing tools
- Shared files, pictures, and contacts
- Joint activity tools
- Co-Web browsing, multiple-user drawing and
editing, and group scheduling/calendar
7Advantages of Groove
- Ease of connection
- Flexibility and adaptability
- Self-updating
- Cost effective
- Reduced centralized management resources
8Strengths 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
9Strengths of Groove Gartner Research
- Multilayered security
- Encrypted through public and private keys
- All data, objects and transactions are fully
encrypted
10Weaknesses of GrooveGartner Research
- Server licensing
- Inability to license the products server modules
- No third-party service providers
- Lack of workflow management
- COM-centric
- May not be attractive for Java only environments
- Easily imitated
11Groove - 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
12Groove Pricing
- Revenue Model
- Licensing Network Service
- Licensing
- 49 per user (one-time license fee)
- Service
- 8 per user per month
13Introduction
- The basic idea behind Grooves 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
14Introduction
- 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
15Groove 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
16Shared 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
17Member 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
18Deltas 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 tools 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
19Deltas 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
20Deltas 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
21Deltas 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)
22Deltas 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
23User 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
components 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
24Communication 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
25Communication 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
26Storage 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
27Component 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
28Network 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 Grooves 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
29Network 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
30Security 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
31Security 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
32Security 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)
33Security 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 users
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
34Device 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
35Groove Transceiver Shared Spcace
Architecture
36Groove and XML
XMI (XML/SOAP)
Calendar Tool