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.