객체지향시스템 연구실 snu, oopsla lab1 chap 10. standards in oo 서울대학교...

34
객객객객객객객 객객객 SNU, OOPSLA Lab 1 Chap 10. Standards in OO Chap 10. Standards in OO 객객객객객 객객객객객객 객객객객객객객 객객객 SNU OOPSLA LAB 객 객 객 객객 Object-orientation by Khoshafian and Abnous

Upload: shannon-briggs

Post on 29-Jan-2016

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 1

Chap 10. Standards in OOChap 10. Standards in OO

서울대학교 컴퓨터공학과객체지향시스템 연구실SNU OOPSLA LAB

김 형 주 교수

Object-orientation by Khoshafian and Abnous

Page 2: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 2

ContentsContents

1. Introduction

2. Object Sharing and Interoperability

3. Understanding OMG

4. OLE 2

5. OpenDoc

6. ODMG-93

7. Summary

Page 3: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 3

1. Introduction1. Introduction

Object sharing and interoperability Same or different heterogeneous machine OMG CORBA MS OLE 2 CILabs OpenDoc

Next Generation Databases SQL3 ODMG-93

Page 4: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 4

2. Object Sharing and Interoperability (1)2. Object Sharing and Interoperability (1)

Component software A reusable piece of s/w can be plugged into other components

Compound documents Contain components pertaining to different applications Located on physically distributed sites in a network

Figure 10.1 graphics package, spreadshet, word processor, groupware bitmap image, vector graphics, text, voice, video

Page 5: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 5

Object Sharing and Interoperability (2)Object Sharing and Interoperability (2)

Standardization MS OLE 2, CI Labs OpenDoc

Binary representation of the objects Ability of components to be written in different languages

Microsoft Component Object Model (COM) IBM System Object Model (SOM)

User interface standard Interaction with the component document Presentation, creation, menus, integration of parts

Page 6: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 6

Object Sharing and Interoperability (3)Object Sharing and Interoperability (3)

Storage representation standard Standards for storing compound document part Hierarchical containment storage structure

Distributed and collaborative computing Interaction of components in a distributed collaborative env

ironment

Page 7: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 7

Major Stream StandardsMajor Stream Standards

Compound document sharing MS OLE2 CI Labs (IBM + Apple) Open Doc MS COM IBM SOM

Distributed/Collaborative computing MS DCOM IBM DSOM OMG (SUN, HP, DEC) CORBA

Page 8: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 8

3. Understanding OMG3. Understanding OMG

“To help reduce complexity, lower costs, and hasten the introduction of new software architecture” (OMG Guide, 1992)

Define the architecture for modularized software applications by defining the standard infrastructure and framework required to support such applications in a heterogeneous distributed network of computers

HP, Digital, SUN, IBM, and more 1000 computer related organizations in the world

Page 9: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 9

CORBA (1)CORBA (1)

3.1 CORBA Overview Common Object Request Broker Architecture Framework and specification for object collaboration and sh

aring across heterogeneous networks of machines and applications

CORBA Object Model Object Operations Types Subtyping

Page 10: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

ApplicationObjects

ApplicationObjects

Object Request BrokerObject Request Broker

CommonFacilities

CommonFacilities

Object ServicesObject Services

CORBA Architecture

Page 11: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 11

3.2 CORBA- Architecture3.2 CORBA- Architecture

3.2.1 Object Request Broker Backbone of CORBA Corba programming:

IDL + API ==> client/server object interaction ORB clients

Applications or objects can send message to any other CORBA-compliant objects

Static interface Precompiled IDL stubs to invoke object services

Dynamic interface Request an ORB, retrieve its method name, dynamically invo

ke the object’s method Object adaptor

Services for managing objects within an ORB server Functionality to instantiate objects, generate and manage o

bject references, route client requests to server methods, broadcast the presence of object servers

Page 12: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

Client

ORBA

ORBB

ServerLogical

Request

Bridge

ORB-to-ORB bridging

Page 13: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 13

3.2 CORBA- Architecture3.2 CORBA- Architecture

3.2.2 Application Objects Specific to end-user application

3.2.3 Common Facilities General purpose components Horizontal

Presentation of data retrieval and storage of information system/task management

Vertical Health, finance, legal etc

Page 14: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 14

3.2 CORBA- 3.2 CORBA- ArchitectureArchitecture

3.2.4 Object Services Event notification services

Interface for registering and delivering events Persistence services

Interface for storing objects Life-cycle management services

Define how to manage objects Transaction services : Two phase commit protocol Concurrency control services : Locking Relationships services :Link Externalization services

Object stream interface

Page 15: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 15

4. OLE 24. OLE 2

Since 1993 OLE automation allows one application to interact wit

h and use the services of another application MS claims

1980 ==> personalization of computing 1990 ==> componentization of computing OLE2 will transform the way software is producd and used

Container, Component technology Compound document sharing: Object Linking and Embedding

Another O/S: more than 100 API functions

Page 16: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 16

OLE2: Component Object ModelOLE2: Component Object Model

Interoperability Marshalling: synchronous rpc mechanism

In-Place ActivatoinIn-Place Activatoin

EmbeddingEmbedding

LinkingLinking

Compound Document

Drag and DropDrag and Drop

Uniform Data TransferUniform Data Transfer

Compound FilesCompound Files

AutomationAutomation

MonikersMonikers

Component Object ModelComponent Object Model

Page 17: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 17

Architecture of OLE 2 (2)Architecture of OLE 2 (2)

4.2.2 OLE 2 storage model Flie system within a file : storage,stream

Transacted storage Incremental access Sharable storage

Page 18: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

Storage ObjectStorage Object

SubstorageSubstorage

SubstorageSubstorage

SubstorageSubstorage SubstorageSubstorage

SubstorageSubstorage

SubstorageSubstorageStreamStream

StreamStream

StreamStreamStreamStream StreamStream

StreamStream StreamStream

StreamStream

Storage Object

Page 19: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 19

Architecture of OLE 2 (3)Architecture of OLE 2 (3)

4.2.3 Uniform data transfer Uniform mechanism for transferring any type of data

4.2.4 Drag and drop 4.2.5 Embedding object

Component document 4.2.6 Viewing components

Automatically store and use a graphical image of objects 4.2.7 Linking and monikers

Moniker: location of source data and code to bind to data 4.2.8 In-place activation

Only single window to work with the compound document 4.2.9 Automation

Register a set of commands or functions

Page 20: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 20

5. OpenDoc (1)5. OpenDoc (1)

CI Labs: Component Integration Laboratories IBM and Apple (since 1994) 5.1 Document or content-based model

A document is a structural collection of parts 5.2 Parts : object pertaining to a different application

Root part Content objects

5.3 Part handlers (application programs) Displaying the part Editing the part Managing storage for the part

Page 21: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 21

OpenDoc (2)OpenDoc (2)

5.4 Editors and viewers Part editors and part viewers

5.5 In-place editing One context of compound document and edit in-place

5.6 Frames and layout Compound document parts can be wrapped with built-in frames an

d layouts 5.7 Linking: Parts can be embedded in other parts 5.8 Storage

Persistent multipart documents concurrent accesses by multiple part handlers

Page 22: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 22

OpenDoc (3)OpenDoc (3)

5.9 Run time: the document shell for each document the persistent storage system the window and its associated state the event dispatcher an arbitration registry

5.10 Sharing and distributed objects Concurrently sharing compound documents

Versioning Distributed objects: remote object invocation

DSOM

Page 23: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 23

6. Standardization for OODB: ODMG-936. Standardization for OODB: ODMG-93

Relational SQL, SQL-92 (SQL2), ODBC, SQL3

Object-oriented database standard:ODMG93 Object Design, ONTOS, O2, Versant, Objectivity, HP, POET, Itasc

a, Intellitic, DEC, Servio, TI, etc Main goal : “To put forward a set of standards allowing an ODBMS

customer to write portable applcations, i.e, applications that could run on more than one ODBMS product”

Page 24: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 24

6.1 The ODMG-93 Object Model 6.1 The ODMG-93 Object Model

Types One interface, several implementations A subtype can specialize a supertype

Object identity Literals

Atomic values , structured atomic values

Page 25: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 25

6.1 The ODMG-93 Object Model 6.1 The ODMG-93 Object Model (cont’d)(cont’d)

Structured objects Structure construct Collection type

Set,Bag,List,Array Relationships

One-to-one, one-to-many, many-to-many Inverse of relationship

Page 26: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 26

6.2 The ODMG-93 ODL (1)6.2 The ODMG-93 ODL (1)

Syntax for defining interfaces Compatible with OMG’s IDL

<type definition> :: = interface interface <type name>[:supertype list>]{

[<type_property_list>][<property_list>][<operations_list>]

};

Page 27: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 27

6.2 The ODMG-93 ODL (2)6.2 The ODMG-93 ODL (2)

interface SalesPerson: Employee { extent SalesPeople; attribute string District; relationship Set<Account> Accounts

inverse Account::SalesRep; relationship Set<Department> WorksIn; SalesManager Manager; ... < operations > };

Page 28: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 28

6.3 The ODMG-93 OQL (1)6.3 The ODMG-93 OQL (1)

Standardize a number of OO database language concepts Support both values and identity Constructor type, set operator, collection expression, aggregate

Page 29: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 29

6.3 The ODMG-93 OQL (2)6.3 The ODMG-93 OQL (2)

BNF form

select <query expression>from <identifier> in <query expression>where <query expression>

select struct(ManagerName: x.Manager.name, DepartmentName: y.Name)from x in SalesPeople, y in x.WorksInwhere y.Location.City = “NY”

Page 30: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 30

6.4 The ODMG-93 C++ Bindings6.4 The ODMG-93 C++ Bindings

Descriptions and specifications for the C++ ODL/OML constructs in the ODMG standard

C++ ODL Binding

Through a class library C++ OML

Classes and OQL functions

Page 31: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

C++ ODLDelcarations

C++ ODLDelcarations

ODLPreprocessor

ODLPreprocessor

C++Compiler

C++Compiler

ObjectCode

ObjectCode

ODBMSRunTime

ODBMSRunTime

LinkerLinker

ExecutableApplication

ExecutableApplication

PreprocessorGenerated

C++ HeaderX Source Files

PreprocessorGenerated

C++ HeaderX Source Files

User Sourceand HeaderC++ Files

User Sourceand HeaderC++ Files

ODBMSData

MetaData

ObjectDBMS

The Step involved ingenerating executable

applications fromC++ODL

Page 32: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 32

6.4 OMG and ODMG-93 (1)6.4 OMG and ODMG-93 (1)

ODMG/OM (object model) A superset of the OMG/OM Interoperability and portability

ODMG/ODL (object definition language) A superset of IDL

ORB and ODMG-93 Object Database Adaptor Handling client objects registered through an ORB interface

Page 33: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 33

6.4 ODMG-93 and SQL36.4 ODMG-93 and SQL3

Object Oriented DBMS OQL/ODL

Relational DBMS SQL3

Object oriented features Programming language features

Page 34: 객체지향시스템 연구실 SNU, OOPSLA Lab1 Chap 10. Standards in OO 서울대학교 컴퓨터공학과 객체지향시스템 연구실 SNU OOPSLA LAB 김 형 주 교수 u Object-orientation

객체지향시스템 연구실 SNU, OOPSLA Lab 34

SummarySummary

Object sharing and interoperability Allow applications to share objects Major Standards

OMG CORBA Microsoft OLE 2 CILab OpenDoc

Database ODMG-93

Provide a framework for interoperability for OODBMS applications