KR102476005B1 - 가상의 원격 브라우저 서비스 제공 방법 및 이를 수행하는 클라우드 서버 - Google Patents

가상의 원격 브라우저 서비스 제공 방법 및 이를 수행하는 클라우드 서버 Download PDF

Info

Publication number
KR102476005B1
KR102476005B1 KR1020210006789A KR20210006789A KR102476005B1 KR 102476005 B1 KR102476005 B1 KR 102476005B1 KR 1020210006789 A KR1020210006789 A KR 1020210006789A KR 20210006789 A KR20210006789 A KR 20210006789A KR 102476005 B1 KR102476005 B1 KR 102476005B1
Authority
KR
South Korea
Prior art keywords
browser
web page
user terminal
data
cloud server
Prior art date
Application number
KR1020210006789A
Other languages
English (en)
Other versions
KR20220104462A (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 주식회사 이알마인드
Priority to KR1020210006789A priority Critical patent/KR102476005B1/ko
Publication of KR20220104462A publication Critical patent/KR20220104462A/ko
Application granted granted Critical
Publication of KR102476005B1 publication Critical patent/KR102476005B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은, 원격 브라우저 서비스 제공 방법에 관한 것으로서, 브라우저 접속 데이터를 획득함에 따라, 브라우저 웹 페이지를 렌더링하여, 웹소켓(Websocket) 연결이 수립된 사용자 단말로 제공하는 단계, 상기 브라우저 웹 페이지 내에서 획득되는 키 또는 마우스 입력 이벤트에 대응되는 데이터를 수신하는 단계 및 상기 브라우저 웹 페이지 내에서 획득되는 키 또는 마우스 입력 이벤트에 대응되어 처리된 웹 페이지를 상기 사용자 단말로 제공하는 단계를 포함하도록 구성된다.

Description

가상의 원격 브라우저 서비스 제공 방법 및 이를 수행하는 클라우드 서버{METHOD FOR PROVIDING VIRTUAL REMOTE BROWSER SERVICE AND CLOUD SERVER PERFORMING THE SAME}
본 발명은 가상의 원격 브라우저 서비스 제공 방법 및 이를 수행하는 클라우드 서버에 관한 것이다.
통상 악성 코드(Malicious software, malware)라고 하는 악성 소프트웨어는, 컴퓨터에 악영향을 끼칠 수 있는 소프트웨어를 말한다. 네트워크 기술이 발달함에 따라, 인터넷에 액세스하는 모든 사용자 단말은 이러한 악성 소프트웨어의 위험에 노출되어 있다.
악성 소프트웨어로부터 사용자 단말을 보호하기 위한 기술이 개발될수록, 악성 소프트웨어는 보다 고도화되고 있으며, 이에 악성 소프트웨어를 일일이 분석하여 회피하는 방법만으로는 악성 코드 증가에 따른 대안이 될 수 없는 상황에 이르렀다.
그에 따라, 사용자 단말을 보호하기 위해, 사용자 단말을 원격의 컴퓨터에서 실행시키는 가상화 기술 기반의 클라우드 컴퓨팅 시스템 제공이 증가하고 있다. 이러한 클라우드 컴퓨팅 시스템에서는 PC, 태블릿 PC, 스마트 폰과 같이 다양한 기기들이 접속할 수 있으며, 그 다양성에 맞게 각 기기마다 이용하는 웹 브라우저의 종류도 서로 상이하지만, 아직까지 사용자 단말에서 입력 특성이 서로 다른 각각의 웹 브라우저들을 호환성 있게 제공하는 방법은 개시된 바 없다.
발명의 배경이 되는 기술은 본 발명에 대한 이해를 보다 용이하게 하기 위해 작성되었다. 발명의 배경이 되는 기술에 기재된 사항들이 선행기술로 존재한다고 인정하는 것으로 이해되어서는 안 된다.
이에, 처리되는 데이터를 외부로부터 안전하게 할 수 있는 브라우저 서비스 이용 방법이 요구된다.
그 결과 본 발명의 발명자들은, 클라우드 서버에 생성된 샌드박스 (Sandbox) 기반의 브라우저 엔진을 이용하여, 사용자 단말에서 수행되어야 하는 브라우저의 구동을 대행함으로써, 사용자로 하여금 다양한 브라우저를 간편하고 안전하게 이용할 수 있는 방법 및 이를 수행하는 서버를 개발하고자 하였다.
아울러, 본 발명의 발명자들은 사용자가 이용하고자 하는 브라우저 별로 입력 데이터에 따른 실행 데이터를 미리 매핑시켜 둠으로써, 브라우저 특성에 맞게 웹 페이지를 처리할 수 있는 방법 및 이를 수행하는 서버를 개발하기에 이르렀다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 원격 브라우저 서비스 제공 방법이 제공된다. 상기 방법은, 브라우저 접속 데이터를 획득함에 따라, 브라우저 웹 페이지를 렌더링하여, 연결이 수립된 사용자 단말로 제공하는 단계, 상기 브라우저 웹 페이지 내에서 획득되는 키 또는 마우스 입력 이벤트에 대응되는 데이터를 수신하는 단계 및 상기 브라우저 웹 페이지 내에서 획득되는 키 또는 마우스 입력 이벤트에 대응되어 처리된 웹 페이지를 상기 사용자 단말로 제공하는 단계를 포함하도록 구성된다.
본 발명의 특징에 따르면, 상기 브라우저 접속 데이터는, 브라우저 종류와 함께 사용자의 브라우저 설정 데이터 및 사용자 식별 데이터 중 어느 하나를 포함할 수 있다.
본 발명의 다른 특징에 따르면, 상기 키 또는 마우스 입력 이벤트는, 상기 브라우저 웹 페이지 내에서의 키 또는 마우스 단일/다수 선택 데이터, 이동 데이터 및 스크롤 데이터 중 적어도 하나의 데이터를 획득하는 이벤트일 수 있다.
본 발명의 또 다른 특징에 따르면, 상기 브라우저 종류에 대응되는 복수의 브라우저 처리부를 이용하여, 브라우저 별 설정 데이터를 기 저장된 브라우저 실행 데이터와 매핑시켜 저장하도록 구성되고, 상기 키 또는 마우스 입력 이벤트를 획득함에 따라, 매핑된 브라우저 실행 데이터를 이용하여 브라우저 웹 페이지를 생성하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 다른 하나의 브라우저 처리부를 실행시키는 단계와 상기 다른 하나의 브라우저 처리부를 통해 처리된 브라우저 웹 페이지를 상기 사용자 단말로 제공하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 사용자 단말 별로 브라우저 접속 데이터 획득을 위한 어플리케이션 또는 URL 주소를 제공하거나, 사용자 단말 별로 브라우저 접속 데이터를 획득할 수 있는 IP 주소를 할당하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 상기 실행시키는 단계는, 복수의 사용자 단말로부터 복수의 브라우저 접속 데이터를 획득함에 따라, 상기 샌드박스에 기반한 복수의 브라우저 엔진 및 개별 브라우저 엔진에 대응되는 복수의 브라우저 처리부를 실행시키는 단계일 수 있다.
본 발명의 또 다른 특징에 따르면, 상기 제공하는 단계는, 상기 브라우저 웹 페이지 내에서 실시간으로 변경 사항을 확인하고, 변경 사항이 존재하는 경우, 상기 사용자 단말로 변경된 브라우저 웹 페이지를 제공하는 단계를 더 포함할 수 있다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 다른 실시예에 따른 클라우드 서버가 제공된다. 상기 서버는, 통신부, 저장부, 상기 통신부, 상기 저장부와 동작 가능하게 연결된 프로세서를 포함하고, 상기 프로세서는, 브라우저 접속 데이터를 획득함에 따라, 브라우저 웹 페이지를 렌더링하여, 연결이 수립된 사용자 단말로 제공하고, 상기 브라우저 웹 페이지 내에서 획득되는 키 또는 마우스 입력 이벤트에 대응되는 데이터를 수신하고, 상기 브라우저 웹 페이지 내에서 획득되는 키 또는 마우스 입력 이벤트에 대응되어 처리된 웹 페이지를 상기 사용자 단말로 제공하도록 구성된다.
본 발명의 특징에 따르면, 상기 브라우저 접속 데이터는, 브라우저 종류와 함께 사용자의 브라우저 설정 데이터 및 사용자 식별 데이터 중 어느 하나를 포함할 수 있다.
본 발명의 다른 특징에 따르면, 상기 키 또는 마우스 입력 이벤트는, 상기 브라우저 웹 페이지 내에서의 키 또는 마우스 단일/다수 선택 데이터, 이동 데이터 및 스크롤 데이터 중 적어도 하나의 데이터를 획득하는 이벤트일 수 있다.
본 발명의 또 다른 특징에 따르면, 상기 브라우저 처리부는, 상기 브라우저 종류에 대응되는 복수의 브라우저 처리부를 이용하여, 브라우저 별 설정 데이터를 기 저장된 브라우저 실행 데이터와 매핑시켜 저장하도록 구성되고, 본 발명의 또 다른 특징에 따르면, 상기 프로세서는, 상기 키 또는 마우스 입력 이벤트를 획득함에 따라, 매핑된 브라우저 실행 데이터를 이용하여 브라우저 웹 페이지를 생성하도록 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 상기 프로세서는, 다른 하나의 브라우저 처리부를 실행시키고, 상기 다른 하나의 브라우저 처리부를 통해 생성된 브라우저 웹 페이지를 상기 사용자 단말로 제공하도록 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 상기 프로세서는, 사용자 단말 별로 브라우저 접속 데이터 획득을 위한 어플리케이션 또는 URL 주소를 제공하거나, 사용자 단말 별로 브라우저 접속 데이터를 획득할 수 있는 IP 주소를 할당하도록 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 상기 프로세서는, 복수의 사용자 단말로부터 복수의 브라우저 접속 데이터를 획득함에 따라, 상기 샌드박스에 기반한 복수의 브라우저 엔진 및 개별 브라우저 엔진에 대응되는 복수의 브라우저 처리부를 실행시키도록 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 상기 프로세서는, 상기 브라우저 웹 페이지 내에서 실시간으로 변경 사항을 확인하고, 변경 사항이 존재하는 경우, 상기 사용자 단말로 변경된 브라우저 웹 페이지를 제공하도록 구성될 수 있다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 클라우드 서버에 생성된 샌드박스 기반의 브라우저 엔진을 통해 사용자에게 브라우저 웹 페이지를 제공할 수 있으므로, 사용자는 별도 지정된 어플리케이션을 설치할 필요 없이 간편하게 브라우저를 이용할 수 있다. 특히, 어플리케이션 설치에 제약이 있는 리눅스, 우분투 등 각종 운영 체제 상에서도 샌드박스 기반의 웹 페이지 서비스를 제공할 수 있다.
또한 본 발명은 모든 데이터의 처리가 클라우드 서버 내 샌드박스 환경에서 이루어지기 때문에, 사용자의 개인 정보, 기업의 기밀 자료 등이 외부로 유출되는 것을 방지할 수 있다. 뿐만 아니라, 사용자 단말에서 브라우저를 종료할 경우, 샌드박스 기반의 브라우저 엔진이 함께 종료되기 때문에, 클라우드 서버 안에서의 정보 유출을 방지할 수 있다.
또한 본 발명은 사용자 별로 샌드박스 기반의 브라우저 엔진이 지정되는 바, 원활한 웹 브라우저 환경을 제공할 수 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 발명 내에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 원격 브라우저 서비스 제공 방법의 개요를 설명하기 위한 개략도이다.
도 2는 본 발명의 일 실시예에 따른 원격 브라우저 서비스 제공 시스템의 구성을 나타낸 개략도이다.
도 3은 본 발명의 일 실시예에 따른 클라우드 서버의 구성을 나타낸 블록도이다.
도 4는 본 발명의 일 실시예에 따른 사용자 단말에서 브라우저 웹 페이지가 출력되는 방식을 설명하기 위한 개략도이다.
도 5는 본 발명의 일 실시예에 따른 클라우드 서버가 수행하는 원격 브라우저 서비스 제공 방법의 순서도이다.
도 6은 본 발명의 일 실시예에 따른 원격 브라우저 서비스 제공 시스템 내에서 수행되는 원격 브라우저 서비스 제공 방법의 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조부호가 사용될 수 있다.
본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는(3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 문서에서 사용된 "제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~ 를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된)프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서에서 사용된 용어들은 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 다른 실시예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시예들을 배제하도록 해석될 수 없다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
본 명세서의 해석의 명확함을 위해, 이하에서는 본 명세서에서 사용되는 용어들을 정의하기로 한다.
도 1은 본 발명의 일 실시예에 따른 원격 브라우저 서비스 제공 방법의 개요를 설명하기 위한 개략도이고, 도 2는 본 발명의 일 실시예에 따른 원격 브라우저 서비스 제공 시스템의 구성을 나타낸 개략도이다.
도 1 및 도 2를 참조하면, 본 발명의 일 실시예에서 클라우드 서버(100)는 샌드박스 기반의 브라우저 엔진(Browser Sandbox Engine)(110)을 이용하여 사용자가 접속하고자 하는 웹 사이트의 웹 페이지 화면을 사용자 단말(200)로 제공할 수 있다.
클라우드 서버(100)는 사용자 단말(200)에서 각종 브라우저를 실행시키고, 데이터를 처리하는데 필요한 각종 프로그램을 설치할 필요 없이 브라우저를 이용할 수 있는 서비스를 제공할 수 있으며, 이러한 서비스를 안전한 샌드박스 안에서 실행시킬 수 있다.
예를 들어, 클라우드 서버(100)는 사용자의 요청 신호(브라우저 접속 데이터)에 따라 샌드박스 기반의 브라우저 엔진(110)을 통해 구글 맵(Google Map)과 같은 웹 사이트에 접속한 후, 사용자 단말(200)로 웹 페이지 초기 화면을 제공할 수 있다.
이를 위해, 클라우드 서버(100)는 사용자 단말(200)에서 이용 가능한 다양한 종류의 브라우저(크롬, 익스플로러, 마이크로소프트 엣지, 파이어폭스, 사파리, 오페라, 스마트 폰 운영체제를 기반으로 하는 웹 브라우저)들 고유의 키 또는 마우스 입력 이벤트를 처리할 수 있는 브라우저 처리부(111)~(116)를 포함하고, 브라우저 처리부(111)~(116)에 의해 처리된 입력 이벤트를 웹 페이지로 렌더링하는 HTML 엔진(HTML Engine)(110')을 포함할 수 있다.
브라우저 처리부(111) ~(116)는 브라우저 별 설정 데이터를 기 저장된 브라우저 실행 데이터와 매핑시켜 저장해둘 수 있다. 브라우저 처리부(111)~ (116)는 브라우저 웹 페이지 내에서 키 또는 마우스 입력 이벤트를 획득함에 따라, 매핑된 브라우저 실행 데이터를 이용하여 입력 값을 처리하고, HTML 엔진(110')은 처리된 브라우저 웹 페이지를 생성(렌더링)할 수 있다.
여기서, 브라우저 처리부(111)~(116)가 처리하게 되는 키 또는 마우스 입력 이벤트란 브라우저 별 고유의 키/마우스 입력 이벤트를 의미하며, 예를 들어 브라우저 웹 페이지 내에서의 키/마우스 단일 선택 데이터(예. 웹 페이지에서 오른쪽 버튼 클릭, Spacebar 선택 등), 키/마우스 다수 선택 데이터(예. Ctrl+P, Ctrl+Shift +Esc, Command+Option+F 선택 등), 이동 데이터(예. 하이퍼링크 클릭 등) 및 스크롤 데이터(마우스 위, 아래 스크롤 등)를 포함할 수 있다.
즉, 클라우드 서버(100)는 어느 하나의 동일한 키/마우스 입력에 대해서 브라우저마다 서로 다른 실행 데이터가 처리된다는 점을 고려하여, 공지된 다양한 종류의 브라우저의 키/마우스 입력 이벤트를 처리할 수 있는 브라우저 처리부(111)~(116)를 구비할 수 있다.
또한, 브라우저 처리부(111)~(116)는 입력 이벤트에 따른 데이터 처리 외에도, 사이트 별 위치, 카메라, 팝업 설정, 사용 기록 저장 등의 개인정보 설정, 웹 페이지 해상도, 투명도, 글꼴, 북마크바 표시 설정, 검색 엔진 설정, 웹 페이지 시작 설정 등의 다양한 브라우저 별 기본 설정 데이터를 저장할 수 있다. 그에 따라, 브라우저 처리부(111)~(116)은 이후 입력 이벤트 획득 시, 저장된 브라우저 기본 설정 데이터에 맞게 입력 이벤트를 처리할 수 있다.
이에 더하여, 클라우드 서버(100)는 원격 브라우저 서비스를 제공하는 동안 사용자 단말(200)로부터 브라우저 별 기본 설정 데이터에서 사용자 맞춤으로 지정한 사용자의 브라우저 설정 데이터를 수신하고, 브라우저 처리부(111)~(116)는 수신된 사용자의 브라우저 설정 데이터를 저장할 수 있다. 만약, 클라우드 서버(100)가 사용자 단말(200)로부터 브라우저 웹 페이지 내에서 사용자 지정의 브라우저 설정 데이터와 대응되는 키 또는 마우스 입력 이벤트를 획득하는 경우, 이에 대응되는 어느 하나의 브라우저 처리부(111)~(116)는 저장된 실행 데이터를 이용하여 입력 이벤트를 처리할 수 있다.
즉, 본 발명의 일 실시예에 따른 클라우드 서버(100)는 가상의 컴퓨팅 환경 중에서도 브라우저 환경에 최적화된 서비스를 제공할 수 있으며, 사용자는 마치 사용자 단말(200) 속에서 브라우저가 실제로 설치되어 실행되는 것과 같은 원격 브라우저 서비스를 제공받을 수 있다.
실시예에 따라, 사용자 단말(200)은 원격 브라우저 서비스를 제공 받을 수 있는 전자 장치로서, PC, 태블릿 PC, 스마트 폰 등과 같이 다양한 운영체제와 이를 기반으로 하는 브라우저가 설치된 전자 장치를 포함할 수 있다. 예를 들어, 사용자 단말(200)은 클라우드 서버(100)로부터 크롬, 익스플로러, 마이크로소프트 엣지, 파이어폭스, 사파리, 오페라, 스마트 폰 운영체제를 기반으로 하는 웹 브라우저의 이용 서비스를 제공 받을 수 있다.
실시예에 따라, 클라우드 서버(100)와 사용자 단말(200)은 브라우저와 클라우드 서버(100) 간에 양방향 통신이 가능한 웹소켓(Websocket) 연결이 수립될 수 있다. 즉, 사용자 단말(200)에서 브라우저 주소 창에 특정 사이트의 주소를 입력할 경우, 사용자 단말(200)의 브라우저에서 해당 웹 사이트로 웹 페이지 요청 패킷을 송신하는 것이 아니라, 클라우드 서버(100)의 샌드박스 기반의 브라우저 엔진(110)에서 해당 웹 사이트로 웹 페이지 요청 패킷을 송신하게 되며, 사용자 단말(200)은 안전한 샌드박스 기반의 브라우저 엔진(110)에서 수신한 웹 사이트를 제공 받을 수 있다.
원격 브라우저 서비스 제공 시스템(1000)(이하, 브라우저 제공 시스템(1000)이라 함)에서, 클라우드 서버(100)는 원활한 서비스 환경을 제공하기 위해 하나의 사용자 단말(200)에 하나의 샌드박스 기반의 브라우저 엔진(110)을 제공할 수 있다.
도 2와 같이, 브라우저 제공 시스템(1000)에서 클라우드 서버(100)는 제1, 제2 브라우저 엔진(110a)(110b)을 포함하고, 각각은 제1, 제2 사용자 단말(200a)(200b)의 제1, 제2 브라우저(210a)(210b)와 대응되어, 원격 브라우저 서비스를 제공할 수 있다. 다만 여기서, 제1 브라우저(210a)는 사용자 단말(200)에서 실행되는 브라우저의 개수를 특정 짓는 것이 아니라, 제1 사용자 단말(200a)에서 실행되는 브라우저를 지칭하는 것으로 이해될 수 있다.
클라우드 서버(100)는 원격 브라우저 서비스를 선택적으로 제공할 수 있다. 이에, 클라우드 서버(100)는 원격 브라우저 서비스를 제공하기 위한 제1 또는 제2 사용자 단말(200a)(200b)을 지정하고, 지정된 제1 또는 제2 사용자 단말(200a)(200b)로 URL 주소, IP 주소, ID/PW 등의 접속 정보를 제공할 수 있다.
클라우드 서버(100)가 제1 또는 제2 사용자 단말(200a)(200b)로부터 브라우저 접속 데이터를 획득하는 경우, 클라우드 서버(100)는 사용자가 실행하고자 하는 브라우저의 종류에 따라 A, B, C 브라우저 처리부(111a)(112a) (113a)(111b)(112b)(113b) 중 어느 하나의 브라우저 처리부를 실행시키고, HTML 엔진(110')을 통해 생성(렌더링)된 브라우저 웹 페이지를 제1 또는 제2 사용자 단말(200a)(200b)과 공유할 수 있다.
이때, 클라우드 서버(100)는 원격 브라우저 서비스 제공 과정에서의 연산량을 보다 줄이기 위해 사용자 단말(200)로 제공하는 웹 페이지 화면을 기 설정된 수만큼 분할하여 제공할 수 있다. 예를 들어, 클라우드 서버(100)는 입력 데이터 처리 후 브라우저 웹 페이지 내에서 변경 사항이 존재하는 영역만을 선택적으로 제공할 수 있다.
이하에서는, 원격 브라우저 서비스를 제공하는 클라우드 서버(100)에 대하여 보다 구체적으로 설명한다.
도 3은 본 발명의 일 실시예에 따른 클라우드 서버의 구성을 나타낸 블록도이다.
도 3을 참조하면, 클라우드 서버(100)는 통신부(101), 저장부(102) 및 프로세서(103)를 포함할 수 있다.
통신부(101)는 유/무선 네트워크를 통해 사용자 단말(200)과 연결되어 데이터를 주고 받을 수 있다. 실시예에 따라, 사용자 단말(200)과 데이터를 주고 받기 위해서 웹소켓(Websocket) 연결이 수립될 수 있으며, 그에 따라, 사용자 단말(200)에서 브라우저를 실행시킬 경우, 사용자의 입력 데이터/입력 이벤트가 클라우드 서버(100)의 통신부(101)로 송신될 수 있다.
통신부(101)는 사용자 단말(200)로부터 브라우저 접속 데이터를 수신하고, 소비자 단말(200)로 실행된 브라우저 웹 페이지를 송신할 수 있다. 여기서, 브라우저 접속 데이터는 브라우저 종류와 함께 사용자의 브라우저 설정 데이터 및 사용자 식별 데이터 중 어느 하나를 포함할 수 있다. 예를 들어, 브라우저 종류로는 크롬, 익스플로러, 마이크로소프트 엣지, 파이어폭스, 사파리, 오페라, 스마트 폰 운영체제를 기반으로 하는 웹 브라우저 등이 포함될 수 있으며, 사용자의 브라우저 설정 데이터는 브라우저 별 기본 설정 데이터에서 사용자가 맞춤으로 조정하거나 지정한 설정 데이터일 수 있다. 또한, 사용자 식별 데이터는 사용자가 원격 브라우저 서비스를 제공받을 수 있는 사용자인지 식별하기 위한 ID/PW, IP 주소 등을 포함할 수 있다.
다른 예를 들어, 통신부(101)는 사용자 단말(200)로부터 브라우저 웹 페이지 내에서의 키 또는 마우스 입력 이벤트를 수신하고, 사용자 단말(200)로 입력 이벤트에 대응되어 처리된 웹 페이지를 제공할 수 있다. 이때, 통신부(101)는 기 설정된 수만큼 분할된 웹 페이지를 사용자 단말(200)로 제공할 수 있다.
저장부(102)는 원격 브라우저 서비스를 제공하기 위한 각종 데이터를 저장할 수 있다. 구체적으로, 저장부(102)는 브라우저 별로 웹 페이지에서 획득되는 입력 데이터와 매핑되는 실행 데이터(처리 결과), 브라우저 화면을 표시하는 기본 설정 데이터, 사용자 식별 데이터를 포함할 수 있다. 예를 들어, 저장부(102)는 웹 페이지에서 오른쪽 버튼 클릭, Spacebar 선택에 따른 실행 데이터, Ctrl+P, Ctrl+Shift +Esc, Command+Option+F 등 선택에 따른 실행 데이터, 웹 페이지에서 하이퍼링크 클릭에 따라 웹 페이지가 열리는 방식, 웹 페이지에서 마우스 위/아래 스크롤 시 이동하는 페이지 방향 등 브라우저마다 서로 다른 각종 실행 데이터를 브라우저 별로 구분지어 저장할 수 있다.
또한, 사용자 단말(200)에 하나의 샌드박스 기반의 브라우저 엔진이 주어지는 바, 저장부(102)는 사용자 단말(200) 별로 사용자 단말(200)의 브라우저 접속 로그를 저장할 수 있다.
다양한 실시예에서 저장부(102)는 각종 데이터, 명령 및 정보를 저장할 수 있는 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다. 예를 들어, 저장부(320)는 플래시 메모리 타입, 하드디스크 타입, 멀티미디어 카드 마이크로 타입, 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램, SRAM, 롬, EEPROM, PROM, 네트워크 저장 스토리지, 클라우드, 블록체인 데이터베이스 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
또한, 저장부(102)는 클라우드 서버(100)와의 동작을 위한 명령어들이 기록되어 있을 수 있다. 다양한 실시예에서, 저장부(102)는 원격 브라우저 서비스를 제공하기 위한 어플리케이션(미도시)이 기록되어 있을 수 있다.
프로세서(103)는 통신부(101) 및 저장부(102)와 동작 가능하게 연결되어, 클라우드 서버(100)의 전반적인 동작을 제어할 수 있으며, 저장부(102)에 저장된 어플리케이션 또는 프로그램을 구동하여 사용자의 접속에 따라 안전한 브라우저 환경을 제공하기 위한 다양한 명령들을 수행할 수 있다.
한편, 프로세서(103)는 CPU(Central Processing Unit)나 AP(Application Processor)와 같은 연산 장치에 해당할 수 있다. 또한, 프로세서(103)는 다양한 연산 장치가 통합된 SoC(System on Chip)와 같은 통합 칩(Integrated Chip (IC))의 형태로 구현될 수 있다.
이하 프로세서(103)가 수행하는 기능을 설명하기에 앞서, 프로세서(103)와 사용자 단말(200)가 데이터를 주고 받는 동작은 클라우드 서버(100) 내 샌드박스 기반의 브라우저 엔진에서 수행되는 것으로 이해될 수 있으며, 원격 브라우저 서비스를 제공 받는 사용자 단말(200)의 수에 따라 샌드박스 기반의 브라우저 엔진의 개수도 증가할 수 있다.
실시예에 따라, 프로세서(103)는 웹 브라우저로부터 브라우저 접속 데이터를 획득함에 따라, 브라우저 웹 페이지를 렌더링하여 웹소켓(Websocket) 연결이 수립된 사용자 단말(200)로 제공할 수 있다. 여기서, 브라우저 접속 데이터는 브라우저 종류와 함께 사용자의 브라우저 설정 데이터 및 사용자 식별 데이터 중 어느 하나를 포함할 수 있다. 예를 들어, 브라우저 종류는 크롬, 익스플로러, 마이크로소프트 엣지, 파이어폭스, 사파리, 오페라, 스마트 폰 운영체제를 기반으로 하는 웹 브라우저 등을 포함할 수 있으며, 프로세서(103)는 사용자 단말(200)에서 어느 웹 브라우저를 이용하고자 하였는지 그 종류를 확인하고, 브라우저에 맞는 초기 웹 페이지를 제공할 수 있다.
프로세서(103)는 지정된 사용자에게만 원격 브라우저 서비스를 제공하기 위해, 사용자 단말(200) 별로 브라우저 접속 데이터 획득을 위한 어플리케이션 또는 URL 주소를 제공할 수 있다. 이외에도, 프로세서(103)는 사용자 단말(200) 별로 브라우저 접속 데이터를 획득할 수 있는 IP 주소를 할당할 수 있으며, 이는 정적 IP, 동적 IP 등을 포함할 수 있다. 프로세서(103)는 서비스를 이용하는 사용자가 개인인지 또는 기업의 직원인지 등에 따라 상이한 종류의 IP 주소를 사용자 단말(200)로 할당할 수 있다. 그에 따라, 사용자 단말(200)은 지정된 PC를 통해서 원격 브라우저 제공 서비스를 제공 받거나, 브라우저 실행 후, 지정된 URL에 로그인함으로써, 원격 브라우저 서비스를 제공 받을 수 있다.
한편, 앞서 언급한 바와 같이 프로세서(103)가 제공하는 브라우저 웹 페이지는 하나의 샌드박스 기반의 브라우저 엔진을 통해서 생성되는 바, 클라우드 서버(100)가 복수의 사용자 단말(200)로부터 복수의 브라우저 접속 데이터를 획득하는 경우, 프로세서(103)는 샌드박스 기반의 복수의 브라우저 엔진과 개별 브라우저 엔진에 대응되는 복수의 브라우저 처리부를 실행시킬 수 있다.
프로세서(103)는 식별이 완료된 사용자 단말(200)에 한하여 통신 연결을 수립한 후, 브라우저 웹 페이지를 제공할 수 있으며, 통신부(101)를 통해 브라우저 웹 페이지 내에서 획득되는 키 또는 마우스 입력 이벤트를 수신할 수 있다. 예를 들어, 프로세서(103)는 브라우저 웹 페이지 내에서의 키 또는 마우스 단일/다수 선택 데이터, 이동 데이터 및 스크롤 데이터를 키 또는 마우스 입력 이벤트로 수신할 수 있다.
프로세서(103)는 키 또는 마우스 입력 이벤트에 매핑된 브라우저 실행 데이터를 이용하여 브라우저 웹 페이지를 생성할 수 있다. 구체적으로, 프로세서(103)는 브라우저 접속 데이터에서 식별된 브라우저 종류에 따라 어느 하나의 브라우저 처리부를 실행시킬 수 있으며, 브라우저 처리부를 통해 키 또는 마우스 입력 이벤트에 매핑된 브라우저 실행 데이터를 처리할 수 있다.
다시 말해서, 프로세서(103)는 브라우저 종류에 따라, 동일한 입력 이벤트라 하더라도 서로 다른 데이터를 처리할 수 있다. 예를 들어, 사파리-브라우저 처리부는 웹 페이지 내에서 마우스 스크롤이 아래로 내려감에 따라 웹 페이지를 위로 올릴 수 있으며, 익스플로러-브라우저 처리부는 웹 페이지에서 마우스 스크롤이 아래로 내려감에 따라 웹 페이지를 아래로 내릴 수 있다.
이와 동시에, 프로세서(103)는 HTML 엔진을 이용하여 처리된 웹 페이지를 렌더링할 수 있으며, 그에 따라 브라우저 초기 웹 페이지에서 새로운 웹 페이지 화면을 사용자 단말(200)의 브라우저에 제공할 수 있다.
한편, 프로세서(103)는 통신부(101)를 통해 원격 브라우저 서비스를 제공하고 있는 사용자 단말(200)로부터 어느 다른 하나의 브라우저 실행 데이터를 수신하는 경우, 다른 하나의 브라우저 처리부를 실행시킬 수 있다. 프로세서(103)는 다른 하나의 브라우저 처리부를 통해 처리된 브라우저 웹 페이지를 사용자 단말(200)로 제공할 수 있다. 만약, 사용자 단말(200)에서 둘 이상의 브라우저를 실행하는 경우, 프로세서(103)는 각각의 브라우저 처리부를 통해 처리된 브라우저 웹 페이지를 사용자 단말(200)로 제공할 수 있다.
실시예에 따라, 프로세서(103)는 통신부(101)를 통해 사용자 단말(200)에 설치된 다른 하나의 브라우저가 실행됨에 따라 브라우저 실행 데이터를 수신하거나, 현재의 브라우저 웹 페이지에서 다른 하나의 브라우저에 대한 입력 정보를 수신함에 따라 브라우저 실행 데이터를 수신할 수 있다.
예를 들어, 프로세서(103)는 식별된 사용자 단말(200) 내에서 크롬 외에 익스플로러가 실행된 경우, 익스플로러의 입력 이벤트를 처리하는 브라우저 처리부를 실행시키고, 익스플로러의 초기 웹 페이지 화면을 사용자 단말(200)로 제공할 수 있다. 다른 예를 들어, 프로세서(103)는 식별된 사용자 단말(200) 내에서 크롬 내 검색 창에서 “사파리로 이동”과 같은 입력 정보를 수신하는 경우, 사파리의 입력 이벤트를 처리하는 브라우저 처리부를 실행시키고, 사파리의 초기 웹 페이지의 화면을 사용자 단말(200)로 제공할 수 있다.
즉, 프로세서(103)는 사용자 단말(200)에서 실행하고자 하는 브라우저의 종류와 설치 유무에 제한 없이 사용자에게 원격 브라우저 서비스를 제공할 수 있다.
실시예에 따라, 프로세서(103)는 사용자 단말(200)로 원격 브라우저 서비스를 제공하는 동안, 브라우저 웹 페이지 내에서 실시간으로 변경 사항을 확인하고, 변경 사항이 존재하는 경우, 사용자 단말(200)로 변경된 브라우저 웹 페이지를 제공할 수 있다.
도 4는 본 발명의 일 실시예에 따른 사용자 단말에서 브라우저 웹 페이지가 출력되는 방식을 설명하기 위한 개략도이다.
도 4를 참조하면, 사용자 단말(200)에서 클라우드 서버(100)에 의해 제공된 웹 페이지가 다음과 같이 보여지는 동안, 클라우드 서버(100)의 프로세서(103)에서는 웹 페이지를 다음과 같이 기 설정된 개수만큼 분할할 수 있다. 이후 프로세서(103)는 웹 사이트(예. 구글 맵)에 접속하여 분할된 영역 내 변경 사항이 존재하는지 실시간으로 확인할 수 있으며, 확인 결과에 따라, 일부 변경된 영역을 사용자 단말(200)로 제공할 수 있다. 여기서, 변경 사항에 대한 처리는 해당 브라우저(예. 크롬)에 대응되는 브라우저 처리부에 의해 수행될 수 있다.
지금까지 본 발명의 일 실시예에 따른 클라우드 서버(100)에 대하여 설명하였다. 본 발명에 따르면, 클라우드 서버(100)는 서버 내에 생성된 샌드박스 기반의 브라우저 엔진을 통해 사용자에게 브라우저 웹 페이지를 제공할 수 있으며, 사용자 단말(200)은 브라우저를 구동하기 위해 별도 지정된 어플리케이션을 설치할 필요 없이 브라우저를 이용할 수 있다.
이하에서는 상술한 클라우드 서버(100)를 이용하여 원격 브라우저 서비스를 제공하는 방법에 대하여 개략적으로 설명하도록 한다.
도 5는 본 발명의 일 실시예에 따른 클라우드 서버가 수행하는 원격 브라우저 서비스 제공 방법의 순서도이다. 하기에서 서술하는 동작들은 클라우드 서버(100)의 프로세서(103)에 의해서 수행될 수 있다.
도 5를 참조하면, 클라우드 서버(100)는 브라우저 접속 데이터를 획득함에 따라, 브라우저 웹 페이지를 렌더링하여, 웹소켓(Websocket) 연결이 수립된 사용자 단말(200)로 제공한다(S110). 여기서, 브라우저 접속 데이터란 크롬, 익스플로러, 마이크로소프트 엣지, 파이어폭스, 사파리, 오페라, 스마트 폰 운영체제를 기반으로 하는 웹 브라우저 등 브라우저를 특정 지을 수 있는 브라우저 종류와 함께 사용자의 브라우저 설정 데이터 및 사용자 식별 데이터 중 어느 하나를 포함할 수 있다.
S110 단계 이후, 클라우드 서버(100)는 브라우저 웹 페이지 내에서 획득되는 키 또는 마우스 입력 이벤트를 수신하고(S120), 획득된 키 또는 마우스 입력 이벤트에 대응되어 처리된 웹 페이지를 사용자 단말(200)로 제공한다(S130).
이와 같이, 클라우드 서버(100)는 샌드박스 기반의 브라우저 엔진이 처리한 정보들을 사용자 단말(200)로 제공함으로써, 사용자가 입력하거나 취급하는 정보/데이터에 대한 보안을 강화할 수 있다.
이하에서는 브라우저 제공 시스템(1000)을 통해서 사용자들에게 원격 브라우저 서비스를 제공하는 방법에 대하여 구체적으로 설명하도록 한다.
도 6은 본 발명의 일 실시예에 따른 원격 브라우저 서비스 제공 시스템 내에서 수행되는 원격 브라우저 서비스 제공 방법의 순서도이다.
도 6을 참조하면, 클라우드 서버(100)는 사용자 단말(200)로 사용자가 원격 브라우저 서비스를 이용할 수 있도록 하는 어플리케이션(프로그램), URL 주소, ID/PW 및 IP 주소 중 어느 하나를 제공한다(S210). 이는 클라우드 서버(100)가 사용자 단말(200)을 식별하기 위한 사용자 식별 데이터에 해당하며, 클라우드 서버(100)는 서비스를 제공받는 사용자가 개인인지 또는 기업인지에 따라 서로 다른 사용자 식별 데이터를 사용자 단말(200)로 제공할 수 있으며, 하나의 사용자 식별 데이터를 제공함에 따라 하나의 샌드박스 기반의 브라우저 엔진을 생성할 수 있다.
S210 단계 이후, 클라우드 서버(100)는 사용자 단말(200)의 브라우저 접속 시도를 감지하고, 그에 따라, 사용자 단말(200)이 제공한 브라우저 접속 데이터를 획득한다(S220). 클라우드 서버(100)는 사용자 단말(200)이 접속한 브라우저의 종류를 확인하고, 그에 맞는 웹 페이지에 접속한 후, 초기 화면을 렌더링하여(S230), 사용자 단말(200)로 제공한다(S240).
즉, 사용자 단말(200)은 마치 자신의 단말에서 웹 페이지가 처리된 것과 같이 브라우저 웹 페이지를 제공 받을 수 있다.
아울러, 클라우드 서버(100)는 브라우저 종류에 따라 어느 하나의 브라우저 처리부를 실행시키고(S250), 사용자 단말(200)로부터 브라우저 웹 페이지 내에서의 키 또는 마우스 입력 이벤트를 제공 받을 수 있다(S260).
실시예에 따라, 키 또는 마우스 입력 이벤트는 브라우저 내에서의 키 또는 마우스 단일/다수 선택 데이터, 이동 데이터 및 스크롤 데이터일 수 있으며, 클라우드 서버(100)는 브라우저 처리부를 통해 입력 이벤트를 처리할 수 있다(S270). 구체적으로, 브라우저 처리부는 담당하는 브라우저 별로 입력 데이터에 따라 어떠한 동작을 처리해야하는지 그 결과를 저장해둔 바, 클라우드 서버(100)는 브라우저 처리부를 통해 미리 매핑된 브라우저 실행 데이터를 이용하여 브라우저 웹 페이지를 생성할 수 있다. 예를 들어, 사파리-브라우저 처리부는 웹 페이지 내에서 마우스 스크롤이 아래로 내려감에 따라 웹 페이지를 위로 올릴 수 있다.
클라우드 서버(100)는 앞서 브라우저 접속 시도를 통해 웹 소켓 연결이 수립된 사용자 단말(200)로 웹 페이지 화면을 제공할 수 있으며, 사용자 단말(200)에서 웹 페이지 화면이 제공되는 동안 해당 웹 사이트로부터 실시간 변경 사항이 존재하는지 확인할 수 있다. 만약, 변경 사항이 존재하는 경우, 사용자 단말(200)로 변경된 브라우저 웹 페이지를 제공할 수 있으며, 이때 모든 웹 페이지를 제공하는 것이 아니라, 변경된 영역만을 제공할 수 있다.
다른 실시예에 따라, 사용자 단말(200)로부터 입력 받은 키 또는 마우스 입력 이벤트가 다른 하나의 브라우저 실행 데이터를 포함할 수 있으며, 클라우드 서버(100)는 이에 해당하는 브라우저 처리부를 실행시킬 수 있다. 예를 들어, 클라우드 서버(100)는 현재의 브라우저 웹 페이지 내(크롬 주소창)에서 다른 하나의 브라우저에 대한 입력 정보(사파리로 이동)를 수신하는 경우, 사파리의 입력 이벤트를 처리하는 브라우저 처리부를 실행시키고, 사파리의 초기 웹 페이지의 화면을 사용자 단말(200)로 제공할 수 있다.
지금까지 본 발명의 일 실시 예에 따른 원격 브라우저 서비스 제공 방법에 대하여 설명하였다. 본 발명에 따르면, 사용자는 사용자 단말(200)의 운영체제나 프로그램의 설치 유무에 관계 없이 원하는 다양한 종류의 브라우저를 이용할 수 있다. 또한 본 발명은 모든 데이터의 처리가 클라우드 서버 내 샌드박스 환경에서 이루어지기 때문에, 사용자의 개인 정보, 기업의 기밀 자료 등이 외부로 유출되는 것을 방지할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 일 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
1000: 원격 브라우저 서비스 제공 시스템
100: 클라우드 서버
101: 통신부
102: 저장부
103: 프로세서
110: 브라우저 엔진
110': HTML Engine
111~116: 브라우저 처리부
200: 사용자 단말
210: 브라우저

Claims (16)

  1. 사용자 단말로부터 브라우저의 종류, 및 상기 브라우저의 종류 별 사용자의 브라우저 설정 데이터를 포함하는 브라우저 접속 데이터를 획득하는 단계;
    상기 브라우저 접속 데이터를 획득함에 따라, 브라우저 종류에 대응되는 복수의 브라우저 처리부 중 획득된 브라우저의 종류에 대응되는 브라우저 처리부를 이용하여 브라우저 웹 페이지를 렌더링하고, 연결이 수립된 사용자 단말로 제공하는 단계;
    상기 브라우저 웹 페이지 내에서 획득되는 키 또는 마우스 입력 이벤트에 대응되는 데이터를 수신하는 단계;
    상기 브라우저 처리부를 이용하여, 상기 브라우저 웹 페이지 내에서 획득되는 키 또는 마우스 입력 이벤트에 대응되어 웹 페이지를 처리하되, 상기 브라우저 종류 별로 기 저장된 브라우저 설정 데이터 및 상기 사용자의 브라우저 설정 데이터에 대응하여 웹 페이지를 처리하고, 처리된 웹 페이지를 렌더링하여, 상기 사용자 단말로 제공하는 단계; 및
    상기 브라우저 웹 페이지를 기 설정된 개수만큼 분할하여, 분할된 브라우저 웹 페이지 내에서 실시간으로 변경 사항을 확인하고, 변경 사항이 존재하는 경우, 상기 브라우저 처리부를 이용하여 변경 사항에 해당하는 일부 영역을 처리한 브라우저 웹 페이지를 상기 사용자 단말로 제공하는 단계, 를 포함하는 원격 브라우저 서비스 제공 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 키 또는 마우스 입력 이벤트는,
    상기 브라우저 웹 페이지 내에서의 키 또는 마우스 단일/다수 선택 데이터, 이동 데이터 및 스크롤 데이터 중 적어도 하나의 데이터를 획득하는 이벤트인, 원격 브라우저 서비스 제공 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 복수의 브라우저 처리부 중 다른 하나의 브라우저 처리부를 실행시키는 단계, 와
    상기 다른 하나의 브라우저 처리부를 통해 처리된 브라우저 웹 페이지를 상기 사용자 단말로 제공하는 단계; 를 더 포함하는 원격 브라우저 서비스 제공 방법.
  6. 제1항에 있어서,
    상기 사용자 단말 별로 상기 브라우저 접속 데이터 획득을 위한 어플리케이션 또는 URL 주소를 제공하거나,
    상기 사용자 단말 별로 상기 브라우저 접속 데이터를 획득할 수 있는 IP 주소를 할당하는 단계, 를 더 포함하는 원격 브라우저 서비스 제공 방법.
  7. 제1항에 있어서,
    복수의 사용자 단말로부터 복수의 브라우저 접속 데이터를 획득함에 따라,
    샌드박스에 기반한 복수의 브라우저 엔진 및 개별 브라우저 엔진에 대응되는 상기 복수의 브라우저 처리부를 실행시키는 단계, 를 더 포함하는 원격 브라우저 서비스 제공 방법.
  8. 삭제
  9. 통신부;
    저장부;
    상기 통신부, 상기 저장부와 동작 가능하게 연결된 프로세서; 를 포함하고,
    상기 프로세서는,
    상기 통신부를 통해 사용자 단말로부터 브라우저의 종류, 및 상기 브라우저의 종류 별 사용자의 브라우저 설정 데이터를 포함하는 브라우저 접속 데이터를 획득하고, 상기 브라우저 접속 데이터를 획득함에 따라, 브라우저 종류에 대응되는 복수의 브라우저 처리부 중 획득된 브라우저의 종류에 대응되는 브라우저 처리부를 이용하여 브라우저 웹 페이지를 렌더링하고, 연결이 수립된 사용자 단말로 제공하고, 상기 브라우저 웹 페이지 내에서 획득되는 키 또는 마우스 입력 이벤트에 대응되는 데이터를 수신하고, 상기 브라우저 처리부를 이용하여, 상기 브라우저 웹 페이지 내에서 획득되는 키 또는 마우스 입력 이벤트에 대응되어 웹 페이지를 처리하되, 상기 브라우저 종류 별로 기 저장된 브라우저 설정 데이터 및 상기 사용자의 브라우저 설정 데이터에 대응하여 웹 페이지를 처리하고, 처리된 웹 페이지를 렌더링하여, 상기 사용자 단말로 제공하고,
    상기 브라우저 웹 페이지를 기 설정된 개수만큼 분할하여, 분할된 브라우저 웹 페이지 내에서 실시간으로 변경 사항을 확인하고, 변경 사항이 존재하는 경우, 상기 브라우저 처리부를 이용하여 변경 사항에 해당하는 일부 영역을 처리한 브라우저 웹 페이지를 상기 사용자 단말로 제공하도록 구성되는, 클라우드 서버.
  10. 삭제
  11. 제9항에 있어서,
    상기 키 또는 마우스 입력 이벤트는,
    상기 브라우저 웹 페이지 내에서의 키 또는 마우스 단일/다수 선택 데이터, 이동 데이터 및 스크롤 데이터 중 적어도 하나의 데이터를 획득하는 이벤트인, 클라우드 서버.
  12. 삭제
  13. 제9항에 있어서,
    상기 프로세서는,
    상기 복수의 브라우저 처리부 중 다른 하나의 브라우저 처리부를 실행시키고,
    상기 다른 하나의 브라우저 처리부를 통해 생성된 브라우저 웹 페이지를 상기 사용자 단말로 제공하도록 구성되는, 클라우드 서버.
  14. 제9항에 있어서,
    상기 프로세서는,
    상기 사용자 단말 별로 상기 브라우저 접속 데이터 획득을 위한 어플리케이션 또는 URL 주소를 제공하거나, 상기 사용자 단말 별로 상기 브라우저 접속 데이터를 획득할 수 있는 IP 주소를 할당하도록 구성되는, 클라우드 서버.
  15. 제9항에 있어서,
    복수의 사용자 단말로부터 복수의 브라우저 접속 데이터를 획득함에 따라,
    샌드박스에 기반한 복수의 브라우저 엔진 및 개별 브라우저 엔진에 대응되는 상기 복수의 브라우저 처리부를 실행시키도록 구성되는, 클라우드 서버.
  16. 삭제
KR1020210006789A 2021-01-18 2021-01-18 가상의 원격 브라우저 서비스 제공 방법 및 이를 수행하는 클라우드 서버 KR102476005B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210006789A KR102476005B1 (ko) 2021-01-18 2021-01-18 가상의 원격 브라우저 서비스 제공 방법 및 이를 수행하는 클라우드 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210006789A KR102476005B1 (ko) 2021-01-18 2021-01-18 가상의 원격 브라우저 서비스 제공 방법 및 이를 수행하는 클라우드 서버

Publications (2)

Publication Number Publication Date
KR20220104462A KR20220104462A (ko) 2022-07-26
KR102476005B1 true KR102476005B1 (ko) 2022-12-09

Family

ID=82609478

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210006789A KR102476005B1 (ko) 2021-01-18 2021-01-18 가상의 원격 브라우저 서비스 제공 방법 및 이를 수행하는 클라우드 서버

Country Status (1)

Country Link
KR (1) KR102476005B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101658912B1 (ko) * 2015-06-17 2016-09-22 백두아이티 주식회사 가상 브라우저를 제공하는 방법, 사용자 단말기 및 컴퓨터 프로그램

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102004970B1 (ko) * 2016-11-17 2019-07-30 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 제공 방법 및 이를 위한 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101658912B1 (ko) * 2015-06-17 2016-09-22 백두아이티 주식회사 가상 브라우저를 제공하는 방법, 사용자 단말기 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
KR20220104462A (ko) 2022-07-26

Similar Documents

Publication Publication Date Title
RU2727063C1 (ru) Способ и устройство обработки услуг
Roesner et al. Securing embedded user interfaces: Android and beyond
US9607093B2 (en) Method and system for operating multiple web pages with anti-spoofing protection
US8407717B2 (en) Parallel processing method for dual operating system
EP3324325B1 (en) Method, client, and system for testing application
JP5611598B2 (ja) Usbトークン上の暗号化キーコンテナ
US10509690B2 (en) Exposing server functions to browser code
US20150012924A1 (en) Method and Device for Loading a Plug-In
EP3086526B1 (en) Launching a browser in a safe mode if needed
US8755771B2 (en) System, method, and program for generating screen
KR20100112123A (ko) 안전하고 확장 가능한 정책 기반 애플리케이션 플랫폼
EP3361417A1 (en) Smart card read/write methods and devices
US11803636B2 (en) Security system and method
WO2015200618A1 (en) Light dismiss manager
US20190146900A1 (en) Method and system for context based testing of software application vulnerabilities
CN108334779A (zh) 一种应用的处理方法、设备和计算存储介质
US7937715B2 (en) Mechanism for generating dynamic content without a web server
EP3574428B1 (en) Safe data access through any data channel
KR102476005B1 (ko) 가상의 원격 브라우저 서비스 제공 방법 및 이를 수행하는 클라우드 서버
US10664538B1 (en) Data security and data access auditing for network accessible content
US11716381B2 (en) Exporting data to a cloud-based service
KR20230127008A (ko) 원격 보안 서비스 제공 방법 및 이를 수행하는 서버
KR102309897B1 (ko) 웹 어플리케이션 데이터의 무결성 보장 방법 및 장치
Jiménez Aranda et al. Possible keyloggers without implementing a keyboard in android
US20190250967A1 (en) Method and system for opening a data object

Legal Events

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