BACKGROUND

Currently, there is a need for a collaborative workspace and a collaborative session using the workspace in which real-time project-related activity and saved project-related activity of a group of browsing session collaborators can be shared amongst the project collaborators. One example of project-related activity that may be shared amongst project collaborators may include online browsing activity related to a project on which the collaborators are working together. For example, there are various types of situations where a collection of individuals (e.g., friends, family members, co-workers, classmates, organization members) may have a shared project (e.g., event, assignment, research document) on which the individuals may want to work collaboratively. However, current online browsing and team communication tools leave gaps in workflows for which users have to find a work around.

As an illustrative example, a group of friends may want to collaboratively plan a trip. Various information resources for different aspects of the trip may be available on a network (e.g., online). For example, resources for lodging, transportation, dining, entertainment, blogs, and other information associated with aspects of the trip may be accessible to the individuals via the Internet. Currently, in an attempt to collaborate on planning the trip, each friend may individually gather information about various aspects of the trip and then share the information by sending links to the resources to the other friends via text messages, emails, social media messages, and the like. The friends may then individually use the links to access some or all of the shared information. However, as can be appreciated, trying to work together collaboratively in this way can be difficult, and the individuals may have to find various workarounds to plan the trip collaboratively.

As one example, it can be difficult to keep track of or organize the shared links. Consider that the links may be shared in a series of group or individual text messages or email conversations between the friends, amongst discussions and comments about the information included in the links and other discussions. Moreover, multiple links may be shared about a common topic. For example, the friends may share links to different activities in which they may each be interested. When an individual wants to access information about a particular topic, the individual may find it difficult to find the links associated with the topic, to piece together relevant information, or to keep track of the links that the individual has already viewed. Further, if another friend wants to later join the group, it can be challenging to find and share the relevant links with the other friend; and oftentimes, some information may inadvertently be excluded. Moreover, workarounds may need to be found to enable multiple individuals to view the same information simultaneously or to keep track of others' information gathering or information browsing activities. As an example, currently, a friend in the friend group may have to use a separate online meeting tool with a screen sharing functionality in order to share real-time browsing activity with one or more other friends. Such online meeting tools may only allow for one friend to share their screen, and thus their browsing activity, at a time.

It is with respect to these and other general considerations that embodiments have been described. Also, although relatively specific problems have been discussed, it should be understood that the embodiments should not be limited to solving the specific problems identified in the background.

SUMMARY

This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description section. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended as an aid in determining the scope of the claimed subject matter.

Aspects of the present disclosure are directed to a method, system, and computer readable storage device for providing a collaborative browsing workspace and session in which real-time project-related activity and saved project-related activity of the browsing session collaborators can be shared amongst the collaborators.

In some examples, a system is provided for providing collaborative browsing, the system comprising: at least one processing device; and at least one computer readable data storage device operatively connected to the at least one processing device and storing instructions that, when executed by the at least one processing device, cause the system to: initiate, at a first collaborative browsing client operating on a first client computing device, a collaborative browsing session with a collaborative browsing service; create a first tab group associated with the first collaborative browsing client, wherein the first tab group includes one or more tabs corresponding to one or more webpages open in a user interface of a web browser operating on the first client computing device; include the first tab group in a collective tab group; display the collective tab group in a collaborative user interface; receive a message from the collaborative browsing service associated with a second collaborative browsing client operating on a second client computing device joining the session; update the collaborative user interface with a second tab group associated with the second collaborative browsing client; monitor for a data change event related to the first tab group or the collective tab group; when a recognized data change event related to the first tab group or the collective tab group is received, perform an associated first data change operation; and notify the collaborative browsing service about the first data change operation.

In some examples, a computer-implemented method for providing collaborative browsing, the method comprising: initiating, at a first collaborative browsing client operating on a first client computing device, a collaborative browsing session with a collaborative browsing service; creating a first tab group associated with the first collaborative browsing client, wherein the first tab group includes one or more tabs corresponding to one or more webpages open in a user interface of a web browser operating on the first client computing device; including the first tab group in a collective tab group; displaying the collective tab group in a collaborative user interface; receiving a message from the collaborative browsing service associated with a second collaborative browsing client operating on a second client computing device joining the session; updating the collaborative user interface with a second tab group associated with the second collaborative browsing client; monitoring for a data change event related to the first tab group or the collective tab group; when a recognized data change event related to the first tab group or the collective tab group is received, performing an associated first data change operation; notifying the collaborative browsing service about the first data change operation; receiving a message from the collaborative browsing service including the first data change operation, a second data change operation corresponding to a data change event performed by the second collaborative browsing client, and sequence numbers associated with the first data change operation and the second data change operation; and performing the second data change operation based on the sequence numbers to synchronize a shared state amongst the connected collaborative browsing clients.

In some examples, a computer readable storage device including computer readable instructions, which when executed by a processing unit the processing unit is configured to: initiate, at a first collaborative browsing client operating on a first client computing device, a collaborative browsing session with a collaborative browsing service; create a first tab group associated with the first collaborative browsing client, wherein the first tab group includes one or more tabs corresponding to one or more webpages open in a user interface of a web browser operating on the first client computing device; include the first tab group in a collective tab group of a collaborative user interface; in response to a second collaborative browsing client operating on a second client computing device joining the session, update the collaborative user interface with a second tab group associated with the second collaborative browsing client; detect a data change event related to the first tab group, the second tab group, or the collective tab group; in response to the data change event, perform a data change operation corresponding to the data change event, wherein the data change operation synchronizes a shared state amongst the first collaborative browsing client and the second collaborative browsing client.

Examples may be implemented as a computer process, a computing system, or as an article of manufacture such as a device, computer program product, or computer readable medium. According to an aspect, the computer program product is a computer storage medium readable by a computer system and encoding a computer program of instructions for executing a computer process. The details of one or more aspects are set forth in the accompanying drawings and description below. Other features and advantages will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that the following detailed description is explanatory only and is not restrictive of the claims.

