Information about http://www.cs.wustl.edu/~schmidt/PDF/mda_wkshp.pdf

CoSMIC: An MDA Generative Tool for Distributed Real-time and …

Tags: 115a campbell hall, aniruddha gokhale, balachandran, brookings drive, component middleware, computer science information, douglas c schmidt, jeff gray, jeff parsons, nanbor wang, neema, otto hahn, otto hahn ring, principled methods, siemens ag, software integrated systems, st louis mo, university birmingham, vanderbilt university, wustl edu,
Pages: 6
Language: english
Created: Sat Sep 2 07:12:34 1911
Display cached document
Page 1
image
Page 2
image
Page 3
image
Page 4
image
Page 5
image
Page 6
image
  CoSMIC: An MDA Generative Tool for Distributed Real-time and
      Embedded Component Middleware and Applications
                Douglas C. Schmidt                    Aniruddha Gokhale, Balachandran Natarajan
                                                       Sandeep Neema, Ted Bapty, Jeff Parsons
                   schmidt@uci.edu                           fgokhale, bala, neemask, bapty, parsonsg
                                                                  @isis-server.vuse.vanderbilt.edu
                  Dept. of Electrical                        Institute for Software Integrated Systems
              and Computer Engineering
               University of California                               Vanderbilt University
               616E Engineering Tower                                 Box 1829, Station B
               Irvine, CA 92697, USA                                Nashville, TN 37203, USA

                      Jeff Gray                     Andrey Nechypurenko                      Nanbor Wang
                  gray@cis.uab.edu              andrey.nechypurenko@siemens.com            nanbor@cse.wustl.edu
               Dept. of Computer and                   Siemens AG, CT SE2               Dept. of Computer Science
                Information Sciences                                                          and Engineering
                115A Campbell Hall                                                           Campus Box 1045
                1300 University Blvd                     Otto-Hahn-Ring 6                   One Brookings Drive
           Univ of Alabama at Birmingham                                                  Washington University
            Birmingham, AL 35294, USA                Munich, 81739, Germany             St. Louis, MO 63130, USA


Abstract                                                         We therefore need principled methods for specifying, pro-
                                                                 gramming, composing, integrating, and validating software
This paper presents three contributions to the challenges of ap- for these systems that can enforce the physical constraints,
plying the OMG Model Driven Architecture (MDA) to develop as well as satisfy stringent quality of service (QoS) and func-
and deploy distributed real-time and embedded (DRE) appli- tional requirements.
cations. First, we motivate our MDA tool called CoSMIC,             Due to constraints on weight, power consumption, memory
which is based on the Model Integrated Computing (MIC)
                                                                 footprint, and performance, development techniques for DRE
paradigm that provides the intellectual foundation for MDA.
                                                                 application software have lagged those used for mainstream
Second, we describe how CoSMIC's generative abilities can desktop and enterprise software. In particular, DRE applica-
be used to configure and assemble DRE component middle-
                                                                 tions have historically been manually programmed and cus-
ware required to deploy DRE applications. Third, we delin- tomized from scratch to implement their required QoS proper-
eate the challenges involved in developing CoSMIC. Based on ties, making them expensive to build and maintain. Moreover,
our collective experience developing MIC tools and DRE mid-
                                                                 they are often so specialized that they cannot adapt readily to
dleware, we are confident that combining these two paradigms meet new functional or QoS requirements, hardware/software
will yield significant advantages in developing model based
                                                                 technology innovations, or market opportunities.
DRE applications.
                                                                    To address the problems with manually developing and cus-
                                                                 tomizing DRE systems from scratch, there is growing interest
1 Introduction                                                   in composing these types of systems using commercial off-
                                                                 the-shelf (COTS) hardware (such as COTS DSPs and CPUs)
Well over 95 percent of all microprocessors are now used and software (such as real-time operating systems and QoS-
for real-time and embedded systems. These systems are in- enabled component middleware services). One of the key
creasingly being networked together to form distributed real- challenges in using COTS software in DRE systems is deter-
time and embedded (DRE) systems. Many DRE systems are mining, assembling, and deploying a right mix of QoS-enabled
both mission-critical and constrained by the physical world. COTS middleware components that can satisfy the stringent

                                                               1
QoS requirements of DRE systems. Ad hoc techniques, such               tive techniques; and Section 5 presents concluding remarks.
as manually choosing the right mix of middleware compo-
nents, do not scale well as the application size and require-
ments increase. Moreover, ad hoc techniques are often te-              2    Overview of CoSMIC
dious, error-prone, and lack a solid verification and validation
foundation.                                                            The Component Synthesis using Model Integrated Computing
   To address these problems, we require tools that allow de-          (CoSMIC) project at Vanderbilt University's Institute for Soft-
velopers to specify application requirements at higher lev-            ware Integrated Systems (ISIS) is developing domain-specific
els of abstraction than that provided by lower-level mech-             tools for composing and deploying DRE middleware-based
anisms, such as conventional general-purpose programming               applications. The initial set of CoSMIC tools are targeting a
languages. These tools must be able to analyze the require-            DRE component middleware suite that consists of the follow-
ments and generate the required directives that will compose           ing frameworks:
applications from the right set of COTS middleware compo-                   The Component Integrated ACE ORB (CIAO) [8, 6],
nents. A promising example of such tools are those based on                 which is a QoS-enabled CORBA Component Model
Model-Integrated Computing (MIC) [1].                                       (CCM) [7] middleware framework developed at Wash-
   Model-Integrated Computing (MIC) is a development                        ington University, St. Louis, and
paradigm that applies domain-specific modeling languages                    The Quality Objects (QuO) [9] framework, which is an
systematically to engineer DRE computing systems. Pop-                      adaptive middleware developed by BBN Technologies.
ular examples of MIC toolsuites in use today include the
Generic Modeling Environment (GME) [2] and Ptolemy [3].                   The CoSMIC toolsuite is designed to (1) model and analyze
These toolsuites provide rich, domain-specific modeling envi-          DRE application functionality and QoS requirements and (2)
ronments, including model analysis and model-based program             synthesize CCM-specific deployment metadata for CIAO and
synthesis tools. Work on MIC in the DARPA Model-based In-              QuO required to provision and enforce end-to-end QoS both
tegration of Embedded Systems (MoBIES) program [4] also                statically and dynamically [6]. Figure 1 illustrates the key el-
provides the intellectual foundations of the OMG's MDA ap-             ements in the CoSMIC-based DRE application development
proach for DRE systems.                                                process. The CoSMIC tools can be used to model the require-
   In the MIC paradigm, application developers model an inte-          ments and adaptation policies needed to manage the QoS of
grated, end-to-end view of the entire application, including the       DRE applications. Figure 2 illustrates seven points at which
interdependencies of its components. Rather than focusing on           CoSMIC can be integrated into the integrated CIAO and QuO
a single, custom application, MIC models capture the essence           component middleware and applied to DRE applications. The
of a class of applications, similar to the goals of product-line       seven points of integration shown in Figure 2 include
architectures. MIC also allows the modeling languages and                1. Configuring and deploying application services end-
environments themselves to be modeled by so-called meta-                     to-end, which involves generating and provisioning the
models [5], which help to synthesize domain-specific model-                  policies for partitioning and distributing application ser-
ing languages that can capture the nuances of domains they are               vices and resources.
designed to model.                                                       2. Composing components into component servers,
   Recent advances in QoS-enabled component middleware,                      which involves generating the directives to assemble
such as the Component-Integrated ACE ORB (CIAO) [6]                          semantically compatible application components from
real-time CORBA Component Model (CCM) [7] middleware,                        reuse repositories and determining the interconnections
make them amenable to composition of DRE applications                        between these selected components.
from COTS component middleware. To use MIC for this                      3. Configuring application component containers, which
composition requires the creation of domain-specific model-                  comprises generating QoS policies, such as threading
ing languages that model the behavior and interaction of com-                policies or levels of security and fault tolerance, for the
ponent middleware, such as CIAO. Moreover, MIC generative                    containers hosting the components.
tools must be developed that understand these models and au-             4. Synthesizing application component implementa-
tomatically configure and customize the middleware for DRE                   tions, which consists of generating application compo-
applications.                                                                nents tailored to satisfying specific requirements, such as
   The remainder of this paper is organized as follows: Sec-                 worst-case execution time of tasks.
tion 2 provides an overview of CoSMIC, which is an MDA                   5. Synthesizing dynamic QoS provisioning and adapta-
toolsuite we have designed to integrate MIC and component                    tion logic, which includes generating the QoS provision-
middleware for DRE systems; Section 3 describes the chal-                    ing and adaptation logic understood by adaptive frame-
lenges involved in developing CoSMIC tools that use genera-                  works, such as QuO.

                                                                   2
                                                                                                     Chicago         Flight                                     Field Radar
        Integrated                      System                                                        Data         Scheduling                                     Control
          Model                        Constraints                                                   Center                                                       System


                                                                                     Central
                                                                                      Data
                                                                                      Store
                         CoSMIC
                                           Integrate &       Executable                                                         1
                     Model Interpreter &
                                            Generate        specifications
                     Code Synthesizer
                                                                                 Component                     Middleware Bus
                                                                                 Repository

                                                                                        Compose                          Deploy
                                                                                                      Component                                                     Airport
                                                               CoSMIC                                  Assembly                                                     Traffic
                                             Select           Component                                                                                             Control

          CIAO Component                   Components       Assembly/Code        System Development            2
                                                              Generator
             Repository                                                                                                              Component
                                                                                                                                       Home

                                                     synthesize &
                                                                                      1 UML Model                                                         Container
                                                                                                                                      CORBA
                                                      assemble                                                                       Component       QoS Policies




                                                                                                                                                                            Reflect
                                                                                                                                                                5
                                                                                                                                                     QoS Property
                                                                                                CoSMIC
                                                                                                                        4                              Adaptor
                     CIAO
                                                                                                  Model
                      CCM                                                                                                                      POA
                                                            CIAO Plugins                      Interpreter &                 3
                    Assembly                                                                   Synthesizer
                                                                                                                        6            ORB
                                                                                                                                                 ORB QoS Interfaces
                                                                                                            select                                   (Scheduling,
                                                                                                                                    Metadata     Timeliness,Priority,...)
                                                                                                         components
                                                                                                                            7
         CIAO                                                                                                                         ORB Plugins
                         Deploy                                                                                                                                ORB
        Package
                                                                                        CCM Component Library
       Deployment                                                                                                                               CIAO
         Tools                                  CIAO
                                              Application
                                                Server
                                                                                 1   Configuring and deploying an application services end-to-end

                                                                                 2   Composing components into application server components

                                                                                 3   Configuring application component containers
Figure 1: Developing Component Middleware-based DRE                              4   Synthesizing application component implementations
Applications Using the CoSMIC Process
                                                                                 5   Synthesizing dynamic QoS provisioning and adaptation logic

                                                                                 6   Synthesizing middleware-specific configurations

  6. Synthesizing middleware-specific configurations,                 7 Synthesizing middleware implementations
     which involves generating the directives to configure
     the middleware, such as choice of transport protocols, Figure 2: Incorporating Model-Integrated Computing with
     threading models, and demultiplexing strategies.          Component Middleware
  7. Synthesizing middleware implementations, which
     comprises generating custom middleware components,
     such as components for memory constrained systems.        high-level models. Figure 3 illustrates the different meta-
                                                               data that needs to be generated to configure QoS-enabled
Additional information on these steps appears in [6].
                                                               component middleware. In particular, CoSMIC provides a
                                                               CIAO/QuO metadata modeling language to generate meta-
                                                               data, such as XML descriptors that provide directives on as-
3 The Design and Implementation sembling and packaging CORBA components along with the
      Challenges of CoSMIC Generative adaptation logic. The challenges also include modeling inter-
                                                               nal behavior of CIAO/QuO.
      Tools                                                    Generative techniques for component middleware con-
                                                               tainer policies. Figure 4 illustrates the need to model
This section outlines the challenges we have faced when de-
                                                               and synthesize CCM container policies using aspect model
veloping the CoSMIC generative toolset.
                                                               weavers. This task involves refactoring and modeling cross-
Generative techniques for component middleware config- cutting DRE middleware QoS concerns, such as levels of
uration metadata. The QoS requirements of DRE applica- fault tolerance, security, and persistence. The CoSMIC as-
tions can be assured when the middleware they are based on pect model weaver tools [10] are designed to synthesize the
are highly optimized and tailored to the application's QoS re- appropriate CIAO container QoS policies [11]. For exam-
quirements. One way to achieve this is by generating the ple, cross cutting concerns, such as security, are refactored
configuration metadata for parametrizing the middleware from from the models for CCM containers. CoSMIC aspect model

                                                                             3
                                          Interface Repository                                                                                      Require highest priority
                                                                  CCM Container                                                                                                                            Run at client priority
                                                  Meta-                                                                                          Reserve 30% processor cycles
                                               information
                                                                             Object
             Client                            descriptions
                                                                            (Servant)                                        Reserve bandwidth
                                                                                                                         Do not share the connection
                                                  in args


                                             Operation ()                                                                 Deployment
                                                                      Server
                                              out args + return                                                                 &
                                                                     Request           Server-side
                               Client               value
                                                                                                                          Configuration
     Smart Proxy                                                    Interceptor        meta-object
                             Request
                                                                                       (Skeleton,                          Metadata
                            Interceptor         ORB
                                                                                          DSI)
                                             Interfaces               Servant
                                                                                                                          Deployment                                  Trading                                       Logging
                                                                    Manager Impl                                                                                     Component                                     Component
                                                                                                                                &
      Client-side
                                                                                                                          Configuration
      meta-object           DII
        (Stub)
                                                                                                                           Mechanism                       Containers                                  Containers
                                              Custom                Object store
                                                                    meta-object
                                                                                          POA
                                             Transport
                                                                                                                                                            Application Server
       Transport protocol                                                         Transport protocol
                                                             ORB Core
          meta-object                                                                meta-object                       Figure 5: CIAO Component QoS Aspect Weaving
         GIOP                                                                                  GIOP

                                            Cross-Domain Protocol
        Client-Side
          Bridge
                                                                                         Service-Side
                                                                                           Bridge
                                                                                                                   described before.
                    Instantiates                                      Interacts                                    End-to-end QoS assurance. Assuring end-to-end applica-
                                                                                                                   tion QoS involves QoS assurance at different levels of middle-
            Figure 3: CIAO Metadata Configuration                                                                  ware, operating systems, and networks. End-to-end QoS can
                                                                                                                   be attained in the following two ways:
                                               Component
                                                 Home                                                                   By aggregating the QoS offered at each layer, since each
                                                                              Container                                 layer guarantees certain levels of QoS, or
                                                CORBA
                                               Component              QoS Policies                                      By each layer adapting their offered QoS based on of-
                                                                                                     Reflect




                                                                                                                        fered QoS of adjacent layers.
                                                                      QoS Property
                                                                        Adaptor                                    Figure 6 illustrates the adaptive approach taken by QuO.
                                                                                                                   Figure 6 illustrates one way of decoupling (1) the application's
        Client
                                                      Real-time POA
                                                                                                                                                                                 in args
                                                                                                                                       OBJ                                                                                 Object
                                                                                                                            Client     REF                                   operation ()                                 (Servant)
                                                                                                                                                                                                           Callback
                                                                                                                                             Callback
                                                                                                                                                                      out args + return value
                                                                                                                                                        Contract                                Contract
                                                   ORB QoS Interfaces                                                      Delegate                                                                                       Delegate
                                            (Scheduling, Timeliness, Priority,...)
                                                                                                                                                                   SysCond         SysCond
                                                                                                                                                                                                   SysCond
                                                                                                                                         SysCond                    Mechanism/property
                                                                                                                                                                        Manager                                         IDL
     Figure 4: CIAO Container Policy Configuration                                                                         IDL                                                                                        Skeletons
                                                                                                                          Stubs                                                                                       Object Adapter

                                                                                                                                  ORB Core         IIOP                   Network                           IIOP      ORB Core

weavers generate specialized models of container policies by
weaving in the security-related cross-cutting concerns into the                                                         Figure 6: Qos Assurance via Adaptation in QuO
original container models.
Generative techniques for synthesizing aspectized compo-                                                           functional path, which consists of information flows between
nent middleware. Figure 5 illustrates the need to model and                                                        client and remote server applications, from (2) the QoS sys-
synthesize application component logic using aspect model                                                          temic paths, which are responsible for determining how well
weavers. Similar to the previous point, this task involves                                                         the functional interactions behave end-to-end with respect to
abstracting out and modeling separately all the cross-cutting                                                      key DRE QoS properties. In QuO, the QoS systemic prop-
DRE application QoS concerns, such as priorities of tasks,                                                         erties are specified using the Quality Description Language
worst case execution times, and bandwidth requirements, in                                                         (QDL) and the negotiated QoS contract between the applica-
addition to application behavior and component interactions.                                                       tion and middleware is specified in the Contract Description
The CoSMIC aspect model weaver tools are used to gener-                                                            Language (CDL). The QuO framework monitors the resource
ate specialized models of application components by weav-                                                          usage whose values are stored in the syscond objects. De-
ing in these cross-cutting concerns into the original models.                                                      pending on the current values of the syscond objects, the QuO
CoSMIC's assembly generator tools then use these special-                                                          framework consults the CDL contracts to achieve runtime QoS
ized models to synthesize components and their assembly, as                                                        adaptation.

                                                                                                               4
  CoSMIC modeling and generative tools are addressing both example, the CoSMIC modeling languages can be extended
scenarios by modeling the offered QoS of individual layers to allow modeling of on-demand remodularization. Based on
and/or modeling the adaptive policies required by each layer. these models, the CoSMIC generative tools can synthesize the
                                                              appropriate adapters within collaborative components.

4 Future Directions in Generative Pro-
                                       5                                     Concluding Remarks
  gramming and the Role of MDA
                                                                       The Model Driven Architecture (MDA) is an ambitious
In generative programming, the set of requirements that de-            standards-based effort that aims to codify the patterns and de-
scribes the interface and semantic behavior is referred to as          velopment techniques evolved over years of R&D efforts on
a concept [12]. A concept is a set of features that one soft-          component middleware, Model-Integrated Computing (MIC),
ware component expects from another. The implementation                and related generative software technologies. Achieving the
(or a model) of a particular concept makes it possible to plug         MDA vision is essential to reduce the lifecyle costs of complex
the component to an existing infrastructure that knows how to          DRE applications that encompass a wide range of application
deal with a specific concept, e.g., the set of STL algorithms          domains, including defense, telecommunications, medicine,
and the iterators concepts.                                            process control, automotive, and manufacturing.
   The idea of component containers could be also interpreted             This paper describes our work on the CoSMIC project,
in a similar way, where a component must satisfy requirements          which is an MDA toolsuite we are developing to integrate
exposed by its container to be plugged into a container frame-         MIC and component middleware for DRE systems. The ini-
work, e.g., the POA/ServantBase relationships in CORBA.                tial focus of CoSMIC is modeling and generating code that can
The same argument is valid for component-based applications            statically provision key QoS properties of CIAO and QuO. In
where a component can be substituted by another component              the future, we will focus on analyzing and generating model
that models the same concept. As an example of such a substi-          driven solutions for systems that operate in dynamic environ-
tution, the CCM component description has expected and pro-            ments and hence need runtime QoS provisioning via adapta-
vided sections to enable automatic composability checking.             tion.
   The concept technique alone, however, is not sufficient                In the context of the DARPA MoBIES and PCES pro-
to achieve the goals of MDA, where platform indepen-                   grams, we are applying CoSMIC to several application do-
dence, component composability, and interoperability issues            mains, including aerospace, telecommunications, medicine,
are paramount. The problem lies in the existence of various            process control, automotive, and manufacturing. For exam-
mechanisms provided by containers and operating systems to             ple, CoSMIC is being used to model and provision adaptive
achieve the same goals. For example, although both CCM and             QoS for a Unmanned Aerial Vehicle (UAV) application [11].
Enterprise Java Beans (EJB) containers provide access to the           Over time, our CoSMIC toolsuite will evolve to target exist-
current execution context of the component they use different          ing and emerging QoS-enabled middleware, such as Real-time
interfaces. The same is true for concurrency, IPC, and other           Java and XML/HTTP-based web services.
mechanisms provided by different operating systems [13, 14].
   A promising way to solve this problem is on-demand re-
modularization [15], which is the ability to identify and en-          References
capsulate new dimensions of concern at any time without in-             [1] Janos Sztipanovits and Gabor Karsai, "Model-Integrated Computing,"
vasive changes, thereby allowing manual or automatic (adap-                 IEEE Computer, vol. 30, no. 4, pp. 110­112, Apr. 1997.
tive) selection of the best modularization based on any or all          [2] Akos Ledeczi, Arpad Bakay, Miklos Maroti, Peter Volgysei, Greg
of the concerns of the development task. On-demand remod-                   Nordstrom, Jonathan Sprinkle, and Gabor Karsai, "Composing
                                                                            Domain-Specific Design Environments," IEEE Computer, Nov. 2001.
ularization could be used to convert functionality provided by
infrastructural software to support concepts expected by the            [3] J. T. Buck, S. Ha, E. A. Lee, and D. G. Messerschmitt, "Ptolemy: A
                                                                            Framework for Simulating and Prototyping Heterogeneous Systems,"
collaborative parties. After such a conversion, for example, the            International Journal of Computer Simulation, Special Issue on
collaborative components in CCM and EJB can use generative                  Simulation Software Development Component Development Strategies,
                                                                            vol. 4, Apr. 1994.
techniques for adapting the component callback interfaces to
                                                                        [4] John Bay, "Recent Advances in the Design of Distributed Embedded
satisfy the container requirements. Moreover, on-demand re-                 Systems," in Proceedings of SPIE, Volume 47: Battlespace Digitization
modularization enables high degree of adaptivity.                           and Network Centric Warfare, Apr. 2002.
   Our future work involves (1) adding remodularizaton sup-             [5] Jonathan M. Sprinkle, Gabor Karsai, Akos Ledeczi, and Greg G.
                                                                            Nordstrom, "The New Metamodeling Generation," in IEEE
port to CoSMIC MDA generators and (2) support for on-                       Engineering of Computer Based Systems, Washington, DC, Apr. 2001,
demand adaptive remodularization to CIAO containers. For                    IEEE.


                                                                   5
 [6] Nanbor Wang, Douglas C. Schmidt, Aniruddha Gokhale,
     Christopher D. Gill, Balachandran Natarajan, Craig Rodrigues,
     Joseph P. Loyall, and Richard E. Schantz, "Total Quality of Service
     Provisioning in Middleware and Applications," Submitted to the
     Journal of Microprocessors and Microsystems, vol. 26, no. 9-10, jan
     2003.
 [7] BEA Systems, et al., CORBA Component Model Joint Revised
     Submission, Object Management Group, OMG Document
     orbos/99-07-01 edition, July 1999.
 [8] Nanbor Wang, Krishnakumar Balasubramanian, and Chris Gill,
     "Towards a real-time corba component model," in OMG Workshop On
     Embedded & Real-Time Distributed Object Systems, Washington, D.C.,
     July 2002, Object Management Group.
 [9] Rodrigo Vanegas, John A. Zinky, Joseph P. Loyall, David Karr,
     Richard E. Schantz, and David E. Bakken, "QuO's Runtime Support
     for Quality of Service in Distributed Objects," Proceedings of
     Middleware 98, the IFIP International Conference on Distributed
     Systems Platform and Open Distributed Processing, September 1998.
[10] Jeffery Gray, Ted Bapty, and Sandeep Neema, "Handling Crosscutting
     Constraints in Domain-Specific Modeling," Communications of the
     ACM, pp. 87­93, Oct. 2001.
[11] Sandeep Neema, Ted Bapty, Jeff Gray, and Aniruddha Gokhale,
     "Generators for Synthesis of QoS Adaptation in Distributed Real-Time
     Embedded Systems," in Proceedings of the ACM SIGPLAN/SIGSOFT
     Conference on Generative Programming and Component Engineering
     (GPCE'02), Pittsburgh, PA, Oct. 2002.
[12] Krzysztof Czarnecki and Ulrich W. Eisenecker, "Components and
     Generative Programming," in Proceedings of the 7th European
     Engineering Conference held jointly with the 7th ACM SIGSOFT
     Symposium on Foundations of Software Engineering, Toulouse, France,
     1999, ACM, pp. 2­19.
[13] Douglas C. Schmidt and Stephen D. Huston, C++ Network
     Programming, Volume 1: Mastering Complexity with ACE and
     Patterns, Addison-Wesley, Boston, 2002.
[14] Douglas C. Schmidt and Stephen D. Huston, C++ Network
     Programming, Volume 2: Systematic Reuse with ACE and Frameworks,
     Addison-Wesley, Reading, Massachusetts, 2002.
[15] Mira Mezini and Klaus Ostermann, "Integrating Independent
     Components with On-demand Remodularization," in To appear in the
     Proceedings of the 17th ACM Conference on Object-Oriented
     Programming, Systems, Languages, and Applications (OOPSLA'02),
     Seattle, Washington, USA, November 2002, ACM.




                                                                            6