KR20150052286A - 어플리케이션 플랫폼과 어플리케이션 사이의 로그인 상태를 공유하기 위한 시스템 및 방법 - Google Patents
어플리케이션 플랫폼과 어플리케이션 사이의 로그인 상태를 공유하기 위한 시스템 및 방법 Download PDFInfo
- Publication number
- KR20150052286A KR20150052286A KR1020157008730A KR20157008730A KR20150052286A KR 20150052286 A KR20150052286 A KR 20150052286A KR 1020157008730 A KR1020157008730 A KR 1020157008730A KR 20157008730 A KR20157008730 A KR 20157008730A KR 20150052286 A KR20150052286 A KR 20150052286A
- Authority
- KR
- South Korea
- Prior art keywords
- application
- login
- server
- login request
- application platform
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
어플리케이션 플랫폼과 어플리케이션 사이에 로그인 상태를 공유하는 방법은 클라이언트 장치 상에서 모두 구동되고, 컴퓨터에서 수행된다. 클라이언트 장치로부터 로그인 요청에 응답하여 컴퓨터는 로그인 요청을 분석하여 상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 것인지 아니면 상기 어플리케이션과 연관된 것인지 결정한다. 만약 상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 것이라면, 상기 컴퓨터는 어플리케이션 서버와의 제1 접속을 수립하고, 상기 로그인 요청을 상기 어플리케이션 플랫폼 서버로 전송한다. 상기 어플리케이션 플랫폼 서버로부터 로그인 키를 수신한 때, 상기 컴퓨터는 상기 로그인 키를 상기 클라이언트 장치로 반환한다. 그렇지 않으면, 상기 컴퓨터는 어플리케이션 서버와의 제2 접속을 수립하고, 상기 로그인 요청을 상기 어플리케이션 서버로 전달한다. 로그인 키를 상기 어플리케이션 서버로부터 수신한 때, 상기 컴퓨터는 그 후에 상기 클라이언트 장치로 상기 로그인 키를 반환한다.
Description
본 출원 청구항들은 2012년 9월 11일에 출원된 중국 특허 출원 번호 201210334289.1, “어플리케이션 플랫폼과 어플리케이션 사이의 로그인 상태를 공유하기 위한 시스템 및 방법” 에 우선권을 주장하고, 이에 의하여 본 출원 전체에서 참고 문헌으로 인용된다.
본 발명은 일반적으로 인터넷 기술에 관한 것으로, 보다 자세하게는 정보 교환을 통해 어플리케이션 플랫폼과 어플리케이션 사이의 로그인 상태를 공유하기 위한 시스템 및 방법에 관한 것이다.
클라이언트-서버 환경에서, 클라이언트 장치에서 사용자는 원격 서버에 의해 관리되는 데이터에 접근하기 위해서 상기 원격 서버로 요청을 제출한다. 원격 서버는 데이터에 대응하는 연산을 수행하고, 클라이언트 장치로 처리 결과를 반환한다. 전형적인 요청들은 로그인 요청, 로그아웃 요청, 등을 포함한다. 온라인 게임 어플리케이션은 이러한 유형의 환경에서 구현된 예이다. 온라인 게임 어플리케이션의 사용자는 게임을 하기 위해서 그/그녀 계좌로 로그인할 필요가 있다. 그러나 온라인 게임 업체는 다양한 게임을 엔드 유저들에게 제공하고, 이 게임들은 서로 다른 네트워크 도메인에 있는 서로 다른 서버들에서 호스팅 하는 경우에, 사용자는 반복적으로 그/그녀 로그인 정보를 입력하는 것에 의해 각기 다른 서버들에 로그인 해야만 할 수도 있다. 몇몇 경우에서, 업체는 클라이언트 장치로 다운로드 될 수 있는 온라인 게임 플랫폼을 제공할 수 있고, 이것은 엔드 유저가 그 또는 그녀가 할 수 있는 모든 게임을 볼 수 있게 한다. 비록 이러한 온라인 게임 플랫폼은 엔드 유저가 그 또는 그녀가 등록한 게임 어플리케이션들을 다루는 데에 있어서 보다 용이하게 해주지만, 예컨대 상기 게임 플랫폼과 통신하는 서버가 특정한 게임 어플리케이션을 지원하는 게임 서버와 다르다면, 게임 어플리케이션의 클라이언트-엔드가 상기 게임 플랫폼에 의해 관리된다고 하더라도 엔드 유저는 서로 다른 게임 서버들에 로그인하는 것이 여전히 필요할 수 있다. 이 구성은 크로스- 도메인(cross-domain) 방문을 필요로 할 것이다.
최근에, 크로스-도메인 방문을 달성하기 위한 기술은 (i) 클라이언트 장치가 리퀘스트를 에이전트로 보낼 때, 에이전트가 서로 다른 네트워크 도메인 내에서 대상 서버로 새로운 리퀘스트를 자동으로 제출한 뒤, 어떠한 업데이트를 동반하거나 동반하지 않고 대상 서버에서 클라이언트 장치로 응답을 리턴하기 위해서 하나의 네트워크 도메인 내에서 서버에 에이전트를 수립하고 (ii) 온-디맨드(On-Demand) 자바스크립트를 사용하여 동적으로 새로운 <스크립트(script)> 객체를 생성하고, 소스 속성에서 대상 서버의 주소를 특정하고, 그 다음 그것은 예를 들어, JSON 메시지와 같은 것을 사용하여 자바스크립트(Javascript)의 포맷으로 응답을 회신하고, (iii)두개의 서버는 각각 서로의 참조 해시(anchor hash) 단편(fragments)를 변경하여 메시지를 교환 할 수 있도록 대상 서버를 가리키는 IFRAME을 웹 페이지에 동적으로 끼워넣는 것을 포함한다. 그러나 상술한 방법 중 어떠한 것도 서로 다른 도메인들 내 서버들 사이에서 로그인 상태 정보를 공유하는 문제를 쉽게 해결할 수 없다.
상이한 서버들 사이에서 정보를 공유하는 종래의 방법과 관련된 상기 결함 및 다른 문제들은 아래에 개시된 발명에 의해서 감소되거나 제거된다.
몇몇 실시예에서 발명은 하나 이상의 프로세서, 메모리 및 하나 이상의 모듈, 다양한 기능을 수행하는 메모리에 저장된 프로그램이나 명령어들의 집합들을 가진 컴퓨터 시스템에서 구현된다. 이러한 기능들을 수행하기 위한 명령어들은 하나 이상의 프로세서에 의해 실행되도록 구성된 컴퓨터 프로그램 제품 내 포함될 수 있다.
본 발명의 일 실시예는 하나 이상의 프로세서와 메모리를 가진 컴퓨터에 의해 수행되는 컴퓨터로 구현된(computer-implemented) 방법을 수반한다. 컴퓨터로 구현된 방법은 클라이언트 장치로부터 로그인 요청을 수신하는 단계; 상기 로그인 요청이 클라이언트 장치에서 어플리케이션 플랫폼이나 클라이언트 장치에서 어플리케이션과 연관된 것인지 여부를 결정하기 위해서 상기 로그인 요청을 분석하는 단계로서, 상기 어플리케이션은 상기 어플리케이션 플랫폼에 의해서 관리되는 것인 로그인 요청을 분석하는 단계; 만약 상기 로그인 요청이 상기 어플리케이션 플랫폼과 관련된 것이라면: 어플리케이션 플랫폼 서버와의 제1 접속을 수립하는 단계; 상기 로그인 요청을 상기 어플리케이션 플랫폼 서버로 전달하는 단계; 상기 어플리케이션 플랫폼 서버로부터 로그인 키를 수신하는 단계; 및 클라이언트 장치로 상기 로그인 키를 반환하는 단계로서, 상기 로그인 키는 상기 어플리케이션 플랫폼과 연관된 것인 로그인 키를 반환하는 단계를 포함하고, 만약 상기 로그인 요청이 어플리케이션과 연관된 것이라면, 상기 어플리케이션 서버로부터 제2 접속을 수립하는 단계로서, 상기 어플리케이션 서버는 상기 어플리케이션 플랫폼 서버와 구별되는 것인 제2 접속을 수립하는 단계; 상기 로그인 요청을 상기 어플리케이션 서버로 전달하는 단계; 상기 어플리케이션 서버로부터 로그인 키를 수신하는 단계; 및 클라이언트 장치로 상기 로그인 키를 반환하는 단계로서, 상기 로그인 키는 상기 어플리케이션과 연관된 것인, 로그인 키를 반환하는 단계를 포함한다.
본 발명의 다른 실시예는 컴퓨터 시스템을 포함한다. 상기 컴퓨터 시스템은 메모리, 하나 이상의 프로세서 및 상기 메모리에 저장된 하나 이상의 프로그램들을 포함하고 상기 하나 이상의 프로세서에 의해 실행되도록 구성된다. 하나 이상의 프로그램들은: 클라이언트 장치로부터 로그인 요청을 수신하는 단계; 상기 클라이언트 장치에서의 어플리케이션 플랫폼이나 상기 클라이언트 장치에서의 어플리케이션과 상기 로그인 요청이 연관된 것인지 여부를 결정하기 위해서 상기 로그인 요청을 분석하되, 상기 어플리케이션은 상기 어플리케이션 플랫폼에 의해 관리되는 것인 단계; 만약 상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 것이라면: 어플리케이션 플랫폼 서버와의 제1 접속을 수립하는 단계; 상기 로그인 요청을 어플리케이션 플랫폼 서버로 전달하는 단계; 상기 어플리케이션 플랫폼 서버로부터 로그인 키를 수신하는 단계; 및 상기 로그인 키를 상기 클라이언트 장치로 반환하되, 상기 로그인 키는 상기 어플리케이션 플랫폼과 연관된 것인 단계; 만약 상기 로그인 요청이 상기 어플리케이션과 연관된 것이라면: 어플리케이션 서버와의 제2 접속을 수립하되, 상기 어플리케이션 서버는 상기 어플리케이션 플랫폼 서버와 구별되는 것인 단계; 상기 로그인 요청을 상기 어플리케이션 서버로 전송하는 단계; 상기 어플리케이션 서버로부터 로그인 키를 수신하는 단계; 및 상기 로그인 키를 상기 클라이언트 장치로 반환하되, 상기 로그인 키는 상기 어플리케이션과 연관된 것인 단계를 포함한다.
본 발명의 다른 실시예는 컴퓨터 시스템의 하나 이상의 프로세서들에 의해 수행되는 하나 이상의 프로그램들이 그 안에 저장된 것을 가지는 비-일시적인 컴퓨터 판독 가능한 저장 매체를 포함하고, 그 하나 이상의 프로그램들은: 클라이언트 장치로부터 로그인 요청을 수신하고, 상기 로그인 요청이 클라이언트 장치에서 어플리케이션 플랫폼과 연관된 것인지 여부를 결정하기 위해서 상기 로그인 요청을 분석하고, 이 때, 상기 어플리케이션은 상기 어플리케이션 플랫폼에 의해 관리되는 것이고, 반면에 상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 것인 경우: 어플리케이션 플랫폼 서버와의 제1 접속을 수립하고, 상기 로그인 요청을 상기 어플리케이션 플랫폼 서버로 전달하고, 상기 어플리케이션 플랫폼 서버로부터 로그인 키를 수신하고; 상기 로그인 키를 상기 클라이언트 장치로 반환하되, 상기 로그인 키는 상기 어플리케이션 플랫폼과 연관된 것이고; 만약 상기 로그인 요청이 상기 어플리케이션과 연관된 것인 경우에: 어플리케이션 서버와의 제2 접속을 수립하고, 이 때, 상기 어플리케이션 서버는 상기 어플리케이션 플랫폼 서버와 구별되는 것이고, 상기 로그인 요청을 상기 어플리케이션 서버로 전달하고, 상기 어플리케이션 서버로부터 로그인 키를 수신하고; 상기 로그인 키를 상기 클라이언트 장치로 반환하되 상기 로그인 키는 상기 어플리케이션과 연관하기 위한 일련의 명령어 들을 상기 하나 이상의 프로그램들이 포함한다.
상이한 서버들 사이에서 정보를 공유하는 종래의 방법과 관련된 상기 결함 및 다른 문제들은 아래에 개시된 발명에 의해서 감소되거나 제거된다.
상술한 본 발명의 특징 및 이점 뿐만 아니라 그것의 추가적인 특징 및 이점은 도면들을 함께 참조하여 아래에서 바람직한 실시 예에 대한 상세한 설명의 결과로서 보다 명확하게 이해될 것이다.
도 1은 몇몇 실시 예에 따라 어플리케이션 플랫폼과 어플리케이션 사이에서 로그인 상태 정보를 공유하는 방법의 나타내는 순서도이다.
도 2a는 몇몇 실시 예에 따라 로그인 요청의 발신지(source)를 결정하는 방법을 나타내는 순서도이다.
도 2b는 몇몇 실시 예에 따라 어플리케이션 플랫폼 서버 또는 어플리케이션 서버와 접속을 수립하고 로그인 요청의 출처를 기반으로 서버의 로그인 작업을 완료하는 방법을 나타내는 순서도이다.
도 3은 몇몇 실시 예에 따라 어플리케이션 플랫폼 서버와 어플리케이션 서버 사이에 로그인 상태를 공유하는 매커니즘(mechanism)을 구현하기 위한 클라이언트-서버 네트워크 환경을 나타내는 블록도이다.
도 4는 몇몇 실시 예에 따라 어플리케이션 플랫폼과 어플리케이션 사이에 로그인 상태 정보를 공유하는 방법을 나타내는 다른 순서도이다.
도 5는 몇몇 실시 예에 따라 도 3에 도시된 프록시(proxy) 서버의 구성 요소를 나타내는 블록도이다.
도 6은 몇몇 실시 예에 따라 도 5에 도시된 프롯시 서버 내에 로그인 요청 분석 모듈의 구성 요소들을 나타내는 블록도이다.
도 7은 몇몇 실시 예에 따라 도 5에 도시된 프록시 서버 내 로그인 상태 공유 모듈의 구성 요소를 나타내는 블록도이다.
도 8은 몇몇 실시 예에 따라 도 3에 도시된 프록시 서버의 구성 요소들을 나타내는 다른 블록도이다.
도 9는 몇몇 실시 예에 따라 어플리케이션 플랫폼 서버와 어플리케이션 서버 사이에 로그인 상태를 공유하는 매커니즘을 구현하기 위한 클라이언트-서버 네트워크 환경을 나타내는 다른 블록도이다.
도 10은 몇몇 실시 예에 따라 도 3에 도시된 프록시 서버의 구성 요소를 나타내는 또 다른 블록도이다.
동일한 식별 부호들이 도면들의 몇몇 모습에 걸친 상응하는 부분들을 지칭한다.
도 1은 몇몇 실시 예에 따라 어플리케이션 플랫폼과 어플리케이션 사이에서 로그인 상태 정보를 공유하는 방법의 나타내는 순서도이다.
도 2a는 몇몇 실시 예에 따라 로그인 요청의 발신지(source)를 결정하는 방법을 나타내는 순서도이다.
도 2b는 몇몇 실시 예에 따라 어플리케이션 플랫폼 서버 또는 어플리케이션 서버와 접속을 수립하고 로그인 요청의 출처를 기반으로 서버의 로그인 작업을 완료하는 방법을 나타내는 순서도이다.
도 3은 몇몇 실시 예에 따라 어플리케이션 플랫폼 서버와 어플리케이션 서버 사이에 로그인 상태를 공유하는 매커니즘(mechanism)을 구현하기 위한 클라이언트-서버 네트워크 환경을 나타내는 블록도이다.
도 4는 몇몇 실시 예에 따라 어플리케이션 플랫폼과 어플리케이션 사이에 로그인 상태 정보를 공유하는 방법을 나타내는 다른 순서도이다.
도 5는 몇몇 실시 예에 따라 도 3에 도시된 프록시(proxy) 서버의 구성 요소를 나타내는 블록도이다.
도 6은 몇몇 실시 예에 따라 도 5에 도시된 프롯시 서버 내에 로그인 요청 분석 모듈의 구성 요소들을 나타내는 블록도이다.
도 7은 몇몇 실시 예에 따라 도 5에 도시된 프록시 서버 내 로그인 상태 공유 모듈의 구성 요소를 나타내는 블록도이다.
도 8은 몇몇 실시 예에 따라 도 3에 도시된 프록시 서버의 구성 요소들을 나타내는 다른 블록도이다.
도 9는 몇몇 실시 예에 따라 어플리케이션 플랫폼 서버와 어플리케이션 서버 사이에 로그인 상태를 공유하는 매커니즘을 구현하기 위한 클라이언트-서버 네트워크 환경을 나타내는 다른 블록도이다.
도 10은 몇몇 실시 예에 따라 도 3에 도시된 프록시 서버의 구성 요소를 나타내는 또 다른 블록도이다.
동일한 식별 부호들이 도면들의 몇몇 모습에 걸친 상응하는 부분들을 지칭한다.
참조는 이제 첨부된 도면에서 설명되는 것의 실시예, 예시들에서 상세하게 만들어질 것이다. 다음의 상세한 설명에서 본 명세서 주제의 완전한 이해를 제공하기 위해서 다수의 특정 세부 사항은 설명된다. 그러나 이들 특정 세부사항 없이도 관련된 주제가 당업자에게 실행될 수 있음은 명백할 것이다. 다른 예에서 잘 알려진 방법, 절차, 구성요소 및 회로들은 실시 예의 양상을 불필요하게 분명히 하지 않기 위해서 상세하게 설명되지 않는다.
전술한 바와 같이, 서로 다른 도메인 내부에 두 개의 서버와 로그인 상태 정보를 안전하게 공유하는 클라이언트 측에서 실행되는 두 개의 프로그램에 대한 과제가 있다. 예시적인 목적으로, 본 출원은 QQ의 온라인 게임 어플리케이션 플랫폼 및 예로서 온라인 게임 어플리케이션 플랫폼에 의해 관리되는 특정 게임 어플리케이션을 사용한다. 이 경우, 온라인 게임 어플리케이션 플랫폼 및 특정 게임 어플리케이션 두개 다 데스크탑, 랩탑, 태블릿 또는 스마트폰과 같은 클라이언트 장치에 설치 되어야 하고, 상기 클라이언트 장치와 원격 프록시 서버 사이에 웹소켓(WebSocket) 연결이 존재한다. 온라인 게임 어플리케이션 플랫폼 및 특정 게임 어플리케이션은 상기 웹소켓 연결을 통해서 프록시 서버와 데이터를 주고받는다. 프록시 서버는 클라이언트 장치로부터 수신한 데이터를 온라인 게임 어플리케이션 플랫폼 또는 특정 게임 어플리케이션으로부터 결정한다. 서버 측에서, 프록시 서버는 다른 도메인들 내의 서버와의 접속을 유지한다. 만약 데이터가 온라인 게임 어플리케이션 플랫폼으로부터의 것이라면 그 후에 프록시 서버는 상기 데이터를 하나에 도메인 내 대응하는 온라인 게임 어플리케이션 플랫폼 서버로 전달한다. 만약 데이터가 특정 게임 어플리케이션으로부터의 것인 경우에, 상기 프록시 서버는 그 후 다른 도메인 내 대응하는 게임 어플리케이션 서버로 상기 데이터를 전달한다. 또한, 프록시 서버는 두 개의 클라이언트 측 프로그램들이 서로 그들 각각의 로그인 상태 정보를 공유할 수 있도록 각각의 서버들에서 온라인 게임 어플리케이션 플랫폼 및 특정 게임 어플리케이션의 로그인 상태 정보에 대해 계속 파악하고 있다. 그렇게 함으로써, 하나의 도메인 내 온라인 게임 어플리케이션 플랫폼을 통해 그/그녀의 계정으로 로그인 된 사용자는 상기 특정 게임 어플리케이션 서버가 대응하는 온라인 게임 어플리케이션 플랫폼 서버에서 사용자의 로그인 상태를 가지고 있는 한 그/그녀의 로그인 정보를 서버로 제공하지 않아도 특정 게임 어플리케이션 서버로 접근할 수 있다.
이하, 본 발명에 의해 사용되는 기술의 목록이다.
웹소켓(WebSocket): 하나의 TCP 연결을 통해서 전이중 통신 채널(full-duplex communications channel)을 제공하는 웹 기술이다. 웹소켓은 웹 브라우저와 웹 서버에서 구현되도록 설계되어 있지만, 어떤 클라이언트나 서버 어플리케이션에 의해 사용될 수 있다. 웹 소켓 프로토콜은 독립적인 TCP 기반 프로토콜이다. 그것의 HTTP에 대한 유일한 관계는 그것의 응답 확인 방식(handshake)이 업그레이드 요청으로서 HTTP 서버에 의해 해석된다는 것이다. 웹 소켓 프로토콜은 브라우저와 웹 사이트 사이에 더 많은 상호 작용을 가능하게 하여 라이브 컨텐츠 및 실시간 게임의 생성을 촉진한다. 이는 클라이언트가 요청하지 않고 상기 서버가 컨텐츠를 상기 브라우저로 전송하는 표준화된 방법을 제공하고, 접속 개방을 유지하는 동안에 메시지를 앞뒤로 전달될 수 있도록 허용하는 것에 의해 가능하게 된다. 이러한 방식으로 양방면(쌍방향) 지속적인 대화는 브라우저와 서버 간 일어날 수 있다.
Ajax : Ajax는 “비 동기화 자바스크립트(JavaScript) 및 XML”에 대한 약자로서 이는 비동기 웹 어플리케이션을 생성하기 위해서 클라이언트 측 상에 사용되는 상호 연관된 웹 개발 기술의 그룹이다. Ajax로 웹 어플리케이션은 디스플레이와 기존 페이지의 동작에 대해 간섭하는 것 없이 비동기적으로 백드라운드 내에서 데이터를 서버로 송신하고 서버로부터 데이터를 검색할 수 있다. 데이터는 XMLHttpRequest 객체를 사용하여 검색될 수 있다. Ajax는 단일의 기술이 아니고 기술의 그룹이라는 것에 주목하자. HTML 및 CSS는 마크 업(mark up) 및 스타일 정보를 조합하는데 사용될 수 있다. 동적으로 표시하고 사용자가 제공된 정보와 상호 작용할 수 있도록 하기 위해서 DOM은 자바스크립트를 가지고 접근된다. 자바스크립트와 XMLHttpRequest 객체는 전체 페이지 재로드(reload)를 피하기 위해서 브라우저와 서버간 비 동기적 데이터 교환을 하기 위한 방법을 제공한다.
JCE: JCE는 “자바 암호화 확장(Java Cryptography Extension)”을 의미하는데, 이는 프레임 워크, 암호화, 키 생성 및 키 일치를 위한 구현 및 메시지 인증 코드(Message Authentication Code)(MAC) 알고리즘을 제공한다. JCE는 자바 플랫폼을 보완하는데, 이는 이미 인터페이스와 메시지 다이제스트(message digests) 와 디지털 서명 (digital signatures)의 구현을 포함한다.
로컬 저장소(Local Storage) : 로컬 저장소는 인터넷 상에서 웹 데이터 저장 프로토콜의 일부이다. 로컬 저장소에 배치된 데이터는 각 기점(동일한 출처 정책에서 정의된 것에 따라 프로토콜, 호스트명칭, 포트 번호의 조합)마다 있고, 이전에 상기 데이터가 저장된 동일한 기점으로부터 웹페이지에서 로드된 모든 스크립트에 상기 데이터는 이용될 수 있고, 상기 웹 브라우저가 닫힌 후에도 상기 데이터는 유지된다.
JSON : JSON은 자바스크립트 객체 표기법(JavaScript Object Notation)의 약자로서, 사람이 읽을 수 있는 데이터 교환을 위해 설계된 경량, 텍스트 기반의 개방형 표준이다. 이는 객체라고 불리는, 단순한 데이터구조와 연관 배열을 나타내는 자바스크립트 스크립팅 언어에서 파생된 것이다. 자바스크립트에 대한 관계에도 불구하고, 파서(parsers)가 다양한 언어에 사용 가능한 채로 그것은 언어에 독립적 이다.
로그인 키(Login Key): 로그인 키는 클라이언트 장치로부터 로그인 요청을 백엔드(Backend) 서버에 넘긴 후에 백엔드 서버에 의해 클라이언트 장치에 배포된 암호화 키이다. 로그인 키는 상기 클라이언트 장치가 로그인 정보를 더 제공하는 것 없이 백엔드 서버로 접근하는 동안 제한된 수명 기간을 갖는다.
도 1은 몇몇 실시예에 따라 어플리케이션 플랫폼과 어플리케이션 사이에 로그인 상태 정보를 공유하는 것의 방법을 나타내는 순서도이다. 이 예에서, 어플리케이션 플랫폼과 어플리케이션 모두는 프록시 서버, 유선 또는 무선에 연결된 클라이언트 장치 상에 설치되는 것으로 가정한다. 어플리케이션 플랫폼은 다양한 어플리케이션들을 다루는 특정 어플리케이션이다. 그러나, 서로 다른 어플리케이션들(어플리케이션 플랫폼을 포함)은 상이한 네트워크 도메인 내 상이한 백엔드 서버에 대응할 수 있다. 예를 들어, 어플리케이션 플랫폼은 하나의 도메인 내 어플리케이션 플랫폼 서버에 대응할 수 있고, 상기 클라이언트 장치에서 어플리케이션 플랫폼에 의해 관리되는, 어플리케이션은 상이한 네트워크 도메인 내 어플리케이션에 대응할 수 있다.전형적으로, 사용자는 분리된 두 개의 상이한 서버에 그/그녀의 계정으로 로그 해야만, 상기 두개의 서버에 의해 제공되는 서비스에 접근한다. 그러나 후술할 바와 같이, 서로 다른 서버 (예를 들어 어플리케이션 플랫폼 서버)에 의해 제공된 로그인 상태 정보 (예를 들어 로그인 키)를 사용하여 사용자가 하나의 서버(예를 들어 어플리케이션 서버)에 접근하도록 허용하는 프록시 서버에서 방법은 구현된다.
단계 S101에서, 프록시 서버는 클라이언트 장치로부터 로그인 요청을 수신한다. 전술한 바와 같이 상기 클라이언트 장치와 상기 프록시 서버 간에 웹소켓 연결이 존재한다. 만약 사용자가 어떠한 서버에도 이전에 로그인 하지 않은 경우, 사용자는 먼저 웹소켓(WebSocket) 연결을 사용하여 어플리케이션 플랫폼이나 어플리케이션 중 하나로부터 상기 프록시 서버로 로그인 요청을 제출한다. 몇몇 실시예에서, 상기 로그인 요청은 하나 이상의 관련된 데이터 패킷(data packets)을 포함하고, 적어도 상기 데이터 패킷 중 하나는 상기 프록시 서버의 로그인 요청 타입 비트를 포함하여 상기 로그인 요청이 어플리케이션 플랫폼이나 어플리케이션에 의해 개시되는 것을 결정하도록 한다.
S102 단계에서, 프록시 서버는 상기 로그인 요청을 분석하여 상기 로그인 요청의 발신지 결정한다. 예를 들어, 상기 로그인 요청을 운반하는 상기 데이터 패킷으로부터 상기 프록시 서버는 상기 로그인 요청 타입 비트를 얻는다. 후술될 바와 같이 상기 로그인 요청 타입 비트에 저장된 데이터는 상기 로그인 요청이 어플리케이션 플랫폼 또는 어플리케이션으로부터 인지를 나타낸다. 이러한 정보를 바탕으로, 상기 프록시 서버는 상기 로그인 요청을 상기 어플리케이션 플랫폼 서버 또는 어플리케이션 서버로 전달할 것인지 여부를 결정한다.
S103 단계에서, 상기 로그인 요청의 발신지를 기반으로, 상기 프록시 서버는 상기 어플리케이션 플랫폼 서버 또는 상기 어플리케이션 서버와의 접속을 수립하여 상기 어플리케이션 플랫폼과 상기 어플리케이션 사이에 상기 로그인 상태를 공유한다. 예를 들어, 상기 로그인 요청이 상기 어플리케이션 플랫폼으로부터인 것인 때, 상기 프록시 서버는 상기 어플리케이션 플랫폼 서버와의 접속을 수립하고, 상기 로그인 요청이 상기 어플리케이션으로부터인 것인 때, 상기 프록시 서버는 상기 어플리케이션 서버와의 접속을 수립한다. 이렇게 함으로써, 상기 프록시 서버는 상기 어플리케이션 플랫폼과 상기 어플리케이션에 의해 공유되는 “전달자”가 되어 그들 각각 서버와 통신하게 된다. 상기 어플리케이션 플랫폼 또는 상기 어플리케이션이 대응하는 서버로 로그인 한 후에, 상기 프록시 서버는 상기 서버로부터 대응하는 로그인 키를 수신하고, 상기 어플리케이션 플랫폼이나 상기 어플리케이션의 로그인 상태를 기록한다. 더욱이, 상기 프록시 서버는 또한 상기 로그인 키를 다른 서버에 전달하여 상이한 네트워크 도메인 내에 있을 수 있는 두 개의 서버가 서로의 상기 로그인 상태 정보를 공유할 수 있도록 한다.
도 2A는 몇몇 실시 예에 따라 로그인 요청의 발신지를 결정하는 방법을 나타내는 순서도이다. 전술한 바와 같이, 상기 어플리케이션 플랫폼 또는 상기 어플리케이션과 같은 로그인 요청을 개시하는데 책임이 있는 프로그램을 결정하기 위해서 상기 프록시 서버는 상기 로그인 요청을 분석할 필요가 있다. 이를 위해서, 상기 프록시 서버는 먼저 상기 로그인 요청을 전달하는 상기 데이터 패킷을 식별한다. S1021 단계에서, 상기 프록시 서버는 상기 로그인 요청을 전달하는 데이터 패킷으로부터 헤더를 추출한다. 후술되는 바와 같이, 상기 어플리케이션 플랫폼과 연관된 데이터 패킷과 상기 어플리케이션과 연관된 데이터 패킷 사이에 포맷 차이가 존재한다. 예를 들어, 상기 어플리케이션 플랫폼과 연관된 데이터 패킷은 전형적으로 텍스트 프레임(text frame)의 포맷이고, 상기 어플리케이션과 연관된 데이터 패킷은 전형적으로 이진(binary) 프레임의 포맷이다. S1022 단계에서, 프록시 서버는 상기 데이터 패킷의 헤더 내 로그인 요청 타입 비트를 식별한다. 이 단계의 더 자세한 사항은 아래 제공된다. S1023 단계에서 상기 로그인 요청이 어플리케이션 플랫폼에 연관된 것인지 또는 어플리케이션에 연관된 것인지 상기 프록시 서버는 상기 로그인 요청 타입 비트에 따라 판단한다.
도 2B는 몇몇 실시 예에 따라 어플리케이션 플랫폼 서버 또는 어플리케이션 서버와의 접속을 수립하고 로그인 요청의 발신지를 기반으로 서버로 로그인 작업을 완료하는 방법을 나타내는 순서도이다. S1031 단계에서, 상기 프록시 서버는 상기 로그인 요청의 발신지를 결정한다. 만약 상기 로그인 요청이 상기 어플리케이션 플랫폼으로부터 인 것인 경우에, 상기 프록시 서버는 그 때, S1032 단계로 이동하고, 만약 상기 로그인 요청이 상기 어플리케이션으로부터인 것인 경우, 상기 프록시 서버는 그때 S1036 단계에 대응하는 작업을 실행한다. S1032 단계에서, 프록시 서버는 예를 들어 HTTP 프록시 서비스를 사용하여 , 어플리케이션 플랫폼 서버와의 단기 접속을 수립한다. S1033 단계에서, 프록시 서버는 로그인 요청을 접속을 통해서 상기 어플리케이션 플랫폼 서버로 송신한다. S1034 단계에서, 상기 로그인 요청이 성공한 후, 프록시 서버는 상기 어플리케이션 플랫폼 서버로부터 로그인 키를 수신한다. S1035 단계에서, 프록시 서버는 상기 로그인 키를 상기 로그인 요청을 제출한 클라이언트 장치로 반환한다. 몇몇 실시예에서, 로그인 키는 클라이언트 장치 (예를 들어 로컬 저장소)에 캐쉬(cache)되고, 어플리케이션에 제공된다. 사용자가 어플리케이션을 활성화 할 때, 상기 어플리케이션은 클라이언트 장치의 메모리로부터 상기 로그인 키를 검색하고, 그것이 여전히 유효한 것인지 아닌지를 검사한다. 상기 로그인 키가 여전히 유효하다면(예를 들어 수명 기간이 아직 만료되지 않음), 어플리케이션은 사용자가 로그인 정보(예를 들어, 사용자 이름 및 암호)를 제공하도록 유도하지 않을 것이다. 대신에, 어플리케이션은 로그인 키를 포함한 접근 요청(access request)을 프록시 서버로 직접 송신한다. 접근 요청의 수신 시, 프록시 서버는 또한 상기 접근 요청이 유효한 로그인 키를 포함한 것인지 여부를 검사하고, 그렇다면, 상기 접근 요청을 대응하는 어플리케이션 서버로 전달한다. 마지막으로, 어플리케이션 서버는, 접근 요청의 수신 시, 로그인 키를 이전에 프록시 서버로부터 수신한 로그인 키와 비교하는 것에 의해 인증 작업을 수행한다. 만약 매치(match)가 발견된 경우, 프록시 서버 또는 클라이언트 장치로부터 접근 요청의 유효성의 증명을 더 요청하지 않고 접근 요청 내 명령어에 따라서 어플리케이션 서버가 작업을 수행할 것이다.
마찬가지로, S1036 단계에서, 프록시 서버는 예를 들어 WebSocket 프록시 서비스와 같은 것을 사용하여 어플리케이션 플랫폼 서버와의 장기 접속을 수립한다. S1037 단계에서, 프록시 서버는 접속을 통해 로그인 요청을 어플리케이션 서버로 전송한다. S1038단계에서 프록시 서버는 로그인 요청이 성공한 후, 어플리케이션 서버로부터 로그인 키를 수신한다. S1039 단계에서, 프록시 서버는 로그인 요청을 제출한 클라이언트 장치로 로그인 키를 반환한다. 몇몇 실시예에서, 상기 로그인 키는 클라이언트 장치(예를 들어 로컬 저장소)에 캐쉬되고 어플리케이션 플랫폼에 제공된다. 사용자가 어플리케이션 플랫폼을 활성화 할 때, 상기 어플리케이션 플랫폼은 상기 클라이언트 장치의 메모리로부터 상기 로그인 키를 검색하고 그것이 여전히 유효한 것인지 여부를 검사한다. 만약 상기 로그인 키가 여전히 유효(예를 들어 수명 기간이 아직 만료되지 않은)하다면, 어플리케이션 플랫폼은 사용자가 로그인 정보(예를 들어 사용자이름 및 패스워드)를 제공하도록 유도하지 않을 것이다. 대신에, 어플리케이션 플랫폼은 상기 로그인 키를 포함한 접근 요청을 상기 프록시 서버로 직접 보낸다. 접근 요청의 수신 시, 프록시 서버는 또 다시 접근 요청이 유효한 로그인 키를 포함하고 있는지 여부를 검사하고, 만약 그렇다면 상기 로그인 요청을 대응하는 어플리케이션 플랫폼 서버로 전달한다. 마지막으로, 어플리케이션 플랫폼 서버는 접근 요청의 수신 시, 상기 로그인 키를 이전에 프록시 서버로부터 수신한 로그인 키와 비교하는 것에 의해 인증 작업을 수행한다. 만약 매치가 발견되면, 프록시 서버 또는 클라이언트 장치로부터 접근 요청의 유효성 입증을 추가 요청하지 않고 어플리케이션 플랫폼 서버는 접근 요청 지시에 따라서 작업을 수행한다.
몇몇 실시예에서, 어플리케이션 플랫폼과 어플리케이션 사이의 관계는 비대칭이다. 즉, 어플리케이션 플랫폼 서버에 의해 제공된 로그인 키는 어플리케이션 서버에 접근하는데 사용될 수 있으나 어플리케이션 서버에 의해 제공된 로그인 키는 어플리케이션 플랫폼 서버에 접근하는데 사용되지 않거나 어플리케이션 플랫폼 서버 내 정보에 제한된 접근만이 제공될 수 있다. 예를 들어, 사용자가 어플리케이션 플랫폼 서버에 등록 된 사용자 이름 및 패스워드를 제공하지 않는 한, 사용자는 사용자와 관계되고 어플리케이션 플랫폼 서버에 저장된 금융 정보(예를 들어 은행 계좌 번호 또는 신용카드 번호)에 접근하는 것이 허용되지 않을 수 있고, 상기 금융 정보는, 상기 어플리케이션 유저 계정 정보와 다를 수 있다.
도 3은 몇몇 실시 예에 따라 어플리케이션 플랫폼 서버와 어플리케이션 서버 사이의 로그인 상태를 공유하는 것의 매커니즘을 구현하기 위한 클라이언트-서버 네트워크 환경을 나타내는 블록도이다. 예를 들어, 클라이언트 장치(10)는 온라인 게임 플랫폼(13)과 특정 온라인 게임(15)과 같은 다수의 프로그램들을 갖는다. 특히, 특정 온라인 게임(15)은 온라인 게임 플랫폼(13)에 의해 관리되는 다수의 게임들 중 하나이다. 온라인 게임 플랫폼(13)은 어플리케이션 플랫폼 서버(40)(네트워크 도메인 B)에 대응하고 게임(15)은 어플리케이션 서버(30)(네트워크 도메인 A)에 대응한다. 온라인 게임 플랫폼(13)과 게임(15)이 로그인 상태 정보를 공유하도록 하기 위해서, 프록시 서버(20)는 클라이언트 장치(10)와 서버(30 및 40) 사이에 위치된다. 클라이언트 장치(10)와 프록시 서버(20) 사이에 웹 소켓 연결이 존재한다. 접근 요청(로그인 요청을 포함)을 분석한 것에 기초하여, 프록시 서버(20)는 상기 요청이 온라인 게임 플랫폼(13) 또는 게임(15)에서부터 인 것인지 여부를 판단하고, 어플리케이션 서버(30) 또는 어플리케이션 플랫폼 서버(40)와 통신하는 대응하는 작업 모드를 호출한다.
예를 들어, 만약 접근 요청이 온라인 게임 플랫폼(13)으로부터의 로그인 요청인 경우, 프록시 서버(20)는 HTTP 프록시 서비스(25)를 사용하여 어플리케이션 플랫폼 서버(40)와의 단기 접속을 수립하고, 이는 AJAX 기술을 사용하여 실현될 수 있다. 만약 접근 요청이 게임(15)으로부터의 로그인 요청인 경우, 프록시 서버(20)는 웹소켓 프록시 서비스(23)를 사용하여 어플리케이션 서버(30)와의 장기 접속을 수립한다. 몇몇 실시예에서, 온라인 게임 플랫폼(13)과 연관된 웹페이지는 임베디드(embedded)된 <iframe> 객체를 포함하는 <Window>객체를 갖는다. 두 객체는 프록시 서버(20)와 웹소켓 접속을 공유한다. 만약 로그인 요청이 온라인 게임 플랫폼(13)의 것인 경우, 이 때문에 나타나는 데이터 패킷 내 대응하는 비트가 존재하고, 프록시 서버(20)는 그 후에 어플리케이션 플랫폼 서버(40)와 통신한다. 그러나 사용자가 동일한 웹페이지를 어플리케이션 서버(30)에 접근하는데 사용할 때, 접근 요청은 상기 비트를 다른 것으로 대체할 것이다. 이에 대응하여, 프록시 서버(20)는 대응하는 접속을 통해 어플리케이션 서버(30)와 통신한다.
전술한 바와 같이 접속 요청이 온라인 게임 플랫폼(13)의 것인지 아니면 게임(15)의 것인지 여부에 따라서, 아래의 테이블 1과 2에서 각각 나타낸 바와 같이, 상기 데이터 패킷은 텍스트 프레임의 포멧이 되거나 2진 프레임의 포맷이 될 수 있다.
MsgHead | MsgBody | MsgEnd | |
MsgID | MsgCodeType | MsgSeq | ParamLen |
0x00 One Byte |
'j' One Byte |
Variable Length |
0xFF One Byte |
텍스트 프레임
MsgHead | MsgBody | MsgEnd | |
MsgID | MsgCodeType | MsgSeq | ParamLen |
0x80 One Byte |
'b' One Byte |
Variable Length |
Null |
2진 프레임
몇몇 실시예에서, 텍스트 프레임은 1 바이트(Byte) OxOO으로 시작하며 1 바이트 OxFF로 끝난다. 텍스트 프레임에 있는 메시지 본문(MsgBody)은 UTF8 포맷으로 변환되고 ‘J’라벨은 메시지가 JSON 표준을 사용하여 인코딩 되어 있다는 것을 의미한다. 반대로, 2진 프레임은 1 바이트 Ox80으로 시작하고 NULL로 끝난다. ‘b’라벨은 메시지가 base64 표준을 사용하여 인코딩 된 것을 의미한다.
로그인 요청의 수신 시, 프록시 서버(20)는 상기 요청이 온라인 게임 플랫폼(13)의 것인지, 게임(15)의 것인지 여부를 온라인 게임 플랫폼(13)의 요청인 것을 나타내는 ‘OxOO’ 또는 ‘j’와 게임(15)의 요청인 것을 나타내는 ‘Ox80’ 또는 ‘b’를 가지고 판단한다. 예를 들어, 프록시 서버는 데이터 패킷을 분석하고, 두번째 바이트 내 라벨이 상기 로그인 요청이 온라인 게임 플랫폼(13)의 것을 지시하는, ‘j’인지 여부를 결정한다. 다음에, 프록시 서버(20)는 상기 요청을 HTTP 프록시 서비스(25)로 전달한다. 그렇지 않거나, 두번째 바이트 내 라벨이 ‘b’이면 프록시 서버(20)는 상기 요청을 웹소켓 프록시 서비스(23)로 전달한다. 로그인 요청의 발신지를 결정한 후에, 프록시 서버(20)는 대응하는 서버와의 접속을 수립하고 뒤의 데이터 패킷들을 상기 서버로 넘긴다. 이 경우에, 프록시 서버(20)는 상기 데이터 패킷들의 어떠한 추가적인 분석을 수행할 필요가 없다. 상기 데이터 패킷들이 서버(로그인 요청에 응답할 수 있는)로부터 수신한 때, 프록시 서버(20)는 대응하는 ‘j’ 또는 ‘b’라벨을 포함하는 것인지 여부를 검사하고, 그렇지 않으면 상기 라벨을 데이터 패킷에 추가하여 상기 클라이언트 장치가 상기 응답이 어플리케이션 플랫폼 서버(40)(‘j’라벨)의 것인지 아니면 어플리케이션 서버(30)(‘b’라벨)인 것인지 판단할 수 있도록 한다.
온라인 게임 플랫폼(13)이 상기 어플리케이션 플랫폼 서버(40)로 로그인 한 후, 프록시 서버(20)는 또한 로컬 저장소를 서버(40)에 의해 반환된 로그인 키를 저장하는데 사용한다. 따라서, 사용자가 동일한 클라이언트 장치(10)에서 상기 어플리케이션 서버(30)에 접근을 시도할 때, 프록시 서버(20)는 상기 로그인 키를 어플리케이션 서버(30)와 연관된 URL에 추가하여 사용자가 어플리케이션 플랫폼 서버(40)에 의해 제공된 로그인 키를 사용하여 어플리케이션 서버(30)에 접근할 수 있도록 한다. 몇몇 실시예에서, 백앤드 서버(30 또는 40)가 로그인 요청을 인증할 때, 미리 정의된 조건(예를 들면, 빈번한 로그인 요청)이 시발점이 된다면, 검증 코드(verification code)를 클라이언트 장치(10)로 푸쉬(pushing) 하는 것에 의해 검증 프로세스를 호출할 수 있다. 로그인 요청은 검증 코드가 테스트를 통과한 후에만 인증된다. 로그인 요청이 인증된 후, 클라이언트 장치(10)는 더 많은 데이터를 대응하는 백앤드 서버들과 통신할 수 있다.
도 4는 몇몇 실시예에 따라 어플리케이션 플랫폼과 어플리케이션 사이의 로그인 상태 정보를 공유하는 것의 방법을 나타내는 다른 순서도이다. S101 단계 이전에 프록시 서버는 S100 단계에서 클라이언트 장치와 웹소켓 접속을 수립한다. S103 단계 이후에, 프록시 서버는 S104 단계에서 각각의 접속을 통하여 클라이언트 장치와 어플리케이션 플랫폼 서버 또는 어플리케이션 서버 사이의 데이터 교환을 가능하게 한다. 예를 들어, 프록시 서버(20)는 클라이언트 장치(10)로부터 교환된 데이터에 데이터 패킷들이 대응하는지를 분석하고, 상술한 라벨을 기초로 그것이 게임 플랫폼(13)의 것인지 아니면 게임(15)의 것인지를 결정한다.
도 5는 몇몇 실시예에 따라 도 3에서 도시된 프록시 서버(20)의 구성요소를 나타내는 블록도이다. 이 예에서, 프록시 서버(20)는 로그인 요청 수신 모듈(501), 로그인 요청 분석 모듈(502), 및 로그인 상태 공유 모듈(503)을 포함한다.
로그인 요청 수신 모듈(501)은 클라이언트 장치로부터 로그인 요청을 수신하도록 구성된다. 상술한 바와 같이, 클라이언트 장치와 프록시 서버 사이의 웹소켓 접속이 존재한다. 사용자가 이전에 어떠한 서버로 로그인 된 바가 없었다면, 사용자는 먼저, 어플리케이션 플랫폼과 어플리케이션 중 하나로부터 웹소켓 접속을 이용하여 프록시 서버로 로그인 요청을 제출한다. 몇몇 실시예에서, 상기 로그인 요청은 하나 이상의 관련된 데이터 패킷들을 포함하고, 상기 데이터 패킷들 중 적어도 하나는 프록시 서버를 위한 로그인 요청 타입 비트를 포함하여 상기 로그인 요청이 어플리케이션 플랫폼에 의해 개시된 것인지 아니면 어플리케이션에 의해 개시된 것인지 여부를 판단하도록 한다.
로그인 요청 분석 모듈(502)은 상기 로그인 요청의 발신지를 결정하기 위해서 로그인 요청을 분석하도록 구성된다. 예를 들어, 로그인 요청 분석 모듈(502)은 로그인 요청을 전달하는 데이터 패킷으로부터 로그인 요청 타입 비트를 요구한다 . 후술되는 바와 같이, 로그인 요청 타입 비트에 저장된 데이터는 상기 로그인 요청이 어플리케이션 플랫폼의 것인지 아니면 어플리케이션의 것인지 여부를 나타낸다. 상기 정보를 기초로, 로그인 요청 분석 모듈(502)은 로그인 요청을 어플리케이션 플랫폼 서버로 전달할 것인지 아니면 어플리케이션 서버로 전달할 것인지 여부를 결정한다.
로그인 상태 공유 모듈(503)은 로그인 요청의 발신지를 기반으로 어플리케이션 플랫폼 서버 또는 어플리케이션 서버와의 접속을 수립하도록 구성되어 로그인 상태를 어플리케이션 플랫폼과 어플리케이션 사이에 공유하도록 한다. 예를 들어, 로그인 요청이 어플리케이션 플랫폼의 것인 때, 로그인 상태 공유 모듈(503)은 어플리케이션 플랫폼 서버와의 접속을 수립하고, 로그인 요청이 어플리케이션의 것인 때, 로그인 상태 공유 모듈(503)은 어플리케이션 서버와의 접속을 수립한다. 이렇게 함으로써, 프록시 서버는 어플리케이션 플랫폼과 어플리케이션에 의해 공유되는 “전달자”가 되어 그들 각각의 서버들과 통신하도록 한다. 어플리케이션 플랫폼 또는 어플리케이션이 대응하는 서버로 로그인 된 후, 로그인 상태 공유 모듈(503)은 대응하는 로그인 키를 서버로부터 수신하고, 어플리케이션 플랫폼이나 어플리케이션의 로그인 상태를 기록한다. 더욱이 로그인 상태 공유 모듈(503)은 또한 로그인 키를 다른 서버로 전달하여 두개의 서로 다른 네트워크 도메인에 위치하는 구대의 서버가 서로 상기 로그인 상태 정보를 공유할 수 있도록 한다.
도 6은 몇몇 실시예에 따라 도 5에 도시된 프록시 서버에서 로그인 요청 분석 모듈(502)의 구성을 나타내는 블록도이다. 이 실시예에서, 로그인 요청 분석 모듈(502)은 데이터 패킷 추출 유닛(5021), 로그인 요청 타입 식별 유닛(5022), 및 로그인 요청 타입 판정 유닛(5023)을 포함한다. 데이터 패킷 추출 유닛(5021)은 로그인 요청을 전달하는 데이터 패킷으로부터 헤더를 추출하도록 구성된다. 로그인 요청 타입 식별 유닛(5022)은 데이터패킷의 헤더에서 로그인 요청 타입 비트를 식별하도록 구성된다. 로그인 요청 타입 판정 유닛(5023)은 로그인 요청 타입 비트에 따라서 상기 로그인 요청이 어플리케이션 플랫폼에 연관된 것인지 아니면 어플리케이션에 연관된 것인지 여부를 결정하도록 구성된다.
도 7은 몇몇 실시예에 따라서 도5에 도시된 프록시 서버에서 로그인 상태 공유 모듈(503)의 구성요소를 나타내는 블록도이다. 이 예에서, 로그인 상태 공유 모듈(503)은 접속 수립 유닛(5031), 로그인 요청 전송 유닛(5032), 로그인 응답 수신 유닛(5033), 로그인 상태 공유 유닛(5034)을 포함한다. 접속 수립 유닛(5031)은 HTTP 프록시 서비스와 같은 것을 사용하여 어플리케이션 플랫폼 서버와의 단기 접속을 수립하거나 웹소켓 프록시 서비스와 같은 것을 사용하여 어플리케이션 플랫폼 서버와의 장기 접속을 수립하도록 구성된다. 로그인 요청 전송 유닛(5032)은 대응하는 접속을 통해서 어플리케이션 플랫폼 서버로 로그인 요청을 전송하거나 대응하는 접속을 통해 어플리케이션 서버로 로그인 요청을 전송하도록 구성된다. 로그인 요청이 성공된 후 로그인 응답 수신 유닛(5033)은 어플리케이션 플랫폼 서버나 어플리케이션 서버로부터 로그인 키를 수신하도록 구성된다. 로그인 상태 공유 유닛(5034)은 로그인 요청을 제출한 클라이언트 장치로 로그인 키를 반환하도록 구성된다.
도 8은 몇몇 실시예에 따라 도 3에 도시된 프록시 서버의 구성요소를 나타내는 다른 블록도이다. 도 5와 관련하여 상술한 모듈 외에도 프록시 서버는 또한 클라이언트 장치와 웹소켓 접속을 수립하기 위한 접속 수립 모듈(500)과 각각의 접속을 통해서 클라이언트 장치와 어플리케이션 플랫폼 서버나 어플리케이션 서버 사이의 데이터 교환을 가능하게 하기 위한 통신 프록시 모듈(504)을 포함한다.
도 9는 몇몇실시예에 따라 어플리케이션 플랫폼 서버와 어플리케이션 서버 사이에 로그인 상태를 공유하는 매커니즘을 구현하기 위한 클라이언트-서버 네트워크 환경을 나타내는 다른 블록도이다. 클라이언트 장치(10)는 로그인 요청을 프록시 서버(20)로 전송한다. 로그인 요청 수신시, 프록시 서버는 요청이 어플리케이션(15)의 것인지 아니면 어플리케이션 플랫폼(13)의 것인지 여부를 결정한 후, 그에 따라 대응하는 서버(어플리케이션 서버(30)또는 어플리케이션 플랫폼 서버(40))와의 접속을 수립한다. 요청이 어플리케이션 플랫폼 서버(40)로 향하게 된다면, 어플리케이션 플랫폼 서버(40)는 상기 로그인 요청을 처리하여 사용자의 어플리케이션 플랫폼 서버(40)로의 접근을 인증하도록 한다. 만약 상기 요청이 어플리케이션 서버(30)로 향하게 된다면, 어플리케이션 서버(30)는 상기 로그인 요청을 처리하여 사용자의 어플리케이션 서버(30)로의 접근을 인증하도록 한다. 어플리케이션 플랫폼 서버(30) 또는 어플리케이션 서버(40)는 그 후에 로그인 키를 프록시 서버(20)로 반환한다. 한편, 프록시 서버(20)는 로그인 키를 클라이언트 장치(10)로 반환하여 앞으로 접근 요청은 추가적인 사용자의 계정 정보 제공하는 것 없이 상기 로그인 키를 사용할 수 있도록 한다. 이는 서버에 저장된 기밀 정보의 보안을 눈에 띄게 향상 시킬 수 있다. 또 다른 면은, 프록시 서버(20)는 로컬저장소에 상기 로그인 키를 저장하고, 상기 로그인 키를 향후 인증 목적으로 다른 서버에 전달할 수 있다. 이렇게 함으로써, 종래의 크로스-도메인 방문에 의해 요구되는 인증 수행으로부터 더 많은 네트워크 대역폭이 절약된다.
도 10은 몇몇 실시에에 따른 도 3에 도시된 프록시 서버의 구성요소들을 나타내는 또 다른 블록도이다. 컴퓨팅 장치(600)는 전형적으로 하나 이상의 프로세싱 유닛들(CPU’s)(602), 하나 이상의 네트워크나 다른 통신 인터페이스(604), 메모리(610) 및 이들 구송요소들을 상호 연결 하기 위한 하나 이상의 통신 버스(609)를 포함한다. 통신 버스(609)는 (때때로 칩셋(chipset)이라고 함)시스템 구성요소간 통신을 상호 연결하고 제어하는 회로를 포함할 수 있다. 컴퓨팅 장치(600)는 사용자의 입력 장치(605), 예를 들어, 디스플레이(606) 및 키보드(608)를 포함할 수 있다. 메모리(610)는 고속 랜덤 액세스 메모리(high speed access memory)를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치와 같은 비-휘발성 메모리를 포함할 수 있다. 메모리(610)는 CPU’s(602)로부터 떨어져 위치하는 대형 저장소를 포함할 수 있다. 몇몇 실시예에서 메모리(610 ), 또는 대안으로 메모리(610) 내 비-휘발성 메모리 장치는 비-휘발성 컴퓨터 판독 가능한 저장 매체를 포함한다. 메모리(610) 또는 메모리(610)의 컴퓨터 판독 가능한 저장매체는 다음의 요소 또는 이들 요소의 서브셋을 저장하고, 또한 추가적인 요소를 포함할 수 있다.
●
운영체제(612), 하드웨어에 종속된 업무를 수행하고, 다양한 기본 시스템 서비스를 다루기 위한 절차를 포함
●
네트워크 통신 모듈(614), 컴퓨팅 장치(600)가 원격 서버(예를 들어 온라인 게임 서버) 또는 인터넷, 다른 광역 네트워크, 근거리 통신망, 기타 도시권 네트워크와 같은 하나 이상의 통신 네트워크(유선 또는 무선)를 통해 다른 컴퓨터에 접속하는데 사용됨
●
사용자 인터페이스 모듈(616), 사용자 인터페이스(605)를 통해서 사용자 입력을 수신하도록 구성됨.
●
로그인 상태 공유 어플리케이션(618), 클라이언트 장치에 서로 다른 프로그램이 그들의 로그인 상태 정보를 공유하도록 허용하되, 몇몇 실시예에서, 로그인 상태 공유 어플리케이션(618)은
-
도 1과 도 5와 관련하여 상술한 로그인 요청 수신 모듈(501)
-
도 1과 도 5와 관련하여 상술한 로그인 요청 분석 모듈(502), 도 6과 관련하여 상술된 패킷 추출 유닛(5021), 정보 식별 유닛(5022), 로그인 요청 발신지 판정 유닛(5023)을 더 포함하는 로그인 요청 분석 모듈(502)
-
도 1과 도5를 참조하여 상술한 로그인 상태 공유 모듈(503), 도 7과 관련하여 상술한 전송 유닛(5032), 응답 유닛(5033), 및 정보 공유 유닛(5034)를 더 포함하는 로그인 상태 공유 모듈(503)
상기 방법 및 시스템은 오디오 파일 및 상기 오디오 파일의 재생 시간으로부터 이벤트-트리거링(event-triggering) 횟수를 검색하고, 이벤트 트리거링 횟수와 재생 시간을 비교하는 것에 의해 그래픽 사용자 인터페이스에 대한 이벤트 위치의 표시를 제어하는 것을 주목하자 . 재생 시간이 서로 다른 프레임들과 관련된 시간을 누적환 결과가 아니라 현재 오디오 파일의 재생 위치에 대응하기 때문에, 종래의 접근법과 연관된 재생 시간 및 이벤트-트리거링 횟수 사이에 시간차를 효과적으로 회피될 수 있다.
특정 실시예들이 상기에서 서술되었지만, 그것은 이러한 특정 실시예로 본 발명을 제한하려는 의도는 아닌 것으로 이해되어야 할 것이다. 반대로, 본 발명은 첨부 된 청구 범위의 사상 및 범위 내에 있는 대안, 변형, 균등한 사항을 포함한다. 다수의 특정 세부사항은 본 명세서 주제의 완벽한 이해를 제공하기 위해서 설명된다. 그러나 요지는 이들 특정 세부 사항 없이도 실시 될 수 있음이 당업자에게 명백할 것이다. 다른 예에서 잘 알려진 방법, 절차, 구성요소 및 회로는 실시예의 양상을 불필요하게 명확하게 하지 않기 위해서 상세하게 설명되지 않았다.
본 발명의 설명에서 사용되는 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 발명의 상세한 설명 및 첨부된 청구항에서 사용된 것으로서, 단수 형태는 내용상 명백히 다르게 제시하지 않는 한, 복수형을 포함하는 것으로 의도된다. 또한, 본원에 사용된 것으로 “및/또는” 용어는 하나 이상의 관련된 리스트 항목들의 모든 가능한 조합들을 지시하거나 포함한다.이 명세서에서 사용될 때, ”포함하는”, “포함”, “포함한다” 및 또는 “포함하면서” 용어는 명시된 기능, 동작, 구성 요소 및/또는 성분의 존재를 특정하지만, 이들의 존재 또는 하나 이상의 기능, 동작, 구성 요소, 성분, 및또는 그들의 그룹들의 첨가를 배제하지 않음은 명백히 이해될 것이다.
여기서 사용된 것으로, “만약에” 용어는 문맥에 따라서, 언급된 선행 조건이 참인 “하면” 또는 “때” “판단에 응답하여” 또는 “결정에 따라” 또는 “감지에 응답하여”를 의미하는 것으로 이해될 수 있다. 유사하게, “[언급된 선행 조건이 참]인 것으로 판단된다면” 또는 “[언급된 선행 조건이 참] 이라면” 또는 “[언급된 선행 조건이 참]인 때”의 구문은 문맥에 따라서 언급된 선행 조건이 참인 “결정시” 또는 “결정에 응답하여” 또는 “결정에 따라서” 또는 “감지된 때” 또는 “감지에 응답하여”를 의미하는 것으로 이해될 수 있다.
다양한 도면들의 몇몇은 특정 순서 내 논리적인 단계의 숫자를 나타내지만, 순서에 의존하지 않은 단계는 재배열될 수 있고, 다른 단계는 조합되거나 세분화 될 수 있다. 일부 재정렬 또는 다른 그룹핑이 특별히 언급되고 있지만, 다른 예는 당업자에게 명백할 것이며, 그래서 대안들의 완전한 목록을 제시하지 않는다. 더욱이, 단계가 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합으로 구현될 수 있음을 인식해야 한다.
전술한 설명은 설명의 목적을 위해, 특정 실시 예들을 참조하여 설명되었다. 그러나, 상기 예시적인 논의가 개시된 정확한 형태로 본 발명을 한정하는 것은 아니다. 많은 수정 및 변형이 상기 개시의 관점에서 가능하다. 실시예들은 본 발명의 원리 및 그것의 실제적인 응용들을 최선으로 설명하기 위해서 선택되고 서술되었고, 그리하여 당업자가 특정 용도에 맞는 다양한 변형들로 본 발명 및 다양한 실시 예를 최적으로 활성화 할 수 있게 한다.
클라이언트 장치
10
프록시 서버 20
게임 플랫폼 13
게임 15
어플리케이션 서버 30
어플리케이션 플랫폼 서버 40
프록시 서버 20
게임 플랫폼 13
게임 15
어플리케이션 서버 30
어플리케이션 플랫폼 서버 40
Claims (20)
- 클라이언트 장치로부터 로그인 요청을 수신하는 단계;
상기 로그인 요청을 분석하여 상기 로그인 요청이 클라이언트 장치의 어플리케이션 플랫폼과 연관된 것인지 아니면 클라이언트 장치의 어플리케이션과 연관된 것인지 결정하되, 상기 어플리케이션 은 상기 어플리케이션 플랫폼에 의해 관리되는 로그인 요청 분석 단계;
상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 것인 경우:
어플리케이션 플랫폼 서버와 제1 접속을 수립하는 단계;
상기 로그인 요청을 상기 어플리케이션 플랫폼 서버로 전달하는 단계;
상기 어플리케이션 플랫폼 서버로부터 로그인 키를 수신하는 단계; 및
상기 클라이언트 장치로 상기 로그인 키를 반환하는 단계로서, 상기 로그인 키는 상기 어플리케이션 플랫폼과 연관된 것인 로그인 키를 반환하는 단계;
상기 로그인 요청이 상기 어플리케이션과 연관된 것인 경우:
어플리케이션 서버와 제2 접속을 수립하는 단계로서, 상기 어플리케이션 서버는 상기 어플리케이션 플랫폼 서버와 구별되는 것인 제2 접속을 수립하는 단계;
상기 어플리케이션 서버로 상기 로그인 요청을 전달하는 단계;
상기 어플리케이션 서버로부터 로그인 키를 수신하는 단계; 및
상기 로그인 키를 상기 클라이언트 장치로 반환하되, 상기 로그인 키는 상기 어플리케이션과 연관된 것인 로그인 키를 반환하는 단계를 포함하는,
하나 이상의 프로세서 및 상기 프로세서에 의해 수행되는 프로그램들을 저장하는 메모리를 가지는 컴퓨터로 구현된 방법. - 제1 항에 있어서,
상기 로그인 요청을 분석하는 단계는,
상기 로그인 요청을 전달하는 데이터 패킷으로부터 헤더를 추출하는 단계;
상기 헤더 내 로그인 요청 타입 비트를 식별하는 단계; 및
상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 것인지 아니면 상기 어플리케이션과 연관된 것인지 상기 로그인 요청 타입 비트에 따라서 결정하는 단계를 더 포함하는, 컴퓨터로 구현된 방법. - 제2 항에 있어서,
상기 로그인 요청을 전달하는 데이터 패킷이 상기 어플리케이션 플랫폼과 연관된 것이라면, 상기 데이터 패킷은 하나 이상의 텍스트 프레임의 포맷이고,
상기 로그인 요청을 전달하는 데이터 패킷이 상기 어플리케이션과 연관된 것이라면, 상기 데이터 패킷은 하나 이상의 2진 프레임의 포맷인, 컴퓨터로 구현된 방법. - 제1 항에 있어서,
상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 것인 경우:
상기 로그인 키를 상기 어플리케이션 서버로 전달하는 단계로서, 상기 로그인 키는 상기 어플리케이션과 연관된 접근 요청을 인증하는데 사용되는 로그인 키를 전달하는 단계;
상기 로그인 요청이 상기 어플리케이션과 연관된 것인 경우:
상기 어플리케이션 플랫폼 서버로 상기 로그인 키를 전달하는 단계로서, 상기 로그인 키는 상기 어플리케이션 플랫폼과 연관된 접근 요청을 인증하는데 사용되는 것인 로그인 키를 전달하는 단계를 더 포함하는, 컴퓨터로 구현된 방법. - 제1 항에 있어서,
상기 어플리케이션 플랫폼 서버 및 상기 어플리케이션 서버 중 어느 하나로부터 상기 로그인 요청에 대한 응답을 수신하는 단계;
로그인 요청 타입 비트를 상기 응답에 추가하는 것에 의해 상기 응답을 업데이트하는 단계로서, 상기 로그인 요청 타입 비트는 상기 응답이 상기 어플리케이션 플랫폼 서버의 것인지 아니면 상기 어플리케이션 서버의 것인지를 나타내는 응답을 업데이트 하는 단계;
상기 클라이언트 장치로 상기 업데이트 된 응답을 전달하는 단계로서, 상기 로그인 요청 타입 비트는 상기 응답이 상기 어플리케이션 플랫폼에 의해 처리되어야만 하는 것인지 아니면 상기 어플리케이션에 의해 처리되어야만 하는 것인지를 나타내는, 업데이트 된 응답을 전달하는 단계를 더 포함하는, 컴퓨터로 구현된 방법. - 제1 항에 있어서,
상기 로그인 요청은 웹소켓 프로토콜-기반 접속을 통해 상기 클라이언트 장치에서 상기 컴퓨터로 전송된 것인, 컴퓨터로 구현된 방법. - 제1 항에 있어서,
상기 어플리케이션 플랫폼 서버와의 제1 접속은, 단기 접속이고,
상기 어플리케이션 서버와의 제2 접속은 장기 접속인, 컴퓨터로 구현된 방법. - 제7 항에 있어서,
상기 제1 접속은, AJAX 프로토콜에 따라 구현된 것이고,
상기 제2 접속은, 웹소켓 프로토콜에 따라 구현된 것인, 컴퓨터로 구현된 방법. - 하나 이상의 프로세서;
메모리; 및
상기 메모리 내 저장되고 상기 하나 이상의 프로세서들에 의해 수행되도록 구성된 하나 이상의 프로그램들,
상기 하나 이상의 프로그램들은
클라이언트 장치로부터 로그인 요청을 수신하고;
상기 로그인 요청을 분석하여 상기 로그인 요청이 상기 클라이언트 장치 내 어플리케이션 플랫폼과 연관된 것인지 아니면 상기 클라이언트 장치 내 어플리케이션과 연관된 것인지를 결정하는 로그인 요청을 분석하는 단계로서, 상기 어플리케이션은 상기 어플리케이션 플랫폼에 의해 관리되는 것인 로그인 요청을 분석하는 단계;
상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 경우:
상기 어플리케이션 플랫폼 서버와의 제1 접속을 수립하는 단계;
상기 로그인 요청을 상기 어플리케이션 플랫폼 서버로 전달하는 단계;
상기 어플리케이션 플랫폼 서버로부터 로그인 키를 수신하는 단계; 및
상기 클라이언트 장치로 상기 로그인 키를 반환하는 단계로서, 상기 로그인 키는 상기 어플리케이션 플랫폼과 연관된 것인 로그인 키를 반환하는 단계;
상기 로그인 요청이 상기 어플리케이션과 연관된 것인 경우:
어플리케이션 서버와 제2 접속을 수립하는 단계로서, 상기 어플리케이션 서버는 상기 어플리케이션 플랫폼 서버와 구별되는 것인 제2 접속을 수립하는 단계;
상기 로그인 요청을 상기 어플리케이션 서버로 전달하는 단계;
상기 어플리케이션 서버로부터 로그인 키를 수신하는 단계; 및
상기 클라이언트 장치로 상기 로그인 키를 반환하는 단계로서, 상기 로그인 키는 상기 어플리케이션과 연관된 것인 로그인 키를 반환하는 단계를 위한 명령어들을 포함하는, 컴퓨터 시스템. - 제9 항에 있어서,
상기 로그인 요청을 분석하기 위한 명령어는,
상기 로그인 요청을 전달하는 데이터 패킷으로부터 헤더를 추출하는 단계;
상기 헤더 내 로그인 요청 타입 비트를 식별하는 단계; 및
상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 것인지 아니면 상기 어플리케이션과 연관된 것인지 상기 로그인 요청 타입 비트를 기반으로 결정하는 단계를 위한 명령어를 더 포함하는, 컴퓨터 시스템. - 제9 항에 있어서,
상기 하나 이상의 프로그램들은,
상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 경우:
상기 어플리케이션 서버로 상기 로그인 키를 전달하는 단계로서, 상기 로그인 키는 상기 어플리케이션과 연관된 접근 요청을 인증하는데 사용되는 것인 로그인 키를 전달하는 단계;
상기 로그인 요청이 상기 어플리케이션과 연관된 것인 경우:
상기 어플리케이션 플랫폼 서버로 상기 로그인 키를 전달하는 단계로서, 상기 로그인 키는 상기 어플리케이션 플랫폼과 연관된 접근 요청을 인증하는데 사용되는 것인, 로그인 키를 전달하는 단계를 수행하는 것에 대한 명령어들을 더 포함하는, 컴퓨터 시스템. - 제9 항에 있어서,
상기 하나 이상의 프로그램들은,
상기 어플리케이션 플랫폼 서버와 상기 어플리케이션 서버 중 어느 하나로부터 상기 로그인 요청에 대한 응답을 수신하는 단계;
상기 로그인 요청 타입 비트를 상기 응답에 추가하는 하는 것에 의해 상기 응답을 업데이트 하는 단계로서, 상기 로그인 요청 타입 비트는 상기 응답이 상기 어플리케이션 플랫폼 서버의 것인지 또는 상기 어플리케이션 서버의 것인지를 나타내는 것인 응답을 업데이트 하는 단계;
상기 클라이언트 장치에 상기 업데이트 된 응답을 전달하는 단계로서, 상기 로그인 요청 타입 비트는 상기 응답이 상기 어플리케이션 플랫폼에 의해 수행되어야 하는 것인지 아니면 어플리케이션에 의해 수행되어야 하는 것인지를 나타내는 업데이트 된 응답을 전달하는 단계에 대한 명령어들을 더 포함하는, 컴퓨터 시스템. - 제9 항에 있어서,
상기 로그인 요청은, 웹소켓 프로토콜-기반 접속을 통해 상기 클라이언트 장치로부터 상기 컴퓨터로 전송된 것인 컴퓨터 시스템. - 제9 항에 있어서,
상기 어플리케이션 플랫폼 서버와의 제1 접속은 단기 접속이고,
상기 어플리케이션 서버와의 제2 접속은 장기 접속인 컴퓨터 시스템. - 제14 항에 있어서,
상기 제1 접속은 AJAX 프로토콜에 따라 구현된 것이고,
상기 제2 접속은 웹소켓 프로토콜에 따라 구현된 것인 컴퓨터 시스템. - 컴퓨터 시스템의 하나 이상의 프로세서들에 의해 수행되는 하나 이상의 프로그램들을 저장하고, 상기 하나 이상의 프로그램들은,
클라이언트 장치로부터 로그인 요청을 수신하는 단계;
상기 로그인 요청을 분석하여 상기 로그인 요청이 클라이언트 장치 내 어플리케이션 플랫폼과 연관된 것인지 아니면 상기 클라이언트 장치 내 어플리케이션과 연관된 것인지 결정하는 로그인 요청을 분석하는 단계로서, 상기 어플리케이션은 상기 어플리케이션 플랫폼에 의해 관리되는 것인 로그인 요청을 분석하는 단계;
상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 경우:
어플리케이션 플랫폼 서버와의 제1 접속을 수립하는 단계;
상기 어플리케이션 플랫폼 서버로 상기 로그인 요청을 전송하는 단계;
상기 어플리케이션 플랫폼 서버로부터 로그인 키를 수신하는 단계; 및
상기 클라이언트 장치로 상기 로그인 키를 반환하는 단계로서, 상기 로그인 키는 상기 어플리케이션 플랫폼과 연관된 것인 로그인 키를 반환하는 단계;
상기 로그인 요청이 상기 어플리케이션과 연관된 경우:
어플리케이션 서버와의 제2 접속을 수립하는 단계로서, 상기 어플리케이션 서버는 상기 어플리케이션 플랫폼 서버와 구별되는 것인 제2 접속을 수립하는 단계;
상기 로그인 요청을 상기 어플리케이션 서버로 전달하는 단계;
상기 어플리케이션 서버로부터 로그인 키를 수신하는 단계; 및
상기 클라이언트 장치로 상기 로그인 키를 반환하는 단계로서, 상기 로그인 키는 상기 어플리케이션과 연관된 것인 로그인 키를 반환하는 단계에 대한 명령어들을 포함하는
컴퓨터 판독가능한 비-일시적인 저장 매체. - 제16 항에 있어서,
상기 로그인 요청을 분석하는 단계를 위한 명령어는,
상기 로그인 요청을 전달하는 데이터 패킷으로부터 헤더를 추출하는 단계;
상기 헤더 내 로그인 요청 타입 비트를 식별하는 단계; 및
상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 것인지 아니면 상기 어플리케이션과 연관된 것인지 상기 로그인 요청 타입 비트를 기반으로 결정하는 단계에 대한 명령어들을 더 포함하는,
컴퓨터 판독가능한 비-일시적인 저장 매체. - 제16 항에 있어서,
상기 하나 이상의 프로그램들은,
상기 로그인 요청이 상기 어플리케이션 플랫폼과 연관된 것인 경우:
상기 어플리케이션 서버로 상기 로그인 키를 전달하는 단계로서, 상기 로그인 키는 상기 어플리케이션과 연관된 접근 요청을 인증하는데 사용되는 로그인 키를 전달하는 단계;
상기 로그인 요청이 상기 어플리케이션과 연관된 것인 경우:
상기 어플리케이션 플랫폼 서버로 상기 로그인 키를 전달하는 단계로서, 상기 로그인 키는 상기 어플리케이션 플랫폼과 연관된 접근 요청을 인증하는데 사용되는 것인 로그인 키를 전달하는 단계에 대한 명령어들을 더 포함하는,
컴퓨터 판독가능한 비-일시적인 저장 매체. - 제16 항에 있어서,
상기 하나 이상의 프로그램들은,
상기 어플리케이션 플랫폼 서버 및 상기 어플리케이션 서버 중 어느 하나로부터 상기 로그인 요청에 대한 응답을 수신하는 단계;
로그인 요청 타입 비트를 상기 응답에 추가하여 상기 응답을 업데이트 하는 단계로서, 상기 로그인 요청 타입 비트는 상기 응답이 상기 어플리케이션 플랫폼 서버의 것인지 아니면 상기 어플리케이션 서버의 것인지를 나타내는 것인 응답을 업데이트 하는 단계;
상기 클라이언트 장치로 상기 업데이트 된 응답을 전달하는 단계로서, 상기 로그인 요청 타입 비트는 상기 응답이 상기 어플리케이션 플랫폼에 의해서 수행되어야 하는지 아니면 상기 어플리케이션에 의해 수행되어야 하는 것인지를 나타내는 것인 업데이트 된 응답을 전달하는 단계에 대한 명령어들을 더 포함하는,
컴퓨터 판독가능한 비-일시적인 저장 매체. - 제16 항에 있어서,
상기 어플리케이션 플랫폼 서버와의 제1 접속은 단기 접속이고,
상기 어플리케이션 서버와의 제2 접속은 장기 접속인,
컴퓨터 판독가능한 비-일시적인 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210334289.1A CN103685175B (zh) | 2012-09-11 | 2012-09-11 | 应用平台与应用共享登录态的方法、代理服务器及系统 |
CN201210334289.1 | 2012-09-11 | ||
PCT/CN2013/083180 WO2014040522A1 (en) | 2012-09-11 | 2013-09-10 | System and method for sharing login status between an application platform and an application |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150052286A true KR20150052286A (ko) | 2015-05-13 |
KR101556619B1 KR101556619B1 (ko) | 2015-10-01 |
Family
ID=50277619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157008730A KR101556619B1 (ko) | 2012-09-11 | 2013-09-10 | 어플리케이션 플랫폼과 어플리케이션 사이의 로그인 상태를 공유하기 위한 시스템 및 방법 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP2895981B1 (ko) |
JP (1) | JP5867841B2 (ko) |
KR (1) | KR101556619B1 (ko) |
CN (1) | CN103685175B (ko) |
TW (1) | TWI510272B (ko) |
WO (1) | WO2014040522A1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3127332B1 (en) * | 2014-04-04 | 2019-11-27 | Systems and Software Enterprises, LLC | Mobile device in-flight entertainment connection |
CN104601437A (zh) * | 2014-04-30 | 2015-05-06 | 腾讯科技(深圳)有限公司 | 聊天信息传输方法及装置、聊天信息推送方法及服务器 |
US9824136B2 (en) * | 2014-09-19 | 2017-11-21 | Microsoft Technology Licensing, Llc | Dynamic application containers |
CN105704001A (zh) * | 2014-11-25 | 2016-06-22 | 上海天脉聚源文化传媒有限公司 | 一种微信服务器消息分发方法及系统 |
US11196711B2 (en) * | 2017-07-21 | 2021-12-07 | Fisher-Rosemount Systems, Inc. | Firewall for encrypted traffic in a process control system |
CN108170537B (zh) * | 2017-12-06 | 2021-02-02 | 北京像素软件科技股份有限公司 | 游戏api实现方法、装置、接口服务器及可读存储介质 |
CN109639740B (zh) * | 2019-01-31 | 2022-02-22 | 平安科技(深圳)有限公司 | 一种基于设备id的登录态共享方法及装置 |
CN110659463B (zh) * | 2019-08-23 | 2021-11-12 | 苏州浪潮智能科技有限公司 | 一种无状态系统的分布式运行的方法及装置 |
CN112619129B (zh) * | 2020-12-18 | 2023-09-19 | 咪咕互动娱乐有限公司 | 云游戏运行方法、服务器及存储介质 |
CN114172958B (zh) * | 2021-11-19 | 2023-10-20 | 云从科技集团股份有限公司 | 隐私计算节点、系统、方法、装置以及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8002617B1 (en) * | 1999-09-27 | 2011-08-23 | Nokia Corporation | Sponsored network games |
US7174383B1 (en) * | 2001-08-31 | 2007-02-06 | Oracle International Corp. | Method and apparatus to facilitate single sign-on services in a hosting environment |
GB0308991D0 (en) * | 2003-04-17 | 2003-05-28 | Psion Digital Ltd | A data access replication or communication system comprising a distributed software application |
US7534169B2 (en) * | 2005-07-08 | 2009-05-19 | Cfph, Llc | System and method for wireless gaming system with user profiles |
JP2005332233A (ja) * | 2004-05-20 | 2005-12-02 | Nippon Telegr & Teleph Corp <Ntt> | 複数サービス事業者アプリケーションへの共通機能を提供するサービス提供システム、その方法、サービス提供装置、その方法、ならびにそのプログラムおよび記録媒体 |
KR100906109B1 (ko) * | 2007-06-20 | 2009-07-07 | 엔에이치엔(주) | 3a 기반의 다양한 어플리케이션 상태를 제공하는유비쿼터스 프리젠스 서비스 방법 및 시스템 |
CN101355527A (zh) * | 2008-08-15 | 2009-01-28 | 深圳市中兴移动通信有限公司 | 一种跨域名单点登录的实现方法 |
TWI364202B (en) * | 2008-12-17 | 2012-05-11 | Ind Tech Res Inst | Single sign-on method and system for web browser |
CN101783873A (zh) * | 2009-01-19 | 2010-07-21 | 北京视典无限传媒技术有限公司 | 数字化多媒体信息传输平台 |
TWI421118B (zh) * | 2010-10-01 | 2014-01-01 | Xpec Entertainment Inc | Online gaming system and method of resources to handle online games |
JP5620781B2 (ja) * | 2010-10-14 | 2014-11-05 | キヤノン株式会社 | 情報処理装置、その制御方法、及びプログラム |
CN102469080B (zh) * | 2010-11-11 | 2015-07-15 | 中国电信股份有限公司 | 实现通行证用户安全登录应用客户端的方法和系统 |
US9854055B2 (en) * | 2011-02-28 | 2017-12-26 | Nokia Technologies Oy | Method and apparatus for providing proxy-based content discovery and delivery |
-
2012
- 2012-09-11 CN CN201210334289.1A patent/CN103685175B/zh active Active
-
2013
- 2013-09-04 TW TW102131944A patent/TWI510272B/zh active
- 2013-09-10 WO PCT/CN2013/083180 patent/WO2014040522A1/en active Application Filing
- 2013-09-10 JP JP2015530285A patent/JP5867841B2/ja not_active Expired - Fee Related
- 2013-09-10 KR KR1020157008730A patent/KR101556619B1/ko active IP Right Grant
- 2013-09-10 EP EP13837771.8A patent/EP2895981B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2895981A4 (en) | 2015-10-07 |
JP5867841B2 (ja) | 2016-02-24 |
EP2895981B1 (en) | 2017-03-01 |
CN103685175B (zh) | 2017-12-01 |
CN103685175A (zh) | 2014-03-26 |
TWI510272B (zh) | 2015-12-01 |
KR101556619B1 (ko) | 2015-10-01 |
EP2895981A1 (en) | 2015-07-22 |
TW201410304A (zh) | 2014-03-16 |
JP2015532984A (ja) | 2015-11-16 |
WO2014040522A1 (en) | 2014-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101556619B1 (ko) | 어플리케이션 플랫폼과 어플리케이션 사이의 로그인 상태를 공유하기 위한 시스템 및 방법 | |
US10397239B2 (en) | Secure access to cloud-based services | |
US9088559B2 (en) | System and method for sharing login status between an application platform and an application | |
CN103959706B (zh) | 朝向内容消费者迁移经过认证的内容 | |
US9148414B1 (en) | Credential management in a multi-tenant environment | |
US10536446B2 (en) | Single authentication to a multi-tenancy single-page cloud application | |
US20100100950A1 (en) | Context-based adaptive authentication for data and services access in a network | |
US9584615B2 (en) | Redirecting access requests to an authorized server system for a cloud service | |
US20080301784A1 (en) | Native Use Of Web Service Protocols And Claims In Server Authentication | |
US10757107B2 (en) | Application-assisted login for a web browser | |
US20100043065A1 (en) | Single sign-on for web applications | |
US8738711B2 (en) | System and method for redirecting client-side storage operations | |
US20150358328A1 (en) | Secure local server for synchronized online content management system | |
US10659516B2 (en) | Data caching and resource request response | |
US20170325089A1 (en) | Method and system of user authentication and end to end encryption using device synchronization | |
US11916905B2 (en) | Secure identity provider authentication for native application to access web service | |
US9485234B1 (en) | Virtualized endpoints in a multi-tenant environment | |
CN108259457A (zh) | 一种web认证方法及装置 | |
US10659235B1 (en) | Distributed endpoint authentication | |
CN114244607B (zh) | 单点登录方法、系统、设备、介质和程序 | |
US20240275786A1 (en) | Systems and Methods for WebAuthn Transport Via a WebAuthn Proxy | |
Guyang et al. | Research on WebSocket-Based Authentication System | |
KR100589994B1 (ko) | P2p 네트워크 상의 컨텐츠 어드레싱 시스템 및 그 방법 | |
JP2013257625A (ja) | 認証要求変換装置および認証要求変換方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180920 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190919 Year of fee payment: 5 |