Master thesis – Implementation of Repositories

Be careful when copying information from this article! The paper is already published and you will be charged with plagiarism!

My thesis proposes several approaches as result of the research questions. Their validity of each approach should be verified by allowing users to interact with a prototype built to fulfill all the proposed solutions. Hence, the final users will prove the correctness of this thesis approaches. The implemented prototype will be a brainstorming supporting application.

Because my thesis studies brainstorming on a tabletop, I will choose the Microsoft Surface as the underlying hardware because it supports multitouch and multiuser experience. As development environment I will use Visual Studio 2010 and the programming will be done in C# with User Interface (UI) built in Windows Presentation Foundation (WPF) framework.

In this article I will start with a brief introduction in general details of the baseline system and the technologies implied in the creation of the prototype system. I will continue with the presentation of the architecture of the actual implemented system, which tries to follow the proposed one; the differences between the proposed system and the actual implementation will be underlined and the choices motivated. The article will continue with the class diagrams of the prototype and will end with the presentation of the User Interface, allowing a clear view over the features and the way the prototype performs in achieving the goals of the previous concept presentation.

The prototype had at its base the idea and the former work during my work in Fraunhofer FIT team. The application, called ideaPitch, was a “sink” for ideas sent from different devices (iPhone, iPad, Air desktop application) to the Microsoft Surface. The application was very basic and could load and show ideas, save a printscreen. Because was created in the early stages of Microsoft Surface’s life time, it was not so well structured to accommodate the extensive feature set proposed in this paper. The ideaPitch was used only as an inspiration; the proposed prototype has a different structure and code base, allowing it to be a more powerful approach to the same basic concept – create a proper way to share your ideas with your colleagues.

Brainstorming Session repository – BSCW

In the first phase of the research for my master thesis paper, different sharing platforms were evaluated as presented in Related Work. Among these, BSCW (Basic Support for Collaborative Work) was presented as a content manager and sharing tool, proving to be a easy and straightforward tool to support and enhance the collaboration and cooperation in Computer Supported Collaborative Workgroups. Another feature required by the prototype to be implemented in this paper was a API for communication. BSCW offers this as a webservice module which exposes an API that can receive requests and reply back using the common XML format. The documentation of the methods exposed is extensive and the data retrieved very complex for some calls. Nevertheless, the granularity of retrieved data can be set in the call, such that one can avoid retrieving huge amounts of data, instead just the parts the prototype needs.

Another reason for choosing this system is that it was already available and highly used in the Fraunhofer Institute, researchers being very familiar with it and its features, thus the prototype and the representation of its data are easier to be adopted by the community.

BSCW architecture

BSCW architecture

All above reasons contributed to the decision to use it as Brainstorming Session repository, allowing not only easy sharing and increased collaboration among teams, but also a friendly and familiar environment. In my opinion, this contributes to the improvement of the adoption of this proposed system.

After choosing the environment, the next step was to identify the structures in BSCW that can accommodate the new data saved by this thesis prototype. The decision was to create a folder (as in BSCW’s folder paradigm) with a standard name and description in which all Brainstorming Sessions for this user to be kept. This decision assured that the BSCW user’s account will be well organized and have an easy to identify entry point for viewing and sharing the sessions with other users.

Each session is represented by a subfolder having the title the one that the user chosen before saving the Brainstorming session. This subfolder has also a description which states the date and time in which the session was created.

Going deeper one level into the saved structure, the session contains at least an image, the printscreen of the application. This shows the current state of the application and its purpose is to offer a visual clue about the session, but also to host in its associated metadata the XML serialization of the object which represents that specific session. This associated data is used to restore the session to its original state at a later time, resuming the brainstorming process from where it ended.

On the same level with the Brainstorming session’s printscreen will be found any Brainstorming Items associated with it as HTML files. The choice of this file type is that it affords to easy see the saved items as they were represented on tabletop, allowing users to easily exemplify their Brainstorming session’s outcome to their colleagues.

BSCW - user interface and repository to Breiny sessions

Brainstorming sessions created in BSCW interface

Brainstorming Items repository

The Brainstorming Items repository is a PHP webservice which is connected to a MySQL database. Its purpose is to register users, persist and offer to the target user the Brainstorming items that are sent to it. It is used as storage for the Brainstorming Items for the next available Breiny session.