Image Web Part
Application Design Patterns

Overview of Collaborative Application Design Patterns

NOTE: Sign in above, so that you can go hands-on with solution examples.

It is quite common for people to assume that each application that they design and build is unique. In a classic software development world of custom coding this is particularly common. However, in the modular application world of a CorasWorks workplace, where you are building applications on the SharePoint collaboration platform, there is actually a great deal of commonality of application architecture.  In fact, you are able to see and define common design patterns.  They have a common two-dimensional structure - their layout, and they have a common form and type of connection and flow of information. 

CorasWorks began with a solid understanding of the core design patterns of applications on a collaborative platform.  We then built modular, end-user configurable components that support these patterns.  These are the core capabilities of the CorasWorks Workplace Suite.  Over the years, our catalog of collaborative application design patterns has grown and our understanding of application requirements has matured, leading to more robust capabilities in our products.

At this time, CorasWorks supports and trains on ten core collaborative application design patterns.  These are not the only design patterns, but, they are the most common.  We train individuals on these patterns in our standard "Builder Training" classes.  The solutions in our Workplace Suite Solution Set are all based upon particular design patterns or a combination of them.  As an example, examine the structure and functionality of the Internal Project Team solution and compare it to the Marketing Campaigns and Engagement Management solutions. All of these are now categorized under our Project Based category of the showroom.  You will find a great deal of commonality. In fact, this Tiered design pattern is the number one pattern for multi-site project collaboration solutions and can be applied to thousands of situations. Each of the other patterns has similar reusability.

Why is this Important to Your Success?

With modular software, templates, blueprints, and so on, once a design pattern is known and understood, it becomes very easy for non-technical and non-development people to reuse the components and solutions to create different solutions that use the same design. It allows people to become "Workplace Application Architects" without having to immerse themselves in the underlying technology.  It also provides a common language for people to use to discuss design. In effect, a common understanding and language of these design patterns allows people to very quickly access a need, discuss it, and translate it into effective applications - all by reusing modular components, without requiring custom coding.  The result is a dramatically reduced cost to design, develop, and support solutions.  And, by empowering non-technical "Power Users" to become application architects, a broader base of people within your organization are able to contribute to the process of designing and building out your workplace, leveraging their business knowledge.

The Ten CorasWorks Application Design Patterns

In the rest of this article we will discuss the current ten collaborative application design patterns that CorasWorks publicly supports, trains on, and builds towards. There is a description of each design pattern along with a graphic schematic. Note that the design patterns are two-dimensional and that they are all represented by a 2d diagram.  These are structural patterns that one would overlay on top of their workplace.  Some consist of single site designs such as the Workspace and Applet patterns. Others are multi-site, distributed patterns such as Tiered, Secure Separation, and Matrix. As you become familiar with these patterns, you will see that you can combine these patterns to create very powerful applications that are distributed across your CorasWorks Workplace running on SharePoint. The full list consists of the following:

  • Workspace

  • Applet

  • Tiered

  • Matrix

  • Personal Productivity

  • Secure Separation

  • Master

  • Knowledge Management

  • Centralized

  • Distributed

Workspace Pattern

Everything in Windows SharePoint Services or the SharePoint Site section of SharePoint Portal Server is a site.  When a site is used for collaboration work, we call it a “workspace.”  It is the most common type of solution using SharePoint out of the box for collaboration.  In the workspace model, each SharePoint site stands on its own.  A site may be used for a project, a document, a meeting, etc.

The key purpose of this site is to hold information or tools for a given purpose.  It is often part of a fuller solution.  For example, the project site of our Internal Project Teams solution is a workspace. In the diagram below notice that workspaces are generally part of another pattern and it’s use is context sensitive. For instance, one person’s Workspace may be part of another person’s Matrix Design Pattern.

 

An example of a solution with a workspace design pattern is the Customer Engagement workspace of our Engagement Management solution.  A more complex design of a workspace can be seen in the Project Management workspace.

Applet Pattern

The applet design pattern is focused on a business process.  It is used in situations where you want to process information, such as a help desk, customer service, or a sales pipeline.  These are the classic types of database applications.  The design is intended to allow for efficiently moving transactions through a flow from start to finish.  All of this occurs within a single SharePoint site.

An example of a solution with an applet design pattern is the Help Desk. 

Tiered Pattern

Tiered solutions are the next most common pattern after the workspace.  Typically, this pattern is used to bring together information from like sites.  In general, it is used initially for most project-oriented workplaces.

Two-tiered solutions are where most tiered solutions start.  However, you can create any number of tiers using a combination of dashboards.  For instance, in a large organization you could have:

  • A top-level site with views of department information

  • Department dashboards with views of business functions

  • Business function dashboards with views of specific projects

  • Project dashboards with views of sub-workspaces for documents and meetings

An example of a solution with a tiered design pattern is the Internal Project Teams solution.

Matrix Pattern

The tiered pattern works well when your structure is clear and consistent.  When people first design their workplace, they will typically lay it out with a site structure that is tiered to match the organization structure.

Yet, in the real world, a great deal of work is done cross-functionally.  This is the horizontal view of information vs. the vertical approach.  The result is a matrix design where you have a dashboard on the side that serves a specific user role or function that is separate from the tier.

The diagram below illustrates the Matrix pattern, specifically highlighting how the information flows vertically and horizontally.

An example of a solution with a matrix design pattern is the Executive Dashboard.

Personal Productivity Pattern

The personal productivity design pattern demonstrates the use of a matrix design, but is oriented toward providing views into the workplace from dashboards that are unique to the user.  The difference is that the dashboard or view is completely different for each user.  Unlike a classic database application where all users see relatively the same information, this design takes the workplace to a two-level environment:

  • One level is the general system of work for everyone

  • The top level provides unique views for users

The key to personal productivity is for the individual to have the information and tools at their fingertips, organized in a way that is most useful for them.  Through a collaborative workplace powered by CorasWorks, you can optimize the productivity of the individual without sacrificing the team, group, and organizational productivity, which requires structure and control. In the diagram below, notice the concept of filtering out items that are not relevant to the user in context. In other words, all information is filter out except “my” items.

One example that we use is the IT Director Dashboard.

Secure Separation Pattern

The purpose of the secure separation design pattern is to secure information by separating it in individual sites and lists.  Ideally, people want to secure specific information, such as a classified documents.  To do this, they typically look for “item level security.”  While this is logical and the only means in typical large database systems, such as document management systems, it is both a) challenging to implement and b) challenging to maintain.

Using the secure separation design pattern, you have an extraordinarily elegant way to secure information in a way that is very obvious to users and very easy to maintain.  The result is that this pattern actually delivers much higher levels of security.

The basic design is to put information into separate sites or lists based upon how secure you want the information.  Thus, for instance, you could have a site for Top Secret, one for Classified, and one for Unclassified.  Each could have its own document library.

Then, by overlaying a standard two-tier design or matrix, you can have a dashboard that presents the information from all of these secure separate sites to make it look like one site.  However, since CorasWorks respects security, the user will only see and have access to items from the sites to which they have access.

For users, it is clear what they have to do: store the information in the correct site or list. The following diagram outlines this concept of using a Roll-up collecting information from different sites or lists/libraries.  However, it only shows the items that the user has permission to see.

An example is the Partner Extranet Solution.

Master Pattern

The Master pattern is quite different than the Secure Separation Pattern.  With Roll-ups, the common thought is that information is distributed throughout the workplace in sites and what you want to do is aggregate data.  This is because a collaboration platform typically distributes information, so the issue appears to be the need for aggregation.  This is often the case.  However, CorasWorks Roll-ups really just enable you to connect data, so you can have roll-downs, roll-acrosses, roll-arounds, etc.

The master design pattern is used in situations where you do the opposite – you centralize the information in a single site and then create views of this information anywhere in the workplace using roll-ups or Cross-Connects.  In a master solution, the information is centralized and the views are distributed.  This pattern starts to resemble the classic database architecture of the last 20 years.  This is particularly true with the new Cross-Connect capability that displays and enforces relational references.  In fact, in many situations, it is the right answer for reasons of information integrity and security.

The diagram below illustrates this storage of information in a “master” list and using that information throughout the workplace. In this scenario, there is a centrally located single list or library from a single site, with all of its data being viewed within the other sites.  Only the single list needs to be maintained, as the other sites are pointed to roll-down the information.

An example of a solution with a master design pattern is MBO Management

Knowledge Management Pattern

This is a very basic design pattern for managing information.  It can be used in any situation where you create an information resource that consists of multiple information stores, such as document libraries, and you need to provide dynamic ways to access and see slices of the information.  Key aspects of this design are that the information is probably in more than one document library or list, probably in separate sites or portal sub-areas (particularly if you want site level security), and it requires a number of ways to access the information and see slices of information.

The diagram below depicts aggregation of multiple lists and the destinations filter the lists to only see what they need to see.  It is considered a “taxonomy-based” pattern, with the emphasis on the end users seeing only what they need to see due to the filtering.

The example of a solution with a knowledge management design pattern is an R&D Library.

Centralized Pattern

The Centralized design pattern is a powerful combination of many aspects of other design patterns.  It is used to build a more powerful “database-oriented” application that centralizes data within a single site or a limited number of sites.  The primary purpose is to make the application more scalable and manageable.  Usually, it is used in a project-oriented environment with transactions, such as processing mortgage loans.

The best use for this type of design is a situation with many things, with relatively little data, with less collaborative work.  For instance, you could create a site for each customer.  But in these sites, you don’t really do collaborative work, it primarily just stores key information.  Instead of having many sites, possibly thousands, you can centralize the information in a single site. 

The diagram below illustrates the ways in which the item (product, document, project) maintains its unique identity and characteristics throughout its life cycle.  It may take multiple processes in order for the item to move along.

The Product Development solution is the example used to show the centralized design pattern.

Distributed Process Pattern

The distributed process design pattern is oriented towards the processing of information.  The key element of the design is that the information stays in one place and there are views that are distributed to the people involved in a process.  This sounds very similar to the master design pattern, but the difference is the function.  In the master design pattern, the focus is on information.  In a distributed process type of solution, you want individuals to participate in a process.  This may sound like an applet, but here the process is distributed across departments as opposed to being centralized in a single site.

The diagram below shows how multiple sites are required for the process to be completed.

The example solution that supports a distributed process design pattern is Policy Approval

 
Updated: January 30, 2007

Powered By: CorasWorks

Copyright © 2003-2007 CorasWorks Corporation