KR101897310B1 - 전자 통신을 위한 확장가능성 특징 - Google Patents

전자 통신을 위한 확장가능성 특징 Download PDF

Info

Publication number
KR101897310B1
KR101897310B1 KR1020137029752A KR20137029752A KR101897310B1 KR 101897310 B1 KR101897310 B1 KR 101897310B1 KR 1020137029752 A KR1020137029752 A KR 1020137029752A KR 20137029752 A KR20137029752 A KR 20137029752A KR 101897310 B1 KR101897310 B1 KR 101897310B1
Authority
KR
South Korea
Prior art keywords
gadget
extension
communication item
code
email
Prior art date
Application number
KR1020137029752A
Other languages
English (en)
Other versions
KR20140034188A (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 KR20140034188A publication Critical patent/KR20140034188A/ko
Application granted granted Critical
Publication of KR101897310B1 publication Critical patent/KR101897310B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • 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
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/60Business processes related to postal services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Operations Research (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Environmental & Geological Engineering (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

통신 아이템들 내에 액티브 및 인터랙티브 기능을 제공하기 위해 확장가능성 모델이 사용되지만, 실시예들이 그렇게만 제한되지는 않는다. 일 실시예의 컴퓨터 시스템은 컨텐트를 이메일 통신 안으로 주입하는 것의 일부로서 고립 코드 실행 환경을 사용하여 가젯 코드를 활성화하도록 동작하는 하나 이상의 활성화 트리거를 식별하도록 구성된 컴포넌트들을 포함한다. 일 실시예의 방법은 메일 메시지와 인라인으로 컨텐트를 자동 주입하는 것의 일부로서 정의된 가젯 트리거들 및 연관된 가젯 기능을 사용하기 위한 확장가능성 프레임워크를 제공한다.

Description

전자 통신을 위한 확장가능성 특징{EXTENSIBILITY FEATURES FOR ELECTRONIC COMMUNICATIONS}
통신 네트워크와 연관된 사용자 장치/시스템에서의 발전은 잠재적으로 풍부한 인터랙티브 애플리케이션을 위한 메커니즘을 제공한다. 오늘날의 발전된 통신 인프라스트럭처는 사용자가 거의 모든 장소에서, 정보에 액세스하고 배포하기 위해, 예컨대 데스크탑, 휴대용 컴퓨터 및 스마트폰과 같은, 많은 다른 타입의 장치/시스템을 사용할 수 있게 한다. 무선 및 모바일 성능은 현재 장치 및 서비스 액세스의 합리적인 비용에 부분적으로 기인하여 많은 설정에 있어서 중요한 역할을 하고 있다. 다양한 매체 타입들의 이용가능함으로 인해, 추가적인 인터랙티브 특징 및 기능을 제공하기 위해 애드-인(add-in) 컴포넌트들이 흔히 사용된다. 애드-인은 일반적으로 독립적이지 않으며 기계 성능에 해를 끼칠 수 있고, 사용자 경험을 방해하고 지연시키며, 복잡한 설치 대화(installation dialogs)를 포함하고 또한 하나 이상의 인스톨러(installer)를 요구할 수 있다. 불행히도, 애드-인은 일반적으로 설치하기 까다롭고 또한 때로는 연관된 오브젝트 모델 및 시스템 자원에 대한 비제한적인 액세스를 획득하기 위하여 사용될 수 있다.
본 발명의 내용은 아래의 발명을 실시하기 위한 구체적인 내용에서 더 기술되는 개념들의 일부를 단순화된 형태로 도입하기 위하여 제공된다. 본 발명의 내용은 청구된 발명 주제에 대한 핵심적인/결정적인 요소들을 식별하는 것으로 의도되지 않으며 또한 청구된 발명 주제의 범위를 결정하는데 도움을 주는 것으로도 의도되지도 않는다.
실시예들은 부분적으로는 통신 용어로 액티브 및 인터랙티브 기능을 제공하기 위해 사용되는 확장가능성 모델(extensibility model)을 제공하지만, 그 실시예들이 그렇게만 제한되는 것은 아니다. 일 실시예에서, 컴퓨터 시스템은 컨텐트를 이메일 통신에 주입하는 것의 일부로서 고립된(isolated) 코드 실행 환경을 사용하여 가젯(gadget) 코드를 활성화시키도록 동작하는 하나 이상의 활성화 트리거를 식별하도록 구성된 컴포넌트들을 포함한다. 일 실시예의 방법은, 메일 메시지와 인라인(inline)으로 컨텐트를 자동 주입하는 것의 일환으로서, 정의된 가젯 트리거 및 연관된 가젯 기능을 사용하기 위한 확장가능성 프레임워크를 제공한다. 그 외 다른 실시예들이 포함된다.
이들 및 그 외 다른 특징들과 장점들은 아래의 상세한 설명과 연관된 도면들에 대한 검토를 읽음으로써 명백해질 것이다. 상술한 일반적인 설명과 아래의 상세한 설명은 오직 설명을 위한 것이지 청구된 것으로서의 본 발명을 제한하는 것이 아니라는 것이 이해되어야 한다.
도 1은 예시적인 컴퓨팅 시스템의 블록도이다.
도 2는 애플리케이션 익스텐션 또는 가젯의 사용을 컨트롤하기 위한 활성화 모델(activation model)을 제공하는 예시적인 프로세스를 도시하는 흐름도이다.
도 3a 및 도 3b는 이메일 통신 환경을 위해 인라인 확장가능성 특징을 제공하도록 구성된 예시적인 시스템의 컴포넌트들의 블록도를 도시한다.
도 4는 전자 메시징 특징을 제공하는 것의 일환으로 하나 이상의 가젯의 사용하는 인라인 컨텐트를 제공하기 위해 확장가능성 모델을 사용하는 예시적인 프로세스를 도시하는 흐름도이다.
도 5a 내지 도 5f는 부분적으로 확장가능성 특징을 제공하기 위해 사용되는 예시적인 이메일 애플리케이션 인터페이스의 양상들을 도시한다.
도 6은 본 명세서에서 기술된 다양한 실시예들의 구현을 위한 예시적인 컴퓨팅 환경을 도시하는 블록도이다.
도 1은 부분적으로 전자 통신을 위한 확장가능성 특징을 제공하도록 구성되었으나, 그렇게 제한된 것이 아닌, 예시적인 컴퓨팅 시스템(100)을 도시하는 블록도이다. 일 실시예의 시스템(100)은, 아래에서 기술되는 바와 같은 확장된 이메일 메시징 특징을 포함하는, 통신 기능 및 특징을 제공하는 컴퓨터 프로세싱, 스토리지, 및 그 외 다른 컴포넌트들/자원들을 포함한다. 일 실시예의 파싱 엔진은 선택된 통신을 파싱하고, 식별되면 하나 이상의 특정 통신 익스텐션(communication extension) 또는 가젯을 트리거 또는 활성화하는 하나 이상의 활성화 또는 가젯 트리거를 식별하도록 구성될 수 있다.
일 실시예의 파싱 엔진은, 고립된 샌드박스 환경을 사용하여 솔루션 패키지와 연관되어 있는 스크립팅 언어 코드를 활성화할지 여부를 결정하기 위해 하나 이상의 가젯 트리거를 포함하는 솔루션 패키지 매니페스트를 사용할 수 있다. 예를 들어, 파싱 엔진은 전자 통신 아이템 디스플레이의 일부로서 액티브 및 인터랙티브 컨텐트를 주입하도록 동작하는 하나 이상의 연관된 가젯을 활성화하는 것의 일환으로서 특정 통신 아이템 부분(예컨대, 스트링, 링크, 메타데이터, 등등)의 식별을 인에이블하는 하나 이상의 트리거로서 솔루션 매니페스트 파일 내에 담겨 있는 하나 이상의 정규 표현을 사용할 수 있다.
일 실시예에서, 확장가능성 모델은, 솔루션 매니페스트 내의 특정 트리거의 최소한의 필요조건을 충족시키는 바디 부분 내의 정보를 식별하는 것의 일부로서, 선택된 이메일 메시지의 바디 부분(예컨대, 평문, HTML(hyertext markup language), XML(extensible markup language) 등등)을 파싱하기 위하여, 선택된 이메일 메시지(예컨대, 클릭된 메세지) 및 솔루션 매니페스트와 함께 파싱 엔진을 사용한다. 일 실시예에서, 시스템(100)은 다수의 이용가능한 익스텐션 또는 가젯을 포함하는데, 이들은, 활성화되었을 때, 확장된 인라인 액티브 및/또는 인터랙티브 컨텐트 기능을 애플리케이션 사용자에게 자동으로 제공하기 위해, 웹-기반 애플리케이션 및 로컬 애플리케이션 설치를 포함하여, 이메일 애플리케이션과 함께 사용될 수 있다.
도 1에 도시된 바와 같이, 예시적인 시스템(100)은, 예를 들어 이메일 또는 메시징 애플리케이션과 같은 통신 애플리케이션(102), 파싱 엔진(parsing engine)(104), HTML 이메일 아이템 DOM과 같은 통신 아이템 DOM(document object model)(106), 및 파싱 엔진(104)에 연결된 하나 이상의 API(application programming interface)(108), 및 다수의 이용가능한 익스텐션 및/또는 가젯(110(1), (110(2), 110(3), ..., 110(N), 여기서 N은 정수)을 포함한다. 파싱 엔진(104)은 솔루션 패키지를 풀어 연관된 익스텐션 기능을 통신 아이템 내로 주입할지 여부를 결정하는 것의 일부로서 정규의 표현 트리거를 사용할 수 있다.
예를 들어, 파싱 엔진(104)은 인바운드(inbound) 및/또는 수신된 이메일 메시지들로부터 하나 이상의 가젯 활성화 트리거들을 식별하는 것의 일부로서 HTML 이메일 부분들을 렌더링하도록 구성된 HTML 렌더링 엔진으로서 구성될 수 있다. 도시된 바와 같이, 일 실시예에서, 각각의 이용가능한 가젯은 하나의 대응하는 활성화 트리거(예컨대, 기준(112(1), 112(2), 112(3), ..., 112(N))를 가진다. 이용가능한 가젯의 수는 사용자 제어 및/또는 선호도 및/또는 이용가능성에 종속될 수 있다는 점이 이해될 것이다. 일 실시예에서, 하나의 특정 익스텐션을 위한 활성화 기준 또는 조건은 마크업 언어 매니페스트 파일 내에 내장된 다수의 정규 표현 트리거들에 기초될 수 있다. 예를 들어, 정규 표현은 단어, 용어, 및/또는 단순한 및/또는 복잡한 문자의 패턴 또는 그 외 다른 아이템들과 같은 관심있는 스트링을 식별함으로써, 트리거로서 사용될 수 있다.
특정 실시예들에서, 가젯 및/또는 연관된 기능은 로컬에 설치되거나 또는 글로벌 메시징 통신 네트워크와 같은 컴퓨터 네트워크를 통해 액세스될 수 있다. 아래에서 기술되는 바와 같이, 사용자는 선택된 이메일 메시지와 같은 통신 아이템과 함께 사용되는 특정한 가젯을 적극적으로 선택하는 것의 일부로서 가젯 선택 인터페이스를 사용할 수 있다(예를 들어 도 5A를 보라). 예를 들어, 가젯은 일단 그것에 의해 하나 이상의 파싱 동작에 부분적으로 기초하는 선택된 통신 아이템을 위한 확장된 인터랙티브 기능을 드러내기 위하여 사용자가 특정한 가젯을 선택하면 활성화될 수 있다. 위에서 간략하게 기술된 바와 같이, 예시적인 시스템(100)은 로컬에 설치된 통신 애플리케이션(예컨대, 설치된 이메일 애플리케이션)으로서, 또는 웹-기반 통신 애플리케이션(예컨대, 브라우저-기반 이메일 애플리케이션)으로서 구성될 수 있다.
일 실시예에서, 익스텐션 또는 가젯은 통신 및 인터랙티브 애플리케이션 기능을 제공하기 위해 프로세서 및 메모리 자원의 사용을 포함하는 데스크탑, 랩탑, 타블렛, 스마트폰, 및 그 외 다른 컴퓨팅 장치들과 함께 사용하기 위한 전자 메시징 애플리케이션의 프레임워크 내에 액티브 컨텐트 특징 및 기능을 제공하도록 구성될 수 있다. 일 실시예에서, 이용가능한 익스텐션 특징 또는 가젯은 하나 이상의 HTML, CSS(cascading style sheets), 및/또는 스크립팅(예컨대, 비주얼 베이직, 자바스크립트, 등) 특징을 포함하는 압축 및/또는 암호화된 파일(예컨대, zip 파일)로서 구성될 수 있다.
일단 활성화되면, 하나 이상의 인에이블된 가젯(enabled gadget)은 특정 익스텐션 또는 가젯 특징을 획득 및/또는 사용하기 위하여 그 외 다른 컴퓨터 컴포넌트(예컨대, 서버 등)와 상호작용하도록 구성될 수 있다. 예를 들어, 사용자는 선택된 이메일 메시지의 바디 내에 하이퍼링크를 포함하는 메시지를 다운로드하고 선택하기 위하여 브라우저-기반 이메일 애플리케이션을 사용할 수 있다. 이러한 예시적인 예에 있어서, 일단 파싱 엔진이 특정 하이퍼링크를 식별하면, 그 하이퍼링크와 연관된 인에이블된 가젯은 자동으로 컴퓨터 네트워크 또는 로컬 자원에 접촉할 수 있고, 연관된 이메일 메시지의 바디 내에 연관된 컴퓨터 액티브 컨텐트 또는 기능을 인라인으로 내장시키는데, 액티브 및 인터랙티브 기능으로 하이퍼링크를 대체하거나, 또는 하이퍼링크에 인접하여 익스텐션 기능을 위치시킬 수 있다. 예를 들어, 활성화된 가젯과 연관된 스크립트는 렌더링된 이메일의 바디 내로 자동 주입될 수 있고, 온 더 플라이(on the fly)로 실행될 수 있다.
일 실시예에 따르면, 활성화 및/또는 하나 이상의 활성화 익스텐션 또는 가젯의 사용은 고립 샌드박스(isolation sandbox) 또는 고립된 코드 실행 환경을 사용하는 스크립팅 언어 또는 그 외 다른 실행가능한 코드의 실행을 야기한다. 고립 샌드박스는, 예컨대 특정 활성화 트리거에 따라 이메일 메시지의 식별된 부분을 액티브 컨텐트로 대체하는 것의 부분으로서 제 3 자로부터의 신뢰되지 않는(untrusted) 컨텐트를 실행 코드가 요청할 때, 그 외 다른 컴포넌트들과 상호작용하도록 구성될 수 있다.
통상적으로 고립 샌드박스에 대해 완전히 독립적인 신뢰되지 않는 코드는 특정 보안 또는 실행 정책에 맞도록 변형되거나 또는 제어될 수 있다. 예를 들어, 고립 샌드박스 내의 제어는, 제어된 컨텐트를 디스플레이하는데 사용되는 프리뷰 또는 뷰잉 윈도우 또는 창의 부분과 같이, 전자 메시지와 인라인으로 액티브 및/또는 인터랙티브 컨텐트의 주입을 제어하는 것을 포함하여, 하나 이상의 HTML, CSS 및 스크립트 코드를 메시징 애플리케이션으로 실행하는 코드로의 변환을 포함할 수 있다. 위에서 논의된 바와 같이, 하나 이상의 기준(112(1))~ 기준(112(N))이 인라인 주입 제어 및 확장가능성 특징의 일부로서 다른 구현예 또는 툴(tool)을 허용할지, 거절할지, 또는 사용할지 여부를 제어하기 위하여 사용될 수 있다.
도 2는 전자 통신 애플리케이션을 사용하는 것의 일부로서 애플리케이션 익스텐션 또는 가젯의 사용을 제어하기 위한 활성화 모델을 제공하지만, 그것으로 제한되는 것이 아닌, 예시적인 프로세스(200)를 도시하는 흐름도이다. 예를 들어, 활성화 모델은 하나 이상의 활성화 트리거의 식별에 부분적으로 기초하여 선택된 이메일 메시지 내 액티브 컨텐트의 주입을 제어하기 위해 이메일 메시징 애플리케이션과 함께 사용될 수 있다. 일 실시예에서, 프로세스(200)는 이메일 애플리케이션을 위한 추가적인 특징을 제공하는 것의 일부로서 액티브 및 인터랙티브 컨텐트의 활성화를 제어하는 것의 일부로서 사용될 수 있다. 예를 들어, 프로세스(200)는 선택된 이메일 메시지의 바디에 인라인으로 인터랙티브 컨텐트를 내장하는 것의 일부로서 고립된 코드를 활성화하기 위하여 사용될 수 있다.
프로세스(200)는, 사용자가 예를 들어 이메일 메시지 리스트에 디스플레이되어 있는 예를 들어 이메일 메시지와 같은, 전자 통신 아이템을 선택하였을 때 202에서 동작한다. 일 실시예에서, 확장된 전자 통신 기능을 제공하는 것의 일부로서 하나 이상의 익스텐션 또는 가젯이 프리코딩되고(precoded), 패키징되고, 및/또는 온 더 플라이로 사용될 수 있다. 일 실시예에서, 특정 가젯 또는 익스텐션은 매니페스트(예컨대, XML 매니페스트), 마크업/코드 정의(예컨대, HTML/CSS/자바스크립트 정의), 및/또는 하나 이상의 내장된 또는 웹 자원(예컨대, 아이콘, 라벨, 등)을 포함하는 솔루션 패키지로서 구성될 수 있다.
일 예로서, 프로세스(200)는 스마트폰, 데스크탑, 또는 랩탑 브라우저 또는 로컬에 설치된 이메일 애플리케이션을 사용하여 이메일 애플리케이션을 런칭(launching)하거나 및/또는 하나 이상의 가젯(예시적인 이용가능한 가젯을 보여주는 도 5A를 참조)을 인에이블링하고, 및 수신된 아이템 리스트에서 이메일 메시지를 선택한 이후 202에서 동작할 수 있다. 대안적인 실시예에서, 프로세스(200)는 엔드-사용자(예컨대, 전용 서버를 사용하는)에 의해 적극적인 메시지 상호작용(예컨대, 아이템 클릭, 탭, 등) 이전에 이메일 메시지를 프로세싱하기 위하여 202에서 동작한다. 예를 들어, 프로세스(200)는 이메일 메시지가 사용자 인박스(inbox)로 운반되기 전에 동작할 수 있다.
204에서, 프로세스(200)는 선택된 전자 통신 아이템의 하나 이상의 포션(portion)을 파싱하도록 동작할 수 있다. 일 실시예에서, 프로세스(200)는 204에서 하나 이상의 이용가능한 및/또는 인에이블링된 익스텐션 또는 가젯과 연관된 하나 이상의 활성화 트리거를 식별하는 것의 일부로서 선택된 이메일 메시지에 대해 파싱 동작을 수행하도록 구성된 통합 파싱 엔진을 사용한다. 예를 들어, 프로세스(200)는 메시지 뷰 또는 프리뷰 기능의 일부로서 인라인에서 액티브 컨텐트를 제공하기 위하여 하나 이상의 정의된 가젯 활성화 트리거를 식별하고 사용할 때 204에서 선택된 이메일의 이메일 메시지 바디의 마크업을 파싱하기 위해 파싱 엔진을 사용할 수 있다.
일 실시예에서, 프로세스(200)는 204에서 전자 통신에 액티브 및 인터랙티브 컨텐트의 내장을 트리거하는 것의 일부로서 다양한 가젯 활성화 트리거를 식별하기 위하여 선택된 전자 통신 아이템을 파싱하도록 동작한다. 예를 들어, 프로세스(200)는 204에서 뷰잉(viewing) 또는 그 외 다른 동작의 일부로서 고립 샌드박스로부터의 코드의 활성화를 트리거하는 파싱된 통신 포션들을 식별하는데 부분적으로 사용되는 가젯 활성화 트리거들(예컨대, 정규 표현, 날짜, 시간, 링크, 소스 언어, 송신자 도메인, 메시지 타입, 등)을 정의하는 솔루션 매니페스트를 사용할 수 있다. 일 실시예에서, 솔루션 매니페스트는 활성화 제어 특징을 제공하는 것의 일부로서 솔루션 코드 및/또는 하나 이상의 내장된 자원 및 압축된 및/또는 암호화된 자원과 함께 패키징될 수 있다.
206에서, 만약 트리거 기준이 파싱 동작(들)에 기초하여 합치되면, 프로세스(200)는 전자 통신 아이템의 컨텍스트에서 활성화된 익스텐션 또는 가젯과 연관된 솔루션 코드를 로딩하도록 동작한다. 예를 들어, 예컨대 정의된 정규 표현과 같은, 특정 가젯 활성화 트리거를 만족하면, 프로세스(200)는 206에서 이메일 컨텍스트로 프리뷰어 그 외 다른 메시지 뷰잉 윈도에 액티브 컨텐트를 디스플레이하는 것의 일부로서 사용될 수 있는 솔루션 HTML 및 자바스크립트를 로딩하도록 동작할 수 있다.
208에서, 프로세스(200)는 연관된 솔루션 패키지에 의해 정의된 익스텐션 기능을 포함하는 이제 활성화된 전자 통신 아이템을 디스플레이하도록 동작한다. 예를 들어, 프로세스(200)는 208에서 대응하는 정규 표현 정의에 따라 정의된 가젯 활성화에 기초하여 활성화되고 확장된 HTML 이메일 메시지를 디스플레이하도록 동작할 수 있다. 만약 기준이 합치되지 않는다면, 프로세스(200)는 210으로 진행하고 전자 통신은 그것에 추가된 어떠한 익스텐션 특징 없이 정상적으로 디스플레이된다. 예를 들어, 만약 활성화 기준이 하나 이상의 XML 매니페스트 파일에 따라 만족되지 않는다면, 프로세스(200)는 210에서 수정되지 아니한 HTML 바디 포션을 포함하는 이메일 메시지를 디스플레이하도록 동작할 수 있다. 비록 도 2의 예시적인 흐름도에 대해 특정한 개수와 순서를 가지는 동작들이 기술되었으나, 그 외 다른 개수들 및/또는 순서들도 원하는 구현예들에 따라 사용될 수 있다는 점이 이해될 것이다.
도 3a 및 도 3b는 이메일 통신 환경을 위한 인라인 확장가능성 특징을 제공하도록 구성된 예시적인 시스템(300)의 컴포넌트들의 블록도를 도시한다. 도 3A에 도시된 바와 같이, 예시적인 시스템(300)은, 로컬 및/또는 웹-기반 이메일 애플리케이션들을 포함하는 이메일 클라이언트(302), 예를 들어 HTML 렌더링 엔진과 같은 렌더링 또는 파싱 엔진(304), 이메일 아이템 DOM(306), 및/또는 고립 샌드박스(308)를 포함한다. 비록 이 예시적인 시스템에서는 고립 샌드박스(308)가 별개의 컴포넌트로서 도시되어 있지만, 그 외 다른 실시예들에서, 고립 샌드박스(308)는 이메일 클라이언트 기능의 일부로서 포함될 수 있다. 더욱이, 익스텐션 코드는 구체적인 구현 구성 및/또는 선호도에 따라 고립 샌드박스(308)로부터 동적으로 로딩되거나 및/또는 제거될 수 있다.
위에서 기술된 바와 같이, 일단 익스텐션이 호출되면, 연관된 익스텐션 코드는 고립 샌드박스(308)로부터 실행될 수 있다. 이 예에 있어서, 익스텐션 코드는 이메일 아이템 DOM(306)으로부터 고립된 것으로서 도식적으로 보여진다. 일 실시예에 따라, API(309)가 고립 샌드박스(308)와 이메일 아이템 DOM(306) 사이에 연결되어, 그들 사이의 정보 흐름을 제어하기 위한 게이트웨이로서 행동한다. 예시적인 통신 링크들(310, 312, 및 314)은, 각각 클라우드 서비스(316), 글로벌 컴퓨터/통신 네트워크(318), 및 인트라넷(320)을 포함하여, 다양한 자원들로부터의 정보를 푸시(push) 및/또는 풀(pull)하는 고립 익스텐션 코드의 능력들을 예시한다.
도 3b는 이메일 아이템을 위한 인라인 확장가능성 특징을 제공하는 것의 일부로서 사용된 예시적인 솔루션 패키지(322)를 도시한다. 도 3b에 도시된 바와 같이, 일 실시예의 솔루션 패키지(322)는 소스 코드(324), 하나 이상의 내장된 자원들(326), 및 매니페스트(328)를 포함한다. 일 실시예에서, 하나 이상의 활성화 트리거들이 매니페이스(328)에 포함될 수 있으며 선택된 이메일 아이템을 위한 인라인 확장가능성을 트리거하기 위해 사용될 수 있다. 예를 들어, 하나 이상의 활성화 트리거들은 선택된 이메일 아이템과 인라인으로 액티브 컨텐트의 주입을 트리거하기 위하여 사용되는 하나 이상의 정규 표현 구조로서 구현되어 매니페스트(328) 내에 포함될 수 있다. 일 실시예에서, 솔루션 패키지의 포션들은 하나 이상의 원격 및/또는 로컬 위치에 저장될 수 있다.
렌더링 엔진(304)은 솔루션 패키지를 풀어볼 지 여부 및 선택된 이메일 아이템 내에 솔루션 패키지에 의해 정의된 연관된 익스텐션 기능을 내장시킬지 여부를 결정하는 것의 일부로서 매니페스트(328) 내에 정의된 구현된 정규 표현을 사용할 수 있다. 예를 들어, 정규 표현은 선택된 메일 메시지와 인라인으로 HTML-기반 컨텐트를 주입하는 것을 포함하여 메일 메시지를 위한 읽기 창 내에 직접 컨텍스트 정보를 추가하도록 하는 트리거로서 사용될 수 있는데, 여기서 인라인 컨텐트는 메시지 관찰 윈도 또는 브라우저 윈도의 읽기 창을 사용하여 디스플레이될 수 있다.
일 실시예의 시스템(300)은 압축된 파일(예컨대, .zip 파일) 내에 포함되고 사용자의 메일박스(예컨대, 사용자의 메일박스 내의 숨겨진 메시지)의 일부로서 저장되어 있는 HTML/CSS 데이터 및 자바스크립트 코드를 사용하는 메시징 인터페이스를 위한 인라인 확장가능성 특징을 제공한다. 렌더링 엔진(304)은 확장가능성 특징을 활성화하기 위하여 유효 활성화 컨텍스트를 인식하도록 동작한다. 그러한 실시예에 있어서, 활성화 시, 자바스크립트 코드는 선택된 이메일 메시지를 위한 읽기 창 안에서 또는 메시지를 위한 연관된 뷰잉 윈도 안에서 인라인으로 디스플레이되는 HTML 코드를 생성하기 위하여 고립 샌드박스(308) 내에서 실행된다.
일 예로서, 렌더링 엔진(304)은 선택된 메시지와 연관된 메시지 특성들(예컨대, 제목, 송신자, 수신자, 카테고리, 답변, 모두에게 답변, 전달, 등과 같은 메시지 벌브(verb)들)을 사용하여 활성화 트리거가 참(true)이며 활성화를 요구하는지 여부를 결정할 수 있다. 만약 참이라면, HTML/CSS 컨텐트 및 자바스크립트 코드는 회수되고(예컨대, 숨겨진 메시지로부터), 압축해제될 수 있고, 및/또는 HTML 컨텍스트 컨텐트는 선택된 메시지와 상호작용하는 것의 일부로서 인라인으로 렌더링된다. 이와 같이, 활성화 모델은 메시지 컨텐츠에 대한 오직 제한된 액세스만을 허용하며 고립 상태로 자바스크립트 코드를 실행하는 것을 포함한다.
일 실시예에서, 솔루션 패키지(322)는 풀려진(unpacked) 자바스크립트 코드 및 HTML 컨텐트를 포함하며, 이후 자바스크립트 코드는 고립 샌드박스(308) 내에 로딩된다. 자바스크립트 코드는 선택된 메시지를 볼 때 메시지 읽기 창 또는 그 외 다른 뷰어 내에 디스플레이를 위한 연관된 이메일 애플리케이션으로 마크업 스트림(예컨대, HTML 스트림)을 리턴하기 위하여 선택된 메시지를 위한 추가적인 네임값 쌍들을 획득하도록 코딩될 수 있다. 일 실시예에서, 일단 하나의 익스텐션이 활성화되면, 자바스크립트 코드는 초기화되어 JSON(자바스크립트 Object Notation) 네임값 쌍들로서 특정된 ObjectContexts를 결정할 수 있는데, 여기서 자바스크립트 코드는 고립되어 실행되고 디스플레이를 위한 HTML를 준비한다.
도 4는 전자 메시징 특징을 제공하는 것의 일부로서 하나 이상의 가젯을 사용하여 인라인 컨텐트를 제공하기 위하여 확장가능성 모델을 사용하는 것의 예시적인 프로세스(400)를 도시하는 흐름도이다. 예를 들어, 선택된 가젯은 하나 이상의 가젯 트리거의 식별에 부분적으로 기초하여 선택된 이메일 메시지 내에 액티브 컨텐트를 주입하기 위하여 이메일 애플리케이션과 함께 사용될 수 있다. 일 실시예에서, 프로세스(400)는 이메일 메시지와의 상호작용 동안에 가젯의 활성화를 제어하는 것의 일부로서 사용될 수 있다. 예를 들어, 프로세스(400)는 선택된 이메일 메시지의 컨텍스트 내에서 인터랙티브 컨텐트를 제공하는 것의 일부로서 고립된 가젯 코드를 활성화시키기 위해 사용될 수 있다.
프로세스(400)는 402에서 고립된 코드 실행 환경으로부터 가젯 코드를 자동으로 실행할 것인지 여부를 결정하는 것의 일부로서 선택된 이메일 메시지를 스캔하도록 동작한다. 예를 들어, 프로세스(400)는 402에서 선택된 이메일 메시지의 파싱된 바디 포션 내에 포함되어 있는 정규 표현 트리거를 스캔하기 위하여 로컬 및/또는 원격 파싱 기능을 사용할 수 있다. 일 예로서, 프로세스(400)는 고립된 코드 실행 환경으로부터 가젯 코드의 활성화를 트리거하기 위해 부분적으로 사용되는 하나 이상의 정규 표현으로서 가젯 활성화 트리거를 정의하는 솔루션 매니페스트를 사용할 수 있다. 일 실시예에서, 사용자는 스캐닝 동작이 이메일의 바디 내에서 트리거를 식별하고 연관된 선택된 이메일 메시지를 위한 확장된 내장된 컨텐트 기능을 제공하기 위해 하나 이상의 인에이블된 가젯을 활성화할 때 트리거될 수 있는 하나 이상의 가젯을 예비-선택하거나 또는 인에이블시킬 수 있다.
일 실시예에서, 각각의 가젯 트리거는 매니페스트 파일(예컨대, 정규 표현 트리거를 포함하는 XML 매니페스트) 내에서 코딩될 수 있고 특정 인에이블된 가젯 트리거를 식별하기 위하여 이메일 메시지 또는 메시지들을 스캐닝할 때 사용될 수 있다. 일 예로서, 각각의 가젯은 매니페스트(예컨대, XML 매니페스트), 마크업/코드 정의(예컨대, HTML/CSS/자바스크립트 정의), 및/또는 하나 이상의 내장된 자원들을 포함하는 솔루션 패키지로서 개발 및/또는 코딩될 수 있다. 가젯은, 스마트폰, 데스크탑 컴퓨터, 랩탑 컴퓨터 등과 같은 다양한 컴퓨팅/통신 장치을 사용하여 동작하도록 구성된, 전용 이메일 애플리케이션을 포함하여, 메시징 애플리케이션과 함께 사용될 수 있다.
404에서, 만약 스캐닝 동작이 가젯 트리거를 식별한다면, 일 실시예의 프로세스(400)는 연관된 컨텐트를 획득하도록 동작한다. 예를 들어, 프로세스(400)는 제목, 송신자, 수신자, 및/또는 그 외 다른 메시지 성질들의 평가에 기초한 트리거 기준을 사용할 수 있고, 특정한 가젯 트리거를 식별하면, 가셋 실행 코드(예컨대, HTML/CSS 및 자바스크립트) 및/또는 하나 이상의 내장된 자원들을 포함하고 있는 압축 파일을 포함하는 사용자의 인박스 내의 숨겨진 이메일 메시지로부터 컨텐트 및 임의의 그 외 다른 관련 정보를 획득한다. 일 실시예에서, 숨겨진 메시지는 이메일 메시지 뷰 또는 프리뷰 일부로서 인라인으로 액티브 컨텐트를 제공하기 위해 사용될 수 있다. 그렇지 않은 경우, 만약 가젯 트리거가 식별되지 않으면, 프로세스(400)는 406으로 진행되고 이메일 애플리케이션은 특정 가젯에 의하여 제공되는 임의의 추가적인 인라인 특징없이 메시지 컨텐트를 읽기 창이나 메시지 인스펙터(inspector) 안에 디스플레이하도록 동작한다.
408에서, 가젯 트리거 또는 트리거들을 식별한 이후, 프로세스(400)는 연관된 자바스크립트를 고립된 코드 실행 환경 내에 로딩하는 것을 포함하여 특정 트리거된 가젯과 연관된 컨텐트를 활성화하도록 동작한다. 410에서, 프로세스(400)는 고립된 코드 실행 환경을 사용하고 및/또는 선택된 이메일 메시지로부터 추가적인 아이템 컨텍스트(예컨대, JSON 네임값 쌍들)를 획득하여 풀려진 자바스크립트 코드를 고립 상태로 실행시킴으로써 동작한다. 412에서, 프로세스(400)는, 자바스크립트 코드를 실행함으로써, 고립된 코드 실행 환경으로부터 가젯 코드를 실행함으로써 수정된 변형된 HTML을 리턴한다. 414에서, 일 실시예의 프로세스(400)는 읽기 창 또는 인스펙터 윈도 내에서 이메일 메시지 바디와 인라인으로 활성화된 가젯과 연관된 주입된 컨텐트를 디스플레이하도록 동작한다. 비록 도 4의 예시적인 흐름을 위해 특정한 개수 및 순서의 동작들이 기술되었으나, 그 외 다른 개수들 및/또는 순서들이 원하는 구현예들에 따라 사용될 수 있다는 점이 이해될 것이다.
일 예로서, 매니페스트 파일은 아래의 스키마 정의을 사용하여 쓰여질 수 있다:
Figure 112013102003330-pct00001
로컬 인식적인, 예컨대 서로 다른 로컬들을 위해 특정될 수 있는, 설정(setting)을 정의한다.
Figure 112013102003330-pct00002
이용가능한 호스트 애플리케이션들을 정의한다.
Figure 112013102003330-pct00003
웹 익스텐션이 실행될 수 있는 호스트 애플리케션을 정의한다.
Figure 112013102003330-pct00004
만약 아이템이 특정된 클래스의 것이라면 참이라고 평가하는 규칙을 정의한다.
Figure 112013102003330-pct00005
아이템 제목 및 바디 내에서 인식될 수 있는 엔터티 타입들을 정의한다.
Figure 112013102003330-pct00006
알려져 있는 엔터티들을 탐색하는 위치들을 정의한다.
Figure 112013102003330-pct00007
만약 아이템이 알려져 있는 엔터티를 포함하고 있다면 참이라고 평가하는 규칙을 정의한다.
Figure 112013102003330-pct00008
PropertyContains 규칙과 함께 사용될 수 있는 성질 명칭들을 정의한다.
Figure 112013102003330-pct00009
만약 특정된 정규 표현을 위한 합치(match)가 아이템 내에서 발견될 수 있다면 참이라고 평가하는 규칙을 정의한다.
Figure 112013102003330-pct00010
Figure 112013102003330-pct00011
논리적인 오퍼레이터들을 정의한다.
Figure 112013102003330-pct00012
그들을 평가할 때 적용되어야 할 규칙들 및 논리적인 오퍼레이터의 집합을 정의한다.
Figure 112013102003330-pct00013
지원되는 폼 팩터(form factor)들을 정의한다.
Figure 112013102003330-pct00014
주어진 타겟 폼 팩터를 위한 소스 파일의 위치를 정의한다.
Figure 112013102003330-pct00015
웹 익스텐션 (Web Extension)이 보여주어야 할 조건 및 위치를 정의한다.
Figure 112013102003330-pct00016
웹 익스텐션을 정의한다.
Figure 112013102003330-pct00017
Figure 112013102003330-pct00018
Figure 112013102003330-pct00019
다른 하나의 예로서, 가젯 또는 인라인 익스텐션을 위한 매니페스트 파일은 아래의 스키마 정의을 사용하여 쓰여질 수 있다:
Figure 112013102003330-pct00020
다른 하나의 예로서, 팬시 박스 가젯(도 5F 참조)을 위한 매니페스트 파일은 아래와 같이 구성될 수 있다:
Figure 112013102003330-pct00021
팬시 박스 익스텐션 또는 가젯에 있어서, 실행가능한 스크립팅 언어 코드는 아래의 예에 의하여 보여지는 바와 같이 구성될 수 있다:
Figure 112013102003330-pct00022
Figure 112013102003330-pct00023
다른 하나의 예로서, 발송(shipment) 추적 가젯을 위한 매니페스트 파일은 아래와 같이 구성될 수 있다:
Figure 112013102003330-pct00024
Figure 112013102003330-pct00025
발송 추적 익스텐션 또는 가젯을 위한, 실행가능 스크립팅 언어 코드가 다음의 예에서와 같이 구성될 수 있다:
Figure 112013102003330-pct00026
Figure 112013102003330-pct00027
Figure 112013102003330-pct00028
Figure 112013102003330-pct00029
그 외의 예들이 이용가능하며 구성가능하다.
도 5a 내지 도 5f는 이메일 애플리케이션과 연관된 확장가능성 특징을 제공하기 위하여 부분적으로 사용되는 예시적인 이메일 애플리케이션 인터페이스(500)의 양상들을 도시한다. 예를 들어, 인터페이스(500)는 선택된 이메일을 보기 위하 웹-기반 또는 로컬에 설치된 이메일 애플리케이션의 일부로서 사용될 수 있다. 도 5a에 도시된 바와 같이, 예시적인 인터페이스(500)는 다수의 이용가능한 가젯(502 ~ 514) 및 사용자가 하나의 특정 가젯 또는 가젯들을 인에이블하기 위하여 선택할 수 있는 선택 박스(516)를 포함한다. 사용자가 각각의 가젯에 호버링(hover)하면, 선택 박스가 대응하는 가젯에 대해 나타나도록 구성될 수 있다. 인에이블링된 가젯은, 위에서 상세하게 기술된 바와 같이, 특정한 활성화 트리거에 따라 선택된 이메일 아이템들에 대해 자동으로 나타날 수 있다.
도 5b는 링크(517) 및 링크(517)의 식별에 의해 트리거된 연관된 가젯의 활성화에 기인하여 이메일 메시지 내로 자동 주입된 후 링크(517)와 연관된 자동 내장된 컨텐트(518)를 포함하는 예시적인 이메일 애플리케이션 인터페이스(500)를 보여준다.
도 5c는 링크(520) 및 링크(520)의 식별에 의해 트리거된 연관된 가젯의 활성화에 기인하여 이메일 메시지 내로 자동 주입된 후 링크(520)와 연관된 자동 내장된 비디오(522)를 포함하는 예시적인 이메일 애플리케이션 인터페이스(500)를 보여준다.
도 5d는 링크(526) 및 링크(526)의 식별에 의해 트리거된 연관된 가젯의 활성화에 기인하여 이메일 메시지 내로 자동 주입된 후 링크(526)와 연관된 자동 내장된 비디오(528)를 포함하는 예시적인 이메일 애플리케이션 인터페이스(500)를 보여준다. 예시적인 이메일 애플리케이션 인터페이스(500)는 또한 다른 하나의 링크에 의해 트리거되었던 다른 하나의 내장된 비디오(524)도 디스플레이하고 있다.
도 5e는 추적 번호 또는 번호들 또는 그 외 다른 패키지 전송 기준의 식별에 의해 트리거된 연관된 가젯의 활성화에 기인하여 이메일 메시지 내로 자동 주입된 자동 내장된 액티브 패키지 추적 컨텐트(530)를 포함하는 예시적인 이메일 애플리케이션 인터페이스(500)를 보여준다.
도 5f는 링크(532) 및 자동 내장된 연관된 사진(534), 링크(536), 및 자동 내장된 연관된 사진(538), 및 링크(540) 및 자동 내장된 연관된 사진(542)을 포함하는 예시적인 이메일 애플리케이션 인터페이스(500)를 보여주는데, 여기서 사진(534, 538, 및 542)은 각각 링크(532, 536, 및 540)의 식별에 의해 트리거된 연관된 가젯의 활성화에 기인하여 이메일 메시지 내로 자동 주입되었다. 도 5f에 도시된 바와 같이, 트리거된 가젯은 또한 리치-피처드(rich-featured) 사진 뷰어(544)를 사용하여 주입된 사진과의 상호작용을 인에이블한다.
확장가능성 특징은 프로세서-중심 컴퓨터 환경의 일부로서 구현될 수 있다는 점이 이해될 것이다. 또한, 비록 구체적인 실시예들이 본 명세서에서 기술되었으나, 그 외 다른 실시예들도 가능하며, 기술된 실시예들은 청구범위를 제한하는 것으로 사용되지 않아야만 한다. 적절한 프로그래밍 수단은, 예컨대, 프로세싱 유닛들 및 컴퓨터 메모리에 연결된 연산-로직 회로들로 구성된 시스템들로서, 이들 시스템은 컴퓨터 메모리 내에 저장하는 능력을 가지며, 컴퓨터 메모리는 데이터 및 프로그램 인스트럭션을 저장하도록 구성된 전자 회로들을 포함하는, 시스템들을 포함하여, 방법의 단계들을 실행하기 위한 컴퓨터 시스템 또는 장치를 지시하기 위한 임의의 수단을 포함한다. 예시적인 컴퓨터 프로그램 제품은 임의의 적합한 데이터 프로세싱 시스템을 통해 사용가능하다. 비록 컴포넌트들의 구체적인 개수 및 타입들이 위에서 기술되지만, 그 외 다른 개수들 및/또는 타입들 및/또는 구성들이 다양한 실시예들에 따라 포함될 수 있다는 점이 이해될 것이다. 따라서, 컴포넌트 기능은 원하는 구현예들에 따라 더 분할되거나 및/또는 그 외 다른 컴포넌트 기능과 결합될 수 있다.
본 명세서에서 사용된 바와 같은 용어 컴퓨터 판독가능 매체는 컴퓨터 스토리지 매체를 포함할 수 있다. 컴퓨터 스토리지 매체는, 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈, 등과 같은, 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 탈거가능 및 비-탈거가능 매체를 포함할 수 있다. 시스템 메모리, 탈거가능 스토리지, 및 비-탈거가능 스토리지는 모두 컴퓨터 스토리지 매체의 예들(즉, 메모리 스토리지)이다. 컴퓨터 스토리지 매체에는, RAM, ROM, EEPROM(electrically erasable read-only memory), 플래시 메모리 또는 그 외 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 그 외 다른 광 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 그 외 다른 자기 스토리지 장치, 또는 정보를 저장하기 위해 사용될 수 있고 컴퓨팅 장치에 의해 액세스될 수 있는 임의의 그 외 다른 매체가 포함될 수 있지만 이들로 제한되는 것은 아니다. 임의의 이러한 컴퓨터 스토리지 매체는 장치 또는 시스템의 일부일 수 있다. 예를 들어서, 제한이 아닌 것으로, 말하자면, 통신 매체는 유선 매체 유선 네트워크 또는 직접-유선 연결과 같은 유선 매체, 및 음향, RF, 적외선, 및 그 외 다른 무선 매체와 같은 무선 매체를 포함할 수 있다.
본 명세서에서 기술된 실시예들 및 예들은 제한하려는 의도가 없으며 그 외 다른 실시예들도 가능하다. 더욱이, 위에서 기술된 컴포넌트들은 네트워크 환경, 분산 한경, 및/또는 그 외 다른 컴퓨터-구현 환경의 일부로서 구현될 수 있다. 컴포넌트들은 유선, 무선, 및/또는 통신 네트워크들의 조합을 통해 통신할 수 있다. 네트워크 컴포넌트들 및/또는 컴포넌트들 사이의 연결은 임의의 타입, 개수, 및 또는 조합의 네크워크들을 포함할 수 있고 대응하는 네트워크 컴포넌트들은 WAN(wide area networks), LAN(local area networks), MAN(metropolitan area network), 개인 소유 네트워크, 백엔드 네트워크 등을 포함하지만, 이에만 제한되는 것은 아니다.
클라이언트 컴퓨팅 장치/시스템 및 서버는 임의의 타입 및또는 조합의 프로세서-기반 장치 또는 시스템이다. 덧붙여서, 서버 기능은 많은 컴포넌트들을 포함할 수 있으며, 그 외 다른 서버들을 포함할 수 있다. 단일 시제로 기술된 컴퓨팅 환경의 컴포넌트들은 그러한 컴포넌트들의 다수의 인스턴스들을 포함할 수 있다. 비록 구체적인 실시예들은 소프트웨어 구현예들을 포함하지만, 이들은 그렇게 제한되는 것이 아니며, 하드웨어, 또는 하드웨어/소프트웨어 솔루션들을 포괄한다.
설명에서 사용된 용어들, 예컨대, 컴포넌트, 모듈, 시스템, 장치, 클라우드, 네트워크, 및 그 외 다른 기술은 일반적으로 하드웨어, 소프트웨어, 펌웨어 및/또는 그 외 다른 아이템들을 포함하는 컴퓨터-관련 동작 환경을 기술한다. 컴포넌트는 프로세서를 사용하는 프로세스, 실행가능, 및/또는 스크립팅 코드를 사용할 수 있다. 예시적인 컴포넌트들은 애플리케이션, 애플리케이션 상에서 실행되는 서버, 및/또는 통신 아이템을 수신하기 위한 서버에 연결된 전자 통신 클라이언트를 포함한다. 컴퓨터 자원은 프로세서 및 메모리 자원을 포함하는데, 예컨대, 디지털 신호 프로세서, 마이크로프로세서, 멀티-코어 프로세서 등 및 자기, 광, 및/또는 그 외 다른 스토리지 장치, 스마트 메모리, 플래시 메모리 등과 같은 메모리 컴포넌트를 포함할 수 있다. 통신 컴포넌트들은 예컨대 인터넷과 같은 통신 네트워크 또는 네트워크들을 사용하여 전자 통신 아이템들을 전송, 수신, 및/또는 렌더링하는 것의 일부로서 컴퓨터-판독가능 정보를 운반하기 위하여 사용될 수 있다. 그 외 다른 실시예들 및 구성들이 포함되고 이용가능하다.
예시적인 동작 환경
이제 도 6을 참조하면, 아래의 논의는 본 발명의 실시예들이 구현될 수 있는 적합한 컴퓨팅 환경에 대한 간단하고, 일반적인 설명을 제공하려고 의도된다. 비록 본 발명이 퍼스널 컴퓨터 상의 운영 시스템 상에서 실행되는 프로그램 모듈들과 관련하여 실행되는 일반적인 프로그램 모듈의 컨텍스트로 기술될 것이지만, 해당 기술 분야의 지식을 가진 자라면 본 발명은 또한 그 외 다른 타입의 컴퓨터 시스템 및 프로그램 모듈들과 관련하여 구현될 수도 있다는 점을 인식할 것이다.
일반적으로, 프로그램 모듈은 특정한 태스크를 수행하거나 또는 특정한 추상적인 데이터 타입을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조, 및 그 외 다른 타입의 구조를 포함한다. 더욱이, 본 발명이 핸드-헬드 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그래머블 가전, 미니컴퓨터, 메인프레임 컴퓨터, 및 기타 등등을 포함하여 그 외 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 점을 해당 기술분야의 지식을 가진 자라면 이해할 것이다. 본 발명은 또한 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 프로세싱 장치들에 의해 수행되는 분산 컴퓨팅 한경에서 실시될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 원격 메모리 스토리지 장치들 양자 모두에 위치될 수 있다.
이제 도 6을 참조하면, 본 발명의 실시예들을 위한 예시적인 운영 환경이 기술될 것이다. 도 6에 도시된 바와 같이, 컴퓨터(2)는 하나 이상의 애플리케이션 프로그램을 실행할 수 있는 범용 서버, 데스크탑, 랩탑, 핸드헬드, 또는 그 외 다른 타입의 컴퓨터를 포함한다. 컴퓨터(2)는 적어도 하나의 중앙 프로세싱 유닛(8)("CPU"), 랜덤 액세스 메모리(18)("RAM")와 판독-전용 메모리("ROM")(20)를 포함하는 시스템 메모리(12), 및 메모리를 CPU(8)에 연결하는 시스템 버스(10)를 포함한다. 시동 동안과 같이, 컴퓨터 내에서 요소들 사이에 정보를 전달하는 것을 돕는 기본 루틴을 포함하는 기본적인 입력/출력 시스템은 ROM(20) 내에 저장된다. 컴퓨터(2)는 운영 시스템(24), 애플리케이션 프로그램, 및 그 외 다른 프로그램 모듈/자원(26)을 저장하기 위한 대용량 스토리지 장치(14)를 더 포함한다.
대용량 스토리지 장치(14)는 버스(10)에 연결된 대용량 스토리지 컨트롤러(미도시)를 통해 CPU(8)에 연결된다. 대용량 스토리지 장치(14) 및 그것과 연관된 컴퓨터-판독가능 매체는 컴퓨터(2)를 위한 비-휘발성 스토리지를 제공한다. 비록 본 명세서에 포함된 컴퓨터-판독가능 매체의 설명이 하드 디스크 또는 CD-ROM 드라이브와 같은 대용량 스토리지 장치를 참조하지만, 컴퓨터-판독가능 매체는 컴퓨터(2)에 의해 액세스될 수 있거나 이용될 수 있는 임의의 이용가능한 매체일 수 있다는 점을 해당 기술 분야의 기술자라면 이해되어야 한다.
예를 들어, 그리고 제한적인 아니게, 말하자면, 컴퓨터-판독가능 매체는 컴퓨터 스토리지 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 스토리지 매체는 컴퓨터-판독가능 인스트럭션, 데이터 구조, 프로그램 모듈 및 그 외 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 및 기술로 구현된 휘발성 및 비-휘발성, 탈거가능 및 비-탈거가능 매체를 포함한다. 컴퓨터 스토리지 매체에는, RAM, ROM, EPROM, EEPROM, 플래시 메모리 또는 그 외 다른 고체 메모리 기술, CD-ROM, DVD(digital versatile disks), 또는 그 외 다른 광 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 그 외 다른 자기 스토리지 장치, 또는 원하는 정보를 저장하기 위해 사용될 수 있고 컴퓨터(2)에 의해 액세스될 수 있는 임의의 그 외 다른 매체가 포함되지만 이들로만 제한되는 것은 아니다.
본 발명의 다양한 실시예들에 따라, 컴퓨터(2)는 예를 들어 로컬 네트워크, 인터넷, 등과 같은 네트워크(4)를 통해 원격 컴퓨터들과 논리적인 연ㄱㄹ을 이용하는 네크워크 환경에서 동작할 수 있다. 컴퓨터(2)는 버스(10)에 연결된 네트워크 인터페이스 유닛(16)을 통해 네트워크(4)에 연결될 수 있다. 네트워크 인터페이스 유닛(16)은 또한 그 외 다른 타입의 네트워크와 원격 컴퓨팅 시스템에 연결하기 위해 이용될 수 있다는 점이 이해되어야 한다. 컴퓨터(2)는 또한 키보드, 마우스, 등(미도시)을 포함하여 다수의 그 외 다른 장치들로부터 입력을 수신하고 프로세싱하기 위한 입력/출력 컨트롤러(22)를 포함할 수 있다. 유사하게, 입력/출력 컨트롤러(22)는 디스플레이 스크린, 프린터, 또는 그 외 다른 타입의 출력 장치로 출력을 제공할 수 있다.
위에서 간단하게 언급된 바와 같이, 워싱턴 주 레드몬드의 마이크로 코포레이션으로부터의 WINDOWS 운영 시스템과 같은, 네트워크 퍼스널 컴퓨터의 동작을 제어하기에 적합한 운영 시스템(24)을 포함하여, 다수의 프로그램 모듈 및 데이터 파일이 컴퓨터(2)의 대용량 스토리지 장치(14) 및 RAM(18) 내에 저장될 수 있다. 대용량 스토리지 장치(14) 및 RAM(18_은 또한 하나 이상의 프로그램 모듈을 저장할 수 있다. 구체적으로, 대용량 스토리지 장치(14) 및 RAM(18)은 워드 프로세싱, 스프레드시트, 도면, 이메일, 및 그 외 다른 애플리케이션 및/또는 프로그램 모듈, 등과 같은 애플리케이션 프로그램들을 저장할 수 있다.
본 발명의 다양한 실시예들은 (1) 컴퓨터 시스템 상에서 실행되는 프로그램 모듈들 또는 컴퓨터 구현 행위들의 시퀀스로서 및/또는 (2) 컴퓨터 시스템 내 상호연결된 기계 논리 회로들 또는 회로 모듈들로서 구현될 수 있다는 점이 이해되어야 한다. 구현 형태는 본 발명을 구현하는 컴퓨팅 시스템의 수행 요구조건에 따른 선택의 문제이다. 따라서, 관련 알고리즘을 포함하는 논리적인 동작들은 동작, 구조적 장치, 행위 또는 모듈과 같이 다양하게 지칭될 수 있다. 이들 동작, 구조적 장치, 행위 및 모듈은, 본 명세서에서 제공하는 청구범위 내에서 기재하고 있는 바와 같은 본 발명의 정신과 범위로부터 벗어나지 않고서 소프트웨어, 펌웨어, 전용 디지털 로직, 및 이들의 임의의 조합으로 구현될 수 있다는 점이 해당 기술 분야의 지식을 가진 자에 의해 인식될 것이다.
비록 본 발명이 다양한 예시적인 실시예들과 관련하여 기술되었으나, 해당 기술 분야의 통상의 지식을 가진 자라면 많은 수정이 아래의 청구범위의 범위 내에서 이루어질 수 있다는 점을 이해할 것이다. 따라서, 본 발명의 범위가 위의 설명에 의해 어떠한 방식으로든 제한되는 것으로 의도되지 않으며, 그 대신에 전체적으로 아래의 청구범위에 대한 참조라는 것이 확실하다.

Claims (20)

  1. 컴퓨팅 장치에 의해 수행되는 방법으로서,
    통신 아이템을 파싱하여 파싱된 출력을 생성하는 단계와,
    상기 통신 아이템의 상기 파싱된 출력 내에서 익스텐션 트리거를 식별하는 것의 일부로서 트리거링 기준(triggering criteria)을 사용하는 단계- 상기 사용하는 단계는 상기 통신 아이템에 대해 인라인으로 액티브 컨텐트를 주입하는 것을 트리거하는 상기 트리거링 기준으로서 하나 이상의 정규 표현(regular expression)을 사용하는 것을 포함함 -와,
    상기 통신 아이템과 상호작용하는 것의 일부로서 이메일 클라이언트와의 익스텐션을 구현하는 단계를 포함하되,
    상기 구현하는 단계는
    상기 익스텐션과 연관된 솔루션 패키지를 푸는 것(unpacking)과,
    상기 이메일 클라이언트와 분리된 상기 통신 아이템을 위한 액티브 컨텐트 특징(active content features)을 제공하는 것의 일부로서 상기 하나 이상의 정규 표현을 사용하여 상기 익스텐션에 대한 대응하는 익스텐션 트리거를 식별한 후에 익스텐션 코드를 실행하는 것 - 상기 익스텐션 코드를 실행하는 것은 상기 액티브 컨텐트를 상기 통신 아이템에 내장함 -
    에 의해 수행되는
    방법.
  2. 제 1 항에 있어서,
    적합한 익스텐션 트리거가 식별되지 않으면 상기 익스텐션 없이 상기 통신 아이템을 디스플레이하는 단계
    를 더 포함하는 방법.
  3. 제 1 항에 있어서,
    각 익스텐션에 대한 대응하는 익스텐션 코드 및 매니페스트를 포함하는 상기 솔루션 패키지를 제공하는 단계를 더 포함하되, 상기 솔루션 패키지는 사용자 메일박스 내에 숨겨진 메시지와 함께 저장된 스크립트 코드를 포함하는
    방법.
  4. 제 3 항에 있어서,
    원격 컴퓨터 저장 및 로컬 컴퓨터 저장 중 하나 이상의 일부로서 상기 솔루션 패키지를 저장하는 단계
    를 더 포함하는 방법.
  5. 제 3 항에 있어서,
    상기 통신 아이템과 함께 상기 솔루션 패키지를 사용하는 것의 일부로서 이메일 애플리케이션을 로컬로 실행하는 단계
    를 더 포함하는 방법.
  6. 제 3 항에 있어서,
    상기 통신 아이템과 함께 상기 솔루션 패키지를 사용하는 것의 일부로서 웹기반 이메일 애플리케이션을 실행하는 단계
    를 더 포함하는 방법.
  7. 제 1 항에 있어서,
    마크업 언어, 스타일 시트 언어 및 스크립팅 언어 특징 중 하나 이상을 사용하여 상기 솔루션 패키지를 생성하는 단계
    를 더 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 통신 아이템을 파싱하고, 본문 태그의 위치를 찾아내며, 상기 본문 태그에 관련된 가젯 스크립트를 주입하는 것에 부분적으로 기초하여 상기 익스텐션 코드를 실행하는 단계
    를 더 포함하는 방법.
  9. 제 1 항에 있어서,
    상기 통신 아이템을 위한 상기 액티브 컨텐트를 제공하는 것의 일부로서 확장가능성 모델(extensibility model)을 사용하는 단계를 더 포함하되, 상기 확장가능성 모델을 사용하는 단계는 상기 통신 아이템의 파싱된 부분 내에 대응하는 익스텐션 트리거가 식별되면 마크업 스트림을 상기 통신 아이템의 보기가능 부분에 자동으로 주입하는 것을 포함하는
    방법.
  10. 삭제
  11. 제 1 항에 있어서,
    이메일 메시지 뷰의 일부로서 상이한 유형의 컨텐트를 인라인으로 주입하는 단계
    를 더 포함하는 방법.
  12. 삭제
  13. 시스템으로서,
    프로세서 및 메모리 리소스와,
    이메일 클라이언트와,
    상기 이메일 클라이언트를 위한 확장된 이메일 기능을 제공하고, 하나 이상의 솔루션 패키지에 따라 구성된 하나 이상의 이용가능 가젯(gadget) - 가젯은
    솔루션 패키지를 푸는 것과,
    상기 가젯과 연관된 익스텐션 코드를 실행하는 것
    에 따라 동작함 - 과,
    상기 이메일 클라이언트와 분리되고, 상기 실행되는 익스텐션 코드가 상기 가젯과 연관된 컨텐트를 선택된 이메일 메시지에 주입하는 경우에 사용되는 고립된 코드 실행 환경과,
    선택된 이메일 메시지를 파싱하고 하나 이상의 활성화 트리거를 식별하도록 부분적으로 구성된 파싱 엔진 - 각각의 식별된 활성화 트리거는 연관된 익스텐션 코드가 실행되게 하는 상기 가젯과 연관된 컨텐트의 인라인으로의 주입을 트리거하는 트리거링 기준으로서 정규 표현을 포함함 - 과,
    활성화된 가젯에 의해 제공된 임의의 연관된 익스텐션 기능과 상기 선택된 이메일 메시지를 디스플레이하는 인터페이스
    를 포함하는 시스템.
  14. 제 13 항에 있어서,
    상기 인터페이스는 상기 선택된 이메일 메시지와 인라인으로 컨텐트를 디스플레이하는 것의 일부로서 마크업 스트림을 리턴하기 위한 고립된 익스텐션 코드의 사용에 부분적으로 기초하여 익스텐션 특징을 디스플레이하는 이메일 애플리케이션 인터페이스를 더 포함하는
    시스템.
  15. 제 14 항에 있어서,
    각각의 가젯은 매니페스트 파일 및 스크립트에 부분적으로 기초하는 대응하는 솔루션 패키지를 포함하며, 상기 매니페스트 파일은 상기 스크립트가 실행되어 상기 선택된 이메일 메시지 내에 액티브 컨텐트를 내장시키도록 하기 위한 적어도 하나의 가젯 트리거를 정의하는
    시스템.
  16. 제 13 항에 있어서,
    상기 인터페이스는 상기 하나 이상의 가젯에 대해 선언된 활성화 트리거를 식별하기 위해 상기 파싱 엔진을 사용하기 이전에 상기 선택된 이메일 메시지와의 상호작용의 일부로서 사용자 입력을 수신하도록 더 구성되는
    시스템.
  17. 제 13 항에 있어서,
    각각의 가젯은 제3자 코드를 포함할 수 있고 연관된 활성화 트리거를 트리거링하는 파싱된 컨텐트에 따라 상기 선택된 이메일 메시지의 식별된 부분을 액티브 컨텐트로 채우기 위해 다른 자원들과 통신할 수 있는
    시스템.
  18. 제 1 항에 있어서,
    하나 이상의 가젯에 대해 선언된 활성화 트리거를 식별하기 위해 사용자 인터페이스를 통한 상호작용을 수신하는 단계
    를 더 포함하는 방법.
  19. 제 1 항에 있어서,
    상기 익스텐션은 제3자 코드를 포함하고 연관된 활성화 트리거를 트리거링하는 파싱된 컨텐트에 따라 선택된 이메일 메시지의 식별된 부분을 상기 액티브 컨텐트로 채우기 위해 다른 자원과 통신하는
    방법.
  20. 명령어를 포함하는 컴퓨터 저장 장치로서,
    상기 명령어는 실행시,
    하나 이상의 가젯 트리거를 식별하기 위해, 선택된 전자 통신 아이템을 검사하는 것 - 상기 검사하는 것은 상기 선택된 전자 통신 아이템의 일부를 파싱하여 파싱된 부분을 제공하는 것 및 매니페스트를 사용하여 적어도 하나의 파싱된 부분에서 상기 하나 이상의 가젯 트리거를 식별하는 것을 포함하고, 상기 검사하는 것은 상기 선택된 전자 통신 아이템에 대해 인라인으로 액티브 컨텐트를 주입하는 것을 트리거하는 트리거링 기준으로서 하나 이상의 정규 표현을 사용하는 것을 더 포함함 - 와,
    제3자 코드를 포함하고 연관된 활성화 트리거를 트리거링하는 파싱된 컨텐트에 따라 상기 선택된 전자 통신 아이템의 식별된 부분을 상기 액티브 컨텐트로 채우기 위해 다른 자원과 통신하는 가젯에 대해 선언된 활성화 트리거를 식별하기 위해 사용자 인터페이스를 통한 상호작용을 수신하는 것과,
    이메일 클라이언트에 대해 가젯을 구현하는 것을 포함하는 동작을 수행하되,
    상기 구현하는 것은
    상기 가젯과 연관된 솔루션 패키지를 푸는 것과,
    상기 선택된 전자 통신 아이템에 대해 액티브 컨텐트 특징을 인라인으로 제공하는 것의 일부로서 상기 활성화 트리거의 식별시 상기 이메일 클라이언트와 분리된 익스텐션 코드를 실행하는 것 - 상기 익스텐션 코드를 실행하는 것은 상기 액티브 컨텐트를 상기 선택된 전자 통신 아이템에 내장함 -
    에 의해 수행되는
    컴퓨터 저장 장치.
KR1020137029752A 2011-05-09 2012-05-06 전자 통신을 위한 확장가능성 특징 KR101897310B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/103,614 US9524531B2 (en) 2011-05-09 2011-05-09 Extensibility features for electronic communications
US13/103,614 2011-05-09
PCT/US2012/036705 WO2012154634A2 (en) 2011-05-09 2012-05-06 Extensibility features for electronic communications

Publications (2)

Publication Number Publication Date
KR20140034188A KR20140034188A (ko) 2014-03-19
KR101897310B1 true KR101897310B1 (ko) 2018-10-18

Family

ID=47139920

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137029752A KR101897310B1 (ko) 2011-05-09 2012-05-06 전자 통신을 위한 확장가능성 특징

Country Status (6)

Country Link
US (3) US9524531B2 (ko)
EP (1) EP2707849A4 (ko)
JP (1) JP6043342B2 (ko)
KR (1) KR101897310B1 (ko)
CN (2) CN109086905A (ko)
WO (1) WO2012154634A2 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10015122B1 (en) * 2012-10-18 2018-07-03 Sitting Man, Llc Methods and computer program products for processing a search
US9524531B2 (en) 2011-05-09 2016-12-20 Microsoft Technology Licensing, Llc Extensibility features for electronic communications
CN102662737B (zh) * 2012-03-14 2014-06-11 优视科技有限公司 扩展程序的调用方法及装置
US9256733B2 (en) * 2012-04-27 2016-02-09 Microsoft Technology Licensing, Llc Retrieving content from website through sandbox
US8904550B2 (en) 2012-06-27 2014-12-02 Blackberry Limited Selection of sandbox for initiating application
US10397150B1 (en) * 2012-10-18 2019-08-27 Gummarus, Llc Methods and computer program products for processing a search query
US10291562B2 (en) * 2013-05-20 2019-05-14 International Business Machines Corporation Embedding actionable content in electronic communication
US10257141B2 (en) * 2015-03-13 2019-04-09 Cola, Inc. System and method for delivering inline interactive objects encapsulated in a message
US10769351B2 (en) * 2015-05-08 2020-09-08 Citrix Systems, Inc. Rendering based on a document object model
US10884580B2 (en) * 2015-06-07 2021-01-05 Apple Inc. Devices and methods for displaying content in a note-taking application
US10296190B2 (en) 2015-12-11 2019-05-21 Microsoft Technology Licensing, Llc Spatially organizing communications
US10785175B2 (en) * 2016-06-12 2020-09-22 Apple Inc. Polling extension application for interacting with a messaging application
US10595169B2 (en) 2016-06-12 2020-03-17 Apple Inc. Message extension app store
US10852912B2 (en) 2016-06-12 2020-12-01 Apple Inc. Image creation app in messaging app
US10346530B2 (en) * 2017-03-10 2019-07-09 Microsoft Technology Licensing, Llc Embedded meeting extensions
US20190081915A1 (en) * 2017-09-08 2019-03-14 Microsoft Technology Licensing, Llc Extensions embedded in e-mail messages
US11138265B2 (en) * 2019-02-11 2021-10-05 Verizon Media Inc. Computerized system and method for display of modified machine-generated messages
US20210152504A1 (en) * 2019-11-14 2021-05-20 Black Hills Ip Holdings, Llc Structured text for electronic communications
US20230418891A1 (en) * 2022-06-24 2023-12-28 Microsoft Technology Licensing, Llc Transferring link context from desktop application to browser

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060174078A1 (en) 2005-01-19 2006-08-03 Alcatel System and method for executing a process on a microprocessor-enabled device
US20080005247A9 (en) 2002-09-18 2008-01-03 Advenix, Corp. (Ca Corporation) Enhancement of e-mail client user interfaces and e-mail message formats
US20090100367A1 (en) 2005-10-26 2009-04-16 Yahoo! Inc. System and method for seamlessly integrating separate information systems within an application
US20100131529A1 (en) 2008-11-26 2010-05-27 Vishal Kasera Open entity extraction system

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998000422A1 (en) 1996-07-02 1998-01-08 Sang Sup Jew Oxirane carboxylic acid derivative and its manufacturing method
US10636084B2 (en) 1996-10-31 2020-04-28 Citicorp Credit Services, Inc. (Usa) Methods and systems for implementing on-line financial institution services via a single platform
EP1388062A2 (en) * 2001-03-12 2004-02-11 Nice Systems Limited System and method for capturing, analyzing and recording screen events
US6836886B2 (en) 2001-03-19 2004-12-28 Autodesk, Inc. Method and apparatus for delivering electronic information
JP2003051851A (ja) 2001-08-08 2003-02-21 Sangaku Renkei Kiko Kyushu:Kk 電子メール受信方法と、それに使用するメールサーバ、ウェブサーバ、受信端末及び電子メール受信システム
US6993562B2 (en) * 2002-03-21 2006-01-31 Peerless Systems Corporation Method and system to print via email
EP1326189A3 (en) 2001-12-12 2005-08-17 Microsoft Corporation Controls and displays for acquiring preferences, inspecting behaviour, and guiding the learning and decision policies of an adaptive communications prioritization and routing systems
AU2003213909A1 (en) * 2002-03-20 2003-09-29 Research In Motion Limited System and method for transmitting and utilizing attachments
US7886359B2 (en) 2002-09-18 2011-02-08 Symantec Corporation Method and apparatus to report policy violations in messages
US9076147B2 (en) * 2002-09-18 2015-07-07 Advenix, Corp. Systems and methods for online marketing and advertising on e-mail systems
US8024335B2 (en) 2004-05-03 2011-09-20 Microsoft Corporation System and method for dynamically generating a selectable search extension
US7634720B2 (en) 2003-10-24 2009-12-15 Microsoft Corporation System and method for providing context to an input method
US8095882B2 (en) 2003-10-30 2012-01-10 Avaya Technology Corp. Additional functionality for telephone numbers and utilization of context information associated with telephone numbers in computer documents
US20050177635A1 (en) * 2003-12-18 2005-08-11 Roland Schmidt System and method for allocating server resources
US7571213B2 (en) 2004-03-26 2009-08-04 Microsoft Corporation Interactive electronic bubble messaging
US8326930B2 (en) * 2004-06-22 2012-12-04 J2 Global Communications Variation of image content in electronic messaging protocol messages
US7475150B2 (en) 2004-09-07 2009-01-06 International Business Machines Corporation Method of generating a common event format representation of information from a plurality of messages using rule-based directives and computer keys
US7647559B2 (en) 2004-09-30 2010-01-12 Microsoft Corporation Method and computer-readable medium for navigating between attachments to electronic mail messages
US7567965B2 (en) 2004-10-22 2009-07-28 Microsoft Corporation Presenting message attachments independent of electronic messages at a user-interface
US7487446B2 (en) 2004-11-10 2009-02-03 Microsoft Corporation Using a word processor with accounting data
US8849968B2 (en) 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US8239939B2 (en) * 2005-07-15 2012-08-07 Microsoft Corporation Browser protection module
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
CN101055394B (zh) 2005-12-22 2010-10-13 日本电气液晶显示技术株式会社 液晶显示器件及使用其的终端器件
KR20080085210A (ko) * 2006-01-17 2008-09-23 카이다로 (이스라엘) 리미티드 네트워크 환경에서의 데이터 보안
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20070204223A1 (en) 2006-02-27 2007-08-30 Jay Bartels Methods of and systems for personalizing and publishing online content
US7765097B1 (en) 2006-03-20 2010-07-27 Intuit Inc. Automatic code generation via natural language processing
US8307119B2 (en) * 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application
US8073830B2 (en) * 2006-03-31 2011-12-06 Google Inc. Expanded text excerpts
US7747785B2 (en) * 2006-04-14 2010-06-29 Microsoft Corporation Instant messaging plug-ins
US20070256003A1 (en) 2006-04-24 2007-11-01 Seth Wagoner Platform for the interactive contextual augmentation of the web
US8261256B1 (en) * 2006-08-24 2012-09-04 Bby Solutions, Inc. System and method for automatically updating the software of a networked personal audiovisual device
US8903840B2 (en) 2006-08-31 2014-12-02 International Business Machines Corporation System and method for launching a specific program from a simple click on a string of characters
GB0620238D0 (en) * 2006-10-12 2006-11-22 Ibm A method and apparatus for converting a text-based email message to an email message comprising image-based fonts
US8468244B2 (en) * 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
US20080165148A1 (en) 2007-01-07 2008-07-10 Richard Williamson Portable Electronic Device, Method, and Graphical User Interface for Displaying Inline Multimedia Content
US20080168368A1 (en) 2007-01-07 2008-07-10 Louch John O Dashboards, Widgets and Devices
US9537816B2 (en) 2007-01-23 2017-01-03 Microsoft Technology Licensing, Llc API for representing a mailbox in a message system
US7647404B2 (en) * 2007-01-31 2010-01-12 Edge Technologies, Inc. Method of authentication processing during a single sign on transaction via a content transform proxy service
US7831676B1 (en) * 2007-02-21 2010-11-09 Nagar Ajay R Method and system for handling email
US8196097B1 (en) 2007-03-02 2012-06-05 Google Inc. Method and apparatus for extending a software gadget
US10997531B2 (en) * 2007-09-11 2021-05-04 Ciambella Ltd. System, method and graphical user interface for workflow generation, deployment and/or execution
EP2042969A1 (en) 2007-09-28 2009-04-01 Alcatel Lucent Method for determining user reaction with specific content of a displayed page.
US9785916B2 (en) * 2007-10-12 2017-10-10 Yahoo Holdings, Inc. Integrating rich media into a web-based calendar
WO2009046497A1 (en) * 2007-10-12 2009-04-16 Csl Limited Method of eliciting an immune response against pandemic influenza virus
US8719121B1 (en) * 2008-01-15 2014-05-06 David Leason System and method for automated construction of time records based on electronic messages
US8196112B1 (en) * 2008-02-15 2012-06-05 Amazon Technologies, Inc. Systems and methods for testing widgets in computer environments
US8060570B2 (en) 2008-03-13 2011-11-15 SMS, ac, Inc. Systems and methods for sending and receiving e-mail on a network community platform
WO2009130605A2 (en) * 2008-04-21 2009-10-29 Vaka Corporation Methods and systems for customizing and embedding widgets in instant messages
US8291496B2 (en) * 2008-05-12 2012-10-16 Enpulz, L.L.C. Server based malware screening
US9894020B2 (en) * 2008-07-09 2018-02-13 Blackberry Limited Delivery of email messages with repetitive attachments
US8346615B2 (en) 2008-11-25 2013-01-01 Yodlee, Inc. Financial gadgets
US20100192224A1 (en) * 2009-01-26 2010-07-29 International Business Machines Corporation Sandbox web navigation
US8392896B2 (en) 2009-03-06 2013-03-05 Microsoft Corporation Software test bed generation
US20100257182A1 (en) 2009-04-06 2010-10-07 Equiom Labs Llc Automated dynamic style guard for electronic documents
CN101957749A (zh) * 2009-07-20 2011-01-26 华为技术有限公司 一种生成widget的方法及装置
US8626802B2 (en) 2009-07-24 2014-01-07 Apple Inc. Dynamic media content previews
US8239467B2 (en) 2009-08-19 2012-08-07 Ianywhere Solutions, Inc. Extending business processes to mobile devices
US20110054289A1 (en) 2009-09-01 2011-03-03 Adidas AG, World of Sports Physiologic Database And System For Population Modeling And Method of Population Modeling
US9032066B1 (en) * 2009-09-29 2015-05-12 Amazon Tehnologies, Inc. Virtual sandboxing for supplemental content
US20110099507A1 (en) * 2009-10-28 2011-04-28 Google Inc. Displaying a collection of interactive elements that trigger actions directed to an item
US8839138B1 (en) * 2009-12-21 2014-09-16 Symantec Corporation Systems and methods for transitioning between user interface environments
US9185064B2 (en) * 2010-01-15 2015-11-10 Microsoft Technology Licensing, Llc Interactive email
US8751633B2 (en) * 2010-04-01 2014-06-10 Cloudflare, Inc. Recording internet visitor threat information through an internet-based proxy service
US20110289162A1 (en) 2010-04-02 2011-11-24 Furlong Wesley J Method and system for adaptive delivery of digital messages
WO2011127653A1 (en) * 2010-04-14 2011-10-20 Google Inc. Enriching web resources
US20110288962A1 (en) * 2010-05-21 2011-11-24 Rankin Jr Claiborne R Apparatuses, methods and systems for a lead exchange facilitating hub
US8890890B2 (en) 2010-05-26 2014-11-18 Microsoft Corp. Pluggable web-based visualizations for applications
US8875029B1 (en) 2010-08-16 2014-10-28 Google Inc. Active mail thread
US20120054289A1 (en) * 2010-08-25 2012-03-01 Doruk Aytulu Email command systems and methods
CN101937466B (zh) 2010-09-15 2011-11-30 任子行网络技术股份有限公司 网页邮箱识别分类方法及系统
US20120081299A1 (en) * 2010-10-04 2012-04-05 Verizon Patent And Licensing Inc. Method and apparatus for providing remote control via a touchable display
US20120221571A1 (en) * 2011-02-28 2012-08-30 Hilarie Orman Efficient presentation of comupter object names based on attribute clustering
US9524531B2 (en) 2011-05-09 2016-12-20 Microsoft Technology Licensing, Llc Extensibility features for electronic communications
US9449112B2 (en) 2012-01-30 2016-09-20 Microsoft Technology Licensing, Llc Extension activation for related documents
US9235803B2 (en) 2012-04-19 2016-01-12 Microsoft Technology Licensing, Llc Linking web extension and content contextually
US9092728B2 (en) 2012-04-19 2015-07-28 Microsoft Technology Licensing, Llc Providing rule based analysis of content to manage activation of web extension
US8904550B2 (en) * 2012-06-27 2014-12-02 Blackberry Limited Selection of sandbox for initiating application

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005247A9 (en) 2002-09-18 2008-01-03 Advenix, Corp. (Ca Corporation) Enhancement of e-mail client user interfaces and e-mail message formats
US20060174078A1 (en) 2005-01-19 2006-08-03 Alcatel System and method for executing a process on a microprocessor-enabled device
US20090100367A1 (en) 2005-10-26 2009-04-16 Yahoo! Inc. System and method for seamlessly integrating separate information systems within an application
US20100131529A1 (en) 2008-11-26 2010-05-27 Vishal Kasera Open entity extraction system

Also Published As

Publication number Publication date
JP2014519088A (ja) 2014-08-07
US10241657B2 (en) 2019-03-26
JP6043342B2 (ja) 2016-12-14
CN109086905A (zh) 2018-12-25
EP2707849A2 (en) 2014-03-19
KR20140034188A (ko) 2014-03-19
US9524531B2 (en) 2016-12-20
US11144180B2 (en) 2021-10-12
US20120290945A1 (en) 2012-11-15
WO2012154634A3 (en) 2013-03-28
CN103547986A (zh) 2014-01-29
EP2707849A4 (en) 2014-09-24
US20190179518A1 (en) 2019-06-13
US20170097754A1 (en) 2017-04-06
WO2012154634A2 (en) 2012-11-15

Similar Documents

Publication Publication Date Title
KR101897310B1 (ko) 전자 통신을 위한 확장가능성 특징
US9419987B2 (en) Method and device for prompting information about e-mail
US10990655B1 (en) Methods, systems, and computer program products for web browsing
US20170308279A1 (en) Customization of Mobile Applications Using Web-Based Technology
KR102018393B1 (ko) 파일의 공유 버전을 참조하기 위해 파일 내에 메타데이터를 저장하는 방법
US10033600B2 (en) Client application integration for workflows
US8346878B2 (en) Flagging resource pointers depending on user environment
US10198523B2 (en) Utilizing server pre-processing to deploy renditions of electronic documents in a computer network
US20150281318A1 (en) System for managing extension modifications to web pages
RU2595533C2 (ru) Система отображения почтовых вложений на странице веб-почты
US8903931B1 (en) Methods for generating e-mail message interfaces
US20130067304A1 (en) Method and device for displaying instant messaging messages
US20120278403A1 (en) Presenting link information near links within electronic messages
US20170242931A1 (en) Detecting digital content visibility
US20110047449A1 (en) Widget Framework
US9369333B1 (en) System and method for centralizing outbound communications between an email system and a third party service
US20150205767A1 (en) Link appearance formatting based on target content
US9391938B2 (en) Indicating in an electronic message whether a user has previously accessed content provided by a resource
US9385978B2 (en) Generating and/or providing access to a message based on portions of the message indicated by a sending user
US20090019361A1 (en) Methods, systems, and computer program products for providing a browsing mode association of a link with browsed content
US20150261733A1 (en) Asset collection service through capture of content
US20210099411A1 (en) Electronic mail format protocol for instructing automatic behavior of electronic devices executing an electronic mail client application
US20190042213A1 (en) Methods, systems, and computer program products for web browsing

Legal Events

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