Check out the new USENIX Web site.
COOTS '01 Conference
Home At a Glance Register/Hotel Tutorials Tech Session Organizers Activities

Tutorial Descriptions    [Tutorial Overview]

MONDAY, JANUARY 29, 2001    
FULL-DAY TUTORIALS (9:00 am - 5:00 pm)

M1 Advanced CORBA Programming
Michi Henning, Object Oriented Concepts

Who should attend: Attendees are expected to know the CORBA C++ Mapping and to be familiar with how to implement servers using the (now deprecated) Basic Object Adapter (BOA).

This one-day tutorial introduces attendees to the Portable Object Adapter (POA), commercial implementations of which have recently become available. The talk places particular emphasis on how to use the POA to achieve scalable and efficient implementations. It presents detailed coverage of the numerous design options and their trade-offs.

The tutorial also takes an in-depth look at the role of Implementation Repositories for CORBA systems, with particular emphasis on the scalability and performance aspects of various repository designs.

Michi Henning is Chief Scientist of Object Oriented Concepts, a major vendor of CORBA-compliant middleware. With Steve Vinoski, Michi wrote Advanced CORBA Programming with C++. A member of the OMG architecture board, he was a major contributor to OMG specifications, and he has made substantial contributions to CORBA specifications. Michi has acted as program chair and program committee member for numerous technical computer conferences.

M2 Design Patterns for Understanding Middleware and Component Infrastructures
Doug Schmidt, University of California, Irvine

Who should attend: Anyone who wants to learn the basic architectures of object-oriented middleware such as CORBA 3, COM+ or EJB. It is the goal of the tutorial to demonstrate fundamental patterns used to build middleware, so attendees will learn patterns that can be leveraged in other contexts.

Distributed object solutions and infrastructures for deploying middle-tier components have become commonplace, especially as Web-based applications gain ground. Infrastructures such as CORBA 3, Windows DNA 2000, Microsoft.NET, and J2EE are often considered black-box frameworks that provide location transparency and component integration at almost no cost.

In theory, developers are not required to understand the internal design of these infrastructures. However, in practice, structural and nonfunctional properties play an important role in distributed and component-based applications. Without a fundamental knowledge of the underlying architectures, developers are not capable of leveraging these infrastructures efficiently. A good way to capture basic architecural knowledge is to extract the patterns used for the construction of these infrastructures and discover their internal design.

Dr. Schmidt is an Associate Professor in the Electrical and Computer Engineering department at the University of California, Irvine. He is currently serving as a Program Manager at the DARPA Information Technology Office (ITO), where he is leading the national effort on middleware. His research focuses on patterns, optimization principles, and empirical analyses of object-oriented techniques that facilitate the development of high-performance, real-time distributed object computing middleware on parallel processing platforms running over high-speed ATM networks and embedded system interconnects.

Half Day Morning (9 am - 12:30 pm)    

M3 Introduction to Concurrent Object-Oriented Programming in Java
Doug Lea, SUNY Oswego
David Holmes, DSTC Pty Ltd

Who should attend: Anyone who wants to understand how to use Java's™ concurrency mechanisms correctly and effectively. Attendees are expected to be thoroughly familiar with the non-concurrent aspects of Java.

Concurrent programming has mostly been the domain of systems programmers rather than application developers, but Java's support of concurrency has enticed many to try their hand at concurrent applications. However, concurrent programming poses many traps for the unwary. This tutorial looks at object structures and design rules that can successfully resolve the competing forces (safety, liveness, efficiency, coordination, reusability) in concurrent software design.

Doug Lea is a professor of computer science at the State University of New York at Oswego. He is author of the Java Series book Concurrent Programming in Java: Design Principles and Patterns, co-author of Object- Oriented System Development, and the author of several widely used software packages, as well as articles and reports on object-oriented software development.

David Holmes is a senior research scientist at the holmesdavid Cooperative Research Centre for Enterprise Distributed Systems Technology (DSTC Pty Ltd), in Brisbane, Australia. He has been involved in concurrent programming for a number of years. He is a co-author of the third edition of the Java Series book The Java Programming Language.



Half Day Afternoon (1:30 pm - 5 pm)    

M4 Real-Time Java Programming
Chris Gill, Washington University, St. Louis

Who should attend: Those who need to know about practical real-time design trade-offs. Those who want to understand where and how the Real-Time Specification for Java™ (RTSJ) constrains or widens the range of available choices.

This half-day tutorial describes how each feature of the RTSJ can be used to solve one or more specific real-time programming problems. A brief overview of real-time programming issues will be presented at the beginning, but most of the tutorial will be devoted to the RTSJ itself.

