KR20060031913A - 일대일 이름-기반 소켓 통신 수행 장치 및 방법 - Google Patents

일대일 이름-기반 소켓 통신 수행 장치 및 방법 Download PDF

Info

Publication number
KR20060031913A
KR20060031913A KR1020040080886A KR20040080886A KR20060031913A KR 20060031913 A KR20060031913 A KR 20060031913A KR 1020040080886 A KR1020040080886 A KR 1020040080886A KR 20040080886 A KR20040080886 A KR 20040080886A KR 20060031913 A KR20060031913 A KR 20060031913A
Authority
KR
South Korea
Prior art keywords
server
client
application
name
message queue
Prior art date
Application number
KR1020040080886A
Other languages
English (en)
Other versions
KR100677141B1 (ko
Inventor
한국현
이종인
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040080886A priority Critical patent/KR100677141B1/ko
Priority to CNA2005101055214A priority patent/CN1764187A/zh
Priority to US11/238,050 priority patent/US20060080402A1/en
Publication of KR20060031913A publication Critical patent/KR20060031913A/ko
Application granted granted Critical
Publication of KR100677141B1 publication Critical patent/KR100677141B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

어플리케이션사이의 소켓 통신 장치 및 방법이 개시된다. 본 발명은, 프로세스를 지원하지 않는 운영체제에서 서버 어플리케이션 및 클라이언트 어플리케이션사이의 소켓 통신을 수행하는 장치에 있어서, a)상기 서버 어플리케이션에 의해 생성되고, 제 1 이름을 가지는 서버 소켓 인터페이스; 및 b)상기 클라이언트 어플리케이션에 의해 생성되고, 상기 제 1 이름과 연관된 제 2 이름을 가지는 클라이언트 소켓 인터페이스를 포함하고, 상기 서버 소켓 인터페이스는 상기 제 1 이름과 동일한 이름을 가지는 서버 메시지 큐를 포함하며, 상기 클라이언트 소켓 인터페이스는 상기 제 2 이름과 동일한 이름을 가지는 클라이언트 메시지 큐를 포함하고, 상기 서버 및 클라이언트 메시지 큐는 상기 서버 어플리케이션과 상기 클라이언트 어플리케이션사이에서 메시지 큐 방식의 통신을 수행한다. 본 발명에 따르면, 프로세스가 지원되는 OS에서만 이름-기반 소켓 통신이 가능하였던 어플리케이션들이 메시지 큐 방식을 이용하여 프로세스가 지원되지 않는 OS 에서도 이름-기반 소켓 통신이 가능하게 된다.

Description

