KR20130108613A - 프로세스 간 통신을 위한 방법, 장치 및 컴퓨터 기록 매체 - Google Patents
프로세스 간 통신을 위한 방법, 장치 및 컴퓨터 기록 매체 Download PDFInfo
- Publication number
- KR20130108613A KR20130108613A KR1020137013508A KR20137013508A KR20130108613A KR 20130108613 A KR20130108613 A KR 20130108613A KR 1020137013508 A KR1020137013508 A KR 1020137013508A KR 20137013508 A KR20137013508 A KR 20137013508A KR 20130108613 A KR20130108613 A KR 20130108613A
- Authority
- KR
- South Korea
- Prior art keywords
- communication
- preset container
- communication channel
- request
- interprocess
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Abstract
통신 기술분야에 해당하는 프로세스 간 통신을 위한 방법 및 장치가 개시된다. 상기 방법은 제 1 프로세스에 의해 구동되는 프로세스 간 통신 요청을 수신하는 기설정된 컨테이너 과정; 상기 프로세스 간 통신 요청에 따라 상기 제 1 프로세스와 그것 사이에 통신 채널을 생성하는 상기 기설정된 컨테이너 과정; 상기 프로세스 간 통신 요청에 대응하는 서비스 모듈을 로딩하여, 상기 통신 채널을 통해 상기 제 1 프로세스와 함께 프로세스 간 통신을 수행하는 상기 기설정된 컨테이너 과정;을 포함한다. 상기 장치는 수신 모듈, 채널 구축 모듈 및 로딩 모듈을 포함한다. 본 발명은 프로세스 간 통신이 이루어지는 동안 상기 채널 구축 과정을 단순화하여, 코드를 절약하고 통신 효율을 향상시킨다.
Description
본 개시사항은 일반적으로 통신 기술 분야와 관련되며, 특히 프로세스 간 통신을 위한 방법, 장치 및 컴퓨터 기록 매체와 관련된다.
프로세스 간 통신은 서로 다른 프로세스 간의 정보 전송이나 교환을 나타낸다. QQ(텐센트에 의해 개발된 인스턴트 메신저 소프트웨어)와 같은 프로그램에서, 플래쉬(Flash) 또는 IE(Internet Explorer) 서비스가 사용될 수 있으며; 그에 따라 QQ 주요 프로세스와 플래쉬 프로세스 또는 IE 프로세스 간의 프로세스 간 통신이 등장할 필요가 있었다. 프로세스 간 통신의 종래 과정은 QQ 주요 프로세스와 플래쉬 프로세스 간의 공통 메모리를 설정하는 것이며, 공통 메모리를 판독함으로써 통신한다.
종래 과정의 분석 후에, 적어도 다음의 결점이 존재한다는 것이 본 개시사항의 발명자들에 의해 발견되었다:
종래 과정 중에서, 프로세스 간 통신이 등장할 때마다, 공통 메모리는 통신 채널에 따라 주요 프로세스와 목표 프로세스 사이에서 설정되며; 각 목표 프로세스는 서비스 모듈로 구분되어 로딩되며, 이는 메모리 용량의 낭비를 야기하게 된다.
프로세스 간 통신을 위한 방법과 장치가 본 발명의 일 실시예로서 제공된다. 상기 기술은 아래와 같다:
제 1 프로세스에 의해 전송된 프로세스 간 통신에 대한 요청을 수신하는 단계;
상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 단계;
상기 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈을 로딩하는 단계; 및
상기 서비스 모듈이 로딩된 기 설정된 컨테이너 프로세스와 상기 제 1 프로세스 사이에서 상기 통신 채널을 통해 프로세스 간 통신을 수행하는 단계;를 포함하는 프로세스 간 통신을 위한 방법.
제 1 프로세스에 의해 전송된 프로세스 간 통신에 대한 요청을 수신하는 수신 모듈;
상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 채널 설정 모듈; 및
상기 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈을 로딩하는 로딩 모듈;을 포함하며, 상기 서비스 모듈이 로딩된 기 설정된 컨테이너 프로세스가 상기 통신 채널을 통해 상기 제 1 프로세스와 프로세스 간 통신을 수행하는, 프로세스 간 통신을 위한 장치.
컴퓨터에서 실행가능한 명령을 저장하는 컴퓨터 기록매체에 있어서, 상기 컴퓨터에서 실행가능한 명령은 컴퓨터가 접속에 대한 갱신을 포스팅하는 방법을 수행하도록 제어하며, 상기 방법은,
제 1 프로세스에 의해 전송된 프로세스 간 통신에 대한 요청을 수신하는 단계;
상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 단계;
상기 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈을 로딩하는 단계; 및
상기 서비스 모듈이 로딩된 기 설정된 컨테이너 프로세스와 상기 제 1 프로세스 사이에서 상기 통신 채널을 통해 프로세스 간 통신을 수행하는 단계;를 포함하는 컴퓨터 기록매체.
따라서, 본 발명의 일 실시예를 통해 제공되는 상기 기술의 이점은 다음과 같다:
다수 개의 서비스 모듈들을 로딩할 수 있는 기 설정된 컨테이너 프로세스는 시작지점으로서 설정되므로; 프로세스 간 통신 채널을 설정할 때, 통신 프로세스와 기 설정된 컨테이너 프로세스 사이의 통신 채널을 설정할 필요가 있으며, 대응하는 서비스 모듈은 기 설정된 컨테이너 프로세스로 로딩되고, 기 설정된 컨테이너 프로세스는 프로세스 간 통신 프로세스의 설정과정을 단순화하고, 코드를 절약하며, 통신 효율을 향상시킬 수 있다.
본 발명의 실시예들과 배경 기술에 관한 구체적인 설명을 위해, 실시예들이나 배경 기술에 관한 도면의 간단한 설명을 아래에 나타낸다. 아래에서 설명된 도면들은 본 발명의 예시적인 실시예들에 대한 것으로서, 관련분야의 통상의 기술자는 별도의 노력없이 본 도면들에 따르는 다른 도면들을 고안해낼 수 있음이 명백하다.
도 1은 본 발명의 일 실시예에 따르는 프로세스 간 통신을 위한 방법의 순서도이다.
도 2는 본 발명의 일 실시예에 따르는 프로세스 간 통신을 위한 방법의 순서도이다.
도 3은 본 발명의 일 실시예에 따르는 프로세스 간 통신을 위한 장치의 개략도이다.
도 4는 본 발명의 일 실시예에 따르는 프로세스 간 통신을 위한 장치의 개략도이다.
도 5는 본 발명의 일 실시예에 따르는 프로세스 간 통신을 위한 장치의 개략도이다.
도 1은 본 발명의 일 실시예에 따르는 프로세스 간 통신을 위한 방법의 순서도이다.
도 2는 본 발명의 일 실시예에 따르는 프로세스 간 통신을 위한 방법의 순서도이다.
도 3은 본 발명의 일 실시예에 따르는 프로세스 간 통신을 위한 장치의 개략도이다.
도 4는 본 발명의 일 실시예에 따르는 프로세스 간 통신을 위한 장치의 개략도이다.
도 5는 본 발명의 일 실시예에 따르는 프로세스 간 통신을 위한 장치의 개략도이다.
본 발명의 목적, 기술 방안 및 이점을 더욱 명확히 하기 위해, 아래에서 도면을 참조하여 본 발명을 더욱 구체적으로 설명하도록 한다.
실시예 1
코드 절약(code economy)을 위해, 프로세스 간 통신을 위한 방법이 본 발명의 일 실시예를 통해 제공된다. 도 1을 참조하면, 상기 방법은:
101: 제 1 프로세스에 의해 시작되는 프로세스 간 통신에 대한 요청을 수신하는 단계;
102 : 상기 프로세스 간 통신에 대한 요청에 따라 제 1 프로세스와 통신 채널을 설정하는 단계;
103 : 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈을 로딩하는 단계;를 포함하여, 서비스 모듈이 로딩된 기설정된 컨테이너 프로세스는 제 1 프로세스와 프로세스 간 통신을 수행할 수 있다.
여기서, 프로세스 간 통신에 대한 요청에 따라 제 1 프로세스와 통신 채널을 설정하는 단계 전에, 다음과 같은 단계를 추가로 포함한다:
통신 채널이 제 1 프로세스와 함께 존재하는지 검출하는 단계; 및 통신 채널이 제 1 프로세스와 함께 존재하는 경우 통신 채널을 다중화하는 단계; 또는 통신 채널이 제 1 프로세스와 함께 존재하지 않는 경우 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 단계.
여기서, 프로세스 간 통신에 대한 요청에 따라 제 1 프로세스와 통신 채널을 설정하는 단계는 구체적으로 아래와 같은 단계를 포함한다:
프로세스 간 통신에 대한 요청으로부터 프로세스 간 통신에 의해 할당된 모델을 추출하는 단계;
기 설정된 컨테이너 프로세스의 상기 할당된 모델을 호출하고, 제 1 프로세스와 기 설정된 컨테이너 프로세스 사이의 통신 채널을 설정하는 단계.
여기서, 상기 기 설정된 컨테이너 프로세스는 시스템 모델, 프로세스 모델, 세션 모델 및 공유 모델을 포함한다.
다수 개의 서비스 모듈들을 로딩할 수 있는 기 설정된 컨테이너 프로세스는 시작지점으로서 설정된다; 그러므로, 프로세스 간 통신 채널을 설정할 때, 통신 프로세스와 기 설정된 컨테이너 프로세스 사이의 통신 채널을 설정할 필요가 있으며, 대응하는 서비스 모듈은 기 설정된 컨테이너 프로세스로 로딩되고, 기 설정된 컨테이너 프로세스는 프로세스 간 통신 프로세스의 설정과정을 단순화하고, 코드를 절약하며, 통신 효율을 향상시킬 수 있다.
실시예 2
코드 절약(code economy)을 위해, 프로세스 간 통신을 위한 방법이 본 발명의 일 실시예를 통해 제공된다. 도 2을 참조하면, 상기 실시예는 제 1 프로세스로서 프로세스 간 통신을 시작하는 프로세스를 수행하며, 상기 방법은 아래와 같은 단계를 포함한다:
201 : 제 1 프로세스는 기 설정된 컨테이너 프로세스에 대한 프로세스 간 통신의 요청을 시작한다; 프로세스 간 통신의 요청은 제 1 프로세스에 의해 동적으로 생성되는 두 개의 GUID (Globally Unique Identifier)를 전달한다. 상기 두 개의 GUID는 제 1 프로세스 식별자와 제 2 프로세스 식별자를 포함한다. 제 1 프로세스 식별자는 프로세스 간 통신에 대한 요청을 시작하는 프로세스를 식별하는 데에 이용되며; 제 2 프로세스 식별자는 프로세스 간 통신, 즉, 기설정된 컨테이너 프로세스의 목표 프로세스를 식별하는 데에 이용된다.
구체적으로, 상기 두 개의 GUID는 프로세스들을 식별하고, 프로세스 간 통신의 두 개 말단에 대한 공통 메모리를 시작하는 역할을 한다. 제 1 프로세스에서부터 기 설정된 컨테이너 프로세스까지의 통신에 대한 메모리는 제 2 프로세스 식별자 GUID에 의해 지칭되며, 모든 제 1 프로세스와 마찬가지로 공유된다. 그러한 메모리는 기 설정된 컨테이너 프로세스의 시작에 의해 할당되며, 기 설정된 컨테이너 프로세스의 종료에 의해 해제된다. 반면, 기 설정된 컨테이너 프로세스에서부터 제 1 프로세스까지의 통신에 대한 메모리는 제 1 프로세스에 대하여 단독으로 할당된다. 충돌을 방지하기 위해, 제 1 프로세스는 제 2 프로세스 식별자 GUID를 제 1 프로세스에서부터 기 설정된 컨테이너 프로세스까지의 한 가지 경로를 통해 기 설정된 컨테이너 프로세스로 전송한다.
본 발명의 실시예에 따라, 제 1 프로세스는 QQ, IM 등과 같은 다양한 종류의 주요 프로세스일 수 있으며; 제 2 프로세스는 기 설정된 컨테이너 프로세스일 수 있다. 기 설정된 컨테이너는 본 발명의 실시예에 따라 프로세스 간 통신에 사용되는 컨테이너의 한 종류인 것으로 언급되었다. 기 설정된 컨테이너는 프로세스 간 통신에 대한 요청이 수신된 경우, 통신을 시작하는 프로세스에서부터 컨테이너 프로세스까지의 통신 채널을 설정하는 데에 이용되며, 상기 요청의 형태에 따라 대응하는 서비스 모듈을 로딩하는 데에 이용된다.
202 : 기 설정된 컨테이너 프로세스는 프로세스 간 통신에 대한 요청을 수신하고, 프로세스 간 통신에 의해 할당된 모델을 추출한다.
기 설정된 컨테이너 프로세스는 시스템 모델, 프로세스 모델, 세션 모델 및 공유 모델을 포함하는 것은 앞서 언급되었으며; 상기 모델은 네 개의 모델 중 하나 이상의 모델이 될 수 있다.
203 : 기 설정된 컨테이너의 상태가 “개방”인지 결정하며; 기 설정된 컨테이너의 상태가 개방인 경우 205 단계로 진행되며, 그렇지 않은 경우 204 단계로 진행된다.
결정을 위한 방법은 다양하며, 서비스 핸들러나 서비스 프로세스를 검출함으로써 결정될 수 있으나; 본 발명의 실시예는 반드시 이에 한하지 않는다.
204 : 기 설정된 컨테이너를 개방한다.
구체적으로, 기 설정된 컨테이너가 구동된 후에, 제 1 프로세스에서부터 기 설정된 컨테이너까지의 채널에 대한 초기가동이 실행되어, 상기 채널에 대한 후속 설정 프로세스가 이루어지게 된다.
205 : 기 설정된 컨테이너 프로세스 내의 할당된 모델을 호출하고, 제 1 프로세스와 기 설정된 컨테이너 프로세스 사이의 통신 채널을 설정한다.
관련분야의 통상의 기술자는, 기설정된 컨테이너 프로세스가 서로 다른 종류의 요청을 제공하기 위한 많은 종류의 모델들을 포함함을 알 수 있을 것이다. 그러나, 기설정된 컨테이너는 일정한 시작과 패키지된 코드인 종료를 가진다. 기 설정된 컨테이너는 시스템에 대한 유일한 시작을 제공하는데; 이는 시작 날짜가 수신되고, 시작 날짜, 프로세스된 데이터 또는 동작에 따라 대응하는 기 설정된 실행이 일정한 데이터 종료를 통해 출력될 수 있는 한 지속된다.
205단계 전에 다음과 같은 단계가 추가로 포함될 수 있다: 통신 채널이 프로세스 간 통신을 시작하는 프로세스와 기 설정된 컨테이너 사이에 존재하는지 검출하는 단계; 통신 채널이 존재하는 경우 상기 통신 채널을 다중화하는 단계; 또는 상기 요청의 형태에 다라 주요 프로세스와 기 설정된 컨테이너 사이의 통신 채널을 설정하는 단계. 통신 채널이 존재하는 경우, 이러한 단계는 존재하는 통신 채널을 통해 통신을 가능하게 하는데; 서비스 모듈을 로딩하는 동안, 존재하는 모듈이 언로딩된 후에 존재하는 모듈이나 대응하는 서비스 모듈 중 어느 하나를 기반으로 로딩될 수 잇다. 상기 단계는 채널 설정 과정을 생략할 수 있으며, 추가적으로 코드를 절약한다.
206 : 프로세스 간 통신의 요청에 따라, 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈을 로딩한다.
서비스 모듈에 대해, 컨테이너 모듈은 투명하며, 어떠한 종류의 컨테이너 모델이 실행되어도 무관하다. 바람직하게, 기 설정된 컨테이너는 구체적으로, 앱(App) 컨테이너일 수 있으며, 앱 컨테이너는 서로 다른 서비스 모듈에 대한 프로세스가 로딩됨을 나타낼 수 있고; 상기 프로세스는 응용 프로그램의 주요 프로세스와 통신할 수 있다. 각 컨테이너 몸체는 하나 이상의 서비스 모듈과 함께 로딩되며, 요구에 따라 서비스 모듈과 함께 동적으로 로딩될 수 있다. 서비스 모듈은 특정한 기능을 구현할 수 있는 dll과 규칙에 대응하는 시작 기능을 내보내는 dll을 나타낸다.
또한, 위의 201단계 내지 206단계를 통해, 서비스 모듈이 로딩된 기 설정된 컨테이너 프로세스가 통신 채널을 통해 제 1 프로세스와 프로세스 간 통신을 한 후에, 컨테이너의 로딩 상태를 확인하는 것이 필요하며, 로딩 상태를 확인하는 것은 서비스 모듈의 로딩 상태는 프로세스 간 통신의 요청에 대응하는 서비스 모듈이 로딩되었는지 결정하기 위해 확인될 수 있음을 나타낸다. 로딩되지 않은 경우, 서비스 모듈은 재로딩 될 수 있으며; 컨테이너는 대화 ID와 같은 식별자를 생성하고, 제 1 프로세스에 대한 응답을 전송한다. 그 결과, 서비스 모듈 방출 기능의 OnSessionCreate는 새로운 대화가 설정되었음을 알리기 위해 실행된다.
서비스 모듈이 실행되는 동안, 제 1 프로세스는 서비스 대기 핸들러를 호출할 수 있음은 이미 언급되었을 것이다. 서비스 프로세스가 종료된 경우, 제 1 프로세스는 대화를 종료하고, 비정상적인 대화 오류라는 알림 이벤트를 통보한다. 상위 레벨의 어플리케이션은 필요에 따라 대화를 재수립할 것인지를 결정할 수 있다. 서비스 모듈에 기존의 버그(bug)가 존재하는 경우, 각각의 오류는 연속적인 오류를 야기하고 서비스 모듈을 재가동시킬 수 있으며, 추가적으로 CPU 이용률이 100%에 달하고, 사용자 경험에 영향을 줄 수 있도록 할 수 있다. 따라서, 재가동의 최대 횟수가 설정될 수 있으며, 바람직하게는 최대 횟수는 3이 될 수 있다. 또한, 서비스 모듈은 개별적인 데이터 수신 스레드(thread)를 가질 수 있는데; 상기 데이터는 수신되어, 비즈니스가 위치한 주요 스레드로 방송된다. 이 경우 주요 스레드는 중단되어 있으며, 데이터 수신 스레드가 검출될 수 있다. 상기 검출이 주요 스레드가 중단되어 있음을 나타내는 경우, 수기 신호가 제 1 프로세스를 알리는 데에 이용될 수 있고, 이어서 제 1 프로세스는 대화를 종료하고 비정상적인 대화 오류라는 알림 이벤트를 통보할 수 있다. 이어서, 제 1 프로세스는 필요에 따라 대화를 재가동할 것인지를 결정할 수 있다.
위 실시예에서, 프로세스 간 통신은, 구체적으로, 공유 메모리 통신이거나 소켓(Socket) 통신일 수 있다. 소켓 통신이 이용되는 경우, 대화에 대한 스트리밍 데이터 통신과 TCP를 통한 일 대 다수의 연결 관리를 설명하는 것이 더욱 당연할 수 있다. 여기서, 공유 메모리 통신은 수기 기호와 공유 메모리를 근거로 하는 원형 대기열에 의해 실행되는 데이터 통신의 한 종류인데, 이에 대한 구체적인 정보는 현재 기술로서 공개되어 있으므로 여기서 더욱 상세히 설명하지 않도록 한다.
본 발명에서 제공된 방법에 따라, 다수 개의 서비스 모듈을 로딩할 수 있는 기 설정된 컨테이너는 시작지점으로서 설정되므로; 프로세스 간 통신 채널을 설정할 때, 통신 프로세스와 기 설정된 컨테이너 프로세스 간의 통신 채널을 설정할 필요가 있으며, 대응하는 서비스 모듈은 기 설정된 컨테이너 프로세스로 로딩되어, 기 설정된 컨테이너 프로세스는 프로세스 간 통신 프로세스의 설정 과정을 단순화하며 코드를 절약하고 통신 효율을 향상시킨다.
실시예 3
코드 절약을 위해, 본 발명의 실시예에 따르는 프로세스 간 통신을 위한 장치가 제공된다. 도 3을 참조하면, 상기 장치는,
제 1 프로세스에 의해 전송된 프로세스 간 통신에 대한 요청을 수신하는 수신 모듈(301);
상기 프로세스 간 통신에 대한 요청에 따라 통신 채널과 제 1 프로세스를 설정하는 채널 설정 모듈(302); 및
상기 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈을 로딩하는 로딩 모듈(303)을 포함하며, 서비스 모듈이 로딩된 기 설정된 컨테이너 프로세스는 통신 채널을 통해 제 1 프로세스와 프로세스 간 통신을 수행한다.
일 실시예에 따라, 로딩 모듈(303)은 추가적으로 서비스 모듈의 로딩 상태를 확인하는 데에 이용되어, 상기 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈이 로딩되었는지 결정한다. 로딩되지 않은 경우, 서비스 모듈이 재로딩되며, 컨테이너는 대화 ID를 생성하고, 제 1 프로세스에 대한 응답을 전송한다.
도 4를 참고하면, 상기 장치는 검출 모듈(304)을 추가로 포함한다:
검출 모듈(304)은 통신 채널이 제 1 프로세스와 함께 존재하는지 검출하는 것으로서; 통신 채널이 제 1 프로세스와 함께 존재하는 경우 통신 채널을 다중화하거나; 통신 채널이 제 1 프로세스와 함께 존재하지 않는 경우 프로세스 간 통신에 대한 요청에 따라 통신 채널과 제 1 프로세스를 설정하도록 채널 설정 모듈을 트리거한다.
도 5를 참고하면, 채널 설정 모듈(302)는 아래와 같은 구성을 포함한다:
프로세스 간 통신에 대한 요청으로부터 프로세스 간 통신에 의해 할당된 모델을 추찰하는 데에 이용되는 추출 모듈(302a); 및
기 설정된 컨테이너 프로세스 내의 할당된 모델을 호출하고, 제 1 프로세스와 기 설정된 컨테이너 프로세스 간의 통신 채널을 설정하는 데에 이용되는 개방 유닛(302b);
일 실시예에 따라, 개방 유닛(302b)은 추가적으로, 기 설정된 컨테이너의 상태가 “개방”인지를 결정하는 데에 이용될 수 있다. 개방 유닛(302b)은 기 설정된 컨테이너의 상태가 개방인 경우 기 설정된 컨테이너 프로세스 내의 할당된 모델을 호출하고, 제 1 프로세스와 기 설정된 컨테이너 프로세스 간의 통신 채널을 설정하며; 기 설정된 컨테이너의 상태가 개방되지 않은 경우 기설정된 컨테이너를 개방한다.
기 설정된 컨테이너 프로세스는 시스템 모델, 프로세스 모델, 세션 모델 및 공유 모델을 포함한다.
일 실시예에 따라, 프로세스 간 통신은 공유 메모리 통신이거나 소켓 통신일 수 있다.
본 발명의 일 실시예에 따르는 장치는 상기 일 실시예에 대한 방법과 동일한 사상을 가지며, 이에 대한 구체적인 정보는 상기 일 실시예에 대한 방법의 설명을 통해 개시되었으므로, 이하 구체적인 설명은 생략한다.
본 발명의 실시예들에 다르는 기술의 전부 도는 일부는 프로그램에 의해 지시된, 대응하는 하드웨어를 통해 실행되며; 그러한 프로그램은 ROM, RAM, 자기 디스크 또는 광학 디스크와 같은 프로그램 코드를 저장할 수 있는 다양한 종류의 매체를 포함하는 판독가능 저장 매체에 저장될 수 있다.
본 발명은 컴퓨터 실행가능한 명령을 저장한 컴퓨터 기록매체를 제공하며, 상기 컴퓨터는 접속 갱신을 포스팅하기 위한 위의 방법을 수행하는 명령을 실행할 수 있다.
예시적인 실시예들의 전술한 설명은 본 발명을 제한하는 것을 의도하지 않는다. 청구항의 범위 내에 포함되는 한 본 발명의 사상과 개념 내에서 임의의 수정, 대체 또는 개선이 이루어질 수 있다.
Claims (21)
- 제 1 프로세스에 의해 전송된 프로세스 간 통신에 대한 요청을 수신하는 단계;
상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 단계;
상기 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈을 로딩하는 단계; 및
상기 서비스 모듈이 로딩된 기 설정된 컨테이너 프로세스와 상기 제 1 프로세스 사이에서 상기 통신 채널을 통해 프로세스 간 통신을 수행하는 단계;
를 포함하는 프로세스 간 통신을 위한 방법. - 제 1 항에 있어서,
상기 서비스 모듈이 로딩된 상기 기 설정된 컨테이너 프로세스와 상기 제 1 프로세스 사이에서 상기 통신 채널을 통해 프로세스 간 통신을 수행하는 단계는,
상기 서비스 모듈의 로딩 상태를 확인하여 상기 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈이 로딩되었는지 결정하는 단계;
로딩되지 않은 경우, 상기 서비스 모듈을 재로딩하고, 상기 컨테이너는 대화 ID를 생성하고 상기 제 1 프로세스에 대한 응답을 전송하는 단계;
를 더 포함하는 프로세스 간 통신을 위한 방법. - 제 1 항에 있어서,
상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 단계 전에,
통신 채널이 상기 제 1 프로세스와 함께 존재하는지 검출하는 단계;
상기 통신 채널이 상기 제 1 프로세스와 함께 존재하는 경우 상기 통신 채널을 다중화하는 단계; 및
상기 통신 채널이 상기 제 1 프로세스와 함께 존재하지 않는 경우 상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 단계;
를 더 포함하는 프로세스 간 통신을 위한 방법. - 제 1 항에 있어서,
상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 단계는,
상기 프로세스 간 통신에 대한 요청으로부터 상기 프로세스 간 통신에 의해 할당된 모델을 추출하는 단계;
상기 기 설정된 컨테이너 프로세스의 상기 할당된 모델을 호출하는 단계; 및
상기 제 1 프로세스와 상기 기 설정된 컨테이너 프로세스 사이의 상기 통신 채널을 설정하는 단계;
를 더 포함하는 프로세스 간 통신을 위한 방법. - 제 4 항에 있어서,
상기 기 설정된 컨테이너 프로세스의 상기 할당된 모델을 호출하는 단계와 상기 제 1 프로세스와 상기 기 설정된 컨테이너 프로세스 사이의 상기 통신 채널을 설정하는 단계 전에,
상기 기 설정된 컨테이너의 상태가 “개방”되었는지 결정하는 단계;
상기 기 설정된 컨테이너의 상태가 개방인 경우, 상기 기 설정된 컨테이너 프로세스의 상기 할당된 모델을 호출하는 단계와 상기 제 1 프로세스와 상기 기 설정된 컨테이너 프로세스 사이의 상기 통신 채널을 설정하는 단계를 실행하는 단계; 및
상기 기 설정된 컨테이너의 상태가 개방되지 않은 경우, 상기 기 설정된 컨테이너를 개방하는 단계;
를 더 포함하는 프로세스 간 통신을 위한 방법.
- 제 4 항에 있어서,
상기 기 설정된 컨테이너 프로세스는 시스템 모델, 프로세스 모델, 세션 모델 및 공유 모델을 포함하는, 프로세스 간 통신을 위한 방법. - 제 1 항에 있어서,
상기 프로세스 간 통신은 공유 메모리 통신 또는 소켓 통신인, 프로세스 간 통신을 위한 방법. - 제 1 프로세스에 의해 전송된 프로세스 간 통신에 대한 요청을 수신하는 수신 모듈;
상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 채널 설정 모듈; 및
상기 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈을 로딩하는 로딩 모듈;을 포함하며,
상기 서비스 모듈이 로딩된 기 설정된 컨테이너 프로세스가 상기 통신 채널을 통해 상기 제 1 프로세스와 프로세스 간 통신을 수행하는, 프로세스 간 통신을 위한 장치. - 제 8 항에 있어서,
상기 로딩 모듈은 추가적으로, 상기 서비스 모듈의 로딩 상태를 확인하여 상기 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈이 로딩되었는지 결정하고, 로딩되지 않은 경우, 상기 서비스 모듈을 재로딩하고, 상기 컨테이너는 대화 ID를 생성하고 상기 제 1 프로세스에 대한 응답을 전송하는 프로세스 간 통신을 위한 장치. - 제 8 항에 있어서,
통신 채널이 상기 제 1 프로세스와 함께 존재하는지 검출하고, 상기 통신 채널이 상기 제 1 프로세스와 함께 존재하는 경우 상기 통신 채널을 다중화하며, 상기 통신 채널이 상기 제 1 프로세스와 함께 존재하지 않는 경우 상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하도록 상기 채널 설정 모듈을 트리거하는 검출 모듈을 더 포함하는, 프로세스 간 통신을 위한 장치. - 제 8 항에 있어서,
상기 채널 설정 모듈은,
상기 프로세스 간 통신에 대한 요청으로부터 상기 프로세스 간 통신에 의해 할당된 모델을 추출하는 추출 유닛;
상기 기 설정된 컨테이너 프로세스의 상기 할당된 모델을 호출하며, 상기 제 1 프로세스와 상기 기 설정된 컨테이너 프로세스 사이의 상기 통신 채널을 설정하는 개방 유닛;
을 더 포함하는 프로세스 간 통신을 위한 장치. - 제 11 항에 있어서,
상기 개방 유닛은,
상기 기 설정된 컨테이너의 상태가 “개방”되었는지 결정하며,
상기 기 설정된 컨테이너의 상태가 개방인 경우, 상기 기 설정된 컨테이너 프로세스의 상기 할당된 모델을 호출하는 단계와 상기 제 1 프로세스와 상기 기 설정된 컨테이너 프로세스 사이의 상기 통신 채널을 설정하는 단계를 실행하며,
상기 기 설정된 컨테이너의 상태가 개방되지 않은 경우, 상기 기 설정된 컨테이너를 개방하는, 프로세스 간 통신을 위한 장치. - 제 11 항에 있어서,
상기 기 설정된 컨테이너 프로세스는 시스템 모델, 프로세스 모델, 세션 모델 및 공유 모델을 포함하는, 프로세스 간 통신을 위한 장치. - 제 8 항에 있어서,
상기 프로세스 간 통신은 공유 메모리 통신 또는 소켓 통신인, 프로세스 간 통신을 위한 장치. - 컴퓨터에서 실행가능한 명령을 저장하는 컴퓨터 기록매체에 있어서, 상기 컴퓨터에서 실행가능한 명령은 컴퓨터가 접속에 대한 갱신을 포스팅하는 방법을 수행하도록 제어하며, 상기 방법은,
제 1 프로세스에 의해 전송된 프로세스 간 통신에 대한 요청을 수신하는 단계;
상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 단계;
상기 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈을 로딩하는 단계; 및
상기 서비스 모듈이 로딩된 기 설정된 컨테이너 프로세스와 상기 제 1 프로세스 사이에서 상기 통신 채널을 통해 프로세스 간 통신을 수행하는 단계;
를 포함하는 컴퓨터 기록 매체. - 제 15 항에 있어서,
상기 서비스 모듈이 로딩된 상기 기 설정된 컨테이너 프로세스와 상기 제 1 프로세스 사이에서 상기 통신 채널을 통해 프로세스 간 통신을 수행하는 단계는,
상기 서비스 모듈의 로딩 상태를 확인하여 상기 프로세스 간 통신에 대한 요청에 대응하는 서비스 모듈이 로딩되었는지 결정하는 단계;
로딩되지 않은 경우, 상기 서비스 모듈을 재로딩하고, 상기 컨테이너는 대화 ID를 생성하고 상기 제 1 프로세스에 대한 응답을 전송하는 단계;
를 더 포함하는 컴퓨터 기록 매체. - 제 15 항에 있어서,
상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 단계 전에,
통신 채널이 상기 제 1 프로세스와 함께 존재하는지 검출하는 단계;
상기 통신 채널이 상기 제 1 프로세스와 함께 존재하는 경우 상기 통신 채널을 다중화하는 단계; 및
상기 통신 채널이 상기 제 1 프로세스와 함께 존재하지 않는 경우 상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 단계;
를 더 포함하는 컴퓨터 기록 매체. - 제 15 항에 있어서,
상기 프로세스 간 통신에 대한 요청에 따라 상기 제 1 프로세스와 통신 채널을 설정하는 단계는,
상기 프로세스 간 통신에 대한 요청으로부터 상기 프로세스 간 통신에 의해 할당된 모델을 추출하는 단계;
상기 기 설정된 컨테이너 프로세스의 상기 할당된 모델을 호출하는 단계; 및
상기 제 1 프로세스와 상기 기 설정된 컨테이너 프로세스 사이의 상기 통신 채널을 설정하는 단계;
를 더 포함하는 컴퓨터 기록 매체. - 제 18 항에 있어서,
상기 기 설정된 컨테이너 프로세스의 상기 할당된 모델을 호출하는 단계와 상기 제 1 프로세스와 상기 기 설정된 컨테이너 프로세스 사이의 상기 통신 채널을 설정하는 단계 전에,
상기 기 설정된 컨테이너의 상태가 “개방”되었는지 결정하는 단계;
상기 기 설정된 컨테이너의 상태가 개방인 경우, 상기 기 설정된 컨테이너 프로세스의 상기 할당된 모델을 호출하는 단계와 상기 제 1 프로세스와 상기 기 설정된 컨테이너 프로세스 사이의 상기 통신 채널을 설정하는 단계를 실행하는 단계; 및
상기 기 설정된 컨테이너의 상태가 개방되지 않은 경우, 상기 기 설정된 컨테이너를 개방하는 단계;
를 더 포함하는 컴퓨터 기록 매체. - 제 18 항에 있어서,
상기 기 설정된 컨테이너 프로세스는 시스템 모델, 프로세스 모델, 세션 모델 및 공유 모델을 포함하는, 컴퓨터 기록 매체. - 제 15 항에 있어서,
상기 프로세스 간 통신은 공유 메모리 통신 또는 소켓 통신인, 컴퓨터 기록 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010536671.1 | 2010-11-05 | ||
CN201010536671.1A CN102469035B (zh) | 2010-11-05 | 2010-11-05 | 跨进程通信的方法和装置 |
PCT/CN2011/080904 WO2012059005A1 (zh) | 2010-11-05 | 2011-10-18 | 跨进程通信的方法和装置、计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20130108613A true KR20130108613A (ko) | 2013-10-04 |
Family
ID=46024009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137013508A KR20130108613A (ko) | 2010-11-05 | 2011-10-18 | 프로세스 간 통신을 위한 방법, 장치 및 컴퓨터 기록 매체 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20130227587A1 (ko) |
EP (1) | EP2637366B1 (ko) |
JP (1) | JP5793574B2 (ko) |
KR (1) | KR20130108613A (ko) |
CN (1) | CN102469035B (ko) |
WO (1) | WO2012059005A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180081123A (ko) * | 2015-11-10 | 2018-07-13 | 알리바바 그룹 홀딩 리미티드 | 데이터 처리 방법 및 장치 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577469B (zh) * | 2012-08-03 | 2017-12-01 | 深圳市腾讯计算机系统有限公司 | 数据库连接复用方法和装置 |
US10810634B2 (en) * | 2013-02-08 | 2020-10-20 | The Nielsen Company (Us), Llc | Methods and apparatus for efficient execution of modules |
US10305834B2 (en) * | 2016-06-20 | 2019-05-28 | Huawei Technologies Co., Ltd. | System and method for messaging between operating system containers |
CN107153583B (zh) * | 2017-05-24 | 2020-11-17 | 太仓市昊博技术服务有限公司 | 一种跨进程交互处理方法、移动终端以及计算机可读存储介质 |
CN109426591B (zh) * | 2017-09-04 | 2021-01-01 | 武汉斗鱼网络科技有限公司 | 守护windows单一程序的多个进程的方法及设备 |
CN107766162A (zh) * | 2017-10-30 | 2018-03-06 | 北京明华联盟科技有限公司 | 一种操作指令的执行方法、装置及终端设备 |
CN108021459B (zh) * | 2017-12-01 | 2022-03-04 | 麒麟合盛网络技术股份有限公司 | 跨进程发送打点日志的方法及装置 |
JP7094853B2 (ja) | 2018-10-09 | 2022-07-04 | Ykk Ap株式会社 | 建具、及び、建具の施工方法 |
JP7434039B2 (ja) * | 2020-04-08 | 2024-02-20 | キヤノン株式会社 | 情報処理装置、及び情報処理装置におけるコンテナとプロセスとの間の通信を制御する制御方法 |
CN112835727B (zh) * | 2021-01-29 | 2023-05-30 | 宝宝巴士股份有限公司 | 一种基于aop的跨进程通信的方法及装置 |
CN116126549A (zh) * | 2021-11-15 | 2023-05-16 | 北京图森智途科技有限公司 | 通信方法及相关的通信系统和存储介质 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2149476A1 (en) * | 1994-06-21 | 1995-12-22 | James Michael Magee | Capability engine method and apparatus for a microkernel data processing system |
FI20001630A (fi) * | 2000-06-30 | 2001-12-31 | Nokia Mobile Phones Ltd | Palvelun laadun määritys datavirroille |
US7251816B2 (en) * | 2002-08-08 | 2007-07-31 | Hewlett-Packard Development Company, L.P. | Method for increasing performance of select and poll applications without recompilation |
WO2005022795A2 (en) * | 2003-08-29 | 2005-03-10 | Rgb Networks, Inc. | Advanced, self-balancing video multiplexer system |
US7454758B2 (en) * | 2004-02-05 | 2008-11-18 | Aol Llc, A Delaware Limited Liability Company | Inter-process communication on a computer |
JP2005292981A (ja) * | 2004-03-31 | 2005-10-20 | Advanced Telecommunication Research Institute International | メッセージ管理装置、データ処理システム及びそのためのコンピュータプログラム |
US7594236B2 (en) * | 2004-06-28 | 2009-09-22 | Intel Corporation | Thread to thread communication |
US8020141B2 (en) * | 2004-12-06 | 2011-09-13 | Microsoft Corporation | Operating-system process construction |
JP2006164191A (ja) * | 2004-12-10 | 2006-06-22 | Matsushita Electric Ind Co Ltd | プログラム取得実行装置、プログラム取得実行方法、プログラム取得実行プログラム記録媒体、およびプログラム取得実行プログラム |
US7921216B2 (en) * | 2005-02-01 | 2011-04-05 | Microsoft Corporation | System and method for building and using communication binding objects |
US7882236B2 (en) * | 2005-02-04 | 2011-02-01 | Microsoft Corporation | Communication channel model |
US7549151B2 (en) * | 2005-02-14 | 2009-06-16 | Qnx Software Systems | Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment |
US7664067B2 (en) * | 2005-12-15 | 2010-02-16 | Microsoft Corporation | Preserving socket connections over a wireless network |
CN100471180C (zh) * | 2006-02-09 | 2009-03-18 | 华为技术有限公司 | 一种消息传递的方法、装置和系统 |
US9015727B2 (en) * | 2008-04-02 | 2015-04-21 | Qualcomm Incorporated | Sharing operating system sub-processes across tasks |
JP4577422B2 (ja) * | 2008-07-14 | 2010-11-10 | ソニー株式会社 | 情報処理システム及び情報処理方法、ロボットの制御システム及び制御方法、並びコンピュータ・プログラム |
US20100162275A1 (en) * | 2008-12-19 | 2010-06-24 | Microsoft Corporation Way | Controlling applications through inter-process communication |
CN101448018A (zh) * | 2008-12-26 | 2009-06-03 | 中兴通讯股份有限公司 | 进程间通信方法和装置 |
CN101572710B (zh) * | 2009-06-03 | 2012-06-27 | 杭州华三通信技术有限公司 | 一种进程间通信方法和系统 |
-
2010
- 2010-11-05 CN CN201010536671.1A patent/CN102469035B/zh active Active
-
2011
- 2011-10-18 EP EP11837531.0A patent/EP2637366B1/en active Active
- 2011-10-18 KR KR1020137013508A patent/KR20130108613A/ko active Search and Examination
- 2011-10-18 JP JP2013536988A patent/JP5793574B2/ja active Active
- 2011-10-18 US US13/882,651 patent/US20130227587A1/en not_active Abandoned
- 2011-10-18 WO PCT/CN2011/080904 patent/WO2012059005A1/zh active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180081123A (ko) * | 2015-11-10 | 2018-07-13 | 알리바바 그룹 홀딩 리미티드 | 데이터 처리 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
CN102469035B (zh) | 2016-01-20 |
CN102469035A (zh) | 2012-05-23 |
JP2014503867A (ja) | 2014-02-13 |
EP2637366A1 (en) | 2013-09-11 |
JP5793574B2 (ja) | 2015-10-14 |
US20130227587A1 (en) | 2013-08-29 |
EP2637366B1 (en) | 2021-01-06 |
EP2637366A4 (en) | 2014-05-07 |
WO2012059005A1 (zh) | 2012-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20130108613A (ko) | 프로세스 간 통신을 위한 방법, 장치 및 컴퓨터 기록 매체 | |
CN107832100B (zh) | 一种apk插件的加载方法及其终端 | |
CN106412656B (zh) | Android智能设备快速连接蓝牙的方法 | |
US8732694B2 (en) | Method and system for performing services in server and client of client/server architecture | |
WO2018019242A1 (zh) | 网站服务器的自恢复方法和自恢复系统 | |
CN107291510A (zh) | 一种Linux车载信息系统快速启动方法 | |
WO2016192161A1 (zh) | 一种数据处理方法和装置 | |
CN108563472B (zh) | 基于多开应用的服务插件加载方法及装置 | |
JP6195465B2 (ja) | 同期サーバ側スクリプティングを用いた遠隔カードコンテンツ管理 | |
CN112769876B (zh) | 一种设备通道信息获取方法、装置、设备和介质 | |
CN103024058A (zh) | Web服务调用方法及系统 | |
WO2019000790A1 (zh) | 一种以同步方式进行远程过程调用的方法及装置 | |
US20210185132A1 (en) | Sip information analysis method and device, server, and medium | |
CN106686627B (zh) | WiFi/热点的开启方法及装置 | |
CN109918215B (zh) | 一种进程通信方法、系统、终端和存储介质 | |
CN114610446B (zh) | 一种自动注入探针的方法、装置及系统 | |
CN114138371B (zh) | 配置动态加载方法、装置及计算机设备、存储介质 | |
WO2021057880A1 (zh) | 物联网设备的程序升级方法、装置及物联网设备 | |
EP3929737A1 (en) | Application state control method apparatus, and terminal and computer-readable storage medium | |
CN114090104A (zh) | 一种小程序启动控制方法和装置 | |
CN114244758A (zh) | 安卓平台的网络诊断方法、存储介质、电子设备及系统 | |
CN110365839B (zh) | 关机方法、装置、介质及电子设备 | |
CN113572701A (zh) | 服务接口流控方法、装置、设备及存储介质 | |
CN112667359A (zh) | 数据透传方法、电子设备及存储介质 | |
CN110413403A (zh) | 一种应用服务自主检控方法、存储介质、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
REEX | Re-examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment |