and the limited access to the lecturer creates a
particular scenario to this main idea.
In this case, the first task is the explanation of
already resolved examples for the basic concepts
mentioned in the previous section. They are shared
among students, and the concepts are related to
client-remote service applications. When a particular
concept is studied, its associated code is emphasized.
The complete comprehension of these concepts
is particularly critical. CORBA is very sensitive to
code failures due to its different component
coordination. A small programming error will be
reproduced in several compilation and execution
failures. This problem makes students become
discouraged. They must face their problems alone
when they have enough knowledge to do it. Before
this, students solve the simplest exercises with a set
of usual failures that they may look up. This makes
them fluent enough in programming, gradually
improving until their own exercises resolution.
When the basic concepts are fixed, the most
advanced ones are introduced. They are first
introduced theoretically by referenced books,
prepared class notes and resolved questions.
Practical exercises are included too, getting more
relevant (in length and difficulty) when the course
approaching its end.
Both theory and practice imply different tasks. In
the theoretical part, students have a range of well-
known exercises, such as the “HelloWorld”, a basic
calculator, etc. The goal is for students to become
familiar with the CORBA architecture. On these
same cases, students have suggested improvements
that they may conduct. Usually these improvements
are simple and students may resolve them
throughout the course. Students get confidence and
lose the “fear” of this environment. They do not
have to resolve any exercise from beginning to end
at this level, since it could result in the students
giving up.
In the practical part, students face small
problems, using the material provided or searching
for it. The lecturer does not have an important
presence, and his mission is to make sure that all
students achieve the desired knowledge level.
In a second level, students have more experience
(even the heterogeneity of the group may cause
some of them to even consider the first level easy).
They implement more complex cases as a simple
database, where the lecturer “presence” is more
active. Doubts arise when they implement the
different topics assigned.
Regarding the second level of practical exercises,
students develop an introductory first practice where
CORBA and its invocation system are presented.
They compare a simple client-remote server
CORBA application with an also simple sockets one
(based on the communications interface included in
the operating system). Students learn the code,
compile it and execute it. Thereby, they know what a
middleware means. Moreover, they learn other key
issues, such as a benchmarking tool to analyze
applications.
The second practice is slightly more complex.
They perform a three-band communication. The
central server is an application that reads data from a
remote database, (which may be referred to by any
service). Client application refers to the remote
server for getting information from that database.
Students learn more realistic cases, and they face
new problems such as the concurrency one. The
lecturer must follow the students progress.
Finally, the tutorship has special relevance along
the course. Students with low background require a
special dedication. More examples and cases are
prepared for them. On the other hand, the most
advanced students do not employ many hours.
However, their monitoring is also required for
ensuring the entire right comprehension.
4.2 .NET Learning
Once the students have acquired the theoretical
concepts of this technology, the practical training
sessions start, consisting of the development of
applications. The objective is to put the previous
competences into practice, acquiring new ones.
These applications form a set of activities which will
be reported in a document. Furthermore, they will be
managed by a lecturer in an open access laboratory,
in tutorship timetable, and via email.
The activities have an increasing difficulty, and so
that, they start with simple applications
programming. Students train with the development
tool provided by the .NET platform. Subsequently,
students implement codes based on the
communications among clients and servers. The
course program concludes with a .NET Remoting
and a simple b2b service using this communication
methodology.
The first activity introduces students to the Visual
Studio environment which is provided by Microsoft.
All codes are implemented in C# language and the
objective is to develop .NET applications. In this
first activity, students perform the simulation of
banking transactions, so actions as balance enquiry,
expenditure, deposit, etc. are implemented. To this
aim, concepts like classes, objects, arrays,
CONTENTS AND METHODOLOGY OF MIDDLEWARE PROGRAMMING FOR DISTANCE LEARNING IN
MASTER PROGRAMS
233