KR100994666B1 - 네트워크 기반 디바이스를 위한 액세스 및 제어 시스템 - Google Patents

네트워크 기반 디바이스를 위한 액세스 및 제어 시스템 Download PDF

Info

Publication number
KR100994666B1
KR100994666B1 KR1020047006406A KR20047006406A KR100994666B1 KR 100994666 B1 KR100994666 B1 KR 100994666B1 KR 1020047006406 A KR1020047006406 A KR 1020047006406A KR 20047006406 A KR20047006406 A KR 20047006406A KR 100994666 B1 KR100994666 B1 KR 100994666B1
Authority
KR
South Korea
Prior art keywords
computer
connection
server
network
firewall
Prior art date
Application number
KR1020047006406A
Other languages
English (en)
Other versions
KR20050044335A (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 웨스턴 디지털 테크놀로지스, 인코포레이티드
Publication of KR20050044335A publication Critical patent/KR20050044335A/ko
Application granted granted Critical
Publication of KR100994666B1 publication Critical patent/KR100994666B1/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/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

심리스하고, 다중 사용자(12a-12n)와 다중 디바이스(18a, 18b)간의 방화벽 호환의 연결성을 제공하고, 다중 사용자(12a-12n) 또는 원격 디바이스(18a, 18b)에 의한 협동을 허용하고, 다중 디바이스(18a, 18b)의 점 대 다중점 제어를 가능하게 하고 원격 사용자(12a-12n)와 디바이스(18a, 18b)사이에 신속하고, 안전한 데이터 전송을 가능하게하는 네트워크 기반 디바이스(18a, 18b)의 원격 액세스를 위한 시스템(10) 및 방법. 일반적으로, 본 시스템은 적어도 하나의 연결 서버(14)와, 공중망 또는 글로벌망(16)을 거쳐 상기 연결 서버(14)에 동작가능하게 연결된 적어도 두개의 컴퓨터(12a, 36a)를 포함한다. 일 실시예에서 공중망 또는 글로벌망(16)을 거쳐 연결 서버(14)를 통해 적어도 하나의 네트워크 기반 디바이스(18a)에 동작가능하게 연결되어 있고, 상기 연결 서버(14)는 클라이언트(12a)로부터 네트워크 기반 디바이스(18a)까지 제어 명령을 라우팅하고 네트워크 기반 디바이스(18a)로부터 클라이언트(12a)까지 데이터를 라우팅하도록 구성되어 있다.
네트워크 기반 디바이스, 원격 액세스, 공중망, 클라이언트, 연결 서버

Description

네트워크 기반 디바이스를 위한 액세스 및 제어 시스템{ACCESS AND CONTROL SYSTEM FOR NETWORK-ENABLED DEVICES}
본 발명은 네트워크 기반 디바이스를 위한 액세스 및 제어 시스템에 관한 것이다.
인터넷은 다량의 정보를 전세계 컴퓨터 사용자에게 이용할 수 있게 하였다. 엄청난 양의 정보가 예컨대, 인터넷과 같은 공중 컴퓨터 망을 거쳐 개인 사용자간에 교환되고, 이러한 정보의 양은 계속 증가할 것이다. 특히 인터넷과 네트워크로 연결된 컴퓨터의 매력적인 점은 일반적으로, 사용자가, 네트워크 기반 디바이스가 물리적으로 존재하지 않는 동안에 디바이스와 관련된 기능을 수행하기 위해 네트워크 기반 디바이스에 원격으로 액세스할 수 있다는 것이다. 이러한 원격 접속된 디바이스는, 예컨대, 감시 카메라, 제조 장치와 같은 디바이스를 포함할 수 있다. 컴퓨터 네트워크를 거쳐 원격 접속된 디바이스를 채용하는 중요한 인터넷 사용자군은 회사 인터라넷 또는 LAN(local area network)과 같은, 사설망을 통해 연결되어 있는 개인 및 전문 사용자이다.
인터넷을 통한 디바이스의 원격 접속은 많은 문제점을 가지고 있다. 원격 디바이스에 접속하는 것은 원격 디바이스 접속을 위하여 전형적으로 전용 사설망이나 전용 가상 사설망(VPN: virtual private network)의 셋업을 필요로 하였다. 사설망내의 전용 서버가 인터넷과의 통신을 제공하고, 전용 전화선, 디지털 가입자선(DSL: digital subscriber line) 또는 이와 유사한 통신 인터페이스가 전용 서버에 디바이스를 연결하는데 사용된다. 이러한 시스템은 비용이 들고 어려운 설정과 유지를 포함한다. 원격 접속 디바이스에 접속하는 것은 전형적으로 모뎀 연결을 통하고, 디바이스와 원격 사용자간의 데이터 전달은 느리다. 원격 디바이스에 연결하기 위해 DSL이나 기타 광대역 기능이 이용가능 하지만, 비디오 스트림의 실시간 데이터 전달 및 데이터 집중 동작에는 효과적으로 수행될 수 없다. 원격 디바이스 액세스 시스템은 또한 한번에 단 한사람의 사용자만이 원격 디바이스에 접속할 수 있다는 점에서 불충분하다. 이러한 문제는 상이한 위치의 고객과 지원자가 모두 제 3자의 원격 디바이스에 동시에 접속하려할때 특히 심각해진다.
삭제
인터넷을 통하여 디바이스에 원격 접속하는 것은 많은 경우 하나의 사설 근거리망내에 위치한 사용자와, 또다른, 상이한 사설망내에 위치한 디바이스를 포함한다. 인터넷을 통한 사설 컴퓨터망간의 정보 교환은 사설 컴퓨터망에서 정보 보호와 관련된 다양한 보안 문제를 발생시켰다. 사설망내의 개인 컴퓨터를 인터넷에 연결함으로써 세계각지에서 승인되지 않은 접속이나 악의적인 공격에 실질적으로 비밀 데이터를 노출시킬 수 있다. "해커"에 의해 노출된 몇몇 복잡한 타입의 보안 위협은 "로직 봄", "트랩도어", "트로이 목마", "바이러스" 및 "웜"프로그램을 포함한다. 이러한 소프트웨어 프로그램은 독립적으로 또는 호출된 호스트 프로그램을 통해서, 보안을 깨고, 기능을 파괴하고 전자 파일의 파괴, 데이터베이스의 변 형, 또는 사설 컴퓨터망, 그 사설망에 연결된 컴퓨터 하드웨어, 및 그 사설망내의 네트워크 접속가능 디바이스의 기능에 영향을 미치는 컴퓨터 바이러스를 침투시켜 손상을 일으키도록 동작할 수 있다.
사설망 보안의 한가지 해결책은 인터넷으로부터 악의적인 침입으로부터 사설 근거리망을 보호하기 위하여 하드웨어 및/또는 소프트웨어로 구현된 "방화벽"의 사용이었다. 방화벽은 일반적으로 인터넷과 같은 공중망과 사설망사이의 게이트웨이 또는 연결부에 위치하여 망 관리자가 출입 트래픽을 필터링함으로써 특정 LAN사용자에게 특정 타입의 인터넷 서비스에 선별적으로 접속을 제공하게 할 수 있다. 현재 거의 모든 사설망은 외부 침입으로부터 내부 데이터를 보호하기 위하여 적당한 몇몇 형태의 방화벽을 구비하고 있다.
방화벽은 트래픽 제한을 위한 상이한 기준을 사용하기 위해 상이한 레이어의 TCP/IP(Transport Control Protocol/Internet Protocol)계위에서 이진 데이터를 조사함으로써 동작한다. 최고위 프로토콜 레이어, 즉 응용층으로부터의 이진 데이터는 트위스티드 패어선, 광섬유, 또는 무선 채널과 같은 네트워크 매체에서 전송되기 위하여 물리층까지 계속하여 보다 낮은 레벨의 프로토콜내에서 캡슐화된다. 패킷 필터링 방화벽이 인터넷 프로토콜 또는 네트워크층에서 수행될 수 있다. 회로 레벨 게이트웨이 방화벽은 TCP 또는 세션층에서 동작하고, 요청된 세션이 적법한지 여부를 판정하기 위하여 패킷간의 TCP"핸드세이킹(handshaking)"을 모니터한다. 응용 레벨 게이트웨이 방화벽 또는 "프록시"는 애플리케이션에 따라 특정되고, 패킷 필터링이나 회로 레벨 방화벽에 의해서는 달성될 수 없는 http:post 및 get과 같은 애플리케이션 특정의 커맨드를 필터링할 수 있다. 스테이트-풀 다층 검사 방화벽은 고레벨의 보안을 제공하기 위해 상기 타입의 방화벽의 태양을 결합할 수 있다.
방화벽이 대체로 사설망의 보안을 위해 유리하지만, 방화벽을 구축함으로써 몇가지 중요한 결점을 가지고 있다. 특히, 인터넷을 통해 상이한, 이종의 사설망사이에 데이터 전달을 포함하는 애플리케이션의 사용이 증가되고 있다. 사용자는 점점더 원격 진단, 교정, 제어, 모니터링 또는 원격 네트워크 기반 디바이스와 관련된 여타 기능을 수행하기 위하여 근거리망 또는 원거리망을 거쳐 다양한 위치로부터 연결될 필요가 있다. 예컨대, 하나의 방화벽으로 보호된 사설망내에서 운영하는 과학자나 엔지니어는 데이터를 획득하고, 원격으로 디바이스를 조절하고, 또는 원격으로 다른 동작을 수행하기 위하여 제 2의 방화벽으로 보호된 사설망내의 네트워크 기반 디바이스에 접속할 필요가 있다. 접속될 방화벽은 상이한 보안 필요성 및 상이한 사설망에 관련된 회사 환경때문에 전형적으로 상이할 것이고 방화벽 시스템은 이종 네트워크간의 데이터 전송에 제한을 가할 수 있다.
이러한 타입의 하나의 공통적인 시나리오를 보면, 하나의 사설 회사망내의 고객은 도구 제조사의 사설 회사망내에서 운영하는 전문 인력에 의해 교정될 필요가 있는 네트워크 기반 도구 또는 디바이스를 가질 수 있다. 이 경우, 도구는 그 도구의 네트워크 주소를 외부 공중망에 익명으로 유지하는 고객사 방화벽뒤의 공중망에 연결된다. 전문 인력은 제조사의 방화벽 시스템뒤의 공중망에 전형적으로 연결되어 그 전문 인력이 외부 공중망에 네트워크 연결을 확립하는 것을 방지할 것이 다. 따라서 네트워크 기반 디바이스는 서비스 인력에 의해 공중망을 거쳐 액세스될 수 없다. 방화벽 시스템은 상이한 상용 소프트웨어 및/또는 하드웨어 제품일 것이고 따라서 원하는 연결과 통신을 가능하게하는 방식으로 수정할 수 없기 때문에, 이 문제는 쉽게 해결되지 않는다.
근거리망간의 보안 연결을 가능하게 하는 한가지 방법은 가상 사설망(VPN)시스템을 채용하는 것이다. 그러나, 이러한 VPN시스템은 네트워크 접속 위치에 복잡하고 고비용의 부가적인 하드웨어 및/또는 소프트웨어를 설치를 필요로한다. 또한 VPN시스템의 사용은 관련 네트워크를 위한 네트워크 관리자가, 많은 상황에서 곤란하거나 불가능한, 몇몇 종류의 결합 네트워크 보안 정책을 구현할것을 필요로한다. 더욱이, VPN시스템은 여전히 "신생"기술이고, 상이한 VPN간의 상호운용이 다중 사설망의 연결에 제한을 가한다.
따라서 설치와 유지가 간편하고 비용이 적게들며, 원격 진단, 교정, 제어 및 원격 디바이스를 위한 기능 모니터링과 같은 신생의, 점점 더 중요해지는 응용분야와 일반적으로 호환되는, 다중 사용자에 의해 원격 디바이스의 협동 사용을 가능하게 하는, 사용자와 원격의 네트워크 기반 디바이스간의 신속하고 용이한 통신을 가능하게 하는 시스템을 위한 필요성이 있다. 본 발명은 이러한 필요성을 만족시킬 뿐 아니라, 배경기술에 나타난 결점을 일반적으로 극복한다.
본 발명은 원격 디바이스의 다중 사용자에 의하여 협동 동작을 가능하게 하고, 원격 사용자와 디바이스간에 신속하고 안전한 데이터 전송을 가능하게 하며, 다중 사용자와 다중 디바이스간의 심리스하고, 방화벽 호환의(firewall-compliant) 연결을 제공하는 네트워크 기반 디바이스의 원격 접속을 위한 시스템과 방법을 제공한다. 일반적으로, 본 발명의 시스템은 적어도 하나의 연결 서버, 공중망이나 글로벌망을 거쳐 상기 연결 서버에 동작가능하게 연결된 적어도 하나의 클라이언트, 및 공중망이나 글로벌망을 거쳐 상기 연결 서버에 동작가능하게 연결된 적어도 하나의 네트워크 기반 디바이스를 포함한다. 연결 서버는 클라이언트로부터 네트워크 기반 디바이스까지 제어 명령을 라우팅하고, 네트워크 기반 디바이스로부터 클라이언트까지 데이터를 라우팅하도록 구성된다.
제한이 아닌, 예로써, 시스템은 인터넷을 거쳐 하나 이상의 연결 서버에 동작가능하게 연결된 하나 또는 복수의 네트워크 기반 디바이스뿐 만 아니라, 인터넷과 같은 공중망을 거쳐 하나 이상의 연결 서버에 동작가능하게 연결된 하나 또는 복수의 클라이언트를 포함할 수 있다. 클라이언트는 사설망 내부의 하나 이상의 서버를 거쳐 인터넷에 동작가능하게 연결되어 있는 하나 이상의 사설망내의 퍼스널 컴퓨터 또는 다른 데이터 프로세서를 포함할 수 있다. 클라이언트는 사설망내에 존재할 수 있다. 클라이언트는 몇몇 실시예에서 이동망의 일부인 무선 데이터 프로세서 디바이스를 포함할 수 있다. 네트워크 기반 디바이스는 명령을 수신하고 컴퓨터 네트워크를 거쳐 데이터를 전송할 수 있는 임의의 장치 또는 구성요소를 포함할 수 있고, 또한 하나 이상의 사설망내에 위치될 수 있다. 네트워크 기반 디바이스는 내부 데이터 프로세싱 기능을 가진 장치를 포함할 수 있고 또는 퍼스널 컴퓨터와 같은 외부 데이터 프로세서와 함께 사용될 수 있다. 이러한 디바이스는, 네트워크 연결을 거쳐 원격으로 제어, 모니터링 또는 동작가능하도록 구성된, 예컨대, 과학적 도구, 화학적 반응기, 비디오 보안 디바이스, 외과용 디바이스, 전력계, 전력 발생기, 홈 보안 시스템, 오피스 보안 시스템 또는 유사 디바이스를 포함할 수 있다.
연결 서버는 다중 사용자의 협동 상호작용을 위한 분배 제어 기반구조에 다중 네트워크 기반 디바이스를 제공하도록 구성되어 있는, 확장가능하고, 스케일러블한 프레임워크에 배치된, 복수의 서버 모듈을 포함할 수 있다. 분배 제어 기반구조는 사용자 데이터, 디바이스 제어와 관련된 데이터, 사용자 보안 정보, 및 분배 제어 기반구조를 모니터링하고 관리하는데 사용된 기타 데이터의 유지를 제공하는 데이터를 저장하고, 연결 서버에 작동가능하게 연결된 하나 이상의 데이터베이스를 포함할 수 있다. 분배 제어 기반구조는 부가적으로 사용자 인증을 제공하기 위하여 보안 서버 및 보안 데이터베이스를 포함할 수 있다. 인증시에 서버 모듈에 사용자를 할당하는 몇몇 실시예에서는, 로드 밸런싱 시스템이 채용될 수 있다. 로드 밸런싱은 협동적인, 원격 네트워크 기반 디바이스와의 다중 사용자 상호작용을 용이하게 하기 위하여 사용자 및/또는 세션 타입에 기초할 수 있다.
각각의 연결 서버는 복수의 클라이언트와 하나 이상의 원격 디바이스 또는 복수의 원격 디바이스를 가진 하나의 클라이언트와의 사이에 복수의 네트워크 연결을 유지하도록 구성된 복수의 연결 핸들러를 포함하고, 물론 단일 사용자와 단일 원격 디바이스와의 사이에 네트워크 연결 또한 유지할 수 있다. 이러한 방식으로, 연결 서버는 협동식으로 복수의 클라이언트로부터 복수의 네트워크 기반 디바이스 까지 제어 명령을 라우팅할 수 있고, 네트워크 기반 디바이스로부터 클라이언트까지 데이터를 라우팅할 수 있는 연결 메커니즘을 제공하고, 따라서 다중 클라이언트는 연결 서버를 거쳐 하나 이상의 원격 디바이스와 동시에 통신할 수 있다.
본 발명의 시스템 및 방법은 방화벽과 호환하고, 기존 방화벽이나 프록시 시스템의 수정없이 상이한 사설망에서 방화벽 및/또는 프록시 시스템뒤에 있는 디바이스의 접속 및 제어를 가능하게 한다. 일단 사용자가 인증되면, 사용자와 원격 디바이스간의 연결이 확립되고, 원격 디바이스와 사용자간에, 연결 서버를 거쳐, 데이터 전송과 관련된 컴퓨터 오버헤드를 크게 줄이는, 또다른 암호키 교환없이 유지된다. 반대로, 종래 시스템은 상당한 양의 컴퓨팅 파워와 시간을 요하고 또한 통신 프로세스를 상당히 느리게하는, 각각의 새로운 명령 또는 통신과의 암호키 교환을 요한다. 본 발명에 따른 시스템은 적어도 하나의 연결 서버, 공중망이나 글로벌망을 거쳐 연결 서버에 동작가능하게 연결되어 있는, 제 1의, 방화벽으로 보호되는 사설망 또는, 사용의 견지에서, 단일의 연결 주소내의 적어도 하나의 클라이언트, 및 공중망이나 글로벌망을 거쳐, 또는 직접 전화선에 의해 연결 서버에 동작가능하게 연결되어 있는, 제 2의, 방화벽으로 보호되는 사설망 또는, 사용의 견지에서, 단일의 연결 주소내의 적어도 하나의 네트워크 기반 디바이스를 포함할 수 있다. 연결 서버는 각각의 사설망의 방화벽 시스템에 의해 컴파일하는 공통 프로토콜을 거쳐 네트워크 기반 디바이스 및 사용자간의 연결을 사설망의 각각에 확립하도록 구성된다.
본 발명은 또한 사설망 방화벽 시스템과 호환되는 사설의, 방화벽으로 보호 되는 네트워크내에서 네트워크 기반 디바이스와 사용자간에 안정한 통신 링크를 확립하기 위한 방법을 제공한다. 본 발명의 방법은, 일반적으로, 제 1의, 방화벽으로 보호된 사설망 또는 사설 주소내의 사용자를 인증하는 단계, 및 공중망과 관련된 연결 서버를 거쳐, 제 2의, 방화벽으로 보호된 사설망이나 방화벽으로 보호된 사설 주소내의 네트워크 기반 디바이스와 사용자간의 통신 채널을 생성하는 단계를 포함한다. 통신 채널은 사설망/사설 주소의 각각의 방화벽 시스템에 공통이거나 허용될 수 있는 프로토콜을 사용하여 생성된다. 따라서, 사설망과 공중망을 가로지르는 망 연결성을 제공하기 위하여, 상이한 사설망내의 사용자와 네트워크 기반 디바이스는 둘다 중앙 연결 서버에 클라이언트로서 방화벽 허용가능 네트워크 연결을 확립한다. 본 방법은 더욱이 연결 서버에 의하여 사용자로부터 네트워크 기반 디바이스까지 명령을 전송하는 단계, 및 연결 서버에 의해 네트워크 기반 디바이스로부터 데이터를 전송하는 단계를 포함한다. 본 방법은 또한 사용자에 의한 후속의 사용과 기타의 목적으로 네트워크 기반 디바이스로부터 데이터를 저장하는 단계를 포함할 수 있다.
연결 서버는 사설 협동망내의 네트워크 기반 디바이스와의 연결을 거쳐 수신된 정보를 받아들이고, 확인하고 라우팅하고, 신뢰성있는 네트워크 연결과 연결 핸들러 및 연결 모니터를 거쳐 데이터 전송 모드를 모니터링하고 유지하도록 구성된다. 연결 서버는 상이한 협동망내의 사용자와 네트워크 기반 디바이스간, 즉 디바이스로부터 사용자까지, 및 그 역으로, 사용자로부터 사용자까지 디바이스로부터 디바이스까지 등 데이터가 이동될 수 있는 브리징 매체로서 기능한다. 연결 서버 는 네트워크 인터페이스 유닛 및 데이터 네트워크에 접속하기위한 다른 수단을 갖춘 표준 서버 컴퓨터를 사용하여 구현될 수 있다. 연결 서버는 또한 HTTP 또는 다른 허용가능한 포맷의, 클라이언트 요청을 처리하기 위한 서버 서비스를 제공한다.
본 발명에 따른 시스템 및 방법의 사설망-대-공중망-대-사설망 통신 터널의 특성은 몇가지 점에서 유리하다. 상이한 사설망내의 디바이스와 사용자는 실제로는 데이터 전송시에 서로 직접적으로 연결되지 않으므로, 각각의 사용자와 각각의 디바이스의 네트워크 주소가 비밀로 유지될 수 있다. 사설망내의 민감한 데이터는 방화벽뒤에 안전하게 유지되는 한편, 공중망으로부터의 해커에 의한 공격은 전형적으로 결국에는 연결 서버로 향해 있다. 각 개인만이 접속된 연결 서버의 네트워크 주소를 알필요가 있고, 접속된 임의의 디바이스의 주소나 그들이 협동하고 있을 수 있는 다른 사용자의 주소는 알 필요가 없기 때문에, 원격 디바이스/사용자가 연결 서버에 연결할 수 있는 한, 원격 디바이스 및/또는 사용자가 변경되었을때라도 사용자는 원격 디바이스(및/또는 다른 사용자)에 액세스할 수 있다. 따라서 연결 서버는 사용자가 다른 사용자에게 협동 데이터를 전송할 수 있을 뿐만 아니라, 명령 데이터를 동일 타입의 다중 원격 디바이스에 전송할 수 있는 다중점 데이터 라우팅 플랫폼을 제공한다.
도 1은 본 발명에 따른 네트워크 기반 디바이스를 위한 접속 및 제어의 기능 블록도,
도 2는 복수의 연결 서버를 포함하는 분배 제어 기반구조를 가진 본 발명에 따른 접속 및 제어 시스템의 기능 블록도,
도 3은 보안 서버가 연결 서버 시스템에 사용되는 본 발명에 따른 접속 및 제어 시스템의 대안의 실시예의 기능 블록도,
도 4는 본 발명의 방법의 사용자 승인 및 연결 태양을 설명하는 플로우차트,
도 5는 본 발명의 방법의 승인 및 보안 태양을 설명하는 플로우차트,
도 6은 본 발명의 방법에서 서버 선택의 로드 밸런싱 태양을 설명하는 플로우차트,
도 7은 본 발명에 따른 클라이언트 프로세스 및 디바이스 제어 컴퓨터 프로세스의 동작을 설명하는 플로우차트, 및
도 8은 본 발명에 따른 연결 서버 프로세스의 동작을 설명하는 플로우차트.
본 발명의 이러한 목적과 기타의 목적 및 이점은 이하의 상세한 설명으로부터 명백할 것이다.
본 발명은, 설명의 목적만을 위한, 첨부 도면을 참조하여 보다 완전히 이해될 것이다.
다중 사용자와 다중 디바이스간의 심리스한, 방화벽 호환의 연결성을 제공하고, 원격 디바이스의 다중 사용자에 의한 협동 동작을 가능하게 하는, 원격 네트워크 기반 디바이스를 위한 원격 접속 및 제어 시스템 및 방법이 개시된다. 본 주제인 발명에 대해 더 기술하기 전에, 본 발명은 하기된 특정 실시예에 제한되지 않고, 특정 실시예의 변형이 가능하고 여전히 첨부된 청구항의 범위내에 있음을 이해 해야 한다. 또한 사용된 용어는 특정 실시예를 설명하는 목적을 위한 것이고, 제한의 의도가 아님을 이해해야 한다. 대신, 본 발명의 범위는 첨부된 청구항에 의해 확립될 것이다.
본 명세서의 임의의 정의는 명확화의 이유로 제공된 것이고, 제한으로 간주되어서는 안된다. 본 명세서에 사용된 기술적 및 과학적 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 공통적으로 이해되는 의미를 가지도록 의도되어 있다.
본 명세서에 기술된 임의의 개시는 단지 본 발명의 출원일 이전의 개시만을 제공한다. 본 명세서의 어떠한 내용도 본 발명이 이전 발명에 의한 이러한 공개에 선행하는 자격이 있지 않다고 인정하는 것으로 해석되어서는 안된다. 제공된 공개일자는 실제 공개일자와 다를 수 있고, 독립적으로 확인될 필요가 있을 수 있다. 본 명세서에 언급된 모든 공개공보는 공보가 인용되는 것과 관련한 방법, 시스템 또는 기타 주제의 문제를 개시하고 설명하기 위해 여기에 통합 언급되어 있다.
도면을 보다 상세히 참조하면, 설명의 목적을 위해 본 발명은 장치 및 도 1 내지 도 8에 도시된 플로우차트에 구체화되어 있다. 본 명세서에 개시된 장치는 본 명세서에 개시된 기본 개념으로부터 벗어남이 없이 구성과 상세한 부분에 관하여 변경될 수 있고, 방법은 상세한 부분 및 기능 순서에 관하여 변경될 수 있음이 이해될 것이다. 또한 본 명세서에 사용된 용어는 특정 실시예만을 설명하기 위한 목적을 위한 것이고, 본 발명은 단지 첨부한 청구항에 의해서만 제한되기 때문에, 제한하기 위해 의도된 것은 아니다. 본 발명은 본 명세서에 도시된 전형적인 구성외의 다양한 구성의 네트워킹 컴퓨터 시스템으로 구체화될 수 있다. 본 발명은 주로 HTTP(Hypertext Transfer Protocol)에 관하여 기술되지만, 다른 데이터 전송 프로토콜에 의하여 사용될 수 있다. 또한 본 명세서에 기술된 본 발명의 다양한 기능적인 구성요소가 동일한 로직을 공유할 수 있고 동일한 회로내에, 또는 상이한 회로 구성 내에 구현될 수 있음을 당업자는 이해할 것이다.
도 1을 참조하면, 본 발명에 관하여 네트워크 기반 디바이스를 위한 접속 및 제어 시스템(10)이 도시되어 있다. 시스템(10)은 인터넷과 같은 공중망이나 글로벌망(16)을 거쳐 연결 서버(14)에 동작가능하게 연결된 하나 이상의 클라이언트 또는 사용자 컴퓨터(12a, 12b)를 포함한다. 또한 시스템(10)은 또한 글로벌망(16)을 거쳐 연결 서버(14)에 동작가능하게 연결되어 있는 하나 이상의 네트워크 기반 디바이스(18a, 18b)를 포함한다. 도시된 바와 같이, 클라이언트 컴퓨터(12a, 12b)는 방화벽 엘리먼트(22)를 통해 글로벌망(16)에 동작가능하게 연결되어 있는 제 1 사설망(20)의 일부이다. 네트워크 기반 디바이스(18a, 18b)는 방화벽 엘리먼트(26)을 거쳐 글로벌망에 동작가능하게 연결되어 있는 제 2 사설망(24)내에 위치되어 있다. 도 1의 실시예에서, 연결 서버(14)는 방화벽 엘리먼트(30)를 거쳐 글로벌망(16)에 동작가능하게 연결되어 있는 사설망(28)내에 위치되어 있다.
사용자 또는 클라이언트 컴퓨터(12a, 12b)는 미니컴퓨터, 마이크로컴퓨터, UNIX® 머신, 메인프레임 머신, INTEL®, APPLE®, 또는 SUN®기반 컴퓨터 프로세싱 컴퓨터 또는 그 클론과 같은 퍼스널 컴퓨터(PC), 또는 기타 적당한 컴퓨터와 같은 임의의 표준 컴퓨터를 포함할 수 있다. 클라이언트 컴퓨터(12a, 12b)는 또한 마더보드, 중앙 처리 장치(CPU), 랜덤 액세스 메모리(RAM)헝태의 메모리, 하드 디스크 드라이브, 디스플레이 어댑터, 디스켓 드라이브와 같은 기타 저장장치, CD-ROM, DVD-ROM, CD-RW, DVD-RW, 플래시-ROM, 테이프 드라이브, PCMCIA 카드 및/또는 기타 제거가능한 매체, 모니터, 키보드, 마우스 및/또는 기타 사용자 인터페이스, 모뎀, 네트워크 인터페이스 카드(NIC), 및/또는 기타 종래의 입/출력 디바이스와 같은, (도시 안된) 전형적인 컴퓨터 구성요소를 포함할 수 있다. 많은 실시예에서, 클라이언트 컴퓨터(12a, 12b)는 종래의 데스크탑 또는 "타워"머신을 포함하지만, 대안으로 휴대용 또는 "랩탑" 컴퓨터, 노트북 컴퓨터, 휴대용 PDA 또는 "팜탑" 컴퓨터, 태블릿 컴퓨터, 웹 페이지를 브라우징할 수 있는 휴대폰, 웹 페이지를 브라우징할 수 있는 "덤 단말기(dumb terminals)", WEBTV®과 같은 웹 페이지를 브라우징을 할 수 있는 인터넷 단말기, 기타 웹 브라우징 또는 네트워크 기반 디바이스를 포함할 수 있다.
각각의 사용자 또는 클라이언트 컴퓨터(12a, 12b)는, 메모리내에 로딩되는, UNIX®, WINDOWS®98, WINDOWS®ME, WINDOWS®2000, LINUX®, System X®, Apple OS®등과 같은 (도시 안된) 운영 시스템, 또는 전용 운영 시스템을 포함할 수 있다. 각각의 클라이언트 컴퓨터(12a, 12b)는 더욱이 NETSCAPE NAVIGATOR®, INTERNET EXPLORER®, AOL® 등의 클라이언트 컴퓨터를 위한 브라우징 소프트웨어와 같은 (도시 안된) 웹 브라우저 프로그램을 메모리내에 로딩했을 수 있다. 본 발명에 따라, 클라이언트 컴퓨터(12a, 12b)는 각각 연결 서버(14)를 통한 요청시 클라이언트 컴퓨터(12a, 12b)가 네트워크 기반 디바이스(18a, 18b)에 지시를 전송 할 수 있게 하고, 데이터를 하기한 바와 같이, 연결 서버(14)를 통한 응답을 거쳐 네트워크 기반 디바이스(18a, 18b)로부터 수신하게 할 수 있는, 메모리에 저장된 프로그래밍(32)을 포함할 수 있다. 프로그래밍(32)은 전기적, 광학적, 또는 자기적으로 저장된 코드 형태 또는 클라이언트 컴퓨터(12a, 12b)의 램이나 다른 메모리에 로딩된, 판독가능한 저장된 코드의 기타 형태일 수 있다.
연결 서버(14)는 표준 데이터 프로세싱 디바이스 또는, 미니컴퓨터, 마이크로컴퓨터, UNIX® 머신, 메인프레임 머신, INTEL®기반 프로세싱 컴퓨터 또는 그 클론과 같은 퍼스널 컴퓨터(PC), APPLE®컴퓨터 또는 그 클론 또는, SUN®워크스테이션을 포함하는 컴퓨터, 또는 기타 적당한 컴퓨터일 수 있다. 연결 서버(14)는 마더보드, 중앙 처리 장치(CPU), 랜덤 액세스 메모리(RAM), 하드 디스크 드라이브, 디스플레이 어댑터, 디스켓 드라이브와 같은 기타 저장 매체, CD-ROM, DVD-ROM, CD-RW, DVD-RW, 플래시-ROM, 테이프 드라이브, PCMCIA카드 및/또는 기타 제거가능한 매체, 모니터, 키보드, 마우스 및/또는 기타 사용자 인터페이스 수단, 모뎀, 네트워크 인터페이스 카드(NIC), 및/또는 기타 종래 입/출력 디바이스와 같은 (도시 안된) 종래의 구성요소를 포함할 수 있다. 이하에 기술되는 바와 같이, 다중 연결 서버(14)가 사용될 수 있다.
연결 서버(14)는 그 메모리내에 UNIX®, WINDOWS®NT, NOVELL®, SOLARIS®, LINUX® 또는 기타 서버 운영 시스템과 같은 (도시 안된) 서버 운영 시스템, 또는 (예컨대, NEC 또는 기타 전용 시스템과 같은) 전용 서버 운영 시스템을 저장하고 있다. 연결 서버(14)는 또한 그 메모리내에 NETSCAPE®, INTERNET INFORMATION SERVERTM(IIS)와 같은 (또한 도시 안된) 웹 서버 소프트웨어, 또는 클라이언트 컴퓨터(12)로부터 웹 페이지 요청 또는 HTTP(Hypertext transfer protocol)을 처리하기 위하여 로딩된 기타 적당한 웹 서버 소프트웨어를 로딩하고 있다. 연결 서버(14)는 또한 복수의 클라이언트(12)와 하나 이상의 네트워크 기반 디바이스(18)사이에 복수의 네트워크 연결을 확립하여 유지하도록 구성된 연결 핸들러 어레이(34)를 포함할 수 있다. 어레이(34)에서 각각의 연결 핸들러는 요청을 수신하여 클라이언트(12)와 로부터 및 네트워크 기반 디바이스(18)로까지 응답을 전송함으로써 클라이언트 컴퓨터(12)와 네트워크 기반 디바이스(18)사이의 연결을 처리한다. 하기한 바와 같이, 요청과 응답은 HTTP 또는 기타 적당한 프로토콜일 수 있다. 본 발명에 이용할 수 있는 연결 서버는 또한, 참조로 본 명세서에 첨부된, 미국 특허 출원 번호 제 09/454,178호에 개시되어 있다.
사설망(24)내에, 네트워크 기반 디바이스(18a, 18b)의 각각은, 글로벌망(16)에 동작가능하게 연결되어 있는 디바이스 제어 컴퓨터(36)에 동작가능하게 연결되어 있다. 다중 디바이스 제어 컴퓨터(36)는 네트워크(24)내에 있을 수 있고, 각각의 디바이스 제어 컴퓨터(36a, 36b, 36c)는 하나 이상의 네트워크 기반 디바이스(18a, 18b)를 지원하도록 구성되어 있다. 디바이스 제어 컴퓨터(36)는 미니컴퓨터, 마이크로컴퓨터, UNIX®머신, LINUX®머신, 메인프레임 머신, INTEL®, APPLE®, 또는 SUN®기반 프로세싱 컴퓨터 또는 그 클론과 같은 퍼스널 컴퓨터(PC)를 포함하는 상기한 바와 같은 표준 컴퓨터를 포함할 수 있다. 각각의 디바이스 제어 컴퓨터(36a, 36b, 36c)는 마더보드, 중앙 처리 장치(CPU), 랜덤 액세스 메모리(RAM)형태의 메모리, 하드 디스크 드라이브, 디스플레이 어댑터, 디스켓 드라이브와 같은 기타 저장 매체, CD-ROM, DVD-ROM, CD-RW, DVD-RW, 플래시-ROM, 테이프 드라이브, PCMCIA 카드 및/또는 기타 제거가능한 매체, 모니터, 키보드, 마우스 및/또는 기타 사용자 인터페이스, 모뎀, 네트워크 인터페이스 카드(NIC)와 같은 전형적인 컴퓨터 구성요소를 포함한다. 디바이스 제어 컴퓨터(18a, 18b)의 각각은 일반적으로 NETSCAPE NAVIGATOR®, INTERNET EXPLORER®, AOL®등과 같은 브라우저 뿐만 아니라, UNIX®, WINDOWS®98, WINDOWS®ME, WINDOWS®2000, LINUX®등과 같은 운영 시스템, 또는 전용 운영 시스템을 포함한다. 디바이스 제어 컴퓨터(36a, 36b, 36c)는 또한 디바이스 제어 컴퓨터(36a, 36b, 36c)가 클라이언트(12a, 12b)로부터 연결 서버(14)를 거쳐 지시를 수신하고 연결 서버(14)를 거쳐 응답 데이터를 클라이언트(12a, 12b)에 전송할 수 있게 하는 저장된 프로그래밍(38)을 포함한다.
네트워크 기반 디바이스(18a, 18b)는 지시를 수신하고 컴퓨터 네트워크를 거쳐 데이터를 전송할 수 있는 임의의 장치나 구성요소를 포함할 수 있다. 특정 실시예에서, 이러한 디바이스는 과학적 도구, 화학적 반응기, 비디오 보안 디바이스, 외과용 디바이스, 전력계, 전력 발생기, 가정용 장치, 제조 장치, 오피스 장치, 기타 유사한 장치, 또는 원격으로 제어되고, 모니터되고 또는 작동되도록 구성되는, 가상의 임의의 원격 제어가능 장치를 위한 전자 제어 모듈을 포함할 수 있다. 각각의 디바이스 제어 컴퓨터(36a, 36b, 36c)에 연계된 하나 이상의 네트워크 기반 디바이스(18a, 18b)가 사용될 수 있다. 네트워크 기반 디바이스(18a, 18b)는, 디바이스 제어 컴퓨터(36) 또는, USB, IEEE1394, "FIREWIRE®", RS-232, 패러렐, PCI등을 거쳐 디바이스 제어 컴퓨터(36a, 36b, 36c)에 연결된 기타의 네트워크 기반 디바이스(18a, 18b)의 동작을 방해하지 않고 그 네트워크 기반 디바이스(18a, 18b)가 디바이스 제어 컴퓨터(36a, 36b, 36c)에 연결될 수 있는 "플러그 앤드 플레이"동작을 위해 구성될 수 있다.
사설망(20, 24, 28)은 협동 근거리망(LAN), 원거리망(WAN), 도심망(MAN) 또는 기타 형태의 사설망 또는 비글로벌망을 포함할 수 있다. 사설망(20)은 방화벽(22)을 통하여 글로벌망(16)과 클라이언트 컴퓨터(12a, 12b)의 통신을 관리하는 (도시 안된) 하나 이상의 내부 서버를 포함할 수 있다. 클라이언트 컴퓨터(12a, 12b)는 사설망(20)내에서 스타형, 버스형, "토큰링" 또는 기타 구성으로 배치될 수 있다. 글로벌망(16)으로의 연결은 DSL(digital subscriber line), 인터넷 서비스 프로바이더(ISP)를 거쳐 모뎀과 전화선에 의한 전화 연결, 무선 연결, 위성 연결, 적외선 연결, 또는 기타 인터넷(16)에 연결하기 위한 수단에 의할 수 있다. 사설망(24)은 마찬가지로 (도시 안된) 내부 서버 머신을 포함할 수 있고, 디바이스 제어 컴퓨터(36a, 36b, 36c)는 사설망 서버에 적당히 연결되고, DSL(digital subscriber line), 인터넷 서비스 프로바이더(ISP)를 거쳐 모뎀과 전화선에 의한 전화 연결, 무선 연결, 위성 연결, 적외선 연결등을 통해 글로벌망(16)과 연결된다.
방화벽 엘리먼트(22, 26, 30)는 사설망(20, 24, 28)으로부터 및 사설망(20, 24, 28)으로의 네트워크 통신을 필터링, 제한, 또는 제어하는데 사용되는, 소프트웨어 및/또는 하드웨어로 구체화된, 임의의 보안 엘리먼트를 포함할 수 있다. 방화벽 엘리먼트는, 예컨대, 패킷 필터링 방화벽, 회로 레벨 게이트웨이, 특정 명령을 필터링하는 "프록시" 애플리케이션, 스테이트-풀 다중층 검사 방화벽, 사설망 외부로부터 유일한 IP주소가 요구되는 반면 사설망내의 다중의 이중 IP주소의 사용을 가능하게 하는 네트워크 주소 번역기(NAT : network address translator) 엘리먼트, 및/또는 트래픽을 제한하고 보안을 향상시키는 기타 엘리먼트 또는 시스템을 포함할 수 있다.
도 1에 도시된 시스템(10)은 본 발명에 사용될 수 있는 많은 가능한 네트워크 컴퓨터 시스템중 하나만을 나타낸다. 명확화를 위하여, 단지 두개의 클라이언트 컴퓨터(12a, 12b)만이 사설망(20)내에 도시되고, 두개의 네트워크 기반 디바이스(18a, 18b) 및 3개의 디바이스 제어 컴퓨터(36a, 36b, 36c)가 사설망(24)내에 도시된다. 부가적인 사설망, 클라이언트 컴퓨터, 디바이스 제어 컴퓨터 및 네트워크 기반 디바이스가 시스템(10)내에 있을 수 있다. 더욱이, 사용자 또는 클라이언트 컴퓨터와 네트워크 기반 디바이스 둘다가 각각의 사설망내에 있을 수 있다. 당업자에게 많은 변형이 제안될 수 있다.
시스템(10)의 동작에서, 클라이언트 머신(12)의 사용자는 글로벌망(16)을 거쳐 연결 서버(14)와 연결(40)을 확립한다. 그 다음에 연결 서버(14)는 글로벌망(16)을 거쳐 디바이스 제어 컴퓨터(36) 및 네트워크 기반 디바이스(18)에 연결(42)을 확립한다. 그 다음에 클라이언트 프로세스(32) 및 디바이스 제어 컴퓨 터(38)는 연결 서버(14)를 거쳐 서로에게 방화벽 호환의 HTTP요청을 전송할 수 있고, 서로로부터 HTTP응답을 수신할 수 있다. 네트워크 기반 디바이스(18a, 18b)에 대한 사용자 지시, 및 네트워크 기반 디바이스로부터의 데이터는 연결 서버(14)상에서 프로세스(34)에 의해 처리되는, HTTP요청 및 응답내에 임베딩될 수 있다. 네트워크 기반 디바이스(18a, 18b)로의 연결은 연결 서버(14)를 통해 이루어지므로, 그 디바이스에 대한 IP(internet protocol)주소는 클라이언트 컴퓨터(12a, 12b)의 사용자에게 개시될 필요가 없고, 또한 클라이언트 컴퓨터(12a, 12b)의 IP주소는 네트워크 기반 디바이스(18a, 18b)에 또는 서로에게 개시될 필요가 없다. 더욱이, 대부분의 방화벽과 프록시 시스템은 HTTP요청을 수락하기 때문에, 클라이언트 컴퓨터(12a, 12b)와 네트워크 기반 디바이스(18a, 18b)간의 연결은 심리스하고 방화벽 호환이 된다.
클라이언트 컴퓨터(12a, 12b)와 연결 서버(14)간의 연결은 하기된 바와 같이 안전한 연결을 제공하기 위해 사용자의 승인을 요할 수 있다. 네트워크 기반 디바이스(18a, 18b)간의 연결은 또한 보안을 위해 승인이나 인증을 요할 수 있다. 일단 클라이언트 컴퓨터(12a, 12b)와 연결 서버(14)간에, 및 연결 서버(14)와 네트워크 기반 디바이스(18a, 18b)간에 안전한 연결이 확립되면, HTTP요청 및 응답내에 임베딩된 후속 데이터와 지시는 암호화될 필요가 없다. 클라이언트 컴퓨터(12a, 12b)와 네트워크 기반 디바이스(18a, 18b)간의 연결시에, 한번만 보안이 확립되고, 그 다음에 HTTP요청 및 응답내에 임베딩된 후속 데이터는 확립된 보안 연결위에 암호화되거나 암호화됨이없이 전송될 수 있기 때문에, 이것은 클라이언트 컴퓨터(12a, 12b)와 네트워크 기반 디바이스(18a, 18b)간의 데이터 전송을 위한 컴퓨터 오버헤드를 크게 줄인다. 암호화된 데이터가 전송될때라도, 각각의 전송 또는 통신에 새로운 보안키가 전송될 필요가 없다. 이것은 보안 카메라, 환자 건강, 전력 발생 및 공급, 제조 프로세스, 원격 제조, 스마트 하우스 제어, 오피스 머신의 원격 제어, 및 신속한 데이터 전송을 필요로하는 기타 용도를 모니터링하기 위한 실시간 비디오 데이터 스트림과 같은 용도를 위해 클라이언트(12a, 12b)와 원격 디바이스(18a, 18b)간의 인터넷상의 신속하고, 안전한 데이터 전송을 가능하게 한다. 대조적으로, 종래의 시스템은 일반적으로 각각의 커맨드/데이터 전송이 암호화된 형태로 전송되기 위하여 새로운 보안키의 생성을 필요로하고, 이것은 각각의 개별 전송을 인증하고 해독하는데 필요한 컴퓨터 오버헤드와 프로세싱 시간을 크게 증가시키고, 실시간 스트리밍 데이터 전송의 안전한 전송의 효율을 크게 줄인다.
본 명세서에 개시된 특정 실시예에서, HTTP는 널리 구현되어 있고 대부분의 방화벽과 프록시 시스템에 의해 관리되기 때문에, HTTP는 클라이언트 컴퓨터(12a, 12b) 및 네트워크 기반 디바이스(18a, 18b)에/로부터 이진 데이터를 전송하고 수신하기 위한 메커니즘 또는 프로토콜로서 사용된다. 그러나, 데이터 트래픽이 이러한 프로토콜을 사용하여 전송되게 할 수 있는 한, 기타 프로토콜 또한 사용될 수 있음을 이해해야 한다. 본 발명의 특정 실시예에서 사용될 수 있는 HTTP외의 데이터 전송 프로토콜은 또한, 상기한 미국 특허 출원 제 09/454,178호에 개시되어 있다.
사설망(20) 및/또는 (도시 안된) 기타 사설망내의 다중 클라이언트 컴퓨터(12a, 12b)는 동시의, 협동적인 사용을 위해, 동일 디바이스(18a 또는 18b)에 또는 복수의 동일 디바이스(18a, 18b)에 동시에 연결을 확립할 수 있다. 사설망(28)내에 지원 인력(44)이 또한 연결 서버(14)를 거쳐, 클라이언트 컴퓨터(12a, 12b)에 의해 접속된 동일 원격 디바이스(18a, 18b)에 연결하기 위해 배치될 수 있다. 클라이언트 컴퓨터(12a, 12b)의 사용자는, 예컨대, 고객-판매자 관계에 있는 사람을 포함할 수 있고, 따라서 네트워크 기반 디바이스(18a, 18b)의 판매자와 구매자는 동시에, 안전하게, 협동적으로 글로벌망(16)을 거쳐 연결 서버(14)를 통해 원격으로 동일 디바이스에 액세스할 수 있다.
도 2를 참조하면, 본 발명에 따른 액세스 및 제어 시스템(46)의 또다른 실시예가 도시되어 있고, 동일 부분에 대하여는 동일 부재번호가 명기되어 있다. 시스템(46)은 복수의 연결 서버(14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h, 14n)를 포함하는 분배 제어 기반구조(48)를 포함한다. 연결 서버(14a-14n)의 각각은 도 1의 연결 서버(14)에 대하여 기술된 동일한 구성요소와 소프트웨어를 포함한다. 도시된 바와 같이, 연결 서버(14a)는 주 연결 서버로 동작하도록 구성되어 있고, 각각의 연결 서버(14b-14n)는 연결 서버(14a)에 동작가능하게 연결되어 있다.
연결 서버(14a)는 상기한 바와 같이 인터넷이나 기타 글로벌망을 거쳐 클라이언트 컴퓨터(12a, 12b, 12c, 12n) 및 네트워크 기반 디바이스(18a, 18b, 18c, 18d, 18e, 18f, 18g, 18n)에 동작가능하게 연결되어 있다. 클라이언트 컴퓨터(12a-12n)의 각각은 저장된 클라이언트 프로세스 또는 프로그램(도 1: 32)을 포함하고, 디바이스 제어 컴퓨터(36a-36n)의 각각은 상기한 디바이스 제어 프로세 스 또는 프로그램(도 1: 38)을 포함한다. 동작동안 연결 서버(14a)는 클라이언트 컴퓨터(12a, 12n)에 접촉하여 있고, 로드 밸런싱 프로그래밍(50)에 따라 동작하는 로드 밸런싱 알고리즘에 따라 부가적인 연결 서버(14b-14n)중 하나에 각각의 클라이언트 사용자를 할당한다. 연결 서버(14b-14n)에 관한 로드 밸런싱은 사용자가 승인될때 수행될 수 있다. 클라이언트 컴퓨터(12a-12n)의 각각은 도 1을 참조하여 상기한 바와 같이 (도시 안된) 상이한 방화벽에 의해 보호되는 (도시 안된) 상이한 사설망의 형태일 수 있다. 마찬가지로, 각각의 디바이스 제어 컴퓨터(36a-36n) 및 대응 네트워크 기반 디바이스(18a-18n)는 상이한 방화벽 시스템을 가진 다중의 상이한 사설망내에 위치될 수 있다.
분배 제어 기반구조(48)는 스케일러블하거나 확장가능하고, 플렉시블하며 시스템(46)에 있는 클라이언트 컴퓨터(12a-12n), 디바이스 제어 컴퓨터(36a-36n) 및 네트워크 기반 디바이스(18a-18n)의 수와 특성, 클라이언트 컴퓨터(12a-12n)와 네트워크 기반 디바이스(18a-18n)간의 트래픽 레벨에 따라 재구성될 수 있다. 따라서 연결 서버(14a-14n)는 사실상 모듈식이고, 부가되는 클라이언트 컴퓨터(12a-12n)와 네트워크 기반 디바이스(18a-18n)의 수의 증가에 따라 필요한 경우, (도시 안된) 부가적인 연결 서버가 분배 제어 기반구조(48)에 부가될 수 있다.
분배 제어 기반구조는 또한, 각각이 연결 서버(14a-14n)의 각각에 동작가능하게 연결될 수 있는, 복수의 데이터베이스(52a, 52b, 52n)를 포함한다. 이것에 관하여, 연결 서버(14a-14n)는 SQL®, DB2®과 같은 (도시 안된) 저장된 데이터베이스 간의 프로그래밍 또는 데이터베이스(52a-52n)와 관련된 정보를 검색하고 저장 할 수 있는 유사 프로그래밍을 포함할 수 있다. 연결 서버(14a-14n)는 대안으로 데이터베이스(52a-52n)로부터 정보를 액세스할 수 있는 (도시 안된) 하나 이상의 데이터베이스 서버를 통해 데이터베이스(52a-52n)에 작동가능하게 연결될 수 있다.
데이터베이스(52a-52n)는 연결 서버(14a-14n)의 동작에 관한 데이터뿐 아니라 원격 디바이스(18a-18n)의 동작에 관한 데이터 및 클라이언트 머신(12a-12n)의 사용자에 관한 저장된 데이터를 포함할 수 있다. 하나 이상의 세션동안 다양한 원격 디바이스(18a-18n)의 동작에 관한 데이터가 데이터베이스(52a-52n)내에 저장될 수 있다. 그 다음에 저장된 데이터는 후속 세션에서 클라이언트 컴퓨터(12a-12n)의 사용자에 의해 액세스될 수 있다. 이러한 데이터베이스 기능은 엔터프라이즈 소프트웨어 솔루션에 의해 디바이스(18a-18n)로부터 데이터의 통합을 가능하게 한다. 상기한 바와 같이, 클라이언트(12a-12n)의 사용자는 많은 예에서 네트워크 기반 디바이스(18a-18n)의 사용에 관하여 고객-판매자 또는 기타의 비지니스 관계일 수 있고, 디바이스(18a-18n)로부터 저장된 데이터는 소프트웨어 시스템 엔터프라이즈 리소스 관리, 고객 관계 관리, 기회 관리, 및 기타 비지니스 관련 소프트웨어 시스템으로 사용될 수 있다. 클라이언트 컴퓨터(12a-12n) 및/또는 디바이스(18a-18n)의 사용자나 소유자는, 데이터베이스(52a-52n)내의 데이터의 사용뿐 아니라, 원격 디바이스(18a-18n)에 안전한 액세스를 위하여 분배 제어 기반구조(48)의 사용을 위하여 각 사용자나 소유자가 주기적으로 요금을 납부하거나 일시 구독료를 납부하는 구독 기반으로 시스템(46)에 관련될 수 있다.
다음에, 도 3을 참조하면, 본 발명에 따른 또다른 액세스 및 제어 시스템(54)이 도시되고, 동일 부분에 관하여는 동일 부재번호가 명기된다. 시스템(54)은 보안 서버(58)를 가진 분배 제어 기반구조(56)를 가진다. 복수의 연결 서버(14a, 14b, 14c, 14d, 14e, 14f, 14g, 14h, 14n)가 보안 서버(58)에, 그리고 복수의 데이터베이스(52a, 52b, 52n)에 동작가능하게 연결된다. 보안 서버(58)는, 상기한 방식으로 인터넷이나 다른 글로벌망을 거쳐 복수의 클라이언트 컴퓨터(12a, 12b, 12c, 12n)에, 그리고 복수의 디바이스 제어 컴퓨터(36a, 36b, 36c, 36d) 및 네트워크 기반 디바이스(18a, 18b, 18c, 18d, 18e, 18f, 18g, 18n)에 동작가능하게 연결된다. 클라이언트 컴퓨터(12a-12n)의 각각은 저장된 클라이언트 프로세스 또는 프로그램(32)을 포함하고, 디바이스 제어 컴퓨터(36a-36n)의 각각은 디바이스 제어 프로세스 또는 프로그램(38)을 포함한다. 분배 제어 기반구조(56)는 시스템(54)내에 있는 클라이언트 컴퓨터, 디바이스 제어 컴퓨터 및 네트워크 기반 디바이스의 수에 따라 스케일러블하고 재구성가능하다.
시스템(54)의 동작동안, 서버(58)는 인터넷을 거쳐 네트워크 기반 디바이스(18a-18n)에 액세스를 하려는 클라이언트 컴퓨터(12a-12n)의 사용자에 의해 접촉된다. 보안 서버(58)는 클라이언트 컴퓨터와 네트워크 기반 디바이스(18a-18n)간의 연결을 확립하기 전에 클라이언트 컴퓨터(12a-12n)의 사용자를 인증하기 위해 사용되는 보안 또는 인증 프로그래밍(60)을 포함한다. 보안 서버(58)는 또한 로드 밸런싱 기준에 따라 연결 서버(14a-14n)중 각각의 하나에 클라이언트 컴퓨터(12a-12n)와 네트워크 기반 디바이스(18a-18n)를 할당하는데 사용되는 로드 밸런싱 프로그래밍(50)을 포함한다.
도 1 내지 도 3에 도시된 바와 같은 본 발명의 시스템은 당업자에게 제안될 다양한 기타 네트워킹된 컴퓨터 구성으로 구체화될 수 있다. 본 발명의 소프트웨어 태양은 사실상 매우 분산되어 있고, 도 1 내지 도 3에 도시된 특정 컴퓨터상에 위치될 필요는 없다. 따라서, 클라이언트 애플리케이션(32)과 디바이스 제어 애플리케이션(36)에 의해 수행된 특정 동작은 연결 서버(14a-14n), 보안 서버(58), 또는 인터넷을 거쳐 클라이언트 컴퓨터(12a-12n) 및/또는 네트워크 기반 디바이스(18a-18n)에 의해 액세스되는 (도시 안된) 기타 서버상에 위치되는 소프트웨어에 구체화될 수 있다.
액세스 및 제어 시스템(54)의 동작은 도 3뿐만 아니라 도 4의 플로우차트를 참조하여 보다 완전하게 이해될 것이다. 도 4의 이벤트는 디바이스 제어 컴퓨터(DCC)(36a-36n)뿐만 아니라 클라이언트 컴퓨터(12a-12n)에도 적용된다고 이해되어야 한다. 도 4에 도시되고 본 명세서의 다른 플로우차트에 나타난 이벤트는 "클라이언트/DCC"(즉, 클라이언트 머신(12a-12n) 또는 디바이스 제어 컴퓨터(36a-36n))가 수행할 수 있거나 그렇지 않으면 그 이벤트에 관련될 수 있다는 것을 나타낸다. 그러나, 명확화의 이유로, 도 4의 이벤트는 클라이언트 컴퓨터(12a-12n)에 의한 사용에 관해 주로 기술된다. 그러나, 동일한 이벤트가 또한 디바이스 제어 컴퓨터(36a-36n)에 의해 수행될 수 있음을 이해해야 한다. 또한 다중 클라이언트 컴퓨터(12a-12n)는 다중 연결 서버(14a-14n)를 통해 다중 디바이스 제어 컴퓨터(36a-36n) 및 네트워크 기반 디바이스(18a-18n)에 동시에 연결될 수 있고, 다음 설명에서는, 클라이언트 컴퓨터(12a-12n), 연결 서버(14a-14n), 디바이스 제 어 컴퓨터(36a-36n), 및 네트워크 기반 디바이스(18a-18n)가 집합적으로 언급된다.
이벤트(400)에서, 클라이언트 컴퓨터(12a-12n)의 사용자는 분배 제어 기반구조(56)의 보안 서버(58)에 접촉한다. 이러한 접촉은 클라이언트 컴퓨터(12a-12n)와 보안 서버(58)간의 TCP소켓 연결의 확립에 의한 종래 방법으로 수행될 수 있다.
이벤트(410)에서, 이벤트(400)에서 접촉을 수행한 클라이언트 컴퓨터(12a-12n)의 사용자가 승인되었는지 여부에 관해 보안 서버(58)에 의해 판정된다. 사용자 승인 이벤트(410)는 임베딩된 사용자 인증 데이터를 가진, HTTP요청의 사용자에 의하여, 클라이언트 컴퓨터(12a-12n)상의 클라이언트 애플리케이션(32)에 의하여 서브미션을 포함할 수 있다. 요청내에 임베딩된 인증 데이터는 암호화될 수 있다. 인증 데이터는 사용자가 연결을 확립하기 원하는 특정 네트워크 기반 디바이스(18a-18n)를 위한 확인 정보뿐 아니라, 사용자명 및 패스워드 정보를 포함할 수 있다. 보안 서버(58)상의 인증 애플리케이션(60)은 요청되는 인증 데이터가 클라이언트 컴퓨터(12a-12n)로부터 전송되는 동안 변경되었는지 여부와, 인증 데이터가 클라이언트 컴퓨터(12a-12n)의 사용자를 확인하는지 여부를 알아보기 위해 체크한다. 인증이 거부되면, 이벤트(400)가 반복될 수 있다. 사용자에게 보안 에러, 및 네트워크 기반 디바이스(18a-18n)로의 액세스가 거부되었음을 충고하는 HTTP응답이 보안 서버에 의해 클라이언트 컴퓨터(12a-12n)로 전송될 수 있다. 클라이언트 컴퓨터(12a-12n)의 사용자가 이벤트(410)에서 승인되면, 암호화키가 준비되어 사용자를 확인할 수 있다. 사용자 승인에 이어서, 이벤트(420)가 수행된다. 시스템(54)의 승인 프로세스와 보안 태양은 도 5의 플로우차트를 참조하여 이하에 서 보다 상세하게 기술된다.
이벤트(420)에서, 보안 서버(58)는 연결 서버(14a-14n)중 하나를 이벤트(410)에서 승인된 클라이언트 컴퓨터(12a-12n)의 사용자에게 할당한다. 연결 서버 할당은 보안 서버(58)상의 로드 밸런싱 애플리케이션(50)에 의해 수행된다. 특정 사용자에게 연결 서버(14a-14n)를 할당하는 것은 이러한 연결 서버의 상대적인 현재의 워크로드뿐만 아니라 사용자 타입, 사용자가 구축하기 원하는 세션타입, 및 사용자 타입이 세션 타입을 적응시키도록 구성되는 특정 연결 서버의 상태와 이용가능성에 기초할 수 있다. 본 발명의 로드 밸런싱 태양은 도 6의 플로우차트를 참조하여 이하에서 보다 상세하게 기술될 것이다.
이벤트(430)에서, 이벤트(420)에서 할당된 연결 서버(14a-14n)와, 이벤트(410)에서 승인된 사용자에 의해 선택된 네트워크 기반 디바이스(18a-18n)간에 연결된다. 이러한 연결은 보안 서버(58)와 사용자에 의해 선택된 네트워크 기반 디바이스(18a-18n)사이의 TCP소켓 연결의 형태일 수 있다.
이벤트(440)에서, 클라이언트 컴퓨터(12a-12n)는 네트워크 기반 디바이스(18a-18n)에 지시나 커맨드를 전송하고, 이벤트(450)에서, 네트워크 기반 디바이스(18a-18n)는 데이터를 클라이언트 컴퓨터(12a-12n)에 전송한다. 완전한 듀플렉스 연결이 확립될때, 이러한 이벤트는 동시에 일어날 수 있다. 클라이언트 컴퓨터(12a-12n)상의 클라이언트 프로세스(32)는 임베딩된 커맨드 데이터를 포함하는 연결 서버(14a-14n)에 주기적으로 HTTP요청을 전송한다. 디바이스 제어 컴퓨터(36a-36n)상의 디바이스 제어 프로세스(38)는 또한 네트워크 기반 디바이스(18a-18n)로부터 임베딩된 데이터에 의해 연결 서버(14a-14n)에 주기적인 HTTP요청을 전송한다. 이러한 요청은 연결 서버(14a-14n)상의 프로세스(34)에 의해 처리된다. 프로세스(34)는 클라이언트 컴퓨터(12a-12n)로부터 임베딩된 커맨드 데이터를 포함하는 디바이스 제어 컴퓨터(36a-36n)에 HTTP응답을 전송한다. 커맨드 데이터는 디바이스 제어 컴퓨터(36a-36n)상의 프로세스(38)에 의해 HTTP응답으로부터 검색되고 디바이스(18a-18n)에 통신된다. 마찬가지로, 프로세스(34)는 클라이언트 프로세스(32)에 의해 검색되는, 디바이스(18a-18n)로부터 임베딩된 데이터를 포함하는 HTTP응답을 클라이언트 컴퓨터(12a-12n)에 전송한다. 이벤트(440 및 450)에서 클라이언트 프로세스(32), 디바이스 제어 프로세스(38), 및 연결 서버 프로세스(34)의 동작은 도 7 및 도 8의 플로우차트를 참조하여 이하에서 보다 상세하게 기술된다.
이벤트(460)에서, 네트워크 기반 디바이스(18a-18n)(또는 클라이언트 컴퓨터(12a-12n))로부터의 데이터가 데이터베이스(52a-52n)에 저장된다. 이러한 데이터는 동일 세션이나 후속 세션에서 다른 승인된 사용자에 의해 사용될 수 있다.
상기한 바와 같이, 상기한 도 4의 이벤트는 양방향일 수 있고, 즉, 디바이스 제어 컴퓨터(36a-36n)는 먼저 보안 서버(58)에 접촉하고, 승인을 얻고, 연결 서버(14a-14n)에 할당되고, 그 다음에 하나 이상의 선택된 클라이언트 컴퓨터(12a-12n), 및/또는 하나 이상의 기타 디바이스 제어 컴퓨터(36a-36n)와 연결될 수 있다. 또한, 도 4의 이벤트는 하나 이상의 디바이스 제어 컴퓨터(36a-36n)와 연결하 거나 연결없이 하나 이상의 기타 클라이언트 컴퓨터(12a-12n)와의 연결을 확립하기 위하여 제 1 클라이언트 컴퓨터(12a-12n)에 의하여 수행될 수 있다. 특정 실시예에서, 보안 서버(58)는 생략될 수 있고, 대신 롤 밸런싱 및 승인 애플리케이션이 하나 이상의 연결 서버(14a-14n)상에서 작동될 수 있다. 도 1에 도시된 바와 같은 또다른 실시예에서, 단 하나의 연결 서버만이 사용될 수 있고, 인증 애플리케이션(60) 및 로드 밸런싱 애플리케이션(50)은 그 단 하나의 연결 서버상에 위치되고, 로드 밸런싱 애플리케이션(50)은 그 단 하나의 연결 서버의 현재의 부하 및 임의의 주어진 시간에 그 단 하나의 서버에 의해 부가적인 애플리케이션이 처리될 수 있는지 여부를 판정하는데 사용될 수 있다. 또다른 실시예에서, 로드 밸런싱 및 인증 동작이 생략될 수 있다. 상기한 이벤트의 상대적 순서의 변경과, 이벤트의 많은 변형이 가능하고 당업자에게 제안될 것이고, 이러한 변형은 또한 본 명세서의 범위내에 있다고 간주된다.
본 발명의 시스템 및 방법은 각각의 HTTP응답 및 요청에 임베딩된 데이터의 복잡한 암호화를 요함이 없이 인터넷을 거쳐 원격 사용자 및 디바이스간의 데이터의 안전하고, 신속한 전송을 제공하고, 따라서 실시간으로 데이터 스트림을 안전하게 전송하는 전례없는 기능을 제공한다. 또한 통신의 송신 및 수신의 종료시에 호환가능한 보안 프로토콜없이 안전한 통신에 의해 원격으로 네트워크 기반 디바이스를 제어하는 기능을 제공한다. 암호화는 데이터 통신을 보안하는데 중요한 역할을 한다. 현대의 키 기반 암호화에서, 계산 암호화 알고리즘 및 이진 암호화키를 사용하여 데이터는 판독불가능한 형태로 스크램블된다. 스크램블된 데이터는 암호화 키와 관련되어 있는 대응 해독키를 사용하여 해독될 수 있다. 현대의 키 기반 암호화에서, 암호화 및 해독 알고리즘이 잘 알려져 있을 수 있지만, 해독키, 및 때로는 암호화 키 또한, 잘 감시될 수 있다. 그러므로, 이러한 암호화 시스템의 강도는 키의 비트수에 관하여 전형적으로 측정되는 키 스페이스의 크기에 의해 결정된다. 예컨대, 40비트 키 스페이스는 240(즉, 1,099,511,627,776)개의 가능한 키를 가지고 있다.
인터넷으로 전송되는 데이터를 위해 사용되는, 비밀키(대칭) 암호화 및 공중키(비대칭)암호화의 두개의 주된 타입의 키 기반 암호화가 있다. 비밀키 암호화에서, 암호화와 해독화 프로세스는 동일한 대칭키를 사용하고, 이것은 공유키가 송신자 및 수신자에 의해 비밀로 유지되어야 함을 의미한다. 이러한 시스템은 그 비밀키의 사용시에 송신자와 수신자의 정합(coordination)을 필요로한다. 데이터 암호화 표준(DES)은 NIST(National Institute of Standards and Technology)에 의해 채택되어 온 비밀키 암호화 알고리즘의 일 예이다. DES는 암호화와 해독화를 위해 동일한 56비트의 키를 사용한다. 트리플 DES 또는 DESede로서 알려진 이 시스템의 변형이 후속적으로 개발되어 왔다. 트리플 DES는 세개의 개별 키를 사용한 DES알고리즘의 3번의 반복에 의해 데이터를 암호화하고 해독한다. 결과적으로, 트리플 DES는 168비트의 유효 키스페이스를 가지고 있는 훨씬 더 강력한 알고리즘이다.
공중키(비대칭) 암호화는, 각각, 공중키, 및 암호화 및 해독 프로세스를 위한 개인키의 한쌍의 키를 사용하는 알고리즘을 채용한다. 공중키 암호화 알고리즘에서, 개인키는 공중키로부터 실행가능하게 획득될 수 없고, 공중키는 암호화 알고 리즘의 보안에 영향을 미침이 없이 인터넷상에서 공개될 수 있다. RSA알고리즘으로 알려진, 한가지 유명한 공중키 암호화 알고리즘은 큰 수의 인수분해의 곤란성에 좌우된다. 또다른 유명한 공중키 암호화는, 한정된 분야에서 이산 로그를 계산하는 곤란성에 기초한, EIGamal알고리즘이다. 본 발명에서는, 클라이언트 컴퓨터(12a-12n)와 네트워크 기반 디바이스(18a-18n)사이의 안전한 데이터 통신에 RSA 또는 EIGamal알고리즘의 어느것이든 사용될 수 있다.
상기 비밀키 및 공중키 알고리즘은 둘다 데이터를 연산적으로 스크램블함으로써 데이터 프라이버시를 보호한다. 그러나, 이러한 알고리즘은 데이터의 인증을 보장하기 위한 데이터 통합을 보호하지 않는다. 메시지 요약(digest)은 리버싱하기 어려운 일방향(하시(hash)) 기능으로 알려진 특별한 알고리즘이다. 메시지 요약 기능은 그 메시지의 서명을 제공하는 메시지로부터 메시지 요약값을 계산하는데 사용될 수 있다.
양호한 메시지 요약 기능은 메시지 요약 기능하에서 동일한 메시지 요약값을 산출할 수 있는 메시지를 유도하는 것은 연산적으로 불가능하다는 것을 보장한다. 또한, 동일한 메시지 요약 기능을 사용하여 두개의 메시지로부터 동일한 메시지 요약값을 산출하는 것은 계산상 불가능하다. 공개적으로 이용가능하고 어떠한 키도 사용하지 않기 때문에, 메시지 요약 기능에 대한 비밀은 없다. 메시지가 전송되는동안 변경되거나 간섭되면, 그 메시지의 메시지 요약값은 또한 변경될 확률이 높고, 전송된 메시지 요약값과 계산된 메시지 요약값을 비교하면 변경이 발생했는지 여부를 지시할 수 있다. 본 발명에서 사용가능한 메시지 요약 알고리즘은 메시지 다이제스트5(MD5) 및 시큐어 하시 알고리즘(SHA-1)을 포함한다. NIST는 그 길이가 2 내지 64비트에 달하는 메시지상에서 동작하고 160비트의 메시지 요약값을 산출하기 위해 SHA-1알고리즘을 개발했다. 본 발명에 기타의 메시지 요약 알고리즘 또한 사용될 수 있다.
공개키 암호화의 주된 단점은 비밀키 알고리즘보다 연산적으로 보다 집중적이라는 것이다. 예컨대, EIGamal알고리즘은 그것이 기초하고 있는 수학적인 문제의 특성 때문에, 주어진 길이의 키를 위한 모든 가능한 값의 서브세트를 사용할 수만 있다. 그러나, 비밀키 알고리즘은 주어진 길이의 키를 위하여 모든 가능한 값을 사용할 수 있다. 결과적으로, 암호화에서 강한 것으로 간주되기 위해, 64비트 키를 가진 DES알고리즘에 의해 동일한 레벨의 보안이 제공될 수 있는 한편, EIGamal알고리즘은 적어도 512비트의 키를 필요로 할 수 있다. 비밀키 알고리즘이 큰 데이터의 전송을 위해 계산상 보다 유리하지만, 공유키의 비밀을 보증하기 위해 키 변환의 일정한 관리를 필요로한다. 이하의 일 실시예에서, 본 발명은, 송신자와 수신자, 즉, 클라이언트 컴퓨터(12a-12n)와 네트워크 기반 디바이스(18a-18n)간의 키교환을 암호화하고 연결을 인증하기 위하여, 512비트 키를 가진 EIGamal알고리즘과 같은 공중키 암호화를 채용한다. 이어서, 168비트키를 가진 트리플 DES와 같은 비밀키 알고리즘을 사용하여 풀-듀플렉스 데이터 통신이 비암호화되거나, 암호화될 수 있다.
상기 관점에서, 도 3뿐만 아니라 도 5를 참조하여 본 발명의 사용자 인증 및 암호화 태양을 설명한다. 도 5의 이벤트는 다시 클라이언트 컴퓨터(12a-12n)에 의 한 사용에 관하여 기술된다. 그러나, 디바이스 제어 컴퓨터(DCC)(36a-36n)와 관련하여 동일한 이벤트가 수행될 수 있음을 이해해야 한다. 도 5에 도시된 이벤트는 도 4의 이벤트(410)와 동시에 일어날 수 있고, 본 발명에 의해 사용될 수 있는 인증 시스템의 일 실시예를 보다 상세히 설명한다.
이벤트(500)에서, 클라이언트 컴퓨터(12a-12n)상의 프로세스(32)는 보안 서버(58)에 전송될 인증 데이터를 준비하고, 그 인증 데이터를 위한 메시지 요약값을 계산한다. 예컨대, 인증 데이터는 클라이언트 컴퓨터(12a-12n)의 사용자가 접촉하고 통신하기를 원하는 다른 클라이언트 컴퓨터(12a-12n) 및/또는, 하나 이상의 네트워크 기반 디바이스(18a-18n)에 관련된 패스워드 또는 다른 사용자 정보뿐 아니라 클라이언트 컴퓨터(12a-12n)의 사용자를 위한 사용자명 및 패스워드 정보를 포함할 수 있다.
이벤트(502)에서, 클라이언트 컴퓨터(12a-12n)상의 프로세스(32)는, 보안 서버(58)를 위한 공중키를 사용하여, 이벤트(100)에서 계산된 메시지 요약값과 함께, 인증 데이터를 암호화한다. 공중키(58)는 인터넷상에서 공개될 수 있고, 또는 클라이언트 컴퓨터(12a-12n) 및 디바이스 제어 컴퓨터(36a-36n)의 특정 사용자에게 전송될 수 있다.
이벤트(504)에서, 클라이언트 컴퓨터(12a-12n)상의 프로세스(32)는, 그 내부에 임베딩된, 암호화된 인증 데이터와 메시지 요약값을 포함하는 보안 서버(58)에 HTTP요청을 전송한다.
이벤트(506)에서, 보안 서버(58)는 클라이언트 컴퓨터(12a-12n)로부터 HTTP 요청을 수신하고, 보안 서버(58)상의 인증 프로세스(60)는 그 개인키를 사용하여 HTTP요청으로부터 임베딩된 인증 데이터와 대응 메시지 요약값을 해독한다. 인증 프로세스(50)는 요청으로 수신된 메시지 요약값으로부터 인증 데이터를 분리한다.
이벤트(508)에서, 인증 프로세스(60)는 해독된 인증 데이터로부터 메시지 요약값을 연산하거나 계산하고 연산된 메시지 요약값을 이벤트(506)의 수신된 메시지 요약값과 비교한다.
이벤트(510)에서, 인증 프로세스(60)는 연산된 메시지 요약값과 수신된 메시지 요약값이 매칭되는지 여부를 판정한다. 연산된 메시지 요약값과 수신된 메시지 요약값이 일치하지 않으면, 클라이언트 컴퓨터(12a-12n)로부터의 인증 데이터는 보안 서버(58)에 라우팅되는 동안 변경되었거나 손상되었고, 이벤트(512)는 수행된다. 연산된 메시지 요약값과 수신된 메시지 요약값 매칭이 일치하면, 이벤트(514)가 일어난다.
이벤트(512)에서, 보안 에러 메시지를 가진 HTTP응답이 보안 서버(58)에 의하여 클라이언트 컴퓨터(12a-12n)에 전송될 수 있다. 메시지는, 인증 데이터가 유효화될 수 없었다는 것을 클라이언트 컴퓨터(12a-12n)의 사용자에게 충고하고, 클라이언트 컴퓨터(12a-12n)의 사용자에게 인증 데이터를 재전송하도록 권고할 수 있다. 이벤트(500-510)를 반복함으로써 클라이언트 컴퓨터(12a-12n)에 의해 소정의 수의 실패된 인증 시도후에, 원하는 네트워크 연결이 인증 실패때문에 이용될 수 없다는 것을 사용자에게 충고하는 메시지가 클라이언트 컴퓨터(12a-12n)에 전송될 수 있다.
연산된 메시지 요약값과 수신된 메시지 요약값이 이벤트(510)에서 매칭하면, 수신된 인증 데이터는 변경되거나 손상되지 않았고, 이벤트(514)가 수행된다. 이벤트(514)에서, 보안 서버(58)상의 인증 프로세스(60)는 클라이언트 컴퓨터(12a-12n)로부터 수신된 사용자명과 패스워드를 데이터베이스(52a)에 저장된 보안 정보와 비교함으로써 이벤트(506)에서 회복된 인증 데이터를 확인한다. 이러한 보안 정보는 클라이언트 컴퓨터(12a-12n)의 정당한 또는 허가된 사용자를 위한 알려진 사용자명과 패스워드를 포함한다.
이벤트(516)에서, 인증 프로세스(60)는 사용자명과 패스워드 정보 데이터가 승인된 사용자를 나타내는지 여부를 판정한다. 사용자가 승인되면, 이벤트(518)가 일어난다. 사용자가 승인되지 않으면, 이벤트(512)가 수행될 수 있다. 이벤트(512)는 상기한 바와 같은 보안 에러 메시지를 가진 클라이언트 컴퓨터(12a-12n)로의 HTTP응답을 포함시킬 수 있다.
이벤트(518)에서, 보안 서버(58)는, 클라이언트 컴퓨터(12a-12n)의 사용자가 진행하도록 승인되어 있고 원하는 네트워크 기반 디바이스(18a-18n) 및/또는 기타 승인된 클라이언트 컴퓨터(12a-12n)가 구축될 수 있다는 것을 지시하는 메시지를 가진 HTTP응답을 클라이언트 컴퓨터(12a-12n)에 전송한다.
이벤트(520)에서, 클라이언트 프로세스(32)는 클라이언트 컴퓨터(12a-12n)로부터 네트워크 기반 디바이스(18a-18n) 및/또는 관심있는 다른 승인된 클라이언트 컴퓨터(12a-12n)에 전송될 데이터의 암호화를 위한 비밀키를 생성한다. 비밀키 생성은 클라이언트 컴퓨터(12a-12n)내의 유사 난수 발생기 또는 (도시 안된)PRNG엘리 먼트를 사용하는 랜덤 비밀키의 생성을 포함할 수 있다. 비밀키는 대칭일 수 있고 따라서 클라이언트 컴퓨터(12a-12n)로부터 네트워크 기반 디바이스(18a-18n)까지, 및 네트워크 기반 디바이스(18a-18n)로부터 클라이언트 컴퓨터(12a-12n)까지 전송된 데이터의 암호화를 위해 동일한 키가 사용된다. 대안으로, 디바이스 제어 컴퓨터(36a-36n)는 네트워크 기반 디바이스(18a-18n)로부터 클라이언트 컴퓨터(12a-12n)까지 데이터의 전송을 위한 그 자신의 비밀키를 생성할 수 있다.
이벤트(522)에서, 클라이언트 컴퓨터(12a-12n)상의 프로세스(32)는 이벤트(520)에서 생성된 비밀키를 위한 메시지 요약값을 생성하거나 연산한다.
이벤트(524)에서, 클라이언트 프로세스(32)는 보안 서버(58)를 위한 공개키를 사용하여, 이벤트(520)에서 생성된 비밀키, 및 이벤트(522)에서 생성된 키를 위한 메시지 요약값을 암호화한다.
이벤트(526)에서, 클라이언트 컴퓨터(12a-12n)상의 프로세스(32)는 암호화된 비밀키와 요청내에 임베딩된 대응 메시지 요약값을 포함하는 보안 서버(58)에 HTTP요청을 전송한다.
이벤트(528)에서, 보안 서버(58)는 이벤트(526)에서 전송된 클라이언트 컴퓨터(12a-12n)로부터 HTTP요청을 수신하고, 보안 서버(58)상의 인증 프로세스(60)는 그것의 개인키를 사용하여 임베딩된 비밀키 데이터와 HTTP요청으로부터 대응 메시지 요약값을 해독한다. 인증 프로세스(50)는 요청으로 수신된 비밀키를 위한 메시지 요약값으로부터 비밀키 데이터를 분리한다.
이벤트(530)에서, 인증 프로세스(60)는 해독된 비밀키를 위한 메시지 요약값 을 계산하거나 연산하고, 연산된 메시지 요약값을 이벤트(528)로부터 비밀키를 위한 수신된 메시지 요약값과 비교한다.
이벤트(532)에서, 인증 프로세스(60)는 연산된 메시지 요약값과 비밀키를 위한 수신된 메시지 요약값이 매칭되는지 여부를 판정한다. 연산된 메시지 요약값과 수신된 메시지 요약값이 매칭되지 않으면, 이벤트(526)에서 클라이언트 컴퓨터(12a-12n)로부터 전송된 비밀키는 보안 서버(58)로 전송되는 동안 변경되었거나 손상되었고, 이벤트(534)가 일어난다. 연산된 메시지 요약값과 수신된 메시지 요약값이 매칭되거나 일치하면, 이벤트(536)가 수행된다.
이벤트(534)에서, 보안 서버(58)는 보안 에러 메시지를 가진 HTTP응답을 클라이언트 컴퓨터(12a-12n)에 전송한다. 메시지는 클라이언트 컴퓨터(12a-12n)의 사용자에게 수신된 비밀키는 확인될 수 없었다는 것을 충고하고, 사용자에게 이벤트(522-526)를 반복하도록 권고한다. 클라이언트 컴퓨터(12a-12n)에 의하여 확인될 수 있는 비밀키를 전송하도록하는 시도에서 소정의 수의 실패후, 사용자에게 원하는 네트워크 연결이 이루어질 수 없다고 충고하는 메시지가 클라이언트 컴퓨터(12a-12n)에 전송될 수 있다.
이벤트(536)에서, 보안 서버(58)에 의해 HTTP응답이 비밀키가 수신되었고 인증되었다고 충고하는 클라이언트 컴퓨터(12a-12n)에 전송될 수 있다. 이 점에서, 보안 서버(58)는 성공적으로 클라이언트 컴퓨터(12a-12n)를 인증하였고 클라이언트 컴퓨터(12a-12n)로부터 데이터의 암호화를 위한 비밀키를 안전하게 수신했다.
이벤트(538)에서, 인증된 클라이언트 컴퓨터(12a-12n)와 네트워크 기반 디바 이스(18a-18n)간에 또는 다른 클라이언트 컴퓨터(12a-12n)간에 연결이 확립될 수 있다. 이러한 이벤트는 이하에 기술되는, 도 6에 도시된 로드 밸런싱 알고리즘에 따라 연결 서버(14a-14n)중 선택된 하나에 의해 수행될 수 있다.
이러한 연결을 확립함에 이어서, 클라이언트 컴퓨터(12a-12n) 및 네트워크 기반 디바이스(18a-18n)/클라이언트 컴퓨터(12a-12n)로부터 및 거기에 전송된 데이터는 (대칭키 암호화라고 가정하면) 비밀키를 사용하여 암호화될 수 있고 하기한 바와 같이 연결 서버(14a-14n)에 의해 처리되는 HTTP요청과 응답에 임베딩될 수 있다. 대안으로, 클라이언트 컴퓨터(12a-12n)로부터의 데이터가 제 1 비밀키에 의해 암호화되고, 네트워크 기반 디바이스(18a-18n) 및 디바이스 제어 컴퓨터(36a-36n) 및/또는 다른 클라이언트 컴퓨터(12a-12n)로부터의 데이터가 제 2 비밀키에 의해 암호화되는 비대칭 데이터 암호화를 위한 그 자신의 비밀키를 생성하기 위하여, 디바이스 제어 컴퓨터(36a-36n)/기타 클라이언트 컴퓨터(12a-12n)가 상기한 이벤트를 수행할 수 있다. 각각의 클라이언트 컴퓨터(12a-12n)와 디바이스 제어 컴퓨터(36a-36n)는 그 자신의 비밀키를 생성할 수 있다. 클라이언트 컴퓨터(12a-12n)와 네트워크 기반 디바이스(18a-18n)간의 데이터 전송을 위하여 상기한 트리플-DES암호화와 같은 비밀키(즉, 비공개키) 암호화의 사용은, 데이터 암호화와 해독을 위해 비교적 적은 연산 오버헤드를 요하고, 연결 서버(14a-14n)를 사용하는 인터넷을 거쳐 안전한 데이터를 신속히 전송받고 전송하기 위한 효과적인 방법을 제공한다. 클라이언트 컴퓨터(12a-12n)와 디바이스 제어 컴퓨터(36a-36n)로부터 비밀키가 보안 서버(58)에 의해 안전하게 코디네이트되었고 클라이언트 컴퓨터(12a-12n)와 디바이스 제어 컴퓨터(36a-36n)간에 공유되었다면, 비밀키 암호화층은 연결 서버(14a-14n)에 의해 용이하게 구현될 수 있다.
당업자에게 명백한 바와 같이, 이벤트의 많은 변형과, 도 5의 이벤트의 순서에 많은 변형이 가능하다. 본 발명의 특정 실시예에서, 후속 데이터 통신을 위해 비밀키가 생성되지 않은채로, 이벤트(520-536)이 생략될 수 있다. 즉, 암호화되지 않은 데이터가, 이벤트(516)에서 사용자 승인에 이어서 클라이언트 컴퓨터(12a-12n)와 네트워크 기반 디바이스(18a-18n)간에 전송될 수 있다. 각각이 인증 애플리케이션(60)을 포함하는 다중의 보안 서버(58)는 클라이언트 컴퓨터(12a-12n)와 네트워크 기반 디바이스(18a-18n)간의 트래픽 레벨에 의해 필요한 바와 같이 이용될 수 있다. 클라이언트 컴퓨터(12a-12n)에 의해 수행되는 것에 관하여 본 명세서에서 인증 및 키 생성 프로세스가 기술되었지만, 클라이언트 컴퓨터(12a-12n)와 클라이언트 프로세스(32)를 포함하는 도 5의 다양한 이벤트가, 많은 실시예에서, 또한 디바이스 제어 컴퓨터(36a-36n)와 디바이스 제어 프로세스(38)에 의해 수행됨을주목해야한다.
본 발명은 협동하는 많은 클라이언트 컴퓨터(12a-12n)와 디바이스(18a-18n)의 서버 수요가 상기한 바와 같이 다중 연결 서버(14a-14n)상에 분포될 수 있게한다. 이벤트(516)에서의 사용자 인증에 이어서 각각의 암호화된 전송을 위한 새로운 보안키를 생성하고 전송할 필요없이 안전한 전송을 가능하게 함으로써, 본 발명은 이전에 가능했던것 보다 훨씬 신속하고 실시간 제어와 협동을 가능하게 한다. 이것은 암호화되거나 암호화되지 않은 데이터를 전송하거나 통신하기전에 시스템의 임의의 사용자간의 안전한 연결(즉, 클라이언트 컴퓨터(12a-12n); 디바이스 제어 컴퓨터(36a-36n); 및 클라이언트 컴퓨터(12a-12n) 및 디바이스 제어 컴퓨터(36a-36n)의 임의의 다양한 조합간의 통신)을 보장하는, 분배 제어 기반구조(48)의 중심 기능에 의해 가능하다. 이용가능한 연결 서버(14a-14n)사이에 클라이언트 컴퓨터(12a-12n)와 디바이스(18a-18n)의 수요를 적당히 밸런싱함으로써, 보다 큰 신뢰성과 효율이 달성된다. 이러한 밸런싱은 세션이 예정되어 있을때 각각의 세션이 할당되는 연결 서버를 선택하는 로드 밸런싱 알고리즘을 구현함으로써 수행된다.durl
하나 이상의 클라이언트 컴퓨터(12a-12n)사이, 하나 이상의 네트워크 기반 디바이스(18a-18n)사이, 또는 하나 이상의 클라이언트 컴퓨터(12a-12n) 및 하나 이상의 네트워크 기반 디바이스(18a-18n)사이에 세션이 생성될때, 세션이 할당될 연결 서버(14a-14n)가 선택되어야 한다. 세션의 스케줄링은 미리 수행될 수 있거나, 이러한 세션이 필요한 순간에 실시간으로 수행될 수 있다. 세션의 일부인 클라이언트 컴퓨터(12a-12n)와 네트워크 기반 디바이스(18a-18n)간, 또는 클라이언트 컴퓨터(12a-12n)간 또는 네트워크 기반 디바이스(18a-18n)간의 각각의 연결은 세션이 시작될때 할당된 연결 서버(14a-14n)를 통해 연결될 것이다.
도 3을 다시 참조하면, 데이터베이스(52b)는 본 발명에 따라 로드 밸런싱이 구형될 수 있게 하는 정보를 유지한다. 데이터베이스(52b)내의 (도시 안된) 데이터 테이블은, 연결 서버의 상태, 가용성 및 전력 사용에 관한 전류 통계뿐만 아니라 특히, 상이한 타입의 사용자, 사용자가 구축하기 원하는 상이한 타입의 세션, 및 이러한 사용자 및 세션을 위해 사용될 수 있는 상이한 타입의 연결 서버에 관한 정보를 포함한다.
클라이언트 컴퓨터(12a-12n)와 디바이스(18a-18n)간, 클라이언트 컴퓨터(12a-12n)간 또는 디바이스(18a-18n)간에 데이터가 전송되는 세션군으로 참여할 수 있는 몇가지 상이한 타입의 클라이언트 컴퓨터(12a-12n) 및/또는 디바이스(18a-18n)의 사용자가 있을 수 있다. 사용자 타입은 사용자의 타입을 식별하고 각각의 사용자 타입은, 이하에 기술된, 이러한 타입의 사용자가 참여할 수 있는 세션 타입을 참조한다. 세션에 참여하는 사용자나 디바이스의 각각의 타입의 유니크한 특성을 분별함으로써, 보다 정확한 로드 밸런싱이 구현될 수 있다. 사용자 타입은 관련된 디바이스(18a-18n)의 타입, 사용자가 관련되는 비지니스의 특성, 또는 기타 요인들에 기초할 수 있다. 예컨대, 단일 세션내에, 또다른 타입의 사용자가 비디오 데이터를 전송하지 않는 동안, 비디오 데이터(즉, 비디오 모니터링)를 전송하는 것이 예상되는 하나의 타입의 디바이스(18a-18n)가 있을 수 있다. 다른 사용자는 전력 생성과 분배의 모니터링, 진단 디바이스를 통한 원격 환자의 모니터링, 로보트 제조 장치의 모니터링, 또는 기타 분야에 관심가질 수 있다. 각각의 사용자 타입의 상이한 수요를 구별함으로써, 효과적인 밸런싱 전략이 구현되었다. 사용자 타입이란 말은 연결 서버(14a-14n)를 통한 연결의 양단부에서의 사용자, 즉 디바이스 제어 컴퓨터(DCC)(36a-36n)의 사용자뿐만 아니라 클라이언트 컴퓨터(12a-12n)의 사용자를 의미한다.
세션은 협동 동작을 원하거나 하나 이상의 네트워크 기반 디바이스(18a-18n) 의 모니터링의 협동작업을 원하는 사용자군을 포함할 수 있다. 각각의 세션은 사용자와 디바이스간의 통신을 관리하는 연결 서버에 할당되어야 한다. 세션은 시작하고 종료가 예상되는 시간을 지시했을 수 있다. 각각의 세션은 세션 타입으로 할당될 수 있다. 세션 타입은 관련 사용자나 디바이스의 타입, 스케줄링 고려, 비지니스 상호작용, 또는 기타 요인이나 특성에 기초할 수 있다. 예컨대, 세션 타입은 로보틱 어셈블리 디바이스, 프린터, 사진복사기, 또는 기타 디바이스와 같은 공유 원격 디바이스를 포함하는 고객-판매자 상호작용에 기초할 수 있다. 세션 타입은 특정 타이밍이나 스케줄링 상황을 기초로하거나, 기타 기초하여, 진단 디바이스를 포함하는 환자-의사 상호작용, 화학 반응기의 다중 기술자 모니터링에 기초할 수 있다. 세션 타입을 정의하는 다양한 다른 기초가 당업자에게 제안될 것이다.
연결 서버(14a-14n)는 또한 상이한 서버 타입을 포함할 수 있다. 예컨대, 연결 서버(14a-14n)중 선택된 하나가 구성될 수 있고, 상이한 사용자 타입과 세션 타입을 관리하기 위하여, 구성된 핸들러 애플리케이션(34)을 가질 수 있다. 예컨대, 상용 클라이언트는 특정 타입의 비지니스 또는 데이터 통신에 의해 전용 작업을 위해 구성된 하나 이상의 연결 서버(14a-14n)를 가지기를 원할 수 있다. 따라서, 다른 연결 서버(14a-14n)가 전력 생성 데이터, 환자 모니터링 데이터, 제조 장치, 가정용 장치 및/또는 보안 디바이스, 오피스 머신 및/또는 보안 디바이스, 또는 특정 타입의 디바이스(18a-18n)와 관련된 기타 특정 타입의 데이터의 전송을 처리하도록 특히 구성되어 있는 한편, 비디오 모니터링에 관련된 데이터 전송을 특히 처리하도록 구성될 수 있다. 또다른 연결 서버(14a-14n)는 특히 특정 디바이스 또 는 디바이스들(18a-18n)의 동작시에 동시에 협동하는 많은 사용자를 처리하도록 구성될 수 있다. 기타 다양한 특정 서버 타입을 위한 기초가 또한 가능하고, 당업자에게 제시될 것이다.
로드 밸런싱에서 중요한 개념은 개별 서버가 지원할 수 있는 제한된 로드가 있다는 것이다. 이 로드는 대역폭, 프로세싱 파워, 데이터 액세스의 속도, 또는 기타 요인에 의해 제한될 수 있다. 연결을 지원하기 위한 서버의 능력을 지시하는 단일 메트릭으로서 기능하는 파라메터가 정의되었다. 이러한 파라메터는 이후 "파워"로 언급되고, 각각의 연결 서버(14a-14n)는 임의의 주어진 시간에 그것이 제공할 수 있는 최대 파워를 명기하는 파라메터를 가진다.
세션이 특정 연결 서버(14a-14n)에 할당될 때, 그 세션의 알려진 파라메터는 상기한, 세션 타입이다. 세션 타입으로부터, 이러한 세션 타입에 참여할 수 있는 각각의 사용자 타입은 데이터베이스(52b)내의 (도시 안된) 이전에 리스트된 테이블내의 데이터를 쿼링함으로써 결정될 수 있다. 각각의 사용자 타입은 클라이언트 컴퓨터(12a-12n)와 네트워크 기반 디바이스(18a-18n)간의 각각의 연결에 의해 사용된 평균 파워, 세션을 위한 임의의 예약된 연결의 최소수, 세션을 위한 연결의 평균수, 또는 기타 고려사항과 같은, 연결 서버 파워 요구조건을 계산하는데 사용되는 특성을 가질 수 있다.
따라서, 단일 세션 타입을 위하여, 최소 파워가 평균 파워와 이러한 세션 타입에 참여할 수 있는 각각의 사용자 타입상에서 예약된 연결의 최소수의 곱을 합함으로써 연산될 수 있다. 단일 연결 서버(14a-14n)상에서 적당한때의 임의의 지점 에서 모든 예약된 세션상의 이러한 최소 파워를 합함으로써, 연결 서버(14a-14n)를 위해 적당한때의 그 지점에서 예상된 파워의 사용이 연산될 수 있다. 그 다음에 이러한 최소 파워값은 이용가능한 연결 서버(14a-14n)의 선택을 스케줄링되는 세션의 기간동안 파워 요구조건을 충족시키는 것들만으로 제한하는데 사용될 수 있다. 연결 서버 선택에서 이러한 제한은 부가적인 신뢰성이 실현될 수 있게 하고, 임의의 선택된 연결 서버(14a-14n)가 예약된 연결의 최소수가 이용될때 그 파워 제한을 초과하지 않았다는 것을 보장한다.
상기 관점에서, 도 3뿐만 아니라 도 6의 로드 밸런싱 플로우 다이어그램을 참조한다. 이벤트(600)에서, 보안 서버(58)상의 로드 밸런싱 애플리케이션(50)은 세션에 포함될 사용자 타입 또는 사용자 타입들을 결정한다. 이러한 결정은 데이터베이스(52b)에 있는 사용자 타입 데이터와 함께, 클라이언트 컴퓨터(12a-12n) 및/또는 디바이스 제어 컴퓨터(36a-36n)로부터 연결을 위한 HTTP요청에서 임베딩된 사용자 식별의 형태로 보안 서버(58)에 제공된 식별 정보의 기초로 수행된다. 보안 서버(58)에 의해 HTTP요청으로부터 회복된 식별 정보는 세션을 위한 사용자 타입 결정을 위해 데이터베이스(52b)내의 저장된 사용자 타입 데이터와 비교될 수 있다.
이벤트(610)에서, 로드 밸런싱 프로세스(50)는 생성될 연결을 위한 세션 타입을 결정한다. 상기한 바와 같이, 이러한 결정은 데이터베이스(52b)내의 세션 타입 정보와 비교될 수 있는, 클라이언트 컴퓨터(12a-12n) 및/또는 디바이스 제어 컴퓨터(36a-36n)로부터 HTTP요청에 임베딩된 식별 데이터를 기초로 할 수 있다.
일단 사용자 타입 및 세션 타입이 결정되었다면, 이벤트(620)에서 로드 밸런싱 프로세스(50)에 의해서 서버 선택이 수행된다. 서버 선택은 이벤트(600, 610)에서 결정된 사용자 타입과 세션 타입 정보와 데이터베이스(52b)내의 서버 타입 정보를 비교하는것에 기초할 수 있다. 이러한 정보로부터, 클라이언트 컴퓨터(12a-12n)와 디바이스 제어 컴퓨터(36a-36n)와 네트워크 기반 디바이스(18a-18n)간의 세션을 처리하기 위한 특별한 연결 서버(14a-14n)가 선택된다.
이벤트(630)에서, 로드 밸런싱 프로세스(50)는 이벤트(620)에서 선택된 연결 서버(14a-14n)가 액티브상태인지를 판정한다. 예컨대, 선택된 서버는 유지 또는 업그레이드 작업을 위하여 전원이 꺼질 수 있고, 오기능할 수 있고, 또는 기타의 이유로 동작을 하지 않을 수 있다. 선택된 서버가 액티브 상태이면, 이벤트(640)가 일어난다. 선택된 서버가 액티브 상태가 아니라면, 이벤트(620)가 반복되고 상이한 연결 서버(14a-14n)가 선택된다. 연결 서버(14a-14n)의 선택은 소정의 선택 순서에 따라 일어날 수 있고, 따라서 각각의 서버가 선택되었고 로드 밸런싱의 목적으로 분석되기 전에 임의의 특정한 서버가 프로세스에 의해 두번 선택되지 않을 것이다.
이벤트(640)에서, 로드 밸런싱 프로세스(50)는 이벤트(620)에서 선택된 연결 서버(14a-14n)가 이벤트(600)에서 결정된 특정 사용자 타입을 지원하는지를 판정한다. 상기한 바와 같이, 어떤 연결 서버(14a-14n)는 특정 사용자 타입을 처리하도록 구성될 수 있다. 선택된 연결 서버(14a-14n)가 이벤트(600)에서 결정된 사용자 타입을 지원하도록 구성되지 않으면, 이벤트(620)는 반복되고 또다른, 상이한 연결 서버가 선택된다. 선택된 연결 서버가 사용자 타입을 지원하면, 이벤트(650)가 일어난다.
이벤트(650)에서, 로드 밸런싱 프로세스(50)는 이벤트(620)에서 선택된 연결 서버(14a-14n)가 이벤트(610)에서 결정된 특정 세션 타입을 지원하는지 여부를 판정한다. 선택된 연결 서버(14a-14n)가 이벤트(610)에서 결정된 세션 타입을 지원하도록 구성되지 않으면, 이벤트(620)가 반복되고 상이한 연결 서버가 선택되고, 이벤트(630-650)은 반복된다. 선택된 연결 서버가 사용자 타입을 지원하면, 이벤트(660)가 수행된다.
이벤트(660)에서, 로드 밸런싱 프로세스(50)는 이벤트(620)에서 선택된 연결 서버(14a-14n)가 구축될 세션에 포함될 연결을 지원하기 위해 적당한 파워를 갖는지 여부를 판정한다. 이러한 쿼리는 선택된 연결 서버(14a-14n)가 그것에 할당되는 모든 세션의 최소 요구조건을 충족시킬 필요가 있는 파워를 가질것을 보증하기 위해 수행된다. 선택된 연결 서버(14a-14n)가 구축될 세션에 포함될 연결을 처리하기 위해 불충분한 파워를 가지면, 이벤트(620)는 반복되고 상이한 연결 서버(14a-14n)가 선택된다. 선택된 연결 서버(14a-14n)가 충분한 파워를 가지면, 이벤트(670)는 수행되고, 그 선택된 서버를 위한 지시는 로드 밸런싱 목적을 위해 어느것이 최선인지 판정하기 위해 잠재적으로 이용가능한 서버의 비교에서 사용되도록 일시적으로 저장된다. 이벤트(680)에서 모든 서버가 로드 밸런싱 목적을 위해 이 단계에서 선택되고 분석되었는지가 판정된다. 마지막 서버가 아직 선택되지 않았다면, 프로세싱은 후속 서버가 선택되는 이벤트(620)로 복귀한다. 마지막 서 버가 이미 선택되었다면, 프로세싱은 이벤트(690)로 이동한다.
이 점에서, 여전히 구축될 세션의 필요조건을 충족시킬 이용가능한 다중 연결 서버(14a-14n)가 있을 수 있다. 이벤트(690)에서, 이벤트(670)에서 저장된 선택된 연결 서버(14a-14n)의 어느것이 고려된 세션을 위해 최선으로 이용가능한 파워 레벨을 가지고 있는가가 판정된다. 단하나의 서버만이 이벤트(670)에서 저장되었다면, 이러한 서버는 디폴트에 의해 최선으로 이용가능한 서버 파워를 가지도록 결정된다. 연결 서버(14a-14n)를 선택할때 이러한 이벤트는 연결 서버(14a-14n)의 효율적인 이용을 구현한다. 각각의 연결 서버(14a-14n)는 많은 동시 접속을 지원할 수 있으므로, 이러한 계산은 각각의 연결을 위해 예상되는, 통계적으로 연산된 평균 파워 사용을 이용한다. 하나의 사용자 타입을 위한 이러한 평균 파워 사용은 평균 연결수에 각각의 연결을 위해 사용된 파워를 곱함으로써 계산될 수 있다. 하나의 세션을 위한 평균 파워 사용은 구축될 세션의 세션 타입을 참조하는 모든 사용자 타입상에서 이전의 결과를 합함으로써 계산될 수 있다. 단일 연결 서버(14a-14n)상에서 적당한때에 임의의 지점에서 모든 예약된 세션상에서 이러한 파워 사용을 합함으로써, 적당한때의 그 지점에서 예상된 파워 사용은 특정 연결 서버(14a-14n)에 대하여 계산될 수 있다. 이러한 예상된 파워 사용 대 연결 서버의 최대 파워 사용의 비율은 이용율이 각각의 연결 서버(14a-14n)에 대하여 결정될 수 있게 한다. 각각의 연결 서버(14a-14n)에 대해, 스케줄링되는 세션의 주기동안 이용율의 최대값이 계산된다. 이벤트(670)에 저장된 연결 서버의 세트를 고려하면, 그 세트내의 다른것과 비교하여 최소 이용율을 가진 연결 서버가 이 세션이 할당되는 서버로 선택된다.
이벤트(690)에서 최선 이용가능 서버 파워를 가진 서버를 결정한 후에, 이같이 결정된 서버는 현재의 세션/클라이언트/DCC에 할당된다. 다가오는 세션을 위하여 최선의 연결 서버(14a-14n)를 결정한, 이벤트(695)에서, 연결 서버(14a-14n)는 그 세션에 포함될 클라이언트 컴퓨터(12a-12n)및 디바이스 제어 컴퓨터(36a-36n)와 디바이스(18a-18n)에 할당된다.
상기 로드 밸런싱 프로세스는, 또한 예상되는 최소 연결수가 항상 사용자에게 이용할 수 있는 한편, 세션이 통계적으로 이용가능한 연결 서버(14a-14n)사이에 분산되는 것을 보증한다.
지금 본 발명의 인증, 암호화, 및 로드 밸런싱 태양을 설명했지만, 클라이언트 컴퓨터(12a-12n)와 디바이스 제어 컴퓨터(36a-36n) 및 그 연결된 네트워크 기반 디바이스간의 데이터 전송의 실제적인 프로세스가 설명될 수 있다. 본 명세서에 기록된 바와 같이, 기술되는 데이터 전송의 프로세스는 디바이스 제어 컴퓨터(36a-36n)사이의 전송뿐만 아니라, 클라이언트 컴퓨터(12a-12n)간의 전송에도 적용된다. 데이터 전송은 도 7에 도시된 플로우차트에 도시된 방식으로 클라이언트 프로세스(32)와 디바이스 제어 프로세스(38)에 의해, 그리고 도 8의 플로우차트에 도시된 바와 같은 연결 서버 프로세스(34)에 의해 수행된다. 클라이언트 컴퓨터(12a-12n)로부터 디바이스 제어 컴퓨터(36a-36n)까지, 그리고 디바이스 제어 컴퓨터(36a-36n)로부터 클라이언트 컴퓨터(12a-12n)까지의 데이터를 통신하는 프로세스는 동일하고, 따라서, 이하에 제공된 도 7 및 도 8의 설명은 주로 클라이언트 컴퓨터(12a-12n)에 의한 사용에 관한 것이다. 그러나, 데이터 전송을 위하여 이하에 기술된 클라이언트 컴퓨터(12a-12n)상의 클라이언트 프로세스(32)의 동일한 동작이 디바이스 제어 컴퓨터(36a-36n)상의 디바이스 제어 프로세스(38)에 의해 또한 수행된다는 것을 이해해야 한다.
특히 도 7을 참조하면, 클라이언트 프로세스(32) 및 디바이스 제어 프로세스(38)를 사용하는 데이터 전송이 도시된다. 이벤트(700)에서, 데이터 전송 이벤트가 시작한다. 이벤트(700)는, 예컨대, 도 5의 인증 및 비밀키 생성 및 식별 이벤트, 및 도 6의 로드 밸런싱 연결 서버 선택 이벤트가 완성된 후에 일어날 수 있다.
이벤트(710)에서, 클라이언트 프로세스(32)는 클라이언트 컴퓨터(12a-12n)가 네트워크 기반 디바이스(18a-18n)에 전송할 임의의 데이터를 가지고 있는지 여부를 판정한다. 예컨대, 이러한 데이터는, 네트워크 기반 디바이스(18a-18n)의 동작을 위한 커맨드 명령을 포함할 수 있다. 이러한 이벤트는 네트워크 기반 디바이스(18a-18n)에 전송될 데이터가 저장된 클라이언트 컴퓨터(12a-12n)의 메모리내에 (도시 안된)전송 버퍼를 체크함으로써 수행된다. 전송 버퍼에 데이터가 없으면, 이벤트(720, 730)가 수행된다. 네트워크 기반 디바이스(18a-18n)를 위한 데이터가 전송 버퍼내에 있으면, 이벤트(740)가 수행된다.
클라이언트 프로세스(32)는 연결 서버(14a-14n)에 HTTP응답을 주기적으로 전송함으로써 연결 서버(14a-14n)와 통신을 유지한다. 이벤트(710)내의 클라이언트 컴퓨터 전송 버퍼에 데이터가 발견되지 않으면, 이벤트(720)에서 클라이언트 프로 세스(32)는 선택된 주기의 시간, 즉, n밀리초동안 대기한다. 이러한 대기 프로세스는 클라이언트 컴퓨터의 프로세서가 멀티태스킹 환경에서 다른 일을 수행할 수 있계한다. 이런식으로, 클라이언트 프로세스(32)는 연속적인 HTTP요청을 연결 서버(14a-14n)에 전송하는 사이의 시간을 적응적으로 변경한다. 즉, 데이터가 전송 버퍼에서 발견되면, 요청이 즉시 전송된다. 마찬가지로, 데이터가 처음에 전송 버퍼에서 발견되지 않고, n밀리초의 대기후에 발견되면, 데이터는 그 때의 요청에 의해 전송된다. 이러한 대기 및 체크 루프는, 임의의 데이터가 전송버퍼내에 있는지 여부에 무관하게, HTTP요청이 연결 서버(14a-14n)에 전송되는 시간에, 최대 소정 시간이 도달할때까지 계속한다. 이러한 접근에 의해, 데이터는 그것이 전송 버퍼내에 나타나는 시간에 효과적으로 전송되고, 따라서 데이터가 전송 버퍼에 입력되기를 계속하면 매우 신속하게 요청이 전송될 수 있다. 한편, 임의의 데이터가 요청에 따라 전송 버퍼로부터 전송되는지 여부에 무관하게 최대의 소정의 간격으로 HTTP요청이 전송된다는 점에서, 시스템은 지속한다.
상기한 바와 같이, 이벤트(730)에서, 클라이언트 프로세스(32)는 클라이언트 컴퓨터(12a-12n)를 위해 네트워크 기반 디바이스(18a-18n)에 의해 전송될 수 있는 임의의 데이터를 위한 체크를 하기 위해 주기적인 HTTP요청을 연결 서버(14a-14n)에 전송하는 시간인지 여부를 판정한다. 이벤트(730)의 타임-아웃 파라메터는 이벤트(720)의 대기 반복에 들어가기전에 클라이언트 프로세스(32)에 의해 초기화될 수 있다. 이벤트(730)시에, 연결 서버(14a-14n)에 HTTP요청을 전송하는 시간이라면, 이벤트(740)가 수행된다. 그렇지 않다면, 이벤트(710)가 반복된다.
이벤트(740)에서, 클라이언트 프로세스는 연결 서버(14a-14n)로의 HTTP요청을 준비하여 전송한다. 네트워크 기반 디바이스(18a-18n)를 위한 데이터가 이벤트(710)에서 전송 버퍼에 존재하면, 이러한 이벤트는 부가적으로 HTTP요청내의 그 데이터를 임베딩하는 것을 포함할 수 있다. 데이터는 상기 방식으로 준비된 비밀키를 사용하여 암호화될 수 있다. 예컨대, 데이터 임베딩은 HTTP POST법을 사용하여 수행될 수 있다.
이벤트(750)에서, 클라이언트 프로세스(32)는 연결 서버(14a-14n)로부터 HTTP응답을 판독한다.
이벤트(760)에서, 클라이언트 프로세스(32)는 이벤트(750)의 HTTP응답내에 클라이언트 컴퓨터(12a-12n)를 위한 네트워크 기반 디바이스(18a-18n)로부터 임의의 임베딩된 데이터가 있는지 여부를 판정한다. HTTP응답내에 임베딩된 데이터가 있다면, 이벤트(760)가 일어난다. 응답내에 임베딩된 데이터가 없다면, 이벤트(780)가 일어난다.
이벤트(770)에서, 이벤트(750)의 HTTP응답내에 임베딩된 데이터가 판독되고 사용을 위하여 클라이언트 컴퓨터(12a-12n)의 메모리내에 버퍼링되면, 클라이언트 컴퓨터(12a-12n)는 네트워크 기반 디바이스(18a-18n)로부터의 데이터가 수신되었다고 보고받는다. 네트워크 기반 디바이스(18a-18n)로부터의 데이터가 암호화되면, 이러한 이벤트는 부가적으로 데이터의 해독를 포함할 수 있다.
이벤트(780)에서, 클라이언트 프로세스는 데이터 전송의 동작이 계속될지 여부를 판정한다. 이 판정은 클라이언트 컴퓨터(12a-12n)의 사용자로부터 수신된 지 시에 따라, 또는 네트워크 기반 디바이스(18a-18n)에 연결이 깨졌다는 보고를 포함하는 연결 서버(14a-14n)로부터의 HTTP응답에 따라 수행될 수 있다. 동작이 계속된다면, 이벤트(710-780)는 반복된다. 동작이 계속되지 않으면, 동작은 이벤트(780)에서 종료한다.
연결 서버(14a-14n)는 (디바이스 제어 컴퓨터(36a-36n)를 거쳐) 클라이언트 컴퓨터(12a-12n)와 네트워크 기반 디바이스(18a-18n)간, 클라이언트 컴퓨터(12a-12n)와 클라이언트 컴퓨터(12a-12n)간, 및 디바이스 제어 컴퓨터(36a-36n)와 디바이스 제어 컴퓨터(36a-36n)간의 브리징 매체로서 기능한다. 클라이언트 컴퓨터(12a-12n)를 위하여 정의되는 디바이스로부터의 데이터는 상기한 바와 같은 HTTP요청을 사용하여 연결 서버(14a-14n)에 부착된다. HTTP요청을 수신할때, 연결 서버(14a-14n)는 그 메모리(즉, 전송 버퍼)내의 요청으로부터 임의의 데이터를 일시적으로 저장하거나 버퍼링한다. 다음에 HTTP요청이 클라이언트 컴퓨터(12a-12n)로부터 오고(본 예에서, 그러나 상기한 바와 같이, 요청은 또한 또다른 디바이스 제어 컴퓨터(36a-36n)로부터 올 수 있다), 연결 서버(14a-14n)는, HTTP요청에 대한 응답에 따라, 전송 버퍼로부터 데이터를 검색하고 그 데이터를 클라이언트 컴퓨터(12a-12n)(또는 다른 디바이스 제어 컴퓨터(36a-36n))에 전송한다. 상기한 요청 전송 프로시져와 마찬가지로, 응답 전송 프로시져는 또한 실질적으로 데이터가 수신되자말자 그 데이터를 전송하기 위하여 효과적으로 적용되고, 또한, 임의의 데이터가 HTTP요청과함께 전송되고 있는지에 무관하게, 적어도 소정의 최대 간격내에서 일어나는 HTTP요청에 의해 제공된다.
도 8을 참조하면, 데이터가 전송되는 동안 연결 서버 프로세스(34)의 동작이 기술된다. 이벤트(800)에서, 데이터 전송 프로세스가 개시된다. 이 이벤트는, 예컨대, 적어도 두 사용자(예컨대, 적어도 두 클라이언트 컴퓨터(12a-12n), 적어도 두 디바이스 제어 컴퓨터(36a-36n), 또는, 본 예에서와 같이, 적어도 하나의 클라이언트 컴퓨터(12a-12n) 및 하나의 디바이스 제어 컴퓨터(36a-36n))가 승인되었고 적어도 두 사용자로의 연결이 오픈되었다면, 일어날 수 있다. 본 예에서, 적어도 두 사용자는 클라이언트 컴퓨터(12a-12n) 및 디바이스 제어 컴퓨터(36a-36n)로 참조되지만, 본 발명이 이러한 통신에 제한되지 않음을 다시 한번 강조한다.
이벤트(810)에서, 연결 서버 프로세스(34)는 임의의 HTTP요청이 클라이언트 컴퓨터(12a-12n)(또는 디바이스 제어 컴퓨터(36a-36n))로부터 수신되었는지 여부를 판정한다. HTTP요청이 수신되지 않았다면, 프로세스(34)가 선택된 시한 동안 대기하는 이벤트(820)가 수행되고, 이벤트(810)의 쿼리를 요청한다. HTTP요청이 수신되었다면, 이벤트(830)가 일어난다.
이벤트(830)에서, 연결 서버 프로세스(34)는 이벤트(810)에서 수신된 HTTP요청을 판독한다.
이벤트(840)에서, 연결 서버 프로세스(34)는 클라이언트 컴퓨터(12a-12n)에 또는 클라이언트 컴퓨터(12a-12n)로부터의 임의의 데이터가 HTTP요청내에 임베딩되어 있는지 여부를 판정한다. 요청내에 임베딩된 데이터가 있다면, 이벤트(850)가 수행된다. HTTP요청을 가진 데이터가 없다면, 이벤트(860)가 일어난다.
이벤트(850)에서, HTTP요청에 있는 임의의 데이터가 연결 서버(14a-14n)의 ( 도시 안된) 전송 버퍼에 버퍼링된다. 이 데이터는 상기한 바와 같이, 암호화될 수 있지만, 연결 서버(14a-14n)에 의해 해독될 필요는 없다.
이벤트(860)에서, 연결 서버 프로세스(34)는 네트워크 기반 디바이스(18a-18n)로부터 클라이언트 컴퓨터(12a-12n)를 위해 존재하는 임의의 데이터가 있는지 여부를 판정한다. 전송 버퍼내에 데이터가 존재하지 않으면, 연결 서버 프로세스(34)는 이벤트(870)에서 n밀리초 동안 대기한다. 연결 서버 프로세스(34)는 상기한 클라이언트 컴퓨터(12a-12n)로부터의 주기적인 HTTP요청에 응답하는, 클라이언트 컴퓨터(12a-12n)에 주기적으로 HTTP요청을 전송함으로써 클라이언트 컴퓨터(12a-12n)와 통신을 유지한다. 이벤트(880)에서, 연결 서버 프로세스(34)는 클라이언트 컴퓨터(12a-12n)로의 주기적인 HTTP요청을 전송하기 위한 시한이 끝났는지 여부를 판정한다. 시한이 끝났다면, 이벤트(890)가 수행된다. 시한이 끝나지 않았다면, 이벤트(860)가 반복된다. 상기한 요청 전송 프로시져와 마찬가지로, 응답 전송 프로시져 또한, 실질적으로 데이터가 수신되자말자 그 데이터를 전송하기 위해 효과적으로 적용되고, HTTP요청과 함께 임의의 데이터가 전송되는지 여부에 무관하게, 적어도 소정의 최대 간격내에서 일어나는 HTTP요청에 의해 지속적인 폴링이 또한 제공된다. 전송 버퍼내의 데이터는, HTTP요청이 전송되어야 하는 최대 시간 간격까지에 임의의 다중의 "n밀리초"인 시간에 HTTP요청에 의해 전송 버퍼에 전송될 수 있기 때문에, 이것은 전송 버퍼의 "적응성 폴링(adaptive polling)"으로 기능한다. 즉, "n"이 10밀리초인 30밀리초에 전송 버퍼에 데이터가 나타나면, 그 데이터는 30밀리초 시간에 HTTP요청에 전송될 것이다. 대안으로, 70밀리초까지 전송 버퍼내에 데이터가 나타나지 않으면, HTTP요청은, 데이터가 응답과 함께 전송되는 때인, 70밀리초 마크까지 전송되지 않는다.
여기서, HTTP요청은 병렬적으로 처리되고, HTTP요청을 전송하는 클라이언트 프로세스(32)는 항상 임의의 시간(일반적으로, 소정의 수는 2이상이다)에 (폴링 프로세스를 수행하는) 소정의 수의 HTTP요청을 가지고 있다는 것을 더 주목해야한다. HTTP요청이 (데이터를 가지고 또는 데이터없이) HTTP요청에 대한 응답으로 전송될때, 이것은 폴과 클라이언트 프로세스(32)가 이전의 것을 대체하기 위해 새로운 HTTP요청을 전송하는 것을 완성한다. 전송 HTTP요청과 응답의 비율은 각각, 각 방향에 통신되고 있는 데이터율에 좌우되는 변수이기 때문에, 프로세스는 통신되고 있는 데이터율에 따라, 각 방향으로, 폴링율을 적용시킨다. 요청이나 응답에 의해 전송되는 데이터가 없을때까지 최대 시간 간격이 경과했을때 HTTP요청과 응답이 발생하기 때문에, 전송되는 데이터가 없는때에는, 폴링 프로세스가 지속된다.
이벤트(890)에서, 연결 서버(14a-14n)에 의해 클라이언트 컴퓨터(12a-12n)에 HTTP요청이 전송된다. 클라이언트 컴퓨터(12a-12n)를 위하여 연결 서버 전송 버퍼내에 임의의 데이터가 있다면, 이 데이터는 HTTP응답내에 임베딩된다.
이벤트(890)에 이어서, 이벤트(810-880)가 반복된다. 클라이언트 컴퓨터(12a-12n)로의 연결이 끝났다면, 도 8의 이벤트가 끝날 수 있다. 다시 한번, 그 사이의 데이터 통신을 제공하기 위하여, 클라이언트 컴퓨터(12a-12n)뿐만 아니라, 디바이스 제어 컴퓨터(36a-36n)와 관련하여 상기한 바와 같은 도 8의 이벤트가 또한 수행됨을 이해해야 한다.
도 7과 도 8의 이벤트는 관련되어 있는 클라이언트 컴퓨터(12a-12n)들과 디바이스 제어 컴퓨터(36a-36n)들과 네트워크 기반 디바이스(18a-18n)들간의 풀 듀플렉스 데이터 통신 스트림과 지속성을 제공하기 위해 반복적으로 수행된다. 이러한 지속성과 연속적인 통신 스트림은 또한 HTTP프로토콜의 지배, 피지배가 없는 특성과 관련된 임의의 제한을 극복한다.
본 발명의 데이터 통신법은 표준 HTTP프로토콜을 사용하는 개인 대 공중 대 개인 네트워크로부터 연속적인 데이터 스트림의 생성을 가능하게 한다. 따라서 본 발명은 클라이언트 컴퓨터(12a-12n)로부터 네트워크 기반 디바이스(18a-18n)에 까지 데이터의 흐름을 용이하게 하기 위해 사설망 및 공중망을 가로질러 통신 "터널"을 제공한다. 많은 응용분야에서, 승인된 사용자만이 디바이스에 접속할 수 있는 것을 보장하기 위하여, 이러한 데이터 통신의 보안과 프라이버시는 매우 중요하다. 보안과 프라이버시는 연결 서버와 연결을 확립하기 위한 보안 및 인증 프로시져에 의해 구축되고, 이러한 프로시져는 상기한 바와 같이, 클라이언트 컴퓨터(12a-12n)와 디바이스 제어 컴퓨터(36a-36n)에 적용된다. 보안된 연결이 확립되었다면, 종래 기술에 비해, 이러한 통신을 수행하는 비용을 감소시키고 속도를 크게 증가시키는, 각각의 통신 전송을 위한 새로운 보안키의 생성과 전송의 필요없이 통신은 신속히 수행될 수 있다. 또한 상기한 바와 같이, 통신된 데이터는 도 5에 도시되고 상기한 바와 같이 공유 비밀키에 의해 선택적으로 암호화될 수 있다.
어떤 실시예에서, 임베딩되고, 암호화된 데이터를 가진 각각의 HTTP요청은 그 데이터를 위한 메시지 요약을 포함할 수 있다. 임베딩되고 암호화된 데이터를 수신하는 클라이언트 컴퓨터(12a-12n) 또는 디바이스 제어 컴퓨터(36a-36n)는, 각각의 데이터 통신의 인증을 결정하기 위하여, 상기한 바와 같이, 수신된 메시지 요약값과 연산된 메시지 요약값을 비교할 수 있다. 메시지 요약값 내에 매칭이 일어나지 않으면, 보안 에러가 나타나고, 적당한 HTTP응답 메시지가 전송될 수 있다.
상기한 것으로부터 알 수 있는바와 같이, 본 발명은 연결 서버를 거쳐 상이한 사설망내의 방화벽이나 프록시 뒤에 위치한 사용자 및 네트워크 기반 디바이스에 및 로부터 데이터의 안전한 전송을 위하여 제공된다. 연결 서버는 원격 사용자와 디바이스를 연결하기 위해 사용되기 때문에, 사용자와 디바이스의 네트워크 주소가 서로로부터 비밀로 유지될 수 있고, 공중망으로부터의 공격이, 사용자와 디바이스를 보호하기 위해 위치하고 있는 기존 방화벽이나 프록시 시스템에 의해 피해갈 수 있다. 연결 서버가 공중망 내에 위치한 실시예에서, 연결 서버를 향한 공격은 방화벽이나 프록시 시스템뒤의 사용자와 디바이스의 보안을 타협하지 않는다.
본 발명은 또한 사용자간에 협동적 통신; 하나 이상의 디바이스의 협동적 제어, 하나 이상의 디바이스의 협동적 모니터링, 및 러닝(learning) 또는 티칭(teaching) 세션을 포함하는, 기타 형태의 협동적 통신을 가능하게 하는 데이터의 다중점 라우팅을 가능하게 한다. 상기한 바와 같은 인증 데이터의 사용은 디바이스 타입 정보를 포함할 수 있다. 제어와 모니터링을 위한 전형적인 디바이스와 구현 커맨드는 그 디바이스 타입에 기초하여 분류될 수 있다. 많은 예에서, 사용자는 동일한 타입의 디바이스에 커맨드를 전송하기를 원할 수 있다. 디바이스를 연결 서버에 연결되게함으로써, 사용자는 특정 타입의 모든 디바이스에 커맨드 데 이터를 재전송하기 위하여 HTTP요청을 거쳐 연결 서버를 지정할 수 있다. 따라서, 본 발명에 따른 연결 서버의 사용은 다중점 데이터 라우팅 플랫폼을 제공할 수 있다.
사용자만이 연결 서버에 바로 연결하기 때문에, 사용자만이 연결 서버의 네트워크 주소를 알 필요가 있다(즉, 단 하나의 네트워크 주소만 필요하다). 따라서, 디바이스가 네트워크를 가로질러 어디로부터 사용자에게 연결되어 있더라도, 연결 서버에 디바이스가 성공적으로 연결되는한, 사용자는 디바이스를 발견하고 액세스할 수 있다. 이러한 디바이스 로케이션 기능은 사용자가 네트워크를 거쳐 분산된 디바이스와의 연결을 관리하는데 상당한 도움이 될 수 있다.
본 발명이 특정 실시예를 참조하여 설명되었지만, 본 발명의 사상과 범위를 벗어남이 없이 다양한 변경이 가능하고 균등물로 대체될 수 있음을 당업자에게 이해되어야 한다. 또한, 특정 상황, 재료, 조성, 프로세스, 프로세스 단계를 본 발명의 목적, 사상 및 범위로 적응시킬 수 있다. 이러한 모든 수정은 첨부된 청구항의 범위내인 것으로 의도된다.

Claims (127)

  1. 심리스한 방화벽 호환의 연결을 제공하는 한편 공중망을 통해 개인 사용자들간의 원격 통신을 위한 시스템으로서, 상기 시스템은,
    공중망에 대한 제 1 방화벽 엘리먼트가 설치된 제 1 사설망에 연결된 제 1 컴퓨터;
    상기 공중망에 대한 제 2 방화벽 엘리먼트가 설치된 제 2 사설망에 연결된 제 2 컴퓨터; 및
    상기 공중망에 연결가능하고 상기 제 1 및 제 2 사설망과는 구별되는 연결 서버;를 포함하고,
    상기 제 1 방화벽 엘리먼트는 상기 공중망으로부터의 악의적인 침입으로부터 상기 제 1 컴퓨터를 보호하도록 적용되고, 상기 제 2 방화벽 엘리먼트는 상기 공중망으로부터의 악의적인 침입으로부터 상기 제 2 컴퓨터를 보호하도록 적용되고,
    상기 연결 서버는,
    상기 제 1 및 제 2 컴퓨터로부터 수신된 신원확인 정보를 확인하도록 구성된 인증 애플리케이션,
    상기 제 1 컴퓨터로부터 수신된 신원확인 정보의 인증시 상기 제 1 컴퓨터와의 안전한 제 1 방화벽 호환 연결을 형성하기 위한 수단,
    상기 제 2 컴퓨터로부터 수신된 신원확인 정보의 인증시 상기 제 2 컴퓨터와의 안전한 제 2 방화벽 호환 연결을 형성하기 위한 수단,
    제 2 방화벽 호환성을 유지하는 동안 상기 제 1 컴퓨터로부터 수신된 통신을 상기 제 2 컴퓨터로 전송할 수 있도록 하는 연결 핸들러 어레이, 및
    제 1 방화벽 호환성을 유지하는 동안 상기 제 2 컴퓨터로부터 수신된 통신을 상기 제 1 컴퓨터로 송신하기 위한 수단을 포함하는 것을 특징으로 하는 시스템.
  2. 제 1 항에 있어서, 상기 제 1 및 제 2 방화벽 엘리먼트는 거기를 통하는 통신 트래픽의 제한을 위해 상이한 기준을 사용하는 것을 특징으로 하는 시스템.
  3. 제 1 항에 있어서, 상기 제 1 컴퓨터는 클라이언트 컴퓨터를 포함하고 상기 제 2 컴퓨터는 디바이스 제어 컴퓨터를 포함하고, 상기 시스템은 상기 제 2 방화벽 엘리먼트 뒤에 상기 디바이스 제어 컴퓨터에 사적으로 네트워킹된 적어도 하나의 네트워크 기반 디바이스를 더 포함하는 것을 특징으로 하는 시스템.
  4. 제 1 항에 있어서, 상기 제 1 컴퓨터는 제 1 클라이언트 컴퓨터를 포함하고 상기 제 2 컴퓨터는 제 2 클라이언트 컴퓨터를 포함하는 것을 특징으로 하는 시스템.
  5. 제 1 항에 있어서, 상기 제 1 컴퓨터는 제 1 디바이스 제어 컴퓨터를 포함하고 상기 제 2 컴퓨터는 제 2 디바이스 제어 컴퓨터를 포함하고, 상기 시스템은 상기 제 1 방화벽 엘리먼트 뒤에 상기 제 1 디바이스 제어 컴퓨터에 사적으로 네트워킹된 적어도 하나의 제 1 네트워크 기반 디바이스, 및 상기 제 2 방화벽 엘리먼트 뒤에 상기 제 2 디바이스 제어 컴퓨터에 사적으로 네트워킹된 적어도 하나의 제 2 네트워크 기반 디바이스를 더 포함하는 것을 특징으로 하는 시스템.
  6. 제 1 항에 있어서, 상기 제 1 컴퓨터는 상기 제 1 방화벽 엘리먼트 뒤에 제 1 사설망에 연결되어 있고, 상기 제 2 컴퓨터는 상기 제 2 방화벽 엘리먼트 뒤에 상기 제 2 사설망에 연결되어 있는 것을 특징으로 하는 시스템.
  7. 제 1 항에 있어서, 상기 연결 서버는 제 3 방화벽 엘리먼트를 거쳐 공중망에 동작가능하게 연결되어 있는 사설망내에 위치되어 있는 것을 특징으로 하는 시스템.
  8. 제 3 항에 있어서, 적어도 하나의 제 2 클라이언트 컴퓨터를 더 포함하고, 상기 적어도 하나의 네트워크 기반 디바이스의 동시적이고 협동적인 사용을 위해 적어도 두개의 클라이언트 컴퓨터가 상기 공중망을 지나 상기 연결 서버와 상기 디바이스 제어 컴퓨터를 통해 상기 적어도 하나의 네트워크 기반 디바이스에 동시에 연결될 수 있는 것을 특징으로 하는 시스템.
  9. 제 1 항에 있어서, 제 3 방화벽 엘리먼트를 통해 공중망에 연결가능한 적어도 제 3의 컴퓨터를 더 포함하고, 상기 제 3 방화벽 엘리먼트는 공중망으로부터의 악의적인 침입으로부터 상기 제 3 컴퓨터를 보호하고, 상기 컴퓨터중 적어도 3개는 그 사이에 동시적, 협동적 통신을 위하여 상기 연결 서버를 통해 서로 안전한 연결을 동시에 구축할 수 있고, 상기 제 1 컴퓨터에 의해 전송되고 수신된 통신은 제 1 방화벽 호환이고, 상기 제 2 컴퓨터에 의해 전송되고 수신된 통신은 제 2 방화벽 호환이고, 그리고 상기 제 3 컴퓨터에 의해 전송되고 수신된 통신은 제 3 방화벽 호환인 것을 특징으로 하는 시스템.
  10. 제 9 항에 있어서, 상기 제 1, 제 2 및 제 3 방화벽 엘리먼트중 적어도 두개는 그것을 통한 통신 트래픽의 제한을 위해 상이한 기준을 사용하는 것을 특징으로 하는 시스템.
  11. 제 1 항에 있어서, 상기 인증 애플리케이션은 상기 제 1 컴퓨터로부터 인증 데이터를 수신하고 상기 인증 데이터가 상기 제 1 컴퓨터의 사용자를 확인하는지 여부를 판정하도록 적용되고,
    상기 제 2 컴퓨터와의 상기 안전한 제 2 방화벽 호환 연결은, 상기 연결 서버와 상기 제 1 컴퓨터와의 상기 제 1 방화벽 호환 연결이 이루어지고 상기 제 1 컴퓨터의 사용자가 확인된 후에만, 상기 제 1 컴퓨터로부터 수신된 명령에 따라 이루어지는 것을 특징으로 하는 시스템.
  12. 제 11 항에 있어서, 상기 인증 데이터는 암호화되고, 상기 연결 서버는 상기 인증 데이터를 해독하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  13. 제 11 항에 있어서, 상기 연결 서버는 상기 제 1 컴퓨터로부터 상기 연결 서버까지 전송되는 동안 상기 인증 데이터가 변경되었는지 여부를 판정하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  14. 제 11 항에 있어서, 상기 연결 서버는 상기 제 1 컴퓨터가 확인되었을 때 제 1 컴퓨터의 사용자를 위한 암호키를 준비하고 확인하기 위한 암호화 알고리즘을 더 포함하는 것을 특징으로 하는 시스템.
  15. 제 1 항에 있어서, 상기 인증 애플리케이션은 상기 제 2 컴퓨터로부터 인증 데이터를 수신하고 상기 인증 데이터가 상기 제 2 컴퓨터의 사용자를 확인하는지 여부를 판정하도록 적용되고,
    상기 제 1 컴퓨터와의 상기 제 1 방화벽 호환 연결은, 상기 연결 서버와 상기 제 2 컴퓨터와의 상기 제 2 방화벽 호환 연결이 이루어지고 상기 제 2 컴퓨터의 사용자가 확인된 후에만, 상기 제 2 컴퓨터로부터 수신된 명령에 따라 이루어지는 것을 특징으로 하는 시스템.
  16. 제 15 항에 있어서, 상기 인증 데이터는 암호화되고, 상기 연결 서버는 상기 인증 데이터를 해독하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  17. 제 15 항에 있어서, 상기 연결 서버는 상기 인증 데이터가 상기 제 2 컴퓨터로부터 상기 연결 서버로 전송되는 동안 상기 인증 데이터가 변경되었는지 여부를 판정하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  18. 제 15 항에 있어서, 상기 연결 서버는 상기 제 2 컴퓨터 사용자가 확인되었을때 상기 제 2 컴퓨터의 사용자를 위한 암호키를 준비하고 확인하기 위한 암호화 알고리즘을 더 포함하는 것을 특징으로 하는 시스템.
  19. 제 1 항에 있어서, 상기 연결 서버는 상기 제 1 및 제 2 컴퓨터간의 풀 듀플렉스 연결을 확립하는 것을 특징으로 하는 시스템.
  20. 제 8 항에 있어서, 상기 연결 서버는 적어도 상기 클라이언트 컴퓨터와 상기 디바이스 제어 컴퓨터간의 풀 듀플렉스 연결을 확립하는 것을 특징으로 하는 시스템.
  21. 제 9 항에 있어서, 상기 연결 서버는 상기 적어도 3개의 컴퓨터간의 풀 듀플렉스 연결을 확립하는 것을 특징으로 하는 시스템.
  22. 제 1 항에 있어서, 상기 공중망에 연결된 분배 제어 기반구조를 더 포함하고, 상기 연결 서버는 주 연결 서버로서 기능하고, 상기 분배 제어 기반구조는 상기 주 연결 서버에 동작가능하게 연결된 적어도 하나의 이차 연결 서버를 더 포함하는 것을 특징으로 하는 시스템.
  23. 제 22 항에 있어서, 상기 주 연결 서버는 상기 제 1 또는 제 2 컴퓨터에 의해 개시된, 통신을 상기 적어도 하나의 이차 연결 서버중 하나에 할당하는 로드 밸런싱 알고리즘을 포함하는 것을 특징으로 하는 시스템.
  24. 제 22 항에 있어서, 상기 분배 제어 기반구조는, 연결될 컴퓨터의 수 및 상기 컴퓨터간에 향해진 통신의 특성에 기초하여 연결 서버가 부가되거나 상기 분배 제어 기반구조로부터 분리될 수 있도록 치수변경가능한 것을 특징으로 하는 시스템.
  25. 제 22 항에 있어서, 상기 분배 제어 기반구조는 상기 연결 서버의 각각에 동작가능하게 연결된 적어도 하나의 데이터베이스를 더 포함하는 것을 특징으로 하는 시스템.
  26. 제 25 항에 있어서, 상기 분배 제어 기반구조는 복수의 상기 데이터베이스를 포함하고, 상기 연결 서버는 상기 데이터베이스내에 상기 컴퓨터의 사용자에 관련된 데이터를 저장하고 상기 컴퓨터중 적어도 하나에 동작가능하게 연결된 원격 디바이스의 동작에 관한 데이터를 저장하는 것을 특징으로 하는 시스템.
  27. 제 26 항에 있어서, 상기 저장된 데이터는 상기 컴퓨터를 통하여 사용자에 의해 액세스될 수 있는 것을 특징으로 하는 시스템.
  28. 심리스한 방화벽 호환의 연결을 제공하는 한편 공중망을 통해 개인 사용자들간의 원격 통신을 위한 시스템으로서, 상기 시스템은,
    공중망에 대한 제 1 방화벽 엘리먼트가 설치된 제 1 사설망에 연결된 클라이언트 컴퓨터;
    공중망에 대한 제 2 방화벽 엘리먼트가 설치된 제 2 사설망에 연결된 디바이스 제어 컴퓨터 및 상기 디바이스 제어 컴퓨터에 연결된 적어도 하나의 네트워크 기반 디바이스; 및
    상기 공중망에 동작가능하게 연결된 적어도 하나의 연결 서버;를 포함하고,
    상기 제 1 방화벽 엘리먼트는 상기 공중망으로부터의 악의적인 침입으로부터 상기 클라이언트 컴퓨터를 보호하도록 적용되고, 상기 제 2 방화벽 엘리먼트는 상기 공중망으로부터의 악의적인 침입으로부터 상기 디바이스 제어 컴퓨터와 상기 적어도 하나의 네트워크 기반 디바이스를 보호하도록 적용되고,
    상기 적어도 하나의 연결 서버는,
    상기 클라이언트 컴퓨터로부터 수신된 신원확인 정보를 확인하도록 구성된 인증 애플리케이션,
    상기 클라이언트 컴퓨터로부터 수신된 신원확인 정보의 인증시 상기 클라이언트 컴퓨터와의 안전한 제 1 방화벽 호환 연결을 형성하기 위한 수단,
    상기 디바이스 제어 컴퓨터 및 상기 적어도 하나의 네트워크 기반 디바이스로부터 수신된 신원확인 정보의 인증시 상기 디바이스 제어 컴퓨터와의 안전한 제 2 방화벽 호환 연결을 형성하기 위한 수단,
    제 2 방화벽 호환성을 유지하는 동안 상기 클라이언트 컴퓨터로부터 수신된 통신을 상기 디바이스 제어 컴퓨터를 통해 상기 적어도 하나의 네트워크 기반 디바이스로 전송할 수 있도록 하는 연결 핸들러 어레이, 및
    제 1 방화벽 호환성을 유지하는 동안 상기 적어도 하나의 네트워크 기반 디바이스로부터 수신된 통신을 상기 디바이스 제어 컴퓨터로부터 수신받아 상기 클라이언트 컴퓨터로 전송하기 위한 수단을 포함하는 것을 특징으로 하는 시스템.
  29. 제 28 항에 있어서, 상기 제 1 및 제 2 방화벽 엘리먼트는 거기를 통한 통신 트래픽의 제한을 위한 상이한 기준을 사용하는 것을 특징으로 하는 시스템.
  30. 제 28 항에 있어서, 상기 클라이언트 컴퓨터로부터의 상기 통신은 상기 적어도 하나의 네트워크 기반 디바이스를 위한 지시를 사용하는 것을 특징으로 하는 시스템.
  31. 제 28 항에 있어서, 상기 적어도 하나의 네트워크 기반 디바이스로부터의 상기 통신은 상기 적어도 하나의 네트워크 기반 디바이스의 동작 상태를 특징짓는 데이터를 포함하는 것을 특징으로 하는 시스템.
  32. 제 28 항에 있어서, 풀 듀플렉스 연결은 상기 클라이언트 컴퓨터와 각각의 상기 적어도 하나의 네트워크 기반 디바이스간에 구축되는 것을 특징으로 하는 시스템.
  33. 제 28 항에 있어서, 상기 클라이언트 컴퓨터는 상기 제 1 방화벽 엘리먼트 뒤에 제 1 사설망에 연결되어 있고, 상기 디바이스 제어 컴퓨터는 상기 제 2 방화벽 엘리먼트 뒤에 제 2 사설망에 연결되어 있는 것을 특징으로 하는 시스템.
  34. 제 33 항에 있어서, 상기 제 1 사설망에 연결된 적어도 하나의 부가적인 클라이언트 컴퓨터를 더 포함하고, 상기 적어도 하나의 연결 서버는 상기 디바이스 제어 컴퓨터를 거쳐 복수의 상기 클라이언트 컴퓨터와 상기 적어도 하나의 네트워크 기반 디바이스간의 풀 듀플렉스 통신을 구축할 수 있는 것을 특징으로 하는 시 스템.
  35. 제 33 항에 있어서, 상기 공중망에 대한 제 3 방화벽 엘리먼트가 설치된 제 3 사설망에 연결된 적어도 하나의 부가적인 클라이언트 컴퓨터를 더 포함하고,
    상기 인증 애플리케이션은 상기 적어도 하나의 부가적인 클라이언트 컴퓨터로부터 수신된 신원확인 정보를 확인하도록 구성되고,
    상기 연결 서버는, 상기 적어도 하나의 부가적인 클라이언트 컴퓨터로부터 수신된 신원확인 정보의 인증시 상기 적어도 하나의 부가적인 클라어인트 컴퓨터와의 안전한 제 3 방화벽 호환 연결을 형성하도록 구성되고,
    상기 디바이스 제어 컴퓨터를 통해 상기 클라이언트 컴퓨터로부터의 통신을, 제 2 방화벽 호환성을 유지하는 동안 상기 적어도 하나의 네트워크 기반 디바이스에 전송하고 제 3 방화벽 호환성을 유지하는 동안 상기 적어도 하나의 부가적인 클라이언트 컴퓨터에 전송하기 위한 연결 핸들러 어레이,
    상기 디바이스 제어 컴퓨터로부터 수신된 상기 적어도 하나의 네트워크 기반 디바이스로부터의 통신을, 제 1 방화벽 호환성을 유지하는 동안 상기 클라이언트 컴퓨터에 전송하고 제 3 방화벽 호환성을 유지하는 동안 상기 적어도 하나의 부가적인 클라이언트 컴퓨터에 전송하기 위한 수단, 및
    상기 적어도 하나의 부가적인 클라이언트 컴퓨터로부터의 통신을, 제 2 방화벽 호환성을 유지하는 동안 상기 디바이스 제어 컴퓨터를 거쳐 상기 적어도 하나의 네트워크 기반 디바이스에 전송하고 제 1 방화벽 호환성을 유지하는 동안 상기 클라이언트 컴퓨터에 전송하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  36. 제 35 항에 있어서, 상기 제 1, 제 2 및 제 3 방화벽 엘리먼트중 적어도 두개는 거기를 통하는 통신 트래픽의 제한을 위해 상이한 기준을 사용하는 것을 특징으로 하는 시스템.
  37. 제 33 항에 있어서, 상기 제 2 사설망에 연결된 적어도 하나의 부가적인 디바이스 제어 컴퓨터, 및 상기 적어도 하나의 부가적인 디바이스 제어 컴퓨터에 연결된 적어도 하나의 부가적인 네트워크 기반 디바이스를 더 포함하고, 상기 적어도 하나의 연결 서버는 상기 클라이언트 컴퓨터, 상기 디바이스 제어 컴퓨터 및 상기 적어도 하나의 부가적인 디바이스 제어 컴퓨터간의 풀 듀플렉스 통신을 구축할 수 있고, 상기 클라이언트 컴퓨터에 의해 상기 네트워크 기반 디바이스에 동시적 점 대 다중점 제어 명령이 제공될 수 있도록 하는 것을 특징으로 하는 시스템.
  38. 제 33 항에 있어서, 제 3 방화벽 엘리먼트 뒤에 제 3 사설망에 연결된 적어도 하나의 부가적인 디바이스 제어 컴퓨터 및 상기 적어도 하나의 부가적인 디바이스 제어 컴퓨터에 연결된 적어도 하나의 부가적인 네트워크 기반 디바이스를 더 포함하고,
    상기 적어도 하나의 연결 서버는, 상기 적어도 하나의 부가적인 디바이스 제어 컴퓨터와의 안전한 제 3 방화벽 호환 연결을 형성하기 위한 수단, 제 2 방화벽 호환성을 유지하는 동안 상기 디바이스 제어 컴퓨터를 거쳐 상기 클라이언트 컴퓨터로부터 상기 적어도 하나의 네트워크 기반 디바이스에 그리고 제 3 방화벽 호환성을 유지하는 동안 상기 적어도 하나의 부가적인 디바이스 제어 컴퓨터에 통신을 전송하기 위한 수단, 상기 디바이스 제어 컴퓨터로부터 수신된 상기 적어도 하나의 네트워크 기반 디바이스로부터의 통신을 제 1 방화벽 호환성을 유지하는 동안 상기 클라이언트 컴퓨터에 그리고 제 3 방화벽 호환성을 유지하는 동안 상기 적어도 하나의 부가적인 디바이스 제어 컴퓨터에 전송하기 위한 수단, 및 상기 적어도 하나의 부가적인 디바이스 제어 컴퓨터로부터의 통신을 제2 방화벽 호환성을 유지하는 동안 상기 디바이스 제어 컴퓨터를 거쳐 상기 적어도 하나의 네트워크 기반 디바이스에 그리고 제 1 방화벽 호환성을 유지하는 동안 상기 클라이언트 컴퓨터에 전송하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  39. 제 38 항에 있어서, 상기 제 1, 제 2 및 제 3 방화벽 엘리먼트는 거기를 통하는 통신 트래픽의 제한을 위한 상이한 기준을 사용하는 것을 특징으로 하는 시스템.
  40. 제 38 항에 있어서, 상기 적어도 하나의 연결 서버는 상기 클라이언트 컴퓨터, 상기 디바이스 제어 컴퓨터 및 상기 적어도 하나의 부가적인 디바이스 제어 컴퓨터간의 풀 듀플렉스 통신을 구축할 수 있고, 상기 클라이언트 컴퓨터에 의해 상기 네트워크 기반 디바이스에 점 대 다중점 제어 명령이 제공될 수 있도록 하는 것을 특징으로 하는 시스템.
  41. 제 40 항에 있어서, 상기 공중망에 대해 제 4 방화벽 엘리먼트가 설치된 제 4 사설망에 적어도 하나의 부가적인 클라이언트 컴퓨터를 더 포함하고, 상기 적어도 하나의 연결 서버는, 모든 방화벽 호환성을 유지하는 동안 상기 클라이언트 컴퓨터와 상기 디바이스 제어 컴퓨터간의 풀 듀플렉스 통신을 구축할 수 있고, 상기 클라이언트 컴퓨터의 사용자에 의해 상기 네트워크 기반 디바이스의 실시간 협동적 제어를 가능하게 하는 것을 특징으로 하는 시스템.
  42. 제 28 항에 있어서, 상기 적어도 하나의 연결 서버는 제 3 방화벽 엘리먼트를 거쳐 공중망에 동작가능하게 연결된 사설망내에 위치해있는 것을 특징으로 하는 시스템.
  43. 제 28 항에 있어서, 상기 적어도 하나의 연결 서버는 분배 제어 기반구조내에 네트워킹된 복수의 상기 연결 서버를 포함하고, 상기 연결 서버중 제 1 연결 서버는 주 연결 서버로 동작하고, 상기 복수의 연결 서버중 나머지는 상기 주 연결 서버에 2차적으로 동작하는 것을 특징으로 하는 시스템.
  44. 제 43 항에 있어서, 상기 주 연결 서버는 상기 클라이언트 제어 컴퓨터 또는 상기 디바이스 제어 컴퓨터에 의해 개시된, 통신을 2차 연결 서버에 할당하는 로드 밸런싱 알고리즘을 포함하는 것을 특징으로 하는 시스템.
  45. 제 43 항에 있어서, 상기 분배 제어 기반구조는 연결 서버가 연결될 컴퓨터의 수와 상기 컴퓨터간에 향해진 통신의 특성에 기초하여 부착되거나 상기 분배 제어 기반구조로부터 분리될 수 있도록 치수조절가능한 것을 특징으로 하는 시스템.
  46. 제 43 항에 있어서, 상기 분배 제어 기반구조는 상기 연결 서버의 각각에 동작가능하게 연결된 적어도 하나의 데이터베이스를 더 포함하는 것을 특징으로 하는 시스템.
  47. 제 46 항에 있어서, 상기 분배 제어 기반구조는 복수의 상기 데이터베이스를 포함하고, 상기 연결 서버는 상기 데이터베이스내에 상기 컴퓨터의 사용자에 관련된 데이터를 저장하고 상기 디바이스 제어 컴퓨터에 동작가능하게 연결된 상기 네트워크 기반 디바이스의 동작에 관한 데이터를 저장하는 것을 특징으로 하는 시스템.
  48. 제 47 항에 있어서, 상기 저장된 데이터는 상기 컴퓨터를 통하여 사용자에 의해 액세스될 수 있는 것을 특징으로 하는 시스템.
  49. 제 28 항에 있어서, 상기 적어도 하나의 연결 서버는 분배 제어 기반구조내에 네트워킹된 복수의 상기 연결 서버를 포함하고, 상기 분배 제어 기반구조는 상기 복수의 연결 서버에 동작가능하게 연결된 보안 서버를 더 포함하고, 복수의 상기 클라이언트 컴퓨터는 상기 보안 서버에 동작가능하게 연결될 수 있고 상기 디바이스 제어 컴퓨터는 상기 보안 서버에 동작가능하게 연결될 수 있는 것을 특징으로 하는 시스템.
  50. 제 49 항에 있어서, 복수의 상기 디바이스 제어 컴퓨터를 더 포함하고, 각각은 거기에 연결된 적어도 하나의 네트워크 기반 디바이스를 가지고, 각각의 상기 디바이스 제어 컴퓨터는 상기 보안 서버에 동작가능하게 연결될 수 있는 것을 특징으로 하는 시스템.
  51. 제 28 항에 있어서, 상기 적어도 하나의 연결 서버는 분배 제어 기반구조내에 네트워킹된 복수의 상기 연결 서버를 포함하고, 상기 분배 제어 기반구조는 상기 복수의 연결 서버에 동작가능하게 연결된 보안 서버를 더 포함하고, 각각이 거기에 연결된 적어도 하나의 네트워크 기반 디바이스를 갖는 복수의 상기 디바이스 제어 컴퓨터는 상기 보안 서버에 동작가능하게 연결될 수 있고 상기 클라이언트 컴퓨터는 상기 보안 서버에 동작가능하게 연결될 수 있는 것을 특징으로 하는 시스템.
  52. 제 50 항에 있어서, 상기 보안 서버는 상기 클라이언트 컴퓨터 또는 디바이스 제어 컴퓨터로부터의 접촉 수신시에 하나의 상기 클라이언트 및 디바이스 제어 컴퓨터중 어느 하나와의 연결을 승인하기 위한 수단을 포함하고, 상기 클라이언트 컴퓨터 또는 디바이스 제어 컴퓨터와의 연결을 승인하기 위한 상기 수단은 상기 클라이언트 컴퓨터 또는 디바이스 제어 컴퓨터로부터 인증 데이터를 수신하고 상기 인증 데이터가 상기 클라이언트 컴퓨터 또는 디바이스 제어 컴퓨터의 사용자를 확인하는지 여부를 판정하는 것을 특징으로 하는 시스템.
  53. 제 52 항에 있어서, 상기 클라이언트 컴퓨터 또는 디바이스 제어 컴퓨터로부터 상기 접촉은 HTTP요청을 포함하는 것을 특징으로 하는 시스템.
  54. 제 53 항에 있어서, 상기 HTTP요청은 임베딩된 사용자 인증 데이터를 포함하고 있는 것을 특징으로 하는 시스템.
  55. 제 54 항에 있어서, 상기 임베딩된 사용자 데이터는 암호화되고, 상기 보안 서버는 상기 암호화된 인증 데이터를 해독하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  56. 제 52 항에 있어서, 상기 보안 서버는 상기 클라이언트 컴퓨터 또는 디바이스 제어 컴퓨터로부터 상기 연결 서버까지 전송하는 동안 상기 인증 데이터가 변경되었는지 여부를 판정하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  57. 제 52 항에 있어서, 상기 보안 서버는, 상기 컴퓨터 사용자가 확인되었을 때, 인증 데이터를 송신한 컴퓨터의 사용자에 대한 암호키를 준비하고 확인하도록 하는 암호화 알고리즘을 더 포함하는 것을 특징으로 하는 시스템.
  58. 제 52 항에 있어서, 상기 보안 서버는 상기 컴퓨터 사용자가 확인되었을때 상기 클라이언트 컴퓨터 또는 디바이스 제어 컴퓨터를 상기 연결 서버중 하나에 할당하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  59. 제 52 항에 있어서, 상기 보안 서버는 상기 클라이언트 제어 컴퓨터 또는 상기 디바이스 제어 컴퓨터가 확인되었을때, 상기 클라이언트 제어 컴퓨터 또는 상기 디바이스 제어 컴퓨터에 의해 개시된, 통신을 상기 연결 서버중 하나에 할당하는 로드 밸런싱 알고리즘을 포함하는 것을 특징으로 하는 시스템.
  60. 제 59 항에 있어서, 상기 로드 밸런싱 알고리즘은 사용자 타입, 세션 타입, 상기 연결 서버의 가용성 및 상기 연결 서버의 상대적인 현재 워크로드중 적어도 하나에 기초하여 통신을 할당하는 것을 특징으로 하는 시스템.
  61. 제 59 항에 있어서, 상기 로드 밸런싱 알고리즘은 사용자 타입, 세션 타입, 상기 연결 서버의 가용성 및 상기 연결 서버의 상대적인 현재의 워크로드에 기초하여 통신을 할당하는 것을 특징으로 하는 시스템.
  62. 제 59 항에 있어서, 상기 보안 서버는, 상기 연결 서버중 하나에 상기 통신의 할당후에, 상기 클라이언트 컴퓨터와 디바이스 제어 컴퓨터의 적어도 또다른 하 나와의 연결을 확립하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  63. 제 62 항에 있어서, 상기 보안 서버는 확인된 컴퓨터에 의해 요청되었을때 상기 클라이언트 컴퓨터와 디바이스 제어 컴퓨터중 적어도 또다른 하나와의 연결을 확립하는 것을 특징으로 하는 시스템.
  64. 제 62 항에 있어서, 상기 분배 제어 기반구조는 상기 확인된 컴퓨터 및 상기 클라이언트 컴퓨터와 디바이스 제어 컴퓨터중 적어도 또다른 하나와의 사이에 풀 듀플렉스 연결을 가능하게 하는 것을 특징으로 하는 시스템.
  65. 제 49 항에 있어서, 상기 분배 제어 기반구조는 상기 연결 서버의 각각에 동작가능하게 연결된 복수의 데이터베이스를 더 포함하는 것을 특징으로 하는 시스템.
  66. 제 62 항에 있어서, 상기 분배 제어 기반구조는 할당된 연결 서버에 동작가능하게 연결된 적어도 하나의 데이터베이스를 더 포함하고, 나중에 다른 승인된 사용자 또는 확인된 컴퓨터 사용자에 액세스를 제공하기 위하여, 상기 확인된 컴퓨터 및 상기 클라이언트 컴퓨터와 디바이스 제어 컴퓨터중 적어도 또다른 하나와의 사이의 통신은 상기 적어도 하나의 데이터베이스에 저장되는 것을 특징으로 하는 시스템.
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 두개 이상의 방화벽 엘리먼트를 통하는 통신 트래픽의 제한을 위하여 상이한 기준을 사용하는 상기 두개 이상의 방화벽 엘리먼트에 의해 보호된 두개 이상의 컴퓨터간의 공중망상에서의 통신의 안전한 전송을 제공하는 분산 제어 구조를 포함하는 시스템으로서,
    상기 분산 제어 구조는 공중망에 동작가능하게 연결된 복수의 연결 서버를 포함하고, 상기 복수의 연결 서버는,
    컴퓨터중 제 1 컴퓨터와의 제 1 방화벽 호환 연결을 형성하기 위한 수단, 컴퓨터중 제 2 컴퓨터와의 제 2 방화벽 호환 연결을 형성하기 위한 수단, 상기 제 1 및 제 2 컴퓨터로부터 수신된 신원확인 정보를 확인하도록 구성된 인증 애플리케이션, 제 2 방화벽 호환성을 유지하는 동안 컴퓨터중 상기 제 1 컴퓨터로부터 컴퓨터중 상기 제 2 컴퓨터로 통신을 전송하기 위한 수단, 및 제 1 방화벽 호환성을 유지하는 동안 상기 제 2 컴퓨터로부터 상기 제 1 컴퓨터로 통신을 전송하기 위한 수단을 포함하고,
    상기 복수의 연결 서버는 상기 분산 제어 구조내에서 네트워킹되고, 상기 연결 서버중 제 1 연결 서버는 주 연결 서버로 동작하고, 상기 복수의 연결 서버중 나머지는 상기 주 연결 서버에 이차적으로 동작하는 것을 특징으로 하는 시스템.
  72. 제 71 항에 있어서, 상기 분산 제어 구조는, 각각이 적어도 하나의 네트워크 기반 디바이스를 갖는 복수의 디바이스 제어 컴퓨터뿐만 아니라 복수의 클라이언트 컴퓨터와 동작가능하게 연결하도록 구성되어 있는 것을 특징으로 하는 시스템.
  73. 제 71 항에 있어서, 상기 주 연결 서버는 상기 컴퓨터중 하나에 의해 개시된, 통신을 2차 연결 서버에 할당하는 로드 밸런싱 알고리즘을 포함하는 것을 특징으로 하는 시스템.
  74. 제 71 항에 있어서, 상기 연결 서버의 각각에 동작가능하게 연결된 적어도 하나의 데이터베이스를 더 포함하는 것을 특징으로 하는 시스템.
  75. 제 71 항에 있어서, 상기 연결 서버의 각각에 동작가능하게 연결된 복수의 데이터베이스를 더 포함하고, 상기 연결 서버는 상기 컴퓨터의 사용자 및 상기 데이터베이스내의 컴퓨터 및 상기 컴퓨터에 연결된 네트워크 기반 디바이스에 관련된 데이터를 저장하는 것을 특징으로 하는 시스템.
  76. 두개 이상의 방화벽 엘리먼트를 통하는 통신 트래픽의 제한을 위하여 상이한 기준을 사용하는 상기 두개 이상의 방화벽 엘리먼트에 의해 보호된 두개 이상의 컴퓨터간의 공중망상에서의 통신의 안전한 전송을 제공하는 분산 제어 구조를 포함하는 시스템으로서,
    상기 분산 제어 구조는 공중망에 동작가능하게 연결된 복수의 연결 서버 및 상기 복수의 연결 서버에 동작가능하게 연결된 보안 서버를 포함하고,
    상기 복수의 연결 서버의 각각은, 컴퓨터중 제 1 컴퓨터와의 제 1 방화벽 호환 연결을 형성하기 위한 수단, 컴퓨터중 제 2 컴퓨터와의 제 2 방화벽 호환 연결을 형성하기 위한 수단, 상기 제 1 및 제 2 컴퓨터로부터 수신된 신원확인 정보를 확인하도록 구성된 인증 애플리케이션, 제 2 방화벽 호환성을 유지하는 동안 컴퓨터중 상기 제 1 컴퓨터로부터 컴퓨터중 상기 제 2 컴퓨터로 통신을 전송하기 위한 수단, 및 제 1 방화벽 호환성을 유지하는 동안 상기 제 2 컴퓨터로부터 상기 제 1 컴퓨터로 통신을 전송하기 위한 수단을 포함하고,
    상기 복수의 연결 서버는 상기 분산 제어 구조내에서 네트워킹되고,
    상기 분산 제어 구조는, 각각이 적어도 하나의 네트워크 기반 디바이스가 연결된 복수의 디바이스 제어 컴퓨터뿐만 아니라 복수의 클라이언트 컴퓨터와 동작가능하게 연결하도록 구성되어 있는 것을 특징으로 하는 시스템.
  77. 제 76 항에 있어서, 상기 보안 서버가 상기 인증 애플리케이션을 포함하는 것을 특징으로 하는 시스템.
  78. 제 77 항에 있어서, 상기 보안 서버는 HTTP요청의 형태로 클라이언트 컴퓨터 또는 디바이스 제어 컴퓨터로부터 접촉을 수신하는 것을 특징으로 하는 시스템.
  79. 제 78 항에 있어서, 상기 보안 서버는 클라이언트 컴퓨터 또는 디바이스 제어 컴퓨터로부터 수신된 HTTP요청에 임베딩된 인증 데이터를 분리하는 것을 특징으로 하는 시스템.
  80. 제 77 항에 있어서, 상기 보안 서버는 암호화된 인증 데이터를 해독하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  81. 제 77 항에 있어서, 상기 보안 서버는 클라이언트 컴퓨터 또는 디바이스 제어 컴퓨터로부터 상기 보안 서버까지 전송하는 동안, 수신된 인증 데이터가 변경되었는지 여부를 판정하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  82. 제 77 항에 있어서, 상기 보안 서버는 컴퓨터 사용자가 확인되었을때, 인증 데이터가 수신된 컴퓨터의 사용자를 위한 암호키를 준비하고 확인하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  83. 제 77 항에 있어서, 상기 보안 서버는 컴퓨터 사용자가 확인되었을때 클라이언트 컴퓨터 또는 디바이스 제어 컴퓨터를 상기 연결 서버중 하나에 할당하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  84. 제 77 항에 있어서, 상기 보안 서버는, 클라이언트 제어 컴퓨터 또는 디바이스 제어 컴퓨터가 확인되었을때, 클라이언트 제어 컴퓨터 또는 디바이스 제어 컴퓨터에 의해 개시된, 통신을 상기 연결 서버중 하나에 할당하는 로드 밸런싱 알고리즘을 포함하는 것을 특징으로 하는 시스템.
  85. 제 84 항에 있어서, 상기 로드 밸런싱 알고리즘은 사용자 타입, 세션 타입, 상기 연결 서버의 가용성 및 상기 연결 서버의 상대적인 현재의 워크로드중 적어도 하나에 기초하여 통신을 할당하는 것을 특징으로 하는 시스템.
  86. 제 84 항에 있어서, 상기 로드 밸런싱 알고리즘은 사용자 타입, 세션 타입, 상기 연결 서버의 가용성 및 상기 연결 서버의 상대적인 현재의 워크로드에 기초하여 통신을 할당하는 것을 특징으로 하는 시스템.
  87. 제 84 항에 있어서, 상기 보안 서버는, 상기 연결 서버중 하나에 통신을 할당한 후에, 클라이언트 컴퓨터와 디바이스 제어 컴퓨터중 적어도 또다른 컴퓨터와 연결을 확립하기 위한 수단을 더 포함하는 것을 특징으로 하는 시스템.
  88. 제 87 항에 있어서, 상기 보안 서버는 확인된 컴퓨터에 의해 요청되었을때 클라이언트 컴퓨터와 디바이스 제어 컴퓨터의 적어도 또다른 컴퓨터와 연결을 확립하는 것을 특징으로 하는 시스템.
  89. 제 88 항에 있어서, 확인된 컴퓨터 및 클라이언트 컴퓨터와 디바이스 제어 컴퓨터중 적어도 또다른 하나와의 사이에 풀 듀플렉스 연결이 확립되는 것을 특징으로 하는 시스템.
  90. 제 76 항에 있어서, 상기 연결 서버의 각각에 동작가능하게 연결된 복수의 데이터베이스를 더 포함하는 것을 특징으로 하는 시스템.
  91. 개인 대 공중 대 개인의 통신 터널을 구축하는 방법으로서, 상기 통신 터널의 적어도 사설 주소가 방화벽으로 보호되고, 상기 통신 터널을 구축하는 방법은,
    공중망에 대한 제 1 방화벽 엘리먼트가 설치된 제 1 사설망에 연결된 제 1 컴퓨터를 상기 공중망을 통해 인증하는 단계;
    상기 제 1 컴퓨터의 인증시에 공공주소화된 연결 서버와 상기 제 1 컴퓨터간의 사익 공중망을 통한 제 1 방화벽 호환 연결을 생성하는 단계;
    상기 공중망에 대한 제 1 방화벽 엘리먼트가 설치된 제 1 사설망에 연결된 제 2 컴퓨터와 상기 공공주소화된 연결 서버간의 제 2 방화벽 호환 연결을 구축하는 단계; 및
    개인 대 공중 대 개인 통신 터널을 구축하는 단계를 포함하고,
    상기 제 1 방화벽 호환 연결은 상기 공중망 상에서 상기 제 1 방화벽을 통해 상기 제 1 컴퓨터와 상기 연결 서버간의 통신을 허용하고,
    상기 제 2 방화벽 호환 연결은 상기 공중망 상에서 상기 제 2 방화벽을 통해 상기 제 2 컴퓨터와 상기 연결 서버간의 통신을 허용하고,
    상기 연결 서버는 상기 제 1 방화벽 호환 연결 및 상기 제 2 방화벽 호환 연결을 통해 상기 제 1 컴퓨터로부터 상기 제 2 컴퓨터까지, 및 상기 제 2 방화벽 호환 연결 및 상기 제 1 방화벽 호환 연결을 통해 상기 제 2 컴퓨터로부터 상기 제 1 컴퓨터까지 통신을 라우팅하는 것을 특징으로 하는 통신 터널을 구축하는 방법.
  92. 제 91 항에 있어서, 상기 제 1 컴퓨터는 클라이언트 컴퓨터이고 상기 제 2 컴퓨터는, 적어도 하나의 네트워크 기반 디바이스에 동작가능하게 연결된 디바이스 제어 컴퓨터이고, 상기 제 1 컴퓨터로부터 상기 제 2 컴퓨터까지의 상기 통신은 상기 적어도 하나의 네트워크 기반 디바이스를 동작시키기 위한 제어 지시를 포함하고, 상기 제 2 컴퓨터로부터 상기 제 1 컴퓨터까지의 상기 통신은 상기 적어도 하나의 네트워크 기반 디바이스로부터 상기 제 2 컴퓨터에 의해 수신된 데이터를 포함하는 것을 특징으로 하는 통신 터널을 구축하는 방법.
  93. 제 91 항에 있어서, 상기 통신은 HTTP요청 및 응답을 포함하고, 상기 HTTP요청 및 응답은 통신이 향하는 상기 제 1 또는 제 2 컴퓨터와 연계된 상기 제 1 또는 제 2 방화벽과 호환되는 것을 특징으로 하는 통신 터널을 구축하는 방법.
  94. 제 91 항에 있어서, 상기 인증 단계는 상기 제 1 컴퓨터로부터, 사용자 인증 데이터를 포함하는 요청을 수신하는 단계; 및 상기 연결 서버와 연계되어 저장된 상기 인증 데이터가 상기 제 1 컴퓨터의 인증 데이터와 매칭하는지 여부를 확인하는 단계를 포함하는 것을 특징으로 하는 통신 터널을 구축하는 방법.
  95. 제 94 항에 있어서, 상기 사용자 인증 데이터는 상기 요청내에 임베딩되고, 상기 인증하는 단계는 상기 제 1 컴퓨터로부터 상기 연결 서버까지 전송하는 동안 인증 데이터가 변경되었는지 여부를 판정하는 단계를 더 포함하는 것을 특징으로 하는 통신 터널을 구축하는 방법.
  96. 제 94 항에 있어서, 상기 인증 데이터는 암호화되고, 상기 인증하는 단계는 상기 확인하는 단계 이전에 상기 암호화된 인증 데이터를 해독하는 단계를 더 포함하는 것을 특징으로 하는 통신 터널을 구축하는 방법.
  97. 제 96 항에 있어서, 상기 인증 단계후에 제 1 컴퓨터의 사용자를 위한 암호키를 암호화 알고리즘을 사용하여 준비하고 확인하는 단계를 더 포함하는 것을 특징으로 하는 통신 터널을 구축하는 방법.
  98. 제 91 항에 있어서, 상기 연결 서버는, 공공주소화된 분배 제어 기반구조로서 네트워킹된 복수의 연결 서버를 포함하고, 상기 방법은 상기 제 1 및 제 2 방화벽 호환 연결을 생성하기 위해 상기 복수의 연결 서버중 하나를 할당하는 단계를 더 포함하고, 상기 할당하는 단계는 상기 제 1 컴퓨터를 사용하는 사용자의 타입, 제 1 컴퓨터에 의해 구축되도록 요청되는 세션의 타입; 특정 타입이나 세션 타입을 위한 연결 서버의 구성; 연결 서버의 가용성; 연결 서버의 상태; 및 세션이 일어날때 연결 서버의 상대적인 워크 로드중 적어도 하나에 기초한 것을 특징을 하는 통신 터널을 구축하는 방법.
  99. 제 91 항에 있어서, 상기 연결 서버에 연계된 적어도 하나의 데이터베이스에 상기 통신의 적어도 일부를 저장하는 단계를 더 포함하고, 상기 저장된 통신은 상기 연결 컴퓨터 및 상기 저장된 데이터에 승인된 액세스인 제 1 컴퓨터, 제 2 컴퓨터 또는 기타 컴퓨터에 의해 액세스될 수 있는 것을 특징으로 하는 통신 터널을 구축하는 방법.
  100. 제 99 항에 있어서, 상기 액세스는 통신하는 동안 및 후속의 세션에서 동시에 수락되는 것을 특징으로 하는 통신 터널을 구축하는 방법.
  101. 공중망상에서 개인주소화된, 방화벽으로 보호된 위치사이에 데이터의 신속한 전송을 위한 안전한 연결을 확립하기 위한 방법으로서, 상기 방법은,
    제 1의, 방화벽으로 보호된 개인 주소를 갖는 제 1 컴퓨터상에 인증 데이터를 준비하는 단계;
    공중 보안키를 사용하여 인증 데이터를 암호화하는 단계;
    공중망상에서 공공주소화된 서버에, 암호화된 인증 데이터를 포함하는 요청을 전송하는 단계;
    개인 보안키를 사용하여 공공주소화된 서버의 위치에서 암호화된 인증 데이터를 해독하는 단계;
    인증 데이터가 승인된 사용자를 나타내는지 여부를 판정하기 위하여 해독된 인증 데이터를 확인하는 단계;
    인증 데이터가 승인된 사용자를 나타내면 진행하도록 제 1 컴퓨터를 승인하는 단계;
    안전한 연결상에서 전송되도록 데이터의 암호화를 위해 제 1 컴퓨터상에서 비밀 보안키를 생성하는 단계;
    공공 보안키를 사용하여 비밀키를 암호화하고 공공주소화된 서버에 암호화된 비밀 보안키를 전송하는 단계;
    개인 보안키를 사용하여 공공주소화된 서버의 위치에서 암호화된 비밀 보안키를 해독하는 단계; 및
    상기 공공주소화된 서버 및 제 2 방화벽으로 보호되는 개인 주소를 갖는 제 2 컴퓨터간에 제 2 방화벽 호환 연결을 확립하는 단계; 및
    상기 제 1 컴퓨터, 상기 공공주소화된 서버 및 상기 제 2 컴퓨터를 연결하는 개인 대 공중 대 개인 통신 터널을 구축하는 단계를 포함하는 것을 특징으로 하는 방법.
  102. 제 101 항에 있어서, 상기 공공주소화된 서버를 거쳐 상기 제 1 컴퓨터로부터 상기 제 2 컴퓨터까지 데이터를 전송하는 단계를 더 포함하는 것을 특징으로 하 는 방법.
  103. 제 102 항에 있어서, 상기 공공주소화된 서버를 거쳐 상기 제 2 컴퓨터로부터 상기 제 1 컴퓨터까지 데이터를 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  104. 제 103 항에 있어서, 상기 개인 대 공중 대 개인 통신 터널은 상기 제 1 컴퓨터와 상기 공공주소화된 서버간 및 상기 공공주소화된 서버와 상기 제 2 컴퓨터간의 풀 듀플렉스 연결을 포함하는 것을 특징으로 하는 방법.
  105. 제 103 항에 있어서, 개인 대 공중 대 개인 통신 터널을 구축하는 단계에 이어서 전송된 데이터는 비밀키를 사용하여 암호화되는 것을 특징으로 하는 방법.
  106. 제 103 항에 있어서, 제 1 컴퓨터로부터 전송된 데이터는 비밀키를 사용하여 암호화되고, 제 2 컴퓨터로부터 전송된 데이터는 제 2 컴퓨터에 의해 생성된 제 2 비밀키를 사용하여 암호화되는 것을 특징으로 하는 방법.
  107. 제 103 항에 있어서, 개인 대 공중 대 개인 통신 터널을 구축하는 단계에 이어서 전송된 데이터는 비암호화되는 것을 특징으로 하는 방법.
  108. 제 102 항에 있어서, 개인 대 공중 대 개인 통신 터널을 구축하는 단계에 이어서 전송된 데이터는 비밀키를 사용하여 암호화되는 것을 특징으로 하는 방법.
  109. 제 102 항에 있어서, 개인 대 공중 대 개인 통신 터널을 구축하는 단계에 이어서 전송된 데이터는 비암호화되는 것을 특징으로 하는 방법.
  110. 제 101 항에 있어서, 암호화된 인증 데이터는 요청내에 임베딩되는 것을 특징으로 하는 방법.
  111. 제 110 항에 있어서, 요청은 HTTP요청인 것을 특징으로 하는 방법.
  112. 제 101 항에 있어서,
    인증 데이터를 위한 제 1 컴퓨터상의 메시지 요약값을 계산하는 단계;
    인증 데이터를 암호화하는 상기 단계와 함께 계산된 메시지 요약값을 암호화하는 단계; 및
    암호화된 인증 데이터와 메시지 요약값을 요청내에 임베딩하는 단계;를 더 포함하고,
    상기 암호화된 인증 데이터를 해독하는 방법은 메시지 요약값을 해독하는 단계를 더 포함하고;
    상기 방법은 해독된 인증 데이터를 위한 메시지 요약값을 연산하는 단계, 및 인증 데이터가 변경되었거나 손상되었는지 여부를 판정하기 위하여 상기 연산된 메시지 요약값과 상기 해독된 메시지 요약값을 비교하는 단계를 더 포함하고; 그리고
    연산된 메시지 요약값과 해독된 요약값이 같을때만 상기 확인하는 단계를 진행하게 하는 것을 특징으로 하는 방법.
  113. 제 101 항에 있어서,
    비밀 보안키를 위해 메시지 요약값을 생성하는 단계;
    비밀키를 암호화하는 상기 단계와 함께 상기 메시지 요약값을 암호화하는 단계, 및 암호화된 비밀키를 가진 암호화된 메시지 요약값을 공공주소화된 서버에 전송하는 단계를 더 포함하고;
    암호화된 보안키를 해독하는 상기 단계는 메시지 요약값을 해독하는 단계를 더 포함하고;
    상기 방법은 해독된 비밀키를 위한 메시지 요약값을 연산하는 단계, 및 비밀키가 변경되었거나 손상되었는지 여부를 판정하기 위해 연산된 메시지 요약값과 해독된 메시지 요약값을 비교하는 단계를 더 포함하고; 그리고
    연산된 메시지 요약값과 해독된 요약값이 같을때만 제 2 방화벽 호환 연결을 확립하는 단계가 진행하도록 하는 것을 특징으로 하는 방법.
  114. 다중 사설망내의 다중 컴퓨터가 공중망상에서 통신을 구축하기 위하여 액세스할 수 있는 공공주소화될 수 있는 분배 제어 기반구조에 네트워킹된 복수의 연결 서버사이에 통신을 로드 밸런싱하는 방법으로서, 상기 방법은,
    특정 세션에서 상기 공공주소화될 수 있는 분배 제어 기반구조를 통하여 통신에 의해 연결될 각각의 컴퓨터의 사용자 타입을 결정하는 단계;
    구축될 특정 세션의 세션 타입을 결정하는 단계;
    사용자 타입과 세션 타입 결정과 상기 분배 제어 기반구조에 연결된 적어도 하나의 데이터베이스에 저장된 서버 타입 정보를 비교하는 단계;
    연결 서버가 결정된 사용자 타입과 세션 타입을 처리할 수 있다는 것을 지시하는 서버 타입 정보에 의해 특징지워진 연결 서버를 선택하는 단계;
    선택된 서버가 액티브인지 여부를 판정하는 단계;
    액티브이면, 세션을 위한 통신을 구축하는데 요구될 연결을 처리하기 위한 파워를 선택된 서버가 갖는지 여부를 판정하는 단계; 및
    선택된 서버가 액티브이고 파워를 가지면, 파워를 갖는 각각의 가능하고 액티브인 연결 서버의 이용율 및 세션에 대하여 예상되는 계산된 평균 파워에 기초하여, 상기 선택된 서버가 그 세션을 수행하기 위한 최상의 이용가능 파워 레벨을 갖는지 여부를 판정하는 단계를 포함하는 것을 특징으로 하는 방법.
  115. 제 114 항에 있어서, 액티브이면서 세션에 포함되는 컴퓨터간의 연결을 확립하기 위한 최상의 이용가능 파워 레벨을 가진다고 판정되는 선택된 서버를 할당하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  116. 공중망상에서, 별개의 개인주소화된, 방화벽으로 보호되는 위치를 갖는 적어도 두 컴퓨터간에 데이터를 지속적이고, 안전하게 전달하는 방법으로서, 상기 방법은,
    컴퓨터중 제 1 컴퓨터로부터 연결 서버의 공중 주소까지 요청을 어드레스함으로써 공중망에 동작가능하게 연결된 연결 서버에 액세스하는 단계;
    제 1 컴퓨터와 연결 서버간의 안전한 연결을 확립하는 단계로서, 그 단계후에, 연결 서버가, 제 1 컴퓨터가 통신하기를 원하는 컴퓨터에 관하여 제 1 컴퓨터로부터 수신된 지시에 따라, 연결 서버와 컴퓨터중 적어도 제 2 컴퓨터간의 안전한 연결을 확립하는 단계;를 포함하고,
    컴퓨터중 어느 하나가, 통신이 일어나는 다른 컴퓨터들중 어느 하나의 컴퓨터의 개인 주소를 알거나 어드레스할 필요없이 연결 서버를 통해 안전하고, 풀 듀플렉스인, 지속적인 통신이 구축하는 것을 특징으로 하는 방법.
  117. 제 116 항에 있어서, 제 1 컴퓨터는 제 1 데이터 제어 프로세스를 포함하고, 제 2 컴퓨터는 제 2 데이터 제어 프로세스를 포함하고 연결 서버는 제 3 데이터 제어 프로세스를 포함하고; 그리고
    연결 서버를 거쳐 제 1 및 제 2 컴퓨터간의 안전한 통신 채널의 구축후에, 제 1 데이터 제어 프로세스는, 통신될 임의의 데이터가 제 1 전송 버퍼내에 포함되는지 여부를 판정하기 위하여 제 1 전송 버퍼를 적응성으로 폴링하고, 데이터가 제 1 전송 버퍼내에 포함될때 연결 서버에 요청과 함께, 데이터를 전송하는 것을 특징 으로 하는 방법.
  118. 제 117 항에 있어서, 제 3 데이터 제어 프로세스는 요청이 전송되었는지 여부를 판정하기 위하여 제 1 컴퓨터를 적응성으로 폴링하고; 그리고
    요청의 수신시에, 제 3 데이터 프로세스는 요청을 판독하고 제 3 데이터 프로세스와 연계된 연결 서버 전송 버퍼내에, 요청에 의해 포함되는 임의의 데이터를 버퍼링하고;
    제 3 데이터 제어 프로세스는 제 1 컴퓨터에 전송될 임의의 데이터가 연결 서버 전송 버퍼내에 포함되는지 여부를 판정하기 위하여 연결 서버 전송 버퍼를 부가적으로 적응성으로 폴링하고; 그리고
    제 1 컴퓨터에 전송될 데이터가 있을때, 제 3 데이터 제어 프로세스는 요청에 대한 응답과함께 데이터를 전송하는 것을 특징으로 하는 방법.
  119. 제 118 항에 있어서, 제 1 데이터 제어 프로세스는 응답을 판독하고, 응답에 의해 포함되는 임의의 데이터를 버퍼링하고, 데이터가 수신되었음을 제 1 컴퓨터에 알리는 것을 특징으로 하는 방법.
  120. 제 119 항에 있어서, 프로세스 단계는 지속적인 통신을 유지하기 위해 반복되는 것을 특징으로 하는 방법.
  121. 제 117 항에 있어서, 제 3 데이터 제어 프로세스는 제 2 컴퓨터에 전송될 임의의 데이터가 연결 서버 전송 버퍼에 포함되는지 여부를 판정하기 위해 연결 서버 전송 버퍼를 적응성으로 폴링하고; 그리고
    제 2 컴퓨터에 전송될 데이터가 있을때, 제 3 데이터 제어 프로세스는 제 2 컴퓨터에 대한 응답과함께 데이터를 전송하는 것을 특징으로 하는 방법.
  122. 제 117 항에 있어서, 제 3 데이터 제어 프로세스는 요청이 전송되었는지 여부를 판정하기 위해 제 2 컴퓨터를 적응성으로 폴링하고; 그리고
    요청의 수신시에, 제 3 데이터 프로세스는 요청을 판독하고, 연결 서버 전송 버퍼에, 요청에 의해 포함되는 임의의 데이터를 버퍼링하고;
    제 3 데이터 제어 프로세스는 제 2 컴퓨터에 전송될 임의의 데이터가 연결 서버 전송 버퍼에 포함되는지 여부를 판정하기 위하여 연결 서버 전송 버퍼를 부가적으로 적응성으로 폴링하고; 그리고
    제 2 컴퓨터에 전송될 데이터가 있을때, 제 3 데이터 제어 프로세스는 요청에 대한 응답과함께 데이터를 전송하는 것을 특징으로 하는 방법.
  123. 제 122 항에 있어서, 제 2 데이터 제어 프로세스는 응답을 판독하고, 응답에 의하여 포함되는 임의의 데이터를 버퍼링하고, 데이터가 수신되었음을 제 2 컴퓨터에 알리는 것을 특징으로 하는 방법.
  124. 제 122 항에 있어서, 프로세스 단계는 지속적인 통신을 유지하기 위하여 반복되는 것을 특징으로 하는 방법.
  125. 공중망상에서 하나 이상의 클라이언트 컴퓨터에 의해 하나 이상의 네트워크 기반 디바이스를 원격 제어하기 위한 방법으로서, 상기 하나 이상의 네트워크 기반 디바이스는 하나 이상의 상이한 사설망내에 동작가능하게 연결되어 있고 상기 하나 이상의 클라이언트 컴퓨터는 하나 이상의 다른 상이한 사설망 내에서 동작가능하게 연결되어 있고, 사설망중 적어도 하나는 방화벽 엘리먼트에 의해 보호되고, 상기 방법은,
    클라이언트 컴퓨터중 적어도 하나에 의해, 공중망에 동작가능하게 연결되어 있는 적어도 하나의 연결 서버에 액세스하고;
    적어도 하나의 클라이언트 컴퓨터의 각각과 적어도 하나의 연결 서버사이에 안전한 연결을 확립하고, 그 후, 상기 네트워크 기반 디바이스와 연결된 적어도 하나의 디바이스 제어 컴퓨터를 통해, 적어도 하나의 연결 서버는 적어도 하나의 클라이언트 컴퓨터와 연결되도록 요청된 네트워크 기반 디바이스의 각각과 상기 적어도 하나의 연결 서버 사이에 안전한 연결을 확립하고, 통신이 일어나는 사이의 다른 컴퓨터중 어느 하나의 개인 주소를 컴퓨터중 어느 하나가 알거나 어드레스할 필요없이 연결 서버를 통해 안전하고, 풀 듀플렉스인, 지속적인 통신이 구축되고;
    적어도 하나의 연결 서버를 거쳐, 상기 적어도 하나의 클라이언트 컴퓨터로부터, 연결된 네트워크 기반 디바이스중 적어도 하나에까지 제어 지시를 전송하고; 그리고
    상기 적어도 하나의 연결 서버를 거쳐 상기 적어도 하나의 연결된 네트워크 기반 디바이스로부터 수신된 상기 적어도 하나의 클라이언트 컴퓨터에서 데이터를 수신하는 것을 포함하는 것을 특징으로 하는 방법.
  126. 제 125 항에 있어서, 복수의 클라이언트 컴퓨터는 상기 네트워크 기반 디바이스중 적어도 하나를 협동적으로 제어하기 위한 제어 지시를 전송하는 것을 특징으로 하는 방법.
  127. 제 125 항에 있어서, 상기 클라이언트 컴퓨터중 하나 이상은 상기 지시의 점 대 다중점 전달을 위한 제어 지시를 복수의 상기 네트워크 기반 디바이스에 전송하는 것을 특징으로 하는 방법.
KR1020047006406A 2001-11-20 2002-11-20 네트워크 기반 디바이스를 위한 액세스 및 제어 시스템 KR100994666B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33164201P 2001-11-20 2001-11-20
US60/331,642 2001-11-20

Publications (2)

Publication Number Publication Date
KR20050044335A KR20050044335A (ko) 2005-05-12
KR100994666B1 true KR100994666B1 (ko) 2010-11-16

Family

ID=23294774

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047006406A KR100994666B1 (ko) 2001-11-20 2002-11-20 네트워크 기반 디바이스를 위한 액세스 및 제어 시스템

Country Status (7)

Country Link
EP (1) EP1454241B1 (ko)
JP (1) JP4667747B2 (ko)
KR (1) KR100994666B1 (ko)
CN (1) CN100392626C (ko)
AU (1) AU2002348315A1 (ko)
CA (3) CA2725655C (ko)
WO (1) WO2003044676A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8661507B1 (en) 1999-12-02 2014-02-25 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US8793374B2 (en) 1999-12-02 2014-07-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US9191443B2 (en) 1999-12-02 2015-11-17 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US9807147B1 (en) 1999-12-02 2017-10-31 Western Digital Technologies, Inc. Program recording webification

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8688797B2 (en) 1999-12-02 2014-04-01 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7120692B2 (en) 1999-12-02 2006-10-10 Senvid, Inc. Access and control system for network-enabled devices
US7676675B2 (en) * 2003-06-06 2010-03-09 Microsoft Corporation Architecture for connecting a remote client to a local client desktop
WO2005050625A2 (en) 2003-11-14 2005-06-02 Senvid, Inc. Managed peer-to-peer applications in a secure network
US7685633B2 (en) 2005-02-25 2010-03-23 Microsoft Corporation Providing consistent application aware firewall traversal
PL1715395T3 (pl) * 2005-04-22 2008-11-28 Trumpf Laser Gmbh Co Kg Urządzenie do bezpiecznego dostępu zdalnego
US8069153B2 (en) * 2005-12-02 2011-11-29 Salesforce.Com, Inc. Systems and methods for securing customer data in a multi-tenant environment
US8192474B2 (en) 2006-09-26 2012-06-05 Zeltiq Aesthetics, Inc. Tissue treatment methods
US9132031B2 (en) 2006-09-26 2015-09-15 Zeltiq Aesthetics, Inc. Cooling device having a plurality of controllable cooling elements to provide a predetermined cooling profile
US20080077201A1 (en) 2006-09-26 2008-03-27 Juniper Medical, Inc. Cooling devices with flexible sensors
GB0623101D0 (en) * 2006-11-20 2006-12-27 British Telecomm Secure network architecture
JP2008217111A (ja) * 2007-02-28 2008-09-18 Nippon Telegr & Teleph Corp <Ntt> ネットワークサービス提供装置
US20080287839A1 (en) 2007-05-18 2008-11-20 Juniper Medical, Inc. Method of enhanced removal of heat from subcutaneous lipid-rich cells and treatment apparatus having an actuator
JP2008289725A (ja) * 2007-05-25 2008-12-04 Olympus Corp 内視鏡装置
US7716365B2 (en) * 2007-05-29 2010-05-11 Microsoft Corporation Automatically targeting and filtering shared network resources
US8949369B2 (en) * 2007-06-12 2015-02-03 Ux Ltd. Two-tier architecture for remote access service
US8523927B2 (en) 2007-07-13 2013-09-03 Zeltiq Aesthetics, Inc. System for treating lipid-rich regions
JP5474791B2 (ja) 2007-08-21 2014-04-16 ゼルティック エステティックス インコーポレイテッド 脂肪組織の冷却のような皮下脂質リッチ細胞の冷却の監視
US8603073B2 (en) 2008-12-17 2013-12-10 Zeltiq Aesthetics, Inc. Systems and methods with interrupt/resume capabilities for treating subcutaneous lipid-rich cells
US8402145B2 (en) * 2009-03-16 2013-03-19 Apple Inc. Application communication with external accessories
WO2010127315A2 (en) 2009-04-30 2010-11-04 Zeltiq Aesthetics, Inc. Device, system and method of removing heat from subcutaneous lipid-rich cells
EP2528560A1 (en) 2010-01-25 2012-12-05 Zeltiq Aesthetics, Inc. Home-use applicators for non-invasively removing heat from subcutaneous lipid-rich cells via phase change coolants, and associated devices, systems and methods
US8676338B2 (en) 2010-07-20 2014-03-18 Zeltiq Aesthetics, Inc. Combined modality treatment systems, methods and apparatus for body contouring applications
WO2014109409A1 (ja) * 2013-01-11 2014-07-17 京セラ株式会社 通信端末及び記憶媒体
US9545523B2 (en) 2013-03-14 2017-01-17 Zeltiq Aesthetics, Inc. Multi-modality treatment systems, methods and apparatus for altering subcutaneous lipid-rich tissue
US9844460B2 (en) 2013-03-14 2017-12-19 Zeltiq Aesthetics, Inc. Treatment systems with fluid mixing systems and fluid-cooled applicators and methods of using the same
EP3099259A1 (en) 2014-01-31 2016-12-07 Zeltiq Aesthetics, Inc. Treatment systems and methods for affecting glands and other targeted structures
US10675176B1 (en) 2014-03-19 2020-06-09 Zeltiq Aesthetics, Inc. Treatment systems, devices, and methods for cooling targeted tissue
USD777338S1 (en) 2014-03-20 2017-01-24 Zeltiq Aesthetics, Inc. Cryotherapy applicator for cooling tissue
US10952891B1 (en) 2014-05-13 2021-03-23 Zeltiq Aesthetics, Inc. Treatment systems with adjustable gap applicators and methods for cooling tissue
US10935174B2 (en) 2014-08-19 2021-03-02 Zeltiq Aesthetics, Inc. Stress relief couplings for cryotherapy apparatuses
US10568759B2 (en) 2014-08-19 2020-02-25 Zeltiq Aesthetics, Inc. Treatment systems, small volume applicators, and methods for treating submental tissue
DE102014112704B3 (de) * 2014-09-03 2015-12-03 Phoenix Contact Gmbh & Co. Kg Netzwerksystem und Netzwerkteilnehmer zur Datenübertragung über eine Cloud-Infrastruktur und Verfahren zur Einrichtung
WO2017070112A1 (en) 2015-10-19 2017-04-27 Zeltiq Aesthetics, Inc. Vascular treatment systems, cooling devices, and methods for cooling vascular structures
CA3009414A1 (en) 2016-01-07 2017-07-13 Zeltiq Aesthetics, Inc. Temperature-dependent adhesion between applicator and skin during cooling of tissue
US10765552B2 (en) 2016-02-18 2020-09-08 Zeltiq Aesthetics, Inc. Cooling cup applicators with contoured heads and liner assemblies
US10682297B2 (en) 2016-05-10 2020-06-16 Zeltiq Aesthetics, Inc. Liposomes, emulsions, and methods for cryotherapy
US11382790B2 (en) 2016-05-10 2022-07-12 Zeltiq Aesthetics, Inc. Skin freezing systems for treating acne and skin conditions
US10555831B2 (en) 2016-05-10 2020-02-11 Zeltiq Aesthetics, Inc. Hydrogel substances and methods of cryotherapy
US11076879B2 (en) 2017-04-26 2021-08-03 Zeltiq Aesthetics, Inc. Shallow surface cryotherapy applicators and related technology
CN110473599B (zh) * 2018-05-09 2022-11-29 上海商汤智能科技有限公司 信息处理方法及装置、电子设备及存储介质
CA3107932A1 (en) 2018-07-31 2020-02-06 Zeltiq Aesthetics, Inc. Methods, devices, and systems for improving skin characteristics

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3262689B2 (ja) * 1995-05-19 2002-03-04 富士通株式会社 遠隔操作システム
US5793964A (en) * 1995-06-07 1998-08-11 International Business Machines Corporation Web browser system
US6182139B1 (en) * 1996-08-05 2001-01-30 Resonate Inc. Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm
US5983350A (en) * 1996-09-18 1999-11-09 Secure Computing Corporation Secure firewall supporting different levels of authentication based on address or encryption status
US6104716A (en) * 1997-03-28 2000-08-15 International Business Machines Corporation Method and apparatus for lightweight secure communication tunneling over the internet
US6212558B1 (en) * 1997-04-25 2001-04-03 Anand K. Antur Method and apparatus for configuring and managing firewalls and security devices
JPH1141280A (ja) * 1997-07-15 1999-02-12 N T T Data:Kk 通信システム、vpn中継装置、記録媒体
US6182226B1 (en) * 1998-03-18 2001-01-30 Secure Computing Corporation System and method for controlling interactions between networks
JPH11338798A (ja) * 1998-05-27 1999-12-10 Ntt Communication Ware Kk ネットワークシステムおよびプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3932685B2 (ja) * 1998-08-11 2007-06-20 富士ゼロックス株式会社 ネットワーク上で遠隔手続き呼び出しを実行するための方法、及び、遠隔手続き呼び出しを実行可能なネットワーク・システム
EP1105996A4 (en) * 1998-08-21 2005-08-17 Visto Corp DEVICE AND METHOD FOR ENSURING SAFE ACCESS TO SERVICES IN A COMPUTER NETWORK
AU2424001A (en) * 1999-10-28 2001-06-06 Support. Com, Inc. Secure communication system
US6499054B1 (en) * 1999-12-02 2002-12-24 Senvid, Inc. Control and observation of physical devices, equipment and processes by multiple users over computer networks
US7814208B2 (en) * 2000-04-11 2010-10-12 Science Applications International Corporation System and method for projecting content beyond firewalls
JP4390965B2 (ja) * 2000-04-14 2009-12-24 株式会社野村総合研究所 インターネット環境下のネットワーク接続管理システム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8661507B1 (en) 1999-12-02 2014-02-25 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US8793374B2 (en) 1999-12-02 2014-07-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US9191443B2 (en) 1999-12-02 2015-11-17 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US9807147B1 (en) 1999-12-02 2017-10-31 Western Digital Technologies, Inc. Program recording webification
US9894141B2 (en) 1999-12-02 2018-02-13 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US10291686B2 (en) 1999-12-02 2019-05-14 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US10382526B2 (en) 1999-12-02 2019-08-13 Western Digital Technologies, Inc. Program recording webification

Also Published As

Publication number Publication date
EP1454241A4 (en) 2009-12-16
EP1454241B1 (en) 2012-10-10
CA2462448C (en) 2010-04-27
EP1454241A1 (en) 2004-09-08
CN1589436A (zh) 2005-03-02
JP4667747B2 (ja) 2011-04-13
WO2003044676A1 (en) 2003-05-30
CA2691167A1 (en) 2003-05-30
CA2725655C (en) 2015-01-20
KR20050044335A (ko) 2005-05-12
CA2462448A1 (en) 2003-05-30
JP2005509977A (ja) 2005-04-14
CA2725655A1 (en) 2003-05-30
CA2691167C (en) 2011-03-15
CN100392626C (zh) 2008-06-04
AU2002348315A1 (en) 2003-06-10

Similar Documents

Publication Publication Date Title
KR100994666B1 (ko) 네트워크 기반 디바이스를 위한 액세스 및 제어 시스템
KR100994667B1 (ko) 네트워크 기반 디바이스를 위한 액세스 및 제어 시스템
US7356601B1 (en) Method and apparatus for authorizing network device operations that are requested by applications
US7526640B2 (en) System and method for automatic negotiation of a security protocol
EP0985298B1 (en) Method and apparatus for providing security in a star network connection using public key cryptography
CA2648780C (en) Dynamic distributed key system and method for identity management, authentication servers, data security and preventing man-in-the-middle attacks
EP1730925B1 (en) Method and apparatus for providing transaction-level security
US20050086533A1 (en) Method and apparatus for providing secure communication
JPH10242957A (ja) ユーザ認証方法およびシステムおよびユーザ認証用記憶媒体
KR101816582B1 (ko) 차량 및 그 제어방법
JP4707325B2 (ja) 情報処理装置
KR100555745B1 (ko) 클라이언트 시스템과 특정 도메인 서버간의 보안 시스템및 그 방법
JP2005165671A (ja) 認証サーバの多重化システム及びその多重化方法
Ajayi et al. Framework on Hybrid Network Management System Using a Secure Mobile Agent Protocol.
Fumy (Local area) network security
JP2003023432A (ja) 無線lanに適したネットワークアクセス制御方法、そのシステム及びそのプログラム

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
N231 Notification of change of applicant
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131024

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141027

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151026

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161025

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee