Distributed Computing Products Overview

Date: 17 Sep 93 00:02:40 GMT
Organization: Boeing Computer Services
           
             DISTRIBUTED COMPUTING PRODUCTS OVERVIEW

  There was a recent posting concerning the relationship between OMG's CORBA
 and Distributed Transaction Processing Monitors. In general, there is a lot of
 uncertainty as to how the various distributed computing tools, products and
 environments might work together.  Below is the outline of an eight-page
 posting to the Corporate Facilitators of  Object-Oriented Technology (CFOOT)
 mailing list addressing these issues. Let me know if you would like a copy
 of the posting and/or to be added to the CFOOT mailing list. 
     
                                          Bob Marcus 
                                          rmarcus@atc.boeing.com
 -----------------------------------------------------------------------
 SOME GENERAL REFERENCES FOR ADDITIONAL INFORMATION 
 -----------------------------------------------------------------------
 MULTIPROTOCOL NETWORK TRANSPORTS

  Peer Logic (PIPES)
  ATT (Transport Layer Interface) 
 -----------------------------------------------------------------------
 MICROKERNELS

  OSF(Mach)
  Chorus Systems (Chorus)
  Microsoft (NT)
 -----------------------------------------------------------------------
 REMOTE PROCEDURE CALLS

  NobleNet (EZ-RPC)
  Netwise (Netwise-RPC) 
  ATT/Sun (TI-RPC)
  OSF (DCE/RPC)
 -----------------------------------------------------------------------
 CONVERSATIONAL PROGRAMMING

  IBM(Common Programming Interface-Communications)
 -----------------------------------------------------------------------
 MESSAGING PRODUCTS

  System Strategies/IBM (MQ Series)
  Horizon Strategies (Message Express) 
  Covia Systems(Communications Integrator)
  Momentum Software(X-IPC)
  Creative System Interface (AAI)
  Digital (DECmessageQ)
  HP (Sockets)(BMS)
  IBM (DataTrade)(DAE)
  Suite Software (SuiteTalk)
  Symbiotics (Networks)
 -----------------------------------------------------------------------
 PUBLISH AND SUBSCRIBE MESSAGING 
 
  Sun(Tooltalk)
  Teknekron (Teknekron Information Bus)
  ISIS(Distributed News)
  Expert Database Systems (Rnet)
 ----------------------------------------------------------------------
 DISTRIBUTED COMPUTING ENVIRONMENTS

  OSF/DCE
  ISIS(Distributed Toolkit)
 -----------------------------------------------------------------------
 TRANSACTION PROCESSING MANAGERS 

  Unix Systems Lab (Tuxedo) 
  Information Management Company (Open TransPort) 
  NCR (TopEnd)
  Transarc (Encina)
  IBM/HP/Transarc (Open CICS)
 -----------------------------------------------------------------------
 DISTRIBUTED WORKSTATION EXECUTION SYSTEMS

  Aggregate Systems (NetShare)
  Platform Computing(Utopia)
  ISIS(Resource Manager)
 -----------------------------------------------------------------------
 OBJECT REQUEST BROKERS 

  Hyperdesk (Distributed Object Manager)
  IBM Distributed System Object Model(DSOM)
  Microsoft (Distributed OLE)
  Iona Technologies Ltd. (Orbix) 
  BBN (Cronus)
  ISIS (RDOM)
  Qualix (NetClasses)
  Symbiotics (Networks!)
  Digital(ACA Services) 
  Suite Software (SuiteDOME)
 -----------------------------------------------------------------------
 SYSTEM MANAGEMENT  

  OSF (Distributed Management Environment)
  Legent
  Digital Analysis (HyperManagement)
 -----------------------------------------------------------------------
 DISTRIBUTED DEVELOPMENT/EXECUTION PRODUCTS   

  Texas Instruments (Information Engineering Facility)
  HP (SoftBench)
  Digital (COHESIONworX) 
 -----------------------------------------------------------------------
 DISTRIBUTED DEVELOPMENT/EXECUTION PRODUCTS   

  Independence Technologies (iTRAN)
  Intellicorp(Kappa) 
  ISIS Distributed Systems (RDOM) 
  Early, Cloud & Company (Message Driven processor)
  Expersoft(XShell)
  Cooperative Solutions(Ellipse)
 -----------------------------------------------------------------------


3.13) What Is The MVC Framework?
--------------------------------

MVC stands for Model-View-Controller.  This framework was originally adopted
in Smalltalk to support Graphical User Interfaces.  Views support graphical
interfacing, controllers handle interaction, and models are the application
objects.  More details and references will be included in future FAQs.

"A Cookbook for Using the Model-View-Controller User Interface Paradigm in
Smalltalk-80".  G. E. Krasner and S. T. Pope.  JOOP, vol 1, no 3, August/
September, 1988, pp 26-49,


3.14) What is Real-Time?
------------------------

Real-time is our linear extrapolation/perception of imaginary time.

[This section is YTBI]


SECTION 4:  COMMONLY ASKED LANGUAGE SPECIFIC QUESTIONS
======================================================

4.1)  What is Downcasting?
--------------------------

Downcasting is the term used in C++ for casting a pointer or reference to
a base class to a derived class.  This should usually be checked with an
embedded dynamic typing scheme if such a scheme is not present in the
language, such as with a typecase (Modula-3) or inspect (Simula) construct.
In C++, it is even possible to use conversion functions to perform some
checks, although the proposed RTTI will perform checked downcasting as
its primary ability.


4.2)  What are Virtual Functions?
---------------------------------

Look under "Dynamic Binding" and "Polymorphism".


4.3)  Can I Use Multiple-Polymorphism Or Multi-Methods In C++?
---------------------------------------------------------------

Yes, but you'll need to embed a dynamic typing scheme to do it.  With dynamic
types in place, an overriding method in a derived class can explicitly check
argument types in a switch statement and invoke the desired method emulating
multiple-polymorphism [See Coplien 92].  

For true CLOS multi-methods, the above technique implemented as a base function
(CLOS defgeneric), switching to specialized functions (CLOS methods, made
friends of all arguments) will provide the functional calling syntax, multiple-
polymorphism and access to parameters found in CLOS.  This can require some
complex switching, which is somewhat mitigated when multiple-polymorphism
is implemented with virtual functions.

Future FAQs should contain more detail.


4.4)  Can I Use Dynamic Inheritance In C++?
-------------------------------------------

Yes, [Coplien 92] describes a scheme where a class can contain a pointer to
a base class that can switch between its derived classes, providing a limited
form.  Earlier chapters contain entries on bypassing C++'s message system and
even bypassing static linking.

Future FAQs should contain more detail.



ANNOTATED BIBLIOGRAPHY
======================

[Agrawal 91]  R. Agrawal et al.  "Static Type Checking of Multi-Methods".
 OOPSLA 91.  Object-Oriented Programming Systems, Languages, and Applications.  
 ACM Press.  Addison Wesley.

  Compile-time checking and optimizations for multi-methods.

[Aho 86] Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman.  Compilers:
 Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.

  Authoritative, classic book on compilers and optimizations.  Type chapter
  contains section on type inferencing (using ML as an example).

[Berard 93]  Edward V. Berard.  Essays on Object-Oriented Software
  Engineering.  Prentice Hall.

  Many topics on OOSE, includes coverage of OO domain and requirements
  analysis.

[Black 86] A. Black et al.  Object-Structure in the Emerald System.  OOPSLA
 '86 Conference Proceedings, SIGPLAN Notices (Special Issue), Vol. 21, n0. 11,
 pp 78-86.    [I believe there is a more recent article, YTBI]

  The original article on Emerald.  OO language without inheritance but with
  abstract types and static subtype polymorphism.  Also designed for
  distributed programming and reuse.  See article for references: Jade on
  reuse [Raj 89]) and Distr. Prog.

[Black 87] A. Black, N. Hutchinson, E. Jul, H. Levyand L. Carter.  Distribution
 and Abstract Types in Emerald, IEEE Transactions on Software Engineering, Vol.
 SE13, no. 1 Jam., pp 65-76.
 
  Subtype polymorphism for distributed programming in Emerald [Black 86].

[Blair 89] "Genericity vs Inheritance vs Delegation vs Conformance vs ..."
 Gordon Blair, John Gallagher and Javad Malik, Journal of Object Oriented
 Programming, Sept/Oct 1989, pp11-17.

  Recommended by a reader, but the Author has yet to review this article.

[Boehm 86] B.W. Boehm. A Spiral Model of Software Development and Enhancement.
 Software Engineering Notes, Aug., vol. 11 (4), p 22.

 Presents an alternative evolutionary approach to the strict waterfall software
 engineering life-cycle.  Now a classic, most OO methodologies now emphasize
 the iterative or evolutionary approach to software development.

[Booch 87] Grady Booch.  Software Engineering with Ada.  2nd Ed.  Benjamin
 Cummings.

  Booch in his early years.  Mostly object-based programming with Ada.

[Booch 87b] Grady Booch.  Software Components With Ada, Structures, Tools,
 and Subsystems.  Benjamin Cummings.

  A taxonomy and collection of object-based components in Ada (includes code).
  Has many examples with generics.

[Booch 91] Booch, Grady. Object-Oriented Design With Applications.  Benjamin
  Cummings.

  The often referred to book on OOD.  Offers design notation and methodology.
  Brief coverage of OOA and elaborate OOD/P coverage in the applications.
  Good on basic principles and has case studies in Smalltalk, Object Pascal, 
  C++, CLOS and Ada.

  Also contains an *elaborate* classified bibliography on many areas of OO.

[Booch 94]  Grady Booch.  Object-Oriented Analysis And Design With
 Applications, 2nd Ed. Benjamin Cummings.  ISBN 0-8053-5340-2.

  The next FAQ should be updated to the second edition.  All examples are now
  in C++.  Booch incorporates several other major methodologies including
  Wirf-Brock's CRC (Class-Responsibility-Collaboration) and Jacobson's Use-
  Cases.

[Cardelli 85]  L. Cardelli and P. Wegner.  On Understanding Types, Data
 Abstraction, and Polymorphism.  ACM Computing Surveys vol. 17 (4).

 Long, classic article on Object-Oriented Types, Data Abstraction and
 Polymorphism.  Formal coverage with a type system analysis model as well.

[Chambers 92]  Craig Chambers.  The Design and Implementation of the SELF
 Compiler, an Optimizing Compiler for Object-Oriented Programming Languages.
 Dept of Computer Science, Stanford University, March 1992.

  Covers type optimizations for OO compilers.  See Appendix E, PAPERS.

[Chambers 93]  Craig Chambers.  Predicate Classes.  Proceedings ECOOP '93
  O. Nierstrasz, LNCS 707. Springer-Verlag, Kaiserslautern, Germany
  July 1993 pp 268-296

   "... an object is automatically an instance of a predicate class whenever
   it satisfies a predicate expression associated with the predicate class.
   The predicate expression can test the value or state of the object, thus
   supporting a form of implicit property-based classification that augments
   the explicit type-based classification provided by normal classes.  By
   associating methods with predicate classes, method lookup can depend not
   only on the dynamic class of an argument but also on its dynamic value or
   state. [...] A version of predicate classes has been designed and
   implemented in the context of the Cecil language.

  See Appendix E, PAPERS.

[de Champeaux 93] Dennis de Champeaux, Doug Lea, Penelope Faure.
 Object-Oriented System Development.  Addison-Wesley, ISBN 0-201-56355-X.

  Covers an integrated treatment of OOA and OOD.  Takes serious the
  computational model of one thread per object.  Gives more than usual
  attention to the OOA&D micro process.  Presents a unique OOD language.

[Coad 91]  Peter Coad and Edward Yourdon. Object-Oriented Analysis, 2nd ed.
 Englewood Cliffs, NJ. Prentice Hall.

  Coad and Yourdon's OO analysis method.

[Coad 91b]  Peter Coad and Edward Yourdon. Object-Oriented Design.  Englewood
 Cliffs, NJ. Prentice Hall.

  Coad and Yourdon's OO design method.

[Coleman 94] Derek Coleman, et. al.  Object-Oriented Development - The Fusion
 Method.  Prentice-Hall Object-Oriented Series. ISBN 0-13-338823-9

  Fusion is considered to be a second generation OOAD method in that it builds
  on successful components of a number of first generation methods (OMT, Booch,
  CRC, Objectory, etc).  However, this has been done with the requirements of
  industrial software developers in mind. And so issues of traceability,
  management etc. have been taken into consideration and the Method provides
  full coverage from requirements through to code.

[Coplien 92] James O. Coplien.  Advanced C++ Programming Styles and Idioms.
  Addison Wesley.

  Covers advanced C++ programming and performing other more advanced and
  dynamic styles of OO in C++.

[Colbert 89]  E. Colbert.  The Object-Oriented Software Development Method: a
 practical aproach to object-oriented development.  Tri-Ada Proc., New York.

  Presents the Object-Oriented Software development method.  Has emphasis on
  objects.

[Cox 86,91] Cox, Brad J.  Object-Oriented Programming, An Evolutionary
 Approach.  Addison Wesley.

  The original book on Objective-C.  Coverage on object-oriented design and
  programming.  Also covers Objective-C implementation, even into object code.
  
  Objective-C... '91 AW by Pinson and Wiener provide another good text.

[Embley 92]  D.W. Embley, B.D. Kurtz, S.N. Woodfield.  Object-Oriented Systems
 Analysis, A Model-Driven Approach. Yourdon Press/Prentice Hall, Englewood
 Cliffs, NJ.

  Presents the Embley and Kurtz OO methodology.

[Garfinkel 93]  Simson L. Garfinkel and Michael K. Mahoney.  NeXTSTEP
 PROGRAMMING  STEP ONE: Object-Oriented Applications.  Springer-Verlag.

  Introduction to the NextStep environment and applications development.
 
[Goldberg 83] Adele Goldberg and David Robson. Smalltalk-80 The Language and
 Its Implementation.  Addison Wesley.

  The original book on Smalltalk.  Covers implementation.  Also known as "the
  Blue Book".  Out of print.  Superceded by [Goldberg ??].

[Goldberg ??] Adele Goldberg and David Robson. Smalltalk-80: The Language.
 Addison-Wesley. 

  The "Purple Book".  Omits the obsolete abstract virtual machine description
  from the Blue Book.

[Harmon 93] Paul Harmon.  Objects In Action: Commercial Applications Of Object-
 Oriented Technologies.  Jan, 1993.  A-W ISBN 0-201-63336-1.

  Sponsored by the OMG to summarize the use of OO technology in industry and
  business, contains a brief history and summary of OO and many case studies.

[HOOD 89] HOOD Working Group.  HOOD Reference Manual Issue 3.0.  WME/89-173/JB.
 Hood User Manual Issue 3.0. WME/89-353/JB.  European Space Agency.

  Presnets the HOOD (Hierarchical Object-Oriented Design) OOSE methodology.
  From the European Space Agency.  Based on Ada and object-based.

[Hudak 92] Paul Hudak and Simon Peyton Jones.  Haskell Report. SIGPLAN Notices.
 1992, vol 27, no 5.

  Haskell reference.

[Humphrey 89]  Watts Humphrey.  Managing the Software Process.  Addison Wesley.

  Sponsored by the Software Engineering Institute (SEI), the presented project
  management model is inspired by the work of Boehm, Brooks, Demming and Juran
  and represents a strong step in the direction of achieving 6 sigma defect
  rate prevention and optimizing the software development process for quality,
  productivity, and reliability.

[IBM 90,91]  Various Documents from the IBM International Technical Centers:
 GG24-3647-00, GG24-3641-00, GG24-3566-00, GG24-3580-00.

  Present IBM's OOSE methodology.

[Jacobson 92]  Ivar Jacobson, et al.  Object-Oriented Software Engineering - A
 Use Case Driven Approach. ACM Press/Addison Wesley.

  Presents Jacobson's new OOSE methodology based on use cases.

[Jones 92]  Rick Jones. Extended type checking in Eiffel. Journal of Object-
 Oriented Programming, May 1992 issue, pp.59-62.

  Presents subtype polymorphic extension to Eiffel (static typing only).

[Jurik 92] John A. Jurik, Roger S. Schemenaur, "Experiences in Object Oriented
 Development," ACM 0-89791-529-1/92/0011-0189.

  Presents the EVB OOSE methodology.  Also: Barbara McAllister, Business
  Development, EVB Software Engineering, Inc., (301)695-6960, barb@evb.com.

[Kiczales 92] Gregor Kiczales, Jim des Rivieres, Daniel G. Bobrow.  The Art
 of the Metaobject Protocol.  The MIT Press.

  Reflection and Metaobject Protocols (MOPs).  Uses a CLOS subset, clossette,
  as a foundation.

[Kim 89]  Won Kim and Frederick Lochovsky Editors.  Object-Oriented Concepts,
 Applications, and Databases.

  Collection of articles on advanced OO and research systems.

[Lakoff 87] George Lakoff.  Women, Fire, and Dangerous Things: What Categories
  Reveal About The Mind.  UOC Press.

  An almost formal view of classification/categorization by the noted cognitive
  scientist, George Lakoff.  His view blasts objectivism and contends to
  replace it with a subjectivist view, based on a study of humans, natural
  language, and concept formation.

[LaLonde 90]  Wilf R. LaLonde and John R. Pugh.  Inside Smalltalk: Volume 1.
 Prentice Hall.

  Good introduction to Smalltalk.

[LaLonde 90b]  Wilf R. LaLonde and John R. Pugh.  Inside Smalltalk: Volume 2.
 Prentice Hall.

  Excellent coverage of MVC. However, it's based on ParcPlace Smalltalk-80,
  version 2.5, which is obsolete.

[Liskov 93] Barbara Liskov and Jeannette M. Wing.  Specifications and Their use
 in Defining Subtypes.  OOPSLA 93, pp 16-28.  ASM SIGPLAN Notices, V 28, No 10,
 Oct. 1993.  A-W ISBN 0-201-58895-1.

  Specifications on Subtype hierarchies.  Helps to insure the semantic
  integrity of a separate subtype system.  See section 2.7.

[Madsen 93] Ole Lehrmann  Madsen, Birger Moller-Pedersen, Kristen Nygaard:
 Object-oriented programming in the BETA programming language.  Addison-Wesley,
 June 1993. ISBN 0 201 62430 3

  The new and authoritative book on Beta, by the original designers.  They
  are some of the same designers of the Simula languages, originating OO.
  Also just announced:
	Object-Oriented Environments: The Mjolner Approach
	Editors: Jorgen Lindskov Knudsen, Mats Lofgren, Ole Lehrmann Madsen,
		 Boris Magnusson
	Prentice Hall: The Object-Oriented Series
	ISBN: 0-13-009291-6 (hbk)

[Martin 92] James Martin and James J. Odell. Object-Oriented Analysis and
 Design, Prentice-Hall, Englewood Cliffs, NJ.  

  Its primary purpose is to indicate how information engineering (IE) can be 
  evolved to accommodate OO.  The analysis portion (starting at Chapter 15) 
  attempts to go back to 'first principles' and is based on a formal foundation.
  Therefore, the IE aspect is not required.  Emphasis is more on analysis than 
  design.

[Meyer 88] Bertrand Meyer. Object-Oriented Software Construction.  Prentice
 Hall.  [Is there a new edition out?]

  The original book on Eiffel.  Coverage on object-oriented design and
  programming.  Also:
  Bertrand Meyer. Eiffel: The Language. PH. Englewood Cliffs, NJ. 1991(?)

[Mugridge 91] Warwick B. Mugridge et al.  Multi-Methods in a Statically-Typed
 Programming Language. Proc. ECOOP.

  Efficient implementation of Multi-Methods.

[Murray 93] Robert B. Murray.  C++ Strategies and Tactics.  Addison Wesley.

  C++, has template examples.

[Nerson 92] Jean-Marc Nerson.  Applying Object-Oriented Analysis and Design.
 CACM, 9/92.

  Demonstrates the basics of the BON method/notation.  Nerson: marc@eiffel.fr

[Raj 89] R.K. Raj and H.M. Levy.  A Compositional Model for Software Reuse.
 The Computer Journal, Vol 32, No. 4, 1989. 

  A novel approach aading reuse to Emerald [Black 86] without inheritance.

[Reenskaug 91] T. Reenskaug, et al.  OORASS: seamless support for the creation
 and maintenance of object-oriented systems. Journal of Object-Oriented
 Programming, 5(6).

  Presents the Object-Oriented Role Analysis, synthesis, and Structuring
  OOSE methodology.

[Royce 70] W. W. Royce. Managing the Development of Large Software Systems.
 Proceedings of IEEE WESCON, August 1970.

 Introduces the Waterfall Process Model.

[Rumbaugh 91] Rumbaugh James, et al.  Object-Oriented Modeling and Design.
 Prentice Hall.

  The often referred to book on OOA/OOD.  Introduces the Object Modeling
  Technique (OMT) OOA/D notation and methodology.  Has case studies.

[Sciore 89] Edward Sciore.  Object Specialization. ACM Transactions on
 Information Systems, Vol. 7, No. 2, April 1989, p 103.

  A hybrid approach between delegation and classical OO.

[Shlaer 88] Sally Shlaer and Stephen J. Mellor.  Object-Oriented Systems
 Analysis: Modeling the World in Data.

  Credited as the first book proposing an OOA method.

[Shlaer 92] Sally Shlaer and Stephen J. Mellor.  Object Lifecycles: Modeling
  the World in States.

  An addition to [Shlaer 88], provides dynamic modeling with a state-
  transition driven approach.

[Strachey 67]  C. Strachey.  Fundamental Concepts in programming languages.
 Lecture Notes for International Summer School in Computer Programming,
 Copenhagen, Aug.

  Contains original, classical definition of polymorphism.

[Stroustrup 90] Ellis, M.A., Stroustrup. The Annotated C++ Reference Manual.
 Addison Wesley.

  The ARM; the original and definitive book on C++.  Serves as the ANSI
  base document for C++.  Also covers C++ implementation.  It is meant as 
  a reference (including for compiler writers), not as a tutorial for
  beginners.  Perhaps a better ref is [Stroustrup 91].

[Stroustrup 91] Stroustrup, B.  The C++ Programming Language (2nd edition).

  Has the ARM, better reference for the use of C++ (recommended by bs).
  Contains sections on object-oriented software engineering.

[Tasker 93]  Dan Tasker.  The Problem Space, Practical Techniques for
  Gathering & Specifying Requirements. ISBN: 0-646-12524-9.  Avail only from
  author, dant@swdev.research.otc.com.au.

  Object-oriented requirements definition.  Hypertext.  Uses Rumbaugh's OMT as
  a base.  See also APPENDIX D.

[Ungar 87] D. Ungar and R.B. Smith.  The Self Papers. [Entry To Be Completed]

  The documents on Self; a delegation/prototyping language.  Also covers Self
  implementation and optimization.  See also APPENDIX E, PAPERS section.

[Wasserman 90] A.I. Wasserman et al. The Object-Oriented Software Design
 Notation for Software Design Representation. IEEE Computer, 23(3).

  Presents the Object-Oriented Structured Design (OOSD) OOSE methodology.
  Traditional structured techniques to OO, hybrid containing structured
  design and Booch.

[Wegner 87] Peter Wegner. "Dimensions of Object-Based Language Design",
  Proceedings of OOPSLA '87, October 4-8 1987, SIGPLAN Notices
  (Special Issue), V22, No 12, pp168-182, 1987.

[Wikstrom 87] Ake Wikstrom.  Functional Programming Using Standard ML.
 Prentice Hall, ISBN 0-13-331661-0, 1987.

  ML reference.

[Wilkie 93] George Wilkie. Object-Oriented Software Engineering - The
 Professional Developer's Guide. Addison Wesley.

  Covers OOSE, 11 popular analysis and design methodologies with examples,
  comparisons, and analysis, information systems (OODB), and case studies.

