copyright 8 2002 flying kiwi productions inc. [email protected] 1 an introduction to object-oriented...

57
Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 1 An Introduction to An Introduction to Object-Oriented Object-Oriented Analysis Analysis Objects in and UML plain English. Objects in and UML plain English. Chapter 14: Implementation Chapter 14: Implementation OOPLs and OODBMSs OOPLs and OODBMSs Based on the book by Based on the book by David William Brown David William Brown John Wiley & Sons, ISBN 0471371378

Upload: coral-ford

Post on 23-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 1

An Introduction toAn Introduction to

Object-Oriented Object-Oriented AnalysisAnalysis

Objects in and UML plain English.Objects in and UML plain English.

Chapter 14: Implementation Chapter 14: Implementation OOPLs and OODBMSsOOPLs and OODBMSs

Based on the book by Based on the book by

David William BrownDavid William BrownJohn Wiley & Sons, ISBN 0471371378

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 2

CopyrightCopyrightCopyright Copyright 88 2002 Flying Kiwi Productions2002 Flying Kiwi Productions

All rights reserved.All rights reserved.

This slide presentation is based on “An Introduction to Object-This slide presentation is based on “An Introduction to Object-Oriented Analysis; Objects and UML in Plain English,” by Oriented Analysis; Objects and UML in Plain English,” by David William Brown, Wiley, ISBN 0471371378, “The Book.”David William Brown, Wiley, ISBN 0471371378, “The Book.”

PermissionPermission is hereby granted to copy, modify or excerpt all or is hereby granted to copy, modify or excerpt all or any part of this slide presentation, provided it is solely for any part of this slide presentation, provided it is solely for use with courses, seminars or other presentations or use with courses, seminars or other presentations or productions productions where a copy of The Book is purchasedwhere a copy of The Book is purchased by or for each and by or for each and every participant or recipient.every participant or recipient.

AnAn instructor guide is available from the publisher for such instructor guide is available from the publisher for such presentations.presentations.

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 3

Chapter 14: Implementation: Chapter 14: Implementation: OOPLs and OODBMSsOOPLs and OODBMSs

14.1. Languages and Databases.14.1. Languages and Databases. 14.2. Directions: OMG and ODMG.14.2. Directions: OMG and ODMG. 14.3. Issues for O-O Languages and 14.3. Issues for O-O Languages and

Databases.Databases. 14.4. O-O Programming Languages.14.4. O-O Programming Languages. 14.5. O-O Databases.14.5. O-O Databases. 14.6. O-O Development Environments.14.6. O-O Development Environments.

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 4

14.1. Languages and 14.1. Languages and Databases.Databases.

Chapter 14: Implementation: Chapter 14: Implementation: OOPLs and OODBMSsOOPLs and OODBMSs

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 5

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs14.1. Languages and Databases.14.1. Languages and Databases.

““NICE” CommitteeNICE” Committee Nonprofit International Consortium for EiffelNonprofit International Consortium for Eiffel

Sun hasSun has 117 licensees117 licensees for Java.for Java.Java is now the language of choiceJava is now the language of choiceLicence has tight compatibility requirementsLicence has tight compatibility requirementsIn 1997, Sun found it necessary to sueIn 1997, Sun found it necessary to sue

Microsoft for licence violation and non-Microsoft for licence violation and non-standardstandard featuresfeatures..

Only Microsoft.Only Microsoft.

Both Both EiffelEiffel and and JavaJava have been have been standardized by the inventorsstandardized by the inventors

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 6

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs14.1. Languages and Databases.14.1. Languages and Databases.

So IBM produced one, and then there were So IBM produced one, and then there were three.three.

But then the original pair merged to combat But then the original pair merged to combat the interloper,the interloper,

And we were back to two!And we were back to two! C++ C++ waswas the most widespread O-O language the most widespread O-O language But remember that the advantages it promises But remember that the advantages it promises

tend to be tend to be seductiveseductive and and illusoryillusory.. The same goes for all hybrid/extended languagesThe same goes for all hybrid/extended languages

OO Pascal, Objective-C, even OO COBOL,OO Pascal, Objective-C, even OO COBOL, And many others.And many others.

There There werewere two vendors of Smalltalk two vendors of Smalltalk compilers and development environments.compilers and development environments.

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 7

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs14.1. Languages and Databases.14.1. Languages and Databases.

The The ANSI SQL3ANSI SQL3 committee is developing committee is developing

““An object SQL that extends SQL2 with An object SQL that extends SQL2 with facilities for defining, manipulating and facilities for defining, manipulating and

querying an object database querying an object database

as a as a supersetsuperset of a relational of a relational database.”database.”

It is It is “Object SQL” “Object SQL” or or “OSQL”“OSQL”

Both ANSI and ISO are working on Both ANSI and ISO are working on standards.standards.

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 8

Chapter 14: Implementation: Chapter 14: Implementation: OOPLs and OODBMSsOOPLs and OODBMSs

14.1. Languages and Databases.14.1. Languages and Databases.

14.3. Issues for O-O Languages and 14.3. Issues for O-O Languages and Databases.Databases.

14.4. O-O Programming Languages.14.4. O-O Programming Languages. 14.5. O-O Databases.14.5. O-O Databases. 14.6. O-O Development Environments.14.6. O-O Development Environments.

14.2. Directions: OMG and ODMG.14.2. Directions: OMG and ODMG.

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 9

14.2. Directions: OMG 14.2. Directions: OMG and ODMG.and ODMG.

Chapter 14: Implementation: Chapter 14: Implementation: OOPLs and OODBMSsOOPLs and OODBMSs

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 10

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.2. Directions: OMG and ODMG.14.2. Directions: OMG and ODMG.

Exists as “components” assembled into various Exists as “components” assembled into various “profiles” each for a particular product.“profiles” each for a particular product.

There is a profile for There is a profile for ORBs,ORBs, one for one for ODBMSs,ODBMSs, etc. etc. TheThe “Core Component” “Core Component” is one that must be is one that must be

present in every profile.present in every profile. The OMG The OMG ODBMSODBMS spec adds: spec adds:

Persistence,Persistence, Relationships,Relationships, Attributes,Attributes, QueriesQueries Transactions (Commit/Rollback)Transactions (Commit/Rollback)

The core of the OMG standard is the The core of the OMG standard is the

OMG Object ModelOMG Object Model

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 11

The Acronym FarmThe Acronym Farm

To extend their work into object To extend their work into object databasesdatabases

A true A true subgroupsubgroup All are members of OMGAll are members of OMG

NOTNOT a splinter groupa splinter group That would be That would be in oppositionin opposition

A subgroup has formed from the A subgroup has formed from the

OMGOMG

And Now -And Now -

The rest of the Good News:The rest of the Good News:

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 12

The Acronym Farm:The Acronym Farm:

Dedicated to database interoperabilityDedicated to database interoperability e.g., by a standardized language interface across vendorse.g., by a standardized language interface across vendors

Within the CORBA specWithin the CORBA spec Voting Members represent Voting Members represent 90% 90% of the OODBMS of the OODBMS

market.market.

Voting Members are required to make twoVoting Members are required to make two major commitments . . . major commitments . . .

object database management groupobject database management group

((ODMGODMG))

object database management groupobject database management group

((ODMGODMG))

All are members of OMG SIG on All are members of OMG SIG on

Object Databases (SIGDB)Object Databases (SIGDB)

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 13

The Acronym Farm:The Acronym Farm:

ODMGODMG

Will be based on one that some member already hasWill be based on one that some member already has This is proof it’s worthwhile and doableThis is proof it’s worthwhile and doable They know what it should look and behave likeThey know what it should look and behave like

All members will add it to their products within 18 All members will add it to their products within 18 monthsmonths

All products will have it added in a reasonable timeAll products will have it added in a reasonable time

