E D R , A S I H C RSS

코바용어정리

1. ���언트

�체� 참조를 유지함으로� �격 �체를 액세스할 수 있는 node(단어 선�� 부�절한 것 같군 --;;)�다. 즉 �체 레�런스를 사용하여 ���언트는 �체� 오�레�션� 수행할 수 있게 �다. �격 �체를 액세스 하는 과정� 대해 구체�으로 기술하면 다�과 같다. ���언트는 언어 맵핑� 통해 �체와 ORB �터페�스� 액세스할 수 있다. ORB는 구현 �체와 ���언트 사�� 커트롤 전달 � ��터 전달 관리를 책임지고 있다. 결국 ���언트는 언어 맵핑� 통해서 ORB와 �호 작용할 수 있고, ORB는 �격 �체� 대한 레�런스를 얻� 수 있게 �다. �런 방�으로 ���언트는 분산 환경하�서 �체를 �름과 �터페�스만으로 마�대로 참조할 수 있는 것�다. ORB를 버스�고 ��하면 쉽게 �해할 수 있� 것�다.

2. 구현 �체

í�´ë�¼ì�´ì–¸íЏì�˜ 반대쪽ì—�는 구현 ê°�ì²´ë�¼ê³  알려진 실제 ê°�ì²´ê°€ 있다. '구현 ê°�ì²´(Object Implementation)'는 실제 ìƒ�태(state)와 ê°�ì²´ì�˜ ë°˜ì�‘ ì–‘ìƒ�(behavior)ì�„ 규정하며 다양한 ë°©ì‹�으로 구성ë�  수 있다. 구현 ê°�체는 ê°�ì²´ì�˜ 메소드와 ê°�ì²´ì—� 대한 활성화 ë°� 비활성화 프로시저를 ì •ì�˜í•œë‹¤. 구현 ê°�체는 ê°�ì²´ 어댑터ì�˜ ë�„움ì�„ 받아 ORB와 ìƒ�호 작용한다. ê°�ì²´ 어댑터는 구현 ê°�체를 특정하게 사용하는 ë�°ì—� 편리하ë�„ë¡� ORB 서비스ì—� 대한 ì�¸í„°íŽ˜ì�´ìŠ¤ë¥¼ 제공하게 ë�œë‹¤. 구현 ê°�체는 ORB와 ìƒ�호 작용하여 ê·¸ 정체를 확립하고 새로운 ê°�체를 ìƒ�성하며 ORBì—� 따르는 서비스를 íš�ë“�í•  수 있ë�„ë¡� 한다. 새로운 ê°�ì²´ê°€ ìƒ�성ë�˜ë©´ ORBì—�게 통보ë�˜ê³  ì�´ ê°�ì²´ì�˜ 구현ì�´ ì–´ë””ì—� 위치하는가를 알게 ë�œë‹¤. 호ìœì�´ ë°œìƒ�하면 ORB, ê°�ì²´ 어댑터, 스켈레톤ì�€ 구현ì�˜ ì �절한 메소드ì—� 대한 호ìœì�´ ë�˜ë�„ë¡� 만들어야 한다.

3. ���언트 스�(Stub)

CORBA는 C++과 Java 같� �체 지향 언어와 C와 같� 절차� 언어 양쪽 모��서 사용� 수 있다. �체 지향 언어�서는 사용�가 �체� 특성� 정�하고 그 프로�티� 액세스할 수 있게 해주는 메소드와 �터페�스를 제공한다. �것� 비�체 지향 언어�는 없는 기능��, �것들� ��
ì�˜ ì�¸í„°íŽ˜ì�´ìФ 타입ì—� 대해 스í…�ì—� 대한 프로그래ë°� ì�¸í„°íŽ˜ì�´ìŠ¤ë¥¼ 필요로 한다. 보통 스í…�ì�€ OMG-IDL로 ì •ì�˜ë�˜ì–´ 있는 ê°�ì²´ 오í�¼ë ˆì�´ì…˜ì—� 대한 액세를 하게 해주는ë�°, ì�¼ë‹¨ 프로그래머가 OMG-IDL ë°� 특정 프로그래ë°� 언어ì—� 대한 언어 매핑ì—� 친숙해지면 ì†�쉽게 예ìƒ�ì�´ 가능한 ë°©ì‹�으로 액세르를 하게 해준다. 해당 스í…�ì�€ ORB 코어ì—� ì „ìš©ì�´ë©° 최ì �í™”ë�œ ì�¸í„°íŽ˜ì�´ìŠ¤ë¥¼ 사용해서 나머지 ORB들ì�„ 호ìœí•˜ê²Œ ë�  것ì�´ë‹¤. 만약 여러 ê°œì�˜ ORB를 사용하게 ë�œë‹¤ë©´ ê°�ê°�ì�˜ 스í…�ì�€ ì œ ê°�기 해당하는 ORB를 호ìœí•˜ê²Œ ë�  것ì�´ë‹¤. ì�´ 경우ì—� ORB와 언어 맵핑ì�€ 공조하여 ê°�ê°�ì�˜ 스í…�ì�´ 특정 ê°�ì²´ ë ˆí�¼ëŸ°ìŠ¤ì™€ 제대로 ì—°ê²°ë�  수 있ë�„ë¡� 해야 í•  것ì�´ë‹¤.

4. ë�™ì � í˜¸ìœ ì�¸í„°íŽ˜ì�´ìФ(DII : Dynamic Invocation Interface)

í�´ë�¼ì�´ì–¸íŠ¸ê°€ 호ìœë�  ê°�체와 수행할 오í�¼ë ˆì�´ì…˜ì�„ 지정하고ìž� í•  때, 특정 ê°�ì²´ Aì�˜ 특정 오í�¼ë ˆì�´ì…˜ì�„ 지정하는 대신 ê°�ì²´ 호ìœì�„ ë�™ì �으로 ìƒ�성하ë�„ë¡� 허용하는 ì�¸í„°íŽ˜ì�´ìŠ¤ë¥¼ ì�´ìš©í•  수 있다. ì�´ëŸ¬í•œ 경우 í�´ë�¼ì�´ì–¸íЏ 코드ì—�서는 수행ë�˜ëŠ” 오í�¼ë ˆì�´ì…˜ê³¼ 전달ë�˜ëŠ” 파ë�¼ë¯¸í„°ì�˜ 타입ì—� 대한 정보를 제공해야 한다. ì�´ 정보는 대개 ì�¸í„°íŽ˜ì�´ìФ 저장소와 ê°™ì�€ 런타입 소스ì—�서 얻어진다. 실행 시간 중ì—� 해당 정보를 ì–»ì�€ 후, í�´ë�¼ì�´ì–¸íЏ 코드는 ì�´ë¥¸ë°” ë�™ì � í˜¸ìœ ì�¸í„°íŽ˜ì�´ìФ(DII)를 ì�´ìš©í•´ì„œ ë�™ì �으로 호ìœì�„ í•  수 있게 ë�œë‹¤.

5. �체 어댑터(Object Adapter)

구현 �체가 ORB� �해 제공�는 서비스를 �용하는 주� 방법� �체 어댑터를 통하는 것�다. �체 어댑터는 CORBA ��브러리�� ORB 코어 통신 서비스� 맨 위쪽� 위치하고 있으며 서버 �체를 대신하여 리퀘스트를 받아들�다. �체 어댑터는 서버 �체를 �스턴스화하기 위한 실행 환경� 제공한다. 즉, 서버 �체� 리퀘스트를 전달하며 �체 ID를 부여하는 등� 작업� 하게 �다는 것�다. �한, �체 어댑터는 구현 저장소� 어댑터가 지�하는 �래스와 런타임 �스턴스를 등�한다. CORBA�서는 � ORB가 기본 �체 어댑터(BOA)� 불리는 표준 어댑터를 지�하�� 규정한다. 하나� 서버가 여러 개� �체 어댑터를 지�할 수 있다.
�체 어댑터를 통하여 ORB가 제공하는 서비스�는 �히 �체 레�런스� �성과 해�, 메소드 구현, 보안과 �호 작용, 구현 �체� 활성화/비활성화, 구현으로� �체 레�런스 맵핑, 그리고 구현 �체� 등� 기능 등� �함�다. �체 어댑터를 통하게 �면, ORB�서 비슷한 요구 사항� 가진 특정 그룹� 구현 �체만� 한정하여 다루는 것� 가능해진다.

6. 구현 스켈레톤(implementation skeleton)

ê°�ê°�ì�˜ 언어 매핑ì—� 대해(아마ë�„ ê°�ì²´ 어댑터ì—�ì�˜ ì�˜ì¡´í•˜ê²Œ ë�˜ê² ì§€ë§Œ) ê°�ê°�ì�˜ 타입ì�˜ ê°�체를 구현하ë�„ë¡� 해주는 메소드ì—� 대한 ì�¸í„°íŽ˜ì�´ìŠ¤ê°€ 존재할 것ì�´ë‹¤. ì�´ ì�¸í„°íŽ˜ì�´ìŠ¤ëŠ” ì�¼ë°˜ì �으로 업콜(up-call) ì�¸í„°íŽ˜ì�´ìФì�¼ 것ì�´ë‹¤. 구현 ê°�ì²´ì�˜ 개발ìž�는 ê·¸ ì�¸í„°íŽ˜ì�´ìФì—� ë”°ë�¼ 루틴ì�„ 작성하게 ë�˜ê³  ORB는 스켈레톤ì�„ 통해서 ê·¸ 루틴ì�„ 호ìœí•˜ê²Œ ë�  것ì�´ë‹¤. 그러나 스켈레톤ì�˜ 존재가 ê·¸ì—� 사ì�‘하는 í�´ë�¼ì�´ì–¸íЏ 스í…�ì�˜ 조재를 ì�˜ë¯¸í•˜ì§€ëŠ” 않는다는 것ì�´ë‹¤. ì�´ë§�ì�€ í�´ë�¼ì�´ì–¸íŠ¸ê°€ DII를 통해서 리퀘스트를 만들 수ë�„ 있다는 것ì�´ë‹¤. ë˜�한, ì–´ë–¤ 언어 맵핑ì�€ 스켈레톤ì�„ 사용하지 않는ë�°, ì�´ê²ƒì�€ Smalltalkì—�시는 대체ì �으로 맞는 ë§�ì�´ë‹¤.

7. �� 스켈레톤 �터페�스(DSI : Dynamic Skeleton Interface)

ë�™ì � 스켈레톤 ì�¸í„°íŽ˜ì�´ìŠ¤ëŠ” IDLì—� 기초하지 않는 스켈레톤/스í…�ì�„ 가진 ê°�ì²´ì�˜ 메소드 호ìœì�„ 처리해야 하는 서버ì—� 대해 런타임 ë°”ì�¸ë”© 메커니즘ì�„ 제공한다. ë�™ì � 스켈레톤ì�€ 수신ë�œ 메시지ì�˜ 파ë�¼ë¯¸í„°ê°’ì�„ 참조하여 ì–´ë–¤ ê°�ì²´ê°€ 호ìœë�˜ì—ˆëŠ”ì§€ ì–´ë–¤ 메소드가 호ìœë�˜ì—ˆëŠ”ì§€ë¥¼ 알게 ë�œë‹¤. ì�´ê²ƒì�€ ì�¼ë°˜ì �으로 컴파ì�¼ë�œ 스켈레톤ì�„ 사용하는 것과는 비êµ�ë�˜ëŠ”ë�° ì�´ëŸ¬í•œ 스켈레톤ì—�서는 메소드ì�˜ 구현ì�´ IDL로 ì •ì�˜ë�œë‹¤. 구현 코드는 모든 오í�¼ë ˆì�´ì…˜ 파ë�¼ë¯¸í„°ì—� 대한 ìƒ�세한 설명ì�„ ORBì—� 제공해야 하며, ORB는 오í�¼ë ˆì�´ì…˜ì�„ 수행할 때 사용ë�˜ëŠ” ìž…ë ¥ 파ë�¼ë¯¸í„°ê°’ì�„ 제공한다. 오í�¼ë ˆì�´ì…˜ì�´ 수행ë�œ 후, 구현 코드는 ìœë ¥ 파ë�¼ë¯¸í„° ë˜�는 ì�µì…‰ì…˜ì�„ ORBì—�게 넘겨준다. ë�™ì � 스켈레톤 ì�¸í„°íŽ˜ì�´ìФì�˜ 특성ì�€ 프로그래ë°� 언어 맵핑ì—� ë”°ë�¼ ë˜�는 ê°�ì²´ 어댑터ì—� ë”°ë�¼ 실질ì �으로 달ë�¼ì§ˆ 수 있지만, ì�¼ë°˜ì �으로는 업콜 ì�¸í„°íŽ˜ì�´ìФì�´ë‹¤. ë�™ì � 스켈레톤ì�€ í�´ë�¼ì�´ì–¸íЏ 스í…� ë˜�는 DII를 통해서 호ìœë�  수 있다. ì�´ ë‘� 가지 ë°©ì‹�ì�˜ í�´ë�¼ì�´ë„ˆíЏ 리퀘스트 ìƒ�성 ì�¸í„°íŽ˜ì�´ìŠ¤ëŠ” ë�™ì�¼í•œ 결과를 제공한다.

8. ORB �터페�스

ORB ì�¸í„°íŽ˜ì�´ìŠ¤ëŠ” 애플리케ì�´ì…˜ì—� 중요한 지역 서비스ì—� 대한 API들로 구성ë�˜ì–´ 있지 않다. ì�´ê²ƒì�€ 곧바로 ORB로 가는 ì�¸í„°íŽ˜ì�´ìФì�´ê³  모든 ORB들ì—� 대해 ë�™ì�¼í•˜ë‹¤.ORB ì�¸í„°íŽ˜ì�´ìŠ¤ëŠ” ê°�ì²´ 어댑터 ë˜�는 ê°�ì²´ ì�¸í„°íŽ˜ì�´ìФì—� ì�˜ì¡´í•˜ì§€ 않는다. 대부분ì�˜ ORBì�˜ 기능ì�´ ê°�ì²´ 어댑터, 스í…�, 스켈레톤 ë˜�는 ë�™ì � í˜¸ìœ ë“±ì�„ 통해서 제공ë�˜ë¯€ë¡œ 몇몇 오í�¼ë ˆì�´ì…˜ë§Œì�´ 모든 ê°�체들ì—� 대해 공통ì�´ë‹¤. 공통 오í�¼ë ˆì�´ì…˜ì—�는 get_interface와 get_implementation ê°™ì�€ 함수가 í�¬í•¨ë�˜ì–´ 있는ë�°, ì�´ê²ƒë“¤ì�€ ìž„ì�˜ì�˜ ê°�ì²´ ë ˆí�¼ëŸ°ìФì—� 작용하며 ê°�ê°� ì�¸í„°íŽ˜ì�´ìФ 저장소 ê°�체와 구현 저장소 ê°�체를 얻는 ë�° 사용ë�œë‹¤.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:19
Processing time 0.0075 sec