Skip to main content

Collaboration: Review Application pattern

Overview

Note: The Collaboration business pattern is documented to the Application pattern level only. Runtime patterns and product mappings are not yet provided for this Business pattern. However, in many cases, specific products that implement a given Application pattern are listed. to be informed of updates to the Collaboration pattern.

The Collaboration business pattern (also known as the User-to-User, or U2U business pattern) can be observed in e-business solutions that allow users to communicate and share data and information with other users or groups of users on the network. This business pattern captures the process of identifying and locating users on the network and facilitating sharing of information between these users. The collaboration can be synchronous, through services such as instant messengers and chat rooms or asynchronous, through mechanisms such as e-mail and bulletin boards.

The Collaboration business pattern addresses the interactions between individual users or groups of users that may be in the same location or dispersed geographically across the world. This pattern can be observed even in many of the earliest e-business solutions, such as e-mail and bulletin boards. In fact, three (FTP, Telnet and SMTP) out of the four building blocks of the TCP/IP protocol are geared towards fostering collaboration among users, machines, and applications.

Solutions that foster and promote collaboration between users are critical components in today’s world of one-to-one marketing and knowledgeable, powerful consumers. Consider the popular instant messenger services provided by many online services such as AOL and MSN. These services allow individuals to instantaneously locate and interact with other users logged on to the network. These services allow individuals to set up or be part of groups that are built around some common interest (such as a team working on a particular project) or have some common characteristic (members of a family). They also allow individuals to locate other individuals or groups across the globe and collaborate directly with them. The nature of this collaboration could be a simple exchange of textual messages or it could be a more interactive whiteboard application that allows multiple users to see the same document in real-time and make changes to it.

It is rare to see these collaborations as stand-alone solutions. They are part of an overall solution and enhance the features and functions provided by the overall solution. The Collaboration business pattern can be implemented using any one of four distinct Application patterns, presented below. Criteria for evaluating each Application patterns for adoption in your own projects is also provided.

The four Application patterns for this pattern are discussed below. In some cases, specific products that implement this solution design pattern are offered as examples of Collaboration functionality.

The Business drivers for the Collaboration Application patterns
Business Drivers Point-to-Point Store and Retrieve Directed Collaboration Managed Collaboration
Time to market yes yes yes yes
Improve the organizational business events yes yes yes yes
Reduce the latency of business events yes yes yes yes
Easy to adapt during Mergers & Acquisitions no yes yes yes
Require instantaneous collaboration yes no yes yes
Require deffered collaboration no yes no yes
Require workflow collaboration no no no yes
Many users no yes yes yes

The IT drivers for the Collaboration Application patterns
IT Drivers Point-to-Point Store and Retrieve Directed Collaboration Managed Collaboration
Leverage exisiting skills yes yes yes yes
Network adressing independence no yes yes yes
Managed service no yes yes yes
Maintainability no yes yes yes
Complex data types no no yes yes
Significant network bandwidth no no yes yes

Point-to-Point (aka U2U Topology 1)

The Point-to-Point application pattern allows users to directly address other users on the network using simple point-to-point synchronous communications, and then enables them to begin a direct communication link with them. This pattern dictates that each user can establish this synchronous connection to another user by specifying the direct physical address (such as a TCP/IP address or a fully specified machine name) of the other user.


Business and IT Drivers

Time-to-market is often the primary business driver for choosing this Application pattern. This approach can be used to establish collaboration between users of a solution without having to go through the detailed process of establishing and setting up a local/global directory and building in the application code necessary to use this directory.

Because this Application pattern relies on online and instantaneous point-to-point communication, the latency of business events is very low. In fact, this Application pattern allows instantaneous delivery of messages provided the receiver of the message is online and ready to accept the message.

This is the ideal Application pattern to choose if the current objective is to establish simplistic collaboration functions within an application. This solution is also applicable when there are no additional enhancements needed to these collaboration functions. The solution is also cost-effective to develop. However these cost savings can be very easily offset by the maintenance or support costs. Also, the overall complexity increases as more users or functions are added to the solution.

This Application pattern is not a good fit for solutions where users have to collaborate across departmental or organizational boundaries or where there is very little control of how the other users are set up and configured on the network. However, the decentralized nature of the Application pattern makes it an ideal choice for the establishment of instant and temporary networks that do not have a central registry or authority.


Solution

Point-to-Point application pattern
This is the simplest of all Application patterns that automate the Collaboration business pattern. Contrary to the structure observed in the Application patterns for other business patterns (such as Self-Service), the structures for these Application patterns do not have tiers or any order of hierarchy. The participants in this Application include:

The clients that are used in this Application pattern can detect a network connection with the other client and can establish a new connection when one does not exist. They use a local list of addresses to determine the physical network address (TCP/IP address) of a partner on the network. Clients should also have the intelligence built in to be able to communicate over this network connection using a specific protocol (such as TCP/IP) and be able to decode and encode the messages in the specified protocol.

During the next level of elaboration, the Point-to-Point Collaboration pattern can be further defined using more granular functional components. For example, the client may be partitioned into a lookup and connect process responsible for establishing the network connection and a Codec (coder/decoder) function that can be used to enable the collaboration functions.


Guidelines for use

This Application pattern should be used when:


Benefits

Limitations


Putting the Application pattern to Use

Most of the solutions that use this Application pattern tend to be custom coded. However, there are many prominent examples of Web-based solutions that use the Point-to-Point Collaboration pattern. The most well known among them is Gnutella.

Gnutella, a peer-to-peer solution for the sharing of music, is built on a decentralized and temporary network of users with no central point of control. A user who wants to use Gnutella downloads a client program and a host list of users from the web. This list provides the addresses of a limited number of peers (usually 5 to 10) with whom the user can collaborate on a regular basis. The user can use the client to connect to the network and establish connections with the peers on his host list. Each peer on the network has a host list of their own and can establish connections with other users on the Web. This dynamic and cascading link to peers results in a network of millions of users. All search requests are propagated across the network until the file is located. Once this is done, the user can establish a direct link with the peer who has the file and initiate a file transfer request to download the file to the client machine.

Other solutions that use the Point-to-Point Collaboration pattern include custom developed programs such as TCP/IP sockets programs that enable communications between programs and applications. These custom developed programs typically:

Finally, there are many commercially available products such as Microsoft’s NetMeeting that, in some instances can be used to facilitate Point-to-Point collaboration. For example, any user who has the NetMeeting client installed on his machine can initiate calls to any other user on the network as long as:

Store and Retrieve (aka U2U Topology 2)

The Store and Retrieve application pattern allows users to collaborate with others on the network interactively. Unlike the Point-to-Point application pattern, this pattern does not require both partners to be online at the same time. It also does not require the client to know the physical or direct address of other users of the solution.


Business and IT Drivers

This approach can be used to very quickly establish collaboration between users of a solution without having to go through the process of developing a lot of custom code.

Because this Application pattern does not require the client to know the physical or direct address of its partners, it makes it easy to establish collaboration between users in the enterprise and across enterprises.

This is the ideal Application pattern to choose if the current focus is to establish simplistic collaboration functions within a solution. This solution is also applicable when the clients have intermittent network connections and it is difficult to predict when the collaboration partner will be connected to the network. The solution is also cost-effective to develop.

This pattern is not a good fit for solutions where the solution calls for very little latency in the communication of information between the users. It is also not a good fit when the collaboration should include large files or rich media such as streaming audio and video.


Solution

Store and Retrieve Collaboration application pattern
As shown in the figure above, the main participants in the Store and Retrieve Collaboration pattern include:


Guidelines for use

This Application pattern should be used when:


Benefits

Limitations


Putting the Application pattern to Use

There are first and second generation collaboration solutions that use the Store and Retrieve application pattern. One of the most common examples is an e-mail system based on SMTP (Simple Mail Transfer Protocol) and POP (Post Office Protocol). Any user who wishes to use the e-mail system will have to be registered with the e-mail server. When this user wishes to send an e-mail message, the user will:

  1. Start up the e-mail client (such as the mail client that is a part of Netscape Navigator or Microsoft Outlook Express)
  2. Create a new e-mail message and address the message to the second user (or groups of users)
  3. Select the option to send the e-mail message.
    1. The e-mail client then connects to the mail server and sends the message to the receiving server that, in turn directs the message to the inbox of the receiving user. This user might be another user on the sending mail server, or any other e-mail user who has access to the Internet. The mail client will also check to see if there are any messages waiting for the current user in the user's inbox, and download these messages for processing on the client machine.
    2. The e-mail message is then delivered to the recipient user when this user next logs in to the server.

The Store and Retrieve application pattern can also be observed in bulletin boards, chat rooms based on Internet Relay Chat (IRC) protocol, and Lotus teamrooms. Products that implement the Store and Retrieve application pattern include Lotus Domino® and iNotes®, and Microsoft Outlook® and Exchange®.

