IIOP (Internet Inter-ORB Protocol)
|
'Development > Common' 카테고리의 다른 글
유니코드(UNICODE) & 엔코딩(Encoding) (1) | 2012.01.19 |
---|---|
utf-8 & euc-kr (0) | 2012.01.19 |
CORBA (0) | 2012.01.16 |
XML (0) | 2012.01.16 |
용어 정리 (0) | 2011.12.07 |
IIOP (Internet Inter-ORB Protocol)
|
유니코드(UNICODE) & 엔코딩(Encoding) (1) | 2012.01.19 |
---|---|
utf-8 & euc-kr (0) | 2012.01.19 |
CORBA (0) | 2012.01.16 |
XML (0) | 2012.01.16 |
용어 정리 (0) | 2011.12.07 |
코바(Common Object Request Broker Architecture; CORBA)는 OMG에서 정의한 규격으로서 소프트웨어 컴포넌트들을 언어와 사용환경에 대한 제약이 없는 통합을 위한 표준을 지칭한다.
목차[숨기기] |
코바는 응용프로그램 객체 간의 메소드 호출을 표준화하기 위한 목적을 두고 있다. 각 객체의 위치는 로컬과 원격(네트워크 간)에 구애받지 않는다. CORBA는 응용프로그램 객체를 외부에 노출시키는 방법으로써 '인터페이스정의언어'(IDL)을 사용하고 있는데 이는 각 응용프로그램 객체를 IDL을 이용해 필요한 부분만 노출시키겠다는 의도에서이다. 초창기의 코바는 IDL 대 C++ / 자바 프로그래밍 언어와 매핑시켰으나 현재는 다수의 언어(에이다, 파이썬, 루비 등)를 공식적으로 지원한다. 이외에도 비공식적으로 펄, 비주얼 베이직 등의 언어도 지원한다.
코바의 사양에서 객체요청브로커를 통해서 응용프로그램이 다른 객체들과 상호작용 하게 한다고 구술하고 있다. 실제로 응용프로그램은 객체요청브로커를 초기화 하는 과정은 아래와 같이 간결하게 이루어져있다.
먼저, 생성코드클래스를 작성해야 한다. 이는 개발자가 IDL로 작성한 코드를 IDL 컴파일러를 통해 배포환경에 최적화시켜 컴파일 한 결과물이다. 이를 통해서 생성코드클래스의 생성이 완성되면 객체연결자에 등록시켜야 하는 데 이 객체연결자의 용도는 객체에 대한 참조수 확인, 객체(혹은 참조)초기화 정책, 객체에 대한 생명주기 정책 등이다.
이러한 과정은 코바에 있어서 꼭 필요한 과정이다.
프로그래밍 언어의 일부는 IDL과 매핑시키기 어렵다. 예를 들어 자바의 경우에는 IDL과의 조화가 잘 이루어지지만 C++의 경우는 매핑이 단순하지가 않다. 게다가 C언어의 경우에는 매우 생소하기까지 하다.(C언어의 경우 객체지향언어가 아니다)
프로그래밍 언어와의 매핑은 개발자가 실객체의 메소드를 얼마나 잘 노출시킬 수 있는지에 달려있다. 이를 위해 대부분의 코바 구현체는 IDL을 컴파일러와 툴을 가지고 있다. 전통적으로 IDL 컴파일러는 응용프로그램에서 사용가능한 오브젝트 파일로 IDL파일을 컴파일한다. 이 구조를 아래의 관계도에서 표현하고 있다.
분산 시스템은 원격 시스템 간의 자원 공유, 개방성, 병렬성, 확장성, 내구성, 투명성 등을 제공해야 한다. 또한 80년대부터 대두 되었던객체지향 기술의 객체는 데이터와 그 데이터를 조작할 수 있는 메소드(method)로 구성되어 있으며, 프로그램은 메시지에 의한 객체 간의 상호 작용을 기술함으로서 여러 문제를 해결할 수 있게 됐다.
분산 객체 기술은 이러한 두 기술의 장점을 효과적으로 통합하는 기술이며, 개발자에게 애플리케이션 개발의 생산성을 향상시켜주고, 사용자에게 분산 환경에 투명하게 통합된 정보를 제공한다.
이를 위해 OMG(Object Management Group)에서는 분산 컴퓨팅과 객체지향 기술을 하나로 합친 표준 아키텍처를 제안하게 되는데, 그것이 바로 CORBA이다.
CORBA는 애플리케이션들끼리 어느 위치든, 누가 만들었든 상관없이 상호간 통신을 보장하고 분산 객체 간의 상호 운용을 위한 통신 미들웨어 역할을 하며, 분산 객체 소프트웨어의 기본 틀로서 서비스를 제공하는 부분과 제공받는 부분간의 투명한 정보 교환이 가능하도록 하며 분산 환경에서 응용 소프트웨어를 쉽게 개발할 수 있도록 지원한다.
분산 환경에서 클라이언트와 서버 간의 인터페이스만 정의되면 이들 서로 간의 서비스 요구나 결과 값의 전달이 하부 통신 메커니즘에 반영될 수 있다.
CORBA를 이용한 응용 소프트웨어 개발은 각종 투명성이 보장되기 때문에 사용자의 특정 응용 업무 개발 환경에 적합하고 개발 과정이 간단하고 효율적이다.
CORBA 애플리케이션 디자인은 다른 기계에 존재하는 객체와 네트워크에서 통신할 수 있도록 추가 계층(layer)을 포함해야 한다. 이런 추가 계층은 스텁(stub)과 스켈레톤(skeleton)이라는 특수한 객체에 의해 조절한다.
CORBA 클라이언트에서 스텁은 서버에 실제로 구현한 객체에 대한 프록시(proxy) 역할을 한다. 클라이언트는 인터페이스를 구현한 객체와 직접 상호 작용하듯이 스텁에 접근하여, ORB(Object Request Broker) 소프트웨어를 통해 인터페이스를 호출한다.
CORBA 서버에서 ORB 소프트웨어는 인터페이스 호출을 생성된 스켈레톤에 자동으로 넘겨준다. 스켈레톤은 Portable Object Adapter(POA)를 통해 ORB 소프트웨어와 통신한다. 스켈레톤은 POA를 사용해 객체를 등록하고, 여기에 객체의 범위와 객체가 인스턴스화해 클라이언트에 반응할 수 있게 되는 시기등을 결정한다.
유니코드(UNICODE) & 엔코딩(Encoding) (1) | 2012.01.19 |
---|---|
utf-8 & euc-kr (0) | 2012.01.19 |
IIOP (0) | 2012.01.16 |
XML (0) | 2012.01.16 |
용어 정리 (0) | 2011.12.07 |
마크업 언어(markup 言語, markup language)는 태그 등을 이용하여 데이터의 구조를 명기하는 언어의 한 가지이다.
프로그래밍 언어와 구별하여 일반적으로 데이터 언어라고 하지만, 처럼 프로그래밍이 가능한 것도 있기 때문에 명확하게 구분되지는 않는다.
마크업은 그 파일이 프린터로 출력되거나 화면에서 어떻게 보여야할 것인지를 나타내기 위해, 또는 그 문서의 논리적인 구조를 묘사하기 위해서, 텍스트나 워드프로세싱 파일의 특정 위치에 삽입되는 일련의 문자들이나 기호들을 말한다. 마크업에 사용되는 표지를 흔히 "태그"라고 부른다. 예를 들어 다음의 태그는 문단을 나누는데 사용된다. <p> 문서의 구조에 관한 마크업 정의 표준은 SGML에 있다. 마크업은 문서 작성자가 부호를 직접 쳐 넣거나, 편집기를 사용하여 미리 마련된 마크업 부호들(키보드를 덜 칠 수 있도록)을 사용하거나, 또는 그 문서가 실제로 나타낼 모양 그대로 만들 수 있는 보다 정교한 편집기(흔히 이를 WYSIWYG 편집기라고 한다)를 이용함으로써, 삽입될 수 있다. |
XML(Extensible Markup Language)은 W3C에서 다른 특수 목적의 마크업 언어를 만드는 용도에
서 권장되는 다목적 마크업 언어이다. XML은 SGML의 단순화된 부분집합이지만, 수많은 종류의
데이터를 기술하는 데 적용할 수 있다. XML은 주로 다른 시스템, 특히 인터넷에 연결된 시스템끼리
데이터를 쉽게 주고 받을 수 있게 하여 HTML의 한계를 극복할 목적으로 만들어졌다.
목차[숨기기] |
XML 기반 언어는 다음과 같다.
이들 언어들은 단일하게 규정된 방식으로 정의되었기 때문에, 사전 정보가 없어도 이들 언어로
작성된 문서에 대해 수정이나 유효성 검사를 하는 프로그램도 제작할 수 있다.
XML에서의 기본 개념에는 10가지가 있다.
XML 문서에는 두 가지 수준의 수정 절차가 있다:
유니코드(UNICODE) & 엔코딩(Encoding) (1) | 2012.01.19 |
---|---|
utf-8 & euc-kr (0) | 2012.01.19 |
IIOP (0) | 2012.01.16 |
CORBA (0) | 2012.01.16 |
용어 정리 (0) | 2011.12.07 |