Online Community Service Engine

Pattern number within this pattern set: 
Fiorella De Cindio
University of Milano
Leonardo Sonnante
RCM - Milan Community Network - Italy

Researchers and practitioners often trivialize the relevance of the software in determining the sustainability and success of online communities. Opinions differ widely between two extremes: someone implicitly assumes that any software for managing online forum is sufficient (cf. Kim A. J., "Community Building on the Web", Addison-Wesley Longman Publishing Co., Inc., 2000): others, including E. Wenger (Wenger, 2001), suggest a large set of features (up to 73) - from several different applications: from access to expertise to synchronous interactions, from e-learning spaces to project spaces, and others - need to be included in a software for managing online communities, so that it results in complex and expensive proprietary solution. Between these two extremes, we believe necessary to identify a set of basic macro-functionalities an Online Community Service Engine should provide and a framework for extending them when necessary. In doing this, while focusing on a single community, attention to provinding support for communicating across community boundaries is crucial as well.


Communities are more and more envisaged as a powerful mean to face with relevant problems in many different fields of human activities (rif to other patterns). Virtual and/or online communities extend these possibilities as they remove the time and space constraints of physical communities, while preserving the advantages of sharing knowledge and experience, mutual trust, finalized cooperation etc.

Local communities in developed as well as developing countries, communities of practice within and across enterprises, learning communities are very different cases were an online counterpart of the community extends and enriches it. More recently, communities arose directly online: this is for instance the case of blogs/bloggers communities.
Regardless the different contexts, online communities are complex socio-technical systems. However, while large amounts of efforts have been made


While the socio-technical nature of online communities is manifest and there exists nowadays a huge literature concerning online communities which deals with topics such as their sociological aspects, organizational impacts and the role communities can play is a variety of contexts (within the organizations as well as in the society), much less attention has been payed to technology issues. Actually, the sociological analysis and the identification of general requirements technology should satisfy - for instance, usability (cf. Preece, 2000) up to now does not provide clear hints to software developers.

The most relevant attempt to identify the features which an appropriate technological platform for supporting online communities should provide has been made probably by Etienne Wenger. In his extensive survey (Wenger, 2001), now in a revision and upgrading phase (, Wenger identifies a set of critical factors for the success of a community of practice (CoP) and their technological implications for the supportive tools in terms of a list of features (the list has 73 items) that an online community environment should have if it wants to satisfy its members’ needs.

Inspired by Wenger’s work, through the analysis of software used for managing virtual community (PhpBB, PhpNuke) and community networks (such as FreePort and CSuite) and through our direct experience of managing several online communities (first of all community networks which constitute our basic competence, De Cindio et al, 2004) with different software, we have worked out a higher-level classification of the macro-functionalities a Online Community Services Engine should provide, which is:

  • homogeneous, since each macro-functionality is at the same level of abstraction of the others;
  • complete, since the seven macro-functionalities captures the essential of a fully-featured online community service engine;
  • general enough to be applied to any kinds of online community: communities of practice, community networks, communities of interests, learning communities, etc.

The outcome is the following list of macro-functionalities an online community service engine should provide:

  1. Users Management characterizes community members and provide different and personalized views. Allow to discriminate among different levels of access to the community resources. This group include members directory, access rights, profiles, etc.
  2. Communication and dialog include all the typical synchronous and asynchronous communication tools such as email, discussion boards, blogs, private messages, chats, etc.
  3. Information and publishing allow community members to manage contents for publishing like with a standard content management system (CMS), but - which we believe essential in an Online Community Services Engine - an effective integration with the communication and dialog dimension (Benini et al, 2005).
  4. Community awareness gives members the sense of belonging to a community that is characterized by rules, roles, history, customs, etc. Examples of these features are: presence awareness (“who is online”), reputation and ranking, personal history, subscriptions, distinctive look and feel.
  5. Calendaring includes the features for storing personal or community events or appointments by date, together with reminders features and the possibility of sharing calendars among members based on access rights.
  6. Workgroups support features. These features are based on the possibility to restrict members’ access to community resources like forums, upload file areas, calendars, etc.
  7. Monitoring and statistics, i.e., the features for keeping track of accesses, number of posts, liveliness of forums, moderators reliability, etc.; it to trace the “health” indicators of the community.

Beside these general purpose macro-functionalities, an Online Community Services Engine should be able to be integrated with modules that offer features relevant for any specific (type of) community. For example teaching modules for learning communities, deliberation facilities for civic and community networks.

For making possible the merge of the basic functionalities with the dedicated features necessary to support specific (type of) communities, the Online Community Services Engine:

  • must have an overall modular architecture for integrating not built-in functionalities;
  • its User Management component must be able to supply authentication and authorization services to external add-on components or tools (while most of the user management components of the software used to implement online communities - e.g. PHPNuke - do not accept authentication requests from external modules);

Both these requirements have the effect of opening the Online Community Services Engine through standard protocols, so facilitating cross-community communication. For the same purpose, the Online Community Services Engine should include those features, such as RSS feeds, which enhance information exchanges.

This is possible if the Online Community Services Engine is implemented over standard “base-technologies”, such as the Lightweight Directory Access Protocol (LDAP) to handle authentications and authorizations and web services for providing standard interoperability among modules.


The classification of the macro-functionalities an Online Community Services Engine should provide, together with the associated architectural requirements, challenge researchers and practitioners to implement and deploy an Online Community Services Engine tailorable by the community that uses it; i.e., each deployment of the engine should be created as an instance of the engine including the set of functionalities necessary to the specific online community. The opening requirement naturally calls for developing the software using open source software tools.

Alternatively, the resulting classification, rather than for implementation purposes, can be seen also as a check list to make a choice of among available software (proprietary or not).

Pattern status: