移动系统中间件建模与仿真
上QQ阅读APP看书,第一时间看更新

1.1 Motivation: middleware for mobile systems

Distributed systems [142] enable us to use the best combination of hardware and software components for an enterprise. However, it is difficult to construct a coherent and operational distributed system that integrates the needed components. Middleware is originally designed to help manage the complexity and heterogeneity caused by the distribution characteristics of distributed systems [50, 142]. It integrates distributed heterogenous components and makes components interoperable. Middleware is layered between network operating systems and application components [19, 27]. It adds mechanisms and services that are much more specialized than those provided by the operating system. It enables application engineers to abstract from the implementation of error-prone and complex low-level details, such as concurrency control, transaction management and network communication, and allows them to focus on application requirements [50, 124]. The construction of a large class of distributed systems can be hence simplified by leveraging middleware. In addition, middleware leads to faster and cheaper system development and enhances the quality of systems. Besides have being rapidly adopted in industry [32], middleware platforms are getting popular in the academy research area [50]. Microsoft's DCOM (Distributed Component Object Models), Sun Microsystems' EJB (Enterprise JavaBeans), OMG's CORBA (Common Object Request Broker Architecture) are the examples of most popular middleware models.

Today, mobility is one of the most important market and technology trend within information and communication technology. With the fast development of high-speed wireless communication technologies and component miniatur-ization technologies, new types of mobile applications and mCommerce have emerged. At the same time, distributed systems are evolving into mobile systems, which can be seen as a special kind of distributed system designed for mobile, wireless communication environments. Mobility represents a total meltdown [121] of the stability assumptions (e.g. network structure, network connection, power supply, CPU, etc.) associated with traditional distributed computing. The main difference is caused by the possibility of roaming and wireless connection. Roaming implies that, since devices can move to different locations, their computational context (network access, services, permissions, etc.) may change, and the mobile hosts are resource limited. Wireless connections are generally less reliable, more expensive, and provide smaller bandwidth, and they come in a variety of different technologies and protocols. All these result in a very dynamic software architecture, where configurations and interactions have to be adapted to the changing context and relative location of applications.

Mobility poses new requirements and complexity for application developers (Fig. 1.1) through defining a very challenging target execution environment. As the demand for rapid deployment of dependable new mobile applications increases, middleware is emerging as one of the most active areas of system research in mobility [121]. Many middleware platforms and paradigms for mobile systems [29] have been created. The key to middleware for mobile systems is to provide support (Fig. 1.1) across the mobile application domains, help application developers overcome the complexity and problems brought by mobility, and enhance dependability and usability of developed mobile applications.

Figure 1.1 Middleware and applications

The criticality and pervasiveness of middleware for mobile systems is continually growing. However, the design and development of the middleware is a difficult task, and it is not easy to ensure the quality of a developed middleware. Middleware designers and developers (Fig. 1.1) have some serious problems to cope with. The middleware is becoming increasingly complex with the fast development of wireless technologies and the increase of mobile application requirements. The managed components are increasing in scale and in scope. The requirements for the middleware are becoming more and more complex. Increasing system complexity typically brings the following problems:

  • longer design and development time;
  • more complex assembly due to number of components and number of people involved;
  • increased cost and time for testing;
  • increased maintenance costs.

Overall, this results in an increased time to market for the developed system. And development and maintenance costs are also increased in order to ensure the quality of the system. However, the current research area of middleware for mobile systems has concentrated on developing new types and patterns of middleware, and there is nearly no work on the design and development process of the middleware.

At the same time, to build large complex systems you must have predictability. We can not afford to be ad-hoc in design. However, there is no common agreement or understanding of the middleware for mobile systems. The middleware platforms present a great diversity:

  • they have distinct functionalities and provide various services to applications;
  • they use very different design concepts and strategies;
  • the aimed wireless network could be different (e.g. nomadic network or ad-hoc network);
  • they exist because of mobility or in spite of mobility or both;
  • the moving units can be logical or physical mobile or both;
  • the definition of context and the level of context-awareness can be very different.

On one side, designers have to manage the huge diversity of design techniques, concepts, implementation technologies of the middleware. On another side, it is very difficult for the designers to reuse the already established design knowledge or successful experience when building new systems. This makes the design process quite inefficient and unpredictable, and thereforey risking the project.