KR20060131739A - 영속적 어플리케이션 세션에 대한 엑세스를 제공하기 위한방법 및 장치 - Google Patents

영속적 어플리케이션 세션에 대한 엑세스를 제공하기 위한방법 및 장치 Download PDF

Info

Publication number
KR20060131739A
KR20060131739A KR1020067006892A KR20067006892A KR20060131739A KR 20060131739 A KR20060131739 A KR 20060131739A KR 1020067006892 A KR1020067006892 A KR 1020067006892A KR 20067006892 A KR20067006892 A KR 20067006892A KR 20060131739 A KR20060131739 A KR 20060131739A
Authority
KR
South Korea
Prior art keywords
application
user
application sessions
server
client computer
Prior art date
Application number
KR1020067006892A
Other languages
English (en)
Inventor
브레들리 제이 페더슨
Original Assignee
사이트릭스 시스템스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=34422758&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20060131739(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 사이트릭스 시스템스, 인크. filed Critical 사이트릭스 시스템스, 인크.
Publication of KR20060131739A publication Critical patent/KR20060131739A/ko

Links

Images

Classifications

    • 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
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1038Load balancing arrangements to avoid a single path through a load balancer

Landscapes

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

Abstract

2개 이상의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법 및 장치가 개시되며, 유저와 관련된 인증 정보를 수신하고, 상기 정보에 대응하여 이전에 유저와 관련되었던 다수의 어플리케이션 세션이 식별되고, 유저에 의해 동작되는 클라이언트 컴퓨터가 다수의 어플리케이션 세션에 연결된다.
어플리케이션 세션, 원격 엑세스, 서버, 클라이언트 컴퓨터

Description

영속적 어플리케이션 세션에 대한 엑세스를 제공하기 위한 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING ACCESS TO PERSISTENT APPLICATION SESSIONS}
본 출원은 2003년 10월 10일 출원된 미국 특허출원번호 10/683,548을 기초로 우선권을 수반하며, 상기 출원의 내용이 본 명세서에 참조로서 포함된다.
본 발명은 일반적으로 컴퓨터 네트워킹 소프트웨어에 관한 것으로, 구체적으로는 영속적인 어플리케이션 세션에 대한 액세스를 제공하기 위한 장치 및 방법에 관한 것이다.
네트워크된 리소스에의 원격 엑세스를 제공하는 기술들은 다양한 서버/클라이언트 소프트웨어 조합을 포함한다. 플로리다, 포트 러더레일, 사이트릭스 시스템 Inc.의 Intelligent Computing Architecture(ICA) 클라이언트와 통신하는 MetaFrame™ 서버 소프트웨어와, X 컨소시엄의 X 윈도우 클라이언트와 통신하는 X 서버가 서버상에서 실행하는 어플리케이션에 대한 원격 엑세스를 제공하는 두가지 예이다.
컴퓨터 유저의 행동과 그들의 컴퓨터가 통신하는 네트워크 통신 채널의 안정성은 종종 예측할 수 없다. 네트워크된 유저는 때때로 잊어버리고서 또는 그들의 작업물을 완전히 저장하거나 또는 그들의 시스템을 셧다운할 기회도 없이 컴퓨터 환경을 변경해야할 필요가 있다. 또다른 경우, 통신 채널의 예상치 않은 실패 또는 컴퓨터 크래쉬는 세션이 재저장되거나 정상적으로 제거되지 않는 경우 작업물의 유실을 초래할 수 있다.
공유된 네트워크 리소스 사용의 정상적인 중지에 대한 실패는 네트워크된 어플리케이션 유저들에게는 많은 어려움을 줄 수 있다. 리소스가 이용중에 있는동안, 리소스의 조작에 대한 컨플릭팅(conflicting)을 방지하기 위하여, 많은 소프트웨어 어플리케이션은 데이터 파일같은 공유된 네트워크 리소스를 이용하기 위한 유저의 능력을 제한한다. 예를 들면, 한 유저에 의해 편집되는 문서는 다른 유저가 상기 문서를 동시에 편집하지 않도록 또는 상기 문서의 스테일 카피(stale copy)를 이용하도록 "체크 아웃(checked out)"될 수 있다. 한 유저가 하나의 컴퓨터로부터 작업하는 동안 문서를 체크 아웃하고, 그 다음 "체크 인" 없이 상기 컴퓨터를 남겨둔다면, 관리자(administrator)에 의한 조정이 없이는 상기 문서는 모두가 엑세스할 수 없게 된다. 또한, 일반적으로 이러한 조정은 문서에 대해 이뤄진 변경을 유실한다.
본 발명의 한가지 목적은 유저들이 차단된 어플리케이션 세션에 연결하도록 허용하여 유저, 하드웨어, 및 네트워크 비예측성에 대한 시간 소비와 노력을 줄이기위해 영속적(persistent) 네트워크된 리소스에 대한 탄력적인 엑세스를 컴퓨터 유저들에게 제공하며, 위치 및/또는 컴퓨팅 환경을 변경하는 것에 의해 네트워크된 리소스의 효율적이고 편리한 이용을 가능하게 하는 것이다. 몇가지 실시예에서, 다수의 어플리케이션 세션이 있을 수 있으며, 상기 다수의 어플리케이션 세션중 일부는 다수의 서버상에서 실행될 수 있다.
일반적으로, 한가지 측면에서, 본 발명은 다수의(예를 들면, 2개 이상) 어플리케이션 세션에 대한 원격 엑세스를 제공하는 방법에 관한 것이며 상기 방법은 유저와 관련된 인증(authentication) 정보를 수신하는 단계를 포함한다. 상기 방법은 또한 상기 정보에 응답하여 상기 유저와 이미 관련된 다수의 어플리케이션 세션을 식별하는 단계를 포함한다. 상기 방법은 또한 수신된 정보에 응답하여 상기 유저에 의해 작동되는 클라이언트 컴퓨터를 식별된 다수의 어플리케이션 세션에 연결하는 단계를 포함한다.
일반적으로, 또 다른 측면에서, 본 발명은 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버와 같은 장치에 관한 것이다. 서버는 클라이언트 컴퓨터를 동작하는 유저와 관련된 인증 정보를 수신하기 위한 네트워크 모듈을 포함한다. 서버는 또한 유저와 관련된 다수의 어플리케이션 세션을 작성(listing)하기 위한 데이터 저장부를 포함한다. 서버는 또한 수신된 정보에 응답하여 상기 데이터 저장부에 열거된 다수의 어플리케이션 세션에 상기 클라이언트 컴퓨터를 연결시키기 위한 서버 프로세스부를 포함한다.
도 1은 네트워크된 클라이언트-서버 컴퓨팅 시스템을 나타내는 개략도이다.
도 2는 클라이언트를 영속적 어플리케이션 세션에 연결시키기 위한 방법을 나타내는 흐름도이다.
도 3은 영속적 어플리케이션 세션을 풀링(pulling)하기 위한 방법을 나타내는 흐름도이다.
도 4는 네트워크된 클라이언트-서버 팜 컴퓨팅 시스템을 나타내는 개략도이다.
도 1을 참조하여, 클라이언트-서버 컴퓨터 시스템(100)은 제1 클라이언트 컴퓨터(102a), 제2 클라이언트 컴퓨터(102b), 및 서버(106)를 포함한다. 상기 두개의 클라이언트 컴퓨터는 설명을 위한 목적만으로 나타내었다. 클라이언트-서버 컴퓨터 시스템은 임의의 개수의 클라이언트 컴퓨터를 포함할 수 있다. 컴퓨터라는 용어는 워크스테이션, 데스크탑 컴퓨터, 랩탑, 핸드헬드 컴퓨터, 또는 통신이 가능하며 충분한 프로세서 파워, 메모리 능력, 및 본 명세서에서 설명되는 동작을 수행할 수 있는 휴먼 인터페이스를 구비한 임의의 다른 형태의 컴퓨팅 또는 전자통신 디바이스를 나타낸다.
일실시예에서, 제1 클라이언트 컴퓨터(102a)는 입력 모듈(108), 클라이언트 프로세스부(110), 네트워크 모듈(112), 및 디스플레이 모듈(114)을 포함한다. 입력 모듈(108)은 서버(106)에서의 어플리케이션 세션(118)내의 어플리케이션(116)의 원격 실행을 요청하기 위해, 제1 클라이언트 컴퓨터(102a)와 상호작용하는 제1 클라이언트 컴퓨터의 유저에 대한 인터페이스를 제공한다.
어플리케이션 세션(118)은 서버(106)상에서 동작하는 프로세스이며, 하나 이상의 어플리케이션(116)의 실행을 지원한다. 어플리케이션(116)은 예를 들면, 소프 트웨어 프로그램일 수 있으며, 컴퓨터에 의해 실행될 수 있는 소프트웨어 코드의 임의의 조직적 셋트, 또는 주문형집적회로(ASIC), 리드 온리 메모리(ROM)마이크로칩 및 이와 유사한 형태의 회로내에 내장될 수 있다. 어플리케이션의 실례에는 마이크로스프트 워드(워싱턴, 레이몬드의 Microsoft사), 인터넷 익스플로러(Microsoft), 아크로뱃(캘리포니아, 산호세, 아도브 시스템사), 등을 포함한다. 일실시예에서, 어플리케이션 세션(118)은 다른 어플리케이션(116)의 실행으로부터 시작할 수 있는 데스크탑 어플리케이션(116)을 포함한다. 어플리케이션 세션(118)은 다른 어플리케이션 세션(118)내에 포함될 수 있다. 다른 실시예에서, 어플리케이션 세션(118)은 단일 어플리케이션(116)의 실행의 경우를 포함한다.
원격 서버(106)상의 어플리케이션 세션에서 어플리케이션의 실행은 컴퓨터 유저 및 관리자에게 집중된 컴퓨팅 파워 및 소프트웨어 일관성이라는 이점을 가져다 준다. 컴퓨팅 디바이스의 능력을 급속히 증가하면서 , 컴퓨터 소프트웨어를 충분히 동작시키기 위해 필요한 컴퓨팅 리소스의 양, 모바일 컴퓨팅의 요구, 더 작은 컴퓨팅 디바이스의 사용 또한 계속해서 증가한다. 예를 들면, 개인 휴대용 정보 단말기(PDA), 및 심지어는 모바일 전화와 같은 핸드헬드 컴퓨팅 디바이스에서 계산적으로 심화된(computionally intensive) 어플리케이션에 엑세스하기 위한 능력을 점점 요구한다. 또한 거대 컴퓨팅 셋팅에서, 관리자는 종종 유저들이 작업하는 곳이 어딘지 상관없이 동일한 소프트웨어 프로그램 버전을 사용하는지 확인하기를 원한다. 더구나, 몇가지 어플리케이션은 다른 리소스들에 아주 근접하기를 요한다(예를 들면, 네트워크 디스크, 프린터, 통신 링크).
이러한 이유로, 컴퓨터 사용자 및 관리자는 이러한 점들을 처리하기 위해 점차 원격적으로 실행되는 소프트웨어 어플리케이션으로 돌아서고 있다. 예를 들면, 낮은 리소스, 최소한의 기능적 컴퓨팅 디바이스인 PDA는 원격 서버에 연결하고, 어플리케이션 세션을 시작하고, 계산적으로 심화된 어플리케이션에 런치(launch)할 수 있으며, 서버의 리소스를 이용하여 상기 계산적으로 심화된 어플리케이션을 실행한다. PDA가 충분한 디스플레이 및 입력 능력을 구비하는 만큼, 원격 엑세스는 디바이스의 계산적 제한을 상당히 줄일 수 있다. 다른 실례에서, 사용자는 그 또는 그녀의 집 컴퓨터에서 어플리케이션에 엑세스 할 수 있으며 보통은 사용자의 데스크탑 컴퓨터를 통해 원격 서버에 연결하는 것에 의해서만 가능하다. 이전 실례에서와 같이, 어플리케이션의 실행은 어플리케이션 세션을 통해 원격 서버상에서 이루어진다. 어플리케이션에 대한 원격 엑세스는 사용자의 집 컴퓨터상에 어플리케이션을 인스톨할 필요가 없게한다. 또한, 사용자 회사의 시스템 관리자가 사용자들이 동일한 버전의 어플리케이션을 사용하는지 여부를 확인할 필요가 없게 한다.
일실시예에서, 입력 모듈(108)은, 예를 들면, 유저가 선택하도록 하는 하나 이상의 아이콘 또는 메뉴 선택을 제공하는 그래픽 유저 인터페이스이다. 각각의 아이콘 또는 메뉴 선택은 원격 실행이 가능한 특정 어플리케이션(116)을 나타낸다. 아이콘 또는 메뉴 선택을 선택하는 것은 어플리케이션(116)으로의 엑세스를 위해 서버(106)로의 로그온 요청 전송을 시작한다. 다른 실시예에서, 아이콘 또는 메뉴 선택은 임의의 특정 어플리케이션(116)을 나타내지 않고, 일반 서버(106) 로그온 과정을 나타낸다. 또다른 실시예에서, 입력 모듈(108)은 비-그래픽(non-graphical) 유저 인터페이스이다. 이 실시예에서, 유저는 서버(106)로의 로그온 요청을 보내기 위해 명령을 입력할 수 있다. 명령을 입력하는 것은 입력 디바이스(예를 들면, 키보드 또는 키패드)상에서 미리 지정된 특성 셋트를 타이핑하거나 특정 키 시퀀스를 누르는 것을 포함한다. 상기 로그온 요청은 적어도 유저-제공된 인증 정보를 포함한다. 입력 모듈(108)은 유저-제공된 인증 정보의 입력을 받으며, 상기 인증 정보는 제한 없이, 유저 네임 패스워드/PIN 조합, 음성 샘플, 원타임 패스코드, 생물적 데이터, 디지털 증명, 스마트 카드 데이터, 등을 포함하는 임의의 인증 정보를 포함할 수 있다. 몇가지 실시예에서, 입력 모듈(108)은 유저 인증 정보를 받는 것을 용이하게 하기 위해 추가적인 하드웨어 주변장치(미도시)와 통신한다. 다른 실시예에서, 입력 모듈(108)은 로그온 프로세스 이외에서 인증 정보를 받을 수도 있다.
입력 모듈(108)은 인증 정보를 받고 이를 클라이언트 프로세스부(110)에 제공한다. 클라이언트 프로세스부(110)는 원격적으로 실행하는 어플리케이션 세션의 클라이언트측 기능성을 관리한다. 클라이언트 프로세스부(110)는 인증 정보를 포함하는 유저 입력을 전송하고 서버(106)에 어플리케이션 세션(118)의 제거 또는 차단을 요청한다. 클라이언트 프로세스부(110)는 또한 서버로부터 들어오는 데이터를 처리한다, 예를 들면, 어플리케이션 세션(118)의 그래픽적 출력을 디스플레이 모듈(114)에 전송한다.
네트워크 모듈(112)은 제1 클라이언트 컴퓨터(102a)와 서버(106)사이의 통신을 제공한다. 네트워크 모듈은 인증 정보와 같은 유저 입력을 보내고 서버상에서 실행하는 어플리케이션 세션으로의 엑세스 또는 어플리케이션 세션으로부터의 차단 또는 제거를 요청한다. 네트워크 모듈은 또한 어플리케이션 세션(118)으로부터의 출력을 수신하고 상기 출력을 클라이언트 프로세스부(110)에 전송한다. 일실시예에서, 네트워크 모듈(112)은 서버(106)로의 전송을 위한 미리 지정된 프로토콜로 유저 입력을 캡슐화하고(encapsulate), 서버(106)로의 전송을 위한 미리 지정된 프로토콜로부터 어플리케이션 세션 출력을 재구성한다. 또다른 실시예에서, 네트워크 모듈은 외부로의 전송을 인코딩하고 내부로의 전송을 디코딩한다.
디스플레이 모듈(114)은 원격-실행 어플리케이션 세션(118)으로부터의 어플리케이션 출력을 디스플레이한다. 일실시예에서, 디스플레이 모듈(114)은 클라이언트 프로세스부(110)로부터 수신된 출력 비디오 데이터를 브라운관(CRT) 디스플레이, 액정 표시 장치(LCD) 스크린, 플라즈마 디스플레이, 프로젝터, 또는 적절한 디스플레이 디바이스 형태와 같은 디스플레이에 바로 전송한다. 다른 실시예에서, 어플리케이션 출력은 인코딩되거나 프로토콜로 캡슐화되거나 또는 둘다 된다. 이 실시예에서, 디스플레이 모듈(114)은 먼저 컴퓨터 비디오 카드와 같은 표준 디스플레이 어댑터에 의해 출력이 번역(interpreted)될 수 있도록 어플리케이션 출력을 조정한다. 또 다른 실시예에서, 디스플레이 모듈(114)은 표준 디스플레이 어댑터를 포함한다.
일실시예에서, 서버(106)는 본 명세서에서 설명된 작업을 수행하기에 충분한 프로세싱 능력을 구비한 단일 컴퓨터이다. 바람직하게, 서버는 Windows XP Professional, Mac OS X Server(캘리포니아, 쿠페르티노, 애플 컴퓨터사), Unix-기반 운영체계(예를 들면, 캘리포니아, 서니베일, Sun Microsystem사의 Solais), 또 는 다른 적절한 운영 체계와 같은, 멀티프로세싱 운영 체계를 실행하는 서버-클래스 컴퓨터이다. 다른 실시예에서, 서버(106)는 다중 연결된 컴퓨터들을 포함한다. 또다른 실시예에서, 서버의 다중 컴퓨터들은 "서버 팜(server farm)"으로서 구성된다. 일반적으로, 서버 팜은 유저 및/또는 관리자에게는 단일 서버 시스템으로 나타나도록 함께 링크된 서버들의 그룹이며 보통 집중화된 관리를 구비한다. 서버 팜 구성에 대한 한가지 예가 "A Method and Apparatus for Communication Among a Network of Servers."라는 제목으로 2001년 12월 6일 공개된, 미국 특허출원 번호 2001/0049717 에 자세히 설명되어 있다. 물론, 본 발명의 실시예들에 이용할 수 있는 많은 서버 팜의 구성들이 가능하다는 것은 명백하다. 일실시예에서, 서버(106)는 네트워크 모듈(120), 서버 프로세스부(122), 어플리케이션 출력 전송기(124), 및 데이터 저장부(126), 룰 소스(128), 및 인증 모듈(130)을 포함한다.
네트워크 모듈(120)은 서버를 위한 통신 기능성을 제공한다. 예를 들면, 네트워크 모듈(120)은 하나 이상의 데이터 네트워크 또는 링크(121)를 통해 제1 및 제2 클라이언트 컴퓨터(102a, 102b)로부터의 통신을 수신한다. 네트워크 모듈(12)은 또한 제1 및 제2 클라이언트 컴퓨터(102a, 102b)로 어플리케이션 출력을 전송한다. 일실시예에서, 네트워크 모듈(120)은 외부로의 통신을 인코딩하고 내부로의 통신을 디코딩한다. 이와 유사하게, 일실시예에서, 네트워크 모듈(120)은 전송을 위한 프로토콜로 외부로의 통신을 캡슐화하고 프로토콜에 따라 수신된 전송으로부터 내부로의 데이터를 검색한다(retrieve). 예를 들면, 프로토콜은 HTTP, Independent Computing Architecture(ICA) 프로토콜(플로리다, 포트 러더레일, 싸이트릭스 시스 템사에 의해 이용되는), Remote Desktop Protocol(RDP)(Microsoft사), 또는 Common Gateway Protoco(CGP)(싸이트릭스)을 포함한다(이에 한정되는 것은 아님). 서버의 네트워크 모듈(120)은 네트워크(121)를 통해 제1 클라이언트 컴퓨터(102a)의 네트워크 모듈(112)과 통신한다. 예를 들면, 네트워크(121)는 표준 전화 라인, LAN 또는 WAN 링크(예를 들면, 802.11, T1, T3, 56kb, 또는 X.25 프로토콜을 이용), 광대역 연결(예를 들면, ISDN, Frame Relay, 또는 ATM 프로토콜을 이용), 무선 연결, 또는 이들의 임의의 조합과 같은 임의의 적절한 기술들에 의해 구현될 수 있다. 프로토콜로부터 한번 디코딩되거나 검색된(필요하다면), 내부 통신은 어플리케이션 세션(118) 또는 서버 프로세스부(122)로 전송된다.
서버 프로세스부(122)는 어플리케이션 세션(118)의 실행 및 제거와 이들 어플리케이션의 제1 및 제2 클라이언트 컴퓨터(102a, 102b)에 대한 연결 및 차단을 관리한다. 서버 프로세스부(122)는 새로운 어플리케이션 세션(118)을 시작할 수 있고, 어플리케이션 세션(118)로부터 클라이언트 컴퓨터(102a 또는 102b)를 차단할 수 있고, 어플리케이션 세션(118)으로부터 클라이언트 컴퓨터(102a 또는 102b) 차단을 검출할 수 있고, 유저로부터 차단된 어플리케이션 세션(118)을 정할수 있고, 제2 클라이언트 컴퓨터(102b) 또는 제1 클라이언트 컴퓨터(102a)의 유저에게 연결된 어플리케이션을 정할 수 있고, 차단된 어플리케이션 세션(118)에 유저를 연결시킬 수 있다. 바람직하게는, 어플리케이션 세션(118)은 유저의 개인적 선호 및 엑세스 허용으로 구성될 수 있도록 제공된다.
어플리케이션 출력 전송기(124)는 어플리케이션 세션(118)으로부터의 출력을 네트워크 모듈(120)을 통해 클라이언트 컴퓨터(102a 또는 102b)에 전송한다. 어플리케이션 출력 전송기(124)는 어플리케이션 세션(118)의 출력을 인터셉트하고 어떤 클라이언트 컴퓨터(102a 또는 102b)가 상기 어플리케이션 세션(118)에 연결되었는지를 판단한다. 어플리케이션 세션(118)이 클라이언트 스테이션에 연결된 경우, 어플리케이션 출력 전송기(124)는 어플리케이션 출력 데이터를 네트워크 모듈(120)을 통해 클라이언트 컴퓨터(102a 또는 102b)에 전송한다. 일실시예에서, 어플리케이션 세션이 클라이언트 컴퓨터(102a 또는 102b)에 연결되지 않은 경우, 어플리케이션 출력 전송기(124)는 어플리케이션 출력 데이터를 버리고 다음 어플리케이션 출력 데이터를 수신하기 위해 기다린다. 다른 실시예에서, 어플리케이션 세션이 클라이언트 컴퓨터(102a 또는 102b)에 연결되지 않은 경우, 어플리케이션 출력 전송기(124)는 어플리케이션 세션이 클라이언트 컴퓨터(102a 또는 102b)에 연결되었다는 지시를 수신할때까지 모든 어플리케이션 출력 데이터를 버린다. 또 다른 실시예에서, 어플리케이션 출력 전송기(124)는 어플리케이션 세션이 클라이언트 컴퓨터(102a 또는 102b)에 연결되었다는 지시를 수신할때까지 데이터를 저장한다. 또 다른 실시예에서, 어플리케이션 출력 전송기(124)는 서버로부터 클라이언트 컴퓨터(102a 또는 102b)가 차단되었다는 것을 서버 프로세스부(122)가 어플리케이션 출력 전송기(124)에 지시할 때까지 어플리케이션 출력 데이터를 클라이언트 컴퓨터(102a 또는 102b)에 보내려고 시도한다. 일실시예에서, 어플리케이션 출력 전송기(124)는 데이터 저장부(126)를 참고(consulting)하여 클라이언트 컴퓨터(102a 또는 102b)가 연결되었는지 여부를 판단한다.
데이터 저장부(126)는 유저에 의해 시작된 어플리케이션 세션과 관련된 정보를 포함한다. 데이터 저장부는 휘발성 또는 비휘발성 메모리내에 저장될 수 있으며, 다수의 서버를 통해 분배된다. 테이블1은 데이터 저장부(126)의 일부에 포함된 데이터를 나타낸다.
어플리케이션 세션 어플리케이션 세션1 어플리케이션 세션2 어플리케이션 세션3
유저 ID 유저1 유저2 유저3
클라이언트 ID 제1 클라이언트 제1 클라이언트
클라이언트 주소 172.16.0.50 172.16.0.50
상태 활성 차단 활성
어플리케이션 워드 프로세서 데이터 베이스 스프레드시트
프로세스 번호 1 3 2
서버 서버 A 서버 A 서버 B
서버 주소 172.16.2.55 172.16.2.55 172.16.2.56
테이블1의 예시적 데이터 저장부(126)는 각각의 어플리케이션 세션과 어플리케이션 세션(118)을 시작한 유저를 관련시키는 데이터, 유저가 서버(106)에 현재 연결되었다는 것으로부터 클라이언트 컴퓨터(102a 또는 102b)의 증명, 클라이언트 컴퓨터(102a 또는 102b)의 IP 주소를 포함한다. 예시적 데이터 저장부(126)는 또한 각각의 어플리케이션 세션의 상태를 포함한다. 어플리케이션 세션(118) 상태는 "활성(active)"(유저가 어플리케이션 세션에 연결되었다는 것을 의미), 또는 "차단(disconnected)"(유저가 어플리케이션 세션에 연결되지 않았다는 것을 의미)이 될 수 있다. 대안적인 실시예에서, 어플리케이션 세션 상태는 또한 "실행-차단(executing-disconnected)"(유저는 어플리케이션 세션으로부터 차단되었으나 어플리케이션 세션내의 어플리케이션은 아직 실행중이라는 것을 의미), 또는 "스톨-차단(stalled-disconnected)"(유저는 어플리케이션 세션으로부터 차단되고 어플리케이션 세션내의 어플리케이션은 실행하지 않으나, 차단 바로 전에 그 동작 상태가 저장된 것을 의미)으로 셋팅될 수 있다. 데이터 저장부(126)는 각각의 어플리케이션 세션내에서 실행되는 어플리케이션을 지시하는 정보와 서버상에서 각각의 어플리케이션의 프로세스를 지시하는 데이터를 더 저장한다. 서버(106)가 서버 팜인 실시예에 있어서, 데이터 저장부(126)는 다이내믹 저장부의 적어도 일부이며, 서버 팜의 서버상에서 각각의 어플리케이션이 실행하는지/실행했는지 여부를 지시하는 테이블1의 최종 2개의 행(row)내의 데이터와 서버의 IP 주소 포함한다. 대안적인 실시예에서, 데이터 저장부(126)는 각각의 어플리케이션 세션내의 각각의 어플리케이션에 대한 상태 지시자를 포함한다.
예를 들면, 테이블1에서, 3개의 어플리케이션 세션(어플리케이션1, 어플리케이션2, 어플리케이션3)이 존재한다. 어플리케이션1은 현재 터미널1을 이용하는 유저1과 관련된다. 터미널1의 IP 주소는 172.16.2.50 이다. 어플리케이션 세션1의 상 태는 활성이며, 어플리케이션 세션1내의 워드 프로세싱 프로그램이 실행된다. 워드 프로세싱 프로그램은 프로세스 번호1로 서버 A상에서 실행된다. 서버 A의 IP 주소는 172.16.2.55이다. 테이블1내의 어플리케이션 세션2는 차단된 어플리케이션 세션(118)의 예이다. 어플리케이션 세션2는 유저2와 관련되었지만, 어플리케이션2는 클라이언트 컴퓨터(102a 또는 102b)와 연결되어 있지 않다. 어플리케이션 세션2는 프로세스 번호3으로 172.16.2.55 IP 주소에서, 서버 A상에서 실행된다. 어플리케이션 세션3은 다른 서버(106)상에서 동작하는 어플리케이션 세션과 유저가 어떻게 상호작용할 수 있는지에 대한 예이다. 어플리케이션 세션3은 어플리케이션 세션1과 같이 유저1과 관련된다. 어플리케이션 세션3은 프로세스 번호2로 172.16.2.56 IP 주소에서 서버 B상에서 실행되는 스프레드쉬트(spreadsheet) 프로그램을 포함하는 반면, 어플리케이션 세션1에 포포함된 어플리케이션 세션은 서버 A상에서 실행된다.
일실시예에서, 서버(106)는 또한 룰 소스(rule source)(128)를 포함한다. 룰 소스(128)는 서버에 대한 인증 정보를 전송하는 유저에 대한 서버 프로세스부(122)의 반응을 주관하는 룰을 저장한다. 일실시예에서, 룰 소스(128)에 저장된 룰은 시스템 관리자에 의해 적어도 일부는 기입된다(specified). 다른 실시예에서, 유저는 룰 소스(128)내에 저장된 룰의 적어도 일부를 기입한다. 유저-기입된 룰은 참조로서 저장된다. 룰 소스(128)는 휘발성 또는 비휘발성 메모리내에 저장될 수 있으며, 다수의 서버를 통해 분배된다.
예를 들면, 룰 소스(128)내에 저장된 한가지 룰은 차단된 어플리케이션 세 션(118)에 대한 자동 연결을 요구 또는 금지할 수 있다. 또다른 룰은 다른 클라이언트 컴퓨터(102a 또는 102b)에 현재 연결된 활성 어플리케이션 세션에 대한 자동 연결을 요구 또는 금지 할 수 있다. 또다른 룰은 안전(secure) 네트워크내에서의 엑세스를 요청하는, 클라이언트 컴퓨터(102a 또는 102b)상에서 연결 및/또는 일시적(contingent) 연결을 만들 수 있다. 또다른 룰은 유저 승인을 수신한후에만 어플리케이션 세션에 대한 연결을 허용할 수 있다. 또다른 룰은 차단후에 미리 지정된 시간동안만 연결을 허용할 수 있다. 또 다른 룰은 오직 특정 어플리케이션을 포함하는 어플리케이션 세션에 대한 연결만을 허용할 수 있다.
인증 모듈(130)은 서버(106)에 대해 로그온 시도를 하는 유저에 대해 인증을 맡는다. 인증 모듈(130)은 제1 클라이언트 컴퓨터(102a)로부터 전송된 유저-제공된 인증 정보를 수신한다. 인증 모듈(130)은 그 다음 유저-제공된 인증 정보에 근거하여 유저를 인증한다. 성공적인 인증에 대응하여, 인증 모듈(130)은 인증 프로세스의 결과(예를 들면, 엑세스 허용 또는 거부, 유저의 시스템 ID, 클라이언트 컴퓨터 ID, 유저 엑세스 허용, 등)를 서버 프로세스부(122)에 전송한다.
일실시예에서, 전술한 서버(106)의 모듈들 및 프로세스부들(즉, 네트워크 모듈(120), 서버 프로세스부(122), 어플리케이션 출력 전송기(124), 인증 모듈(130))과 클라이언트 컴퓨터(102a 또는 102b)의 모듈들 및 프로세스부들(즉, 입력 모듈(108), 클라이언트 프로세스부(110), 네트워크 모듈(112), 디스플레이 모듈(114)은 모두 여러 컴퓨터 운영 체계(예를 들면, 윈도우 운영 체계(마이크로소프트사), MacOS 운영체계(애플 컴퓨터사), Unix 기반 운영체계(선 마이크로시스템사의 Solaris))중 하나상에서 실행가능한 소프트웨어에 구현될 수 있다. 일실시예에서, 하나 이상의 모듈 또는 프로세스부는 주문형반도체(ASIC),리드 온리 메모리(ROM) 디바이스, 또는 다른 디지털 하드웨어 회로와 같은 하드웨어 내에서 구현될 수 있다.
불완전한 네트워크 연결로 인한 어플리케이션의 비고의적(unintentional) 제거와 어플리케이션 세션을 제거하는 유저 자신의 실수는 유저 장해을 일으킨다. 본 발명의 일실시예는 제거(어플리케이션 세션의 의도적 종료)로부터 차단(마치 유저가 어플리케이션 세션과 작업하지 않은 것처럼 다루어짐)을 구별하고, 클라이언트 컴퓨터와는 반대로 유저와 어플리케이션 세션을 서로 연관시키는 것에 의해 이러한 장해들을 제한한다. 유저가 어플리케이션 세션내에서 동작하는 어플리케이션 사용을 끝냈을때, 유저는 어플리케이션 세션을 제거할 수 있다. 제거는 일반적으로 서버가 더 이상 어플리케이션 세션을 유지하지 않아도 됨을 지시하는 유저의 확정적인 입력을 포함한다. 이러한 확정적인 유저 입력은 메뉴에서 "종료(Exit)" 옵션을 선택하는 것, 아이콘을 클릭하는 것등을 포함한다. 제거 요청을 수신하는 서버 프로세스부(122)에 응답하여, 어플리케이션 세션(118) 및 어플리케이션 세션내의 임의의 어플리케이션은 중지된다. 일실시예에서, 어플리케이션 세션과 관련된 데이터 또한 데이터 저장부(126)에서 제거된다.
반면에, 의도적 또는 비고의적, 차단은 어플리케이션 세션의 제거를 초래하지 않는다. 어플리케이션 세션(118)에서 동작하는 어플리케이션 또는 어플리케이션들은 서버상에서 실행되기 때문에, 어플리케이션의 계속적 실행을 위해 제1 클라이 언트 컴퓨터(102a)에 대한 연결은 일반적으로 필요치 않으며, 일실시예에서 유저가 연결하는 것을 기다리는 동안 어플리케이션(116)은 계속 실행할 수 있다. 대안적인 실시예에서, 유저의 차단상에서, 서버 프로세스부(122)는 어플리케이션 세션에서 동작하는 어플리케이션의 실행을 스톨(stall)한다. 즉, 서버 프로세스부(122)는 어플리케이션의 더 이상의 실행을 중지하고, 어플리케이션의 동작 상태와 어플리케이션이 처리한 임의의 데이터를 저장한다. 또 다른 실시예에서, 서버 프로세스부(122)는 유저 차단후에 특정 어플리케이션의 실행을 선택적으로 스톨할 수 있다. 예를 들면, 일실시예에서, 서버는 정해진 시간 기간동안 어플리케이션(116)의 실행을 계속하고, 그 시간 기간내에 유저가 연결에 실패한다면 서버 프로세스부(122)는 어플리케이션(116)을 스톨한다. 또 다른 실시예에서, 서버는 유저 입력이 없이는 계속 실행할 수 없는 특정 어플리케이션 세션(118)을 스톨한다. 전술한 각각의 실시예들에서, 제1 클라이언트 컴퓨터(102a)의 유저가 서버로부터 차단되고 그 다음 제1 클라이언트 컴퓨터(102a), 제2 클라이언트 컴퓨터(102b), 또는 제3 클라이언트 컴퓨터 동작중에 서버로 연결된다면, 서버 프로세스부(122)는 유저에 의해 동작되는 클라이언트 컴퓨터를 유저와 관련된 하나 이상의 이전에 시작되고, 비-제거된 어플리케이션 세션에 연결할 수 있고, 임의의 스톨된 어플리케이션의 실행을 재시작할 수 있다.
일실시예에서, 서버 프로세스부(122)는 차단을 검출한다. 유저는 유저가 통신하는 클라이언트 컴퓨터(102a 또는 102b)로부터 어플리케이션 세션을 차단하기 위해 의도적이며 수동적으로 서버에 명령을 내릴수 있다. 예를 들면, 일실시예에 서, 어플리케이션 세션(118)은 유저가 선택할 수 있는 차단(전술한 제거와 구별됨)에 대한 메뉴 옵션을 제공한다. 서버 프로세스부(122)는 또한 비고의적 차단을 검출할 수 있다. 예를 들면, 일실시예에서, 네트워크 모듈(120)에 의해 클라이언트 컴퓨터(102a 또는 102b)로 전송된 미리 지정된 수의 데이터 패킷이 클라이언트 컴퓨터(102a 또는 102b)에 의해 도착알림(acknowledge)되지 않았을때 서버의 네트워크 모듈(120)은 서버 프로세스부(122)에 통지한다. 다른 실시예에서, 클라이언트 컴퓨터(102a 또는 102b)는 주기적으로 연결이 여전히 그대로인지를 확인하기 위한 신호를 서버(106)에 전송한다. 서버 프로세스부가 클라이언트 컴퓨터(102a 또는 102b)로부터 미리 지정된 수의 기대된 확인 신호가 도착하지 않은 것을 검출한 경우, 서버 프로세스부(122)는 클라이언트 컴퓨터가 차단되었음을 판단한다. 서버 프로세스부(122)가 유저가, 의도적이거나 비고의적이거나, 어플리케이션 세션으로부터 차단되었음을 검출한 경우, 차단된 어플리케이션 세션과 관련된 데이터 저장부(126)내의 엔트리는 차단을 반영하기 위해 변경된다.
도 2를 참조하여, 일실예에서, 어플리케이션 세션에 대한 원격 엑세스를 제공하는 방법(200)이 유저와 관련된 인증 정보를 서버(106)의 네트워크 모듈(120)이 수신하는 단계(202)부터 시작한다. 인증 정보는 유저 네임, 클라이언트 네임, 클라이언트 주소, 패스워드, PIN, 음성 샘플, 한번의 패스코드, 생물학적 데이터, 디지털 증명, 티켓 등과 이들의 조합을 포함하는 많은 인증 정보 타입을 포함한다. 인증 정보는 유저로부터의 로그온 요청의 형태로 될 수 있다. 전술한 바와 같이, 로그온 요청은 클라이언트 컴퓨터(102a 또는 102b)의 입력 모듈(108)을 통해 유저에 의해 시작될 수 있다. 클라이언트의 네트워크 모듈은 요청을 서버 프로세스부(122)에 전송한다.
일실시예에서, 요청을 수신한 상에서, 서버 프로세스부(122)는 유저-제공된 인증 정보를 유저의 신원을 인증하는 인증 모듈(130)에 전송한다. 서버의 인증 모듈(130)은 그 자신이 및/또는 도메인 서버, 인증 서비스와 같은 다른 모듈 또는 컴퓨터와 연계하여 상기 인증을 수행할 수 있다. 성공적인 인증은 인증 모듈이 유저에 대한 신원 정보(예를 들면, 유저네임 또는 ID)를 서버 프로세스부(122)에 전송하게 한다.
유저와 관려된 인증 정보의 수신에 대응하여 서버 프로세스부(122)는 서버(106)상에서 실행 또는 스톨되고 유저와 관련된 임의의 차단된 어플리케이션 세션을 식별한다(단계 204). 일실시예에서, 서버 프로세스부(122)는 인증 정보가 수신된 상에서 어플리케이션 세션을 식별한다. 다른 실시예에서, 서버 프로세스부는 인증 모듈(130)이 유저의 신원을 증명한 후 인증 정보의 수신에 대응하여 어플리케이션을 식별한다. 일실시예에서, 서버 프로세스부(122)는 유저와 관련된 세션에 대한 데이터 저장부(126)를 참고하여 임의의 차단된 어플리케이션 세션이 존재하는지 여부를 판단한다. 예를 들면, 차단된 어플리케이션 세션(118)은 데이터 저장부(126)내의 어플리케이션 세션의 상태를 "차단"으로 변경하고, 어플리케이션 세션에 대한 데이터 저장부(16) 엔트리내에서 연결된 클라이언트 컴퓨터(102a 또는 102b)의 증명을 제거하는 것에 의해 서버 프로세스부(122)가 어플리케이션 세션을 차단하는 결과를 초래하는, 어플리케이션 세션의 유저의 명령에 의해 차단되었을 수 있다. 또 다른 실시예에서, 상기 차단은 비고의적이다. 비고의적인 차단은 서버 프로세스부(122)가 고의적 차단의 결과와 같이 만드는 데이터 저장부(126)에 대한 동일한 변경을 가하는 것을 초래한다.
일실시예에서, 임의의 차단된 어플리케이션 세션(118)을 식별한 것에 기초하여, 서버 프로세스부(122)는 연결을 원하는지 여부를 유저에게 프롬프트(prompt)한다. 연결을 원하지 않는 경우, 서버 프로세스부(122)는 차단된 어플리케이션 세션이 차단된채 유지할지 여부, 또는 어플리케이션 세션이 제거되어야 하는지 여부를 지시하도록 프롬프트한다. 대안적인 실시예에서, 서버 프로세스부(122)는 연결 및/또는 연결이 허용되는지 및/또는 요구되는지 여부를 판단하기 위해 룰 소스(128)에 저장된 룰을 참고한다.
대안적인 실시예에서, 예를 들면, "로그온"이라 라벨된 아이콘을 클릭하는 것과 같은 단일 유저 인터페이스 요소를 사용함으로써, 유저는 서버, 서버 프로세스부(122), 및 임의의 차단된 어플리케이션 세션에 연결한다. 이 실시예에서, 단일 유저 인터페이스를 활성화시키는 것은 자동적으로 유저를 임의의 차단된 어플리케이션 세션에 연결시킨다.
일실시예에서, 클라이언트는 이러한 유저 연결상에서 자동적으로 인증 정보를 보내도록 구성될 수 있다. 유저에 의해 동의되거나 자동적으로 연결이 허용되는 경우, 서버 프로세스부(122)는 차단된 어플리케이션 세션에 유저를 연결시킨다(단계 206). 일실시예에서, 연결은 유저가 어플리케이션 세션에 연결되었는지 지시하고 클라이언트 컴퓨터(102a 또는 102b)로부터 유저가 서버에 연결되었는지를 지시 하기 위해 데이터 저장부(126)내의 엔트리를 변경하는 것을 포함한다. 연결에 기초하여, 서버(106)는 어플리케이션 출력 전송기(124)로부터 어플리케이션 출력 데이터를 클라이언트(102a 또는 102b)로 전송하는 것을 재개한다. 다른 실시예에서, 어플리케이션 출력 전송기는 어플리케이션 출력 전송을 시작하기 전에 이러한 전송이 허용되는지를 확인하기 위해 룰 소스(128)를 참고한다.
유저가 이전에 서버에 연결되었을때(그리고 그다음 서버로부터 차단되었을때) 어플리케이션 세션은 유저가 동작시키는 클라이언트 컴퓨터(102a 또는 102b) 대신에 우선적으로 유저와 관련된다. 그 결과, 유저는 제1 클라이언트 컴퓨터(102a), 제2 클라이언트 컴퓨터(102b), 또는 임의의 다른 클라이언트 컴퓨터로부터 어플리케이션 세션에 재연결할 수 있다.
도 3을 참조하여, 세션이 차단되지 않았더라도(즉, 활성된 경우) 이것은 하나의 클라이언트로부터 다른 하나로 세션을 전송하는데 유용할 수 있다. 예를 들면, 이것은 어플리케이션 세션은 차단되었으나, 서버는 아직 차단을 검출하지 못했을 경우일 수 있다. 이것은 유저가 일부러 세션 실행을 남기고, 그러나 지금은 다른 위치로부터 세션에 엑세스하는 경우일 수 있다.
활성 어플리케이션 세션(118)을 제1 클라이언트 컴퓨터(102a)로부터 제2 클라이언트 컴퓨터(102b)로 이동시키기 위한 방법(300)은 일반적으로 네트워크 모듈(120)이 유저로부터 인증 정보를 수신하는 것(예를 들면, 로그온 요청의 형태)으로 시작한다. 일실시예에서, 유저는 입력 모듈(108)을 통해 인증 정보를 제출한다. 인증 정보는 제2 클라이언트 컴퓨터(102b)의 네트워크 모듈(112)에 의해 서버(106) 에 전송될 수 있다. 서버의 네트워크 모듈(120)은 요청을 서버 프로세스부(122)에 전송할 수 있다.
서버 프로세스부(122)는 유저-제공된 인증 정보를 수신한다(단계 302). 일실시예에서, 서버 프로세스부(122)는 유저-제공된 인증 정보를 전술한 다양한 임의의 인증 기술를 이용하여 유저의 신원을 인증하는 인증 모듈(130)에 전송한다. 성공적 인증은 인증 모듈이 유저에 대한 식별 정보를 서버 프로세스부(122)에 전송하게 한다.
인증 정보의 수신후(단계 302)에, 서버 프로세스부는 유저와 관련된 그러나 제1 클라이언트 컴퓨터(102a)와 같은 다른 클라이언트 컴퓨터에 연결된 임의의 활성 어플리케이션 세션(118)을 식별하기 위해 데이터 저장부(126)를 참고한다. 일실시예에서, 서버 프로세스부(122)가 임의의 이러한 활성 어플리케이션 세션(118)을 식별한 경우, 서버 프로세스부는 자동적으로 제1 클라이언트 컴퓨터로부터 어플리케이션 세션을 차단하고(단계306), 어플리케이션 세션을 현재 클라이언트 컴퓨터(102b)에 연결시킨다(단계308). 일실시예에서, 유저는 데이터 저장부의 자동적인 참고와 후속적인 단일 유저 인터페이스 요소의 선택과의 연결을 트리거할 수 있다.
대안적인 실시예에서, 서버 프로세스부(122)는 현재 클라이언트 컴퓨터(102b)에 연결된 활성 어플리케이션 세션을 갖기를 원하는지 여부를 위해 유저에게 프롬프트한다. 유저가 하나 이상의 활성 어플리케이션 세션을 이동하는 것을 거부한 경우, 서버 프로세스부(122)는 어플리케이션 세션을 계속 활성할 것인지, 또는 어플리케이션 세션을 제거할지 여부를 위해 유저에게 프롬프트한다. 대안적인 실시예에서, 서버 프로세스부(122)는 활성 어플리케이션 세션을 이동하기전에 어플리케이션 세션의 이동이 허용되는 여부를 판단하기 위해 룰 소스(128)내에 저장된 룰을 참고한다.
어플리케이션 세션의 이동이 허용되고 이동이 자동으로 또는 유저에 의해 요청된 경우, 일실시예에서 서버 프로세스부(122)는 저장된 클라이언트 컴퓨터(102a)의 신원을 현재 클라이언트 컴퓨터(즉, 제2 컴퓨터(102b))의 신원으로 바꾸기 위해 어플리케이션 세션에 대한 데이터 저장부(126)내에 유지된 엔트리를 변경하는 것으로 차단(단계 306)과 연결(308)을 수행한다. 현재 클라이언트 컴퓨터(102b)에 대한 연결하에서, 어플리케이션 출력 전송기(124)는 어플리케이션 출력을 현재 컴퓨터로 전송하기 시작한다(단계 310). 다른 실시예에서, 어플리케이션 출력 전송기는 전소이 허용되었는지를 확인하기 위해 어플리케이션 출력을 전송하기 전에 룰 소스(128)를 참고한다.
도 2 및 3의 방법은 클라이언트가 차단되거나 활성화된 유저와 관련된 세션 둘다에 연결되는 것을 허용하기 위해 결합될 수 있다는 것을 이해하여야 한다. 또한, 이동 또는 재연결에 앞서, 활성 및/또는 차단된 세션은 동일 또는 여러개의 다른 클라이언트 컴퓨터에 연결될 수 있다.
도 4를 참조하여, 전술한 바와 같이, 서버(106)는 서버 팜(400)으로 구현될 수 있다. 일실시예에서, 서버 팜은 서로 링크되고 공동으로 관리되는 여러개의 서버들(406a, 406b, 406c)을 포함한다. 여러개의 클라이언트 컴퓨터(402a, 402b, 402c)(일반적으로 많은 컴퓨터들)는 네트워크(421)를 통해 서버 팜(400)에 연결할 수 있다. 서버(406a, 406b, 406c)는 서버 팜(400)에 부여된 계산 작업(load)을 공유한다. 예를 들면, 유저가 세개의 어플리케이션 세션(418a, 418b, 418c)에 엑세스한 경우, 각각의 어플리케이션 세션은 다른 서버(406a, 406b, 406c)상에서 실행될 수 있다. 이와 유사하게, 유저가 단일 어플리케이션 세션(418a, 418b, 또는 418c)을 통해 2개 이상의 어플리케이션(116)에 엑세스한 경우, 서버 팜(400)의 서버 프로세스부(122)는 하나의 서버(406a)상에서 실행하도록 하나의 어플리케이션을 할당하고 다른 어플리케이션은 서버(406b)상에서 실행하도록 할당할 수 있다. 서버 팜 구성에 있어서, 서버의 모듈(120, 122, 124), 데이터 저장부(126), 룰 소스(128)(도 1)는 단일 서버(406a, 406b, 406c)상에 저장될 수 있고, 또는 서버(406a, 406b, 406c)에 분배될 수 있다.
차단후에 또는 차단없이 클라이언트 컴퓨터(402a, 402b, 402c)를 변경한 후에 서버 팜(400)에의 연결에 대하여, 서버 프로세스부(122)는 서버들(406a, 406b, 406c)을 단일 서버로 다룬다. 즉, 서버 팜이 유저의 어플리케이션 세션(418a, 418b, 418c)을 개별적인 서버(406a, 406b, 406c)상에서 실행하고, 유저 유저가 서버 팜(400)으로부터 차단하거나 또는 유저가 작업하는 클라이언트 컴퓨터(402a, 402b, 402c)를 변경하고, 후속적으로 서버 팜(400)에 연결하는 경우, 서버 팜(400)의 서버 프로세스부(122)는 자동적으로 유저의 클라이언트 컴퓨터(402a, 402b, 402c)를 세개의 서버(406a, 406b, 406c) 모두에서 실행하는 세개의 모든 어플리케이션 세션(418b, 418b, 418c)에 연결시킬 수 있다.
상기 시스템의 일실시예에 대한 동작의 예에 있어서, 이 예에서는 모바일 핸 드헬드 컴퓨터인 제1 클라이언트 컴퓨터(402a)의 유저는 무선 모뎀을 통해 서버 팜(400)에 로그온하고 두개의 어플리케이션 세션(418a 및 418b)를 요청한다. 서버 팜(400)의 서버 프로세스부(122)는 제1 서버(406a)상에 제1 어플리케이션 세션(418a)을 그리고 제2 서버(406b)상에 제2 어플리케이션 세션(418b)을 런치한다. 무선 모뎀은 제1 컴퓨터(402a)의 유저가 엘레베이터(elevator)를 입력할때 서버 팜과의 연결이 끊어진다. 서버 팜(400)의 서버 프로세스부(122)는 유저가 차단되었는지를 판단하고, 그리고 서버 프로세스부(122)는 그에 따라 데이터 저장부(126)를 업데이트한다.
그 다음 유저는 이 예에서는 유저의 사무실 데스크탑 컴퓨터인 제2 클라이언트 컴퓨터(402b)로부터 서버 팜(400)에 로그온한다. 서버 프로세스부(122)는 데이터 저장부(126)를 참고하고 2개의 차단된 어플리케이션 세션(418a, 418b)이 유저와 관련되었는지를 판단한다. 서버 프로세스부(122)는 자동적으로 제2 클라이언트 컴퓨터(402b)를 서버(406a, 406b) 각각에서 실행하는 어플리케이션 세션(418a, 418b) 둘 모두에 연결시킨다.
그 다음 유저는 서버 팜(400)으로부터의 차단없이 제2 클라이언트 컴퓨터를 남기고 이 예에서는 동료(colleague)의 랩탑인 제3 클라이언트 컴퓨터를 통해 서버 팜(400)에 로그온한다. 제3 클라이언트 컴퓨터(402c)로부터의 로그온하에서, 서버 프로세스부는 데이터 저장부(126)를 참고하고 제2 클라이언트 컴퓨터(402b)에 연결된 2개의 활성 어플리케이션 세션(418a 및 418b)과 유저가 관련되었는지를 판단한다. 서버 프로세스부(122)는 그 다음 자동적으로 제2 클라이언트 컴퓨터(402b)로부 터 어플리케이션 세션(418a, 418b) 둘 다를 차단하고, 이 두개의 어플리케이션 세션(418a, 418b)을 제3 클라이언트 컴퓨터(402c)에 연결시킨다.
다음으로 유저는 어플리케이션 세션(418a 및 418b) 각각에 대한 차단 옵션을 선택한다. 서버 프로세스부(122)는 어플리케이션 세션(418a 및 418b)이 차단되었는지를 지시하기 위해 데이터 저장부(126)를 업데이트한다. 그 다음 유저는 제2 클라이언트 컴퓨터(402b)로부터 서버 팜(400)으로 로그온한다. 서버 프로세스부(122)는 데이터 저장부(126)를 참고하고 2개의 차단된 어플리케이션 세션(418a, 418b)이 유저와 관련되었는지를 판단한다. 서버 프로세스부(122)는 자동적으로 차단된 어플리케이션 세션(418a 및 418b)을 제2 클라이언트 컴퓨터(402b)에 연결시킨다.
당업자는 본 발명의 의도 및 필수적 특성으로부터 벗어남이 없는 다른 특정 형태로 본 발명이 구체화될 수 있다는 것을 알 수 있을 것이다. 상기의 실시예들은 본 발명을 제한하려는 것이 아니며 그 모두가 설명을 위한 예시적인 것으로 고려되어야 할 것이다. 본 발명의 범위는 이상의 설명에 의해서 제한되지 않는다.

Claims (43)

  1. 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법에 있어서,
    유저와 관련된 인증 정보(authentication information)를 수신하는 단계와,
    상기 정보에 대응하여 상기 유저와 이전에 관련되었던 다수의 어플리케이션 세션을 식별하는 단계와,
    상기 수신된 정보에 대응하여 상기 다수의 어플리케이션 세션과 상기 유저에 의해 동작되는 클라이언트 컴퓨터 사이의 연결을 구축하는 단계
    를 포함하는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  2. 제1항에 있어서,
    상기 어플리케이션 세션들중 제1 어플리케이션 세션은 제1 서버상에서 실행되고 상기 어플리케이션 세션들중 제2 어플리케이션 세션은 제2 서버상에서 실행되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  3. 제1항에 있어서,
    상기 클라이언트와 다수의 어플리케이션 세션 사이의 연결을 구축하는 단계는 상기 유저에 의해 동작되는 상기 클라이언트 컴퓨터가 상기 다수의 어플리케이 션 세션에 연결되는 것을 허용하는 룰(rule)에 따라 처리되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  4. 제3항에 있어서,
    상기 룰은 상기 유저에 의해 생성된, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  5. 제3항에 있어서,
    상기 룰은 관리자(administrator)에 의해 생성된, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  6. 제1항에 있어서,
    상기 유저와 상기 다수의 어플리케이션 세션 사이의 상기 연결은 단일 유저 인터페이스 요소의 선택에 의해 트리거(trigger)되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  7. 제1항에 있어서,
    상기 유저와 관련된 상기 제1 어플리케이션 세션 및 상기 유저와 관련된 상기 제2 어플리케이션 세션을 차단하기 위한 차단 요청을 수신하는 단계와,
    상기 제1 및 제2 어플리케이션 세션을 차단하는 단계
    를 더 포함하는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  8. 제7항에 있어서,
    상기 제1 및 제2 어플리케이션 세션이 차단되었는지를 지시하기 위해 상기 제1 및 제2 어플리케이션 세션과 관련된 적어도 하나의 데이터 기록을 업데이트하는 단계를 더 포함하는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  9. 제8항에 있어서,
    상기 차단된 어플리케이션 세션들중 적어도 하나의 실행은 계속시키는 단계를 더 포함하는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  10. 제1항에 있어서,
    상기 수신된 인증 정보에 대응하여 상기 유저를 인증하는 단계를 더 포함하는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  11. 제1항에 있어서,
    상기 다수의 어플리케이션 세션을 식별하는 단계는 어플리케이션 세션을 실 행하는 다수의 서버와 관련되어 저장된 데이터를 참고(consult)하는 단계를 포함하는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  12. 제1항에 있어서,
    상기 다수의 어플리케이션 세션은 연결에 앞서 제1 클라이언트 컴퓨터에 연결되었었고, 연결 후에, 상기 다수의 어플리케이션 세션이 상기 제1 클라이언트 컴퓨터에 재연결되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  13. 제1항에 있어서,
    상기 다수의 어플리케이션 세션은 상기 연결을 구축하기에 앞서 제1 클라이언트 컴퓨터와 관련되었었고, 상기 연결을 구축한후, 상기 다수의 어플리케이션 세션은 제2 클라이언트 컴퓨터에 연결되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  14. 제1항에 있어서,
    상기 다수의 어플리케이션 세션중 적어도 하나는 차단되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  15. 제1항에 있어서,
    상기 다수의 어플리케이션 세션중 적어도 하나는 활성(active)되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  16. 제1항에 있어서,
    상기 다수의 어플리케이션 세션을 식별하는 단계는 인증 정보를 받는 대로 자동적으로 되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  17. 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법에 있어서,
    유저와 관련된 인증 정보를 전송하는 단계와,
    상기 전송된 정보에 대응하여 상기 유저와 관련되고 이전에 차단되었던 다수의 어플리케이션 세션으로부터 어플리케이션 출력을 수신하는 단계
    를 포함하는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  18. 제17항에 있어서,
    상기 어플리케이션 출력을 수신하는 단계는 상기 인증 정보의 전송에 따라서 자동적으로 되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  19. 제17항에 있어서,
    상기 전송된 정보에 대응하여 상기 유저와 관련된 적어도 하나의 활성 어플리케이션 세션을 차단하는 단계를 더 포함하는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  20. 제19항에 있어서,
    상기 차단하는 단계는 상기 인증 정보의 전송에 따라서 자동으로 되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  21. 제17항에 있어서,
    상기 다수의 활성 어플리케이션 세션은 제1 클라이언트 컴퓨터에 처음으로 연결되고, 상기 정보 전송에 따라서, 상기 유저는 제2 클라이언트 컴퓨터를 동작시키는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  22. 제17항에 있어서,
    상기 다수의 활성 어플리케이션 세션으로부터 어플리케이션 출력을 받는 것은 상기 유저에 의해 동작되는 클라이언트 컴퓨터를 구비한 유저가 상기 다수의 활성 어플리케이션 세션에 연결하는 것을 허용하는 룰에 따라 처리되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  23. 제22항에 있어서,
    상기 룰은 상기 유저에 의해 생성되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  24. 제22항에 있어서,
    상기 룰은 관리자에 의해 생성되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  25. 제17항에 있어서,
    상기 다수의 활성 어플리케이션 세션으로부터 어플리케이션 출력을 받는 것과 상기 다수의 차단된 어플리케이션 세션으로부터 어플리케이션 출력을 받는 것은 단일 유저 인터페이스 요소의 선택에 의해 트리거되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  26. 제17항에 있어서,
    상기 유저와 관련된 적어도 하나의 활성 어플리케이션 세션을 차단하기 위한 차단 요청을 전송하는 단계를 더 포함하는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  27. 제17항에 있어서,
    상기 다수의 차단된 어플리케이션 세션은 차단에 앞서 제1 클라이언트 컴퓨터에 연결되었었고, 연결에서, 상기 다수의 차단된 어플리케이션 세션은 상기 제1 클라이언트 컴퓨터에 재연결되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  28. 제17항에 있어서,
    상기 다수의 차단된 어플리케이션 세션은 차단에 앞서 제1 클라이언트 컴퓨터에 연결되었었고, 연결에서, 상기 다수의 차단된 어플리케이션 세션은 제2 클라이언트 컴퓨터에 연결되는, 다수의 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 방법.
  29. 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버에 있어서,
    클라이언트 컴퓨터를 동작시키는 유저와 관련된 인증 정보를 수신하기 위한 네트워크 모듈과,
    상기 유저와 관련된 다수의 어플리케이션 세션을 열거(enumerating)하기 위한 데이터 저장부와,
    상기 수신된 정보에 대응하여 상기 클라이언트 컴퓨터를 상기 데이터 저장부에 열거된 상기 다수의 어플리케이션 세션에 연결시키기 위한 서버 프로세스부
    를 포함하는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  30. 제29항에 있어서,
    제1 어플리케이션 세션은 제1 서버상에서 실행되고 제2 어플리케이션 세션은 제2 서버상에서 실행되는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  31. 제29항에 있어서,
    상기 서버 프로세스부는 상기 유저에 의해 동작되는 상기 클라이언트 컴퓨터를 상기 다수의 어플리케이션 세션에 연결하는 것을 허용하는 룰에 따라서 상기 클라이언트를 상기 다수의 어플리케이션 세션에 연결시키는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  32. 제31항에 있어서,
    상기 룰은 상기 유저에 의해 생성되는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  33. 제31항에 있어서,
    상기 룰은 관리자에 의해 생성되는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  34. 제29항에 있어서,
    상기 다수의 어플리케이션 세션에 대한 상기 유저의 연결은 단일 유저 인터페이스 요소의 선택에 의해 트리거되는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  35. 제29항에 있어서,
    상기 서버 프로세스부는 또한 상기 유저와 관련된 상기 제1 어플리케이션 세션과 상기 유저와 관련된 상기 제2 어플리케이션 세션을 차단하기 위한 차단 요청을 수신하도록 구성되며, 상기 요청에 대응하여 상기 제1 및 2 어플리케이션 세션을 차단하는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  36. 제35항에 있어서,
    상기 서버 프로세스부는 또한 상기 제1 및 2 어플리케이션 세션이 차단되었는지를 지시하기 위해 상기 제1 및 2 어플리케이션 세션 각각에 관련된 데이터 기록중 적어도 하나를 업데이트하도록 구성되는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  37. 제35항에 있어서,
    상기 서버 프로세스부는 또한 상기 차단된 어플리케이션 세션들중 적어도 하나의 실행은 계속되도록 구성되는, 어플리케이션 세션에 대한 원격 엑세스를 제공 하기 위한 서버.
  38. 제29항에 있어서,
    상기 수신된 인증 정보에 대응하여 상기 유저를 인증하기 위한 인증 모듈을 더 포함하는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  39. 제29항에 있어서,
    상기 데이터 저장부는 어플리케이션 세션을 실행하는 다수의 서버와 관련된 저장 데이터를 포함하는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  40. 제29항에 있어서,
    상기 다수의 어플리케이션 세션은 연결에 앞서 제1 클라이언트 컴퓨터에 연결되었었고, 연결 후, 상기 다수의 어플리케이션 세션은 상기 제1 클라이언트 컴퓨터에 재연결되는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  41. 제29항에 있어서,
    상기 다수의 어플리케이션 세션은 연결에 앞서 제1 클라이언트 컴퓨터에 연결되었었고, 연결 후, 상기 다수의 어플리케이션 세션은 제2 클라이언트 컴퓨터에 연결되는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  42. 제29항에 있어서,
    상기 다수의 어플리케이션 세션중 적어도 하나는 차단되는, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
  43. 제29항에 있어서,
    상기 다수의 어플리케이션 세션중 적어도 하나는 활성인, 어플리케이션 세션에 대한 원격 엑세스를 제공하기 위한 서버.
KR1020067006892A 2003-10-10 2004-09-10 영속적 어플리케이션 세션에 대한 엑세스를 제공하기 위한방법 및 장치 KR20060131739A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/683,548 US7594018B2 (en) 2003-10-10 2003-10-10 Methods and apparatus for providing access to persistent application sessions
US10/683,548 2003-10-10

Publications (1)

Publication Number Publication Date
KR20060131739A true KR20060131739A (ko) 2006-12-20

Family

ID=34422758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067006892A KR20060131739A (ko) 2003-10-10 2004-09-10 영속적 어플리케이션 세션에 대한 엑세스를 제공하기 위한방법 및 장치

Country Status (8)

Country Link
US (2) US7594018B2 (ko)
EP (2) EP1671226A2 (ko)
JP (1) JP2007508617A (ko)
KR (1) KR20060131739A (ko)
AU (1) AU2004281457A1 (ko)
CA (1) CA2541987A1 (ko)
IL (1) IL174813A0 (ko)
WO (1) WO2005038649A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101417242B1 (ko) * 2010-09-10 2014-07-09 인텔 코오퍼레이션 세션 이동을 갖는 개인 클라우드 컴퓨팅
JP2014146290A (ja) * 2013-01-30 2014-08-14 Seiko Epson Corp 制御装置、及び、制御装置の制御方法
JP2014146294A (ja) * 2013-01-30 2014-08-14 Seiko Epson Corp 制御システム、及び、制御システムの制御方法

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US7185014B1 (en) 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
KR20050114047A (ko) * 2004-05-31 2005-12-05 삼성전자주식회사 원격지에 소재하는 다수의 클라이언트들을 지원하는 방법및 서버
US7587755B2 (en) * 2004-07-02 2009-09-08 Citrix Systems, Inc. System and method for executing interactive applications with minimal privileges
US20060069662A1 (en) * 2004-09-30 2006-03-30 Citrix Systems, Inc. Method and apparatus for remapping accesses to virtual system resources
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US8117559B2 (en) * 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US8095940B2 (en) * 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US9071570B2 (en) * 2005-03-30 2015-06-30 International Business Machines Corporation Method and apparatus to select and deliver portable portlets
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
US8131825B2 (en) * 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8228521B2 (en) * 2006-03-17 2012-07-24 Fuji Xerox Co., Ltd. Data processing apparatus, printing system, job execution system, and job execution method
WO2008007456A1 (fr) * 2006-07-13 2008-01-17 Seiko Epson Corporation Système de réseau, ordinateur, procédé de mise en œuvre d'applications pour un système de réseau, procédé d'exécution d'applications pour un système de réseau, et programme
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US8020195B2 (en) * 2007-03-30 2011-09-13 Citrix Systems, Inc. Systems and methods for user login
US8127017B2 (en) * 2007-06-22 2012-02-28 Citrix Systems, Inc. Methods and servers for displaying and activating disconnected sessions
US8171483B2 (en) * 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8943182B2 (en) * 2008-10-01 2015-01-27 Motorola Solutions, Inc. Method and system for transferring a communication session
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US20110113089A1 (en) * 2009-11-09 2011-05-12 Apple Inc. Delivering media-rich-invitational content on mobile devices
US9338276B2 (en) * 2010-01-26 2016-05-10 Apple Inc. Gating accessory connection
FR2959632B1 (fr) * 2010-05-03 2012-10-19 Evidian Procede d'ouverture de session d?une machine appartenant a un parc de machines
US8429674B2 (en) * 2010-07-20 2013-04-23 Apple Inc. Maintaining data states upon forced exit
US8843646B2 (en) 2011-09-12 2014-09-23 Microsoft Corporation Multi-desktop interaction using nested remote desktop sessions
US9462466B2 (en) * 2011-09-29 2016-10-04 Israel L'Heureux Gateway router supporting session hand-off and content sharing among clients of a local area network
US20130238785A1 (en) * 2012-03-06 2013-09-12 Rackspace Us, Inc. System and Method for Metadata Discovery and Metadata-Aware Scheduling
JP5942503B2 (ja) * 2012-03-15 2016-06-29 富士通株式会社 サービス要求装置、サービス要求方法およびサービス要求プログラム
US9027024B2 (en) * 2012-05-09 2015-05-05 Rackspace Us, Inc. Market-based virtual machine allocation
KR101772781B1 (ko) * 2013-01-30 2017-08-29 세이코 엡슨 가부시키가이샤 Pos 제어 시스템, pos 제어 시스템의 제어 방법, 및, 제어 장치
US11310312B2 (en) 2014-07-07 2022-04-19 Citrix Systems, Inc. Peer to peer remote application discovery
US11283866B2 (en) 2014-07-07 2022-03-22 Citrix Systems, Inc. Providing remote access to applications through interface hooks
US9848325B2 (en) * 2014-07-14 2017-12-19 Sony Corporation Enabling secure application distribution on a (E)UICC using short distance communication techniques
US9639680B2 (en) * 2014-07-29 2017-05-02 Google Inc. Allowing access to applications based on user handling measurements
US9684776B2 (en) 2014-07-29 2017-06-20 Google Inc. Allowing access to applications based on user authentication
US10298561B2 (en) * 2015-06-30 2019-05-21 Vmware, Inc. Providing a single session experience across multiple applications
US10489633B2 (en) * 2016-09-27 2019-11-26 Sectra Ab Viewers and related methods, systems and circuits with patch gallery user interfaces
CN115118762A (zh) * 2022-05-19 2022-09-27 北京京东乾石科技有限公司 一种会话处理的方法、客户端和系统

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835726A (en) * 1993-12-15 1998-11-10 Check Point Software Technologies Ltd. System for securing the flow of and selectively modifying packets in a computer network
US5606668A (en) * 1993-12-15 1997-02-25 Checkpoint Software Technologies Ltd. System for securing inbound and outbound data packet flow in a computer network
JPH0863419A (ja) * 1994-08-17 1996-03-08 Canon Inc 情報処理方法及び装置及びシステム
US5987611A (en) * 1996-12-31 1999-11-16 Zone Labs, Inc. System and methodology for managing internet access on a per application basis for client computers connected to the internet
JP3608905B2 (ja) * 1997-05-29 2005-01-12 三菱電機株式会社 データ通信システム及びデータ通信方法
US6321337B1 (en) * 1997-09-09 2001-11-20 Sanctum Ltd. Method and system for protecting operations of trusted internal networks
US6085247A (en) * 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US6901075B1 (en) * 1998-03-12 2005-05-31 Whale Communications Ltd. Techniques for protection of data-communication networks
US6484174B1 (en) 1998-04-20 2002-11-19 Sun Microsystems, Inc. Method and apparatus for session management and user authentication
US6452915B1 (en) * 1998-07-10 2002-09-17 Malibu Networks, Inc. IP-flow classification in a wireless point to multi-point (PTMP) transmission system
US6640248B1 (en) * 1998-07-10 2003-10-28 Malibu Networks, Inc. Application-aware, quality of service (QoS) sensitive, media access control (MAC) layer
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6463470B1 (en) * 1998-10-26 2002-10-08 Cisco Technology, Inc. Method and apparatus of storing policies for policy-based management of quality of service treatments of network data traffic flows
US6625643B1 (en) * 1998-11-13 2003-09-23 Akamai Technologies, Inc. System and method for resource management on a data network
JP2000207362A (ja) * 1999-01-19 2000-07-28 Toshiba Corp ネットワ―クシステム及びネットワ―クシステムにおけるユ―ザ認証方法
US6701432B1 (en) * 1999-04-01 2004-03-02 Netscreen Technologies, Inc. Firewall including local bus
US7882247B2 (en) * 1999-06-11 2011-02-01 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
US6466984B1 (en) * 1999-07-02 2002-10-15 Cisco Technology, Inc. Method and apparatus for policy-based management of quality of service treatments of network data traffic flows by integrating policies with application programs
US6496935B1 (en) * 2000-03-02 2002-12-17 Check Point Software Technologies Ltd System, device and method for rapid packet filtering and processing
ATE414943T1 (de) * 2000-03-03 2008-12-15 Ibm System zur bestimmung von schwächen von web- anwendungen
US7343413B2 (en) * 2000-03-21 2008-03-11 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
US8380854B2 (en) * 2000-03-21 2013-02-19 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
US6981041B2 (en) * 2000-04-13 2005-12-27 Aep Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, an integrated virtual office environment, remotely accessible via a network-connected web browser, with remote network monitoring and management capabilities
JP2001306504A (ja) * 2000-04-21 2001-11-02 Casio Comput Co Ltd コンピュータ・システム、サーバおよび端末装置
US6785713B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for communicating among a network of servers utilizing a transport mechanism
US7565326B2 (en) * 2000-05-25 2009-07-21 Randle William M Dialect independent multi-dimensional integrator using a normalized language platform and secure controlled access
US6856651B2 (en) * 2000-07-25 2005-02-15 Peribit Networks, Inc. System and method for incremental and continuous data compression
CA2421609A1 (en) 2000-09-12 2002-03-21 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
JP4717197B2 (ja) * 2000-11-07 2011-07-06 大日本印刷株式会社 手続システム
US7143437B2 (en) * 2001-01-12 2006-11-28 Siemens Medical Solutions Health Services Corporation System and user interface for managing user access to network compatible applications
US7043752B2 (en) * 2001-01-12 2006-05-09 Siemens Medical Solutions Health Services Corporation System and user interface supporting concurrent application initiation and interoperability
US7185364B2 (en) * 2001-03-21 2007-02-27 Oracle International Corporation Access system interface
US7769845B2 (en) * 2001-05-04 2010-08-03 Whale Communications Ltd Method and system for terminating an authentication session upon user sign-off
JP2002344484A (ja) * 2001-05-21 2002-11-29 Nec Corp ネットワークの接続復旧方法及びシステム
US8200818B2 (en) * 2001-07-06 2012-06-12 Check Point Software Technologies, Inc. System providing internet access management with router-based policy enforcement
US20040107360A1 (en) * 2002-12-02 2004-06-03 Zone Labs, Inc. System and Methodology for Policy Enforcement
US6873988B2 (en) * 2001-07-06 2005-03-29 Check Point Software Technologies, Inc. System and methods providing anti-virus cooperative enforcement
US7546629B2 (en) * 2002-03-06 2009-06-09 Check Point Software Technologies, Inc. System and methodology for security policy arbitration
US6983370B2 (en) * 2001-11-27 2006-01-03 Motorola, Inc. System for providing continuity between messaging clients and method therefor
US7804785B2 (en) * 2002-04-19 2010-09-28 Avaya Inc. Network system having an instructional sequence for performing packet processing and optimizing the packet processing
US7395355B2 (en) * 2002-07-11 2008-07-01 Akamai Technologies, Inc. Method for caching and delivery of compressed content in a content delivery network
US6850943B2 (en) * 2002-10-18 2005-02-01 Check Point Software Technologies, Inc. Security system and methodology for providing indirect access control
US20040111642A1 (en) * 2002-12-05 2004-06-10 Amir Peles Content security by network switch
CA2418568C (en) * 2003-02-10 2011-10-11 Watchfire Corporation Method and system for classifying content and prioritizing web site content issues
US7801964B2 (en) * 2003-02-14 2010-09-21 Whale Communications Ltd. System and method for providing conditional access to server-based applications from remote access devices
US20040177247A1 (en) * 2003-03-05 2004-09-09 Amir Peles Policy enforcement in dynamic networks
US7681235B2 (en) * 2003-05-19 2010-03-16 Radware Ltd. Dynamic network protection
US7526541B2 (en) * 2003-07-29 2009-04-28 Enterasys Networks, Inc. System and method for dynamic network policy management
US7769994B2 (en) * 2003-08-13 2010-08-03 Radware Ltd. Content inspection in secure networks
US7552109B2 (en) * 2003-10-15 2009-06-23 International Business Machines Corporation System, method, and service for collaborative focused crawling of documents on a network
US7743420B2 (en) * 2003-12-02 2010-06-22 Imperva, Inc. Dynamic learning method and adaptive normal behavior profile (NBP) architecture for providing fast protection of enterprise applications
US8572249B2 (en) * 2003-12-10 2013-10-29 Aventail Llc Network appliance for balancing load and platform services
US8255973B2 (en) * 2003-12-10 2012-08-28 Chris Hopen Provisioning remote computers for accessing resources
US7752662B2 (en) * 2004-02-20 2010-07-06 Imperva, Inc. Method and apparatus for high-speed detection and blocking of zero day worm attacks
US20050262063A1 (en) * 2004-04-26 2005-11-24 Watchfire Corporation Method and system for website analysis
US20060029016A1 (en) * 2004-06-29 2006-02-09 Radware Limited Debugging application performance over a network

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101417242B1 (ko) * 2010-09-10 2014-07-09 인텔 코오퍼레이션 세션 이동을 갖는 개인 클라우드 컴퓨팅
US8843616B2 (en) 2010-09-10 2014-09-23 Intel Corporation Personal cloud computing with session migration
JP2014146290A (ja) * 2013-01-30 2014-08-14 Seiko Epson Corp 制御装置、及び、制御装置の制御方法
JP2014146294A (ja) * 2013-01-30 2014-08-14 Seiko Epson Corp 制御システム、及び、制御システムの制御方法

Also Published As

Publication number Publication date
IL174813A0 (en) 2006-08-20
WO2005038649A2 (en) 2005-04-28
US8078689B2 (en) 2011-12-13
AU2004281457A1 (en) 2005-04-28
JP2007508617A (ja) 2007-04-05
US20050080906A1 (en) 2005-04-14
US7594018B2 (en) 2009-09-22
US20100011113A1 (en) 2010-01-14
CA2541987A1 (en) 2005-04-28
EP2000905A1 (en) 2008-12-10
WO2005038649A3 (en) 2005-09-29
EP1671226A2 (en) 2006-06-21

Similar Documents

Publication Publication Date Title
KR20060131739A (ko) 영속적 어플리케이션 세션에 대한 엑세스를 제공하기 위한방법 및 장치
US11843589B2 (en) Network connection automation
US8719433B2 (en) Methods and apparatus for scalable secure remote desktop access
EP0775341B1 (en) Apparatus and method for limiting access to a local computer network
EP1173952B1 (en) Remote control of a device
US20050080897A1 (en) Remote management utility
US20070136471A1 (en) Systems and methods for negotiating and enforcing access to network resources
US8140684B2 (en) Voice activated system for dynamically re-connecting user computer operation sessions
US8615544B2 (en) System and method for unlocking a device remotely from a server
WO2008097373A2 (en) Phone home servlet in a computer investigation system
US20070136301A1 (en) Systems and methods for enforcing protocol in a network using natural language messaging
US9769086B2 (en) Techniques for providing dynamic account and device management
US8825832B2 (en) Method and system for managing connections
KR20060087758A (ko) 모바일 기기용 인터넷 디스크 시스템 및 방법
JP3064959B2 (ja) 電子メールによる遠隔操作制御システムおよび制御方法ならびに遠隔操作制御プログラムを格納した記憶媒体
JP3893055B2 (ja) ネットワークのセキュリティシステム及びそのセキュリティ方法
JP2003058266A (ja) ライセンス管理方法とライセンス管理プログラム
TWM542301U (zh) 登入驗證裝置
KR200273788Y1 (ko) 클러스터 시스템
JP2001229098A (ja) ネットワーク監視方式
US20080065790A1 (en) Method for pairing hosts and I/O peripherals in centralized computer system
JP2000305773A (ja) ディスク制御装置の無停止プログラム変更の遠隔実施方法
WO2002084970A2 (en) System enabling remote access of a computing system
JP2004140748A (ja) データ中継装置、データ中継システムならびにコンピュータプログラム

Legal Events

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