KR20230059631A - 복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법 - Google Patents

복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR20230059631A
KR20230059631A KR1020210144006A KR20210144006A KR20230059631A KR 20230059631 A KR20230059631 A KR 20230059631A KR 1020210144006 A KR1020210144006 A KR 1020210144006A KR 20210144006 A KR20210144006 A KR 20210144006A KR 20230059631 A KR20230059631 A KR 20230059631A
Authority
KR
South Korea
Prior art keywords
application
memory
shared
data
information
Prior art date
Application number
KR1020210144006A
Other languages
English (en)
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 KR1020210144006A priority Critical patent/KR20230059631A/ko
Priority to PCT/KR2022/014102 priority patent/WO2023075156A1/ko
Publication of KR20230059631A publication Critical patent/KR20230059631A/ko

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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
    • 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/542Event management; Broadcasting; Multicasting; Notifications
    • 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/546Message passing systems or structures, e.g. queues

Abstract

본 개시는 API(application programming interface)를 이용하여, 복수의 애플리케이션들 사이의 데이터 통신을 수행하는 컴퓨팅 장치에 관한 것이다. 본 개시에 따르면, 컴퓨팅 장치는 제1 메모리 함수를 이용하여 공유 메모리로 공유 정보를 송신하는 마스터 애플리케이션이 저장된 제1 애플리케이션 메모리, 제2 메모리 함수를 이용하여 상기 공유 메모리로부터 상기 공유 정보를 수신하는 슬레이브 애플리케이션이 저장된 제2 애플리케이션 메모리, 및 상기 제1 애플리케이션 메모리와 상기 제2 애플리케이션 메모리 사이에 연결되고, 상기 마스터 애플리케이션과 상기 슬레이브 애플리케이션 사이에서 상기 공유 정보를 전달하는 상기 공유 메모리를 포함한다.

Description

복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법{APPARATUS AND METHOD FOR PERFORMING DATA COMMUNICATION BETWEEN A PLURALITY OF APPLICATIONS}
본 개시(disclosure)는 일반적으로 API(application programming interface)를 이용하여 애플리케이션들 사이에서 데이터 통신을 수행하는 방법에 관한 것으로, 보다 구체적으로 본 개시는 공유 메모리를 이용하여 애플리케이션들 간 데이터를 공유하기 위한 장치 및 방법에 관한 것이다.
임베디드(embedded) 장치는 특정 목적을 수행하기 위하여 만들어진 프로그래밍 가능한 장치를 지시한다. 임베디드 장치의 일 예로서, 네트워크 카메라는 인터넷에 연결되어 서버나, 화상을 표시하는 장치에 영상 데이터를 송신하는 기능을 구비하는 카메라를 지시한다. 즉, 네트워크 카메라는 API를 이용하여 애플리케이션을 실행하고, 애플리케이션을 통해 획득한 영상 데이터를 처리하거나, 다른 임베디드 장치로 전송할 수 있다.
또한, 네트워크 카메라는 복수의 애플리케이션들을 이용하여 네트워크 카메라의 전반적인 동작을 수행할 수 있다. 복수의 애플리케이션들은 데이터를 통신망을 통해 송수신하기 위한 애플리케이션, 네트워크 카메라 내에서 영상 데이터를 처리하기 위한 애플리케이션 등 네트워크 카메라의 전반적인 기능을 수행하기 위한 애플리케이션을 포함할 수 있다. 여기서, 복수의 애플리케이션들이 효율적으로 운용되기 위하여, 복수의 애플리케이션들 사이에 데이터가 서로 공유될 필요가 있다.
종래에 따르면, 네트워크 카메라의 복수의 어플리케이션들 사이에 직접적인 데이터 통신을 수행할 수 없었다. 즉, 네트워크 카메라는 복수의 애플리케이션들 사이에 데이터 공유가 필요한 경우 별도의 프로세서와 같은 메인 컨트롤러를 통해 소켓(socket) 통신을 이용할 수 밖에 없었다. 메인 컨트롤러를 이용한 소켓 통신을 이용하면, 데이터 통신의 구조가 복잡하고 처리 시간이 증가하는 문제가 있었다. 그에 따라, 현재 메인 컨트롤러를 이용하지 않고 애플리케이션들 사이에 데이터가 빠르게 공유되게 하는 기술 개발이 요구되고 있다.
전술한 기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지 기술을 지시하지 않는다.
상술한 바와 같은 논의를 바탕으로, 본 개시(disclosure)는 API를 이용하여 복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법을 제공한다.
또한, 본 개시는 공유 메모리를 이용한 데이터 공유에 기반하여, 복수의 애플리케이션들 사이에서 데이터를 공유하기 위한 장치 및 방법을 제공한다.
또한, 본 개시는 공유 메모리를 이용한 데이터 공유에 기반하여, 데이터들이 유효하게 전달되었는지 여부를 확인하기 위한 장치 및 방법을 제공한다.
본 개시의 다양한 실시 예들에 따르면, API를 이용하여, 복수의 애플리케이션들 사이의 데이터 통신을 수행하는 컴퓨팅 장치는 제1 메모리 함수를 이용하여 공유 메모리로 공유 정보를 송신하는 마스터 애플리케이션이 저장된 제1 애플리케이션 메모리, 제2 메모리 함수를 이용하여 상기 공유 메모리로부터 상기 공유 정보를 수신하는 슬레이브 애플리케이션이 저장된 제2 애플리케이션 메모리, 및 상기 제1 애플리케이션 메모리와 상기 제2 애플리케이션 메모리 사이에 연결되고, 상기 마스터 애플리케이션과 상기 슬레이브 애플리케이션 사이에서 상기 공유 정보를 전달하는 상기 공유 메모리를 포함할 수 있다.
일 실시 예에 따르면, 상기 공유 정보는 공유 데이터, 상기 공유 데이터의 전달 유효성 식별을 위한 데이터 길이, 데이터의 정상 전달 여부를 검증하기 위한 리턴(return) 값을 포함할 수 있다.
일 실시 예에 따르면, 컴퓨팅 장치는 상기 마스터 애플리케이션이 상기 공유 메모리로 상기 공유 정보를 송신하는 이벤트의 발생을 검출하고, 상기 이벤트의 발생의 검출 결과를 상기 슬레이브 애플리케이션에 송신하는 이벤트 핸들러(event handler)를 더 포함할 수 있다.
일 실시 예에 따르면, 상기 이벤트의 발생에 대응하여, 상기 이벤트 핸들러는 상기 마스터 애플리케이션으로부터, 상기 공유 정보에 관한 데이터 구조(structure) 정보를 수신하고, 상기 슬레이브 애플리케이션으로, 상기 데이터 구조 정보를 송신할 수 있다.
일 실시 예에 따르면, 상기 슬레이브 애플리케이션은 상기 공유 정보와 상기 데이터 구조 정보에 기반하여, 상기 공유 정보의 유효 전달 여부를 식별하고, 상기 유효 전달 여부의 식별 결과를 상기 이벤트 핸들러로 송신할 수 있다.
일 실시 예에 따르면, 상기 마스터 애플리케이션은 제3 메모리 함수를 이용하여, 상기 공유 메모리에 저장된 상기 공유 정보를 삭제할 수 있다.
본 발명의 다양한 각각의 측면들 및 특징들은 첨부된 청구항들에서 정의된다. 종속 청구항들의 특징들의 조합들(combinations)은, 단지 청구항들에서 명시적으로 제시되는 것뿐만 아니라, 적절하게 독립항들의 특징들과 조합될 수 있다.
또한, 본 개시에 기술된 임의의 하나의 실시 예(any one embodiment) 중 선택된 하나 이상의 특징들은 본 개시에 기술된 임의의 다른 실시 예 중 선택된 하나 이상의 특징들과 조합될 수 있으며, 이러한 특징들의 대안적인 조합이 본 개시에 논의된 하나 이상의 기술적 문제를 적어도 부분적으로 경감시키거나, 본 개시로부터 통상의 기술자에 의해 식별될 수 있는(discernable) 기술적 문제를 적어도 부분적으로 경감시키고, 나아가 실시 예의 특징들(embodiment features)의 이렇게 형성된 특정한 조합(combination) 또는 순열(permutation)이 통상의 기술자에 의해 양립 불가능한(incompatible) 것으로 이해되지만 않는다면, 그 조합은 가능하다.
본 개시에 기술된 임의의 예시 구현(any described example implementation)에 있어서 둘 이상의 물리적으로 별개의 구성 요소들은 대안적으로, 그 통합이 가능하다면 단일 구성 요소로 통합될 수도 있으며, 그렇게 형성된 단일한 구성 요소에 의해 동일한 기능이 수행된다면, 그 통합은 가능하다. 반대로, 본 개시에 기술된 임의의 실시 예(any embodiment)의 단일한 구성 요소는 대안적으로, 적절한 경우, 동일한 기능을 달성하는 둘 이상의 별개의 구성 요소들로 구현될 수도 있다.
본 발명의 특정 실시 예들(certain embodiments)의 목적은 종래 기술과 관련된 문제점 및/또는 단점들 중 적어도 하나를, 적어도 부분적으로, 해결, 완화 또는 제거하는 것에 있다. 특정 실시 예들(certain embodiments)은 후술하는 장점들 중 적어도 하나를 제공하는 것을 목적으로 한다.
본 개시의 다양한 실시 예들에 따른 장치 및 방법은 API를 이용하는 컴퓨팅 장치가 공유 메모리를 이용함으로써, 복수의 애플리케이션들 사이에서 데이터 통신이 수행될 수 있게 한다.
또한, 본 개시는 복수의 애플리케이션들 사이에서 데이터를 공유하는 경우, 메인 컨트롤러를 통하지 않고 공유 메모리를 통해 데이터가 공유되도록 제어함으로써, 메인 컨트롤러 구현의 복잡도를 감소시키고 통신 구조를 간소화할 수 있게 한다.
또한, 본 개시는 메인 컨트롤러를 통하지 않고 공유 메모리를 통해 데이터가 공유되도록 제어함으로써, 통신 소요 시간을 감소시킬 수 있게 한다.
또한, 본 개시는 공유 메모리를 통해 공유되는 데이터들이 유효하게 전달되었는지 여부를 확인함으로써, 통신 정확도를 향상시킬 수 있게 한다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 다양한 실시 예들에 따른 컴퓨팅 장치의 통신 시스템을 도시한다.
도 2는 종래에 따른 복수의 애플리케이션들 사이의 데이터 공유 방법에 관한 모식도를 도시한다.
도 3은 본 개시의 다양한 실시 예들에 따른 복수의 애플리케이션들 사이의 데이터 공유 방법에 관한 모식도를 도시한다.
도 4는 본 개시의 다양한 실시 예들에 따른 컴퓨팅 장치의 구성을 도시한다.
도 5는 본 개시의 다양한 실시 예들에 따른 컴퓨팅 장치에서 메모리의 구성을 도시한다.
도 6은 본 개시의 다양한 실시 예들에 따른 복수의 애플리케이션들 사이의 데이터 공유 방법에 관한 흐름도를 도시한다.
도 7은 본 개시의 다양한 실시 예들에 따른 컴퓨팅 장치의 동작 방법에 관한 흐름도를 도시한다.
본 개시에서 사용되는 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.
이하에서 설명되는 본 개시의 다양한 실시 예들에서는 하드웨어적인 접근 방법을 예시로서 설명한다. 하지만, 본 개시의 다양한 실시 예들에서는 하드웨어와 소프트웨어를 모두 사용하는 기술을 포함하고 있으므로, 본 개시의 다양한 실시 예들이 소프트웨어 기반의 접근 방법을 제외하는 것은 아니다.
이하 본 개시는 API(application programming interface)를 이용하여 복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법에 관한 것이다. 구체적으로, 본 개시는 공유 메모리를 이용하여 복수의 애플리케이션들 사이의 데이터를 공유하기 위한 기술을 설명한다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 다양한 실시예들을 상세히 설명한다. 그러나 본 개시의 기술적 사상은 다양한 형태로 변형되어 구현될 수 있으므로 본 명세서에서 설명하는 실시예들로 제한되지 않는다. 본 명세서에 개시된 실시예들을 설명함에 있어서 관련된 공지 기술을 구체적으로 설명하는 것이 본 개시의 기술적 사상의 요지를 흐릴 수 있다고 판단되는 경우 그 공지 기술에 대한 구체적인 설명을 생략한다. 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
본 명세서에서 어떤 요소가 다른 요소와 "연결"되어 있다고 기술될 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라 그 중간에 다른 요소를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 어떤 요소가 다른 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 요소 외에 또 다른 요소를 배제하는 것이 아니라 또 다른 요소를 더 포함할 수 있는 것을 의미한다.
일부 실시예들은 기능적인 블록 구성들 및 다양한 처리 단계들로 설명될 수 있다. 이러한 기능 블록들의 일부 또는 전부는 특정 기능을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 본 개시의 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 본 개시의 기능 블록이 수행하는 기능은 복수의 기능 블록에 의해 수행되거나, 본 개시에서 복수의 기능 블록이 수행하는 기능들은 하나의 기능 블록에 의해 수행될 수도 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다.
도 1은 본 개시의 다양한 실시 예들에 따른 컴퓨팅 장치의 통신 시스템(100)을 도시한다. 도 1을 참고하면, 통신 시스템(100)은 컴퓨팅 장치(110), 통신망(130), 및 서버(150)를 포함할 수 있다.
컴퓨팅 장치(110)는 서버(150)와 데이터를 송수신할 수 있는 임베디드 장치를 의미할 수 있다. 컴퓨팅 장치(110)는 통신망(130)과 연결될 수 있고, 통신망(130)을 통하여 서버(150)로 데이터를 송신하거나 서버(150)로부터 데이터를 수신할 수 있다. 컴퓨팅 장치(110)는 API를 이용하여 적어도 하나의 애플리케이션을 실행할 수 있다. 본 개시의 일 실시 예에 따르면, 적어도 하나의 애플리케이션은 컴퓨팅 장치(110)의 데이터를 획득하기 위한 애플리케이션, 데이터를 처리하기 위한 애플리케이션, 데이터를 송신하기 위한 애플리케이션 등 다양한 기능을 수행하는 애플리케이션을 포함할 수 있다. 컴퓨팅 장치(110)는 적어도 하나의 애플리케이션을 이용하여 데이터를 송수신하거나 처리할 수 있다.
본 개시의 일 실시 예에 따르면, 컴퓨팅 장치(110)는 멀티 채널로 운용되는 네트워크 카메라를 포함할 수 있다. 네트워크 카메라는 적어도 하나의 애플리케이션을 실행할 수 있고, 적어도 하나의 애플리케이션을 이용하여 영상에 관한 정보를 획득, 처리, 및 송수신할 수 있다. 도 1에 도시된 컴퓨팅 장치(110)의 개수와 형태는 예시적인것으로서, 본 발명의 사상이 이에 한정되는 것이 아니다.
서버(150)는 통신망(130)을 통하여 데이터를 획득, 처리하는 장치를 지시한다. 서버(150)는 통신망(130)을 통하여 컴퓨팅 장치(110)로부터 데이터를 획득할 수 있다. 또한, 서버(150)는 사용자의 운용에 따라 획득한 데이터를 저장하거나 다른 컴퓨팅 장치로 송신할 수 있다. 본 개시의 일 실시 예에 따르면, 서버(150)는 네트워크 카메라 시스템에서 컴퓨팅 장치(110)와 데이터를 공유하는 저장 장치를 지시할 수 있다.
컴퓨팅 장치(110)는 데이터를 처리 및 송수신하기 위하여 복수의 애플리케이션을 실행할 수 있다. 컴퓨팅 장치(110)는 복수의 애플리케이션들을 이용하여 데이터를 획득하고 데이터를 직접 가공할 수 있다. 이때, 컴퓨팅 장치(110)에서 실행되는 복수의 애플리케이션들 사이에 데이터의 공유가 요구될 수 있다. 이를 위하여, 컴퓨팅 장치(110)는 공유 메모리를 이용하여 애플리케이션들 사이에서 데이터를 공유할 수 있다. 이하에서, 공유 메모리를 이용하여 애플리케이션을 공유하는 방법을 상세히 설명한다.
도 2는 종래에 따른 복수의 애플리케이션들 사이의 데이터 공유 방법에 관한 모식도(200)를 도시한다. 도 2는 도 1의 컴퓨팅 장치(110)의 동작 방법을 예시한다.
도 2를 참고하면, 컴퓨팅 장치(110)는 복수의 애플리케이션들을 실행할 수 있다. 복수의 애플리케이션들은 컴퓨팅 장치(110) 내부에서 실행되어 목적하는 기능을 수행하기 위하여 데이터를 생성할 수 있고, 필요에 따라 복수의 애플리케이션들 사이에서 데이터를 공유할 수 있다. 이때, 컴퓨팅 장치(110)는 메인 컨트롤러(203)를 이용하여 데이터가 공유되도록 제어할 수 있다.
본 개시의 일 실시 예에 따르면, 컴퓨팅 장치(110)는 제1 애플리케이션 내지 제n 애플리케이션(201-1 내지 201-n)을 실행할 수 있다. 여기서, 제1 애플리케이션(201-1)은 제n 애플리케이션(201-n)에 데이터를 공유하기 위한 제1 공유 정보를 생성할 수 있다. 제2 애플리케이션(201-2) 또한 제n 애플리케이션(201-n)에 데이터를 공유하기 위한 제2 공유 정보를 생성할 수 있다. 제1 애플리케이션(201-1)과 제2 애플리케이션(201-2) 각각은 생성된 제1 공유 정보와 제2 공유 정보를 메인 컨트롤러(203)를 통하여 제n 애플리케이션(201-n)으로 전달할 수 있다.
종래에 따르면, 제1 공유 정보와 제2 공유 정보는 제1 애플리케이션(201-1)과 제2 애플리케이션(201-2)로부터 제n 애플리케이션(201-n)으로 전달되는 과정에서, 메인 컨트롤러(203)를 통하여 전달되었다. 여기서, 메인 컨트롤러(203)는 컴퓨팅 장치(110)의 중앙 처리 모듈에 따라 제어되고, 소켓 통신을 이용한다. 즉, 메인 컨트롤러(203)는 소켓 통신을 이용하여 제1 애플리케이션(201-1)과 제2 애플리케이션(201-2)로부터 제1 공유 정보와 제2 공유 정보를 전달받고, 이를 제n 애플리케이션(201-n)으로 직접 전달한다. 메인 컨트롤러(203)를 통하여 전달되는 통신 방식은 소켓 통신을 이용함에 따라 통신 소요 시간이 길다. 또한, 공유 정보가 메인 컨트롤러(203)를 통과하는 과정에서 데이터 처리에 따른 컴퓨팅 장치(110)의 중앙 처리 모듈의 구조가 복잡해지는 문제가 있다.
도 3은 본 개시의 다양한 실시 예들에 따른 복수의 애플리케이션들 사이의 데이터 공유 방법에 관한 모식도(300)를 도시한다. 도 3은 도 1의 컴퓨팅 장치(110)의 동작 방법을 예시한다.
도 3를 참고하면, 컴퓨팅 장치(110)는 복수의 애플리케이션들을 실행할 수 있고, 복수의 애플리케이션들은 필요에 따라 데이터를 공유할 수 있다. 이때, 컴퓨팅 장치(110)는 공유 메모리(305)를 이용하여 데이터가 공유되도록 제어할 수 있다. 즉, 컴퓨팅 장치(110)는 메인 컨트롤러(303)와 복수의 애플리케이션들 사이에 연결되는 공유 메모리(305)를 추가로 구비할 수 있고, 복수의 애플리케이션들 사이의 공유 정보는 메인 컨트롤러(303)를 통하지 않고 공유 메모리(305)를 통해 곧바로 공유될 수 있다.
본 개시의 일 실시 예에 따르면, 컴퓨팅 장치(110)는 제1 애플리케이션 내지 제n 애플리케이션(301-1 내지 301-n)을 실행할 수 있다. 여기서, 제1 애플리케이션(201-1)은 제n 애플리케이션(201-n)에 데이터를 공유하기 위한 제1 공유 정보를 생성할 수 있다. 제2 애플리케이션(301-2) 또한 제n 애플리케이션(301-n)에 데이터를 공유하기 위한 제2 공유 정보를 생성할 수 있다. 제1 애플리케이션(301-1)과 제2 애플리케이션(301-2) 각각은 생성된 제1 공유 정보와 제2 공유 정보를 메인 컨트롤러(303)를 통하여 제n 애플리케이션(301-n)으로 전달할 수 있다.
본 개시에 따르면, 제1 공유 정보와 제2 공유 정보는 제1 애플리케이션(301-1)과 제2 애플리케이션(301-2)로부터 제n 애플리케이션(301-n)으로 전달되는 과정에서 메인 컨트롤러(303)를 통하지 않고, 공유 메모리(305)를 통하여 전달될 수 있다. 즉, 복수의 애플리케이션들 사이에서 데이터 전달 과정에서, 공유 정보가 소켓 통신을 이용하는 메인 컨트롤러(303)를 통과하지 않음에 따라, 통신 소요 시간이 단축될 수 있다. 또한, 추가적인 메인 컨트롤러의 구성에 수정이 요구되지 않아, 중앙 처리 모듈의 구조가 단순화 될 수 있다. 메인 컨트롤러(303)를 통과하지 않고 공유 메모리(305)를 이용하여 공유 정보가 전달되는 방법은 도 4 내지 도 7에서 상세히 설명된다.
도 4는 본 개시의 다양한 실시 예들에 따른 컴퓨팅 장치(110)의 구성(400)을 도시한다. 이하 사용되는 '…부', '…기' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
컴퓨팅 장치(110)는 API에서 복수의 애플리케이션을 실행할 수 있다. 컴퓨팅 장치(110)는 복수의 애플리케이션들을 이용하여 목적하는 동작을 수행할 수 있다. 여기서, 복수의 애플리케이션들은 공유 메모리를 이용하여 데이터를 서로 공유할 수 있다. 도 4를 참고하면, 컴퓨팅 장치(110)는 통신부(410), 메모리(420), 제어부(430)를 포함한다.
통신부(410)는 다른 네트워크 장치와 유선 또는 무선 채널 연결을 통해 데이터를 송수신하기 위한 기능들을 수행한다. 통신부(410)의 전부 또는 일부는 송신부, 수신부, 송수신부로 지칭될 수 있고, 데이터를 송수신하기 위하여 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다.
메모리(420)는 컴퓨팅 장치(110)의 동작을 위한 기본 프로그램, 응용 프로그램, 설정 정보 등의 데이터를 저장하는 기능을 수행한다. 메모리(420)는 휘발성 메모리, 비휘발성 메모리 또는 휘발성 메모리와 비휘발성 메모리의 조합으로 구성될 수 있다. 그리고, 메모리(420)는 제어부(430)의 요청에 따라 저장된 데이터를 제공하거나 데이터를 기록할 수 있다.
복수의 애플리케이션이 실행되는 경우, 메모리(420)는 복수의 애플리케이션들 각각이 생성하는 데이터를 저장할 수 있다. 본 개시의 일 실시 예에 따르면, 메모리(420)는 복수의 애플리케이션들이 생성한 데이터를 저장하기 위한 애플리케이션 메모리를 포함할 수 있다. 메모리(420)는 복수의 애플리케이션들 사이에서 데이터를 공유하기 위한 공유 메모리를 포함할 수 있다. 본 개시의 일 실시 예에 따르면, 메모리(420)는 추가적으로 복수의 애플리케이션들의 실행에 따른 이벤트 발생을 검출하고 검출 결과를 송수신하기 위한 이벤트 핸들러(evnet handler)를 더 포함할 수 있다.
제어부(430)는 컴퓨팅 장치(110)의 전반적인 동작들을 제어한다. 예를 들어, 제어부(430)는 통신부(410)를 통해 신호를 송신 및 수신하거나, 메모리(420)에 데이터를 기록할 수 있다. 본 개시의 다양한 실시 예들에 따르면, 제어부(430)는 중앙 처리 모듈로서 메인 컨트롤러를 포함할 수 있다. 본 개시의 일 실시 예에 따르면, 메인 컨트롤러는 오퍼레이팅 시스템의 제어 하에 서, 애플리케이션 프로그램을 실행할 수 있다. 메인 컨트롤러는 프로그램 실행 및 동작을 제어할 수 있다.
도 5는 본 개시의 다양한 실시 예들에 따른 컴퓨팅 장치(110)에서 메모리의 구성(500)을 도시한다. 도 5는 도 4의 메모리(420)의 구성을 예시한다.
메모리(420)는 제어부(430)의 메인 컨트롤러와 연결되어 데이터를 저장하는 기능을 수행하는 장치를 지시한다. 컴퓨팅 장치(110)는 복수의 애플리케이션들을 실행할 수 있고, 복수의 애플리케이션들 사이에서 데이터가 공유되도록 제어될 수 있다. 도 5를 참고하면, 메모리(420)는 마스터 애플리케이션이 생성한 데이터가 저장되는 영역을 지시하는 마스터 애플리케이션 메모리(510), 슬레이브 애플리케이션이 생성한 데이터가 저장되는 영역을 지시하는 슬레이브 애플리케이션 메모리(530), 마스터 애플리케이션 메모리와 슬레이브 애플리케이션 메모리 사이에 연결되고, 마스터 애플리케이션과 슬레이브 애플리케이션 사이에서 공유 정보를 전달하는 공유 메모리(305)를 포함할 수 있다. 여기서, 마스터 애플리케이션은 공유 정보를 전달하는 애플리케이션을 지시하고, 슬레이브 애플리케이션는 공유 정보를 전달받는 애플리케이션을 지시할 수 있다. 추가적으로, 메모리(420)는 공유 정보의 송수신 이벤트에 대응하여 동작하는 이벤트 핸들러(570)를 더 포함할 수 있다. 도 5는 이벤트 핸들러(570)가 메모리(420)에 내부에 배치되는 경우를 예시하지만, 이벤트 핸들러(570)는 메모리 외부에 배치되어 후술하는 기능과 동일한 기능을 수행하도록 설계될 수 있다.
본 개시의 일 실시 예에 따르면, 마스터 애플리케이션 메모리(510)에 저장되는 마스터 애플리케이션은 제1 메모리 함수를 호출할 수 있고, 제1 메모리 함수를 이용하여 공유 정보를 공유 메모리(305)로 전달할 수 있다. 본 개시의 일 실시 예에 따르면, 제1 메모리 함수는 데이터, 데이터의 유효성 식별을 위한 데이터 길이, 데이터가 정상적으로 전달되었는지 여부를 검증하는 리턴(return) 값을 입력 받아, 데이터를 전달하는 기능을 수행하는 함수를 포함할 수 있다. 그에 따라 공유 정보는 공유 데이터, 공유 데이터의 길이, 리턴(return) 값을 포함할 수 있다. 마스터 애플리케이션 메모리(510)에 저장된 공유 정보는 제1 메모리 함수에 따라 공유 메모리(305)로 전달될 수 있다.
슬레이브 애플리케이션 메모리(530)에 저장되는 슬레이브 애플리케이션은 제2 메모리 함수를 호출할 수 있고, 제2 메모리 함수를 이용하여 공유 메모리(305)로부터 공유 정보를 전달받을 수 있다. 본 개시의 일 실시 예에 따르면, 제2 메모리 함수는 공유 메모리에 저장된 공유 정보를 전달받기 위한 기능을 수행하는 함수를 포함할 수 있다. 공유 정보가 공유 메모리(305)에 전달된 경우, 이벤트 핸들러(570)는 마스터 애플리케이션이 공유 정보를 송신하는 이벤트가 발생되었음을 검출할 수 있다. 이벤트 핸들러(570)는 이벤트 발생을 검출하고, 이벤트 발생 결과를 슬레이브 애플리케이션에 알릴 수 있다. 그에 대응하여, 슬레이브 애플리케이션은 공유 메모리(305)에 공유 정보가 저장되어 있음을 확인하고, 제2 메모리 함수를 호출할 수 있다. 공유 메모리(305)에 저장된 공유 정보는 제2 메모리 함수에 따라 슬레이브 애플리케이션 메모리(530)로 전달될 수 있다.
이벤트 핸들러(570)는 마스터 애플리케이션이 공유 정보를 공유 메모리(305)로 송신하는 이벤트의 발생을 검출하고 슬레이브 애플리케이션에 이벤트 발생의 검출 결과를 제공하는 기능을 수행한다. 추가적으로, 공유 정보의 유효 전달 여부에 관한 정확성을 향상시키기 위하여, 이벤트 핸들러(570)는 마스터 애플리케이션 메모리(510)로부터 데이터 구조(structure) 정보를 수신할 수 있다. 데이터 구조 정보는 공유 데이터의 구조를 지시하는 정보로서, 데이터 길이와 함께 데이터의 정상 전달 여부의 판단에 이용될 수 있다. 마스터 애플리케이션은 공유 정보를 공유 메모리에 저장하는 이벤트를 발생시킨 경우 이벤트 핸들러(570)에 데이터 구조 정보를 송신할 수 있고, 이벤트 핸들러(570)는 슬레이브 애플리케이션에 이벤트 발생 검출 결과와 함께 데이터 구조 정보를 송신할 수 있다. 그에 대응하여, 슬레이브 애플리케이션은 공유 메모리(305)에 저장된 공유 정보를 전달하고 유효 전달 여부를 식별할 수 있다.
도 6은 본 개시의 다양한 실시 예들에 따른 복수의 애플리케이션들 사이의 데이터 공유 방법에 관한 흐름도(600)를 도시한다. 도 6은 컴퓨팅 장치(110)에 포함된 메모리(420)의 구성들 사이의 정보 전달 방법을 예시한다.
도 6을 참고하면 단계(601)에서, 마스터 애플리케이션(511)은 제1 메모리 함수를 호출한다. 마스터 애플리케이션(511)은 슬레이브 애플리케이션(531)에 공유 정보를 송신하기 위하여, 제1 메모리 함수를 호출할 수 있다. 본 개시의 일 실시 예에 따르면, 제1 메모리 함수는 데이터, 데이터 길이, 리턴 값을 입력 받아, 마스터 애플리케이션 메모리로부터 공유 메모리로 공유 정보를 전달하는 기능을 수행하는 함수를 포함할 수 있다.
단계(603)에서, 마스터 애플리케이션(511)은 공유 정보를 공유 메모리(305)에 송신한다. 마스터 애플리케이션(511)은 제1 메모리 함수를 이용하여 공유 정보를 공유 메모리(305)로 송신할 수 있다. 본 개시의 일 실시 예에 따르면, 공유 정보는 공유 데이터, 공유 데이터의 유효성 식별을 위한 데이터 길이, 데이터 정상 전달 여부를 검증하는 리턴 값을 포함할 수 있다.
단계(605)에서, 마스터 애플리케이션(511)은 데이터 구조 정보를 이벤트 핸들러(570)에 송신한다. 본 개시의 일 실시 예에 따르면, 마스터 애플리케이션(511)은 공유 정보를 공유 메모리(305)에 전달하면서, 데이터 구조 정보를 이벤트 핸들러(570)에 전달할 수 있다.
단계(607)에서, 이벤트 핸들러(570)는 이벤트 발생을 검출한다. 본 개시의 일 실시 예에 따르면, 이벤트 핸들러(570)는 마스터 애플리케이션(511)이 공유 정보를 공유 메모리에 송신하는 이벤트의 발생을 검출할 수 있다. 도 6은 마스터 애플리케이션(511)이 데이터 구조 정보를 이벤트 핸들러(570)에 전달한 이후에 이벤트 핸들러(570)가 이벤트 발생을 검출한 경우를 예시하지만, 단계(605)와 단계(607)의 순서는 변경될 수 있다. 즉, 이벤트 핸들러(570)는 공유 정보가 공유 메모리(305)에 전달된 경우 이벤트 발생을 검출한 이후에, 마스터 애플리케이션(511)으로부터 데이터 구조 정보를 수신할 수 있다.
단계(609)에서, 이벤트 핸들러(570)는 이벤트 발생의 검출 결과와 데이터 구조 정보를 슬레이브 애플리케이션(531)에 송신한다. 본 개시의 일 실시 예에 따르면, 이벤트 핸들러(570)는 공유 정보가 공유 메모리(305)에 저장되었음을 지시하는 검출 결과를 슬레이브 애플리케이션(531)에 전달할 수 있다. 또한, 이벤트 핸들러(570)는 마스터 애플리케이션(511)으로부터 전달받은 데이터 구조 정보를 슬레이브 애플리케이션(531)으로 송신할 수 있다.
단계(611)에서, 슬레이브 애플리케이션(531)은 제2 메모리 함수를 호출한다. 슬레이브 애플리케이션(531)은 이벤트 발생의 검출 결과를 수신하고 그에 대응하여 제2 메모리 함수를 호출할 수 있다. 본 개시의 일 실시 예에 따르면, 제2 메모리 함수는 공유 메모리에 저장된 데이터를 수신하는 기능을 수행하는 함수를 포함할 수 있다.
단계(613)에서, 공유 메모리(305)는 공유 정보를 슬레이브 애플리케이션(531)으로 송신한다. 슬레이브 애플리케이션(531)은 제2 메모리 함수를 이용하여 공유 메모리(305)로부터 공유 정보를 수신할 수 있다. 본 개시의 일 실시 예에 따르면, 슬레이브 애플리케이션(531)은 제2 메모리 함수를 통해 공유 메모리(305)에 공유 정보를 요청할 수 있고, 공유 메모리(305)로부터 공유 정보를 수신할 수 있다.
단계(615)에서, 슬레이브 애플리케이션(531)은 공유 정보의 유효 전달 여부를 식별한다. 슬레이브 애플리케이션(531)은 전달 받은 공유 정보와 데이터 구조 정보에 기반하여, 공유 정보가 유효하게 전달되었는지 여부를 식별한다. 본 개시의 일 실시 예에 따르면, 슬레이브 애플리케이션(531)은 수신한 공유 데이터에서 데이터 길이와 데이터 구조를 확인하여, 공유 정보가 유효하게 전달되었는지 여부를 확인할 수 있다.
추가적으로, 슬레이브 애플리케이션(531)은 유효 전달 여부의 식별 결과를 이벤트 핸들러(570)로 송신할 수 있다. 슬레이브 애플리케이션(531)은 공유 정보가 정상적으로 전달되었는지 여부를 이벤트 핸들러(570)에게 제공할 수 있고, 이벤트 핸들러(570)는 마스터 애플리케이션(511)에 공유 정보의 정상 전달 여부를 제공할 수 있다. 그에 따라 마스터 애플리케이션(511)은 공유 정보가 슬레이브 애플리케이션(531)에 정상적으로 전달되었음을 확인할 수 있다. 이후, 마스터 애플리케이션(511)은 제3 메모리 함수를 호출하여, 공유 메모리(305)에 저장된 공유 정보를 삭제할 수 있다. 공유 메모리(305)의 사이즈는 유한하므로, 마스터 애플리케이션(511)은 공유 메모리(305)의 관리를 위하여, 공유 정보를 삭제하기 위한 동작을 수행할 수 있다.
도 7은 본 개시의 다양한 실시 예들에 따른 컴퓨팅 장치(110)의 동작 방법에 관한 흐름도(700)를 도시한다. 도 7은 API를 이용하여, 복수의 애플리케이션들 사이의 데이터 통신을 수행하기 위한 컴퓨팅 장치(110)의 동작 방법을 도시한다. 구체적으로, 도 7은 컴퓨팅 장치(110)에 포함된 메모리(420)의 구성들 사이에서 데이터를 공유하는 방법을 예시한다.
도 7을 참고하면 단계(701)에서, 마스터 애플리케이션(511)은 제1 메모리 함수를 이용하여 공유 메모리로 공유 정보를 송신한다. 마스터 애플리케이션(511)은 공유 정보를 슬레이브 애플리케이션(531)으로 공유 정보를 전달하기 위하여, 제1 메모리 함수를 호출하고, 제1 메모리 함수를 이용하여 공유 정보를 공유 메모리로 송신할 수 있다. 본 개시의 일 실시 예에 따르면, 공유 정보는 공유 데이터, 공유 데이터의 유효성 식별을 위한 데이터 길이, 데이터 정상 전달 여부를 검증하는 리턴(return) 값을 포함할 수 있다.
단계(703)에서, 이벤트 핸들러(570)는 이벤트 발생을 검출하고, 마스터 애플리케이션(511)으로부터 데이터 구조 정보를 수신한다. 본 개시의 일 실시 예에 따르면, 이벤트 핸들러(570)는 마스터 애플리케이션(511)이 공유 메모리(305)로 공유 정보를 송신하는 이벤트의 발생을 검출할 수 있다. 또한, 이벤트 핸들러(570)는 마스터 애플리케이션(511)으로부터 공유 정보에 관한 데이터 구조 정보를 수신할 수 있다. 데이터 구조 정보는 공유 데이터의 구조를 지시하는 정보를 포함할 수 있다.
단계(705)에서, 이벤트 핸들러(570)는 슬레이브 애플리케이션(531)으로 이벤트 발생의 검출 결과와 데이터 구조 정보를 송신한다. 본 개시의 일 실시 예에 따르면, 이벤트 핸들러(570)는 이벤트의 발생을 지시하는 검출 결과를 슬레이브 애플리케이션(531)에 송신할 수 있다. 또한, 이벤트 핸들러(570)는 슬레이브 애플리케이션(531)으로, 데이터 구조 정보를 송신할 수 있다.
단계(707)에서, 슬레이브 애플리케이션(531)은 제2 메모리 함수를 이용하여 공유 메모리로부터 공유 정보를 수신한다. 슬레이브 애플리케이션(531)은 이벤트 핸들러(570)로부터 이벤트 발생의 검출 결과를 수신한 것에 대응하여, 제2 메모리 함수를 호출할 수 있다. 이후, 슬레이브 애플리케이션(531)은 제2 메모리 함수를 이용하여 공유 메모리(305)로부터 공유 정보를 수신할 수 있다.
이후, 슬레이브 애플리케이션(531)은 수신한 공유 정보와 데이터 구조 정보에 기반하여, 공유 정보의 유효 전달 여부를 식별할 수 있다. 슬레이브 애플리케이션(531)은 데이터 길이와 데이터 구조 정보를 확인하여 공유 데이터가 정상적으로 전달되었는지 여부를 확인할 수 있다. 슬레이브 애플리케이션(531)은 공유 정보의 유효 전달 여부에 관한 식별 결과를 이벤트 핸들러(570)로 송신할 수 있다. 이에 대응하여, 이벤트 핸들러(570)는 마스터 애플리케이션(511)에 공유 정보의 정상 전달 여부를 전달할 수 있다. 그에 따라 마스터 애플리케이션(511)은 공유 정보가 슬레이브 애플리케이션(531)에 정상적으로 전달되었음을 식별할 수 있다.
이후, 마스터 애플리케이션(511)은 제3 메모리 함수를 이용하여 공유 메모리(305)에 저장된 공유 정보를 삭제할 수 있다. 마스터 애플리케이션(511)은 공유 메모리(305)의 관리를 위하여, 제3 메모리 함수를 호출할 수 있다. 그에 따라 공유 메모리(305)에 저장된 공유 정보가 삭제될 수 있다.
본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(read only memory, ROM), 전기적 삭제가능 프로그램가능 롬(electrically erasable programmable read only memory, EEPROM), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(compact disc-ROM, CD-ROM), 디지털 다목적 디스크(digital versatile discs, DVDs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(local area network), WAN(wide area network), 또는 SAN(storage area network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시 예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
110: 컴퓨팅 장치 130: 통신망
150: 서버 203: 메인 컨트롤러
201-1 내지 201-n 제1 애플리케이션 내지 제n 애플리케이션
303: 메인 컨트롤러 305: 공유 메모리
301-1 내지 301-n 제1 애플리케이션 내지 제n 애플리케이션
410: 통신부 420: 메모리
430: 제어부 510: 마스터 애플리케이션 메모리
511: 마스터 애플리케이션 530: 슬레이브 애플리케이션 메모리
531: 슬레이브 애플리케이션 570: 이벤트 핸들러

Claims (6)

  1. API(application programming interface)를 이용하여, 복수의 애플리케이션들 사이의 데이터 통신을 수행하는 컴퓨팅 장치에 있어서,
    제1 메모리 함수를 이용하여 공유 메모리로 공유 정보를 송신하는 마스터 애플리케이션이 저장된 제1 애플리케이션 메모리;
    제2 메모리 함수를 이용하여 상기 공유 메모리로부터 상기 공유 정보를 수신하는 슬레이브 애플리케이션이 저장된 제2 애플리케이션 메모리; 및
    상기 제1 애플리케이션 메모리와 상기 제2 애플리케이션 메모리 사이에 연결되고, 상기 마스터 애플리케이션과 상기 슬레이브 애플리케이션 사이에서 상기 공유 정보를 전달하는 상기 공유 메모리를 포함하는 컴퓨팅 장치.
  2. 청구항 1에 있어서,
    상기 공유 정보는 공유 데이터, 상기 공유 데이터의 전달 유효성 식별을 위한 데이터 길이, 데이터의 정상 전달 여부를 검증하기 위한 리턴(return) 값을 포함하는 컴퓨팅 장치.
  3. 청구항 1에 있어서,
    상기 마스터 애플리케이션이 상기 공유 메모리로 상기 공유 정보를 송신하는 이벤트의 발생을 검출하고, 상기 이벤트의 발생의 검출 결과를 상기 슬레이브 애플리케이션에 송신하는 이벤트 핸들러(event handler)를 더 포함하는 컴퓨팅 장치.
  4. 청구항 3에 있어서,
    상기 이벤트의 발생에 대응하여, 상기 이벤트 핸들러는,
    상기 마스터 애플리케이션으로부터, 상기 공유 정보에 관한 데이터 구조(structure) 정보를 수신하고,
    상기 슬레이브 애플리케이션으로, 상기 데이터 구조 정보를 송신하는 컴퓨팅 장치.
  5. 청구항 4에 있어서,
    상기 슬레이브 애플리케이션은,
    상기 공유 정보와 상기 데이터 구조 정보에 기반하여, 상기 공유 정보의 유효 전달 여부를 식별하고,
    상기 유효 전달 여부의 식별 결과를 상기 이벤트 핸들러로 송신하는 컴퓨팅 장치.
  6. 청구항 1에 있어서,
    상기 마스터 애플리케이션은,
    제3 메모리 함수를 이용하여, 상기 공유 메모리에 저장된 상기 공유 정보를 삭제하는 컴퓨팅 장치.
KR1020210144006A 2021-10-26 2021-10-26 복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법 KR20230059631A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210144006A KR20230059631A (ko) 2021-10-26 2021-10-26 복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법
PCT/KR2022/014102 WO2023075156A1 (ko) 2021-10-26 2022-09-21 복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210144006A KR20230059631A (ko) 2021-10-26 2021-10-26 복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20230059631A true KR20230059631A (ko) 2023-05-03

Family

ID=86158345

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210144006A KR20230059631A (ko) 2021-10-26 2021-10-26 복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법

Country Status (2)

Country Link
KR (1) KR20230059631A (ko)
WO (1) WO2023075156A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612600B2 (en) * 2010-12-07 2013-12-17 Nec Laboratories America, Inc. Negotiation tool and method for cloud infrastructure data sharing
KR102111574B1 (ko) * 2013-11-28 2020-05-15 에스케이플래닛 주식회사 어플리케이션 기반 식별 정보 생성 방법, 이를 위한 장치 및 시스템
KR101868173B1 (ko) * 2013-12-16 2018-06-15 에릭슨엘지엔터프라이즈 주식회사 어플리케이션 데이터베이스 공유 방법 및 장치
KR101810536B1 (ko) * 2014-05-15 2017-12-20 에스케이테크엑스 주식회사 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템
KR102292389B1 (ko) * 2018-01-17 2021-08-25 한국전자통신연구원 원격 직접 메모리 접근을 통한 분산 처리 장치 및 그 방법

Also Published As

Publication number Publication date
WO2023075156A1 (ko) 2023-05-04

Similar Documents

Publication Publication Date Title
US9015268B2 (en) Remote direct storage access
US20190163364A1 (en) System and method for tcp offload for nvme over tcp-ip
US10235097B2 (en) Area and performance optimized namespace sharing method in virtualized PCIE based SSD controller
US11119797B2 (en) Active drive API
US20210288955A1 (en) Utilizing caveats for wireless credential access
US10908998B2 (en) Managing function level reset in an IO virtualization-enabled storage device
CN109710695B (zh) 事务请求有效性识别和发起方法、装置、设备和介质
CN104285210B (zh) 在便携式通信设备上恢复操作系统的方法、装置和系统
US20090158001A1 (en) Accessing control and status register (csr)
US9189320B2 (en) Handling intermittent recurring errors in a network
US11507285B1 (en) Systems and methods for providing high-performance access to shared computer memory via different interconnect fabrics
JP7048289B2 (ja) 情報処理装置および方法
CN103473272A (zh) 数据处理方法、装置及系统
TWI333144B (en) Device, system, method and computer-readable storage medium storing instructions for managing errors on a target storage device
US20180225065A1 (en) Method and system for handling an asynchronous event request command in a solid-state drive
US11256444B2 (en) Method for processing read/write data, apparatus, and computer readable storage medium thereof
US8612674B2 (en) Systems and methods for concurrently accessing a virtual tape library by multiple computing devices
CN110870286B (zh) 容错处理的方法、装置和服务器
KR20230059631A (ko) 복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법
US11397678B2 (en) Pooling distributed storage nodes that have backup power supplies and write-back caching capabilities
US10095589B2 (en) System and method for optimization of operating system restore
KR20170021124A (ko) 블루투스 단말의 제어 방법 및 이를 수행하는 블루투스 단말
CN112470121A (zh) 经由数据块下载恢复映像
US20190065419A1 (en) Message routing in a main memory arrangement
CN112667579B (zh) 文件存储方法、装置、设备和存储介质