Updating freeTribe to Support Efficient Synchronous Awareness in the Web Context
University of Guadalajara, Mexico
Gilogiq Internet Services Ltd., Spain
Department of Informatics,
University of Holguín, Cuba
Julio C. Rodríguez-Cano
Department of Informatics,
University of Holguín, Cuba
Abstract: The research field of Computer-Supported Cooperative Work has been reflected fundamentally in theoretical contributions. This contributions have constitute the base to carry out several intents to facilitate the work of the collaborative systems developers, however, current tool-kits, APIs or class libraries only eliminate partially the gap between the technical aspects that impose the information technology and the stressed social character of the process of collaboration in the World Wide Web. In this paper is presented the framework freeTribe, which involve the domain of the distributed groupwares leaning on the Cooperative Model of the methodology AMENITIES, in the middleware platform ICE and in RIA technologies; freeTribe has been designed as a software framework, to maximize its reusability and adaptability with a minimal programming effort. Support for synchronous group tasks in the Web context is increasingly recognized as a desideratum for collaborative systems and several tools have emerged recently that help groups of people with the same goals to work together, but many issues for these collaborative systems remain under studied. We identified synchronous awareness as one of these issues in collaborative systems, and updated freeTribe with four well-accepted kinds of awareness (group awareness, workspace awareness, contextual awareness, and peripheral awareness) by the community focusing our interest in its synchronous mechanism for efficient interaction in Web contexts.
Keywords: computer-supported cooperative work, groupware, synchronous awareness.
Acualización del freeTribe para facilitar el conocimiento síncrono eficiente en el contenido Web
Resumen: El campo de investigación de la Cooperativa de Trabajo Apoyado por Computadora se ha reflejado fundamentalmente en las contribuciones teóricas. Estas aportaciones han constituido la base para llevar a cabo varios intentos para facilitar el trabajo de los desarrolladores de sistemas de colaboración, sin embargo, las herramientas acuales, como APIs o librerías de clases sólo eliminan parcialmente la brecha entre los aspectos técnicos que imponen la tecnología de la información y el subrayado de carácter social del proceso de colaboración en la World Wide web. En este trabajo se presenta el marco freeTribe, que implica el dominio de los groupwares distribuidos que se inclinan en el modelo cooperativo de las comodidades de metodología, en la plataforma ICE del middleware y en las tecnologías RIA; freeTribe ha sido diseñado como un marco de software, para maximizar su reutilización y adaptabilidad con un mínimo esfuerzo de programación. El apoyo a las tareas de grupos sincrónicos en el contexto Web se reconoce cada vez más como un desiderátum para los sistemas de colaboración y varias herramientas han surgido recientemente que los grupos de autoayuda de personas con los mismos objetivos a trabajar juntos, pero muchos problemas para estos sistemas de colaboración permanecen bajo estudio. Identificamos la conciencia sincrónica como uno de estos temas en los sistemas de colaboración, y actualizamos freeTribe con cuatro tipos bien aceptados de la conciencia (conciencia de grupo, de sensibilización espacio de trabajo, sensibilización contextual y sensibilización periférica) de la comunidad se centran nuestro interés en su mecanismo de sincronización para una eficiente interacción en contextos web.
Palabras clave: coperación ayudada por computadora, groupware, conciencia sicronizada
1. Introduction and motivation
just like “knowledge management” was last year.
Reading these first lines maybe you asked yourself, why to update freeTribe with a Web-based infrastructure to support synchronous awareness? Why now? There is a simple two-fold answer to both these questions. Using technology to understand and support collaborative behavior has been around for a while, what is well known as Computer-Supported Cooperative Work (CSCW), but it is in the recent years that we have seen more specialized attention given to applying CSCW methods and frameworks for explicit collaborative scenarios in the World Wide Web. On the other hand, the Web-based technologies for groupware development have found the importance of Rich Internet Applications (RIA) frameworks in order to support real-time interaction. This motivation has been getting pushed by the extended use of Internet applications like Social Networks (e.g., Facebook, Twitter, Google+ and LinkedIn) or Virtual Worlds (e.g., SecondLife, Wonderland and Qwaq) for instance (Coleman & Levine, 2008).
Attending to this situation we saw that a set of theories and models for understanding and providing awareness emerged in the early works reported in the CSCW literature. Gaver (1991) argued that an intense sharing of awareness characterizes focused collaboration in which people work closely together on a shared goal. He further claimed that less awareness is needed for division of labor, and that more casual awareness can head to serendipitous communication, which can turn into collaboration. Some lines of research focused on providing awareness using computational environments based on “event propagation mechanisms” for collecting, disseminating, and integrating information concerning collaborative activities in several groupwares that we can find available today.
In the CSCW context, the term groupware refers to an application that helps people work together collectively while located remotely (different place) or co-located (same place) from each other, and interacting synchronously (same time) or asynchronously (different time) (Ellis et al., 1991). One of the most general definitions was coined by Wells and Kurien (1996) “Groupware is the software and hardware for shared interactive environments”.
Our keystone to research around the groupwares and awareness is freeTribe (FRamework for dEvElopment of disTRIButed groupware)(Hurtado-Matos & Rodríguez-Cano, 2006), which has their design inspired in AMENITIES (MEthodology for aNalysis and desIgn of cooperative systEmS). AMENITIES is a methodology which allows addressing the analysis and design of CSCW systems systematically and which facilitates subsequent software development. It allows the realization of a conceptual model of cooperative systems and focuses on the group concept. It covers significant aspects of both group behavior (dynamism, synchronization, etc.) and structure (organization, laws, etc.). The resulting specification contains relevant information (cooperative tasks, domain elements, person-computer and person-person dialogues, etc.) to the creation of the user interface.
The objective of this paper is to present the current freeTribe design principles and characteristics, with an especial emphasis on the front-end extension to support synchronous awareness in the Web context. To do this, we have organized this paper as follows. In the next section we present a high-level overview of the freeTribe fundamentals. In the Section 3 is presented the explanation of RIA infrastructure that we use to update freeTribe. Then, in Sections 4 and 6 we include in this paper the awareness techniques and mechanisms supported by the new version of freeTribe. Finally, we conclude this paper in Section 6 by summarizing the exposed topics.
2. Overview of the freeTribe fundamentals
The development of collaborative systems is a complex task, which involves software technologies and cognitive sciences in different areassuch as distributed programming, human-computer interaction and many others. This situation is not ideal because it requires great programming efforts. Fortunately, design patterns, software frameworks, and middlewares are increasing their popularity since they have a high reusability impact and suitable relationships (Schmidt & Buschmann, 2003) To address the freeTribe implementation problem, we have designed it as a groupware framework. Some methodologies for the development of a framework have been suggested that use domain analysis, software evolution, and design patterns. This section presents an overview of design patterns, frameworks, and middlewares and describes how these technologies complement each other to enhance their reuse and productivity.
As mentioned before, a groupware supports collaboration among group members that can be in different places at the same time. This capability requires a distributed architecture, usually Web applications with client/server architecture. This model is very useful when collaboration is asynchronous (e.g. the e-mail applications), but in synchronous interactive situations it is not very efficient. For that reason we consider the use of a middleware-based architecture as mechanisms of distributed communication, instead of a Web-based infrastructure. We wish to emphasize than with the middleware-based architecture it is also possible to surf the Web.
Over the past decade, a number of object-oriented middleware standards have emerged and matured, such as the Common Object Request Broker Architecture (CORBA) and Distributed Component Object Model (DCOM). Currently, the developers who are looking for an object-oriented middleware platform are offered some alternatives. Therefore, it is important to make careful selections. For example, .NET/WCF has the drawback that it supports only a limited number of languages and platforms. Java Remote Method Invocation (RMI) is a Java-only solution. CORBA has got the high degree of complexity of an aging platform, coupled with ongoing vendor attrition. Web Services have severe inefficiencies and the need of using proprietary development platforms, as well as security issues (Henning & Spruiell, 2012).
For our purposes, we have selected the Internet Communications Engine (Ice) because its applications are open-source, suitable for use in heterogeneous environments: client and server can be written in different programming languages, run on different operating systems and machine architectures, and they communicate using a variety of networking technologies. The source code for these applications is portable regardless of the deployment environment (Henning & Spruiell, 2012).
2.2. Object Oriented Frameworks
A framework is a collection of classes that provides a set of services for a particular domain; a framework thus exports a number of individual classes and mechanisms that developers can reuse or adapt. It is characterized by three important features (Fayad et al., 1999):
First, a framework exhibits Inversion of Control (IoC) at runtime via callbacks to component hook methods after the occurrence of an event such as a mouse click or data arriving on a network connection. When an event occurs, the framework calls back to a virtual hook method in a pre-registered component which then performs application-defined processing in response to the event. The virtual hook method in the components decouples the application software from the reusable framework software, which makes it easier to extend and customize the applications as long as the interaction protocols and quality properties are not violated.
Second, a framework provides an integrated set of domain-specific structures and functionalities. Reuse of software depends largely on how well frameworks model the commonalities and variability in application domains. By leveraging the domain knowledge and prior efforts of experienced developers, frameworks embody common solutions to recurring application requirements and software design challenges that need not be recreated and re-validated for each new application.
Finally, a framework is a semi-complete application that programmers can customize to form complete applications by extending reusable components in the framework. In particular, frameworks help the canonical control flow of applications in a domain into architectures and families of related components. At runtime, these components can collaborate to integrate customizable application-independent reusable code with customized application-defined code.
2.3. Design patterns
The design of a groupware framework can be greatly improved by using design patterns. A design pattern is a description of communicating objects and classes which is customized to solve a general design problem in a specific context. Each pattern represents a common and recurring design solution which can be applied over and over again in different problem-specific contexts (Gamma et al., 1995). Patterns provide the designer with:
- Abstract templates on how to make specific parts of a framework more flexible towards changes.
- A mechanism to document the architecture of a framework using a high abstraction level vocabulary.
- A mechanism to impose rules about how to reuse or extend the framework.
- A higher level of documentation for a complex framework consisting of numerous heavily interconnected classes and objects.
- Guidance on how to extend the framework with new variations and whether or not extensions can be made.
2.5. AMENITIES methodology
The natural complexity of CSCW systems demands great efforts in specifications and development. The development of groupware applications is more difficult than that of single-user applications given that social protocols and group activities must be considered in order to obtain a successful design. AMENITIES (Garrido et al., 2004) is a methodology which allows addressing the analysis and design of CSCW systems systematically and which facilitates subsequent software development. It allows the realization of a conceptual model of cooperative systems and focuses on the group concept. It covers significant aspects of both group and structure. The resulting specification contains relevant information (cooperative tasks, domain elements, person-computer and person-person dialogues, etc.) to the creation of the user interface.
Figure 1. General diagram of AMENITIES methodology (Garrido, et al., 2004).
This methodology proposes the description of a cooperative system at two sets of models (Garrido, et al., 2004):
- Models used in techniques for the capture and description of requirements. The requirements elicitation process is mainly accomplished by means of the application, mainly, of ethnography and use case techniques.
- Cooperative model: It is a conceptual model that describes the basic structure and behavior of the complete cooperative system. This model is built hierarchically on the basis of other models, each one focused on providing a different view of the system. A structured method is proposed in order to build the cooperative model systematically. This method consists of the following stages: Specification of the organization, role definition, task definition and specification of interaction protocols.
The General diagram of AMENITIES methodology is presented at Figure 1, which shows the principal models and general stages. The general stages are (1) system analysis and obtaining of requirements; (2) modeling of the cooperative system; (3) analysis of the cooperative model; (4) system design; and (5) system developing. AMENITIES follow an iterative simple process, allowing carrying out a refining of the model as a consequence of the analysis of this, as well as a revision of the requirements from the start or of the cooperative model that could contribute news or different information to consider.
Figure 2. Mapping of cooperative task and interaction protocols to groupware components
(Rodríguez et al., 2007).
A case of study that apply this methodology was presented by Garrido (Garrido, et al., 2004), they considered a case study based on a help system for the decision of risky operations by financial institutions. In this study, they described a business process to grant a mortgage which a client has applied for in a branch office. The first step in a business process to grant a mortgage consists of realizing a feasibility study and making a report with all the information. The case study includes three organizations: branch, valuation office and notary office. The Branch organization has three roles: Bank Manager, Head of Risk and Teller. In Figure 3 they show an example of user interface of the subactivity decideConcession, which presents a shared workspace (the Debt Report) and a DIChat (Chat for online users) component (4) to implement the interaction between the actor playing the bankManager role and the actor playing the headOfRisk role. Besides, the users can observe a Telepointer (Pointer movements of another user) component (5) on debt report corresponding to the action of the actor playing the bankManager role at that moment.
3. Making Web-based infrastructure with RIA
Today we save our information in Web sites, more than that, we have Web applications. That’s where the RIA comes in. A RIA isn’t a single specific thing; it’s more of a paradigm, almost an approach to Web application development. RIA are characterized by appearing in many ways to look, feel, and function just like those native applications we left behind.
An important share of applications developed today uses thin-client paradigm (Fränkel, 2011), most of the time with a touch of Ajax augmentation. Unfortunately, there is no clear leader for web applications. Some reasons include the following:
- Flex would be a good candidate, as the technology is mature and Adobe a commercial force to be reckoned with, but Apple did not add the Flash player to its iOS platforms. Thus, surfing mobile with these devices cuts you from Flex content.
- Ext JS makes web application development simple by: providing easy-to-use cross-browser compatible widgets, interacting with the user and browser via the EventManager, and communicating with the server in the background without the need to refresh the page, but it still do not have a good integration with Java.
- Most developers know how to develop plain old web applications, with enough Ajax added in order to make them usable by users.
- GWT, although new and original, is still complex and needs seasoned developers in order to be effective .
3.1. Vaadin framework
Vaadin Framework is a Java web application development framework that is designed to make creation and maintenance of high quality web-based user interfaces easy. Vaadin supports two different programming models: server-side and client-side. The server-driven programming model is the more powerful one, and essentially lets you forget the web and program user interfaces much like you would program any Java desktop application with conventional toolkits such as AWT , Swing, or SWT, but easier (Fränkel, 2011).
For our purposes, we have selected this framework because its represent a unique framework in the current ecosystem in order to develop rich CSCW systems; its differentiating features include the following (Fränkel, 2011):
- No plugin to install on the client's browser, ensuring all users that browse our application will be able to use it "as is".
- As Vaadin uses GWT under the cover, it supports all browsers that GWT also supports. Therefore, we can develop a Vaadin application without paying attention to the browsers and let GWT handle the differences.
- Moreover, Vaadin uses an abstraction over GWT so that, in theory, you can use another rendering engine, even Swing! This architecture works toward alleviating risks of GWT becoming a closed source in the future and the Vaadin team is committed to open source.
- Finally, Vaadin conforms to standards such as HTML and CSS, making the technology future proof. For example, many applications created with Vaadin run seamlessly on mobile devices although they were not initially designed to do so.
4. Awareness techniques
Situation awareness research focuses on each individual’s capacity to perceive elements and the cognitive processes involved in maintaining awareness of the environment. Gutwin and Greenberg (1996) define workspace awareness as up-to-the-moment understanding of another person’s interaction with the shared workspace. It is knowledge about the group’s working environment, which creates an understanding of people within a workspace. In a collaborative environment, awareness involves knowledge about the people one is collaborating with (presence, identity, and authorship), the activities they are working on (actions, intentions and artifacts manipulated) and where (location of work, gaze direction, view and individual reach). Historical awareness information also includes action, artifact, and event history and should be provided in asynchronous work situations.
Ethnographic studies have determined that awareness allows group members to manage the process of working together and is necessary for coordination of group activities (Dourish & Bellotti, 1992). Being aware of others’ activities in a workspace allows participants to better understand the boundaries of their actions, which in turn help them, fit their own actions into the collaborative activity stream. This also enables groups to better manage coupling levels between their activities, helping people decide who they need to work with and when to make the transitions from looser to tighter coupling (Heath & Luff, 1991). Furthermore, awareness simplifies communication by allowing individuals to artifacts, the workspace can be used as reference the shared environment and elements within it: When discussing shared a communication prop (Brinck & Gomez, 1992). This makes awareness an important building block for the construction of team cognition (Gutwin & Greenberg, 2004) and an enabler of shared understanding that allows individuals to get a better sense of the work that is being performed by others (Gutwin, Greenberg, Blum, & Dyck, 2005).
5. Strategic alienation to update freeTribe
There are several ways of defining and implementing awareness. Various research projects have used their own taxonomy and interpretation of awareness for creating frameworks and systems. For instance, Gutwin & Greenberg (2002) classified awareness in two types: situational, and workspace and they suggested that situational awareness underlies the idea of workspace awareness in groupware systems. Their definition of workspace awareness included how people interact with the workspace, rather than just awareness of the workspace itself. Simone and Bandini (2002) identified two kinds of awareness: (a) by-product awareness that is generated in the course of the activities people must do to accomplish their collaborative tasks; (b) and add-on awareness that is the outcome of an additional activity, which is a cost for the collaborators to what they must do and is discretional in that it depends on collaborators’ evaluation of the contingent situation. Chalmers (2002), likewise, divided the awareness in two kinds: awareness of people and of information artifacts. He suggested implementing activity centered awareness tool, in that it focuses on presenting the ongoing appearance and activity of people.
For the purpose of the work reported here, a more comprehensive and well-accepted taxonomy of awareness, which addresses four kinds of awareness (Liechti & Sumi, 2002) as listed below, will be used.
- Group awareness. This kind of awareness includes providing information to each group member about the status and activities of the other collaborators at a given time.
- Workspace awareness. This emphasizes the fact that awareness generally emerges when people share a space. In other words, this kind of awareness refers to a common space that the group members share and where they can bring and discuss their findings and create a common product.
- Contextual awareness. This type of awareness relates to the application domain, rather than the users. Here, we want to identify what content is useful for the group and what the goals are for the current project.
- Peripheral awareness. This refers to the human ability toprocess information at the periphery of the attention, witha very low overhead. In other words, peripheral awareness relates to the information that should be kept separate (on their periphery) from what a participant is currently viewing or doing.
freeTribe is a framework FLOSS (Free Open-Source Software) implemented using the Java Platform and ICE middleware. These technologies allow to freeTribe build CSCW systems based applications are open-source, suitable for use in heterogeneous environments: client and server can be written in different programming languages, run on different operating systems and machine architectures, and they communicate using a variety of networking technologies.
Figura 3. freeTribe software architecture
Figure 3 shows freeTribe software architecture based on three layers:
- First Level: the lower level is the base layer that manages the communications protocols.
- Second Level: it contains the necessary services to represent the concepts of AMENITIES (Garrido, et al., 2004), as well as the security and awareness services.
- Thi rd Level: at the upper level, there is a tool layer that represents systems developed over lower layers and a collaborative server.
The Figure 4 shows the relationship betwen Amenities, freetribe and distributed groupwares.
Figure 4. Relationship betwen Amenities, freetribe and distributed groupwares.
The CSCW community has been developing a lot of groupwares in the Web context through the last few years, but many of these developments address only specific problems or do not adequately support efficient synchronous awareness interaction. Therefore, it is convenient to see around the RIA frameworks and middlewares platforms as complements for traditional Web development technologies. In this paper we presented four kinds of synchronous awareness techniques through its implementation in freeTribe with the complements Vaadin and ICE.
We would like to thank Livan K. Badías-Ibarra from the University of Informatics Science (Cuba), for support and discussions concerning with freeTribe evaluation and for all of freeTribe community members for thei r valuable time and continues inputs.
Coleman, D., & Levine, S. (2008). Collaboration 2.0: Technology and Best Practices for Successful Collaboration in a Web 2.0 World. Silicon Valley, California, USA: HappyAbout.info.
Ellis, C. A., Gibbs, S., & Rein, G. (1991). Groupware: Some issues and experiences. Communications of the ACM, 34(1), 9-28.
Fayad, M., Schmidt, D., & Johnson, R. (1999). Building application frameworks: Object-oriented foundations of framework design.
Fränkel, N. (2011). Learning Vaadin powered by Vaadin-built RIAs.
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object-oriented software: Addison-Wesley.
Garrido, J., Gea, M., Noguera, M., González, M., & Ibáñez, J. (2004). Una Propuesta Arquitectónica para el Desarrollo de Aplicaciones Colaborativas. Interacción 2004, 164--171.
Henning, M., & Spruiell, M. (2012). Distributed Programming with Ice: ZeroC.
Hurtado-Matos, L. I., & Rodríguez-Cano, J. C. (2006). Proposal of a Framework for Distributed/ Groupware Development. Ingeniería Informática, Título de Grado, Universidad de Holguín, Holguín, Cuba.
Rodríguez, M. L., Garrido, J. L., Hurtado, M. V., & Noguera, M. (2007). An Approach to the Model-Based Design of Groupware.
Multi-user Interfaces. CRIWG 2007, 157–164.
Schmidt, D., & Buschmann, F. (2003). Patterns, frameworks, and middleware: Their synergistic relationships. Paper presented at the 25th International Conference on Software Engineering.
J. C. Rodríguez-Cano is PhD candidate from the University of Granada (Spain), Rodríguez-Cano received his Software Engineering degree in 2006 at the University of Holguín (UHO), Cuba. Since 2006, he has worked on CSCW projects within the Research Group in Distributed Systems at the UHO. Currently, he is professor at the Department of Informatics at the UHO, Cuba. His research interests include collaborative information retrieval (IR) techniques, search-driven software development, and P2P retrieval. He has been co-organizer of the Modern Applications of IR workshop held at V International Conference UHO 2011, co-organizer of the Collaborative Information Retrieval workshop held at CIKM 2011, and co-organizer of the Collaboration, Recommendation and Social Search workshop held at VI International Conference UHO 2013.
Ricardo_Delgadillo_Lizaola is PhD candidate from the University of Granada (Spain), professor in the engineering department of CUCSUR (Centro Universitario de la Costa Sur) at the University of Guadalajara, since 1993. He has taught at several universities and has worked as a consultant in the implementation of new technologies in different companies. Currently working on several projects related to CSCL: Computer-supported collaborative learning with professors from the University of Olguin (CUBA) and Pontifical Catholic University of Peru (PERU). His research interests include Soft computing applications for database technologies, collaborative information retrieval (IR) techniques, retrieval and Cognitive Load Measurement in Web Search, Computer-supported Cooperative Work (CSCW) and Computer-Supported Collaborative Learning (CSCL).
Humberto Rodríguez-Avila is PhD candidate from the University of Granada (Spain), Rodríguez-Avila received his Software Engineering degree in 2011 at the University of Holguín (UHO), Cuba. Since 2011, he has worked on CSCW & CIS projects within the Research Group in Distributed Systems at the UHO. Currently, he is professor of Object-Oriented Programming, Data Structures and Algorithms at the Department of Informatics at the UHO, Cuba. His research interests include Collaborative Information Seeking techniques, P2P retrieval and Cognitive Load Measurement.
Eduardo Escofet got his B.Sc. from the Central University of Las Villas, Cuba in Computer Sciences Specialized in Artificial Intelligence in 1994. He obtained a M.Sc. degree in Business Information Technology specialized in Business Executive Decision Making in 1997 from the University of Holguín, Cuba and another M. Sc. in Information Technologies and Soft-computing in 2003 from the Univeersity of Granada, Spain. He has lectured at several universities, developed multiple software products and advised various theses and software projects. Nowadays, he is working in software-driven innovation companies as project manager, software developer and quality engineer. His main areas of interests are application framework development, service-oriented architecture integration, business intelligence engineering, Web and mobile-based business strategies and software quality improvement methods.
Esta obra está bajo una licencia de Creative Commons
Reconocimiento-NoComercial-CompartirIgual 2.5 México.