All products will All products will have it!have it!

Any new feature mandated by theAny new feature mandated by the

ODMG:ODMG:

Any new feature mandated by theAny new feature mandated by the

ODMG:ODMG:

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 14

Voting MembersVoting MemberseXcelon CorporationeXcelon Corporation

Objectivity, Inc.Objectivity, Inc.

Sun MicrosystemsSun Microsystems POET Software Corp.POET Software Corp.

The Acronym Farm:The Acronym Farm:

Who’s Who in the Who’s Who in the ODMGODMG:: Who’s Who in the Who’s Who in the ODMGODMG::

Reviewing MembersReviewing Members CERNCERN

Computer Associates Intl.Computer Associates Intl.

NEC CorporationNEC Corporation

Versant CorporationVersant Corporation

Andersen ConsultingAndersen Consulting

Micro Data Base SystemsMicro Data Base Systems

Academic MembersAcademic Members Brown UniversityBrown University

MITMIT

Oregon Graduate InstituteOregon Graduate Institute

University of ColoradoUniversity of Colorado

University of MassachusettsUniversity of Massachusetts

University of WisconsinUniversity of Wisconsin

Universitaet ZuerichUniversitaet Zuerich

Wichita State UniversityWichita State University

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 15

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.2. Directions: OMG and ODMG.14.2. Directions: OMG and ODMG.

This is the current statement of requirements This is the current statement of requirements for compatibility among OODBMSs.for compatibility among OODBMSs.

ODMG 3.0 consists of these parts:ODMG 3.0 consists of these parts: ODMG Object ModelODMG Object Model

A formalized specification of the OMG object A formalized specification of the OMG object model.model.

Suitable as the basis for designing an OODBMS.Suitable as the basis for designing an OODBMS.

““Bindings”Bindings” to Smalltalk, C++ and Java. to Smalltalk, C++ and Java. Each binding hasEach binding has

An Object Definition Language (ODL)An Object Definition Language (ODL) An Object Query Language (OQL)An Object Query Language (OQL) An Object Management Language (OML)An Object Management Language (OML)

The ODMG 3.0 SpecThe ODMG 3.0 Spec

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 16

Chapter 14: Implementation: Chapter 14: Implementation: OOPLs and OODBMSsOOPLs and OODBMSs

14.1. Languages and Databases.14.1. Languages and Databases. 14.2. Directions: OMG and ODMG.14.2. Directions: OMG and ODMG.

14.4. O-O Programming Languages.14.4. O-O Programming Languages. 14.5. O-O Databases.14.5. O-O Databases. 14.6. O-O Development Environments.14.6. O-O Development Environments.

14.3. Issues for O-O Languages and Databases.14.3. Issues for O-O Languages and Databases.

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 17

14.3. Issues for O-O 14.3. Issues for O-O Languages and Languages and

Databases.Databases.

Chapter 14: Implementation: Chapter 14: Implementation: OOPLs and OODBMSsOOPLs and OODBMSs

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 18

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.3. Issues for O-O Languages and Databases.14.3. Issues for O-O Languages and Databases.

The GoodThe GoodJava, Eiffel, SmalltalkJava, Eiffel, Smalltalk

The BadThe Bad

C++C++

and the and the UglyUgly

O-O COBOL.O-O COBOL.• Sutherland (1995) with apologies to Clint Eastwood.Sutherland (1995) with apologies to Clint Eastwood.

The GoodThe GoodJava, Eiffel, SmalltalkJava, Eiffel, Smalltalk

The BadThe Bad

C++C++

and the and the UglyUgly

O-O COBOL.O-O COBOL.• Sutherland (1995) with apologies to Clint Eastwood.Sutherland (1995) with apologies to Clint Eastwood.

We Have:We Have:

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 19

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.3. Issues for O-O Languages and Databases.14.3. Issues for O-O Languages and Databases.

When an instance is created, it occupies When an instance is created, it occupies RAM.RAM.

