KR101763967B1 - 웹 애플리케이션과 브라우저 외부의 프로세스 사이의 통신 채널 - Google Patents

웹 애플리케이션과 브라우저 외부의 프로세스 사이의 통신 채널 Download PDF

Info

Publication number
KR101763967B1
KR101763967B1 KR1020127017157A KR20127017157A KR101763967B1 KR 101763967 B1 KR101763967 B1 KR 101763967B1 KR 1020127017157 A KR1020127017157 A KR 1020127017157A KR 20127017157 A KR20127017157 A KR 20127017157A KR 101763967 B1 KR101763967 B1 KR 101763967B1
Authority
KR
South Korea
Prior art keywords
bridge
message client
component
web application
request
Prior art date
Application number
KR1020127017157A
Other languages
English (en)
Other versions
KR20120092169A (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 KR20120092169A publication Critical patent/KR20120092169A/ko
Application granted granted Critical
Publication of KR101763967B1 publication Critical patent/KR101763967B1/ko

Links

Images

Classifications

    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer Hardware Design (AREA)

Abstract

웹 클라이언트로부터 컴퓨팅 장치 상에서 실행 중인 프로세스로 요청을 릴레이하며 프로세스로부터 응답을 수신하기 위한 하나 이상의 기법 및/또는 시스템이 본 명세서에 개시된다. 컴퓨터 상의 브라우저 내에서 실행 중인 웹 애플리케이션 내에 배치된 브리지 메시지 클라이언트는 브라우저 외부에서 실행 중인 프로세스로의 로컬 접속을 개방한다. 브리지 메시지 클라이언트는 브리지 서버로의 로컬 접속을 호스트하기 위해 통신 채널을 식별하는 통신 채널 ID를 포함하며, 브리지 메시지 클라이언트 ID는 브리지 서버로부터 웹 애플리케이션으로의 통신을 용이하게 한다. 브리지 서버는 브라우저 환경 외부에 배치되고, 브리지 메시지 클라이언트로부터 요청을 수신하며 프로세스로 요청을 전달할 수 있으며/있거나, 프로세스로부터 요청에 대한 응답을 수신하며 로컬 접속을 거쳐 브리지 메시지 클라이언트로 응답을 전달할 수 있다.

Description

웹 애플리케이션과 브라우저 외부의 프로세스 사이의 통신 채널{COMMUNICATION CHANNEL BETWEEN WEB APPLICATION AND PROCESS OUTSIDE BROWSER}
인터넷 및 다른 온라인 기술의 사용자는 예를 들어 파일 전송 또는 웹 페이지를 수신함으로써 원격 정보에 접근할 수 있다. 정보 및/또는 웹 기반 애플리케이션 기능은 퍼스널 컴퓨터(PC) 상에서와 같은 브라우저 환경 내에 배치될 수 있다. 예를 들어 사용자의 브라우저 환경으로 웹 페이지와 함께 발송될 수 있는 (또는 데스크톱 상의 도구(gadget)로서 무형의 브라우저형 환경(invisible browser-type environment) 내에서 실행될 수 있는) 개발될 웹 기반 애플리케이션(웹 애플리케이션)에 대비하는 현재 웹 기반 프로그래밍 프레임워크가 도입되었다. 이들 프레임워크는 예를 들어 사용자 요청을 서버로 다시 발송할 필요 없이 라이브의 풍부한 대화형 멀티미디어 환경(live, rich, interactive multimedia environment)을 제공할 수 있으며, 그에 의해 웹 페이지 내에 동적 로직(dynamic logic)을 제공할 수 있다.
종종 풍부한 대화형 웹 애플리케이션이 사용자의 컴퓨팅 장치(예를 들어 PC, 웹에서 이용 가능한 모바일 장치 등)로 로딩(loading)되고, 업데이트를 제공하며 요구된 정보에 접근하도록 인터넷과의 라이브(또는 세미 라이브(semi-live)) 접속을 유지한다. 예를 들어, 사용자는 그들의 위치에 대한 현재의 날씨 상태를 디스플레이하는 위젯(widget)을 그들의 PC의 데스크톱 상으로 로딩할 수 있다. 이러한 예에서 컴퓨터가 인터넷으로의 접속을 유지하는 동안, 위젯은 사용자를 위해 디스플레이되는 날씨 상태를 업데이트할 수 있다. 추가로, 브라우저는 야구 경기, 라이브 스코어(live score)를 갖는 피치-바이-피치(pitch-by-pitch), 액션 등을 추적하는 애플리케이션과 같은, 사용자에게 풍부한 멀티미디어 경험을 제공하는 풍부한 대화형 애플리케이션(예를 들어, 실버 라이트(Silver light), 자바(Java) 및 플래시(Flash) 애플리케이션)을 로딩할 수 있다.
본 요약은 상세한 설명에서 이하에 추가로 설명되는 개념의 선택을 단순화된 형태로 소개하기 위해 제공된다. 이러한 요약은 청구된 발명 대상의 주요 요소 또는 필수적인 특징을 식별하려는 것이 아니며, 청구된 발명 대상의 범위를 제한하기 위해 사용하려는 것이 아니다.
현재, 웹 기반 애플리케이션(웹 애플리케이션)은 운영 시스템(OS, operating system) 애플리케이션 프로그래밍 인터페이스(API, application programming interface)를 통해 운영 시스템과 직접적으로 대화할 수 있거나 결국 운영 시스템 API를 호출할 수 있는 라이브러리 기능(library function)과 간접적으로 대화할 수 있는 독립형 애플리케이션(stand-alone application)이 아니다. 예를 들어, 운영 시스템 API에 접근할 수 있는 능력은 애플리케이션에게 컴퓨터 내의 컴퓨팅 자원의 특정 제어를 제공할 수 있다. 대신에, 웹 애플리케이션은 브라우저 환경 내에서, 예를 들어 OS API 및 라이브러리로부터 분리되는 "샌드박스(sandbox)" 내에서 실행되며, 그에 따라 악의적인 해커로부터 어느 정도의 보안성을 만들어낸다.
현재의 웹 애플리케이션은 브라우저의 윈도우를 능가하여 디스플레이 영역 및 파일 시스템 관리와 같은 사용자의 컴퓨터 상의 모든 범위의 자원에 대한 접근을 이용하는 독립형 애플리케이션으로서 사용될 수 없다. 일반적으로, 웹 페이지는 비브라우저 콘텍스트(non-browser context)로 처리될 수 없다. 그러나, 웹 애플리케이션이 데스크톱 환경 내에서 실행 중인 애플리케이션으로부터의 정보에 접근할 수 있으면, 예를 들어 웹 애플리케이션에 의해 사용을 위해 제공되는 데스크톱 콘텐츠를 가짐으로써 예를 들어 보다 풍부하고 더 유용한 경험이 사용자에게 제공될 수 있다(예를 들어, 웹 애플리케이션은 데스크톱 콘텐츠를 사용할 수 있다). 예를 들어, 웹 기반 소셜 네트워크(web-based social network)와 같은 웹 애플리케이션이 사용자가 연락처를 그들의 프로파일에 추가하기를 희망하는 경우에, 웹 애플리케이션이 그들의 연락처를 관리하는 사용자의 데스크톱 기반 애플리케이션으로부터 연락처를 로딩할 수 있는 것이 바람직할 수 있다.
브라우저 환경 내에서와 같은 웹 기반 애플리케이션과 하나의 애플리케이션이 실행 중인 경우와 같은 컴퓨터 상의 데스크톱 환경 사이에 브리지(bridge)를 제공하는 하나 이상의 기법 및/또는 시스템이 개시된다. 예를 들어, 브리지는 예를 들어 적절한 보안을 유지하면서 브라우저 내의 웹 애플리케이션이 데스크톱 애플리케이션과 통신하는 방식을 제공할 수 있다. 예를 들어, 웹 애플리케이션이 애플리케이션으로부터 정보를 요청하는 경우에, 브리지는 요청을 발송하고 애플리케이션으로부터 응답을 검색하는 방식을 제공할 수 있다.
웹 클라이언트로부터 컴퓨팅 장치 상에서 실행 중인 프로세스로 요청을 릴레이하고 프로세스로부터 응답을 수신하기 위한 일 실시예에서, 브라우저 내에서 실행 중인 웹 애플리케이션 내의 브리지 메시지 클라이언트는 브라우저 외부에서 실행 중인 프로세스로의 로컬 접속을 개방할 수 있다. 이러한 실시예에서, 브리지 메시지 클라이언트는 로컬 접속을 호스트하기 위해 통신 채널을 식별하는 통신 채널 ID 및 브리지 서버 컴포넌트가 웹 애플리케이션과 통신하도록 도와주기 위한 브리지 메시지 클라이언트 ID를 갖는다. 추가적으로, 이러한 실시예에서, 브리지 서버 컴포넌트는 브라우저 환경 외부에 존재하며, 브리지 메시지 클라이언트로부터 요청을 수신할 수 있고 프로세스로 요청을 전달할 수 있다. 또한, 브리지 서버 컴포넌트는 프로세스로부터 요청에 대한 응답을 수신할 수 있고 로컬 접속을 거쳐 브리지 메시지 클라이언트로 응답을 전달할 수 있다.
전술한 목적 및 관련된 목적을 달성하기 위해, 이하의 설명 및 첨부된 도면은 특정한 예시적인 양태 및 구현을 제시한다. 이들은 하나 이상의 양태가 이용될 수 있는 다양한 방식 중 단지 몇 개의 방식만을 나타낸다. 본 명세서의 다른 양태, 장점 및 신규한 특징은 첨부된 도면과 함께 고려될 때 이하의 상세한 설명으로부터 명백할 것이다.
도 1은 본 명세서에 설명된 하나 이상의 시스템 및/또는 기법이 구현될 수 있는 예시적인 환경을 예시하는 다이어그램이다.
도 2는 웹 클라이언트로부터 컴퓨팅 장치 상에서 실행 중인 프로세스로 요청을 릴레이하며 프로세스로부터 응답을 수신하기 위한 예시적인 시스템을 예시하는 컴포넌트 블록 다이어그램이다.
도 3은 본 명세서에 설명된 시스템의 예시적인 실시예를 예시하는 컴포넌트 블록 다이어그램이다.
도 4는 웹 클라이언트로부터 컴퓨팅 장치 상에서 실행 중인 프로세스로 요청을 릴레이하며 프로세스로부터 응답을 수신하기 위한 예시적인 방법을 예시하는 흐름도이다.
도 5(a) 및 도 5(b)는 본 명세서에 설명된 방법의 일부분의 예시적인 실시예이다.
도 6 및 도 7은 본 명세서에 설명된 시스템 및 방법 중 하나 이상의 시스템 및 방법의 하나의 구현의 예시적인 실시예를 예시하는 흐름도이다.
도 8은 본 명세서에 제시된 대책 중 하나 이상의 대책을 구현하도록 구성되는 프로세서에 의해 실행 가능한 명령어(processor-executable instruction)를 포함하는 예시적인 컴퓨터 판독 가능 매체의 하나의 예시이다.
도 9는 본 명세서에 제시된 대책 중 하나 이상의 대책이 구현될 수 있는 예시적인 컴퓨팅 환경을 예시한다.
이제 청구된 발명 대상이 도면을 참조하여 설명되며, 이 도면에 걸쳐서 동일한 요소를 지칭하기 위해 동일한 참조 부호가 사용된다. 이하의 설명에서는, 설명을 위한 목적으로, 청구된 주제의 철저한 이해를 제공하기 위해 다양한 구체적인 상세한 설명이 제시된다. 그러나, 이들 구체적인 상세한 설명이 없이 청구된 발명 대상이 실시될 수 있다는 것이 명백할 수 있다. 다른 예에서, 청구된 주제를 설명하는 것을 용이하게 하기 위해 구조 및 장치는 블록 다이어그램 형태로 도시된다.
도 1은 본 명세서에 설명된 하나 이상의 기법 및/또는 시스템이 구현될 수 있는 예시적인 환경(100)을 예시하는 다이어그램이다. 컴퓨팅 장치(106)가 퍼스널 컴퓨터의 데스크톱 상에서 실행 중인 연락처, 일정, 이메일 등을 관리하는 퍼스널 어시스턴트 프로그램(personal assistant program)과 같은 데스크톱 환경 내에서의 애플리케이션(110)을 실행하고 있다. 추가로, 브라우저 환경(108)이 컴퓨팅 장치(106) 상에서 실행되고 있으며 인터넷(102)에 접속된다. 이러한 예시적인 환경(100)에서, 웹 기반 애플리케이션(104)(웹 애플리케이션)이 컴퓨팅 장치(106) 상의 브라우저 환경(108)으로 로딩될 수 있다.
예를 들어, 웹 애플리케이션(104)을 실행하기 위해 사용되는 코드는 브라우저 환경(108)으로 완전히 로딩될 수 있어서, 웹 애플리케이션(104)을 실행하기 위해 사용되는 코드는 라이브 업데이트(live update) 등을 위해서와 같이 인터넷(102)으로의 접속을 유지하면서 컴퓨팅 장치(106) 상에서 전적으로 동작한다. 그러나, 전형적인 운영 시스템 및 컴퓨팅 환경은 브라우저 환경(108) 내에서 실행 중인 웹 애플리케이션과 데스크톱 환경 상에서 실행 중인 애플리케이션(110) 사이에 접속(112)을 허용하지 않는다. 인터넷(102)에 접속되는 라이브 웹 애플리케이션 사이에 접속(112)을 허용하지 않는 하나의 이유는 예를 들어 컴퓨팅 장치의 데스크톱 환경으로의 보안 침입을 완화시키는 것이다.
본 명세서에서 제공되는 바와 같이, 예를 들어 브라우저 환경 내에서와 같이 컴퓨팅 장치 상에서 동작하고 있는 웹 기반 애플리케이션과 컴퓨터 상의 데스크톱 환경 사이에 브리지가 제공될 수 있다. 추가로, 브리지는 컴퓨팅 장치에 대한 적절한 보안을 유지하면서 예를 들어 브라우저 환경 내에서 실행 중인 애플리케이션과 컴퓨터의 데스크톱 환경 내에서 실행 중인 애플리케이션 사이에 통신을 제공할 수 있다. 예를 들어, 풍부한 대화형인 집적식 멀티미디어 런타임 환경 내에서 생성된 것과 같은 웹 애플리케이션(예를 들어, 실버 라이트(Silver light), 자바(Java), 플래시(Flash) 등)이 브라우저 환경 외부에서 실행 중인 애플리케이션으로부터 정보를 요청하는 경우에, 브리지는 컴퓨팅 장치로의 잠재적으로 불손한 통신을 금지하면서 요청을 발송하고 애플리케이션으로부터 응답을 검색하는 방식을 제공할 수 있다.
도 2는 웹 클라이언트로부터 컴퓨팅 장치 상에서 실행 중인 프로세스로 요청을 릴레이하며 프로세스로부터 응답을 수신하기 위한 예시적인 시스템(200)을 예시하는 컴포넌트 블록 다이어그램이다. 브리지 메시지 클라이언트 컴포넌트(202)는 컴퓨팅 장치(212) 상의 브라우저 환경(214) 내에서 실행 중인 웹 애플리케이션(216) 내에 배치된다. 브리지 메시지 클라이언트 컴포넌트(202)는 컴퓨팅 장치(212) 상의 데스크톱 환경(도시되지 않음) 내에서 실행 중인 애플리케이션(250) 내에서와 같이 컴퓨팅 장치 상의 브라우저 환경 외부에서 실행 중인 프로세스(210)로 접속하는 로컬 접속(220)을 개방한다.
브리지 메시지 클라이언트 컴포넌트(202)는 통신 채널(218)을 식별하는 통신 채널 식별 컴포넌트(206)를 포함하는데, 데스크톱 환경(도시되지 않음) 내에서와 같이 컴퓨팅 장치(212) 상에 배치된 브리지 서버 컴포넌트(208)로의 로컬 접속(220)이 통신 채널(218)을 통해 호스트될 수 있다. 브리지 메시지 클라이언트 컴포넌트(202)는 예를 들어 브리지 서버 컴포넌트(208)가 웹 애플리케이션(216)과 통신하도록 도와주는 브리지 메시지 클라이언트 식별 컴포넌트(204)를 추가로 포함하는데, 복수의 브리지 메시지 클라이언트 컴포넌트(202) 및/또는 웹 애플리케이션(216)이 브리지 서버 컴포넌트(208)와 통신하려고 시도할 수 있다.
예시적인 시스템(200)에서, 브리지 서버 컴포넌트(208)는 브라우저 환경(214) 외부에 배치되며, 브리지 메시지 클라이언트 컴포넌트(202)로부터 요청을 수신할 수 있고 프로세스(210)로 요청을 전달할 수 있다. 추가로, 브리지 서버 컴포넌트(208)는 프로세스(210)로부터 요청에 대한 응답을 수신할 수 있으며 로컬 접속(220)을 거쳐 브리지 메시지 클라이언트 컴포넌트(202)로 응답을 전달할 수 있다.
일 실시예에서, 예를 들어 브라우저 환경은 웹 애플리케이션(예를 들어, 216)의 인스턴스 생성(instantiation)을 가질 수 있는데, 대화형인 풍부한 집적식 멀티미디어 웹페이지가 웹사이트로부터 브라우저(예를 들어, 214)로 로딩된다. 이러한 실시예에서, 웹 애플리케이션은 본 명세서에 배치된 브리지 메시지 클라이언트 컴포넌트(202)의 인스턴스 생성을 가질 수 있다. 추가로, 예를 들어, 웹 애플리케이션 및 연관된 브리지 메시지 클라이언트 컴포넌트(202)는 웹사이트로부터와 같이 브라우저 환경으로 로딩될 수 있으며, 그에 따라 컴퓨팅 환경(예를 들어, 212) 상에서 전적으로 실행될 수 있다.
이러한 실시예에서 통신 채널(218)은 통신 채널 식별을 사용하여 브리지 서버 컴포넌트(208)에 개방될 수 있고, 로컬 접속(220)은 통신 채널(218) 상에 호스트될 수 있다. 일 실시예에서, 통신 채널 식별 컴포넌트(206)는 예를 들어 웹 애플리케이션으로부터 요구된 프로세스(예를 들어, 210)에 연관된 브리지 서버 컴포넌트(예를 들어, 208)로 통신을 링크시키는 운영 시스템 내의 특정 통신 채널(예를 들어, 218)을 명명하는 채널 명칭을 포함할 수 있다.
예를 들어, 운영 시스템 채널은 예를 들어 메시지를 인증함으로써 어떤 방식으로든 메시지를 처리하는 컴포넌트일 수 있다. 추가로, 일 실시예에서, 통신 채널(218)은, 네트워크(또는 컴퓨팅 장치 외부의 다른 통신 지점)으로부터 메시지를 판독하고 기록할 수 있는, 파이프로 명명된 HTTP(Hyper Text Transfer Protocol), TCP(transmission Control Protocol) 및 MSMQ(Microsoft Message Queuing)를 위한 채널과 같은 전송 채널일 수 있다.
추가로, 예를 들어, 로컬 접속(220)은 웹 애플리케이션 기반 제어의 두 개의(또는 그 이상의) 인스턴스 사이에서 발송인 및 수신인을 접속시키는 공개/가입 메카니즘(publish/subscribe mechanism)일 수 있다. 일 실시예에서, 브리지 서버 컴포넌트(208)는 컴퓨팅 장치(212) 상에 숨겨진 (예를 들어, 사용자에 의한 시야 및/또는 대화로부터 숨겨진) 풍부한 대화형인 집적식 멀티미디어 런타임 환경의 인스턴스 생성일 수 있다. 이러한 실시예에서, 로컬 접속(220)은 (브리지 메시지 클라이언트 컴포넌트(202)를 갖는 브라우저 내에서 실행 중인) 웹 기반 애플리케이션의 제 1 인스턴스 생성과 웹 기반 애플리케이션(브라우저 환경 외부에서 실행 중인 브리지 서버)의 제 2 인스턴스 생성 사이의 통신 링크를 포함할 수 있다. 이러한 예에서, 로컬 접속(220)은 브리지 메시지 클라이언트 컴포넌트(예를 들어, 202)와 브리지 서버 컴포넌트(예를 들어, 208) 사이의 통신 링크를 설정하기 위해 명명된 통신 채널을 사용할 수 있다.
일 실시예에서, 브리지 서버 컴포넌트(208)는 데스크톱 환경 내에서와 같이 컴퓨팅 장치(212) 상에서 실행 중인 애플리케이션(예를 들어, 250)에 의해 호스트되는 컴포넌트일 수 있다. 추가로, 브리지 서버 컴포넌트(208)는 컴퓨팅 장치(212) 상에서 실행 중인 서비스로서 인스턴스화되는 컴포넌트일 수 있다. 당업자는 브리지 서버 컴포넌트(208)를 호스트하거나 인스턴스화하는 대안적인 방식을 발명할 수 있으며, 예를 들어 브리지 서버 컴포넌트(208)는 컴퓨팅 장치의 데스크톱 환경 내에 설치되는 하나 이상의 드라이버 내에 포함될 수 있다는 것이 이해된다.
추가적으로, 일 실시예에서, 프로세스(예를 들어, 210)는 컴퓨팅 장치 상의 데스크톱 환경 내에서 실행 중인 프로그램의 적어도 일부분을 포함할 수 있다. 예를 들어, 프로세스는 사용자 머신 상에서 실행 중인 애플리케이션 내로 삽입되는 프로그래밍 코드의 일부분을 포함할 수 있다. 이러한 예에서, 코드는 요청된 정보 스트링(string of requested information)과 같은 응답 데이터를 애플리케이션으로부터 반환하기 위해 브리지 서버와 통신하도록 설계될 수 있다. 웹 애플리케이션이 브리지 메시지 클라이언트를 사용하여 애플리케이션으로부터 특정 데이터를 요청하는 경우에, 예를 들어, 프로세스는 애플리케이션으로부터 브리지 서버 컴포넌트(208)로 요청된 정보를 반환할 수 있다.
일 실시예에서, 브리지 메시지 클라이언트 식별(204)은, 브리지 메시지 클라이언트 컴포넌트(202)의 경우와 같이, 프로세스(210)에 연관된 브리지 서버 컴포넌트(208)로부터 요구된 웹 애플리케이션(예를 들어, 216)으로 통신 채널(218)을 링크시키는 클라이언트 명칭을 포함할 수 있다. 즉, 예를 들어, 복수의 웹 애플리케이션이 브리지 메시지 클라이언트(예를 들어, 202)의 인스턴스화를 각각 포함할 수 있는 경우에, 브리지 서버는 특정 브리지 메시지 클라이언트를 식별하는 것을 원할 수 있다. 이러한 방식으로, 이 예에서는, 웹 애플리케이션으로부터 요청에 대한 특정 응답이 정확한 브리지 메시지 클라이언트로 반환될 수 있다. 이 실시예에서는, 클라이언트 ID(204)는 통신 채널(218)을 거쳐 적절한 접속을 용이하게 할 수 있다.
도 3은 본 명세서에 설명된 시스템의 예시적인 실시예(300)를 예시하는 컴포넌트 블록 다이어그램이다. 웹 기반 애플리케이션과 같은 웹 클라이언트(352)는 (예를 들어, 사용자의 컴퓨터 상의) 브라우저 환경(354) 내에 배치된다. 웹 클라이언트는 통신 채널(218)을 거쳐 브리지 서버 컴포넌트(208)로의 로컬 접속(220)을 갖는 브리지 메시지 클라이언트 컴포넌트(202)를 포함한다. 브리지 서버 컴포넌트(208)는 프로세스(210)를 또한 포함하는 (예를 들어, 사용자의 컴퓨터 상에서 실행 중인) 데스크톱 애플리케이션(350) 내에 배치된다.
이러한 예시적인 실시예(300)에서, 브리지 서버는 웹 릴레이 컴포넌트(320), 머신 릴레이 컴포넌트(322) 및 브리지 메시지 서버 컴포넌트(324)를 포함한다. 이러한 실시예에서, 웹 릴레이 컴포넌트(320) 및 머신 릴레이 컴포넌트(322)는 동일한 도메인 내에, 즉 호스트 제어(358) 내에 배치된다. 이러한 예에서, 호스트 제어 도메인(358)은 웹 릴레이 및 호스트 릴레이를 호스트하기 위해 브리지 서버 컴포넌트 내에 인스턴스화될 수 있다. 일 예에서, 호스트 제어(358)는 예를 들어 브리지를 가로질러 데이터를 수신하고 발송하기 위해 브리지 릴레이(356)를 추가로 포함할 수 있으며, 웹 릴레이 컴포넌트(320)는 브리지 릴레이(356) 내에 배치된다. 또 다른 실시예에서, 웹 릴레이 컴포넌트(320)는 동일한 도메인(예를 들어, 호스트 제어(358)) 내에 머신 릴레이 컴포넌트(322)의 인스턴스 생성으로서 생성될 수 있다.
이러한 실시예(300)에서, 웹 릴레이 컴포넌트(320)는 브리지 메시지 클라이언트 컴포넌트(202)로부터 요청을 수신할 수 있고 머신 릴레이 컴포넌트(322)로 요청을 전달할 수 있다. 예를 들어, 브리지 메시지 클라이언트 컴포넌트(202)는 로컬 접속(220)을 사용하여 통신 채널(218)을 가로질러 프로세스로부터 특정 데이터에 대한 요청을 발송할 수 있다. 추가로, 브리지 메시지 클라이언트 컴포넌트(202)는 웹 릴레이 컴포넌트(320)로부터 요청을 수신할 수 있고 제 1 명명된 통신 파이프(326)를 거쳐 브리지 메시지 서버 컴포넌트(324)로 요청을 전달할 수 있다. 전술된 바와 같이, 통신 채널은 예를 들어 데이터를 교환하기 위한 하나의 명명된 파이프를 포함할 수 있다. 이러한 실시예에서, 머신 릴레이는 요청을 전달하기 위해 브리지 메시지 서버 컴포넌트(324)로의 제 1 명명된 통신 파이프(326)를 식별할 수 있다. 추가적으로, 브리지 메시지 서버 컴포넌트(324)는 머신 릴레이 컴포넌트(322)로부터 요청을 수신할 수 있고 프로세스(210)로 요청을 전달할 수 있다.
일 실시예에서, 프로세스(210)는 애플리케이션(350)으로부터 요청된 정보를 검색할 수 있고 브리지 메시지 서버 컴포넌트(324)로 응답을 반환할 수 있다. 브리지 메시지 서버 컴포넌트(324)는 프로세스(210)로부터 응답을 검색할 수 있으며 제 2 명명된 통신 파이프(328)를 거쳐 머신 릴레이 컴포넌트(322)로 응답을 전달할 수 있다. 예를 들어, 브리지 메시지 서버는 머신 릴레이 컴포넌트(322)로 메시지를 릴레이하기 위해 제 2 명명된 통신 파이프를 식별할 수 있다. 추가로, 머신 릴레이 컴포넌트(322)는 브리지 메시지 서버 컴포넌트(324)로부터 응답을 수신할 수 있고 웹 릴레이 컴포넌트(356)로 응답을 전달할 수 있다. 추가적으로, 웹 릴레이 컴포넌트(320)는 머신 릴레이 컴포넌트(322)로부터 응답을 수신할 수 있고 로컬 접속(220)을 거쳐 브리지 메시지 클라이언트 컴포넌트(202)로 응답을 전달할 수 있다.
그런 다음, 예를 들어, 웹 클라이언트(352)는 예를 들어 브라우저 환경(354) 내에 응답 내의 정보를 디스플레이함으로써 응답 내의 정보를 이용할 수 있다. 일 실시예에서, 응답은 비동기식으로 수신될 수 있다. 예를 들어, 브라우저 환경(354)은 복수의 웹 클라이언트(352)를 포함할 수 있고/있거나 웹 클라이언트는 복수의 브리지 메시지 클라이언트 컴포넌트(202)를 포함할 수 있다. 이러한 예에서, 하나 초과의 브리지 메시지 클라이언트(202)는 프로세스(210)로 요청을 동시에 또는 실질적으로 유사한 시간에 발송할 수 있다. 복수의 요청에 대한 응답은 비동기식으로 반환될 수 있다.
예를 들어 사용자의 컴퓨터 상의 브라우저 환경과 데스크톱 환경 사이에서 정보가 발송되는 것을 허용하는 방법이 발명될 수 있다. 도 4는 웹 클라이언트로부터 컴퓨팅 장치 상에서 실행 중인 프로세스로 요청을 릴레이하고 프로세스로부터 응답을 수신하기 위한 방법(400)의 예시적인 실시예를 예시하는 흐름도이다. 예시적인 방법(400)은 402에서 시작하고, 404에서 브리지 서버가 브라우저 환경 외부에서 컴퓨터 장치 상에 설치되도록 제공하는 단계를 포함한다.
406에서 웹 애플리케이션 내에 브리지 메시지 클라이언트의 설치가 제공되는데, 웹 애플리케이션은 컴퓨팅 장치 상의 브라우저 환경 내에서 동작하도록 구성된다. 408에서 로컬 접속의 개방이 제공되는데, 로컬 접속은 웹 애플리케이션과 프로세스 사이에 식별된 채널을 거쳐 개방된다. 410에서 로컬 접속은 브리지 메시지 클라이언트와 프로세스에 연관된 브리지 서버 사이에 통신 링크를 제공한다.
예시적인 방법(400)에서, 412에서 브리지 메시지 클라이언트는 웹 애플리케이션으로부터 로컬 접속을 거쳐 브리지 서버로 요청을 전달한다. 414에서 브리지 서버는 브리지 메시지 클라이언트로부터 로컬 접속을 거쳐 요청을 수신하고 컴퓨팅 장치 상의 브라우저 환경 외부에서 실행 중인 프로세스로 요청을 전달한다. 추가로, 416에서 브리지 서버는 프로세스로부터 요청에 대한 응답을 수신하고 로컬 접속을 거쳐 브리지 메시지 클라이언트로 응답을 전달한다. 418에서 브리지 메시지 클라이언트는 예를 들어 브리지 서버로부터 요청에 대한 응답을 수신하고 클라이언트에 연관된 웹 애플리케이션은 응답 내의 데이터를 이용한다(예를 들어, 브라우저 내에 응답 내의 데이터를 디스플레이한다).
도 5(a) 및 도 5(b)는 본 명세서에 설명된 방법 중 하나 이상의 방법의 일부분의 예시적인 실시예(500 및 510)이다. 예시적인 실시예(500)에서, 414에서 브리지 서버가 브리지 메시지 클라이언트로부터 요청을 수신하며 그 후 브라우저 외부의 프로세스로 요청을 전달하는 경우에, 502에서 컴퓨팅 장치 상의 브라우저 환경 외부에 배치되는 웹 릴레이는 브리지 메시지 클라이언트로부터 로컬 접속을 거쳐 요청을 수신한다. 504에서 웹 릴레이는 웹 릴레이 컴포넌트와 동일한 도메인 내에 배치되는 머신 릴레이로 요청을 전달한다. 예시적인 실시예(500)에서, 506에서 머신 릴레이는 웹 릴레이로부터 요청을 수신하며, 508에서 머신 릴레이는 제 1 명명된 통신 파이프를 거쳐 브리지 메시지 서버로 요청을 전달한다.
예시적인 실시예(510)에서, 416에서 브리지 서버가 프로세스로부터 요청에 대한 응답을 수신하며 브리지 메시지 클라이언트로 응답을 전달하는 경우에, 512에서 컴퓨팅 장치 내의 브라우저 환경 외부에 배치되는 머신 릴레이는 브리지 메시지 서버로부터 제 2 명명된 통신 파이프를 거쳐 요청에 대한 응답을 수신한다. 514에서 머신 릴레이는 동일한 도메인 내에 배치된 웹 릴레이로 요청에 대한 응답을 전달한다. 516에서 웹 릴레이는 머신 릴레이로부터 요청에 대한 응답을 수신하며, 518에서 웹 릴레이는 로컬 접속을 거쳐 브리지 메시지 클라이언트로 응답을 전달한다.
도 6 및 도 7은 본 명세서에 설명된 시스템 및/또는 방법 중 하나 이상의 시스템 및/또는 방법의 하나의 구현의 예시적인 실시예를 예시하는 흐름도이다. 도 6의 예시적인 실시예(600)에서, 웹 기반 애플리케이션(웹 애플리케이션)으로부터 요청에 대해 응답하도록 구성되는 프로그래밍 코드는 컴퓨팅 장치의 데스크톱 환경 내에 설치된다. 예를 들어, 코드는 사용자의 이메일, 연락처, 일정, 임무 등을 관리하고 처리하는 애플리케이션 내에 개발되고 설치될 수 있다. 코드는 웹 애플리케이션이 사용자의 연락처 또는 웹 애플리케이션 내에서 사용되는 정보의 다른 비트를 요청하도록 구성될 수 있다.
604에서 브리지 서버(예를 들어, 도 2의 208)의 인스턴스 생성은 컴퓨팅 장치의 데스크톱 환경 내에 설치된다. 예를 들어, 브리지 서버는 독립형(stand-along) 컴포넌트 또는 서비스로서 포함될 수 있거나, 브리지 서버는 데스크톱 애플리케이션 내에 포함될 수 있으며, 데스크톱 애플리케이션을 위한 정보가 웹 애플리케이션에 의해 요청될 수 있다. 일단 설치되면, 브리지 서버는 통신 채널을 거쳐 요청과 같은 통신을 경청한다.
610에서 브리지 메시지 클라이언트(예를 들어, 도 2의 202)가 웹 애플리케이션 내에 설치된다. 예를 들어, 웹 애플리케이션의 개발자는 예를 들어 동일한 루트 도메인(root domain)을 갖는 브리지 서버와 동일한 사이트로부터 브리지 메시지 클라이언트의 버전을 다운로드할 수 있다. 이런 방식으로, 이러한 예에서, 브리지 서버는 브리지 메시지 클라이언트로부터 통신 요청을 신뢰할 수 있으며, 그에 따라 하나의 유형의 보안 관계를 생성할 수 있다. 612에서, 브리지 메시지 클라이언트를 포함하는 웹 애플리케이션은 웹 애플리케이션 개발자의 웹사이트와 같은 웹사이트 상에서 이용 가능하게 될 수 있다.
608에서 사용자가 웹 브라우저와 같은 브라우저 환경을 개방하고, 웹 애플리케이션 및 연관된 브리지 메시지 클라이언트를 갖는 웹 페이지로 브라우징한다. 예를 들어, 웹 애플리케이션은 사용자가 데이터를 업로드함으로써 웹페이지의 추가 특징을 이용하게 할 수 있는 풍부한 집적식 대화형 멀티미디어 경험일 수 있다. 614에서 클라이언트를 위한 브리지를 갖는 데스크톱 환경 내에 존재하는 브리지 서버가 존재하는지 여부가 판단된다. 브리지 서버가 존재하지 않으면, 616에서, 클라이언트로의 접속이 생성되지 않는다. 그러나, 브리지 서버가 존재하고 통신 채널이 이용 가능하면, 618에서 브리지 메시지 클라이언트는 브리지 서버로의 로컬 접속을 생성한다. 일 실시예에서, 로컬 접속이 개방되도록 제공하는 것은 컴퓨팅 장치의 브라우저 환경과 데스크톱 환경 사이에 통신 링크를 생성하는 것을 포함할 수 있으며, 이는 결국 데이터 스트링이 데스크톱 환경으로부터 브라우저 환경으로 전송되는 것을 허용할 수 있다.
도 7의 예시적인 실시예(700)에서, 702에서 사용자는 데스크톱 애플리케이션을 위해 요청을 활성화시키는 웹 애플리케이션 상의 특징을 선택한다. 예를 들어, 웹 애플리케이션은 "여기를 클릭하여 애플리케이션으로부터 연락처를 업로드함"이라고 명시된 버튼을 포함할 수 있다. 이러한 예에서, 사용자는 요청을 시작하기 위해 그 버튼을 클릭할 수 있다. 722에서 브리지 메시지 클라이언트는 로컬 접속을 거쳐 브리지 서버로 사용자의 연락처 관리 애플리케이션 내의 연락처 리스트에 대해서와 같은 요청을 발송할 수 있다.
724에서 브리지 서버는 브리지 메시지 클라이언트로부터 요청을 수신한다. 726에서 브리지 서버는 브리지 서버가 요청에 응답할 수 있는지 여부를 판단한다. 예를 들어, 브리지 서버는 브리지 서버가 사용자의 연락처가 업로드되는 것을 허용하는 애플리케이션을 위한 코드에 연관되는지 여부를 판단할 수 있다. 그렇지 않으면, 728에서 예를 들어 무효 응답(null response) 이외에 요청에 대한 아무런 응답도 반환되지 않는다.
브리지 서버가 응답할 수 있으면, 730에서 브리지 서버는 요청된 정보를 검색하기 위해 예를 들어 데스크톱 애플리케이션 내의 코드로 요청을 발송한다. 예를 들어, 사용자의 연락처에 대한 요청은 연락처 관리 애플리케이션 내의 코드로 전달될 수 있는데, 그것은 연락처를 포함하는 데이터 스트링으로 연락처를 결집시킬 수 있다. 732에서 브리지 서버는 애플리케이션 내의 코드로부터 응답을 수신하고 브리지 메시지 클라이언트로 응답을 전달한다.
734에서 브리지 메시지 클라이언트는 응답을 수신하며 사용을 위한 웹 애플리케이션으로 응답을 전달한다. 예를 들어, 웹 애플리케이션은 사용자의 연락처를 수신할 수 있으며 사용자의 연락처를 브라우저 내에서 사용하도록 디스플레이할 수 있다. 그런 다음, 또 다른 예에서, 웹 애플리케이션은 웹 기반 연락처 관리 애플리케이션 내로 연락처를 로딩할 수 있고/있거나 다른 사용자가 사용자의 연락처로부터 소셜 네트워크(social network) 내의 리스트로 부가되는 것을 허용할 수 있다.
또 다른 실시예는 본 명세서에 제시되는 하나 이상의 기법을 구현하도록 구성되는 프로세서에 의해 실행 가능 명령어(processor-executable instruction)를 포함하는 컴퓨터 판독 가능 매체를 포함한다. 이들 방식으로 발명될 수 있는 예시적인 컴퓨터 판독 가능 매체는 도 8에 예시되며, 구현(800)은 컴퓨터 판독 가능 매체(808)(예를 들어, CD-R, DVD-R, 또는 하드 디스크 드라이브의 플래터(platter))를 포함하며, 컴퓨터 판독 가능 매체(808) 상에 컴퓨터 판독 가능한 데이터(806)가 부호화된다. 이러한 컴퓨터 판독 가능한 데이터(806)는 결국 본 명세서에 제시된 하나 이상의 원리에 따라 동작하도록 구성되는 한 세트의 컴퓨터 명령어(804)를 포함한다. 이러한 일 실시예(802)에서, 프로세서에 의해 실행 가능 명령어(804)는 예를 들어 도 4의 예시적인 방법(400)과 같은 방법을 수행하도록 구성될 수 있다. 또 다른 이러한 실시예에서, 프로세서에 의해 실행 가능한 명령어(804)는 예를 들어 도 2의 예시적인 시스템(200)과 같은 시스템을 구현하도록 구성될 수 있다. 본 명세서에 제시된 기법에 따라 동작하도록 구성되는 많은 이러한 컴퓨터 판독 가능 매체가 당업자에 의해 발명될 수 있다.
비록 발명 대상이 구조적인 특징 및/또는 방법론적 작용에 특유한 언어로 설명되었지만, 첨부된 특허청구범위로 한정된 주제는 전술된 특유한 특징 또는 작용으로 반드시 제한될 필요가 없다는 것이 이해되어야 한다. 대신에, 전술된 특유한 특징 및 작용은 특허청구범위를 구현하는 예시적인 형태로서 개시된다.
본 출원에서 사용되는 바와 같이, 용어 "컴포넌트", "모듈", "시스템", "인터페이스" 등은 일반적으로 컴퓨터 관련된 실체(computer-related entity), 즉 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어를 지칭하도록 의도된다. 예를 들어, 컴포넌트는 실재(being), 즉, 프로세서 상에서 실행 중인 프로세스, 프로세서, 객체, 실행 가능한 것, 실행 스레드(thread of execution), 프로그램, 및/또는 컴퓨터일 수 있지만, 이에 제한되지 않는다. 예를 들어, 제어기 상에서 실행 중인 애플리케이션 및 제어기는 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행 스레드 내에 존재할 수 있고, 하나의 컴포넌트가 하나의 컴퓨터 상에 국한될 수 있고/있거나 두 개 이상의 컴퓨터 사이에서 분산될 수 있다.
또한, 청구된 주제는 소프트웨어, 펌웨어, 하드웨어 또는 이들의 임의의 조합을 생성하여 개시된 주제를 구현하도록 컴퓨터를 제어하는 표준 프로그래밍 및/또는 엔지니어링 기법을 사용하는 방법, 장치, 또는 제조 품목으로서 구현될 수 있다. 본 명세서에 사용되는 바와 같은 용어 "제조 품목"은 임의의 컴퓨터 판독 가능한 장치, 캐리어(carrier) 또는 매체로부터 접근 가능한 컴퓨터 프로그램을 포함하도록 의도된다. 물론, 당업자는 청구된 주제의 범위 또는 사상을 벗어나지 않으면서 이러한 구성에 대한 많은 변형이 생성될 수 있다는 것을 인식할 것이다.
도 9 및 이하의 논의는 본 명세서에 제시된 대책 중 하나 이상의 대책의 실시예를 구현하기 위한 적절한 컴퓨팅 환경의 간단하고 일반적인 설명을 제공한다. 도 9의 운영 환경은 적절한 운영 환경의 단지 일 예이며, 운영 환경의 사용 또는 기능성의 범위에 대하여 어떠한 제한을 제안하려고 의도되지 않는다. 예시적인 컴퓨팅 장치는 퍼스널 컴퓨터, 서버 컴퓨터, 휴대용 또는 랩탑 장치, (모바일 폰, PDA(Personal Digital Assistant), 미디어 플레이어 등과 같은) 모바일 장치, 멀티프로세서 시스템, 가전 제품, 미니 컴퓨터, 메인프레임 컴퓨터, 임의의 전술한 시스템 또는 장치를 포함하는 분산형 컴퓨팅 환경 등을 포함하지만, 이에 제한되지 않는다.
비록 요구되지는 않지만, 실시예는 하나 이상의 컴퓨팅 장치에 의해 실행 중인 "컴퓨터 판독 가능 명령어"의 일반적인 상황에서 설명된다. 컴퓨터 판독 가능 명령어는 (이하에 논의되는) 컴퓨터 판독 가능 매체를 통해 분산될 수 있다. 컴퓨터 판독 가능 명령어는 특정 임무를 수행하거나 특정 추상 데이터 유형(abstract data type)을 구현하는 기능, 객체(object), API(Application Programming Interface), 데이터 구조 등과 같은 프로그램 모듈로서 구현될 수 있다. 전형적으로, 컴퓨터 판독 가능 명령어의 기능은 다양한 환경 내에서 요구되는 대로 조합되거나 분산될 수 있다.
도 9는 본 명세서에 제시된 하나 이상의 실시예를 구현하도록 구성되는 컴퓨팅 장치(912)를 포함하는 시스템(910)의 일 예를 예시한다. 하나의 구성에서, 컴퓨팅 장치(912)는 적어도 하나의 프로세싱 유닛(916) 및 메모리(918)를 포함한다. 컴퓨팅 장치의 정확한 구성 및 유형에 따라, 메모리(918)는 (예를 들어, RAM과 같은) 휘발성, (예를 들어, ROM, 플래시 메모리 등과 같은) 비휘발성, 또는 이들 두 개의 조합일 수 있다. 이러한 구성은 도 9에서 점선(914)에 의해 예시된다.
다른 실시예에서, 장치(912)는 추가 특징 및/또는 기능성을 포함할 수 있다. 예를 들어, 장치(912)는 자기 저장소, 광학 저장소 등을 포함하지만 이에 제한되지 않는 (예를 들어, 제거 가능하며/하거나 제거 가능하지 않은) 추가적인 저장소를 또한 포함할 수 있다. 이러한 추가적인 저장소는 도 9에서 저장소(920)에 의해 예시된다. 일 실시예에서, 본 명세서에서 제공되는 하나 이상의 실시예를 구현하는 컴퓨터 판독 가능 명령어는 저장소(920) 내에 존재할 수 있다. 저장소(920)는 운영 시스템, 애플리케이션 프로그램 등을 구현하는 다른 컴퓨터 판독 가능 명령어를 또한 저장할 수 있다. 컴퓨터 판독 가능 명령어는 예를 들어 프로세싱 유닛(916)에 의한 실행을 위해 메모리(918) 내에 로딩될 수 있다.
본 명세서에서 사용되는 바와 같은 용어 "컴퓨터 판독 가능 매체"는 컴퓨터 저장 매체를 포함한다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 및 기술로 구현되는 휘발성 및 비휘발성, 제거 가능한 및 제거 가능하지 않은 매체를 포함한다. 메모리(918) 및 저장소(920)는 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(Digital Versatile Disk) 또는 다른 광 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 장치, 또는 요구된 정보를 저장하기 위해 사용될 수 있으면서 장치(912)에 의해 접근될 수 있는 임의의 다른 매체를 포함하지만, 이에 제한되지 않는다. 임의의 이러한 컴퓨터 저장 매체는 장치(912)의 일부일 수 있다.
장치(912)는 장치(912)가 다른 장치와 통신하는 것을 허용하는 통신 접속(926)을 또한 포함할 수 있다. 통신 접속(926)은 모뎀, NIC(Network Interface Card), 집적식 네트워크 인터페이스, 무선 주파수 송신기/수신기, 적외선 포트, USB 접속, 또는 컴퓨팅 장치(912)를 다른 컴퓨팅 장치로 접속하기 위한 다른 인터페이스를 포함하지만, 이에 제한되지 않는다. 통신 접속(926)은 유선 접속 또는 무선 접속을 포함할 수 있다. 통신 접속(926)은 통신 매체를 송신하고/하거나 수신할 수 있다.
용어 "컴퓨터 판독 가능 매체"는 통신 매체를 포함할 수 있다. 통신 매체는 반송파(carrier wave) 또는 다른 전송 메카니즘과 같은 "변조된 데이터 신호" 내의 컴퓨터 판독 가능 명령어 또는 다른 데이터를 전형적으로 구체화하며, 임의의 정보 전달 매체를 포함한다. 용어 "변조된 데이터 신호"는 신호 특성 세트 중 하나 이상의 신호 특성 세트를 갖는 신호를 포함할 수 있거나 그 신호 내의 정보를 부호화하기 위한 방식으로 변화될 수 있다.
장치(912)는 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치, 적외선 카메라, 비디오 입력 장치, 및/또는 임의의 다른 입력 장치와 같은 입력 장치(924)를 포함할 수 있다. 하나 이상의 디스플레이, 스피커, 프린터, 및/또는 임의의 다른 출력 장치와 같은 출력 장치(922)가 컴퓨팅 장치(912) 내에 또한 포함될 수 있다. 입력 장치(924) 및 출력 장치(922)는 유선 접속, 무선 접속, 또는 이들의 임의의 조합을 통해 장치(912)에 접속될 수 있다. 일 실시예에서, 또 다른 컴퓨팅 장치로부터의 입력 장치 또는 출력 장치가 컴퓨팅 장치(912)를 위한 입력 장치(924) 또는 출력 장치(922)로서 사용될 수 있다.
컴퓨팅 장치(912)의 컴포넌트는 버스와 같은 다양한 상호 접속에 의해 접속될 수 있다. 이러한 상호 접속은 PCI 익스프레스(Express)와 같은 PCI(Peripheral Component Interconnect), USB(Universal Serial Bus), 파이어 와이어(fire wire)(IEEE 1394), 광 버스 구조(optical bus structure) 등을 포함할 수 있다. 또 다른 실시예에서, 컴퓨팅 장치(912)의 컴포넌트는 네트워크에 의해 상호 접속될 수 있다. 예를 들어, 메모리(918)는 네트워크에 의해 상호 접속되는 상이한 물리적 위치에 위치된 복수의 물리적 메모리 유닛으로 구성될 수 있다.
당업자는 컴퓨터 판독 가능 명령어를 저장하기 위해 이용되는 저장 장치가 네트워크를 가로질러 분산될 수 있다는 것을 실현할 것이다. 예를 들어, 네트워크(928)를 통해 접근 가능한 컴퓨팅 장치(930)는 본 명세서에 제공된 하나 이상의 실시예를 구현하는 컴퓨터 판독 가능 명령어를 저장할 수 있다. 컴퓨팅 장치(912)는 컴퓨팅 장치(930)에 접근할 수 있고 실행을 위해 컴퓨터 판독 가능 명령어의 일부 또는 전부를 다운로드할 수 있다. 대안적으로, 컴퓨팅 장치(912)는 필요한 대로 컴퓨터 판독 가능 명령어의 일부를 다운로드할 수 있거나, 일부 명령어는 컴퓨팅 장치(912)에서 실행될 수 있으며 일부 명령어는 컴퓨팅 장치(930)에서 실행될 수 있다.
실시예의 다양한 동작이 본 명세서에 제공된다. 일 실시예에서, 설명된 동작 중 하나 이상의 동작은 하나 이상의 컴퓨터 판독 가능 매체 상에 저장되는 컴퓨터 판독 가능 명령어를 구성할 수 있으며, 이는 컴퓨팅 장치에 의해 실행 중인 경우에 컴퓨팅 장치가 설명된 동작을 수행하게 할 것이다. 동작의 일부 또는 전부가 설명되는 순서는 이들 동작이 필연적으로 순서 의존형이라는 것을 의미하는 것으로 이해되지 않아야 한다. 이러한 설명의 혜택을 받는 당업자에 의해 대안적인 순서가 이해될 것이다. 또한, 모든 동작이 본 명세서에 제공된 각각의 실시예 내에 반드시 존재할 필요는 없다는 것이 이해될 것이다.
또한, 단어 "예시적인(exemplary)"은 예, 인스턴스(instance) 또는 예시로서 제공하는 것을 의미하기 위해 본 명세서에서 사용된다. 본 명세서에서 "예시적인"으로서 설명되는 임의의 양태 또는 설계는 반드시 다른 양태 또는 설계보다 유리한 것으로 이해될 필요는 없다. 대신에, 단어 "예시적인"의 사용은 개념을 구체적인 방식으로 제시하도록 의도된다. 본 출원에서 사용되는 바와 같이, 용어 "또는(or)"은 배타적인 "또는"이라기보다는 포괄적인 "또는"을 의미하도록 의도된다. 즉, 특별하게 달리 언급되거나 문맥으로부터 명백하지 않는 한, "X는 A 또는 B를 이용한다"는 임의의 자연적인 포괄적인 순열을 포함하도록 의도된다. 즉, X가 A를 이용하거나, X가 B를 이용하거나, 또는 X가 A와 B를 모두 이용하면, 임의의 전술된 인스턴스에 있어서 "X가 A 또는 B를 이용한다"는 것이 만족된다. 추가적으로, 본 출원 및 첨부된 특허청구범위에서 사용되는 바와 같은 관사 "일 및 하나의(a 및 an)"는 특별하게 달리 언급되거나 단수형을 지시하는 것으로 문맥으로부터 명백하지 않는 한 일반적으로 "하나 이상의(one or more)"를 의미하는 것으로 이해될 수 있다.
또한, 비록 본 명세서가 하나 이상의 구현에 대하여 도시되고 설명되었지만, 동등한 변경 및 수정이 이러한 상세한 설명 및 첨부된 도면에 대한 판독 및 이해에 기초하여 당업자에게 발생할 것이다. 본 명세서는 이러한 모든 변경 및 수정을 포함하고 이하의 특허청구범위의 범위에 의해서만 제한된다. 특히 전술된 컴포넌트(예를 들어, 요소, 자원 등)에 의해 수행되는 다양한 기능에 관하여, 이러한 컴포넌트를 설명하기 위해 사용되는 용어는, 비록 본 명세서의 본 명세서에서 예시된 예시적인 구현 내의 기능을 수행하는 개시된 구조에 구조적으로 동등하지는 않더라도, 달리 표시되지 않는 한, (예를 들어, 기능적으로 동등한) 설명된 컴포넌트의 특정 기능을 수행하는 임의의 컴포넌트에 상응하도록 의도된다. 추가적으로, 본 명세서의 특정 특징이 몇 개의 구현 중 오직 하나의 구현에 대하여 개시될 수 있지만, 이러한 특징은 임의의 주어진 또는 특정 출원에 대해 요구되고 유리할 수 있는 바와 같이 나머지 구현 중 하나 이상의 다른 특징과 조합될 수 있다. 또한, 용어 "구비한다(includes)", "갖는(having)", "갖다(has)", "구비하는(with)" 또는 이들의 변형이 상세한 설명 또는 특허청구범위에서 사용되는 범위에서는, 이러한 용어는 용어 "포함하는(comprising)"에 유사한 방식으로 포괄적이도록 의도된다.

Claims (21)

  1. 웹 애플리케이션으로부터 컴퓨팅 장치 상에서 구동 중인 프로세스로 요청을 보안적으로(securely) 릴레이(relay)하기 위한 시스템에 있어서,
    컴퓨팅 장치에 국한된(local) 브라우저 환경에서 구동 중인 웹 애플리케이션 내에 설치된 브리지(bridge) 메시지 클라이언트 컴포넌트를 포함하고,
    상기 브리지 메시지 클라이언트 컴포넌트는,
    브리지 메시지 클라이언트 식별정보 - 상기 브리지 메시지 클라이언트 식별정보는, 상기 브리지 메시지 클라이언트 컴포넌트가 브리지 서버 컴포넌트와 연관된 신뢰성 있는 소스(trusted source)로부터 비롯된(originate) 것이라고 식별하기 위한 것임 - 를 이용하여, 상기 컴퓨팅 장치 내에서 상기 브라우저 환경 외부에서 호스팅되는 상기 브리지 서버 컴포넌트와의 보안 로컬 접속을 구축하며,
    상기 보안 로컬 접속을 통해, 상기 웹 애플리케이션으로부터 상기 브리지 서버 컴포넌트로, 상기 컴퓨팅 장치 상에서 상기 브라우저 환경 외부에서 구동 중인 프로세스로의 라우팅을 위한 요청을 릴레이하도록 구성된 것인, 요청을 보안적으로 릴레이하기 위한 시스템.
  2. 제1항에 있어서, 상기 브리지 메시지 클라이언트 컴포넌트는 상기 브리지 서버 컴포넌트에 대한 상기 보안 로컬 접속을 호스팅하기 위한 통신 채널을 식별하도록 구성된 통신 채널 식별정보를 포함한 것인, 요청을 보안적으로 릴레이하기 위한 시스템.
  3. 제1항에 있어서, 상기 웹 애플리케이션은 웹사이트로부터 다운로드된 것이며, 상기 다운로드된 웹 애플리케이션은 상기 브리지 메시지 클라이언트 컴포넌트를 포함한 것인, 요청을 보안적으로 릴레이하기 위한 시스템.
  4. 제1항에 있어서, 상기 웹 애플리케이션은 데스크탑 가젯 또는 소셜 네트워크 애플리케이션 중 적어도 하나를 포함한 것인, 요청을 보안적으로 릴레이하기 위한 시스템.
  5. 제1항에 있어서, 상기 브리지 서버 컴포넌트는,
    상기 보안 로컬 접속을 통해, 상기 브리지 메시지 클라이언트 컴포넌트로부터 상기 요청을 수신하며,
    만약 상기 브리지 서버 컴포넌트가 상기 요청에 응답하도록 구성된 것이라는 결정이 행해지면, 상기 요청을 상기 프로세스에 포워딩하도록 구성된 것인, 요청을 보안적으로 릴레이하기 위한 시스템.
  6. 제5항에 있어서, 상기 브리지 서버 컴포넌트는,
    상기 프로세스로부터 상기 요청에 대한 응답을 수신하며,
    상기 보안 로컬 접속을 통해, 상기 웹 애플리케이션을 위해 상기 응답을 상기 브리지 메시지 클라이언트 컴포넌트로 릴레이하도록 구성된 것인, 요청을 보안적으로 릴레이하기 위한 시스템.
  7. 제6항에 있어서, 상기 브리지 메시지 클라이언트 컴포넌트는,
    상기 응답을 상기 웹 애플리케이션에 포워딩하도록 구성된 것인, 요청을 보안적으로 릴레이하기 위한 시스템.
  8. 제1항에 있어서, 상기 웹 애플리케이션은 멀티미디어 런타임 환경과 연관된 것인, 요청을 보안적으로 릴레이하기 위한 시스템.
  9. 제1항에 있어서, 상기 브리지 메시지 클라이언트 컴포넌트와 상기 브리지 서버 컴포넌트는 상기 신뢰성 있는 소스의 루트 도메인으로부터 비롯된 것인, 요청을 보안적으로 릴레이하기 위한 시스템.
  10. 웹 애플리케이션으로부터 컴퓨팅 장치 상에서 구동 중인 프로세스로 요청을 보안적으로 릴레이하기 위한 방법에 있어서,
    컴퓨팅 장치에 국한된 브라우저 환경에서 구동 중인 웹 애플리케이션 내에 설치된 브리지 메시지 클라이언트 컴포넌트에 의해, 브리지 메시지 클라이언트 식별정보 - 상기 브리지 메시지 클라이언트 식별정보는, 상기 브리지 메시지 클라이언트 컴포넌트를 브리지 서버 컴포넌트와 연관된 신뢰성 있는 소스로부터 비롯된 것이라고 식별하기 위한 것임 - 를 이용하여, 상기 컴퓨팅 장치 내에서 상기 브라우저 환경 외부에서 호스팅되는 상기 브리지 서버 컴포넌트와의 보안 로컬 접속을 구축하는 단계; 및
    상기 브리지 메시지 클라이언트 컴포넌트에 의해, 상기 보안 로컬 접속을 통해, 상기 웹 애플리케이션으로부터 상기 브리지 서버 컴포넌트로, 프로세스로의 라우팅을 위한 요청을 릴레이하는 단계
    를 포함하는, 요청을 보안적으로 릴레이하기 위한 방법.
  11. 제10항에 있어서,
    상기 보안 로컬 접속을 통해, 상기 브리지 서버 컴포넌트에 의해, 상기 브리지 메시지 클라이언트 컴포넌트로부터 상기 요청을 수신하는 단계; 및
    상기 브리지 서버 컴포넌트에 의해, 상기 요청을 상기 프로세스에 포워딩하는 단계
    를 포함하는, 요청을 보안적으로 릴레이하기 위한 방법.
  12. 제11항에 있어서,
    상기 브리지 서버 컴포넌트에 의해, 상기 요청에 대한 응답을 상기 프로세스로부터 수신하는 단계; 및
    상기 보안 로컬 접속을 통해, 상기 브리지 서버 컴포넌트에 의해, 상기 웹 애플리케이션을 위해 상기 응답을 상기 브리지 메시지 클라이언트 컴포넌트로 릴레이하는 단계
    를 포함하는, 요청을 보안적으로 릴레이하기 위한 방법.
  13. 제12항에 있어서,
    상기 브리지 메시지 클라이언트 컴포넌트에 의해, 상기 응답을 상기 웹 애플리케이션에 포워딩하는 단계
    를 포함하는, 요청을 보안적으로 릴레이하기 위한 방법.
  14. 제10항에 있어서, 상기 웹 애플리케이션은 데스크탑 가젯을 포함한 것인, 요청을 보안적으로 릴레이하기 위한 방법.
  15. 제10항에 있어서, 상기 웹 애플리케이션은 소셜 네트워크 애플리케이션을 포함한 것인, 요청을 보안적으로 릴레이하기 위한 방법.
  16. 제10항에 있어서, 상기 웹 애플리케이션은 멀티미디어 런타임 환경과 연관된 것인, 요청을 보안적으로 릴레이하기 위한 방법.
  17. 제10항에 있어서, 상기 브리지 메시지 클라이언트 컴포넌트와 상기 브리지 서버 컴포넌트는 상기 신뢰성 있는 소스의 루트 도메인으로부터 비롯된 것인, 요청을 보안적으로 릴레이하기 위한 방법.
  18. 제10항에 있어서, 상기 브리지 메시지 클라이언트 컴포넌트는 상기 신뢰성 있는 소스와는 별개의 다운로드가능한 모듈로서 상기 웹 애플리케이션에 설치된 것인, 요청을 보안적으로 릴레이하기 위한 방법.
  19. 제10항에 있어서, 상기 브리지 메시지 클라이언트 컴포넌트는 상기 브리지 서버 컴포넌트에 대한 상기 보안 로컬 접속을 호스팅하기 위한 통신 채널을 식별하도록 구성된 통신 채널 식별정보를 포함한 것인, 요청을 보안적으로 릴레이하기 위한 방법.
  20. 프로세싱 유닛을 통해 실행될 때, 컴퓨팅 장치 상에서 구동 중인 프로세스와 웹 애플리케이션 사이의 통신을 원활하게 하기 위한 방법을 수행하는, 컴퓨터로 실행가능한 명령어들을 포함하는 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독가능한 저장 매체에 있어서, 상기 방법은,
    컴퓨팅 장치에 국한된 브라우저 환경에서 구동 중인 웹 애플리케이션 내에 설치된 브리지 메시지 클라이언트 컴포넌트에 의해, 브리지 메시지 클라이언트 식별정보 - 상기 브리지 메시지 클라이언트 식별정보는, 상기 브리지 메시지 클라이언트 컴포넌트가 브리지 서버 컴포넌트와 연관된 신뢰성 있는 소스로부터 비롯된 것이라고 식별하기 위한 것임 - 를 이용하여, 상기 컴퓨팅 장치 내에서 상기 브라우저 환경 외부에서 호스팅되는 상기 브리지 서버 컴포넌트와의 보안 로컬 접속을 구축하는 단계;
    상기 브리지 메시지 클라이언트 컴포넌트에 의해, 상기 보안 로컬 접속을 통해, 상기 웹 애플리케이션으로부터 상기 브리지 서버 컴포넌트로, 상기 컴퓨팅 장치 상에서 상기 브라우저 환경 외부에서 구동 중인 프로세스로의 라우팅을 위한 요청을 릴레이하는 단계;
    상기 브리지 서버 컴포넌트에 의해, 상기 요청에 대한 응답을 상기 프로세스로부터 수신하는 단계; 및
    상기 보안 로컬 접속을 통해, 상기 브리지 서버 컴포넌트에 의해, 상기 웹 애플리케이션을 위해 상기 응답을 상기 브리지 메시지 클라이언트 컴포넌트로 릴레이하는 단계를 포함하는 것인, 컴퓨터 판독가능한 저장 매체.
  21. 컴퓨팅 장치 상에서 구동 중인 프로세스로 요청을 보안적으로 릴레이하기 위한 시스템에 있어서,
    컴퓨팅 장치에 국한된 브라우저 환경 내에 설치된 브리지 메시지 클라이언트 컴포넌트를 포함하고, 상기 브리지 메시지 클라이언트 컴포넌트는,
    브리지 메시지 클라이언트 식별정보 - 상기 브리지 메시지 클라이언트 식별정보는, 상기 브리지 메시지 클라이언트 컴포넌트가 브리지 서버 컴포넌트와 연관된 신뢰성 있는 소스로부터 비롯된 것이라고 식별하기 위한 것임 - 를 이용하여, 상기 컴퓨팅 장치 내에서 상기 브라우저 환경 외부에서 호스팅되는 상기 브리지 서버 컴포넌트와의 보안 로컬 접속을 구축하며,
    상기 보안 로컬 접속을 통해, 상기 브리지 서버 컴포넌트로, 상기 컴퓨팅 장치 상에서 상기 브라우저 환경 외부에서 구동 중인 프로세스로의 라우팅을 위한 요청을 릴레이하도록 구성된 것인, 요청을 보안적으로 릴레이하기 위한 시스템.
KR1020127017157A 2009-12-03 2010-11-05 웹 애플리케이션과 브라우저 외부의 프로세스 사이의 통신 채널 KR101763967B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/630,208 US9390172B2 (en) 2009-12-03 2009-12-03 Communication channel between web application and process outside browser
US12/630,208 2009-12-03
PCT/US2010/055689 WO2011068629A2 (en) 2009-12-03 2010-11-05 Communication channel between web application and process outside browser

Publications (2)

Publication Number Publication Date
KR20120092169A KR20120092169A (ko) 2012-08-20
KR101763967B1 true KR101763967B1 (ko) 2017-08-01

Family

ID=44083113

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127017157A KR101763967B1 (ko) 2009-12-03 2010-11-05 웹 애플리케이션과 브라우저 외부의 프로세스 사이의 통신 채널

Country Status (6)

Country Link
US (1) US9390172B2 (ko)
EP (1) EP2507715B1 (ko)
JP (1) JP5894080B2 (ko)
KR (1) KR101763967B1 (ko)
CN (1) CN102640136B (ko)
WO (1) WO2011068629A2 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US9386356B2 (en) 2008-11-26 2016-07-05 Free Stream Media Corp. Targeting with television audience data across multiple screens
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US9519772B2 (en) 2008-11-26 2016-12-13 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US9026668B2 (en) 2012-05-26 2015-05-05 Free Stream Media Corp. Real-time and retargeted advertising on multiple screens of a user watching television
US9154942B2 (en) 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US8620914B1 (en) * 2010-05-18 2013-12-31 Google Inc. Ranking of digital goods in a marketplace
US20120316955A1 (en) * 2011-04-06 2012-12-13 Yahoo! Inc. System and Method for Mobile Application Search
US9823914B2 (en) * 2011-12-28 2017-11-21 International Business Machines Corporation Web applications having end-user data isolated in the local domain
CN102929638B (zh) * 2012-11-07 2014-08-13 广州市动景计算机科技有限公司 扩展WebApp应用功能的方法和系统
CN104813306B (zh) 2012-11-21 2017-07-04 相干逻辑公司 具有散布处理器dma‑fifo的处理系统
BR112015019003B1 (pt) * 2013-02-10 2022-06-28 Wix.Com Ltd Dispositivo para um sistema de construção de website, e método para um sistema de construção de website
US10291615B2 (en) * 2013-05-13 2019-05-14 Ivanti Us Llc Web event framework
US9912720B2 (en) 2013-05-13 2018-03-06 Appsense Us Llc Context aware browser policy
US9900367B2 (en) 2013-05-13 2018-02-20 Appsense Us Llc Context transfer from web page to application
US9760415B2 (en) * 2014-05-16 2017-09-12 Microsoft Technology Licensing, Llc Code service for language-independent dispatch
CN104010031B (zh) * 2014-05-21 2018-01-05 华南理工大学 一种改善Web浏览器应用效率的分布式协同方法
US9311504B2 (en) 2014-06-23 2016-04-12 Ivo Welch Anti-identity-theft method and hardware database device
US9876849B2 (en) 2014-11-05 2018-01-23 Google Llc Opening local applications from browsers
US10949487B2 (en) * 2015-04-20 2021-03-16 Hyland Switzerland Sàrl Systems and methods for accessing computing device resources
US20160344677A1 (en) 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Unified messaging platform for providing interactive semantic objects
US10216709B2 (en) 2015-05-22 2019-02-26 Microsoft Technology Licensing, Llc Unified messaging platform and interface for providing inline replies
US10095571B2 (en) * 2016-01-04 2018-10-09 SmarterHi Communications Private Limited System and method for managing devices relayed via an established session
CN107015870B (zh) 2016-09-19 2020-11-03 创新先进技术有限公司 实现web页面与本地应用通信的方法、装置和电子设备
US10749689B1 (en) * 2017-06-29 2020-08-18 Salesforce.Com, Inc. Language-agnostic secure application development
US11163910B2 (en) * 2017-06-29 2021-11-02 Salesforce.Com, Inc. Methods and systems for data migration
US10901581B2 (en) * 2018-05-16 2021-01-26 ChartIQ, Inc. Assimilation method and system for browser and non-browser display window
US20200099738A1 (en) * 2018-09-24 2020-03-26 Citrix Systems, Inc. Systems and methods for bridge protocol between diverse applications
US10805246B1 (en) 2019-06-12 2020-10-13 International Business Machines Corporation Direct communication between a secure application and a local application running on the same device
US11776699B2 (en) * 2019-07-12 2023-10-03 Agfa Healthcare Nv Systems and methods for integrating healthcare applications
CN111176626B (zh) * 2019-08-05 2022-04-19 腾讯科技(深圳)有限公司 跨编程语言的代码调用方法及装置、介质、设备
US11575626B2 (en) * 2020-06-10 2023-02-07 Snap Inc. Bidirectional bridge for web view
CN112925527B (zh) * 2021-02-07 2022-03-08 北京三快在线科技有限公司 一种调用方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080028416A1 (en) 2006-02-20 2008-01-31 Topeer Corporation System and Method for Controlling Local Computer Applications Using a Web Interface
US7346649B1 (en) 2000-05-31 2008-03-18 Wong Alexander Y Method and apparatus for network content distribution using a personal server approach
US20090055749A1 (en) 2007-07-29 2009-02-26 Palm, Inc. Application management framework for web applications

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696591A (en) * 1996-01-05 1997-12-09 Eastman Kodak Company Apparatus and method for detecting longitudinally oriented flaws in a moving web
US6758755B2 (en) * 1996-11-14 2004-07-06 Arcade Planet, Inc. Prize redemption system for games executed over a wide area network
US6119166A (en) * 1997-03-28 2000-09-12 International Business Machines Corporation Controlling communications with local applications using a browser application
US6141699A (en) * 1998-05-11 2000-10-31 International Business Machines Corporation Interactive display system for sequential retrieval and display of a plurality of interrelated data sets
US6341314B1 (en) * 1999-03-30 2002-01-22 International Business Machines Corporation Web-based virtual computing machine
US7539628B2 (en) * 2000-03-21 2009-05-26 Bennett James D Online purchasing system supporting buyer affordability screening
US6968539B1 (en) 1999-09-30 2005-11-22 International Business Machines Corporation Methods and apparatus for a web application processing system
US6725238B1 (en) * 2000-01-06 2004-04-20 International Business Machines Corporation Method, system, and program for using a remotely accessed desktop interface and network drive to access a shared file system
US9213836B2 (en) * 2000-05-28 2015-12-15 Barhon Mayer, Batya System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages
JP3460678B2 (ja) * 2000-06-02 2003-10-27 松下電器産業株式会社 レーザ加工方法および加工装置
US7401235B2 (en) 2002-05-10 2008-07-15 Microsoft Corporation Persistent authorization context based on external authentication
US20070022155A1 (en) * 2002-08-22 2007-01-25 Owens David H Method and system for integrating enterprise software applications with desktop software applications
EP1394679B1 (en) * 2002-08-30 2013-05-29 Hewlett-Packard Development Company, L.P. Improvements relating to technical support systems
JP2004302543A (ja) 2003-03-28 2004-10-28 Ntt Docomo Inc 受信装置およびプログラム
US20040249958A1 (en) * 2003-06-04 2004-12-09 Ozdemir Hasan Timucin Method and apparatus for secure internet communications
US20090094332A1 (en) * 2004-09-02 2009-04-09 Zimbra, Inc. System and method for enabling offline use of email through a browser interface
US20060075069A1 (en) * 2004-09-24 2006-04-06 Mohan Prabhuram Method and system to provide message communication between different application clients running on a desktop
US20060195544A1 (en) * 2005-02-28 2006-08-31 Bcks Posting and receiving resources for external applications using a web browser as an agent
JP4409497B2 (ja) 2005-10-24 2010-02-03 エヌ・ティ・ティ・ソフトウェア株式会社 秘密情報送信方法
US7752556B2 (en) * 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7986686B2 (en) * 2005-11-25 2011-07-26 Cisco Technology, Inc. Techniques for distributing network provider digital content to customer premises nodes
US7836303B2 (en) * 2005-12-09 2010-11-16 University Of Washington Web browser operating system
WO2008002274A1 (en) 2006-06-27 2008-01-03 Inventys Pte Ltd Method and system for client-side user interface enhancement to enable application integration and portalisation
US8583793B2 (en) * 2006-11-20 2013-11-12 Apple Inc. System and method for providing a hypertext transfer protocol service multiplexer
US20080168368A1 (en) * 2007-01-07 2008-07-10 Louch John O Dashboards, Widgets and Devices
US20080168367A1 (en) * 2007-01-07 2008-07-10 Chaudhri Imran A Dashboards, Widgets and Devices
US10019570B2 (en) * 2007-06-14 2018-07-10 Microsoft Technology Licensing, Llc Protection and communication abstractions for web browsers
US20090037492A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal Framework for Synchronizing Applications
US20090320050A1 (en) * 2007-08-17 2009-12-24 Sms.Ac Mobile Network Community Platform Desktop API
US20090100342A1 (en) 2007-10-12 2009-04-16 Gabriel Jakobson Method and system for presenting address and mapping information
US8336097B2 (en) * 2007-10-12 2012-12-18 Electronics And Telecommunications Research Institute Apparatus and method for monitoring and protecting system resources from web browser
US20090144362A1 (en) * 2007-12-01 2009-06-04 Richmond Evan P Systems and methods for providing desktop messaging and end-user profiling
CN101488143A (zh) 2008-01-16 2009-07-22 重庆安软信息科技有限公司 一种新型的web应用和本地应用的交互模式
US20090254998A1 (en) * 2008-04-07 2009-10-08 Plura Processing, Lp Web-browser based grid computing system
US8078693B2 (en) 2008-04-14 2011-12-13 Microsoft Corporation Inserting a multimedia file through a web-based desktop productivity application
CA2665436A1 (en) * 2008-05-07 2009-11-07 Research In Motion Limited Interaction between web pages and local applications
CN105327509B (zh) * 2008-06-02 2019-04-19 耐克创新有限合伙公司 创建化身的系统和方法
US20100004994A1 (en) * 2008-07-02 2010-01-07 Global Launch Incorporated Methods for facilitating communications between businesses and consumers
US8370749B2 (en) * 2008-10-14 2013-02-05 Kimbia Secure online communication through a widget on a web page
US8321401B2 (en) * 2008-10-17 2012-11-27 Echostar Advanced Technologies L.L.C. User interface with available multimedia content from multiple multimedia websites
US8352967B2 (en) * 2008-11-10 2013-01-08 Google Inc. Safe browser plugins using native code modules
US20100146523A1 (en) * 2008-12-05 2010-06-10 Tripod Ventures Inc./ Entreprises Tripod Inc. Browser environment application and local file server application system
US20100235762A1 (en) * 2009-03-10 2010-09-16 Nokia Corporation Method and apparatus of providing a widget service for content sharing
US20100248681A1 (en) * 2009-03-27 2010-09-30 Anthony Phills Method and system for producing emergency notifications
US9459936B2 (en) * 2009-05-01 2016-10-04 Kaazing Corporation Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
US20110055309A1 (en) * 2009-08-30 2011-03-03 David Gibor Communication in Context of Content
US20110085667A1 (en) * 2009-10-09 2011-04-14 Adgregate Markets, Inc. Various methods and apparatuses for securing an application container

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346649B1 (en) 2000-05-31 2008-03-18 Wong Alexander Y Method and apparatus for network content distribution using a personal server approach
US20080028416A1 (en) 2006-02-20 2008-01-31 Topeer Corporation System and Method for Controlling Local Computer Applications Using a Web Interface
US20090055749A1 (en) 2007-07-29 2009-02-26 Palm, Inc. Application management framework for web applications

Also Published As

Publication number Publication date
WO2011068629A3 (en) 2011-09-01
KR20120092169A (ko) 2012-08-20
EP2507715A2 (en) 2012-10-10
CN102640136B (zh) 2016-03-02
JP2013513160A (ja) 2013-04-18
WO2011068629A2 (en) 2011-06-09
CN102640136A (zh) 2012-08-15
JP5894080B2 (ja) 2016-03-23
EP2507715B1 (en) 2018-06-20
US20110138059A1 (en) 2011-06-09
US9390172B2 (en) 2016-07-12
EP2507715A4 (en) 2013-05-08

Similar Documents

Publication Publication Date Title
KR101763967B1 (ko) 웹 애플리케이션과 브라우저 외부의 프로세스 사이의 통신 채널
US9990128B2 (en) Messaging application interacting with one or more extension applications
US11778430B2 (en) Layers in messaging applications
US20200236513A1 (en) Message extension app store
US10255255B2 (en) Customization of mobile applications using web-based technology
KR101921144B1 (ko) 하나 이상의 확장 애플리케이션과 상호작용하는 메시징 애플리케이션
US10852912B2 (en) Image creation app in messaging app
EP2699029B1 (en) Method and device for providing a message function
US20170359283A1 (en) Music creation app in messaging app
CN101405689A (zh) 侧边栏通信系统和方法
US20200396187A1 (en) Email reactions through embedded tokens
US20140282032A1 (en) Dynamically configuring user experiences with action uniform resource identifiers
US10693971B2 (en) Identifying the best suitable application to open a file shared via a link
US10699066B2 (en) Identifying and mapping emojis
JP2015517165A (ja) ユーザーインターフェイスウェブサービス
CN110083467B (zh) 小程序消息的处理方法、设备和计算机存储介质
CN110708238B (zh) 用于处理信息的方法和装置
CN111448576B (zh) 具有动态内容的安全电子消息
US10602332B2 (en) Programming organizational links that propagate to mobile applications

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant