IP surveillance software system for mobile devices.
Grigorescu, Costin Marius ; Moraru, Sorin Aurel ; Kristaly, Dominic Mircea 等
1. INTRODUCTION
IP surveillance systems have been developed to offer a solution to
existing CCTV systems. The new system offers the possibility to switch
to the digital world using cutting edge equipment for surveillance and
video monitoring.
Some of the advantages offered by IP Surveillance systems over CCTV
ones are (Axis Communications, 2008):
* Remote access: the possibility to access the cameras from any
computer connected to the network, and, if the network has internet
access, from virtually any place in the world.
* Unlimited recordings: the duration of the recordings is limited
only by the hard drive space.
* Automated alarming system: the server that makes the recordings
can send different types of alarms (by email or sms) to a predefined
list of persons if an event occurs.
This paper presents a system of software applications that allows a
user that has a smartphone or a pda to access an IP surveillance system.
2. SOFTWARE SYSTEM
The system is to be developed using the C# programming language and
will be compatible with Microsoft Windows Mobile versions 5 and 6. The
system is made from two applications:
* A client application that runs on Windows Mobile based PDAs and
smartphones. This application displays the information (images from the
surveillance cameras) received from the server application on the
user's screen.
* A server application that performs the following tasks:
management of users (including their access rights) and IP surveillance
system (list of cameras, location where to make the recordings, etc.),
connects to the surveilance system, stores the video information and
also sends it to the client application.
The client and server software applications communicate with each
other using the Microsoft Message Queueing system. This is a messaging
protocol that allows applications running in seperate locations or in
separate processes to communicate in a reliable way. A queue is a
temporary storage location that holds the messages until the conditions
are favorable for sending them. A queue can be seen also as a buffer
that keeps the information until the connection between the applications
is restored and the information can be sent (Wikipedia, 2009). The
structure of the system can be seen in Fig. 1.
[FIGURE 1 OMITTED]
3. CLIENT APPLICATION
The client application is an application for Windows Mobile capable
of runing on versions 5.0, 6.0 and 6.1 on smartphones and PDAs. It can
adjust its graphical interface accordingly with the screen resolution of
the device on which it is running.
At startup, the application will show to the user the
authentication dialog. After the user has entered his credentials and if
the credentials are recognized by the server, the application will show
to the user a list of the surveillance cameras from which he is
authorized to see images.
After the user selects a camera, the application will start
receiving images captured by that camera. The communication between the
client and server applications is presented in Fig. 2.
[FIGURE 2 OMITTED]
The steps of the communication between the client and server are
described in the following paragraphs.
The client application starts up. During start up, the application
reads from a configuration file the address of the server and the name
of the Authentication Requests Message Queue (ARqMQ).
After the user has entered his credentials, the application sends a
request object to the ARqMQ that contains the following information: a
unique client identification code, the user's credentials,
information about the user's device and the request type (request
for login). The device information contains the screen's resolution
and data transmission capabilities (GPRS, 3G, HSDPA, etc.). The server
application uses the device information received from the client to
adjust the size and quality of the images sent from the camera to the
client's device. If the device has a slow data transmission rate,
the images will have low quality.
The server extracts the object from the ARqMQ and verifies the
user's credentials. If the credentials are good, then the server
puts the user inside a list of currently active users, and buils a
response for the client: the client's unique identification code,
the authentication response (success or fail) and, in the case of
success, the list of surveillance cameras the user has access to, and
the name of the message queue from which the client will reveive images
from the cameras. This response will be put in the Authentication
Responses Message Queue (AReMQ). The server also creates the Message
Queue in which it will put the images from the cameras (Client Message
Queue--CMQ).
The client is listening to the AReMQ and is verifying all of the
new messages that are put inside this queue. When he finds a message
that contains its unique identification code, it extracts this message
from the queue. The client application reads the content of this
message. If the authentication failed, the application will display a
proper message to the user. If the authentication has succeded, the
application will display the list of available surveillance cameras.
If the user has selected a camera, the client builds a request
object containing the client's unique identification code, the
user's id, the camera's id and the request type (start
receiving images). This request object is sent to the server into the
Camera Requests Message Queue (CRMQ). From this point on, the client
will listen to its CMQ for new images from the server. The server reads
the client's request for a camera, verifies again the user's
rights to view that camera and, if everithing is ok, it starts sending
images to the client's CMQ.
If the user wants to stop receiving images, he can click on a stop
button. In this case, the client application will send another request
object into the CRMQ, but this object will have its request type set to
stop receiving images. At this moment, the server will stop from adding
new images into the CMQ.
When the user closes the application, an object containing the
client's unique identification code, user information and the
request's type (request for log off) is sent to the ARqMQ. The
server takes this message from the ARqMQ and removes the user from the
list of active users and also removes its CMQ.
4. SERVER APPLICATION
The server application is a Windows application that performs the
following tasks:
* Connects to the IP surveillance cameras to store the video
information on the server's hard disks.
* Connects to a Microsoft SQL Server database to read the
information about the users, the users' rights, about the
surveillance cameras and about the location where to keep the
recordings.
* Connects to a number of Message Queues in order to perform the
communication with the client application.
At startup, the application loads from the database the list of
cameras for which it has to store their recordings. For each camera, in
the database there are stored the following informations: IP address,
username, password and recording type (continuous, motion based or at
certain intervals). After the startup, the application waits for
authentication requests from clients. When an authentication request has
arrived in the ARqMQ, the application gets the user's credentials
from the request object and checks them inside the user's table
from the database. If the credentials are correct, then the application
puts the user inside a list of currently active users. For each user
inside this list, the application stores the following information: user
device specific informations (screen resolution, data transmission
capabilities), list of available cameras, client unique identification
code (using this code the application builds the name of the CMQ) and
the current camera from which the client is currently receiving images.
After verifying the credentials, the application builds the
response object and puts it into the AReMQ.
When the client makes a request to start receiving images from a
camera, by adding an object into the CRMQ, the application checks to see
if the user has the right to connect to that camera and, if the user has
rights, it connects to the camera.
To connect to a camera, the application instantiates an ActiveX
control that the camera manufacturers--Vivotek provide (Ultimate Serial,
2009). Using this control, the application can receive from the camera
the video information (Che, 2007).
To send images to the CMQ, the application creates a thread
(Northrup et al., 2006) that will capture, at a specified interval, the
current image from the camera.
The interval is automatically set according with the client's
device data transmission capabilities. If the device has a low data
transmission rate, then the interval will be bigger, in order to make
sure that the client has enough time to get all of the images.
Each image is resized to the client's device screen resolution
and has a quality based on the data transmission speed of the
client's device. After the application has finished processing an
image, it verifies the list of active users to find the users that are
currently receiving images from that camera. For each user found, the
application sends the image to its associated CMQ.
The communication between the server application, surveillance
cameras, database and Message Queues is shown in Fig. 3.
[FIGURE 3 OMITTED]
5. CONCLUSION
The use of the Microsoft Message Queueing System for communicating
between remote software applications proves to be a very simple and
efficient mechanism. Message queues provide also buffering so the
software developer does not have to find a way of implementing a
buffering system if the connection between the applications is lost for
a period of time.
6. REFERENCES
Che, P. (2007). MediaPlayback Control, Electronic version.
Northrup, T.; Wildermuth, S. & Ryan, B. (2006). Microsoft
.NET Framework 2.0--Application Development Foundation, Microsoft
Press, 0-7356-2277-9, USA
*** (2008) http://www.axis.com/documentation/whitepaper
/video/cctv_to_ipsurveillance.htm--Axis Communications, Converting an
analog CCTV system to IP-Surveillance, Accessed on: 2008-06-21
*** (2009) http://en.wikipedia.org/wiki/Microsoft_Message_
Queuing--Wikipedia, Microsoft Message Queuing, Accessed on: 2009-08-17
*** (2009) http://www.ultimateserial.com/vsttutor.html--Ultima
Serial, How to use ActiveX in Visual C#.NET, Accessed on: 2008-06-25