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
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
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
SS Lab., CUD, Korea 3
Distributed Object-Based Systems
ORB(Object Request Broker) - 분산과 이종성과 관련된 문제를 감추고 , 동시에 객체와 그것들의 클라이언트 간의 통신을 가능하게 한다 . - 클라이언트 , 서버 응용과 링크되어진 라이브러리로 구현 - 기본 통신 서비스를 제공 CORBA facilities: CORBA 서비스의 조립으로 구축 - Horizontal facilities: 응용 도메인에 독립적인 범용 고수준 서비스로 구성 ( 사용자 인터페이스 , 정보 관리 , 시스템 관리 , 태스크 관리 ) - Vertical facilities: 특정 응용 도메인을 위하여 목적 되어진 고수준 서비스로 구성 ( 전자상거래 , 뱅킹 , 제조업 ) 객체 모델 - CORBA 는 원격 - 객체 모델을 사용한다 .
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
SS Lab., CUD, Korea 5
Distributed Object-Based Systems
- ORB 는 클라이언트와 객체간의 기본 통신을 처리하는 런타임 시스템 ,
특정 객체를 위한 메소드 호출을 처리하기 위한 stubs 로만 본다 .
- 클라이언트 응용은 사용한 각 객체로 같은 인터페이스를 구현한 가용 프락
시를 가지고 있다 .
- DII(Dynamic Invocation Interface): 클라이언트에게 런타임에 호출 요청을 구
축하는 것을 허용 .
- 객체 어댑터 : 입력 요청을 적절한 객체에게 전달
- 서버 측에서 실제 unmarshaling 은 CORBA 에서 skeleton 이라 부르는 stub에 의
해 실행된다 .
- 동적 골격을 사용할 때 , 어떤 객체는 사용자의 요청에 따라 invoke 함수의 적
절한 구현을 제공할 것이다 .
SS Lab., CUD, Korea 6
Distributed Object-Based Systems
인터페이스와 구현 저장소 - 인터페이스 저장소는 모든 등록된 객체에 대한 인터페이스 , 메소드
및 필요한 매개변수들 (CORBA 에서는 이들을 묶어서 "method signatures" 라 한다 ) 에 관한 정보들을 획득하여 저장하거나 수정하 는 역할을 수행한다 .
구현 저장소 - 객체를 구현하고 활성화하는데 필요한 모든 것을 포함한다 . - 그러한 기능들은 ORB 와 하부 운영체제에 밀접한 관계가 있기 때문에 표준 구현을 제공하기는 어렵다 . - 클라이언트가 처음으로 서버의 객체와 통신을 할 때 ORB 는 구현
저장소를 검사하여 연결 (connection) 을 담당할 상응하는 서버를 검색한다 . 실행시간의 정보 저장소 역할을 하는 구현 저장소에는 서버가 지원하는 클래스와 ID 에 의해 활성화되는 객체에 대한 정보가 저장된다 .
SS Lab., CUD, Korea 7
Distributed Object-Based Systems
CORBA 서비스 - CORBA 가 사용하고 있는 응용의 범용성과 독립성 - Collection service: 객체들을 리스트 , 큐 , 스택 , 집합 등으로 그룹하는 방법을 제공한다 . - Query service: 선언적 질의어를 사용하여 질의 될 수 있는 객체의 집 합을 구축하는 방법을 제공한다 . - Concurrency control service: 공유 객체에 접근하는 어떤 클라이언트 에 의해 제출된 락킹 메커니즘을 제공한다 . - Transaction service: 클라이언트가 하나의 트랜잭션에서 다수의 객체 에 걸쳐 일련의 메소드 호출을 정의하는 것을 허용한다 . - Event service: 어떤 클라이언트와 객체는 특정 사건의 발생에 따라 인터럽트될 수 있다 .
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
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
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
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 메소드를 포함하는 인터페 이스를 구현한 객체를 제공한다 . 그러한 메소드들은 비동기 호출의 결과를 전달하기 위하여 하부 통신 시스템에 의해 호출될 수 있다 .
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
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
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
SS Lab., CUD, Korea 15
Distributed Object-Based Systems
프로세스 - 클라이언트 * Interceptor: 클라이언트로부터 서버로의 경로상에서 인터셉트될 수 있는 어떤 호출에 따르는 메커니즘 .
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.
SS Lab., CUD, Korea 17
Distributed Object-Based Systems
- 에이전트 : place, region, finder
SS Lab., CUD, Korea 18
Distributed Object-Based Systems
기타 - Naming
- Synchronization
- Caching 과 Replication
- Fault Tolerance
- Security