Today, mobility is one of the most important market and technology trend within information and communication technology. As the demand for rapid deployment of dependable mobile applications increases, middleware for mobile systems is emerging as one of the most active areas of system research in mobility. The middleware is a set of distributed software services that exists between distributed operating systems and mobile applications. The key to the middleware is to provide support 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. The criticality and pervasiveness of middleware for mobile systems is continually growing. However, the design and development of the middleware are di.cult tasks, and it is not easy to ensure the quality of a developed middleware. This is mainly caused by the increasing complexity of the middleware. In addition, the great diversity of this area makes it very di.cult for the designers to reuse the already established design knowledge or successful experience when building new systems. All these make the design process quite ine.cient and unpredictable, and therefore risking the project.One mans magic is another mans engineering. Engineering design is much more routine than innovative. Founding on this fundamental notion in software engineering, we develop an architectural style-based approach to deal with the problems in the book. We build architectural styles for a class of related middleware. The style represents a common form of design, which originates from the results that practitioners have achieved in one area. The style is formulated to repeat successes and avoid failures from previous projects. When building a new middleware, the designers and developers do not need to explore all possible alternatives for its supported architecture. Instead, they can use the architectural style that is e.ective for the middleware. They can de.ne the design as instances of the style, or they can use the style as a reference model for further improvement and development. By structuring the design space for a family of related middleware, the style can drastically simplify the process of building a middleware, reduce costs of implementation through reusable infrastructure, and improve system integrity through style-speci.c analysis and checks.We develop the approach based on UML-like meta modeling and graph transformation techniques to support sound methodological principles, power-ful modeling, formal analysis and re.nement. The approach consists of several main parts: the modeling language that supports speci.cation of the style and mobility, the re.nement formalization that ensures that an abstract style is correctly re.ned to a concrete one, as well as the consistency check framework that validates behavioral consistency between two styles on di.erent abstract layers. With the Fujaba simulation tool support, we also develop a style-based engineering process that helps us to e.ciently develop correct and consistent styles. Besides, it allows a seamless integration of our approach into the well-known object oriented design. By providing a concrete example of how to construct the style for a class of related middleware, and how to use the style to help the design and development of a new middleware, we show that the modeling and simulation-based approach is useful and practical.
Acknowledgements
Along the way, I have got a lot of guidance, support, encouragement and companionship from many people, to whom I am full of gratitude.Above all, I am very grateful to Prof. Dr. Gregor Engels at University of Paderborn, for all the dedication and support he has given at every stage of the book. He has signi.cantly contributed to the book with his comprehensive knowledge, penetrating perspectives, and consistent patience. Thanks to his uncountable suggestions, I have the possibility to make the book such a one that I am satis.ed with.Prof. Dr. Reiko Heckel at University of Leicester also deserves a great deal of thanks. He has guided me into the research area of software modeling and graph transformation systems, starting from basics and going in deep. I have bene.ted a lot from his generosity and collaboration. He has given me many good ideas and suggestions. Especially, the main modeling and simulation framework proposed in the book is based on his original idea.I have also got many useful suggestions and hints from other people. Thanks to Jaakko Kangasharju University of Helsinki, the designer and developer of Wireless CORBA, for the discussions and suggestions. I would also like to thank the Fujaba team for the support and help. Especially thanks to Leif Geiger for the guides to Dobs, and to Lothar Wendehals for the guides to Fujaba.I would also like to thank all my friends and neighbors in PHW2A for their companionship. Especially thanks to Elina Hotman, ChengYee Low, Madhura Purnaprajna, Su Zhao and Andreas Ziermann for proofreading ofAcknowledgementsthis manuscript.I deeply thank my family for their support and understanding. My grandfather has taught me to be optimistic even in the darkest and hardest time, to be appreciative to every experience in my life even to tortures and di.culties. My parents have always encouraged me to try new things that I dream of.Ping Guo Kunming, November 2016