DESIGN AND IMPLEMENTATION
OF THE ADVANCED TECHNOLOGY FOR REMOTE LABORATORY
THESIS
Presented in Partial Fulfillment of the Requirements for
the Master of Science Degree in the Graduate School
of Texas Southern University
By
Ning Wang, B.S.
Texas Southern University
2014
Approved By:
____________________________________
Chairperson, Thesis Committee
____________________________________
Dean, The Graduate School
Approved By:
______________________________________
Wei Li, Ph.D., Chairperson, Thesis Committee
_____________
Date
______________________________________
Xuemin Chen, Ph.D., Co-Advisor
Graduate School Representative
_____________
Date
______________________________________
Aladdin M. Sleem, Ph.D., Committee Member
_____________
Date
______________________________________
Miao Pan, Ph.D., Committee Member
_____________
Date
ii
TABLE OF CONTENTS
Page
LIST OF TABLES .............................................................................................................. v
LIST OF FIGURES ........................................................................................................... vi
LIST OF ABBREVIATIONS .......................................................................................... viii
VITA .................................................................................................................................. ix
ACKNOWLEDGMENTS .................................................................................................. x
CHAPTER
1 INTRODUCTION ........................................................................................................... 1
1.1 Background ............................................................................................................... 1
1.2 Motivation ................................................................................................................. 4
1.3 Objective ................................................................................................................... 7
1.4 Research Outcomes ................................................................................................... 7
1.5 Outline ....................................................................................................................... 8
2 A NOVEL UNIFIED FRAMEWORK FOR REMOTE LABORATORY
DEVELOPMENT ............................................................................................................... 9
2.1 Previous Works ......................................................................................................... 9
2.2 Introduction of a Novel Unified Framework........................................................... 11
2.3 Vital Improvement of the Novel Unified Framework ............................................. 14
2.3.1 The Node-HTTP-Proxy for The Network Port Sharing ................................... 15
2.3.2 Real-Time Experiment Video Streaming Approach ........................................ 16
2.4 New Isolated Experiment Network Design for Remote Laboratory ....................... 17
2.5 New Authentication URL Design for Remote Experiment Webpage .................... 17
2.6 Remote Experiment Scheduler and User Management System .............................. 18
3 A NOVEL REAL-TIME EXPERIMENT VIDEO TRANSMISSION APPROACH ... 19
3.1 Previous Works ....................................................................................................... 19
3.2 Proposed Approach ................................................................................................. 20
3.3 Architecture of the Novel Approach ...................................................................... 22
3.3.1 Streaming Protocol Introduction ...................................................................... 23
3.3.2 The FFmpeg for the Real-Time Video Encoder ............................................... 27
iii
3.3.3 The Real-Time Video Segment Module Introduction ...................................... 29
3.3.4 Web Server Configuration and Video Transmission ........................................ 31
3.4 The Novel Real-Time Video Transmission Approach Implementation ................. 33
4 A NOVEL REAL-TIME EXPERIMENT DATA TRANSMISSION APPROACH .... 34
4.1 Proposed Novel Approach ...................................................................................... 35
4.1.1 The Node-HTTP-Proxy Introduction ............................................................... 36
4.1.2 The Server-Side Software System Introduction ............................................... 39
4.1.3 The Real-Time Web Application Introduction................................................. 42
4.2 Approach Implementation ....................................................................................... 45
4.2.1 Node-HTTP-Proxy Configuration .................................................................... 45
4.2.2 LabVIEW to Node.js via Socket.IO ................................................................. 47
5 THE IMPLEMENTATION OF TWO REMOTE EXPERIMENTS ............................. 49
5.1 The Implementation of the Two Remote Experiments ........................................... 49
5.1.1 The Remote SMA Experiment ......................................................................... 49
5.1.2 The Remote SVP Experiment........................................................................... 52
5.1.3 The User Interface Development ...................................................................... 54
5.1.4 Server Side Integration ..................................................................................... 56
5.1.5 Integrate LtoN Module to Two New Remote Experiment ............................... 57
5.2 Experiment Data Analysis....................................................................................... 58
5.3 Advantages of New Remote Experiments based on the Novel
Unified Framework ....................................................................................................... 61
6 CONCLUSION AND FUTURE WORKS .................................................................... 64
6.1 Conclusion.............................................................................................................. 64
6.2 Future Works .......................................................................................................... 65
REFERENCES ................................................................................................................. 66
iv
LIST OF TABLES
Table
Page
1 Challenges in remote laboratory development. ............................................................... 6
2 Research outcomes........................................................................................................... 8
3 Technology/protocol/software list of the new framework. ............................................ 12
4 The comparison of main video streaming transmission protocol. ................................. 24
5 Technology/protocol/software list of the SMA client web application. ........................ 55
6 Technology/protocol/software list of the SMA server application. .............................. 57
7 Technology/protocol/software comparison between two solutions ............................... 61
8 The advantages of the new remote SMA experiment. ................................................... 62
v
LIST OF FIGURES
Figure
Page
1 System architecture of Comet solution (Published at the World
Congress on Engineering Education 2013)............................................................... 10
2 The architecture and data transmission flow of the new
framework. .................................................................................................................. 13
3 The new remote laboratory solution network architecture. .......................................... 14
4 Scheduler, experiment conflict control and experiment
management page screenshots. ................................................................................. 18
5 The working process of the new real-time video transmission
approach. ..................................................................................................................... 21
6 The architecture of the novel real-time video transmission
solution........................................................................................................................ 23
7 HLS basic configuration (Published at HLS protocol draft in
IETF 2012 ). ................................................................................................................ 26
8 FFmpeg trans-coding process. ..................................................................................... 28
9 Segment software package working process. ............................................................... 31
10 The architecture of the novel real time experiment control
commands and data transmission solution.................................................................. 34
11 The new data transmission working process. .............................................................. 36
12 Node-HTTP-proxy deployment principle. ................................................................... 38
13 Node.js architecture. ................................................................................................... 40
14 Socket.IO working process. ......................................................................................... 43
15 Macro and micro views of SMA spring deformation and
transformation. ............................................................................................................ 50
16 SMA experiment device. ............................................................................................. 52
17 Sample paradigms of the new SMA experiment user interface. .................................. 56
vi
18 The diagram of bridge experiment. .............................................................................. 53
19 SVP experiment device ................................................................................................ 54
20 Sample paradigms of the new SVP experiment user interface. ................................... 56
21 Arbitrary displacement control (with amplitude of 1.205 in) in
remote SMA experiment. ............................................................................................ 59
22 DC voltage of 15 V in square waveform applied on SMA wire
with frequency of 0.01 Hz. ......................................................................................... 60
23 AC voltage of 15 V in sinusoidal waveform applied on SMA
wire with frequency of 0.025 Hz (displacement change in
voltage series). ............................................................................................................ 60
24 Screenshots on PC and portable devices...................................................................... 63
vii
LIST OF ABBREVIATIONS
AJAX
Asynchronous JavaScript and XML
CSS
Cascading Style Sheets
CDN
Content Delivery Network
GUI
Graphical User Interface
HLS
HTTP Live Streaming
HTML
Hyper Text Markup Language
HTTP
Hypertext Transfer Protocol
JSON
JavaScript Object Notation
LabVIEW
Laboratory Virtual Instrument Engineering Workbench
LtoN
LabVIEW to Node.js
MIME
Multipurpose Internet Mail Extensions
MJPEG
Motion Joint Photographic Experts Group
OS
Operation System
REST
REpresentational State Transfer
RTSP
Real-time Streaming Protocol
RTMP
Real-time Message Protocol
SMA
Shape Memory Alloy
SVP
Smart Vibration Platform
SOAP
Simple Object Access Protocol
XML
Extensible Markup Language
URL
Uniform Resource Locator
UDP
User Datagram Protocol
viii
VITA
October 14, 1978 ……………………. Born – Lanzhou, Gansu, China
1998-2002
……………………. B.S., China Agriculture University
Beijing, China
2005-2008
……………………. M.S., Hong Kong Polytechnic University
Hongkong, China
2012-2014
……………………. M.S., Texas Southern University
Houston, Texas, USA
Major Field ……………………. Computer Science
ix
ACKNOWLEDGMENTS
In fall 2012, I enrolled in the Computer Science graduate program of Texas
Southern University (TSU). Pursuing the graduate education at TSU is such a meaningful
journey, and I am so proud of my demonstrated courage, perseverance, ingenuity and
inspiration at TSU. I express my sincere appreciation to the following people: my coadvisor, Dr. Xuemin Chen, who is a kind and strict tutor, and always taught me the
earnest work attitude and realistic spirit in research through engineering perspective, and
supports me so much in my research and life; my advisor, Dr. Wei W. Li, who is a
perfect and professional scholar on Computer Science and always provided me guidance
and support.
I would like to appreciate Dr. Gangbing Song, a professor at University of Houston
(UH), and Dr. Hamid Parsaei, a professor at Texas A&M University at Qatar (TAMUQ),
who are the Lead PI and Co-lead PI of project “Hands-on Laboratory via Internet-To
Develop a Unified Remote Laboratory Framework For Cross Nation Engineering
Education ” which I have been working on. They also gave me very strong support in my
research. I am also grateful to my colleagues, Ming Bao who is a graduate student at TSU,
and Jun Weng who is a graduate student at UH, for the helps they provided in my
research.
This thesis is based on the research supported by Qatar National Research Fund
(Grant No. NPRP 4-892-2-335). Thanks the Qatar National Research Fund support my
research and NSF CREST Center for Research on Complex Networks (Grant No.
1137732) for providing me the financial support as a Graduate Research Assistant.
x
Finally, I especially appreciate my wife's strong support for my study and research,
which greatly strengthens my heart and provide me impetus to move forward and become
an expert in my research area.
xi
DESIGN OF THE ADVANCED TECHNOLOGY FOR REMOTE
LABORATORY DEVELOPMENT
By
Ning Wang, B.S.
Texas Southern University, 2014
Professor Wei Li, Advisor
Associate Professor Xuemin Chen, Co-Advisor
Remote laboratory (RLab) is the use of telecommunications to remotely conduct
real experiments, and also is an inevitable necessity for Internet enabled education in
Science, Technology, Engineering, and Math (STEM) fields due to their effectiveness,
flexibility and cost savings. Currently, plenty of remote experiments have been developed
based on various methods. However, most of them need to install some external software
plug-in components to address different platforms and network firewalls, which
negatively impact the utilization of the remote laboratories. To achieve the remote
laboratory without the need of any extra plug-in, we designed and implemented a unified
remote laboratory framework in our previous works. A Comet solution via Socket.IO
which is the package of Node.js is implemented in the server side, and a new web socket
protocol which lets the experiment communicate with Socket.IO is created for the
workstation. With the Comet solution, the real-time experiment live streaming video is
transferred via network port 1026 and the real-time control command and experiment
1
2
data are transferred via network port 1029. Consequently, the network firewall issue still
can’t be resolved in the Comet solution.
To resolve all of issues found in the previous works and integrate all of
improvement for the unified framework, we propose a novel unified framework for the
remote laboratory development. The novel unified framework includes three application
packages, client web application, server application and experiment control application.
The client web application uses the Web 2.0 Technology which includes HyperText
Markup Language (HTML), Cascading Style Sheets (CSS), and JQuery/JQuery-Mobile
JavaScript libraries. In addition, the Mashup technology for user interface integration is
employed. The server application is directly built on the top of MySQL Database,
Apache web server engine and Node.js web server engine. The experiment control
application uses Web Service technology that is based on the LabVIEW (Laboratory
Virtual Instrumentation Engineering Workbench) and runs in workstation. To implement
the real-time communication between each application, we use JavaScript Object
Notation (JSON) and Socket.IO which was developed based on web socket protocol to
implement the communication module. To solve the traversing network firewalls issue,
we integrate one core component, Node-HTTP-Proxy, in our current framework to share
network port 80. With this solution, we can achieve real-time remote experiment live
streaming video transmission and real-time experiment data transmission traversing the
network firewalls. With the novel unified framework, we implement two important
remote mechanical engineering experiments, remote Shape Memory Alloy (SMA)
experiment and remote Smart Vibration Platform (SVP) experiment.
3
With the remote laboratory which is enabled by the novel unified framework, the
terminal users can use the real-time remote experiments on the most of popular web
browsers without the firewall issues and the need for third party plug-in. This novel
unified framework will significantly benefit the remote laboratory development in future.
CHAPTER 1
INTRODUCTION
1.1 Background
Information technology has had a great impact on education, by providing
additional teaching and researching strategies such as online learning, online researching,
etc. The 2013 Sloan survey of online learning revealed that the proportion of all students
taking at least one online course is at an all-time high of 32 percent. This survey of more
than 2500 colleges and universities in United States found that over 6.7 million students
were taking at least one online course, an increase of 570,000 students over the previous
year (Allen and Seaman, 2013). To provide such online courses, remote access and
control laboratory equipment are inevitably necessary.
During the last decades, remote laboratories have been introduced into
engineering education processes as well as integrated within e-learning frameworks
offered to engineering and science students. It is not only personalizing the learning
pathways, but also reduces the costs significantly and makes lab experiments available
almost at anytime and anywhere (Gomes and Bosgoyan, 2009; Rodriguez-Andina,
Gomes and Bogosyan, 2010). Remote laboratory, by definition, is a laboratory which lets
the user to conduct experiment remotely through the Internet, and it accessible through
the Internet can resolve cost and access constraints as they can be used at flexible time
and from various locations (Melkonyan, Gampe, Pontual and Huang, 2014). Compared
to traditional hands-on experiments, experiments operated remotely over the Internet
offer many advantages. One of these benefits is the capability to handle a large number of
students to conduct experiments through scheduling. The remote laboratory allows a
1
2
workaround for complex logistics, such as staff, space, scheduling, budget, and
commuting. The remote laboratory equipment can always be made available to students,
who may conduct the experiments from any Internet accessible devices. Remotely
controlled laboratories could set the stage for shared infrastructure between departments
and colleges, as well as among different institutions around the world. The capability to
share experiments makes providing experiments significantly more affordable. Moreover,
a substantially increased number of experiments could be available for use, including
experiments involving expensive equipment, rare materials and in remote locations.
Furthermore, in some societies where male and female student access different campuses,
such remote laboratories can avoid laboratory facility duplication, offering the same
remote experiments for both genders (Khalil et al., 2009).
In the last decades, the engineering education community has carried out
numerous initiatives to develop and implement remote laboratory activities in
engineering education. This trend resulted concomitantly from the availability of
innovative software packages for instrumentation and simulation, as well as the necessity
to better support active and collaborative learning. In these solutions for the remote
laboratory development, there are mainly two kinds of system architecture, Client-Server
architecture and Browser-Server architecture. In the early stage of remote laboratory
development, Client-Server architecture software system is used for achieving the highperformance real time experiment data transmission (Li, Huai and Bhargava, 1995; Gillet,
Salzmann, Longchamp and Telepresence, 1997). One of the popularly deployed
technologies at that time for remote panel over the Internet is National Instrument’s
LabVIEW (Laboratory Virtual Instrument Engineering Workbench) (N. Duro, R.
3
Dormido, H. Vargas, S. Dormido-Canto 2008). Currently, with Client-Server architecture,
some other new integrated learning environments for remote experimentation were
developed based on Web services and .NET remote services. These new learning
environments were deployed for students in disparate locations to simultaneously and
collaboratively complete complex experimental exercises (Callaghan, Harkin, McColgan,
McGinnity and Maguire, 2007).
With the development of computer technology, the Browser-Server architecture
technology is becoming more stable. Especially, the REST (REpresentational State
Transfer) provides a lightweight protocol accessible to a wide variety of clients. To adopt
the Browser-Server architecture, LabVIEW integrated a new feature to interact with the
Virtual Instruments by using the RESTful web services technology. This architecture
does not require complex message passing and provides a simple interface for the user to
use Web services in LabVIEW. However, it requires the client interface to be developed
using different technologies, such as LabVIEW plug-in, Flash plug-in, etc (Olmi, Cao,
Chen and Song, 2011). In addition, as the number of remote experiments increases, the
software is not capable of handling multiple users with multiple resources.
Consequently, a unified framework for remote laboratory experiments
development was proposed in order to allow the set up of a distributed network of online
experiments that work in any Internet browser without the need of any additional plug-in
(Olmi, Chen and Song 2011). Nevertheless, some new challenges still were faced during
the unified framework development and deployment. The real-time communication
between browser and server, and traversing network firewall are two critical issues we
strived to resolve.
4
1.2 Motivation
In the remote laboratory research, there already are many teams working in this
field. They have made many excellent and significant research achievements. Some
projects and achievements in different organizations and universities are listed in
following:
1). The LiLa (Library of Labs) project is from the alliance of the European eight
universities and three enterprises. The goal of this project is the composition and
dissemination of a European infrastructure for mutual exchange of experimental setups
and simulations, specifically targeted at undergraduate studies in engineering and science
(Richter, Boehringer and Jeschke, 2009). In LiLa project, there are virtual laboratories
(simulation environments) and remote laboratories (real laboratories which are remotely
controlled via the Internet). For the remote laboratories implementation, the LiLa project
mainly through a browser plug-in and gain control over all devices. It is the BrowserServer architecture remote laboratory system with plug-in.
2). The NetLAB project is funded by the School of Electrical and Information
Engineering in the Division of Information Technology, Engineering and the
Environment, University of South Australia. The main goal of the NetLab project was to
create a laboratory experience that would allow students to perform these common
experiments on any PC, and have it feel as close as possible to using a real
laboratory. NetLAB is designed for learning computer networks and doing research. It is
the Client-Server architecture software and uses Netkit/UML emulated networks software
package with a GUI for creating and operating network configurations. NetLAB provides
an oracle that monitors, diagnoses and explains network behavior.
5
3). The iCampus iLabs project is from the Massachusetts Institute of Technology.
The Massachusetts Institute of Technology’s iLab project has developed a distributed
software toolkit and middleware service infrastructure to support Internet accessible
laboratories and promote their sharing among schools and universities on a worldwide
scale. The iLab is the remote laboratory based on Client-Server Architecture.
4). The UTS Remote Labs project is developed by the University of Technology
Sydney (UTS). UTS Remote Labs is part of Lab share, an Australian Government funded
project that aims to create a national network of shared, remotely accessible laboratories.
It is also the Client-Server architecture software, and a remote laboratory consists of
experiment apparatus that can be remotely monitored and controlled over the Internet.
The students can control equipment located in universities and conduct experiments from
the school science classroom.
5). The remote laboratory is developed by the research team in Smart Materials
and Structure Laboratory (SMSL) at University of Houston. The goal of this project is to
provide users with an interface that will work in most Internet-enabled web browsers
without the need to install most of software plug-in (Olmi, Cao, Chen and Song, 2011).
They proposed a unified framework for remote laboratory development and it is the
Browser-Server architecture software system, and includes three sections: web side, web
server, and experiment server. Nevertheless, the real-time experiment video and real-time
experiment data transmission need to use the special network port.
6). With the National Science Foundation (NSF) support, the Virtual and Remote
Laboratory (VR-Lab) is developed at Texas Southern University (TSU). They collaborate
with the SMSL at UH to successfully develop a plug-in free SVP remote experiment.
6
They also develop the Data Communication (DC) virtual and remote experiments and the
remote Digital Signal Processing (DSP) experiment. Their remote laboratory is also the
Browser-Server architecture software system.
To our best knowledge, all remote laboratories above are based on two software
architecture paradigms, Client-Server architecture and Browser-Server architecture. The
common software architecture is composed as follows: the experiment device itself, a
local controlled workstation connected to the device, which plays the role of a gateway
between the experiment device and the remote computer of the user, and the associated.
In fact, most of devices must be locally handled by a workstation in order to be remotely
controlled over the Internet.
From all of above illustration, there are still some challenges not to be resolved
yet. The challenges in remote laboratory development are listed in Table 1.
Table 1 Challenges in remote laboratory development.
Problem
Challenges
1
How to improve Remote laboratories lack reusability issue?
2
How to improve remote laboratories Localization transparency
issue?
3
How to improve remote laboratory system Cross-Platform
performance and resolve the Client side software without plug-in
issue?
4
How to resolve the real-time experiment data and real-time
experiment video traversing network firewall transmission issues?
5
How to improve Substitution of devices issue in remote
7
laboratory?
6
How to improve the remote laboratory system security issue?
1.3 Objective
The general objective of our research is to design and implement an innovative
advanced remote laboratory technology to resolve some challenges in development of
remote laboratory. More specifically, the goals are to:
1) Develop a seamless remote laboratory technology that is platform (PC, MAC,
PDA, etc.), web browser (IE, Firefox, Safari, etc.), and operating system
(Windows, UNIX, Linux, etc.) independent.
2) Develop a rich, user friendly interface with a leading edge feature named web
perspective.
3) Develop an easy-to-use unified remote laboratory publishing tool for remote
laboratory developers.
4) Develop a generic scheduler web server for remote experiment farm.
1.4 Research Outcomes
With the novel unified framework, some challenges are resolved and improved.
Our solutions are listed in the Table 2.
8
Table 2 Research outcomes.
Problem
Solutions
3
A novel unified framework allows online experiments to be accessed by
most of popular Internet browsers without the need of any extra plug-in
To improve the real-time experiment data transmission performance, a
3
new web socket protocol, LabVIEW to Node.js (LtoN) which was
implemented with the Socket.IO was created in the workstation.
A novel unified framework also resolved the real-time experiment data and
4
real-time experiment video traversing network firewall transmission issue
through the Node-HTTP-Proxy software module.
The new isolated experiment network and the authentication URL were
6
designed to improve the remote laboratory system security issue.
1.5 Outline
In chapter 1, the background of remote laboratory is introduced. The research
Objective, motivations and outcomes of my research are presented as well. In chapter 2, a
novel unified framework for remote laboratory development is presented. In chapter 3, a
novel real-time video transmission approach is presented. In chapter 4, a novel real-time
experiment data transmission approach is presented. In chapter 5, the implementation of
two remote experiments is presented. In chapter 6, conclusion of my research and future
works are presented.
CHAPTER 2
A NOVEL UNIFIED FRAMEWORK FOR REMOTE LABORATORY
DEVELOPMENT
In this chapter, a novel improved unified framework for the remote laboratory
development is presented. This novel improved unified framework is used to improve
the Problem 3, problem 6 and resolve the problem 4 which were mentioned in Chapter
1. The novel unified framework includes three parts: the client web application, the
server application and the experiment control application. Socket.IO, a JavaScript library
of Node.js, is used to support the real-time web application development. Node-HTTPProxy is used to support the traversing network firewall (Wang and Chen 2013, Wang
2014). To address the real-time experiment video transmission, HTTP Live Streaming
(HLS) is used for real-time video transmission across network firewall.
2.1 Previous Works
In our previous works, we developed a Comet solution which allows distributed
online experiments to work in the most of popular Internet browsers independent of any
additional plug-ins. We also resolved some challenge issues of developing cross-browser
web user interface (Olmi, Cao, Chen and Song, 2011; Olmi, Chen and Song, 2011). We
have used this framework to implement some remote control engineering experiments.
For example, the new SVP remote experiment is now used to teach students in
mechanical engineering courses at the University of Houston. This remote control
experimentation is aimed to offer student hands-on experience through the Internet on
structural vibration control by using a Magneto-Rheological (MR) and SMA braces to
control the vibration. To improve the experiment data transmission performance of the
9
10
unified framework, we developed a Comet solution via Socket.IO. Socket.IO is a
software package of Node.js, and is implemented on the server side. On the experiment
control workstation, a new web socket connection is created by Socket.IO to handle the
experiment communication between workstation and server (Chen, Osakue, Wang,
Parsaei and Song, 2013). Nevertheless, as Figure 1 depicts, the real-time experiment live
streaming video is transferred via network port 1026 and the real-time experiment data is
transferred via network port 1029 based on this Comet solution. With the Comet solution,
users can remotely conduct the experiments by using the most of popular Internet
browsers without installing any plug-in via the two special network ports 1026 and 1029.
Experiment Control
and Data Show
Web Page Framework
Video Server
Node.js Server
Port 80
Port 1029
Web Page
Port 1026
Video show
Web Server
Server
Experiments Equipment
Figure 1 System architecture of Comet solution (Published at the World Congress on
Engineering Education 2013).
Normally, the special network ports are restricted and blocked by network
firewalls in most of universities, institutes and companies based on the security
regulations. Only public network port 80 is open for accessing the web contents on web
11
server. Thus, we were motivated to find a new approach to solve the traversing network
firewall issue.
2.2 Introduction of a Novel Unified Framework
The Novel Unified framework is based on the Web 2.0 technology. The client
web application is based on HTML, CSS, and JQuery/JQuery-Mobile JavaScript libraries.
The Mashup technology is used for user interface implementation. The client web
application can be run in most of current popular browsers such as IE, Firefox, Chrome,
Safari etc. The server application is based on Web Service technology, and is directly
built on top of MySQL database, Apache web server engine and Node.js web server
engine (Hughes-Croucher and Wilson, 2012; Wikipedia, 2013). The server application
uses JSON and Socket.IO which is developed based on web socket protocol to implement
the real-time communication between the server application and the client-web
application (Wikipedia, 2013). The server application runs on Centos 6.0 Linux server.
The experiment control application is based on the LabVIEW, and uses Socket.IO for
real time communication with server application. The experiment control application runs
on experiment control workstation which runs Window 7 operation system (OS). Our
new unified framework for remote laboratory development is based on three vital
technologies, which are the Socket.IO, Node-HTTP-Proxy, and HLS protocol. NodeHTTP-Proxy is used for experiment data and control commands transmission and
traversing firewall and the novel video transmission approach is based on HLS protocol
for real-time system monitoring. The Mashup technology is used for user interface
implementation.
Table 3 depicts the technical characteristics of the novel unified
framework in detail.
12
Table 3 Technology/protocol/software list of the new framework.
1
2
3
4
5
6
7
Name
HTTP Proxy
Data Protocol
Real-time experiment
video Transmission
Technology/Protocol/Software
Node-HTTP-Proxy
Socket.IO
Http Live Streaming Protocol
/FFmpeg /Segmenter software
package
Database
MySQL
Client – User Interface Mashup technology, JavaScript
Server - Web Service
Apache , Node.js , JSON
Equipment Control
LabVIEW
Remark
Part of Node.js
Part of Node.js
LtoN (LabVIEW to
Node.js)
The system architecture of the new unified framework and the data transmission flow of
the novel unified framework are shown in Figure 2.
13
SVP Webpage
SMA Webpage
EEWSN Webpage
Server-Based Marshup Technology to generate the user interface
Experiment Control
and Data Show
Video show
Client User Interface
Network
port 80
Network
port 80
Node-HTTP-Proxy
Network
port 80
Video HLS
Server
Apache Web
server engine
Network
port 5001
Node.js Web
server engine
Server
LabVIEW in
Workstation
Web
Camera
Web Camera and Work Station
SVP experiment
EEWSN Experiment
SMA Experiment
Experiments Equipments
Figure 2 The architecture and data transmission flow of the new framework.
14
The network architecture of the new remote laboratory solution is shown in Figure 3.
Internet
User Equipments
Center Server
Internal Experiment
Network
Network Switch
Experiment
Workstation
Experiment
IP Camera
Experiment
Workstation
SMA
Experiment
Experiment
IP Camera
SVP
Experiment
Figure 3 The new remote laboratory solution network architecture.
2.3 Vital Improvement of Novel Unified Framework
In this new framework, there are two key improved implementations, i.e., HTTP
proxy implementation and real time video processing module implementation. To address
15
the real-time experiment control command and data transmission, we configure and run
Node-HTTP-Proxy software application on the server side. The proxy application
monitoring the network port 80 looks up the appropriate web server application request
from the client and then proxies the data directly from the web server application to the
client web browser. To address the real-time experiment live steaming video transmission,
we implement a new real-time video transmission solution via HLS protocol combined
with FFmpeg, which is a powerful cross platform command line video trans-code /
encoding software package.
2.3.1 The Node-HTTP-Proxy for The Network Port Sharing
We need to address a complicated problem this is that we cannot set Apache and
Node.js to listen on the network port 80 at the same time. In addition, we do not have an
option to deactivate Apache and only run Node.js. To solve this issue, we propose to set
up Node-HTTP-Proxy to get both Apache and Node.js working together and sharing the
same network port 80 on the server side. Node-HTTP-Proxy is a full-featured HTTP
proxy which is involved in Node.js server software package, and is a free and open
source software package.
Currently there are one Apache web application and one Node.js web application
which work together in our web server. We use the Apache web application to generate
the user interface framework, and the Socket.IO which is a module of the Node.js web
engine to transfer the experiment data and experiment equipment control commands. In
order to share the network port 80 for these two applications, we used the Node-HTTPProxy to handle the HTTP requests and data transmission. The Node-HTTP-Proxy is
used the stream for HTTP requests and data transmission. The concept of a stream in
16
Node.js lends itself beautifully to working with HTTP requests. One of the strengths of
Node.js is its capability for streaming data; a great deal of performance can be achieved
simply by tunneling the request and response streams to other destinations.
2.3.2 Real-Time Experiment Video Streaming Approach
The purpose of the new approach is to transfer the real-time experiment video via
port 80. To achieve the goal, we design and implement a new real-time video
transmission solution via HLS protocol combined with FFmpeg, which is a powerful
cross platform command line video trans-code/ encoding software package. To address
the network firewall and flash plug-in issue, our new approach works by breaking the
overall real-time experiment video stream into a sequence of small HTTP-based file
downloads. Each download consists of one short chunk of an overall potentially
unbounded transport stream. As the stream, the client may select from a number of
different alternate streams containing the same video content encoded at a variety of data
rates, allowing the streaming session to adapt to the available data rate. Briefly, the client
(normally the Web browser) loads a playlist file of these video segments which is created
following HLS protocol on the Web server (we use the Apache Web Server). The
contents of this playlist are short clips (about 10 seconds) residing on a Web server. We
need to create and maintain a playlist file and the short segments of the real-time video
stream. Therefore, the sequence of small HTTP-based file downloading is transferred via
HLS protocol, and we use the FFmpeg software package to break the overall real-time
experiment video stream into short download segments (Foresman, 2009). Finally, the
real-time experiment video segments are transferred via HLS protocol through network
17
port 80, and the real-time video will be reassembled in the Web browser and shown to
end users.
2.4 New Isolated Experiment Network Design for Remote Laboratory
To address the security issue of network, we designed and implemented an
isolated experiment network at Texas A&M University at Qatar (TAMUQ). All of the
experimental equipment and experimental control workstations are put in this isolated
experiment network. Our central server connects with the experiment network, and it
manages all the communications between experimental control workstations and the
users over the Internet. In order to implement the isolated experiment network, the
following tasks were done:
1) We designed and developed the DHCP configure and management application
on central server, and assigned a group of the private IP addresses (the IP
address is from 192.168.0.1 to 192.168.0.100) for every experimental control
workstation and every web camera.
2) Every experiment control workstation and IP Camera can automatically obtain
their private IP address from the DHCP management application.
Every experimental control workstation and web camera can only communicate
with other devices in the isolated experiment network.
2.5 New Authentication URL Design for Remote Experiment Webpage
We use PHP language to implement an authentication URL function for the
experiment operation page. To address the authentication URL issue, we used the MD5
encryption and decryption algorithm in experiment operation page URL generation
18
process. The experiment operation page URL is encrypted in server side using MD5
algorithm, and it is decrypted in browser side. Our design for the authentication URL
issue is controlled by a system timer. The remote experiment URL will be invalidated if
user fails to open the authentication URL in certain time range. If the experiment
operation page cannot be shown correctly, an error message will be shown instead.
Currently, the timer is set as 10 seconds.
2.6 Remote Experiment Scheduler and User Management System
To manage the remote experiments, we implement a scalable experiment
scheduler system and a user management system. We use PHP language to implement the
systems, and use MySQL 5.5 database management system to manage the experimental
data, user information and other system information. Figure 4 shows the screenshots of
the scheduler, the experiment conflict control and the experiment management page.
Scheduler
Experiment conflict
control
Experiment
management
Figure 4 Scheduler, experiment conflict control and experiment management page
screenshots.
CHAPTER 3
A NOVEL REAL-TIME EXPERIMENT VIDEO TRANSMISSION APPROACH
In this chapter, the design and implementation process of a novel real-time
experiment video transmission approach are presented. This novel transmission
approach is used to resolve the Problem 4 which was mentioned in Chapter 1. The
novel solution includes three parts, HLS protocol, FFmpeg and Segmenter software
package. FFmpeg is a powerful cross-platform command line video trans-code/encoding
software package. Segmenter software package is the cost-free Video streaming segments
software package.
3.1 Previous Works
In our previous works, we designed and implemented a unified framework for
remote laboratory development (Olmi, Cao, Chen and Song, 2011). In this unified
framework, we resolved some challenges of developing a cross-browser web user
interface for improvement of the unified framework (Olmi, Chen and Song, 2011). With
this unified framework, the terminal users can remotely conduct the experiments by using
the most of popular Internet browsers without installing any plug-ins. However, we still
face the real-time experiment video transmission traversing the network firewall issue. To
resolve this essential issue, we need to look for a new approach to transfer the real-time
video via network port 80. Meanwhile, all Web contents of the experimentation are also
transferred to the terminal users via the same network port. Therefore, the goal of this
novel approach is to solve the real-time experiment video transmission across the
network firewall issue.
19
20
Nowadays, with the fast development and improvement of network technology, a
novel, reliable and free video steaming transmission protocol, HTTP Live Streaming
protocol, is more and more popularly used for real-time video transmission across a
network firewall. HLS is an HTTP-based media streaming communications draft protocol
implemented by Apple Inc. Apple used this protocol on September 1, 2010 to stream
their iPod Keynote event live over the Internet, and on October 20, 2010 to stream their
‘Back to the Mac’ Keynote event live over the Internet as part of their QuickTime and
iOS software (Foresman, 2009). Currently, there are more and more giant software
companies’ solutions to support HLS, such as Adobe Flash Media Server (Adobe FMS),
Microsoft IIS Media Server, Google Android Honeycomb, etc. Since it requests to use
only standard HTTP transaction, HLS is capable of traversing any firewall or proxy
server that lets through standard HTTP traffic. Unlike User Datagram Protocol (UDP)
based protocols (such as Real-time Transport Protocol (RTP)), HLS also allows content
to be delivered over a widely available Content Delivery Network (CDNs).
3.2 Proposed Approach
The basic purpose of the new approach is to improve the remote laboratory video
transmission function. To achieve this goal, we proposed the new real-time video
transmission solution via HLS protocol in combination with FFmpeg. To address the
network firewall and flash plug-in issue, our new approach works by breaking the overall
real-time experiment video stream into a sequence of small HTTP-based file downloads.
Each download contains one short chunk of an overall potentially unbounded transport
stream. As the stream is played, the client may select from a number of different alternate
streams containing the same material encoded at a variety of data rates, allowing the
21
streaming session to adapt to the available data rate. Briefly, the client (Web browser)
loads a playlist file of these video segments which was created following HLS protocol
on the Web server (we proposed Apache Web Server). The content of this playlist are
short clips (regularly proposed 10 seconds) residing on a Web server. We need to create
and maintain a playlist file and the short segments of the real-time video stream in the
server. Consequently, the sequence of small HTTP-based file downloads is transferred
via HLS protocol, and we used a FFmpeg software package to break the overall real-time
experiment video stream into short segments. Finally, the real-time experiment video
segments are transferred via HLS protocol through network port 80 and the real-time
video will be reassembled in the Web browser and shown to the end users.
Real Time Video Streaming
Segment, Enclosure, and
transmission
Video Source
Network
Camera
FFMPEG
Segmenter
HTTP Live
Streaming
Protocol
Media Server
HTTP Server
Real Time Video Streaming
collection and Process
Internet
(HTTP protocol)
Terminal Users
Figure 5 The working process of the new real-time video transmission approach.
22
Figure 5 illustrates the working process of the novel real-time experiment video
transmission approach. It is very clear that we not only need to setup the FFmpeg
software package in media server side, but we also need to compile and install the
Segmenter software package and configure the Apache Web server in HTTP server side.
We build up the real-time experiment video processing and transmission environment,
then the new solution will be implemented to resolve the real-time video transmission
problem mentioned above.
3.3 Architecture of the Novel Approach
The novel real-time experiment video transmission approach has been developed
based on the HLS protocol which is a novel, good performance and free video steaming
transmission protocol proposed by Apple. As depicted in Figure 6, the novel approach
consists of the three basic entities: HLS, FFmpeg and Segment software package.
23
The real time
experiment
video receiver
H.264 codec
FFMPEG
Network
Camera
.ts files
Segmenter
.m3u8 files
HTTP Live Streaming
HTTP
Web browsers in Various Terminal equipment
Figure 6 The architecture of the novel real-time video transmission solution.
3.3.1 Streaming Protocol Introduction
For the real-time experiment video transmission, we need to select a stable
transmission protocol that performs well. Currently, there are three popular streaming
transmission protocols which are widely used, Real-time Message Protocol (RTMP),
HLS and Real-time Streaming Protocol (RTSP). As depicted in Table 4, we know the
detailed correlation between these three main streaming transmission protocols. Based on
the requirements, we need to look for a real-time video transmission protocol which is
stable, free, and has good capability across a network firewall. Consequently, after
comparing, it is the best selection for us that the HLS will be used in our new solution.
24
Table 4 The comparison of main video streaming transmission protocol.
Name
Upper
Protocol
Mode
Main Force
Client
request.
Video
request.
Server
Request.
Real-time
Live
Request.
Play format
Request
Delay
Video
Recoder
(VCR)
Network
Address
Transiation
(NAT)
traversal
RTMP
Real-time
Message Protocol
HLS
HTTP Live Stream
RTSP
Real-time Streaming
Protocol
TCP / HTTP
HTTP
RTP / RTCP
C/S
Adobe
Flash supported
Browser
HTML5
supported
Browser
B/S
Apple
C/S
Microsoft
HTML5 supported
Browser
Players
FLV, F4V
MP4
NA
FMS Server/Flash
Server/Red 5
Normal HTTP Server
RTSP Streaming Server
dedicate Encoder
Flash Media
Encoder
a. media
encoder(H.264 &
AAC) into MPEG-2
streaming
b. streaming
segmenter from
MPEG-2 streaming to
segments for live
c. file segmenter from
file into segments for
on-demand
related with server
.ts media data file,
.m3u8 index file
related with server &
player
5~30 sec
< 2 sec
Support with high
precision
Support with high
precision
Support with normal
precision
Good
Fair
Good
FLV/F4V file
divided into
F4f media data
file
f4x index file
Dependent server
performance
25
HLS protocol is a way to send video and audio over HTTP protocol from a Web
server via network port 80 to client software (Web browsers and other client applications)
on desktops, laptops or to other portable devices (including IOS-based portable devices,
Android-based portable devices, Window mobile-based portable devices, etc.).
Accordingly, the HLS Protocol mainly consists of three parts which are the server
component, the distribution component and the client software. The server component is
responsible for taking input streams of media and encoding them digitally, encapsulating
them in a format suitable for delivery, and then preparing the encapsulated media for
distribution. The distribution component consists of standard Web servers and they are
responsible for accepting client requests and delivering prepared media and associated
resources to the client. For large-scale distribution, edge networks or other content
delivery networks can also be used. The client software is responsible for determining the
appropriate media to request, downloading those resources, and then reassembling them
so that the media can be presented to the terminal users in a continuous stream. The HLS
protocol is also an Internet-Draft protocol submitted by Apple, Inc to the Internet
Engineering Task Force (IETF), and the Internet-Drafts are working documents of the
IETF, its areas, and its working groups (Roger and William May, 2012).
26
Figure 7 HLS basic configuration (Published at HLS protocol draft in IETF 2012 ).
Figure 7 shows the HLS protocol standardized basic configuration, which was
defined by Apple, Inc (Roger and William May, 2012). As illustrated in Figure 7, there
are four main critical parts of the process, which are video and audio source collection,
video and audio streaming encoder module, media segment module and video and audio
files distribution. In our remote experiment development, the video source is the real-time
experiment video, which is input from the network camera directly and is the H264
format video. Currently, we only need to collect the video streaming without audio
streaming to show the whole procedure of remote experimentation for the terminal users.
As it fulfills our project requirements and is easy to maintain and improve, we prefer to
use the FFmpeg software package as the encoder to process the experiment video.
Furthermore, FFmpeg is an open source free segment software package to break up the
video into the little video clips. To setup the Web server, there are some good Web server
27
software packages, such as Nignx Web server, Apache HTTP server, etc. In our previous
unified framework development, we selected the Apache 2.0 Web server software
package to setup the web server. Consequently, we implement the new video streaming
transmission approach based on the Apache 2.0 Web server as an improvement of the
unified framework.
3.3.2 The FFmpeg for the Real-Time Video Encoder
Normally, the encoder is used to produce a MPEG transmission stream. For large
audio and video producers (such as television, radio, etc.), they usually have hardwarebased encoders that output exactly MPEG transmission stream. As the purpose of our
research is to design a new approach which is easily extended and maintained in future,
we need to find a good performance and stable software solution. Consequently, an open
source software solution will be our objective. With this goal, we prefer to select the
FFmpeg as the video encoder in our solution.
FFmpeg is a complete, cross-platform command line software package which can
record, convert and stream audio and video. It includes libav-codec which is a leading
audio/video codec library. FFmpeg is also a leading multimedia framework used to
decode, encode, trans-code, Mux, deMux, stream, filter and play video and audio source
files which are created and collected by humans and machines. FFmpeg not only can
encode the streams in all required Codecs (such as HE-AAC, MP3, MP4, etc.), but also
output these elementary streams in MPEG-TS. The FFmpeg software package is free
software licensed under the Lesser General Public License (LGPL) or General Public
License (GPL) depending on your choice of configuration options and it supports the
28
most obscure, ancient formats up to those that are cutting edge. No matter if they were
designed by some standards committee, the community or a corporation.
FFmpeg is a very fast video and audio converter that can grab from a live video
and audio source (such as a network camera), and also can convert between arbitrary
sample rates and resize video on the fly with a high quality poly-phase filter. Normally,
the FFmpeg software reads from an arbitrary number of input files which can be regular
files, pipes, network streams, grabbing devices, etc., and writes to an arbitrary number of
output files which are specified by a plain output filename. In principle, each input file or
output file can contain any number of streams as different types (such as video, audio,
subtitle, attachment, data, etc.). The streams which were allowed numbers and types can
be limited by the container format. Therefore, as a general rule, FFmpeg options are
applied to the next specified file. Consequently, when we used the FFmpeg operation
commands to process video, it was very important that the FFmpeg operation commands
input must be ordered. And you can also have the same option on the command line
multiple times. Each occurrence is then applied to the next input or output file. The
detailed working process of the FFmpeg software package is shown in Figure 8.
Input
Files
demuxer
Encoded data
packets
decoder
Decoded
Frames
encoder
muxer
Encoded data
packets
Output
Files
Figure 8 FFmpeg trans-coding process.
FFmpeg calls upon the “libavformat” library (containing “deMuxers”) to read
input files (our input files are the real-time experiment video streaming files) and get
29
packets containing encoded data from these files. When multiple input files are
coming, FFmpeg tries to keep them synchronized by tracking the lowest timestamp on
any active input stream. Afterwards, Encoded packets are passed to the decoder. The
decoder produces uncompressed frames (for example, raw video, PCM audio, etc.) which
can be processed further by filtering. After filtering, the frames are passed to the encoder,
which encodes them and outputs encoded packets again. Finally, those are passed to the
Muxer, which writes the encoded packets to the output file.
Example 1 shows the command line which is the FFmpeg commands used in our
new video transmission solution to collect the real-time video resource file from the
network camera device.
FFmpeg -i "rtsp://10.3.52.36/axis-media/media.amp?
videocodec =h264&streamprofile =svp" -vcodec libx264
-subq 1 -g 250 -qmin 10 -qmax 51 -i_qfactor 0.71
/var/www/html/Hls_Test /Record. mp4
Example 1 FFmpeg command line.
Previously, we used to output real-time video files and constantly decompose,
transfer and compose them to achieve the real-time monitor remote experiment process.
Therefore, we also developed an automatically executing command file using shell in the
Linux server.
3.3.3 The Real-Time Video Segment Module Introduction
In the architecture of our new solution, we need to segment the video which is
output from the FFmpeg software package to the short clips (regularly proposed 10
30
seconds). Therefore, we need to be looking for one software package for this purpose.
Currently, there are some good segment software packages for selection, and the
Segmenter is a good candidate for us. The Segmenter is a software package which splits a
transmission stream into chunks and then updates a playlist file with these chunk files.
Most Segmenters are not open source. Consequently, they are difficult to improve and
maintain in the future. As an example, Apple's Segmenter is a good solution and a costfree Segmenter, but it is a binary program made for the Mac and does not run very well
on the Linux server. It is not suitable for our new solution, since our approach needs to
implement the segment function on the Linux server.
By the above description, the Free and Open Source Segmenter solution which
was written by Carson McDonald, is the best selection for us up to date. It can run well
on a Linux server, and we can freely download the source codes of this solution from his
blog (McDonald 2009).
The segment software package, which is used in our novel solution, is based on
the open source Segmenter solution and we modify some parts to match our requirements
for the real-time experiment’s video transmission. Figure 9 shows the detailed working
process of the segment software packages in our new solution.
31
Segment Commands
input
Segment Software
Package
Index Files and
structure
Video Streaming
resource
FFmpeg Software
Package
Segment software
create the relation
between Index file
with clip files
.ts video
clip files
Figure 9 Segment software package working process.
Example 2 shows that the command line which is used to create a stream from a
video file created with the above FFmpeg command split into 10 second intervals.
Segmenter Record.ts 10 Record Record.m3u8
http://vr-lab. engineeringtech. tsu.edu/ Hls_Test/
Example 2 Segmenter command line.
3.3.4 Web Server Configuration and Video Transmission
To transfer the real-time video stream via network port 80, we need to configure
the Web server that used the Apache 2.0 HTTP server software package to match the
HLS protocol requirement. Actually, Apache is probably not the best choice for
delivering files via HLS protocol. However, our previous tasks were already finished on
the Apache Web server and there is a low possibility that we can change the Web server
for our current project status. Therefore, we decided to go with the very flexible and
32
customizable Apache instead of the Nginx or Lighty Web servers, which are better suited
for HLS.
At this point, we should have a set of files that represent a stream and this stream
definition file. Those files can be uploaded to a Web server. The other important step is to
ensure that those files will be downloaded correctly and setup to Multipurpose Internet
Mail Extensions (MIME) types code. There are two pieces of MIME type code which are
important for the streaming content. They need to be added in the Web server
configuration files.
Therefore, we need to add the following two examples, example 3 and example 4,
MIME type codes in the Apache Server configuration file, httpd.conf, in order to let the
Apache Web server support the HLS protocol and files.
.m3u8 application/x-mpegURL
.ts video/MP2T
Example 3 Apache configuration MIME types code
AddType application/x-mpegURL .m3u8
AddType video/MP2T .ts
Example 4 Apache configuration MIME types code
We can create the corresponding folder to manage the m2u8 files on the Web
server side. In the client side, we only need to add the HTML code or use JWPlayer.js
functions in the Web pages, and then the real-time video will be shown in the web page
for end users. It is necessary to point out that the browser must support HTML5,
otherwise we need to use the JWPlayer.js to support the HLS video. So far, most of the
33
popular newest browsers (such as, Safari, Chrome, IE10, Firefox, etc.) almost support the
HTML5.
3.4 The Novel Real-Time Video Transmission Approach Implementation
To achieve the purpose of the real-time experimentation live video streaming with
HLS protocol across a network firewall, we create two video files in HTTP server side.
Meanwhile, we develop a script program to automatically run the command file, which
runs in Linux server side to record the video from the network camera. Finally, with HLS
protocol, the real-time experiment video files are automatically decomposed, transferred
and composed for the end users. The switch time slot was set to 1 minute, and it means
that one video file time slot is 1 minute.
Currently, there is an problem which is found in low hardware configuration
smart phone. It is that the real-time experiment video can not be continuously playbacked
through the low hardware configuration smart phone. When we use the low configuration
smart phone to load the video stream, the video playback is not smooth. Anyway, this
problem is not found in the IPhone and other high-performance smart phones.
CHAPTER 4
A NOVEL REAL-TIME EXPERIMENT DATA TRANSMISSION APPROACH
In this chapter, the design and implementation process of a novel real-time
experiment data transmission approach are presented. This novel transmission approach
also is used to resolve the Problem 4 which was mentioned in Chapter 1.
This
experiment data transmission approach via HTTP proxy gets both Apache web server
application and Node.js with its Socket.IO working together (Wang and Chen 2014).
Figure 10 illustrates the architecture of the novel real-time experiment data transmission
solution. This novel solution includes parts, HTTP proxy, Node.js and Socket.IO. In
additional, we use Node-HTTP-Proxy, which is the good and free software package
developed by Node.js development team, to implement the HTTP proxy.
Clients
Network Port 80
Node-HTTP-Proxy
Spec
Network
Port
Spec
Network
Port
Spec
Network
Port
Apache
Node.js
Node.js
Database
LabVIEW
Server
Figure 10 The architecture of the novel real time experiment control commands and data
transmission solution.
34
35
4.1 Proposed Novel Approach
The purpose of this novel solution is to transfer the experiment control command
and experiment data between client and server across network firewall. This novel
solution is also a great improvement for our remote laboratory unified framework. To
address the network firewall issue, we set up an HTTP proxy using Node-HTTP-Proxy in
server-side. It is used to monitor the connections on the public network port 80 in the
server-side. The HTTP proxy switches the requests from the client browsers to the proper
software applications which run in the server-side, and each application is listening for its
own special network port based on the hostname in each request. Now, in our web server,
we only configure and run an HTTP proxy application which is built up by Node-HTTPProxy software package to fulfill the requests transferring tasks. This proxy application is
monitoring the public network port 80, and looks up the appropriate web server
application for a request from the client. The experiment data also is directly switched
from the web server applications to the client web browsers. Currently, our web server
includes one Apache web server application and one Node.js web server application. We
also use the Apache web server application to generate the user interface framework, and
use Node.js web server application to handle the experiment data and experiment
equipment control commands.
Figure 11 illustrates the new data transmission solution working process. As the
Figure 11 illustration, it is very clear that the Node.js web server software need to be
setup in the server-side. We also need to compile and install the Node-HTTP-Proxy
software package and reconfigure the web server. Meanwhile, the web server must
36
include Apache web server and Node.js web server to build up the real time control and
experiment data running environment to support our novel data transmission solution.
End user
Public Port 80
Node-HTTP-Proxy
Proxy
Port 80
Special Port 5001
Apache Web Server
Node.js Web Server
Experiment Video
and other web
content
Experiment Control
Command and Data
Web Server
Figure 11 The new data transmission working process.
4.1.1 The Node-HTTP-Proxy Introduction
In our previous unified remote laboratory framework, we faced the critical
problem. We cannot set Apache web server application and Node.js web server
application to listen on the same public network port 80 at the same time. We also cannot
find a suitable approach to have the option of deactivating Apache web server application
and just run Node.js web server application.
To resolve the complicated problem mentioned above, we design and implement a
new solution to setup one HTTP proxy by Node-HTTP-Proxy software package. Apache
web server application and Node.js web server application can work together well
through this novel approach. It also can share the same public network port 80 between
these two web server applications in the server-side.
37
Node-HTTP-Proxy is a full-featured HTTP proxy involved in node.js web server
software system. It is also the free and open source software package. Node-HTTP-Proxy
is designed as middleware concept. The middleware is a simple way to add new features
to your application stack. Nevertheless, the problem is that the extremely
popular middleware style of web application development is often incompatible. For
example, if you use a body decoder middleware, every request will need to be buffered in
full before the body can be properly decoded. Consequently, this approach will increase
memory usage and reduce the system performance. It is compared to simply relaying
unaltered requests and responses to other destinations. All the tasks of the middleware
has to be waited for and read into memory, possibly altered, then sent again and adding to
both the time and resource cost of each request.
The concept of a stream in Node.js lends itself beautifully to working with HTTP
requests. One of Node.js strengths is its facility for streaming data. Meanwhile, a great
deal of performance can be achieved simply by piping the request and response streams
to other destinations and then back again. More importantly, if any subsequent task in the
Node-HTTP-Proxy tasks chain tries to listen for 'data' or 'end' events, or otherwise treat
the current HTTP connection as a stream, it just won't work. As a buffered request is no
longer a stream, it is now just a data object. Consequently, it is why the Node-HTTPProxy was designed, and it works well with excellent performance.
38
WebServer
Application
(Apache)
WebServer
Application
(Node.js)
WebServer
Application
(Nginx)
Node-Http-Proxy
HTTP/Socket.IO
Client
HTTP/Socket.IO
HTTP/Socket.IO
Client
Client
Node-HTTP-Proxy Deployment Principle
Figure 12 Node-HTTP-proxy deployment principle.
Figure 12 illustrates the deployment principle of the Node-HTTP-Proxy. In the
deployment principle, it is very clear that the Node-HTTP-Proxy is working as an agent
to transfer the request and data between the clients and web server applications through
the public network port 80.
Node-HTTP-Proxy is also an excellent HTTP proxy for the web sockets protocol.
Therefore, you can let your applications run independently on different special network
ports while serving everything to the end user over public network port 80, such as we
use software like Socket.IO for our data transmission solution.
39
var HTTP = require('HTTP'),
HTTPProxy = require('HTTP-proxy');
HTTPProxy.createServer({
hostnameOnly: true,
router: {
//web-development.cc
'www.my-domain.com': '127.0.0.1:80',
'www.my-other-domain.com': '127.0.0.1:5001'
}
}).listen(80);
Example 5 Node-HTTP-Proxy code line.
As Example 5 illustration, the code segment is using Node.js with Node-HTTPProxy on the public network port 80. With this example code, it creates the basic HTTP
proxy server application and listens for the public network port 80. It will switch any
requests from the clients to two server applications which separately listen for network
port 80 and network port 5001.
4.1.2 The Server-Side Software System Introduction
Nowadays, there are three most popular web server software engines, Apache,
Microsoft IIS and Nginx. However, we must select a stable server-side software engine
which has the excellent performance to support the real time communication web
application development. Based on this purpose, the Node.js web server engine comes in
our view with its excellent performance to support the real time communication web
40
application development. The biggest distinction with Apache web server software
engine is that Node.js is an incredibly fast and efficient server software system that scales
well. If you have configured Apache's 'HTTPd.conf' file, you have no doubt seen the Start
Servers and Min-Spare Servers settings which keep a specified number of idle Apache
servers running in order to bypass the time required to start servers for new connections.
In contrast, Node.js tells the operating system (through e-poll, k-queue, /dev/poll, or
select) that it should be notified when a new connection is made, and then it goes to sleep.
If any clients new connect, then it executes the callback. Each connection is only a small
heap allocation. Figure 13 illustrates the Node.js software system architecture.
JavaScript
Node Standard Library
Node Binding
Google V8
JavaScript
Engine
Thread
Pool
Event
Loop
Crypto
DNS
(Open SSL)
C / C++
Figure 13 Node.js architecture.
Node.js is a server-side software system designed to develop scalable Internet
applications and notably setup web servers. Node.js is a packaged compilation of
Google's V8 JavaScript engine, which include the “libuv” platform abstraction layer and
a core library which is primarily written in JavaScript. Meanwhile, node.js is using event
driven
operation
mode, asynchronous
I/O port
to
minimize overhead and
41
maximize scalability. The original goal of Node.js is to create web sites with push
capabilities as seen in web applications like Gmail. Nevertheless unlike most other
JavaScript programs, node.js is not executed in a web browser and it instead as a serverside JavaScript application. In the server-side, Node.js not only implements
some Common JavaScript specifications, but also provides a Read-eval-print loop
(REPL) environment for interactive testing.
Node.js is a JavaScript environment running in Google’s V8 JavaScript engine.
As depicted in Figure 13, Node.js only exposes non blocking asynchronous interfaces to
the developer. It also has very few abstractions. The power of Node.js lies in the fact that
it moves the developer away from certain interfaces like synchronous I/O. Each node.js
application is a single thread. If there are more tasks need to be done, the multiple node.js
instances must be started. At the same time, the kernel will do the load balancing, and the
memory isolation is enforced at the process boundary.
Node.js uses the module architecture to simplify the creation of complex
applications. Modules are akin to libraries in C language, or units in Pascal language.
Each module contains a set of functions related to the 'subject' of the module. For
example, the Node-HTTP-Proxy module contains functions specific to HTTP Proxy.
Node.js provides some core modules out of the box to help you access files on the file
system, create HTTP Proxy and Socket.IO, and perform other useful functions.
As Example 6 illustration, it is very simple to use the 'require ( )' function to
include the modules in your program. Anyway, Node.js is a promising technology and an
excellent choice for a high load application. It already has been proven by corporations,
like Microsoft, eBay, and Yahoo.
42
var comunicate_ io = require('socket.io');
var HTTPProxy = require('HTTP-proxy');
Example 6 Node.js example code in server.
4.1.3 The Real-Time Web Application Introduction
To support the real time communication web application development, normally,
the web socket protocol is used to implement this requirement. Web socket protocol is
most often used to describe what it makes possible is the “Real-time Web”. Basically
web socket protocol is breaking the limitations of the request/response protocol of HTTP.
Instead, with event-handling implemented at each side, it creates a socket connection
between your browsers and the back-end. As the events cause something to be happened
in the end users’ browsers, it is possible to be triggered at the back-end without the
browsers having to see whether anything have been happened at the back-end. When a
message is sent via the web socket protocol connection to the browsers, the message
triggers a pre-defined event. At the same time, something immediately happens in the
browsers. Web Socket protocol is bi-directional, so events which occur in the browser
can generate some messages. Those messages are sent via the web socket protocol
connection to the back-end. Meanwhile, they are effectively providing an alternative to
the use of AJAX over HTTP protocol. As above mentioned, we have to build our real
time communication application based on a web socket protocol. In the interest of
adapting our server-side architecture where we use Node.js web server software system,
43
we decide to use Socket.IO. Socket.IO primarily uses the web socket protocol to connect
the client web pages with web server.
Socket.IO not only primarily uses Web Socket protocol, but also is supported and
relied on some other software packages. If there are the requirements from the users, it
can fall back on multiple other methods, such as Adobe Flash sockets, JavaScript Object
Notation with Padding (JSON-P) polling, and AJAX long polling, etc, while continuing
to provide the same interface. Although it can be used as simply a wrapper for the web
socket protocol, it provides many more features including broadcasting to multiple
sockets, storing data associated with each client, and asynchronous I/O. Figure 14
illustrates the Socket.IO working process.
Client
Socket.IO handles
communication with
the browser
Node.js Http Server
Socket.IO
Data Stream
The data
provider
Data Source
Figure 14 Socket.IO working process.
Socket.IO enhances the web socket protocol by providing built-in multiplexing,
horizontal scalability, automatic JSON encoding/decoding, and more. Socket.IO also uses
long polling technology. Long polling technology addresses the weakness of traditional
polling methods by asking the server for new information on a certain interval,
44
nevertheless keeping the connection open if the server has nothing new for us. This
technique dramatically decreases latency and network traffic, which means that it
efficiently disguises itself as a server-push technique.
Socket.IO is a JavaScript library and aims to support real time web applications
possible in every browser and mobile device via blurring the differences between the
different transmission mechanisms. Socket.IO mainly includes two parts: a clientside library that runs in the browser and a server-side library for Node.js. Both
components have a nearly identical API. Similar with the Node.js, it also uses eventdriven operational principle. The Example 7 and Example 8 illustrate the example codes
of these two parts.
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
Example 7 Socket.IO example code in server.
45
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('HTTP://localhost');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
Example 8 Socket.IO example code in client.
4.2 Approach Implementation
4.2.1 Node-HTTP-Proxy Configuration
In the interest of the real time experiment control command and experiment data
transmission via public network port 80, we need to set up and configure the new
architecture in our web server to get the Apache 2.0 web server application working well
with Node.js V0.10.20 web server application together. And we also need to configure
the new architecture to match the Node-HTTP-Proxy requirement.
To achieve this goal, we must finish the following tasks. At first, The Express
software package and Node-HTTP-Proxy software package have to be installed in the
server-side. Accordingly, the virtual hosts which like normal on Apache web server
software system need to be set up. Secondly, all virtual hosts will be placed in a common
directory (for example: "/localhost"). Then the Apache web server software application is
46
listening for the public network port 80. It only has to be configured the port in file
"httpd.conf" (such as changed "Listen 80" to "Listen other special port"). At last, all
virtual hosts must be made sure, as defined in "extra/HTTPd-vhosts.conf" were set to an
IP based name Virtual Host (127.0.0.1) instead of using a port (such as HTTP://vrlab.engineeringtech.tsu.edu:80). On the Node.js web server software system, the
application/server (it is the node.js virtual host) that listened for the special network port
(such as port 5001) which is different with Apache port (somewhat arbitrarily choice of
port number) is created. Then in the "/localhost" directory, a file called
"nodeHTTPProxy.js" is created. As shown in Example 9, the example code of the NodeHTTP-Proxy is implemented in our server. With Node-HTTP-Proxy, a proxy server case
is also created in nodeHTTPProxy.js to be listening for the public network port 80.
/ Module dependancies
var HTTPProxy = require('/usr/local/lib/node_modules/HTTPproxy/lib/node-HTTP-proxy')
, express = require('/usr/local/lib/node_modules/express/lib/express');
// HTTP proxy-server
HTTPProxy.createServer(function (req, res, proxy) {
// Array of node host names
var nodeVhosts = [
'vhost1'
, 'vhost2'
]
, host = req.header('host')
, port = nodeVhosts.indexOf(host) > -1
? 80
: 5001;
// Now proxy the request
proxy.proxyRequest(req, res, {
host: host
, port: port
});
})
.listen(80);
Example 9 NodeHTTPProxy.js example code.
47
After all of the issues mentioned above are solved, nodeHTTPProxy.js needs to be
run. Each of the node.js applications has a map file that contains the port which is
listened on by the application, as well as a map that indicates the expected path which the
application is being served on.
4.2.2 LabVIEW to Node.js via Socket.IO
To implement the real time communication between client application and server
application, we design and implement the new application transmission protocol based on
Socket.IO software package. This new application communication protocol includes two
parts, client part runs in browsers and server part runs in web server. They are developed
by JavaScript language and also enhance the web socket protocol.
In this new application transmission protocol, we define our own special
communication instruction set to implement real time experiment control commands and
experiment data transmission. In our new protocol, with using special short instruction to
control experiment process, the experiment data transmission performance is improved.
To implement the new protocol, we only need to create two JavaScript program
files, one for client application runs in web browsers and the other for server application
runs in web server. Meanwhile, we have to create the new node.js task to run the protocol
in server-side. The server-side application must hold running status forever. Because the
server-side protocol application can hold the active status, it can ensure the normal real
time communication. In client side, the communication instruction functions set file is
used to support the client application normal operation in web browsers.
48
After all of the issues mentioned above are solved, we need to run the server-side
protocol file using ‘forever start’ command of node.js in server-side. The server-side
protocol application will be the active status, and the real-time communication can be
started.
CHAPTER 5
THE IMPLEMENTATION OF TWO REMOTE EXPERIMENTS
In this chapter, two new remote experiments based on the novel unified
framework are presented. Two new remote experiments are successfully implemented
under this novel unified framework, and their user interface can be run on most of
popular web browsers without installing any additional software plug-in. Some
advantages of two new remote experiments also are discussed in this chapter. The
capability of running remote experiments on portable device let users gain insights by
observing and interacting with the real instrument in a convenient way.
5.1 The Implementation of the Two Remote Experiments
5.1.1 The Remote SMA Experiment
The SMA experiment is developed to demonstrate and analyze the characteristics
of Shape Memory Alloys (Wang and Weng 2014). It is used to study the hysteresis
behavior of the wire actuator and how the driving frequency changes the hysteresis loop.
The experiment can apply sinusoidal driving signals (AC) of 16.4 V in magnitude and
respectively from 1/30 Hz to 1/50 Hz in frequency to the SMA actuator. Students can
observe the wire movement through the webcam in the remote laboratory. They can
record a number of cycles such as five for each test. Saved data include three types of
data: the applied voltage value, the displacement of the wire actuator, and time in seconds.
These data will be used for future analysis.
SMA materials are metallic alloys which have the Shape Memory Effect (SME)
of being able to return to a pre-determined, or “trained,” shape from a deformed state by
49
50
applying heat. A number of types of shape memory alloys are known to exhibit the
Shape Memory Effect when heated, including gold-cadmium and nickel-titanium, or
national. The SME follows from the changes in atomic crystal structure that the alloy
undertakes at different temperatures.
At low temperatures, the material behaves like a normal, malleable metal alloy.
However, the SME takes place when the alloy is heated above the temperature which
causes the crystal structure of the atoms to change, known as the transformation
temperature. As the atomic crystal structure changes, so does the overall shape of the
material, reverting to a pre-determined shape created by training the material above the
transformation temperature over time. Due to the training, the overall austenite form is
maintained through cooling and deformation.
The process of deformation and
transformation for an SMA spring is illustrated in Figure 15.
Figure 15 Macro and micro views of SMA spring deformation and transformation.
51
The experiment consists of an SMA wire connected to the electronic circuitry that
controls the voltage going to SMA wire. A displacement sensor is also attached to the
SMA wire to sense the motion caused by the SMA during heating and cooling through
the applied electric voltage. Remote SMA Experiment is defined as real experiments
conducted by Internet users. This experiment use real instrumentation and components at
a different location than where they are being controlled by the user.
As shown in Figure 16, the SMA device is assembled by using both fabricated
and off-the-shelf components. The main frame uses L shape aluminum bar fixed by
screws. There are plexi-glass sheets fixed on several sides of the SMA to protect and
decorate the experiment. On the bottom, blue LED lights are used to light up the
experiment. In the middle of SMA device, a red block is lifted by SMA wire and pulled
down by two springs. The experiment consists of a workstation, NI DAQ 6008 USB, and
a DC power supply, a Solid State Relay (SSR), a web camera, and SMA wires. A PC
workstation runs LabVIEW to control the voltage applied on the SMA wire. NI DAQ
6008 USB is a data acquisition device. It generates voltage output based on the signal
from LabVIEW and senses voltage changes in the experiment to control the amount of
voltage to SMA wire. The DC power supply is used to generate a consistent voltage on
SMA. Pulse-width Modulation (PWM) is used to control the voltage by using a SSR. The
SSR can switch on and off swiftly to have a voltage value defined by the user even using
a DC power supply. The camera is used to view the experiment change remotely. By
applying voltage on SMA wire, the temperature of SMA will increase and the length of
the wire will decrease.
52
Figure 16 SMA experiment device.
In order to implement the new remote SMA experiment, there are three tasks to
be done, the user interface development, system integration in server side and integrate
LtoN module to the new SMA experiment.
5.1.2 The Remote SVP Experiment
The design of the SVP experiment is shown in the schematic Figure 18. The
mechanical frame depicted in Figure 18 can be viewed as a simplified cable stay bridge.
The later is composed by one or more piers that tightly hold the cables that suspend the
bridge upper deck. The piers are strong and subject to compression forces, which
translates into high stiffness, while the cables holding the desk are less rigid and subject
to tension forces, which translates into lower stiffness compared to the piers. Thus from
Figure 18, the strong bridge piers are provided by the two thicker vertical bottom walls,
while the more flexible upper walls simulate the low stiffness of the bridge upper deck.
The external sinusoidal force provided by the imbalance mass motor simulate an external
force capable of inducing vibrations on the bridge, such as: wind, rain, etc.
53
Bridge
Deck
SMA
MR
Damper
Bridge
Columns
Figure 17 The diagram of bridge experiment.
A steel tongue attached to the upper platform dips into a small MR fluid reservoir
damper which is mounted to the rigid base. An electromagnet is placed around the MR
fluid reservoir damper such that the terminating ends of the electromagnet “clamp” the
MR reservoir damper. When the electro-magnet creates a magnetic field through the MR
fluid damper the MR fluid increases in viscosity, making it difficult for the tongue to
move through, damping the vibration of the structure. Alternately, stretching diagonally
across the steel frame are two sets of SMA wire braces, forming an “X” shape inside of
the steel frame. On the ends of each set of SMA braces, alligator clips are attached to
allow current to flow through the wires and induce electrical heating. As the wires are
heated, they contract, stiffening the structure, illustrating the effects of stiffness on the
damping ratio of the overall structure.
The electrical wires providing power to the electro-magnet, the SMA wire braces,
and the rotary motor lead down to a power supply encased in a plastic sub-base which
contains the circuitry for the piece, including a microcontroller allowing for computer
54
controlled demonstration, analogy input/output ports for demonstration and feed-back
control with a PC link, manual control buttons, and an LCD user display.
Two
accelerometer sensors mounted on the top and middle bars allow the user to monitor the
system vibration. The bridge experiment device is shown in Figure 19.
Figure 18 SVP experiment device
In order to implement the new remote SVP experiment, there are three tasks to be
done, the user interface development, system integration in server side and integrate LtoN
module to the new SVP experiment.
5.1.3 The User Interface Development
Table 5 depicts the technology, protocol and software used in the client web
application development.
55
Table 5 Technology/protocol/software list of the SMA client web application.
Name
Technology/Protocol/Software
Remark
1
Development Language
HTML , CSS, JavaScript
Using HTML5
2
Socket.IO
Part of Node.js
3
Real-Time communication
Protocol
Integration technology
4
Widgets
JQuery/ JQuery-Mobile
Mashup technology
In addition, the Mashup technology for user interface integration is employed in
our client application. We use server-based Mashup technology to generate our client
application. Server-based Mashup analyzes and reformats the data on a remote server and
transmits the data to the user's browser. Figure 19 and Figure 20 depict three sample
paradigms of the client application which shows three different user interfaces for two
remote experiment. The architecture of our Mashup scheme is divided into three layers:
1) Presentation / user interaction: this is the user interface of Mashup. Our novel design
uses HTML, CSS, JavaScript and Asynchronous JavaScript.
2) Web Services: the system functionality can be accessed using the API services. Our
novel design used JSON-RPC, REST and SOAP.
3) Data: the data is handled in three ways, i.e., sending, storing and receiving. Our
novel design uses JSON and Socket.IO for data transmission.
56
User Control interface
Experiment management
interface
Record Experiment data
Figure 19 Sample paradigms of the new SMA experiment user interface.
User Control interface
Experiment Conduct
interface
Record Experiment data
Figure 20 Sample paradigms of the new SVP experiment user interface.
5.1.4 Server Side Integration
The server application is directly built on the top of a novel assembled server
engine scheme, and it includes two server engines working together, Apache HTTP
server engine and Node.js server engine. Based on the server-based Mashup technology
used in the novel framework, the Apache HTTP server application integrates the user
interface widgets with web content and the real-time experiment video, and Node.js
server application handles the real time experiment data transmission. Table 6 depicts the
technology, protocol and software used in the server application implementation.
57
Table 6 Technology/protocol/software list of the SMA server application.
1
2
3
4
5
Name
Server Engine
Technology/Protocol/Software
Apache, Node.js
Real-Time experiment
data Protocol
Database
HTTP Proxy
Real-Time video
transmission
Socket.IO
MySQL
Node-HTTP-Proxy
Http Live Streaming Protocol
/FFmpeg /Segmenter software
package
Remark
Using the newest
stable version
Part of Node.js
Part of Node.js
We implemented the experiment scheduler system and user management system
on the server-side. For the data management, we use the MySQL Database management
system.
5.1.5 Integrate LtoN Module to Two New Remote Experiment
We design and dimplement a new real time experiment data transmission protocol
based on Socket.IO and JSON. It is named LtoN. Using the new real time transmission
protocol, an end user can conduct the experiment, save the experiment data, and load the
experiment data file. More details of this new protocol are introduced in the following:
1) The new application communication protocol includes two parts, client part
running in browsers and server part running in web server. They are developed by
JavaScript language and enhanced by the web socket protocol.
2) In this new application transmission protocol, we defined our own special
communication instruction set to implement real time experiment control
commands and experiment data transmission. With the new communication
58
instruction set, we can secure the data communication when user is conducting
the remote experiment.
3) In our new protocol, we designed some brief instruction to control experiment
progress to improve the experiment data transmission performance.
For the protocol implementation, we only need to create two JavaScript files, one
for client application running in web browsers and the other one for the server application
running in web server. Then we need to create the new Node.js task to run the protocol in
server-side, and this server-side application must hold running status forever. Because
only the server-side protocol application holds the status active, it can ensure the normal
real time communication. On the client side, there is a set file of communication
instruction functions to support the normal operation of the client application in web
browsers.
5.2 Experiment Data Analysis
The function of SMA experiment has been tested remotely by using the novel
plug-in free remote laboratory at TAMUQ. The test performed a randomly chosen
arbitrary values, 1.205 in, as the reference in displacement control. The reference
switched between the arbitrary value and zero which was manually control in the GUI.
The data containing the real displacement were recorded and were directly downloaded
from the GUI. In each test, the GUI was recording the data for 30 seconds. Downloading
of the data was available in the same GUI. The downloaded data for the real displacement
and the displacement reference in each test was plotted in the same figure by using
MATLAB. Figure 21 depicts the results of the displacement change of SMA in the test
from plug-in free remote laboratory.
59
In the Figure 22, DC voltage of 15 volts in square waveform with frequency, 0.01
Hz, is applied on SMA wire and the displacement change of SMA are plotted in the
figure. At lower frequencies the SMA wire has more time to heat up, the displacement
change is larger at lower frequency.
The hysteresis of SMA is affected by the frequencies of driving voltage. More
demonstrations are performed using AC voltage applied on SMA wire. In the Figure 23,
the displacement change of SMA wire is plotted in voltage series. The 15 volts is in
sinusoidal waveform at frequencies and 0.025 Hz is applied on SMA wire. Similar to the
results in DC voltage trials, AC voltage at lower frequencies produces more displacement
change on SMA wire when the amplitude of voltage keeps the same.
Figure 21 Arbitrary displacement control (with amplitude of 1.205 in) in remote SMA
experiment.
60
Figure 22 DC voltage of 15 V in square waveform applied on SMA wire with frequency
of 0.01 Hz.
Figure 23 AC voltage of 15 V in sinusoidal waveform applied on SMA wire with
frequency of 0.025 Hz (displacement change in voltage series).
61
5.3 Advantages of New Remote Experiments based on the Novel Unified Framework
As Table 7 depicts, it lists the development technology, experiment data
transaction protocol and software package which are used in two different remote
experiments implementation process. The new remote experiments based on our novel
unified framework makes some improvements in traversing network firewall function
and software plug-in free. In order to provide a more realistic experience to the user for
conducting the remote experiments, the new solution also implements the real-time
experiment video function.
Table 7 Technology/protocol/software comparison between two solutions
Function Name
1
2
Traversing
network firewall
Data protocol
3
Real-time
experiment video
4
5
Database
Client – User
Interface
Software plug-in
6
7
8
Server - web
service
Equipment
control
New Remote Experiments with Remote Experiments with
the Novel Unified Framework
LabVIEW
Node-HTTP-Proxy
None
LtoN (LabVIEW to Node.js)
data transaction protocol
HTTP Live Streaming Protocol
/FFmpeg /Segmenter software
package
MySQL
Mashup technology, JavaScript
NI Publish-Subscribe
Protocol (NI-PSP)
None
None
Apache , Node.js , JSON
LabVIEW run-time engine
and browser plug-in
LabVIEW web service
LabVIEW
LabVIEW
MySQL
LabVIEW remote panel
Comparing to the traditional remote experiments with the LabVIEW remote panel,
as the Table 8 depicts, the new SMA remote experiment solution has three advantages.
The user interfaces of the new remote experiments are plug-in free and running in
different web browsers, and the new solution also resolves the traversing network
62
firewall issue. End users only need to access the Internet and use a web browser to
operate the remote experiment. The experiment control webpage is developed by
JavaScript which is a universal and regular computer language. Meanwhile, any regular
web browsers are good to use all the features of the remote panel without requiring any
more extra software plug-ins. In addition, the new remote experiments provide the realtime experiment video function. It also provides a more realistic experience to the user
for conducting the remote experiments. As Figure 24 depicts, the new SMA remote
experiment user interface can also be used through smart phones and tablet computer.
Table 8 The advantages of the new remote SMA experiment.
Advantage
Function Name
1
2
3
Traversing
network firewall
Real-time
experiment video
Software plug-in
New Remote SMA Experiment Remote SMA Experiment
with the Novel Unified
with LabVIEW
Framework
Node-HTTP-Proxy
None
Http Live Streaming Protocol
/FFmpeg /Segmenter software
package
None
None
LabVIEW run-time engine
and browser plug-in
63
Sample Paradigm on Desktop
Sample Paradigm on
iPhone
Sample Paradigm on iPad
Figure 24 Screenshots on PC and portable devices.
CHAPTER 6
CONCLUSION AND FUTURE WORKS
6.1 Conclusion
In this thesis, a novel unified framework for remote laboratory development was
presented. We solved and improved three problems which were mentioned in chapter 1.
To improve problem 3, a novel unified framework was proposed for
implementing the remote laboratory without the need of any extra plug-in. The user
interface can be run on most of current popular Internet browsers in any platform without
installing any additional plug-in. The capability of running remote experiment on
portable device let users gain insights by observing and interacting with the real
instrument in an efficient way.
To resolve problem 4, two innovative solutions were proposed for remote
laboratory development to solve the real-time experiment video and real-time experiment
data transmission across network firewall issues.
To improve problem 6, the new isolated experiment network and the
authentication URL were designed to improve the remote laboratory system security
issue. These solutions were implemented in remote laboratory at TAMUQ.
Finally, two new remote experiments, remote SVP experiment and remote SMA
experiment, were successfully implemented under this novel unified framework. This
novel unified framework gives the future remote laboratory development a prodigious
improvement.
64
65
6.2 Future Works
This thesis presented the design and implementation approach of a novel unified
framework for developing remote laboratory experiments. Meanwhile, it also illustrated
the differences between the traditional remote experiment solution based on LabVIEW
remote panel and the new remote experiment solution based on the novel unified
framework. While the new remote experiment solution compared with the previous
traditional solutions has been significantly improved, there are still more works which
must be done to improve the remote laboratory system stability and security. The future
works are listed below:
1) Based on the current solution of problem 3, the Microsoft IE browser cannot support
MJPEG real-time video format very well until now. To solve the video display
problem in Microsoft IE browser, we still have to install the Java applet plug-in for
the video display. With the software technology development, I believe this problem
can be resolved in near future. Anyway, our solution is working very well in the most
of popular browsers, such as, Chrome, Firefox, Safari, etc.
2) Based on the current solution of problem 6, we used encrypted URL with the MD5
encryption and decryption algorithm to resolve authentication URL issue, and used 10
seconds timer to control authentication URL effectiveness. But its stability is still not
very good, and need to be improved in future work.
REFERENCES
Allen, E., and Seaman, J. (2013). “Changing Course Ten Years of Tracking Online
Education in the United States”, 2013. The Sloan Consortium.
Gomes, L. and Bosgoyan, S. (2009) "Current trends in remote laboratories", IEEE.
Trans. on Industrial Electronics, Vol 56, NO 12, pp. 4744-4756, December, ISSN:
0278-0046.
Rodriguez-Andina, J., Gomes, L. and Bogosyan, S. (2010) "Current trends in industrial
electronics education", IEEE. Trans. on Industrial Electronics, Vol 57, Nº 10, pp.
3242-3244, October, ISSN: 0278-0046.
Melkonyan, A., Gampe, A., Pontual, M. and Huang, G. (2014). "Facilitating Remote
Laboratory Deployments Using a Relay Gateway Server Architecture", IEEE.
Trans. on Industrial Electronics, Vol 61(1), pp. 477-485, Jan, ISSN: 0278-0046.
Li, S., Huai, J., and Bhargava, B. (1995). "Building High Performance Communication
Services for Digital Libraries", Computer Science Technical Reports Paper 1212.
Gillet, D., Salzmann, C., Longchamp, R. and Telepresence, D. B. (1997). “An
Opportunity to Develop Real-World Experimentation in Education”, European
Control Conference, Brussels, Belgium, Session WE-M-L 1, July 1-4.
Callaghan, M.J., Harkin, J., McColgan, E., McGinnity, T.M. and Maguire, L.P. (2007).
“Client–server architecture for collaborative remote experimentation” Journal
of Networks and Computer applications, ISSN: 1084-8045, Volume 30,Issue 4,
pages 1295-1308, November.
Richter, T., Boehringer, D. and Jeschke, S. (2009). “LiLa: A European Project on
Networked Experiments” Automation, Communication and Cybernetics In
Science and Engineering , Part 2, 307-317, DOI: 10.1007/978-3-642-16208-4_27
Olmi, C., Cao, B., Chen, X. and Song, G. (2011). “A Unified Framework for Remote
Laboratory Experiments”, In Proceedings of ASEE Annual Conference &
Exposition (June 26 - 29), Vancouver, BC, Canada.
Omli, C., Chen, X. and Song, G. (2011). “A Framework for Developing Scalable Remote
Experiment Laboratory”, In Proceedings of World Conference on E-Learning in
Corporate, Government, Healthcare, and Higher Education 2011, pp. 2045-2050,
Honolulu, Hawaii.
Chen, X., Osakue, D., Wang, N., Parsaei, H. and Song, G. (2013). “Development of a
Remote Experiment under a Unified Remote Laboratory Framework,” in
66
67
Proceedings of the World Congress on Engineering Education 2013. H.R. Parsaei
and K.S. Warraich, eds.
Olmi, C., Song, G. and Mo, Y. L. (2007). “An innovative and multi-functional smart
vibration platform.” Smart Materials and Structures, 16, 1302–1309.
Hughes-Croucher, T. and Wilson, M.,(2012). “Up and Running with Node.js (First
ed.)”, O'Reilly Media(April), p. 204, ISBN 978-1-4493-9858-3.
Wikipedia, (2013). “Node.js – Wikipedia, the free encyclopedia”, Online, http://
en.wikipedia.org / wiki/ Node.js, accessed May 1.
Wikipedia, (2013). “Socket.IO – Wikipedia, the free encyclopedia”, Online,http://
en.wikipedia.org / wiki/Socket.IO, accessed May 1.
Wang, N., Chen, X., Song, G. and Parsaei, H., (2013). “A New Framework for Remote
Laboratory Development,” IERI Journals: Lecture Notes in Information
Technology 39, 205-211.
Wang, N., Chen, X., Song, G. and Parsaei, H., (2014). “Remote experiment development
using an improved unified framework,” In E-Learn: World Conference on ELearning in Corporate, Government, Healthcare, and Higher Education (pp. 20032010). Association for the Advancement of Computing in Education (AACE).
2014, October.
Wang, N., Weng, J., Ho, M., Chen, X., Song, G. and Parsaei, H., (2014). “Development
Of A Remote SMA Experiment-A Case Study,” In Qatar Foundation Annual
Research Conference (No. 1, p. ITPP0944).
Wang, N., Chen, X., Ho, M., Parsaei, H. and Song, G., (2014). “A Novel Solution For
Addressing Network Firewall Issues In Remote Laboratory Development,”
In Qatar Foundation Annual Research Conference (No. 1, p. ITPP0036).
Foresman, C., (2009). “Apple proposes HTTP streaming feature as protocol standard”,
Ars Technica, Retrieved 2009-07-10, in IETF.
Roger, P. (Apple Inc.), William May, Jr. (Apple Inc.) (2012). "the IETF Internet-Draft of
the HTTP Live Streaming specification." Internet Engineering Task Force, Online,
Retrieved October.
McDonald, C. (2009). “An open source segmenter– written by Carson McDonald”
Subversion (SVN) online, Submitted: June 28.
View publication stats