KR101964293B1 - 인증된 콘텐츠를 콘텐츠 소비자로 이동시키는 기법 - Google Patents

인증된 콘텐츠를 콘텐츠 소비자로 이동시키는 기법 Download PDF

Info

Publication number
KR101964293B1
KR101964293B1 KR1020147014555A KR20147014555A KR101964293B1 KR 101964293 B1 KR101964293 B1 KR 101964293B1 KR 1020147014555 A KR1020147014555 A KR 1020147014555A KR 20147014555 A KR20147014555 A KR 20147014555A KR 101964293 B1 KR101964293 B1 KR 101964293B1
Authority
KR
South Korea
Prior art keywords
user
network
data
user data
location
Prior art date
Application number
KR1020147014555A
Other languages
English (en)
Other versions
KR20140098762A (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 KR20140098762A publication Critical patent/KR20140098762A/ko
Application granted granted Critical
Publication of KR101964293B1 publication Critical patent/KR101964293B1/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/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • 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/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • 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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에 따른 기법들은 네트워크 상의 인증된 콘텐츠를 콘텐츠의 소비자로 이동(migrate)시키는 것을 포함한다. 하나의 대표적인 기법은 소정의 네트워크 노드가 적어도 사용자 데이터를 저장하는 네트워크 서비스에서의 사용자 데이터의 위치, 및 사용자 데이터에 액세스하기 위한 암호화 키를 갖는 암호화된 시드를 수신하는 것을 포함한다. 이 시드는 네트워크 서비스로의 사용자 로그인 시도에 대한 응답으로 수신된다. 사용자 데이터는 적어도 수신된 암호화 키를 사용하여 위치로부터 요구된다. 방법은 또한 네트워크 노드가 네트워크 서비스의 위치보다 사용자의 위치에 물리적으로 더 가까운 경우, 그 네트워크 노드에서 사용자 데이터를 수신 및 저장하는 것을 포함한다. 사용자가 성공적으로 인증되면, 사용자 액세스는 네트워크 서비스보다는 네트워크 노드에 저장된 사용자 데이터에 제공된다.

Description

인증된 콘텐츠를 콘텐츠 소비자로 이동시키는 기법{MIGRATING AUTHENTICATED CONTENT TOWARDS CONTENT CONSUMER}
네트워크를 통해 입수가능한 디지털 데이터의 양은 막대하다. 정보는 피어 투 피어 네트워크 및 근거리 네트워크에서부터 인터넷과 같은 글로벌 네트워크에 이르는 네트워크들을 통해 획득될 수 있다. 임의의 사용자에게 이용가능하도록 의도된 데이터와, 전자 메일(이메일)과 같은 보다 개인적인 데이터, 및 백업 데이터 등을 포함한 다양한 유형의 정보가 획득될 수 있다. 여러 경우, 사용자들은 자신들이 소정의 콘텐츠를 보고 및/또는 액세스할 권한이 있음을 증명하기 위해 크리덴셜(credentials)을 제출할 필요가 있다. 예를 들어, 사용자는 정보를 보거나 다운로드하기 위해 웹 사이트에 로그온하거나, 이메일을 수신하기 위해 메일 서버에 로그온하는 등이 요구될 수 있다.
액세스가능 디지털 정보의 편재로 인해, 사람들은 중단없는 서비스와 겉보기에 즉각적인 액세스 속도를 기대할 수 있게 되었다. 증가된 통신 속도에 기여하는 기술 진보에 더하여, 선행 기술들은 또한 네트워크 통신 속도 향상에 중요한 역할을 할 수 있다. 예를 들어, 프리 페칭(pre-fetching) 및 다른 선행 기술은 사용자가 다음에 요청할 수 있는 것에 대한 합리적인 가정을 행할 수 있다. 이러한 결정은 사용자가 현재 어떤 콘텐츠를 소비하고 있는지와, 알려진 사용자 선호와, 과거 사용자의 행동 및/또는 임의의 수의 기타 요인 등을 염두에 두고 행해 질 수 있다.
이들 및 다른 기술들이 대체로 가능한 이유는 정보 통신과 관련된 특정 사용자가 알려져 있기 때문이다. 예를 들어, 자신의 이메일을 요청하는 특정 사용자가 메일 서버 또는 다른 메일 전송 에이전트에게 알려져 있는 경우, 이메일 메시지 및 메시지 리스트 페이지가 프리-페치될 수 있다. 특정 사용자의 전형적인 과거 행동은 사용자가 실제로 곧 소정의 정보를 요청할 것이라는 확률에 기초하여, 신속한 사용자 액세스를 위해 그 소정의 정보가 보관 저장소(holding storage)에 송신되도록 조장할 수 있다. 사용자가 알지 못하는 백엔드 및/또는 송신 지연이 발생하더라도, 이러한 기술은 데이터 및 다른 정보 요청이 거의 순간적으로 나타나도록 할 수 있다.
그러나, 이들 및 다른 기술은 사용자와 연관된 정보 또는 어떤 경우에는 사용자에게 고유한 정보에 기초할 수 있다. 사용자의 신원이 아직 알려져 있지 않거나, 세션이 수립되지 않은 등의 경우에는, 이러한 기술은 이용가능하지 않을 수 있다. 예를 들어, 사용자가 웹 기반 서비스에 로그온하는 동안, 세션이 아직 수립되지 않았고, 사용자와 연관된 아이덴티티 및/또는 속성은 아직 서비스에 알려져 있지 않다. 인증 또는 다른 초기 동작이 발생하는 동안, 사용자는 그저 지연을 참고, 절차가 완료될 때까지 기다릴 수 밖에 없다. 인증 요청 및 기타 초기 통신은 다수의 정보 교환을 포함할 수 있다. 이러한 교환을 위한 홉(hop) 및 왕복 횟수는 사용자에게 바람직하지 않은 "타임 투 글래스(time to glass)"(TTG) 경험을 야기할 수 있다.
본 발명에 따른 기법들은 네트워크 상의 인증된 콘텐츠를 콘텐츠의 소비자로 이동(migrate)시키는 것을 포함한다. 하나의 대표적인 기법은 소정의 네트워크 노드가 적어도 사용자 데이터를 저장하는 네트워크 서비스에서의 사용자 데이터의 위치, 및 사용자 데이터에 액세스하기 위한 암호화 키를 갖는 암호화된 시드를 수신하는 것을 포함한다. 이 시드는 네트워크 서비스로의 사용자 로그인 시도에 대한 응답으로 수신된다. 사용자 데이터는 적어도 수신된 암호화 키를 사용하여 위치로부터 요구된다. 방법은 또한 네트워크 노드가 네트워크 서비스의 위치보다 사용자의 위치에 물리적으로 더 가까운 경우, 그 네트워크 노드에서 사용자 데이터를 수신 및 저장하는 것을 포함한다. 사용자가 성공적으로 인증되면, 사용자 액세스는 네트워크 서비스보다는 네트워크 노드에 저장된 사용자 데이터에 제공된다.
이러한 기법의 또 다른 특정 구현예에서, 인증 기반 콘텐츠를 저장하도록 구성된 제1 저장부를 제1 위치에 포함하는 시스템이 제공된다. 제2 위치에서의 제2 저장부가 제공되는데, 이 제2 위치는 제1 위치보다는 인증 기반 콘텐츠의 요청자에 더 물리적으로 가깝다. 제2 위치에 있는 프로세서는 요청자가 제1 위치에서 호스팅되는 서비스에 로그인을 시도하는 동안 제2 저장부에 저장하기 위해 제1 저장부로부터 인증 기반 콘텐츠의 적어도 일부를 요청하도록 구성된다. 프로세서는 예를 들어 요청자에 의한 제2 저장부로부터의 인증 기반 콘텐츠에 대한 보안 액세스를 용이하게 하도록 구성된다.
또 다른 대표적인 실시예는 방법, 또는 기능을 수행하도록 프로세서에 의해 실행 가능한 명령어들을 저장하는 컴퓨터 판독가능 매체와 관련된다. 이 방법은 웹 기반 이메일 서비스에 대한 사용자 액세스 요청을 수신하는 단계, 및 이에 응답하여, 사용자 식별자, 이메일 서비스에서의 사용자의 이메일 데이터의 저장 위치, 및 사용자의 이메일 데이터에 액세스하기 위한 암호화 키를 포함하는 암호화된 시드를 생성하는 단계를 포함한다. 사용자는 로그인 페이지 및 로그인 페이지 내의 이미지 태그를 제공하는 인증 모듈로 리디렉션되는데, 이미지 태그는 암호화된 시드 및 콘텐츠 분배 네트워크의 에지 서버의 주소를 포함한다. 적어도 암호화 키에 의해 식별된 사용자의 이메일 데이터의 제1 부분에 대한 요청은 에지 서버로부터 수신된다. 사용자의 이메일 데이터의 요청된 제1 부분은 에지 서버로 전달되고, 사용자의 이메일 데이터의 제1 부분은 이메일 서비스로부터 보다는 에지 서버로부터 사용자에게 제공될 수 있다.
본 요약은 이하 발명의 상세한 설명에서 보다 자세히 기술될 개념들 중 선택된 것들을 단순화된 형식으로 소개하기 위해 제공되는 것이다. 본 요약은 청구대상의 주된 사항 또는 핵심 사항을 밝히기 위한 것이 아니며, 청구대상의 범위를 한정하기 위한 것도 아니다.
도 1a는 본 명세서에 기재된 기술이 구현될 수 있는 대표적인 방식을 보여주는 대표적인 네트워킹 환경을 나타낸다.
도 1b는 지연을 줄이고 타임 투 글래스를 향상시키기 위해 사용자 특정 정보가 사용자에게 가능한 가깝게 사용될 수 있도록 하는데 사용될 수 있는 상호작용의 보다 구체적인 예를 도시한다.
도 2는 사용자 특정 정보를 획득하는 것과 연관된 지연을 감소시키기 위한 대표적인 시스템 레벨의 예를 도시한다.
도 3은 웹 기반 이메일 프로그램의 로그인 프로세스와 연관된 지연을 감소시키기 위한 대표적인 예를 도시한다.
도 4는 네트워크 노드가 네트워크 서비스에 대한 초기 액세스 동안 사용자가 경험하는 대기 시간을 감소시키기 위한 캐싱 요소로 사용될 수 있는 대표적인 방법을 나타내는 흐름도이다.
도 5는 사용자가 사용자 데이터를 제공하는 서비스에 로그온하는 동안 사용자 데이터를 검색하고, 사용자가 그 사용자 데이터를 보다 신속하게 입수할 수 있는 위치에 사용자 데이터를 캐싱하는 시스템의 블록도이다.
도 6은 이메일 시스템보다 사용자에게 지리적으로 근접한 CDN의 에지 서버로 사용자의 이메일 데이터의 적어도 일부를 이동시키는 방식의 하나의 대표적인 실시 예의 흐름도이다.
도 7은 본 명세서에 설명된 원리들이 구현될 수 있는 대표적인 컴퓨팅 시스템을 도시한다.
이하의 설명에서, 대표적인 구현 예를 묘사하는 첨부 도면을 참조한다. 구조적 및/또는 동작 변경이 본 개시물의 범위를 벗어나지 않고 이루어질 수 있으므로, 다른 실시예 및 구현이 이용될 수 있다는 것을 이해해야한다.
전술한 바와 같이, 네트워크 액세스 지연은 종종 프리 페칭 또는 다른 선행 기술을 사용함으로써 감소될 수 있다. 이러한 기술은 사용자가 무엇을 요구할 수 있는지에 대한 합리적인 가정을 포함하고, 사용자에 의해 요청될 가능성이 있는 정보를 획득하기 위한 동작들이 개시될 수 있다. 그러나, 이러한 기술은 사용자의 신원이 아직 알려져 있지 않거나, 세션이 아직 확립되지 않거나, 또는 몇몇 다른 초기 활동과 연결되지 않은 경우 효과적이지 않다. 예를 들어, 사용자가 "로그인"할 때까지 또는 애플리케이션이나 서비스와 관련하여 인증될 때까지, 어떠한 인증된 콘텐츠도 사용자에게 제시될 수 없는데, 그 이유는 사용자는 아직 그것을 볼 수 있도록 승인되지 않았기 때문이다. 이러한 인증이나 다른 초기 프로세스가 진행되는 동안, 사용자는 관련 내용이 제시될 때까지 바람직하지 않은 지연을 경험할 수 있다.
본 발명은 일반적으로 콘텐츠가 정상적으로 저장되어있는 위치보다 사용자에게 물리적으로 가까운 위치에서 인증 기반 콘텐츠를 콘텐츠 소비자, 또는 "사용자"에게 적어도 일시적으로 사용 가능하게 하는 것에 관한 것이다. 네트워크 애플리케이션/서비스는 서비스에 액세스하는 사용자의 요구에 응답하여 암호화된 토큰을 생성할 수 있다. 이 토큰은 리디렉션된 인증 모듈 등을 통해 사용자에게 직접 제공될 수 있다. 토큰을 사용하면, 사용자는 네트워크 서비스보다 가까운 곳에 있는 네트워크 노드에 요청을 할 수 있는데, 이 요청은 보다 가까운 네트워크 노드가 더 먼 네트워크 서비스로부터 적어도 인증 기반 콘텐츠의 제1 제시가능 부분을 획득하도록 한다. 보다 가까운 네트워크 노드에 인증 기반 콘텐츠를 요청 및 제공하는 이러한 트랜잭션은 사용자가 네트워크 서비스에 로그인되는 동안 수행될 수 있어, 전송 지연은 그렇지 않으면 사용자가 콘텐츠를 제공받을 것으로 기대하지 않았을 시간에 발생할 수 있다. 사용자가 최종적으로 인증되면, 보다 가까운 네트워크 노드에 캐싱된 인증 기반 콘텐츠의 제1 제시가능 부분은 신속하게 사용자에게 제공될 수 있다. TTG는 적어도 사용자 데이터가 병렬 취득되고, 사용자가 최종적으로 인증되는 경우 데이터가 보다 근접해 있는 것에 의해 개선된다.
이제 도 1a를 참조하면, 본 명세서에 기재된 기술이 구현될 수 있는 대표적인 방식을 도시하는 대표적인 네트워킹 환경이 설명된다. 도시된 예에서, 네트워크 기반 애플리케이션, 서비스, 또는 다른 네트워크 엔티티는 데이터 센터(100A, 100B, 100n 등)로 도시된 네트워크상의 여러 지점에서 분산된 데이터를 가질 수 있다. 예를 위해, 이러한 데이터 센터(100A, 100B, 100n)는 네트워크 기반 서비스와 연관된 데이터 저장 엔티티를 포함할 수 있다. 데이터 소스 노드-A(102A), 데이터 소스 노드-B(102B), 데이터 소스 노드-n(102n)와 같은 다른 네트워크 엔티티는 데이터 센터(100A, 100B, 100n)와 동일하거나 상이한 네트워크와 연관될 수 있다. 일 예에서, 데이터 소스(102A, 102B, 102n)는 예를 들어 콘텐츠 분배 네트워크(CDN)를 통해 디지털 콘텐츠를 제공하는 콘텐츠 저장 엔티티를 나타낼 수 있다. 다른 예에서, 적어도 데이터 소스 노드-A(102A)는 데이터 센터(100A, 100B, 100n)에 대한 제3자 네트워크 노드이며, 데이터 센터(100A-100N)에서 행해진 데이터 보안 조치는 일반적으로 데이터 소스 노드(102A-102n)로 이월되지 않는다.
사용자(104)는 도시된 네트워크 엔티티 중 임의의 하나 이상과 상호작용할 수 있다. 본원에 기술된 대표적인 기술은 네트워크 엔티티 중 하나 이상과의 초기 상호작용시 사용자(104)가 겪게 되는 지연을 감소시킨다. 예를 들어, 초기의 상호 작용은 사용자가 네트워크 서비스, 데이터 등에 대한 액세스를 얻기 위해 사용자 특정 크리덴셜을 입력하는 로그인 프로세스일 수 있다.
보다 구체적인 예에서, 상호작용 라인(106)에 의해 도시된 바와 같이, 사용자(104)는 로그인 프로세스를 개시한 것으로 간주된다. 본 명세서에서 설명된 실시예는 사용자의 로그인 개시로부터의 타임 투 글래스(TTG)가 사용자 관련 정보를 원래의 저장 위치보다 사용자에게 더 가까운 네트워크 엔티티에 캐싱 또는 저장함으로써 감소되는 방식을 설명한다. 예를 들어, 사용자(104)가 라인(106)에 도시된 로그인을 개시할 때, 사용자(104)는 이메일 주소 및/또는 사용자 식별자(사용자 ID), 패스워드 등을 입력할 수 있다. 사용자(104)에 의해 제출되면, 사용자는 통상적으로 크리덴셀이 인증될 때까지 기다리고, 애플리케이션/서비스는 궁극적으로 사용자(104)에게 제공된다. 본원에 기재된 기술에 따라, 사용자의 대기 시간은 액세스되는 애플리케이션/서비스의 첫 번째 페이지(들)를 사용자에게 물리적으로 더 가까운 노드에 저장함으로써 감소되고, 그에 따라 그것은 로그인 프로세스가 완료되었을 때 사용자(104)에게 보다 빠르게 제공될 수 있다.
따라서, 일반적으로 사용자에게 개인적인 콘텐츠 또는 데이터는 사용자가 로그인하는 동안 저장 영역으로부터 검색될 수 있거나 또는 초기의 상호작용에서 점유될 수 있다. 이들 병렬 동작 동안에, 콘텐츠는 사용자의 성공적인 인증으로 귀결되는 로그인 프로세스를 예상하여, 사용자에게 가까운 지리적 위치로 이동될 수 있다. 달리 명시하지 않는 한, "병렬로", "동시에" 등으로 발생하는 이벤트들에 대한 참조는 이러한 이벤트들이 시간적으로 정확하게 겹친다는 것을 의미한다기 보다는 그들이 적어도 어느 정도 겹친다는 것을 주목해야한다.
도 1a의 예에서, 상호작용 라인(106)에 의해 도시된 바와 같이, 사용자 (104)가 로그인 프로세스를 개시하면 사용자 데이터 캐싱 동작이 개시된다. 사용자 데이터 캐싱 동작은 점선(108)으로 도시되어 있는데, 사용자 식별 정보는 이 예에서 데이터 센터-B(100B)에 안전하게 제공된다. 로그인 절차가 완료되면 사용자 (104)에게 제시될 수 있는 이러한 초기 웹 콘텐츠와 같은 데이터 센터-B(100B)에 저장된 사용자 특정 정보를 식별하는 데 사용자 식별 정보가 사용된다. 사용자 특정 정보는 보다 먼 데이터 센터-B(100B)로부터, 데이터 센터-B(100B)에 액세스가능한 데이터 소스 노드-A(102A) 또는 다른 노드로 제공될 수 있다. 사용자(104)가 상호작용 라인(110)에 의해 도시된 바와 같이 로그인을 완료한 경우, 사용자 특정 정보는 적어도 부분적으로는 데이터 소스 노드-A(102A)에 더 가깝기 때문에 보다 신속하게 사용자(104)에게 제공될 수 있다.
도 1b는 지연을 감소시키고 TTG를 향상시키기 위해 사용자 특정 정보를 사용자에게 보다 가깝게 이용가능하도록 하는데 사용될 수 있는 상호작용의 보다 구체적인 예를 나타낸다. 이 예는 도 1a에서 참조한 항목들을 포함하며, 따라서 곳에 따라 유사한 참조 번호를 사용한다. 이 예에서, 라인 A로 도시된 바와 같이, 사용자(104)는 데이터 센터-A(100A)와 상호작용하기 위한 웹 사이트 또는 다른 네트워크 노드에 액세스하는 것으로 가정한다. 이하의 보다 구체적인 실시예에서 설명된 방식으로, 사용자(104)와 연관된 브라우저(미도시)는 궁극적으로 사용자 특정 정보가 저장되어있는 데이터 센터-B(100B)보다 사용자(104)에 가까운 노드로 보안 정보를 제공한다. 데이터 소스 노드-A(102A)는 사용자(104)에 "가까운 노드"를 나타내고, 파선 B는 보안 정보의 전송을 나타낸다.
파선 B에 의해 도시된 보안 정보를 사용하여, 파선 C에 의해 도시된 바와 같이 노드-A(102A)은 데이터 센터-B(100B)에 저장된 사용자 특정 정보에 대한 요청을 행한다. 사용자 특정 정보는 데이터 센터-B(100B)에서 데이터 소스 노드-A(102)로 제공되어 적어도 임시로 저장된다. 사용자의 로그인이 궁극적으로 성공하면, (인증 노드를 포함하거나 그와 연관될 수 있는) 데이터 센터-A(100A)는 라인 E에 의해 도시되어 있는 바와 같이 사용자(104)에 대한 페이지(들)를 생성할 수 있고, 그에 따라 라인 F와 G에 의해 도시된 바와 같이, 사용자(104)의 브라우저가 데이터 소스 노드-A(102A)에 일시적으로 저장된 정보를 액세스할 수 있게 된다.
따라서, 본 명세서에서 설명된 기술은 특히 적어도 하나의 사용자에 특정한 인증 콘텐츠가 보다 멀리 있는 데이터 센터로부터 네트워크의 에지(edge)로 향해 푸시되게 할 수 있다. 예를 들어, 인증 또는 "로그인" 절차는 인증 데이터를 사용자에게 가깝게 푸싱함으로써 가속화될 수 있다. 일 실시예에서, 데이터는 일반적으로 데이터를 입수하기 위해 인증 관련 데이터를 저장하지 않는 서버에 푸시된다. 예를 들어, 인증된 컨텐츠는 인증되지 않으면 임의의 일반적인 요청자에게 분배되지 않을 콘텐츠, 예를 들어 사용자의 크리덴셜이 인증된 경우 사용자에게 제시될 수 있는 웹 콘텐츠의 첫 번째 페이지를 나타낼 수 있다. 보다 구체적인 예에서, 인증된 콘텐츠는 사용자의 홈 페이지, 웹 기반 이메일 수신함 등의 첫 번째 페이지일 수 있다. 하나의 실시예에서, 인증된 콘텐츠는 클라이언트 장치에 보다 근접한 에지 서버 또는 다른 중개 서버와 같은 보조 서버(들)에서 취득되고 클라이언트 장치에 저장되는 것보다 보조 서버(들)에 적어도 일시적으로 저장된다. 인증된 콘텐츠는 인증 크리덴셜을 입력하는 방식이 사용자에게 제시되는 동안 가까운 서버에 캐싱/저장을 위해 획득될 수 있다. 이러한 방식으로, 인증된 콘텐츠를 캐싱하는 것과 사용자의 크리덴셜을 입력하는 것 사이의 시간적 중첩은 전반적인 로그인 과정에서 시간을 절약한다. 보다 구체적으로, 사용자가 자신의 크리덴셜을 입력 완료한 경우, 인증된 콘텐츠는 먼 노드로부터 획득될 필요는 없고, 오히려 CDN 에지 서버와 같은 사용자에게 보다 가까운 노드에서 쉽게 입수가능할 것이다.
도 2는 사용자 특정 정보를 획득하는 것과 관련된 지연을 감소시키기 위한 또 다른 대표적인 예를 나타낸다. 도 2에의 예에서, 네트워크를 통해 제공되는 서비스는 사용자가 자신의 이메일에 액세스하기 위해 로그온할 때 TTG가 감소되는 인터넷 기반 전자 메일(이메일) 서비스인 것으로 가정한다.
도 2의 예에서, 사용자가 이메일 및/또는 다른 네트워크 서비스에 액세스할 때 사용할 수 있는 다수의 대표적인 장치 또는 디바이스(202)가 도시되어 있다. 장치(202)는 예시 목적으로 도시되고, 완전한 목록을 나타내지는 않는다. 본원에 설명된 기술은 하나 이상의 네트워크를 통해 서비스 및/또는 데이터와 통신 또는 액세스할 수 있는 임의의 장치에 적용 가능하다. 장치(202)는 독립형 컴퓨팅 장치, 휴대용 컴퓨팅 및/또는 통신 장치, 가전 제품이나 자동차와 같은 다른 제품에 내장된 장치일 수 있다. 대표적인 장치(202)는 데스크탑 컴퓨터(202-1), 휴대용 컴퓨터(예컨대, 노트북)(202-2), 이동 전화(202-3), 개인 휴대 정보 단말기(202-4), 또는 네트워크(들)를 통해 통신할 수 있는 다른 장치(202-5)를 포함한다. 장치(202)에 의해 이용되는 적어도 하나의 네트워크 서비스가 이메일인 경우, 장치 (202)는 웹 기반 이메일, 로컬 이메일 클라이언트(206) 등에 액세스하기 위해 브라우저(204)와 같은 소프트웨어를 포함할 수 있다.
도 2의 대표적인 실시예는 네트워크(214)를 통해 이용가능한 하나 이상의 데이터 센터(208, 210, 212)를 포함한다. 데이터 센터(208, 210, 212)는 세계적으로 서비스되는 지역 주위에 지리적으로 분포될 수 있다. 일 실시예에서, 데이터 센터는 데이터 센터(208)에 도시된 클러스터(216)와 같은 클러스터를 포함한다. 장치(202)의 사용자에 대한 이메일 및/또는 다른 데이터는 특정 클러스터(216)와 데이터 센터(208)에 저장될 수 있다. 따라서, 사용자가 웹 기반 이메일 애플리케이션(215)에 도달하기 위해 유니폼 리소스 로케이터(URL) 또는 다른 주소에 액세스하는 경우, 사용자는 특정 데이터 센터(208)와 상호작용할 수 있다.
일 실시예에서, 사용자가 이메일 애플리케이션(215)으로 향할 때, 사용자의 브라우저(204)는 데이터 센터(208)와 연관된 또는 그와 별개인 인증 모듈(217)로 리디렉션된다. 인증 모듈 (217)은 이메일 주소 및/또는 사용자 이름, 암호 등과 같은 사용자 크리덴셜의 사용자 입력을 용이하게 한다. 그 정보가 인증 모듈(217)에 의해 확인된 경우 브라우저(204)는 이메일 애플리케이션(215)으로 리디렉션될 수 있다. 본 명세서에서 기술된 기법에 따르면, 장치(202)에 제공될 사용자의 이메일 수신함을 보여주는 화면과 같은 웹 콘텐츠는 웹 콘텐츠/데이터를 제공하는 데이터 센터(208)보다 지리적으로 장치(202)에 더 가까운 네트워크 엔티티에서 캐싱된다. 콘텐츠는 사용자의 크리덴셜이 입력 및/또는 검증되는 경우, 에지 서버 (218)와 같은, 보다 근접한 네트워크 엔티티로 획득 및 이동될 수 있다.
예를 들어, 네트워크(214)는 하나 이상의 에지 서버(218, 220), 및 일부 경우에 이메일 시스템, CDN 및/또는 기타 시스템의 임의의 일부와 연관될 수 있는 하나 이상의 추가적인 중개 서버(222, 224, 226)를 포함하는 콘텐츠 배포 네트워크 (CDN)를 포함할 수 있다. 장치(202)의 사용자는 이메일 애플리케이션(215)에 의해 제공된 서비스에 대한 브라우저(204)를 지정하고 로그인 과정을 시작할 수 있다. 이 시간 동안, 사용자 특정 데이터는 데이터 센터(208)에서의 적절한 클러스터(216)로부터 CDN 에지 서버(218)와 같은, 장치(202)에 보다 가까운 네트워크 노드로 이동될 수 있다. 일반적인 이미지, 자바 스크립트 코드, 캐스케이딩 스타일 시트(CCS) 등과 같이 인증을 요구하지 않는 콘텐츠를 저장하는데 CDN 에지 서버(218)가 일반적으로 이용될 수 있지만, 본 명세서에서 설명된 기술들은 인증 기반의 사용자 특정 데이터를 안전하게 캐싱하기 위해 인접한 에지 서버(218)를 이용한다. 적절한 보안 조치를 사용함으로써, 사용자 특정 데이터는 인증되지 않은 액세스로부터 보호받으면서 에지 서버(218)에 캐싱될 수 있다.
일 실시예에서, 사용자 특정 데이터는 사용자의 개인 이메일 수신함과 같은, 사용자에게 제시될 이메일 서비스의 첫 페이지를 포함한다. 이메일 받은 수신함 또는 기타 콘텐츠는 일반적으로 각 사용자에게 고유하므로 사용자의 장치(202)에 표시되는 첫 번째 페이지는 사용자마다 다를 것이다. 사용자의 크리덴셜이 검증된 경우, 브라우저(204)는 물리적으로 인접한 에지 서버(218)로부터 캐싱된 사용자 특정 콘텐츠를 획득할 수 있거나, 획득하도록 지시받을 수 있다. 이메일 콘텐츠는 메일 서버에 의해 관리되는 브라우저(204)를 통해 제공되고 로컬 이메일 클라이언트(206)를 통해 제공될 수 있다. 장치(202)에 물리적으로 가까운 사용자 특정 콘텐츠를 캐싱함으로써, 요청된 콘텐츠의 첫 페이지를 제시하는 소비 시간은 감소될 수 있다. 사용자의 개인 정보를 유지하면서 보다 빠른 TTG를 가능하게 하기 위해 사용자 특정 데이터를 안전하게 하는 방식은 이하에서 설명된다.
도 3은 웹 기반 이메일 프로그램의 로그인 프로세스와 연관된 지연을 감소시키기 위한 대표적인 예를 나타낸다. 예시된 실시예에서, 이메일 시스템(300)은 하나 이상의 데이터 센터(302) 사이에 분포되는 있는 것으로 가정한다. 본 명세서에 설명된 기술과 관련하여 다양한 구현이 가능하지만, 도시된 실시예는 복수의 클러스터(304, 306, 308)를 포함하는데, 이들 각 클러스터는 복수의 사용자를 호스팅하고, 대부분의 경우 많은 수의 사용자를 호스팅한다. 클러스터(308)와 같은 각각의 클러스터는, 하나 이상의 백엔드 서버(310, 312) 및 하나 이상의 프론트 엔드 서버 (314, 316)을 포함하는 일체형 서버 집합(self-contained set of servers)을 나타낼 수 있다. 프론트 엔드 서버(314, 316)는 클라이언트 장치(350)와 같은 외부 장치와 인터페이싱하고, 페이지 포맷, 바이러스 확인 등의 기능을 수행할 수 있다. 프론트 엔드 서버(314, 316)는 이메일 시스템(300)을 이용하는 클라이언트 장치(350)와의 첫 번째 접촉에 이용될 수 있는 프론트 도어(FD) 서버(318,320)를 포함할 수 있다. FD 서버(318,320)는 클라이언트 장치(350) 대신에 백엔드 서버(310,3112)에 요청을 행할 수 있다.
특히, 백엔드 서버 (310,312)는 사용자의 이메일(324) 및 다른 사용자 특정 콘텐츠를 포함하여, 사용자 데이터를 저장하는 데이터베이스 및/또는 다른 저장부(322)를 제공할 수 있다. 일 실시예에서, 임의의 하나 이상의 데이터 센터(302)에서의 저장부(322)에 저장된 사용자 특정 콘텐츠는 이메일 서비스의 홈페이지, 이메일 서비스 받은 편지함 등과 같이, 로그인 성공시에 사용자에게 제공될 하나 이상의 웹 페이지를 포함한다. 본 명세서에서 설명된 기술은 복수의 서버 간의 업무 분배, 또는 여러 서버가 있는지 여부에 관계없이 적용될 수 있기 때문에, 대표적인 프론트 엔드 서버(318, 320) 및 백엔드 서버(310,312) 사이에 업무의 특정 분포는 예시 목적으로만 설명된다.
전술한 바와 같이, 도 3의 예는 이메일 시스템(300)의 맥락에서 설명된다. 이 실시예에서, 클라이언트 장치(350)는 앞서 이메일 시스템(300)과 통신하고, 적어도 하나의 쿠키(352)가 클라이언트 장치(350)에 저장되어있는 것으로 가정한다. 쿠키(352)는 예를 들어, 사용자를 식별하는 데이터일 수 있고, 사용자 데이터가 있는 곳을 제안할 수 있다. 예를 들어, 위치 쿠키(352)는 사용자의 이메일 데이터가 상주하는 클러스터(304, 306, 308 등) 및 아마도 데이터 센터(302)를 식별하는 데이터를 포함하는 클라이언트 장치(350)에 저장될 수 있다.
이하에서 더 상세히 설명되는 바와 같이, 그러한 위치 쿠키(352)는 암호화 토큰 또는 "시드"가 해당 사용자에 대해 생성될 수 있도록 사용자를 충분히 식별하는 정보를 제공할 수 있다. 다른 식별 정보가 사용될 수 있기 때문에, 위치 쿠키(352)는 본 명세서에 설명된 기술과 관련하여 요구되지 않는다. 예를 들면, 이메일 주소는 사용자 특정 콘텐츠의 검색 및 보다 가까운 캐싱을 개시하기 위한 사용자를 충분히 식별할 수 있다. 그러나, 쿠키(352) 또는 다른 저장된 정보의 사용은 사용자가 먼저 이메일 주소 또는 다른 식별 정보를 제출하는 경우보다 빠르게 시드의 생성 및 사용자 특정 콘텐츠의 궁극적 캐싱을 가능하게 할 수 있다. 또한, 일 실시예에서, 적어도 사용자의 이메일 데이터의 위치(예컨대, 클러스터(304, 306, 308 등)를 저장하는 위치 쿠키(352)의 사용은 사용자의 데이터가 동일한 클러스터에 남아 있거나, 적어도 마지막 이메일 액세스 이후 변경되지 않은 것으로 가정한다. 이러한 방식으로, 위치 쿠키(352)는 신속하게 사용자의 이메일 데이터가 저장되어 있는 것으로 알려진 위치를 제공할 수 있다.
다른 실시예에서, 사용자를 식별하는 다른 정보는 사용자 데이터의 위치를 식별하는 사용될 수 있으며, 몇몇 경우에는 사용자의 개인 이메일 데이터를 찾는 추가 단계를 수반할 수 있다. 몇몇 경우 사용자 데이터의 정확한 위치는 직접적인 위치 정보(예를 들어, 클러스터 주소)보다는 다른 식별 정보의 도움을 받아 찾아질 수 있지만, 다양한 실시예들은 사용자 식별 정보 및/또는 사용자 데이터의 위치 정보의 다양한 레벨의 세부사항을 포함하며, 이들은 모두는 본 명세서에서의 설명과 연계하여 실행가능하다. 따라서, 도 3의 실시예는 사용자뿐만 아니라 사용자의 저장된 이메일 데이터 및 다른 사용자 특정 콘텐츠의 위치를 식별하는 위치 쿠키 (352)와 관련하여 설명되지만, 다른 식별 정보는 대안적으로 본 명세서에 기재된 기술로부터 벗어남 없이 사용될 수 있다.
일 실시예에서, 위치 쿠키(352) 또는 기타 사용자 식별 정보에 응답하여, 데이터 센터(302)에서 생성된 시드(358A)는 암호화된 토큰의 형태의 사전승인 번들을 나타낸다. 이 암호화된 토큰 또는 "시드"는 고유 이메일 시스템(300) 및 인증 모듈 (356)에 대해 각각의 사용자를 고유하게 식별하는, 클라이언트 식별자(CID)로 지칭 될 수 있는 값과 같은 정보를 포함할 수 있다. 전술한 바와 같이, 시드는 또한 사용자의 이메일의 위치 및 관련 데이터, 예를 들어 사용자의 이메일 클러스터 이름, 주소 또는 다른 클러스터 식별자를 포함할 수 있다. 일 실시예에서, 암호화된 안전한 난수는 본 명세서에서 사전승인 키 또는 시드 GUID(globally unique identifier)로 지칭 될 수 있는 시드의 일부로서 제공된다. 시드 GUID는 사용자의 이메일 수신함과 같은 식별된 클러스터에서 CID에 의해 식별된 사용자에 대해 적합한 데이터를 액세스하는 키로서 사용될 수 있다.
특히, 클라이언트 장치(350)는 전자 메일 시스템(300)에 위치 쿠키(352) 또는 기타 사용자 식별 정보를 제공 수 있다. 일 실시 예에서, 위치 쿠키(352)는 적어도 사용자의 식별 및 사용자의 데이터 클러스터의 위치를 포함하는 식별 사용자 식별 쿠키(UIC)의 형태를 갖는다. 위치 쿠키(352)는 암호화될 수 있다. 프론트 도어 서버(320)가 위치 쿠키(352)를 수신하고, 하나의 실시예에서 리다이렉트 메시지(354)뿐만 아니라 위치 쿠키(352)에서의 사용자 정보로부터 생성된 시드(358A)로 인증 모듈(356)에 응답한다. 이 예에서, 시드(358A)는 본 명세서에서 트리플렛(triplet)으로 지칭되는 적어도 클러스터, 시드 GUID 및 CID를 포함하여 암호화 된 구조를 나타낸다.
클라이언트 장치(350)의 브라우저는 응답시 로그인 페이지(360)를 제공하는 인증 모듈(356)로의 리다이렉트 메시지(354)의 링크를 따른다. 시드(358B)는 후속 사용을 위해 인증 모듈(356)에 제공될 수 있다. 하나의 실시 예에 따르면, 로그인 페이지(360)는 특히 이미지 태그와 같은 콘텐츠 태그를 포함한다. 콘텐츠 태그는 로그인 페이지(360) 상에서 인증 모듈(356)에 의해 이메일 시스템 (300)에 대해 렌더링되는 맞춤형 콘텐츠의 일부로 제공된다. 이러한 이미지 태그의 예는 다음과 같다.
Figure 112014051054138-pct00001
예 1
이 예에서, "CDN"은 콘텐츠 배포 네트워크 에지 서버(390)를 나타내고, 따라서 CDN.emailname.com은 이메일 시스템(emailname.com)(300)과 협력하는 CDN 에지 서버(390)를 나타내다.
그 결과, 클라이언트 장치(350)의 사용자가 자신의 크리덴셜을 입력할 수 있는 시간 동안, 클라이언트 장치(350)의 브라우저는 에지 서버(390)의 이 URL에 대한 콘텐츠 요청을 동시에 행할 수 있다. 콘텐츠 요청(362)은 사용자 특정 데이터의 캐싱을 시작하는 호출을 트리거하는 에지 서버(390)를 가리킨다. 에지 서버(390)는 이메일 시스템(300)과 협력할 수 있는 클라이언트 장치(350)에 물리적으로 가까운 임의의 네트워크 노드일 수 있음을 주목해야한다. 예시된 실시예에서, 이 네트워크 노드는 그럴 필요는 없지만 CDN 에지 서버(390)로 표현된다. 그러나, 일 실시예에서, 사용자 특정 콘텐츠가 캐싱되어 있는 네트워크 노드는 달리 콘텐츠를 수신하기 위한 인증 요구를 포함하지 않을 수도 있는 네트워크 노드이다.
전술한 실시예 1의 URL을 사용하여, 클라이언트 장치(350)의 브라우저는 암호화된 시드를 이용하여 CDN.emailname.com에서 이미지 태그를 위한 콘텐츠 요청(362)을 행할 수 있다. 아래에 더욱 상세히 설명되는 바와 같이, 콘텐츠 요청 (362)은 에지 서버(390)로 암호화된 시드를 제공하는 방식으로 역할을 하여, 그것은 이어서 사용자 특정 콘텐츠(예컨대, 이메일 서비스의 첫 번째 웹 페이지)를 획득하고 캐싱할 수 있다.
로그인 페이지(360)는 에지 서버(390)에 대한 요청을 트리거하기 위해 이미지 또는 기타 콘텐츠 태그보다는 스크립트 언어 또는 다른 프로그래밍을 포함할 수 있다는 것을 주목해야한다. 이미지 태그 및 기타 콘텐츠 태그의 사용은 에지 서버(390) 또는 다른 중간 노드에서 콘텐츠를 저장하는 것을 돕는 하나의 방법을 나타낸다. 그러나, 다른 태그 또는 스크립트 등을 사용하여 유사한 결과가 획득될 수 있다. 예를 들어, 콘텐츠 태그의 사용은 AJAX 호출(비동기 JAVASCRIPT™ 및 XML)로 대체될 수 있다. 일 실시예에서, 이러한 호출은 또한 원하는 경우 보다 큰 분량의 인증 정보가 포스팅되는 것을 허용할 수 있는데, 그 이유는 몇몇 이미지 URL이 문자가 제한된 요청 메소드로 구현될 수 있기 때문이다. 따라서, 사용자 콘텐츠(368B)는 예를 들어 IMG, IFRAME, SCRIPT 또는 기타 유사한 HTML 태그 또는 다른 프로그래밍 태그를 사용하여 암호된 시드 및 다른 관련 정보를 전달함으로써, 또는 XML HTTP 요청과 같은 장치와의 스크립트를 사용함으로써 에지 서버(390)에 사전 캐싱 또는 저장될 수 있다. 정보를 전달하는 이들 및 다른 유사한 방식이 사용될 수 있고, 본원에 기재된 것들은 예시의 목적으로 제공된다.
이른바 콘텐츠 요청에서 요청한 실제 이미지, 콘텐츠 또는 다른 데이터는 관련없음을 유의해야한다. 일 실시예에서, 콘텐츠에 대한 요청은 이메일 시스템 (300)에 의해 제시된 사용자의 첫 번째 웹 페이지와 같은 사용자 특정 정보를 얻기 위해 적절한 클러스터(308)에 대한 에지 서버(390)에 의한 클라이언트 개시 요청을 용이하게 하는 가이즈(guise)이다. 이미지 요청을 가정하는 특정 예에서, 이러한 요청에 응답하여 감지할 수 없는 이미지, 예를 들어, 투명 및/또는 보기에 너무 작은 1 픽셀× 1 픽셀 이미지가 획득될 수 있다. 이와 달리, 이미지 또는 다른 콘텐츠 요청은 지각가능한 이미지, 음성 등을 반환할 수 있다. 그러나, 일 실시예에서, 이미지 요청은 실제로 결과적인 이미지를 찾는 것이 아니라, 사용자의 인증된 정보의 적어도 일부를 캐싱하기 위해 이메일 시스템(300)과 협업하게 되는 에지 서버(390)로 암호화된 시드를 제공하기 위한 수단으로서 이미지 태그를 이용한다. 이러한 정보 캐싱은 사용자가 로그인 크리덴셜을 기입하는 동안 이루어지며, 그에 따라 이메일 서비스의 첫 번째 페이지를 보다 빠르게 제시할 수 있는데, 그 이유는 그것은 클라이언트 장치(350)에 물리적으로 보다 가깝게 캐싱되어 있기 때문이다.
암호화된 정보를 포함하는 시드 및/또는 다른 정보의 복호화를 용이하게 하기 위해, CDN.emailname.com과 같은 에지 서버(390)에 대해 생성된 도메인에 대한 디지털 증명서는 에지 서버(390) 및/또는 에지 서버(390)가 연관된 CDN과 공유된다. 또한, 이메일 시스템(300), 인증 모듈 (356) 및 CDN 에지 서버(390)는 본 명세서에서 적어도 시드를 암호화하는 데 사용되는 시드 키로 지칭되는 키를 공유한다. 예를 들어, 시드 키는 대칭 키일 수 있다. 이와 달리, 시드 키는 디지털 인증서에 해당하는 개인 키일 수 있다. 시드를 암호화하는 다른 방식이 이용될 수 있다.
에지 서버(390)가 콘텐츠 요청(362)을 수신하면, 이전에 공유된 시드 키를 사용하여 복호화 모듈(392)에서 암호화된 시드를 복호화할 수 있다. 따라서, 에지 서버 (390)는 클러스터, 시드 GUID 및 CID에 대한 액세스를 가질 것이며 복호화된 시드에 제공된 클러스터(예컨대, https://clustername.emailname.com/)에 시드 GUI(366)를 포스팅할 수 있다. 이메일 시스템(300)의 프론트 엔드 서버(316)는 저장부(322)로부터 사용자 특정 콘텐츠를 얻기 위해 백엔드 서버(312)에 시드 GUID(366)를 제공한다. 예를 들어, 저장된 정보는 사용자의 이메일에 대한 사용자 환경 설정에 따라 수신함 페이지 또는 다른 "홈" 콘텐츠 일 수 있다. 이메일 시스템(300)은 사용자가 인증 모듈(356)을 통하여 이메일 시스템(300)에 성공적으로 로그인할 때까지 적어도 일시적으로 저장되는 에지 서버(390)에 이러한 사용자 특정 콘텐츠(368A)를 방출 또는 제공한다.
일 실시예에서, 에지 서버(390)에 저장된 사용자 콘텐츠(368B)는 만료 시간을 갖는다. 콘텐츠 요청(362)을 수신하는 것에 응답하여, 또는 사용자 콘텐츠(368B)를 수신하는 것에 응답하여, 또는 그 사이의 임의의 시간에, 에지 서버(390)는 원래의 콘텐츠 요청(362)에 응답(370)을 제공할 수 있다. 전술한 바와 같이, 응답은 사실상 인지가능하지 않은 작은 이미지 또는 자체가 클라이언트 장치 (350)에서 사용되지 않는 다른 콘텐츠일 수 있다. 일 실시예에서, 응답(370)은 시드가 복호화 모듈(392)에서 복호화되는 시간 동안 및 사용자 콘텐츠(368B)의 수신 동안 그와 동시에 비동기식으로 전송된 작은 이미지일 수 있다. 이 시점에서, 사용자 콘텐츠(368B)는 사용자에 의해 성공적인 로그인을 기다리면서 에지 서버(390)에서 캐싱되며, 이 때, 사용자 콘텐츠(368B)는 클라이언트 장치 (350)에 제공될 수 있다.
어떤 시점에서, 사용자는 클라이언트 장치(350)에 제시 로그인 페이지(360)를 통해 자신의 크리덴셜을 입력하는 것을 종료한다. 인증 모듈(356)은 저장된 로그인 정보에 대해 사용자의 로그인 크리덴셜을 비교하는 인증 비교 모듈(372)을 제공한다. 인증이 성공하면, 복호화 모듈(374)은 사용자의 클러스터, 시드 GUID 및 CID를 얻기 위해 시드를 복호화한다. 사용자 비교 모듈(376)은 자격이 주어진 사용자에게 복호화된 CID를 비교한다. 일치가 있다면, 인증 모듈(356)은 페이지(378)를 생성한다. 페이지(378)는 클라이언트 장치(350)에서의 브라우저가 보다 가까운 에지 서버(390)에서 캐싱된 사용자 콘텐츠(368B)의 위치에 시드 GUID(372)를 포팅하게 하는 스크립트 언어(예를 들어, JAVASCRIPT™) 또는 다른 코드를 포함 할 수 있다.
시드 GUID(372)을 제공하는 것과 관련된 사용자 장치(350)로부터의 요구에 응답하여, 에지 서버(390)는 클라이언트 장치(350)에 제공되는 사용자 콘텐츠(368C)로 도시한 바와 같이, 앞서 캐싱한 사용자 콘텐츠(368B)를 제공한다. 콘텐츠가 발견되지 않거나 만료된 경우, 에지 서버(390)는 단순히 기본 처리를 위해 이메일 시스템(300)에 포스트를 전달할 수 있다.
이와 같이, 사용자는 메일 시스템(300) (또는 다른 네트워크 기반 서비스)에 성공적으로 로그인했을 때 보다 신속하게 사용자 콘텐츠(368C)를 수신할 수 있다. 일 실시예에서, 사용자 컨텐츠는, 다양한 엔티티들이 사용자 콘텐츠의 캐싱을 관리할 수 있도록 하기 위해 사전승인 번들 또는 "시드"의 전송에 응답하는 경우에만 배포되는 사용자 특정 콘텐츠를 나타낸다.
본 명세서에 기재된 기술은 시드가 단일 아이템이기보다는 트리플렛의 리스트이도록 함으로써 클라이언트 장치(350)의 다수 사용자로 확장될 수 있다. 예를 들어, 두 명의 사용자에 대해, 시드는 각각이 클라이언트 장치(350)의 각 사용자의 클러스터, 시드 GUID 및 CID를 포함한 두 개의 트리플렛의 리스트일 수 있다. 그러한 경우, 사용자 특정 정보가 캐싱되는 로직(예를 들어, 에지 서버(390))은 콘텐츠 요청(362)의 복호화 및 시드 내의 트리플렛들 각각에 대한 사용자 콘텐츠(368B)의 캐싱을 수행할 수 있다. 또한, 인증 모듈(356)은 현재의 인증 사용자의 CID 값과 일치하는 복호화된 시드로부터 트리플렛을 선택할 수 있다.
본 명세서에서 설명된 기술들은 다른 다양한 상황에서 이용될 수 있으므로 도 3의 특정 실시예는 예시의 목적으로 제시된다. 예를 들어, 본 기술들은 네트워크 애플리케이션/서비스, 및 사용자 장치와 네트워크 서비스 간의 중간 노드로서 역할을 할 수 있는 임의의 협업 네트워크 노드와 연계하여 제공될 수 있다. 도 4는 네트워크 노드가 네트워크 서비스에 대한 초기 액세스 동안 사용자가 경험하는 대기 시간을 감소시키기 위한 캐싱 요소로 사용될 수 있는 대표적인 방법을 나타내는 흐름도이다. 블록(400)에서, 네트워크 노드는 사용자 데이터를 저장하는 네트워크 서비스에서의 사용자 데이터의 위치뿐만 아니라 사용자 데이터에 액세스할 수 있도록 하는 암호 키를 포함하는 암호화된 시드를 수신한다. 일 실시예에서, 네트워크 노드는 네트워크 서비스에 대한 사용자의 로그인 시도에 응답하여, 적어도 상기 암호화된 시드를 수신한다.
블록(402)에 나타낸 바와 같이, 네트워크 노드는 적어도 수신된 암호 키를 이용하여 암호화된 시드에 제공된 사용자의 데이터 위치를 요청할 수 있다. 그에 응답하여, 블록(404)은 네트워크 노드가 일반적으로 네트워크 서비스에 저장된 사용자 데이터를 수신 및 저장할 수 있음을 보여주는데, 이 네트워크 노드는 네트워크 서비스의 위치보다 사용자에게 물리적으로 가깝게 위치한다. 블록(406)에서, 사용자 로그인 시도로 인한 사용자의 성공적인 인증에 응답하여, 네트워크 서비스보다 네트워크 노드에 저장된 사용자 데이터에 대한 사용자 액세스가 인에이블링된다.
유사하게, 도 5는 사용자가 사용자 데이터를 제공하는 서비스에 로그인 하는 동안 사용자 데이터를 검색하고 사용자가 사용자 데이터를 보다 신속하게 획득할 수 있는 위치에 이 사용자 데이터를 캐싱하기 위한 시스템의 블록도이다. 본 실시 예는 제1 위치(500)에 제1 저장부(502)를 도시한다. 제1 위치(500)는, 예를 들어, 이메일 서비스 또는 기타 웹 기반 서비스(504)를 호스팅할 수 있다. 제1 저장부 (502)는 예컨대 사용자 이메일 수신함 또는 다른 사용자 민감 데이터와 같은 인증 기반 콘텐츠(510A)를 저장하도록 구성된다. 제1 위치(500)는 서비스(504), 인증(508) 및/또는 제1 위치(500)로부터 수행되는 다른 프로세스에 대한 처리를 수행하기 위한 프로세서(들) 및/또는 다른 회로를 포함할 수 있다.
제1 위치(500)보다 인증 기반 콘텐츠(510A)의 요청자(530)에 물리적으로 가까운 제2 위치(520)의 제2 저장부(522)가 제공된다. 제2 위치(520)는 제1 위치 (500)와 요청자(530) 모두와 통신 가능한 네트워크(540) 상에서 액세스가능한 노드를 나타낼 수 있다. 일 실시예에서, 제2 위치(520)에서의 프로세서(524)는 요청자(530)가 제1 위치(500)에서 호스팅되는 서비스(504)에 로그인하려 시도하는 동안 제2 저장부(522)에 저장하기 위한 인증 기반 콘텐츠(51OA)의 적어도 일부를 제1 저장부(502)로부터 안전하게 요청하도록 구성된다. 로그인 절차는 제1 위치(500)에 위치하거나 또는 위치하지 않을 수 있는 프로세서(506) 및/또는 인증 모듈(508)에 의해 수행될 수 있다. 프로세서(524)는 또한 제2 저장부(522)로부터 인증 기반 콘텐츠(510B)에 대한 보안 액세스를 용이하게 하도록 구성된다.
도 6은 이메일 시스템보다 사용자에게 지리적으로 가까운 CDN의 에지 서버에 사용자의 이메일 데이터의 적어도 일부를 이동시키는 방식의 하나의 대표적인 실시 예의 흐름도이다. 도시된 예에서, 사용자는 이메일 시스템(600)의 URL이나 기타 주소를 입력한다. 예를 들어, 사용자는 자신의 브라우저의 주소 표시 줄에 "emailname.com"을 입력할 수 있다. 일 실시예에서, 이메일 시스템 프론트 도어는 블록(602)에서 도시되어 있는 바와 같이, 본 명세서에서 사용자 식별 쿠키(UIC)로 지칭되는 쿠키를 판독한다. UIC는 적어도 사용자의 식별 및 사용자 데이터가 저장되는 위치를 포함한다. 또한, 블록(602)에 도시되어 있는 바와 같이, 이메일 시스템은 로그인 서버로의 리디렉션을 발행한다. 이러한 리디렉션의 일 예가 아래 예 2에서 묘사된다.
Figure 112014051054138-pct00002
예 2
예 2에서, "s"는 "시드"를 의미하고, 적어도 데이터 클러스터 이름, 시드 GUID 및 CID를 포함하는 암호화된 구조이다. 블록(604)에 나타낸 바와 같이, 사용자의 브라우저는 로그인 페이지로의 리디렉션을 따른다. 블록(606)에 나타낸 바와 같이, 이 로그인 페이지를 통해, 사용자는 자신의 크리덴셜을 입력할 수 있다. 이러한 크리덴셜은 예를 들어, 이메일 주소 및/또는 사용자 이름, 패스워드 등을 포함할 수 있다. 사용자가 이러한 크리덴셜을 입력하는 동안, 사용자 데이터의 일부를 획득하고 사용자에게 보다 가까운 CDN 에지 서버에 그 데이터를 캐싱하기 위한 다른 동작이 고려된다. 일 실시예에서, 이는 블록(608)에서 나타낸 바와 같이 이미지 태그를 포함하는 로그인 페이지로부터 개시된다. 일례에서, 이미지 태그는 현재 로그인 페이지 상에서 인증 모듈에 의해 이메일 시스템에 대해 렌더링되는 맞춤형 콘텐츠의 일부로서 소스를 가질 수 있다. 이러한 예는 실시예 1에 나타내었다. 그 결과, 사용자가 블록(606)에서 자신의 크리덴셜을 입력하는 동안, 브라우저는 그와 동시에 실시예 1의 URL에 대한 요청을 행한다.
블록(610)에서 도시된 바와 같이, CDN은 이미지 요청을 수신하고, 시드 키를 사용하여 시드를 복호화한다. 블록(612)은 CDN이 시드 GUID를 아래의 예 3에서 나타낸 것과 같은 시드에서 식별된 특정 클러스터에 포스팅하는 것을 나타낸다.
Figure 112014051054138-pct00003
예 3
블록(614)에서, 이메일 시스템은 기본 설정, 사용자 환경설정 등에 의해 사용자의 수신함의 첫 번째 페이지, 홈 콘텐츠 또는 다른 첫 번째 페이지로 CDN에 응답한다. 또한, 블록(614)은 CDN이 이메일 시스템보다 사용자에게 보다 가까운 CDN 에지 서버 또는 다른 서버에 이 콘텐츠를 저장함을 나타낸다. 사용자가 여전히 인증하고 있기 때문에, CDN은 아직 사용자에게 콘텐츠를 전달하지 않는다. 다른 실시예는 만료 시간을 포함하고 있지 않지만, 일 실시예에서, 콘텐츠는 1분, 5분 등과 같은 만료 시간을 가질 수 있다.
블록(610)에서 언급된 바와 같이, CDN은 사용자가 CDN에 도달하여 시드를 제공하게 하기 위한 수단으로서 역할을 하는 이미지 요청을 수신한다. 블록(616)에서, CDN은 이 이미지 요청에 대한 응답으로 이미지를 반환할 수 있다. 일 실시예에서, 이미지는 실제로 모색되는 것은 아니고, 따라서 요구된 이미지는 이미지가 브라우저에 반환되었을 때 그 브라우저에 의해 사용되지 않는 "더미" 이미지이다. 이것은 블록(616)에 도시되어 있다. 예를 들어, 요구된 이미지는 사용자의 브라우저 디스플레이에 거의 영향을 미치지 않거나 또는 전혀 영향을 미치지 않을 매우 작고 및/또는 투명한 이미지일 수 있다.
어느 시점에서, 블록(618)에서 도시된 바와 같이, 사용자는 자신의 크리덴셜을 입력하는 것을 마치고, 그것들을 제출한다. 블록(620)에 도시된 바와 같이, 로그인 모듈은 사용자를 인증하고, 사용자의 클러스터, 시드 GUID 및 CID를 얻기 위해 사용자의 시드를 복호화한다. 블록(622)에서, CID가 자격을 갖춘 사용자와 일치하지 않은 것으로 결정된 경우, 블록(624)에서 도시된 바와 같이, 사용자는 인증되지 않는다. 한편, 블록(622)에서 결정된 바와 같이 CID가 자격을 갖춘 사용자와 일치하는 경우, 블록(626)은, 로그인 모듈이 브라우저로 하여금 시드 GUID를 CDN 에지 서버(예를 들면, https://CDN.emailname.com/)에 포스팅하게 하는 스크립트 언어를 가진 페이지를 생성할 수 있음을 나타낸다. 블록(628)에 도시한 바와 같이, CDN은 CDN이 이전 캐싱한 콘텐츠(예컨대, 수신함, 홈페이지 등)를 제공하기 위해 사용자로부터 해당 포스트를 수신한다. 콘텐츠가 만료되거나 발견되지 않을 경우, CDN은 일반적인 처리를 위해 그 포스트를 이메일 시스템에 전달할 수 있다.
일 구현예에서, 이러한 방식의 보안은 시드 GUID가 평문으로 전달되지 않도록 보안 소켓 계층(SSL)을 통해 이메일 데이터를 제공하는 것을 포함한다. 또한, 이 방식은 하나의 트리플렛보다 트리플렛들(클러스터, 시드 GUID, CID)의 목록으로 시드를 구성함으로써 여러 사용자로 확장될 수 있다.
도 7은 본원에 설명된 원리가 구현될 수 있는 대표적인 컴퓨팅 장치/시스템(700)을 도시한다. 대표적인 컴퓨팅 시스템(700)은 본 명세서에 설명된 임의의 컴퓨팅/통신 장치, 예를 들어 이메일 서버, 인증 서버, 에지 서버 또는 기타 다른 중간 네트워크 노드, 사용자 장치를 나타낼 수 있으며, 대표적인 차이는 이하에서 설명된다. 도 7과 연계하여 설명된 컴퓨팅 환경은, 콘텐츠 소비자로 사용자 특정 콘텐츠를 이동시키는 구조 및 동작 개시물은 사용자 콘텐츠가 전달될 수 있는 임의의 환경에 적용 가능하기 때문에, 예시 목적으로 설명된다. 도 7의 컴퓨팅 장치는 일부 실시예에서는 다수의 장치에 걸쳐 분산될 수 있음을 또한 주목해야 한다.
클라이언트 장치와 서버 모두에 대해, 대표적인 컴퓨팅 시스템(700)은 시스템 버스(704)를 통해 다수의 모듈들에 연결된 프로세서(702)를 포함할 수 있다. 도시된 시스템 버스(704)는 컴퓨팅 환경의 다양한 컴포넌트 및 모듈에 직접 또는 간접적으로 결합될 수 있는 임의의 유형의 버스 구조(들)를 나타낸다. 판독 전용 메모리(ROM)(706)는 프로세서(702)에 의해 사용되는 펌웨어를 저장하기 위해 제공될 수 있다. ROM(706)은 프로그램 가능한 ROM(PROM), 소거가능한 PROM(EPROM) 등과 같은 임의의 유형의 판독 전용 메모리를 나타낸다.
호스트 또는 시스템 버스(704)는 메모리 버스(716)를 통해 메모리 제어기(714) 및 메모리(712)에 차례대로 결합될 수 있다. 본원에 기재된 원리와 연관된 연산 모듈들은 메모리(712)와 같은 휘발성 저장부뿐만 아니라 비휘발성 저장 장치를 포함하는 임의의 저장 장치에 저장되고 및/또는 그 임의의 저장 장치를 활용할 수 있다. 도 7은 애플리케이션, 모듈, 데이터 및 다른 정보를 일시적으로 또는 영구적으로 저장할 수 있는 다양한 다른 대표적인 저장 장치를 도시한다. 예를 들어, 시스템 버스는 하드드라이브와 같은 드라이브(들)(732)에 결합될 수 있는 내부 저장 장치 인터페이스(730)에 결합될 수 있다. 저장부(734)는 드라이브와 연관되거나 또는 그 드라이브와 함께 동작할 수 있다. 그러한 저장부의 예는 하드디스크 및 다른 자기 또는 광 매체, 플래시 메모리 및 기타 고체 상태 장치 등을 포함한다. 내부 저장 장치 인터페이스(730)는 임의의 유형의 휘발성 또는 비휘발성 저장부를 이용할 수 있다.
유사하게, 착탈식 매체의 인터페이스(736)는 또한 버스(704)에 결합될 수 있다. 드라이브(738)는 예를 들어, 플로피 디스크, 광 디스크, 메모리 카드, 플래시 메모리, 외장형 하드 디스크 등과 같은 착탈식 저장부를 받아들이고 그에 대해 동작할 수 있도록 착탈가능 저장 인터페이스(736)에 결합될 수 있다. 몇몇 경우에, 호스트 어댑터(742)는 외부 저장부(744)에 액세스하기 위해 제공될 수 있다. 예를 들어, 호스트 어댑터(742)는 소형 컴퓨터 시스템 인터페이스(SCSI), 파이버(fibre) 채널, SATA(serial advanced technology attachemnt) 또는 eSATA, 및/또는 외부 저장부(744)에 접속할 수 있는 다른 유사한 인터페이스를 통해 외부 저장 장치와 인터페이스 할 수 있다. 네트워크 인터페이스(746)를 통해, 또 다른 원격 저장부는 컴퓨팅 시스템(700)에 액세스가능할 수 있다. 예를 들어, 네트워크 인터페이스(746)와 연관된 유선 및 무선 송수신기는 하나 이상의 네트워크(750)를 통해서 저장 장치(748)와의 통신을 가능하게 한다. 저장 장치(748)는 별개의 저장 장치를 나타내거나, 또는 다른 컴퓨팅 시스템, 서버 등과 연관된 저장부를 나타낼 수 있다. 원격 저장 장치 및 시스템과의 통신은 유선 근거리 통신망 (LAN), 무선 LAN, 및/또는 인터넷과 같은 글로벌 영역 네트워크(GAN)를 포함하는 대규모 네트워크를 통해 달성될 수 있다.
사용자 장치, 네트워크 서비스, 인증 서버, 에지 서버 및 다른 중개 네트워크 노드는 본원에 설명된 정보를 통신할 수 있다. 사용자 장치와 서버 장치 간의 통신은 직접 배선, 피어 투 피어 네트워크, 지역 인프라 기반 네트워크(예를 들어, 유선 및/또는 무선 근거리 통신망), 대도시 영역 네트워크 및 다른 광역 네트워크와 같은 오프 사이트 네트워크, 글로벌 영역 네트워크 등에 의해 수행될 수 있다. 송신기(752) 및 수신기(754)는 도 7에서 이들 또는 다른 통신 방법 중 임의의 방법으로 데이터를 전송 및/또는 수신할 수 있는 대표적인 컴퓨팅 시스템의 구조 능력을 묘사하는 것으로 도시되어 있다. 송신기(752) 및/또는 수신기(754) 장치는 독립형 컴포넌트일 수 있고, 송수신기로 통합될 수도 있으며, 네트워크 인터페이스 (746)와 같은 다른 통신 장치에 포함되거나 또는 이미 존재하는 부품일 수도 있다.
컴퓨팅 시스템(700)은 사용자 장치, 이메일 서버, 인증 서버, 에지 서버에서 구현 될 수 있는 바와 같이, 블록(756)은 장치/서버 중 하나를 의미할 때 통신 시스템(700)과 통신하는 다른 장치/서버를 의미한다. 사용자 장치, 이메일 서버, 인증 서버, 에지 서버 등의 각각에서 구현될 수 있는 운영 체제 및 다른 소프트웨어/펌웨어 외에, 각각은 명령어를 실행하는 프로세서(702)에 의하여 동작 가능한 소프트웨어 모듈을 포함할 수 있다. 다수의 대표적인 장치/서버의 각각에 대한 일부 대표 모듈은 아래에 설명된다.
컴퓨팅 시스템(700)이 사용자 또는 클라이언트 장치를 나타내는 경우, 클라이언트 장치의 저장부/메모리(760)는 컴퓨터, 스마트폰, 랩탑 컴퓨터 등과 같은 클라이언트 장치의 메모리(712), 저장부(734, 740, 744, 748) 및/또는 다른 데이터 보존 장치에 저장될 수 있는 것을 나타낸다. 대표적인 클라이언트 장치의 저장부/ 메모리(760)는 기능 모듈로 나타낸 프로세서로 구현되는 기능, 및 운영 체제(미도시)를 포함할 수 있다. 예를 들어, 브라우저(762) 및/또는 이메일 클라이언트(764)가 제공될 수 있다. UIC(768), 시드 키(770) 등과 같은 데이터(766)도 저장될 수 있다.
대표적인 컴퓨팅 시스템(700)이 본 명세서에서 설명된 에지 서버 또는 다른 중개 서버를 나타내는 경우, 메모리(712) 및/또는 저장부(734, 740, 744, 748)는 앞서 설명한 서버의 기능과 관련하여 사용된 프로그램 및 데이터를 저장하는데 사용될 수 있다. 서버의 저장부/메모리(772)는 메모리(712), 저장부(734, 740, 744, 748), 데이터베이스 및/또는 다른 데이터 보존 장치에 저장될 수 있는 것을 나타낸다. 대표적인 서버의 저장부/메모리(772)는 운영 체제(미도시), 복호화 모듈, 캐싱된 사용자 콘텐츠(778) 및 시드 키(780, 774)와 같은 데이터를 포함할 수 있다.
대표적인 컴퓨팅 시스템(700)이 본 명세서에서 설명된 이메일 서버 또는 다른 네트워크 서비스를 나타내는 경우, 메모리(712) 및/또는 저장부(734, 740, 744, 748)는 서버의 기능과 관련하여 사용된 프로그램이나 데이터를 저장하기 위해 사용될 수 있다. 서버의 저장부/메모리(782)는 메모리(712), 저장부(734, 740, 744, 748), 데이터베이스 및/또는 다른 데이터 보존 장치에 저장될 수 있는 것을 나타낸다. 대표적인 서버의 저장부/메모리(782)는, 예를 들어, 운영 체제(미도시), 이메일 프로그램(784), 시드 생성 모듈(786)뿐만 아니라, 저장된 사용자 콘텐츠(788), 시드 키(797) 등과 같은 데이터(787)를 포함할 수 있다.
대표적인 컴퓨팅 시스템(700)이 본 명세서에서 설명된 인증 서버를 나타내는 경우, 메모리(712) 및/또는 저장부(734, 740, 744, 748)는 전술한 서버의 기능적인 동작들과 관련하여 사용되는 프로그램 및 데이터를 저장하는데 사용될 수 있다. 서버의 저장부/메모리(782)는 메모리(712), 저장부(734, 740, 744, 748), 데이터베이스 및/또는 다른 데이터 보존 장치에 저장될 수 있는 것을 나타낸다. 대표적인 서버의 저장부/메모리(790)는 예를 들어, 운영 체제(미도시), 및 인증 비교 모듈(792), 사용자 비교 모듈(794), 복호화 모듈(796)과 같은 도 3과 연계하여 설명된 모듈들, 데이터(798) 등을 포함할 수 있다.
전술한 바와 같이, 도 7의 대표적인 컴퓨팅 시스템(700)은, 처리 및 통신 기능을 갖는 임의의 컴퓨팅 장치가 본원에 기재된 교시를 이용하여 본 명세서에 기재된 기능을 수행할 수 있으므로, 예시의 목적으로 제공된다. 또한, 본 명세서에서 도시된 흐름도 또는 다른 도식에서의 다양한 기능의 시퀀스는 달리 언급하지 않으면 도시되어 있는 대표적인 순서일 필요는 없음을 주목해야한다.
전술한 실시예에서 설명한 바와 같이, 방법은 예를 들어 (물리적 프로세서 및/또는 논리 프로세서, 제어기 등을 포함하는) 프로세서를 통해 실행가능한 소프트웨어 모듈을 제공함으로써 컴퓨팅 장치에서 실행될 수 있는 것으로 설명된다. 이 방법은 프로세서를 통해 처리하기 위한 정보를 준비하는 프로세서 및/또는 회로에 의해 액세스되어 판독될 수 있는 컴퓨터 판독 가능 매체 또는 다른 저장부에 저장될 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 메모리(712), 저장부(734, 740, 744, 748), 임의의 다른 휘발성 또는 비 휘발성 디지털 저장부를 포함하는 임의의 디지털 저장 기술을 포함할 수 있다. 본 명세서에서 설명한 바와 같이 컴퓨터 판독 가능 매체에 명령어들을 저장하는 것은 명령어들이 전파 또는 전송되게 하는 것과 구별되는데, 그 이유는 전파는 명령어들을 저장하는 컴퓨터 판독 매체에서와 같이 명령어들을 저장하는 것과는 대조적으로, 명령어들을 전달하기 때문이다. 따라서, 달리 언급하지 않는 한, 이러한 또는 유사한 형태로 명령어들을 저장한 컴퓨터 판독가능 매체/매체들의 참조는 데이터가 저장 또는 보존될 수 있는 유형의 매체를 참조한다.
본 발명은 구조적 특징 및/또는 방법론적인 동작에 관한 언어로 설명되었지만, 첨부된 청구 범위에 정의된 청구 대상은 반드시 전술한 바와 같은 특정한 특징 또는 동작에 제한되지 않는다는 것이 이해되어야 한다. 오히려, 전술한 특정한 특징 및 동작은 특허 청구 범위를 구현하는 대표적인 형태로서 개시된다.

Claims (15)

  1. 컴퓨팅 디바이스를 포함하는 네트워크 노드에서 수행되는 방법으로서,
    상기 네트워크 노드가, 네트워크 서비스에 대한 사용자의 로그인 시도에 응답하여, 적어도 사용자 데이터를 저장하는 상기 네트워크 서비스에서의 상기 사용자 데이터의 위치 및 상기 사용자 데이터에 액세스하기 위한 암호화 키를 갖는 암호화된 시드를 수신하는 단계 - 상기 암호화된 시드를 수신하는 단계는 상기 네트워크 노드로부터 상기 사용자 데이터와 관련이 없는 콘텐츠 아이템을 요청하는 콘텐츠 태그의 일부로서 상기 암호화된 시드를 수신하는 단계를 포함함 - 와,
    상기 네트워크 노드가, 적어도 상기 수신된 암호화 키를 사용하여 상기 위치로부터 상기 사용자 데이터를 요청하는 단계와,
    상기 네트워크 노드에서 상기 사용자 데이터를 수신 및 저장하는 단계 - 상기 네트워크 노드는 상기 네트워크 서비스에서의 상기 사용자 데이터의 위치보다 상기 사용자의 위치에 물리적으로 더 가까움 - 와,
    상기 사용자 로그인 시도에 응답하는 상기 사용자의 성공적인 인증에 응답하여, 상기 네트워크 서비스보다는 상기 네트워크 노드에서 저장된 상기 사용자 데이터에 대한 사용자 액세스를 인에이블링하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 콘텐츠 태그의 일부로서 상기 네트워크 서비스의 네트워크 주소를 수신하는 단계를 더 포함하되,
    상기 네트워크 서비스로부터 상기 사용자 데이터를 요청하는 단계는 상기 네트워크 서비스의 상기 수신된 네트워크 주소에서 상기 암호화된 시드에 식별된 상기 위치로부터 상기 사용자 데이터를 요청하는 단계를 포함하는
    방법.
  3. 제1항에 있어서,
    상기 네트워크 노드는 상기 네트워크 서비스보다 상기 사용자에 물리적으로 더 가까이 위치한 콘텐츠 분배 네트워크의 에지 서버를 포함하는
    방법.
  4. 제1항에 있어서,
    상기 네트워크 서비스는 웹 기반 이메일 애플리케이션을 포함하고,
    상기 사용자 데이터는 이메일 콘텐츠의 제 1 페이지를 포함하는
    방법.
  5. 제1항에 있어서,
    상기 네트워크 노드에서 상기 수신된 암호화된 시드를 복호화하는 단계와,
    상기 수신된 암호화된 키를 상기 사용자 데이터의 위치에 포스팅하는 단계를 더 포함하는
    방법.
  6. 제1항에 있어서,
    상기 네트워크 노드 및 상기 네트워크 서비스 모두와 적어도 시드 키를 공유하는 단계와,
    상기 네트워크 노드가 상기 시드 키를 이용하여 상기 수신된 암호화된 시드를 복호화하는 단계와,
    상기 복호화하는 단계에 응답하고 사용자 식별자, 상기 사용자 데이터의 위치 및 상기 수신된 암호화 키에 기초하여, 상기 네트워크 서비스로부터 상기 사용자 데이터를 요청하는 단계를 더 포함하는
    방법.
  7. 명령어를 저장하는 적어도 하나의 컴퓨터 판독가능 매체로서,
    상기 명령어는 컴퓨팅 디바이스에 의해 실행될 경우 상기 컴퓨팅 디바이스로 하여금,
    웹 기반 이메일 서비스에서 사용자 액세스 요청을 수신하는 것에 응답하여, 사용자 식별자, 상기 이메일 서비스에서 사용자의 이메일 데이터의 저장 위치 및 상기 사용자의 이메일 데이터에 액세스하기 위한 암호화된 키를 포함하는 암호화된 시드를 생성하는 것과,
    로그인 페이지와 상기 로그인 페이지 내의 이미지 태그를 제공하는 인증 모듈로 상기 사용자를 리다이렉트(redirect)하는 것 - 상기 이미지 태그는 상기 암호화된 시드와 콘텐츠 분배 네트워크의 에지 서버의 주소를 포함함 - 과,
    상기 에지 서버로부터, 적어도 상기 암호화 키에 의해 식별된 상기 사용자의 이메일 데이터의 제 1 부분에 대한 요청을 수신하는 것과,
    상기 사용자의 이메일 데이터의 상기 요청된 제 1 부분을 상기 에지 서버로 보내고, 상기 사용자의 이메일 데이터의 상기 요청된 제 1 부분을 상기 이메일 서비스 대신에 상기 에지 서버로부터 상기 사용자에게 제공되도록 하는 것을 포함하는 동작을 수행하게 하는
    적어도 하나의 컴퓨터 판독가능 매체.
  8. 제7항에 있어서,
    상기 동작은 상기 웹 기반 이메일 서비스에서 상기 사용자 액세스 요청과 관련되어 상기 사용자로부터 쿠키를 수신하는 것을 더 포함하고,
    상기 암호화된 시드를 생성하는 것은 적어도 사용자 식별과 상기 쿠키에 제공된 데이터 저장 위치 정보에 기초하여 상기 암호화된 시드를 생성하는 것을 더 포함하는
    적어도 하나의 컴퓨터 판독가능 매체.
  9. 제7항에 있어서,
    상기 보내는 동작은 상기 사용자가 상기 인증 모듈로 리다이렉트되는 시점과 상기 인증 모듈이 상기 사용자를 인증하는 시점 사이에 상기 요청된 제 1 부분을 상기 에지 서버로 보내는 것을 포함하는
    적어도 하나의 컴퓨터 판독가능 매체.
  10. 컴퓨팅 디바이스와 적어도 하나의 소프트웨어 모듈을 포함하는 시스템으로서,
    상기 컴퓨팅 디바이스와 상기 적어도 하나의 소프트웨어 모듈은 함께 동작을 수행하도록 구성되며,
    상기 동작은
    상기 컴퓨팅 디바이스를 포함하는 네트워크 노드가, 네트워크 서비스로에 대한 사용자의 로그인 시도에 응답하여, 적어도 사용자 데이터를 저장하는 상기 네트워크 서비스에서의 상기 사용자 데이터의 위치와 상기 사용자 데이터에 액세스하기 위한 암호화 키를 포함하는 암호화된 시드를 수신하는 것 - 상기 암호화된 시드를 수신하는 것은 상기 네트워크 노드로부터 상기 사용자와 관련이 없는 콘텐츠 아이템을 요청하는 콘텐츠 태그의 일부로서 상기 암호화된 시드를 수신하는 것을 포함함 - 과,
    적어도 상기 수신된 암호화 키를 사용하여 상기 위치로부터 상기 사용자 데이터를 요청하는 것과,
    상기 네트워크 노드에서 상기 사용자 데이터를 수신 및 저장하는 것 - 상기 네트워크 노드는 상기 네트워크 서비스에서의 상기 사용자 데이터의 위치보다 상기 사용자의 위치와 물리적으로 더 가까움 - 과,
    상기 사용자 로그인 시도에 응답하는 상기 사용자의 성공적인 인증에 응답하여, 상기 네트워크 서비스보다는 상기 네트워크 노드에서 저장된 상기 사용자 데이터에 대한 사용자 액세스를 인에이블링하는 것을 포함하는
    시스템.
  11. 제10항에 있어서,
    상기 동작은 상기 콘텐츠 태그의 일부로서 상기 네트워크 서비스의 네트워크 주소를 수신하는 것을 더 포함하되,
    상기 네트워크 서비스로부터 상기 사용자 데이터를 요청하는 것은 상기 네트워크 서비스의 상기 수신된 네트워크 주소에서 상기 암호화된 시드에서 식별된 상기 위치로부터 상기 사용자 데이터를 요청하는 것을 포함하는
    시스템.
  12. 제10항에 있어서,
    상기 네트워크 노드는 상기 네트워크 서비스보다 상기 사용자에 물리적으로 더 가까이 위치한 콘텐츠 분배 네트워크의 에지 서버를 포함하는
    시스템.
  13. 제10항에 있어서,
    상기 네트워크 서비스는 웹 기반 이메일 애플리케이션을 포함하고,
    상기 사용자 데이터는 이메일 콘텐츠의 제 1 페이지를 포함하는
    시스템.
  14. 제10항에 있어서,
    상기 동작은
    상기 네트워크 노드에서 상기 수신된 암호화된 시드를 복호화하는 것과,
    상기 수신된 암호화된 키를 상기 사용자 데이터의 위치에 포스팅하는 것을 더 포함하는
    시스템.
  15. 제10항에 있어서,
    상기 동작은
    상기 네트워크 노드 및 상기 네트워크 서비스 모두와 적어도 시드 키를 공유하는 것과,
    상기 네트워크 노드가 상기 시드 키를 이용하여 상기 수신된 암호화된 시드를 복호화하는 것과,
    상기 복호화하는 것에 응답하고 사용자 식별자, 상기 사용자 데이터의 위치 및 상기 수신된 암호화 키에 기초하여, 상기 네트워크 서비스로부터 상기 사용자 데이터를 요청하는 것을 더 포함하는
    시스템.
KR1020147014555A 2011-11-30 2012-11-27 인증된 콘텐츠를 콘텐츠 소비자로 이동시키는 기법 KR101964293B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/307,017 2011-11-30
US13/307,017 US8843758B2 (en) 2011-11-30 2011-11-30 Migrating authenticated content towards content consumer
PCT/US2012/066566 WO2013081983A2 (en) 2011-11-30 2012-11-27 Migrating authenticated content towards content consumer

Publications (2)

Publication Number Publication Date
KR20140098762A KR20140098762A (ko) 2014-08-08
KR101964293B1 true KR101964293B1 (ko) 2019-04-01

Family

ID=48467916

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147014555A KR101964293B1 (ko) 2011-11-30 2012-11-27 인증된 콘텐츠를 콘텐츠 소비자로 이동시키는 기법

Country Status (6)

Country Link
US (4) US8843758B2 (ko)
EP (1) EP2786526B1 (ko)
JP (1) JP6109845B2 (ko)
KR (1) KR101964293B1 (ko)
CN (3) CN108173836B (ko)
WO (1) WO2013081983A2 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806190B1 (en) 2010-04-19 2014-08-12 Amaani Munshi Method of transmission of encrypted documents from an email application
US10230762B2 (en) * 2012-08-31 2019-03-12 Jpmorgan Chase Bank, N.A. System and method for sharing information in a private ecosystem
US10382202B1 (en) * 2012-09-28 2019-08-13 EMC IP Holding Company LLC Method and apparatus for federated identity and authentication services
US9332081B2 (en) * 2013-08-30 2016-05-03 Google Inc. Anonymous cross-device linking using temporal identifiers
US9819582B2 (en) * 2014-03-29 2017-11-14 Akamai Technologies, Inc. Traffic on-boarding for acceleration through out-of-band security authenticators
US20160261632A1 (en) * 2014-05-28 2016-09-08 Telefonaktiebolaget L M Ericsson (Publ) Methods and Arrangements for Cloud Caching
US10460098B1 (en) 2014-08-20 2019-10-29 Google Llc Linking devices using encrypted account identifiers
GB2532432B (en) 2014-11-18 2021-09-08 Arm Ip Ltd Methods of accessing a remote resource from a data processing device
CN104580177B (zh) * 2014-12-26 2018-04-27 广州酷狗计算机科技有限公司 资源提供方法、装置和***
CN106034104B (zh) * 2015-03-07 2021-02-12 华为技术有限公司 用于网络应用访问的验证方法、装置和***
US10382424B2 (en) * 2016-01-26 2019-08-13 Redhat, Inc. Secret store for OAuth offline tokens
CN106302476B (zh) * 2016-08-19 2019-06-25 腾讯科技(深圳)有限公司 网络节点加密方法及网络节点加密装置
CN107707517B (zh) * 2017-05-09 2018-11-13 贵州白山云科技有限公司 一种HTTPs握手方法、装置和***
CN107526838B (zh) * 2017-09-08 2020-05-01 北京京东尚科信息技术有限公司 数据库集群扩容的方法和装置
CN107948337B (zh) * 2018-01-09 2021-01-15 京东方科技集团股份有限公司 电子文件传输方法、装置、***及计算机可读存储介质
US10911793B2 (en) * 2018-11-14 2021-02-02 Sony Interactive Entertainment LLC Video start-time reduction employing reductive edging principles
CN109450781B (zh) * 2018-12-29 2021-08-06 深圳市网心科技有限公司 一种基于分布式网络的邮件通信方法及相关装置
US11930439B2 (en) 2019-01-09 2024-03-12 Margo Networks Private Limited Network control and optimization (NCO) system and method
US11431493B1 (en) * 2019-01-10 2022-08-30 Meta Platforms, Inc. Systems and methods for secure authentication
US11647241B2 (en) * 2019-02-19 2023-05-09 Sony Interactive Entertainment LLC Error de-emphasis in live streaming
CN111190915B (zh) * 2020-01-02 2023-05-16 腾讯科技(深圳)有限公司 一种道具标识或角色标识的确定方法、服务器及存储介质
US20220369196A1 (en) * 2021-05-14 2022-11-17 At&T Intellectual Property I, L.P. Contextual network function selection and transfer
US11695855B2 (en) 2021-05-17 2023-07-04 Margo Networks Pvt. Ltd. User generated pluggable content delivery network (CDN) system and method
WO2023224680A1 (en) 2022-05-18 2023-11-23 Margo Networks Pvt. Ltd. Peer to peer (p2p) encrypted data transfer/offload system and method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070055765A1 (en) 2001-04-02 2007-03-08 Lisiecki Philip A Scalable, high performance and highly available distributed storage system for Internet content
US20090029692A1 (en) 2007-03-29 2009-01-29 Klaus Radermacher Predictive computer network services provisioning for mobile users
US20090113532A1 (en) 2007-10-25 2009-04-30 Anchorfree, Inc. Location-targeted online services
US20110093790A1 (en) 2009-10-21 2011-04-21 International Business Machines Corporation Preemptive caching for web-based systems

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4309480B2 (ja) 1995-03-07 2009-08-05 株式会社東芝 情報処理装置
US6085193A (en) * 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
FI107423B (fi) 1998-05-28 2001-07-31 Ericsson Telefon Ab L M Mainoksia tietoverkossa
US7296089B2 (en) * 1999-08-27 2007-11-13 At&T Corp. Method for improving web performance by adapting servers based on client cluster characterization
US6772333B1 (en) * 1999-09-01 2004-08-03 Dickens Coal Llc Atomic session-start operation combining clear-text and encrypted sessions to provide id visibility to middleware such as load-balancers
US7240100B1 (en) * 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US6996616B1 (en) * 2000-04-17 2006-02-07 Akamai Technologies, Inc. HTML delivery from edge-of-network servers in a content delivery network (CDN)
US7114008B2 (en) * 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
AU2001290546A1 (en) * 2000-08-22 2002-03-04 Akamai Technologies, Inc. Dynamic content assembly on edge-of-network servers in a content delivery network
US7197566B1 (en) * 2000-09-29 2007-03-27 Intel Corporation Method and apparatus for selecting server to distribute multimedia data via a network
JP2002358229A (ja) * 2001-06-04 2002-12-13 Ntt Data Corp キャッシュ装置及びコンピュータプログラム
US7200681B1 (en) * 2001-07-30 2007-04-03 Akamai Technologies, Inc. Edge side components and application programming environment for building and delivering highly distributed heterogenous component-based web applications
US20040044731A1 (en) * 2002-03-22 2004-03-04 Kailai Chen System and method for optimizing internet applications
US6950823B2 (en) * 2002-12-23 2005-09-27 International Business Machines Corporation Transparent edge-of-network data cache
WO2004070568A2 (en) * 2003-01-31 2004-08-19 Viair, Inc. Asynchronous real-time retrieval of data
US20040174998A1 (en) * 2003-03-05 2004-09-09 Xsides Corporation System and method for data encryption
KR100390172B1 (en) * 2003-03-22 2003-07-04 Knowledge Info Net Service Inc Method and system for controlling internet contents providing service using redirection method
US7143170B2 (en) * 2003-04-30 2006-11-28 Akamai Technologies, Inc. Automatic migration of data via a distributed computer network
AU2003287497A1 (en) * 2003-11-04 2004-06-06 Thomson Licensing Cache server at hotspots for downloading services
US7584500B2 (en) * 2003-11-19 2009-09-01 Hughes Network Systems, Llc Pre-fetching secure content using proxy architecture
JP4500592B2 (ja) * 2004-06-11 2010-07-14 キヤノン株式会社 サービス提供システム及びサービス提供方法
EP1872269A1 (en) 2005-04-19 2008-01-02 Riverbed Technology, Inc. Content delivery based on user affinity using connection end-point proxies
AU2006320203B2 (en) * 2005-12-02 2011-12-01 Citrix Systems, Inc. Method and apparatus for providing authentication credentials from a proxy server to a virtualized computing environment to access a remote resource
US7673135B2 (en) * 2005-12-08 2010-03-02 Microsoft Corporation Request authentication token
US8255489B2 (en) * 2006-08-18 2012-08-28 Akamai Technologies, Inc. Method of data collection among participating content providers in a distributed network
US20080086524A1 (en) * 2006-08-18 2008-04-10 Akamai Technologies, Inc. Method and system for identifying valid users operating across a distributed network
CN101005606B (zh) * 2006-12-31 2012-07-04 华为技术有限公司 一种减少媒体播放延时的方法和装置
US7941609B2 (en) * 2007-02-23 2011-05-10 Microsoft Corporation HTTP acceleration by prediction and pre-fetching
US8214486B2 (en) * 2007-07-13 2012-07-03 Front Porch, Inc. Method and apparatus for internet traffic monitoring by third parties using monitoring implements
US7953851B2 (en) * 2007-07-13 2011-05-31 Front Porch, Inc. Method and apparatus for asymmetric internet traffic monitoring by third parties using monitoring implements
US8805950B1 (en) * 2007-09-12 2014-08-12 Aol Inc. Client web cache
CN101471919B (zh) * 2007-12-29 2012-01-11 突触计算机***(上海)有限公司 基于点对点传输协议的设备中用于下载分片的方法及装置
US9154475B1 (en) * 2009-01-16 2015-10-06 Zscaler, Inc. User authentication and authorization in distributed security system
US9379895B2 (en) * 2008-07-24 2016-06-28 Zscaler, Inc. HTTP authentication and authorization management
US8180896B2 (en) * 2008-08-06 2012-05-15 Edgecast Networks, Inc. Global load balancing on a content delivery network
US8443056B2 (en) 2010-01-22 2013-05-14 Netflix, Inc. Client-server signaling in content distribution networks
US8244874B1 (en) * 2011-09-26 2012-08-14 Limelight Networks, Inc. Edge-based resource spin-up for cloud computing
CN102130935A (zh) * 2010-08-05 2011-07-20 华为技术有限公司 数据获取方法和装置以及网络存储方法和设备
US20120089700A1 (en) * 2010-10-10 2012-04-12 Contendo, Inc. Proxy server configured for hierarchical caching and dynamic site acceleration and custom object and associated method
US8504655B1 (en) * 2011-01-25 2013-08-06 Sprint Spectrum L.P. Proxy delegation for content delivery
US8291083B2 (en) * 2011-02-01 2012-10-16 Limelight Networks, Inc. Distributed landing pad and brick topology for content storage in content delivery networks
US9049244B2 (en) * 2011-04-19 2015-06-02 Cloudflare, Inc. Registering for internet-based proxy services
US9401917B2 (en) * 2011-06-03 2016-07-26 Blackberry Limited Pre-caching resources based on a cache manifest
US9032497B2 (en) * 2011-06-15 2015-05-12 Cbs Interactive Inc. System and method for securing embedded media
US20130035979A1 (en) * 2011-08-01 2013-02-07 Arbitron, Inc. Cross-platform audience measurement with privacy protection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070055765A1 (en) 2001-04-02 2007-03-08 Lisiecki Philip A Scalable, high performance and highly available distributed storage system for Internet content
US20090029692A1 (en) 2007-03-29 2009-01-29 Klaus Radermacher Predictive computer network services provisioning for mobile users
US20090113532A1 (en) 2007-10-25 2009-04-30 Anchorfree, Inc. Location-targeted online services
US20110093790A1 (en) 2009-10-21 2011-04-21 International Business Machines Corporation Preemptive caching for web-based systems

Also Published As

Publication number Publication date
EP2786526B1 (en) 2019-04-10
KR20140098762A (ko) 2014-08-08
CN108173836A (zh) 2018-06-15
JP2015506135A (ja) 2015-02-26
EP2786526A4 (en) 2015-08-05
US11665146B2 (en) 2023-05-30
CN103959706B (zh) 2018-01-30
EP2786526A2 (en) 2014-10-08
US10412065B2 (en) 2019-09-10
US20190394181A1 (en) 2019-12-26
US20130138957A1 (en) 2013-05-30
US20140380050A1 (en) 2014-12-25
CN103959706A (zh) 2014-07-30
US9509666B2 (en) 2016-11-29
CN106375321B (zh) 2019-10-25
US20170034140A1 (en) 2017-02-02
JP6109845B2 (ja) 2017-04-05
CN106375321A (zh) 2017-02-01
CN108173836B (zh) 2020-12-29
WO2013081983A3 (en) 2013-08-01
US8843758B2 (en) 2014-09-23
WO2013081983A2 (en) 2013-06-06

Similar Documents

Publication Publication Date Title
KR101964293B1 (ko) 인증된 콘텐츠를 콘텐츠 소비자로 이동시키는 기법
US11676133B2 (en) Method and system for mobile cryptocurrency wallet connectivity
US9516107B2 (en) Secure local server for synchronized online content management system
CN109691057B (zh) 经由私人内容分发网络可交换地取回敏感内容
US11899819B2 (en) Machine-driven crowd-disambiguation of data resources
JP2020184800A (ja) 鍵を有するリソースロケーター
US9485246B2 (en) Distributed authentication with data cloud
US20170325089A1 (en) Method and system of user authentication and end to end encryption using device synchronization
CN103188248A (zh) 基于单点登录的身份认证***及方法
CN109450890B (zh) 单点登录的方法和装置
CN114244607B (zh) 单点登录方法、***、设备、介质和程序
US11764958B2 (en) Systems and methods for dynamically encrypting redirect requests
GB2590520A (en) Data sharing via distributed ledgers
KR20170059854A (ko) 포털 연동 관리 시스템

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant