KR20100135844A - 잠재 전송 표면을 이용하는 문서 수정 기술 - Google Patents

잠재 전송 표면을 이용하는 문서 수정 기술 Download PDF

Info

Publication number
KR20100135844A
KR20100135844A KR1020107023870A KR20107023870A KR20100135844A KR 20100135844 A KR20100135844 A KR 20100135844A KR 1020107023870 A KR1020107023870 A KR 1020107023870A KR 20107023870 A KR20107023870 A KR 20107023870A KR 20100135844 A KR20100135844 A KR 20100135844A
Authority
KR
South Korea
Prior art keywords
document
media content
transfer
latent
transfer surface
Prior art date
Application number
KR1020107023870A
Other languages
English (en)
Other versions
KR101782163B1 (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 KR20100135844A publication Critical patent/KR20100135844A/ko
Application granted granted Critical
Publication of KR101782163B1 publication Critical patent/KR101782163B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • 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/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • 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/10Services
    • 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/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Human Computer Interaction (AREA)
  • Economics (AREA)
  • Databases & Information Systems (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Human Resources & Organizations (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)
  • Electrostatic Charge, Transfer And Separation In Electrography (AREA)
  • Combination Of More Than One Step In Electrophotography (AREA)
  • User Interface Of Digital Computer (AREA)
  • Credit Cards Or The Like (AREA)
  • Storage Device Security (AREA)

Abstract

잠재 전송 표면을 이용하여 문서를 수정하기 위한 기술들이 설명된다. 장치는 문서 내에 잠재적 전송 표면을 삽입하도록 동작하는 전송 표면 생성 모듈을 포함하는 문서 편집 서브시스템을 포함할 수 있다. 전송 표면 생성 모듈에 전송 제어 모듈이 통신 결합될 수 있다. 전송 제어 모듈은 문서에 대한 미디어 콘텐츠를 전송하기 위한 전송 요청을 수신하고, 전송 요청에 응답하여 잠재적 전송 표면을 이용하여 미디어 콘텐츠를 전송하도록 동작할 수 있다. 다른 실시예들이 설명되고 청구된다.

Description

잠재 전송 표면을 이용하는 문서 수정 기술{TECHNIQUES TO MODIFY A DOCUMENT USING A LATENT TRANSFER SURFACE}
전통적으로, 워드 프로세싱 애플리케이션 프로그램과 같은 애플리케이션 프로그램들은 로컬 또는 네트워크 기반 파일들에 저장된 문서들에 대한 풍부한 편집 및 포맷팅 기능을 제공하는 퍼스널 컴퓨터 상에 설치되는 독립 소프트웨어 프로그램들이었다. 일반적으로, 이러한 애플리케이션 프로그램들은 매우 커서, 설치할 수 메가바이트의 구동 공간을 필요로 한다. 그러나, 최근의 경향은 동일한 독립 애플리케이션 프로그램들에 액세스하지 못할 수 있는 원격적으로 다양한 사용자들에 의한 문서들의 협력 개발이며, 그러한 문서들은 인터넷을 통해 액세스 가능한 원격 네트워크 상에 저장될 수 있다. 이것은, 전통적인 월드 와이드 웹("웹") 브라우저를 통해 전달될 수 있어서, 전통적인 독립 애플리케이션 프로그램을 설치할 필요 없이 원격 문서들이 네트워크를 통해 사용자들에 의해 편집되는 것을 허가할 수 있는 애플리케이션 프로그램들의 개발을 유도하였다.
웹 기반 애플리케이션 프로그램 기능을 제공하기 위한 한 가지 기술은 많은 웹 브라우저 프로그램에서 이용 가능한 편집 특징들을 이용하는 웹페이지들을 개발하는 것을 포함한다. 이러한 기술은 거의 개발 노력 없이 작고 빠르다는 이익을 갖는다. 그러나, 이러한 웹 브라우저들에 의해 제공되는 제한된 편집 특징들은 전통적인 독립 애플리케이션 프로그램들의 특징 풍부한 능력들과는 일반적으로 비교할 수 없다. 게다가, 이용 가능한 편집 특징들은 상이한 웹 브라우저 프로그램들 사이에 다양할 수 있으며, 따라서 모든 웹 브라우저들에 걸쳐 일관된 사용자 경험을 제공하기가 어려울 수 있다.
웹 기반 애플리케이션 프로그램 기능을 제공하기 위한 또 하나의 기술은 선 마이크로시스템즈의 자바, 어도비 시스템즈의 플래시 또는 비동기 자바스크립트 및 XML("AJAX")와 같은 크로스-브라우저 실행시간 기술을 이용하여 브라우저 내에서 실행되는 완전한 애플리케이션 프로그램을 구현하는 것이다. 이러한 방법은 애플리케이션 프로그램의 특징들 및 능력들에 대한 개발자의 완전한 제어를 허가하지만, 일반적으로 상당한 개발 노력을 필요로 하며, 사용자에 의해 타이핑되는 텍스트의 윈도우 내의 렌더링, 텍스트를 통한 블링킹 커서의 이동 또는 사용자가 타이핑하는 윈도우의 콘텐츠의 일정한 리플로우와 같은 저레벨의 편집 기능의 구현을 요구한다. 게다가, 애플리케이션 프로그램은 브라우저 기반 실행시간 기술에서 실행되므로, 종종 실행이 느리고, 적절히 응답하는 사용자 인터페이스를 제공하지 못할 수 있다.
본 개량들이 필요한 것은 이들 및 다른 고려들과 관련된다.
본 요약은 아래의 상세한 설명에서 더 설명되는 개념들의 선택을 간단한 형태로 소개하기 위해 제공된다. 본 요약은 청구 발명의 중요한 또는 필수적인 특징들을 식별하고자 하는 의도도 없고, 청구 발명의 범위를 결정하는 보조물로서 사용하고자 하는 의도도 없다.
다양한 실시예들은 일반적으로 원격 디바이스로부터 네트워크를 통해 문서를 수정, 변경 또는 편집하기 위한 기술들에 관한 것이다. 일 실시예에서, 예를 들어, 장치는 웹 브라우저를 구비하는 클라이언트 디바이스를 포함할 수 있다. 클라이언트 디바이스는 웹 브라우저를 이용하여 네크워크를 통해 서버로부터 애플리케이션 프로그램을 검색하고, 클라이언트 디바이스에서 애플리케이션 프로그램을 실행하여, 웹 브라우저 윈도우를 이용하여 문서를 제공할 수 있다. 이어서, 사용자는 웹 브라우저 윈도우를 통해 문서를 편집하고, 수정된 경우에, 수정된 문서를 서버에 저장할 수 있다.
클라이언트 디바이스는 새로운 향상된 문서 편집 서브시스템을 이용하여, 문서에 대한 편집 동작들을 일반적으로 관리할 수 있다. 일 실시예에서, 예를 들어, 문서 편집 서브시스템은 문서 내에 잠재적 전송 표면을 삽입하도록 동작하는 전송 표면 생성 모듈을 포함할 수 있다. 전송 표면 생성 모듈에 전송 제어 모듈이 통신 결합될 수 있다. 전송 제어 모듈은 문서에 대한 미디어 콘텐츠를 전송하기 위한 전송 요청을 수신하고, 전송 요청에 응답하여 잠재적 전송 표면을 이용하여 미디어 콘텐츠를 전송하도록 동작할 수 있다. 전송 요청들의 예는 복사 전송 요청, 잘라내기(cut) 전송 요청, 붙여넣기(paste) 전송 요청, 붙여넣기 특수 전송 요청 등을 포함할 수 있지만, 이에 제한되지 않는다. 다른 실시예들이 설명되고 청구된다.
이들 및 다른 특징들 및 이익들은 아래의 상세한 설명을 읽고 관련 도면들을 검토함으로써 명백할 것이다. 위의 일반 설명 및 아래의 상세한 설명 모두는 청구되는 바와 같은 양태들을 한정하는 것이 아니라 단지 예시적인 것임을 이해해야 한다.
도 1은 제1 시스템의 일 실시예를 나타내는 도면이다.
도 2는 문서 편집 서브시스템의 일 실시예를 나타내는 도면이다.
도 3은 제2 시스템의 일 실시예를 나타내는 도면이다.
도 4는 논리 흐름의 일 실시예를 나타내는 도면이다.
도 5는 컴퓨팅 아키텍처의 일 실시예를 나타내는 도면이다.
도 6은 물품의 일 실시예를 나타내는 도면이다.
다양한 실시예들은 소정의 동작들, 기능들 또는 서비스들을 수행하도록 배열된 물리적 또는 논리적 구조들을 포함한다. 이러한 구조들은 물리적 구조들, 논리적 구조들 또는 이들 양자의 조합을 포함할 수 있다. 물리적 또는 논리적 구조들은 하드웨어 요소들, 소프트웨어 요소들 또는 이들 양자의 조합을 이용하여 구현된다. 그러나, 특정 하드웨어 또는 소프트웨어 요소들과 관련된 실시예들의 설명은 제한이 아니라 예시적인 것을 의도한다. 실시예를 실제로 실시하기 위해 하드웨어 또는 소프트웨어 요소들을 사용하기 위한 결정들은 원하는 계산 속도, 전력 레벨, 열 허용 한계, 처리 사이클 예산, 입력 데이터 레이트, 출력 데이터 레이트, 메모리 자원, 데이터 버스 속도, 및 기타 설계 또는 성능 제한과 같은 다수의 외부 인자에 의존한다. 게다가, 물리적 또는 논리적 구조들은 전자 신호들 또는 메시지들의 형태로 구조들 사이에 정보를 통신하기 위한 대응하는 물리적 또는 논리적 접속들을 구비할 수 있다. 이러한 접속들은 정보 또는 특정 구조에 대해 적절한 경우에 유선 및/또는 무선 접속들을 포함할 수 있다. "하나의 실시예" 또는 "일 실시예"에 대한 임의의 참조는 그 실시예와 관련하여 설명되는 특정 특징, 구조 또는 특성이 적어도 하나의 실시예 내에 포함된다는 것을 의미한다는 점에 유의할 가치가 있다. 명세서 내의 다양한 곳에서의 "하나의 실시예에서"라는 문구의 출현들 모두가 반드시 동일 실시예를 지칭하는 것은 아니다.
다양한 실시예들은 일반적으로 웹 브라우저와 같은 적절한 통신 인터페이스를 이용하여 클라이언트 디바이스에 의해 실행되도록 배열되는 서버 기반 또는 웹 기반 애플리케이션 프로그램들에 관한 것이다. 웹 기반 애플리케이션 프로그램들은 독립 애플리케이션 프로그램들이 클라이언트 디바이스에 의해 구현될 필요 없이 오퍼레이터들이 클라이언트 디바이스로부터 온라인으로 문서들을 생성하고 편집하는 것을 가능하게 한다. 게다가, 웹 기반 애플리케이션 프로그램들은 다른 오퍼레이터들과의 실시간 협력을 가능하게 한다.
애플리케이션 프로그램들은 문서들을 생성, 수정, 처리 및 관리할 수 있는 임의 유형의 애플리케이션 프로그램을 포함할 수 있다. 문서들의 예는 워드 프로세싱 문서, 스프레드시트 문서, 개인 정보 관리자 문서, 발표 문서, 노트 문서, 데이터베이스 문서, 공개 문서, 데이터 입력 문서, 도표 문서, 프로젝트 문서, 서식 문서, 인터넷 문서, 마크업 언어 문서, 하이퍼텍스트 마크업 언어(HTML) 문서, 확장형 HTML(XHTML) 문서, 확장형 마크업 언어(XML) 문서, 일반 마크업 언어(GML) 문서, 표준 GML(SGML) 문서, 경량 마크업 언어(LML) 문서, 사용자 인터페이스 마크업 언어(UIML) 문서, 벡터 그래픽 마크업 언어(VGML) 문서, 웹 기반 문서, 온라인 문서, 웹페이지 등을 포함할 수 있지만, 이에 제한되지 않는다. 애플리케이션 프로그램들의 예는 워싱턴, 레드먼드의 마이크로소프트사에 의해 제작된 마이크로소프트® 오피스 제품군에 포함된 임의의 애플리케이션 프로그램을 포함할 수 있지만, 이에 제한되지 않는다. 일 실시예에서, 예를 들어, 애플리케이션 프로그램은 마이크로소프트 워드와 같은 워드 프로세싱 프로그램을 포함할 수 있다. 마이크로소프트 워드 애플리케이션 프로그램은 마이크로소프트 오피스 라이브 또는 구글® 앱스에 의해 제공되는 웹 기반 애플리케이션 프로그램으로서 구현될 수 있다. 그러나 실시예들은 이러한 예로 제한되지 않는다.
일 실시예에서, 워드 프로세싱 프로그램과 같은 애플리케이션 프로그램은 크로스-브라우저 실행시간 기술로 구현되며, 전통적인 독립형 워드 프로세싱 프로그램들에 필적하는 풍부한 편집 특징들의 세트를 제공한다. 편집 특징들은 다양한 엔드포인트들 사이의 미디어 콘텐츠의 전송을 수반하는 임의의 명령들, 명령어들 또는 지령들을 포함할 수 있다. 편집 특징들의 예는 복사 명령, 잘라내기 명령, 붙여넣기 명령, 붙여넣기 특수 명령 등을 포함할 수 있지만, 이에 제한되지 않는다. 다양한 엔드포인트들 사이의 전송들의 예는 문서와 시스템 클립보드 사이의, 2개의 상이한 문서 사이의, 애플리케이션 프로그램들 사이의, 시스템 프로그램과 애플리케이션 프로그램 사이의, 소프트웨어 개체들 사이 등의 미디어 콘텐츠의 전송을 포함할 수 있지만, 이에 제한되지 않는다. 애플리케이션 프로그램은 애플리케이션 프로그램을 지원하도록 설계되는 문서 편집 서브시스템을 이용하여 편집 특징들을 구현할 수 있다. 문서 편집 서브시스템은 서버에 의해 실행되는 웹 기반 애플리케이션 프로그램, 클라이언트 디바이스에 의해 실행되는 웹 기반 애플리케이션 프로그램, 웹 브라우저와 같은 통신 인터페이스, 다른 네트워크 액세스 가능 또는 클라이언트 액세스 가능 디바이스 또는 이러한 옵션들의 조합의 일부와 같은 네트워크의 다양한 부분들에서 구현될 수 있다.
전통적인 웹 기반 편집 도구들은 다양한 이유로 만족스럽지 못하다. 예컨대, 통상적으로 기존의 웹 기반 편집 도구들은 특히 데이터를 시스템 클립보드로 가져오고 내보내는 것과 관련하여 편집 특징들을 구현하기 위한 제한된 능력들을 갖는다. 이것은 웹 브라우저 자체에 의해 부과되는 보안 제한들에 부분적으로 기인한다. 따라서, 문서 편집은 웹 브라우저에 의해 제공되는 편집 명령들에 의존한다. 예를 들어, 편집 가능한 HTML 표면 사용자에게 제공될 때, 임의의 미디어 콘텐츠가 인터페이스 내에 붙여질 수 있다. 이 경우, 워드 프로세싱 프로그램은 오퍼레이터에 의해 붙여지는 임의의 미디어 콘텐츠의 스타일, 포맷팅 및 레이아웃에 대해 제한된 제어를 갖는다. 게다가, 그러한 편집 동작들을 검출하고, 모든 웹 브라우저에서 유효하고 기존 애플리케이션들에 의해 사용되는 콘텐츠를 필터링하기가 어렵다. 미디어 콘텐츠를 시스템 클립보드 내에 복사하는 것에 대해서도 유사한 문제들이 존재한다. 웹 브라우저에 의해 사용되는 선택 모델은 통상적으로 제한된다. 예를 들어, 오퍼레이터는 문서의 상이한 부분들의 동시 선택을 행할 수 없거나, 인라인 프레임(IFrame)과 같은 임의의 내장된 콘텐츠에 걸치는 선택을 행할 수 없다. 게다가, 소스 문서(예컨대, 웹페이지로서 렌더링되는 문서)로부터 복사되는 미디어 콘텐츠는 타겟 엔드포인트에 적절한 포맷이 아닐 수도 있다.
이들 및 다른 문제들을 해결하기 위하여, 실시예들은 독립형 워드 프로세싱 프로그램에 필적하는 향상된 편집 특징들의 세트를 제공하도록 배열되는 문서 편집 서브시스템을 포함한다. 워드 프로세싱 프로그램은 웹 브라우저에 의해 제공되는 편집 특징들을 이용하여 저레벨 편집 기능을 구현하는 것이 아니라, 문서 편집 서브시스템을 이용하여 다양한 편집 특징들을 구현할 수 있다. 특히, 문서 편집 서브시스템은 잠재 전송 표면을 이용하여 다양한 편집 특징들을 구현할 수 있다. 잠재 전송 표면은 문서 내에 내장되며, 오퍼레이터가 볼 수 없도록 숨겨진다. 잠재 전송 표면은 문서와 시스템 클립보드 사이에 전송되는 미디오 콘텐츠에 대한 중간 저장 구조로서 사용될 수 있다. 일 양태에서, 잠재 전송 표면은 많은 것들 중에서 특히 HTML IFRAME 요소로서 구현될 수 있다.
본 명세서에서 제공되는 일 양태에 따르면, 웹 브라우저 내의 문서는 잠재 전송 표면을 이용하여 편집될 수 있다. 이와 관련하여, 웹 브라우저에서 실행되는 워드 프로세싱 프로그램은 브라우저 윈도우 내에 문서를 표시한다. 문서 편집 서브시스템은 편집 요청(예컨대, 잘라내기 전송 요청, 복사 전송 요청, 붙여넣기 전송 요청, 붙여넣기 특수 전송 요청 등)을 수신할 때마다, 내장된 잠재 전송 표면을 이용하여, 편집 요청을 돕거나 수행한다. 일반적으로, 문서 편집 서브시스템은 미디어 콘텐츠를 잠재 전송 표면으로 전송하고, 미디어 콘텐츠를 처리한 후, 처리된 미디어 콘텐츠를 타겟 개체(예를 들어, 문서 또는 시스템 클립보드)로 전송한다. 중간 처리 스테이지는 선택된 미디어 콘텐츠가 복사 전송 요청 또는 잘라내기 전송 요청에 응답하여 시스템 클립보드, 붙여넣기 전송 요청 또는 붙여넣기 특수 요청에 응답하여 문서 기타 등등과 같은 타겟 엔드포인트에 적합한 다양한 포맷으로 변형 또는 변환되게 한다. 실시예들은 이와 관련하여 제한되지 않는다.
전술한 내용은 컴퓨터 제어형 장치, 컴퓨터 프로세스, 컴퓨팅 시스템 또는 컴퓨터 판독가능 매체와 같은 제조물로서 구현될 수도 있다는 것을 알아야 한다. 이들 및 다양한 다른 특징들은 아래의 상세한 설명을 읽고 관련 도면들을 검토함으로써 명백해질 것이다.
도 1은 시스템(100)의 블록도를 나타낸다. 시스템(100)은 단일 엔티티 환경 또는 다중 엔티티 분산 환경에 의해 구현되도록 설계된 다양한 요소를 포함할 수 있다. 각각의 요소는 주어진 세트의 설계 파라미터들 또는 성능 제한들에 대해 필요한 바에 따라 하드웨어 요소, 소프트웨어 요소 또는 이들의 임의 조합으로서 구현될 수 있다. 하드웨어 요소들의 예는 디바이스, 컴포넌트, 프로세서, 마이크로프로세서, 회로, 회로 요소(예컨대, 트랜지스터, 저항기, 커패시터, 인덕터 등), 집적 회로, 주문형 집적 회로(ASIC), 프로그래머블 논리 디바이스(PLD), 디지털 신호 프로세서(DSP), 필드 프로그래머블 게이트 어레이(FPGA), 메모리 유닛, 논리 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다. 소프트웨어 요소들의 예는 임의의 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 기계 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메소드, 인터페이스, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심벌 또는 이들의 임의 조합을 포함할 수 있다.
본 명세서에서 사용될 때, "시스템", "서브시스템", "컴포넌트" 및 "모듈"이라는 용어들은 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어 또는 실행중인 소프트웨어를 포함하는 컴퓨터 관련 엔티티를 지칭하는 것을 의도한다. 예를 들어, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 하드 디스크 드라이브, (광 및/또는 자기 저장 매체의) 다수의 저장 드라이브, 개체, 실행 파일, 실행 스레드, 프로그램 및/또는 컴퓨터로서 구현될 수 있다. 예를 들어, 서버 상에서 실행되는 애플리케이션 및 서버 양자는 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행 스레드 내에 존재할 수 있으며, 주어진 구현에 필요한 바에 따라 하나의 컴포넌트가 하나의 컴퓨터 상에 국한되거나, 둘 이상의 컴퓨터 사이에 분산될 수 있다. 실시예들은 이와 관련하여 제한되지 않는다.
도 1에 도시된 실시예는 잠재 전송 표면(130)을 이용하여 문서를 편집하기 위한 시스템(100)의 다양한 양태를 나타낸다. 시스템(100)은 운영 체제 및 하나 이상의 애플리케이션 프로그램을 실행할 수 있는 표준 데스크톱 또는 랩톱 컴퓨터 시스템을 포함하는 컴퓨터(120)를 포함한다. 컴퓨터(120)는 사용자(102)가 컴퓨터(120) 상에서 실행되는 시스템 및 애플리케이션 프로그램들과 상호작용할 수 있게 해주는 디스플레이(104), 마우스(108) 및 키보드(110)에 동작 가능하게 접속된다. 컴퓨터(120)는 네트워크(160)와 같은 하나 이상의 근거리 및 광역 네트워크를 통해 서버 컴퓨터(162)에 상호접속된다. 도 1에 도시된 것보다 많은 네트워크 접속들이 이용될 있다는 것을 이해해야 한다.
컴퓨터(120)는 서버 컴퓨터(162)에 의해 실행되는 웹 서버(164)에 네트워크(160)를 통해 동작 가능하게 접속되는 웹 브라우저(122)를 실행하도록 동작한다. 일 실시예에서, 웹 브라우저(122)는 마이크로소프트 사의 인터넷 익스플로러®, 모질라의 파이어폭스, 애플사의 사파리 등과 같은 HTML 문서 편집용 애플리케이션 프로그램이다. 그러나, 마크업 언어를 렌더링하고, 스크립트 논리를 실행할 수 있는 임의 유형의 애플리케이션 프로그램이 웹 브라우저(122)를 구현하는 데 사용될 수 있다는 것을 이 분야의 통상의 전문가는 이해할 것이다. 서버 컴퓨터(162)는 웹 서버로서 동작할 수 있으며, 웹 브라우저(122)에 문서들을 서빙할 수 있는 임의의 소프트웨어 프로그램을 포함한다. 서버 컴퓨터(162)는 문서들 및 애플리케이션 프로그램(140)을 포함하는 데이터 저장소(168)에 더 접속되며, 이는 아래에 더 상세히 설명된다. 일 실시예에 따르면, 문서들은 웹 브라우저(122)로 서빙될 문서(128)를 포함할 수 있다. 예를 들어, 문서(128)는 웹 브라우저(122)에 의해 렌더링되는 문서를 HTML 문서를 포함할 수 있다. 컴퓨터(120)의 사용자(102)에 의한 요청시, 웹 브라우저(122)는 웹 서버(164)로부터 문서(128)를 검색하고, 이 문서를 사용자(102)에게 제공하기 위해 디스플레이(104) 상의 윈도우(106) 내에 렌더링하도록 동작한다.
위에 간단히 설명된 바와 같이, 시스템(100)은 또한 워드 프로세싱 프로그램과 같은 애플리케이션 프로그램(140)을 포함한다. 애플리케이션 프로그램(140)은 컴퓨터(120)의 사용자(102)가 윈도우(106) 내의 문서(128)의 콘텐츠를 편집하는 것을 허가하도록 동작한다. 일 실시예에 따르면, 애플리케이션 프로그램(140)은 웹 브라우저(122)에 의해 제공되는 실행 시간 환경 내에서 실행될 수 있다. 예컨대, 애플리케이션 프로그램(140)은 AJAX 개발 기술들을 이용하여 생성될 수 있다.
일 실시예에서, 애플리케이션 프로그램(140)은 편집될 문서(128)와 더불어 웹 서버(164)로부터 검색된다. 대안 실시예들에서, 애플리케이션 프로그램(140)은 컴퓨터(120) 상에 국지적으로 존재할 수 있다. 애플리케이션 프로그램(140)은 사용자(102)에게 주어진 세트의 기능(예컨대, 워드 프로세싱)을 제공하도록 동작하는 애플리케이션 논리를 포함하는 애플리케이션 프로그램 모듈(148)을 포함한다. 일 실시예에서, 애플리케이션 프로그램(140)은 편집되고 있는 문서의 콘텐츠를 내부 문서 이미지(150) 내에 유지한다. 다른 실시예들에서, 애플리케이션 프로그램(140)은 편집되고 있는 문서의 콘텐츠를 문서(128) 내에 직접 유지한다. 디스플레이 렌더러(124)는 표시를 위해 문서(128)를 렌더링한다. 예컨대, 디스플레이 렌더러(124)는 HTML 렌더러로서 구현될 수 있다.
일 실시예에서, 애플리케이션 프로그램(140)은 사용자 입력 프로세서(126)로부터 사용자 입력 이벤트들을 모니터링하는 이벤트 핸들링 모듈(146)을 포함한다. 도 2와 관련하여 아래에 상세히 설명되는 바와 같이, 이벤트 핸들링 모듈(146)은 윈도우(106) 내에 표시된 바와 같은 문서(128) 내의 하나 이상의 위치에서 삽입 포인터의 사용자(102)에 의한 배치 및 이동을 검출하도록 동작한다. 이벤트 핸들링 모듈(146)은 문서의 콘텐츠의 편집 동안 사용자 입력 이벤트들을 모니터링하도록 더 동작한다. 예컨대, 이벤트 핸들링 모듈(146)은 편집 명령의 준비시에 문서(128) 내의 미디어 콘텐츠의 부분 또는 다수의 부분의 선택을 검출할 수 있다.
컴퓨터(120)는 문서(128)와 같은 문서에 대한 편집 동작들 및 편집 특징들을 일반적으로 관리하도록 배열되는 향상된 문서 편집 서브시스템(200)을 사용할 수 있다. 특히, 문서 편집 서브시스템(200)은 잠재 전송 표면(130)을 이용하여 다양한 편집 특징들을 지원하거나 구현할 수 있다. 문서 편집 서브시스템(200)은 잠재 전송 표면(130)을 사용자(102)에게 보이지 않거나 숨겨지도록 문서(128) 내에 내장한다. 문서 편집 서브시스템(200)은 잠재 전송 표면(130)을 문서(128)와 시스템 클립보드 사이에 전송되는 미디어 콘텐츠에 대한 중간 저장 구조로서 사용할 수 있다.
잠재 전송 표면(130)은 사용자(102)에게 제공하기 위해 디스플레이(104) 상의 브라우저 윈도우(106) 내에 문서(128)를 렌더링하기 위해 디스플레이 렌더러(124)에 의해 사용되는 주어진 마크업 언어와 함께 사용하기에 적합한 임의의 편집 가능 프레임을 포함할 수 있다. 게다가, 잠재 전송 표면은 숨겨지거나, 잠재적이거나, 보이지 않으며, 따라서 사용자(102)는 브라우저 윈도우(106) 내에서 문서(128)를 보는 동안 편집 가능 프레임을 보거나 인식할 수 없다. 일 실시예에서, 예를 들어, 잠재 전송 표면(130)은 많은 것 가운데 특히 HTML IFRAME 요소로서 구현될 수 있다. 사용자(102)에게 보이지 않고, 특정 문서와 더불어 사용하기에 적합한 임의의 편집 가능 프레임이 잠재 전송 표면(130)으로서 사용될 수 있다. 실시예들은 이 와 관련하여 제한되지 않는다.
잠재 전송 표면(130)은 사용자(102)가 문서(128) 내에 붙이는 미디어 콘텐츠에 대한 보관소 또는 임시 저장소, 및 복사 및 잘라내기 명령에 대해 선택된 콘텐츠를 렌더링하기 위한 장소로서 사용될 수 있다. 보이지 않거나 잠재적인 전송 표면(130)의 사용은 각각의 문서(128)가 문서(128)로 또는 문서(128)로부터 전송되고 있는 미디어 콘텐츠를 임시 저장하는 것을 가능하게 한다. 문서 편집 서브시스템(200)은 잠재 전송 표면(130)을 모니터링하고, 미디어 콘텐츠가 언제 잠재 전송 표면(130) 내에 배치되었는지를 검출할 수 있다. 이어서, 문서 편집 서브시스템(200)은 잠재 전송 표면(130)에 의해 저장된 미디어 콘텐츠를 타겟 엔드포인트(예를 들어, 시스템 클립보드 또는 문서)에 적합한 포맷으로 변형 또는 변환할 수 있다. 이러한 방식으로, 문서 편집 서브시스템(200) 및 잠재 전송 표면(130)은 붙여넣기 명령 또는 붙여넣기 특수 명령을 이용하여 시스템 클립보드(142)로부터 문서(128) 내에 삽입되는 것은 물론, 복사 명령 또는 잘라내기 명령을 이용하여 문서(128)로부터 시스템 클립보드(142)로 복사 또는 이동되는 미디어 콘텐츠의 포맷팅에 대한 애플리케이션 프로그램(140)의 제어를 허가한다. 이러한 유형의 모델과 통상적인 웹 브라우저에 대해 구현되는 편집 특징들에 의해 제공되는 디폴트 거동 사이의 차이는 문서 편집 서브시스템(200)이 선택된 미디어 콘텐츠에 대해 완전한 제어를 유지한다는 점이며, 이는 문서 편집 서브시스템(200)이 웹 브라우저에 의해 제공되는 편집 특징들 및 제어들로 제한되는 것이 아니라 미디오 콘텐츠의 스타일, 포맷팅, 레이아웃 및 다른 포맷팅 양태들을 조정하는 것을 가능하게 한다.
일 실시예에서, 예를 들어, 문서 편집 서브시스템(200)은 잠재 전송 표면(130)을 이용하여, 붙여넣기 및 붙여넣기 특수 명령들을 핸들링할 수 있다. 특히, 문서 편집 서브시스템(200)은 잠재 전송 표면(130)을 디스플레이(104)의 윈도우(106) 내에 웹페이지로서 렌더링되는 문서(128) 상의 새로운 HTML 요소로서 구현할 수 있다. 프로그램에 의해 잠재 전송 표면(130) 내에 포커스를 배치함으로써, 붙여넣기 명령을 개시하기 위한 사용자 액션이 미디어 콘텐츠를 잠재 전송 표면(130) 내에 배치할 것이다. "포커스"라는 용어는 주어진 문서 내의 삽입 포인트 또는 현재의 선택의 위치를 지칭한다. 붙여넣기 동작이 언제 발생하였는지를 검출하기 위해 잠재 전송 표면(130)의 콘텐츠가 모니터링될 수 있다. 이것이 행해질 때, 잠재 전송 표면(130)의 콘텐츠가 검사되고, 문서(128)에 적합한 포맷으로 변환될 수 있다. 데이터가 변환된 후, 데이터는 문서(128)의 사용자 뷰 내에 삽입된다. 이러한 방식으로, 웹페이지 상에 나타나는 미디어 콘텐츠에 대한 제어가 유지될 수 있으며, 문서(128)에 대해 행해진 편집들에 대한 정보가 보전될 수 있다.
일 실시예에서, 예를 들어, 문서 편집 서브시스템(200)은 또한 잠재 전송 표면(130)을 이용하여, 복사, 이동 및 잘라내기 명령들을 핸들링할 수 있다. 사용자(102)가 키보드 또는 마우스와 같은 입력 디바이스를 이용하여 문서(128) 내의 소정의 미디어 콘텐츠를 선택할 때, 문서 편집 서브시스템(200)은 사용자가 어떤 미디어 콘텐츠를 선택하기를 원하는지를 결정한다. 이어서, 문서 편집 서브시스템(200)은 선택된 미디어 콘텐츠의 포맷팅을 변경하여, 그가 선택되었음을 지시한다(예를 들어, 텍스트 상의 청색 배경). 문서 편집 서브시스템(200)은 사용자(102)에 의해 선택된 정확한 데이터를 나타내는 HTML 코드 또는 다른 코드의 런(run)이 되도록 잠재 전송 표면(130)의 콘텐츠를 설정한다. 문서 편집 서브시스템(200)은 잠재 전송 표면(130)의 콘텐츠를 지시하도록 문서(128) 내의 포커스를 프로그램에 의해 설정한다. 결과적으로, 사용자(102)가 복사 명령을 실행할 때, 시스템 클립보드(142)는 문서 편집 서브시스템(200)에 의해 생성되는 미디어 콘텐츠로 채워질 것이다.
도 2는 문서 편집 서브시스템(200)의 더 상세한 블록도를 나타낸다. 문서 편집 서브시스템(200)은 다수의 컴포넌트 및/또는 모듈을 포함할 수 있다. 도 2에 도시된 실시예에서, 문서 편집 서브시스템(200)은 편집 관리자 컴포넌트(220), 저장 컴포넌트(230) 및 입출력(I/O) 컴포넌트(240)를 포함할 수 있다. 컴포넌트들 및/또는 모듈들은 하드웨어 요소들, 소프트웨어 요소들 또는 하드웨어 요소들과 소프트웨어 요소들의 조합을 이용하여 구현될 수 있다. 도 2에 도시된 바와 같은 문서 편집 서브시스템(200)은 소정의 토폴로지에서 제한된 수의 요소들을 갖지만, 문서 편집 서브시스템(200)은 주어진 구현에 필요한 바에 따라 대안 토폴로지들에서 더 많거나 적은 요소들을 포함할 수 있다는 것을 알 수 있다.
편집 관리자 컴포넌트(220)는 이벤트 메시지 큐(222)에서 다양한 입력 이벤트 메시지들(202)을 수신하도록 배열될 수 있다. 이벤트 메시지 큐(222)는 이벤트 메시지들을 핸들링하기 위한 하나 이상의 큐를 포함할 수 있다. 일 실시예에서, 예를 들어, 이벤트 메시지 큐(222)는 상이한 우선 순위로 이벤트 메시지들을 핸들링할 수 있다. 이벤트 핸들링 모듈(146)은 이벤트 메시지 큐(222)를 이용하여, 다양한 이벤트 메시지들(202)을 처리하고 핸들링할 수 있다.
편집 관리자 컴포넌트(220)는 제어 논리(224)를 포함할 수 있다. 제어 논리(224)는 구성 정보(206)에 기초하여 편집 관리자 컴포넌트(220)의 동작들을 제어하도록 배열될 수 있다. 예를 들어, 제어 논리(224)는 다양한 입력 이벤트 메시지들(202)에 응답하여 다양한 입력 서브시스템들로부터 수신된 입력 데이터에 대해 다양한 동작들을 수행하기 위해 알고리즘, 논리 흐름 또는 상태 머신을 실행할 수 있다. 제어 논리(224)는 구성 정보(206)에 기초하여 입력 데이터를 처리할 수 있다. 제어 논리(224)는 또한 다양한 출력 이벤트 메시지(204)를 생성하고, 출력 이벤트 메시지들(204)을 이벤트 스케줄러 및 디스패처(226)로 전송할 수 있다.
편집 관리자 컴포넌트(220)는 이벤트 스케줄러 및 디스패처(226)를 포함할 수 있다. 이벤트 스케줄러 및 디스패처(226)는 다른 외부 엔티티들에 대한 이벤트들을 개시하고, 편집 관리자 컴포넌트(220) 내의 내부 이벤트들 및 메시지들을 전송하도록 배열될 수 있다. 예를 들어, 이벤트 스케줄러 및 디스패처(226)는 입력 이벤트 메시지들(202)에 응답하여 다양한 출력 이벤트 메시지들(204)을 시스템(100)의 다른 시스템들, 서브시스템들, 컴포넌트들 또는 모듈들로 전송할 수 있다.
일 실시예에서, 문서 편집 서브시스템(200)은 저장 컴포넌트(230)를 포함할 수 있다. 저장 컴포넌트(230)는 데이터 저장소들 및 편집 관리자 컴포넌트(220)에 대한 저장 동작들을 관리하기 위한 논리와 더불어 배열될 수 있다. 저장 컴포넌트(230)는 편집 관리자 컴포넌트(220)에 의해 사용되는 임시 또는 처리되지 않은 정보를 임시 데이터 저장소(232)에 저장할 수 있다. 예를 들어, 임시 또는 처리되지 않은 정보는 확장형 마크업 언어(XML), 이진 파일 또는 소정의 다른 포맷으로서 임시 데이터 저장소(232)에 저장될 수 있다. 저장 컴포넌트(230)는 편집 관리자 컴포넌트(220)에 의해 사용되는 영구 또는 처리된 정보를 영구 데이터 저장소(234)에 저장할 수 있다. 데이터 저장소들(232, 234)은 각각 개별 데이터 저장소들, 또는 저장 영역 네트워크(SAN)와 같은 더 큰 데이터 저장소 어레이의 일부를 포함하는 다수의 데이터 저장소를 포함할 수 있다. 더욱이, 저장 컴포넌트(230) 및 데이터 저장소들(232, 234)은 시스템 레이턴시 및 용량 파라미터들을 충족시키는 것이 필요한 경우에 적절한 데이터 버퍼링 및 캐싱 기술들 및 구조들을 구현할 수 있다. 저장 컴포넌트(230)는 또한 저장을 기록하고 검사하기 위한 동작들을 관리한다.
일 실시예에서, 문서 편집 서브시스템(200)은 I/O 컴포넌트(240)를 포함할 수 있다. I/O 컴포넌트(240)는 버퍼들, 및 문서 편집 서브시스템(200)을 통해 정보를 이동할 때의 전송 및 I/O 동작들을 관리하기 위한 로직과 더불어 배열될 수 있다. 예를 들어, I/O 컴포넌트(240)는 입력 서브시스템으로부터 입력 데이터(208)를 수신하고 저장하기 위한 하나 이상의 입력 데이터 버퍼(242)를 포함할 수 있다. 편집 관리자 컴포넌트(220)의 하나 이상의 모듈은 입력 데이터(208)를 처리하여, 처리된 데이터를 형성하고, 이를 하나 이상의 출력 데이터 버퍼(246)로 전송할 수 있다. 출력 데이터 버퍼들(246)은 출력 데이터를 저장하고 출력 서브시스템으로 전송하도록 배열될 수 있다. 데이터 관리자(244)가 데이터 수집 서비스들 및 데이터 배포 서비스들을 제어하고 관리하기 위한 로직 및 네트워크 인터페이스들(예를 들어, 웹 서비스 인터페이스들)을 구현할 수 있다. I/O 컴포넌트(240)는 입력 데이터(208) 및/또는 처리된 데이터를 하나의 포맷, 데이터 스키마 또는 프로토콜로부터 다른 포맷들, 데이터 스키마들 또는 프로토콜들로 변환하기 위한 하나 이상의 변환 버퍼(248)를 구현할 수 있다.
일반 동작에서, 문서 편집 서브시스템(200)은 컴퓨터(120)에 의해 실행되는 웹 브라우저(122)를 이용하여 애플리케이션 프로그램(140)에 대한 다양한 편집 특징들을 구현할 수 있다. 구체적으로, 문서 편집 서브시스템(200)은 잠재 전송 표면(130)을 이용하여 편집 특징들을 지원할 수 있다. 이것은 다수의 편집 모듈(228-1-p)을 이용하여 달성될 수 있다. 도 2에 도시된 실시예에서, 편집 모듈들(228-1-p)은 전송 표면 생성 모듈(228-1), 전송 제어 모듈(228-2) 및 미디어 콘텐츠 변환 모듈(228-3)을 포함할 수 있다. 특정 수의 편집 모듈들(228-1-p)이 도 2에 제한이 아니라 예로서 도시되지만, 주어진 구현에 필요한 바에 따라 다양한 세트의 혁신 시장 동작들을 위해 더 많거나 적은 모듈들이 구현될 수 있다는 것을 알 수 있다. 실시예들은 이와 관련하여 제한되지 않는다.
전송 표면 생성 모듈(228-1)은 일반적으로 잠재 전송 표면(130)을 생성하여 문서(128) 내에 내장하도록 동작할 수 있다. 잠재 전송 표면(130)은 문서 편집 서브시스템(200)이 미디어 콘텐츠를 웹 기반 애플리케이션 프로그램(140)으로 가져오고 그로부터 내보내는 것을 제어할 수 있게 하는 임시 저장 구조로서 사용될 수 있다. 잠재 전송 표면(130)은 애플리케이션 프로그램(140)에 의해 제어되지만, 애플리케이션 프로그램(140)의 사용자(102)에게 실제로는 보이지 않는 편집 가능한 프레임(예컨대, IFrame)이다. 잠재 전송 표면(130)은 사용자(102), 웹 브라우저(122), 애플리케이션 프로그램, 또는 소정의 다른 엔티티 또는 개체에 의해 발행되는 편집 명령들에 대한 중간 목적지 위치로서 동작한다.
전송 표면 생성 모듈(228-1)은 다양한 스테이지에서 잠재 전송 표면(130)을 생성할 수 있다. 예를 들어, 전송 표면 생성 모듈(228-1)은 사용자(102)가 애플리케이션 프로그램(140)을 개시할 때 잠재 전송 표면(130)을 생성할 수 있다. 다른 예에서, 전송 표면 생성 모듈(228-1)은 디스플레이 렌더러(124)가 브라우저 윈도우(106) 내에 문서(128)를 렌더링할 때 잠재 전송 표면(130)을 생성할 수 있다. 어느 경우에나, 애플리케이션 프로그램(140)은 잠재 전송 표면(130)의 생성시에 그에 대한 참조를 유지한다.
잠재 전송 표면(130)은 사용자(102)에게 제공하기 위해 디스플레이(104) 상의 브라우저 윈도우(106) 내에 문서(128)를 렌더링하기 위해 디스플레이 렌더러(124)에 의해 사용되는 주어진 마크업 언어와 함께 사용하기에 적합한 임의의 편집 가능 프레임을 포함할 수 있다. 일 실시예에서, 예를 들어, 잠재 전송 표면(130)은 많은 것 가운데 특히 HTML IFRAME 요소로서 구현될 수 있다. 게다가, 잠재 전송 표면은 숨겨지거나, 보이지 않으며, 따라서 사용자(102)는 브라우저 윈도우(106) 내에서 문서(128)를 보는 동안 편집 가능 프레임을 보거나 인식할 수 없다.
전송 제어 모듈(228-2)은 전송 표면 생성 모듈(228-1)에 통신 결합될 수 있다. 전송 제어 모듈(228-2)은 일반적으로 잠재 전송 표면(130)을 이용하여 문서 편집 서브시스템(200)에 대한 전송 동작들을 제어하도록 배열될 수 있다. 일 실시예에서, 예를 들어, 전송 제어 모듈(228-2)은 이벤트 핸들링 모듈(146)에 의해 인터셉트된 바와 같은 문서(128)에 대한 미디어 콘텐츠를 전송하기 위한 전송 요청을 수신할 수 있다. 이어서, 전송 제어 모듈(228-2)은 전송 요청에 응답하여 잠재 전송 표면(130)을 이용하여 미디어 콘텐츠의 전송을 조정할 수 있다. 전송 요청들의 예는 복사 전송 요청, 잘라내기 전송 요청, 붙여넣기 전송 요청, 붙여넣기 특수 전송 요청 등과 같은 임의의 적절한 편집 명령들을 포함할 수 있지만, 이에 제한되지 않는다.
전송 제어 모듈(228-2)은 복사 전송 요청 또는 잘라내기 전송 요청에 응답하여 미디어 콘텐츠를 문서(128)로부터 잠재 전송 표면(130)으로 전송하도록 동작할 수 있다. 전송 제어 모듈(228-2)은 문서 편집 서브시스템(200)에 대한 선택 및 복사 지원을 제공한다. 전송 제어 모듈(228-2)은 사용자(102)에 의한 키보드 및 마우스 액션들을 추적하고, 이들을 처리하여 문서(128) 내의 어떤 미디어 콘텐츠가 사용자(102)에 의해 선택되었는지를 결정한다. 이와 달리, 전통적인 웹 브라우저들은 통상적으로 웹 기반 애플리케이션 프로그램에 대한 콘텐츠를 선택한다. 그러나, 전송 제어 모듈(228-2)은 이 시점에서 개입하여, 사용자(102)가 문서(128) 상의 어느 개체들(텍스트, 이미지 등)을 선택하려고 시도하고 있는지에 대한 추적을 유지한다. 전송 제어 모듈(228-2)은 이것을 텍스트 상의 배경 컬러의 변경, 이미지 주위의 테두리의 강조 및 다른 적절한 그래픽 사용자 인터페이스(GUI) 기술들과 같은 소정의 인식 가능한 방식으로 사용자(102)에게 시각적으로 표시할 것이다.
거의 동시에, 전송 제어 모듈(228-2)은 선택된 미디어 콘텐츠를 잠재 전송 표면(130) 내에 렌더링할 것이다. 이것은 예를 들어 잠재 전송 표면(130) 내에 적절한 HTML 트리를 생성함으로써 달성될 수 있다. 이것은 애플리케이션 프로그램(140)이 타겟 엔드포인트에 의해 사용되는 현재의 포맷팅 특징들에 적합한 방식으로 미디어 콘텐츠를 렌더링하는 것을 가능하게 한다. 예컨대, 문서(128) 상의 선택이 테이블 내의 텍스트 런을 포함하는 것으로 가정한다. 타겟에 따라, 전송 제어 모듈(228-2)은 잠재 전송 표면(130) 내에 렌더링되는 미디어 콘텐츠의 일부로서 주변 테이블을 포함할지의 여부를 옵션으로서 선택할 수 있다. 예를 들어, 전송 제어 모듈(228-2)은 주변 테이블이 페이지 상의 요소들의 논리적 연관을 위해 사용될 때 주변 테이블을 포함하고, 레이아웃 목적으로만 사용될 때는 배제하고, 기타 등등일 수 있다.
전송 제어 모듈(228-2)이 잠재 전송 표면(130)에 의해 저장된 선택된 콘텐츠에 대한 렌더링을 결정하는 경우, 전송 제어 모듈(228-2)은 자바스크립트 코드 또는 소정의 다른 적절한 기술을 이용하여, 웹 브라우저(122)에 선택된 바와 같은 미디어 콘텐츠를 마킹하도록 지시할 수 있다. 시각적으로, 이러한 액션은 사용자(102)에 대해 숨겨진다. 오히려, 사용자(102)는 전술한 바와 같은 선택 지시의 시각적 요소들만을 볼 것이다. 이 시점에서, 사용자(102)는 우측 클릭 컨텍스트 메뉴, 브라우저 편집 메뉴 등을 이용하여, 키보드 숏컷을 누름으로써 복사 명령 또는 잘라내기 명령을 발행할지의 여부를 결정할 수 있다. 복사/잘라내기 명령을 발행할 때, 전송 제어 모듈(228-2)은 변환된 미디어 콘텐츠를 잠재 전송 표면(130)으로부터 시스템 클립보드(142)로 전송할 것이다. 이러한 방식으로, 전송 제어 모듈(228-2)은 웹 브라우저(122)에 의해 제공되는 편집 특징들로 제한되는 것이 아니라, 어떠한 미디어 콘텐츠가 시스템 클립보드(142)로 전달되는지를 정확하게 결정하는 데 사용될 수 있다.
전송 제어 모듈(228-2)은 붙여넣기 전송 요청에 응답하여 미디어 콘텐츠를 시스템 클립보드로부터 잠재 전송 표면(130)으로 전송하고, 임의의 변환된 미디어 콘텐츠를 잠재 전송 표면(130)으로부터 문서(128)로 전송하도록 동작할 수 있다. 전송 제어 모듈(228-2)은 문서 편집 서브시스템(200)에 대한 붙여넣기 및 필터링 지원을 제공한다. 웹 브라우저(122) 또는 독립형 애플리케이션 프로그램에서, 문서(128)에 대한 포커스는 임의의 주어진 시간에 하나의 장소에만 존재할 수 있다. 전술한 바와 같이, 전송 제어 모듈(228-2)은 복사 또는 잘라내기 동작들을 가능하게 하기 위해 잠재 전송 표면(130) 내에 포커스를 배치한다. 유사하게, 잠재 전송 표면(130)은 붙여넣기 및 붙여넣기 특수 동작들에 대한 타겟으로도 사용될 수 있다. 사용자가 붙여넣기 또는 붙여넣기 특수 명령을 발행할 때, 전송 제어 모듈(228-2)은 명시적인 통지 또는 잠재 전송 표면(130)의 콘텐츠의 주기적 검사에 의해 그러한 발생을 검출한다. 전송 제어 모듈(228-2)이 잠재 전송 표면(130) 내의 미디어 콘텐츠를 검출할 때, 전송 제어 모듈(228-2)은 미디오 콘텐츠 변환 모듈(228-3)에 대한 지령을 발행할 수 있다.
미디어 콘텐츠 변환 모듈(228-3)은 전송 제어 모듈(228-2)에 통신 결합될 수 있다. 미디어 콘텐츠 변환 모듈(228-3)은 일반적으로 잠재 전송 표면(130)에 의해 저장된 미디어 콘텐츠를 제1 포맷으로부터 제2 포맷으로 변환하도록 동작할 수 있다. 이것은 예를 들어 데이터 관리자(244) 및 변환 버퍼들(248)을 이용하여 달성될 수 있다.
잠재 전송 표면(130)은 문서(128)의 숨겨진 요소이므로, 사용자(102)는 처음에 편집 명령이 제공된 직후에 미디어 콘텐츠를 보지 못한다. 이것은 미디어 콘텐츠 변환 모듈(228-3)에 잠재 전송 표면 내의 미디어 콘텐츠를 소스 포맷으로부터 목적지 포맷으로 변형 또는 변환할 시간을 제공한다. 결과적으로, 애플리케이션 프로그램(140)은 붙여넣기/붙여넣기 특수 명령에 응답하여 문서(128)의 스타일 및 레이아웃 또는 문서(128)로부터 시스템 클립보드(142)로 전송되는 미디어 콘텐츠의 스타일 및 레이아웃에 대한 제어를 유지한다. 미디어 콘텐츠 변환 모듈(228-3)은 잠재 전송 표면(130) 내로 전송되는 미디어 콘텐츠를 분석하고, 미디어 콘텐츠를 미디어 콘텐츠가 표현하는 것의 적절한 데이터 표현으로 변환한다. 예를 들어, 텍스트가 잠재 전송 표면(130)으로 전송될 때, 텍스트 런 노드(TextRunNode)가 메모리 내에 생성된다. 붙여넣어진 미디어 콘텐츠 내의 텍스트가 굵은 텍스트(bold text)를 지시하는 HTML <B> 태그를 갖도록 포맷되는 경우, 미디어 콘텐츠 변환 모듈(228-3)은 텍스트 런 노드 상의 속성을, 텍스트가 굵게 렌더링된다는 것 등을 지시하도록 설정할 것이다. 이것은 일반적으로는 애플리케이션 프로그램(140)에 의해, 구체적으로는 문서 편집 서브시스템(200)에 의해 지원되는 모든 다양한 유형의 HTML 노드들에 대해 행해진다. 변환 동작이 완료되면, 미디어 콘텐츠 변환 모듈(228-3)은 전송 제어 모듈(228-2)에 통지하며, 이어서 전송 제어 모듈은 사용자(102)가 볼 수 있는 방식으로 새로 렌더링된 미디어 콘텐츠를 포함하도록 실제 문서(128)를 갱신한다.
문서 편집 서브시스템(200)은 편집 동작들의 중간에 개입함으로써 사용자(102) 및/또는 애플리케이션 프로그램(140)에 의해 요구되는 임의의 포맷팅을 적용할 기회를 제공한다. 예를 들어, 전송된 미디어 콘텐츠는 문서(128)에 대해 현재 구현된 디폴트 룩(look)에 매칭되도록, 원하지 않는 미디어 콘텐츠를 제거하도록, 기타 등등을 위해 변환될 수 있다. 이러한 방식으로, 애플리케이션 프로그램(140)은 문서(128)의 레이아웃 및 포맷팅에 대한 엄격한 제어를 유지할 수 있다.
도 3은 시스템(300)의 일 실시예를 나타낸다. 시스템(300)은 편집 명령을 실행할 때 수반되는 요소들의 일부 사이의 논리적 데이터 흐름을 나타낸다.
도 3에 도시된 바와 같이, 문서 편집 서브시스템(200)은 웹 브라우저(122)를 통해 사용자(102)로부터 선택된 콘텐츠(332)에 대한 복사 전송 요청(310)을 수신할 수 있다. 전송 제어 모듈(228-2)은 복사 전송 요청(310)을 수신하고, 선택된 콘텐츠(332)를 문서(128)로부터 잠재 전송 표면(130)으로 전송할 수 있다. 잠재 전송 표면(130)은 선택된 콘텐츠(332)를 임시 콘텐츠(334)로서 저장할 수 있다. 대안으로, 웹 브라우저(122)의 편집 제어들은 선택된 콘텐츠(332)를 선택하고 전송하는 데 사용될 수 있다. 이 경우에, 문서 편집 서브시스템(200)은 이벤트 핸들링 모듈(146)을 통해 웹 브라우저(122)로부터 제어 지령들을 인터셉트할 수 있다. 어느 경우에나, 전송 제어 모듈(228-2)은 잠재 전송 표면(130)이 변환될 준비가 된 미디어 콘텐츠를 갖고 있음을 검출할 수 있으며, 그에 따라 미디어 콘텐츠 변환 모듈(228-3)에 통지한다.
미디어 콘텐츠 변환 모듈(228-3)은 전송 제어 모듈(228-2)로부터 통지를 수신하고, 변환 동작들을 개시한다. 미디어 콘텐츠 변환 모듈(228-3)은 임시 콘텐츠(324)에 대한 적절한 포맷을 결정한다. 이것은 다수의 상이한 방식으로 달성될 수 있다. 예를 들어, 미디어 콘텐츠 변환 모듈(228-3)은 상이한 타겟 엔드포인트들에 대응하는 상이한 변환 모듈들을 저장할 수 있다. 미디어 콘텐츠 변환 모듈(228-3)은 임시 콘텐츠(334)에 대한 타겟 엔드포인트를 결정하고, 대응하는 변환 모듈을 검색하고, 검색된 변환 모듈을 이용하여 임시 콘텐츠(334)를 상이한 타겟 엔드포인트들에 적합한 상이한 포맷들로 변환할 수 있다. 이것은 미디어 콘텐츠가 다양한 엔드포인트를 목적지로 할 때 또는 레거시 시스템들에서 사용될 때 적절할 수 있다. 추가로 또는 대안으로, 미디어 콘텐츠 변환 모듈(228-3)은 임시 콘텐츠(334)를 모든 타겟 엔드포인트에 적합한 표준 또는 유니버설 포맷으로 변환할 수 있다. 이것은 미디어 콘텐츠가 동일 능력들을 갖는 엔드포인트들을 목적지로 할 때 적절할 수 있다. 미디어 콘텐츠 변환 모듈(228-3)은 변환 버퍼들(248)을 이용하여 변환 동작들을 지원할 수 있다.
변환 동작들이 완료되면, 미디어 콘텐츠 변환 모듈(228-3)은 전송 제어 모듈(228-2)에 통지한다. 전송 제어 모듈(228-2)은 변환된 미디어 콘텐츠를 시스템 클립보드(142)와 같은 타겟 엔드포인트로 전송한다. 이제, 시스템 클립보드(142)는 문서(128)로부터 처음 복사 또는 잘라내기될 때 선택된 콘텐츠(332)와 유사한 방식으로 저장된 콘텐츠(336)를 렌더링하도록 설계된 HTML 코드의 런과 같은 포맷으로, 저장된 콘텐츠(336)를 저장한다.
유사하게, 문서 편집 서브시스템(200)은 웹 브라우저(122)를 통해 사용자(102)로부터 저장된 콘텐츠(322)에 대한 붙여넣기 전송 요청(312)을 수신할 수 있다. 전송 제어 모듈(228-2)은 붙여넣기 전송 요청(312)을 수신하고, 저장된 콘텐츠(332)를 시스템 클립보드(142)로부터 잠재 전송 표면(130)으로 전송할 수 있다. 잠재 전송 표면(130)은 선택된 콘텐츠(332)를 임시 콘텐츠(324)로서 저장할 수 있다. 대안으로, 웹 브라우저(122)에 대한 편집 제어들은 저장된 콘텐츠(322)를 전송하는 데 사용될 수 있다. 이 경우에, 문서 편집 서브시스템(200)은 이벤트 핸들링 모듈(146)을 통해 웹 브라우저(122)로부터 제어 지령들을 인터셉트할 수 있다. 어느 경우에나, 전송 제어 모듈(228-2)은 잠재 전송 표면(130)이 변환될 준비가 된 미디어 콘텐츠를 갖고 있음을 검출할 수 있으며, 그에 따라 미디어 콘텐츠 변환 모듈(228-3)에 통지한다.
미디어 콘텐츠 변환 모듈(228-3)은 전송 제어 모듈(228-2)로부터 통지를 수신하고, 변환 동작들을 개시한다. 미디어 콘텐츠 변환 모듈(228-3)은 임시 콘텐츠(324)에 대한 적절한 포맷을 결정한다. 이것은 일부 예외는 있지만, 복사 전송 요청(310)과 관련하여 설명된 것들과 유사한 방식으로 달성될 수 있다. 그러나, 이 경우에 임시 콘텐츠(324)에 대한 타겟 엔드포인트는 문서(128)이므로, 미디어 콘텐츠 변환 모듈(228-3)은 저장된 콘텐츠(322)의 상이한 포맷들을 문서(128)에 의해 현재 사용되는 특정 포맷으로 변환할 수 있다. 이것은 다대다 유형의 포맷 변환 동작들이 아니라 다대일 유형의 포맷 변환 동작들을 유발할 수 있다.
변환 동작들이 완료되면, 미디어 콘텐츠 변환 모듈(228-3)은 전송 제어 모듈(228-2)에 통지한다. 전송 제어 모듈(228-2)은 변환된 미디어 콘텐츠를 문서(128)와 같은 타겟 엔드포인트로 전송한다. 이어서, 문서(128)는 문서(128)에 적합한 스타일 및 포맷으로, 붙여넣어진 콘텐츠(326)로서 사용자(102)에게 표시된다.
전술한 실시예들의 동작들은 하나 이상의 논리 흐름과 관련하여 더 설명될 수 있다. 제공되는 논리 흐름들은 달리 지시되지 않는 한, 제공되는 순서로 또는 임의의 특정 순서로 실행될 필요가 없다는 것을 알 수 있다. 더욱이, 논리 흐름들과 관련하여 설명되는 다양한 활동들은 직렬 또는 병렬 방식으로 실행될 수 있다. 논리 흐름들은 설명된 실시예들의 하나 이상의 하드웨어 요소 및/또는 소프트웨어 요소, 또는 주어진 세트의 설계 및 성능 제한들에 대해 요구되는 바와 같은 대안 요소들을 이용하여 구현될 수 있다. 예를 들어, 논리 흐름들은 논리 디바이스(예컨대, 범용 또는 특수 목적 컴퓨터)에 의해 실행하기 위한 논리(예컨대, 컴퓨터 프로그램 명령어들)로서 구현될 수 있다.
도 4는 논리 흐름(400)의 일 실시예를 나타낸다. 논리 흐름(400)은 여기에 설명되는 하나 이상의 실시예에 의해 실행되는 동작들의 일부 또는 전부를 나타낼 수 있다.
도 4에 도시된 실시예에서, 논리 흐름(400)은 블록 402에서 문서 내에 잠재 전송 표면을 내장할 수 있다. 예를 들어, 전송 표면 생성 모듈(228-1)은 잠재 전송 표면(130)을 생성하여 문서(128) 내에 내장할 수 있다. 이것은 애플리케이션 프로그램(140)의 개시 동안 또는 애플리케이션 프로그램(140)에 대한 새로운 문서의 생성 동안에 이루어질 수 있다. 전송 표면 생성 모듈(228-1)은 잠재 전송 표면(130)에 대한 참조를 생성하고, 이 참조를 전송 제어 모듈(228-2)로 전송할 수 있다.
논리 흐름(400)은 블록 404에서 문서에 대한 미디어 콘텐츠를 전송하기 위한 전송 요청을 수신할 수 있다. 예컨대, 전송 제어 모듈(228-2)은 문서(128)에 대한 미디어 콘텐츠(322, 332)를 문서(128), 시스템 클립보드(142) 또는 다른 엔드포인트들과 같은 타겟 엔드포인트로 전송하기 위한 전송 요청(310, 312)을 수신할 수 있다. 전송 제어 모듈(228-2)은 이벤트 핸들링 모듈(146)을 통해 웹 브라우저(122)로부터 전송 요청을 수신할 수 있다.
논리 흐름(400)은 블록 406에서 전송 요청에 응답하여 잠재 전송 표면을 이용하여 미디어 콘텐츠를 전송할 수 있다. 예를 들어, 전송 제어 모듈(228-2)은 전송 요청(310, 312)에 응답하여 잠재 전송 표면(130)을 이용하여 미디어 콘텐츠(322, 332)를 전송할 수 있다. 많은 경우에, 미디어 콘텐츠(322, 332)는 타겟 엔드포인트(128, 142)에 적합한 포맷을 갖는 변환된 미디어 콘텐츠(324, 344)를 포함할 수 있다.
도 5는 컴퓨터(120), 서버 컴퓨터(162) 등과 같이 다양한 실시예를 구현하는 데 적합한 컴퓨팅 아키텍처(510)의 더 상세한 블록도를 나타낸다. 기본 구성에서, 통상적으로 컴퓨팅 아키텍처(510)는 적어도 하나의 처리 장치(532) 및 메모리(534)를 포함한다. 메모리(534)는 휘발성 및 비휘발성 메모리를 포함하는, 데이터를 저장할 수 있는 임의의 기계 판독가능 또는 컴퓨터 판독가능 매체들을 이용하여 구현될 수 있다. 예를 들어, 메모리(534)는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 동적 RAM(DRAM), 더블 데이터 레이트 DRAM(DDRAM), 동기 DRAM(SDRAM), 정적 RAM(SRAM), 프로그래밍 가능한 ROM(PROM), 소거 가능하고 프로그래밍 가능한 ROM(EPROM), 전기적으로 소거 가능하고 프로그래밍 가능한 ROM(EEPROM), 플래시 메모리, 강유전체 폴리머 메모리와 같은 폴리머 메모리, 오보닉 메모리, 상변화 또는 강유전체 메모리, 실리콘-산화물-질화물-산화물-실리콘(SONOS) 메모리, 자기 또는 광학 카드, 또는 정보를 저장하는 데 적합한 임의의 다른 유형의 매체들을 포함할 수 있다. 도 5에 도시된 바와 같이, 메모리(534)는 하나 이상의 소프트웨어 프로그램(536-1-t) 및 관련 데이터와 같은 다양한 소프트웨어 프로그램들을 저장할 수 있다. 구현에 따라, 소프트웨어 프로그램들(536-1-t)의 예는 시스템 프로그램(536-1)(예를 들어, 운영 체제), 애플리케이션 프로그램(536-2)(예를 들어, 웹 브라우저(122), 애플리케이션 프로그램(140) 등), 문서 편집 서브시스템(200) 등을 포함할 수 있다.
컴퓨팅 아키텍처(510)는 또한 그의 기본 구성을 넘는 추가 특징들 및/또는 기능을 가질 수 있다. 예를 들어, 컴퓨팅 아키텍처(510)는 이동식 저장소(538) 및 비이동식 저장소(540)를 포함할 수 있으며, 이들은 또한 전술한 바와 같은 다양한 유형의 기계 판독가능 또는 컴퓨터 판독가능 매체들을 포함할 수 있다. 컴퓨팅 아키텍처(510)는 또한 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스, 측정 디바이스, 센서 등과 같은 하나 이상의 입력 디바이스(544)를 구비할 수 있다. 컴퓨팅 아키텍처(510)는 또한 디스플레이, 스피커, 프린터 등과 같은 하나 이상의 출력 디바이스(542)를 포함할 수 있다.
컴퓨팅 아키텍처(510)는 컴퓨팅 아키텍처(510)가 다른 디바이스들과 통신하는 것을 가능하게 하는 하나 이상의 통신 접속(546)을 더 포함할 수 있다. 통신 접속들(546)은 예를 들어 통신 컴포넌트들(116-1-v)에 대한 통신 인터페이스들을 나타낼 수 있다. 통신 접속들(546)은 하나 이상의 통신 인터페이스, 네트워크 인터페이스, 네트워크 인터페이스 카드(NIC), 라디오, 무선 송신기/수신기(송수신기), 유선 및/또는 무선 통신 매체, 물리적 커넥터 등과 같은 다양한 유형의 표준 통신 요소들을 포함할 수 있다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 구현하고 임의의 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시칸 신호를 의미한다. 예로서, 통신 매체는 유선 통신 매체 및 무선 통신 매체를 포함하지만, 이에 제한되는 것은 아니다. 유선 통신 매체들의 예는 와이어, 케이블, 금속 도선, 인쇄 회로 기판(PCB), 백플레인, 스위치 패브릭, 반도체 재료, 트위스트 쌍 와이어, 동축 케이블, 광섬유, 전파 신호 등을 포함할 수 있다. 무선 통신 매체들의 예는 음향, 무선 주파수(RF) 스펙트럼, 적외선 및 다른 무선 매체들을 포함할 수 있다. 본 명세서에서 사용되는 바와 같은 기계 판독가능 매체 및 컴퓨터 판독가능 매체라는 용어들은 저장 매체들 및 통신 매체들 양자를 포함하는 것을 의도한다.
도 6은 논리 흐름(400)을 포함하는, 다양한 실시예들에 대한 논리를 저장하는 데 적합한 제조물(600)의 도면을 나타낸다. 도시된 바와 같이, 제조물(600)은 논리(604)를 저장하기 위한 저장 매체(602)를 포함할 수 있다. 저장 매체(602)의 예는 휘발성 메모리 또는 비휘발성 메모리, 이동식 또는 비이동식 메모리, 소거 가능 또는 소거 불가 메모리, 기록 가능 또는 재기록 가능 메모리 등을 포함하는, 전자 데이터를 저장할 수 있는 하나 이상의 유형의 컴퓨터 판독가능 저장 매체들을 포함할 수 있다. 논리(604)의 예는 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 기계 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메소드, 절차, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심벌 또는 이들의 임의 조합과 같은 다양한 소프트웨어 요소를 포함할 수 있다.
일 실시예에서, 예를 들어, 제조물(600) 및/또는 컴퓨터 판독가능 저장 매체(602)는, 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 설명되는 실시예들에 따르는 방법들 및/또는 동작들을 수행하게 하는 실행가능한 컴퓨터 프로그램 명령어들을 포함하는 논리(604)를 저장할 수 있다. 실행가능한 컴퓨터 프로그램 명령어들은 소스 코드, 컴파일된 코드, 해석된 코드, 실행가능 코드, 정적 코드, 동적 코드 등과 같은 임의의 적절한 유형의 코드를 포함할 수 있다. 실행가능한 컴퓨터 프로그램 명령어들은 컴퓨터에 소정의 기능을 수행하도록 지시하기 위한 소정의 컴퓨터 언어, 방법 또는 신택스에 따라 구현될 수 있다. 명령어들은 C, C++, 자바, BASIC, Perl, Matlab, 파스칼, 비주얼 BASIC, 어셈블리 언더 등과 같은 임의의 적절한 고레벨, 저레벨, 개체 지향, 비주얼, 컴파일된 및/또는 해석된 프로그래밍 언어를 이용하여 구현될 수 있다.
다양한 실시예들은 하드웨어 요소들, 소프트웨어 요소들 또는 이들의 조합을 이용하여 구현될 수 있다. 하드웨어 요소들의 예는 논리 디바이스에 대해 앞에서 제공된 바와 같은, 그리고 마이크로프로세서, 회로, 회로 요소(예를 들어, 트랜지스터, 저항기, 커패시터, 인덕터 등), 집적 회로, 논리 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩셋 등을 더 포함하는 임의의 예들을 포함할 수 있다. 소프트웨어 요소들의 예는 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 기계 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메소드, 절차, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심벌 또는 이들의 임의 조합을 포함할 수 있다. 실시예가 하드웨어 요소들 및/또는 소프트웨어 요소들을 이용하여 구현되는지에 대한 결정은 주어진 구현에 필요한 바에 따라 원하는 계산 속도, 전력 레벨, 열 허용 한계, 처리 사이클 예산, 입력 데이터 레이트, 출력 데이터 레이트, 메모리 자원, 데이터 버스 속도 및 다른 설계 또는 성능 제한과 같은 임의 수의 인자들에 따라 다를 수 있다.
일부 실시예들은 "결합된" 및 "접속된"이라는 표현 및 이들의 파생물들을 이용하여 설명될 수 있다. 이러한 용어들은 서로에 대한 동의어를 반드시 의도하지는 않는다. 예를 들어, 일부 실시예들은 둘 이상의 요소가 서로 물리적 또는 전기적으로 직접 접촉하는 것을 지시하기 위해 "접속된" 및/또는 "결합된"이라는 용어들을 사용하여 설명될 수 있다. 그러나, "결합된"이라는 용어는 둘 이상의 요소가 서로 직접 접촉하는 것은 아니지만, 여전히 서로 협력하거나 상호작용한다는 것을 의미할 수도 있다.
요약서는 독자가 기술 명세서의 특성을 빠르게 확인하게 하는 요약서를 요구하는 37 C.F.R. 섹션 1.72(b)에 따라 제공된다는 점을 강조한다. 요약서는 청구항들의 범위 또는 의미를 해석하거나 제한하는 데 사용되지 않을 것이라는 이해와 함께 제출된다. 게다가, 위의 상세한 설명에서, 개시의 간략화를 위해 다양한 특징들이 단일 실시예 내에 함께 그룹화된다는 것을 알 수 있다. 이러한 개시 방법은 청구되는 실시예들이 각각의 청구항에 명시적으로 기재된 것보다 많은 특징을 필요로 한다는 의도를 반영하는 것으로 해석되지 않아야 한다. 오히려, 아래의 청구항들이 보여주듯이, 본 발명은 개시되는 단일 실시예의 모든 특징들보다 적은 특징들에 존재한다. 따라서, 아래의 청구항들은 상세한 설명에 포함되며, 각각의 청구항은 개별 실시예로서 그 자신에 의거한다. 첨부된 청구항들에서, "including" 및 "in which"라는 용어는 각각 "comprising" 및 "wherein"이라는 용어의 평문 등가물로서 사용된다. 더욱이, "제1", "제2", "제3" 등의 용어는 단지 라벨로서 사용되며, 그들의 목적어들에 대한 수치적 요구들을 부과하는 것을 의도하지 않는다.
본 발명은 구조적 특징들 및/또는 방법 단계들에 고유한 언어로 설명되었지만, 첨부된 청구항들에 정의된 발명은 전술한 특정 특징들 또는 단계들로 제한되는 것은 아니라는 것을 이해해야 한다. 오히려, 전술한 특정 특징들 및 단계들은 청구항들을 구현하는 예시적인 형태들로서 개시된다.

Claims (15)

  1. 문서(128) 내에 잠재 전송 표면(130)을 내장하는 단계(402);
    상기 문서에 대한 미디어 콘텐츠를 전송하기 위한 전송 요청(310, 312)을 수신하는 단계(404); 및
    상기 전송 요청에 응답하여 상기 잠재 전송 표면을 이용하여 상기 미디어 콘텐츠를 전송하는 단계(406)
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 전송 요청을 완료하기 전에 중간 데이터 변환 동작들을 위해 상기 미디어 콘텐츠를 상기 잠재 전송 표면으로 전송하는 단계를 포함하는 방법.
  3. 제1항 또는 제2항에 있어서, 상기 잠재 전송 표면에 의해 저장된 상기 미디어 콘텐츠를 제1 포맷으로부터 제2 포맷으로 변환하는 단계를 포함하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 미디어 콘텐츠를 상기 문서로부터 시스템 클립보드(142)로 복사하라는 복사 전송 요청, 또는 상기 미디어 콘텐츠를 상기 문서로부터 시스템 클립보드(142)로 이동시키라는 잘라내기(cut) 전송 요청을 수신하는 단계를 포함하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 복사 전송 요청 또는 잘라내기 전송 요청에 응답하여 상기 미디어 콘텐츠를 상기 문서로부터 상기 잠재 전송 표면으로 전송하는 단계를 포함하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 변환된 미디어 콘텐츠를 상기 잠재 전송 표면으로부터 시스템 클립보드(142)로 전송하는 단계를 포함하는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 미디어 콘텐츠를 시스템 클립보드(142)로부터 상기 문서에 붙이라는 붙여넣기(paste) 전송 요청을 수신하는 단계를 포함하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 붙여넣기 전송 요청에 응답하여 상기 미디어 콘텐츠를 시스템 클립보드(142)로부터 상기 잠재 전송 표면으로 전송하는 단계를 포함하는 방법.
  9. 실행시에 시스템이 제1항 내지 제8항 중 어느 한 항의 방법을 구현하는 것을 가능하게 하는 명령어들을 갖는 머신 또는 컴퓨터 판독가능 저장 매체를 포함하는 물품.
  10. 문서(128)에 대한 편집 동작들을 관리하도록 동작하는 문서 편집 서브시스템(200)을 포함하고,
    상기 문서 편집 서브시스템은,
    상기 문서 내에 잠재 전송 표면(130)을 내장하도록 동작하는 전송 표면 생성 모듈(228-1); 및
    상기 전송 표면 생성 모듈에 통신으로 결합된 전송 제어 모듈(228-2)
    을 포함하고,
    상기 전송 제어 모듈은 상기 문서에 대한 미디어 콘텐츠를 전송하기 위한 전송 요청(310, 312)을 수신하고, 상기 전송 요청에 응답하여 상기 잠재 전송 표면을 이용하여 상기 미디어 콘텐츠를 전송하도록 동작하는 장치.
  11. 제10항에 있어서, 상기 전송 제어 모듈은 상기 전송 요청을 완료하기 전에 중간 데이터 변환 동작들을 위해 상기 미디어 콘텐츠를 상기 잠재 전송 표면으로 전송하도록 동작하는 장치.
  12. 제10항 또는 제11항에 있어서, 상기 전송 제어 모듈에 통신으로 결합된 미디어 콘텐츠 변환 모듈(228-3)을 포함하고, 상기 미디어 콘텐츠 변환 모듈은 상기 잠재 전송 표면에 의해 저장된 상기 미디어 콘텐츠를 제1 포맷으로부터 제2 포맷으로 변환하도록 동작하는 장치.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서, 상기 전송 제어 모듈은 복사 전송 요청 또는 잘라내기 전송 요청에 응답하여 상기 미디어 콘텐츠를 상기 문서로부터 상기 잠재 전송 표면으로 전송하고, 변환된 미디어 콘텐츠를 상기 잠재 전송 표면으로부터 시스템 클립보드(142)로 전송하도록 동작하는 장치.
  14. 제10항 내지 제13항 중 어느 한 항에 있어서, 상기 전송 제어 모듈은 붙여넣기 전송 요청에 응답하여 상기 미디어 콘텐츠를 시스템 클립보드(142)로부터 상기 잠재 전송 표면으로 전송하고, 변환된 미디어 콘텐츠를 상기 잠재 전송 표면으로부터 상기 문서로 전송하도록 동작하는 장치.
  15. 제10항 내지 제14항 중 어느 한 항에 있어서, 웹 브라우저(122)를 구비하는 클라이언트 디바이스(120)를 포함하고, 상기 클라이언트 디바이스는 상기 웹 브라우저를 이용하여 네트워크(160)를 통해 서버(162)로부터 애플리케이션 프로그램(140)을 검색하고, 상기 클라이언트 디바이스에서 상기 애플리케이션 프로그램을 실행하여, 웹 브라우저 윈도우를 이용하여 상기 문서를 제공하며, 상기 문서 편집 서브시스템을 이용하여 상기 문서를 편집하는 장치.
KR1020107023870A 2008-04-28 2009-04-03 잠재 전송 표면을 이용하는 문서 수정 방법 및 장치 KR101782163B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/110,351 US9507651B2 (en) 2008-04-28 2008-04-28 Techniques to modify a document using a latent transfer surface
US12/110,351 2008-04-28
PCT/US2009/039388 WO2009134583A2 (en) 2008-04-28 2009-04-03 Techniques to modify a document using a latent transfer surface

Publications (2)

Publication Number Publication Date
KR20100135844A true KR20100135844A (ko) 2010-12-27
KR101782163B1 KR101782163B1 (ko) 2017-10-23

Family

ID=41216269

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107023870A KR101782163B1 (ko) 2008-04-28 2009-04-03 잠재 전송 표면을 이용하는 문서 수정 방법 및 장치

Country Status (15)

Country Link
US (3) US9507651B2 (ko)
EP (1) EP2269146B1 (ko)
JP (1) JP5550636B2 (ko)
KR (1) KR101782163B1 (ko)
CN (1) CN102016833B (ko)
AU (1) AU2009241481B2 (ko)
BR (1) BRPI0909213B1 (ko)
CA (1) CA2718119C (ko)
ES (1) ES2616659T3 (ko)
IL (1) IL208050A0 (ko)
MX (1) MX2010011403A (ko)
RU (1) RU2507573C2 (ko)
SG (1) SG190604A1 (ko)
WO (1) WO2009134583A2 (ko)
ZA (1) ZA201006414B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018008861A1 (ko) * 2016-07-07 2018-01-11 라온위즈기술 주식회사 사용자 서버를 이용한 html 제어 시스템 및 방법

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9507651B2 (en) * 2008-04-28 2016-11-29 Microsoft Technology Licensing, Llc Techniques to modify a document using a latent transfer surface
US8656290B1 (en) * 2009-01-08 2014-02-18 Google Inc. Realtime synchronized document editing by multiple users
US8639762B2 (en) 2009-03-23 2014-01-28 Google Inc. Providing access to a conversation in a hosted conversation system
US9602444B2 (en) 2009-05-28 2017-03-21 Google Inc. Participant suggestion system
US9021386B1 (en) 2009-05-28 2015-04-28 Google Inc. Enhanced user interface scrolling system
US8527602B1 (en) 2009-05-28 2013-09-03 Google Inc. Content upload system with preview and user demand based upload prioritization
US8171390B1 (en) * 2009-10-22 2012-05-01 Intuit Inc. Method and system for viewing and transferring data between documents
US9135312B2 (en) 2009-11-02 2015-09-15 Google Inc. Timeslider
US8555187B2 (en) * 2010-02-16 2013-10-08 Google Inc. Server-based data sharing in computer applications using a clipboard
US8510399B1 (en) 2010-05-18 2013-08-13 Google Inc. Automated participants for hosted conversations
US9380011B2 (en) 2010-05-28 2016-06-28 Google Inc. Participant-specific markup
US9026935B1 (en) 2010-05-28 2015-05-05 Google Inc. Application user interface with an interactive overlay
CN106202021A (zh) 2010-11-02 2016-12-07 谷歌公司 由多个用户对博客的实时同步文档编辑
US11611595B2 (en) 2011-05-06 2023-03-21 David H. Sitrick Systems and methodologies providing collaboration among a plurality of computing appliances, utilizing a plurality of areas of memory to store user input as associated with an associated computing appliance providing the input
US10402485B2 (en) 2011-05-06 2019-09-03 David H. Sitrick Systems and methodologies providing controlled collaboration among a plurality of users
US9372833B2 (en) * 2012-09-14 2016-06-21 David H. Sitrick Systems and methodologies for document processing and interacting with a user, providing storing of events representative of document edits relative to a document; selection of a selected set of document edits; generating presentation data responsive to said selected set of documents edits and the stored events; and providing a display presentation responsive to the presentation data
US10095663B2 (en) 2012-11-14 2018-10-09 Amazon Technologies, Inc. Delivery and display of page previews during page retrieval events
US9898520B2 (en) * 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US11169666B1 (en) 2014-05-22 2021-11-09 Amazon Technologies, Inc. Distributed content browsing system using transferred hardware-independent graphics commands
US9454515B1 (en) 2014-06-17 2016-09-27 Amazon Technologies, Inc. Content browser system using graphics commands and native text intelligence
US10318618B2 (en) * 2014-06-18 2019-06-11 Microsoft Technology Licensing, Llc Consistent views of partitioned data in eventually consistent systems
US10491685B2 (en) * 2015-03-31 2019-11-26 Microsoft Technology Licensing, Llc Session transfer between resources
RU2618945C1 (ru) * 2015-12-07 2017-05-11 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Устройство для идентификации типов научных построений
RU2642409C1 (ru) * 2016-09-28 2018-01-24 Общество с ограниченной ответственностью "Аби Девелопмент" Редактирование текста на изображении документа
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
CN107943772A (zh) * 2017-11-15 2018-04-20 江苏神州信源系统工程有限公司 文档远程编辑方法及装置
CN110019279B (zh) * 2019-04-11 2020-12-04 北京字节跳动网络技术有限公司 在线文档的协同更新方法、装置、设备及存储介质
US11256855B2 (en) * 2019-08-09 2022-02-22 Zave IP, LLC Systems and methods for collation of digital content
CN112783666A (zh) * 2019-11-08 2021-05-11 珠海金山办公软件有限公司 一种电子文档中剪贴板内容编辑方法、装置和存储介质
US11611629B2 (en) * 2020-05-13 2023-03-21 Microsoft Technology Licensing, Llc Inline frame monitoring
CN112991160B (zh) * 2021-05-07 2021-08-20 腾讯科技(深圳)有限公司 图像处理方法、装置、计算机设备及存储介质

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604858A (en) 1992-08-10 1997-02-18 International Business Machines Corporation Method and system for apparent direct editing of fixed display elements within a data processing system
US5386564A (en) 1993-02-24 1995-01-31 Hewlett-Packard Company Conversion of data and objects across classes in an object management system
US5581670A (en) 1993-07-21 1996-12-03 Xerox Corporation User interface having movable sheet with click-through tools
CA2124624C (en) 1993-07-21 1999-07-13 Eric A. Bier User interface having click-through tools that can be composed with other tools
EP0717354B1 (en) 1994-12-13 2007-08-22 Microsoft Corporation Data transfer with expanded clipboard formats
US5870552A (en) 1995-03-28 1999-02-09 America Online, Inc. Method and apparatus for publishing hypermedia documents over wide area networks
AUPO525497A0 (en) 1997-02-21 1997-03-20 Mills, Dudley John Network-based classified information systems
US6278678B1 (en) 1999-02-12 2001-08-21 Sony Corporation Editing apparatus, editing method, and recording medium
JP2000339312A (ja) 1999-05-31 2000-12-08 Toshiba Corp 文書編集システム及びタグ情報管理テーブル作成方法
US7124360B1 (en) 1999-08-04 2006-10-17 William Drenttel Method and system for computer screen layout based on a recombinant geometric modular structure
CA2408313A1 (en) 2000-06-21 2001-12-27 Microsoft Corporation System and method for integrating spreadsheets and word processing tables
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7117435B1 (en) 2000-06-21 2006-10-03 Microsoft Corporation Spreadsheet fields in text
US7259753B2 (en) 2000-06-21 2007-08-21 Microsoft Corporation Classifying, anchoring, and transforming ink
US6662186B1 (en) 2000-07-14 2003-12-09 Hewlett-Packard Development Company, L.P. System and method for a data propagation file format
US6948134B2 (en) 2000-07-21 2005-09-20 Microsoft Corporation Integrated method for creating a refreshable Web Query
US7103838B1 (en) 2000-08-18 2006-09-05 Firstrain, Inc. Method and apparatus for extracting relevant data
US20020069204A1 (en) 2000-09-28 2002-06-06 Roger Kahn System and method for in-context editing
US6941507B2 (en) 2000-11-10 2005-09-06 Microsoft Corporation Insertion point bungee space tool
US7191405B1 (en) 2000-11-22 2007-03-13 Adobe Systems Incorporated System and method for editing information
JP3943830B2 (ja) 2000-12-18 2007-07-11 株式会社東芝 文書合成方法および文書合成装置
US7120868B2 (en) 2002-05-30 2006-10-10 Microsoft Corp. System and method for adaptive document layout via manifold content
US20020099717A1 (en) * 2001-01-24 2002-07-25 Gordon Bennett Method for report generation in an on-line transcription system
TWI251751B (en) * 2001-02-27 2006-03-21 Ibm Method and system in an electronic spreadsheet for handling graphical objects referring to working ranges of cells in a copy/cut and paste operation
US20070028166A1 (en) 2002-04-10 2007-02-01 Allen Hundhausen System and processes for dynamic document construction
US7260771B2 (en) 2001-04-26 2007-08-21 Fuji Xerox Co., Ltd. Internet-based system for multimedia meeting minutes
US20040205488A1 (en) 2001-11-27 2004-10-14 Fry Randolph Allan Active web page for editing with any browser
US7698636B2 (en) 2002-06-13 2010-04-13 Microsoft Corporation System and method for in-context editing of components
US7340673B2 (en) 2002-08-29 2008-03-04 Vistaprint Technologies Limited System and method for browser document editing
US7539940B2 (en) 2002-10-09 2009-05-26 Microsoft Corporation System and method for converting between text formatting or markup language formatting and outline structure
US7000184B2 (en) 2003-01-24 2006-02-14 The Cobalt Group, Inc. Remote web site editing in a standard web browser without external software
US6986105B2 (en) 2003-01-30 2006-01-10 Vista Print Limited Methods employing multiple clipboards for storing and pasting textbook components
US20040202352A1 (en) 2003-04-10 2004-10-14 International Business Machines Corporation Enhanced readability with flowed bitmaps
US7496230B2 (en) * 2003-06-05 2009-02-24 International Business Machines Corporation System and method for automatic natural language translation of embedded text regions in images during information transfer
KR20060023964A (ko) * 2003-06-13 2006-03-15 인터내셔널 비지네스 머신즈 코포레이션 정보 공유 방법, 컴퓨터 프로그램, 컴퓨터 판독 가능한매체를 포함하는 프로그램 제품, 정보 공유 시스템 및데이터 처리 개체
US7890852B2 (en) 2003-06-26 2011-02-15 International Business Machines Corporation Rich text handling for a web application
US7478336B2 (en) 2003-11-06 2009-01-13 International Business Machines Corporation Intermediate viewer for transferring information elements via a transfer buffer to a plurality of sets of destinations
JP2005149061A (ja) 2003-11-14 2005-06-09 Ricoh Co Ltd 情報処理システム、プログラム、及び記憶媒体
US7200816B2 (en) 2004-01-21 2007-04-03 Altova, Gmbh Method and system for automating creation of multiple stylesheet formats using an integrated visual design environment
WO2005091904A2 (en) 2004-03-04 2005-10-06 Mathsoft Engineering & Education, Inc. A method for automatically enabling traceability of engineering calculations
US7278092B2 (en) 2004-04-28 2007-10-02 Amplify, Llc System, method and apparatus for selecting, displaying, managing, tracking and transferring access to content of web pages and other sources
US20050262439A1 (en) 2004-05-20 2005-11-24 Neil Cameron Automatic web publishing
US7574048B2 (en) 2004-09-03 2009-08-11 Microsoft Corporation Freeform digital ink annotation recognition
US7509345B2 (en) 2004-09-29 2009-03-24 Microsoft Corporation Method and system for persisting and managing computer program clippings
JP4197313B2 (ja) 2004-10-15 2008-12-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 文章編集方法、文章編集方法を実行するプログラム、及び文章編集システム
US20060101139A1 (en) * 2004-11-08 2006-05-11 International Business Machines Corporation Real-time alerts within a web browser
US20060277460A1 (en) 2005-06-03 2006-12-07 Scott Forstall Webview applications
US7554576B2 (en) 2005-06-20 2009-06-30 Ricoh Company, Ltd. Information capture and recording system for controlling capture devices
US20070150477A1 (en) 2005-12-22 2007-06-28 International Business Machines Corporation Validating a uniform resource locator ('URL') in a document
US7793231B2 (en) 2006-01-19 2010-09-07 International Business Machines Corporation Method and system for providing a primary window overlay
US8930812B2 (en) * 2006-02-17 2015-01-06 Vmware, Inc. System and method for embedding, editing, saving, and restoring objects within a browser window
CN101038650B (zh) 2006-03-16 2012-06-27 印魔网股份有限公司 网络线上即时印刷服务系统与方法以及编辑器
US20070288859A1 (en) 2006-06-07 2007-12-13 Siemens Communications, Inc. Method and apparatus for selective forwarding of e-mail and document content
US7865905B2 (en) * 2006-09-11 2011-01-04 International Business Machines Corporation Context-exchange mechanism for accumulating and propagating contextual information between applications
US8370732B2 (en) * 2006-10-20 2013-02-05 Mixpo Portfolio Broadcasting, Inc. Peer-to-portal media broadcasting
US7936472B2 (en) * 2006-11-15 2011-05-03 Sharp Laboratories Of America, Inc. Driverless image printing
US20080209311A1 (en) 2006-12-29 2008-08-28 Alex Agronik On-line digital image editing with wysiwyg transparency
US20080177623A1 (en) * 2007-01-24 2008-07-24 Juergen Fritsch Monitoring User Interactions With A Document Editing System
US9128784B2 (en) * 2007-05-08 2015-09-08 At&T Intellectual Property I, L.P. Data transfer using a network clipboard
US8555200B2 (en) * 2007-08-21 2013-10-08 Wetpaint.Com, Inc. Representing editable attributes of embedded content
US8266524B2 (en) 2008-02-25 2012-09-11 Microsoft Corporation Editing a document using a transitory editing surface
US9507651B2 (en) * 2008-04-28 2016-11-29 Microsoft Technology Licensing, Llc Techniques to modify a document using a latent transfer surface
JP2011095394A (ja) 2009-10-28 2011-05-12 Sharp Corp 現像装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018008861A1 (ko) * 2016-07-07 2018-01-11 라온위즈기술 주식회사 사용자 서버를 이용한 html 제어 시스템 및 방법

Also Published As

Publication number Publication date
AU2009241481A1 (en) 2009-11-05
US20090271806A1 (en) 2009-10-29
JP2011524033A (ja) 2011-08-25
ES2616659T3 (es) 2017-06-13
JP5550636B2 (ja) 2014-07-16
BRPI0909213B1 (pt) 2020-04-14
IL208050A0 (en) 2010-12-30
WO2009134583A2 (en) 2009-11-05
EP2269146B1 (en) 2016-11-23
AU2009241481A8 (en) 2011-06-09
US9921892B2 (en) 2018-03-20
US10152362B2 (en) 2018-12-11
SG190604A1 (en) 2013-06-28
US20170199773A1 (en) 2017-07-13
CN102016833A (zh) 2011-04-13
US9507651B2 (en) 2016-11-29
AU2009241481B2 (en) 2014-06-05
EP2269146A2 (en) 2011-01-05
RU2507573C2 (ru) 2014-02-20
CA2718119C (en) 2017-01-17
CA2718119A1 (en) 2009-11-05
BRPI0909213A2 (pt) 2015-10-20
CN102016833B (zh) 2013-08-14
RU2010144041A (ru) 2012-05-10
WO2009134583A3 (en) 2010-01-07
WO2009134583A8 (en) 2010-09-10
MX2010011403A (es) 2010-11-26
BRPI0909213A8 (pt) 2019-02-12
ZA201006414B (en) 2011-12-28
EP2269146A4 (en) 2013-04-10
US20180196704A1 (en) 2018-07-12
KR101782163B1 (ko) 2017-10-23

Similar Documents

Publication Publication Date Title
US10152362B2 (en) Techniques to modify a document using a latent transfer surface
CN107832045B (zh) 跨编程语言接口转换的方法和装置
US8161498B2 (en) Providing globalization functionalities for javascript applications
US8572494B2 (en) Framework for development and customization of web services deployment descriptors
US8375285B2 (en) Enabling access to data files unsupported by a computing device
US10207190B2 (en) Technologies for native game experience in web rendering engine
US20070174420A1 (en) Caching of web service requests
US9733925B2 (en) Web content management using predetermined project templates
US9122762B2 (en) Method and system to maintain a web page
US20150154181A1 (en) Translatable Texts Identification in In-Context Localization Utilizing Pseudo-Language and External Server
US20070180148A1 (en) Method and apparatus for creating scalable hi-fidelity HTML forms
JP2004527844A (ja) 視聴覚障害を有するユーザのアクセシビリティを向上させるためのhtml文書におけるアクティブaltタグ
WO2011101246A1 (en) Metadata capture for screen sharing
JP5039946B2 (ja) クライアント装置およびサーバ装置の間の通信を中継する技術
US20120216132A1 (en) Embedding User Selected Content In A Web Browser Display
US10915599B2 (en) System and method for producing transferable, modular web pages
CN111913703B (zh) 对象编辑方法、装置、电子设备及可读存储介质
JP2012014510A (ja) アプリケーション実行装置及びプログラム
US20120278427A1 (en) Method for transmitting information between multiple electronic pages
KR20140094429A (ko) 데이터를 공유하는 방법 및 전자 디바이스

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
N231 Notification of change of applicant
AMND Amendment
E902 Notification of reason for refusal
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL NUMBER: 2015101004491; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20150731

Effective date: 20160923

S901 Examination by remand of revocation
E902 Notification of reason for refusal
GRNO Decision to grant (after opposition)
GRNT Written decision to grant