A Middleware Architecture for Developing Mobile Applications

A Middleware Architecture for Developing Mobile Applications

Hana Rubinsztejn (Federal University of Mato Grosso do Sul, Brazil), José Viterbo (Federal Fluminense University, Brazil), Vagner Sacramento (Institute of Informatics, Federal University of Goias, Brazil), Ricardo Rocha (Institute of Informatics, Federal University of Goias, Brazil), Gustavo Baptista (Pontifical Catholic University of Rio de Janeiro (PUC-Rio), Brazil) and Markus Endler (Pontifical Catholic University of Rio de Janeiro (PUC-Rio), Brazil)
DOI: 10.4018/978-1-61520-655-1.ch017
OnDemand PDF Download:


In this chapter, the authors present MoCA, a service-oriented middleware architecture that supports the development and deployment of distributed applications for mobile devices, which are inherently context-aware and adaptive. Besides explaining its main services and APIs, they discuss in which ways the MoCA architecture supports some well-known software engineering principles that apply to the design and implementation of context- aware applications. Furthermore, the authors give an overview of its usage and present prototype applications that have been developed on the top of MoCA.
Chapter Preview

The Design Of Moca

It has been well recognized that the development of context-aware and adaptive mobile applications is a complex task and requires the careful observance of several well-known software engineering principles (Ghezzi, Jazayeri, & Mandrioli,1991; Roman, Picco, & Murphy, 2000). Some of these principles guided our design and development of the MoCA architecture itself and, therefore, were fundamental to the success of the project. As shown in Figure 1, MoCA was designed as a layered architecture following a context server approach (Baldauf, et al., 2007), in which largely independent services provide an infrastructure for collecting, distributing and processing context information. This approach aimed at facilitating the development of applications by observing principles such as separation of concerns, multi-level abstractions, incremental development, flexibility of customization and multi-language and interoperability support.

Figure 1.

Layered architecture of MoCA

Key Terms in this Chapter

Mobile Applications: A generic term describing distributed Internet applications that run on smartphones and other mobile devices.

Middleware: A software that hides the heterogeneity of various hardware components, operating systems and communication protocols by providing uniform, standard, high-level interfaces to application developers.

Ontology: A formal representation of a set of concepts within a domain and the relationships between those concepts

Context-Aware Computing: Applications that are aware of the context in which they are running and adapt their behavior accordingly.

Context: Any information that can be used to characterize the situation of an entity.

Separation of Concerns: A process of separating a computer program into distinct features that overlap in functionality as little as possible.

Location-Based Applications: Applications that adapt their behavior according with the location of the user or device.

Complete Chapter List

Search this Book: