Formalization, Analysis and Prototyping of Mobile Code Systems (Ph.D. Thesis)

In the past few years dynamic and reconfigurable systems have evolved and new strategy and paradigms for the development of applications have been devised. In this thesis we study mobile code based systems focusing on the importance of formalization and investigation of the potential of code mobility. Mobile code paradigms have been used in different systems, however, as most of these are Java based, the potential of code mobility are some-how lost behind the Java language capabilities, and design choices related to mobility have been conditioned by implementation choices. In this thesis we reason on code mobility systems at the design level in order to investigate novel powerful approaches. This thesis is composed of different parts. We first introduce a coordination based language and a model checker to reason on formalization of mobile code based systems with automatic analysis. Properties of mobile agents, of their interaction and behavior may be formally expressed and verified against the system specification. Then,in order to express code mobility potential and to formalize the basic constructs for code migration, we describe a formal language for the specification of very fine-grained mobility. Every line of code, and every variable declaration can be mobile, giving a very high flexibility in the range of application. A prototype of this model implemented in Java is also presented to validate the implementability of the model. Finally, we show a possible incarnation of the fine-grained mobility approach based on XML. The approach allows XML documents to be updated cutting, extending, or replacing parts of the tree structure of the document. We exploit this idea to incrementally update remote code. The approach can be used in different domains; we describe possible applications in graphic user interface management, document consistency checking and management of application on thin clients like personal digital assistants (PDAs).

[1]  Fabio Vitali,et al.  An Extensible Rendering Engine for XML , 1998, Comput. Networks.

[2]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[3]  Giovanni Vigna,et al.  Understanding Code Mobility , 1998, IEEE Trans. Software Eng..

[4]  P. Ciancarini,et al.  A coordination model to specify systems including mobile agents , 1998, Proceedings Ninth International Workshop on Software Specification and Design.

[5]  Robert S. Gray,et al.  Agent Tcl: A transportable agent system , 1995, CIKM Information Agents Workshop.

[6]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[7]  Cecilia Mascolo,et al.  Specification and Analysis of Component Based Software Architectures , 1999 .

[8]  Gruia-Catalin Roman,et al.  A fine-grained model for code mobility , 1999, ESEC/FSE-7.

[9]  Kaisa Sere,et al.  Coordination Among Mobile Objects , 1999, COORDINATION.

[10]  Cecilia Mascolo,et al.  Implementing incremental code migration with XML , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[11]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[12]  Luca Cardelli,et al.  A language with distributed scope , 1995, POPL '95.

[13]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[14]  Cecilia Mascolo,et al.  Using formal methods for teaching software engineering: a tool-based approach , 1999, Ann. Softw. Eng..

[15]  Cecilia Mascolo,et al.  Analyzing the Dynamics of a Z Specification , 1996, DISCO.

[16]  Michel Wermelinger,et al.  Connectors for Mobile Programs , 1998, IEEE Trans. Software Eng..

[17]  P. Ciancarini,et al.  Software architecture and mobility , 1998, ISAW '98.

[18]  Gérard Berry,et al.  The chemical abstract machine , 1989, POPL '90.

[19]  C. M. Sperberg-McQueen,et al.  HTML to the Max: A Manifesto for Adding SGML Intelligence to the World-Wide Web , 1995, Comput. Networks ISDN Syst..

[20]  Jean-Jacques Lévy,et al.  A Calculus of Mobile Agents , 1996, CONCUR.

[21]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[22]  Cecilia Mascolo,et al.  Using a coordination language to specify and analyze systems containing mobile components , 2000, TSEM.

[23]  Cecilia Mascolo Specification, analysis, and prototyping of mobile systems , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[24]  Stelvio Cimato,et al.  Engineering Formal Requirements: Analysis and Testing , 1996, SEKE.

[25]  Manfred Broy Experiences with software specification and verification using LP, the Larch proof assistant , 1996, Formal Methods Syst. Des..

[26]  Paolo Ciancarini,et al.  A Logic for a Coordination Model with Multiple Spaces , 1998, Sci. Comput. Program..

[27]  Walter Schwarz,et al.  Markup meets middleware , 1999, Proceedings 7th IEEE Workshop on Future Trends of Distributed Computing Systems.

[28]  David Orchard,et al.  XML Linking Language (XLink) , 2001 .

[29]  Jan Vitek,et al.  Seal: A Framework for Secure Mobile Computations , 1998, ICCL Workshop: Internet Programming Languages.

[30]  Luca Cardelli,et al.  Mobile Ambients , 1998, FoSSaCS.

[31]  Kuldeep Kumar,et al.  Strategies for incorporating formal specifications in software development , 1994, CACM.

[32]  Rocco De Nicola,et al.  KLAIM: A Kernel Language for Agents Interaction and Mobility , 1998, IEEE Trans. Software Eng..

[33]  Cecilia Mascolo MobiS: A Specification Language for Mobile Systems , 1999, COORDINATION.

[34]  David Wong,et al.  Java-based mobile agents , 1999, CACM.

[35]  Fabio Vitali,et al.  Extending HTML in a Principled Way with Displets , 1997, Comput. Networks.

[36]  Cecilia Mascolo,et al.  XMILE: an incremental code mobility system based on XML technologies , 2000 .

[37]  Fabio Vitali,et al.  Managing Complex Documents Over the WWW: A Case Study for XML , 1999, IEEE Trans. Knowl. Data Eng..

[38]  John A. McDermid,et al.  CADIZ - Computer Aided Design in Z , 1990, Z User Workshop.

[39]  Bernhard Steffen,et al.  Compositional Minimization of Finite State Systems , 1990, CAV.

[40]  Henny B. Sipma,et al.  Deductive Model Checking , 1996, Formal Methods Syst. Des..

[41]  Davide Sangiorgi,et al.  Communicating and Mobile Systems: the π-calculus, , 2000 .

[42]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[43]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[44]  Walt Scacchi,et al.  Process-Driven Intranets: Life-Cycle Support for Process Reengineering , 1997, IEEE Internet Comput..

[45]  P. Ciancarini,et al.  A multi-agent process centered environment integrated with the WWW , 1997, Proceedings of IEEE 6th Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises.

[46]  Wolfgang Emmerich,et al.  Consistency Management of Distributed Documents using XML and Related Technologies , 1999 .

[47]  Wenyu Jiang,et al.  An Architecture for WWW-based Hypercode Environments , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[48]  Michael Z. Spivey,et al.  The Z notation , 1989 .

[49]  Jonathan Robie,et al.  Document Object Model (DOM) Level 2 Specification , 1998 .

[50]  Jim White,et al.  Telescript technology: mobile agent , 1999 .

[51]  Stelvio Cimato,et al.  Engineering formal requirements: An analysis and testing method for Z documents , 1997, Ann. Softw. Eng..

[52]  Xiaoping Jia ZTC: A Type Checker for Z User's Guide , 1994 .

[53]  Gruia-Catalin Roman,et al.  Modeling mobile IP in mobile UNITY , 1999, TSEM.

[54]  Thomas Seidmann,et al.  Publishing Formal Specifications in Z Notation on World Wide Web , 1997, TAPSOFT.

[55]  Roberto M. Amadio An Asynchronous Model of Locality, Failurem and Process Mobility , 1997, COORDINATION.

[56]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[57]  Nicholas Carriero,et al.  Coordination languages and their significance , 1992, CACM.

[58]  Cecilia Mascolo,et al.  Using a Coordination Language to Specify the Invoicing System , 2002 .

[59]  Shing-Chi Cheung,et al.  Context constraints for compositional reachability analysis , 1996, TSEM.

[60]  C. Mascolo,et al.  Analyzing and Re ning an Architectural Style , 1997 .

[61]  Paola Inverardi,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995, IEEE Trans. Software Eng..

[62]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[63]  Stefan Fünfrocken Transparent Migration of Java-Based Mobile Agents , 1998, Mobile Agents.

[64]  Michel Wermelinger,et al.  Towards an algebra of architectural connectors: a case study on synchronization for mobility , 1998, Proceedings Ninth International Workshop on Software Specification and Design.

[65]  Sylvain Conchon,et al.  Jocaml: mobile agents for Objective-Caml , 1999, Proceedings. First and Third International Symposium on Agent Systems Applications, and Mobile Agents.

[66]  Donald D. Cowan,et al.  Experiments with the Z Interchange Format and SGML , 1995, ZUM.

[67]  Gruia-Catalin Roman,et al.  Compositional Programming Abstractions for Mobile Computing , 1998, IEEE Trans. Software Eng..

[68]  Danny B. Lange,et al.  Programming and Deploying Java¿ Mobile Agents with Aglets¿ , 1998 .

[69]  C. Mascolo Model Checking a Software Architecture , 1998 .

[70]  Daniel M. Zimmerman,et al.  benefits and drawbacks of current Java mobile agent systems , 1997 .

[71]  Andy Evans,et al.  Specifying & Verifying Concurrent Systems Using Z , 1994, FME.

[72]  Fabio Vitali,et al.  Visualizing Z Notation in HTML Documents , 1998, ZUM.