When it is deleted, we need to free that When it is deleted, we need to free that RAM for reuse.RAM for reuse.

This process is known as “Garbage This process is known as “Garbage Collection.”Collection.”

The better languages do it AutomaticallyThe better languages do it Automatically Java, Smalltalk, EiffelJava, Smalltalk, Eiffel

C++ does not.C++ does not. C++ forces the programmer to remember to C++ forces the programmer to remember to

clear the garbage.clear the garbage.

Garbage Collection:Garbage Collection:

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 20

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.3. Issues for O-O Languages and Databases.14.3. Issues for O-O Languages and Databases.

Related to Garbage Collection.Related to Garbage Collection. If the garbage is not clearedIf the garbage is not cleared

(and for a number of other possible (and for a number of other possible reasons)reasons)

There is a buildup of unavailable There is a buildup of unavailable memory,memory,

To the point where the system can run To the point where the system can run out of RAM and crash.out of RAM and crash.

Memory Leaks:Memory Leaks:

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 21

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.3. Issues for O-O Languages and Databases.14.3. Issues for O-O Languages and Databases.

Unless you have the necessary C++ Unless you have the necessary C++ tweaking and optimizing skills on your tweaking and optimizing skills on your team,team,

Remember that C++ code is not Remember that C++ code is not noticeably quicker than higher-level noticeably quicker than higher-level code.code.

Upward Compatibility:Upward Compatibility: Largely an illusory and seductive Largely an illusory and seductive

“advantage.”“advantage.”

Execution Speed:Execution Speed:

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 22

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.3. Issues for O-O Languages and Databases.14.3. Issues for O-O Languages and Databases.

Like a fire extinguisher . . .Like a fire extinguisher . . .

Mostly you never need it,Mostly you never need it,

But the day you do,But the day you do,

It’s It’s realreal nice to have it along!nice to have it along!

Multiple Inheritance:Multiple Inheritance:

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 23

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.3. Issues for O-O Languages and Databases.14.3. Issues for O-O Languages and Databases.

There can be conflicts over inheriting the There can be conflicts over inheriting the same feature from two or more different same feature from two or more different ancestors.ancestors.

Each language has its own way of Each language has its own way of resolving thisresolving this Read the manual! Read the manual!

Smalltalk has “roles”, a form of “dynamic Smalltalk has “roles”, a form of “dynamic typing,”typing,”

Which allows an object to sometimes be in Which allows an object to sometimes be in one class and sometimes in another.one class and sometimes in another.

Multiple Inheritance:Multiple Inheritance:

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 24

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.3. Issues for O-O Languages and Databases.14.3. Issues for O-O Languages and Databases.

Even within one language, porting from one Even within one language, porting from one compiler to another is difficult,compiler to another is difficult,

Unless they have closely-matching class libraries.Unless they have closely-matching class libraries. The ANSI standards for C++ and OO COBOL do not The ANSI standards for C++ and OO COBOL do not

specify any class libraries as part of the language. specify any class libraries as part of the language. A lot of unnecessary work to port from say A lot of unnecessary work to port from say

Microsoft C++ to Borland C++.Microsoft C++ to Borland C++. ANSI Smalltalk will include a standard set of class ANSI Smalltalk will include a standard set of class

libraries.libraries. Java already does, controlled by Sun’s licensing Java already does, controlled by Sun’s licensing

agreements. agreements. The main goal of Java is portability!The main goal of Java is portability!

Standardized Class Libraries:Standardized Class Libraries:

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 25

Chapter 14: Implementation: Chapter 14: Implementation: OOPLs and OODBMSsOOPLs and OODBMSs

14.1. Languages and Databases.14.1. Languages and Databases. 14.2. Directions: OMG and ODMG.14.2. Directions: OMG and ODMG. 14.3. Issues for O-O Languages and 14.3. Issues for O-O Languages and

Databases.Databases.

14.5. O-O Databases.14.5. O-O Databases. 14.6. O-O Development Environments.14.6. O-O Development Environments.

14.4. O-O Programming Languages.14.4. O-O Programming Languages.

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 26

14.4. O-O 14.4. O-O Programming Programming Languages.Languages.

Chapter 14: Implementation: Chapter 14: Implementation: OOPLs and OODBMSsOOPLs and OODBMSs

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 27

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs

14.4. O-O Programming Languages.14.4. O-O Programming Languages.

Arguably the most “pure” O-O language.Arguably the most “pure” O-O language. EverythingEverything is an object - even attribute is an object - even attribute

values.values. Comes as a complete development Comes as a complete development

environment,environment, With standard class libraries.With standard class libraries.

SmalltalkSmalltalk

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 28

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs

14.4. O-O Programming Languages.14.4. O-O Programming Languages.

Complex and detailed.Complex and detailed. Not as programmer-productive.Not as programmer-productive. Makes seductive promises of Makes seductive promises of

reduced learning curve reduced learning curve and and speed speed advantages.advantages.

Very fast Very fast if if expertlyexpertly optimized. optimized.

C++C++

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 29

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs

14.4. O-O Programming Languages.14.4. O-O Programming Languages.

Developed by Bertrand MeyerDeveloped by Bertrand Meyer ““Designed from the ground up to increase Designed from the ground up to increase

the amount of reuse going on.”the amount of reuse going on.” And also to encourageAnd also to encourage

““. . . reuse of industrial-grade components . . .”. . . reuse of industrial-grade components . . .” ““. . . long-term investment in class libraries.”. . . long-term investment in class libraries.”

An elegant, very pure O-O language.An elegant, very pure O-O language. Concurrency is included in the design of Concurrency is included in the design of

the language, but not yet in the compilers.the language, but not yet in the compilers.

EiffelEiffel

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 30

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs

14.4. O-O Programming Languages.14.4. O-O Programming Languages.

To keep the language growing in line with To keep the language growing in line with the actual requirements of developers,the actual requirements of developers,

Meyer has given control to the “NICE” Meyer has given control to the “NICE” committee,committee,

The “Nonprofit International Consortium The “Nonprofit International Consortium for Eiffel.”for Eiffel.”

This should avoid the “dBase Syndrome.”This should avoid the “dBase Syndrome.”

EiffelEiffel

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 31

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs

14.4. O-O Programming Languages.14.4. O-O Programming Languages.

COBOL has had its place in History.COBOL has had its place in History. Developed by CODASYL “Developed by CODASYL “CCommittee for ommittee for DData ata

SYSYstems stems LLanguages” in the 1960s,anguages” in the 1960s, Led by then Led by then CaptainCaptain,, now now the late Rear-Admiral,the late Rear-Admiral,

Grace Hopper, USNGrace Hopper, USN,, one of the early heroes of one of the early heroes of IT.IT.

COBOL brought us to the peak of mainframe COBOL brought us to the peak of mainframe business data processing.business data processing.

Now it’s time to move on Now it’s time to move on to more modern and powerful languagesto more modern and powerful languages

See “The Good, the Bad & the Ugly.”See “The Good, the Bad & the Ugly.”

Object-Oriented COBOLObject-Oriented COBOL

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 32

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs

14.4. O-O Programming Languages.14.4. O-O Programming Languages.

Named for Named for Ada Lovelace,Ada Lovelace, the first the first computer programmer computer programmer 200 years ago.200 years ago.

RequiredRequired by the US Dept of Defense for by the US Dept of Defense for all its information systems contracts.all its information systems contracts.

Ada 83 had objects (“packages”) but Ada 83 had objects (“packages”) but no inheritance or polymorphism,no inheritance or polymorphism,

So it was not O-O.So it was not O-O.

Ada 95 is completely O-O,Ada 95 is completely O-O, With multiple inheritance, an ANSI/ISO With multiple inheritance, an ANSI/ISO

standard and all the bells and whistles.standard and all the bells and whistles.

AdaAda

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 33

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs

14.4. O-O Programming Languages.14.4. O-O Programming Languages.

Available both for applets running on the Available both for applets running on the webweb

And for standalone IS applicationsAnd for standalone IS applications Conceived from the ground up as pure O-OConceived from the ground up as pure O-O Like C++ with all the anomalies removed Like C++ with all the anomalies removed

and the rough edges smoothed outand the rough edges smoothed out Less chance for a programmer to screw upLess chance for a programmer to screw up Now the language of choiceNow the language of choice Becoming more and more widely usedBecoming more and more widely used

JavaJava

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 34

Chapter 14: Implementation: Chapter 14: Implementation: OOPLs and OODBMSsOOPLs and OODBMSs

14.1. Languages and Databases.14.1. Languages and Databases. 14.2. Directions: OMG and ODMG.14.2. Directions: OMG and ODMG. 14.3. Issues for O-O Languages and 14.3. Issues for O-O Languages and

Databases.Databases. 14.4. O-O Programming Languages.14.4. O-O Programming Languages.

14.6. O-O Development Environments.14.6. O-O Development Environments.

14.5. O-O Databases.14.5. O-O Databases.

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 35

14.5. O-O Databases.14.5. O-O Databases.

Chapter 14: Implementation: Chapter 14: Implementation: OOPLs and OODBMSsOOPLs and OODBMSs

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 36

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.5. O-O Databases.14.5. O-O Databases.

But are in good shape, with all those But are in good shape, with all those “Heavy-Duty Industrial-Strength” “Heavy-Duty Industrial-Strength” features in place,features in place,

And a growing list of successful And a growing list of successful projects.projects.

OODBMSs are new, and evolving rapidly,OODBMSs are new, and evolving rapidly,

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 37

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.5. O-O Databases.14.5. O-O Databases.

COGNOS AxiantCOGNOS Axiant Object-Oriented dBASEObject-Oriented dBASE Gemstone (from Servio Corp.)Gemstone (from Servio Corp.) HP Odapter (formerly OpenODB)HP Odapter (formerly OpenODB) OO22

ObjectivityObjectivity ObjectStoreObjectStore ORACLE 8ORACLE 8 Visual paradoxVisual paradox PoetPoet UniSQLUniSQL VERSANTVERSANT

Here is a partial list:Here is a partial list:

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 38

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.5. O-O Databases.14.5. O-O Databases.

Extended relational:Extended relational: TablesTables Modified to handle complex attribute typesModified to handle complex attribute types Lists, graphics, sound and video clips etc.Lists, graphics, sound and video clips etc. Some use BLOBsSome use BLOBs

Binary Large Object.Binary Large Object.

Pointer-Based:Pointer-Based: Borrows the pointer idea from the old Borrows the pointer idea from the old

CODASYL network databases from the ’70s.CODASYL network databases from the ’70s. Things like Things like clusteringclustering are important again. are important again. Faster than Extended Relational.Faster than Extended Relational.

Two Approaches to OODBMS Technology:Two Approaches to OODBMS Technology:

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 39

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.5. O-O Databases.14.5. O-O Databases.

Most are working within the ODMG Most are working within the ODMG standardstandard

Many ORBs are now available.Many ORBs are now available. See current magazines for ads for ORBs and See current magazines for ads for ORBs and

OODBMSs.OODBMSs.

But since the beginning, Microsoft But since the beginning, Microsoft have been the holdout from the OMG have been the holdout from the OMG and ODMG . . .and ODMG . . .

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 40

2 to 3 years2 to 3 years2 to 3 years2 to 3 years

MS Proprietary vs OMG ConsortiumMS Proprietary vs OMG Consortium MS Technologies exist, but are MS Technologies exist, but are embryonicembryonic

Each MS Technology Outdates Each MS Technology Outdates its Predecessorsits Predecessors

Active Support of each technology has so Active Support of each technology has so far been:far been:

The Near Future

Microsoft? OLE? COM? DCOM? WhateverCOM?

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 41

TimeTime

2-3 year active support2-3 year active support

DDEDDE OLE1OLE1 OLE2OLE2 OLE/COMOLE/COM ?

CORBACORBAObjectObjectServicesServices

Horizontal Horizontal Common Common FacilitiesFacilities

VerticalVerticalCommonCommonFacilitiesFacilities

Source: T. J. Mowbray, OBJECT Magazine Nov-Dec 1994Source: T. J. Mowbray, OBJECT Magazine Nov-Dec 1994

The Near FutureThe Near Future

Microsoft OLE / COM vsMicrosoft OLE / COM vs

OMG, ODMG, ORBs and CORBA.OMG, ODMG, ORBs and CORBA.

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 42

Standards LifecycleStandards Lifecycle = End-User Systems = End-User Systems Lifecycle Lifecycle = 8 years = 8 years

1000 OMG Members = 1000 OMG Members = Industry StandardIndustry Standard

The Near Future

OMG, ODMG, ORBs and CORBA.

The Hope for All Humankind?The Hope for All Humankind? (Systemkind?)(Systemkind?)

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 43

Chapter 14: Implementation: Chapter 14: Implementation: OOPLs and OODBMSsOOPLs and OODBMSs

14.1. Languages and Databases.14.1. Languages and Databases. 14.2. Directions: OMG and ODMG.14.2. Directions: OMG and ODMG. 14.3. Issues for O-O Languages and 14.3. Issues for O-O Languages and

Databases.Databases. 14.4. O-O Programming Languages.14.4. O-O Programming Languages. 14.5. O-O Databases.14.5. O-O Databases.14.6. O-O Development Environments.14.6. O-O Development Environments.

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 44

14.6. O-O 14.6. O-O Development Development

Environments.Environments.

Chapter 14: Implementation: Chapter 14: Implementation: OOPLs and OODBMSsOOPLs and OODBMSs

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 45

Chapter 14: Implementation: OOPLs and OODBMSsChapter 14: Implementation: OOPLs and OODBMSs 14.6. O-O Development Environments.14.6. O-O Development Environments.

““The Visuals”The Visuals” Visual BASIC, Visual C++Visual BASIC, Visual C++

These are still These are still O-O front ends O-O front ends to relational to relational databases as the back end.databases as the back end.

They are truly O-O, but They are truly O-O, but only in the GUI.only in the GUI. They have classes like They have classes like WindowWindow and and ButtonButton,, But no database classes like But no database classes like Customer, Employee, Customer, Employee,

Sale, Journal Entry, Payment, Student, Course,Sale, Journal Entry, Payment, Student, Course, etc. etc.

We can expect them to evolve to full O-O We can expect them to evolve to full O-O as the major relational databases do.as the major relational databases do.

ORACLE, Sybase, ACCESS, Adabase, SQL Server etc.ORACLE, Sybase, ACCESS, Adabase, SQL Server etc.

PowerPoint, Delphi, etc.PowerPoint, Delphi, etc.

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 46

End of Chapter 14End of Chapter 14

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 47

End of Chapter 14End of Chapter 14

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 48

End of Chapter 14End of Chapter 14

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 49

End of Chapter 14End of Chapter 14

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 50

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 51

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 52

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 53

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 54

The following slides contain The following slides contain symbols I used in the symbols I used in the

presentation. Use them when presentation. Use them when adding or modifying slides in adding or modifying slides in order to maintain consistency order to maintain consistency

with my slideswith my slides

David.David.

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 55

Change Address

PrintBalanceList all

Upd

ate

Bal

ance

Change

Phone N

oChange

NameC

reat

eC

usto

mer

Delete

Customer

Name Jo Address Here Phone No 555 Balance $1.49

CustomerCustomer

1:M1:M

M:MM:M

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 56

Copyright 8 2002 Flying Kiwi Productions Inc. [email protected] 57