Tuesday, January 28, 2020
Computer Supported Cooperative Work (CSCW)
Computer Supported Cooperative Work (CSCW) Abstract- In the Computer Supported Cooperative Work (CSCW) domain, researchers have always wondered about which principles and models to adopt for the development of collaborative applications capable to really meet the needs of their users. However, these users requirements are unpredictable and depend on several task or environment-related factors. Integrated collaborative environments are rarely open, extensible and reconfigurable enough so as to meet these requirements. This paper presents an environment, called LEICA (Loosely-coupled Environment for Integrating Collaborative Applications), allowing the integration of existing cooperative applications. LEICA adopts a loosely-coupled integration approach which is based on Web services Services technology, an event notification system, and the definition of Collaboration Policies to control the interactions among integrated applications. LEICA allows different functionalities of existing applications to be dynamically combined and controlled, enhancing therefore the flexibility. Through a case study we show how LEICA was successfully used to integrate three collaborative applications: a co-browsing tool, an instant messaging tool and a VoIP conference controller. Index Terms-Collaborative work, integrated collaborative environments, web services. INTRODUCTION Advances in networking and computing technologies, combined with the fact that companies and work teams are becoming geographically distributed, have created increased a need for communication technologies to ease distance collaboration among distributed individuals (virtual work teams). This leads to the appearing of the so-called Integrated Collaboration Environments (ICEs), having as main goal to integrate different collaborative applications together into a single easy-to-use operational environment [1]. Users needs are very frequently unpredictable and depending on several emerging factors, including the size of the workgroup, the collaborative activities to be accomplished, the intensiveness of the required communications, the coordination policy and the communication needs of the workgroup. Therefore, the possibility of dynamically integrating new functionalities to the environment appears as an important characteristic for collaborative applications [3]. Supporting the integration of new collaborative functionalities reflects how flexible the environment is while responding to unpredictable users needs. We can define this characteristic as integration flexibility that denotes the ease with which an ICE can be its functionalities in response to the users needs. Nowadays one of the main problems of ICEs is that their lack of integration flexibility and as consequence various users decide to set-up their own environments composing different collaborative applications executed independently. In this case, each application is completely isolated from others, without any possibility of coordination among them. This lack of integration can lead to a loss of control from the part of the user, since the operation environment is particularly artificial. Promoting the integration flexibility of ICEs could bring significant benefits to users, allowing different functionalities of existing applications to be dynamically combined and controlled (enhancing therefore the flexibility itself). For instance, a whiteboard application can be integrated with an instant messaging application in such a way that whenever a user joins an instant messaging room, he is automatically logged into the same whiteboard session, instead of been forced to manually login into a session of each one of these collaborative tools. Another case could be the integration of a distributed game and an audio conference application. Whenever a user avatar enters a level/place into the game, his is logged into the audio conference session associated to that level/place, so that the users can online discuss with each other. In order to achieve the integration of existing collaborative applications without having to deal with their low-level features, this work presents LEICA, a Loosely-coupled Environment for Integrating Collaborative Applications. Relying on Web services Services (WS) technologies and an event notification system, different collaborative applications can interoperate by exchanging information within the context of a global collaborative session. The loosely-coupled approach proposed by LEICA overcomes a key problem usually related to integration environments it does not require a true semantic integration of applications. Accordingly, it supports further integration possibilities, such as the integration of third party applications, enhancing, thus, flexibility. LEICA also offers flexibility in the level of the integration semantics. Based on Collaboration Policies to control the interactions between integrated applications, LEICA provides means to define how the collaboration activity supported by one collaborative application will be affected by information received from other collaborative applications. In practice, these collaborative applications interact through the notification of events which may lead to performing specific action(s) in some of these applications themselves. As we will explain later in detail, we think that once a collaborative session has been configured, the use of LEICA can improve users productivity by reducing the application-related administrative tasks, focusing precisely on the collaboration activity itself, and all that by just by interpreting the rules stated for a particular session, all this in function of some pre-established policy rules (also to be explained in detail later). In this way users will find a more natural collaboration environment from the users point of view. In order to illustrate the usability of LEICA in real-world conditions, this paper presents a case study that demonstrates the capability of LEICA to integrate collaborative applications. In this case study, LEICA was successfully used to integrate three collaborative applications: a co-browsing tool, instant messaging tool and a VoIP conference controller. The paper is structured as follows. Section II presents related work regarding the integration of CSCW systems. Section III overviews the general integration approach proposed by LEICA. Section IV explains how to specify Collaboration Policies. Section V presents the LEICAs architecture, detailing how to integrate applications in practice. Some implementation issues are considered in section VI. Section VII describes a case study illustrating the use of LEICA. Finally, in section VIII we draw some conclusions and presents directions of future work. RELATED WORK There are several works oriented to improving integration flexibility of collaborative environments. In this context, four main approaches can be identified: user-tailorable solutions; CSCW toolkits; middleware based solutions; and platforms for integration of heterogeneous collaborative systems. User-Tailorable Solutions As stated in [2], different definitions of tailorability can be found in the literature. Most of them focus on user tailorability ([3], [4], [5] [6]) defining that a tailorable application can be adapted and modified by its own users in order to meet their different requirements. In CSCW, tailorability must focus on the requirements of the group task and of the organization, in which the CSCW system is used [5]. Actually, tailorability is one of the main concerns of groupware development methods. For example, application of participatory design methods ([7] [8]) has been proposed in order to approach the user involvement during groupware development, augmenting thus the opportunities for tailoring. According to [6], tailoring can be supported in three different levels: customization, selecting among a set of predefined configuration options; integration, linking together predefined components within or between applications; extension, improving the implementation by adding new program code. Most of user-tailorable groupware tools support only the customization or integration level (e.g. [2] [9]). Note that the integration level supposes that the functionality to be integrated has been pre-developed and is available somewhere [6]. Only at the extension level users would be able to integrate new functionalities, even if they have not been anticipated by developers at design time. A method frequently used for supporting tailoring at the extension level is the component-based tailoring. For example, in [10], components are implemented using Flexibeans (an extension of the Java Beans model) and end-users tailor the system using a composition language. In [11], end-users may assemble components into larger composite components using the visual representation rather than writing lines of code. However, even at the extension level the integration flexibility is partial as the integration of existing collaborative systems or groupware would require them to be redesigned according to the system architecture. CSCW Toolkits CSCW toolkits ease the implementation of CSCW systems by providing reusable components and behaviors designed to be applicable in a range of circumstances [12]. The need for flexibility and tailorability in CSCW toolkits is well acknowledged. The Neem Platform [13] offers a generic (application-neutral) evolvable framework upon which socially and culturally aware applications are developed. Flexibility and extensibility in Neem result from its foundation on a core architectural coordination model [13]: decoupled components interact indirectly through message exchanges. Intermezzo [14] is a collaboration support environment supporting the coordination information sharing, offering fluid interactions, user awareness, session management and policy control. It addresses dynamic flexibility [12] by allowing applications to adapt not just their own behavior, but also the behavior of the toolkit in reacting to the changing dynamics of the world they run into. The Groupware Toolkit/Shared Dictionary (or GT/SD) toolkit [15][16] has been developed to support rapid development of groupware, focusing mainly on networking and data sharing aspects. GT/SDs extensibility is based on its modular design, which allows adding or modifying behavior by replacing or wrapping different components. Toolkits may represent an interesting solution for helping the development of CSCW systems, as they promote the reuse of components. But in general, CSCW toolkits offer a limited set of functionalities or they are target for some specific kind of domain. Besides, to reuse components of the toolkit, developers often need to implement very specific details of the toolkit in order to adapt it to the application needs [16][17]. Middleware based solutions The integration of heterogeneous applications has been a widely investigated subject, mainly in distributed systems area. General integration solutions based on middleware, like CCM (CORBA Component Model), .NET and Enterprise JavaBeans have been developed. Moreover, integration solutions associated with specific domains have also been proposed, such as Enterprise Application Integration systems [17][18]. The emergence of Web services WS has also led to the development of general solutions for integration of distributed applications, due mainly to the use of open standards. In the CSCW domain, some middleware-based solutions have been proposed. Dustdar et al. [18][19] discuss the importance of using Web services WS in order to provide collaborative application interoperability. But in order to be integrated, collaborative applications must originally support Web servicesWS. Even if Web servicesWS represent an emerging software trend, only a limited set of collaborative applications are currently supporting these technologies. As an enhancement to traditional middleware, some SOA (Service Oriented Architecture) solutions have also been proposed. For example, WGWSOA [19][20] uses Web ServicesWS as an access interface in order to support the reuse and the interoperability of different collaborative services. But an important drawback of WGWSOA is that collaborative services must be developed following the respective middleware architecture. It is also important to note that like WGWSOA, most middleware based solutions present technical responses to the so called syntactic interoperability [20][21]. They provide mechanisms allowing applications to communicate and interact through information exchange. But according to [21][22], the integration concept goes beyond the possibility of sharing and exchanging specific information. Applications must agree upon the meaning (or the semantics) of these exchanges. In other words, integration solutions should provide means for defining integration semantics. Thus, interoperability can be seen as a requirement for integration. The EcoSpace Project [22][23] proposes an environment that, besides being based on SOA and Web servicesWS, relies on Semantic Web technologies (WSDL-S with services ontologies) to support semantic description of collaborative services. Besides a semantic description of each service, it would be necessary a semantic description of the composition of services so as to coordinate their orchestration. However, this part of the project remains as design aspect. Moreover, using Web serviceWSs as integration technology may imply some performance loss, particularly associated to the use of SOAP (Simple Object Access Protocol) [23][24]. Luo et al. [24][25] claim that Web ServicesWS should be only used in situations which are really heterogeneous. They propose a service-oriented solution for the integration of collaborative applications that, instead of using SOAP, adopts a unified service bus (implemented through an open source Enterprise Service Bus). Platforms for integrating heterogeneous collaborative systems The latter latest approach to improve the integration flexibility of collaborative environments is to create platforms aiming specifically at the integration of collaborative applications. They focus on the integration of collaborative functionalities provided by these applications while trying to define any semantics behind integration. Iqbal et al. [25][26] propose an integrative framework based on the three-level model presented by [26][27]: the Ontological Model specifies shared objects, their relations and taxonomies; the Coordination Model specifies how interactions take place during system execution; and the User Interface Model specifies how the system is presented to the final user. Integration process consists firstly in identifying, for each collaborative application, the elements associated with these three models. Then, on each level the elements from different applications are grouped and merged when equivalent. As a result, common ontological, coordination and user interface models are generated. In spite of enabling a multi-level integration, this approach requires an internal knowledge of the collaborative applications so that their functionalities can be mapped into the three-level model. Accordingly, the integration of third party applications becomes a complex task. In order to avoid considering application internals during the integration process (facilitating the integration of existing applications), some integration solutions propose the so called loosely-coupled approach. This approach presents two main features: (i) once integrated to the environment, collaborative applications preserve their autonomy, i.e., they can still be used as standalone application; (ii) the integration environment remains independent of integrated applications, and accordingly, applications can be integrated and detached from the environment without compromising its behavior. This last feature is particularly important considering the integration flexibility aspect. In fact, in a loosely-coupled environment, the set of integrated applications must be easily modified according to users needs. Systems like AREA [27][28] and NESSIE [28][29] have proposed a loosely-coupled integration for supporting cross-application awareness. Both systems represent a collaborative environment where independent applications can share a common information space, implemented through an event notification system. Users can receive notifications of activity relevant events from different applications (executed by other users). An important aspect of these systems is the use of open Internet technologies (such as HTTP and CGI) to enable the integration of third party collaborative applications. However, the main drawback of both systems is that the integration semantics is statically defined collaborative applications are integrated so as to offer a common awareness of the whole collaboration activity. Another proposal also based on a loosely-coupled approach is the framework XGSP [29][30]. XGSP proposes the integration of audio and videoconferencing tools based on SIP and H.323 standards, as well as the integration of Access Grid applications [30][31]. In this framework, XGSP manager servers are in charge of controlling collaborative sessions. A different gateway is defined for each application type (i.e. SIP, H.323 and Access Grid applications). Using a signaling protocol based on Web servicesWS, these gateways are employed to mediate the communication between applications and XGSP servers. An important disadvantage of XGSP is the fact that, originally, it only allows the integration of application based on SIP, H.323 and Access Grid. Loosely-coupling is also inherent to the Web servicesWS based solutions presented in the previous section. Similarly to those solutions, LEICA represents an integration environment that proposes a loosely-coupled approach based on Web servicesWS technologies. Regarding the performance implications of SOAP, Alonso et al. [31][32] suggest that Web ServicesWS technologies should be used only to implement coarse-gained interactions, where the impact of the overhead associated to SOAP would be less important. Following the recommendations of [31][32], Web servicesWS are employed by LEICA for coarse-grained operations only. As it will be detailed in the following sections, LEICA defines a hybrid architecture where Web ServicesWS are applied as an initial mechanism for registering newly integrated applications, as well as for setting and starting up collaborative sessions. Then, during the execution of integrated collaborative sessions a different infrastructure is used to interconnect collaborative applications. Another important aspect concerns integration semantics. Unlike the previous solutions, LEICA provides users with the possibility to define the desired integration semantics for each collaborative session. The Integration Environment: LEICA LEICA aims at the integration of different collaborative applications, where integration semantics is to be defined according to user requirements. Before explaining the general integration approach and the behavior of LEICA, a possible scenario is presented to better illustrate the advantages of such integration. Integration Scenario An important domain where collaborative environments have been largely used is e-Learning. In particular, a CVE (Collaborative Virtual Environment) can be used to implement a 3D shared world representing a school building divided into: one entrance hall, classrooms, and teachers rooms. Different collaborative applications could be associated to each room: (i) a chat room associated to the entrance hall; (ii) a collaborative web browsing (it would enable teachers to guide students through lecture notes) and an audio conference tool associated to the classrooms; and (iii) a shared whiteboard associated to each of the teachers room. Un paragraphe pour montrer la situation: Utilisation des outils non integrà ©es, et lintà ©gration avec LEICA. With this integration semantics, whenever an avatar enters into a room, the respective user is automatically connected to the associated collaborative application(s). Besides, only authorized users should enter into private rooms (e.g. the teachers rooms with its whiteboard could be restricted to teachers). Another possible behavior specified by this integration semantics is some kind of floor coupling between the two applications used as a support for virtual class sessions. This way, it would be possible to assure that the user holding the Web browsing floor (i.e. the one guiding the lecture notes browsing) is the only one to have the right to speak to the class attendees. General Integration Approach As previously mentioned, and illustrated in Fig. 1, LEICA follows a hybrid architecture where Web ServicesWS are applied at the collaborative sessions start up, and an event notification system allows collaborative applications to interact through the exchange of event notifications. Two other basic components of LEICA are the Wrappers and the Session Configuration Service (SCS). The integration of a collaborative application to LEICA is achieved by attaching a Wrapper to it. Three main cases may be considered: a) open source applications, b) API-based applications, and c) applications without any available API. Integration of open source applications can achieve the tightest interaction degree, since any internal event/action can be exported/performed; it might however imply great development efforts. API-based integration is straightforward, and interaction is limited to the provided API. Applications without API are the most limitating ones, constraining to interact only through application start and stop actions. LEICAs integration approach is mainly driven by case (b), believing that developers are certainly interested in creating specific and performable collaboration tools that can be used either stand-alone or integrated with other applications (through a flexible API, being able to get a great share of the market). This is for instance the case of Skypeâ⠢, a successful example of communication tool that has released its API since some time ago. Fig. 2 summarizes LEICAs general integration framework. The first step of the LEICAs integration framework is the Collaborative Application Integration. For instance, in the illustrative scenario presented in III.A, the first step to integrate the CVE with the instant messenger (supporting the chat room associated to the entrance hall), the collaborative Web browser and the audio conference applications, it is necessary to create a Wrapper for each one of these applications. As detailed in Section V, these wrappers can be automatically generated by LEICAs API Factory, based on the API description of each collaborative application. The Wrappers comprise a Web services Services WS interface allowing the collaborative application to register itself with LEICA. As illustrated by Fig. 1, through the Wrappers Web servicesWS ports, the integrated application can interact with the Session Configuration Service (SCS). The SCS is a Web service Service WS used for (i) configuring new global SuperSessions and (ii) starting up SuperSessions. A SuperSession is an integrated collaborative session holding the whole collaboration activity. Within the context of a global SuperSession, different specificSessions can exist. A specificSession is a conventional collaborative session defined within the context of a collaborative application (e.g. a videoconference session, a whiteboard session, etc.). The SCS dynamically contacts each integrated application, during the SuperSession configuration process, in order to request: (i) which specific data is required to create specificSessions for this respective application (e.g. a videoconference tool could require an IP multicast address); and (ii) which kind of events it can notify, and action requests it can handle. The interaction degree among the integrated applications depends essentially on the nature of the events they are able to exchange, and actions they are able to perform. In order to create a SuperSession, a user must define its integration semantics. It is accomplished by configuring the Collaboration Policy. A Collaboration Policy is a set of rules under a condition/action model. These rules define how collaborative applications must react when receiving information (events) notified by other integrated applications. In other words, the specification of Collaboration Policies allows defining specific integration semantics (i.e. how to coordinate integrated applications) to each SuperSession, according to the different users requirements. Once a SuperSessions has been created (and its associated configuration file is generated), it can finally be started up. The SCS firstly contacts each integrated collaborative application requesting them to create the specificSessions defined in the SuperSession. Then, during the execution of collaborative sessions the integrated application can interact through the exchange of event using the Event Notification System. According to predefined Collaboration Policies, these notifications may lead specific actions to be performed. Wrappers are in charge of managing the SuperSessions Collaboration Policy. When the Wrapper of a collaborative application receives event notifications, it verifies if the notified events enable any policy rule concerning this collaborative application. If so, the Wrapper sends action requests to the respective application. Note that LEICA is not intended to support low-level physical events (e.g. mouse click/scrolling) or high frequency synchronization events (e.g. current position of moving objects). It aims at supporting activity relevant events that carry some semantics. SuperSession Concept As previously mentioned, LEICA controls the whole collaboration activity within the context of a global SuperSession. A SuperSession model has been defined in order to precisely identify and describe its components. Based on this model, LEICA maintains concise and coherent SuperSession state information. Furthermore, a well-defined taxonomy of the components and their attributes are also implied from the model. General models for describing collaborative applications have already been proposed in the literature. Some of them [26][27] [32][33] represent a conceptual or ontological model describing the entities and relationships of individual CSCW systems. Few models aim at describing integrated CSCW systems, like OOActSM [33][34] and the conceptual model presented in [34][35]. However, these models are based on the notion of a general activity as the central abstraction, which was considered rather abstract for a detailed specification of the SuperSession. Nevertheless, these models have inspired several concepts adopted in the defined SuperSession model. The SuperSession represents a collaboration activity involving different integrated applications, a group of users and general roles associated to these users. Formally, a CIE Session CS is a tuple: SS = (SSid, CA , NA , Rl , U , SSat) where: SSid is a unique identifier; CA = {CAi } | i ÃŽ [1,I]} is a finite set of collaborative applications where CAi = (CAidi, spSi, CAati) a specific collaborative application running a set of specificSessions (sSi). CAati is a list of attributes characterizing the collaborative application. These attributes provide information about the application description, including name, type, whether it is a role-based application, its distribution architecture (client/server, multi-servers, peer-to-peer) and the type of user applications (stand-alone or webWeb-based).); NA is a finite set of non-collaborative applications (data converters, databases, web applications, etc.); Rl = {Rlk } | k ÃŽ [1,K]} is a finite set of general roles. The concept of general role refers to a group of users owning the same set of responsibilities and privileges inside LEICA; Rlk = (Rlidk , Rlatk). Rlidk is a unique role identifier; and Rlatk is a list of attributes characterizing this general role. This list provides details like roles description, membership and administration rights. Regarding the membership, it defines how the role is associated with users: it may be either (i) a static association (there is a membership list), (ii) an automatic association (there is a predicate function based on users parameters and SuperSession state) or (iii) a users choice (password protected or not).); U = {Ul } | l ÃŽ [1,L]} is a finite set of connected users; Ul = (Uidl, URlidl, Mbl, Uatl) represent a user, where Uidl is a unique identifier; URlidl is one general role associated with the user; Mbl is a finite set of membership relations; Uatl is a list of attributes (name, email, IP address, network connection, device type, etc.); Mbl.n = (mCAidl.n , mSidl.n , msRlidl.n) is a membership relation, where mCAidl.n is an application identifier; mSidl.n is a specificSession identifier; msRlidl.n is a finite set of specific roles identifiers. Thus, each membership relation indicates the participation of a connected user to a specificSession of a collaborative application (once connected to the SuperSession, a user can concurrently take part in none, one or more specificSessions of different collaborative applications); SSat is a list of attributes characterizing the SuperSession. These attributes describe information like session context (name, purpose, etc.), scheduling (if scheduled or not, duration, etc.), accessibility type (open or closed), role association type (how users are associated to a general role) and maximum number of connected users. A specificSession regards a conventional collaborative session of a collaborative application. The role of the specificSession entity (spSi.m), wich is formally represented by the tuple: spSi.m = (Sidi.m, sRli.m, pUidi.m, Rsi.m, spSati.m) is not to precisely describe each aspect of a collaborative task. Instead, it captures relevant elements like the specific roles defined for this session (sRli.m), the users participating to this session (pUidi.m.) and the shared resources accessed by these users (Rsi.m). A specific role is a tuple, sRli.m.o = (sRlidi.m.o, sRlati.m.o), where sRlidi.m.o is a specific role identifier and sRlati.m.o is a list of attributes characterizing the specific role (description and maximum number of simultaneous users). A resource is also a tuple Rsi.m.p= (urli.m.p, Rsati.m.p ), where urli.m.p is a resource locator and Rsati.m.p is a list of attributes characterizing the resource. The purpose of the resource element is simply to allow the implementation of an inter-application access control mechanism. LEICA will not need to keep the state of each resource. Thus, resources attributes just describe its type (file, device, virtual object, interface widget, etc.) and the read/write access type (exclusive or concurrent). SuperSession Configuration In order to create a SuperSession, a two step configuration process is carried out: (i) Session Management configuration and (ii) Collaboration Policy configuration. In the first configuration step, two groups of information should be specified: General Session Management information (GSMinfo): It carries management information such as scheduling, membership and general user roles.; Integrated Applications information (IAinfo): It defines the list of integrated applications to be used during this SuperSession; for each collaborative application, a list of specificSessions is defined, where specific data required by this application for creating sessions is provided (e.g. a videoconference application will be provided with an IP multicast address). Once Session Management configuration is completed, the Collaboration Polic Computer Supported Cooperative Work (CSCW) Computer Supported Cooperative Work (CSCW) Abstract- In the Computer Supported Cooperative Work (CSCW) domain, researchers have always wondered about which principles and models to adopt for the development of collaborative applications capable to really meet the needs of their users. However, these users requirements are unpredictable and depend on several task or environment-related factors. Integrated collaborative environments are rarely open, extensible and reconfigurable enough so as to meet these requirements. This paper presents an environment, called LEICA (Loosely-coupled Environment for Integrating Collaborative Applications), allowing the integration of existing cooperative applications. LEICA adopts a loosely-coupled integration approach which is based on Web services Services technology, an event notification system, and the definition of Collaboration Policies to control the interactions among integrated applications. LEICA allows different functionalities of existing applications to be dynamically combined and controlled, enhancing therefore the flexibility. Through a case study we show how LEICA was successfully used to integrate three collaborative applications: a co-browsing tool, an instant messaging tool and a VoIP conference controller. Index Terms-Collaborative work, integrated collaborative environments, web services. INTRODUCTION Advances in networking and computing technologies, combined with the fact that companies and work teams are becoming geographically distributed, have created increased a need for communication technologies to ease distance collaboration among distributed individuals (virtual work teams). This leads to the appearing of the so-called Integrated Collaboration Environments (ICEs), having as main goal to integrate different collaborative applications together into a single easy-to-use operational environment [1]. Users needs are very frequently unpredictable and depending on several emerging factors, including the size of the workgroup, the collaborative activities to be accomplished, the intensiveness of the required communications, the coordination policy and the communication needs of the workgroup. Therefore, the possibility of dynamically integrating new functionalities to the environment appears as an important characteristic for collaborative applications [3]. Supporting the integration of new collaborative functionalities reflects how flexible the environment is while responding to unpredictable users needs. We can define this characteristic as integration flexibility that denotes the ease with which an ICE can be its functionalities in response to the users needs. Nowadays one of the main problems of ICEs is that their lack of integration flexibility and as consequence various users decide to set-up their own environments composing different collaborative applications executed independently. In this case, each application is completely isolated from others, without any possibility of coordination among them. This lack of integration can lead to a loss of control from the part of the user, since the operation environment is particularly artificial. Promoting the integration flexibility of ICEs could bring significant benefits to users, allowing different functionalities of existing applications to be dynamically combined and controlled (enhancing therefore the flexibility itself). For instance, a whiteboard application can be integrated with an instant messaging application in such a way that whenever a user joins an instant messaging room, he is automatically logged into the same whiteboard session, instead of been forced to manually login into a session of each one of these collaborative tools. Another case could be the integration of a distributed game and an audio conference application. Whenever a user avatar enters a level/place into the game, his is logged into the audio conference session associated to that level/place, so that the users can online discuss with each other. In order to achieve the integration of existing collaborative applications without having to deal with their low-level features, this work presents LEICA, a Loosely-coupled Environment for Integrating Collaborative Applications. Relying on Web services Services (WS) technologies and an event notification system, different collaborative applications can interoperate by exchanging information within the context of a global collaborative session. The loosely-coupled approach proposed by LEICA overcomes a key problem usually related to integration environments it does not require a true semantic integration of applications. Accordingly, it supports further integration possibilities, such as the integration of third party applications, enhancing, thus, flexibility. LEICA also offers flexibility in the level of the integration semantics. Based on Collaboration Policies to control the interactions between integrated applications, LEICA provides means to define how the collaboration activity supported by one collaborative application will be affected by information received from other collaborative applications. In practice, these collaborative applications interact through the notification of events which may lead to performing specific action(s) in some of these applications themselves. As we will explain later in detail, we think that once a collaborative session has been configured, the use of LEICA can improve users productivity by reducing the application-related administrative tasks, focusing precisely on the collaboration activity itself, and all that by just by interpreting the rules stated for a particular session, all this in function of some pre-established policy rules (also to be explained in detail later). In this way users will find a more natural collaboration environment from the users point of view. In order to illustrate the usability of LEICA in real-world conditions, this paper presents a case study that demonstrates the capability of LEICA to integrate collaborative applications. In this case study, LEICA was successfully used to integrate three collaborative applications: a co-browsing tool, instant messaging tool and a VoIP conference controller. The paper is structured as follows. Section II presents related work regarding the integration of CSCW systems. Section III overviews the general integration approach proposed by LEICA. Section IV explains how to specify Collaboration Policies. Section V presents the LEICAs architecture, detailing how to integrate applications in practice. Some implementation issues are considered in section VI. Section VII describes a case study illustrating the use of LEICA. Finally, in section VIII we draw some conclusions and presents directions of future work. RELATED WORK There are several works oriented to improving integration flexibility of collaborative environments. In this context, four main approaches can be identified: user-tailorable solutions; CSCW toolkits; middleware based solutions; and platforms for integration of heterogeneous collaborative systems. User-Tailorable Solutions As stated in [2], different definitions of tailorability can be found in the literature. Most of them focus on user tailorability ([3], [4], [5] [6]) defining that a tailorable application can be adapted and modified by its own users in order to meet their different requirements. In CSCW, tailorability must focus on the requirements of the group task and of the organization, in which the CSCW system is used [5]. Actually, tailorability is one of the main concerns of groupware development methods. For example, application of participatory design methods ([7] [8]) has been proposed in order to approach the user involvement during groupware development, augmenting thus the opportunities for tailoring. According to [6], tailoring can be supported in three different levels: customization, selecting among a set of predefined configuration options; integration, linking together predefined components within or between applications; extension, improving the implementation by adding new program code. Most of user-tailorable groupware tools support only the customization or integration level (e.g. [2] [9]). Note that the integration level supposes that the functionality to be integrated has been pre-developed and is available somewhere [6]. Only at the extension level users would be able to integrate new functionalities, even if they have not been anticipated by developers at design time. A method frequently used for supporting tailoring at the extension level is the component-based tailoring. For example, in [10], components are implemented using Flexibeans (an extension of the Java Beans model) and end-users tailor the system using a composition language. In [11], end-users may assemble components into larger composite components using the visual representation rather than writing lines of code. However, even at the extension level the integration flexibility is partial as the integration of existing collaborative systems or groupware would require them to be redesigned according to the system architecture. CSCW Toolkits CSCW toolkits ease the implementation of CSCW systems by providing reusable components and behaviors designed to be applicable in a range of circumstances [12]. The need for flexibility and tailorability in CSCW toolkits is well acknowledged. The Neem Platform [13] offers a generic (application-neutral) evolvable framework upon which socially and culturally aware applications are developed. Flexibility and extensibility in Neem result from its foundation on a core architectural coordination model [13]: decoupled components interact indirectly through message exchanges. Intermezzo [14] is a collaboration support environment supporting the coordination information sharing, offering fluid interactions, user awareness, session management and policy control. It addresses dynamic flexibility [12] by allowing applications to adapt not just their own behavior, but also the behavior of the toolkit in reacting to the changing dynamics of the world they run into. The Groupware Toolkit/Shared Dictionary (or GT/SD) toolkit [15][16] has been developed to support rapid development of groupware, focusing mainly on networking and data sharing aspects. GT/SDs extensibility is based on its modular design, which allows adding or modifying behavior by replacing or wrapping different components. Toolkits may represent an interesting solution for helping the development of CSCW systems, as they promote the reuse of components. But in general, CSCW toolkits offer a limited set of functionalities or they are target for some specific kind of domain. Besides, to reuse components of the toolkit, developers often need to implement very specific details of the toolkit in order to adapt it to the application needs [16][17]. Middleware based solutions The integration of heterogeneous applications has been a widely investigated subject, mainly in distributed systems area. General integration solutions based on middleware, like CCM (CORBA Component Model), .NET and Enterprise JavaBeans have been developed. Moreover, integration solutions associated with specific domains have also been proposed, such as Enterprise Application Integration systems [17][18]. The emergence of Web services WS has also led to the development of general solutions for integration of distributed applications, due mainly to the use of open standards. In the CSCW domain, some middleware-based solutions have been proposed. Dustdar et al. [18][19] discuss the importance of using Web services WS in order to provide collaborative application interoperability. But in order to be integrated, collaborative applications must originally support Web servicesWS. Even if Web servicesWS represent an emerging software trend, only a limited set of collaborative applications are currently supporting these technologies. As an enhancement to traditional middleware, some SOA (Service Oriented Architecture) solutions have also been proposed. For example, WGWSOA [19][20] uses Web ServicesWS as an access interface in order to support the reuse and the interoperability of different collaborative services. But an important drawback of WGWSOA is that collaborative services must be developed following the respective middleware architecture. It is also important to note that like WGWSOA, most middleware based solutions present technical responses to the so called syntactic interoperability [20][21]. They provide mechanisms allowing applications to communicate and interact through information exchange. But according to [21][22], the integration concept goes beyond the possibility of sharing and exchanging specific information. Applications must agree upon the meaning (or the semantics) of these exchanges. In other words, integration solutions should provide means for defining integration semantics. Thus, interoperability can be seen as a requirement for integration. The EcoSpace Project [22][23] proposes an environment that, besides being based on SOA and Web servicesWS, relies on Semantic Web technologies (WSDL-S with services ontologies) to support semantic description of collaborative services. Besides a semantic description of each service, it would be necessary a semantic description of the composition of services so as to coordinate their orchestration. However, this part of the project remains as design aspect. Moreover, using Web serviceWSs as integration technology may imply some performance loss, particularly associated to the use of SOAP (Simple Object Access Protocol) [23][24]. Luo et al. [24][25] claim that Web ServicesWS should be only used in situations which are really heterogeneous. They propose a service-oriented solution for the integration of collaborative applications that, instead of using SOAP, adopts a unified service bus (implemented through an open source Enterprise Service Bus). Platforms for integrating heterogeneous collaborative systems The latter latest approach to improve the integration flexibility of collaborative environments is to create platforms aiming specifically at the integration of collaborative applications. They focus on the integration of collaborative functionalities provided by these applications while trying to define any semantics behind integration. Iqbal et al. [25][26] propose an integrative framework based on the three-level model presented by [26][27]: the Ontological Model specifies shared objects, their relations and taxonomies; the Coordination Model specifies how interactions take place during system execution; and the User Interface Model specifies how the system is presented to the final user. Integration process consists firstly in identifying, for each collaborative application, the elements associated with these three models. Then, on each level the elements from different applications are grouped and merged when equivalent. As a result, common ontological, coordination and user interface models are generated. In spite of enabling a multi-level integration, this approach requires an internal knowledge of the collaborative applications so that their functionalities can be mapped into the three-level model. Accordingly, the integration of third party applications becomes a complex task. In order to avoid considering application internals during the integration process (facilitating the integration of existing applications), some integration solutions propose the so called loosely-coupled approach. This approach presents two main features: (i) once integrated to the environment, collaborative applications preserve their autonomy, i.e., they can still be used as standalone application; (ii) the integration environment remains independent of integrated applications, and accordingly, applications can be integrated and detached from the environment without compromising its behavior. This last feature is particularly important considering the integration flexibility aspect. In fact, in a loosely-coupled environment, the set of integrated applications must be easily modified according to users needs. Systems like AREA [27][28] and NESSIE [28][29] have proposed a loosely-coupled integration for supporting cross-application awareness. Both systems represent a collaborative environment where independent applications can share a common information space, implemented through an event notification system. Users can receive notifications of activity relevant events from different applications (executed by other users). An important aspect of these systems is the use of open Internet technologies (such as HTTP and CGI) to enable the integration of third party collaborative applications. However, the main drawback of both systems is that the integration semantics is statically defined collaborative applications are integrated so as to offer a common awareness of the whole collaboration activity. Another proposal also based on a loosely-coupled approach is the framework XGSP [29][30]. XGSP proposes the integration of audio and videoconferencing tools based on SIP and H.323 standards, as well as the integration of Access Grid applications [30][31]. In this framework, XGSP manager servers are in charge of controlling collaborative sessions. A different gateway is defined for each application type (i.e. SIP, H.323 and Access Grid applications). Using a signaling protocol based on Web servicesWS, these gateways are employed to mediate the communication between applications and XGSP servers. An important disadvantage of XGSP is the fact that, originally, it only allows the integration of application based on SIP, H.323 and Access Grid. Loosely-coupling is also inherent to the Web servicesWS based solutions presented in the previous section. Similarly to those solutions, LEICA represents an integration environment that proposes a loosely-coupled approach based on Web servicesWS technologies. Regarding the performance implications of SOAP, Alonso et al. [31][32] suggest that Web ServicesWS technologies should be used only to implement coarse-gained interactions, where the impact of the overhead associated to SOAP would be less important. Following the recommendations of [31][32], Web servicesWS are employed by LEICA for coarse-grained operations only. As it will be detailed in the following sections, LEICA defines a hybrid architecture where Web ServicesWS are applied as an initial mechanism for registering newly integrated applications, as well as for setting and starting up collaborative sessions. Then, during the execution of integrated collaborative sessions a different infrastructure is used to interconnect collaborative applications. Another important aspect concerns integration semantics. Unlike the previous solutions, LEICA provides users with the possibility to define the desired integration semantics for each collaborative session. The Integration Environment: LEICA LEICA aims at the integration of different collaborative applications, where integration semantics is to be defined according to user requirements. Before explaining the general integration approach and the behavior of LEICA, a possible scenario is presented to better illustrate the advantages of such integration. Integration Scenario An important domain where collaborative environments have been largely used is e-Learning. In particular, a CVE (Collaborative Virtual Environment) can be used to implement a 3D shared world representing a school building divided into: one entrance hall, classrooms, and teachers rooms. Different collaborative applications could be associated to each room: (i) a chat room associated to the entrance hall; (ii) a collaborative web browsing (it would enable teachers to guide students through lecture notes) and an audio conference tool associated to the classrooms; and (iii) a shared whiteboard associated to each of the teachers room. Un paragraphe pour montrer la situation: Utilisation des outils non integrà ©es, et lintà ©gration avec LEICA. With this integration semantics, whenever an avatar enters into a room, the respective user is automatically connected to the associated collaborative application(s). Besides, only authorized users should enter into private rooms (e.g. the teachers rooms with its whiteboard could be restricted to teachers). Another possible behavior specified by this integration semantics is some kind of floor coupling between the two applications used as a support for virtual class sessions. This way, it would be possible to assure that the user holding the Web browsing floor (i.e. the one guiding the lecture notes browsing) is the only one to have the right to speak to the class attendees. General Integration Approach As previously mentioned, and illustrated in Fig. 1, LEICA follows a hybrid architecture where Web ServicesWS are applied at the collaborative sessions start up, and an event notification system allows collaborative applications to interact through the exchange of event notifications. Two other basic components of LEICA are the Wrappers and the Session Configuration Service (SCS). The integration of a collaborative application to LEICA is achieved by attaching a Wrapper to it. Three main cases may be considered: a) open source applications, b) API-based applications, and c) applications without any available API. Integration of open source applications can achieve the tightest interaction degree, since any internal event/action can be exported/performed; it might however imply great development efforts. API-based integration is straightforward, and interaction is limited to the provided API. Applications without API are the most limitating ones, constraining to interact only through application start and stop actions. LEICAs integration approach is mainly driven by case (b), believing that developers are certainly interested in creating specific and performable collaboration tools that can be used either stand-alone or integrated with other applications (through a flexible API, being able to get a great share of the market). This is for instance the case of Skypeâ⠢, a successful example of communication tool that has released its API since some time ago. Fig. 2 summarizes LEICAs general integration framework. The first step of the LEICAs integration framework is the Collaborative Application Integration. For instance, in the illustrative scenario presented in III.A, the first step to integrate the CVE with the instant messenger (supporting the chat room associated to the entrance hall), the collaborative Web browser and the audio conference applications, it is necessary to create a Wrapper for each one of these applications. As detailed in Section V, these wrappers can be automatically generated by LEICAs API Factory, based on the API description of each collaborative application. The Wrappers comprise a Web services Services WS interface allowing the collaborative application to register itself with LEICA. As illustrated by Fig. 1, through the Wrappers Web servicesWS ports, the integrated application can interact with the Session Configuration Service (SCS). The SCS is a Web service Service WS used for (i) configuring new global SuperSessions and (ii) starting up SuperSessions. A SuperSession is an integrated collaborative session holding the whole collaboration activity. Within the context of a global SuperSession, different specificSessions can exist. A specificSession is a conventional collaborative session defined within the context of a collaborative application (e.g. a videoconference session, a whiteboard session, etc.). The SCS dynamically contacts each integrated application, during the SuperSession configuration process, in order to request: (i) which specific data is required to create specificSessions for this respective application (e.g. a videoconference tool could require an IP multicast address); and (ii) which kind of events it can notify, and action requests it can handle. The interaction degree among the integrated applications depends essentially on the nature of the events they are able to exchange, and actions they are able to perform. In order to create a SuperSession, a user must define its integration semantics. It is accomplished by configuring the Collaboration Policy. A Collaboration Policy is a set of rules under a condition/action model. These rules define how collaborative applications must react when receiving information (events) notified by other integrated applications. In other words, the specification of Collaboration Policies allows defining specific integration semantics (i.e. how to coordinate integrated applications) to each SuperSession, according to the different users requirements. Once a SuperSessions has been created (and its associated configuration file is generated), it can finally be started up. The SCS firstly contacts each integrated collaborative application requesting them to create the specificSessions defined in the SuperSession. Then, during the execution of collaborative sessions the integrated application can interact through the exchange of event using the Event Notification System. According to predefined Collaboration Policies, these notifications may lead specific actions to be performed. Wrappers are in charge of managing the SuperSessions Collaboration Policy. When the Wrapper of a collaborative application receives event notifications, it verifies if the notified events enable any policy rule concerning this collaborative application. If so, the Wrapper sends action requests to the respective application. Note that LEICA is not intended to support low-level physical events (e.g. mouse click/scrolling) or high frequency synchronization events (e.g. current position of moving objects). It aims at supporting activity relevant events that carry some semantics. SuperSession Concept As previously mentioned, LEICA controls the whole collaboration activity within the context of a global SuperSession. A SuperSession model has been defined in order to precisely identify and describe its components. Based on this model, LEICA maintains concise and coherent SuperSession state information. Furthermore, a well-defined taxonomy of the components and their attributes are also implied from the model. General models for describing collaborative applications have already been proposed in the literature. Some of them [26][27] [32][33] represent a conceptual or ontological model describing the entities and relationships of individual CSCW systems. Few models aim at describing integrated CSCW systems, like OOActSM [33][34] and the conceptual model presented in [34][35]. However, these models are based on the notion of a general activity as the central abstraction, which was considered rather abstract for a detailed specification of the SuperSession. Nevertheless, these models have inspired several concepts adopted in the defined SuperSession model. The SuperSession represents a collaboration activity involving different integrated applications, a group of users and general roles associated to these users. Formally, a CIE Session CS is a tuple: SS = (SSid, CA , NA , Rl , U , SSat) where: SSid is a unique identifier; CA = {CAi } | i ÃŽ [1,I]} is a finite set of collaborative applications where CAi = (CAidi, spSi, CAati) a specific collaborative application running a set of specificSessions (sSi). CAati is a list of attributes characterizing the collaborative application. These attributes provide information about the application description, including name, type, whether it is a role-based application, its distribution architecture (client/server, multi-servers, peer-to-peer) and the type of user applications (stand-alone or webWeb-based).); NA is a finite set of non-collaborative applications (data converters, databases, web applications, etc.); Rl = {Rlk } | k ÃŽ [1,K]} is a finite set of general roles. The concept of general role refers to a group of users owning the same set of responsibilities and privileges inside LEICA; Rlk = (Rlidk , Rlatk). Rlidk is a unique role identifier; and Rlatk is a list of attributes characterizing this general role. This list provides details like roles description, membership and administration rights. Regarding the membership, it defines how the role is associated with users: it may be either (i) a static association (there is a membership list), (ii) an automatic association (there is a predicate function based on users parameters and SuperSession state) or (iii) a users choice (password protected or not).); U = {Ul } | l ÃŽ [1,L]} is a finite set of connected users; Ul = (Uidl, URlidl, Mbl, Uatl) represent a user, where Uidl is a unique identifier; URlidl is one general role associated with the user; Mbl is a finite set of membership relations; Uatl is a list of attributes (name, email, IP address, network connection, device type, etc.); Mbl.n = (mCAidl.n , mSidl.n , msRlidl.n) is a membership relation, where mCAidl.n is an application identifier; mSidl.n is a specificSession identifier; msRlidl.n is a finite set of specific roles identifiers. Thus, each membership relation indicates the participation of a connected user to a specificSession of a collaborative application (once connected to the SuperSession, a user can concurrently take part in none, one or more specificSessions of different collaborative applications); SSat is a list of attributes characterizing the SuperSession. These attributes describe information like session context (name, purpose, etc.), scheduling (if scheduled or not, duration, etc.), accessibility type (open or closed), role association type (how users are associated to a general role) and maximum number of connected users. A specificSession regards a conventional collaborative session of a collaborative application. The role of the specificSession entity (spSi.m), wich is formally represented by the tuple: spSi.m = (Sidi.m, sRli.m, pUidi.m, Rsi.m, spSati.m) is not to precisely describe each aspect of a collaborative task. Instead, it captures relevant elements like the specific roles defined for this session (sRli.m), the users participating to this session (pUidi.m.) and the shared resources accessed by these users (Rsi.m). A specific role is a tuple, sRli.m.o = (sRlidi.m.o, sRlati.m.o), where sRlidi.m.o is a specific role identifier and sRlati.m.o is a list of attributes characterizing the specific role (description and maximum number of simultaneous users). A resource is also a tuple Rsi.m.p= (urli.m.p, Rsati.m.p ), where urli.m.p is a resource locator and Rsati.m.p is a list of attributes characterizing the resource. The purpose of the resource element is simply to allow the implementation of an inter-application access control mechanism. LEICA will not need to keep the state of each resource. Thus, resources attributes just describe its type (file, device, virtual object, interface widget, etc.) and the read/write access type (exclusive or concurrent). SuperSession Configuration In order to create a SuperSession, a two step configuration process is carried out: (i) Session Management configuration and (ii) Collaboration Policy configuration. In the first configuration step, two groups of information should be specified: General Session Management information (GSMinfo): It carries management information such as scheduling, membership and general user roles.; Integrated Applications information (IAinfo): It defines the list of integrated applications to be used during this SuperSession; for each collaborative application, a list of specificSessions is defined, where specific data required by this application for creating sessions is provided (e.g. a videoconference application will be provided with an IP multicast address). Once Session Management configuration is completed, the Collaboration Polic
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.