Newsgroups: comp.org.usenix,comp.lang.java,comp.object,comp.lang.c++,comp.lang.c,comp.lang.smalltalk,comp.client-server,comp.programming.threads,comp.software-eng,comp.software,comp.lang.python,comp.lang.ada
Path: cantaloupe.srv.cs.cmu.edu!nntp.club.cc.cmu.edu!goldenapple.srv.cs.cmu.edu!das-news2.harvard.edu!news.dfci.harvard.edu!camelot.ccs.neu.edu!news.mathworks.com!uunet!in2.uu.net!131.106.1.254!usenix!jackson
From: jackson@usenix.org (Jackson Dodd)
Subject: 3rd Conference on Object-Oriented Technologies and Systems (COOTS) - Conference Program
Message-ID: <E7zEps.1pC@usenix.org>
Keywords: USENIX, conference, coots, object 
Organization: USENIX Association
Date: Tue, 1 Apr 1997 23:03:28 GMT
Lines: 1153
Xref: glinda.oz.cs.cmu.edu comp.org.usenix:7697 comp.object:63102 comp.lang.c++:258118 comp.lang.c:247428 comp.lang.smalltalk:53501 comp.client-server:21199 comp.programming.threads:4511 comp.software-eng:55348 comp.lang.python:20380 comp.lang.ada:59516



==================================================================
 
3rd Conference on Object-Oriented Technologies and Systems (COOTS) 
                        June 16-20, 1997
             Portland Marriott Hotel, Portland, Oregon
 
                Sponsored by the USENIX Association
==================================================================  

COOTS showcases advanced R&D work, focusing on experimental
research and experience using O-O techniques and languages to build
sophisticated software systems that meet real-world needs. You will
find a strong emphasis on taking today's hot topics into tomorrow -
for example, applying patterns to the development of robust and
maintainable software systems, taking advantage of new features of
soon-to-be-standard C++, using Java in industrial settings, and
building distributed CORBA-based systems that solve real-world
business problems.

Here are some of the topics you will learn about:

* How to build distributed object systems with CORBA and DCOM
* How to write robust programs using C++ and Java
* How to develop fault-tolerant O-O distributed systems
* How to write distributed and concurrent applications with Java
* How to apply design patterns to create successful communication 
  software systems
* How to use the ANSI/ISO C++ Standard Library effectively

There will also be an Advanced Topics Workshop (ATW) entitled
"Software Components: Integration and Collaboration." The ATW will
be held in an informal setting to facilitate technical discussion
and interchange, and will be by-invitation-only based on the
submission of a position paper. See below for more information.

====================================================
PROGRAM AT A GLANCE AND IMPORTANT DATES TO REMEMBER
====================================================
 
  ===============================================
     Hotel Discount Deadline:  May 20, 1997
     Pre-registration Deadline:   May 30, 1997
  ===============================================


Sunday, June 15:
  Registration	                6:00 pm -  9:00 pm
  Welcome Reception             6:00 pm -  9:00 pm

Monday, June 16:
  Registration                  7:30 am -  5:00 pm
  AM Tutorial Program           9:00 am - 12:30 pm
  Tutorial Lunch               12:30 pm -  1:30 pm
  PM Tutorial Program           1:30 pm -  5:00 pm

Tuesday, June 17: 
  Registration                  7:30 am -  5:00 pm
  AM Tutorial Program           9:00 am - 12:30 pm
  Tutorial Lunch               12:30 pm -  1:30 pm
  PM Tutorial Program           1:30 pm -  5:00 pm
  Birds-of-Feather Sessions     6:00 pm - 10:00 pm

Wednesday, June 18:
  Registration                  7:30 am -  5:00 pm
  Keynote Address               8:45 am - 10:00 am
  Technical Program            10:30 am -  5:00 pm
  Conference Reception          6:00 pm -  8:00 pm 
  Birds-of-a-Feather Sessions   8:00 pm - 11:00 pm

Thursday, June 19:
  Technical Program             9:00 am -  5:00 pm

Friday, June 20:
  Advanced Topic Workshop       9:00 am - 5:00 pm
(By invitation only based on the submission of a position paper. 
 See below for details.)


CONFERENCE ORGANIZERS
=====================
Technical Sessions Program Chair: 
  Steve Vinoski, IONA Technologies, Inc.

Tutorial Program Chair: 
  Douglas C. Schmidt, Washington University

Program Committee:
  Don Box, DevelopMentor
  David Chappell, Chappell & Associates
  Jim Coplien, Lucent Bell Labs
  Murthy Devarakonda, IBM TJ Watson Research Center
  Daniel Edelson, IA Corporation
  Rachid Guerraoui, EPFL
  Doug Lea, SUNY Oswego
  Dmitry Lenkov, Hewlett-Packard
  Mark Linton, Vitria
  Stan Lippman, Walt Disney Feature Animation
  Igor Metz, GLUE Software Engineering
  Scott Meyers, Consultant and Author
  Rajendra Raj, Morgan Stanley
  Ron Resnick, Nortel
  Vince Russo, Purdue University
  Jonathan Shopiro, Novell
  Joe Sventek, Hewlett-Packard Laboratories
  Jim Waldo, JavaSoft

=======================================================
TUTORIAL PROGRAM, Monday and Tuesday, June 16-17, 1997
=======================================================

Technology is changing more rapidly than ever before. No matter
what your special expertise is, you are expected to stay on top of
the latest improvements and do your job. Sign up for tutorials and
you will get an immediate payoff from gaining command of the newest
developments, and putting them to work immediately.

USENIX tutorials aim to provide the critical information you need.
Delivered by experts with hands-on experience, tutorials are
practical, intensive, and essential to your professional
development.

Register now to guarantee your first choice; seating is limited.

====================
  MONDAY, JUNE 16
====================
M1am    High-Performance C++ Programming 
M2am	Concurrent Programming in Java: Language and Libraries
M3am    An Introduction to Design Patterns 
M4pm	Advanced C++ Template Examples 
M5pm	Design Patterns for Concurrent Programming: A Java Example
M6pm    Using Design Patterns and Frameworks to Develop Object-Oriented
	Communication Systems

====================
  TUESDAY, JUNE 17
====================
T1am	Putting Metaclasses to Work 
T2am	An Introduction to ActiveX and COM 
T3am	Distributed Computing with Java Remote Method Invocation
T4pm	Building Distributed CORBA Applications in C++ 
T5pm	COM and Distributed Computing 
T6pm	An Introduction to Java Beans

===================================================================

9:00am - 12:30pm
M1am HIGH-PERFORMANCE C++ PROGRAMMING
Scott Meyers, Consultant and Author

Who should attend:  Systems designers, programmers, and technical
 managers involved in the design, implementation, and maintenance
 of production libraries and applications using C++. You should be
 familiar with the basic features of C++ (e.g., classes, inheritance, 
 virtual functions, templates), but expertise is not required.

What you will learn:  What is really important to deliver high
 performance in C++ and the techniques you need to achieve it.

This course will examine the factors that affect the performance of
C++.  The reasons for bottlenecks in C++ programs can be surprising. 
Contrary to popular belief, virtual functions usually exact a
negligible performance cost, while unexpected calls to constructors
and destructors frequently hamstring applications.  Much of the
material in this course is taken from Scott's books, Effective C++
and More Effective C++.

Topics include: 

* General approaches to efficiency
	- Choosing suitable algorithms and data structures 
	- The 80-20 rule and program profiling 
	- Lazy evaluation and reference counting 
	- Prefetching and caching 

* Strategies specific to C++ 
	- Eliminating unnecessary temporary objects 
	- Mastering inlining 
	- Using handle classes to minimize compilation dependencies 
	- Writing custom memory managers 
	- Implementing reference-counting 

* Recommended reading

Scott Meyers is the author of  Effective C++ and More Effective
C++. He is a former columnist for the C++ Report, and a frequent
writer, speaker, and consultant on C++ software development. He
received his PhD inComputer Science from Brown University and his
research on software development has been reported in technical
journals and at conferences around the world.

_________________________________________________________________


9:00am - 12:30pm
M2am CONCURRENT PROGRAMMING IN JAVA: LANGUAGE AND LIBRARIES
Doug Lea, SUNY Oswego and David Holmes, Macquarie University

Who should attend: Anyone involved or planning to get involved in
 the development of concurrent Java applications or applets. A basic
 familiarity with the Java language is assumed.

What you will learn: A detailed working knowledge of Java's
 concurrency mechanisms and an overview of the little-documented
 aspects of applet and AWT threading models.

Java directly supports concurrent programming. The use of
concurrency adds a new dimension of complexity to application
development and introduces its own unique set of problems. This
course combines a low-level examination of the Java concurrency
model with a higher-level look at specific approaches to
concurrency control in the context of the Java language, Java
applets, and GUI programming using the Abstract Windowing Toolkit.

Topics include:  

* Concurrency in Java: a language tutorial 

* Java concurrency mechanisms
	- Threads: creation, initialization, control
	- Synchronization: interference, locks, wait-sets
	- Scheduling: priorities, time-slicing, queuing

* Additional language features 
	- Thread groups: control, management
	- Security: security manager, thread restrictions
	- Volatile variables: atomicity, caching, volatility

* Inheritance issues 
	- Inheritance model
	- Inheritance anomaly

* Concurrency issues in the Java libraries 

* Concurrency in the main Java libraries 

* Concurrency in the AWT and applets  
	- Abstract Windowing Toolkit: structure, thread model, event 
          handling and drawing
	- Concurrency in applets: structure, thread model, threading 
          semantics
	- Applet security: mechanisms, policies and affects on
	  threading
	- Simple design patterns for common applet/AWT threading 
          situations

Doug Lea is a professor and director of the Software Engineering
Laboratory at the New York CASE Center.  He is author of
Concurrent Programming in Java, and  co-author of Object-Oriented
System Development.  He is the author of several widely-used
software packages,  as well as articles and reports on
object-oriented software development.  

David Holmes is a PhD candidate with the Microsoft Research
Institute at Macquarie University in Sydney, Australia where he
researches concurrent object-oriented programming in practical
contexts. He has practical experience with concurrent programming
through work on operating systems, distributed systems, and
real-time embedded systems within a university environment.

__________________________________________________________________


9:00am - 12:30pm
M3am AN INTRODUCTION TO DESIGN PATTERNS
John Vlissides, IBM Research 

Who should attend: Software developers, architects, and
 programmers. You should understand basic object-oriented concepts,
 such as polymorphism and type versus interface inheritance, and
 have had some experience designing object-oriented systems. No
 prior knowledge of design patterns is required or assumed.

What you will learn: How to apply design patterns to your own
 object-oriented systems. You will gain experience using design
 patterns to solve real problems.

Designing object-oriented software is hard and designing reusable
object-oriented software is even harder. Experience shows that many
object-oriented systems exhibit recurring structures or "design
patterns" of communicating and collaborating objects that promote
extensibility, flexibility, and reusability.

This course describes a set of fundamental design patterns and,
through a design scenario, demonstrates how to build reusable
object-oriented software with them. The course covers the roles
design patterns play in the object-oriented development process:
how they provide a common vocabulary, reduce system complexity, and
how they act as reusable architectural elements that contribute to
an overall system architecture.

John Vlissides is a member of the research staff at the IBM T.J.
Watson Research Center. He has practiced object-oriented technology
for over a decade as a designer, implementer, researcher, lecturer,
and consultant. John is  co-author of  Design Patterns and
Object-Oriented  Application Framework, and he is co-editor of
Pattern Languages of Program Design 2. He has published numerous
technical papers and is a columnist for the  C++ Report. John has a
PhD from Stanford University.

____________________________________________________________________


1:30pm - 5:00pm
M4pm ADVANCED C++ TEMPLATE EXAMPLES
Andrew Koenig, AT&T Research

Who should attend: Experienced C++ programmers who know how to use
 templates in well-known ways, such as for writing container
 classes. It is not necessary to understand the language features in
 minute detail, but it is necessary to be completely fluent in the
 fundamentals.

What you will learn: Less well-known applications for templates.

The first uses of templates were for writing container classes, but
templates are good for a lot more than that. For example, the STL
(Standard Template Library) uses them for expressing generic
algorithms as well as data structures, by exploiting the elegant
notion of iterators to connect the algorithms with the data
structures.

This course explores less well-known uses of templates in a wide
range of applications. For example, you can use templates to create
function objects that represent higher-order functions, which allow
you to write efficient programs in a functional style. You can also
use templates to represent imaginary data structures:  data
structures that do not actually exist in storage, but are created,
an element at a time, as needed.

Andrew Koenig is a member of the Large-Scale Programming Research
Department at AT&T Research, formerly Bell Laboratories. He has
been working on C++ since 1986, and was one of the authors of the
first commercially distributed C++ class libraries. Besides C++,
his work includes programming language design and implementation,
security, automatic software distribution, online transaction
processing, and computer chess. He is the author of more than 100
articles and C Traps and Pitfalls, and co-author of Ruminations on
C++.

__________________________________________________________________


1:30pm - 5:00pm
M5pm DESIGN PATTERNS FOR CONCURRENT PROGRAMMING: A JAVA EXAMPLE
Doug Lea, SUNY Oswego and David Holmes, Macquarie University

Who should attend: Anyone involved, or planning to get involved, in
 the development of concurrent Java applications or applets. You
 should be familiar with Java and its concurrency features.

What you will learn: A detailed working knowledge of design
 strategies for managing concurrency in their applications.

Java directly supports concurrent programming. The use of
concurrency adds a new dimension of complexity to application
development and introduces its own unique set of problems. This
course provides a high-level exposition of design patterns that can
be used to manage the complexity of concurrent programming and
solve the problems that concurrency introduces. We look at object
structures and design rules that can successfully resolve the
competing forces (safety, liveness, coordination, reusability)
present in concurrent software design problems. Demonstrated using
Java, these design patterns and principles apply to a range of
concurrent programming environments.

Topics include: 

* Java concurrency mechanisms: a crash course
	- Threads
	- Synchronization
	- Scheduling

* Introduction to concurrent design patterns 
	- Pattern-based approach to concurrent object design 
		o Forces: safety, liveness, coordination, openness, 
                  reusability
		o Characterization of domains from which patterns of 
                  solutions emerge: system-level threads programming, 
                  real-time, parallelism, database, distributed systems,
                  reactive systems, experimental O-O systems, sequential
                  O-O design
	- Pattern overview
	- Layering 
		o Containment
		o Subclassing
		o Within-object concurrency
		o Reflection

* Managing control and flow 
	- Control 
		o Optimistic methods
		o Pessimistic methods
		o Nested control
		o Transactions
	- Flow 
		o Push, pull, exchange
		o Buffering and resource management

* Coordinating concurrent activities 
	- Notifications
	- Joint actions
	- Scheduling

Doug Lea is a professor and a director of the Software Engineering
Laboratory at the New York CASE Center.  He is author of Concurrent
Programming in Java, and  co-author of  Object-Oriented System
Development.  He is the author of several widely-used software
packages, as well as articles and reports on object-oriented
software development.

David Holmes is a PhD candidate with the Microsoft Research
Institute at Macquarie University in Sydney, Australia, where he
researches concurrent object-oriented programming in practical
contexts. He has practical experience with concurrent programming
through work on operating systems, distributed systems, and
real-time embedded systems within a university environment.

____________________________________________________________________


1:30pm - 5:00pm
M6pm USING DESIGN PATTERNS AND FRAMEWORKS TO DEVELOP OBJECT-ORIENTED 
     COMMUNICATION SYSTEMS
Douglas C. Schmidt, Washington University

Who should attend: Software developers familiar with general
 object-oriented design and programming techniques, fundamental O-O
 programming language features, basic systems programming concepts,
 and networking terminology.

What you will learn: How to apply O-O design patterns and frame-
 works to alleviate the complexity of developing concurrent and
 distributed communication software.

Developing extensible communication software that effectively
utilizes concurrency over high-speed, low-speed, and mobile
networks is a complex task. Patterns and framework components have
been used successfully by the speaker on production communication
software projects for telecommunication switch management
applications, network management for large-scale global personal
communication systems, electronic medical imaging systems, and
real-time avionics. This course illustrates by example how to
significantly simplify and enhance the development of communication
software that effectively utilizes concurrency and distribution via
the use of:

* Object-oriented design techniques such as design patterns, layered 
  modularity, and information hiding

* Object-oriented language features such as abstract classes,
  inheritance, dynamic binding, and parameterized types

* Tools such as object-oriented communication frameworks and object
  request brokers (ORBs) like OMG CORBA, Microsoft DCOM, and ACE

* Advanced operating system mechanisms such as asynchronous event
  handling, multi-threading, multi-processing, and explicit dynamic
  linking

This course examines patterns and framework code abstracted from
production telecommunication systems to illustrate key points in
the examples.

Doug Schmidt is an assistant professor of computer science at
Washington University in St.  Louis. His research focuses on design
patterns, implementation, and experimental analysis of object-
oriented techniques that facilitate the development of high-
performance, real-time distributed object computing systems on
parallel processing platforms running over high-speed networks.  He
is a co-editor on Pattern Languages of Program Design and
editor-in-chief of the C++ Report.

___________________________________________________________________


9:00am - 12:30pm
T1am PUTTING METACLASSES TO WORK
Ira R. Forman, IBM

Who should attend:  Programmers with an understanding of object-
 oriented programming. Although this course defines "class,"
 "method," "inheritance," etc., this is an advanced course and you
 should know the basics.

What you will learn:  How metaclasses can be used to improve
productivity and reusability in object-oriented programming.

The course starts from first principles to construct an object
model that is class-based (every object has a class) with
first-class classes (every class is an object).

After the object model is established, we will introduce a
metaobject protocol for manipulating the model. The metaobject
protocol supports a new dimension for inheritance:  inheritance of
metaclass constraints. Based on this, we will describe facilities
required for composable metaclasses, that is, how a metaclass
imparts to its instances the composite properties of its
ancestors.

We will conclude by demonstrating a number of useful metaclasses
that do compose with each other.

Note: This is not a SOM course. The metaobject protocol for this
course is not the IBM SOM Metaobject Protocol and the material goes
beyond IBM SOM.  

Ira R. Forman As a member of IBM's Object Technology Products
Group, in Austin, which produced the SOMobjects Toolkit, Dr.
Forman worked on the SOM Metaclass Framework. He has been working
in object-oriented programming since 1984. He received his PhD from
the University of Maryland where he studied under Harlan Mills.
Forman's specialties are object-oriented distributed systems and
object composition.

____________________________________________________________________


9:00am - 12:30pm
T2am AN INTRODUCTION TO ACTIVEX AND COM 
David Chappell, Chappell Associates

Who should attend:  Architects and developers familiar with general
 object-oriented design and programming techniques and who are
 interested in understanding the basics of Microsoft's key object
 technologies.  Knowledge of a specific programming language, such
 as C++, is not required. This is not a programming course.

What you will learn:  An introduction to COM and COM-based
 technologies.

"ActiveX" is Microsoft's brand name for a wide range of
technologies, all of which rely on the Component Object Model
(COM). COM defines a language-independent view of objects, one that
has become fundamental to software development in the Windows and
Windows NT environments.  Throughout 1997, COM will also become
available on non-Microsoft systems, making it even more important.

This tutorial provides an introduction to COM and fundamental
COM-based technologies. The topics covered include:

* Objects, interfaces, and classes
* Reuse through containment and aggregation
* Automation
* Persistence and monikers

David Chappell is principal of Chappell & Associates, an education
and consulting firm in Minneapolis, Minnesota and has presented
seminars around the world. He is a member of the Object Management
Group, a columnist for Object Magazine, and a frequent guest on the
Computer Channel. He is the author of  Understanding ActiveX and
OLE.

_____________________________________________________________________


9:00am - 12:30pm
T3am DISTRIBUTED COMPUTING WITH JAVA REMOTE METHOD INVOCATION
Jim Waldo and Ann Wollrath, JavaSoft

Who should attend:  Programmers and developers who understand Java
 programming basics and are familiar with distributed systems.

What you will learn:  An understanding of the basic mechanisms used
 in Java RMI, why the system was designed the way it was, and how to
 design your own RMI-based applications.

One of the major enhancements added to Java at the 1.1 release is
the Remote Method Invocation (RMI) facility. RMI allows calls to be
made between Java objects in different virtual machines, perhaps on
different physical machines. Unlike most previous distributed
computing infrastructures, RMI was designed to be language-centric.
This allows RMI programming to be done entirely in Java, utilizing
such language features as the rich Java type system and garbage
collection. Coupled with the code portability of the Java platform,
this language specificity simplifies distributed programming and
also allows the passing of objects by value as well as by
reference.

This course will introduce the design of RMI, and show how to build
distributed applications using the facility. It will be divided
between theory and practice, and will include discussions of the
garbage collection mechanisms, code loading and polymorphism in
distributed systems, as well as working through a number of
examples of actual code implementing RMI-based distributed
programs.

Jim Waldo is a senior staff engineer with JavaSoft, where he is
responsible for the overall architecture of pure Java distributed
systems.  Prior to joining JavaSoft, he was principle investigator
for the large-scale distribution project in Sun Microsystems
Laboratories. He has worked on object-oriented distributed systems
for over a decade, and was one of the lead architects of the
original CORBA specification.

Ann Wollrath is a staff engineer with JavaSoft, where she is the
lead designer and project lead of the Java Remote Method Invocation
system. Prior to joining JavaSoft, she did research in reliable,
large-scale distributed systems in Sun Microsystems Laboratories
and in parallel computation at MITRE Corporation.

___________________________________________________________________


1:30pm - 5:00pm
T4pm BUILDING DISTRIBUTED CORBA APPLICATIONS IN C++
Steve Vinoski, IONA Technologies, Inc.

Who should attend:  Experienced C++ developers who want to
 understand the fundamentals of CORBA-based programming in C++ to
 develop practical distributed object systems. A good understanding
 of C++ is required, but no CORBA experience is necessary.

What you will learn:  The basics that developers need to begin
 writing industrial-strength systems based on CORBA technology.
 The course presents a significant amount of real, working C++
 code, with detailed handouts that can serve as a CORBA C++
 programming reference.

This course first describes the basics of the Object Management
Group's (OMG) Object Management Architecture (OMA), and then
focuses on the fundamentals of the CORBA component of the OMA. C++
examples are first used to show how to develop simple clients and
servers based on static stubs and skeletons. All server examples
are based on the new Portable Object Adapter (POA) recently added
to CORBA. Then, details concerning use of the Dynamic Invocation
Interface (DII) and the Interface Repository are provided.

The second half of the course introduces a number of CORBA
services, including Naming, Events, and Trading, and through the
use of more C++ examples, shows how they can be used in real
applications. The course concludes with a brief overview of other
services such as Transactions and Security, followed by a
description of some of the other work currently in progress within
the OMG.

Steve Vinoski is a senior architect for IONA Technologies, Inc.,
makers of the Orbix Object Request Broker. A frequent speaker at
technical conferences, Steve has been giving CORBA tutorials around
the world since 1993. He has also helped put together several
important OMG specifications, including CORBA 2.0, the OMG IDL C++
Language Mapping, and the ORB Portability Specification. In 1996 he
served on the OMG Architecture Board.  Together with Doug Schmidt,
he writes the "Object Interconnections" column for the C++ Report.

___________________________________________________________________


1:30pm - 5:00pm
T5pm COM AND DISTRIBUTED COMPUTING
David Chappell, Chappell Associates

Who should attend:  Architects and developers interested in
 understanding how COM is used in distributed computing. The course
 requires an understanding of COM basics, but not of any particular
 programming language. This is not a programming course.

What you will learn:  An architectural introduction to and
 applications of Microsoft's Component Object Model (COM) and
 Distributed COM (DCOM).

Microsoft's Component Object Model (COM) was first applied to the
problems of compound documents and component software. Today, COM
also provides the foundation technology for Microsoft's approach to
distributed computing.

So far, there have been two major applications of COM in this area.
The first, Distributed COM (DCOM), is a middleware technology
addressing much the same problem as CORBA. The second is COM's
application to Web technology, where it is used to create
downloadable components and more.

This course provides an architectural introduction to both areas,
including:

* How DCOM extends COM
* Comparing DCOM and CORBA
* ActiveX documents in browsers
* ActiveX controls and the Web
* Comparing controls and Java applets/Beans

David Chappell is principal of Chappell & Associates, an education
and consulting firm in Minneapolis, and has presented seminars
around the world. He is a member of the Object Management Group, a
columnist for Object Magazine, and a frequent guest on the Computer
Channel. He is the author of  Understanding ActiveX and OLE.

__________________________________________________________________


1:30pm - 5:00pm
T6pm AN INTRODUCTION TO JAVA BEANS
Bill Rieken, .sh Consulting

Who should attend:  Java programmers who want to learn how to use
 Java Beans components. You should be familiar with O-O concepts and
 programming in Java.

What you will learn:  To read and write Java Beans components which
 interact with other Beans, Active X, and OpenDoc components.

The biggest advantage to using Java Beans is the wealth of
GUI-based development tools that are available to develop and
publish Beans to the world. Simple and intuitive, these tools can
be used to build systems of Beans without even once seeing a line
of source code. This course introduces the O-O component model and
"publish-subscribe" technology with emphasis on Java Beans.

There will be a general discussion of components before introducing
the Beans Component Model. Overview descriptions and comparisons
with Microsoft's Active X and Apple's OpenDoc products are
presented to give alternative design and implementation choices.

Events, the basic Beans interaction model, is presented before
seeing how Beans can represent their state and publish that state
to other Beans. The customization and introspection routines that
make Beans powerful and truly "plug and play" will be reviewed,
followed by an in-depth discussion on saving and restoring Beans
(persistence) and passing them as parameters across the wire.

The networking capabilities of the Java Beans environment are also
examined.  Starting with OLE and OpenDoc, you will see how Beans
interact with other component models. The Java RMI (Remote Method
Invocation) is used to demonstrate how to interact with Beans
across a network or on different machines.

Bill Rieken has over 25 years experience as a computer programmer
and educator. He began using UNIX version 6 in 1976.  He currently
provides technical support for distributed object programming in
C++ (CORBA) for the NEO/Joe (Java) products at SunSoft.  He has
taught many technical training courses for clients and public
tutorials for professional organizations such as USENIX, ACM, IEEE,
and UC Berkeley. He is a contributing author of Java Network
Programming and Java Beans.


===================================================================


CONTINUING EDUCATION UNITS 
USENIX provides Continuing Education
Units (CEUs) for a small additional administrative fee. The CEU is
a nationally recognized standard of unit of measure for continuing
education and training, and is used by thousands of organizations.
Each full-day USENIX tutorial qualifies for 0.6 CEUs. You can
request CEU credit by completing the CEU section on the
registration form. USENIX provides a certificate for each attendee
taking a tutorial for CEU credit, and maintains transcripts for all
CEU students.  CEUs are not the same as college credits. Consult
your employer or school to determine their applicability.


ADVANCED TOPICS WORKSHOP    Friday, June 20, 1997
==================================================
Software Components: Integration and Collaboration

This one-day post-conference workshop will focus on issues
surrounding the rapid integration and dynamic collaboration of
prefabricated components. The workshop topics include, but are not
limited to, experiences and analyses of the following:

* Innovative applications of component software 
* Strategies for component evolution and versioning
* Security and reliability issues of component collaboration 
* Fault tolerance and recovery of components 
* Tools for selecting and assembling components 
* Usage of specific technologies such as Java Beans, OpenDoc, ActiveX, 
  and LiveConnect

Attendance is limited to conference attendees and based on
acceptance of a position paper. Potential workshop attendees are
invited to submit a position paper of at most three ASCII pages via
electronic mail to Rajendra K. Raj rkr@ms.com no later than May 1,
1997.  Acceptance notices to all participants will be issued by May
20, 1997.  Position papers should briefly describe experiences,
interests, works in progress, and/or ongoing research and
development. A representative subset of authors of position papers
may be invited to make informal presentations at the workshop. The
workshop submissions will also be circulated in advance so that the
majority of the workshop time is spent on discussing relevant
issues.


===============================================================
TECHNICAL PROGRAM     Wednesday, June 18 - Thursday, June 19
===============================================================

Wednesday, June 18, 1997 
========================
8:45-9:00  Opening Remarks
  Steve Vinoski, IONA Technologies, Inc.

9:00-10:00 	
Keynote Address: Programming Languages - Why Should We Care?
Bjarne Stroustrup, AT&T Labs Research

A good program just does what it is supposed to do and the user
never catches a glimpse at its internals. So why would anyone care
what programming language was used to write it?  Naturally,
programmers will care the most, but aren't all programming
languages roughly equivalent?  Won't a good programmer build roughly
the same system, whatever programming language used?  I don't think
so, and my opinions on how programmers and their tools matter are
reflected in the design of C++.

This talk consists of three parts: the role of programmers and
programming languages; the origins, aims, and design rules for C++
described and contrasted to alternatives; and, some key language
features of C++ and the design and programming techniques they
support.

Dr. Bjarne Stroustrup is the designer and original implementor of
C++, and the author of  The C++ Programming Language and The Design
and Evolution of C++. He is the head of AT&T Research's Large-Scale
Programming Research department, an AT&T Fellow, and an AT&T Bell
Laboratories Fellow.  Dr. Stroustrup is actively involved in the
ANSI/ISO standardization of C++, and the recipient of the 1993 ACM
Grace Murray Hopper award. His research interests include
distributed systems, operating systems, simulation, design, and
programming.  He received a PhD from Cambridge University.

10:30-12:00	Compilation Techniques
Session Chair: Dmitry Lenkov, Hewlett-Packard

Harissa: A Flexible and Efficient Java Environment Mixing Bytecode and 
Compiled Code
  Gilles Muller, Barbara Moura, Fabrice Bellard, Charles Consel, IRISA /
  INRIA-University of Rennes

Montana Smart Pointers: They're Smart, and They're Pointers
  Jennifer Hamilton, IBM Toronto Laboratory

Toba: Java for Applications - A Way Ahead of Time (WAT) Compiler
  Todd A. Proebsting, Gregg Townsend, Patrick Bridges, John H. Hartman, 
  Tim Newsham, Scott A.  Watterson, University of Arizona

1:30-3:00	 Distribution I 
Session Chair: Murthy Devarakonda, IBM TJ Watson Research Center

Making CORBA Objects Persistent: the Object Database Adapter Approach 
  Francisco C. R. Reverbel, Universidade de Sao Paulo, Brazil; Arthur B.
  Maccabe, University of New Mexico

Obtuse, a Scripting Language for Migratory Applications
  Robert P. Cook, University of Mississippi

Exploiting the Internet Inter-ORB Protocol Interface to Provide CORBA 
with Fault Tolerance
  P. Narasimhan, L. E. Moser, P. M. Melliar-Smith, University of 
  California, Santa Barbara

3:30-5:00	 Frameworks I 
Session Chair: Joe Sventek, Hewlett-Packard Laboratories

Gold Rush: Mobile Transaction Middleware with Java-Object Replication
  Maria A. Butrico, Henry Chang, Anthony Cocchi, Norman H. Cohen,
  Dennis G. Shea, and Stephen E. Smith, IBM Thomas J. Watson Research
  Center

Metis: A Thin-Client Application Framework
  Deborra J. Zukowski, Apratim Purakayastha, Ajay Mohindra, Murthy 
  Devarakonda, IBM Thomas J.  Watson Research Center

Frigate: An Object-Oriented File System for Ordinary Users
  Ted H. Kim and Gerald J. Popek, University of California, Los
  Angeles

Thursday, June 19, 1997
=======================
9:00-10:30	Frameworks II
Session Chair: Daniel Edelson, IA Corporation

Embedded Programming with C++
  Stephen Williams, Picture Elements, Inc.

Implementing Optimized Distributed Data Sharing Using Scoped Behavior 
and a Class Library
  Paul Lu, University of Toronto

Extending the Standard Template Library for Parallelism in Coir[Futures]
  Neelakantan Sundaresan, IBM Software Solutions Division

11:00-12:30	Security
Session Chair: Rajendra Raj, Morgan Stanley

A Tool for Constructing Safe Extensible C++ Systems
  Chris Small, Harvard University

Krakatoa: Decompilation in Java (Does Bytecode Reveal Source?)
  Todd A. Proebsting, Scott A. Watterson, University of Arizona

Resource Access Control for an Internet User Agent
  Nataraj Nagaratnam, Syracuse University; Steven B. Byrne, JavaSoft,
  Inc., Sun Microsystems

2:00-3:00	 Patterns
Session Chair: Doug Lea, SUNY Oswego

Service Configurator: A Pattern for Dynamic Configuration of Services
  Prashant Jain and Douglas C. Schmidt, Washington University

Using the Strategy Design Pattern to Compose Reliable Distributed 
Protocols
  Benoit Garbinato and Rachid Guerraoui, Swiss Federal Institute of 
  Technology (EPFL)

3:30-5:00	Panel Discussion: Reliable Distributed Object Systems
Moderator: Jim Waldo, JavaSoft, Inc.

Judging from the submissions to COOTS '97, the topic of reliable
distributed objects is hot:  approximately 10% of the submissions
to the conference described ways of making distributed objects
reliable. This panel will consist of five presentations describing
different approaches to making distributed objects reliable and
fault-tolerant, intermixed with discussion concerning the pros and
cons of each approach.  Audience participation will be welcomed and
highly encouraged.

Participants: 
  Henrique Joao L. Domingos, New University of Lisbon
  Silvano Maffeis, Olsen & Associates
  Benoit Garbinato, Swiss Federal Institute of Technology (EPFL)
  Brent E. Modzelewski, Worcester Polytechnic Institute
  Priya Narasimhan, University of California, Santa Barbara


BIRDS-OF-A-FEATHER SESSIONS (BoFs)
=================================
Tuesday and Wednesday Evenings

Do you have a topic that you'd like to discuss with others?  Our
Birds-of-a-Feather Sessions may be perfect for you. BoFs are very
interactive and informal gatherings for attendees interested in a
particular topic. Schedule your BoF in advance by sending email to
conference@usenix.org or by telephoning the USENIX Conference
Office at 714.588.8649. You can also schedule a BoF on-site at the
registration desk.

STUDENT STIPENDS AVAILABLE
==========================
The USENIX student stipend program covers travel, living expenses,
and registration fees to enable full-time students to attend USENIX
meetings. Detailed information about applying for a stipend is
available at the USENIX Web site: http://www.usenix.org by reading
comp.org.usenix, or sending email to students@usenix.org.

USENIX ASSOCIATION
==================
USENIX is the Advanced Computing Systems Association.  Since 1975,
USENIX has brought together the community of engineers, system
administrators, scientists, and technicians working on the cutting
edge of the computing world.  USENIX conferences have become the
essential meeting grounds for the presentation and discussion of
the most advanced information on new developments in all aspects of
advanced computing systems.

SAGE, the System Administrators Guild
SAGE, a Special Technical Group within USENIX, is dedicated to the
recognition and advancement of system administration as a profession. 
To join SAGE, you must be a member of USENIX.

Visit our website at http://www.usenix.org.


HOTEL AND TRAVEL INFORMATION
============================
Hotel Discount Reservation Deadline: Monday, May 20, 1997

USENIX has negotiated special rates for conference attendees at the
Portland Marriott Hotel. Contact the hotel directly to make your
reservation. Please mention USENIX to get the special rate. A
one-night room deposit must be guaranteed to a major credit card.
To cancel your reservation, please notify the hotel at least 24
hours before your planned arrival date.

	Portland Marriott Hotel
	1401 S.W. Front Avenue
	Portland, OR 97201
	Toll Free: 800-228-9290
	Local Telephone: 503-226-7600
	Reservation Fax: 503-499-6357

Single/Double Occupancy:	 $125.00
(plus local taxes, currently at 9%)

Note: Requests for hotel reservations made after the deadline will
be fulfilled on a space and rate available basis only.

DISCOUNT AIRFARES 
Special airline discounts will be available for USENIX attendees.
Please call JNR, Inc. for details:

Toll Free in US and Canada: 800.343.4546 
Telephone: 714.476.2788

AIRPORT TO HOTEL TRANSPORTATION 
Portland International Airport is approximately 25 minutes from the
hotel. RAZ Airporter Transportation Service provides daily shuttle
service every 30 minutes from 5 am until midnight to the Portland
Marriott and other downtown hotels. Catch the shuttle outside the
baggage claim area. Shuttle cost is currently $8.50 one way.
Reservations not required. Taxi service is approximately $25.


===============================================================
		REGISTRATION FORM
3rd Conference on Object-Oriented Technologies & Systems (COOTS) 
		June 16-20, 1997
===============================================================

Please complete this registration form and return it along
with full payment to:

USENIX Conference Office		Phone: 714.588.8649
22672 Lambert St., Suite 613		Fax: 714.588.9706
Lake Forest, CA USA 92630

You may fax your registration form if paying by credit card. To 
avoid duplicate billing, please do not mail an additional copy.
===============================================================

NAME____________________________________________________________________
         (first)                                 	(last)
 
FIRST NAME FOR BADGE___________________________USENIX Member ID_________
 
COMPANY OR INSTITUTION______________________________________________
 
MAILING ADDRESS_____________________________________________________
                                                (mail stop)
 
_______________________________________________________________________
 
CITY___________________________STATE_____ZIP__________COUNTRY____________
 
TELEPHONE NO:____________________________FAX NO._________________________
 
EMAIL ADDRESS______________________________________________________

The address you provide will be used for all future USENIX mailings 
unless you notify us in writing.
===============================================================

ATTENDEE PROFILE 
Please help us serve you better.  By answering the following questions, you 
help us plan our activities to meet members' needs.  All information is confidential.

[ ]  I do not want to be on the attendee list.
[ ]  I do not want my address made available for other than USENIX mailings.
[ ]  I do not want USENIX to email me notices of Association activities.

What is your affiliation (check one):
( ) academic   ( )commercial   ( ) gov't   ( ) R&D

What is your role in the purchase decision (check one):
1.( ) final	2.( ) specify	3.( )recommend	4.( ) influence	5.( )no role

What is your primary job function (check one):
1.( ) system/network administrator	2.( ) consultant
3.( ) academic/research	4.( ) developer/programmer/architect 
5.( ) system engineer	6.( ) technical manager	7.( ) student
8.( ) security	9.( ) webmaster

How did you first hear about this meeting (check one):
1.( ) USENIX brochure	2.( ) newsgroup/bulletin board	3.( ) ;login:
4.( ) World Wide Web	6.( ) from a colleague	7.( ) magazine

What publications or newsgroups do you read related to object-oriented
technology? 
===============================================================

TUTORIAL PROGRAM

Select one AM and one PM tutorial per day.  Sorry, no partial or 
split-day registration allowed.

Monday, June 16, 1997
=====================
[ ] M1am   High-Performance C++ Programming
[ ] M2am   Concurrent Programming in Java: Language and Libraries
[ ] M3am   An Introduction to Design Patterns
[ ] M4pm   Advanced C++ Template Examples
[ ] M5pm   Design Patterns for Concurrent Programming: A Java Example
[ ] M6pm   Using Design Patterns and Frameworks to Develop 
	   Object-Oriented Communication Systems

Second choice if first filled: _____________________________

Tuesday, June 17, 1997
======================
[ ] T1am   Putting Metaclasses to Work
[ ] T2am   An Introduction to ActiveX and COM
[ ] T3am   Distributed Computing with Java Remote Method Invocation
[ ] T4pm   Building Distributed CORBA Applications in C++
[ ] T5pm   COM and Distributed Computing
[ ] T6pm   An Introduction to Java Beans

Second choice if first filled: _____________________________

TUTORIAL PROGRAM FEES  (Monday-Tuesday, June 16-17)

Tutorial program for two days				$620.00	$ _________
	CEU credit (optional)          			$ 30.00	$ _________
Tutorial program for one day				$335.00	$ _________
     	CEU credit (optional)				$ 15.00	$ _________

Late fee if postmarked after Friday, May 30, 1997...Add	$ 50.00	$ _________

TECHNICAL SESSION FEES  (Wednesday-Thursday, June 18-19)

Current member fee					$310.00	$ _________
 (Applies to individual members of USENIX, EurOpen 
  national groups, JUS, and AUUG)

Non-member fee*  					$380.00	$ _________
 *Join or renew your USENIX membership, AND attend 
 the conference for the same low price.	CHECK HERE [ ]

Join or renew your SAGE membership..................Add	$ 25.00	$ _________
 (You must be a member of USENIX)

Late fee if postmarked after Friday, May 30, 1997...Add	$ 50.00	$ _________

Full-time student** fee, pre-registered or on-site	$ 75.00	$ _________

Full-time student** fee including USENIX membership fee	$100.00	$ _________

**Students: Attach a photocopy of current student ID

                                    		TOTAL DUE 	$ _________


Payment (U.S. dollars only) must accompany this form. Purchase orders, 
vouchers, email, and telephone registrations cannot be accepted.

[ ] Payment enclosed. Make check payable to USENIX Conference.

Charge to my: ___VISA  ___MasterCard  ___American Express  ___Discover

Account No. ____________________________________ Exp. Date  ___/___
				
___________________________________/_________________________________
Print Cardholder's Name 		Cardholder's Signature 

*********************************************************
REFUND/CANCELLATION POLICY  
If you must cancel, all refund requests must be in writing with your 
signature, and postmarked no later than June 6, 1997. Telephone 
cancellations cannot be accepted. You may substitute another in your 
place.  Call the conference office for details: 714.588.8649.
*********************************************************