일대일 이름-기반 소켓 통신 수행 장치 및 방법{Apparatus and Method for performing an one to one name-based socket-communication}
도 1 은 어플리케이션의 동작되기 위한 소프트웨어의 계층 구조를 나타내는 도면.
도 2 는 이름-기반 소켓 통신 방식을 나타내는 도면.
도 3 은 본 발명에 의한 소켓 통신 장치를 나타내는 도면.
도 4 는 본 발명에 의한 소켓 통신 방법을 나타내는 시간흐름도이다.
본 발명은 어플리케이션 사이의 소켓 통신 장치 및 방법에 관한 것으로서, 보다 상세하게는 프로세스를 지원하지 않는 운영체제에서 어플리케이션사이의 이름-기반의 소켓 통신을 수행하는 장치 및 방법에 관한 것이다.
대부분의 S/W 설계시 OS와의 의존성을 제거하기 위해, 먼저 OS에서 제공되는 주요 기능에 대한 추상적 계층(abstraction layer)를 구현한 후, 구현한 추상적 계층(abstraction layer)만을 사용하여 원하는 어플리케이션이 동작할 수 있도록 구현한다. 즉, 어플리케이션이 다양한 형태의 OS에서 동작되도록 하기 위하여, 필요 한 주요 기능들을 미리 추출하여 구현한 추상적 계층 자체만(인터페이스는 유지한 채) 바뀐 OS에 맞도록 재설계하면 된다.
하지만, OS 자체에서 어플리케이션이 필요로 하는 기능을 제공하지 않는 경우에는 인터페이스를 유지하는 것이 거의 불가능 하다. 예로 이름-기반 소켓 통신(name-based socket)을 들 수 있다. 프로세스(Process)간의 통신 방식으로, 이름-기반 소켓 통신(name-based socket)이 널리 사용되고 있는데, 프로세스(process)를 지원하지 않는 OS에서도 어플리케이션이 동작하도록 만들고 싶을 경우에는, 이름 기반 소켓 통신을 사용할 수 없기 때문에 어플리케이션 내부의 통신 방식을 변경해야 한다. 이는 프로세스를 지원하지 않는 OS는 주소-기반 소켓(IP-based socket) 통신은 지원하지만, 이름-기반 소켓 통신은 지원하지 않기 때문이다.
따라서 본 발명은 전술한 문제점을 해결하기 위하여 안출된 것으로서, 프로세스를 지원하지 않는 OS에서도 이름-기반 소켓 통신 인터페이스를 그대로 유지시킬 수 있는 소켓 통신 방법 및 장치를 제공하고자 한다.
전술한 과제를 해결하기 위한 본 발명은, 프로세스를 지원하지 않는 운영체제에서 서버 어플리케이션 및 클라이언트 어플리케이션사이의 소켓 통신을 수행하는 장치에 있어서, a)상기 서버 어플리케이션에 의해 생성되고, 제 1 이름을 가지는 서버 소켓 인터페이스; 및 b)상기 클라이언트 어플리케이션에 의해 생성되고, 상기 제 1 이름과 연관된 제 2 이름을 가지는 클라이언트 소켓 인터페이스를 포함 하고, 상기 서버 소켓 인터페이스는 상기 제 1 이름과 동일한 이름을 가지는 서버 메시지 큐를 포함하며, 상기 클라이언트 소켓 인터페이스는 상기 제 2 이름과 동일한 이름을 가지는 클라이언트 메시지 큐를 포함하고, 상기 서버 및 클라이언트 메시지 큐는 상기 서버 어플리케이션과 상기 클라이언트 어플리케이션사이에서 메시지 큐 방식의 통신을 수행하는 것을 특징으로 한다.
여기서, 상기 서버 어플리케이션으로부터의 상기 클라이언트 어플리케이션으로의 소켓 통신은, 상기 서버 메시지 큐가 상기 서버 어플리케이션의 송신(send) 명령에 응답하여 상기 서버 메시지 큐에 상기 클라이언트 어플리케이션이 필요로 하는 데이터를 나타내는 클라이언트 데이터를 저장하고, 상기 클라이언트 어플리케이션이 수신(receive) 명령을 이용하여 상기 클라이언트 데이터를 상기 서버 메시지 큐로부터 획득함으로써 수행된다.
또한 여기서, 상기 클라이언트 어플리케이션으로부터의 상기 서버 어플리케이션으로의 소켓 통신은, 상기 클라이언트 메시지 큐는 상기 클라이언트 어플리케이션의 송신(send) 명령에 응답하여 상기 클라이언트 메시지 큐에 상기 서버 어플리케이션이 필요로 하는 데이터를 나타내는 서버 데이터를 저장하고, 상기 서버 어플리케이션은 수신(receive) 명령을 이용하여 상기 서버 데이터를 상기 클라이언트 메시지 큐로부터 획득함으로써 수행된다.
또한 본 발명은, 프로세스를 지원하지 않는 운영체제에서 서버 어플리케이션 및 클라이언트 어플리케이션사이의 소켓 통신을 수행하는 방법에 있어서, a)상기 서버 어플리케이션의 제 1 이름을 가지는 서버 소켓 인터페이스의 생성(creat) 명 령에 응답하여, 상기 제 1 이름을 가지는 서버 소켓 인터페이스 및 상기 서버 소켓 인터페이스내에 상기 제 1 이름과 동일한 이름을 가지는 서버 메시지 큐를 생성하는 단계; 및 b)상기 클라이언트 어플리케이션의 상기 서버 소켓 인터페이스로의 접속(connect)명령에 응답하여, 상기 제 1 이름과 연관된 제 2 이름을 가지는 클라이언트 소켓 인터페이스 및 상기 제 2 이름과 동일한 이름을 가지는 클라이언트 메시지 큐를 상기 클라이언트 소켓 인터페이스내에 생성하는 단계; 및 상기 서버 및 클라이언트 메시지 큐는 상기 서버 어플리케이션과 상기 클라이언트 어플리케이션사이에서 메시지 큐 방식의 통신을 수행하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명한다.
도 1 은 어플리케이션의 동작되기 위한 소프트웨어의 계층 구조를 나타내는 도면이다.
임베디드 시스템(Embedded system)의 기능이 다양해지고 규모가 커짐에 따라 운영체제(Operating System; OS)의 사용은 필수적이 되었고, OS 선정 또한 임베디드 시스템의 특성에 적합하게 다양화되고 있다[1]. 이에 임베디드 시스템 구현에 있어서 OS 선정은 시스템 구현의 시작일 일 뿐만 아니라 시스템의 성능을 결정하는 중요한 요소이다. 하지만 각각의 임베디스 시스템 및 OS가 가지는 특성으로 인하여, 특정한 시스템에 특정한 OS가 적합하다는 식의 일률적인 규칙을 적용하기는 어렵다.
어플리케이션 모델은 프로세스를 지원하는 OS에서 동작가능한 프로세스 기반 모델과 그렇지 않는 쓰레드 기반모델로 나뉜다. 프로세스 기반 모델(process-based model)은 OS 커널(kernel)이나 각각의 응용프로그램(application)들이 모두 독립적으로 동작하도록 설계되어 있고, 각 application들은 서로의 메모리가 보호되어 있기 때문에 응용프로그램의 개발이나 모듈의 추가와 변경이 용이하고, 안정된 시스템의 개발이 가능하여 대규모 시스템의 개발에 적합한 특징을 갖는다. 반면, 쓰레드 기반 모델(thread-based model)은 OS 커널과 응용프로그램의 구분 없이 하나의 프로그램으로 수행되는 방식으로 공통의 작업 영역(memory)을 자유롭게 접근할 수 있는 뿐만 아니라, OS의 크기가 작고, 구현이 용이하고 빠르다는 특징을 가진다.
디지털 TV(Digital TV; DTV)와 같이 임베디드 시스템의 규모가 커지고, 각 CE(Consumer Electronics) 제품군의 특성이 복잡해짐에 따라 적용되어지는 OS 또한 다양해지고 있다. 이러한 경우 OS의 변경으로 인하여 전체 시스템의 수정이 필요가 없는 경우에도 응용 프로그램 등을 포함한 전체 소프트웨어(Software; S/W)의 변경 및 재구현이 불가피한 경우가 발생한다.
이를 위해 OS 변경에 따라 수정이 필요한 부분을 최대한 추상화(abstraction)하여 빠른 시간 내에 시스템의 재구성이 가능하도록 하는 임베디드 S/W 구조 및 그 방법론을 제시되고 있으며 그중 하나가 추상적 계층(abstraction Layer)의 구현이다.
도 1 에 나타난 바와 같이, 어플리케이션과 OS의 직접적인 연관성을 배제하기 위해 소프트웨어 구조에 OS 추상화 계층(OS Abstraction Layer; OSAL)을 추가한다. OSAL은 OS의 변경에 대하여 상위 S/W에 대한 재사용성을 제공하며, 어플리케이 션이 필요로 하는 주요한 기능들을 포함한다.
OSAL는각 OS의 변환요소에 대해 추상화한 공통적인 API(Application Programming Interface)를 제공함으로써 상위 응용프로그램 및 미들웨어(Middleware; M/W)의 변경 없이도 OS를 변환하여 사용하는 것이 가능하다. 즉, 도 1 에서 도시한 바와 같이 각각의 OS에서 제공되는 커널 요소(kernel component)별로 공통적인 API를 제공하여 상위 응용 프로그램에서 이를 이용하여 OS에 접근하게 한다.
이러한 추상화 계층을 통해 소프트웨어를 구현하면 OS가 바뀌어도 검증된 소프트웨어 모듈(module)은 수정하지 않고 추상화 계층의 수정만을 통하여 전체 소프트웨어의 변환(migration)이 가능하다. 그러나 OS에서 해당 기능 자체를 제공하지 않는 경우에는 추상화 계층만의 수정으로는 OS 변경이 불가능하므로 해당 기능을 제공하는 OS의 API 형태를 유지하여 해당 기능을 추가 구현하는 과정도 필요하다. 특히 프로세스 기반 모델을 쓰레드 기반 모델로 변경하는 경우, 프로세스간의 통신과 같이 쓰레드 기반 OS에서 제공되지 않는 기능에 대해서 구현해주어야 할 필요성이 있다.
도 2 는 이름-기반 소켓 통신 방식을 나타내는 도면이다.
현재 서버 어플리케이션(210) 및 클라이언트 어플리케이션(220)이 통신하고자 한다. 서버 어플리케이션(210)이 클라이언트 어플리케이션(220)과 통신하는 경우는 예를 들면 다음과 같은 경우이다.
TV 의 스트린에 채널 번호와 그 채널에서 상영중이 프로그램이 매핑된 테이 블을 디스플레이하게 한후, 디스플레이된 테이블에서 사용자가 임의의 채널을 선택하면 선택된 채널에 대응하는 프로그램을 TV 가 상영하게 하는 어플리케이션을 동작하게 한다고 하자. 이 경우에는 테이블을 디스플레이하게 하는 테이블 어플리케이션과 선택된 채널을 상영하게 하는 상영 어플리케이션의 두 개의 어플리케이션이 필요하다. 테이블 어플리케이션이 먼저 실행된후 상영 어플리케이션이 실행되어야하기 때문에, 테이블 어플리케이션에서 생성된 어떠한 정보(위의 경우 사용자가 선택한 채널 번호)를 상영 어플리케이션에게 전달하여야 한다. 따라서 테이블 어플리케이션은 클라이언트 어플리케이션이 되고, 상영 어플리케이션은 서버 어플리케이션이 되고, 채널번호는 서버 어플리케이션이 필요로 하는 데이터인 서버 데이터가 된다.
서버 어플리케이션(210)는 먼저 미리결정된 이름(NAME)을 가지는 서버 소켓 인터페이스 생성 명령(creat NAME)을 이용하여 서버 소켓 인터페이스(230)를 생성한다. 서버 소켓 인터페이스(230)는 OSAL 계층에 생성된다. 생성된 서버 소켓 인터페이스(230)는 클라이언트 소켓 인터페이스(240)가 자신에게 접속할 때까지 대기한다.
클라이언트 어플리케이션(220)는 클라이언트 소켓 인터페이스(240)를 생성하고 접속 명령(connect NAME)을 소켓 인터페이스(240)에 전달한다. 클라이언트 소켓 인터페이스(240)는 접속하고자하는 서버 인터페이스의 이름(NAME)을 기초로하여 서버 소켓 인터페이스로 접속을 시도하고, 이로써 서버 소켓 인터페이스(230)와 클라이언트 소켓 인터페이스(240)사이에 소켓 연결이 완성된다.
소켓 연결이 완성되면, 서버 어플리케이션(210) 또는 클라이언트 어플리케이션(220)가 각각 원하는 시점에서 send 함수를 이용하여 패킷(packet)을 송신하거나, receive 함수를 이용하여 패킷을 수신할 수 있다.
도 3 은 본 발명에 의한 소켓 통신 장치를 나타내는 도면이다.
본 발명에 따른 소켓 통신 장치는 서버 소켓 인터페이스(330) 및 클라이언트 소켓 인터페이스(350)을 포함하고, 서버 소켓 인터페이스(330)는 서버 메시지 큐(350)를 포함하며, 클라이언트 소켓 인터페이스(340)는 클라이언트 메시지 큐(360)를 포함한다.
서버 소켓 인터페이스(330)는 서버 어플리케이션(310)의 서버 소켓 인터페이스 생성 명령(creat NAME)에 응답하여 생성되며, 그 내부에 서버 소켓 인터페이스의 이름(NAME)과 동일한 이름의 메시지 큐인 서버 메시지 큐(350)를 포함한다.
클라이언트 소켓 인터페이스(340)는 클라이언트 어플리케이션(320)의 서버 어플리케이션으로의 접속 명령(connect NAME)에 응답하여 생성되며, 그 내부에 클라이언트 메시지 큐(360)를 포함한다. 이 때 클라이언트 소켓 인터페이스(340) 및 클라이언트 메시지 큐(360)는 접속하고자하는 서버 소켓 인터페이스의 이름과 연관된 이름을 가지도록 생성된다. 이름의 연관성은 미리정해진 규칙에 따라 생성된다. 예를 들면 NAME 이라는 서버 메시지 큐의 경우에는 NAMEC 라는 클라이언트 메시지 큐가 생성된다는 규칙이 그 예이다. 클라이언트 및 서버 어플리케이션(310,320)는 서로에게 자신이 원하는 데이터를 정확하게 요구할 수 있도록 이러한 이름의 생성 규칙을 알고 있어야 한다.
서버 및 클라이언트 소켓 인터페이스(330,340) 및 서버 및 클라이언트 메시지 큐(350,360)가 생성되면, 서버 및 클라이언트 어플리케이션은 서로 소켓 통신한다.
먼저, 서버 어플리케이션(310)으로부터의 클라이언트 어플리케이션(320)으로의 소켓 통신은, 서버 메시지 큐(350)를 이용하여 메시지 큐 통신 방식으로 수행된다. 메시지 큐 통신 방식은 당업자에게 널리 알려져 있다. 메시지 큐의 이름은 각각 서버와 클라이언트사이에 어떠한 규칙을 가지고 생성되기 때문에 어플리케이션이 이러한 규칙만 알고 있다면, 메시지 큐 방식을 이용하여 통신이 가능하다.
즉, 서버 어플리케이션(310)으로부터의 클라이언트 어플리케이션(320)으로의 소켓 통신은, 서버 메시지 큐(350)가 서버 어플리케이션(310)의 송신 명령(send)에 응답하여 서버 메시지 큐(350)에 클라이언트 어플리케이션(320)이 필요로 하는 데이터를 나타내는 클라이언트 데이터를 저장하고, 클라이언트 어플리케이션(320)이 수신 명령(receive)을 이용하여 클라이언트 데이터를 서버 메시지 큐(350)로부터 획득함으로써 수행된다.
먼저, 클라이언트 어플리케이션(320)으로부터의 서버 어플리케이션(310)으로의 소켓 통신은, 클라이언트 메시지 큐(360)를 이용하여 메시지 큐 통신 방식으로 수행된다.
즉 클라이언트 어플리케이션(320)으로부터의 서버 어플리케이션(310)으로의 소켓 통신은, 클라이언트 메시지 큐(360)가 클라이언트 어플리케이션(320)의 송신 명령(send)에 응답하여 클라이언트 메시지 큐(360)에 서버 어플리케이션(310)이 필 요로 하는 데이터를 나타내는 서버 데이터를 저장하고, 서버 어플리케이션(310)은 수신 명령(receive)을 이용하여 클라이언트 데이터를 클라이언트 메시지 큐(360)로부터 획득함으로써 수행된다.
메시지 큐 기능은 이름-기반 소켓 통신 기능을 제공하지 않는 OS 에서도 구현가능한 기능이므로, 서버 및 클라이언트 어플리케이션은 마치 메시지 큐를 이용하여 외양상으로는 마치 이름-기반 소켓 통신을 하는 것처럼 수행된다. 따라서 어플리케이션을 변경할 필요없이 OSAL 에 존재하는 소켓 인터페이스의 내부 구성을 변경함으로써 프로세스가 지원되는 OS에서만 이름-기반 소켓 통신이 가능하였던 어플리케이션들이 프로세스가 지원되지 않는 OS 에서도 이름-기반 소켓 통신이 가능하게 된다.
도 4 는 본 발명에 의한 소켓 통신 방법을 나타내는 시간흐름도이다.
단계 410에서, 서버 어플리케이션(310)의 소켓 생성 명령(creat)에 응답하여, 소정의 제 1 이름을 가지는 서버 소켓 인터페이스(330) 및 서버 소켓 인터페이스(330)내에 상기 제 1 이름과 동일한 이름을 가지는 서버 메시지 큐(350)를 생성한다.
단계 420에서, 클라이언트 어플리케이션(320)의 서버 소켓 인터페이스로의 접속(connect)명령에 응답하여, 서버 소켓 인터페이스의 이름인 제 1 이름과 연관된 제 2 이름을 가지는 클라이언트 소켓 인터페이스(340) 및 제 2 이름과 동일한 이름을 가지는 클라이언트 메시지 큐(360)를 상기 클라이언트 소켓 인터페이스내에 생성한다.
단계 430 내지 460 에서, 서버 및 클라이언트 어플리케이션(310,320)은 서버 및 클라이언트 메시지 큐(350,360)를 통해 메시지 큐 방식으로 소켓 통신을 수행한다.
단계 430 내지 440을 통하여 서버 어플리케이션으로부터 클라이언트 어플리케이션으로의 소켓 통신이 수행된다.
단계 430에서, 서버 메시지 큐(350)는 상기 서버 어플리케이션(310)의 송신(send) 명령에 응답하여 서버 메시지 큐(350)에 클라이언트 어플리케이션(320)이 필요로 하는 데이터를 나타내는 클라이언트 데이터를 저장한다.
단계 440에서, 클라이언트 어플리케이션(320)은 수신(receive) 명령을 이용하여 클라이언트 데이터를 서버 메시지 큐(350)로부터 획득한다.
단계 450 내지 460을 통하여 클라이언트 어플리케이션으로부터 서버 어플리케이션으로의 소켓 통신이 수행된다.
단계 450에서, 클라이언트 메시지 큐(360)는 클라이언트 어플리케이션(320)의 송신(send) 명령에 응답하여 클라이언트 메시지 큐(360)에 서버 어플리케이션(310)이 필요로 하는 데이터를 나타내는 서버 데이터를 저장한다.
단계 460에서, 서버 어플리케이션(310)은 수신(receive) 명령을 이용하여 상기 서버 데이터를 상기 클라이언트 메시지 큐로부터 획득한다.
한편, 본 발명에 따른 소켓 통신 방법은 소프트웨어 프로그램으로 작성 가능하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터 또는 임 베디드 시스템이 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터 또는 임베디드 시스템에 의하여 읽혀지고 실행됨으로써 소켓 통신 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체, 및 캐리어 웨이브 매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
전술한 바와 같이 본 발명에 따르면, 프로세스가 지원되는 OS에서만 이름-기반 소켓 통신이 가능하였던 어플리케이션들이 메시지 큐 방식을 이용하여 프로세스가 지원되지 않는 OS 에서도 이름-기반 소켓 통신이 가능하게 된다.

Claims (5)

  1. 프로세스를 지원하지 않는 운영체제에서 서버 어플리케이션 및 클라이언트 어플리케이션사이의 소켓 통신을 수행하는 장치에 있어서,
    a)상기 서버 어플리케이션에 의해 생성되고, 제 1 이름을 가지는 서버 소켓 인터페이스; 및
    b)상기 클라이언트 어플리케이션에 의해 생성되고, 상기 제 1 이름과 연관된 제 2 이름을 가지는 클라이언트 소켓 인터페이스를 포함하고,
    상기 서버 소켓 인터페이스는 상기 제 1 이름과 동일한 이름을 가지는 서버 메시지 큐를 포함하며, 상기 클라이언트 소켓 인터페이스는 상기 제 2 이름과 동일한 이름을 가지는 클라이언트 메시지 큐를 포함하고, 상기 서버 및 클라이언트 메시지 큐는 상기 서버 어플리케이션과 상기 클라이언트 어플리케이션사이에서 메시지 큐 방식의 통신을 수행하는 것을 특징으로 하는 장치.
  2. 제 1 항에 있어서, 상기 서버 어플리케이션으로부터의 상기 클라이언트 어플리케이션으로의 소켓 통신은,
    상기 서버 메시지 큐가 상기 서버 어플리케이션의 송신(send) 명령에 응답하여 상기 서버 메시지 큐에 상기 클라이언트 어플리케이션이 필요로 하는 데이터를 나타내는 클라이언트 데이터를 저장하고,
    상기 클라이언트 어플리케이션이 수신(receive) 명령을 이용하여 상기 클라이언트 데이터를 상기 서버 메시지 큐로부터 획득함으로써 수행되는 것을 특징으로 하는 장치.
  3. 제 1 항에 있어서, 상기 클라이언트 어플리케이션으로부터의 상기 서버 어플리케이션으로의 소켓 통신은,
    상기 클라이언트 메시지 큐는 상기 클라이언트 어플리케이션의 송신(send) 명령에 응답하여 상기 클라이언트 메시지 큐에 상기 서버 어플리케이션이 필요로 하는 데이터를 나타내는 서버 데이터를 저장하고,
    상기 서버 어플리케이션은 수신(receive) 명령을 이용하여 상기 서버 데이터를 상기 클라이언트 메시지 큐로부터 획득함으로써 수행되는 것을 특징으로 하는 장치.
  4. 프로세스를 지원하지 않는 운영체제에서 서버 어플리케이션 및 클라이언트 어플리케이션사이의 소켓 통신을 수행하는 방법에 있어서,
    a)상기 서버 어플리케이션의 제 1 이름을 가지는 서버 소켓 인터페이스의 생성(creat) 명령에 응답하여, 상기 제 1 이름을 가지는 서버 소켓 인터페이스 및 상기 서버 소켓 인터페이스내에 상기 제 1 이름과 동일한 이름을 가지는 서버 메시지 큐를 생성하는 단계; 및
    b)상기 클라이언트 어플리케이션의 상기 서버 소켓 인터페이스로의 접속(connect)명령에 응답하여, 상기 제 1 이름과 연관된 제 2 이름을 가지는 클라이언트 소켓 인터페이스 및 상기 제 2 이름과 동일한 이름을 가지는 클라이언트 메시지 큐를 상기 클라이언트 소켓 인터페이스내에 생성하는 단계; 및
    상기 서버 및 클라이언트 메시지 큐는 상기 서버 어플리케이션과 상기 클라이언트 어플리케이션사이에서 메시지 큐 방식의 통신을 수행하는 것을 특징으로 하는 방법.
  5. 제 1 항에 기재된 방법을 컴퓨터 또는 임베디드 시스템에서 실행시키기 위한 프로그램을 기록한 컴퓨터 또는 임베디드 시스템에서 읽을 수 있는 기록매체.