[Winter Partners]  Winter Partners 

  A proprietary toolset (OSMOSYS) for OOA and OOD.
  Winter Partners
    London Office:                 Zurich Office:
      West Wing, The Hop Exchange
      24a Southwark Street           Florastrasse 44
      London SE1 1TY                 CH-8008 Zurich
      England                        Switzerland
      Tel. +44-(0)71-357-7292        Tel. +41-(0)1-386-95 11
      Fax. +44-(0)71-357-6650        Fax. +41-(0)1-386-95 00

[Wirfs-Brock 90] Rebecca Wirfs-Brock, Brian Wilkerson, Lauren Wiener.
 Designing Object Oriented Software, Englewood Cliffs, NJ. Prentice Hall.

  Presents a "Responsibility Driven Design" (RDD) with "Class, Responsibility,
  Collaboration" (CRC) technique, a modern and new OOA/OOD methodology.

[Yaoqing 93]  Gao Yaoqing and Yuen Chung Kwong.  A Survey of Implementations
 of Parallel, Concurrent, and Distributed Smalltalk.  ACM SIGPLAN Notices.
 Vol 28, No. 9, Sept 93.

  Covers implementations of Parallel, Concurrent, and Distributed Smalltalk.

[Yourdon 92]  Edward Yourdon.  Decline and Fall of the American Programmer.
 YPCS.

  Excellent coverage of modern software engineering practice and world-class
  software development organizations.



APPENDICES
==========


APPENDIX A  VIPS
================

These are individuals whose names appear in comp.object most often. 
Please send recommendations for *major* VIPS often cited or referenced.

Booch, Grady <egb@rational.com>
-------------------------------

Grady Booch has been an object-oriented Ada advocate for some time.  He's
written books such as Software Engineering with Ada, Software Components
with Ada, and OOD with Applications.  The first two are Object-Based and
the second is primarily Object-Oriented and all use OB and OO notations and
methodologies.  His last notations are often referred to as simply the
"Booch" method or notation and his company, Rational, provides automated
support with a tool named "Rose".  See also APPENDIX D.


Cox, Brad
---------

Founder of Objective-C, which grafts the Smalltalk facilities of an
Object id and a messaging mechanism onto C.  Author of [Cox 87].


Goldberg, Adele  (Alan Kay, Dan Ingalls)
----------------------------------------

One of the founders of Smalltalk (with Alan Kay and Dan Ingalls).  Coauthor
of [Goldberg 83, ??], "Smalltalk-80 The Language and its Implementation".
Smalltalk was invented by a group at Xerox PARC; and a spinoff, ParcPlace, is
now marketing Smalltalk environments (see APPENDIX C).


Meyer, Bertrand <bertrand@eiffel.com>
-------------------------------------

Founder of Eiffel, author of [Meyer 88].  Often posts to comp.lang.eiffel
and comp.object [what a FAQ writer notices].  His company, Interactive
Software Engineering, has a case tool called EiffelCase (see APPENDIX D).


Nygaard, Krysten (and Dahl, Ole-Johan)
--------------------------------------

Inventor of Simula, the first object-oriented programming language.  Also
inventor of object oriented design, for which Simula-67 was considered an
implementation technique.  Now B.B. Kristensen, O.L. Madsen, B. Moller-
Pedersen, and K. Nygaard are working on Beta, their successor to Simula.


Rumbaugh, James
---------------

Part of Rumbaugh, Blaha, Premerlani, Eddy and Lorenson, the authors of
[Rumbaugh 91].  They all work for GE Corporate Research and Development Center
in Schenectady New York and have an OOA/OOD notation/methodology called the
"Object Modeling Technique".  It is a rather formal and complete method often
discussed in comp.object.  OMTool is the name of the CASE system provided by
GE which supports OMT.  See APPENDIX D.


Shlaer, Sally (and Mellor, Stephen J.)
--------------------------------------

>Sally Shlaer            sally@projtech.com
>Project Technology      Training and Consulting using Shlaer-Mellor OOA/RD
>Berkeley, CA            (510) 845 1484

Cofounder of the Shlaer/Mellor OOA/RD method, president of Project Technology.
As shown above, occasionally posts to comp.object [what a FAQ writer notices].


Stroustrup, Bjarne (bs@alice.att.com)
-------------------------------------

Inventor of C++, a C superset, which has probably gained the most widespread
use of any object-oriented language today.  Often found in comp.lang.c++ and
comp.object.



APPENDIX B  OBJECT-ORIENTED DATABASES AND VENDORS
=================================================

This is a list of available Object-Oriented databases.  Thanks go to Stewart
Clamen, who's survey on schema evolution provided a good start.  Additional
short entries are encouraged; please send additions to the author of the FAQ
(and/or to Stewart).

The most recent copy of Stewart Clamen's summary on available databases
support for schema evolution will be available indefinitely via anonymous
FTP from BYRON.SP.CS.CMU.EDU:/usr/anon/OODBMS/evolution-summary.

[Kim 89] covers a few of the research systems below in depth.

Starred entries also have an entry in "APPENDIX E  ANONYMOUS FTP SITES".


TABLE OF CONTENTS

Extended Relational Database Model
 Research Systems
  POSTGRES*     [marketed by Montage]
  Starburst     [IBM almaden, entry NYI]
 Commercial Systems
  Montage       [Research System POSTGRES]

Object-Oriented Data Model
 Research Systems
  AVANCE
  CLOSQL
  ConceptBase*
  COOL/COCOON
  Encore*
  Exodus*
  Machiavelli
  MOOD4-PC*
  OBST/STONE*
  Ode*
  Oggetto
  Orion [marketed as ITASCA, see Entry]
  OTGen
  VODAK
 Commercial Systems
  ArtBASE
  EasyDB (Objective Systems, Sweden)
  GemStone/GeODE
  ITASCA
  Matisse
  NeoAccess
  O2
  Objectivity/DB
  ObjectStore
  Ontos [formerly VBase]
  OpenODB (HP)
  Poet
  Statice
  UniSQL
  Versant

Other Models
 Research Systems  
  GRAS*
  IRIS
 Commercial Systems  
  IDL
  Kala
  Pick

Interfaces
 Research Systems
  Penguin
 Commercial Systems
  Persistence
  Subtlware


EXTENDED RELATIONAL DB MODEL
----------------------------

Research Systems
________________


> POSTGRES (Berkeley)

POSTGRES is an extended-relational database manager that supports
inheritance, user-defined types, functions, and operators, ad-hoc
queries, time travel, a rules system, tertiary storage devices,
and very large typed objects, among other things.  POSTGRES speaks
postquel, a derivative of the quel query language originally
designed at berkeley for the ingres database system.  User functions
may be written in C or in postquel.  C functions will be dynamically
loaded into the database server on demand, and either kind of function
may be executed from the query language.

POSTGRES and the papers that describe it are available free of charge
from toe.CS.Berkeley.EDU (128.32.149.117) in directory pub/postgres.
The code is stored in a directory named after the latest release; at
the time of this writing, that directory is postgres-v4r1.  The list
of officially-supported ports is short (decstations running ultrix 4.x
and sparcstations).  Unofficially, many more are supported -- people
elsewhere have done the ports and distribute their versions of the
code.  The list of unofficial ports is available in pub/postgres as
file UNOFFICIAL-PORT-LIST.

On Type Evolution:
You ask explicitly about type evolution.  We support schema
modification on all classes, including user classes.  This means that
you can add attributes (instance slots) and methods at any time.
Further, since postgres is a shared database system, such changes are
instantly visible to any other user of the class.

The language syntax supports attribute deletion, but the system won't
do it yet.  Since all data is persistent, removing attributes from a
class requires some work -- you need to either get rid of or ignore
all the values you've already stored.

Contact:
Paul Aoki <aoki@cs.berkeley.edu>

The postgres code from uc berkeley is being commercialized by
Miro Systems, Inc.        [This seems to have been updated to Montage]

Contact:
  paula hawthorn (paula@miro.com) 
  dave segleau (dave@miro.com)


Commercial Systems
------------------

> Montage (ORDBMS) [Research System POSTGRES]
Go Back Up

Go To Previous

Go To Next