All major sections of the RTSJ will be covered: real-time threads, scheduling, synchronization, asynchronous event handling and transfer of control, exceptions, time and timers, and memory management.

Chris Gill is a research associate with the Center for Gill_Christopher_D Distributed Object Computing, in the Department of Computer Science at Washington University in St. Louis, Missouri. Chris has participated in the OMG's Real-Time PSIG since January 1999 and has collaborated with researchers from several companies in a series of successful demonstrations of dynamic and adaptive resource management in embedded real-time systems, using the TAO real-time CORBA ORB.


TUESDAY, JANUARY 30, 2001    
Half Day Morning (9 am - 12:30 pm)    

T1 The Common Language Runtime and C#
Don Box, DevelopMentor

Who should attend: Attendees should be familiar with the basics of object-oriented programming and moderately comfortable with systems-programming issues such as thread and process management.

The Common Language Runtime is a new implementation of many existing ideas in component technology. The CLR is a type-centric multi-paradigm component model and runtime that supports object-oriented programming, interface-based programming, and aspect-oriented programming.

Topics include:

  • Managed types vs. unmanaged types
  • Managed execution vs. unmanaged execution
  • Programming language vs. The Runtime
  • The CLR type system
  • Loading and linking
  • Runtime type management
  • Context and remoting
  • Web services

Don Box is a co-founder of DevelopMentor, a developer box_don services company that provides education and support to the software industry at large. Don is a series editor at Addison Wesley and is the author of Essential COM and a co-author of Effective COM and Essential XML, all from Addison Wesley. Don is also a co-author of the Simple Object Access Protocol specification and a member of the W3C Schemas Working Group.


T2 Using Real-Time CORBA to Build Predictable Distributed Applications
Irfan Pyarali, Washington University, St. Louis
Carlos O'Ryan, University of California, Irvine

Who should attend: Attendees are expected to be familiar with CORBA and have some exposure to real-time programming concepts.

CORBA is an emerging standard that defines a flexible model for distributed object computing. Until recently, however, the CORBA specification lacked key features required by distributed real-time systems. The Real-Time CORBA specification, a new document adopted by the OMG, provides real-time developers with precisely defined interfaces to control the QoS attributes of the underlying ORB and network infrastructure.

This tutorial focuses on: (1) the CORBA priority model; (2) real-time CORBA mechanisms to select and control network resources; (3) real-time CORBA extensions to the Portable Object Adapter; and (4) how all these mechanisms can be combined to implement predictable distributed applications. We will also discuss the implementation of the real-time CORBA specification in TAO, which is an ORB developed at Washington University to meet end-to-end Quality of Service (QoS) requirements for high-performance, real-time applications.

Attendees should leave the tutorial having learned: (1) to use the real-time CORBA specification to build predictable distributed applications, and (2) to evaluate different implementations of the specification according to the needs of their application domain.

Irfan Pyarali is on the research staff of the Distributed pyaral_iirfanBW Object Computing Laboratory at Washington University in St. Louis. His current project is the design and implementation of a real-time Object Request Broker (ORB). Prior to joining the Distributed Object Computing Laboratory, Irfan worked as a software developer for four years.

 

Carlos O'Ryan is a research assistant at the Distributed oryan_carlosbw Object Computing Laboratory and a graduate student in the Department of Computer Engineering, University of California, Irvine. In that position he participates in the development of TAO (the ACE ORB), an open source, real-time, high-performance, CORBA-compliant ORB.



T3 C++ Programming Made Easier: Part 1--Using the Library
Barbara E. Moo, Independent Consultant

Who should attend: Knowledge of C++ will be assumed. Both programmers unfamiliar with the library and those who have looked into it but have not yet started to use it actively will profit from this tutorial.

The C++ standard library is probably the most important improvement that Standard C++ offers over the prior art. Because it is such a major addition, books and courses are available which survey the library in detail and explain its features systematically.

This two-part tutorial is not structured as a feature survey. Instead, it concentrates on everyday programming problems and shows how you can use the standard library to simplify the solutions to such problems.

Accordingly, the tutorial will be largely example-driven--it presents a programming problem and a solution, and uses the solution to gain insight into what the library provides and how to use it.

This first half-day tutorial concentrates on using the standard library's basic facilities and architecture to solve a series of programming problems. By doing so, we will give a sense of what's in the library and how to go about applying the library to real problems.

The solutions presented will cover:

  • The string, vector and list classes, illustrating when to use one or the other
  • Several ways of using the map class
  • The algorithm library, including interactions between algorithms, containers, and iterators

We'll also review the foundations of the library, including an overview of the containers, iterator categories and classes of algorithms.

Barbara E. Moo is an independent consultant with moo_barbara twenty years' experience in the software field. During her nearly fifteen years at AT&T, she worked on one of the first commercial products ever written in C++, managed the company's first C++ compiler project, and directed the development of AT&T's award-winning WorldNet Internet service business.



Half Day Afternoon (1:30 pm - 5 pm)    

T4 XML, XSD, and SOAP as a Better Component Model
Don Box, DevelopMentor

Who should attend: Attendees should be familiar with the basics of object-oriented programming and moderately comfortable with some RPC- or messaging-based technology such as CORBA, DCOM, or RMI.

The Simple Object Access Protocol (SOAP) is an XML-based protocol for exposing servers, services, components, or objects over the Web. SOAP codifies the use of existing technologies such as XML, XML Schema Definition (XSD) language, and HTTP to allow code to be accessed in an interoperable and Internet-friendly fashion.

Topics include:

  • The XML protocol stack
  • The XML schema language
  • HTTP myths vs. reality
  • SOAP encoding
  • SOAP framing
  • SOAP and extensibility
  • Architecture of a SOAP runtime
  • Architecture of a SOAP application

Don Box is a co-founder of DevelopMentor, a developer box_don services company that provides education and support to the software industry at large. Don is a series editor at Addison Wesley and is the author of Essential COM and a co-author of Effective COM and Essential XML, all from Addison Wesley. Don is also a co-author of the Simple Object Access Protocol specification and a member of the W3C Schemas Working Group.


T5 Fault-Tolerant CORBA
Priya Narasimhan, University of California, Santa Barbara

Who should attend: People who have some knowledge of CORBA and distributed object systems and are interested in designing or ensuring fault tolerance and 24x7 operation for such systems.

Increasingly, enterprises are involved in worldwide round-the-clock e-commerce and e-business, which requires them to be operational 24 hours a day, 7 days a week. With outages leading to loss of revenue, reputation, and customers, fault tolerance becomes increasingly important.

CORBA is a well-established commercial standard for building distributed object applications. CORBA objects can interact, transcending differences in their locations, hardware architectures, operating systems, and programming languages. In March 2000, the Object Management Group (OMG), the CORBA standards body, added reliability to this list of CORBA's attractive features by approving a new Fault Tolerant CORBA standard.

Topics include:

  • Designing a fault-tolerant system: where do you start?
  • Key issues in object replication, such as replica consistency, duplicate suppression, fault detection, logging and recovery
  • The new Fault Tolerant CORBA standard:
    • Interfaces of the new standard
    • Mechanisms for implementing these interfaces
    • Requirements on the implementation
    • A complete implementation of the standard
  • Advanced issues in fault tolerance for real-world applications:
    • Non-determinism
    • Multithreading
    • Hidden state, e.g., ORB state
  • Survey of current practices and solutions for fault tolerance, with their advantages and disadvantages

Priya Narasimhan is is the Chief Technology Officer of narasimhan_priya Eternal Systems, Inc., in Santa Barbara, California. She received her Ph.D. from the University of California, Santa Barbara. At Eternal Systems, Inc, her work focuses on turning her doctoral research on transparent fault tolerance for CORBA into commercial fault-tolerant systems. She was actively involved in developing the new fault-tolerant CORBA standard.



T6 C++ Programming Made Easier: Part 2--Extending the Library
Andrew Koenig, AT&T Research

Who should attend: Knowledge of C++ will be assumed. Both programmers unfamiliar with the library and those who have looked into it but have not yet started to use it actively will profit from this tutorial.

The C++ standard library's regular structure makes it easy to extend compatibly. This session shows examples of such extensions and how you can use these extensions to simplify your own programs. Attendees should be familiar at least with the library concepts discussed in Part 1 of this tutorial.

Topics include:

  • The conventions surrounding library extensions, including techniques for writing functions (such as reverse) that select appropriate algorithms at compile time
  • Allocators, which are library classes for manual memory management, and why they are more useful than malloc/free or new/delete for programmers who are writing their own containers
  • How to write classes to manage memory automatically, and how such classes can simplify object-oriented programs
  • Stream iterators, reverse iterators, and other iterators over virtual data structures

Andrew Koenig is a member of the Large-Scale Pro koenigandrew gramming Research Department at AT&T's Shannon Laboratory, and the Project Editor of the C++ standards committee. A programmer for more than 30 years, 15 of them in C++, he has published more than 150 articles about C++.


?Need help? Use our Contacts page.
Last changed: 15 Dec 2000 bleu
COOTS Conference index
Events calendar
USENIX home