THE DESIGN OF MODULAR WEB-BASED COLLABORATION MISS
Transcription
THE DESIGN OF MODULAR WEB-BASED COLLABORATION MISS
THE DESIGN OF MODULAR WEB-BASED COLLABORATION MISS PLOYPAILIN INTAPONG A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF ENGINEERING (COMPUTER ENGINEERING) FACULTY OF ENGINEERING KING MONGKUT’S UNIVERSITY OF TECHNOLOGY THONBURI 2010 The Design of Modular Web-based Collaboration Miss Ploypailin Intapong B.Eng. (Computer Engineering) A Thesis Submited in Partial Fulfillment of the Requirement for the Degree of Master of (Computer Engineering) Faculty of Engineering King Mongkut’s University of Technology Thonburi 2010 Thesis Committee ……………………………………………… (Sally E. Goldin, Ph.D.) Chairman of Thesis Committee ………………………………………………. (Assoc. Prof. Tiranee Achalakul, Ph.D.) Member and Thesis Advisor ………………………………………………. (Boonserm Kaewkamnerdpong, Ph.D.) Member and Thesis Co-Advisor ………………………………………………. (Asst. Prof. Nuttanart Facundes, Ph.D.) Member ………………………………………………. (Asst. Prof. Chutimet Srinilta, Ph.D.) Member ………………………………………………. (Assoc. Prof. Chantana Chantrapornchai, Ph.D.) Member Copyright reserved ii Thesis Title The Design of Modular Web-based Collaboration Thesis Credits 12 Candidate Miss Ploypailin Intapong Thesis Advisor Assoc. Prof. Dr. Tiranee Achalakul Program Master of Engineering Field of Study Computer Engineering Department Computer Engineering Faculty Engineering B.E. 2553 Abstract Online collaborative systems are popular communication channels as the systems allow people from various disciplines to interact and collaborate with ease. The systems provide communication tools and services that can be integrated on the web; consequently, the systems are more convenient to use and easier to install than current system. Nevertheless, most of the currently available systems are designed according to some specific requirements and cannot be straightforwardly integrated into various applications. This thesis aims to design a new collaborative platform, which is component-based and re-configurable. The platform is called the Modular Web-based Collaboration (MWC). MWC shares the same concept as computer supported collaborative work (CSCW) and computer-supported collaborative learning (CSCL), but it provides configurable tools for online collaboration. Each tool module can be integrated into users’ web applications freely and easily. This makes collaborative system flexible, adaptable and suitable for online collaboration. The MWC tools will be integrated into the autism community website in Thailand as an example host application. The online communication tools will be used between teachers and parents, as well as a distance learning tool for doctors and specialists. Keywords: CSCW / CSCL / Web-based Collaboration / Autism Community iii หัวข้อวิทยานิพนธ์ หน่วยกิต ผูเ้ ขียน อาจารย์ที่ปรึ กษา หลักสู ตร สาขาวิชา ภาควิชา คณะ พ.ศ. การออกแบบระบบการทํางานร่ วมกันแบบออนไลน์ที่สามารถเลือกใช้ เครื่ องมือสื่ อสารและบริ การได้ในลักษณะโมดูล 12 นางสาวพลอยไพลิน อินทพงษ์ รศ.ดร.ธีรณี อจลากุล วิศวกรรมศาสตรมหาบัณฑิต วิศวกรรมคอมพิวเตอร์ วิศวกรรมคอมพิวเตอร์ วิศวกรรมศาสตร์ 2553 บทคัดย่อ ระบบการทํางานร่ วมกันแบบออนไลน์ที่มีอยู่ในปั จจุบนั ได้รับความนิ ยมในการใช้งานสู ง เนื่ องจาก ช่ ว ยให้กลุ่ มบุ ค คลหรื อ องค์กรที่ อ ยู่ต่า งสถานที่ ส ามารถติ ดต่ อสื่ อ สารกันได้ส ะดวกผ่า นเครื อข่ า ย อินเตอร์เน็ต ทําให้ประหยัดเวลาและค่าใช้จ่ายในการเดินทาง ระบบการทํางานร่ วมกันแบบออนไลน์น้ ี ควรมีเครื่ องมือสื่ อสารและบริ การที่สามารถนํามาบูรณาการบนเว็บได้ นอกจากนี้ระบบควรติดตั้งง่าย และใช้ง านได้ส ะดวก อย่ า งไรก็ ดี ร ะบบที่ มี อ ยู่ใ นปั จ จุ บ ัน มัก เป็ นระบบปิ ด ไม่ ส ามารถนํา ไป ประยุกต์ใช้กบั งานรู ปแบบอื่นได้ งานวิจยั นี้จึงเสนอระบบการทํางานร่ วมกันแบบออนไลน์ที่สามารถ ปรับเปลี่ยนและประยุกต์ใช้เครื่ องมื อสื่ อสารต่ างๆ กับลักษณะงานที่แตกต่างกันได้ แพลตฟอร์ มที่ นําเสนอนี้มีชื่อว่า Modular Web-based Collaboration (MWC) โดยเป็ นไปตามแนวคิดของการ ทํางานร่ วมกันโดยใช้คอมพิวเตอร์ (CSCW) และการเรี ยนรู ้ร่วมกันโดยใช้คอมพิวเตอร์ (CSCL) แต่ จะมีฟังก์ชนั การทํางานหรื อเครื่ องมือที่ใช้สําหรับติดต่อสื่ อสารเป็ นอิสระต่อกัน และสามารถนําไป ติ ดตั้งยังแอพลิ เคชัน อื่ นๆ ได้ โดยบุ คคลที่ เ ป็ นผูใ้ ช้งานสามารถใช้งานพื้นที่ เสมื อนและเครื่ องมื อ สื่ อสารผ่านทางแอพลิ เคชันของตนโดยไม่จาํ เป็ นต้องมี การติ ดตั้งเพิ่มเติ ม และไม่ตอ้ งใช้งานพื้นที่ เสมือนร่ วมกับผูอ้ ื่นที่ไม่ได้เป็ นสมาชิกของแอพลิเคชัน่ นั้น ด้วยเหตุน้ ีจึงทําให้ระบบการทํางานร่ วมกัน มีความยืดหยุ่น สามารถประยุกต์ใช้กบั งานอื่นๆ และเหมาะสําหรับการทํางานร่ วมกันแบบออนไลน์ ในเบื้ องต้นเราจะทํา การติ ดตั้ง เครื่ องมื อสื่ อสารลงในเว็บไซต์เ พื่อใช้ติดต่ อ สื่ อ สารระหว่ า งครู กบั ผูป้ กครอง และใช้เป็ นการเรี ยนรู ้ทางไกลระหว่างแพทย์ในต่างจังหวัดกับผูเ้ ชี่ยวชาญ คําสําคัญ : การทํางานร่ วมกันโดยใช้คอมพิวเตอร์ / การเรี ยนรู ้ร่วมกันโดยใช้คอมพิวเตอร์ / ระบบ การทํางานร่ วมกันแบบออนไลน์ / ประชาคมโรคออทิสติก iv ACKNOWLEDGEMENTS I wish to express my appreciation to many people who have helped during the period of my study. First, I would like express my sincere gratitude to my advisor, Assoc. Prof. Dr. Tiranee Archalakul, who always gives me insights, inputs, and support. Nothing I can do better than this although it cannot compare with her time and efforts that she has shared with me from the start. Second, I would like to thank my co-advisor, Dr. Boonserm Kaewkamnerdpong for her advice and her help. I specially thank Dr Sally E. Goldin, Asst. Prof. Nuttanart Facundes and all committee for excellent suggestions and comments. I am grateful to lecturers who have provided me knowledge and all officers who have always offered me their help. I want to thank my friends and colleagues for their feedback. Finally, I want to thank my father, my mother and my brother for their endless encouragement and inspiration. v CONTENTS PAGE ENGLISH ABSTRACT THAI ABSTRACT ACKNOWLEDGEMENTS CONTENTS LIST OF TABLES LIST OF FIGURES ii iii iv v vii viii CHAPTER 1. INTRODUCTION 1 2. COLLABORATION CONCEPT AND RELATED WORKS 2.1 Collaboration 2.2 Web-Based Collaboration Research 2.3 Current Web Conferencing 2.4 Collaborative System Technologies 3 3 4 5 9 3. MODULAR WEB-BASED COLLABORATION: THE DESIGN FRAMEWORK 3.1 Conceptual Design 3.2 Architecture Design 3.3 Communication Protocol 3.4 Detailed Design 3.4.1 Registration 3.4.2 Installation 3.4.3 User Roles 3.4.4 Room Manager 3.4.5 Chat Tool 3.4.6 Audio/Video Conferencing Tool 3.4.7 Desktop Sharing Tool 3.5 Example Scenario: Autism Community Space 12 12 14 15 18 18 20 21 23 25 26 28 29 4. KEY TECHNOLOGIES IN THE IMPLEMENTATION 4.1 Important classes and methods 4.2 Server Side Programming 4.3 Client Applications 4.3.1 Room Manager 4.3.2 Chat Tool 4.3.3 Video Conference Tool 4.3.4 Desktop Sharing Tool 32 32 33 34 35 38 41 43 5 SYSTEM EVALUATION 5.1 Experimental Design 5.1.1 Experiment I 5.1.2 Experiment II 5.2 Result and Discussion 5.2.1 Experiment I 46 46 46 48 51 51 vi 5.2.2 Experiment II 53 6 CONCLUSION 56 REFERENCES 58 APPENDIX A MWC USER AND IMPLEMENTATION MANUAL B EXPERIMENTAL MATERIALS AND RESULTS 61 71 CURRICULUM VITAE 89 vii LIST OF TABLES TABLE PAGE 2.1 Web conferencing system comparison 8 5.1 The system installation questionnaire on 5 items 48 5.2 The Likert 5-Scale satisfaction questionnaire on 6 items 50 5.3 Average durations and percent of users confused for each step 52 5.4 Frequency of satisfaction between MWC and OpenMeetings 53 5.5 Scores of each learning method for Group A and Group B 54 5.6 User’s ratings of satisfaction 55 B.1 OpenMeetings installation performance checklist 87 B.2 MWC installation performance checklist 88 viii LIST OF FIGURES FIGURE PAGE 3.1 Main roles of MWC platform 12 3.2 Architecture overview of MWC platform 14 3.3 Communication protocol overview of MWC platform 16 3.4 Room manager - Flash server communication 17 3.5 Data transmission between clients 17 3.6 Sequence diagram of registration 19 3.7 Sequence diagram of installation 21 3.8 Use case diagram of user role 22 3.9 Room manager interface 23 3.10 Sequence diagram of creating/joining collaborative room 24 3.11 Sequence diagram of leaving/removing collaborative room 25 3.12 Chat box interface 26 3.13 Audio/video conference interface 27 3.14 Desktop sharing interface I 28 3.15 Desktop sharing interface II 29 3.16 Autism community website integrated with MWC 30 4.1 Code structure for server side programming 34 4.2 Action Script for creating Red5 connection 35 4.3 Room manager class diagram 36 4.4 Example Action Script of creating and joining room 38 4.5 Chat tool class diagram 39 4.6 Example Action Script for sending and receiving text message 40 4.7 Video conference tool class diagram 41 4.8 Example Action Script for publishing and broadcasting stream 43 4.9 Overview of desktop sharing tool implementation 44 4.10 Screen sharing process 44 A.1 Welcome page 62 A.2 Create new account 63 A.3 Active your account 63 ix A.4 Change password 64 A.5 User information 64 A.6 Tool selection page 65 A.7 Selecting tools 65 A.8 Download file page 65 A.9 Welcome page of installation file 66 A.10 Database information form 66 A.11 MWC database 69 A.12 Host application database 70 B.1 OpenMeeting installation manual 72 B.2 MWC installation manual 73 B.3 Autism Test Set #1 74 B.4 Autism Test Set #2 75 B.5 Autism Test Set #3 76 B.6 Autism Test Set #4 77 B.7 Questionnaire: System installation 78 B.8 Satisfaction questionnaire 73 B.9 Autism Learning I 80 B.10 Autism Learning II 80 B.11 Autism Learning III 81 B.12 Autism Learning IV 81 B.13 Autism Learning V 82 B.14 Autism Learning VI 82 B.15 Autism Learning VII 83 B.16 Autism Learning VIII 83 B.17 Autism Learning IX 84 B.18 Experiment I: Chi-Square with two factors 84 OM VS MWC and Success VS Fail B.19 Experiment I: Chi-Square with two factors 85 OM VS MWC and confused VS not confused B.20 Experiment I: Chi-Square test of satisfaction questionnaire 85 OM Preferred VS Same VS MWC Preferred B.21 Experiment II: T-Test of pre-test scope between group A and B 86 x B.22 Experiment II: Two-way ANOVA with two factors to see 86 the effect of pre-test/post-test and effect between groups B.23 Experiment II: Two-way ANOVA with two factors to see 86 the effect of pre-test/post-test and effect between each test set B.24 Experiment II: One sample t-test of each satisfied question 87 CHAPTER 1 INTRODUCTION Collaboration is an activity in which two or more people or organizations interact and work together. Many collaborative systems have been implemented to support easy and stress-free communication in the virtual space from different physical locations. They provide a workspace similar to the real world environment for interaction among people in a virtual environment. People can use virtual tools which simulate communication activities that occur in the real-world workspace. This makes collaborative systems a popular communication channel for groups of people or organizations. Through observing the literature, we have found that there are two methods for using collaborative systems. Most systems require users to install the systems beforehand. Some systems can be used via a web browser on a central server with a few additional installations or even no installation required on client’s side. Nevertheless, both methods provide virtual tools as a set or package for communication in the virtual space. Implementation of most existing collaborative systems combines all virtual tools and collaborative functions together. This makes the systems more complex and difficult to install. The users have to handle the complexity of all functions even though they use only some of them. Moreover, when some parts of the system fail, the main system and other parts also fail. Consequently, the system stability is decreased. In addition, combining everything together makes the systems inflexible because the developers cannot freely mix and match suitable virtual tools to their desired purposes. As a result, the developers need to implement new modules to support different requirements. For example, some collaborative systems are designed for meetings. These systems focus on features that support communication. Others are designed for distance learning and focus on features for presentation and explanation. To implement collaborative systems, it requires skills in programming and computer system technology which may be too complex for regular users. 2 To support different requirements and to integrate a collaborative system into the application environment should be effortless and require no expertise. The functions or tools of collaborative systems should be implemented so that they are independent from each other. Each tool should be reconfigurable to suit different purposes. Users should be able to choose modules to be integrated into their applications freely and easily without having to write any code. This will enable flexible, adaptable online collaboration. In this thesis, we propose Modular Web-based Collaboration (MWC) to provide such flexibility and adaptability to online collaboration. MWC uses the same concepts as Computer Supported Cooperative Work (CSCW) and Computer-Supported Collaborative Learning (CSCL) which provide a virtual space for people to interact and cooperate with each other for some purposes via computers and networks. MWC provides communication tools and services for community websites or social networks that require collaboration. These sites are called host applications. Host applications can manage virtual tools independently and can integrate MWC services into their applications easily. MWC can support multiple host applications at the same time. When communication occurs, messages are sent/received between host applications and MWC server. Once MWC services are integrated into a host community website, the end user can use the collaborative system in their own environment. The interaction using MWC tools and services makes end users feel as if all the communication occurred in their own community and they have privacy without having to share collaboration with other groups. To establish the motivation through existing collaborative systems in the literature, the concepts of collaboration and works related to MWC are discussed in Chapter 2. The design framework of MWC is described in Chapter 3. The preliminary implementation is shown in Chapter 4. To demonstrate the usability and flexibility of MWC, two entire experiments are presented in Chapter 5. The conclusion of this study is provided in Chapter 6. CHAPTER 2 COLLABORATION CONCEPT AND RELATED WORKS Currently, there are many collaborative systems available designed for different purposes. However, those collaborative systems are not flexible to be embedded into general web applications. In order to design a flexible, adaptable and usable collaborative system, it is necessary to study the current collaborative systems. This section gives a background study of collaboration and related work. We show details of implementation and existing collaborative functions of web-based collaboration and distance learning. 2.1 Collaboration Collaboration is an activity in which two or more people or organizations work together. It involves active participation of members in the group for common goals [1]. The development of technology in the field of computer networks (Internet and Intranet) supports a wide range of social activities. This allows users to share and exchange information such as documents, files and ideas from different locations. The most important responsibility of network collaboration is the interaction among virtual tools and collaboration activities. Computer Supported Cooperative Work (CSCW) was defined by Greif and Cashman in 1984. It allows people to interact and cooperate with each other through computers and a network [2]. In 1995, Computer-Supported Collaborative Learning (CSCL) was defined as a support to collaborative learning with the same concept as CSCW, but only in the field of education. Both CSCW and CSCL provide a workspace for user interaction for different purposes. CSCW focuses on communication techniques that can conveniently support collaboration to integrate work on a single project by several users. In contrast, CSCL focuses on supporting learning effectively [3]. There are two types of collaborative communication. A synchronous communication is a transmission where requests and responses are sequentially ordered; in a synchronous communication, a request will wait for a response before another request is made. Examples are chat and audio/video conference. An asynchronous communication occurs 4 when requests do not have to wait for a response. This kind of communication can take place at different times such as in web board, email, etc. In 1988, Johansen introduced the CSCW Matrix [4]. The CSCW Matrix considers collaboration in two dimensions: whether it is a) co-located or b) distributed and whether the individuals collaborate synchronously or asynchronously. The dimension of same-time (remote interactions) and different-time (communication and coordination) collaboration reduces the difficulty of the design and the evaluation of CSCW and CSCL. Typical CSCW and CSCL applications include video and audio conferencing, interactive information exchange (images, files and documents) and collaborative work using shared editors, drawing tools and bulletin boards [5]. 2.2 Web-Based Collaboration Research With the rapid growth of Internet applications, many researchers in CSCW [1] and CSCL [2] have focused on the attempts to design systems and architectures for distance working and learning in a collaborative virtual environment. In this section, we present the research of the existing web-based collaborations to support various objectives. Wang et al [3] presented web-based CSCW framework which is a web-based collaborative workspace using Java3D for production work. This framework allows users to share a workspace for design reviews, production monitoring, remote controlling and trouble-shooting using Java 3D models. The framework reduces network traffic and increases flexibility of remote monitoring. It enables web-based synchronous collaboration with interactive control and quick responses. It shows a high potential for web-based real-time distributed applications. Another CSCW framework for product design proposed by Su et al [4] uses internet techniques including client-server and web-services to create an online collaborative design and manufacture; apart from internet techniques, web-enabled environment for collaboration, CAD/CAM, RELSP and distributed product design are employed in [4]. This framework allows users to share AutoCAD designs and communicate online through speaking, writing messages on the board and seeing each other on the screen during the collaborative design process. 5 Moreover, there are others web-based collaborations research for distance learning. Poonam and Bhirud [5] designed an interactive web-based system for learning image processing. The system consists of four modules including a dynamic website, interactive contents, quizzes and assignments. This web-based training integrates a Java technology platform into the web application based on JSP web application framework. It uses Java applets as well as HTML contents or XML for course contents which are run from a web based learning system. The interactive learning object uses MATLAB engine for image processing purposes. This system is suitable for replacing the traditional homework assignments. Another CSCL presented in [6] is the virtual math team project (VMT). The VMT software was designed for a group of 2 to 10 students to discuss mathematics in real time via chat box and whiteboard. This framework integrates synchronous and asynchronous communication together. While the users are communicating by chatting and writing on whiteboards, the systems automatically create a wiki in the portal with the same information as in the chat environment. 2.3 Current Web Conferencing Web conferencing is a synchronous collaboration based on the web. It provides a service that allows meeting events to be shared with remote locations. Tiwari and Tiwary [7-8] proposed that there are three types of implementation for web conferencing which are Host services model, On Premise service model and Blended model. Geer, on the other hand, proposed in the developments of web conferencing in advance [9] that there are three types of web conferencing currently: Service-based web conferencing, Server-based web conferencing and Hybrid systems. Host services model and service-based web conferencing are the same implementation method offered as a service hosted by a third-party provider. Providers such as WebEx [10] and Dimdim [11] provide services for audio, video, document and image exchanges within a virtual community. Users pay a service fee and then join the meetings via a web browser. The provider is responsible to supply the bandwidth, interface and tools. Most organizations prefer this model because the service costs less than buying a conference server and does not need IT support. Web conferencing 6 service uses the internet bandwidth provided by the Internet Service Provider (ISP). So, the effectiveness of the system depends on the internet bandwidth. Moreover, the security issue must be considered in using a third-party service outside the organization. On Premises service model and server-based web conferencing are implemented within the organization. Avaya’s Web Conferencing Server, Juniper’s Secure Meeting and Polycom’s WebOffice are examples of this model [9]. The implementation cost is more expensive than a hosting server model or service-based web conferencing because this approach requires a local administrator for management of the server. However, the advantages of using this model are the feel that it allows the organization to decide whether and when to upgrade the conferencing system. The organization can integrate the web conferencing into their existing applications and ensure that it is secure using within the organization. The blended model becomes the best method of implementing the web conferencing as mentioned in [7-8]. It mixes the concepts of both host services and on premises service. Similarly, the hybrid systems are designed so that they let users work with the both service-based and server-based approaches. However, the implementations described above do not meet the users’ needs for usability, flexibility and privacy perfectly. For Host-based implementation, the users have to pay for a service that lacks uniqueness. The user interface of system is fixed. They cannot modify the interface to meet their requirements. Moreover, all virtual tools are usually combined into a set or a package which is not flexible to use. The users cannot choose some virtual tools as desired. For On premises model, users have to install and configure all virtual tools included in the same package [10]. In the case that some parts fail, it will affect other parts even the main system. To meet the needs by implementing a new system, it requires a larger budget which may not be feasible for small organizations. Yu presented a good web conferencing design in [12]. He claims that the easiest way to make the system more usable is to make it work like an old system that the users are familiar with. The system should be able to hide functions that are not used to decrease the complexity of utilizing the system. The customization gives the users control over 7 what they need and improve about the flexibility. Moreover, when an error occurs, it normally affects only one part so others should still work for system reliability. There are many collaboration systems available in the market. In general, there are two main targets [12]. One is for large organizations, and the other for small organizations. Both targets provide features that make communication very interactive and effective. By reviewing existing collaboration systems [10-15], [18-19], [21], we can classify basic functionalities for collaboration into three groups: communication, presentation and function sharing. The simplest communication function is messaging. All existing collaborative systems have chat tools for real-time messaging. In addition, some systems also provide communication in terms of voice and video. The presentation function of collaborative systems can support image, audio and video presentations so that explanation can be done more clearly and understandably; a whiteboard is an example of a presentation tool. The sharing function supports the exchange of information such as files, computer screens and applications. To meet specific needs, additional virtual tools can be developed; for example, for meetings, a recording function may also be included. In addition, functionalities for collaboration should also include the user and room management which support user registration and create a virtual room. A comparison of existing system is shown in Table 2.1. One example of current collaborative systems is an open-source collaboration system called OpenMeetings [16]. This system follows the On Premises model. The system has basic functions to facilitate collaboration within the virtual community. There are several meeting rooms with different tools such as an audio room, a conference room and a presentation room. All types of room can be recorded for further utilization. After installing the system on a server, the clients access the meeting room via a web browser. The clients are required to sign up and log-in then join the meeting room. However, OpenMeetings combines everything together as a Flash object. The users cannot modify or customize anything. This can make the system unstable and inflexible. As mentioned in [12], a good web conferencing system should provide customizability and as noted in [22] that system component should be able to change to suit the needs of collaborators. 8 Table 2.1 Web conferencing system comparison WebEX License Proprietary Dimdim OpenMeetings BigBlueButton Open source Open source Free software software software license license used by the Eclipse Foundation Price $49/month or $468/host/year Type Capacity (users) Host based 10 users -Free 50 users– $25/month 100 users$696/user/year Host based Free Free On premises On premises 1-3000 1-1000 1-25 1-25 Chat YES YES YES YES Audio YES YES YES YES Video YES YES YES YES YES YES YES YES File upload YES YES YES YES Desktop YES YES YES YES NO NO NO NO Communication Presentation Whiteboard Function sharing sharing Encrypted communication Implement WebEx Media technologies Tone Red5 Red5+ Red5+ Flex OpenLaszlo Another commercial collaborative system is WebEx [10]. It is a third-party provider. It provides several sets of virtual tools for supporting various purposes such as Meeting center, Training center, Event center and support center [10]. To use WebEx, the users are required to sign in to host a webEx meeting first then log into the WebEx account to join the meeting from a computer or any Wi-Fi or 3G-enabled mobile device. Hence, the users do not need to have any programming knowledge and no installation is required. It seems that WebEx is more usable than OpenMeetings and more adaptable for different purposes. However, neither system is flexible enough to allow users to 9 customize the kind of system they prefer, according to [12] so end users have no sense of familiarity within their own community. 2.4 Collaborative System Technologies We have observed different technologies providing video/audio streaming used for implementing current collaborative systems in both the client and the server sides. Adobe Flash is a multimedia platform which already has libraries to support media streaming, so it helps save time for programming. It is positioned as a tool for RIAs (Rich Internet Applications) [17-18] which is currently one of the three most common platforms. Others are Java Fx and Microsoft Silverlight. Adobe Flex [18-19] is an open source framework for the development and deployment of cross-platform RIAs based on the Adobe Flash platform. Both Adobe Flash and Adobe Flex are applications on the client side. Their applications are compiled as SWF file. Adobe Flash has animation tools and timeline which is suitable for animation works while Adobe Flex provides forms creation or business application. However, we can use Adobe Flash and Adobe Flex together. For example, we can insert a Flash animation into a Flex application. On the server side, the Flash server transfers a message, video stream and audio stream from client to client. The three popular Flash servers are Flash Media Server (FMS), Wowza Media server (WMS) and Red5 [30]. FMS [14] is the most mature product. It supports mass scale of applications integrated in the Flash multimedia interactive features. WMS is a Flash server that is suitable for applications of primary and media enterprises for which cost and stability of the most concern. Red5 [20] is an optimizing open source Flash server written in Java which uses RTMP (Real Time Message Protocol) as a streaming media transport protocol. It is essentially a clone of FMS. All three Flash servers support the real-time audio, video and data streams, the live streaming and the client stream recording. However, both FMS and Wowza are commercial while Red5 is a free open source system. Traditional collaboration systems are based on C/S model (Client/Server model). With the RIA technology, the traditional C/S is being replaced by B/S model (Browser/Server model) where web server is used as the middle layer. Fang proposed the B/S model in 10 his Design and Implementation Video on Demand System based on FMS+FLV [21] that web server and ASP (Active Server Pages) are used as the channel between the client and the database. Clients use a web browser without additional installation with a web server via HTTP. A Video conference system designed and implemented by Jiang et al [18] combines Flex and J2EE technology and uses FMS for the streaming server. In this framework, Flex integrates with the view level and communicates with the business level through the AMF (Actionscript Message Format) gateway.AMF is responsible for transferring data between the Flex page and the Java object. The processing of streaming media data is achieved through the remote shared objects in FMS. Another video conference system proposed by Ming et al [19] also constructs a system based on the Flex and the FMS technologies. The system is composed of a Flex front, J2EE server and FMS backend. When the user interacts with the Flex front, the information is sent to J2EE server. The J2EE server checks the information received with the information stored in the database. Then, the back stage of the FMS server broadcasts video streaming to all users. Both systems are implemented based on Java platform which use Action script for developing client application and use Java for server programming. The implementation involves with important classes for connecting between Flex and FMS. The Application class [18] contains information about FMS. The NetConnection class [18] is necessary for RTMP connection for sharing audio, video and data information. The NetStream class [18] is a channel of NetConnection object, acting as a data stream connection between the Flash player and FMS. Nevertheless, these classes are important for other functions such as chat, whiteboard, desktop sharing, etc. OpenMeetings, BigBlueButton , and Tosakun meeting use Red5 cloned from FMS for the Flash server. The OpenMeetings application uses Red5 for streaming. Other services without streaming in the same server connect with OpenMeetings application via the servlet container. BigBlueButton uses Red5 as the core server for handling all the realtime interaction with the client. 11 Dimdim and WebEx were architected and designed to facilitate large-scale communication. Dimdim has multiple components that are responsible for various using functions such as conference server, media server, screen share server, etc. WebEx provides the data center. Live meeting data exchanges are conducted on a separate, private, global network called WebEx MediaTone that supports large-scale communication. With the popularity of using collaboration, it is beneficial to improve collaborative functions and systems so that online collaboration can be most effective. In this research, we propose a new design framework that provides services as the Host services model but is more flexible for different tasks. A tool set can be integrated into any web application easily and freely without having to implement a new system to include another tool in the application. From the observation, we decided to use the RIA technology based on Java platform. Red5 is used for the Flash server, Adobe Flash is used for the client application and Java is used for the server side programming. CHAPTER 3 MODULAR WEB-BASED COLLABORATION: THE DESIGN FRAMEWORK 3.1 Conceptual Design Modular Web-based Collaboration (MWC) is a platform that provides virtual tools for on demand utilization. Users can choose the virtual tools to suit their application freely without implementing a new system. MWC designs the virtual tools or functions independently, which can be called modules. Each module in MWC platform can be independently integrated into any host applications. There are three main roles that are involved in MWC platform; MWC server, Host application and End-user, as shown in Figure 3.1. Host Application MWC server End‐user (Client) Figure 3.1 Main roles of MWC platform MWC provides collaboration tools in the space for a host application. The host application’s clients (end-users) can use collaboration tools with their host applications directly without having to share the virtual space with others. The host applications can integrate MWC tools and MWC services into their applications easily without the need of writing program all over again. First, host applications must register to verify their identity before using MWC tools and services via the MWC website. Next, they can freely select the communication tools that they want. In other words, all tools are 13 independent so the host applications can mix and match those tools with their applications. After registration and tool selection, the host applications will receive a host ID for authentication and will get their selected virtual tool as an object as well as a script for calling it. In the case that host applications select more than one virtual tool, host applications will receive the same number of objects as the number of selected tools; these tools are not combined together. The host applications can put these objects in their web server and insert the scripts in the source code of the web page that displays collaborative system. The MWC provides communication tools and services for the host application, including chat box, audio/video conferencing, whiteboard and desktop sharing directly. After the MWC installation is done, the host application’s clients are allowed to interact with their community in the customized virtual environment through their host application. With the proposed concept, the benefits of MWC platform include the following: • Privacy: MWC allows users to use collaborative functions within the host application’s environment. This gives the users a sense of identity. They do not need to share the collaborative systems with people outside of the community and also have privacy within their own community. • Flexibility: The MWC-based system can be designed to suit the use of the community. When using the system within the community, the users only have to learn the collaborative functions required for their community. Hence, it is easy to use and suitable for general users. It does not require sophisticated knowledge on technology. However, as communication tools are designed to be independent of each other, it requires time to install each of the selected tools. In addition, cross interaction between two or more tools is restricted; that is, users are not allowed to watch a video in the chat box. Compared to current collaborative systems, the number of users using MWC is limited by the performance of the hardware. Nevertheless, server farm and load balancing can be introduced to increase the capacity of the systems. 14 3.2 Architecture Design MWC provides communication tools and services to be integrated into host applications so that users feel as if they use these tools through their applications. The interaction enabling such characteristic involves clients, host applications and MWC. The architecture overview of MWC platform is illustrated in Figure 3.2. The architecture shown in Figure 3.2 can be referred as client-server architecture. In this case, the client interacts with host applications (C-H) and the host applications register with MWC (H-MWC). Before the host applications can provide the MWC services to the client, the H-MWC interaction is required; the host applications must subscribe to MWC for service registration. The developer registers via MWC web interface and selects communication tools and services. At C-H interaction, the users access a website and interacts with their host interface. When a client communicates with other clients in the same host application, communication sessions between the client application and host servers are initiated. Note that the web interface and workflow design on each host application can be different. Figure 3.2 Architecture overview of MWC platform 15 To implement collaborative systems based on MWC platform, we decided to use RIAs technology. RIAs or Rich Internet Application is a web application that has similar characteristics to desktop applications. The essential point of RIAs is that the content of the web page can change without the need to reload the entire page. As a result, the communication between the client and the server is decreased. Adobe Flash is positioned as a tool for RIAs. It already has libraries to support media streaming so we used it on the client side. On the server side, we observed the technologies providing video/audio streaming used for implementing current collaborative systems and decided to use Flash server for transferring video/audio streaming from a client to other clients. Moreover, we implemented the systems based on the Java platform. Although Adobe Flash is a good RIA tool, using it involves risks to privacy and security. Adobe Flash Player browser plugin uses and stores Flash cookies on client computer that are separated from HTML cookies. Flash cookies are not managed though the web browser’s cookie setting. To protect user’s computer from being used without user’s permission, users need to access Flash’s Global Setting Manager for setting permission and security restrictions. 3.3 Communication Protocol Collaborative systems use both synchronous and asynchronous communication. The protocol design is necessary to support real-time messaging. RTMP (Real Time Messaging Protocol) is a simple protocol which works on top of TCP. It was designed for transmission of audio, video, and data between a Flash platform and a server. Details will be described below. As described in section 3.1, the communication involves three roles: MWC server, host application and end-user called client. The overview of communication protocol is shown in Figure 3.3. Room manager and tools are installed on the host application side. They connect with each other and also connect with the Flash server on MWC side. The room controller in the room manager maps the room name with database and displays it as a room list. It also prepares the connection with the Flash server. The Flash server identifies the 16 connection with its database and creates channels for the host application and the collaborative room. It transfers communication messages to the destination. The MWC server does not know to the real identity of the sender or the receiver. Only the host application can refer to the sender or the receiver via mapping with its database. Figure 3.3 Communication protocol overview of MWC platform After the host applications have registered and integrated communication tools, communication between users and MWC occurs when a collaborative room is created. The collaborative room, a channel of one or more clients, is implicitly created when the first client joins it. First a client in each channel becomes a channel operator. Then the client interaction starts. When the first client creates the first collaborative room, the room controller sends an initial message to open a connection with the Flash server. The initial message consists of two parameters including a tool name and the host ID. Tool name is a name of a virtual tool used in the collaborative room. A host ID is a unique ID referring to the host application. It is created at the registration process. Both the host ID and the tool name were stored in the MWC’s database during MWC registration. 17 On the MWC side, the Flash server verifies the host ID and the tool name received with the database. If it cannot map a host ID, it ignores the initial message of that communication. It opens connection with the host application only when the host ID is correct. Then, it creates a new connection with the host application. It creates a host channel and a room channel. It also generates a user ID for the first client of that channel. The user ID is added into the host and the room channel and also is sent back to the room manager for identification in the next communication as shown in Figure 3.4. MWC server Host application 1.Create Room() Client Host channel 2.Initial msg (tool name, hostID) Room manager Room channel 5.Create channel Flash server + UserID (1) 6.Send (userID) Database 3.Verify(hostID) 4.Verification response Database Figure 3.4 Room manager - Flash server communication MWC server Host application A (tool name, hostID, userID) Room Manager Flash server Client A (userID, msg) Client B MWC tool Client C Host channel A Room channel - Client A - Client B - Client C Room channel - UserID 1 - UserID 2 . . - UserID n Figure 3.5 Data transmission between clients Host channel Room channel - UserID A1 - UserID A2 . . - UserID An Room channel - UserID B1 - UserID B2 . . - UserID Bn 18 After the user ID is sent back to the host application side, the room manager connects to the database created on the host server during installation process to map the username from user ID and displays it in the users list. This concludes the communication between the room manager and the host application’s database that occurs while creating a room and joining a room. The data transmission between clients is illustrated in Figure 3.5. It involves a room manager and MWC tools. Room manager is responsible for managing and controlling all tools. It sends parameters as initial messages together with a user ID (3 parameters; tool name, host ID and user ID) to the Flash server. Each MWC tool directly communicates with the Flash server for data transmission. The default parameters that each tool sends are a message and the user ID of the sender. The Flash server broadcasts the message to all clients in the same room ID as the sender. In summary, there are two connections plus the number of the tools used during the using of MWC tools and services per client. MWC server acts as a broadcaster that forwards a message to the destination. The host application acts as the identifier for mapping client’s name from the user ID. This enforces the concept of privacy. 3.4 Detailed Design The detailed design consist of the user interfaces, the user roles, the functions and sequence diagrams. 3.4.1 Registration A registration is required in order to use MWC tools and services. The registration information is collected in the MWC’s database. It is used for identification when the host application requests to open a connection with the MWC. Developers of the host application access MWC website to do the registration process. They have to sign up and then are allowed to select MWC tools they need. The registration process is described and illustrated in Figure 3.6. In sign-up step, the developers are required to enter their information which is personal information and host application’s information. The personal information is used for 19 logging into the MWC website. The host application details are for host application identification. The necessary data are username, password, email and the host’s URL. The username is used for a system login. An email is used for activating the user account. The host URL is used for compiling a Flash object. Then the MWC system sends an activation mail to the email entered during signing up. The developers have to confirm from that email, which will activate their account. Then, they can login and proceed to tool selection. If the developers enter a wrong email or skip the confirmation step, they are not allowed to go on to the next step. After the email confirmation is completed, the developers can login to the MWC website and are allowed to select MWC tools. The MWC tools consist of chat box, video conference and desktop sharing. Selection of multiple tools is allowed. The developers can select tools that they need. The session timeout is required in this step to prevent dropping clients that are inactive from the host application. It supports different host platforms with different session timeouts. Figure 3.6 Sequence diagram of registration 20 Afterwards, the MWC system generates Flash objects and an installation file for the developer to download easily. Flash objects consist of Room manager and selection tools, packaged into .swf file. Room manager is a default Flash object which is unique for the host application. In other words, there is only one room manager per host application regardless of the number of selected tools. Host ID and session timeout are merged into compiling room manager object. Addition tools are allowed in the next time. In other words, developer can select additional tools later. The installation file is necessary for installing MWC tools and services in the host application. The MWC database collects the host ID, account information, selected tool names and session timeout. A Host ID is generated automatically by the MWC. Account information is obtained during signing up which includes a username, a password, an email and the host URL. The details are described in Appendix A. 3.4.2 Installation After the registration is complete, the developers will receive an installation file and Flash objects. To set up MWC tools and service, the developers put the installation file on their server and follow installation instructions. This process requires a relational database for collecting room and user information. The database information required includes the hostname, the port, the database name and the database username and password. Then, necessary database tables are created automatically. For Flash objects packaged as .swf files, the developers can put into their code anywhere to suit with their application. This allows host application’s clients to feel as if all communication occurs in the host application. The installation process is described in Figure 3.7. The MWC installation manual is provided in the Appendix A. The user needs to access MWC website for registration and tool selection but user does not need to connect with MWC server during the installation. Thus, there is no server connection problem if the network fails during installation. 21 Figure 3.7 Sequence diagram of installation 3.4.3 User Roles A collaboration room is a virtual space providing communication tools for users to interact with each other. In a collaboration room, each user has a role and ability to use different functions. There are three main roles which are room owner, room admin and participant. Room owner is a user who creates the collaboration room. The identity of the room owner does not change during the time the room exists. The main function for room owner role is the creating collaboration room. Room admin is a user who controls all activities in collaboration room. The token is an authority to control collaboration room. The room owner is assigned to be the room admin when a room is first created. Thus, the room owner has the token first. The functions for room admin role are controlling the use of the video conference tool and desktop sharing tools, giving and getting back token and removing bad user from the room called “kick user”. 22 The room admin controls the use of video conference and desktop sharing tools. Before participants use video conference tools, they need the permission from the room admin. The desktop sharing tool can be used by one user at a time. Only the user who holds the token is allowed to share the computer screen with others. Room admin can give the token to others. The user who holds the token becomes the admin. The room owner is only one role that can get the token from any user. If the room admin leaves the room, the token is given to user whose username is shown under the room admin’s username in the user list. In addition, room admin has ability to kick other users out of the room. Figure 3.8 Use case diagram of user role 23 A participant is a user who is interested and attends the collaboration room. The main functions of the participant role are joining and leaving collaboration room. All roles can use chat tool and video conference tool. The use case diagram for all user roles is illustrated in Figure 3.8 3.4.4 Room Manager A room manager is a Flash object that is created during the registration process and is set up at the host application side during the installation process. Inside the room manager, there is a room controller. A room controller is responsible for opening a connection with the MWC server and also for mapping the username and the room name from the user ID and the room ID respectively. The room manager interface is shown in Figure 3.9. Figure 3.9 Room manager interface A list of collaborative rooms is displayed in the room manger. The user can click on a name in the room list to join the collaborative room. In case of a private room, room creator sets the room password which is known in the user group during room creating process. Other users have to enter a password to join it. In fact, the room manager receives only the room ID from the MWC server. The room controller is responsible for 24 mapping the room ID with the database and showing it as a room list in the room manager interface. Furthermore, the users can click the “Create room” button, enter room name and enter password for private room to create new collaborative room easily via the room manger interface. A new connection with MWC is opened when a new collaborative room is created. The room controller sends an initial message as described in chapter 3.4 to the MWC server to notify a new room channel (inside the host channel). The MWC server generates a room ID referring to that room channel and sends it back to the room manager. The room ID is encrypted and kept in the host application’s database. The collaborative room is removed from the room list when the last user leaves the room. The room controller closes the room channel and also removes the information of that room from its database. The creating/joining collaborative room scenario is described and illustrated in Figure 3.10 and the leaving/removing collaborative room scenario is described and illustrated in Figure 3.11. Figure 3.10 Sequence diagram of creating/joining collaborative room 25 Figure 3.11 Sequence diagram of leaving/removing collaborative room 3.4.5 Chat Tool The simplest real-time communication tool is a chat box used for messaging. The interface of the chat tool is shown in Figure 3.12. A chat tool shows a message and sender’s username in a message window. Users are allowed to send only text messages to each other by typing in an input window. A users list is a default function inside every collaborative room. It displays a list of names of users who are in the room. As mentioned that MWC provides communication tools and services. The user management depends on each host application. MWC does not provide the user management function. As the result, the username shown in user list is the same as username of host application. The user who created the collaborative room becomes the room owner by default. A user ID is generated by the MWC server automatically for referring to that user. When other users join the room, a new connection with MWC server is opened for the new user. The MWC server generates a user ID and updates the users list. The user ID is also encrypted and kept in the host application’s database. 26 Figure 3.12 Chat box interface When a chat tool is used, it directly connects with the MWC server. A message from the user is sent to the MWC server. Then, the MWC server broadcasts that message to all users who are in the same room channel. A message consists of a text message and the user ID of sender. 3.4.6 Audio/ Video Conferencing Tool The audio conference tool and the video conference tool are independent. We can use either one or both. The audio conference tool is for audio transmission. The video conference tool is for audio and video transmission. Audio/Video conference tool is for communication via audio and video transmission. The core technology for the tools is compression of audio and video streams which are sent via RTMP in real time. The interface of audio conference and video conference tool is shown in Figure 3.13. 27 Figure 3.13 Audio/video conference interface The controller of using audio/video conference tools is in the users list. There are three icons which represent three statuses; admin, audio conference tool and video conference tool. An admin is a user who controls the collaborative room and grants the use of audio/video conference tools. The user in the same room is not allowed to broadcast via the audio/video conference tools at any time. The admin selects a username in the users list to allow the use of audio/video conference tools. This is because of the limitations of bandwidth. The admin can give the ownership to other users in the room. If the admin is the room owner and leaves the room, the username below becomes the admin automatically. When the first user comes back into the room again, the role changes and the previous owner become as room owner again. The Audio/Video conference icons are represented next to the username of the user who is using the tool. For the video conference tool, there is a video screen to display the user’s video which is limited to four screens per collaborative room. Audio/Video input from the user’s microphone and the webcam is compressed and sent via the RTMP to the MWC server. The MWC server considers the stream as a message and also broadcasts it via the RTMP to other users as described in the chat tool part. 28 3.4.7 Desktop Sharing Tool The desktop sharing tool is used for computer screen sharing. The user who has the admin token is allowed to share his or her computer screen. The computer screen is broadcast to other users in the same collaborative room. The implementation of desktop sharing integrates many techniques including the audio/video stream. First, the computer screen is captured as an image. Then, many capture images are compressed into a video format. The video clip is sent to the MWC server by video streaming technique. The MWC server also broadcasts the video streaming to other clients. The interface of desktop sharing tool is shown in Figure 3.14 and Figure 3.15. The admin uses sharing function to share the admin’s screen with other users in the room. The admin’s screen is broadcast and shown on the desktop sharing panel of other users. While the admin shares the screen, the other users are allowed to use the chat tool to communicate with the admin or the other users. Figure 3.14 Desktop sharing interface I 29 Figure 3.15 Desktop sharing interface II According to serve the customization to suit with host application, MWC allows integrating multiple tools in the same room. For example, a chat room has the chat tool for interaction or a presentation room has the audio/video conference and desktop sharing tool. 3.5 Example Scenario: Autism Community Space Autism is a disorder concerning abnormalities of brains. It requires specialists to diagnose; however, there are only a few of them in Thailand. The learning of this medical specialty requires clinical studies, but most students are doctors in local hospitals outside the cities, which makes this specialized training almost impossible. Interaction in autism community can bring about benefits of sharing information. Moreover, in some cultures, having a child with abnormalities can be seen as embarrassment to the family; hence, to the family may prefer to have privacy in using online collaborative systems in their own community. Apart from that, the flexibility of collaborative systems which is easy enough for general users to operate is appreciated as community members may not be skillful enough in computer technology to utilize an advanced system to its maximum advantage. Therefore, integrating MWC tools in community’s host applications seems suitable for the autism community. To 30 demonstrate the utility of the MWC platform, a sample scenario of online collaboration in autism community in Thailand is discussed. Such online collaboration can be beneficial as a distance learning tool for local doctors and a consultation tool for teachers and parents. Figure 3.16 Autism community website integrated with MWC Sample Scenario for Using Autism Community Space Based on MWC: John, the director of an autism community in Thailand, wants to create community website which has a virtual space for communicating and sharing information from different locations. He wants this to be easy to use; even someone who has no IT knowledge should be able to use the collaborative tools on the website. Moreover, he wants no links to other websites in the community website. Bob, a web administrator, is assigned to work on this task. He creates an autism community website that needs collaboration tools so he accesses the MWC website and registers. After registration, he is allowed to select communications tools such as chat tools, audio/video conference tools that he can customize to suite his purpose. Then, he receives the tools in the form of Flash objects and installation files to set up in the 31 autism community website. He puts the objects on the community’s web server and embeds a Flash object in each collaboration room design which has different virtual environments such as a conferencing room, a presentation room and a chat room Alice, a pediatric doctor in a local hospital, wants to consult with Sara who is an experienced specialist at an autism center in Bangkok about clinical studies of her autism patients, but it is inconvenient and too expensive to travel to Bangkok. She reserves a private conferencing room and invites Sara through the autism community website. She uses the video conferencing tool to communicate with Sara, uses video playing tool to show videos of her patients, and also uses the file sharing tool to share her treatment histories. Clare, a parent of an autism patient, has many questions about her child’s behavior. Sara suggests Clare join the autism community website. Clare creates a public chat room on child behavior topics. She shares information with other parents and seeks advice about effective treatments. Sometimes, Sara joins a chat room as an audience member to observe discussions. Sara always follows information sharing in the autism community website so that she could gain interesting points for further study. When finding useful information, she reserves a presentation room for training on those topics. Other members can be audience. Sara controls the audio conferencing tool to receive questions and uses the desktop sharing to assist her explanation for better understanding. CHAPTER 4 KEY TECHNOLOGIES IN THE IMPLEMENTATION Based on the design of MWC, an implementation was conducted to provide detailed information on using the MWC framework. In the implementation, an MWC was developed based on the Java platform. Red5 was used as a Flash server for transferring communication messages and audio/video streams with clients operating through a Flash application. The server side was implemented with Java while all tools and components for the host application were implemented with Action Script 3.0. 4.1 Important classes and methods ApplicationAdapter class is a base class for Red5 applications, which contains information about Flash Media Server Application. It provides a method to work with SharedObject and streams including the connections and scheduling services. It extends from MultiTheadedApplicationAdapter class . MultiTheadedApplicationAdapter can execute multiple threads to improve performance. There are several important methods in ApplicationAdapter/MultiThreadedApplicationAdapter class: • connect() is a handler method that is called when a new client is connected from the server. • disconnect() is a handler method that is called when a client disconnects with the server. • start() is called when an application is loaded to start a scope which can be the application or a room scope. • stop() is called when an application is uninstalled to stop scope handling, which stops the application scope and room scope handlers respectively. • join() is to add a client into the scope that can be an application scope or the scopes of lower level respectively. • leave() is to remove a client from the scope, which disconnects the client from the application scope and the scopes of lower level respectively. IConnection interface is a connection object. It provides basic connection methods associated with the client and the scope. Connections may be persistent, pulling or transient. 33 IScope interface is a scope object which is a stateful object shared between groups of clients that are connected to the same context path in a hierarchical way. It is used to access resources, shared object, streams, etc. NetConnection class used to create a two-way connection as a stream pipe between a client application and a Red5 application via the RTMP protocol (Real-Time Messaging Protocol). There are two important methods in the NetConnection class: • connect() is used to pass data from the client to the server application. • call() invokes commands or methods on Red5 server. So, we have to create a server-side function to pass to this method. NetStream class is used to open a one-way streaming connection between the Red5 server and client application, which is a channel within a NetConnection object. There are several important methods in NetStream class: • publish() is to publish a stream; audio and video data. • play() is to subscribe to published stream and receive data. • attachAudio() is used to capture and send audio data from a Microphone object. It is often used for sending live audio data. • attachCamera() is used to capture and send video data from the camera device. • attachNetStream() is used to stream video data. NetStatusEvent class is dispatched from a NetConnection, NetStream or SharedObject object to report its status. There is only one type of status event: NetStatusEvent.NET_STATUS 4.2 Server Side Programming A server side application was implemented with Java. The jar file was deployed within the Red5 server. To define basic structure in Java application, we first import class MultiThreadedApplicationAdapter and then import the IConnection class to establish client connections. The methods in MultiTheadedApplicationAdapter class as mentions in section 4.1 are created. connect()will be executed when first client connects to Red5 server whereas disconnect()will be executed to disconnect a client connection to Red5 server. IScope will create a host application scope and a room scope when the first client 34 of the host application connects to the Red5 server and also create room scope when the client creates a room. As a result, MWC can identify the communication group. The structure of the source code is as followed: import org.red5.server.adapter.MultiThreadedApplicationAdapter; import org.red5.api.IConnection; public class Application extends MultiThreadedApplicationAdapter { public Boolean Connect(IConnection con,IScope scope,Object[] params){ } public void Disconnect(IConnection con,IScope scope,Object[] params){ } public boolean start () { } public void stop () { } } Figure 4.1 Java code structure for server side programming Apart from above methods, there are some other methods to control the process and event from the client’s connection. There are several important methods inherited from a class named MultiThreadedApplicationAdapter as follows: • streamPublishStart()is called when the first video packet has been received. • streamBroadcastStart()is notified when a broadcaster starts. • streamBroadcastClose()is notified when a broadcaster closes. 4.3 Client Applications On the client side, Flash applications are employed for connecting to the Red5 server. The applications require the Flash class called NetConnection to create a connection between the client applications and the Red5 server. The connection can be started by defining a new connection. To ensure the establishment of the new connection, the status of connection is checked before further processing. connection cannot be formed, the event listener If for any reason the will be removed by 35 removeEventListener(). The action script for creating a new connection is the following: var serverNC:NetConnection = new NetConnection(); serverNC.addEventListener(NetStatusEvent.NET_STATUS, serverConnectStatusHandler); serverNC.connect(Url, parameter1,…,paremetern) Figure 4.2 Action Script for creating Red5 connection In this implementation, we construct a prototype of room manager, chat tools, conference tool and desktop sharing tool. Room manager is a main tool for connection with MWC. It acts as a medium in connecting each communication tool with MWC. As a result, all tools must connect with the room manager for connecting to the MWC. The LocalConnection class is used for communication between SWF files that can invoke a method in another LocalConnection object. (Note that room manager tool and other communication tools are independent and in the SWF files). The sent file must contain a LocalConnection object and call send(). The other file is called the receiving file that invokes the method. The receiving file must contain another LocalConnection object and call to the connect(). 4.3.1. Room Manager The room manager controls necessary functions for room and user management: create/remove room, update room list, join/leave room, update the users list, etc. As a result, it is a default tool which is enabled automatically and the first to interact with end-users. There are five main classes involved with working process of room manager tool; RoomManager, RoomController, HostApp, Url and UserRole as shown in Figure 4.3 36 Figure 4.3 Room manager class diagram 37 RoomManager is a major class for Room manager tools. It is responsible for opening a connection between the room manager and Red5 server, creating/removing room, joining/leaving room, mapping username and userID, and user role management. Room controller is a composition of RoomManager class. It is responsible for interaction between room manager tools and end-user and other methods supporting the connection between room manager tool and Red5 server. HostApp contains static session timeout value generated in registration process. Url contains many static variables needed for identification, mapping id and name between host application and MWC. UserRole contains static variables for indicating user role that are room owner, room admin and participant. When the room manager tool is loaded, RoomManager class connects to Red5 server and NetStatusEvent class reports its status. Then RoomController() method in RoomController class is invoked to perform room manager interface for end-user interaction and construct other necessary classes for connection. The connect() method in server side is executed for the first connection from room manager tool. It gets a parameter; IScope for creating a host application’s scope. Then an end-user is allowed to create new room by entering room name and other options provided in room manager interface. The createRoom() method in RoomManager class is invoked to perform new user interface and construct necessary classes for next connection. The connection process in server side is similar to previous connection but IScope creates a room scope which is child scope of host application scope. A createdRoomHandler() method in RoomManager class is a handler method used to listen to the connection made from createRoom() method. It receives parameter names room ID which is generated and sent from Red5. Then, it calls createRoomHandler() method in RoomController class to perform room list interface and calls automatically joinRoom() method of RoomManager class. For other end-users, joinRoom() method is called when end-users click join room button from room manager interface. A roomConnectStatusHandler() method is also used to listen the connection from joinRoom() method. For joinRoom() method, it requires 38 parameter names user ID for connecting to room scope but in first connection end-user does not have a user ID yet. So a null parameter is sent and Red5 will generate userid for end-user to use for next connection. A userIdHandler() method in RoomManager class is invoked currentUserInfo() method in RoomController class to create current user information for the room manager. It also invokes storeUserMapData() in RoomManager class for mapping between username and user ID as the same as the mapping between room name and room id, but uses a different method name. A updateUserRole() method in RoomController class sets end-user role. For removing room or leaving room, they use the similar process to creating room and joining room. Other methods; kickUser(), getAdmin() and giveAdmin() are additional functions for user management for the room administrator to grant permission to other end-users in the same room. Example source code for creating/joining room is shown below: private function createRoom(roomName:String,password:String):void { server.call(“createRoom”, createRoomResponder, _password); } private function joinRoom(roomId:String, password:String, roomName:String):void { roomNC = new NetConnection(); roomNC.connect(baseUrl+”/”+_roomId, “room”, _key, _userId, _password); roomNC.addEventListener(NetStatusEvent.NET_STATUS, roomConnectionStatusHandler); } Figure 4.4 Example Action Script of creating and joining room 4.3.2. Chat Tool Chat tool is a tool that provides text message communication. It requires a connection to room manager using LocalConnection class. The local connection will send important parameters; roomid, userRole, userid, key and password from a room manager tool to a chat tool for connecting to the room scope. As a result, the chat service will be enabled after a room is created. There are four main classes involved with working process of chat tool; IM, NewChatBox, Url and UserRole as shown in Figure 4.5. 39 Figure 4.5 Chat tool class diagram IM is a major class for chat tool. It is responsible for connection opening between chat tool and Red5. NewChatBox is a composition class of IM. It is responsible for interaction between chat tools and end-user and other methods supporting the connection between chat tool and Red5 server. Url and UserRole class are the same as mentioned in room manager tool. Chat service will be enabled after room is created. IM() method in IM class is invoked. IM() method constructs a local connection and calls send() method which connection and method name are sent as the parameters. A attend() method in RoomManager class is called via a local connection named ‘Attending’. In the attend() method, there is another local connection for sending parameters; room ID, user Role, user ID, identification key and password from room manager tool to chat tool via send() method. 40 A joinRoom() method in IM class is called via a local connect. It uses parameters passed from send() method for connecting to room scope. Chat tool requires the joinRoom() method for receiving the parameters as room manager tool to pull connection to the same room scope. NetStatusEvent class is also used for reporting connection status. Then NewChatbox() method in NewChatbox class is invoked to perform chat box interface for end-user interaction and to construct other necessary classes for connection. The connection variables and handlers are almost similar to room manager tool but with different function calls and purposes. For sending/receiving message between chat tool and Red5, sendMessage() and receivedMessage() method in IM class are invoked. A sendMessage() method requires three parameter; user ID, message and time. A user ID is from a local connection. A message is from end-user entering text via chat box interface. A time is a current sending time generated automatically. A broadcastChat() method in server side is invoked for broadcasting message to end-users in the same room scope via shared objects. ISharedObject joins the same shareObject which is created in client side during room joining. A sendMessage() method sends a broadcast message to client which invokes receivedMessage() method in IM class. Then displayText() method is called to construct Flash objects to display to all end-users. Example source code of sending/receiving message is shown below: public function sendMessage(message:String):void { roomNC.call(“broadcastChat”, null, userId, message date.getTime().toString()); } public function receivedMessage(senderId:String, message:String, timestamp:String):void { chatBox.displayText(senderId,message,timestamp; } Figure 4.6 Example Action Script for sending and receiving text message 41 4.3.3. Video Conference Tool Video conference tool is a tool providing audio and video communication. It requires a room manager connection and receives parameters for connecting to a room scope as the same way as chat tools. As a result, video conference service will also be enabled after a room is created. There are four main classes involved with working process of video conference tool; VideoConference, VideoPanel, Url and UserRole as shown in Figure 4.7. Figure 4.7 Video conference tool class diagram 42 VideoConference is a major class for video conference tool. It is responsible for opening connection between video conference tool and Red5. VideoPanel is a composition class of VideoConference. It is responsible for interaction between room manager tools and end-user and other methods supporting the connection between video conference tool and Red5. Url and UserRole class are the same as mentioned in room manager tool. Video conference service will be enabled after room is created. VideoConference() method in VideoConference class is invoked. VideoConference() method constructs a local connection with room manager tools as mentioned in chat tool. After connecting to the same scope as room manager tool and receiving connection status form NetStatusEvent class, VideoPanel() method in VideoPanel class is invoked to perform video conference tool interface for end-user interaction and to construct other necessary classes for connection. The connection variables and handlers are similar to room manager tool but with difference function calls and purposes. Video conference tool involves the sending and receiving video stream. For sending video stream from end-user, end-user needs to allow a permission to start publishing the stream. A publishVideo() method in VideoConference class is invoked to callstartPublishVideo() method in server side. A startPublishVideo() method will check the video mode and the amount of steam before it constructs video scope and prepares the resources for incoming stream. A startPublishingVideoHandler() method in VideoPanel class is a calling results of startPublishVideo() method to retrieve video stream from local video devices; microphone and camera. For receiving video stream from Red5 server, checkEnabledHandler() method is invoked after checking that video stream is allowed for publishing with roomConnectionStatusHandler() method. It calls getVideoStreams() method in server side to see the list of video streams in the room and then getVideoStreamsHandler() method in client side handles retrieving the streams. A streamPublishStart() method in server side is an event handler which is used when end-users start to publish streams and is also used to monitor and verify whether the received streams are published. Then, newVideoBroadcastHandler() method in 43 VideoPanel class is invoked for creating video box to display a video stream. Example source code of publishing/broadcasting stream is shown below: public function publishVideo:void { videoNC.call(“startPublishVideo”,startPublishVideoResponser); } Public function startPublishVideoHandler(available:Boonlean):void { selfStream = new NetStream(videoNC); mic =Microphone.getMicrophone(); mic.addEventListener(StatusEvent.STATUS, deviceStatusHandler); selfStream.attachAudio(mic); cam = Camera.getCamera(); cam.addEventListener(StatusEvent.STATUS, deviceStatusHandler); selfStream.attachCamera(cam); } Figure 4.8 Example Action Script for publishing and broadcasting stream 4.3.4. Desktop Sharing Tool Desktop sharing tool is a tool for computer screen sharing. The working process of desktop sharing tool is similar to other tools. However, there are some different methods for stream creating. For implementing desktop sharing, Flash has no libraries for image capturing but Java provides a library for stream creating. Thus, we use Java Web Start technology that allows users to start an application using a web browser for implementation. The implementation is similar to video conference tools, which involves the send/receive stream. So, we will not discuss this in detail. An overview of desktop sharing implementation is shown in Figure 4.9 44 2.Sharing enable: Send(url+app+roomid,key,modulename) 4.Download 3.Generate(arg) JSP JNLP Flash 5.Lanch 6.Run(arg) JAR 7.Connect(arg) 1.Connect(url+app+roomid,key,modulename) RED5 8.Broadcast(streamname) Figure 4.9 Overview of desktop sharing tool implementation From Figure 4.9, Flash calls and sends the necessary parameters to a JSP script on the server side. JSP script uses the parameter received from Flash to generate JNLP (Java Network Launching Protocol) file automatically. JNLP protocol is defined with an XML schema and is used for launching Java Web Start application; JAR file in the figure. The jar file which is a screen sharing application gets the arguments from JNLP and is launched automatically to connect to Red5 for stream publishing. The stream of screen is sent through the RTMP protocol and is broadcast to other end-users. The broadcast process is the same as that in the video conference tool. To use the desktop sharing tool, user needs to have the Java runtime environment version 1.5 or later for running JNLP file. JNLP file will be automatically downloaded and run when user start to share desktop screen. If there is no Java runtime environment installed or it is wrong version, the system will provide the download file. Capture screen as image Draw mouse into image Convert image to BufferImage Encode to streams Figure 4.10 Screen sharing process Publish streams 45 There are five main steps for implementing Java Web Start; screen capturing, mouse drawing, image converting, stream creating and stream publish in as shown in Figure 4.10. Robot class is used for creating an image containing pixels read from the screen. During the capture screen process, the mouse position is captured and also is drawn into an image. BufferedImaged class is used for converting image objects into BufferImage objects. Then, images are encoded by ScreenCodec class as a video stream and published to Red5. This process is a thread loop depending on a frame rate. The encoding/decoding and publishing stream to Red5 uses Flazr [23] technique. Flazr project is a Java implementation including a streaming media server. It used for streaming. Sending and receiving video stream between Flash object of desktop sharing tool and Red5 is similar to the video conference tool except there is only one stream from the publisher. After implementation, the Action Script’s source code of client application is placed in the MWC server for providing the service. When the host application accesses to the MWC website and submits the selection tools, the system will create a new folder for storing the Action Script files of the selected tool including HostApp.as and Url.as that need to get the value of host application. The Action Script files are compiled to Flash movie files (.swf) with a different host application ID by Flex SDK. Then, MWC provides links for the host application to download the tools and services. The implementation detail and the installation manual are included in Appendix A. CHAPTER 5 SYSTEM EVALUATION The evaluation scenario for the MWC platform was introduced in Chapter 3. We constructed a prototype based on the conceptual design of MWC. The prototype is an autism community website that acts as the host application. It integrates MWC tools and services into the website. The objective was to evaluate the effectiveness and efficiency of the systems including the usability and flexibility of use. MWC is a new collaboration platform that provides communication tools and services for installation in the host application. While members of that host application are the end-users who use those virtual tools to interact with each other, the experiment was divided into two experiments. Experiment I investigated the developers’ experience with installation of MWC tools and services in their application. Experiment II was conducted with the end-users, to evaluate their experience using the system. Moreover, there is also a collection of survey data from satisfaction questionnaires. In the experiments, MWC system was installed as server. The characteristics of MWC server were Window Server 2008, Intel® Xeon® CPU 2.83 GHz and 8 GB of ram. Similarly, the characteristic of the host application server should be Window operating system. The PHP and HTML script were used for development of host application in the experiment I. Drupal which is a CMS (Content Management System) used as the host application in the experiment II. 5.1 Experimental Design 5.1.1. Experiment I In this research, we implemented this new collaboration platform to provide communication tools and services for web developers to install in their application. Our hypothesis was that MWC platform should be easy to install and flexible for choosing and setting up tools in the host application. To verify our hypothesis, we experimentally evaluated ease of installation by comparing MWC installation with other systems. The installation manual was used as guideline in the experiment. We measured installation time required to evaluate any differences of between MWC and a competing but similar system. During installation a checklist was 47 used to measure the mistakes in each installation step. After the subjects finished the tasks, they answered a questionnaire in order to evaluate their satisfaction. OpenMeetings is a web-based software that provides a conference service as hosted service or allow user installing the conference on own server. It provides many features such as audio/video conference, screen sharing, chat and whiteboard. In addition, the product development is based on RIA framework and Red5. Moreover, OpenMeetings is popular software which has been downloaded more than 10,000 times and also is granted by the famous software award. So, that is why we used OpenMeetings as a comparison system with MWC in the experiment. In this experiment, the ease of installation was evaluated by sixteen subjects (7 males and 9 females). All subjects are 4th year student in Computer Engineering department of King Mongkut’s University of Technology Thonburi (KMUTT). Eight of the subjects had good IT knowledge based on self-rating and 8 were average. Seven of sixteen subjects had experience on conference program, Skype. Two tasks were designed to evaluate the ease of installation. The first task was OpenMeetings installation and the second was MWC installation. The installation manual of OpenMeetings was from its material in website while we wrote the installation manual of MWC by ourselves. The two installation manuals are included in Appendix B. We used the installation mistakes in each step from checklist to evaluate the understanding from each system. There were 11 check points in the checklist of both systems. In addition, we measured the time spent on each check point and the total time spent on task completion. Moreover, we designed a questionnaire to evaluate ease of installation in different term of OpenMeetings and MWC system. The questionnaire contained five items as shown in Table 5.1. For each question, the subject could choose MWC, OpenMeetings or they are about the same. 48 Table 5.1 The System installation questionnaire on 5 items Item Question Q1 Which system do you think has better documentation? Q2 Which system do you think is easier to install? Q3 Which system do you think you can customize more freely? Q4 Which system do you think has more flexibility of use? Q5 Which system do you prefer overall? The same environment was used by all subjects in this experiment. We used the same computer where we prepared essential programs and setting. MySQL was used as the database, EditPlus was used as the text editor, Google Chrome was used as browser and PHP was used as a web programming language in this experiment. Each subject performed the experimental individually. The researcher of this study is the one who ran the experiment. First, the researcher briefly introduced collaboration system and its use for five minutes. Then, the researcher gave them five minutes to read the installation manual before getting started. The subjects were not allowed to ask any question during the experiment. They were randomly divided into two groups: Pattern A and B. Pattern A group installed OpenMeetings and then installed MWC. Pattern B group installed MWC and then installed OpenMeetings. The researcher sat next to the subjected to observe the mistakes or confusion according to the checklist. Also, the researcher recorded time from start to finish and the success of installation for each system. After the tasks were all finished, all of the subjects answered the questionnaires. 5.1.2. Experiment II In this research, we also designed and implemented the new collaboration platform with the proposed concept in usability, flexibility and privacy for end-users. In experiment II, our hypothesis was that MWC platform is user-friendly and effective for learning. To verify our hypothesis, we experimentally evaluated the effectiveness of system by performing a learning task using the autism as a theme. The experiment compared the knowledge before and after learning. Also, the experiment compared the learning improvement of two different learning methods to measure the effectiveness of using 49 MWC in learning. After the subjects used MWC to finish the tasks, they answered a questionnaire in order to evaluate their satisfaction. In the experiment II, we used sixteen subjects. All subjects were male students in Control System and Instrumentation Engineering Department of King Mongkut’s University of Technology Thonburi (KMUTT). The subjects were divided into two groups (8 students per group). Eight students were tested with MWC. One of eight subjects had very good IT knowledge, 2 were good and 5 were average skill. Seven of eight subjects used computers for searching, education, entertainment and communication purposes. Four subjects had experience on conference program, Skype. The subjects were randomly divided into two groups, learning about autism topics using two different methods, face to face learning and distance learning. All subjects took the pre-test before learning. They studied about the autism fifteen minutes from presentation slide. After learning, they took the post-test. The learning contents and the test are included in Appendix B. We used the pre-test score to evaluate the knowledge base in autism of the subjects. There were 4 versions or sets of test. All four versions were based on the same set of twenty questions, but different groups of questions were selected for the pre-tests and post-tests. The pre-tests and post-tests each consisted of ten multiple choice questions. Four subjects were randomly assigned to each version of the test. A perfect score for the test was 10 points. We used the difference between pre-test and post-test score to evaluate the learning improvement. Finally, we designed a questionnaire using a 5-point Likert scale, where 5 is the highest score. The questionnaire contained six items as show in Table 5.2. The five possible responses were 5 - Strongly agree, 4 - Agree, 3 - Undecided, 2 - Disagree and 1- Strongly disagree. We grouped the items into three topics. Q1-Q3 measured usability, Q4-Q5 measured effectiveness and Q9 measured satisfaction. 50 Table 5.2 The Likert 5-Scale satisfaction questionnaire on 6 items Item Question Q1 The system is simple to use and user friendly Q2 Learning to operate the system is easy for me Q3 The system functions cover my needs Q4 I can use the system tools to communicate with others Q5 I understand about autism from learning through the system Q6 I am satisfied with the system The same environment was used for all subjects in experiment II. We used the same learning contents. Subjects who learned with MWC used the computer that had been prepared with the same essential programs and settings. Google Chrome was used as browser. The experimental procedure was started from dividing the subjects into two groups: Group A and B. Group A was face-to-face learning where the instructor was in the same room as the audience. Group B was distance learning where the instructor and audience were in the different room, using the MWC tools for communication. Both groups used the same instructor. English was the main language used in the presentation slide. However, the instructor briefed in English and described in Thai. The instructor was a master degree student in Computer Engineering Department KMUTT. Before he ran the experiment, he was briefed on the experiment steps but was not informed of the experiment objective. Also, he studied basic autism knowledge. He learned from presentation slide as same as the subjects. Then, the instructor was allowed to ask the questions about the autism material from the researcher of this study. Four subjects performed the experiment per session. Thus, there were two session using face to face learning and two using MWC. First, they took the pre-test before start to learning and then took the post-test after finished learning. Subjects in group A learnt in the same classroom. The lecture slide was presented on whiteboard via a projector. The instructor described about autism slide by slide in the front of classroom. After learning, subjects were allowed to ask the questions from the instructor directly. 51 Subjects in group B used the computers as a learning tool. The demo autism website integrated MWC tools was created. Subjects in group B accessed the autism website, logged in, and joined the room that instructor had already created. Before they started learning, the instructor used chat and video conference tool to communicate with the audience for checking the preparedness of communication tools. He also shared his screen by using desktop sharing tools. The subjects saw the presentation slide in their desktop sharing panel in full screen mode. They also heard voice via video conference tool. At the end, subjects were allowed to ask the question via chat or video conference tool. After subjects in group B finished, they answered items in the questionnaires. 5.2 Result and Discussion Based on the Design and Analysis of Experiments [24], Chi-square was used to evaluate whether observed difference of frequency between the groups were significant due to chance. The t-test was used to evaluate whether observed differences between the two groups. The paired t-test was also used as t-test but it used for dependent samples. ANOVA (Analysis of Variance) was used to evaluate whether observed difference of mean between more than two groups. In experiment I, Chi-square was used to observe the differences in ease of installation between MWC and OpenMeetings and also was used to evaluate the differences in the satisfaction questionnaire. In experiment II, the t-test was used to evaluate the basic knowledge before learning of group A and B. ANOVA was used to evaluate and observe the effectiveness of learning and an effect from pre-test and post-test score and any effect from the test version. We chose a significance level at 95% CIs (Confidence Intervals) for all analyses. The test statistic results are illustrated in Appendix B. 5.2.1. Experiment I For each trial in the experiment, we recorded the time, confusion and mistake in each installation step and the success. Table 5.3 shows the duration and confusion in each installation step of MWC and OpenMeetings. The average duration installation time was calculated from user who succeeded to install. The third step of OpenMeetings installation was downloading the installation file, which took a long time compared to 52 other steps. Thus, the durations across all subjects are very similar. Also, the mistakes in each installation step were calculated from user who succeeded installing. The raw data of both systems installation from checklist are shown in Appendix B. Table 5.3 Average durations and percent of users confused for each step Step OpenMeetings MWC Avg Duration (second) Mistake (%) Avg Duration (second) Mistake (%) 1 30 25% 109 18.75% 2 3 4 5 6 18 150 38 125 12.5% 31.25% 0% 37.5% 60 48 70 51 0% 6.25% 37.5% 0% 72 214 34 35 27 31.25% 23.08% 0% 0% 10% 70 121 459 38 20 25% 25% 37.5% 7.69% 0% 36 779 0% 23 1069 0% 7 8 9 10 11 Total To evaluate the difference of MWC and OpenMeetings, Chi-square was used for three tests. The first test was the number of subjects who succeeded and failed in the installation. The Chi-square showed that there was no difference between two systems in the frequency of success at Chi-sq < 0.000; P-Value = 1.000. The second test was the number of subjects who were confused in installing in any steps. The Chi-square showed that there was no difference between two systems in the frequency of confusions at Chi-sq = 0.183; P-Value = 0.669. From observation in each installation step, we found that the failure of installing MWC was caused from the mistake in first step that was entering the host URL. Subjects entered wrong URL from typing error while host URL is the important information that used for identification as mentioned in chapter 3. Moreover, it seems that the subjects with pattern A; install OpenMeetings first then install MWC failed to install MWC (3 of 16, while pattern B was only one subject). The data showed that three of eight subjects with pattern A failed to install MWC system. 53 The third test was the number of subjects who preferred MWC, OpenMeetings or thought both systems are the same in each question in the satisfaction questionnaire. Although, Chi-square showed that there was no different satisfaction between two systems at Chi-sq = 4.431; P-Value = 0.816. MWC did have a higher satisfaction frequency than OpenMeetings in every question as shown in Table 5.4 Table 5.4 Frequency of satisfaction between MWC and OpenMeetings OM Question preferred (Subjects) Same (Subjects) MWC preferred (Subjects) 3 6 7 Which system do you think is easier to install? 6 3 7 Which system do you think you can customize 3 5 8 2 6 8 5 5 6 Which system do you think has better documentation? more freely? Which system do you think has more flexibility of user? Which system do you prefer overall? Additionally, the t-test showed that there was no difference between two systems in the time of installation at T0 = -1.73; P-Value = 0.101. As mentioned that OpenMeetings is an OpenSource collaboration system which is currently in popular use. The results of experiment I suggest that MWC is as easy to install as OpenMeetings. 5.2.2. Experiment II For each trial in the experiment, we recorded pre-test/post-test scores and user’s rating of satisfaction. Table 5.5 shows the raw data of pre-test/post-test scores of Group A (distance learning with MWC) and B (face to face learning). It seems that nobody learned very well because the autism topic is harder to understand. There are many specific words in the medical field. Moreover, the learning time was short, so the subjects could not remember the deep detail. As a result, although ever subjects got a 54 better score on the post-test that the pre-test, the overall average score was quite low (lower than 50% correct in both group). T-test was used to evaluate the differences in knowledge base by comparing pre-test scores between Group A and B. The results show that there was no difference in initial knowledge of all subjects at T0 = 0.43; P-Value = 0.672. We used a 2x2 (pre/post test x presentation method) ANOVA to evaluate whether learning did take place and if so, whether the amount learned varied with presentation method. The ANOVA showed a significant main effect of pre-versus-post test, as expected (F=21.24, P-Value<0.000), but no effect of presentation method and no interaction. Table 5.5 Scores of each learning method for Group A and Group B Group A Face to face Mean (SD) B MWC Mean (SD) Subject Total Correctness score Improvement A1 A2 A3 A4 A5 A6 A7 A8 B1 B2 B3 B4 B5 B6 B7 B8 Pre-test 4 3 1 3 0 3 2 1 2.13(1.36) 2 2 4 2 2 1 3 3 2.38(0.92) Post-test 5 4 3 4 6 5 6 6 4.88 (1.13) 3 2 7 2 5 3 6 7 4.38(2.13) 1 1 2 1 6 2 4 5 1 0 3 0 3 2 3 4 Test Set Pre-test Post-test Set4 Set3 Set3 Set4 Set2 Set1 Set1 Set2 Set1 Set2 Set2 Set1 Set3 Set4 Set4 Set3 Set3 Set2 Set4 Set1 Set2 Set1 Set3 Set4 Set4 Set3 Set1 Set2 Set1 Set2 Set4 Set3 Furthermore, we were concerned that some test set might have been harder than others. This would probably increase the variance and reduce the chances of significant results. Thus, we used ANOVA on raw test scores with two factors: test set and pre-test/posttest score to observe an effect from test set. Two-way ANOVA shows that the test set did not a significantly affected the score at P-Value = 0.508. In contrast, pre-test/post- 55 test was significantly affected the score at P-Value < 0.000 as we expected. Moreover, there was no significant interaction between test set and pre-test/post-test. Table 5.6 Users’ ratings of satisfaction Satisfaction Mean Score The system is simple to use and user friendly 4.00 Learning to operate the system is easy for me 4.00 The system functions cover my needs 3.25 I can use the system tools to communicate with others 3.88 I understand about autism from learning through the system 3.63 I am satisfied with the system 4.13 Detail 1 2 3 4 5 6 Table 5.6 shows the user rating of satisfaction of using MWC. The satisfaction was based on a Likert scale. We used one sample t-test to see that user’s rating in each question was higher than 3 which is a neutral. The results showed that all questions were significantly higher than neutral except for the third question. In addition, the subjects gave additional opinion in free form. The comments were that sometimes the system prevented the users from joining the room. This because the error of system. However, at the end, users can join successful. Moreover, users wanted more entertainment function to increase the interest while learning. Our experiments suggest that MWC can be used for distance learning effectively without any significant difference from face-to-face communication. Moreover, users rate system usability and effectiveness as good. They were also satisfied with the system to a good extent. CHAPTER 6 CONCLUSION In this thesis, we have proposed a design of a new collaboration platform which is highly flexible and can be applied to serve different purposes without having to implement a new system for each additional specific requirement. MWC provides configurable tools for communication in the virtual space which can be easily integrated into the community’s own appropriate virtual environment. In summary, MWC platform provides privacy within the community and flexibility for collaborative systems, which enables easy-to-use online collaboration. MWC has a potential to be applied to fulfill different uses effectively for the autism community as demonstrated in section 3.6. Members can communicate and share information from different locations through the autism community website easily without having advanced IT knowledge. They have the privacy in using online collaboration with other members of their community. Java technology was used for implementation. We used Red5 as a Flash server for data streaming and wrote code in Action Script 3.0 to develop the client application. By using Red5 and Flash, we could create a real-time communication for two or more endusers to communicate. We created a prototype of chat tools, conference tool and desktop sharing tool that cover needs of communication. New virtual tools or versions of existing virtual tools can be easily added. The details of the implementation based on MWC framework were discussed in Chapter 4. The prototype was used for evaluating system effectiveness, as was discussed in Chapter 5. The experiment objective was to evaluate the system installation and to evaluate the use of system by end-users in terms of effectiveness, efficiency including usability and flexibility. The results showed that MWC was as easy to install as a popular competing system. Moreover, using MWC for distance learning was as effective as for face-to-face learning. The users were satisfied with using MWC system. MWC tools were designed independently. They require some time for installation and do not have cross interaction between tools. Moreover, performance and privacy issues 57 should be considered for system improvement. As experienced in current collaborative system, MWC bandwidth is limited due to the hardware performance. The efficiency of system will decrease if MWC are used by a large number of host applications at the same time. Load balancing or server farm can increase the capacity of the system. RTMPS or encryption/decryption technology can increase the system security. Other limitations of current version of MWC system are there is no persistent meeting room. User has to create a new meeting room every time to use, and user cannot be in more than one room at the same time. However, these problems can be fixed in the next version of implementation. REFERENCES 1 Mills, K.L., 2003, “Computer-Supported Cooperative Work”, Encyclopedia of Library and Information Science, pp. 666-677. 2 Shaffer, D.W. and Clinton K.A., 2005, “Why all CSL is CL: Distributed Mind and the Future of Computer Supported Collaborative Learning”, Proceedings of the 2005 Conference on Computer Support for Collaborative Learning: The Next 10 Years, Taipei, Taiwan, pp. 592-601. 3 Wang, L., et al., 2001, “A Web-based Collaborative Workspace Using Java 3D”, Proceeding of the sixth International Conference on Computer Supported Cooperative Work in Design, London, Ont, pp. 77-82. 4 Su, D., et al., 2005, “Application of Internet Techniques into Online Collaborative Design and Manufacture”, Proceedings of the Ninth International Conference on Computer Supported Cooperative Work in Design, Vol. 2, pp. 655-660. 5 Poonam S, T. and Bhirud, S.G, 2009, “Interactive Web Based Learning: Image Processing”, Proceeding of the International Conference on Application of Information and Communication Technologies, 2009, pp. 1-4. 6 Stahl, G. and Cakir, M.P., 2008, “Integrating Synchronous and Asynchronous Support for Group Cognition in Online Collaborative Learning”, Proceedings of the 8th International Conference for the Learning Science, Utrecht, The Netherlands, Vol. 2, pp. 351-358. 7 Tiwari, A. and Tiwary, A., 2010, “Imperative Web Conferencing Tools for Effective Distance Learning in an Enterprise”, Proceedings of the International Conference on Education and Information Technology (ICEIT), pp. V1-140 – V1-144. 59 8 Tiwari, A., Tiwary, A. and Bhatt, Y., 2010, “A Distributed Web Conferencing Architecture to Meet Inorganic Training Needs of an Enterprise”, Proceeding of the International Conference on Education and Management Technology (ICEMT), 2010, pp. 636-640. 9 Geer, D., 2005, “Developments Advance Web Conferencing”, IEEE Computer Society, Issue 2, pp. 14-17. 10 Cisco WebEx Web Conferencing [Online], Available: http://www.webex.com [2010, February 20]. 11 Dimdim [Online], Available:http://www.dimdim.com [2010, December 10]. 12 Yu, B. and Rui, Y., 2008, “Towards Good Web Conferencing System Design for Ubi-Media Collaboration”, Proceeding of the First IEEE International Conference on Ubi-Media Computing, pp. 213-218. 13 Wang, X. Wang, P. and Xie, J., 2009, “A New Design of Remote Diagnosis System for Medical Images”, Management and Service Science, 2009. MASS’09, pp. 1-3. 14 Koizumi, N., et al., 2009, “Construction Methodology for a Remote Ultrasound Diagnostic System”, IEEE Transactions on Robotics, Vol. 25, Issue 3, pp. 522538. 15 Huang W. et al., 2007, “Computer Supported Cooperative Work (CSCW) for Telemedicine”, Proceedings of the 2007 11th International Conference on Computer Supported Cooperative Work in Design, pp. 1063-1065. 16 OpenMeetings [Online], Available: http://code.google.com/p/openmeetings [2010, February 20]. 17 Melia, S., et al., 2010, “Architectural and Technological Variability in Rich Internet Applications”, IEEE Internet Computing, Vol. 14, Issue 3, pp. 24-32. 60 18 Chang-Gen, J., Ming-He, H. and Jie, T., 2009, “Design and Implementation of Video Conference System Based on Flex and J2EE”, Proceeding of the International Conference on Image Analysis and Signal Processing, 2009, pp. 184-186. 19 Zhang, M., Yang, G. and Huang, X., 2010, “Construction of On-line Video Conference System Based on Flex and FMS”, Proceeding of the International Conference on Computer Application and System Modeling (ICCASM), 2010, Vol.4, pp. V4-615. 20 Wang, D. and Xu, K., 2010, “Red5 Flash Server Analysis and Video Call Service Implementation”, Proceeding of the IEEE 2nd Symposium on Web Society (SWS), 2010, pp. 397-400. 21 Jin, F., 2010, “Design and Implementation Video on Demand System based on FMS+FLV”, Proceeding of the Fourth International Conference on Genetic and Evolutionary Computing (ICGEC), 2010, pp. 398-401. 22 Swindler S.D., Randall C.E. and Beisner II G.S.,2006, “An Application of Heuristic Techniques for Evaluation of Collaborative System Interfaces”, Proceeding of the International Symposium on Collaborative Technologies and Systems (CTS), Washington, DC, USA, pp. 232-239. 23 Flazr – a Java Implementation of Multimedia Streaming Protocols [Online], Available: http://flazr.com [2010, December 10]. 24 Montgomery, D.C., “Design and Analysis of Experiments”, 7th ed., John Wiley & Sons (Asia) Pte Ltd. APPENDIX A MWC USER AND IMPLEMENTATION MANUAL 62 MWC INSTALLATION MANUAL MWC is a new collaboration platform that provides communication tools and service to be integrated with web application easily. There are three main steps; registration, tool selection and MWC integration. Registration The registration is required before using MWC tools and services for identification when host application connects with MWC. The follow registration step as shown below 1. Go to MWC website and click “Sign up” Figure A.1 Welcome page 2. Enter Account information and Personal information, then click “Create new account” • Username – is an account name for accessing MWC website • E-mail Address – is used for activating new account • Firstname – name of registrant • Surname – last name of registrant • Gender • Country • URL – url of host application 63 Figure A.2 Create new account 3. After finish creating a new account, confirmation email will send to email address that registered. User just confirms the email to activate account then web page will be redirected to MWC login page. (If user forgets to activate account, user will not able to access MWC website to do next step.) Figure A.3 Activate your account 4. In MWC login page, user click “Login” button to access the site. This step allow user to change password. 64 Figure A.4 Change password Tool Selection Once user has registered already then follow tool selection step as shown below 1. Go to MWC website and click “Login” 2. Enter username and password then click “Login” button 3. Once user have accessed website, it will shows user information that can be edited Figure A.5 User information 4. Click “Home”, the page will show name list of tool selection. If user hasn’t selected any tools, it will show nothing. Then click “Edit tools”. 65 Figure A.6 Tool selection page 5. In tool selection page, it shows list of available tools. User chooses any tools that he/she need. User can choose more than one tool. Next, enter the session time out which is a session time of host application. Then click “Submit” button. Figure A.7 Selecting tools 6. After click submit button, MWC system will provide the installation files and Flash objects of selected tools in the web page for downloading Figure A.8 Download file page 7. User download all files into host server 66 MWC Integration Process Once user has downloaded MWC installation files and Flash objects and has put these files in host server already. Then follow installation step as shown below 1. Run the installation file via web browser. The welcome page of installation will show a current host environment. Then click “Next” Figure A.9 Welcome page of installation file 2. Enter the database information and click “Send”. Then the necessary tables are created automatically in the host application’s database. Figure A.10 Database information form 67 • Hostname – e.g. localhost • Port – enter port of host database e.g. mysql use port 3306 • Database Name • Username – enter database username • Password – enter database password 3. Embed the tools in host source code. An example of embedding Flash object is shown below <object width="550" height="400"> <param name="movie" value="IM.swf"> <embed src="IM.swf" width="310" height="400"> </embed> </object> Note that a basic in web development is required. Moreover, host application can even make the own layout by adding the scripts such as javascript or CSS style. 4. Pass the variable, username into Flash object through FlashVars easily. The code embedding depends on the user management of each host applications. An example is shown below <object width="150" height="400" id="RoomManager" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="allowFullScreen" value="true" /> <param name="movie" value="RoomManager.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <param name="FlashVars" value="username=<?php echo $user->name; ?>" /> <embed src="RoomManager.swf" quality="high" bgcolor="#ffffff" width="150" height="400" name="RoomManager" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" FlashVars="username=<?php echo $user->name; ?>"/> </object> Suppose Alice, is her username login to host application website, she will see all virtual tool; chat tool, video conference and room manager. But chat tool and video conference are not available at this time. Alice has to create a new room or join the existing room. Then, she will be allowed to use other tools. 68 IMPLEMENTING AND ADDING A NEW TOOL INTO MWC GUILDELINES According to the MWC implementation, it mainly uses the open source software. As the result, the developer can implement a new tools or a new version of existing tool and add into MWC system easily. The implementation must be according to MWC standard as mentioned in Chapter 4. First of all, the new tool must implement based on Flash (action script 3.0) and supporting to connect with Red5. Then, it should have main classes such as LocalConnection class for room manager connecting, NetStatusEvent class for reporting Red5 connection status, etc. We do not describe more detail in the implementing tool because there are many examples of creating Red5 application on the internet that the developer can find and follow. Once we have a new tool as the original source code, action script (.as) files, we integrate the new tool into the MWC website by put the file in the MWC server. Then go to MWC website to add the form of the new tool. Next, add a new command for compile action script file to Flash movie file (.SWF). This process uses the Flex SDK for compiling. The example command of room manager is shown below C:\>'C:\AppServ\www\flex_sdk\bin\mxmlc.exe ‐use‐network=true –o } C:\AppServ\www\download\1\src\RoomManager.swf ‐file‐specs " C:\AppServ\www\download\1\src\RoomManager.as" However, Drupal cannot execute the command directly. Thus, we use the PHP function for executing, exec( ) function, as shown below. After that, the .SWF file will store in each host application’s folder in MWC server. $cmd ='C:\\AppServ\\www\\flex_sdk\\bin\\mxmlc.exe ‐use‐network=true ‐o C:\\AppServ\\www\\download\\'.$uid.'\\src\\RoomManager.swf ‐file‐specs C:\\AppServ\\www\\download\\'.$uid.'\\src\\RoomManager.as '; exec($cmd); 69 When the new tool or the new version of existing tool comes out, the developer of host application will receive the notice email. If they want to the new tool or update the new version, they go to the MWC website and download the new one easily that is the same as tool selection step. DATABASE DESIGN The MWC website was developed by using CMS (Content Management System) platform, Drupal. Thus, the database design of MWC is according to Drupal format. However, we added the necessary components (a registration and a tool selection form) to support the using of MWC. There are four main tables that involve with registration and tool selection as shown in Figure A.11. A users table is a Drupal registration format for storing the account information of registrant. A profile_value table stores registrant personal information such as name or host URL. A webform_submissions table stores host information of registrant. A webform_submitted_data table stores information about tool selection of registrant such as tool name and session time out. Figure A.11 MWC database 70 As mentioned that there is installation process before using MWC system in host application. During installation step, it requires a database configuration to create new tables. The tables are used for mapping id and name between host application and MWC server. There are three tables to support a using of MWC as shown in Figure x.x Figure A.12 Host application database A mwc_install table is used for checking the state of installing. In other words, it is used to verify the success of installing. A mwc_room table stores a room id and a room name of collaboration room. A mwc_user table stores a user id and a username. The room id and the user id are encrypted with MD5 (Message-Digest Algorithm) before storing in database. MD5 is a cryptographic hash function that produces a 128-bit hash value. With the encryption, it blinds the real user from MWC. As a result, MWC do not know the real user while sending or receiving the message. Therefore, the communication is more secure. APPENDIX B EXPERIMENTAL MATERIALS AND RESULTS 72 Open Meetings Installation Instruction 1. Go to http://code.google.com/p/openmeetings and download OpenMeetings (openmeetings_1_6_1_r3675.zip) 2. Unpack it and copy it somewhere in your system. Do not start it from your Desktop. Thus, you will have a folder openmeetings_1_6_1_r3675 now. 3. Prepare Database setting: Create new database “db_openmeetings” (locahost/phpMyAdmin) Go to openmeetings_1_6_1_r3675/red5/webapps/openmeetings/conf/hibernate.cfg .xml. Using a text editor to modify the following configure value in hibernate.cfg.xml 4. Start Red5 - run openmeetings_1_6_1_r3675/red5/red5.bat Hibernate will automatically generate tables in your database. If there is something wrong with your database values you will see errors in Red5 log file. (Red5 log file openmeetings_1_6_1_r3675/red5/log) 5. Go to your database to check the creating of new tables after you start Red5 (localhost/phpmyadmin) 6. Go to http://localhost:5080/openmeetings/install and fill in the form, then click Submit. 7. After running the installer all basics are installed. Now login and go to Meeting room. Type the text “Hello World” in chat and also try to use video conference. Figure B.1 OpenMeeting installation manual 73 MWC Installation Instruction 1. Go to http://202.44.12.119/drupal for registration. Click “Sign up” and enter real email and real URL (use http://127.0.0.1/myapp/). Then go to your email to activate your account. Note: myapp is a name of your application in web server (appserv/www/myapp) so you can access you website with URL http://127.0.0.1/myapp/ 2. Login to MWC website to select tools. 3. Once you are logged in to the MWC website. Click “Home” link and click “Edit tools”. In tools selection page, choose chat and video. Enter session time of your application (Use default 1200). Click “Submit” button. 4. Download room manager object, MWC install file and all selected tool objects. Put those files in web server (appserv/www/myapp) according to the registered URL. 4.1. Create new database “db_mwc” (localhost/phpMyAdmin) 4.2. Install MWC files: Unzip mwctools.zip file (use Extract here), run it (http://127.0.0.1/ myapp/mwctools/install.php) and follow installation step. (Note that mysql uses port 3306) 4.3. Embed SWF files (room manager, chat and video object) into index.html file. An example of embedding object is shown below. 5. Go to web page (127.0.0.1/myapp /index.html) that has MWC tools. Create a new room “myroom”. Type text “Hello world” into Instant Messenger panel. Click “Enable” and click “On” in video panel to broadcast your video. Figure B.2 MWC installation manual 74 Figure B.3 Autism Test Set #1 75 Figure B.4 Autism Test Set #2 76 Figure B.5 Autism Test Set #3 77 Figure B.6 Autism Test Set #4 78 Figure B.7 Questionnaire: System installation 79 Figure B.8 Satisfaction questionnaire 80 Figure B.9 Autism Learning I Figure B.10 Autism Learning II 81 Figure B.11 Autism Learning III Figure B.12 Autism Learning IV 82 Figure B.13 Autism Learning V Figure B.14 Autism Learning VI 83 Figure B.15 Autism Learning VII Figure B.16 Autism Learning VIII 84 Figure B.17 Autism Learning IX Chi-Square Test: Success, Fail Expected counts are printed below observed counts Chi-Square contributions are printed below expected counts Success 10 10.00 0.000 Fail 6 6.00 0.000 Total 16 2 10 10.00 0.000 6 6.00 0.000 16 Total 20 12 32 1 Chi-Sq = 0.000, DF = 1, P-Value = 1.000 Figure B.18 Experiment I: Chi-Square with two factors OM VS MWC and Succeed VS Fail 85 Chi-Square Test: Confused, Not confused Expected counts are printed below observed counts Chi-Square contributions are printed below expected counts Confused 13 12.50 0.020 Not confused 3 3.50 0.071 2 12 12.50 0.020 4 3.50 0.071 16 Total 25 7 32 1 Total 16 Chi-Sq = 0.183, DF = 1, P-Value = 0.669 2 cells with expected counts less than 5. Figure B.19 Experiment I: Chi-Square with two factors OM VS MWC and Confused VS Not Confused Chi-Square Test: OM prefered, Same, MWC prefered Expected counts are printed below observed counts Chi-Square contributions are printed below expected counts OM prefered 3 3.80 0.168 Same 6 5.00 0.200 MWC prefered 7 7.20 0.006 2 6 3.80 1.274 3 5.00 0.800 7 7.20 0.006 16 3 3 3.80 0.168 5 5.00 0.000 8 7.20 0.089 16 4 2 3.80 0.853 6 5.00 0.200 8 7.20 0.089 16 5 5 3.80 0.379 5 5.00 0.000 6 7.20 0.200 16 Total 19 25 36 80 1 Total 16 Chi-Sq = 4.431, DF = 8, P-Value = 0.816 5 cells with expected counts less than 5. Figure B.20 Experiment I: Chi-Square test of satisfaction questionnaire OM Preferred VS Same VS MWC Preferred 86 Two-Sample T-Test and CI: A-Pre, B-Pre Two-sample T for A-Pre vs B-Pre A-Pre B-Pre N 8 8 Mean 2.13 2.375 StDev 1.36 0.916 SE Mean 0.48 0.32 Difference = mu (A-Pre) - mu (B-Pre) Estimate for difference: -0.250 95% CI for difference: (-1.491, 0.991) T-Test of difference = 0 (vs not =): T-Value = -0.43 0.672 DF = 14 Both use Pooled StDev = 1.1573 P-Value = Figure B.21 Experiment II: T-Test of pre-test score between group A and B Two-way ANOVA: Point versus Group, Test Types Source Group Test Types Interaction Error Total S = 1.458 DF 1 1 1 28 31 SS 0.125 45.125 1.125 59.500 105.875 R-Sq = 43.80% MS 0.125 45.125 1.125 2.125 F 0.06 21.24 0.53 P 0.810 0.000 0.473 R-Sq(adj) = 37.78% Figure B.22 Experiment II: Two-way ANOVA with two factors to see the effect of pre-test/post-test and effect between groups Two-way ANOVA: Score versus SET, Test Types Source SET Test Types Interaction Error Total S = 1.465 DF 3 1 3 24 31 SS 5.125 45.125 4.125 51.500 105.875 R-Sq = 51.36% MS 1.7083 45.1250 1.3750 2.1458 F 0.80 21.03 0.64 P 0.508 0.000 0.596 R-Sq(adj) = 37.17% Figure B.23 Experiment II: Two-way ANOVA with two factors to see the effect of pre-test/post-test and effect between each test set 87 One-Sample T: Q1, Q2, Q3, Q4, Q5, Q6 Test of mu = 3 vs > 3 Variable Q1 Q2 Q3 Q4 Q5 Q6 N 8 8 8 8 8 8 Mean 4.000 4.000 3.250 3.875 3.625 4.125 StDev 0.535 0.756 0.886 0.835 0.744 0.354 95% Lower Bound 3.642 3.494 2.656 3.316 3.127 3.888 SE Mean 0.189 0.267 0.313 0.295 0.263 0.125 T 5.29 3.74 0.80 2.97 2.38 9.00 P 0.001 0.004 0.226 0.010 0.025 0.000 Figure B.24 Experiment II: One sample t-test of each satisfied question Table B.1 OpenMeetings installation performance checklist Subject Gender Exp. Duration(milisecond)/Confusion 1 2 3 O1 O2 O3 O4 O5 F M F F F Y N N N N 63 10 240 40 47 14 10 244 225 19 O6 O7 O8 M1 M2 M F F M N N N N 14 212 65 52 19 29 10 40 W F F M M M Y Y Y N Y 35 28 83 25 14 15 9 13 9 10 W M F Y Y 23 18 10 9 M3 M4 M5 M6 M7 M8 W W W 4 5 6 7 8 9 10 11 Total Time 78 54 48 46 14 96 70 439 902 666 61 64 53 84 79 203 452 275 150 183 25 38 25 34 38 32 30 129 7 60 22 109 14 23 28 30 88 76 19 22 1,212 1,367 1,719 1,920 1,190 12 28 113 127 104 1,245 313 124 75 137 140 40 277 2,441 2,252 2,270 1,142 127 24 24 10 12 316 130 153 190 122 182 174 41 48 32 155 134 32 42 10 13 1,184 1,634 1,148 1,480 1,000 20 20 142 125 65 62 194 217 41 75 40 31 60 10 22 95 947 900 410 18 18 7 15 206 222 40 29 51 14 88 Table B.2 MWC installation performance checklist Subject Gender Exp. O1 O2 O3 F M Y N 1 95 100 2 23 27 3 35 26 4 54 76 5 86 94 6 25 16 7 214 99 8 333 310 F F F M F N N N N N 210 108 99 80 130 20 57 58 25 96 10 34 45 112 46 20 38 98 96 50 170 20 14 7 20 90 101 72 395 45 120 89 118 410 74 552 974 316 438 986 20 19 25 54 35 25 M1 M2 M3 M4 F M F F M N N Y Y Y 130 110 328 116 138 112 113 62 81 50 59 57 33 70 56 100 140 107 72 218 20 100 15 21 59 340 30 419 129 84 253 108 131 97 177 559 502 589 517 493 129 40 46 39 12 53 12 14 15 18 16 3 23 33 1,803 1,225 1,744 1,180 1,336 M5 M6 M7 M8 M M M F N Y Y Y 45 60 78 144 91 69 50 45 39 42 82 31 70 64 40 60 35 29 133 66 90 53 37 86 102 72 210 102 526 320 460 340 26 31 40 26 9 15 20 45 16 23 19 35 1,049 778 1,169 980 O4 O5 O6 O7 O8 Duration(milisecond)/Confusion 9 69 57 10 5 5 11 24 26 Total Time 963 1,307 1,470 1,424 884 1,609 1,828 CURRICULUM VITAE NAME Miss Ploypailin Intapong DATE OF BIRTH 30 August 1986 EDUCATIONAL RECORD HIGH SCHOOL BACHELOR’S DEGREE MASTER’S DEGREE PUBLICATION Major Science-Mathematics, Grade 12 Qualification, Uttaradit School, 2004 Bachelor of Engineering (Computer Engineering) King Mongkut’s University of Technology Thonburi, 2008 Master of Engineering (Computer Engineering) King Mongkut’s University of Technology Thonburi, 2010 Intapong P., Settapat S., Kaewkamnerdpong B., and Achalakul T., 2010," Modular Web-Based Collaboration Platform", The International Journal of Advanced Science and Technology, Vol. 22, pp. 37-48, September. Intapong P., Settapat S., Kaewkamnerdpong B., and Achalakul T., 2010, "The Design of Modular WebBased Collaboration," Proceeding of the Communications in Computer and Information Science, Volume 78, Security-Enriched Urban Computing and Smart Grid, Daejeon, Korea, pp. 24-33.