2.1 Overview
This chapter focuses on the requirements analysis of the middleware for mobile systems. The very first step of an architecture-centric approach is to characterize the problem domain, conclude the main characteristics and aspects to be modeled. Different problem domains require different software architecture descriptions [36], and it is not good and not sensible to have the same view(s) of software architecture for all the software systems. Understanding the problem domains and their properties is a key to better understanding the needs of software architectures, architecture-based development, and architectural description.
There exist some papers that survey the middleware for mobile systems. However, they focus mainly on technical details and design strategies of the different middleware platforms, which present a great diversity. What is missing is to apprehend the middleware at an abstract level, which should abstract from particular product characteristics and provide a conceptual framework for understanding and comparing the different approaches. In the chapter, we will develop a general framework for describing the middleware, which fills in the blank. The framework is abstracted from specific implementation details and summarizes the main characteristics of the middleware. The generalization based on the framework enables us to compare different approaches from a common point of view, and to observe similarities and common aspects from the great diversities of the middleware. This builds a basis for constructing the architectural style for the middleware that should represent a common form of design for a class of related middleware.
In order to explain the middleware for mobile systems better, we will pursue the chapter in a gradual way. We will start with characterization of the middleware for distributed systems in Section 2.2. We will characterize the middleware for distributed system in such a way that allows a better understanding of the middleware for mobile systems, and that emphasizes the main difference between the two kinds of middleware. Afterwards, we will explain the middleware for mobile systems in detail in Section 2.3, which includes the general framework for describing the middleware and its definition. Section 2.4 illustrates the framework with some existing middleware examples. At the same time, we will compare the different middleware, conclude the important elements that decide or influence the design of the middleware. Besides, we will conclude commonalities of the design strategy of the middleware, which will be used to construct the architectural style of the middleware in the following chapters. Section 2.5 discusses which aspects should be modeled for the middleware.