Directed Collaboration (aka U2U Topology 3)

The Directed Collaboration application pattern allows users to collaborate with others on the network interactively. This Application pattern requires the two users who need to interact to be online simultaneously. It also requires users to register with a server. In this pattern all of the users are peers and there are no client-server or master-slave relationships between the tiers in the pattern.


Business and IT Drivers

This approach can be used to quickly establish collaboration between users of a solution without having to go through the process of developing a lot of custom code. It allows users to simultaneously and interactively modify shared applications and data.

This pattern requires all the users to register with the server. The user’s profile, preferences and security privileges are stored on a server directory. This means that the client does not need to know the physical or direct address of other clients. It also allows us to implement different security levels, and implement more complex collaboration styles that include sharing applications and complex data types.

This is the ideal Application pattern to choose if the current focus is to establish synchronous sophisticated collaboration functions within a solution. This solution is also applicable when the clients have permanent and preferably high-speed network connections. The solution is also cost-effective to develop because many of these functions are available in off-the-shelf products.

This pattern is not a good fit for solutions where there are limitations on the processing power of the clients.


Solution

Directed Collaboration application pattern
As shown in the figure above, the main participants in this Application pattern include:


Guidelines for use

This Application pattern should be used when:


Benefits

Limitations


Putting the Application pattern to Use

Some of the most popular applications on the Web today provide instant messaging services. Examples included AOL Instant Messenger, ICQ, and Lotus Sametime®. These applications use the Directed Collaboration pattern to implement instant and online collaboration. These applications have a global directory where users can register and specify their preferences. They also require a custom client program that connects into a server to facilitate the collaboration process with other users of the solution.

Lotus Sametime and Microsoft NetMeeting® provide a more sophisticated form of collaboration. These products support the basic chat and collaboration functions listed above, but they also provide other functions such as:

One of the most popular and controversial Web sites on the Internet today is Napster. The architecture of Napster is based on the Directed Collaboration pattern. At Napster, all users are registered on the Napster server. When users log in, they are authenticated and they publish a set of files they can share on to the server. Users can also search the server’s store for other files that may be of interest to them. Once they find a file, they select a peer from whom to download the file. The Napster client establishes a point-to-point communication with this other Napster user to request and download the file.

Managed Collaboration (aka U2U Topology 4)

The Managed Collaboration application pattern builds on the Directed Collaboration pattern by implementing workflow rules to manage the collaboration between users of the solution. This Application pattern supports both synchronous and asynchronous collaboration.


Business and IT Drivers

The Managed Collaboration application pattern provides all of the benefits of the Directed Collaboration application pattern. In addition, it helps implement a managed step-by-step collaboration process. These capabilities are very important when there is a requirement for several solutions that include but are not limited to:


Solution

Customed Presentation to Host application pattern
As shown in the figure above, the structure of the Managed Collaboration pattern is very similar to the Directed Collaboration pattern. This pattern has a few more components that extend the Directed Collaboration pattern, including:


Guidelines for use

This pattern should be used when:


Benefits

Limitations


Putting the Application pattern to Use

Most commercial and customer focused Web sites have an area that allows customers, investors, and other users of the Web site to provide feedback to the organization. These sites also allow users to ask specific questions about their products and services. From the customer’s viewpoint, the Web site is a single point of contact into the organization. However, within the organization, questions related to products may go to the manufacturing department, questions related to service may go to customer service and feedback on products and services may go to the quality control department. These solutions can use the Managed Collaboration pattern to implement the feedback functions and setup dynamic workflows that could include looking for selected keywords in incoming messages and routing them to appropriate destinations.

Computational Resource Sharing applications are another class of solutions that use the Managed Collaboration pattern. In this type of solution, clients participate in a network and make their resources available for use by other peers on the network. The most common example of such a solution on the Web is the SETI@home project, which allows anyone with an Internet connected PC to join in and help in the search for extraterrestrial intelligence. While this solution is not part of the Search for Extra-Terrestrial Intelligence (SETI) Institute it helps analyze data collected from the Arecibo Radio Telescope, in Puerto Rico.

The main concept behind the solution is to take advantage of the unused processing cycles of peers on the network by off loading processing and computational tasks to them. The way this works is as follows:

The tremendous advantage of this scheme is that it provides access to Gigaflops of processing capacity that would otherwise be expensive to procure and would otherwise go unused.