[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20040067992A - 애플리케이션에 의해 제공되는 기능에 직접 액세스하기위한 시스템 및 방법 - Google Patents

애플리케이션에 의해 제공되는 기능에 직접 액세스하기위한 시스템 및 방법 Download PDF

Info

Publication number
KR20040067992A
KR20040067992A KR1020040004085A KR20040004085A KR20040067992A KR 20040067992 A KR20040067992 A KR 20040067992A KR 1020040004085 A KR1020040004085 A KR 1020040004085A KR 20040004085 A KR20040004085 A KR 20040004085A KR 20040067992 A KR20040067992 A KR 20040067992A
Authority
KR
South Korea
Prior art keywords
task
application
entry point
computer
readable medium
Prior art date
Application number
KR1020040004085A
Other languages
English (en)
Other versions
KR100988997B1 (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 KR20040067992A publication Critical patent/KR20040067992A/ko
Application granted granted Critical
Publication of KR100988997B1 publication Critical patent/KR100988997B1/ko

Links

Classifications

    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01FADDITIONAL WORK, SUCH AS EQUIPPING ROADS OR THE CONSTRUCTION OF PLATFORMS, HELICOPTER LANDING STAGES, SIGNS, SNOW FENCES, OR THE LIKE
    • E01F8/00Arrangements for absorbing or reflecting air-transmitted noise from road or railway traffic
    • E01F8/0005Arrangements for absorbing or reflecting air-transmitted noise from road or railway traffic used in a wall type arrangement
    • E01F8/0023Details, e.g. foundations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Structural Engineering (AREA)
  • Civil Engineering (AREA)
  • Architecture (AREA)
  • Sustainable Development (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

웹(Web) 또는 오퍼레이팅 시스템 셸(Shell)과 같은 애플리케이션에 의해 제공된 기능(functionality)에 직접 액세스하기 위한 시스템 및 방법이 기술되어 있다. 애플리케이션의 기능은 고유 태스크들로 분리된다. 각각의 태스크는 상기 애플리케이션으로의 관련 엔트리 포인트를 갖는다. 관련 엔트리 포인트는 컴퓨터 사용자가 상기 애플리케이션을 불러온 다음 상기 애플리케이션 내를 내비게이트하여 특정 태스크의 위치를 알아내는 것이 아니라 특정 태스크를 직접 불러올 수 있게 한다. 각각의 태스크는, 예를 들면 해당 태스크와 관련된 아이콘이 데스크탑 상의 활동 센터에 나타나도록 함으로써, 오퍼레이팅 시스템에게 노출될 수 있다. 본 발명은 데스트탑 환경, 웹 기반 환경, 브라우저 환경 등에서 작용할 수 있다.

Description

애플리케이션에 의해 제공되는 기능에 직접 액세스하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR DIRECTLY ACCESSING FUNCTIONALITY PROVIDED BY AN APPLICATION}
여러 종류의 소프트웨어 애플리케이션이 존재한다. 각 애플리케이션은 하나 이상의 관련 기능을 제공하도록 설계된다. 예를 들면, 개인 재정 관리 애플리케이션은 전형적으로 체크북의 밸런스를 유지하고 연금 계좌를 관리하고, 트랜잭션을 진행하고, 주식을 구매하는 등을 위한 기능을 제공한다. 사용자가 특정 기능을 수행할 것을 원하는 경우, 사용자는 그 특정 기능을 제공하는 애플리케이션을 불러 온다. 전형적으로, 애플리케이션은, 애플리케이션과 관련된, 디스플레이 상의 아이콘을 클릭하거나 메뉴로부터 애플리케이션을 선택함으로써 가동된다. 그 후, 사용자는 (예를 들면, 메뉴를 통해) 애플리케이션 내의 특정 기능을 선택한다. 이 방안은 각 애플리케이션에 의해 제공되는 기능에 익숙한 사용자에게는 적합할 수도 있지만 이는 특별히 편리한 것은 아니다. 초보의 컴퓨터 사용자는 각 애플리케이션에 의해 제공되는 기능에 익숙하지 않을 수도 있기 때문에 훨씬 더 불편하다. 따라서, 초보의 컴퓨터 사용자가 특정 기능을 수행하도록 하기 위해, 초보의 컴퓨터 사용자는 우선, 그 특정 기능을 제공하는 애플리케이션을 판별해야 한다. 이 판별에는, 몇몇 애플리케이션을 불러오고 "클릭킹 어라운드(clicking around)"하며, 보다 경험많은 컴퓨터 사용자에게 질문하거나, 혹은 원하는 특정 기능에 관한 컴퓨터 책 또는 매뉴얼을 찾아보는 단계가 포함될 수도 있다. 초보의 컴퓨터 사용자가, 그 특정 기능을 제공하는 애플리케이션을 식별하면, 그 후 초보의 컴퓨터 사용자는 그 애플리케이션을 불러 올 수도 있지만, 경험많은 컴퓨터 사용자와 같은 방식으로 그 특정 기능을 찾고 선택하기 위해서는 여전히 도움을 필요로 할 수도 있다. 이들 해결책이 임의의 애플리케이션에 의해 제공되는 임의의 원하는 기능에 사용자가 액세스할 수 있도록 해주지만, 이 해결책은 이상적인 것이 아니다.
본 발명은 애플리케이션에 의해 제공되는 기능에 직접 액세스하기 위한 시스템 및 방법을 개시한다. 본 발명은, 사용자가 개발자들이 설계한 애플리케이션으로 내비게이팅할 수 있는 포인트를 제어하기 위한 메카니즘을 개발자에게 제공한다. 애플리케이션은 하나 이상의 하이 레벨 기능(즉, 태스크) 단위를 제공한다. 이에 따라, 각 애플리케이션은 이와 관련된 하나 이상의 태스크를 갖는다. 예를 들면, 개인 재정 관리 애플리케이션은, 이와 관련된, 체크북의 밸런스를 유지하고 연금 계좌를 관리하고 트랜잭션을 진행하고 주식을 구매하는 등의 몇몇 태스크를 가질 수도 있다.
본 발명에 따르면, 각 태스크는 애플리케이션으로의 관련 엔트리 포인트를 갖는다. 이 엔트리 포인트는, 컴퓨터 사용자가 태스크의 위치를 알아내기 위해 애플리케이션 내를 내비게이트할 필요없이 직접 지정 태스크를 불러올 수 있게 해준다. 각 태스크는 오퍼레이팅 시스템 셸(operating system shell)로부터 사용자에게 노출될 수도 있다. 태스크가 오퍼레이팅 시스템 셸을 통해 노출되면, 태스크와 관련된 명칭을 사용자가 용이하게 검색할 수도 있으며, 액세스가능 소프트웨어는 태스크와 관련된 명칭을 이용하여 손상된 사용자에 대한 애플리케이션의 능력(즉, 태스크)를 보다 용이하게 식별할 수 있으며, 사용자는, 여러 태스크와 관련된 명칭을 보는 것 등에 의해 자신들이 구매한 소프트웨어의 능력을 보다 용이하게 식별할 수도 있다.
본 발명은 전형적인 데스크탑 환경, 전형적인 웹 기반 환경, 내비게이션 중심 애플리케이션을 호스팅하는 브라우저 환경 등에서 작동될 수도 있다. 브라우저 환경에서 작동하는 경우, 여러 관련 페이지가 하나의 태스크와 관련될 수도 있다. 그러면, 하나의 페이지가 저장되면(이하, "선호됨(favoritized)"으로 칭함), 선호된 페이지 자체의 URL(uniform resource locator)이 아니라 선호된 페이지와 관련된 태스크에 대한 엔트리 포인트로서 지정된 페이지의 URL이 저장된다. 이로 인해 개발자가, 자신이 설계한 내비게이션 기반 애플리케이션으로 사용자가 내비게이팅할 수 있는 포인트를 제어할 수 있게 된다.
이에 따라, 어떤 애플리케이션을 론치(launch)하고 애플리케이션 내의 기능을 어떻게 탐색하는 지를 이미 알고 있는 경험많은 컴퓨터 사용자도, 데스크탑으로부터 직접 기능을 액세스할 수 있게 해주는, 본 발명에 의해 제공되는 보다 효율적이고 편리한 메카니즘을 이용할 수도 있다.
도 1은 본 발명의 하나의 예시적인 실시예에서 사용될 수도 있는 예시적인 연산 장치를 나타낸 도면.
도 2는 브라우저로 호스팅되는 애플리케이션에 의해 제공되는 기능의 단위중 하나에 대해 여러 페이지를 관련시키는 태스크의 그래픽적 표시를 나타낸 도면.
도 3 및 도 4는, 도 2에 도시된 태스크와 관련된 페이지중 하나를 브라우저가 디스플레이하는 예시적인 환경을 나타내고 애플리케이션에 의해 제공되는 기능의 단위와 관련된 몇몇 노출된 태스크 엔트리 포인트를 디스플레이한 도면.
도 5는 본 발명의 일실시예와 관련된 프로세스를 나타낸 논리 흐름도.
도 6은 도 5에서 사용하기에 적합한 애플리케이션에서의 태스크를 진술하기 위한 포맷의 일실시예를 나타낸 도면.
도 7은 도 5에서 사용하기에 적합한 태스크 매니페스트(task manifest)의 일실시예를 나타낸 도면.
도 8은 도 5에서 사용하기에 적합한 태스크 클래스의 일실시예를 나타낸 도면.
<도면의 주요 부분에 대한 부호의 설명>
100 : 연산 장치
102 : 프로세싱 단위
104 : 시스템 메모리
105 : 오퍼레이팅 시스템
106 : 프로그램 모듈
107 : 프로그램 데이터
본 발명은 애플리케이션에 의해 제공되는 기능에 직접 액세스하기 위한 시스템 및 방법을 개시한다. 이 기능은 고유한 태스크들로 분리된다. 따라서, 각 애플리케이션은 하나 이상의 관련 태스크를 갖는다. 각 태스크는, 사용자가 구체적인 활동을 달성하도록 돕는 사용자 중심 활동을 나타낸다. 예를 들면, 개인 재정 관리 애플리케이션은, 체크북 밸런스 태스크, 401K 관리 태스크, 트랜잭션 진행 태스크, 주식 구매 태스크 등과 같은 몇몇 태스크를 가질 수도 있다. 본 발명에 따르면, 애플리케이션으로의 엔트리 포인트는 각 태스크에 대해 정의된다. 엔트리 포인트를 불러오면, 애플리케이션 내의 실행의 흐름은 태스크와 관련된 코드의 부분으로 향하게 된다.
따라서, 본 발명은 컴퓨터 사용자가, 지정된 태스크의 위치를 알아내기 위해 애플리케이션 내를 내비게이트하는 것이 아니라 지정된 태스크를 바로 불러오도록 해주는 메카니즘을 제공한다. 각 태스크는, 활동 센터에서 나타나는 태스크와 관련된 아이콘을 가지는 등에 의해 오퍼레이팅 시스템 셸로부터 직접 사용자에게 노출될 수도 있다. 본 발명은 데스크탑 환경, 웹 기반 환경, 내비게이션 중심 애플리케이션을 호스팅하는 브라우저 환경 등에서 동작할 수도 있다. 이하의 설명에서는, 브라우저 환경이 본 발명을 기술하는 데에 이용된다. 본 실시예에서, 애플리케이션이라는 용어는 브라우저 환경에서 호스팅되는 내비게이션 중심 애플리케이션을 칭한다. 본 기술분야의 당업자라면, 이하의 상세한 설명을 판독한 후에는 그 밖의 다른 환경에서 본 발명을 구현할 수 있을 것이다.
도 1은 본 발명의 예시적인 일실시예에서 사용될 수도 있는 예시적인 연산 장치를 나타낸 도면이다. 매우 기본적인 구성에서, 연산 장치(100)는 전형적으로 적어도 하나의 프로세싱 단위(102)와 시스템 메모리(104)를 포함한다. 정확한 구성 및 연산 장치의 유형에 따라, 시스템 메모리(104)는 휘발성(예를 들면 RAM), 불휘발성(예를 들면, ROM, 플래시 메모리 등) 또는 이들 둘의 소정의 결합일 수도 있다. 시스템 메모리(104)는 전형적으로 오퍼레이팅 시스템(105), 하나 이상의 프로그램 모듈(106)을 포함하며, 프로그램 데이터(107)를 포함할 수도 있다. 프로그램 모듈(106)의 예에는, 브라우저 애플리케이션, 재정 관리 애플리케이션, 워드 프로세서 등이 포함된다. 이 기본적인 구성은 점선(108) 내의 이들 컴포넌트에 의해 도 1에 도시된다.
연산 장치(100)는 부가적인 특징 또는 기능을 가질 수도 있다. 예를 들면, 연산 장치(100)는 또한 자기 디스크, 광 디스크 또는 테이프 등과 같은 부가적인 데이터 저장 장치(제거가능하거나 혹은 제거가능하지 않음)를 포함할 수도 있다. 이러한 부가적인 저장 장치는 제거가능한 저장 장치(109) 및 제거가능하지 않은 저장 장치(110)로 도 1에 도시되어 있다. 컴퓨터 저장 매체는, 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈, 또는 그 밖의 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 불휘발성, 제거가능 및제거가능하지 않은 매체를 포함할 수도 있다. 시스템 메모리(104), 제거가능 저장 장치(109) 및 제거가능하지 않은 저장장치(110)가 컴퓨터 저장 매체의 모든 예이다. 컴퓨터 저장 매체는, RAM, ROM, EEPROM, 플래시 메모리 또는 그 밖의 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 그 밖의 다른 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 그 밖의 다른 자기 저장 장치, 또는 원하는 정보를 저장하는 데에 사용될 수 있으며 연산 장치(100)에 의해 액세스될 수 있는 임의의 그 밖의 다른 매체를 포함하며 이에 한정되는 것은 아니다. 이러한 임의의 컴퓨터 저장 매체는 장치(100)의 부분일 수도 있다. 연산 장치(100)는 또한, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(112)를 가질 수도 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치도 또한 포함될 수 있다. 이들 장치들은 본 기술분야에서 공지된 것이며 여기서 길게 설명할 필요는 없는 것이다.
연산 장치(100)는, 네트워크 등을 통해 장치가 다른 연산 장치(118)와 통신하게 해주는 통신 커넥션(116)을 또한 포함할 수도 있다. 통신 커넥션(116)은 통신 매체의 일례이다. 통신 매체는, 반송파 또는 그 밖의 다른 전송 메카니즘 등의 변조된 데이터 신호 내의 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈 또는 그 밖의 다른 데이터에 의해 전형적으로 구현될 수도 있다. "변조된 데이터 신호"란, 신호 내의 정보를 부호화하기 위한 방식으로 설정되거나 변경된 하나 이상의 특성을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 다이렉트 유선 커넥션과 같은 유선 매체와, 어쿠스틱, RF, 적외선 및 그 밖의 다른무선 매체와 같은 무선 매체를 포함하는데 이에 한정되는 것은 아니다. 본 명세서에서 사용된 바와 같이 컴퓨터 판독가능 매체는 저장 매체 및 통신 매체 양자를 포함한다.
도 2는 내비게이션 기반 애플리케이션(도시하지 않음)에 대해 정의된 태스크의 그래픽 표시를 나타낸 도면이다. 태스크는 몇몇 페이지를 함께 관련시킨다. 몇몇 페이지는 서로 결부되어 태스크되어서 내비게이션 기반 애플리케이션에 의해 제공되는 기능의 단위중 하나를 수행한다. 본 실시예에서, 내비게이션 기반 애플리케이션은 브라우저로 호스팅된다. 각 태스크는 몇몇 페이지(예를 들면, 페이지 202-208)와 연관될 수도 있다. 태스크는 점선(210) 내의 페이지들에 의해 도 2에 도시된다. 이하, 이들 페이지는 집합적으로 태스크(210)로 칭한다. 간단하게는, 도 5-8과 결부되어 이하에 기술하는 바와 같이 각 태스크(210)는 엔트리 포인트에 할당된다. 일실시예에서, 엔트리 포인트는 엔트리 페이지일 수도 있다. 본 실시예에서, 엔트리 페이지를 지정하기 위한 속성을 포함하는, 태스크(210)에 대한 다른 실시예가 이용될 수도 있다. 이하의 설명 전체에서, 내비게이션 태스크(navigation Task)는 본 실시예를 칭하는 데에 이용될 수도 있다. 내비게이션 태스크는 도 8에 예시되며 이와 결부되어 기술된다.
도 2에서, 엔트리 포인트로서 태스크(210)를 형성하기 위해 함께 그룹화된 페이지중 하나를 지정하는 데에 엔트리 포인트 지정(212)이 사용된다. 전술한 예에서, 페이지(202)(즉, "페이지1")는 태스크(210)에 대한 엔트리 포인트로서 엔트리 포인트 지정(212) 내에 지정되었다. 페이지(202-208)는 HTML 페이지, XML 도큐먼트, UI 제어 집합 등을 나타낼 수도 있다.
도 3은 브라우저가 도 2에 도시된 태스크와 관련된 페이지 중의 하나를 디스플레이하고 애플리케이션에 의해 제공된 기능 단위와 관련된 몇개의 노출된 태스크 엔트리 포인트를 디스플레이하는 예시적 환경을 보여주는 디스플레이이다. 앞에서 언급한 대로, 예시적 환경은 내비게이션 중심 애플리케이션을 호스팅하는 브라우저 환경이다. 다음의 논의에서, 예시적 애플리케이션은 재정 관리 애플리케이션인데, 이 재정 관리 애플리케이션과 관련된 용어들은 본 발명을 설명하기 위해 본 명세서에 걸쳐서 사용된다. 그러나, 당업자는 본 발명이 임의 유형의 애플리케이션에 적용될 수 있음을 알 것이다. 도 3을 참조하면, 디스플레이(300)는 그 위에 윈도우(302)가 디스플레이되는 데스크탑(301)을 포함한다. 윈도우(302)는 기동된 애플리케이션(예를 들면, 재정 관리 애플리케이션)을 위한 것이다. 전형적으로는, 본 애플리케이션은 본 애플리케이션에 의해 제공된 옵션을 트래버스(traverse)하기 위한 메뉴 바(304)를 제공한다. 전형적으로는, 본 옵션은 애플리케이션에 의해 제공되는 기능 단위를 액세스하기 위한 메카니즘을 제공하였다. 예를 들어, 메뉴 바(304)는 몇개의 메뉴 아이템(예를 들면, 정산 메뉴 아이템(308))을 포함한다. 이런 메뉴 아이템의 각각은 하위 메뉴 아이템(예를 들면, 트랜잭션 진행 하위 메뉴 아이템(322))을 갖는 하위 메뉴(예를 들면, 하위 메뉴(319))를 제공한다.
본 발명에서, 트랜잭션 진행 하위 메뉴 아이템(322)과 관련된 기능은 태스크를 사용하여 직접 액세스 가능하다. 요약하면, 태스크는 트랜잭션 진행 하위 메뉴 아이템(322)과 관련된 기능에 직접 액세스를 제공하는 태스크 엔트리 포인트(예를들면, 트랜잭션 진행 태스크 엔트리 포인트(314))와 관련된다. 예시된 실시예에서, 노출된 태스크 엔트리 포인트들(예를 들면, 밸런스 체킹용 노출 엔트리 포인트(312), 트랜잭션 진행 태스크 엔트리 포인트(314), 연금 계좌 관리 노출 엔트리 포인트(316), 및 주식 구매 노출 엔트리 포인트(318))이 디스플레이(300)의 데스크탑(301) 상에서 활동 센터(330) 내의 아이콘들로 디스플레이된다. 활동 센터(330)는 제공된 활동의 유형에 기초하여 조직된다. 예를 들어, 노출 엔트리 포인트(312-318)는 금융 활동 센터 내에 있을 수 있다. 노출 엔트리 포인트(312-318)들이 활동 센터 내에 조직되기 때문에, 사용자들은 보다 쉽게 자신들이 원하는 태스크를 발견할 수 있다. 당업자가 알 수 있듯이, 노출 엔트리 포인트는, 본 발명의 범위를 벗어나지 않고서 개시 메뉴 내의 메뉴 아이템 등의 여러가지 형태를 취할 수도 있다.
데스크탑(301)은 또한 또다른 엔트리 포인트인 주 애플리케이션 엔트리 포인트(310)를 디스플레이한다. 주 애플리케이션 엔트리 포인트(310)는 본 애플리케이션으로의 전통적인 엔트리 포인트이며, 전형적으로는 태스크의 하나로서 포함되지는 않을 것이다. 도 3에서, 주 애플리케이션 엔트리 포인트(310)는 데스크탑(301)상에서 간단 표시로 디스플레이된다. 과거에는, 각 애플리케이션은 이 애플리케이션을 기동하기 위해 선택되었던 하나의 엔트리 포인트(예를 들면, 주 애플리케이션 엔트리 포인트 310)를 가졌다. 주 애플리케이션 엔트리 포인트(310)가 선택되었을 때, 관련 애플리케이션은 윈도우(302) 내에 실제적으로 보여지고 이 애플리케이션은 애플리케이션 윈도우(302) 내에서 내비게이션하기 위한 메뉴 바(304)를 제공하였다. 그러면, 이 애플리케이션에 의해 제공된 기능은 이 애플리케이션에 의해 제공된 메뉴를 통해서 네이게이트함으로써 선택된다. 따라서, 과거에는, 초보 컴퓨터 사용자는 몇개의 애플리케이션을 기동하고 원하는 태스크와 관련된 것으로 보이는 메뉴 아이템을 로케이트(locate)시키기 위해 각 애플리케이션 내의 몇몇 메뉴를 풀 다운시켜야 할 필요가 있었다.
대조적으로, 본 발명은 사용자에게 이용가능한 모든 애플리케이션에 의해 제공되는 기능들을 쉽게 식별하기 위한 메카니즘을 제공한다. 이 메카니즘은 태스크 엔트리 포인트를 이 애플리케이션에 의해 제공되는 기능 단위의 각각과 관련지워주는 수단을 제공한다. 이 메카니즘은 사용자가 메뉴를 사용하여 애플리케이션 내에서 내비게이트를 반드시 해야 할 필요가 없이, 원하는 기능을 직접 액세스하도록 해준다. 도시된 대로, 일 실시예에서, 노출 태스크 엔트리 포인트는 카테고리 별로 활동 센터(330)가 되도록 조직된다. 이후에 자세히 설명하겠지만, 태스크 엔트리 포인트를 기동하는 것은, 선택된 기능을 구현하는 애플리케이션 내의 특정 코드로 실행을 지시하는 것이 된다.
또다른 실시예에서, 태스크는 자연 언어 검색 엔진을 통해서 셸(Shell)을 통해 노출될 수 있다. 본 실시예에서, 사용자는 자신들이 수행하기를 원하는 기능성을 설명하는 텍스트 스트링을 타이핑할 수도 있다. 텍스트 스트링은 자연 언어 검색 엔진과 관련된 검색 바(bar) 상에서 입력된다. 텍스트 스트링에 기초하여, 자연 언어 검색 엔진은 텍스트 스트링과 관련된 유효한 태스크를 식별하기 위한 검색을 실행한다. 본 검색은 태스크 저장부 내의 모든 등록된 태스크를 검색할 수도있다. 그 후 검색한 결과는 아이콘, 태스크 명, 및 관련 툴팁(tooltip)을 갖는 간단 표시로서 디스플레이될 수 있다. 그러면, 디스플레이된 간단 표시는 사용자가 요구한 기능을 실행할 수 있는 머신 상의 태스크를 나타낸다. 사용자는 그후 요구하는 기능에 직접 액세스하기 위해 디스플레이된 간단 표시 중에 하나를 편리하게 선택할 수 있다.
본 발명의 태스크는 문자 기입, 요금 정산, 사진 정리, e-mail 작성 등의 임의 유형의 기능을 실행할 수 있다. 본 발명의 메카니즘을 사용하면, 컴퓨터 사용자가 더 쉽게 특정 태스크를 발견하도록 해주고, 액세스용(accessibility) 소프트웨어에게 각각의 애플리케이션에 의해 제공되는 능력(즉, 태스크)을 더 쉽게 식별하도록 하는 등의 결과를 얻게 한다.
도 4는 브라우저가 도 2에 도시된 태스크와 관련된 페이지 중의 하나를 디스플레이하고 본 발명에 따라서 페이지의 선호도를 매기는 메카니즘을 디스플레이하는 예시적 환경을 도시한 또다른 디스플레이이다. 디스플레이(400)는 그 상에서 브라우저 윈도우(302)가 도 2에 도시된 태스크(210)와 관련된 페이지 중의 하나(예를 들면, 페이지 206)를 디스플레이하고 있는 데스크탑(301)을 예시하였다. 도시된 대로, 브라우저 윈도우(302)는 어드레스 필드(406)를 포함한다. 어드레스 필드(406)는 URL을 포함한다. 전형적인 웹 페이지에서, 어드레스 필드(406)의 콘텐츠는 디스플레이되고 있는 웹의 URL을 포함한다. 본 발명의 일 실시예에서, 어드레스 필드(406)의 콘텐츠는 디스플레이된 페이지(206)가 포함된 태스크의 URL을 포함할 수 있다. 이 실시예에서, 어드레스 필드(406)는 태스크(210)에게 할당된엔트리 포인트 페이지의 URL을 포함한다. 도 4에 도시된 대로, 엔트리 포인트 페이지의 URL은 "http://MoneyManager/EnterTransactions" 이다. 도 3에 도시된 또다른 실시예에서, 어드레스 필드(406)는 친근한 태스크 명칭(예를 들면, "트랜잭션 진행")을 가질 수 있다. 사용자가 어드레스 필드(406)의 콘텐츠를 복사하였을 때, 콘텐츠는 하이퍼 링크로서 복사된다. 따라서, 콘텐츠가 페이스트되었을 때, 친근한 명칭이 나타나고, 콘텐츠가 클릭되었을 때, 본 발명은 친근한 명칭과 관련된 하이퍼 링크로 내비게이트한다. 브라우저 윈도우(302)는 또한, 여러 페이지에 대한 링크를 포함할 수 있는데, 예를 들면 각각 페이지(202-208)(도 2)에 대해 링크하는 링크(410-416)와 같은 것이다.
브라우저 윈도우(302)는 또한, 선호 메뉴 아이템(422) 등의 여러가지 메뉴 아이템을 리스트하는 메뉴 바(304)를 포함할 수 있다. 선호 메뉴 아이템(422)은 선호물 부가 하위 메뉴 아이템(424) 등과 같은 하나 또는 그 이상의 하위 메뉴 아이템을 갖는 하위 메뉴(423)를 포함할 수 있다. 다음의 논의에서, 디스플레이된 페이지(206)(예를 들면, 페이지3)가 본 발명에 따라서 미리 태스크와 관련되었을 때와, 사용자가 브라우저 내에 디스플레이된 페이지(206)를 저장하는 것을 선정하였을 때, 그 결과를 이제 설명할 것이다. 또다른 실시예에서, 전담 하위 메뉴 아이템(도시 안됨)이 애플리케이션에게 제공되어 태스크의 선호도를 매기는 데에 사용될 수 있다.
본 발명을 설명하기 전에, 과거에 브라우저가 웹 페이지 선호도를 순위 매기는 방식이 먼저 아래에 간단히 설명될 것이다. 과거에는, 사용자가 선호물 부가하위 메뉴 아이템(424)을 선택하였을 때, 어드레스 필드(406)에 리스트된 URL은 저장되었다(즉, 선호됨). 이 선호된 웹 페이지는 이후에 선호도 리스트로부터 선택될 수 있다. 그러나, 몇몇 경우에는, 디스플레이된 웹 페이지의 실제 URL은 저장되었기 때문에, 브라우저는 이후에 웹 페이지를 디스플레이할 수 없었다. 예를 들어, 웹 페이지가 사용자에게 웹 페이지를 디스플레이 하기 전에 로그인을 하도록 요구하는 경우에, 또는 페이지가 몇몇 이전 사용자 행동에 응답하여 서버에 의해 발생된 경우에, 이런 상황이 일어날 수 있다. 이런 상황에서, 저장된 URL은 유용하지 않고 사용자는 원하는 웹 페이지로 어떻게 돌아가야 하는 지를 생각해 내야만 하였다.
도 2 내지 도 4에서 도시되고 앞서 설명한 대로의 브라우저 환경에서, 본 발명은 엔트리 포인트를 내비게이션 중심 애플리케이션에 의해 제공된 각각의 태스크와 관련지워주는 메카니즘을 제공한다. 본 실시예에서, 엔트리 포인트는 URL을 갖는 태스크이다. 따라서, 현재 디스플레이된 페이지가 "선호"되면, 선호된 페이지의 URL이 아니라 선호된 페이지와 관련된 태스크의 URL이 저장된다.
따라서, 사용자는 평소처럼 애플리케이션 내에서 내비게이트할 수 있으나, 특정 페이지가 선호되었을 때는 특정 페이지와 관련된 태스크의 URL이 저장된다. 이 태스크 및 이것의 디폴트 엔트리 페이지는, 애플리케이션을 생성할 때 개발자에 의해 지정된다. 이 메카니즘은 개발자로 하여금 사용자가 이들이 설계한 애플리케이션 또는 웹 사이트 내로 내비게이트할 수 있는 지점을 제어하는 능력과, 주어진 텍스트에서 더 이상 유효하지 않은 이전에 선호된 페이지에 액세스하고자 시도할때 사용자가 서버 에러를 얻는 것을 방지하는 능력을 갖게 해 준다. 따라서, 이 애플리케이션의 실행을 임의의 코드로 디렉트하는 것 뿐만이 아니라 본 발명의 메카니즘은 앞서 설명한 선호도 매김 행동을 인에이블하여 준다. 이 선호도 매김 행동은 사용자의 브라우저와의 친숙도를 크게 향상시킨다.
디폴트에 의해, 태스크가 선호물로부터 또는 임의의 다른 수단에 의하여서 내비게이트되었을 때, 태스크와 관련된 엔트리 페이지가 디스플레이된다. 이 엔트리 페이지는 태스크(도6)에 대한 평서문 설명으로 개발자에 의해 특정된다. 하나의 태스크가 선호되면, 애플리케이션 개발자는 선택적으로 메타데이터(metadata)를 URL과 함께 선호물에 부가할 수 있는 데, 이 메타데이터는 태스크가 선호되는 때에 사용자가 보고 있는 태스크 내의 현재 페이지를 포함하여, 태스크 내의 현재 상태를 포함한다. 이는 개발자에게 이들이 그 태스크를 선호하였을 때 이들이 방문하고 있었던 정확한 페이지로 사용자를 리턴시키는 것이 적합한 때를 결정하는 능력을 제공한다.
도 5는 본 발명과 관련된 처리를 예시하는 논리 흐름도이다. 여러가지 처리는 정의 처리(500), 컴파일(compilation) 처리(510), 등록 처리(520), 및 기동 처리(530)를 포함한다. 도 5에 도시된 처리는 태스크 및 애플리케이션으로의 이들의 관련된 엔트리 포인트를 쉽게 설명하고, 오퍼레이팅 시스템 셸에서 이들 엔트리 포인트를 서피싱(surfacing)하기 위한 메카니즘을 제공한다.
정의 처리(500) 동안에, 블럭(502)에서, 개발자는 애플리케이션에 의해 제공된 하나 이상의 태스크를 설명한다. 일 실시예에서, 태스크는 코드를 통해서 프로그램적으로 설명될 수 있다. 또다른 실시예에서, 태스크는 정의 파일 내에서 평서문으로 설명될 수 있다. 정의 파일은 태스크 정보만을 포함할 수도 있고, 또는 애플리케이션과 관련된 다른 정보를 포함할 수도 있다. 도 6에 예시되고 아래에 자세히 설명되는, 태스크를 평서문으로 설명하기 위한 한 포맷은 eXtensible Mark-up Language(XML) 기반 포맷을 사용한다. 태스크가 설명된 후에, 본 설명은 컴파일 처리(510) 동안에 컴파일링된다.
컴파일 처리(510) 동안에, 컴파일러는 태스크 디스크립션을 읽고 태스크 엔트리의 디스크립션을 매니페스트(manifest)(예를 들면, 태스크 매니페스트)(블럭 512)로 컴파일링한다. 추가로, 컴파일 처리는 디스크립션을 엑시큐터블(executable)(블럭 514)로 컴파일링한다. 엑시큐터블은 처리를 위해 프로세서로 로드될 수 있는 파일, 예를 들면 DLL 및 이와 같은 것을 가리킨다. 따라서, 엑시큐터블은 관련된 태스크 엔트리 포인트가 일단 시동되면 실제적으로 보여질 태스크 오브젝트를 나타내는 코드를 가리킨다. 매니페스트는, 필요하다면, 편리하게 다운로드될 수 있는 적합한 형태로 본 애플리케이션에 의해 제공되는 태스크를 설명한다. 예시적 매니페스트는 도 7에 예시되었고, 이후에 자세히 설명된다. 컴파일 처리(510)가 일단 실행되었다면, 태스크 매니페스트, 액시큐터블, 및 임의의 마크-업(블럭 516)들이 등록 처리(520) 동안에 레지스터될 수 있다.
등록 처리(520) 동안, 태스크 매니페스트(task manifest)가 판독되고 태스크 매니페스트로부터 얻어진 정보가 태스크 저장부(Task Store)에 등록된다(블록 522). 따라서, 태스크 저장부는 태스크 매니페스트로부터 얻어진 태스크의 명칭,아이콘, 툴팁(tooltip) 텍스트, 파일 군집(file associations), 및 태스크 카테고리 등의 태스크 정보를 포함하는데, 이는 셸(Shell) 내에서 태스크를 노출할 위치(예컨대, 태스크 페인(task pane)에서, 개시 메뉴, 활동 센터 등)를 나타낸다. 일 실시예에서, 태스크 저장부는 상기 태스크 정보를 저장하는 하나 이상의 테이블을 포함한다.
셸은 태스크 저장부 내의 정보를 사용하여, 노출된 엔트리 포인트로서 표시되는 태스크의 UI를 디스플레이한다. 엔트리 포인트는 태스크 아이콘을 동반하는 태스크 명칭의 형태로 사용자에게 노출될 수도 있다. 엔트리 포인트가 노출되면(블록 524), 태스크는 호출될(invoked) 준비가 되고, 이는 호출 처리(530) 동안 수행된다.
호출 처리(530) 동안, 태스크와 관련된 노출된 엔트리 포인트가 호출된다(블록 532). 태스크는 오퍼레이팅 시스템 셸(operating system shell) 내에서 엔트리 포인트를 통해, 또는 프로그램적으로(programmatically) 사용자에 의해 호출될 수 있다. 다음은 프로그램적으로 태스크를 호출하기 위한 예시적인 코드이다.
MoneyManager.EnterTransactions.Start();
태스크가 셸을 통해 호출될 때, 태스크와 관련되는 노출된 엔트리 포인트의 아이콘이 더블 클릭된다. 또 다른 실시예에서, 태스크는 선호도 매겨진(favorites) 메뉴 중에서 선호도 매겨진 페이지를 선택함으로써, 혹은 URL로의 내비게이트에 의해 호출될 수도 있다. 이들 및 그 밖의 다른 방법들이 태스크 엔트리 포인트를 호출하는데 사용될 수 있다. 엔트리 포인트가 호출되면, 태스크저장부를 참고하여(블록 534), 호출된 태스크와 관련되는 애플리케이션을 결정하고, 태스크 자체를 위해 호출되어야 하는 방법을 결정한다.
소정의 상황에서, 애플리케이션은 이전에 등록되지 않았을 수도 있다. 애플리케이션이 이전에 등록되었는지 여부를 판별하기 위해 애플리케이션 캐시가 검색될 수도 있다. 태스크 URL이 이메일로 보내지고, 그 다음 이메일 중에서 호출되면, 애플리케이션은 호출될 때 등록된 것으로서 나타나지 않을 것이다. 이들 상황에서, 등록 처리(520)는 호출이 진행되기 이전에 수행된다.
호출된 태스크와 관련된 애플리케이션이 등록되면, 태스크를 호출하기 위해 식별된 방법이 수행된다. 호출 처리는 블록 536으로 진행하고, 여기서 태스크와 관련된 애플리케이션이 호출된다. 일 실시예에서, 태스크는 http 프로토콜을 사용하여 어드레스되어, 노출된 엔트리 포인트는 태스크에 대한 평서적인(declarative) 설명에서 선언된 바와 같이 taskId가 첨부된, 애플리케이션의 URL인 URL을 참조한다. 이러한 시동(activation)은, 애플리케이션이 아직 실행중이지 않다면, 애플리케이션의 론칭을 요구할 수도 있다. 애플리케이션이 론치될 때, 시동된 엔트리 포인트와 관련된 태스크 클래스가 실증된다(instantiated)(블록 538). 태스크 클래스가 실증되는 경우, 호출된 태스크 클래스에 특정한 처리가 수행된다. 블록 536에서, 애플리케이션이 실행 중이면, 처리는 현재 실행중인 애플리케이션의 인스턴스(instance)를 내비게이트하고, 그 다음 태스크 클래스를 실증한다(블록 538).
실증시, 애플리케이션은 파라미터를 태스크 대상에 전달할 수도 있다. 예를 들어, 일 실시예에서, 파라미터는 태스크 URL 내에서 질의 문자열(query strings)로서 전달될 수도 있다. 또 다른 실시예에서, 태스크는 태스크 ID 및 파라미터를 취득하는 StartTask API를 호출함으로써 개시될 수 있다. 파라미터는 태스크 대상의 구성자로부터 액세스될 수도 있다. 또 다른 실시예에서, DataObject는 애플리케이션에 전달하는데 이용될 수도 있다. DataObject는 파라미터 등의 데이터를 전송하기 위한 인터페이스를 지원한다. 또 다른 실시예에서, "델리게이트(delegate)"는 StartTask 파라미터로서 허용될 수도 있다. 이러한 델리게이트는 그 후 태스크 인스턴스를 초기화하는데 필요한 파라미터를 얻기 위해 호출될 수 있다.
도 6은 본 발명에 따른 태스크를 정의하기 위한, XML 기반 포맷의 예시적인 구조의 일부를 도시한다. 구조(600)는 TaskList 엘리먼트(602) 및 하나 이상의 TaskInfo 엘리먼트(예컨대, TaskInfo 엘리먼트(604, 606, 및 608))를 포함한다. TaskList 엘리먼트(602)는 애플리케이션과 관련된 태스크의 리스트의 설명을 위한 개시 및 종료를 나타낸다. TaskInfo 엘리먼트(604-608) 각각은 애플리케이션에 의해 제공되는 특정 태스크 중 하나의 설명을 위한 개시 및 종료를 나타낸다. 각각의 TaskInfo 엘리먼트(604-608)는 식별자("Id"), URI(uniform resource indicator), 친근한 명칭("FriendlyName"), 툴팁("ToolTip"), 아이콘("Icon"), 디폴트 엔트리 페이지("StartPage"), 어셈블리 명칭("AssemblyName"), 및 클래스 명칭("ClassName") 등의 여러 속성을 포함할 수도 있다. 식별자는 특정 태스크에 대한 명칭을 관련시킨다. URI는 특정 태스크에 대한 로케이션(location)을 관련시킨다. 로케이션은 로컬(local) 또는 원격(remote)일 수 있다. 친근한 명칭은 특정태스크가 쉽게 식별되는 명칭을 관련시킨다. 툴팁(tooltip)은, 사용자가 아이콘 위를 호버링(hover)할 때, 컴퓨터 사용자에게 디스플레이되는 유익한 제안을 관련시킨다. 아이콘은 시각적 엔트리 포인트를 특정 태스크에 관련시킨다. 디폴트 엔트리 페이지는 론칭될 때, 태스크에 대한 디폴트 엔트리 페이지로서 특정 페이지를 관련시킨다. 어셈블리 명칭은 실행가능한 파일의 명칭을 특정 태스크에 관련시킨다. 클래스 명칭은 명칭을 특정 태스크에 대한 클래스에 관련시킨다. 태스크 리스트를 정의하기 위한 예시적인 구조는, 태스크를 정의하기 위한 다른 파일 내에 표시된 섹션을 가지는 등에 의해, 전체 애플리케이션을 완전히 정의하기 위해, 또다른 파일 내에 포함되거나 또는 또다른 파일과 통합될 수도 있다.
도 7은 도 5에서 사용하기에 적합한 태스크 매니페스트의 일 실시예이다. 이와 같이, 태스크 목록은 태스크 엘리먼트(예컨대, 태스크 엘리먼트 704, 706, 708)를 포함할 수도 있다. 각각의 태스크 엘리먼트는 entryPoint 리스트 엘리먼트(710) 내의 대응 entryPoint 엘리먼트(예컨대, entryPoint 엘리먼트(712))와 관련된다. 예를 들어, 태스크 엘리먼트(704)는 entryPoint 엘리먼트(712)에 대응한다. 각각의 태스크 엘리먼트(704)는 태스크 설명(task description)(도 6 참조)으로부터 얻어진 정보를 포함한다. 예를 들어, 태스크 엘리먼트(704, 706, 708)는 태스크에 대한 명칭, 태스크에 대한 DisplayName, 및 태스크와 관련된 아이콘을 포함할 수 있다. 또한, 태스크 엘리먼트(704, 706, 708)는 entryPoint 속성(예컨대, entryPoint 속성(720))을 포함할 수도 있다. EntryPoint 속성(720)은 태스크 엘리먼트를 대응 entryPoint 엘리먼트와 편리하게 관련시키기 위한 메카니즘을 제공한다. 일반적으로, entryPoint 엘리먼트(712)는 태스크의 호출에 관련한 속성/값 쌍을 포함한다. 따라서, entryPoint 엘리먼트(712)는 URI 속성, 어셈블리 속성, 및 클래스 속성을 포함한다. URI 속성은 특정 태스크에 대한 위치를 식별한다. 어셈블리 속성은 태스크가 선택될 때, 호출할 실행 가능한 것을 식별한다. 클래스 속성은 entryPoint가 호출될 때, 호출할 클래스를 식별한다.
도 8은 도 5에서 사용하기에 적합한 태스크 클래스의 일 실시예이다. 태스크 클래스(800)는 애플리케이션에 의해 제공된 기능의 특정 단위에 대한 태스크를 정의할 때, 개발자에 의해 무효화되는 요약 클래스이다. 태스크 클래스(800)는 태스크 대상이 실증될 때 호출되는 개시 방법(802)을 포함한다. 개시 방법(802)은 태스크와 관련된 특정 프로세싱을 수행한다. 개발자는 태스크가 처음 론치될 때(예컨대, 태스크가 최종적으로 사용되었을 때 지속되었던 복원 상태) 발생하는 임의의 기능을 추가한다. 태스크 클래스(800)는 종료 방법(804)도 포함할 수도 있다. 종료 방법(804)은 태스크 이후에 "클리닝 업(cleaning up)"을 위한 특정 동작을 수행한다. 개발자는 태스크의 현재 상태를 지속하기 위해 종료 방법(804)을 사용하여, 이후에, 지속된 상태로부터 개시 방법(802)을 재개할 수 있다. 본 발명은 endTask 통지를 전송함으로써 이를 달성할 수 있고, 이로 인해, 데이터베이스 저장, 리소스 방출 등의 "클리닝 업" 동작이 가능할 것이다. 태스크 클래스(800)는 taskId 특성(806), URI 특성, 아이콘 특성(808), 친근한 명칭 특성(808), 툴팁 특성(810) 등의 특성들을 포함할 수도 있다. 개발자는 그 외의 방법을 무효화된 태스크 클래스에 추가하여, 태스크에 특정한 임의의 기능을 구현할 수 있다. 당업자라면, 태스크 클래스(800)에 의해 제공된 방법 및 특성들에 의해, 상술한 본 발명의 메카니즘이 동작될 수 있음을 이해할 것이다. 태스크 객체는 태스크가 초기화될 때 생성될 수도 있다. 또한, 이 태스크는 새로운 태스크가 시작할 때 종료한다.
보다 개선된 것으로서, 관련 태스크가 호출될 때 UI(User Interface)로 쉽게 내비게이팅하기 위한 기능을 제공하는 또다른 클래스(예컨대, NavigationTask 클래스)가 제공될 수도 있다. NavigationTask 클래스는 태스크에 대해 디폴트 엔트리 페이지를 규정하는 StartPage(816)라 불리는 특성을 가질 수 있다. NavigationTask에서, 기초 개시 방법은 디폴트 엔트리 페이지("StartPage")로 내비게이팅한다. 또한, NavigationTask 클래스는 본 발명에 따른 태스크의 내비게이션에 관련된 그 외의 일반적인 방법을 제공할 수도 있다.
또 다른 실시예에서, 태스크 클래스는 UI 페이지 또는 PageFunction에 대한 참조를 포함할 수도 있다. 첫번째 경우에, 개발자는 태스크에 속하는 페이지를 규정할 수도 있다. 두번째 경우에, 태스크는 PageFlow에 대한 엔트리 포인트일 수도 있고, 그 루트는 태스크에 의해 참조된 PageFunction이다. 그 루트 PageFunction의 차일드(child) PageFunctions 각각은 동일한 태스크와 관련될 수도 있다. 그러한 태스크는 그것과 관련된 DataEntity를 가질 수도 있고, 이 태스크와 관련된 각 페이지 또는 PageFunction은 그들의 사용자 인터페이스 엘리먼트를 이러한 DataEntity에 데이터바인드(databind)할 수 있다. 이로 인해, 태스크 객체의 정지(shut down)가 요청될 때의 상태를 태스크 객체가 고수할 수 있게 된다.
따라서, 상술한 바와 같이, 본 발명은 다수의 엔트리 포인트를 정의하기 위한 메카니즘을 애플리케이션에 제공한다. 다수의 엔트리 포인트으로 인해, 애플리케이션에 의해 제공된 기능을 사용자가 직접 액세스할 수 있게 된다. 이러한 다수의 엔트리 포인트가 오퍼레이팅 시스템을 통해 노출될 때, 사용자는 인스톨된 애플리케이션에 의해 제공된 능력을 보다 명확하게 식별할 수 있다. 또한, 시스템 상에 상주하는 도움 시스템(help system) 및 액세스 가능 툴은, 인스톨된 애플리케이션에 의해 제공된 능력을 보다 쉽게 식별할 수도 있다. 본 발명은 이러한 웹 사이트의 내비게이션을 통해, 개발자가 보다 잘 제어할 수 있게 해준다. 따라서, 컴퓨터 사용자는 브라우저 환경에서 보다 좋은 경험을 훨씬 쉽게 가질 수 있을 것이고, 무의미한 링크와는 덜 마주치게 될 것이다.
상기 실시예는 브라우저 환경에서의 애플리케이션에 초점을 두고 있지만, 당업자라면, 본 발명의 기술은 전형적인 데스크탑 환경 및 웹 환경 내의 애플리케이션으로도 구현될 수 있음을 알 것이다.
상기 명세서, 실시예, 및 데이터는 발명의 제조에 대한 완전한 설명 및 구성에 대한 사용을 제공한다. 발명의 정신 및 범주에서 벗어나지 않는 한, 발명의 다양한 실시예가 실시될 수 있으므로, 본 발명은 이후에 첨부된 청구항에 귀속한다.

Claims (27)

  1. 애플리케이션에 의해 제공된 기능(functionality)에의 직접 액세스를 허용하기 위한 컴퓨터 구현 방법(computer-implemented method)에 있어서,
    상기 애플리케이션에 의해 제공된 복수의 기능 단위 중 하나의 기능 단위를 상기 애플리케이션의 태스크로서 관련시키는 단계와;
    상기 태스크에 대한 상기 애플리케이션으로의 엔트리 포인트(entry point)를 선언(declare)하는 단계 -상기 엔트리 포인트는 그것과 관련된 상기 애플리케이션의 부분을 론치(launch)시키고 상기 태스크와 관련된 상기 애플리케이션 내의 명령의 위치를 알아냄(locate)으로써 상기 태스크를 시동(activate)하도록 구성됨-
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 엔트리 포인트를 노출시키는 단계를 더 포함하는 컴퓨터 구현 방법.
  3. 제2항에 있어서, 상기 엔트리 포인트를 노출시키는 단계는 상기 태스크에 대한 메뉴 내의 엔트리를 작성하는 단계를 포함하고, 상기 메뉴는 오퍼레이팅 시스템 셸(operating system shell)에 의해 제공되는 컴퓨터 구현 방법.
  4. 제2항에 있어서, 상기 엔트리 포인트를 노출시키는 단계는 활동센터(activity center) 내의 컴퓨터 디스플레이 상에 나타나는 아이콘을 작성하는 단계를 포함하는 컴퓨터 구현 방법.
  5. 제2항에 있어서, 상기 엔트리 포인트를 노출시키는 단계는 어드레스 필드에 상기 엔트리 포인트와 관련된 친근한 명칭(friendly name)을 리스트(list)하는 단계를 포함하는 컴퓨터 구현 방법.
  6. 제2항에 있어서, 상기 엔트리 포인트를 노출시키는 단계는, 자연 언어 검색 엔진이, 입력되는 텍스트에 기초하여 상기 엔트리 포인트를 알아내게 하는 단계 -상기 텍스트는 수행할 동작을 기술함 - 를 포함하는 컴퓨터 구현 방법.
  7. 제1항에 있어서, 상기 복수의 기능 단위 중 하나의 기능 단위를 관련시키는 단계는 상기 태스크를 평서적으로(declaratively) 기술하는 단계를 포함하는 컴퓨터 구현 방법.
  8. 제7항에 있어서, 상기 태스크를 평서적으로 기술하는 단계는 XML 형식(format)에 기초하는 컴퓨터 구현 방법.
  9. 제1항에 있어서, 상기 애플리케이션을 설치할 때 태스크 저장부(task store)에 상기 태스크와 관련된 태스크 정보를 기록(register)하는 단계를 더 포함하는컴퓨터 구현 방법.
  10. 제9항에 있어서, 상기 시동된 엔트리 포인트와 관련되는 애플리케이션을 결정하기 위해 상기 태스크 저장부를 참조하는 단계를 더 포함하는 컴퓨터 구현 방법.
  11. 제1항에 있어서, 상기 엔트리 포인트는 프로그램적으로 시동되는 컴퓨터 구현 방법.
  12. 제1항에 있어서, 상기 엔트리 포인트는 오퍼레이팅 시스템 셸을 통하여 시동되는 컴퓨터 구현 방법.
  13. 제1항에 있어서, 상기 복수의 기능 단위 중 하나의 기능 단위를 관련시키는 단계는 복수의 페이지를 상기 태스크로서 정의함으로써 달성되고, 상기 엔트리 포인트를 선언하는 단계는 상기 복수의 페이지 중 하나의 페이지의 URL을 상기 엔트리 포인트로서 지정하는 단계를 포함하는 컴퓨터 구현 방법.
  14. 애플리케이션을 갖는 기능에 직접 액세스하기 위한 컴퓨터 실행 가능한 명령을 갖는 컴퓨터 판독 가능한 매체에 있어서,
    상기 명령은,
    노출된 엔트리 포인트의 선택에 응답하여, 태스크 저장부를 참조하여 상기 노출된 엔트리 포인트와 관련된 애플리케이션을 결정하는 단계 - 상기 노출된 엔트리 포인트는 상기 애플리케이션에 의해 제공된 복수의 태스크 중 하나의 태스크와 관련됨 - 와;
    상기 애플리케이션을 론치하는 단계와;
    상기 노출된 엔트리 포인트와 관련된 태스크 객체를 실증(instantiate)하는 단계 - 상기 태스크 객체는 사용자 제어 하에서 상기 하나의 태스크와 관련된 명령을 실행하기 위한 처리가 속행되는 상기 애플리케이션 내의 위치를 알아냄 -
    를 포함하는 컴퓨터 판독 가능한 매체.
  15. 제14항에 있어서, 상기 노출된 엔트리 포인트는 활동 센터 내의 컴퓨터 디스플레이 상의 아이콘을 포함하는 컴퓨터 판독 가능한 매체.
  16. 제14항에 있어서, 상기 노출된 엔트리 포인트는 메뉴 아이템을 포함하는 컴퓨터 판독 가능한 매체.
  17. 제14항에 있어서, 상기 노출된 엔트리 포인트는 어드레스 필드에 리스트된 친근한 명칭을 포함하고, 상기 친근한 명칭은 상기 엔트리 포인트와 관련되는 컴퓨터 판독 가능한 매체.
  18. 제14항에 있어서, 상기 노출된 엔트리 포인트는 입력되는 텍스트에 기초하여 자연 언어 검색 엔진에 의해 발생된 출력을 포함하고, 상기 텍스트는 수행할 동작을 기술하는 컴퓨터 판독 가능한 매체.
  19. 제14항에 있어서, 상기 노출된 엔트리 포인트는 상기 하나의 태스크에 대해 정의되는 상기 복수의 페이지 중 하나의 페이지의 URL을 포함하는 컴퓨터 판독 가능한 매체.
  20. 애플리케이션에 의해 제공된 복수의 태스크를 평서적으로 기술하기 위한 데이터 구조로 부호화(encode)된 컴퓨터 판독 가능한 매체에 있어서,
    상기 데이터 구조는,
    상기 복수의 태스크를 정의하기 위한 처음(beginning)과 끝(ending)을 식별하기 위한 제1 엘리먼트와;
    상기 복수의 태스크 중 하나의 태스크를 정의하기 위한 처음과 끝을 식별하기 위한 제2 엘리먼트와;
    상기 하나의 태스크와 관련된 로케이션(location)을 제공하기 위한 제1 속성과;
    상기 하나의 태스크와 관련된 식별자를 제공하기 위한 제2 속성과;
    상기 하나의 태스크와 관련된 클래스 명칭을 제공하기 위한 제3 속성
    을 포함하는 컴퓨터 판독 가능한 매체.
  21. 제20항에 있어서, 상기 로케이션은 URI(uniform resource identifier)를 포함하는 컴퓨터 판독 가능한 매체.
  22. 제20항에 있어서, 상기 로케이션은 원격(remote)인 컴퓨터 판독 가능한 매체.
  23. 제20항에 있어서, 상기 로케이션은 로컬인 컴퓨터 판독 가능한 매체.
  24. 제20항에 있어서, 상기 데이터 구조는 XML 기반인 컴퓨터 판독 가능한 매체.
  25. 제20항에 있어서, 상기 하나의 태스크와 관련된 아이콘을 제공하기 위한 제4 속성을 더 포함하고, 상기 아이콘은 상기 하나의 태스크와 관련된 상기 애플리케이션 내의 명령으로의 노출된 엔트리 포인트를 제공하는 컴퓨터 판독 가능한 매체.
  26. 애플리케이션으로의 다수의 엔트리 포인트를 제공하기 위한 데이터 구조로 부호화된 컴퓨터 판독 가능한 매체에 있어서, 상기 데이터 구조는,
    상기 애플리케이션에 의해 제공된 태스크와 관련된 처리를 개시하기 위한 제1 방법을 포함하고, 상기 제1 방법은 상기 애플리케이션과 관련된 복수의 엔트리 포인트 중 상기 태스크와 관련된 하나의 엔트리 포인트로 내비게이트(navigate)하고, 상기 태스크는 상기 애플리케이션에 의해 제공된 복수의 태스크 중 하나인 컴퓨터 판독 가능한 매체.
  27. 애플리케이션으로의 다수의 엔트리 포인트를 제공하는 시스템에 있어서,
    프로세서와;
    메모리 - 상기 메모리는 상기 프로세서에 의해 실행되도록 상기 메모리로 로드되는 복수의 컴퓨터 실행 가능한 명령에 대해 할당됨 -
    를 포함하고,
    상기 컴퓨터 실행 가능한 명령은,
    노출된 엔트리 포인트의 선택에 응답하여, 태스크 저장부를 참조하여 상기 노출된 엔트리 포인트와 관련된 애플리케이션을 결정하는 단계 - 상기 노출된 엔트리 포인트는 상기 애플리케이션에 의해 제공된 복수의 태스크 중 하나의 태스크와 관련됨 - 와;
    상기 애플리케이션을 론치하는 단계와;
    상기 노출된 엔트리 포인트와 관련된 태스크 객체를 실증하는 단계 - 상기 태스크 객체는 사용자 제어 하에서 상기 하나의 태스크와 관련된 컴퓨터 실행 가능한 명령을 실행하기 위한 처리가 속행되는 상기 애플리케이션 내의 위치를 알아냄 -
    를 포함하는 방법을 수행하는 시스템.
KR1020040004085A 2003-01-21 2004-01-20 애플리케이션에 의해 제공되는 기능에 직접 액세스하기 위한 시스템, 컴퓨터 구현 방법 및 컴퓨터 판독 가능한 기록 매체 KR100988997B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/348,677 2003-01-21
US10/348,677 US7543238B2 (en) 2003-01-21 2003-01-21 System and method for directly accessing functionality provided by an application

Publications (2)

Publication Number Publication Date
KR20040067992A true KR20040067992A (ko) 2004-07-30
KR100988997B1 KR100988997B1 (ko) 2010-10-20

Family

ID=32655488

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040004085A KR100988997B1 (ko) 2003-01-21 2004-01-20 애플리케이션에 의해 제공되는 기능에 직접 액세스하기 위한 시스템, 컴퓨터 구현 방법 및 컴퓨터 판독 가능한 기록 매체

Country Status (5)

Country Link
US (1) US7543238B2 (ko)
EP (1) EP1445692A3 (ko)
JP (1) JP4942916B2 (ko)
KR (1) KR100988997B1 (ko)
CN (2) CN101587440B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101013056B1 (ko) * 2006-07-26 2011-02-14 한국산업기술평가관리원 내장된 이벤트 구동형 솔루션의 설계 및 연산을 용이하게하는 시스템 및 방법

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203909B1 (en) * 2002-04-04 2007-04-10 Microsoft Corporation System and methods for constructing personalized context-sensitive portal pages or views by analyzing patterns of users' information access activities
US20050268112A1 (en) * 2004-05-28 2005-12-01 Microsoft Corporation Managing spyware and unwanted software through auto-start extensibility points
US20060224575A1 (en) * 2005-03-30 2006-10-05 Microsoft Corporation System and method for dynamic creation and management of lists on a distance user interface
US7667704B2 (en) * 2005-03-30 2010-02-23 Microsoft Corporation System for efficient remote projection of rich interactive user interfaces
US20060225037A1 (en) * 2005-03-30 2006-10-05 Microsoft Corporation Enabling UI template customization and reuse through parameterization
US8214754B2 (en) * 2005-04-15 2012-07-03 Microsoft Corporation Registration of applications and complimentary features for interactive user interfaces
US20070016870A1 (en) * 2005-07-15 2007-01-18 Microsoft Corporation Control panel framework
US20070083829A1 (en) * 2005-10-11 2007-04-12 International Business Machines Corporation Application program initiation with initial display selection
US7921375B2 (en) * 2005-12-16 2011-04-05 Microsoft Corporation Integrating user interfaces from one application into another
CN1960371B (zh) * 2006-08-25 2010-09-08 华为技术有限公司 一种访问Web应用程序文件的方法及系统
US8296741B1 (en) * 2007-03-05 2012-10-23 Google Inc. Identifying function-level code dependency by simulating runtime binding
US7860946B1 (en) * 2007-05-01 2010-12-28 Disintegrated Communication Systems, Llc Systems, methods, and computer-readable media for searching and concomitantly interacting with multiple information content providers, other individuals, relevant communities of individuals, and information provided over a network
US20080301559A1 (en) * 2007-05-31 2008-12-04 Microsoft Corporation User Interface That Uses a Task Respository
CN101378400B (zh) * 2007-08-30 2013-01-30 国际商业机器公司 实现桌面应用和Web应用聚合的方法、服务器和系统
US10176827B2 (en) 2008-01-15 2019-01-08 Verint Americas Inc. Active lab
US10489434B2 (en) 2008-12-12 2019-11-26 Verint Americas Inc. Leveraging concepts with information retrieval techniques and knowledge bases
US20100175076A1 (en) * 2009-01-06 2010-07-08 International Business Machines Corporation Method for executing a software routine identified in a task object
US8230450B2 (en) * 2009-01-06 2012-07-24 International Business Machines Corporation Method for executing a software routine identified in a task object
US20100306825A1 (en) 2009-05-27 2010-12-02 Lucid Ventures, Inc. System and method for facilitating user interaction with a simulated object associated with a physical location
US8943094B2 (en) 2009-09-22 2015-01-27 Next It Corporation Apparatus, system, and method for natural language processing
CN101827171A (zh) * 2010-04-23 2010-09-08 惠州Tcl移动通信有限公司 移动通信终端菜单选项直接访问的方法
US8707198B2 (en) 2010-06-04 2014-04-22 Microsoft Corporation Related tasks and tasklets for search
US9641643B2 (en) 2010-08-09 2017-05-02 Servicenow, Inc. System and method for storing a skeleton representation of an application in a computerized organization
US9122744B2 (en) 2010-10-11 2015-09-01 Next It Corporation System and method for providing distributed intelligent assistance
US20120124126A1 (en) * 2010-11-17 2012-05-17 Microsoft Corporation Contextual and task focused computing
US20120159341A1 (en) 2010-12-21 2012-06-21 Microsoft Corporation Interactions with contextual and task-based computing environments
US20120166522A1 (en) * 2010-12-27 2012-06-28 Microsoft Corporation Supporting intelligent user interface interactions
US20120260202A1 (en) * 2011-04-11 2012-10-11 Microsoft Corporation Customized launching of applications
CN102243662A (zh) * 2011-07-27 2011-11-16 北京风灵创景科技有限公司 一种在移动设备上显示浏览器界面的方法
CN102306101B (zh) * 2011-08-25 2017-02-08 中兴通讯股份有限公司 一种应用程序作为桌面的方法和装置
US9836177B2 (en) 2011-12-30 2017-12-05 Next IT Innovation Labs, LLC Providing variable responses in a virtual-assistant environment
US9223537B2 (en) 2012-04-18 2015-12-29 Next It Corporation Conversation user interface
US20130293580A1 (en) 2012-05-01 2013-11-07 Zambala Lllp System and method for selecting targets in an augmented reality environment
US9536049B2 (en) 2012-09-07 2017-01-03 Next It Corporation Conversational virtual healthcare assistant
US9582133B2 (en) * 2012-11-09 2017-02-28 Sap Se File position shortcut and window arrangement
US10445115B2 (en) 2013-04-18 2019-10-15 Verint Americas Inc. Virtual assistant focused user interfaces
US9524287B2 (en) * 2013-09-20 2016-12-20 Oracle International Corporation Model-driven tooltips in excel
CN103559050A (zh) * 2013-10-23 2014-02-05 天脉聚源(北京)传媒科技有限公司 一种计算机启动过程的定制方法和计算机
US9823811B2 (en) 2013-12-31 2017-11-21 Next It Corporation Virtual assistant team identification
US9948700B2 (en) 2014-07-01 2018-04-17 Oracle International Corporation ADFDI support for custom attribute properties
US10127206B2 (en) 2014-07-16 2018-11-13 Oracle International Corporation Dynamic column groups in excel
US20160071517A1 (en) 2014-09-09 2016-03-10 Next It Corporation Evaluating Conversation Data based on Risk Factors
US11029800B2 (en) 2015-03-16 2021-06-08 Microsoft Technology Licensing, Llc Language and security aware search for user navigable entry points
WO2016165284A1 (zh) * 2015-04-13 2016-10-20 华为技术有限公司 启动任务管理界面的方法、装置及设备
US10048948B2 (en) 2015-07-06 2018-08-14 Oracle International Corporation Optimized retrieval of custom string resources
US10582001B2 (en) 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources
US10191766B2 (en) 2015-10-13 2019-01-29 Microsoft Technology Licensing, Llc Authoring and running task-based flows within a computing system
CN106815037B (zh) * 2015-11-30 2020-08-04 腾讯科技(深圳)有限公司 应用功能的执行方法及装置
US11568175B2 (en) 2018-09-07 2023-01-31 Verint Americas Inc. Dynamic intent classification based on environment variables
US11232264B2 (en) 2018-10-19 2022-01-25 Verint Americas Inc. Natural language processing with non-ontological hierarchy models
US11196863B2 (en) 2018-10-24 2021-12-07 Verint Americas Inc. Method and system for virtual assistant conversations

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287548A (en) * 1988-02-29 1994-02-15 Allen-Bradley Company, Inc. Programmable controller having a stored program with both machine language instructions and source code data
JPH05204626A (ja) * 1992-01-30 1993-08-13 Fujitsu Ltd ソフトウェア開発支援システムの開発支援ツール起動方法
JPH05324299A (ja) * 1992-05-20 1993-12-07 Pfu Ltd メニュー作成方式
US5694562A (en) * 1995-01-17 1997-12-02 Fisher; Thomas A. Closely integrated key icons in a graphical interface
JPH11184867A (ja) * 1997-12-19 1999-07-09 Toshiba Corp 映像情報検索再生方法ならびに装置及び同方法がプログラムされ記録される記録媒体
US6173316B1 (en) * 1998-04-08 2001-01-09 Geoworks Corporation Wireless communication device with markup language based man-machine interface
US6078323A (en) * 1998-04-09 2000-06-20 International Business Machines Corporation Method and system for rapidly accessing graphically displayed toolbar icons via toolbar accelerators
US7085994B2 (en) * 2000-05-22 2006-08-01 Sap Portals, Inc. Snippet selection
US6788313B1 (en) * 2000-09-28 2004-09-07 International Business Machines Corporation Method and apparatus for providing on line help for custom application interfaces
US7039871B2 (en) * 2000-10-27 2006-05-02 Swiftknowledge, Inc. Secure data access in a multidimensional data environment
US20040205575A1 (en) * 2001-04-12 2004-10-14 Martin Wattenberg Method and system for incorporating a value in a document
US20030061279A1 (en) * 2001-05-15 2003-03-27 Scot Llewellyn Application serving apparatus and method
US20030146937A1 (en) * 2001-09-11 2003-08-07 Lee Seung Woo Multi-level data management system
US20030132961A1 (en) * 2001-12-21 2003-07-17 Robert Aarts Accessing functionalities in hypermedia
US7191411B2 (en) * 2002-06-06 2007-03-13 Moehrle Armin E Active path menu navigation system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101013056B1 (ko) * 2006-07-26 2011-02-14 한국산업기술평가관리원 내장된 이벤트 구동형 솔루션의 설계 및 연산을 용이하게하는 시스템 및 방법

Also Published As

Publication number Publication date
US7543238B2 (en) 2009-06-02
JP2004227591A (ja) 2004-08-12
JP4942916B2 (ja) 2012-05-30
CN101587440B (zh) 2013-01-02
EP1445692A2 (en) 2004-08-11
CN1517870A (zh) 2004-08-04
EP1445692A3 (en) 2006-12-27
US20040141013A1 (en) 2004-07-22
CN101587440A (zh) 2009-11-25
CN100524225C (zh) 2009-08-05
KR100988997B1 (ko) 2010-10-20

Similar Documents

Publication Publication Date Title
KR100988997B1 (ko) 애플리케이션에 의해 제공되는 기능에 직접 액세스하기 위한 시스템, 컴퓨터 구현 방법 및 컴퓨터 판독 가능한 기록 매체
RU2398263C2 (ru) Способ, система и устройство, обеспечивающие предварительный просмотр документа
US8327290B2 (en) User task interface in a web application
CN1821943B (zh) 使用活动内容向导和帮助文件的任务的可发现性-“现在我能做什么? ”特征
US8930944B2 (en) Application model that integrates the web experience with the traditional client application experience
US7469302B2 (en) System and method for ensuring consistent web display by multiple independent client programs with a server that is not persistently connected to client computer systems
US20090183072A1 (en) Embedded user assistance for software applications
US8312113B2 (en) Managing shell configurations to dynamically control user computing environments
US9727354B2 (en) System and methods for loading an application and its modules in a client device
US8117529B2 (en) Object based navigation
US20140047368A1 (en) Application development tool
US20120221997A1 (en) Navigation-independent access to elements of an integrated development environment (ide) using uniform resource locators (urls)
US20190197065A1 (en) Automatic browser search provider detection and usage
JP2016532971A (ja) 動的にカスタマイズされた文脈依存型ヘルプを生成する方法
Liberty et al. Programming ASP. NET: Building Web Applications and Services with ASP. NET 2.0
JP2022173048A (ja) 自動文書スクロールを備えるロボティックプロセスオートメーション(rpa)
Juneau et al. The basics of JavaServer faces
US20060271854A1 (en) Computer application with integrated information management
Verma Developing Your First Extensions
Freeman Essential C# Features
Bartlett Interacting with Web Pages
Charatan et al. Packages
Freeman et al. Using the Development Tools
Beasley et al. JavaScript Programming
Freeman et al. Your First React Application

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 9