KR1020040080886A 2004-10-11 2004-10-11 일대일 이름-기반 소켓 통신 수행 장치 및 방법 KR100677141B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040080886A KR100677141B1 (ko) 2004-10-11 2004-10-11 일대일 이름-기반 소켓 통신 수행 장치 및 방법
CNA2005101055214A CN1764187A (zh) 2004-10-11 2005-09-23 用于在操作系统中的应用之间的套接字通信的设备和方法
US11/238,050 US20060080402A1 (en) 2004-10-11 2005-09-29 Apparatus and method for socket communication between applications in operating system that does not support a process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040080886A KR100677141B1 (ko) 2004-10-11 2004-10-11 일대일 이름-기반 소켓 통신 수행 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20060031913A true KR20060031913A (ko) 2006-04-14
KR100677141B1 KR100677141B1 (ko) 2007-02-02

Family

ID=36146685

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040080886A KR100677141B1 (ko) 2004-10-11 2004-10-11 일대일 이름-기반 소켓 통신 수행 장치 및 방법

Country Status (3)

Country Link
US (1) US20060080402A1 (ko)
KR (1) KR100677141B1 (ko)
CN (1) CN1764187A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015041488A1 (ko) * 2013-09-23 2015-03-26 삼성전자 주식회사 기기 별 응용 프로그램간 통신을 위한 장치 및 방법
KR20200071053A (ko) * 2020-06-04 2020-06-18 삼성전자주식회사 기기 별 응용 프로그램간 통신을 위한 장치 및 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8505031B2 (en) * 2008-08-18 2013-08-06 Oracle America, Inc. Method for sharing data
CN102880507A (zh) * 2012-09-12 2013-01-16 科立讯通信股份有限公司 一种链式结构消息申请及分发的方法
US9819507B1 (en) * 2015-05-12 2017-11-14 Mbit Wireless, Inc. Mobile broadband management over plurality of media
US9992649B1 (en) 2016-08-23 2018-06-05 Mbit Wireless, Inc. Mobile broadband management
US9635711B1 (en) * 2016-01-06 2017-04-25 Mbit Wireless, Inc. Mobile broadband management over plurality of operating systems and media

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08180001A (ja) * 1994-04-12 1996-07-12 Mitsubishi Electric Corp 通信方式及び通信方法及びネットワークインタフェース
US6073177A (en) * 1997-08-05 2000-06-06 Sterling Software, Inc. Dynamic method for connecting a client to a server application
KR100258632B1 (ko) * 1998-03-13 2000-06-15 윤종용 클라이언트/서버 시스템의 데이터 전송 장치
US6463078B1 (en) * 1998-07-22 2002-10-08 Microsoft Corporation Method for switching protocols transparently in multi-user applications
KR20020033219A (ko) * 2000-10-30 2002-05-06 구자홍 연결지향 소켓 인터페이스 구현방법
JP2003173263A (ja) 2001-09-25 2003-06-20 Ricoh Co Ltd プロセス間通信機能管理システム
US7240089B2 (en) * 2001-12-10 2007-07-03 International Business Machines Corporation Message queuing method, system, and program product with reusable pooling component

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015041488A1 (ko) * 2013-09-23 2015-03-26 삼성전자 주식회사 기기 별 응용 프로그램간 통신을 위한 장치 및 방법
KR20150033163A (ko) * 2013-09-23 2015-04-01 삼성전자주식회사 기기 별 응용 프로그램간 통신을 위한 장치 및 방법
US9720745B2 (en) 2013-09-23 2017-08-01 Samsung Electronics Co., Ltd. Method and apparatus for device-specific communication between application programs
US10592301B2 (en) 2013-09-23 2020-03-17 Samsung Electronics Co., Ltd. Method and apparatus for device-specific communication between application programs
US10592303B2 (en) 2013-09-23 2020-03-17 Samsung Electronics Co., Ltd. Method and apparatus for device-specific communication between application programs
KR20200071053A (ko) * 2020-06-04 2020-06-18 삼성전자주식회사 기기 별 응용 프로그램간 통신을 위한 장치 및 방법

Also Published As

Publication number Publication date
KR100677141B1 (ko) 2007-02-02
CN1764187A (zh) 2006-04-26
US20060080402A1 (en) 2006-04-13

Similar Documents

Publication Publication Date Title
CN107957831B (zh) 一种展示界面内容的数据处理方法、装置和处理设备
US7406674B1 (en) Method and apparatus for generating microcontroller configuration information
CA2511926C (en) System and method of creating and communicating with component based wireless applications
US7900214B2 (en) System and method for adaptable provisioning of generic application content
US7174361B1 (en) Scripting task-level user-interfaces
CN109445783B (zh) 由服务驱动的动态配置应用的构建方法及装置
US20050192984A1 (en) System and method for building mixed mode execution environment for component applications
KR100954007B1 (ko) Gui 어플리케이션 개발 지원 장치, gui 어플리케이션 프로그램 생성 방법 및 컴퓨터 판독가능 기록매체
US20020156880A1 (en) Network device managing apparatus, program, information storage medium, and network device managing method
JP2015501029A (ja) ウェブページのカスタム最適化
WO2003083688A1 (en) Mobile download system
JP2005346722A (ja) フォームタイプを使用してフォームを生成する方法および装置
JP2006501567A (ja) ユーザインタフェース要素をアプリケーションおよびユーザに知らせるためのシステムおよび方法
GB2424546A (en) Scheduling transfer of data content to a mobile telephone
KR20080021081A (ko) Xml 표현에서 z-order 엘리먼트들의 정밀립 제어
US11327724B2 (en) System and method that support application software development
JP2004102498A (ja) Guiアプリケーション開発支援装置、gui表示装置、および方法、並びにコンピュータ・プログラム
CN109614135A (zh) 经由通信接口提取操作系统特定的特性
US20060080402A1 (en) Apparatus and method for socket communication between applications in operating system that does not support a process
CN110333859B (zh) 页面创建方法、装置、电子设备和计算机可读存储介质
US6636964B1 (en) Method and apparatus for loading an object-oriented operating system by providing an initial execution environment and migrating to a core execution environment thereafter
Ballesteros et al. Plan B: Using files instead of middleware abstractions
CN113835846B (zh) k8s集群的创建方法、装置及计算机可读存储介质
US20180300160A1 (en) Host and Component Relationship between Applications
CN114201253B (zh) 标签页调用方法、装置、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee