KR20080053299A - 단일 포트를 통해 공유 컴퓨터 시스템에서 복수의애플리케이션으로의 네트워크 접속을 제공하는 방법 및컴퓨터-실행가능 명령어가 저장된 컴퓨터 프로그램 제품 - Google Patents

단일 포트를 통해 공유 컴퓨터 시스템에서 복수의애플리케이션으로의 네트워크 접속을 제공하는 방법 및컴퓨터-실행가능 명령어가 저장된 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR20080053299A
KR20080053299A KR1020087006057A KR20087006057A KR20080053299A KR 20080053299 A KR20080053299 A KR 20080053299A KR 1020087006057 A KR1020087006057 A KR 1020087006057A KR 20087006057 A KR20087006057 A KR 20087006057A KR 20080053299 A KR20080053299 A KR 20080053299A
Authority
KR
South Korea
Prior art keywords
connection
application
port
client
server
Prior art date
Application number
KR1020087006057A
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 마이크로소프트 코포레이션
Publication of KR20080053299A publication Critical patent/KR20080053299A/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

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

Abstract

시스템 레벨에서 동작하는 포트 청취 서비스가 정적 포트에 청취용으로 할당된다. 정적 포트는 세션 레벨에서 동작하는 복수의 애플리케이션에 연관된 복수의 고유 ID를 인덱싱할 수 있다. 그러면 서버 애플리케이션은 클라이언트에게 고유한 접속 ID, 서버 IP 주소, 및 접속을 위한 정적인 포트 번호를 제공할 수 있다. 클라이언트가 고유한 접속 ID를 참조함으로써 접속된다면, 포트 청취 서비스는 이 접속에 대한 대응하는 소켓을 적절한 애플리케이션 인스턴스로 전달하여, 애플리케이션이 여전히 세션 레벨에서 동작하도록 할 수 있다. 이와 같이, 포트 청취자 서비스는 단일한 정적 포트에 대한 접속 서비스들을 세션 레벨에서 동작하는 복수의 서로 다른 애플리케이션 인스턴스들로 디스패치(dispatch)할 수 있다.
Figure P1020087006057
세션 레벨, 시스템 레벨, 애플리케이션, 네트워크, 클라이언트, 서버

Description

단일 포트를 통해 공유 컴퓨터 시스템에서 복수의 애플리케이션으로의 네트워크 접속을 제공하는 방법 및 컴퓨터-실행가능 명령어가 저장된 컴퓨터 프로그램 제품{SHARING A PORT WITH MULTIPLE PROCESSES}
컴퓨팅 시스템의 인기가 높아짐에 따라, 대형 네트워크 및 소형 네트워크에서 컴퓨터 시스템의 파일 및 프로세싱 자원을 분산시킬 필요성을 가지게 되었다. 일반적으로, 컴퓨터 시스템 및 관련 장치는, 예를 들면, 퍼스널 전자 메시지를 교환하기 위해, 상품을 판매하기 위해, 계정 정보를 제공하기 위해 등과 같은 여러 가지 이유로 네트워크를 통해 정보를 교환한다. 그러나, 컴퓨터 시스템 및 그 관련 애플리케이션이 점점 더 정교해지고 있기 때문에, 네트워크를 통해 데이터 및 자원을 공유하는 것과 관련된 과제가 또한 증가하고 있음을 인식할 것이다.
네트워크 내에서 자원들을 분산하기 위한 몇 가지 현행 방식은 국부적으로 설치된 자원들을 가지지 않는 하나 이상의 클라이언트와 자원을 공유하는 중앙집중식 네트워크 서버를 포함할 수 있는 중앙집중식 컴퓨팅 시나리오를 포함한다. 이러한 유형의 기능에 이용되어온 프로토콜 중 하나는 원격 데스크톱 프로토콜(Remote Desktop Protocol; "RDP")이다. 원격 데스크톱 프로토콜을 이용하면, 중앙집중식 네트워크 서버는 네트워크를 통해 원하는 데이터 및 자원을 다른 클라이언트와 공유할 수 있다. 그러면, 몇몇의 경우, 클라이언트는 마치 이들 자원이 국부적으로 설치된 것처럼 이들 자원과 대화할 수 있다(예를 들면, 마우스 및 키보드 이벤트 등을 송신함). 이상적으로, 클라이언트 컴퓨터 시스템과 네트워크 서버 간의 이러한 대화는 마치 클라이언트 컴퓨터 시스템이 이 시스템 전용의 설치된 자원을 포함하는 데이터를 국부적으로 처리했던 것처럼 끊김 없이(seamlessly) 진행된다.
상술한 바와 같이 중앙집중식 공유 모델과 여러 면에서 유사한 다른 유형의 시스템은 네트워크를 통해 다른 클라이언트 컴퓨터 시스템과 애플리케이션 데이터를 공유하도록 구성된 서버(즉, "송신") 컴퓨터 시스템을 포함한다. 이 예에서, 서버는 "공동(collaboration) API" 등의 애플리케이션 프로그래밍 인터페이스(즉 "API")를 개시한 다음, 이 API를 이용하여 하나 이상의 클라이언트(즉, "수신") 컴퓨터 시스템과 데이터 뷰(view)를 공유한다. 그 다음 클라이언트 컴퓨터 시스템은, 상술한 중앙집중식 컴퓨팅 시나리오와 마찬가지로, 디스플레이를 위하여 국부적으로 공유된 데이터를 처리할 수 있다.
불행히도, 이들 유형의 시스템에서의 잠재적인 여러 가지 난점들이 네트워크를 통해 애플리케이션이 생성한 데이터를 대체로 적은 개수 보다는 많은 클라이언트 컴퓨터 시스템과 공유하는 것을 어렵게 할 수 있다. 예를 들면, 공유 컴퓨터 시스템이 데이터 공유용 애플리케이션을 개시할 때, 서버 애플리케이션은 공유 컴퓨터 시스템에서 포트 청취자(listener)를 개시한 다음, 그 포트를 통한 접속에 초대된 클라이언트를 찾기 위해 청취할 것이다. 그러면 각종 초대된 클라이언트는 이 포트를 통해 그 서버 애플리케이션에 접속될 수 있다. 불행히도, 다른 서버 애 플리케이션이 이 동일한 포트에서 다른 청취자를 구축하는 것이 금지될 수 있고, 따라서 다른 네트워크 접속을 수신할 것이다.
통상적으로 포트 당 오직 하나의 애플리케이션 청취자만이 존재하는 이유 중 하나는 TCP(Transmission Control Protocol) 환경 내에서는, 접속을 개시하는 데에 이용되는 유일한 데이터는 IP(Internet Protocol) 주소와 컴퓨터 포트 번호이기 때문이다. 이는 일반적으로 네트워크 서버가 단일 포트를 통하여 접속 데이터를 수신할 때는 애플리케이션을 구별하는 데에 충분하지 않은 정보이다. 특히, 다른 클라이언트가 다른 애플리케이션에 의해 예약된 단일 포트를 통해 애플리케이션의 다른 인스턴스와 접속하기를 시도한 경우에서도, 서버는 클라이언트의 접속 요청 데이터를 초기에 예약한 애플리케이션 인스턴스로 송신할 수 있을 뿐이다.
상술한 바와 같이 오직 하나의 애플리케이션이 통상적으로 소정의 포트를 예약하는 다른 이유는 이 소정의 애플리케이션이 포트 청취자를 개시할 때 세션 레벨(즉, 컴퓨터 액세스가 제한된 레벨)에서 동작하고 있을 수 있기 때문이다. 세션 레벨 실행은 컴퓨터 시스템에서의 다른 컴포넌트에의 애플리케이션의 노출을 최소화하는 상당히 제한된 동작 레벨이다. 시스템 레벨(예를 들면, 컴퓨터-전반에 걸친 액세스)에서의 동작이 서버에 동작적인 부담을 줄 수 있기 때문에 세션 모드에서 애플리케이션을 실행시키는 것이 일반적으로 바람직하다. 예를 들면, 시스템 레벨에서 애플리케이션을 실행하면 애플리케이션이 서버 상의 복수의 서로 다른 포트로 자유롭게 액세스할 수 있게 되지만; 애플리케이션에서의 위험물(예를 들면, 버그)은 전체 서버의 위험물이 될 수가 있다.
다른 애플리케이션이 세션 레벨 동작을 유지하면서, 동일한 정적인 포트에서 유래한 다른 동적이 포트들을 단순히 여는 것이 대안이 될 수 있다. 그러나, 동적인 포트들은 방화벽 내에서는 발견하거나 관리하는 것이 어렵기 때문에 일부 네트워크에서는 종종 이용가능한 선택사항조차도 아니다. 게다가, 네트워크 관리자는 동적인 포트만을 금지하는 것이 아니고, 마찬가지 이유로, 보안적인 문제 때문에 첫번째 인스턴스에서 이용가능한 정적인 포트의 개수 또한 제한할 수 있다. 그러므로, 모든 이용가능한 포트가 이미 예약되어 있다면 다른 애플리케이션은(동일한 포트를 예약한 애플리케이션의 두 번째 인스턴스까지도) 서버에서 또 다른 포트를 단순히 여는 것조차도 할 수 없게 된다.
따라서, 현행 자원 공유 기술에서는 해결해야 할 문제점들이 여러 가지 존재한다.
동일한 정적인 포트를 통하는 서로 다른 애플리케이션을 구별하면서도 여전히 세션 레벨에서 애플리케이션을 수행하는 시스템, 방법, 및 컴퓨터 프로그램 제품을 포함하는 본 발명의 구현은 본 기술 분야의 앞서 설명한 문제점들 중 하나 이상을 해결한다. 구체적으로는, 세션에서 동작하는 하나 이상의 서버 애플리케이션(및 이들의 다른 인스턴스들)은 대응하는 하나 이상의 고유한 접속 식별자(ID)가 등록될 수 있는데, 복수의 고유한 접속 ID가 하나의 포트에 연관될 수 있다. 그 다음 시스템 레벨에서 동작하는 포트 청취자는 이 할당된 포트를 통해 클라이언트 접속들을 수신할 때 고유한 접속 ID를 찾기 위한 청취를 할 수 있다. 고유한 접속 ID를 인식한다면, 포트 청취자는 세션 레벨에서 동작하고, 이 고유한 접속 ID에 등록된 대응하는 애플리케이션으로 접속용 소켓을 전달할 수 있다.
예를 들면, 서버 또는 공유 컴퓨터 관점에서 단일 포트를 통해 복수의 애플리케이션으로의 네트워크 접속을 제공하는 방법은 제1 접속 식별자를 제1 애플리케이션에 연관시키고 제2 접속 식별자를 제2 애플리케이션에 연관시키는 것을 포함한다. 이 경우, 제1 애플리케이션 및 제2 애플리케이션은 세션 레벨에서 동작하고 있다. 이 방법을 또한 클라이언트 접속 요청을 수신하는 것을 포함할 수 있는데 이 클라이언트 접속 요청은 포트에 대한 포트 번호, 공유 컴퓨터 시스템의 네트워크 주소, 및 제1 접속 식별자를 포함한다. 또한, 이 방법은 제1 애플리케이션이 그 포트를 통해 클라이언트와 접속하도록 클라이언트 접속 요청을 제1 애플리케이션에 전달하는 것을 포함할 수 있다. 또한, 이 방법은 그 포트 번호에 대응하는 포트를 통해 제2 애플리케이션으로의 다른 클라이언트 접속을 제공하는 것을 포함할 수 있다.
클라이언트 관점에서 본 발명의 구현에 따른 또 다른 방법은 서버 컴퓨터 시스템에서 제1 애플리케이션과 통신하기 위한 제1 초대를 수신하는 것을 포함할 수 있다. 이 제1 초대는 포트 번호 및 제1 접속 식별자를 적어도 포함한다. 이 방법은 또한 서버 컴퓨터 시스템에서 제2 애플리케이션과 통신하기 위한 제2 초대를 수신하는 것을 포함할 수 있는데, 이 제2 초대는 또한 포트 번호 및 제2 접속 식별자를 적어도 포함한다. 그 다음 클라이언트는 서버에서 포트 번호를 통해 제1 애플리케이션 및 제2 애플리케이션과 통신하기 위한 단계를 수행할 수 있는데, 구체적으로는, 동일한 동적 포트를 통하여 복수의 애플리케이션과 통신할 것이다.
이 발명의 상세한 설명 섹션은 아래 실시예 섹션에 더 기술될 개념들 중 간단한 형태의 선택을 소개하기 위해 제공된다. 이 발명의 상세한 설명 섹션은 청구된 요지의 핵심적인 특징 또는 필수적인 특징을 식별하는 것도 아니며, 청구된 요지의 범주를 결정하는 것을 돕는 데에 이용되는 것도 아니라고 의도된다.
본 발명의 추가적인 특징 및 이점은 이하의 설명에서 기술될 것이며 일부는 이 설명으로부터 명백해질 것이거나 본 발명의 실행에 의해 학습될 수 있다. 본 발명의 특징 및 이점은 첨부된 특허 청구 범위에 특별히 지정된 기구들 및 그 조합에 의해 실현되고 획득될 수 있다. 본 발명의 이러한 및 다른 특징은 이하의 설명 및 첨부된 특허 청구 범위로부터 보다 완전히 명백해질 것이거나, 이하 설명될 바와 같이 본 발명의 실행에 의해 학습될 수 있다.
도 1a는 본 발명의 구현에 따라 복수의 애플리케이션이 단일 포트를 통해 대응하는 복수의 클라이언트와 통신하는 개략적인 개관을 도시하는 도면.
도 1b는 본 발명의 구현에 따라, 복수의 애플리케이션이 동일한 포트 청취 서비스를 이용하여 단일 포트를 통해 통신하는 것에 관련된 고유한 접속 ID를 등록하는 개략적인 도면.
도 1c는 본 발명의 구현에 따라, 복수의 애플리케이션이 단일 포트를 통한 통신에 클라이언트를 초대하며, 이 초대는 포트 청취 서비스에 의해 제공된 데이터를 포함하는 개략적인 도면.
도 1d는 본 발명의 구현에 따라, 도 1b 내지 도 1c에서, 복수의 클라이언트가 단일 포트를 통해 복수의 애플리케이션과 통신하기를 시도하는 개략적인 도면.
도 2는 본 발명의 구현에 따라, 서버의 관점에서 단일 포트를 통해 복수의 애플리케이션에서 클라이언트들과 통신하기 위한 방법에서의 일련의 행위의 흐름도.
도 3은 본 발명의 구현에 따라, 클라이언트 관점에서, 서버에서 단일 포트를 통해 복수의 서버 애플리케이션과 통신하기 위한 방법에서의 일련의 하나 이상의 행위 및 단계의 흐름도.
본 발명의 상술한 이점과 특징 및 그 외의 이점과 특징을 획득할 수 있는 방식을 기술하기 위하여, 앞서 간단히 설명한 본 발명의 보다 구체적인 설명은 첨부된 도면에 도시된 본 발명의 특정 실시예를 참조함으로써 이루어질 것이다. 이들 도면이 본 발명의 통상적인 실시예만을 도시하고 있으며 따라서 본 발명의 범주를 제한하는 것이라고 고려되지 않는다는 것을 이해한다면, 본 발명은 첨부된 도면을 이용함으로써 보다 구체적이고 상세히 기술되고 설명될 것이다.
본 발명의 구현은 동일한 정적인 포트를 통하는 서로 다른 애플리케이션들을 구별하면서도 여전히 이 애플리케이션을 세션 레벨에서 수행하는 시스템, 방법, 및 컴퓨터 프로그램 제품으로 확장된다. 구체적으로는, 세션에서 동작하는 하나 이상의 서버 애플리케이션(및 이들의 다른 인스턴스들)은 대응하는 하나 이상의 고유한 접속 식별자(ID)가 등록될 수 있는데, 복수의 고유한 접속 ID가 하나의 포트에 연 관될 수 있다. 그 다음 시스템 레벨에서 동작하는 포트 청취자는 이 할당된 포트를 통해 클라이언트 접속들을 수신할 때 고유한 접속 ID를 찾기 위한 청취를 할 수 있다. 고유한 접속 ID를 인식한다면, 포트 청취자는 세션 레벨에서 동작하고, 이 고유한 접속 ID에 등록된 대응하는 애플리케이션에 접속용 소켓을 전달할 수 있다.
이하의 설명 및 특허 청구 범위로부터 보다 완전히 이해될 바와 같이, 이들 특징 및 다른 특징은 이 특징을 이용할 수 없을 때보다 훨씬 훌륭한 네트워크 통신 융통성을 제공하는 동시에, 중요한 보안 사항은 유지시켜준다. 예를 들면, 네트워크 관리자는 동적인 포트 할당을 이용하거나, 시스템 레벨에서 이들 네트워크 애플리케이션을 실행하지 않고도 복수의 네트워크 애플리케이션이 동일한 정적 포트를 통해 통신하게 할 수 있다. 일면에서는, 이는 네트워크 관리자가 중요한 애플리케이션이 네트워크 통신을 하지 못하게 된다는 부당한 걱정 없이 포트의 개수가 상당히 제한된 상태를 유지할 수 있게 해줄 수 있다. 또한, 네트워크 애플리케이션이 세션 레벨에서의 동작으로 통신을 할 수 있기 때문에, 소정 애플리케이션에 대한 결함이 시스템 전반에 전이될 것에 대한 걱정이 최소화된다.
도 1a는 본 발명의 양태에 따른 시스템이 동작할 수 있는 방식의 일례의 개관을 도시한다. 구체적으로는, 도 1a는 애플리케이션들(115 및 120) 각각이 동일한 정적인 포트(140)를 통해 대응하는 서로 다른 클라이언트들(145, 150)과 통신하는 것을 나타내고 있다. 각각의 애플리케이션들(115 및 120)은 각 애플리케이션이, 각각, 개별적인 대응하는 네트워크 통신 소켓들(190, 195)과 연관되기 때문에 적어도 일부가 이를 행할 수 있다.
구체적으로는, 통신 소켓들(190, 195)은 고유한 접속 식별자(본원에서 "고유 ID"라고도 칭하는 "ID")에 연관되는데, 이 둘 모두 동일한 정적인 포트(140)를 이용하도록 등록된다. 클라이언트가 명확하게 식별가능하며 실행이 허용되는 소정의 애플리케이션의 인스턴스만이 존재하는 경우 등의 일부 경우에서는, 고유한 ID는 클라이언트 사용자 이름 또는 이메일 주소를 포함할 수 있다. 다른 경우, 고유한 접속 ID는 무작위로 생성된 숫자이다. 어떤 경우라도, 포트(140)가 클라이언트(145)로부터 애플리케이션(115)을 향하는 TCP 통신을 수신할 때, 포트(140)에서 포트 청취 서비스(135, 도 1b)에 의해 열린 청취자는 이 클라이언트 통신을 애플리케이션(115)으로 지정할지 애플리케이션(120)으로 지정할지(또는 도시되지 않은 몇몇의 다른 애플리케이션으로 지정할지)를 식별하는 데에 접속 ID를 이용할 수 있다.
도 1b는 복수의 애플리케이션이 서버에서 청취자 서비스에 등록하면서도 세션 레벨에서 동작하는 것을 유지할 수 있는 방식의 보다 상세한 개략적인 개관을 도시한다. 예비적인 사항으로서, 다음의 설명 및 특허 청구범위는 "서버"를 자주 참조할 것이지만, 이는 일례일 뿐이며 한정되는 것은 아니라고 인식될 것이다. 구체적으로는, 일반적으로 이해되는 바와 같이, 서버(100)는 반드시 네트워크 서버일 필요는 없으며, 단순히 네트워크를 통해 다른 클라이언트 컴퓨터 시스템과 데이터를 공유함으로써 공유 컴퓨터 시스템으로서 동작하는 다른 클라이언트 컴퓨터 시스템이 될 수 있다.
그렇지만, 도 1b는 서버(즉, "공유 컴퓨터")(100)가 적어도 동작의 세션 레 벨(105)(즉, 컴퓨터 액세스가 제한된 레벨) 및 동작의 시스템 레벨(110)(즉, "세션 0")을 포함하는 것으로 나타내고 있다. 일반적으로, 동작의 세션 레벨은 통상적으로 애플리케이션이 컴퓨터 상에서 실행되고 동작의 소정의 "세션"에 대하여 제한된 파라미터로 메모리 및 하드웨어로의 액세스가 제한된 모드에 있다. 이와는 다르게, 동작의 시스템 레벨은 코드가 컴퓨터 시스템의 모든 하드웨어 및 메모리로의 직접적인 액세스를 할 수 있게 하는 처리 모드에 있다.
도 1b는 또한 서버(100)가 세션 레벨(105)에서 동작하는 서버 애플리케이션(115 및 120)(애플리케이션(120)은 애플리케이션(115)의 다른 인스턴스일 수 있거나, 완전히 다른 애플리케이션일 수 있다)을 포함하는 것을 나타내고 있다. 애플리케이션들(115 및 120)은 서버(100)에 설치될 수 있는 단지 예시적인 복수의 서버 애플리케이션들이며, 서버(100)에는 단일 정적 포트를 통해 통신하는 것으로 지정된 보다 많은 서버 애플리케이션이 존재할 수 있다. 애플리케이션들(115, 120)의 예들은 서버(100)로부터 하나 이상의 다른 클라이언트로 데이터 뷰를 브로드캐스팅(broadcasting)하기 위한 네트워크 표시 프로그램을 포함할 수 있으며, 또한 일반적인 워드 프로세싱, 스프레드시트 프로그램 또는 데이터베이스 프로그램 등도 포함할 수 있다.
도 1b는 또한 서버(100)가 포트 청취 서비스(135)를 포함하는 것을 나타내고 있다. 일 구현에서, 서버(100)는 다시 시작 또는 처음 부팅시에 포트 청취 서비스(135)를 개시하며, 이에 의해 청취 서비스(135)는 시스템 레지스트리로부터 임의의 적절한 구성 데이터(도시 생략)를 판독한다. 일반적으로, 청취 서비스(135)는 시스템 레지스트리(도시 생략)에 지정된 만큼의 개수의 정적 포트로의 액세스를 보장하기 위하여 시스템(110) 레벨에서 동작하면서 이들 다양한 개시 기능을 수행한다. 구체적으로는, 서버(100)는 도 1a의 포트(140) 등의 하나 이상의 정적인 포트에 청취용 청취 서비스(135)를 할당한다. 또한, 서버(100)는 복수의 다른 정적인 포트(도시 생략)로 청취용 청취 서비스(135)를 할당할 수 있다. 예를 들면, 내부 네트워크 및 외부 네트워크를 서비스하는 네트워크 카드 등의 복수의 네트워크 카드를 포함하는 컴퓨터 시스템은 이 두 가지 카드 및 이 두 가지 네트워크에 대하여 복수의 정적인 포트에 동일한 청취 서비스를 구축할 수 있다. 소정의 포트를 통해 통신할 필요가 있는 서버 애플리케이션이 초기화되었을 때, 서버 애플리케이션은 "준비" 메시지(예를 들면, 참조부호(123))를 적절한 포트 청취 서비스(예를 들면, 참조부호(135))로 송신할 수 있다. 준비 메시지는 여러 가지 것들이 일어나게 할 수 있다. 예를 들면, 일 구현에서, 준비 메시지는 청취 서비스가 접속 ID API(도시 생략)를 호출하게 하면, 그 다음 이 API가 고유한 접속 ID를 생성하는데, 이러한 ID는 무작위로 생성된 숫자 등의, 임의의 적절한 안전한 식별자가 될 수 있다. 이 접속 ID는 시스템 메모리에 저장되며, 청취 서비스와 연관된 접속 ID 인덱스(130)로 참조된다. 예를 들면, 청취 서비스는 접속 ID API로부터 이 고유한 접속 ID를 검색한 다음, 이 접속 ID를, 접속 ID 인덱스(130) 등의 적절한 접속 ID 인덱스 또는 테이블의 애플리케이션에 대한 식별자와 상호관련시킨다.
구체적으로는, 도 1b는 서버 애플리케이션(120)이 준비 메시지(123)를 포트 청취 서비스(135)로 송신하는 한편, 이 과정에서 또한 동반되는 서버 애플리케이 션(115)은 준비 메시지(113)를 이미 송신하였음을 나타내고 있다. 일반적으로, 서버 애플리케이션은 소켓(도 1a 및 1d의 참조번호(190, 195))을 통해 준비 메시지를 송신하는데, 이 소켓들은 결국에는 서버(100)가 서버 애플리케이션에 소켓의 제어를 제공한다면 서버 애플리케이션에 의해 이용될 것이다. 이 메시지를 송신할 때,서버 애플리케이션은 또한 이 애플리케이션에 대한 식별자를 포함할 수 있는데, 이 식별자는 생성된 접속 ID와 상호관련될 수 있다. 예를 들면, 도 1b는 메시지(113)가 애플리케이션 식별자 "App(115)"를 포함하는 반면, 메시지(123)는 애플리케이션 식별자 "App(120)"를 포함하는 것을 나타내고 있다.
준비 메시지는 또한 적절한 성취 서비스가 서버(100)의 세션 레벨(105)과 시스템 레벨(110) 간의 인터페이스를 위한 컴포넌트 객체, 또는 그 동등물을 구축하게 할 수 있다. 일 구현에서는, 이 객체가 COM(Component Operating Model) 객체인 반면, 다른 구현에서는 이 컴포넌트 객체는 RPC(Remote Procedure Call) 메카니즘, 명명된 파이프, 또는 임의의 다른 상호-처리 통신 메카니즘이 될 수 있다. 그렇지만, 도 1b는 포트 청취 서비스(135)가 인덱스(130)로 검색되고 접속 ID API에 의해 생성되는 고유한 접속 ID(160) 및 애플리케이션(115)(즉, "App(115)")의 식별자 모두에 대한 참조를 포함하는 컴포넌트 객체(155)를 호스팅하는 것을 나타내고 있다.
그 다음 생성된 컴포넌트 객체는 이 고유한 ID를 클라이언트 접속에 추후에 이용되기 위하여 서버 애플리케이션에 반환할 수 있다. 예를 들면, 도 1b는 컴포넌트(155)가 메시지(117)를 애플리케이션(115)으로 송신하며, 메시지(117)는 고유 한 ID(160)를 포함하는 것을 나타내고 있다. 몇몇의 경우, 메시지(117)는 다른 클라이언트와의 접속에 이용될 네트워크 주소 및 포트 번호(즉, 포트(140))를 또한 포함할 수 있다. 그러나, 가장 일반적으로, 사전-접속 데이터는 포트(140)에 관련된 포트 번호(도시 생략) 및 고유한 접속 ID(160)를 적어도 포함할 수 있다. 언급한 바와 같이, 서버 애플리케이션은 최종적으로 사전-접속 데이터를 클라이언트에 송신한다.
예를 들면, 도 1c는 애플리케이션(115)이 초대 메시지(163)를 클라이언트(145)에 송신하며, 이 초대 메시지(163)는 사전-접속 데이터(170)를 포함하는 것을 나타내고 있다. 그러나, 애플리케이션(115)은 이러한 사전-접속 데이터(170)를 미리 송신하는 특정 단계를 반드시 수행할 필요는 없다. 특히, 몇몇의 구현에서는 클라이언트(145)가, 서버가 이 클라이언트에게 사전-접속 데이터(170)를 실제로 송신하지 않고서도 이러한 사전-접속 데이터(170)에서 검색된 식별자를 이미 알고 있을 수 있다. 예를 들면, 식별자는 이 식별자를 (애플리케이션(115)에 잘 알려진) 클라이언트 컴퓨터 이름 또는 클라이언트(145)에 로그인 된 사용자의 사용자 이름에 기초하는 것 등의 잘 공지된 규칙을 구축함으로써 이루어질 수 있다. 그 다음 서버는 소정의 미리-구축된 프로토콜을 통하여 사용자 이름을, 포트 청취 서비스(135)를 통하는 접속을 수락하는 애플리케이션(115)과 같은 적절한 애플리케이션에 연관시켰음을 알 것이다.
어떤 경우라도, 도 1c는 또한 애플리케이션(120)이 초대 메시지(167)를 클라이언트(150)에 송신하며, 이 초대 메시지(167)는 사전-접속 데이터(175)를 포함하 는 것을 나타내고 있다. 일반적으로, 메시지(163 및 167)는 이메일, 인스턴트 메시징, 또는 몇몇의 기타 네트워크 통신 형태 등의 임의의 유형의 데이터 통신을 포함할 수 있다. 적어도 하나의 구현에서, 메시지(163 및 167)는 대응하는 클라이언트(145 및 150)에 설치된(도시되지 않은) 공동 API로 스트리밍되는 XML(extensible markup language) 문서를 포함한다. 일 구현에서, 사전-접속 데이터, 구체적으로 고유한 접속 ID(160 및 165)는 또한 베이스64 텍스트로서 더 나타난다.
일반적으로, 소정의 클라이언트 애플리케이션은 서버(100)와 통신하기 위한 반환 네트워크 주소 및 포트 번호를 식별하는 것 이외에 이 애플리케이션이 수신하였던 소정의 사전-접속 데이터를 판독하고, 파싱하고, 처리하고, 해석할 필요는 없다. 몇몇의 경우, 클라이언트는 단순히 이 사전-접속 데이터를 이용하여 일반적으로 이용되는 정적 포트를 통해 특정 애플리케이션에 접속할 수 있다. 예를 들면, 단일한 소정의 클라이언트는 동일한 서버에서 서로 다른 서버 애플리케이션들로부터 몇몇의 서로 다른 초대 메시지를 수신할 수 있다. 그 클라이언트에 의해 적절히 이용된다면, 서로 다른 세트의 사전-접속 데이터 각각이 클라이언트로 하여금 동일한 서버에서 동일한 정적인 포트를 통하여 몇몇의 대응하는 서로 다른 서버 애플리케이션 접속을 가지게 할 수 있다.
예를 들면, 도 1d는 클라이언트(145)가 네트워크(103)를 통해 접속 요청(180)을 송신함으로써 서버(100)와의 접속을 요청하며, 이 접속 요청(180)은 사전-접속 데이터(170)를 포함하는 것을 나타내고 있다. 앞서 언급한 바와 같이, 이 사전-접속 데이터는 서버(100)에 대한 네트워크 주소, 포트(140)에 대한 포트 번 호, 및 애플리케이션(115)에 의해 이전에 송신된 고유한 접속 ID(160)를 포함한다. 이들 데이터 조각 각각은 접속 요청을 포트 배후에 있는 적절한 애플리케이션으로 특별히 지정하는 데에 이용될 수 있다. 예를 들면, 네트워크 주소는 메시지(180)에 대한 정보를 서버(100)에 도착하도록 라우팅하는 것을 제공하며, 포트 번호는 서버(100)로의 특정된 입구를 식별하고, 고유한 ID(160)는 접속을 처리하는 데에 이용되는 애플리케이션의 식별을 제공한다.
그러므로, 예를 들면, 도 1d는 수신 시에, (예를 들면, 청취 서비스(135)에 의해 할당된 도시되지 않은 청취자에 의해) 포트(140)에서 청취 서비스(135)가 소켓(190)을 애플리케이션(115)으로 전달하고, 이 소켓(190)은 접속 요청(180)에 제공된 접속 ID(160)에 대응하는 것을 나타내고 있다. 일 구현에서, 이러한 전이는 소켓(190)의 핸들을 애플리케이션(115)으로 전달하는 것을 포함할 수 있다. 그러므로, 애플리케이션(115)은 현재 소켓(190)을 통해 제어되고 있으며, 클라이언트(145)(및 접속 요청에 있는 고유한 ID(160)를 전송하는 임의의 다른 클라이언트)와 포트(140)를 통해 자유롭게 통신할 수 있다. 이러한 통신은 애플리케이션과 원격 클라이언트 간의 임의의 적절한 통신 프로토콜을 이용하여 일어날 수 있지만, 이러한 경우에 몇몇의 일반적으로 이용되는 프로토콜은 원격 데스크톱 프로토콜("RDP") 및 원격 프로시저 호출("RPC")을 포함할 수 있다.
본원에 기술된 바와 같이, 복수의 애플리케이션이 포트(140)를 통하여 이 클라이언트 또는 임의의 다른 클라이언트와 통신할 수 있다. 그렇지만, 이것이 일어나기 위해서는, 이러한 접속 각각은 자신만의 고유한 접속 ID를 포함하여, 서로 다 른 애플리케이션, 및 동일한 애플리케이션의 다른 인스턴스까지도 구별될 수 있도록 할 필요가 있을 것이다. 예를 들면, 도 1d는 또한 클라이언트(150)가 네트워크(103)를 통해 접속 요청(183)을 서버(100)에 송신하는 것을 나타내고 있다. 이러한 경우, 접속 요청(183)은 어떠한 사전-접속 데이터도 포함하지 않으므로, 일반적인 TCP 통신에서 요구되는 바와 같이 포트(140)에 대한 포트 번호 및 네트워크 주소 만을 포함할 수 있다. 그러나, 접속 요청(183)이 어떠한 사전-접속 데이터도 포함하지 않기 때문에, 청취 서비스(135)는 애플리케이션에 소켓을 제공할 수 없다. 오히려, 도 1d는 청취 서비스(135)가 클라이언트(150)에 대한 소켓을 "미처리 접속"(185) 저장소로 전달하는 것을 나타내고 있다.
특히, 청취 서비스(135)는 포트(140)를 통해 청취 서비스(135)와 클라이언트(150) 간에 일어나는 일시적인 네트워크 접속을 허용하지만, 클라이언트(150)가 그 데이터를 제공할 때까지는 임의의 특정 애플리케이션과의 통신을 허용하지 않는다. 몇몇의 경우, 청취 서비스(135)는 심지어는 이 접속을 거부하거나, 사전-접속 데이터를 수신할 때까지 특정 기간 동안 단지 기다리기만 할 수도 있다. 일단 클라이언트(150)가 이러한 사전-접속 데이터(예를 들면, 데이터(175))를 제공한다면, 청취 서비스(135)는 고유한 ID가 정확한지를 판정할 수 있고, 정확하다면 이 고유한 ID에 대한 소켓을 애플리케이션(120) 등의 적절한 애플리케이션에 전달할 수 있다.
따라서, 도 1a 내지 도 1d는 동일한 정적인 포트를 통해 통신을 하기 위하여 복수의 애플리케이션을 세션 레벨에서 동작시키는 데에 이용될 수 있는 복수의 서 로 다른 컴포넌트 및 개요를 도시하고 있다. 상술한 바와 같이, 이들 컴포넌트 및 개요는 접속을 특정 애플리케이션에 연관시키는 데에 이용될 수 있는 추가적인 사전-접속 데이터를 이용하기 때문에 이러한 기능을 적어도 일부를 활성화 한다. 복수의 서버 애플리케이션이 동일한 포트를 이용할 수 있게 하는 것 외에도, 이 기능은 또한 특정 유형의 DOS(denial-of-service)형의 공격을 저지하는 데에도 이용될 수 있음을 인식할 것이다.
구체적으로는, 몇몇 유형의 DOS 공격은 외부 행위자가 컴퓨터 시스템에 네트워크 접속 요청으로 지나치게 부하를 걸 때 일어날 수 있는데, 이는 결국 컴퓨터 시스템을 종료시키고, 일부 경우에는, 행위자가 컴퓨터 상의 시스템 레벨 정보를 손상시킬 수 있도록 할 수 있다. 상술한 컴포넌트는 사전-접속 데이터를 포함하지 않는 접속 요청은 청취 서비스(135)가 절대로 그러한 서버 애플리케이션으로의 접속용 소켓의 제어를 제공하지 않게 하기 때문에 이러한 종류의 공격을 차단하는 것을 도울 수 있다. 오히려, 각 접속은 사전-접속 데이터가 접속 요청의 첫 번째 패킷서 발견되지 않았을 경우 명백하게 거부되거나, 미처리 접속 저장소(185)에 상주하는 어느 정도의 소정의 기간이 지난 후에 거부될 수 있다. 따라서, 본 발명의 구현은 여러 가지 유용한 보안 특징을 제공할 수 있다.
상술한 것 이외에도, 본 발명의 구현은 또한 특정 방법을 수행하기 위한 하나 이상의 기능적인 단계 및 대응하는 비-기능적인 행위에 의하여 기술될 수 있다. 구체적으로, 도 2 및 도 3은, 각각, 서버(예를 들면, 서버(100)) 및 클라이언트(예를 들면, 클라이언트(145, 150)) 관점에서, 서버에서 단일한 정적인 포트를 통해 복수의 서버 애플리케이션과 통신하기 위한 일련의 행위 및/또는 단계를 포함하는 방법을 나타내고 있다. 도 2와 도 3 및 이하의 설명은 또한 용어 "제1" 및/또는 "제2"에 대한 참조를 몇 가지 포함한다. 이들 지정은 본래 특정 순서가 아닌, 용어들 간의 구별을 암시하기 위한 것임을 인식해야 한다. 예를 들면, "제1 애플리케이션"은 순차적으로 동작하거나 이용되는 첫 번째 애플리케이션일 수도 있고 아닐 수도 있지만, 최소한 "제2 애플리케이션"과는 다른 것이다. 마찬가지로, "제2 애플리케이션"은 "제1 애플리케이션"과 다르기만 하면 되며, 따라서 반드시 "제1 애플리케이션" 이전 또는 이후에 이용되거나 액세스 되어야 하는 애플리케이션이 아니어도 된다.
어느 경우라도, 도 2는 서버(즉, 공유 컴퓨터 시스템)의 관점에서, 복수의 애플리케이션에 단일 포트로의 통신적인 액세스를 제공하는 방법은 제1 접속 식별자를 제1 애플리케이션과 연관시키는 행위(200)를 포함한다는 것을 나타내고 있다. 행위(200)는 제1 접속 식별자를 제1 애플리케이션과 연관시키고 제2 접속 식별자를 제2 애플리케이션과 연관시키는 단계를 포함하며, 이 제1 애플리케이션 및 제2 애플리케이션은 세션 레벨에서 동작하고 있다. 예를 들면, 서버(100)의 시스템 레벨(110)에서 동작하고 있는 포트 청취 서비스(135)는 서버(100)의 세션 레벨(105)에서 실행되고 있는 애플리케이션의 인스턴스들(예를 들면, 참조번호(115, 120))로부터 준비 메시지(113 및 123)를 수신한다. 서비스(135)는 또한 이들 애플리케이션에 의해 생성되는 대응하는 컴포넌트 객체(예를 들면, 참조번호(155, 157))를 호스팅하고, 메시지(113, 123)의 애플리케이션 식별자(예를 들면, "App ID(115)", "App ID(120)")를 대응하는 고유한 접속 ID(160 및 165)와 연관시킨다.
또한, 도 2는 방법이 접속 식별자를 가지는 클라이언트 접속 요청을 수신하는 행위(210)를 포함하는 것을 나타내고 있다. 행위(210)는 클라이언트 접속 요청을 수신하는 것을 포함하는데, 이 클라이언트 접속 요청은 포트 번호, 공유 컴퓨터 시스템에 대한 네트워크 주소, 및 제1 접속 식별자를 포함한다. 예를 들면, 애플리케이션(115)은 XML 데이터 스트림을 통한 메시지(167)를 이용하여 사전-접속 데이터(170)를 클라이언트(145)에 송신한다. 그 다음 클라이언트(145)는 접속 요청(180)을 서버(100)에 송신하는데, 여기서 요청(180)은 메시지(167)로 수신된 사전-접속 데이터(170)를 포함한다.
도 2는 또한 방법이 제1 애플리케이션으로 클라이언트 접속 요청을 전달하여, 제1 애플리케이션이 이 포트를 통해 클라이언트에 접속하도록 하는 행위(220)를 포함하는 것을 나타내고 있다. 예를 들면, 메시지(180)의 사전-접속 데이터(170)에서 발견된 고유한 접속 ID(160)을 식별할 때, 청취 서비스(135)는 고유한 접속 ID(160)와 연관되는 소켓(190)의 제어를 서버 애플리케이션(115)에 전달한다. 또한, 도 2는 이 방법이 동일한 포트를 통해 또 다른 클라이언트 접속을 제공하는 행위(230)를 포함함을 나타내고 있다. 행위(230)는 포트 번호에 대응하는 포트를 통해 제2 애플리케이션에 또 다른 클라이언트 접속을 제공하는 것을 포함한다.
예를 들면, 도 1d에 도시된 바와 같이, 클라이언트(150)는 자신이 메시지(163)로 이전에 수신하였던 사전-접속 데이터(175) 중 어떤 것도 포함하지 않는 접속 요청(183)을 송신한다. 메시지(183)를 수신한다면, 청취 서비스(135)는 클라 이언트(150)와 서버(100) 간의 접속을 허용하지만, 적어도 일부가 요청(180)으로부터 즉시 식별할 수 있는 것은 아니기 때문에, 어떠한 애플리케이션과의 접속도 허용하지는 않는다. 따라서, 청취 서비스(135)는 클라이언트(150)와 고유한 접속 ID(165)에 대응하는 소켓(195)과 이 접속 요청을 연관시키고, 미처리 접속 저장소(185)에 소켓(195)을 저장한다. 그 다음 청취 서비스(135)는 사전-접속 데이터(175)를 수신할 때까지 이 접속을 홀딩(hold)할 수도 있고 어느 정도의 소정의 기간 이후에 이 접속을 단순히 거부할 수도 있다.
도 3은 본 발명의 구현에 따른, 공유 컴퓨터 시스템에서 단일 포트를 통해 복수의 애플리케이션과 통신하기 위한 대안적인 방법을 클라이언트 관점에서 나타낸다. 구체적으로, 도 3은 이 방법이 제1 애플리케이션과 통신하기 위한 초대를 수신하는 행위(300)를 포함할 수 있음을 나타내고 있다. 행위(300)는 서버 컴퓨터 시스템에서 제1 애플리케이션과 통신하기 위한 제1 초대를 수신하는 것을 포함하며, 이 제1 초대는 포트 번호 및 제1 접속 식별자를 적어도 포함한다. 예를 들면, 클라이언트(145)는 서버(100)에서 애플리케이션(115)과 접속하기 위한 초대를 포함하는 메시지(167)를 수신한다. 메시지(167)는 또한 애플리케이션(115)과 연관된 고유한 접속 ID(160), 서버(100)의 네트워크 주소, 및 포트(140)와 연관된 포트 번호를 적어도 포함하는 사전-접속 데이터를 포함한다.
또한, 도 3은 이 방법이 제2 애플리케이션과 통신하기 위한 초대를 수신하는 행위(310)를 포함함을 나타내고 있다. 행위(310)는 서버 컴퓨터 시스템에서 제2 애플리케이션과 통신하기 위한 제2 초대를 수신하는 것을 포함하며, 이 제2 초대는 포트 번호 및 제2 접속 식별자를 적어도 포함한다. 예를 들면, 명확하게 도시되지는 않았지만, 클라이언트(145)는 애플리케이션(120)과 연관된 다른 고유한 ID(165)를 포함하는 초대(163) 또한 수신할 수 있다. 메시지(167)에서와 같이, 메시지(163)는 서버(100)에 대한 네트워크 주소, 및 포트(140)에 대한 포트 번호 또한 포함한다. 그러므로, 이 경우 메시지(163 및 167)들은 적어도 이들의 대응하는 고유한 접속 ID에 의해 구별된다(즉, 160은 165와 비교된다).
또한, 도 3은 방법이 서버에서 동일한 포트를 통하여 제1 애플리케이션 및 제2 애플리케이션과 통신하기 위한 단계(340)를 포함함을 나타내고 있다. 단계(340)는 포트 번호를 통하여 서버에서 제1 애플리케이션 및 제2 애플리케이션과 통신하여, 클라이언트가 네트워크 상에서 서버의 동일한 정적인 포트를 통하여 복수의 애플리케이션과 통신할 수 있도록 하는 것을 포함한다. 예를 들면, 클라이언트(145)는 초대(163 및 167)로 동작하는 경우, 서버 애플리케이션(115 및 120)과 포트(140)를 통해 통신할 수 있다.
단계(340)는 이 단계를 수행하기 위한 대응하는 행위들을 임의의 개수만큼 또는 임의의 순서로 포함할 수 있지만, 도 3은 제1 접속 식별자를 포함하는 제1 접속 요청을 송신하는 행위(320)를 포함함을 나타내고 있다. 행위(320)는 제1 접속 요청을 서버에 송신하는 것을 포함하며, 제1 접속 요청은 제1 접속 식별자를 포함한다. 예를 들면, 클라이언트(145)는 포트(140)를 통하여 메시지(180)를 서버(100)에 송신할 수 있는데, 메시지(180)는 사전-접속 데이터(170)를 포함하며 사전-접속 데이터(170)는 고유한 접속 ID(160)를 포함한다.
도 3은 또한 단계(340)가 제2 접속 식별자를 포함하는 제2 접속 요청을 송신하는 행위(330)를 포함함을 나타내고 있다. 행위(330)는 제2 접속 요청을 서버에 송신하는 것을 포함하며, 제2 접속 요청은 제2 접속 식별자를 포함한다. 예를 들면, 클라이언트(145)는 접속 요청 메시지와 유사한 다른 메시지(도시 생략)를 서버(100)에 송신할 수 있는데, 이 유사한 접속 요청은 적어도 고유한 접속 ID(165)를 포함하는 사전-접속 데이터(175)를 포함한다는 점이 상이하다.
이들 제1 접속 요청 및 제2 접속 요청을 클라이언트(145)로부터 수신할 때, 및 각 요청에 연관된 고유한 접속 ID를 식별할 때, 청취 서비스(135)는 서로 다른 애플리케이션 인스턴스(예를 들면, 참조번호(115, 120)) 각각으로의 접속 각각에 대하여 서로 다른 통신 소켓의 제어를 할당할 수 있다. 이와 같이, 애플리케이션(115 및 120)은 동일한 정적인 포트, 즉, 예를 들면, 포트(140)를 통하는 클라이언트와의 개별적인 접속을 가진다.
그러므로, 도 2 및 도 3에 기술된 방법은 클라이언트와 서버가 동일한 서버 포트를 통해 복수의 애플리케이션에 효과적으로 접속할 수 있는 여러 가지 방식을 제공한다. 앞서 언급한 바와 같이, 이는 본 시스템에, 특히 제한된 개수의 정적인 포트가 방화벽을 구현하는 네트워크 시스템 등에서의 문제를 발생시킬 수 있는 경우에, 여러 가지 이점을 제공한다.
본 발명의 실시예는 이하 보다 상세히 기술될 각종 컴퓨터 하드웨어를 포함하는 특수 목적 또는 범용 컴퓨터를 포함할 수 있다. 특히, 본 발명의 범주 내의 실시예들은 또한 컴퓨터-실행가능 명령어 또는 데이터 구조를 반송하거나 저장하기 위한 컴퓨터-판독가능 매체를 포함한다. 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 매체라면 어느 것이든지 이러한 컴퓨터-판독가능 매체가 될 수 있다. 예로서, 이러한 컴퓨터-판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 기타 자기 디스크 저장 장치, 또는 범용 또는 특수 목적의 컴퓨터에 의해 액세스될 수 있으며 컴퓨터-실행가능 명령어나 데이터 구조 형태로 원하는 프로그램 코드 수단을 반송하거나 저장하는 데에 이용될 수 있는 임의의 기타 매체를 포함할 수 있지만 이에 한정되지 않는다.
정보가 네트워크 또는 기타 통신 접속(유선, 무선, 또는 유선이나 무선의 조합 중 하나)을 통해 컴퓨터에 전송되거나 제공될 때, 컴퓨터는 이 접속을 컴퓨터-판독가능 매체로서 적절하다고 여긴다. 따라서, 임의의 이러한 접속은 컴퓨터-판독가능 매체라 칭하는 것이 적절하다. 상술한 것들의 조합은 컴퓨터-판독가능 매체의 범주 내에 또한 포함되어야 한다.
컴퓨터-실행가능 명령어는, 예를 들면, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 처리 장치가 특정 기능 또는 기능들의 그룹을 수행하게 하는 명령어 및 데이터를 포함한다. 본원의 요지가 구조적인 특징 및/또는 방법론적인 행위에 특정된 언어로 기술되었지만, 첨부된 특허 청구 범위에 정의된 요지는 상술한 특정 특징 또는 행위로 반드시 제한될 필요는 없다고 이해되어야 한다. 오히려, 상술한 특정 특징 및 행위는 청구 범위를 구현하는 예시적인 형태로서 개시된다.
본 발명은 그 사상 또는 본질적인 특징에서 벗어나지 않는 다른 특수한 형태로 구현될 수 있다. 기술된 실시예는 모든 면에서 단지 예시적인 것이며 제한적이 지 않다고 고려되어야 한다. 그러므로, 본 발명의 범주는 전술한 설명에 의해서기 보다는 첨부된 특허 청구 범위에 의해 지정된다. 이 특허 청구 범위의 동등물의 범위 및 수단 내에 포함되는 모든 변경은 본원 발명의 범주 내에 포함되어야 한다.

Claims (20)

  1. 네트워크를 통해 세션 레벨에서 동작하는 복수의 애플리케이션과 하나 이상의 클라이언트 컴퓨터 시스템 간의 통신을 제공하도록 구성된 공유 컴퓨터 시스템에서, 단일 포트를 통해 상기 공유 컴퓨터 시스템에서 상기 복수의 애플리케이션으로의 네트워크 접속을 제공하는 방법으로서,
    제1 접속 식별자를 제1 애플리케이션에 연관시키고 제2 접속 식별자를 제2 애플리케이션에 연관시키는 행위 - 상기 제1 애플리케이션 및 제2 애플리케이션은 세션 레벨에서 동작하고 있음 - ,
    클라이언트 접속 요청을 수신하는 행위 - 상기 클라이언트 접속 요청은 포트에 연관된 포트 번호, 상기 공유 컴퓨터 시스템의 네트워크 주소, 및 상기 제1 접속 식별자를 포함함 - ,
    상기 제1 애플리케이션이 상기 포트를 통해 상기 클라이언트와 접속하도록 상기 클라이언트 접속 요청을 상기 제1 애플리케이션에 전달하는 행위, 및
    상기 포트 번호에 대응하는 상기 포트를 통해 상기 제2 애플리케이션으로의 다른 클라이언트 접속을 제공하는 행위
    를 포함하는, 단일 포트를 통해 공유 컴퓨터 시스템에서 복수의 애플리케이션으로의 네트워크 접속을 제공하는 방법.
  2. 제1항에 있어서,
    상기 다른 클라이언트 접속을 제공하기 전에, 상기 다른 클라이언트 접속을 위한 다른 클라이언트 접속 요청을 수신하는 행위를 더 포함하고,
    상기 다른 클라이언트 접속 요청은 상기 포트 번호를 포함하지만, 상기 제1 접속 식별자 및 상기 제2 접속 식별자는 어느 것도 포함하지 않는 방법.
  3. 제2항에 있어서,
    상기 다른 클라이언트 접속을 미처리 접속으로서 저장하는 행위를 더 포함하는 방법.
  4. 제3항에 있어서,
    상기 다른 클라이언트 접속을 위한 제2 접속 식별자를 수신하는 행위를 더 포함하는 방법.
  5. 제4항에 있어서,
    상기 제2 접속 식별자와 연관된 접속 소켓을 상기 제2 애플리케이션에 전달하는 행위를 더 포함하는 방법.
  6. 제1항에 있어서,
    하나 이상의 클라이언트에 상기 제1 접속 식별자 및 상기 제2 접속 식별자를 XML 문서로서 송신하는 행위를 더 포함하는 방법.
  7. 제1항에 있어서,
    접속 소켓을 상기 제1 접속 식별자와 연관시키는 행위를 더 포함하는 방법.
  8. 제7항에 있어서,
    상기 접속을 상기 제1 애플리케이션에 전달하는 행위는 상기 제1 애플리케이션에 상기 접속 소켓의 제어를 제공하는 행위를 포함하는 방법.
  9. 제1항에 있어서,
    상기 포트 번호에 연관된 상기 포트는 정적인 포트인 방법.
  10. 제1항에 있어서,
    상기 클라이언트 접속 요청을 수신하는 행위 및 상기 제1 애플리케이션에 상기 클라이언트 요청을 전달하는 행위는 시스템 레벨에서 동작하는 청취 서비스에 의해 수행되는 방법.
  11. 제1항에 있어서,
    상기 제1 애플리케이션 및 상기 제2 애플리케이션을 호스팅하는 상기 공유 컴퓨터 시스템은 클라이언트 컴퓨터 시스템인 방법.
  12. 제1항에 있어서,
    상기 포트에서 다음 클라이언트 접속 요청을 수신하는 행위 - 상기 다음 클라이언트 접속 요청은 초기 패킷 세트에서 상기 포트와 연관된 접속 식별자 중 어떠한 것도 제공하지 않음 - , 및
    상기 초기 패킷 세트에서 어떠한 사전-접속 데이터도 발견되지 않았음을 식별한다면, 상기 클라이언트 접속 요청을 거부하는 행위
    를 더 포함하는 방법.
  13. 제1항에 있어서,
    상기 포트 번호에 연관된 상기 포트에 복수의 고유한 접속 식별자를 할당하는 행위를 더 포함하고,
    상기 복수의 고유한 접속 식별자는 상기 제1 및 제2 접속 식별자를 적어도 포함하는 방법.
  14. 제13항에 있어서,
    상기 제1 접속 식별자는 상기 클라이언트 접속 요청을 송신하는 클라이언트로부터의 사용자 이름 또는 이메일 주소 중 임의의 것을 포함하는 방법.
  15. 제13항에 있어서,
    상기 제1 애플리케이션이 하나 이상의 클라이언트와 통신할 준비가 되었다는 표시자를 적어도 상기 제1 애플리케이션으로부터 수신하는 행위를 더 포함하는 방법.
  16. 제15항에 있어서,
    상기 제1 접속 식별자를 상기 제1 애플리케이션에 할당하는 행위, 및
    상기 제1 애플리케이션에 사전-접속 데이터를 송신하는 행위 - 상기 사전-접속 데이터는 상기 제1 접속 식별자 및 상기 포트 번호와 연관된 상기 포트를 적어도 포함함 -
    를 더 포함하는 방법.
  17. 제16항에 있어서,
    상기 제1 접속 식별자 및 상기 제1 애플리케이션에 대한 식별자를 상기 제1 애플리케이션에 의해 생성된 컴포넌트 객체와 연관시키는 행위를 더 포함하고,
    상기 컴포넌트 객체는 상기 세션 레벨에서 동작하는 상기 제1 애플리케이션과 상기 시스템 레벨에서 동작하는 청취 서비스 간의 통신을 제공하도록 구성되는 방법.
  18. 공유 컴퓨터 시스템에서 세션 레벨에서 동작하는 복수의 애플리케이션과 통신하도록 구성된 컴퓨터 시스템에서, 단일 포트를 통해 상기 공유 컴퓨터 시스템에서 상기 복수의 애플리케이션과 통신하는 방법으로서,
    서버 컴퓨터 시스템에서 제1 애플리케이션과 통신하기 위한 제1 초대를 수신하는 행위 - 상기 제1 초대는 포트 번호 및 제1 접속 식별자를 적어도 포함함 - ,
    상기 서버 컴퓨터 시스템에서 제2 애플리케이션과 통신하기 위한 제2 초대를 수신하는 행위 - 상기 제2 초대는 상기 포트 번호 및 제2 접속 식별자를 적어도 포함함 - , 및
    네트워크 상에서 상기 클라이언트가 상기 서버의 동일한 정적 포트를 통하여 복수의 애플리케이션과 통신하도록, 상기 서버에서 상기 포트 번호를 통해 상기 제1 애플리케이션 및 상기 제2 애플리케이션과 통신하기 위한 단계
    를 포함하는, 단일 포트를 통해 공유 컴퓨터 시스템에서 복수의 애플리케이션과 통신하는 방법.
  19. 제18항에 있어서,
    상기 포트 번호를 통해 상기 제1 애플리케이션 및 상기 제2 애플리케이션과 통신하기 위한 단계는
    상기 서버에 제1 접속 요청을 송신하는 행위 - 상기 제1 접속 요청은 상기 제1 접속 식별자를 포함함 - , 및
    상기 서버에 제2 접속 요청을 송신하는 행위 - 상기 제2 접속 요청은 상기 제2 접속 식별자를 포함함 -
    를 포함하는 방법.
  20. 네트워크를 통해 세션 레벨에서 동작하는 복수의 애플리케이션과 하나 이상의 클라이언트 컴퓨터 시스템 간의 통신을 제공하도록 구성된 컴퓨터 시스템에서, 실행될 때, 상기 공유 컴퓨터 시스템에서 하나 이상의 프로세서로 하여금, 단일 정적 포트를 통해 상기 복수의 애플리케이션에 대한 접속을 제공하는 방법을 수행하도록 하는 컴퓨터-실행가능 명령어가 저장된 컴퓨터 프로그램 제품으로서,
    상기 방법은
    제1 접속 식별자를 제1 애플리케이션에 연관시키고 제2 접속 식별자를 제2 애플리케이션에 연관시키는 단계 - 상기 제1 애플리케이션 및 제2 애플리케이션은 세션 레벨에서 동작하고 있음 - ,
    클라이언트 접속 요청을 수신하는 단계 - 상기 클라이언트 접속 요청은 포트에 연관된 포트 번호, 상기 공유 컴퓨터 시스템의 네트워크 주소, 및 상기 제1 접속 식별자를 포함함 - ,
    상기 제1 애플리케이션이 상기 포트를 통해 상기 클라이언트와 접속하도록 상기 접속 요청을 상기 제1 애플리케이션에 전달하는 단계, 및
    상기 포트 번호에 대응하는 상기 포트를 통해 상기 제2 애플리케이션으로의 다른 클라이언트 접속을 제공하는 단계
    를 포함하는, 컴퓨터-실행가능 명령어가 저장된 컴퓨터 프로그램 제품.
KR1020087006057A 2005-09-12 2006-09-08 단일 포트를 통해 공유 컴퓨터 시스템에서 복수의애플리케이션으로의 네트워크 접속을 제공하는 방법 및컴퓨터-실행가능 명령어가 저장된 컴퓨터 프로그램 제품 KR20080053299A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US71633405P 2005-09-12 2005-09-12
US60/716,334 2005-09-12
US11/304,780 US8166175B2 (en) 2005-09-12 2005-12-15 Sharing a port with multiple processes
US11/304,780 2005-12-15

Publications (1)

Publication Number Publication Date
KR20080053299A true KR20080053299A (ko) 2008-06-12

Family

ID=37856601

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087006057A KR20080053299A (ko) 2005-09-12 2006-09-08 단일 포트를 통해 공유 컴퓨터 시스템에서 복수의애플리케이션으로의 네트워크 접속을 제공하는 방법 및컴퓨터-실행가능 명령어가 저장된 컴퓨터 프로그램 제품

Country Status (6)

Country Link
US (2) US8166175B2 (ko)
EP (1) EP1924929B1 (ko)
JP (1) JP4965574B2 (ko)
KR (1) KR20080053299A (ko)
CN (1) CN101263483B (ko)
WO (1) WO2007033046A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100917660B1 (ko) * 2009-05-11 2009-09-18 (주)비전소프트 연계아답터를 이용한 방화벽 단일포트를 통해 내부망과 외부망의 서버들 간의 네트워크 연결 시스템
KR102617954B1 (ko) * 2022-11-23 2023-12-27 (주) 투씨에스지 원격 제어 서비스의 보안성 향상을 위한 제어 방법 및 이를 수행하기 위한 컴퓨터 프로그램

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8910241B2 (en) 2002-04-25 2014-12-09 Citrix Systems, Inc. Computer security system
US20070136465A1 (en) * 2005-12-12 2007-06-14 Fernandes Lilian S Method for allowing multiple authorized applications to share the same port
US7650406B2 (en) * 2006-04-26 2010-01-19 Microsoft Corporation Termination of a security association between devices
US8495181B2 (en) 2006-08-03 2013-07-23 Citrix Systems, Inc Systems and methods for application based interception SSI/VPN traffic
US7843912B2 (en) * 2006-08-03 2010-11-30 Citrix Systems, Inc. Systems and methods of fine grained interception of network communications on a virtual private network
US8869262B2 (en) * 2006-08-03 2014-10-21 Citrix Systems, Inc. Systems and methods for application based interception of SSL/VPN traffic
US20090031005A1 (en) * 2007-07-23 2009-01-29 Bellsouth Intellectual Property Corporation Portal COM Module
US8516539B2 (en) * 2007-11-09 2013-08-20 Citrix Systems, Inc System and method for inferring access policies from access event records
US8990910B2 (en) * 2007-11-13 2015-03-24 Citrix Systems, Inc. System and method using globally unique identities
US7548545B1 (en) * 2007-12-14 2009-06-16 Raptor Networks Technology, Inc. Disaggregated network management
US9240945B2 (en) * 2008-03-19 2016-01-19 Citrix Systems, Inc. Access, priority and bandwidth management based on application identity
JP5178539B2 (ja) * 2008-04-04 2013-04-10 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、セッション管理システム並びにプログラム
KR101160382B1 (ko) * 2008-04-04 2012-06-26 캐논 가부시끼가이샤 세션 관리 시스템 및 그 제어 방법
ES2371378T3 (es) * 2008-04-04 2011-12-30 Canon Kabushiki Kaisha Sistema de gestión de sesiones y método para controlar las mismas.
US8943575B2 (en) 2008-04-30 2015-01-27 Citrix Systems, Inc. Method and system for policy simulation
US8638941B2 (en) 2008-05-15 2014-01-28 Red Hat, Inc. Distributing keypairs between network appliances, servers, and other network assets
US8990573B2 (en) * 2008-11-10 2015-03-24 Citrix Systems, Inc. System and method for using variable security tag location in network communications
US8849972B2 (en) 2008-11-25 2014-09-30 Polycom, Inc. Method and system for dispatching received sessions between a plurality of instances of an application using the same IP port
US8661103B2 (en) * 2008-12-18 2014-02-25 Sap Ag Business application address determination
US8825859B2 (en) * 2009-12-23 2014-09-02 Citrix Systems, Inc. System and methods for mixed mode of IPv6 and IPv4 DNS of global server load balancing
EP2517406B1 (en) * 2009-12-23 2015-06-17 Citrix Systems Inc. Systems and methods for mixed mode of ipv6 and ipv4 dns of global server load balancing
US9098335B2 (en) * 2009-12-23 2015-08-04 Citrix Systems, Inc. Systems and methods for managing spillover limits in a multi-core system
JP5488094B2 (ja) * 2010-03-19 2014-05-14 富士通株式会社 通信装置、ネットワークアクセス方法およびコンピュータプログラム
US20120233334A1 (en) * 2011-03-07 2012-09-13 Avaya Inc. Shared media access for real time first and third party control
CN102761518B (zh) * 2011-04-25 2015-04-01 中兴通讯股份有限公司 一种支持多种套接字连接模式的通信方法及服务器
CN103428357B (zh) * 2012-05-25 2016-12-21 上海盛付通电子支付服务有限公司 实现移动终端操作系统上的本地服务共享的方法及装置
CN103455908A (zh) * 2012-05-30 2013-12-18 Sap股份公司 云环境中的头脑风暴
TWI461907B (zh) * 2012-10-11 2014-11-21 Mstar Semiconductor Inc 配合多個應用程式之整合系統和測試系統
US9954738B1 (en) * 2012-10-18 2018-04-24 Google Llc Ephemeral port registry/device discovery
US9288225B1 (en) * 2013-04-17 2016-03-15 Ca, Inc. Server port sharing based on shared socket
CN103475540A (zh) * 2013-09-04 2013-12-25 厦门亿联网络技术股份有限公司 同一局域网内pc机间检测ip端口是否连接的方法
KR102121472B1 (ko) * 2013-09-23 2020-06-17 삼성전자주식회사 기기 별 응용 프로그램간 통신을 위한 장치 및 방법
CN103699450B (zh) * 2013-12-20 2017-02-15 国云科技股份有限公司 一种Linux下的自适应组件间通信方法
US10212101B2 (en) 2014-01-14 2019-02-19 Nant Holdings Ip, Llc Low level provisioning of network fabrics
US9917728B2 (en) 2014-01-14 2018-03-13 Nant Holdings Ip, Llc Software-based fabric enablement
CN104010001B (zh) * 2014-06-17 2015-11-11 合一网络技术(北京)有限公司 移动终端中同类联网请求进行连接通信的方法和系统
US10320918B1 (en) * 2014-12-17 2019-06-11 Xilinx, Inc. Data-flow architecture for a TCP offload engine
US9992236B2 (en) * 2015-06-22 2018-06-05 Dell Products L.P. Systems and methods for providing protocol independent disjoint port names
US10205803B1 (en) * 2015-08-27 2019-02-12 Amazon Technologies, Inc. System for determining improper port configurations
CN105426253A (zh) * 2015-12-18 2016-03-23 广州广电运通金融电子股份有限公司 一种自助设备硬件管理方法和装置
US10114702B2 (en) * 2016-01-06 2018-10-30 International Business Machines Corporation Method and system to discover and manage distributed applications in virtualization environments
CN109952744B (zh) 2016-09-26 2021-12-14 河谷控股Ip有限责任公司 云网络中提供虚拟电路的方法和设备
CN107343027B (zh) * 2017-06-13 2020-08-04 福建省天晴互动娱乐有限公司 App分享方法
CN112398845B (zh) * 2020-11-11 2023-03-28 Oppo广东移动通信有限公司 数据传输方法、数据传输装置、系统及电子设备

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06301616A (ja) 1993-04-09 1994-10-28 Toshiba Corp ネットワークコンピュータ接続方法および装置
GB9501378D0 (en) * 1995-01-24 1995-03-15 Ibm A system and method for establishing a communication channel over a heterogeneous network between a source node and a destination node
US5699513A (en) * 1995-03-31 1997-12-16 Motorola, Inc. Method for secure network access via message intercept
US6182146B1 (en) * 1997-06-27 2001-01-30 Compuware Corporation Automatic identification of application protocols through dynamic mapping of application-port associations
US6484061B2 (en) * 1997-09-10 2002-11-19 Schneider Automation Inc. Web interface to a programmable controller
US6363081B1 (en) * 1998-03-04 2002-03-26 Hewlett-Packard Company System and method for sharing a network port among multiple applications
US6738814B1 (en) 1998-03-18 2004-05-18 Cisco Technology, Inc. Method for blocking denial of service and address spoofing attacks on a private network
US20020016868A1 (en) * 1998-05-13 2002-02-07 Palm, Inc. Method and apparatus for serial port sharing
US6357337B1 (en) * 1999-06-15 2002-03-19 Holland Neway International, Inc. Spring brake actuator with sealed chamber and method for sealing
US6622159B1 (en) * 1999-06-30 2003-09-16 International Business Machines Corporation Method, apparatus and computer program product for automatically restarting an RPC server without losing client RPC calls
US6343324B1 (en) * 1999-09-13 2002-01-29 International Business Machines Corporation Method and system for controlling access share storage devices in a network environment by configuring host-to-volume mapping data structures in the controller memory for granting and denying access to the devices
DE69939116D1 (de) 1999-10-15 2008-08-28 Alcatel Lucent Verfahren für Installation von Softwarekomponenten auf einem Benutzerendgerät, relatierte Geräte und relatierte Softwaremoduln
US6862629B1 (en) * 1999-10-21 2005-03-01 International Business Machines Corporation Method and system for dispatching socks traffic based on socks connection identified by source address, application address and application level protocol
US6917610B1 (en) * 1999-12-30 2005-07-12 At&T Corp. Activity log for improved call efficiency
JP3384390B2 (ja) 2000-01-12 2003-03-10 ソニー株式会社 交流駆動型プラズマ表示装置
US20020016926A1 (en) * 2000-04-27 2002-02-07 Nguyen Thomas T. Method and apparatus for integrating tunneling protocols with standard routing protocols
US7120697B2 (en) * 2001-05-22 2006-10-10 International Business Machines Corporation Methods, systems and computer program products for port assignments of multiple application instances using the same source IP address
US6954784B2 (en) * 2000-08-17 2005-10-11 International Business Machines Corporation Systems, method and computer program products for cluster workload distribution without preconfigured port identification by utilizing a port of multiple ports associated with a single IP address
US6763387B1 (en) * 2000-10-12 2004-07-13 Hewlett-Packard Development Company, L.P. Method and system for sharing a single communication port between a plurality of servers
US6624388B1 (en) * 2001-01-25 2003-09-23 The Lincoln Electric Company System and method providing distributed welding architecture
US20020161904A1 (en) 2001-04-30 2002-10-31 Xerox Corporation External access to protected device on private network
US6950873B2 (en) 2001-08-02 2005-09-27 International Business Machines Corporation Apparatus and method for port sharing a plurality of server processes
CN1324504C (zh) * 2002-04-22 2007-07-04 普莱斯威尔股份有限公司 应用程序共享安全
US7958163B2 (en) * 2003-08-05 2011-06-07 Intraware, Inc. System and method for bulk transfer of digital goods
US7472195B2 (en) 2003-11-19 2008-12-30 International Business Machines Corporation Unobtrusive port and protocol sharing among server processes
US7624431B2 (en) * 2003-12-04 2009-11-24 Cisco Technology, Inc. 802.1X authentication technique for shared media
JP4297792B2 (ja) * 2004-01-08 2009-07-15 株式会社リコー Webサーバ組み込みビジネス機器
US7523185B1 (en) * 2004-01-13 2009-04-21 Cisco Technology, Inc. Method and apparatus for providing automatic frame relay and ATM provisioning of network devices
US7546454B2 (en) * 2004-06-30 2009-06-09 At&T Intellectual Property I, L.P. Automated digital certificate discovery and management
US7613813B2 (en) * 2004-09-10 2009-11-03 Cavium Networks, Inc. Method and apparatus for reducing host overhead in a socket server implementation
US7551614B2 (en) * 2004-12-14 2009-06-23 Hewlett-Packard Development Company, L.P. Aggregation over multiple processing nodes of network resources each providing offloaded connections between applications over a network
JP2007133344A (ja) * 2005-03-28 2007-05-31 Fuji Xerox Co Ltd 電荷輸送性化合物、電子写真感光体、画像形成装置及びプロセスカートリッジ
US20060277275A1 (en) * 2005-04-02 2006-12-07 Glaenzer Eric F Dynamic management of communication ports, devices, and logical connections

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100917660B1 (ko) * 2009-05-11 2009-09-18 (주)비전소프트 연계아답터를 이용한 방화벽 단일포트를 통해 내부망과 외부망의 서버들 간의 네트워크 연결 시스템
KR102617954B1 (ko) * 2022-11-23 2023-12-27 (주) 투씨에스지 원격 제어 서비스의 보안성 향상을 위한 제어 방법 및 이를 수행하기 위한 컴퓨터 프로그램

Also Published As

Publication number Publication date
CN101263483A (zh) 2008-09-10
EP1924929B1 (en) 2015-10-21
CN101263483B (zh) 2012-12-12
WO2007033046A1 (en) 2007-03-22
JP2009508260A (ja) 2009-02-26
EP1924929A4 (en) 2010-05-26
EP1924929A1 (en) 2008-05-28
US20120124190A1 (en) 2012-05-17
US8166175B2 (en) 2012-04-24
JP4965574B2 (ja) 2012-07-04
US20070061434A1 (en) 2007-03-15
US8438260B2 (en) 2013-05-07

Similar Documents

Publication Publication Date Title
KR20080053299A (ko) 단일 포트를 통해 공유 컴퓨터 시스템에서 복수의애플리케이션으로의 네트워크 접속을 제공하는 방법 및컴퓨터-실행가능 명령어가 저장된 컴퓨터 프로그램 제품
US9648052B2 (en) Real-time communications gateway
US8321566B2 (en) System and method to control application to application communication over a network
JP5006925B2 (ja) コンピューティングノード間通信の管理
US6446116B1 (en) Method and apparatus for dynamic loading of a transport mechanism in a multipoint data delivery system
US7945676B2 (en) Processing requests transmitted using a first communication protocol directed to an application that uses a second communication protocol
US20090319611A1 (en) Method and System for Facilitating Exchange of A Data Between Applications Using a Communication Platform
US8386614B2 (en) Network connection manager
US20150156252A1 (en) Providing Clients Access To A Server Service Using An OPC Unified Architecture (OPC-UA)
JP2008539504A (ja) 協調的招待システムおよび方法
JP2007524929A (ja) エンタープライズコラボレーションシステム及び方法
US10142422B2 (en) Clustering websocket communications with configurable master-slave servers
US20050091301A1 (en) Systems and methods for multiparty session invite
JP2007526544A (ja) プロセッサ間通信プロトコル
CN114025005B (zh) 一种数据通讯方法、系统、电子设备及存储介质
CN111343296B (zh) 一种虚拟化应用通信方法、装置、服务器及可存储介质
US20160006821A1 (en) Correlation Identity Generation Method For Cloud Environment
Toth Design of a social messaging system using stateful multicast
KR102020120B1 (ko) 보안 dds와 비보안 dds 간의 연동을 위한 플랫폼 및 그 방법
US20050091306A1 (en) Interprocessor communication protocol with high level service composition

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid