KR100929852B1 - 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간통신 인터페이스 장치 및 그 방법 - Google Patents

공유 메모리를 이용한 가상 기계 상의 응용프로그램 간통신 인터페이스 장치 및 그 방법 Download PDF

Info

Publication number
KR100929852B1
KR100929852B1 KR1020070095770A KR20070095770A KR100929852B1 KR 100929852 B1 KR100929852 B1 KR 100929852B1 KR 1020070095770 A KR1020070095770 A KR 1020070095770A KR 20070095770 A KR20070095770 A KR 20070095770A KR 100929852 B1 KR100929852 B1 KR 100929852B1
Authority
KR
South Korea
Prior art keywords
socket
shared memory
request
virtual machine
connection
Prior art date
Application number
KR1020070095770A
Other languages
English (en)
Other versions
KR20090030451A (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 KR1020070095770A priority Critical patent/KR100929852B1/ko
Priority to US12/099,949 priority patent/US20090083756A1/en
Publication of KR20090030451A publication Critical patent/KR20090030451A/ko
Application granted granted Critical
Publication of KR100929852B1 publication Critical patent/KR100929852B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치 및 그 방법에 관한 것으로, 가상 기계 상의 응용프로그램 간 소켓 요청을 송수신 데이터 요청과 제어 요청으로 구분한 후, 송수신 데이터 요청에 대해서는 종래의 소켓 인터페이스를 우회하여 가상 기계 간에 공유하는 공유 메모리를 이용하여 데이터를 처리함으로써, 종래의 소켓 인터페이스에 의해 발생되는 오버헤드를 줄여 가상 기계 상의 응용프로그램 간 통신 성능을 향상시키기 위한, 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치 및 그 방법을 제공하고자 한다.
이를 위하여, 본 발명은 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치에 있어서, 제1 가상 기계 상의 제1 소켓 응용프로그램으로부터 소켓 인터페이스를 통해 전달된 소켓 요청 정보의 유형을 확인하고 상기 확인된 정보 유형에 따라 분기하기 위한 요청 분기 수단, 상기 요청 분기 수단에 의해 분기된 제어 요청용 소켓 요청 정보에 따라 제2 가상 기계 상의 제2 소켓 응용프로그램과의 TCP(Transmission Control Protocol) 소켓 연결을 설정하기 위한 TCP 소켓 연결 수단, 및 상기 설정된 TCP 소켓 연결을 통해 공유 메모리 연결을 설정하고, 상기 요청 분기 수단에 의해 분기된 데이터 송수신용 소켓 요청 정보에 따라, 상기 설정된 공유 메모리 연결을 통해 상기 제2 소켓 응용프로그램과의 데이터 송수신을 수행하기 위한 공유 메모리 연결 수단을 포함한다.
공유 메모리, 가상 기계, 통신 인터페이스, 소켓 인터페이스, 소켓 요청 정보, 요청 분기, 소켓 응용프로그램, TCP 소켓 연결, 공유 메모리 연결

Description

공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치 및 그 방법{APPARATUS AND METHOD FOR TELECOMMUNICATION INTERFACE BETEWEEN APPLICATION PROGRAM ON VIRTUAL MACHINE USING SHARING MEMORY}
본 발명은 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 가상 기계 상의 응용프로그램 간 소켓 요청을 송수신 데이터 요청과 제어 요청으로 구분한 후, 송수신 데이터 요청에 대해서는 종래의 소켓 인터페이스를 우회하여 가상 기계 간에 공유하는 공유 메모리를 이용하여 데이터를 처리함으로써, 종래의 소켓 인터페이스에 의해 발생되는 오버헤드를 줄여 가상 기계 상의 응용프로그램 간 통신 성능을 향상시키기 위한, 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치 및 그 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2005-S-119-02, 과제명: 공개 S/W 핵심기술개발].
최근에, 가상 기계 기술이 확산되면서 서버에 가상 기계를 도입하는 사례가 늘어나고 있다. 하나의 실제 기계에 여러 개의 가상 기계를 설치하고 각 가상 기계에 독립적인 운영체제를 설치한다. 각 운영체제상에 필요한 응용프로그램을 설치하여 서비스를 제공한다. 이처럼, 여러 가상 기계가 동일한 기계에서 실행되는 환경에서, 가상 기계의 소켓 응용프로그램이 다른 가상 기계의 응용프로그램과 소켓 인터페이스를 통하여 통신하는 데이터량도 증가하고 있다.
한편, 가상 기계(Virtual Machine)의 응용프로그램(Application)이 다른 가상 기계의 응용프로그램과 통신하기 위해서는 통신 인터페이스가 필요하다. 예를 들어, 대표적인 통신 인터페이스로는 전통적으로 버클리 소재 캘리포니아 대학에서 개발한 소켓 인터페이스(Socket Interface)가 널리 사용되어 왔다. 이러한 소켓 인터페이스를 도 1을 참조하여 살펴보기로 한다.
도 1 은 종래의 소켓 통신을 위한 소프트웨어 계층에 대한 구조도이다.
도 1 은 가상 기계의 소켓 응용프로그램에서 소켓 인터페이스를 사용할 때 일반적으로 각 가상 기계 상에서 통신 패킷이 거쳐야 하는 소프트웨어 계층을 나타낸다. 소켓 인터페이스는 응용프로그램에 라이브러리 형태로 연결되어 있다.
도 1에 도시된 바와 같이, 종래의 소켓 통신을 위한 소프트웨어 계층은 제1 소켓 응용프로그램(110)에 대한 소켓 인터페이스부(120)와 네트워크 인터페이스 카드(130)를 포함한다. 또한, 다른 제2 소켓 응용프로그램(150)에 대한 소프트웨어 계층도 소켓 인터페이스부(160)와 네트워크 인터페이스 카드(170)를 포함한다. 여 기서, 소켓 인터페이스부(120, 160)는 각각 라이브러리 계층(121, 161), 시스템 호출 계층(122, 162), VFS 계층(123, 163), 커널 소켓 계층(124, 164), TCP(Transmission Control Protocol) 계층(125, 165), IP 계층(126, 166)을 포함한다.
종래의 소켓 통신을 위한 소프트웨어 계층의 동작을 살펴보면, 제1 소켓 응용프로그램(110)은 라이브러리(Library) 계층(121)의 소켓 인터페이스를 이용하여 데이터 전송 함수를 호출한다. 그러면, 데이터 전송 함수에 관한 데이터는 운영체제 커널 내부의 시스템 호출 계층(BSD 계층)(122), 커널 소켓 계층(INET 계층)(124), TCP 계층(125), IP 계층(126), 네트워크 인터페이스 카드 드라이버(127)를 거쳐서 네트워크 인터페이스 카드(NIC)(130)에 전달된다.
그리고 가상 기계 상의 다른 제2 소켓 응용프로그램(150)과 연관된 네트워크 인터페이스 카드(170)에서는 네트워크를 통해 네트워크 인터페이스 카드(130)로부터 전달된 데이터를 수신한다. 이후, 제1 소켓 응용프로그램(110) 측에서 수행한 절차의 역방향으로 데이터가 처리되어 제2 소켓 응용프로그램(150)에 전달된다.
이처럼, 제1 소켓 응용프로그램(110)에서 제2 응용프로그램(150)으로 데이터를 전달하기 위해서는, 여러 단계의 계층을 거친 후에 다른 가상 기계에 있는 제2 소켓 응용프로그램(150)으로 데이터를 전송할 수 있게 된다. 이때, 데이터가 통과되는 TCP 계층(165)과 IP 계층(166)에 관한 TCP/IP 프로토콜은 WAN(Wide Area Network) 환경을 위해서 고안된 것이다. 이러한 TCP/IP 프로토콜은 통신 양단 간의 신뢰성 있는 패킷 송수신을 위한 다수의 기능을 포함하고 있다. 하지만, TCP/IP 프 로토콜이 이러한 기능을 실행하기 위해서는 데이터 처리량이 증가하게 되거나 복잡한 데이터의 처리를 위한 CPU 사용량이 증가하게 된다.
도 2 는 종래의 서로 다른 가상 기계 상의 응용프로그램 간 통신 구조에 대한 설명도이다.
도 2에 도시된 바와 같이, 하나의 하드웨어 상에 도메인 0(210), 웹 서버(220), 응용 서버(230), 및 데이터베이스 서버(240)와 같은 응용프로그램이 있다. 각 응용프로그램(210, 220, 230, 240)은 각각 제1 가상 기계(211), 제2 가상 기계(221), 제3 가상 기계(231), 및 제4 가상 기계(241)와 연관되어 있으며, 동일한 하드웨어(200) 상에서 운영된다.
여기서, 도메인 0(210)은 전체 디바이스를 관장하는 운영체제 기능을 수행한다고 가정하고, 응용 서버(230)가 데이터베이스 서버(240)와 통신하고자 한다면, 응용 서버(230)의 통신 패킷은 제3 가상 기계(231) 상의 커널 프로토콜 스택(도면에 도시되지 않음.), 제1 가상 기계(211) 상의 스위치 모듈(201), 제4 가상 기계(241) 상의 커널 프로토콜 스택(도면에 도시되지 않음.)을 반드시 거쳐야 한다. 이처럼, 종래의 가상 기계 상에서는 동일한 하드웨어에서 서로 다른 가상 기계 상의 응용프로그램 간의 소켓 통신을 지원하지 않고 있다.
따라서 상기와 같은 종래의 가상 기계 상의 응용프로그램 간의 통신 인터페 이스 기술은 가상 기계 상의 응용프로그램 간 소켓 통신이 비효율적으로 이루어진다는 문제점이 있다. 즉, 종래의 기술은 서로 독립된 가상 기계 상의 응용프로그램 간의 통신에 이용되는 TCP/IP(Transmission Control Protocol/Internet Protocol) 계층과 스위칭 모듈을 통해 소켓 통신을 수행하므로 불필요한 데이터 처리량 및 처리 시간이 증가하게 된다는 문제점이 있으며, 이러한 문제점을 해결하고자 하는 것이 본 발명의 과제이다.
따라서 본 발명은 가상 기계 상의 응용프로그램 간 소켓 요청을 송수신 데이터 요청과 제어 요청으로 구분한 후, 송수신 데이터 요청에 대해서는 종래의 소켓 인터페이스를 우회하여 가상 기계 간에 공유하는 공유 메모리를 이용하여 데이터를 처리함으로써, 종래의 소켓 인터페이스에 의해 발생되는 오버헤드를 줄여 가상 기계 상의 응용프로그램 간 통신 성능을 향상시키기 위한, 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 발명은 상기 문제점을 해결하기 위하여, 가상 기계 상의 응용프로그램 간 소켓 요청을 송수신 데이터 요청과 제어 요청으로 구분한 후, 송수신 데이터 요청은 종래의 소켓 인터페이스를 우회하여 가상 기계 간에 공유하는 공유 메모리를 이용하여 데이터 처리하는 것을 특징으로 한다.
더욱 구체적으로, 본 발명은, 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치에 있어서, 제1 가상 기계 상의 제1 소켓 응용프로그램으로부터 소켓 인터페이스를 통해 전달된 소켓 요청 정보의 유형을 확인하고 상기 확인된 정보 유형에 따라 분기하기 위한 요청 분기 수단, 상기 요청 분기 수단에 의해 분기된 제어 요청용 소켓 요청 정보에 따라 제2 가상 기계 상의 제2 소켓 응용프로그램과의 TCP(Transmission Control Protocol) 소켓 연결을 설정하기 위한 TCP 소켓 연결 수단, 및 상기 설정된 TCP 소켓 연결을 통해 공유 메모리 연결을 설정하고, 상기 요청 분기 수단에 의해 분기된 데이터 송수신용 소켓 요청 정보에 따라, 상기 설정된 공유 메모리 연결을 통해 상기 제2 소켓 응용프로그램과의 데이터 송수신을 수행하기 위한 공유 메모리 연결 수단을 포함한다.
또한, 본 발명은, 가상 기계 상의 응용프로그램 간 통신 인터페이스 방법에 있어서, 제1 가상 기계 상의 제1 소켓 응용프로그램으로부터 소켓 인터페이스를 통해 전달된 소켓 요청 정보의 유형을 확인하고 상기 확인된 정보 유형에 따라 분기하는 요청 분기 단계, 상기 분기된 제어 요청용 소켓 요청 정보에 따라 제2 가상 기계 상의 제2 소켓 응용프로그램과의 TCP 소켓 연결을 설정하는 소켓 연결 단계, 상기 설정된 TCP 소켓 연결을 통해 공유 메모리 연결을 설정하는 공유 메모리 연결 단계, 및 상기 분기된 데이터 송수신용 소켓 요청 정보에 따라, 상기 설정된 공유 메모리 연결을 통해 상기 제2 소켓 응용프로그램과의 데이터 송수신을 수행하는 데이터 송수신 단계를 포함한다.
상기와 같은 본 발명은, 데이터 전송 시에 TCP/IP와 같은 프로토콜 처리 과정과 스위칭 모듈을 우회하여 공유 메모리에 데이터를 직접 쓰고 읽기 때문에 통신 성능을 향상시킬 수 있는 효과가 있다. 이러한 통신 성능 향상은 대역폭 증가와 데이터 전송 지연 시간의 축소로 나타난다.
또한, 본 발명은, 종래의 시스템 호출 계층을 수정하지 않고, 통신 프로토콜에서 데이터 전송 부분만 공유 메모리를 이용하여 처리함으로써, 구현이 간단하고 완전한 바이너리 소켓 호환성을 제공하기 쉽다는 효과가 있다.
또한, 본 발명은, 응용 프로그램이 통신 상대편이 내부 가상 기계인지 외부 가상 기계인지 구분하지 않고 종래의 소켓 응용프로그램 인터페이스를 그대로 사용하여 통신함으로써, 표준화된 인터페이스를 제공할 수 있는 효과가 있다. 데이터가 전송될 때, 분기 계층에서는 상대 분기 계층의 위치를 파악하여 적절한 함수가 자동으로 선택된다.
또한, 본 발명은, 이미 작성된 소켓 프로그램을 전혀 수정하지 않고 통신 처리 스택의 하부에 구현되기 때문에, 실행 파일 그대로 사용할 수 있으며 응용 프로그램뿐만 아니라 커널 내의 소켓을 사용하는 모듈도 수정하지 않고 공유 메모리 통 신을 사용할 수 있는 효과가 있다.
또한, 본 발명은, 공유 메모리 구동기 계층만 변경하면 고성능 네트워크 인터페이스(예를 들면, 'TOE', 'Infiniband', 'Myrinet' 등)상에서 소켓 API를 쉽게 지원할 수 있는 효과가 있다.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되어 있는 상세한 설명을 통하여 보다 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
도 3 은 본 발명이 적용되는 응용프로그램 간의 공유 메모리를 이용한 통신 인터페이스 방식에 대한 일실시예 설명도이다.
일예로, 제1 소켓 응용프로그램(311)과 제2 소켓 응용프로그램(321) 간의 공유 메모리(30)를 이용한 통신 인터페이스 장치를 도 3을 참조하여 살펴보면 다음과 같다.
도 3에 도시된 바와 같이, 제1 소켓 응용프로그램(311)은 제1 TCP/IP 계층(312), 및 제1 가상 기계(313)와 연결되어 있고, 제2 소켓 응용프로그램(321)은 제2 TCP/IP 계층(322), 및 제2 가상 기계(323)와 연결되어 있다. 또한, 제1 소켓 응용프로그램(311)과 제2 소켓 응용프로그램(321)은 공통적인 하드웨어(300) 상에서 동작된다.
이처럼, 하나의 하드웨어(300)를 기반으로 서로 다른 제1 및 제2 가상 기계(313, 323)가 있다. 도 3에 도시된 바와 같이, 제1 소켓 응용프로그램(311)과 제2 소켓 응용프로그램(321)은 공유 메모리(30)를 이용하여 통신을 수행한다. 이는 제1 TCP/IP 계층(312)과 제2 TCP/IP 계층(322)을 통하지 않고 통신을 수행하기 위함이다.
각 소프트웨어 구조를 기반으로 각 소켓 요청을 처리하는 과정을 살펴보면, 우선 제1 소켓 응용프로그램(311)은 연결함수를 호출하여, 제1 TCP/IP 계층(312), 제1 가상 기계(313), 제2 가상 기계(323), 및 제2 TCP/IP 계층(322)을 통해 제2 소켓 응용프로그램(321)과 TCP/IP 소켓 연결을 생성한다. 그리고 제1 소켓 응용프로그램(311)은 TCP/IP 소켓 연결을 통해 공유 메모리(30)를 이용한 공유 메모리 연결을 생성한다.
이후, 제1 소켓 응용프로그램(311)은 제1 TCP/IP 계층(312)과 제2 TCP/IP 계층(322)을 거치지 않고 공유 메모리(30)를 이용한 공유 메모리 연결을 통해 제2 소켓 응용프로그램(321)과 데이터를 전송하거나 전송받는다. 즉, 제1 소켓 응용프로그램(311)은 공유 메모리(30)에 데이터를 기록한다. 그러면, 공유 메모리(30)에 데이터가 기록되었다는 이벤트가 제2 소켓 응용프로그램(321)으로 전달되고 제2 소켓 응용프로그램(321)은 공유 메모리(30)에 기록된 데이터를 읽어온다. 이러한 공유 메모리를 이용한 데이터 전송 과정은 공유 메모리의 용량이나 접근 방법에 따라 다르게 수행될 수 있다.
도 4 는 본 발명에 따른 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치의 일실시예 구성도이다.
도 4에 도시된 바와 같이, 본 발명에 따른 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치는, 소켓 인터페이스(410), 요청 분기부(420), TCP 소켓 연결부(430), 및 공유 메모리 연결부(440)를 포함한다.
여기서, 상기 소켓 인터페이스(410)는 라이브러리 계층(411), 시스템 호출 계층(BSD 소켓)(412), VFS 계층(413), 및 커널 소켓 계층(INET 계층)(414)을 포함한다.
또한, 상기 TCP 소켓 연결부(430)는 TCP 계층(431), IP 계층(432), UDP 계층(433), UNIX 계층(434), X25 계층(435), 및 네트워크 디바이스 드라이버(436)를 포함한다. 또한, 공유 메모리 연결부(440)는 소켓 데이터 처리부(441), 공유 메모리 구동기(442)를 포함한다.
이하, 본 발명에 따른 통신 인터페이스 장치의 구성요소 각각에 대하여 상세히 살펴보면 다음과 같다.
소켓 응용프로그램(400)이 소켓 API를 호출하면 대응되는 소켓 인터페이스(410)의 라이브러리 계층(411)과 시스템 호출 계층(412)에서 소켓 함수가 호출된다. 그 다음 호출하는 함수는 소켓에 지정된 프로토콜에 따라 다를 수 있다. 예를 들면, 소켓에 지정된 프로토콜이 커널 소켓 계층(PF_INET)(414)의 'STREAM_SOCK'이 면 공유 메모리 통신에 관련된 함수를 호출하고, 그렇지 않으면 기존의 지정된 프로토콜 처리 함수를 호출한다. 여기서, 시스템 호출 계층(412)과 커널 소켓 계층(414)은 종래와 동일한 구조로 이용된다. 이는 구현이 쉬울 뿐만 아니라 소켓 호환성을 쉽게 제공하기 위함이다.
요청 분기부(420)는 가상 기계 상의 소켓 응용프로그램(400)으로부터 소켓 인터페이스(410)를 통해 전달된 소켓 요청 정보의 유형을 확인하고 확인된 정보 유형에 따라 TCP 소켓 연결부(430) 또는 공유 메모리 연결부(440)로 분기한다. 요청 분기부(420)는 소켓 요청 정보를 데이터 송수신용 소켓 요청 정보와 소켓 제어용 소켓 요청 정보 중 어느 하나의 요청 정보로 구분하여 각 요청에 맞게 분기한다. 만약, 요청 분기부(420)는 다른 하드웨어 상의 상대 가상 기계와 연결하는 경우, TCP/IP 소켓만 생성하고 공유 메모리 연결은 생성하지 않는다. 여기서, 소켓 응용프로그램(400)은 연결된 TCP 소켓 연결 및 공유 메모리 연결을 하나의 소켓 연결로 간주한다.
이때, 데이터 송수신용 소켓 요청 정보는 공유 메모리 연결부(440)로, 소켓 제어용 소켓 요청 정보는 TCP 소켓 연결부(430)로 분기된다. 예를 들어, 데이터 송수신용 소켓 요청 정보는 'send', 및 'recv' 소켓 함수와 관련된 모든 요청을 의미하고, 소켓 제어용 소켓 요청 정보는 연결(connect), 수락(accept), 수신(listen), (bind), 닫음(close), 선택(select), 등록(poll), 정지(shutdown), 'setsocktop', 및 'getsockopt' 등 소켓 제어에 관한 요청 정보로서 실제 데이터 송수신과 관련이 없는 요청 정보를 의미한다.
TCP 소켓 연결부(430)는 요청 분기부(420)에서 분기된 제어 요청용 소켓 요청 정보에 따라 즉, TCP/IP 프로토콜에 따라 다른 가상 기계 상의 소켓 응용프로그램과의 TCP 소켓 연결을 설정한다.
예를 들면, TCP 소켓 연결부(430)는 요청 분기부(420)에서 분기된 소켓 제어 정보 중 연결 요청 정보에 따라, 상대 가상 기계 상의 소켓 응용 프로그램과 TCP 소켓 연결을 요청한다. 그러면, 다른 가상 기계 상의 소켓 연결부는 연결 요청 정보를 처리하여 TCP 소켓 연결을 설정한 후, 그 TCP 소켓 연결과 연관된 공유 메모리 연결을 검색한다. 만약, 연결을 요청한 상대 소켓 응용 프로그램(400)이 다른 가상 기계 상의 소켓 응용프로그램이면 연관된 공유 메모리 연결이 없으므로 TCP 소켓 연결만 생성한다. 이러한 연결 요청 정보에 대한 수락을 통해 소켓 연결이 완성된다.
TCP 소켓 연결부(430)에서 TCP 소켓 연결이 설정된 후, 공유 메모리 연결부(440)는 다른 가상 기계 상의 소켓 응용 프로그램과 공유 메모리 연결을 설정한다. 예를 들면, 공유 메모리 연결부(440)는 요청 분기부(420)에서 분기된 소켓 요청 정보 중 연결 요청 정보에 따라 다른 가상 기계 상의 소켓 응용 프로그램과 공유 메모리 연결을 설정한다.
공유 메모리 연결부(440)를 상세하게 살펴보면, 소켓 데이터 처리부(441)는 설정된 TCP 소켓 연결을 통해 공유 메모리 연결을 설정하고, 요청 분기부(420)에 의해 분기된 데이터 송수신용 소켓 요청 정보에 따라 공유 메모리 구동기(442)의 송수신 데이터의 읽기/쓰기를 제어한다. 즉, 소켓 데이터 처리부(441)는 공유 메모 리 구동기(442)를 제어하여 데이터를 송수신하는 기능을 수행한다. 소켓 데이터 처리부(441)는 데이터 송수신 요청 시에 지정하는 여러 가지 선택 사항(socket option)을 소켓 요청의 의미에 맞도록 처리한다. 여기서, 선택 사항은 비동기 IO, 블록 IO, 넌블록 IO, MSG_PEEK 등이 있다.
한편, 공유 메모리 연결부(440)는 공유 메모리에 기록할 공간이 없으면, 소켓 선택 사항에 따라 다르게 처리될 수 있다. 예를 들면, 공유 메모리 연결부(440)는 소켓 선택 사항이 넌블록킹(nonblocking)이면 데이터 전송을 포기하고 전송에러정보를 소켓 응용프로그램(400)에 알려준다. 공유 메모리 연결부(440)는 선택 사항이 블록킹(blocking)이면 데이터를 기록할 공간이 생길 때까지 기다렸다가 데이터를 기록한다. 공유 메모리 연결부(440)는 그 외에 선택 사항에 따라 서로 다르게 수행될 수 있다.
반면에, 공유 메모리 연결부(440)는 공유 메모리에 꺼낼 데이터가 없으면 소켓 선택 사항에 따라 다르게 처리될 수 있다. 예를 들면, 공유 메모리 연결부(440)는 선택 사항이 넌블록킹(nonblocking)이면 데이터 꺼내기를 포기하고 읽기에러정보를 소켓 응용프로그램(400)에 돌려준다. 공유 메모리 연결부(440)는 선택 사항이 블록킹(blocking)이면 데이터가 있을 때까지 기다렸다가 데이터를 꺼낸다. 공유 메모리 연결부(440)는 그 외에 선택 사항에 따라 다르게 수행될 수 있다.
공유 메모리 구동기(442)는 소켓 데이터 처리부(441)의 제어에 따라 송수신 데이터를 공유 메모리에 기록하거나 가져온다. 즉, 공유 메모리 구동기(442)는 공유 메모리 통신을 위한 공유 메모리를 할당하고, 소켓 데이터 처리부(441)로부터 전달받은 데이터를 공유 메모리에 기록한다. 이는 상대 가상 기계 상의 공유 메모리 연결부(도면에 도시되지 않음.)가 기록된 데이터를 읽을 수 있도록 한다.
또한, 공유 메모리 구동기(442)는 공유 메모리에 데이터를 기록하거나 꺼내면, 상대 공유 메모리 구동기에 이벤트 신호를 전송한다. 이는 상대 공유 메모리 구동기에 공유 메모리 데이터에 변화가 발생했다는 사실을 알리기 위함이다. 반면에, 상대 공유 메모리 구동기(도면에 도시되지 않음.)로부터 이벤트 신호가 전송되면 공유 메모리로부터 데이터를 가져온다.
도 5 는 본 발명에 이용되는 소켓 간의 TCP 소켓 연결 및 공유 메모리 연결에 대한 일실시예 설명도이다.
도 5에 도시된 바와 같이, 하나의 소켓 통신을 위해서 동시에 두 개의 통신 연결(501, 502)이 서로 다른 소켓(51, 52) 간에 연결된다. 즉, 데이터 송수신 처리를 위한 공유 메모리 연결(502)과 제어 요청을 전달하기 위한 TCP 소켓 연결(501)은 동시에 서로 다른 소켓(51, 52) 간에 유지된다.
여기서, 본 발명에 따른 통신 인터페이스 장치는 제어 요청을 위한 연결은 종래의 TCP 소켓 연결(501)을 이용하고, 데이터 송수신을 위한 연결은 공유 메모리를 통한 공유 메모리 연결(502)을 이용한다. 이는 데이터 송수신 요청과 제어 요청을 분리하여 처리하기 때문에, 데이터 전송 속도를 높이면서 공유 메모리 통신을 간단하게 구현하기 위함이다.
도 6 은 본 발명에 따른 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 방법에 대한 일실시예 흐름도이다.
먼저, 소켓 응용프로그램(400)으로부터 소켓 인터페이부(410)를 통해 호출된 소켓 요청에 따라, 요청 분기부(420)는 호출된 소켓 요청 정보의 유형을 확인하고 확인된 정보 유형에 따라 분기한다(602).
그리고 TCP 소켓 연결부(430)는 요청 분기부(420)에 의해 분기된 제어 요청용 소켓 요청 정보에 따라, 상대 가상 기계 상의 소켓 응용프로그램과의 TCP 소켓 연결을 설정한다(604). 반대로, TCP 소켓 연결부(430)는 상대 TCP 소켓 연결부의 연결 요청에 대해 응답하고, 그 TCP 소켓 연결과 관련된 공유 메모리 연결을 검색한다.
그리고 공유 메모리 연결부(440)는 설정된 TCP 소켓 연결을 통해 공유 메모리 연결을 설정한다(606). 공유 메모리 연결부(440)는 상대 TCP 소켓 연결부가 다른 기계 상에 있으면, TCP 소켓 연결만 생성하고 공유 메모리 연결은 생성하지 않는다.
이어서, 공유 메모리 연결부(440)는 요청 분기부(420)에 의해 분기된 데이터 송수신용 소켓 요청 정보에 따라 설정된 공유 메모리 연결을 통해 다른 가상 기계 상의 소켓 응용프로그램과의 데이터 송수신을 수행한다(608). 공유 메모리에 데이터가 기록되면, 상대 공유 메모리 연결부가 이벤트 신호를 받고 데이터를 읽을 수 있다. 여기서, 공유 메모리 연결부(440)는 공유 메모리 연결에 대해서 데이터와 관련된 등록 이벤트(poll event)만 수집하여 소켓 응용프로그램(400)에 전달한다. 또한, TCP 소켓 연결부(430)는 TCP 소켓 연결에 대해서 관련된 제어와 관련된 등록 이벤트(poll event)만 수집하여 소켓 응용프로그램(400)에 전달한다.
한편, 공유 메모리에 기록할 공간이 없으면, 소켓 선택 사항에 따라 다르게 처리될 수 있다. 예를 들면, 공유 메모리 연결부(440)는 선택 사항이 넌블록킹(nonblocking)이면 데이터 전송을 포기하고 전송에러정보를 소켓 응용프로그램(400)에 알려준다. 공유 메모리 연결부(440)는 선택 사항이 블록킹(blocking)이면 데이터를 기록할 공간이 생길 때까지 기다렸다가 데이터를 기록한다. 공유 메모리 연결부(440)는 그 외에 선택 사항에 따라 수행될 수 있다.
그리고 공유 메모리 연결부(440)는 이벤트 신호가 전송되면 공유 메모리 구동기(442)를 제어하여 데이터를 공유 메모리에서 읽는다. 공유 메모리 연결부(440)가 공유 메모리에서 데이터를 꺼내면 상대 공유 메모리 연결부가 이벤트 신호를 받고 추가로 데이터를 쓸 수 있다.
한편, 공유 메모리 연결부(440)는 공유 메모리에 꺼낼 데이터가 없으면 소켓 선택 사항에 따라 다르게 처리될 수 있다. 예를 들면, 공유 메모리 연결부(440)는 선택 사항이 넌블록킹(nonblocking)이면 데이터 꺼내기를 포기하고 읽기에러정보를 소켓 응용프로그램(400)에 돌려준다. 공유 메모리 연결부(440)는 선택 사항이 블록킹(blocking)이면 데이터가 있을 때까지 기다렸다가 데이터를 꺼낸다. 공유 메모리 연결부(440)는 그 외에 선택 사항에 따라 수행될 수 있다.
한편, 전술한 바와 같은 본 발명의 방법은 컴퓨터 프로그램으로 작성이 가능하다. 그리고 상기 프로그램을 구성하는 코드 및 코드 세그먼트는 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 작성된 프로그램은 컴퓨터가 읽을 수 있는 기록매체(정보저장매체)에 저장되고, 컴퓨터에 의하여 판독되고 실행됨으로써 본 발명의 방법을 구현한다. 그리고 상기 기록매체는 컴퓨터가 판독할 수 있는 모든 형태의 기록매체를 포함한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
도 1 은 종래의 소켓 통신을 위한 소프트웨어 계층에 대한 구조도,
도 2 는 종래의 서로 다른 가상 기계 상의 응용프로그램 간 통신 구조에 대한 설명도,
도 3 은 본 발명이 적용되는 응용프로그램 간의 공유 메모리를 이용한 통신 인터페이스 방식에 대한 일실시예 설명도,
도 4 는 본 발명에 따른 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치의 일실시예 구성도,
도 5 는 본 발명에 이용되는 소켓 간의 TCP 소켓 연결 및 공유 메모리 연결에 대한 일실시예 설명도,
도 6 은 본 발명에 따른 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 방법에 대한 일실시예 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명
410: 소켓 인터페이스 420: 요청 분기부
430: TCP 소켓 연결부 440: 공유 메모리 연결부

Claims (10)

  1. 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치에 있어서,
    제1 가상 기계 상의 제1 소켓 응용프로그램으로부터 소켓 인터페이스를 통해 전달된 소켓 요청 정보의 유형을 확인하고 상기 확인된 정보 유형에 따라 분기하기 위한 요청 분기 수단;
    상기 확인 정보 유형이 제어 요청용 소켓 이면, 상기 요청 분기 수단에 의해 분기된 제어 요청용 소켓 요청 정보에 따라 제2 가상 기계 상의 제2 소켓 응용프로그램과의 TCP(Transmission Control Protocol) 소켓 연결을 설정하기 위한 TCP 소켓 연결 수단; 및
    상기 설정된 TCP 소켓 연결을 통해 공유 메모리 연결을 설정하고, 상기 확인 정보 유형이 데이터 송수신용 소켓 요청이면, 상기 요청 분기 수단에 의해 분기된 데이터 송수신용 소켓 요청 정보에 따라, 상기 설정된 공유 메모리 연결을 통해 상기 제2 소켓 응용프로그램과의 데이터 송수신을 수행하기 위한 공유 메모리 연결 수단
    을 포함하는 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치.
  2. 제 1 항에 있어서,
    상기 요청 분기 수단은,
    상기 소켓 요청 정보의 유형을 제어 요청용 소켓 요청 정보 또는 데이터 송 수신용 소켓 요청 정보 중 어느 하나로 확인하여 분기하는 것을 특징으로 하는 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 공유 메모리 연결 수단은,
    상기 설정된 공유 메모리 연결을 통해 상기 공유 메모리에 송수신 데이터의 읽기/쓰기를 수행하기 위한 공유 메모리 구동 수단; 및
    상기 설정된 TCP 소켓 연결을 통해 공유 메모리 연결을 설정하고, 상기 요청 분기 수단에 의해 분기된 데이터 송수신용 소켓 요청 정보에 따라 상기 공유 메모리 구동 수단의 송수신 데이터의 읽기/쓰기를 제어하기 위한 소켓 데이터 처리 수단
    을 포함하는 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치.
  4. 제 3 항에 있어서,
    상기 공유 메모리 구동 수단은,
    상기 공유 메모리에 송수신 데이터의 읽기/쓰기를 수행한 결과에 대한 이벤트 신호를 상기 제2 소켓 응용프로그램에 전송하는 것을 특징으로 하는 공유 메모 리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치.
  5. 제 3 항에 있어서,
    상기 소켓 데이터 처리 수단은,
    상기 공유 메모리 구동 수단의 송수신 데이터의 읽기/쓰기에 대한 오류 발생 시, 데이터의 읽기/쓰기에 대하여 기설정된 소켓 선택 정보에 따라 상기 발생된 오류를 처리하는 것을 특징으로 하는 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 장치.
  6. 가상 기계 상의 응용프로그램 간 통신 인터페이스 방법에 있어서,
    제1 가상 기계 상의 제1 소켓 응용프로그램으로부터 소켓 인터페이스를 통해 전달된 소켓 요청 정보의 유형을 확인하고 상기 확인된 정보 유형에 따라 분기하는 요청 분기 단계;
    상기 확인 정보 유형이 제어 요청용 소켓 요청이면, 상기 분기된 제어 요청용 소켓 요청 정보에 따라 제2 가상 기계 상의 제2 소켓 응용프로그램과의 TCP 소켓 연결을 설정하는 소켓 연결 단계;
    상기 설정된 TCP 소켓 연결을 통해 공유 메모리 연결을 설정하는 공유 메모리 연결 단계; 및
    상기 확인 정보 유형이 데이터 송수신용 소켓 요청이면, 상기 분기된 데이터 송수신용 소켓 요청 정보에 따라, 상기 설정된 공유 메모리 연결을 통해 상기 제2 소켓 응용프로그램과의 데이터 송수신을 수행하는 데이터 송수신 단계
    를 포함하는 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 방법.
  7. 제 6 항에 있어서,
    상기 요청 분기 단계는,
    상기 소켓 요청 정보의 유형을 제어 요청용 소켓 요청 정보 또는 데이터 송수신용 소켓 요청 정보 중 어느 하나로 확인하여 분기하는 것을 특징으로 하는 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 방법.
  8. 제 6 항 또는 제 7 항에 있어서,
    상기 데이터 송수신 단계는,
    상기 분기된 데이터 송수신용 소켓 요청 정보에 따라 상기 공유 메모리에 송수신 데이터의 읽기/쓰기를 수행하는 것을 특징으로 하는 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 방법.
  9. 제 8 항에 있어서,
    상기 데이터 송수신 단계는,
    상기 공유 메모리에 송수신 데이터의 읽기/쓰기를 수행한 결과에 대한 이벤트 신호를 상기 제2 소켓 응용프로그램에 전송하는 것을 특징으로 하는 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 방법.
  10. 제 8 항에 있어서,
    상기 데이터 송수신 단계는,
    상기 송수신 데이터의 읽기/쓰기에 대한 오류 발생 시, 데이터의 읽기/쓰기에 대하여 기설정된 소켓 선택 정보에 따라 상기 발생된 오류를 처리하는 것을 특징으로 하는 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간 통신 인터페이스 방법.
KR1020070095770A 2007-09-20 2007-09-20 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간통신 인터페이스 장치 및 그 방법 KR100929852B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070095770A KR100929852B1 (ko) 2007-09-20 2007-09-20 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간통신 인터페이스 장치 및 그 방법
US12/099,949 US20090083756A1 (en) 2007-09-20 2008-04-09 Apparatus and method for communication interface between application programs on virtual machines using shared memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070095770A KR100929852B1 (ko) 2007-09-20 2007-09-20 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간통신 인터페이스 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20090030451A KR20090030451A (ko) 2009-03-25
KR100929852B1 true KR100929852B1 (ko) 2009-12-04

Family

ID=40473119

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070095770A KR100929852B1 (ko) 2007-09-20 2007-09-20 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간통신 인터페이스 장치 및 그 방법

Country Status (2)

Country Link
US (1) US20090083756A1 (ko)
KR (1) KR100929852B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501394B2 (en) 2014-06-09 2016-11-22 Electronics And Telecommunications Research Institute Method for sharing reference data among application programs executed by a plurality of virtual machines and reference data management apparatus and system thereof

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8646052B2 (en) * 2008-03-31 2014-02-04 Intel Corporation Method and apparatus for providing a secure display window inside the primary display
US8505031B2 (en) * 2008-08-18 2013-08-06 Oracle America, Inc. Method for sharing data
KR101272612B1 (ko) * 2009-12-01 2013-06-10 한국전자통신연구원 공유 메모리 통신 환경에서의 통신 채널 전환 방법 및 장치
US20120033673A1 (en) * 2010-08-06 2012-02-09 Deepak Goel Systems and methods for a para-vitualized driver in a multi-core virtual packet engine device
US9075643B2 (en) * 2012-01-23 2015-07-07 International Business Machines Corporation Automatically selecting optimal transport protocol in a cloud computing environment
US20140012704A1 (en) 2012-07-05 2014-01-09 Google Inc. Selecting a preferred payment instrument based on a merchant category
US9442778B2 (en) * 2012-10-01 2016-09-13 Salesforce.Com, Inc. Method and system for secured inter-application communication in mobile devices
US9742877B2 (en) 2012-12-04 2017-08-22 International Business Machines Corporation Clustering support across geographical boundaries
US9092767B1 (en) 2013-03-04 2015-07-28 Google Inc. Selecting a preferred payment instrument
CN104219260B (zh) * 2013-05-30 2017-12-12 中国电信股份有限公司 同一物理机内虚拟机间数据交换的方法、系统与物理主机
US9065854B2 (en) * 2013-10-28 2015-06-23 Citrix Systems, Inc. Systems and methods for managing a guest virtual machine executing within a virtualized environment
US9582849B2 (en) * 2013-10-28 2017-02-28 Vmware, Inc. Method and system to virtualize graphic processing services
CN104580124B (zh) * 2013-10-29 2019-04-05 华为技术有限公司 协议栈选择方法、装置及设备
CN103559075B (zh) * 2013-10-30 2016-10-05 华为技术有限公司 一种数据传输方法、装置和系统及内存装置
CN104969533B (zh) * 2013-12-25 2018-11-06 华为技术有限公司 一种数据包处理方法和装置
US9858572B2 (en) 2014-02-06 2018-01-02 Google Llc Dynamic alteration of track data
US20160285970A1 (en) * 2015-03-27 2016-09-29 International Business Machines Corporation Network communication between virtual machine applications via direct memory access
US9992238B2 (en) 2015-11-11 2018-06-05 International Business Machines Corporation Proxy based data transfer utilizing direct memory access
US9977761B2 (en) * 2016-06-09 2018-05-22 International Business Machines Corporation Virtualizing TCP/IP services with shared memory transport
US11188386B2 (en) * 2019-11-01 2021-11-30 Sap Portals Israel Ltd. Lightweight remote process execution
US11645098B2 (en) * 2020-11-17 2023-05-09 Sap Se Systems and methods to pre-provision sockets for serverless functions
KR102465858B1 (ko) * 2020-12-18 2022-11-11 인하대학교 산학협력단 동일 물리 머신에서 공유메모리를 이용한 가상 머신 간 고성능 통신 기법
CN112905295B (zh) * 2021-03-31 2021-10-15 掌阅科技股份有限公司 数据互通方法、计算设备及计算机存储介质
CN113821309B (zh) * 2021-11-16 2022-03-22 科东(广州)软件科技有限公司 一种微内核虚拟机间的通信方法、装置、设备及存储介质
CN115659382A (zh) * 2022-12-28 2023-01-31 北京志翔科技股份有限公司 打印操作的控制方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020062850A (ko) * 2001-01-25 2002-07-31 야후! 인크. 고성능 클라이언트 서버 통신 시스템
KR20030054102A (ko) * 2001-12-24 2003-07-02 한국전자통신연구원 사용자 수준의 소켓 계층과 그를 이용한 통신 인터페이스방법
KR20060064511A (ko) * 2004-12-08 2006-06-13 한국전자통신연구원 Toe기반 소켓 정보의 생성 및 관리를 위한하드웨어 장치및 방법
KR20060067311A (ko) * 2004-12-14 2006-06-20 한국전자통신연구원 응용 프로그램내의 소켓 인터페이스와 toe 사이의연결을 제어하는 커널 수준의 소켓 그리고, 그를 이용한통신 인터페이스 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652885A (en) * 1993-05-25 1997-07-29 Storage Technology Corporation Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control
US20030149797A1 (en) * 2001-11-21 2003-08-07 Sun Microsystems Inc., A California Corporation Fast socket technology implementation using doors and memory maps
US7424710B1 (en) * 2002-12-18 2008-09-09 Vmware, Inc. TCP/IP offloading for virtual machines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020062850A (ko) * 2001-01-25 2002-07-31 야후! 인크. 고성능 클라이언트 서버 통신 시스템
KR20030054102A (ko) * 2001-12-24 2003-07-02 한국전자통신연구원 사용자 수준의 소켓 계층과 그를 이용한 통신 인터페이스방법
KR20060064511A (ko) * 2004-12-08 2006-06-13 한국전자통신연구원 Toe기반 소켓 정보의 생성 및 관리를 위한하드웨어 장치및 방법
KR20060067311A (ko) * 2004-12-14 2006-06-20 한국전자통신연구원 응용 프로그램내의 소켓 인터페이스와 toe 사이의연결을 제어하는 커널 수준의 소켓 그리고, 그를 이용한통신 인터페이스 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501394B2 (en) 2014-06-09 2016-11-22 Electronics And Telecommunications Research Institute Method for sharing reference data among application programs executed by a plurality of virtual machines and reference data management apparatus and system thereof

Also Published As

Publication number Publication date
US20090083756A1 (en) 2009-03-26
KR20090030451A (ko) 2009-03-25

Similar Documents

Publication Publication Date Title
KR100929852B1 (ko) 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간통신 인터페이스 장치 및 그 방법
CN108449282B (zh) 一种负载均衡方法及其装置
US9742671B2 (en) Switching method
US5848234A (en) Object procedure messaging facility
US7117280B2 (en) Network based intra-system communications architecture
US5742607A (en) Method and apparatus for controlling two way communication via disparate physical media
US20050111364A1 (en) Virtual port multiplexing
US11218358B2 (en) Network connection and termination system
JP2004350188A (ja) データ転送装置及びプログラム
CN111327668B (zh) 网络管理方法、装置、设备和存储介质
CN115269213A (zh) 数据接收方法、数据发送方法、装置、电子设备及介质
US20170041402A1 (en) Method for transparently connecting augmented network socket operations
CN103179162B (zh) 一种输出日志的方法及系统
EP1988473B1 (en) A server with a core using a virtual file system and a method for securely redirecting a persistent storage device operation to a middleware infrastructure
US20050144290A1 (en) Arbitrary java logic deployed transparently in a network
CN110022332B (zh) 一种超文本传输安全协议代理方法、装置、设备及介质
US7827194B2 (en) Access to shared disk device on storage area network
EP1198104A2 (en) Method and system for sharing a single communication port between a plurality of servers
JP3628514B2 (ja) 計算機間データ送受信方法
CN115208874A (zh) 一种基于银行核心的多通信协议分布式文件处理平台
JP2007515720A (ja) 異なる実行環境にわたる交換のための方法およびシステム
US8499023B1 (en) Servlet-based grid computing environment using grid engines and switches to manage resources
CN115361337B (zh) 一种基于通信路由和星型网络的通信方法及系统
US20030097489A1 (en) Fast socket technology implementation using semaphores and memory maps
WO1994028486A1 (en) Method of selecting a server object to service a client object request within a network environment

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
FPAY Annual fee payment

Payment date: 20121031

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 18