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.
| Business Drivers | Point-to-Point | Store and Retrieve | Directed Collaboration | Managed Collaboration |
|---|---|---|---|---|
| Time to market |
|
|
|
|
| Improve the organizational business events |
|
|
|
|
| Reduce the latency of business events |
|
|
|
|
| Easy to adapt during Mergers & Acquisitions |
|
|
|
|
| Require instantaneous collaboration |
|
|
|
|
| Require deffered collaboration |
|
|
|
|
| Require workflow collaboration |
|
|
|
|
| Many users |
|
|
|
|
| IT Drivers | Point-to-Point | Store and Retrieve | Directed Collaboration | Managed Collaboration |
|---|---|---|---|---|
| Leverage exisiting skills |
|
|
|
|
| Network adressing independence |
|
|
|
|
| Managed service |
|
|
|
|
| Maintainability |
|
|
|
|
| Complex data types |
|
|
|
|
| Significant network bandwidth |
|
|
|
|
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
- Improve organizational efficiency
- Reduce the latency of business events
- Require instantaneous collaboration
- Leverage existing skills
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
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:
- A client that is a peer to the other clients with which it collaborates. This implies that these clients will have identical capabilities and functions. However, in order to support synchronous communications, these participants should alternate roles between being Senders and Receivers of information.
- Each client has a local persistent data store that is used to store the IP addresses, preferences and other details that facilitate effective collaboration between users.
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:
- The overall nature of communications is simple and is synchronous
- The number of users who use the solution is small
- The application developer has control over all of the clients that are part of the solution
- The network addresses are relatively static and
- No other viable option is available for implementing this solution
Benefits
- This Application pattern is very easy to use.
- This pattern provides a solution in situations where the nature of collaboration (the type of data or the amount of data exchanged) is very specialized and cannot be handled by collaboration solutions that can be purchased in the marketplace.
Limitations
- Since most of the application code developed to support this Application pattern is custom built, the process of maintaining and upgrading the code will be an added burden on the IT department.
- The code that supports this Application pattern will require a good understanding of lower level application and networking protocols. These skills are typically both hard to find and expensive.
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:
- Should know the address of the collaboration partner in order to open communication channels (a socket) to it
- Will play the role of a Sender by posting messages and data to the socket to be sent to the destination and a Receiver where it will be listening to the channel for data
- Can support the transportation of any data stream without having to know about the content of the data stream
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:
- The user knows the address of the other person on the network; this could be the TCP/IP address or a hostname
- The person on the other end has the NetMeeting client on their machine and it is running and listening for incoming calls and
- The receiver accepts the call
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
- Time to market
- Improve the organizational efficiency
- Reduce the latency of business events
- Easy to adapt during mergers and acquisitions
- Require deferred collaboration
- Many users
- Leverage existing skills
- Network addressing independence
- Managed service
- Maintainability
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
As shown in the figure above, the main participants in the Store and Retrieve Collaboration pattern include:
- A client that is a peer to the other clients with which it collaborates. The client should be aware of the address of the server to which it needs to connect. In order to support true synchronous and asynchronous communications, these participants should alternate roles between being Senders and Receivers of information.
- Each client has a local data store that is used to retain copies of the data that the user wants to keep on his or her own machine.
- Each client connects into a server. This server authenticates the clients and allows them to log in to the server. Once this is done the client can store messages for other clients on the server.
- The server has a local data store that is used to hold and save messages, documents and other media that are transmitted from clients. Once a client logs in to the server, it will notify them of content stored on the server for them and will allow the client to pull this content down across the network.
Guidelines for use
This Application pattern should be used when:
- The physical or direct addresses of other clients on the network are not known.
- The pattern can support both synchronous and asynchronous communication. This provides ability to support a wide range of solutions from bulletin boards and workrooms to interactive chat rooms
- A server can be set up that will allow multiple clients to log in and share information with other users by posting messages on (or sending e-mail to) the server for later retrieval
Benefits
- This Application pattern is simple to implement
- Since this Application pattern does not require that a client know the direct address of the destination, it is ideal for solutions where the network addresses are not published or where these addresses change frequently
- Most of the functions of this pattern can be implemented using commercially available collaboration solutions
- This pattern requires very minimal custom code and is cost effective to maintain.
Limitations
- This pattern calls for the implementation of server software and associated hardware to support new users. This means that this will add to the overall complexity of the solution
- The nature and type of collaboration supported by this pattern are simplistic. For more complex communications, later Application patterns are more appropriate.
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:
- Start up the e-mail client (such as the mail client that is a part of Netscape Navigator or Microsoft Outlook Express)
- Create a new e-mail message and address the message to the second user (or groups of users)
-
Select the option to send the e-mail message.
- 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.
- 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
- Time to market
- Improve organizational efficiency
- Reduce the latency of business events
- Easy to adapt during mergers and acquisitions
- Require instantaneous collaboration
- Many users
- Leverage existing skills
- Network addressing independence
- Managed service
- Maintainability
- Complex data types
- Significant network bandwidth
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
As shown in the figure above, the main participants in this Application pattern include:
- A client that is a peer to other clients with which it collaborates
- Each client will have a local address book where users can set up the users that they communicate with on a regular basis. The users can also set up groups of users and collaborate with them collectively. The local address book will also store the address of the server to which it needs to connect in order to initiate collaboration functions.
- The clients could optionally contain software programs (such as word processors, spread sheet programs, and so on) that can be shared across the network
- This Application pattern requires that each client register with the server. Once a client has registered with a server, the user’s data and profile is stored in a directory on the server. The client will connect to the server. This server will authenticate the user by validating their access privileges against the Directory. The server will notify them of other users who are online at that point in time and return the addresses of these clients on the network. The client can then use this information to initiate direct collaboration with other clients that are online at that time. In other words, the client uses the server for authorization, authentication, and directory lookup.
Guidelines for use
This Application pattern should be used when:
- The user does not know the physical or direct addresses of other clients on the network
- All the registered users may not be online at the same time
- There is a requirement for sharing simple and complex applications and data types
- A server can be set up that will allow multiple clients to log in and share information with other users in an online and synchronous manner
Benefits
- This Application pattern supports complex collaboration styles.It allows implementation of authentication and authorization on the individual collaboration sessions.
- Because this Application pattern does not require that a client know the direct address of the destination, it is ideal for solutions where the network addresses are not published, or where these addresses change frequently.
- Most of the functions of this pattern can be implemented using commercially available collaboration solutions.
- This pattern requires very minimal custom code and is cost effective to maintain.
Limitations
- This pattern calls for the implementation of server software and associated hardware to support new users. This means that this will add to the overall complexity of the solution.
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:
- Sharing documents and applications - for instance, during an active collaboration session, a user can share a Microsoft Word® document with other users. These users can view and interactively change the data in the document as long as they have the Microsoft Word software running on their individual machines.
- Sharing rich media - the chat session can support simple chat sessions and also share audio and video data.
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
- Time to market
- Improve organizational efficiency
- Reduce the latency of business events
- Easy to adapt during mergers and acquisitions
- Require instantaneous collaboration
- Require deferred collaboration
- Require workflow-aided collaboration
- Many users
- Leverage existing skills
- Network addressing independence
- Managed service
- Maintainability
- Complex data types
- Significant network bandwidth
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:
- Applications that support collaborative and incremental development of business functions supporting distributed project teams
- Applications where the collaboration is driven by specific conditions or preferences
- Applications that support collaborations that are driven by the content of the messages. For instance a customer service solution which will direct a customer to a specific customer service representative who is familiar with a specific product or service.
Solution
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:
- The clients in this pattern have a temporary data store used to store local data. This allows these clients to work on a local copy of the data before it is replicated to the shared data repository on the server.
-
The servers in this pattern can connect into a Workflow Application that provides the capability to move data from one user/ process to another based on pre-defined rules that are stored in a rules database. These rules can include:
- Simple flows that marshal the data through a pre-defined workflow that consists of a fixed sequence of steps
- Directed flows that establish the destination of the data based on where/ who the message originated from, or
- Dynamic flows that establish the destination of the data based on the content of the message.
Guidelines for use
This pattern should be used when:
- The physical or direct addresses of other clients on the network are not known
- All of the users may not be online at the same time
- There is a requirement for sharing simple and complex applications and data types
- A server can be set up that will allow multiple clients to log in and share information with other users in an online and synchronous manner
Benefits
- This Application pattern supports complex collaboration styles.
- The application also allows us to implement authentication and authorization on the individual collaboration sessions.
- Because this Application pattern does not require that a client know the direct address of the destination, it is ideal for solutions where we do not know the network addresses, or where these addresses change frequently.
- This Application pattern allows us to implement automated techniques such as e-mail filtering, targeted marketing communications and other techniques that are key for implementing sophisticated Customer Relationship Management solutions for the Web.
Limitations
- The workflow processes require custom coding and the definition of workflow rules. However, most of the workflow related functions are available in commercially available workflow engines.
- This pattern calls for the implementation of server software and associated hardware to support new users. This means that this will add to the overall complexity of the solution.
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:
- An interested computer owner downloads free screen saver software from SETI@home.
- Once this software is installed on the computer, it then senses when the computer is idle (for example, when you leave your home office or take a lunch break), and downloads a 300 KB chunk of data for analysis from the central server.
- The results of this analysis are ultimately sent back to the server where they are combined with the crunched data from the many thousands of other SETI@home participants, and used to help in the search for extraterrestrial signals.
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.
