by Caroline Leung
The AquaLogic User Interaction Development Kit (IDK), formerly known as the Enterprise Development Kit, provides programmatic access to many AquaLogic User Interaction Collaboration services, such as project management, document repository, threaded discussion, task list assignment, and subscription/notification support. This article describes how to embed collaboration services and functionality into your Web applications using the IDK Collaboration API.
AquaLogic User Interaction Collaboration provides a working platform for work groups and business units, and is part of AquaLogic User Interaction. See the Introduction to AquaLogic User Interaction Development by Jennifer Shipman (Dev2Dev, April 2006) for details on how this component fits into the entire AquaLogic User Interaction suite. ALUI Collaboration provides a number of collaborative features with some obvious benefits:
ALUI Collaboration helps bridge the communication between employees, customers, and partners; you can also use it to manage projects across different teams and areas, such as engineering, sales, marketing, and customer support.
To make the collaboration services more accessible to customization and embedding, a remote API is exposed to developers. The IDK remote API provides an object-oriented way to call into ALUI Collaboration, exposing the elements of the Collaboration Server, and providing an easy way to embed and customize collaboration services in your Web applications.
Collaboration functionality centers on a Project. A Project is a centralized location of interrelated collaborative information. It is the container for all the other functionality, such as:
The remote API not only provides access to Collaboration objects, it also supports querying and managing security of the objects.
The rest of the article will demonstrate how you can embed collaboration services into your applications using the remote API.
The following example will walk you through how to use the Collaboration Task List and Discussion APIs to create an assignment and newsgroup portlet for a college class. The primary focus of this article is on how to program the portlet using the IDK Collaboration API; an in-depth explanation on how to use .NET Web forms will not be included.
Most college classes have multi-part assignments that require research, group work, communication between individuals, and other kinds of collaborative effort. Using newsgroups is the most common way for students to brainstorm new ideas, discuss problems with the assignments, and otherwise communicate with each other. This example will show you how to build an assignment/newsgroup portlet using the Collaboration Task List and Discussion API features.
Our design has two main views for this portlet: the Assignment View that shows all questions in an assignment, and the Newsgroup View that shows corresponding discussions. Let's look at these in more detail.
The Assignment View shows all the questions in an assignment. Each of the questions in an assignment corresponds to a task, and each of the sub-parts of a question corresponds to a sub-task, which are shown with proper indentation immediately below the task, as indicated in Figure 1.
Figure 1: The Assignment View with tasks and sub-tasks
The option drop-down allows you to manipulate the tasks, including:
The Newsgroup View shows all the corresponding discussions for the selected tasks in the previous screen. When a task is created, a corresponding discussion is created with the same name. When students want to check for information for a particular task on the assignment, they can select that task on the Assignment View, choose View Discussions , and then use the resulting Newsgroup View to read all the corresponding discussion. Figure 2 shows the Newsgroup View.
Options from this view include:
Other views in this portlet include being able to create a new task, sub-task, or new post, or to post a reply. Let's now turn to the code.