18
SS Lab., CUD, Korea 1 Distributed Object-Based Systems 분분 분분분 분분분 분분분분 분분분 분분분분분 분분 - 분분 분분 : 분분분 분분 분분분분 분분분분분 분분분분 분분 - CORBA - Microsoft’s DCOM CORBA - CORBA(Common Object Request Broker Architecture) - OMG(Object Management Group) 분분 : 분분 분분분분 분분분 분분 분분 분분분분분 분분분 분분분 분 분분 분분 분분분분 분분분분 분 . - CORBA Specification: 1990 분 분 CORBA Ver. 2.4 CO RBA Ver. 3.0

Distributed Object-Based Systems

  • Upload
    nassor

  • View
    40

  • Download
    0

Embed Size (px)

DESCRIPTION

Distributed Object-Based Systems. 분산 시스템 구성에 사용되는 다양한 패러다임을 조사 - 분산 객체 : 객체는 분산 투명성을 확립하는데 핵심적인 역할 - CORBA - Microsoft ’ s DCOM CORBA - CORBA(Common Object Request Broker Architecture) - OMG(Object Management Group) 목적 : 통합 네트워크 응용이 갖는 많은 상호운용성 문제를 극복할 수 - PowerPoint PPT Presentation

Citation preview

Page 1: Distributed Object-Based Systems

SS Lab., CUD, Korea 1

Distributed Object-Based Systems

분산 시스템 구성에 사용되는 다양한 패러다임을 조사 - 분산 객체 : 객체는 분산 투명성을 확립하는데 핵심적인 역할 - CORBA - Microsoft’s DCOM

CORBA - CORBA(Common Object Request Broker Architecture) - OMG(Object Management Group) 목적 : 통합 네트워크 응용이 갖는 많은 상호운용성 문제를 극복할 수 있는 분산 시스템을 정의하는 것 . - CORBA Specification: 1990 대 초 CORBA Ver. 2.4 CORBA Ver. 3.0

Page 2: Distributed Object-Based Systems

SS Lab., CUD, Korea 2

Distributed Object-Based Systems

CORBA 의 개요 - CORBA 의 광역 구조 : OMG 의 참조 모델에 충실 - CORBA 의 광역 구조

Object Request Broker

Applicationobjects

Vertical facilities(domain specific)

Horizontal facilities(general purpose)

Common ObjectServices

Page 3: Distributed Object-Based Systems

SS Lab., CUD, Korea 3

Distributed Object-Based Systems

ORB(Object Request Broker) - 분산과 이종성과 관련된 문제를 감추고 , 동시에 객체와 그것들의 클라이언트 간의 통신을 가능하게 한다 . - 클라이언트 , 서버 응용과 링크되어진 라이브러리로 구현 - 기본 통신 서비스를 제공 CORBA facilities: CORBA 서비스의 조립으로 구축 - Horizontal facilities: 응용 도메인에 독립적인 범용 고수준 서비스로 구성 ( 사용자 인터페이스 , 정보 관리 , 시스템 관리 , 태스크 관리 ) - Vertical facilities: 특정 응용 도메인을 위하여 목적 되어진 고수준 서비스로 구성 ( 전자상거래 , 뱅킹 , 제조업 ) 객체 모델 - CORBA 는 원격 - 객체 모델을 사용한다 .

Page 4: Distributed Object-Based Systems

SS Lab., CUD, Korea 4

Distributed Object-Based Systems

- 객체의 구현은 서버의 주소 공간에 거주한다 . - 객체들과 서비스들은 CORBA IDL(Interface Definition Language) 로 명세 되어진다 . - CORBA 시스템의 일반적인 구성

Client application

StaticIDL

Proxy

DynamicInvocationInterface

ORBinterface

Client ORB

Local OS

Object implementation

Objectadapte

rSkeleto

n

DynamicSkeleto

nInterfac

eORB

interface

Server ORB

Local OS

Client machine Server machine

Page 5: Distributed Object-Based Systems

SS Lab., CUD, Korea 5

Distributed Object-Based Systems

- ORB 는 클라이언트와 객체간의 기본 통신을 처리하는 런타임 시스템 ,

특정 객체를 위한 메소드 호출을 처리하기 위한 stubs 로만 본다 .

- 클라이언트 응용은 사용한 각 객체로 같은 인터페이스를 구현한 가용 프락

시를 가지고 있다 .

- DII(Dynamic Invocation Interface): 클라이언트에게 런타임에 호출 요청을 구

축하는 것을 허용 .

- 객체 어댑터 : 입력 요청을 적절한 객체에게 전달

- 서버 측에서 실제 unmarshaling 은 CORBA 에서 skeleton 이라 부르는 stub에 의

해 실행된다 .

- 동적 골격을 사용할 때 , 어떤 객체는 사용자의 요청에 따라 invoke 함수의 적

절한 구현을 제공할 것이다 .

Page 6: Distributed Object-Based Systems

SS Lab., CUD, Korea 6

Distributed Object-Based Systems

인터페이스와 구현 저장소 - 인터페이스 저장소는 모든 등록된 객체에 대한 인터페이스 , 메소드

및 필요한 매개변수들 (CORBA 에서는 이들을 묶어서 "method signatures" 라 한다 ) 에 관한 정보들을 획득하여 저장하거나 수정하 는 역할을 수행한다 .

구현 저장소 - 객체를 구현하고 활성화하는데 필요한 모든 것을 포함한다 . - 그러한 기능들은 ORB 와 하부 운영체제에 밀접한 관계가 있기 때문에 표준 구현을 제공하기는 어렵다 . - 클라이언트가 처음으로 서버의 객체와 통신을 할 때 ORB 는 구현

저장소를 검사하여 연결 (connection) 을 담당할 상응하는 서버를 검색한다 . 실행시간의 정보 저장소 역할을 하는 구현 저장소에는 서버가 지원하는 클래스와 ID 에 의해 활성화되는 객체에 대한 정보가 저장된다 .

Page 7: Distributed Object-Based Systems

SS Lab., CUD, Korea 7

Distributed Object-Based Systems

CORBA 서비스 - CORBA 가 사용하고 있는 응용의 범용성과 독립성 - Collection service: 객체들을 리스트 , 큐 , 스택 , 집합 등으로 그룹하는 방법을 제공한다 . - Query service: 선언적 질의어를 사용하여 질의 될 수 있는 객체의 집 합을 구축하는 방법을 제공한다 . - Concurrency control service: 공유 객체에 접근하는 어떤 클라이언트 에 의해 제출된 락킹 메커니즘을 제공한다 . - Transaction service: 클라이언트가 하나의 트랜잭션에서 다수의 객체 에 걸쳐 일련의 메소드 호출을 정의하는 것을 허용한다 . - Event service: 어떤 클라이언트와 객체는 특정 사건의 발생에 따라 인터럽트될 수 있다 .

Page 8: Distributed Object-Based Systems

SS Lab., CUD, Korea 8

Distributed Object-Based Systems

- CORBA 서비스의 개요Service Description

Collection Facilities for grouping objects into lists, queue, sets, etc.

Query Facilities for querying collections of objects in a declarative manner

Concurrency Facilities to allow concurrent access to shared objects

Transaction Flat and needed transactions on method calls over multiple objects

Event Facilities for asynchronous communication through events

Notification Advanced facilities for event-based asynchronous communication

Externalization Facilities for marshaling and unmarshaling of objects

Life Cycle Facilities for creation, deletion, copying, and moving of objects

Licensing Facilities for attaching a license to an object

Naming Facilities for systemwide naming of object

Property Facilities for associating (attribute, value) pairs with objects

Trading Facilities to publish and find the services an object has to offer

Persistence Facilities to persistently storing objects

Relationship Facilities for expressing relationships between objects

Security Mechanisms for secure channels, authorization, and auditing

Time Provides the current time within specified error margins

Page 9: Distributed Object-Based Systems

SS Lab., CUD, Korea 9

Distributed Object-Based Systems

통신 - 객체 호출 모델 - CORBA 에서 지원되는 호출 모델

Request type Failure semantics Description

Synchronous At-most-onceCaller blocks until a response is returned or an exception is raised

One-way Best effort deliveryCaller continued immediately without waiting for any response from the server

Deferred synchronous

At-most-onceCaller continues immediately and can later block until response is delivered

Page 10: Distributed Object-Based Systems

SS Lab., CUD, Korea 10

Distributed Object-Based Systems

- 사건 및 공지 서비스 : 사건은 supplier 에 의해 생성 되고 consumer 에 의해 수신된다 . 사건은 supplier 와 consumer 사이에 논리적으로 위치 하는 event channel 을 거쳐서 전달된다 .

- Push model

Consumer

Consumer

Event channel

Supplier

Supplier

Supplier

Push event to consumers

Page 11: Distributed Object-Based Systems

SS Lab., CUD, Korea 11

Distributed Object-Based Systems

- Pull model

Consumer

Consumer

Event channel

Supplier

Supplier

SupplierAsk suppliers for new event

- 메시징 (1) Callback model: 클라이언트는 callback 메소드를 포함하는 인터페 이스를 구현한 객체를 제공한다 . 그러한 메소드들은 비동기 호출의 결과를 전달하기 위하여 하부 통신 시스템에 의해 호출될 수 있다 .

Page 12: Distributed Object-Based Systems

SS Lab., CUD, Korea 12

Distributed Object-Based Systems

- 예 ) int add(in int i, int j, out int k)

void sendcb_add(in int I, in int j); //called by the clientVoid replycd_add(in int ret_val, in int k); // Called by the client’s ORB

Client application

CallbackinterfaceClient

proxy

Client ORB

1. Call by the application

2. Request to server

3. Response from server

4. Call by the ORB

Page 13: Distributed Object-Based Systems

SS Lab., CUD, Korea 13

Distributed Object-Based Systems

(2) Polling model: 클라이언트는 입력 결과를 위해 그것의 ORB 를 폴 하기 위한 연산 집합을 제공한다 .

void sendpoll_add(in int I, in int j); // Called by the clientvoid replypoll_add(out int ret_val, out int k); // Also called by the client

Client application

Clientproxy

Polling interface

Client ORB

1. Call by the application

2. Request to server

3. Response from server

4. Call by the application

Page 14: Distributed Object-Based Systems

SS Lab., CUD, Korea 14

Distributed Object-Based Systems

- 상호운용성 : 표준 inter-ORB 포로토콜의 도입 TCP 위에서 작동하는 GIOP(General Inter-ORB Protocol) 를 IIOP(Internet Inter-ORB Protocol) 이라 한다 . - GIOP 메시지 종류

Message type Originator

Description

Request Client Contains an invocation request

Reply Server Contains the response to an invocation

LocateRequest Client Contains a request on the exact location of an object

LocateReply Server Contains location information on an object

CancelRequest Client Indicates client no longer expects a reply

CloseConnection Both Indication that connection will be closed

MessageError Both Contains information on an error

Fragment Both Part (fragment) of a larger message

Page 15: Distributed Object-Based Systems

SS Lab., CUD, Korea 15

Distributed Object-Based Systems

프로세스 - 클라이언트 * Interceptor: 클라이언트로부터 서버로의 경로상에서 인터셉트될 수 있는 어떤 호출에 따르는 메커니즘 .

Page 16: Distributed Object-Based Systems

SS Lab., CUD, Korea 16

Distributed Object-Based Systems

- 포터블 객체 어댑터 : 클라이언트에게 CORBA 객체로 나타나는 서버측 코드를 만드는 책임이 있는 컴포넌트

* Servant: 클라이언트가 호출할 수 있는 메소드를 구현한 객체 부분 Mapping of CORBA object identifiers to servants. (1) The POA supports multiple servants. (2) The POA supports a single servant.

Page 17: Distributed Object-Based Systems

SS Lab., CUD, Korea 17

Distributed Object-Based Systems

- 에이전트 : place, region, finder

Page 18: Distributed Object-Based Systems

SS Lab., CUD, Korea 18

Distributed Object-Based Systems

기타 - Naming

- Synchronization

- Caching 과 Replication

- Fault Tolerance

- Security