Professional Documents
Culture Documents
1009 - Pocatilu
1009 - Pocatilu
1009 - Pocatilu
3/2010
Paul POCATILU
Economic Informatics Department
Academy of Economic Studies, Bucharest, Romania
ppaul@ase.ro
The evolution of today's mobile devices increases the number of mobile applications devel-
oped, and among them the mobile learning applications. Mobile hardware and software plat-
forms allow running of faster and richer applications. This paper presents the main steps in
development of a distributed mobile learning application for Android. The client application
communicates with the server using Web services. The prototype developed includes the test-
ing module.
Keywords: Mobile Application, Android Operating System, Web Service
1 Introduction
Mobile learning applications are devel-
oped using various technologies and plat-
stored within the mobile device.
Distributed mobile learning applications (in-
cluding Web based) load and use the content
forms. Each implementation has specific cha- when they need it.
racteristics in terms of user interface and con- Distributed platforms have a similar architec-
tent and influences the development process. ture as Web-based platforms, but the client
A mobile learning system consists at least of application is a rich application and not a
the following components: simple mobile Web browser and the server is
Mobile learning device; also different.
Mobile learning software; The advantages of using this platform are:
Mobile learning content. Rich user interface;
The software required for mobile learning Support for multimedia content;
process is a simple mobile Web browser or a E-learning content can be easily updated
dedicated application, that can be standalone on the server;
or a client application. There are also some disadvantages:
The students' actions within an m-learning The user need to install and setup the
system are to [2]: client application;
Take online course; The user have to learn how to use the ap-
Take exams; plication;
Send feedback; Possible additional costs for traffic usage.
Send homework, projects. The development of distributed mobile learn-
The trainers involved in e-learning solutions, ing applications involves the following steps:
including m-learning, are to: Project Management;
Deal with content management; Analysis;
Prepare tests; Design;
Assess tests, homework, projects taken Implementation;
by students; Testing.
Send feedback; The steps are applied to software develop-
Communicate with students (forums, e- ment and to mobile content.
mails and other type of messaging). The application development consider the re-
One of most used architecture for mobile sults obtained in [5] and [6] related to the
learning applications is Web based due to quality of mobile applications and systems.
well known technologies that are used. Figure 1 depicts the components involved in
Usually, standalone mobile applications need a distributed mobile learning system.
that all the mobile learning content to be In addition to mobile learning content, there
Informatica Economică vol. 14, no. 3/2010 107
are databases used to manage users, messag- lized modules are developed to provide:
es and other settings. Data stored in databas- User control;
es is accessed from dedicated servers. Content management;
The mobile learning application, developed Courses;
for Android based devices, has the following Tests;
modules: Marks.
Courses; The modules are written independently, and
Quizzes; they share the common data. Each module
Final and partial tests; has an associated screen and they are
Messaging. launched from a main screen.
In order to administrate the system, specia-
Mobile
Application Internet/
Network
M-learning
content
Mobile/Desktop
Application
Web Services/
Web Server/
Application Servers User
management
Messaging
archive
The communication between client and serv- in ICT. Android platform is an open source
er is based on Web services. XML Web ser- project, allowing its amendment by any man-
vices have many advantages for developers ufacturer of mobile devices.
and for users: they use simple protocols and Figure 2 depicts the architecture of Android
the implementation of the services and operating system.
clients is easier than other methods. The operating system is based on Linux ker-
The prototype developed up to now imple- nel version 2.6.x, that is a monolithic kernel.
ments the quizzes module. The kernel includes drivers for the mobile
device hardware: screen, keyboard, camera,
2 Android Platform USB, Bluetooth etc. Kernel provides inter-
2.1 Android Operating System face hardware and memory management,
Android operating system is a project in- processes and other resources.
itiated by Google through the Open Handset
Alliance, which includes over 30 companies
108 Informatica Economică vol. 14, no. 3/2010
The interface is simple and intuitive, without is ActTeste and is declared as the main activi-
any graphics and drawings. That will reduce ty in AndroidManifest.xml configuration file.
the amount of memory required by the appli- When the application is launched, the list of
cation and reduces the time of development. tests is automatically loaded in this screen.
Future versions will include de redesigned The list is an object of ListView type.
and friendlier user interface. The application The description of list elements is defined in
targets the mobile devices with touch screen, a resource file based on XML. For the exam-
but is not limited to. ple from Figure 3 the following structure was
The main screen for the quizzes module is used for each list element:
presented in Figure 3. The associated activity
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
/>
public boolean
onCreateOptionsMenu(Menu menu)
{
menu.add(0, LOGIN, 0, "Login");
menu.add(0, LOGOUT, 1, "Logout");
menu.add(0,IESIRE, 2,"Iesire");
menu.add(0,DESPRE, 3,"Despre");
return true;
}
When the user selects a test from the list, the public boolean onPrepareOptionsMe-
nu(Menu menu)
screen associated to the first question will be
{
shown. Figure 4 illustrate the graphical inter- if (idIntrebareCurenta ==
face associated to the question window. numarIntrebari)
menu.setGroupEnabled(
ActIntreb.INAINTE, false);
else
menu.setGroupEnabled(
ActIntreb.INAINTE, true);
//…
}
used when Intrebare objects are created using The student has the possibility to review the
this method. answers and to calculate her or his score.
At the end, the student can review the an- Because the answers are stored in a HashMap
swers and send them to the server in order to and the questions need to be shown sorted by
monitor the progress. question code, the class Intrebare imple-
ments the Comparable<Intrebare> inter-
face.
4 Web Services
The Web service used by this application has
been developed using Microsoft .NET tech-
nologies. The Web service provides several
Web methods that are used by this mobile
learning application.
The use of Web services provide a very flex-
ible way for client applications that can be
developed on almost any mobile or desktop
platform.
The GetNumarIntrebariTest method re-
turns the number of questions of a given test
identified through a code. The number of
questions is taken from the database.
If an exception occurs, the method will return
a negative value.
The following code is an example of a me-
thod used in this Web service:
try
{
conn.Open();
nrIntrebari = (int)cmd.ExecuteScalar();
}
catch (Exception ex)
{
nrIntrebari = -1;
}
finally
112 Informatica Economică vol. 14, no. 3/2010
{
conn.Close();
}
return nrIntrebari;
}
The Web services are consumed using a added to the envelope body (using SoapOb-
third-party library distributed as free source ject class).
kSOAP2 (http://ksoap2.sourceforge.net/), The HttpTransportSE class is used to make
optimized for Android. the actual call of the Web service method, the
The libraries need to be added to the project envelope being passed as parameter. The re-
in order to be used. This library is based on sult is retrieving from the response part of the
the SOAP architecture and there is no need to envelope.
generate a proxy/stub to call Web services The getIntrebare function is used to access
methods. the Web service and to call a specific method
A SOAP envelope is created using the Soap- used to get the specified question. The func-
SerializationEnvelope class (specifying tion's source code is:
the SOAP version) and the request details are
public static Intrebare getIntrebare(int idTest, int idIntrebare)
{
try
{
SoapObject request = new SoapObject(NAMESPACE, GET_INTREBARE);
SoapSerializationEnvelope envelope =
new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport =
new HttpTransportSE(URL_WS);
androidHttpTransport.call(NAMESPACE + GET_INTREBARE, envelope);
//question initialization
intrebare.setIdIntrebare(Integer.parseInt(result.getProperty(
"IdIntrebare").toString()));
intrebare.setText(result.getProperty("Text").toString());
SoapObject variante = (SoapObject) result.getProperty("Var");
}
catch (Exception e)
{
e.printStackTrace();
Informatica Economică vol. 14, no. 3/2010 113
intrebare = null;
return intrebare;
}
return intrebare;
}
For the future versions the following me- applications is very important and challeng-
thods will be taken into account: ing compared with stand alone applications.
Local files; There are several areas where the security re-
Property files; quirements are high and they need special at-
Local databases. tention.
Table 1 presents some security concerns re-
5 Security Issues garding the mobile learning solutions, based
The security of distributed mobile learning on [7].
These issues can be managed using several methods and techniques like:
114 Informatica Economică vol. 14, no. 3/2010