Proposal for Hewlett Packard Europe Philanthropy
Programme on Network Mobile Computing
 

LinkMe:  Distributed Link Services for Mobile Environments

Imperial College of Science, Technology & Medicine
University of Southampton
 
 

Contents

  1. Participants
  2. Project Summary
  3. Motivation
  4. Background Work and Current Limitations
  5. Research issues
  6. Activity Workplan
  7. Requested Support
  8. Publication of the Results
  9. References

1      Participants

1.1     Department of Computing, Imperial College

Distributed Software Engineering Research Group
Department of Computing, Imperial College
180 Queen’s Gate
London,  SW7 2BZ.
 
Dr. Naranker Dulay nd@doc.ic.ac.uk +44 171 594 8288 
Prof. Jeff Kramer jk@doc.ic.ac.uk +44 171 594 8271
Dr. Jeff Magee jnm@doc.ic.ac.uk +44 171 594 8269 
Prof. Morris Sloman mss@doc.ic.ac.uk +44 171 594 8279
 
Principal Investigator:  Dr. Naranker Dulay
Official Contact for Financial Matters:  Prof. Morris Sloman, Director of Finance

1.2     Department of Electronics & Computer Science

University of Southampton
Multimedia Research Group, Department of Electronics and Computer Science
University of Southampton
Highfield
Southampton, SO17 1BJ.
 
Dr. David De Roure dder@ecs.soton.ac.uk +44 1703 592418
Prof. Wendy Hall wh@ecs.soton.ac.uk +44 1703 592388
 
Principal Investigator:  Dr. David De Roure

Official Contact for Financial Matters:  Prof. Wendy Hall


2      Project Summary

The overall objective of this project is to provide a distributed link service for mobile users of distributed hypermedia (Web) information systems.  This will include servers, mobile agents, specification and elaboration techniques for architecture description and runtime support.

The work is novel in that integrates work on open hypermedia, mobile agents, constraint specification and software architectures and has broader applicability in areas such a programmable telecommunications.

This will be a 3 year project and a proposal has been submitted to the UK EPSRC Multimedia and Network Applications Programme for funding of the full-time research assistants at each site (approx. 6 man years).  The academics indicated in section 1 above will work part-time on the project.  We are requesting support from the HP Network Mobile Computing Programme for Notebook computers, Palm-tops and NetBeam Infra Red LAN Access points for both Universities – total value approx. $62K.

Mobile fieldworkers, updating maps will be used as the case study.  The UK Ordnance Survey’s Geographic Information System will be used for a demonstrator and critical evaluation of the work.  They are providing manpower for evaluation to the work and access to electronic maps.

2.1     Objectives

  • To investigate the issues involved in providing distributed hypermedia link services for mobile users and to design a framework, possibly based on mobile agent technology, to deliver such services.
  • To investigate the role and nature of constraint specification in software architectures and distributed hypermedia link services. This will include determining a set of constraint specification patterns (examples) that can be applied to a range of application scenarios and mobile agent based applications.
  • To implement runtime support for constraint satisfaction at the architectural level to permit adaptation to a changing mobile environment while maintaining consistency with the Architectural Specification.
  • To implement a demonstrator application scenario relating to updating Ordnance Survey maps by mobile field-workers in order to evaluate the tools and techniques with respect to expressiveness, usability and run-time efficiency.
  • 2.2     Milestones in first 12 Months

    Month 6:
  • Description of current DLS architecture in Darwin, and initial design for asynchronous version. Demonstration of asynchronous version.
  • Review and Evaluation of Constraint-Based Techniques and Tools.Review and Selection of Mobile Computing
  • Platform.Requirements Analysis, Specification and Design of Ordnance Survey Demonstrator.
  • Month 12:
  • Design for caching, in Darwin; demonstration of intermittent connectivity.
  • Initial Architecture Description Language Proposal and Compiler.

  • 3      Motivation

    Hypermedia assists the user in navigating the available information space; this space is diverse and distributed, populated by multimedia objects which may be persistent, constantly updated, perhaps dynamically generated. Navigation may involve pre-authored links (`buttons') and links computed dynamically [Hall 94].  Tools and techniques have been developed to assist in the authoring and browsing activities, to help the user find more relevant information more quickly.  In a mobile environment, where time and resources are limited and communication quality variable, the requirement of rapid retrieval of relevant information becomes even more important and is an important objective for this project.

    Common usage of the Web involves embedding links within documents in the HTML format; in this sense the Web can be considered a 'closed' hypermedia system. However, there is nothing inherent in the Web infrastructure that prevents links from being abstracted from the documents and managed separately. The University of Southampton’s Distributed Link Service (DLS) takes this approach in order to implement an open hypermedia system above the infrastructure of the World Wide Web [Carr 95] [Carr 96] [DeRoure 96b] [DeRoure97]. This provides a powerful framework to aid navigation and authoring.

    Our overall research objective is to refine and extend the architecture of the DLS to provide distributed link service support (servers, tools and techniques) for mobile users of distributed hypermedia (Web) information systems. A good way to introduce the problem and therefore the research issues is to give a scenario based on the work practices of our industrial collaborator, Ordnance Survey

    Ordnance Survey runs a distributed information management system to manage the vast amounts of text and graphical data that is necessary to support its operations. It is organised with a central HQ in Southampton, and regional and field offices throughout the UK. The surveyors are based in the field offices and are required to send the results of their surveys back to the central office. These will often be in the form of very large datafiles or annotations, modifications, corrections to existing files. The field operators need to be able to access current versions of the information held centrally including map data from the central Geographic Information System (GIS). They currently use workstations based in their offices but will increasingly move to the use of portable PC's which they already take out into the field and that will in the future be connected by wireless technology to the organisation’s network. The field operators also need to collaborate with one another and with their offices, and to access reference documentation managed centrally.
     

    Figure 1 Proposed Demonstrator

    The current design of the DLS is based on agents and the open hypermedia paradigm, which have proven to be powerful approaches to some of the issues of distributed information management [DeRoure 96a]. However there is a need for a new approach for the DLS to cater for mobile environments.  A very flexible and successful approach to specifying, building and managing distributed systems is to employ an architecture description language (ADL).  Architectural description languages are used to describe the architecture of an application or service in terms of the software components (e.g. mobile agents) required and the interactions between them.   Such descriptions can then be employed to build and manage the distributed application or service. In mobile environments, the architecture of an application or service should be self-organising in that the components should be able to configure and reconfigure autonomously themselves in response to their environment and in response to changing circumstances, for example, if required components are missing they should be downloaded and installed or migrated from another site; if required components are out-of-date, newer versions should be instantiated; if the quality-of-service varies, components should adapt accordingly. Deployment of a sophisticated mobile application or service should be as easy as deployment of a traditional desktop application.

    This project will provide new tools and techniques for specifying and managing self-organising software architectures to support mobile users and applications.   Such tools and techniques will also have broader applicability in areas such as programmable telecommunications.


    4      Background Work and Current Limitations

    4.1     Open Hypermedia Systems & Distributed Link Service

    Open Hypermedia Systems have been well researched by the Hypermedia community, and increasingly Web applications, particularly publishing applications, adopt the open hypermedia approach.  The key notion is that links are first class objects, stored and managed separately from documents; like documents, they can be stored, transported, cached and searched, and their use can be instrumented.  The Distributed Link Service makes this separation of concerns explicit by treating link creation and resolution as a service, and in fact it is a service which may be provided by multiple link servers and link resolution engines. Open hypermedia systems are more complex to engineer than closed systems, distributed systems such as DLS more so; there are, for example, important scalability issues to be addressed.

    Our existing design makes assumptions about its infrastructure, which break in the presence of mobility.  These fall into two categories.

  • Networks.  The DLS, like other distributed hypermedia systems, assumes network connectivity for access to document and link servers, and the proxy architecture is used to introduce links synchronously.  Intermittent connectivity demands a more asynchronous model, with caching, and mobility also makes assumptions of locality invalid; these characteristics demand more sophisticated version control and synchronisation of documents and links.  This demands a more complex architecture for DLS, and one that would benefit from self-organisation; a mobile agent model may be appropriate.
  • Multimedia.  Documents (or fragments) may undergo media conversion in order to be delivered under a low quality of service, either to different media or by being downgraded in some way.  Techniques must be established so that link anchors (position or content) are preserved through such transformations.  Maps are an interesting case study in this respect as various conversions (including removing features, and vector to raster conversion) are possible; e.g. a surveyor with a detailed map of one area sometimes.
  • 4.2    Specification of Self-Organising Software Architectures

    Architecture Description Languages (ADL’s) are increasingly being used to structure complex applications from reusable software components [Shaw96].  Of particular benefit is that the fact that architectural descriptions are an ideal skeletal framework for other support tools e.g. graphical design tools, compilers, behavioural and performance modellers, debuggers and application management software [Kramer97].  Most ADL’s provide support for abstract definitions of components using typed interfaces, for hierarchical composition and for indirect component binding.   In addition, many ADL’s provide some domain-specific support, for example, in configuration management, or distributed systems, or behavioural modelling.   Darwin [Magee95] is an ADL that has been developed over many years at Imperial College, an which has been successfully applied in several domains: distributed systems, parallel processing and embedded applications.  In addition to the ADL features mentioned earlier, Darwin provides specific abstractions for configurable distributed applications: interface composition (useful for multimedia applications), dynamic & lazy instantiation of components (useful for dynamic applications or services), an abstract model for distributed component allocation and interoperability with non-Darwin services and legacy applications.

    As software architectures become more complex and more dynamic, there is a need to be able to constrain the architecture of systems in more sophisticated and more generic ways. ADL’s need to include constraint specifications. Such specifications could be application-specific (e.g. Ordnance Survey), and/or domain-specific (e.g. catering for the quality-of-service requirements present in mobile environments), and/or used to enforce a specific architectural style (e.g. connectors).  By augmenting constraint specifications with actions to be taken on constraint failure, architectural descriptions can provide a framework to reconfigure applications autonomously in a mobile environment.

    The Darwin ADL currently provides limited support for constraint specification in the following areas:

    Powerful, but easy to write constraint specifications are needed to augment Darwin’s built-in constraints and to allow generic constraint specifications for component selection (e.g. component type’s A and B conflict and must not be used in the same context), composition (every composite component must include an authentication component), binding (at most 10 clients can bind to the file service), topology (dining philosophers must be connected in a ring) and reconfiguration to be defined.  Constraint will also help us address some difficult research problems: (1) Can we specify and determine all legal combinations of an architecture?   (2) If an architecture can have more than one legal structure, how do we select the one that has the “best-fit”?   (3) Can a mobile component belong to more than one architectural domain at runtime, if so how is it reconfigured?  (4) Can we dynamically merge two applications using their architectural descriptions?  (5) Can we dynamically split an architecture into two or more architectures?

    Although architecture description languages are primarily used to structure application software, we can also apply the structural capabilities of an architectural description language to structure complex link hierarchies.  The addition of constraint specifications to the architectural description language can then be used to handle constraints for dynamic link hierarchies.


    5    Research issues

    To summarise, the research issues that will be addressed by the project include:

    6    Activity Workplan

    6.1    WP1 Distributed Link Service for Mobile Environments

    The University of Southampton’s DLS will be used as starting point to investigate the issues that arise when working in a mobile environment.  The approach we will take is:

    Redesign the DLS with an asynchronous model, so that link resolution is independent of document delivery, also enhancing the current concept of context to include geographical location.  The new design will be prototyped using existing DLS components as far as possible.

    Design client-side link caching to support intermittent connectivity, using local link resolution and link data resynchronisation.  In addition to supporting reading, the caching needs to address document annotation and collaboration.

    The anchors (endpoints) of links are either identified by their position in documents or by matching content (e.g. a feature on a map).  Due to constraints on quality of service, documents may need to be converted to different formats during delivery (and this may occur dynamically, perhaps according to the self-organising architecture). This phase addresses the management of the automatic conversion, and in particular the preservation of link anchors across conversion.

    With the above in place, we can support a range of hypermedia linking functionalities, including content-based navigation, and the final phase is to investigate this.  The investigation includes an experiment in describing this 'information architecture' with the software architecture modelling tools.

    Deliverables:

    Month 6:      Description of current DLS architecture in Darwin, and initial design for asynchronous version.
                          Demonstration of asynchronous version
    Month 12:    Design for caching, in Darwin; demonstration of intermittent connectivity.
    Month 18:    Design for resynchronisation in Darwin; demonstration.
    Month 24:    Demonstration of preservation of anchors through media conversion and content-based navigation.

     6.2    WP2 Specification of Self-Organising Software Architectures

    The Darwin ADL for distributed applications will be used as a starting point for specifying self-organising architectures of mobile applications and services.

    In Darwin software components are allocated to hosts by mapping components to integer-valued locations and then using a separate resource-mapping description to map location numbers to actual resources.  The model is flexible but needs to be adapted to cater for mobile environments, which have more varied resources and variable quality-of-service. In addition, the model needs to cater for migratory components, which move from location to location.

    Darwin supports dynamic lookup and binding to external or legacy services by interacting with a running nameserver or trader that is used to locate a service.  Mobile applications will need to be able to adapt and reconfigure in response to changing environments and quality-of-service.  This requires greater flexibility in specifying how and when services are located, bound, relocated and rebound.

    In addition to the traditional 1st-party binding where individual client components initiate binding to servers, Darwin also supports 2nd-party binding where the server component controls the binding and configuration of client components. 2nd-party binding is specified in terms of architectural descriptions that use virtual components as placeholders for potential components. At runtime, actual components, possibly members of other architectures can substitute for a virtual component.  The notion of virtual components (like virtual machines in operating systems) is powerful but needs further work to refine how virtual components are selected and reused.

    In addition to configuring applications, we have done some initial work on dynamically configuring protocol stacks to adapt to changing communications patterns.  In our framework, protocol layers can be added to, or removed from, the protocol stack during the lifetime of the communication session, allowing the software to react to changing quality-of-service levels provided by the network and operating system.

    Darwin needs to support architectural constraints, which must be maintained by the software infrastructure to ensure (by reconfiguration) an application’s correctness in a mobile environment.  In addition, generic constraint specification techniques are needed enforce common configuration styles [Shaw95], pipe-and-filters [Allen92], blackboards [Nii86] and layered protocol stacks [Crane97].

    Deliverables:

    Month 6:       Review and Evaluation of Constraint-Based Techniques and Tools.
    Month 12:     Initial Architecture Description Language Proposal and Compiler.
    Month 18:     Evaluation of ADL in Demonstrator.
    Month 36:     Final Architecture Description Language and Compiler.

    6.3    WP3 Runtime Support

    Our applications will be built using Web technologies such as HTTP, HTML, JavaScript and Java.  An OMG MASIF-compliant mobile computing platform for Java such as IKV’s Grasshopper [Grasshooper98] or General Magic’s Odyssey [Ugai97, Odyssey98] will be used for programming application-level components and where appropriate DLS components.

    At the architectural level, we will develop a portable ADL compiler (in Java) to translate constraint-based architectural descriptions into either directly executable Java code or into a specially designed code for runtime constraint satisfaction by a runtime interpreter.
    We will implement suitable runtime support for selecting, locating, installing and moving components, allocating and scheduling local and remote resources, and interacting with application management systems.  We will also use an existing location service for mobile environments [Leonhardt96] which supports context-awareness (mobile computer can automatically find out where it is) and location tracking (location information is automatically propagated to central computers).

    Deliverables:

    Month 6:       Review and Selection of Mobile Computing Platform.
    Month 18:     Prototype Runtime Support System.
    Month 36:     Final Runtime System.

    6.4     WP4 Evaluation

    The overall objective of this WP is to evaluate the tools and techniques by testing them to implement a real demonstrator to be used by Ordnance Survey field-workers. The emphasis in this evaluation will be to see whether the new techniques and tools work correctly in producing a demonstrator that meets its requirements and in trying to identify whether the approach does improve productivity.

    Ordnance Survey will attend meetings in the earlier part of the project, to help establish the case study.  They will then review the project after one year and determine an appropriate evaluation strategy.  A likely scenario is that the prototype at Southampton will be extended to inter-operate with Ordnance Survey software, and this will then be made available within Ordnance Survey for evaluation.

    We will use the extended ADL to redesign and re-implement the DLS service and determine the improvement resulting from using new tools and techniques.  However we realise this can only be a subjective evaluation, as any re-implementation should be expected to be quicker and produce a better product than the original.

    The prototype tools will be used to produce the demonstrator.  Feedback from the field workers from using the demonstrator hyperlink service will be used to refine the approach.  In addition we intend to use the prototype facilities for individual and group student projects within our respective teaching environments, and to make them available to other industrial collaborators in related project to test the prototype facilities for other mobile application scenarios.  This will provide additional critical feedback from technical users.

    The evaluation will try to determine:

    Deliverables:

    Month   6:     Requirements Analysis, Specification and Design of Ordnance Survey Demonstrator.
    Month 18:     Prototype Demonstrator produced using Prototype tools.  Initial Evaluation.
    Month 36:     Final Demonstrator and Evaluation
     

     6.5     Workplan Overview

     
     
     Figure 2  Workplan Overview


    7    Requested Support

    The equipment requested will be divided between Imperial College and the University of Southampton.
     
    Qty Part No. Description
    Unit. £
    Total £
    Total $
    7 F1430A HP Omnibook Sojourn CT 5/233
    4320
    30240
    48384
    4 F1431A HP Omnibook Sojourn multi-media expansion slice
    389
    1556
    2490
    4 F1433A HP Omnibook Sojourn battery slice
    564
    2256
    3610
    4 F1250A HP Palmtop 620LX
    740
    2960
    4736
    4 F1242A HP Palmtop 620LX docking cradle
    23
    92
    147
    2 F1252A VGA-Out PC Card
    100
    200
    320
    12 J2964A HP NetBeamIR LAN Access Point
    150
    1800
    2880
    Conversion $1.6 per £
    Total
    $62,566
     
    Contact for prices:  Gary Linden, HP UK Pre-sales support (0990 474747)


    8    Publication of the Results

    All the results of the work will be available via the following Web reference
    http://www-dse.doc.ic.ac.uk/projects/link-me

    9    References

  • [Allen92] Robert Allen and David Garlan, A Formal Approach to Software Architectures, Proceedings of IFIP ’92, J. van Leeuwen (Ed), Elsevier, September 1992.
  • [Allen94] Robert Allen and David Garlan, Beyond Definition/Use: Architecture Interconnection, Proc Workshop on Interface Definition Languages, Portland, Oregon. In SIGPLAN Notices, Vol 29, No 8, pp38-45, August 1994.
  • [Baquero95] Carlos Baquero, Vitor Fonte, Rui Oliveira.  MobiScape: WWW Browsing under disconnected and semi-connected operation,  In Proceedings Portuguese WWW National Conference, Braga, July 1995.
  • [Bickmore97]  T. W. Bickmore and B. N. Schilit. Digestor: Device-Independent Access to the World Wide Web.  In Proceedings for the Sixth International World Wide Web Conference, 1997, pp. 655-663.
  • [Campbell94] Andrew Campbell, Geoff Coulson and David Hutchison, A Quality of Service Architecture, ACM Computer Communications Review, Volume 24, Number 2, 1994, pp6-27. Internal report number MPG-94-08.
  • [Carr 95] Les Carr, David DeRoure, Wendy Hall, and Gary Hill,  The Distributed Link Service: A tool for publishers, authors and readers,  in Fourth International World Wide Web Conference: The Web Revolution, (Boston, Massachusetts, USA), pp. 647-656, Dec. 1995. World Wide Web Journal issue 1, ISBN 1-56592-169-0, ISSN 1085-2301.
  • [Carr 96]  L. Carr, G. Hill, D. DeRoure, W. Hall, and H. Davis, Open information services, Fifth International World Wide Web Conference,  (Paris, France), pp. 1027-1036, May 1996.
  • [Cohen90] Jacques Cohen, Constraint Logic Programming Languages, Communications of the ACM, Vol 33, No 7, pp 52-67, July 1990.
  • [Crane95] Stephen Crane, Jeff Magee and Nat Pryce, Design Patterns for Binding in Distributed Systems, Presented at the Workshop on Design Patterns for Concurrent, Parallel and Distributed Object-Oriented Systems at OPSLA '95, Austin, October 1995.
  • [Davies 95]  Davies, N., G.S. Blair, K. Cheverst, and A. Friday.  A Collaborative Multimedia Application for a Mobile Environment, Proc. Mobile Multi-media Communications, Bristol, U.K., 11-13 April, 1995.
  • [DeRoure 96a]  D. DeRoure, W. Hall, H. Davis, and J. Dale, Agents for distributed multimedia information management, First International Conference on the Practical Application of Intelligent Agents and Multi-Agent Technology, (London, UK), pp. 91-102, Apr. 1996.
  • [DeRoure 96b] David DeRoure, Les Carr, Wendy and Gary Hill, A Distributed Hypermedia Link Service,  in Third International Workshop on Services in Distributed and Networked Environments, (Macau), pp. 156-161, IEEE, June 1996.
  • [DeRoure 97]  D. DeRoure, L. Carr, W. Hall, and G. Hill, Enhancing the Distributed Link Service for Multimedia and Collaboration, Future Trends in Distributed Computer Systems, (Tunis, Tunisia), IEEE October 1997.
  • [Grasshopper98] Grasshopper: An Intelligent Mobile Agent Platform,
  • http://www.ikv.de/products/grasshopper.html, IKV++ GmbH. 1998.
  • [Hall94]  Wendy Hall, Ending the Tyranny of the Button, IEEE Multimedia, Vol. 1, No. , Pp. 60-68, Spring 1994
  • [Hiltunen98] Matti A. Hiltunen, Configuration Management for Highly-Customizable Services, To appear in 4th Intl Conf on Configurable Distributed Systems, Annapolis, May 1998
  • [Kaiser 97]  Kaiser, G., and Whitehead, J.  Distributed Authoring and Versioning, In IEEE Internet Computing 1, 2 (Sept. 1997), pp 76-77.
  • [Kramer97] Jeff Kramer and Jeff Magee, Exposing the Skeleton in the Coordination Closet, Coordination ‘97, Berlin, September 1997.
  • [Leonhardt96] Ulf Leonhardt and Jeff Magee, Towards a Location Service for Mobile Environments, Proceedings of the Third IEEE Workshop on Services in Distributed and Networked Environments, pages 43-50, Macau, June 1996
  • [Magee95] Jeff Magee, Naranker Dulay, Susan Eisenbach and Jeff Kramer, Specifying Distributed Software Architectures, Proc. of 5th European Software Engineering Conference (ESEC '95), Sitges, September 1995, LNCS 989, (Springer-Verlag), 1995, 137-153
  • [Martinka96]  Joseph J. Martinka and Kave Eshghi, An Architecture for Adaptable Distributed Application Management (ADAM), HP Laboratories Technical Report HPL-96-30, March 1996.
  • [McAffer96]  Jeff McAffer, Meta-level Architecture Support for Distributed Objects, Proceedings of Reflection 96, G. Kiczales (ed.), pp39-62, San Francisco. 1996.
  • [Minsky97]  Naftaly H. Minsky and Victoria Ungureanu, Regulated Coordination in Open Distributed Systems, Proc. of the Second International Conference on Coordination Models and Languages, Berlin, September 1997.
  • [Nii86] H. Penny Nii, Blackboard Systems, AI Magazine, Vol 7, No 3, pp38-53 and Vol 7 No 4, pp82-107, 1986.
  • [OCL97] Object Constraint Language Specification, Version 1.1, Unified Modelling Language (UML), September 1997.
  • [Odyssey98] Odyssey, Home Page at http://www.genmagic.com/agents.
  • [Schilit96]  Bill N. Schilit, Fred Douglis, David M. Kristol, Paul Krzyzanowski, James Sienicki, and John A. Trotter.  TeleWeb: Loosely Connected Access to the World Wide Web. Computer Networks and ISDN Systems, Volume 28, issues 7-11, p. 1431, May 1996.
  • [Shaw95] Mary Shaw, Robert DeLine, Daniel V. Klein, Theodore L Ross, David M. Young and Gregory Zelesnik, Abstractions for Software Architecture and Tools to Support Them, IEEE Transactions on Software Engineering, Vol 21, No 4, pp314-335, April 1995.
  • [Shaw96] Mary Shaw and David Garlan, Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall, 1996.
  • [Ugai97] Takanori Ugnai and Michael Bursell, Comparison of Autonomous Mobile Agent Technologies, APM Ltd, Cambridge, 1997.
  • [Winter96]  Winter, C.S., Titmuss, R. and Crabtree, I.B, Intelligent Agents, Mobility and Multimedia Information, PAAM 96. Proceedings of the First International Conference on the Practical Application of Intelligent Agents and Multi-Agent Technology,  pp693-707, 1996
  • [Yokote92] Yasuhiko Yokote, The Apertos Reflective Operating System: The Concept and its Implementation, Proceedings OOPSLA 92, ACM SIGPLAN Notices, Vol 27, No 10, pp 414-434, October 1992.

  • That's All Folks!