Part 5
확장된 확장된 Network Programming 기술 Network Programming 기술
1. 1. Remote Procedure Call Remote Procedure Call
2. 2. Remote Method Invocation Remote Method Invocation
3. 3. Object Request Broker Object Request Broker
3. Object Request Broker
ORB
• ORG
– provide communication and management services – enables objects to communicate over networks
• request and receive responses – based on RPC and message queue – Two category
• OMG: CORBA
• Microsoft: DCOM (Distributed Component Object Model)
Services of ORB
• Basic services
– hide network details from the object
• providing network transparency
– handle object request and the synchronization of the request and delivery of any response
– handle the exception to the requesting object
• Extra services
– provide administration and development services
• to create and terminate objects
• to debug and test an application
• a form of directory service – provide extra run-time services
• multi-threading, security, load balancing, and transaction recovery
ORB 와 RPC
클라이언트
foofoo
호출 호출
서버 클라이언트
서버
자료자료 객체의
foo 호출
객체의 foo 호출
코드 코드
foofoo
자료 자료
foofoo
자료자료
객체 객체
foo의 실행
RPC
기법
ORBDistributed environment with ORB
Remote Method Invocation
ORBORB
ORBORB
ORBORB
Clients
Server
Object
Implementations
Object Request Broker
Clients
Basic Concept of ORB (1)
Client
Client
Network
Object Object
Object Well Defined
Interface
Identification Encapsulation
Server
:
Basic Concept of ORB (2)
Well Defined Interface Operation
Signature
Parameters Results Exceptions Request
One way request Two way request
No response Expect a result
- synchronous mode
- deferred synchronous mode
Distributed environment
with ORB
CORBA-based ORBs Introduction to CORBA -2
• OMG(Object Management Group)
–
객체지향 표준을 제정하는 컨소시 엄
• OMA(Object Management Architecture) –
이종의 분산된 환경 하에서 응용 프
로그램들이 서로 통합하고
,상호 연 동할 수 있도록 하는 표준 기술
• CORBA (Common Object Request Broker Architecture)
–
이종의 네트워크 시스템에서 객체 간의 통신을 가능하게 해주는 아키 텍처
• ORB(Object Request Broker)
–
객체간에 클라이언트
/서버 환경을 구축해 주는 미들웨어
OMG
(Object Management Architecture)
ORB
(Object Request Broker) CORBA (Common Object Request Broker Architecture)
OMG (Object Management Group)
CORBA-based ORBs
Object Management Architecture
CORBA services
Naming Persistence ...
Lifecycle
Object Request Broker Vertical
CORBA facilities
Horizontal CORBA facilities
Healthcare Financial
...
User Interface
System Mgmt
Task Mgmt Info
Mgmt
Application Objects
Not Standardized
by OMG
CORBA-based application
Clients Object Implementations
Dynamic Invocation
Interface
Static IDL Stubs
Dynamic Skeleton Interfaces Static
IDL Skeletons ORB
Interface
Object Adapters
Object Request Broker
Interface Repository
Implementation Repository
CORBA 개요
• 객체 관리 그룹 (OMG : Object Management Group
)– 객체지향기술과 이기종 분산환경에서 애플리케이션 개발에 필요한 하부구조의 기술규격 규정을 목적으로 하는 단체
• 객체 관리 아키텍처 ( OMA : Object Management Architecture)
• CORBA (Common Object Request Broker Architecture)
: ORB 의 표준화
CORBA 구조
• ORB Core
–
클라이언트
/구현객체 통신의 기반이 되는 컴포넌트
• Interface Repository
–
구현객체의 함수 파라미터와 복귀값 등의 인터페이스 정보를 관리
• Implementation Repository
–
구현객체가 있는 위치와 저장방법을 관리
CORBA IDL
•IDL(Interface Definition Language)
: OMG에서 규정한 인터페이스 정의 언어 표준
Client와 Server 사이에 필요한 객체를 추출하고 인터페이스 정의
-사용되는 객체에 대한 인터페이스 정의
-속성값, 연산, 각 연산의 매개변수 값을 정의
CORBA 의 전체 구조
기본 프로 그래밍
구조
원격 구조 클라이언트
CORBA 라이 브러리 클라이언트
스텁(프록시) ORS(s) (orbixd)와
구현 저장소
TCP TCP
소켓 소켓
ORBORB ORBORB
객체객체 서버
객체 스켈레톤 객체 어댑터(CORBA lib)
와이어 프로토콜
구조
클라이언트
클라이언트 컴퓨터컴퓨터 서버서버컴퓨터컴퓨터
Java & CORBA 모델
HTTP
서버
자바용 브라우저
인터넷/인트라넷
JDBC
RMI를 활용한 자바 서버 애플리케이션
객체지향 코바랩퍼 (Wrapper)
CORBA 서버 애플리케이션
자바, C++,도는 기타언어
메인 프레임 기초 애플리케이션
유닉스 기초 애플리게이션 기타 플랫폼
기초 애플리케이션
ODBC DBMS
특정 DBMS
특정 DBMS
특정 DBMS
특정 DBMS 서버 애플리케이션을
위한HTML문서와
자바 애플식 클라이언트
코바IIOP
코바IIOP 자바RMI
2-Tier클라이언트를
위한JDBC접근
=> RMI :
순수 자바 애플리케이션을 위한 뛰어난 분산 컴퓨팅 모델
=> Java
기존 애플리케이션
Interface( CORBA, OMA
가 매카니즘 제공
)CORBA 를 이용한 Java application 의 아키텍처
클라이언트 애플릿
자바 바인드
ORB
스터브
HTTP
서버
ORB
스켈리튼
ODBC
또는
DBMS서버 에들리 케이선 문서,이미지 자바 애플릿
데이터베이스 인터넷 또는
TCP/IP
인트라넷
HTTPIIOP