Dynamic Adaptive Navigation via MAIS Reflective Framework.
ABSTRACT The wide diffusion of mobile devices and the increasing availability of wireless networks claim applications able to adapt their behaviour with respect to the running context. This paper presents dynamic adaptive navigation (DAN), a novel approach that may be exploited to build adaptive information systems. DAN provides the user with different navigation modalities. The observation of QoS features concerning the users, the devices, and the network drive the selection of the actual navigation modality that is intended as the best available. The navigation modalities are modelled via graphs describing the synthesis/expansion process that must be performed on the information. Applications to be adaptive, either implicitly or explicitly, rely on reflection. Since DAN may be used to build adaptive applications, it should rely on reflective mechanisms too. DAN exploits the ones provided by the MAIS (multichannel adaptive information system) architecture. Indeed, MAIS provides via reflective classes the visibility of the QoS-related aspects of the underlying system objects, being them devices or users. Finally, to verify the usefulness of the ideas, DAN approach has been chosen to develop a new version of PDBudget, a system that supports the academic administration in analysing and evaluating the didactic workload for each lecturer at the University of Milano-Bicocca
- SourceAvailable from: anu.edu.au[Show abstract] [Hide abstract]
ABSTRACT: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns. The nice thing is, most experienced OOP designers will find out they've known about patterns all along. It's just that they've never considered them as such, or tried to centralize the idea behind a given pattern so that it will be easily reusable.Reading, MA: Addison-Wesley. 01/1995;
Conference Paper: Concepts and experiments in computational reflection01/1987
- [Show abstract] [Hide abstract]
ABSTRACT: As the size and complexity of software systems increase, a relevant part of the system overall functionality shifts from the applicative domain to run-time system management activities, i.e., management activities which cannot be performed off-line. These range from monitoring to dynamic reconfiguration and, for non-stopping systems, also include evolution, i.e., addition or replacement of components or entire subsystems. In current practice, run-time system management is impeded by the fact that the knowledge of the overall structure and functioning of the system (i.e., its software architecture) is confined in design specification documents, while it is only implicit in running systems. In this paper we introduce, provide rationale for, and briefly demonstrate an approach to system management where the system maintains, and operates on, an architectural description of itself. This description is causally connected to the system's concrete structure and state, i.e., any change of the ...03/1999;
Dynamic Adaptive Navigation via MAIS Reflective Framework
Marzia Adorni - Daniela Micucci
D.I.S.Co. - Universit` a degli Studi di Milano-Bicocca
Via Bicocca degli Arcimboldi 8, 20126 Milano, Italy
The wide diffusion of mobile devices and the increasing
availability of wireless networks claim applications able to
adapt their behaviour with respect to the running context.
This paper presents Dynamic Adaptive Navigation
(DAN), a novel approach that may be exploited to build
adaptive information systems. DAN provides the user with
different navigation modalities. The observation of QoS
features concerning the users, the devices, and the network
drive the selection of the actual navigation modality that is
intended as the best available. The navigation modalities
are modelled via graphs describing the synthesis/expansion
process that must be performed on the information.
Applications to be adaptive, either implicitly or explic-
itly, rely on reflection. Since DAN may be used to build
adaptive applications, it should rely on reflective mecha-
nisms too. DAN exploits the ones provided by the MAIS
(Multichannel Adaptive Information System) architecture.
Indeed, MAIS provides via reflective classes the visibility of
the QoS-related aspects of the underlying system objects,
being them devices or users.
Finally, to verify the usefulness of the ideas, DAN ap-
get, a system that supports the academic administration in
analysing and evaluating the didactic workload for each
lecturer at the University of Milano-Bicocca.
The wide diffusion of mobile devices (e.g., PDA, smart
phone, and so on) and the increasing availability of wire-
less networks allow the user accessing the information in
any place. Since devices are each others technologically
different and network characteristics dynamically change,
applications should be adaptive with respect to the running
sources. An adaptive application dynamically modifies its
behaviour with respect to its knowledge about the environ-
ment. In detail, adaptive applications are designed so that
they can adapt themselves dynamically and automatically to
different running contexts with respect to the network, the
devices, the profiles of the users that are using them, and
other changes that may influence their performances (,
,  and ).
This paper presents Dynamic Adaptive Navigation
(DAN), a novel approach that may be exploited to build sys-
tems that provide the user with different navigation modal-
ities over a set of information. Systems DAN based adapt
themselves by observing the QoS features of the users (e.g.,
administrator user and meeting), the devices (e.g., screen
resolution and RAM size), and the network (e.g., bandwidth
and delay). The final aim is to support the user in obtain-
ing the information she/he really needs (i.e., information
are adapted to user characteristics) in the best way avail-
able (i.e., the presentation is adapted to the user needs, the
used device, and the available network channels). The nav-
igation modalities are modelled via graphs that describe the
synthesis/expansion process that must be performed on the
information. A navigation graph is a non-oriented graph
in which nodes specify via functions how the information
must be processed. The selection of the actual navigation
graph is made observing the QoS features.
DAN based-systems claim appropriate mechanisms
through which they may dynamically observe and control
the QoS features of the underlying system objects (being
them devices or users) to adapts their behaviours. It follows
that, either implicitly or explicitly, they rely on reflection
( and ), and in particular on architectural reflection
(, , and ).
Reflection is defined as “...the activity performed by a
computational system when doing computation about (and
by that possibly affecting) its own computation” . A re-
flective system maintains a meta-representation about itself
and a causal connection that ensures the consistence be-
tween the meta-representation and the system itself.
To access QoS features, DAN exploits MAIS (Mul-
tichannel Adaptive Information System) reflective frame-
work (, , and ). Indeed, MAIS provides via meta-
0-7695-2653-5/06/$20.00 (c) 2006 IEEE
representation the visibility of the QoS-related aspects of
the underlying system objects.
DAN approach has been chosen to develop a new version
of PDBudget, a system that support the academic adminis-
tration in analysing and evaluating the didactic workload for
each lecturers at the University of Milano-Bicocca.
The paper is organised as follows: Section 2 introduces
DAN concepts; Section 3 introduces the reflective frame-
work MAIS; Section 4 describes how DAN approach has
been applied in a specific adaptive system dealing with
academic didactic management; finally, Section 5 sketches
some conclusions and provides future directions.
2Dynamic Adaptive Navigation: Concepts
DAN supports the design of systems that provide the
users with different navigation modalities depending on the
specific running context. In detail, systems DAN based pro-
vide the user with the correct set of information (in terms of
user characteristics) and the tools to navigate it in the best
available way (in terms of feasible operations for handling
Imagine, for instance, a person using a PC with a 17”
monitor connected to a wide bandwidth network (e.g., 10
Mb). He/she needs to display an own and confidential word
document containing both text and large images hosted on a
remote machine. The QoS features involved are: user priv-
ileges, device display resolution, device display dimension,
and network bandwidth. In such a situation, the word pro-
cessing adaptive application observes the QoS features and
provides the document in its entirely since the user has the
right privileges (the document belongs to him/her), a suit-
able device (the PC has an adequate video system), and the
network has enough bandwidth (the images can be trans-
ferred within the text without big delays).
DAN models the navigation modalities through naviga-
tion graphs that describe the synthesis/expansion process
that must be performed on the information. A navigation
graph is an non-oriented graph. Nodes in the graph spec-
ifies via functions how the information must be processed.
Function may be context-independent (e.g., zoom on a por-
calculus of a mean, creation of a graph).
Each navigation graph is assigned to exactly one tuple
of QoS features, vice versa a QoS tuple is associated to a
set of navigation graphs. The actual values of the QoS in
the tuple fix the current navigation graph: at run time, the
observation of the values of the QoS in the tuple allows the
application to select the associated graph that is intended as
the most suitable for the running-context. If some condi-
tions no more hold (i.e., when the value of one or more QoS
are out of the range for the actual graph) then, a context-
switch is required.
DAN does not specify when the observation is done:
it is up to the application exploiting suitable strategies to
observe dynamically the context. As a matter of the fact,
strategies are domain-dependent.
Nodes, functions, and tuples definitions must be defined
once for all. The same applies for the associations between
node and function, navigation graph and nodes, tuple and
navigation graphs, tuple instance (i.e., the specific value - or
range of values - for each QoS in the tuple) and navigation
Figure 1 sketches the UML class diagram that synthe-
sises the above concepts.
Figure 1. Navigation graph related concepts
An explicative example about DAN concepts is provided
in the following. Suppose that the Rector is working in his
office. Since he may exploit a fast connection and a PC
with attached a traditional monitor, a DAN based applica-
tion may provide him with exhaustive and complete infor-
mation. When he attends a board of directors and uses his
PDA, the application changes its behaviour by presenting
him with information concerning the context and adapted
to the small display.
This situation is faced as follows. It is defined a tuple
like <user role, user status device displayResolution, net-
work type, network bandwidth>. Two graphs are needed:
G1is described by nodes that present information in its en-
tirely and without applying any kind of restriction; whereas
G2is described by nodes that present only significative in-
formation useful for administration purpose.
G1is selected if user role = “Rector”, user status = “of-
fice”, device displayResolution = [640×480,∞×∞], net-
work type = “wired”, network bandwidth = [1Mb,100Mb];
whereas G2is selected if user role = “Rector”, user status
[240 × 160,640 × 480], network type = “wireless”,
network bandwidth = [100Kb,25Mb].
Consequently, when the Rector is in his office, G1graph
is dynamically selected providing him all the functionalities
he may use. On the other side, when he attends a board of
0-7695-2653-5/06/$20.00 (c) 2006 IEEE
director with its PDA, the G2is selected so that he may
access to limited information but coherent with the context.
An adaptive application designed exploiting DAN will
operate as follows (see figure 2):
• it observes the values of the QoS needed (operation
labelled 1 in the figure);
• it selects the best navigation graph available in the nav-
igation graphs (operation labelled 2). The graph is in-
tended as the best available since the associated func-
tions provide the right operations with respect to the
QoS values for the user, the device, and the network;
• it maintains the execution context (operations labelled
3 and 5), i.e., it maintains a reference to the current
information and the relative operations are easily re-
• it extracts and provides both the required information
and the new set of available operations (operations
from 6 to 13). When the user acts on its GUI selecting
a menu item (i.e., activating the corresponding node)
the application requests for the execution of the node
associated function (getInfo() method). It, then, re-
turns the user the information and all the nodes linked
to the current one. The new nodes specify the new set
of performable operations. Indeed, they depend on the
actual state of the information (suppose, for instance,
that has been required a “print preview”: the new set
of operations does not include full editing features).
The operation from 2 to 9 are executed each time current
QoS values do not fall in the ranges associated to the current
graph. Whereas, operations from 6 to 13 each time the user
interact with the GUI.
3MAIS: the Reflective Framework
DAN requires to observe and control dynamically the
values for the QoS defined in each tuple assigned to avail-
able navigation graphs. Since Multichannel Adaptive In-
formation System (, , and ) reflective framework
as the underlying framework to build adaptive DAN-based
In detail, MAIS is a reflective framework which allows at
run-time QoS features (via reflective classes) to be observed
and controlled in a platform- and standard-independent
way. According to the separation of concerns principle, re-
flective classes do not embed any policy. They just provide
a “reasonably” abstract visibility of QoS features. MAIS
introduces the concept of reflective information about the
Figure 2. The adaptive behaviour
QoS of the system components. A MAIS-based applica-
tion may exploit two different kinds of reflective informa-
tion: reflective knowledge and reflective guesses. The for-
mer ones model the “certain” awareness about the QoS of
the system components that can be directly and immedi-
ately observed and controlled (typically, the system compo-
nents that are co-resident on the same node). The latter ones
model the “uncertain” awareness about the QoS of the (typ-
ically remote) system and network components, which can-
not be directly and immediately observed and controlled.
In particular, a guess allows an application to reason about
the QoS of a remote system component even if it cannot
be directly observed or controlled: for instance, there is a
network failure, or the remote device is switched off, or the
communication delay is unacceptable. MAIS defines reflec-
tive objects as the meta-representations of the QoS features
of the underlying system objects.
Reflective objects are reified in MAIS concrete architec-
ture by R Object class (see figure 3). This class provides
the applications with the interface they exploit to manage
the system’s reflective aspects. Functional object in figure
3 represents functional aspects of the physical object.
If there is a system object associated to a reflective ob-
ject, the latter one embodies reflective knowledge, i.e., cer-
tain information about the state of the system object. Oth-
erwise, the reflective object embodies a reflective guesses,
i.e., uncertain information about the state of the remote, not
causally connected system object. In this case, a local re-
0-7695-2653-5/06/$20.00 (c) 2006 IEEE
Figure 3. The reflective object
flective object mirrors the reflective information embodied
by another remote reflective object that plays the role of
source or of target.
R Object provides methods to allow higher-level
and/or modify the QoS properties for a specific system
QoSValue).These methods simply align reflective
information (i.e., hosted in the R Object) from reflective
objects to application and vice versa.
reflective knowledge, the causal connection is trigged
by wish() (to control) and update() (to observer)
methods. The same methods apply to reflective guesses: in
this case they deal with another reflective object hosted by
another node. They are not atomic since there is no causal
In the case of
4Case Study: PDBudget
The aim of the CampusOne project1was the develop-
ment of a system to support the academic administration in
programming didactic plans. The system is currently in-
stalled and used at the University of Milano-Bicocca. The
system provides tools to easily redact, exchange, and share
documents concerning didactic management.
In detail, the system comprises the following application
modules: OFNet, PDLite, and PDBudget. OFNet allows
to insert and to consult didactic regulations and proposals,
to insert new teachings, to assign course with the specific
didactic activities, and to draw didactic plans for each fac-
ulty course. PDLite uses the OFNET information and al-
lows to elaborate didactic plans. Such didactic plans may
afterwards analysed using PDBudget. It allows, amongst
other things, to analyse specific faculty courses, to visualise
the analysis results adopting fixed criteria, and to print the
1CampusOne is a project founded by CRUI (Conferenza dei Rettori
delle Univerit` a) Italiane. http://www.campusone.it/uni/milanobicocca/
analysis results. Moreover, PDBudget provides the follow-
ing analysis criteria:
• lecturer oriented: for each lecturer it is possible to
analyse her/his activity amount and how she/he has
been assigned to courses;
• didactics oriented: for each faculty course it is possi-
ble to analyse the number of courses, the overall CFUs
(Crediti Formativi Universitari), the total number of
hours, and so on;
• budget oriented: for each faculty course, it is possible
to analyse the coverage typology of each course and to
The architecture of PDBudget application is depicted
in figure 4. Didactics planes are loaded in a centralised
database (data layer) so that they are available for ana-
lytic purposes. The application layer maintains the business
logic. Finally, the presentation layer is reified by a Java ap-
plication that presents information “as-is”, i.e., it does not
operate any kind of adaptation referring to device, network,
and user characteristics.
Unfortunately, the size of the tables maintaining infor-
mation is often very large. This is a disadvantage for the
users exploiting PDAs for navigation purposes.
Figure 4. Actual PDBudget structure
To obtain adaptivity, we have reviewed the overall sys-
tem structure as depicted in figure 5.
We have maintained the same structure concerning both
the data and and the application layer, whereas we have in-
troduced the adaptive application layer between the appli-
cation and the presentation layers. It comprises the follow-
Adaptive Manager exhibits a set of APIs suitable for the
interaction between the end-user application and its
current navigation graph;
0-7695-2653-5/06/$20.00 (c) 2006 IEEE
Figure 5. Adaptive PDBudget structure
Adaptive Web Manager provides the same services as the
previous one, but it has been designed for users that
access the service via Web.
The above two components are also in charge of building
user interfaces suitable to the characteristics of the device.
The presentation layer contains components that are in
charge of presenting the user with the information obtained
from the adaptive application layer. They may be simply
browsers (that interact with the Adaptive Web Manager via
Manager via APIs).
Considerable efforts have been done to model a system
that easily integrates modifications to respond to new spec-
ifications. Indeed, components have been designed exploit-
ing design patterns  (when it has been possible). For in-
stance, the Strategy Pattern has been applied for the defini-
tion of the specific functions, whereas the Factory Pattern
drives their instantiations. Furthermore, some choices have
been done to make easy system extension. We cite, for in-
stance, that an adaptive PDBudget application is not aware
that the Adaptive Manager (reified by the VirtualAssistant
class) is remote.
4.2.1 Adaptive Application Layer
DAN aim is to provide adaptive navigation of data arranged
in a tabular form. Final aim is to make the reading of data
comfortable with respect to the QoS features of the device,
the network, and the user characteristics.
To exploit navigation graphs in PDBudget, class
Node in figure 1, has been sub-classed:
to figure 6, PDBudgetNode class models a node
whose associated function is not context-dependent, e.g.,
the selection of two columns.
PDBudgetContextualNode class models a node
whose function is context-dependent, e.g., a function cal-
culating a metric over a set of rows.
On the other side,
Figure 6. PDBudget nodes
VirtualAssistant and WebServices classes
form the adaptive application layer (see figure 7): the for-
mer maintains the reference to the graph and provides the
client application with methods for both navigating and pre-
senting information; the latter provides the same function-
alities, but via web services.
Figure 7. The adaptive application layer
A client application interactswiththe
VirtualAssistant (or WebServices) class with a
schema similar to the one presented in figure 2. In reply to
a client request for the service, the VirtualAssistant
selects the graph that satisfies the actual QoS features of the
client (user, device, and network) and returns the ID of the
root node. The root node is the starting point for the inter-
action between the client and the VirtualAssistant.
To obtain the required information, the client calls the
VirtualAssistant execute() method by passing
0-7695-2653-5/06/$20.00 (c) 2006 IEEE
as argument the ID of the root node. Whereas, to obtain
the menu to be used for navigating actual information, the
client calls the getNodes() method.
When the user select a menu item, the client ap-
plication calls again the execute() method of the
VirtualAssistant by passing as argument the name
of the selected item. Since there is a correspondence be-
tween item names and node IDs, VirtualAssistant
retrieves the corresponding node, sets it as current node,
retrieves the information, and sends it to the client. To
operate with the up-to-date information, the client has to
build the new “ad-hoc” menu. At this aim, it calls again
the getNodes() method. The VirtualAssistant
retrieves the nodes that are associated to the current node
and sends them to the client.
The mechanism above described holds for every interac-
tion between the client application and the virtual assistant.
In our test-bed a Java application has been developed and it
has been deployed in a PDA.
Figure 8. The Java application
Main class is the PDBudget that implements the
MAISApplication interface (i.e., it is a MAIS applica-
tion). The class uses the VirtualAssistantProxy to
access the adaptive application layer. This kind of virtual
assistant hides the actual location of the navigation graph to
the client application.
5Conclusions and Future Developments
In this paper we have proposed DAN, an approach that
allows to build applications that adapt themselves by ob-
serving both user characteristics and other information re-
lated to network and devices. DAN based systems provide
the users with different navigation modalities that depend
on the QoS features of the actual running context. To access
QoS features, DAN exploits the MAIS reflective frame-
work. DAN has been exploited to build a specific applica-
tion (denoted Adaptive PDBudget) inside a system support-
ing the academic administration in programming didactic
DAN is based on navigation graphs each of them asso-
ciated to QoS tuples. The algorithm used to select the best
graph may be strengthened by the application of techniques
from both Business Intelligence (based on probability the-
ory) and Artificial Intelligence.
oped within the Italian MURST-FIRB Project MAIS
 M. Ancona and W. Cazzola. Implementing the essence of
reflection: a reflective run-time environment. In Proceed-
ings of the 2004 ACM Symposium on Applied Computing,
pages 1503–1507, 2004.
 L. Andrade and J. Fiadeiro. An architectural approach to
auto-adaptive systems. In Proceedings of the 22nd Interna-
tional Conference on Distributed Computing Systems Work-
shops, pages 439–444, 2002.
 F. Arcelli, C. Raibulet, F. Tisato, and M. Adorni. Architec-
tural reflection in adaptive systems. In Proceedings of the
2004 Conference on Software Engineering and Knowledge
 L. Capra, W. Emmerich, and C. Mascolo. Carisma: Context-
aware reflective middleware system for mobile applications.
In IEEE Transactions on Software Engineering, volume 29,
pages 929–945. IEEE, 2003.
 W. Cazzola, A. Savigni, A. Sosio, and F. Tisato. Archi-
tectural Reflection: Bridging the Gap Between a Running
System and its Architectural Specification. In Proceedings
of the 2nd Euromicro Conference on Software Maintenance
and Reengineering and 6th Reengineering Forum, March
 E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design
Patterns: elementsofreusableobject-orientedsoftware. Ad-
dison Wesley, 1995.
 F. Kon, F. Costa, G. Blair, and R. Champbell. Adaptive mid-
dleware: The case for reflective middleware. In Communi-
cations of the ACM, volume 45, pages 33–38. ACM, 2002.
 P. Maes. Concepts and Experiments in Computational Re-
flection. In Proceedings oF Object-oriented programming
systems, languages and applications, pages 147–155. ACM
Press, October 1987.
 B. Pernici and et al. Mobile Information Systems. Springer,
in press (April 2006).
 I. Politecnico di Milano. MAIS: Multichannel Adaptive In-
formation Systems. web, 2002. (URL last visited March, 16
 B. C. Smith. Reflection and Semantics in a Procedural Lan-
guage. Technical Report 272, MIT Laboratory of Computer
 F. Tisato, A. Savigni, and W. Cazzola. Architectural Reflec-
tion. Realising Software Architectures via Reflective Activ-
ities. In Proceedings of EDO2000 (2nd International Work-
shop on Engineering Distributed Objects), November 2000.
0-7695-2653-5/06/$20.00 (c) 2006 IEEE