KR101152988B1 - 문맥 액션 게시 - Google Patents

문맥 액션 게시 Download PDF

Info

Publication number
KR101152988B1
KR101152988B1 KR1020050051304A KR20050051304A KR101152988B1 KR 101152988 B1 KR101152988 B1 KR 101152988B1 KR 1020050051304 A KR1020050051304 A KR 1020050051304A KR 20050051304 A KR20050051304 A KR 20050051304A KR 101152988 B1 KR101152988 B1 KR 101152988B1
Authority
KR
South Korea
Prior art keywords
context
action
entity
class
current
Prior art date
Application number
KR1020050051304A
Other languages
English (en)
Other versions
KR20060048375A (ko
Inventor
하워드 엠. 3세 크로우
조나 에스. 버크
타고 테니스버그
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 KR20060048375A publication Critical patent/KR20060048375A/ko
Application granted granted Critical
Publication of KR101152988B1 publication Critical patent/KR101152988B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/067Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • G06Q99/00Subject matter not provided for in other groups of this subclass
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Digital Computer Display Output (AREA)

Abstract

비즈니스 객체와 같은 엔티티의 현재의 문맥과 관련된 액션의 게시를 위한 컴퓨팅 시스템이 제공된다. 컴퓨팅 시스템은 엔티티를 저장하는 컴포넌트, 그 엔티티와 관련된 액션을 저장하는 컴포넌트 및 엔티티의 현재의 문맥 또는 문맥들 및 그 엔티티의 현재의 문맥과 관련된 액션에 대한 정보를 제공하는 소프트웨어 컴포넌트를 지닌다. 컴퓨팅 시스템은 엔티티의 현재의 문맥과 관련된 액션을 요청하고 디스플레이하는 클라이언트 시스템을 더 포함할 수 있다. 엔티티와 관련된 액션을 문맥상으로 게시하는 방법이 또한 제공된다. 이 방법은 엔티티의 현재의 문맥을 제공한다. 이 방법은 엔티티의 현재의 문맥과 관련된 액션을 더 제공한다. 엔티티와 관련된 액션의 관리 및 액션으로의 액세스를 위해 다수의 사용자 인터페이스가 제공된다.
비즈니스 객체, 엔티티, 액션, 문맥, 문맥 게시

Description

문맥 액션 게시{CONTEXTUAL ACTION PUBLISHING}
도 1은 비즈니스 객체와 그들 관련 액션이 긴밀하게 결합하는 종래의 한 방식을 도시하는 블록도.
도 2는 본 발명의 한 예시적인 실시예를 도시하는 블록도.
도 3은 본 발명의 한 예시적인 실시예에서 데이터 흐름의 경로를 도시하는 블록도.
도 4는 본 발명의 예시적인 실시예의 한 컴포넌트이자 문맥 클래스의 실례인 문맥 프레임워크의 한 예시적인 구현을 도시하는 블록도.
도 5는 본 발명의 예시적인 실시예의 또 다른 컴포넌트인 액션 프레임워크의 한 예시적인 구현을 도시하는 블록도.
도 6a 내지 6c는 문맥 액션 게시에 대한 예시적인 방법을 도시하는 함수 흐름도.
도 7 내지 10은 엔티티와 이에 관련된 액션을 관리하는 관리 페이지의 한 예시적인 구현을 도시하는 도면.
도 11a 내지 11b는 엔티티와 관련된 관리 액션의 예시적인 방법을 도시하는 함수 흐름도.
도 12는 액션 메뉴를 활성화하는 한 예시적인 프로세스를 도시하는 도면.
도 13은 마우스와 같은 포인팅 장치를 사용하여 액션 메뉴가 어떻게 활성화되는지를 도시하는 상태도.
도 14는 액션 웹 파트의 한 예시적인 구현을 도시하는 도면.
도 15는 액션 웹 파트의 각종 속성을 설정하는 한 예시적인 구현을 도시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
120 : 클라이언트 애플리케이션
214 : 소프트웨어 컴포넌트
210 : 액션 메타데이터 스토어
212 : 어댑터
본 발명은 비즈니스 객체에 관한 것으로, 보다 구체적으로는, 비즈니스 객체와 관련된 액션의 문맥 게시를 가능하게 하는 컴퓨팅 시스템 및 프로그램에 관한 것이다.
비즈니스는 비즈니스를 구성하는 객체 및 그 객체들이 상호작용하는 방법에 의하여 모델링될 수 있다. 일반적으로, 비즈니스 객체는 비즈니스의 운영에 의미가 있는 것, 프로세스 또는 이벤트를 나타낸다. 예를 들어, 비즈니스 객체는 재 고, 송장, 고객 또는 영업사원을 나타낼 수 있다. 비즈니스 객체는 또한 구매, 판매 또는 비즈니스를 운영할 때 발생하는 기타 유형의 트랜잭션을 나타낼 수 있다. 그 결과로 생기는 모델이 일반적으로 비즈니스 객체 모델이라 불린다.
비즈니스 객체 모델의 종래의 아키텍처는 각 비즈니스 객체에 관련된 데이터, 비즈니스 규칙 및 액션(동작)이 비즈니스 객체에 논리적으로 및/또는 물리적으로 긴밀하게 결합한 것이었다. 예를 들어, 비즈니스 객체 및 그 관련 데이터, 비즈니스 규칙 및 액션은 파일 서버에 함께 물리적으로 저장되거나 논리적으로 하나의 단위로 간주되었다. 도 1은 비즈니스 객체를 그 관련 액션들에 긴밀하게 결합하는 종래의 한 방식을 도시하고 있다. 일반적으로, 비즈니스 객체와 관련된 액션은 활동을 사용자에게 어떻게 보여줄 것인지 및 이 활동을 수행하기 위해 필요한 로직을 어떻게 실행하는가를 설명하는 메타데이터이다. 도 1에 도시된 예제에서, 비즈니스 객체는 SAP(102), SIEBEL(104) 및 SQL(106)과 같은 기업 데이터 관리 시스템에 저장되어 있다. 비즈니스 객체는 또한 기타 데이터 관리 시스템(108)에 저장될 수 있다. 데이터 관리 시스템(102-108)은 어댑터(112)를 제공하고, 이 어댑터를 통해 클라이언트 애플리케이션(120)은 비즈니스 객체 및 이에 관련된 액션을 액세스하고 사용할 수 있다.
비즈니스 객체를 그 관련 데이터, 규칙 및 액션과 함께 저장하는 종래의 방식은 일부 제한이 있다. 예를 들어, 비즈니스 객체와 이에 관련된 액션을 긴밀하게 결합하는 것은 비즈니스 객체에 관련된 기능성의 확장을 제한한다. 사용자는 새 액션을 비즈니스 객체와 쉽게 관련시킬 수 없다. 반대로, 액션과 비즈니스 객 체가 서로 분리되어 저장된다면, 사용자는 자신의 기호에 따라 액션을 임의의 비즈니스 객체와 관련시킬 수 있다. 예를 들어, 액션(A 및 B)은 비즈니스 객체(1)와 관련되어 있고, 액션(C 및 D)은 비즈니스 객체(2)와 관련되어 있다. 종래의 기술에서, 액션(A 및 B)은 비즈니스 객체(1)에 연결되어 있고, 액션(C 및 D)은 비즈니스 객체(2)에 연결되어 있다. 액션과 비즈니스 객체간의 연결을 끊음으로써, 비즈니스 객체와 관련된 기능성은 동적으로 조정될 수 있고, 사용자가 추가의 액션을 비즈니스 객체와 쉽게 관련시킬 수 있도록 한다. 예를 들어, 액션(A,B,C 및 D)이 비즈니스 객체(1 및 2)로부터 분리되는 경우, 사용자는 이들 액션을 비즈니스 객체(1 및 2) 중 임의의 것과 자유롭게 관련시킬 수 있다. 이것은 비즈니스 객체가 좀 더 넓은 범위의 기능성을 지닐 수 있도록 한다.
또한 오늘날의 기업 애플리케이션에서는, 사용자가 비즈니스 객체로 할 수 있는 것에 영향을 끼치는 많은 다른 요인이 있다. 이러한 요인들로는 사용자가 누구인가, 사용자가 어떤 종류의 데이터를 보고 있는가, 사용자가 작업 흐름의 어디에 있는가 등이 있다. 이들 요인은 사용자가 비즈니스 객체를 동작하는 문맥을 형성한다. 따라서 문맥은 비즈니스 객체가 사용되는 환경에 관한 데이터를 캡처하는 정보이다. 이것은 데이터, 사용자의 역할, 애플리케이션 설정 등으로부터 추론될 수 있다.
다른 문맥에서 다른 액션들이 하나의 비즈니스 객체와 관련될 수 있다. 예를 들어, 비즈니스 객체를 사용하고 있는 사용자의 역할은 사용자가 비즈니스 객체에 대해 수행할 수 있는 액션에 영향을 끼친다. "고객"과 같은 비즈니스 객체에 대해, "고객" 비즈니스 객체의 사용자가 관리자인 경우, "고객" 비즈니스 객체와 관련된 액션으로는 "액션 편집" 및/또는 "액션 추가" 등이 있다. 이 두 개의 액션은 관리자에게 비즈니스 객체와 관련된 기존 액션을 수정하고 새 액션을 이 비즈니스 객체와 관련시키는 기능을 부여한다. 반면, "고객" 비즈니스 객체의 사용자가 관리자가 아닌 누군가인 경우, 사용자는 "고객" 비즈니스 객체와 관련된 액션을 편집하거나 추가할 수 없을 수 있다. 다른 문맥에서 다른 액션이 비즈니스 객체와 관련될 수 있기 때문에, 현재의 문맥의 비즈니스 객체와 관련된 액션에 대해 사용자에게 알려줄 수 있는 것이 바람직하다. 그리하여 비즈니스 객체와 관련된 액션의 문맥 게시가 필요하게 되었다.
요약하면, 액션과 비즈니스 객체를 동적으로 관련시키기 위해 비즈니스 객체를 그 관련된 액션으로부터 분리시키는 비즈니스 객체 모델에 대한 요구가 있어왔다. 또한, 비즈니스 객체와 관련된 액션을 문맥상으로 게시하라는 요구가 있어왔다. 본 발명은 이러한 요구를 충족시킬 수 있는 컴퓨팅 시스템 및 프로그램을 제공한다.
본 발명은 하나 이상의 문맥을 지니는 비즈니스 객체와 같은 엔티티와 관련된 액션의 게시를 가능하게 하는 컴퓨팅 시스템을 제공함으로써 상술된 요구를 해결한다. 컴퓨팅 시스템은 엔티티를 그 관련 액션으로부터 분리한다. 컴퓨팅 시스템은 또한 엔티티의 현재의 문맥 및 그 현재의 문맥의 엔티티와 관련된 액션에 관한 정보를 제공하는 소프트웨어 컴포넌트를 포함한다. 컴퓨팅 시스템은 엔티티를 사용하고 하나 이상의 문맥에서 그 엔티티와 관련된 액션을 디스플레이하는 클라이언트 프로그램을 더 포함한다. 본 발명의 다른 양상은 하나 이상의 문맥에서 엔티티와 관련된 액션의 문맥 게시에 대한 방법을 제공한다. 본 발명의 또 다른 양상은 사용자가 엔티티와 관련된 액션을 관리하고 액세스할 수 있도록 하는 다수의 사용자 인터페이스를 제공한다.
본 발명의 한 예시적인 실시예는 다수의 컴포넌트를 호스팅하는(host) 컴퓨팅 시스템을 제공한다. 한 컴포넌트는 엔티티를 저장한다. 액션 메타데이터 스토어라 불리는 또 다른 컴포넌트는 이 엔티티와 관련된 액션을 저장한다. 컴퓨팅 시스템은 또한 엔티티가 현재 있는 문맥 및 그 문맥 내의 엔티티와 관련된 액션에 관한 정보를 제공하는 소프트웨어 컴포넌트를 포함한다. 컴퓨팅 시스템은 하나 이상의 엔티티를 사용하는 하나 이상의 클라이언트 애플리케이션을 더 포함한다. 클라이언트 애플리케이션은 엔티티가 있는 문맥 및 문맥의 엔티티와 관련된 액션을 요청한다. 클라이언트 애플리케이션은 문맥의 그 엔티티와 관련된 액션을 디스플레이할 수 있다.
본 발명의 예시적인 실시예에서, 컴퓨팅 시스템에 포함된 소프트웨어 컴포넌트는 엔티티가 있는 현재의 문맥 및 그 현재의 문맥의 엔티티와 관련된 액션에 관한 정보를 제공한다. 보다 구체적으로, 소프트웨어 컴포넌트는 엔티티와 관련된 하나 이상의 문맥을 식별하는 문맥 제공자 모듈(a context provider module)을 포함한다. 소프트웨어 컴포넌트는 액션 메타데이터 스토어를 질의하고 하나 이상의 문맥의 엔티티와 관련된 액션을 검색하는 액션 제공자 모듈(an action provider module)을 더 포함한다. 액션 제공자 모듈은 액션에 관한 정보를 그 문맥의 엔티티를 사용하는 클라이언트 애플리케이션으로 리턴하는 것이 바람직하다. 클라이언트 애플리케이션은 문맥의 엔티티와 관련된 액션을 디스플레이하는 것을 포함하여, 액션으로 각종 기능을 수행할 수 있다.
본 발명의 다른 양상에 따라, 소프트웨어 컴포넌트는 다수의 문맥 리졸버(multiple context resolver)를 더 포함할 수 있다. 문맥 리졸버 각각은 문맥에 대응한다. 문맥 리졸버는 문맥을 식별하는 키워드로 문맥을 번역한다. 임의의 하나의 문맥 또는 문맥들의 엔티티와 관련된 액션에 대한 요청을 수신하자마자, 액션 제공자 모듈은 문맥 정보를 다수의 문맥 리졸버로 전달하고, 다수의 문맥 리졸버는 문맥에 대응하는 키워드 세트를 리턴한다. 액션 제공자 모듈은 키워드를 포함하는 질의를 작성하고 그 질의를 액션 메타데이터 스토어로 전송한다. 액션 메타데이터 스토어는 액션을 하나 이상의 키워드로 주석을 단다. 각 액션은 CombinationMode라 불리는 필드를 지니는 것이 바람직하다. 액션의 CombinationMode 필드가 "ALL"로 설정되는 경우, 액션에 주석을 다는 모든 키워드를 포함하는 질의를 수신하자마자 액션이 리턴될 것이다. 액션의 CombinationMode 필드가 "ANY"로 설정되는 경우, 액션에 주석을 다는 키워드 중 적어도 하나를 포함하는 질의를 수신하자마자 액션이 검색될 것이다.
본 발명의 또 다른 양상은 사용자가 엔티티와 관련된 액션을 관리하고 액세스할 수 있는 다수의 사용자 인터페이스를 제공한다. 사용자가 관리자로서 행동할 수 있고 엔티티와 관련된 액션을 관리할 수 있도록 하는 관리용 사용자 인터페이스 가 제공된다. 관리용 사용자 인터페이스는 관리자가 새 액션을 엔티티와 관련되게 한다. 이것은 또한 관리자가 액션의 속성을 수정할 수 있도록 한다. 이 관리용 사용자 인터페이스는 또한 관리자가 액션 메뉴, 즉 현재의 문맥의 엔티티와 관련된 액션을 디스플레이하는 사용자 인터페이스를 관리할 수 있도록 한다.
본 발명은 엔티티와 관련된 액션 메뉴를 활성화하는 메뉴를 더 제공한다. 액션 메뉴는 세 개의 주요 상태, 디폴트 상태, 포커스/마우스-오버(focus/mouse-over) 상태 및 메뉴 상태를 지닌다. 비활성화되거나 또는 포커스에 있지 않은 경우, 액션 메뉴는 예를 들어 아이콘에 의해 나타내어지는 디폴트 상태에 있다. 액션 메뉴는 아이콘이 포커스로 탭된(tab) 경우 또는 마우스와 같은 포인팅 장치가 액션 메뉴를 나타내는 아이콘 위로 움직이는 경우, 디폴트 상태에서 포커스/마우스-오버 상태로 이행할 수 있다. 액션 메뉴는 사용자가 액션 메뉴를 나타내는 아이콘을 발동시키고 액션 메뉴가 포커스/마우스-오버 상태에 있는 경우, 메뉴 상태로 이행하고 그 현재의 문맥의 엔티티와 관련된 액션 전체를 디스플레이한다.
본 발명의 또 다른 양상은 액션 웹 파트(an actions Web Part)를 제공한다. 액션 웹 파트는 각종 유형으로 엔티티와 관련된 액션의 목록을 디스플레이한다. 사용자는 액션 웹 파트와 관련된 속성을 수정할 수 있다. 사용자는 또한 액션 웹 파트를 편집 모드로 전환하고 액션 항목들을 드래그 앤드 드롭(drag and drop)함으로써, 액션 웹 파트의 액션의 디스플레이 순서를 지정할 수 있다.
요약하면, 본 발명은 엔티티를 그들의 관련 액션으로부터 분리시키는 컴퓨팅 시스템을 제공한다. 본 발명은 또한 하나 이상의 문맥의 엔티티와 관련된 액션을 디스플레이하는 방법을 제공한다. 본 발명은 또한 다수의 사용자 인터페이스를 제공하고 이를 사용하여 엔티티와 관련된 액션을 관리하고 액세스할 수 있다. 결과적으로, 본 발명은 액션과 엔티티의 동적인 관련을 가능하게 하고, 엔티티와 관련된 액션의 문맥 게시를 가능하게 한다.
본 발명의 전술된 양상 및 그에 따르는 많은 이점들은 이하의 상세한 도면과 함께 이하의 설명을 참조하여 더 잘 이해될 것이다.
본 발명은 비즈니스 객체의 현재의 문맥과 관련된 액션을 게시하는 컴퓨팅 시스템, 컴퓨터 구현 방법 및 다수의 사용자 인터페이스에 관한 것이다. 본 발명의 양상들은 비즈니스 객체와 이에 관련된 액션을 별도로 저장하는 컴퓨팅 시스템에서 구현될 수 있다. 또한, 본 발명의 양상들은 비즈니스 객체의 현재의 문맥 및 이 문맥의 비즈니스 객체와 관련된 액션에 관한 정보를 제공하는 컴퓨터 구현 방법으로 구현될 수 있다. 또한, 본 발명의 양상들은 사용자로 하여금 비즈니스 객체와 관련된 액션을 관리하고 액세스할 수 있도록 하는 다수의 사용자 인터페이스로 구현될 수 있다.
본 발명은 주로 단일 컴퓨팅 시스템의 문맥에서 설명된다. 그러나, 본 발명의 양상들은 또한 분산 컴퓨팅 환경에서 구현될 수 있다. 예를 들어, 비즈니스 객체 및 이에 관련된 액션은 다른 데이터베이스 서버에 별도로 및 원격으로 저장될 수 있다. 비즈니스 객체 및 이에 관련된 액션을 사용하는 클라이언트 애플리케이션들은 서로 다른 클라이언트 시스템상에서 수행될 수 있는데, 이들 클라이언트 시 스템들은 비즈니스 객체의 현재의 문맥 및 이 문맥의 비즈니스 객체와 관련된 액션에 관한 정보를 제공하는 소프트웨어 컴포넌트를 수행하는 시스템과는 분리되어 있다. 또한, 본 발명이 주로 비즈니스 객체와 관련된 액션을 관리하고 액세스하는 것과 관련되어 설명됨에도 불구하고, 당업자들 및 다른 사람들은 본 발명이 또한 프로그래밍 객체, 사용자 인터페이스 객체 등과 같은 기타 데이터 객체에도 적용가능하다는 것을 이해할 것이다. 이러한 이유로, 이하에서 "엔티티"라는 용어는 "비즈니스 객체" 대신에 사용된다.
이하의 설명은 우선 본 발명이 구현될 수 있는 컴퓨팅 시스템을 설명한다. 이후, 엔티티의 현재의 문맥 및 이 문맥의 엔티티와 관련된 액션에 관한 정보를 제공하는 컴퓨터 구현 방법이 설명된다. 마지막으로, 엔티티와 관련된 액션의 관리 및 액세스를 가능하게 하는 다수의 사용자 인터페이스가 설명된다. 본 명세서에서 제공되는 이 도시적인 예제들은 총망라된다는지 또는 본 발명을 개시된 정확한 형태로 제한하고자 하는 것이 아니다. 동일하게, 본 명세서에 설명된 임의의 단계는 다른 단계들 또는 단계들의 조합과 상호 교환가능하고, 동일한 결과를 달성하기 위해 동일하거나 다른 순서가 될 수 있다.
도 2는 본 발명을 구현하기에 적합한 예시적인 컴퓨팅 시스템(200)을 도시한다. 일반적으로, 상술된 대로, 엔티티 및 이에 관련된 액션들은 물리적으로 또는 논리적으로 서로 긴밀하게 결합하여 있다. 이러한 엔티티 및 관련 액션의 긴밀 결합은 액션과 엔티티간의 동적인 관련을 제한한다. 이것은 또한 엔티티와 관련된 액션을 문맥상으로 디스플레이하는 기능을 제한한다. 이러한 제한을 해결하기 위 해, 본 발명은 엔티티를 이들과 관련된 액션으로부터 분리하는 컴퓨팅 시스템(200)을 제공한다. 예를 들어, 도 2에 도시된 대로, 엔티티는 SAP(202), SIEBEL(204), SQL(206) 또는 임의의 기타 유형의 데이터 관리 애플리케이션(208)에 저장된다. 이 엔티티와 관련된 액션은 액션 메타데이터 스토어(210)라고 불리는 장소에 모여져 있고, 이것은 액션과 관련된 엔티티들이 위치하고 있는 데이터 관리 애플리케이션(202-208)과 분리되어 있다. 데이터 관리 애플리케이션(202-208)은 어댑터(212)를 통해 액션 메타데이터 스토어(210)와 통신한다. 컴퓨팅 시스템(200)의 구조적 레이아웃을 이용하여 액션과 엔티티를 동적으로 관련시키는 것이 가능한데, 그 이유는 액션이 더 이상 엔티티의 통합된 일부가 아니기 때문이다. 이러한 컴퓨팅 시스템(200)은 또한 다른 문맥의 엔티티와 관련된 액션에 관한 문맥 정보를 제공하는 방법용 플랫폼을 제공한다. 도 6a 내지 6c는 이러한 방법의 한 예시적인 구현을 도시하고, 그 상세사항은 이후에 설명된다.
컴퓨팅 시스템(200)은 소프트웨어 컴포넌트(214)를 더 포함한다. 소프트웨어 컴포넌트(214)는 엔티티를 사용하는 클라이언트 애플리케이션(120)에 어떤 액션이 현재의 문맥의 엔티티와 관련되는지에 대해 알려준다. 본 발명에서, 문맥은 엔티티가 사용되는 환경에 관한 데이터를 캡처하는 하나의 정보이다. 엔티티는 하나 이상의 문맥을 지닐 수 있다. 예를 들어, 엔티티는 클라이언트 애플리케이션(120)에 관한 정보를 캡처하는 문맥을 지닐 수 있다. 엔티티는 또한 엔티티를 사용하고 있는 사용자의 역할에 관한 정보를 캡처하는 문맥을 지닐 수 있다. 엔티티는 엔티티 그 자체에 관한 정보를 캡처하는 문맥을 더 지닐 수 있다. 예를 들어, "고객" 엔티티는 다음의 세 개의 문맥: 고객 ID와 같은 정보를 제공하고, "고객" 엔티티 그 자체에 관한 정보를 캡처하는 엔티티 문맥, 사용자의 아이덴티티를 제공하는 역할 문맥 및 엔티티를 사용하고 있는 클라이언트 애플리케이션(120)을 식별하는 애플리케이션 문맥을 동시에 지닐 수 있다.
본 발명의 한 예시적인 실시예에서, 소프트웨어 컴포넌트(214)는 두 개의 모듈, 문맥 제공자(216) 및 액션 제공자(218)를 포함한다. 도 3과 관련하여 이하에 상세히 설명되는 바와 같이, 문맥 제공자(216)는 작업 환경, 즉 클라이언트 애플리케이션(120)에 의해 엔티티가 동작하는 문맥에 관한 정보를 제공한다. 액션 제공자(218)는 어느 액션이 현재의 문맥의 엔티티와 관련되는지에 관한 정보를 제공한다.
본 발명의 일부 실시예에서, 소프트웨어 컴포넌트(214)는 한 세트의 문맥 리졸버(220)를 더 포함한다. 문맥 리졸버(220)는 문맥을 키워드로 번역한다. 액션 제공자(218)는 질의를 구성하기 위해 문맥 리졸버(220)에 의해 제공되는 키워드를 사용한다. 액션 제공자(218)는 키워드로 주석이 달리는 액션을 찾기 위해 질의를 액션 메타데이터 스토어(210)로 전송한다.
도 3은 도 2에 도시된 컴퓨팅 시스템(200)을 이용하여, 본 발명의 한 예시적인 실시예에서의 데이터 흐름 경로를 도시한다. 여기서, 클라이언트 애플리케이션(120)은 특정 엔티티의 설치된 모든 문맥에 대해 요청을 전송한다. 클라이언트 애플리케이션(120)은 엔티티를 선택하고 이 엔티티와 관련된 액션을 관찰하기 위해 명령을 발행하는 것과 같이 사용자가 엔티티에 흥미를 보이자마자 이러한 요청을 초기화할 수 있다. 본 발명의 일부 실시예에서, 클라이언트 애플리케이션(120)은 소프트웨어 컴포넌트(214), 특히 소프트웨어 컴포넌트(214)의 문맥 제공자(216)에게 요청을 전송한다.
본 발명의 이 예시적인 실시예에서, 문맥 제공자(216)는 엔티티의 설치된 문맥상에서 정보를 획득한다. 이후 문맥 제공자(216)는 설치된 모든 문맥의 객체 인스턴스를 생성한다. 이후 문맥 제공자(216)는 ContextHash 객체를 생성하고, 이것은 엔티티의 설치된 모든 문맥의 객체 인스턴스를 포함한다. 이후 문맥 제공자(216)는 ContextHash 객체를 그 문맥을 요청했던 클라이언트 애플리케이션(120)으로 리턴한다.
클라이언트 애플리케이션(120)은 ContextHash 객체를 소프트웨어 컴포넌트(214)의 액션 제공자(218)에게 전달할 수 있다. 액션 제공자(218)는 ContextHash 객체에 포함된 설치된 문맥과 관련된 액션에 관한 질의를 생성하기 위해 ContextHash 객체를 가로지를 수 있다.
본 발명의 일부 실시예에서, 소프트웨어 컴포넌트(214)는 또한 한 세트의 문맥 리졸버(220)를 포함한다. 각 문맥은 대응하는 문맥 리졸버(220)를 지니고 있다. 문맥 리졸버(220)는 문맥을 취하고 이것을 이 문맥과 관련된 액션을 찾는데 사용될 수 있는 키워드로 번역한다. 키워드는 액션과 같은 메타데이터상의 주석이고 액션 메타데이터 스토어(210)로부터 이 액션을 질의하는 데에 사용될 수 있다. 이 실시예에서, 액션 제공자(218)는 설치된 문맥을 그들의 대응 문맥 리졸버(220)로 전달한다. 문맥 리졸버(220)는 이 설치된 문맥을 그들의 대응 키워드로 번역하 고 이 키워드를 액션 제공자(218)로 리턴한다.
설치된 문맥에 관한 정보를 수신한 후, 액션 제공자(218)는 액션 메타데이터 스토어(210)로 질의를 전송하고, 이 설치된 문맥과 관련된 액션을 검색한다. 문맥 리졸버(220)가 사용되는 본 발명의 실시예에서, 액션 제공자(218)가 액션 메타데이터 스토어(210)로 전송하는 질의는 문맥 리졸버(220)에 의해 제공되는 키워드를 또한 포함한다. 키워드와 관련된 모든 액션은 액션 메타데이터 스토어(210)에 위치한다.
이후 액션 메타데이터 스토어(210)는 액션 목록을 액션 제공자(218)에게 다시 전달하고, 액션 제공자(218)는 문맥 및 이 문맥의 엔티티와 관련된 액션 정보를 요청했던 클라이언트 애플리케이션(120)으로 그 정보를 다시 전달한다. 클라이언트 애플리케이션(120)은 이 액션으로 각종 일을 할 수 있다. 예를 들어, 클라이언트 애플리케이션(120)은 엔티티와 관련된 액션 메뉴의 액션을 게시(publish)할 수 있다.
본 발명의 한 예시적인 실시예에서, 소프트웨어 컴포넌트(214)는 클래스의 라이브러리이다. 클래스는 관리되는 코드 클래스 즉, Microsoft® .NET 유니버설 런타임과 같은 공통 언어 런타임 환경에 의해 실행되는 클래스로서 구현된다. 클래스는 또한 관리되지 않는 코드, 즉 운영 체제에 의해 직접 실행되는 클래스로서 구현될 수 있다.
도 4 및 도 5는 문맥 프레임워크(400) 및 액션 프레임워크(500)를 포함하는 소프트웨어 컴포넌트(214)의 한 예시적인 실시예를 도시한다. 도 4에 도시된 문맥 프레임워크(400)는 문맥 관련 정보를 호스팅하는 클래스를 포함한다. 예를 들어, IContext(402)는 모든 문맥 클래스가 구현하는 인터페이스이다. 본 발명의 한 실시예에서, IContext(402)는 Create() 메소드를 지닌다. 이 메소드는 소정의 유형의 새 문맥을 생성한다. 이 문맥은 엔티티 환경에 관해 필요한 모든 상세사항을 보유한다. 본 발명의 일부 실시예에서, IContext(402)는 또한 GetResolver() 메소드를 포함하는데, 이것은 한 문맥에 대한 문맥 리졸버(220) 객체를 리턴한다.
문맥 프레임워크(400)는 AbstractContext 클래스(404)를 더 포함한다. 이 클래스는 모든 문맥에 대한 모든 공통 논리를 보유하는 추상 기반 클래스이다.
본 발명의 한 예시적인 실시예에서, AbstractContext 클래스(404)로부터 도출된 문맥 클래스(406)가 제공된다. 도 4는 예시적인 문맥 클래스(406)를 도시한다. 도시된 이 예시적인 문맥 클래스(406)는 EntityContext 클래스(408)를 포함하고, 이것은 사용자가 현재 어떤 클래스를 다루고 있는지에 관한 데이터를 보유한다. EntityContext 클래스(408)는 Create() 메소드를 포함한다. 이 메소드는 각종 소스로부터 엔티티 데이터를 찾으려 한다. 현재의 웹 페이지가 소스가 될 수 있다. 예를 들어, 사용자가 MYSITE를 운영중이라면, 본 발명의 이 예시적인 실시예는 주요 엔티티가 이 MYSITE의 소유자의 사용자 프로필이라고 가정한다. 또 다른 소스는 현재의 엔티티에 관한 정보를 전달하는 데에 사용되는 질의 문자열이 될 수 있다. Create() 메소드는 질의 문자열을 취해 그것으로부터 클래스 이름 및 객체 키를 추출한다. EntityContext 클래스(408)는 또한 GetEntityObject() 메소드를 포함할 수 있다. 이 메소드는 저장된 클래스 및 객체 키 데이터에 기초하여 작 성된 엔티티 객체를 리턴한다. EntityContext 클래스(408)는 저장된 클래스 이름을 리턴하는 클래스 필드를 또한 포함할 수 있다.
또 다른 예시적인 문맥 클래스는 ApplicationContext(412)이다. 엔티티는 다른 유형의 클라이언트 애플리케이션(120)에서 다른 액션을 지닐 수 있다. 예를 들어, 사용자는 오피스 클라이언트 프로그램의 동일한 엔티티에 반대하여 웹 기반 애플리케이션의 엔티티에 대해 다른 액션이 나타내어지는 것을 원할 수 있다. ApplicationContext 클래스(412)는 현재의 클라이언트 애플리케이션(120)에 대한 정보를 저장한다. ApplicationContext.Create()는 클라이언트 애플리케이션(120)을 식별하고, 이 정보를 저장한다.
또 다른 예시적인 문맥 클래스는 RoleContext(414)이다. 이 클래스는 사용자의 역할에 대한 데이터를 보유한다. 본 발명의 실시예에서, RoleContext.Create()는 현재 스레드(thread)의 아이덴티티를 검사하고, 사용자에게 어떠한 역할이 주어져 있는가에 관한 결론을 이끌어내고, 내부적으로 역할 정보를 저장한다. 예를 들어, 사용자는 클라이언트 애플리케이션(120)에 대한 관리자의 역할일 수 있다.
본 발명의 실시예는 또 다른 예시적인 문맥 클래스인 LocaleContext 클래스(416)를 포함할 수 있다. 이 클래스는 액션이 애플리케이션의 현재 언어에 좌우될 때 현재 장소에 관한 정보를 저장한다. 본 발명의 다른 실시예는 추가의 문맥 클래스를 포함할 수 있다.
문맥 프레임워크(400)는 ContextProvider 클래스(216)를 더 포함한다. ContextProvider 클래스(216)의 객체 인스턴스는 사용자가 엔티티와 관련되고 사용가능한 모든 문맥을 얻고자 할 경우 집계자(aggregator)로서 사용될 수 있다. ContextProvider 클래스(216)가 GetContexts() 메소드를 포함하는 것이 바람직하다. 본 발명의 예시적인 실시예에서, 엔티티의 설치된 문맥을 포함하는 목록이 제공된다. GetContexts() 메소드는 이 설치된 문맥의 목록을 검토하여, 이들 모두상에서 Create() 메소드를 호출하고, 그 결과로 생기는 설치된 문맥의 객체 인스턴스를 포함하는 ContextHash 객체를 리턴한다. 클라이언트 애플리케이션(120)이 단지 개개의 문맥을 사용하기 위해 필요한 경우, 개개의 문맥은 대응하는 Context.CreateOpen() 메소드를 호출함으로써 획득된다. 클라이언트 애플리케이션(120)이 엔티티와 관련되고 사용가능한 모든 문맥을 얻을 필요가 있는 경우, 클라이언트 애플리케이션(120)은 ContextProvider.GetContexts()를 호출할 수 있다.
도시된 본 발명의 예시적인 실시예에서, 문맥 프레임워크(400)는 ContextHash 클래스(420)를 더 포함한다. ContextHash 클래스(420)는 단순히 해쉬 테이블 주위의 래퍼(wrapper)이고, 이것은 한 세트의 문맥을 포함한다. ContextHash 클래스(420)는 항목[유형, 키]속성을 포함하고, 이것을 이용하여 개개의 문맥의 유형에 의해 그것으로의 액세스가 가능하다.
도 5에 도시된 대로, 소프트웨어 컴포넌트(214)는 액션 프레임워크(500)를 더 포함한다. 본 명세서에 설명된 본 발명의 예시적인 실시예에서, 액션은 일부 활동 및 그 활동이 사용자에게 어떻게 보여져야 하는가에 관한 정보를 캡슐화하는 메타데이터 객체이다. 이러한 활동은 예를 들어, SAP과 같은 데이터 관리 시스템 에서 "고객" 엔티티를 생성하는 것이 될 수 있다. 액션 메타데이터 객체는 일반적으로 두 가지 주요 데이터를 저장한다. 하나는 액션이 사용자에게 보여지는 디스플레이 방법이다. 이 디스플레이 방법은 "SAP에 추가되어"와 같은 문자열을 리턴할 수 있고, 또는 복잡한 하이퍼링크를 작성하는 것과 같이 좀 더 복잡한 뭔가를 할 수 있다. 액션에 포함된 또 다른 데이터는 실제로 액션을 수행하는 실행 방법이다. 예를 들어, 실행 방법은 "고객" 엔티티에 대해 새 고객을 셋업(set up)할 수 있다.
액션 프레임워크(500)에서 중요한 클래스는 ActionProvider 클래스(218)이다. 도 2 및 도 3에 관한 상술된 설명에 언급되었듯이, ActionProvider 클래스(218)는 한 세트의 문맥을 취하고 이 문맥과 관련된 액션 목록을 리턴한다. 도시된 본 발명의 예시적인 실시예에서, ActionProvider 클래스(218)는 GetActions() 메소드를 구현한다. 이 메소드는 설치된 문맥의 객체 인스턴스를 포함하는 ContextHash 객체를 취하고 이 문맥과 관련된 액션 목록을 리턴한다. 본 발명의 한 실시예에서, GetActions() 메소드는 모든 문맥을 열거하기 위해 ContextHash 객체를 검토한다. 이후 GetActions() 메소드는 모든 문맥상에서 GetResolver() 메소드를 호출하여 그에 대응하는 문맥 리졸버(220)를 획득한다. 이후 GetActions() 메소드는 설치된 문맥을 반영하는 키워드를 획득하기 위해 모든 문맥 리졸버(220)를 질의한다. 이후 GetActions() 메소드는 키워드로 주석이 달린 액션을 검색하기 위해 액션 메타데이터 스토어(210)를 질의한다.
엔티티의 사용자가 동시에 여러 문맥에 있는 경우 일부 액션이 검색될 수 있 다. 예를 들어, 관리자로서 행동하는 "고객" 엔티티의 사용자는 "고객" 엔티티 문맥 및 "관리자" 역할 문맥 둘 다에 동시에 있을 수 있다. 따라서, GetActions() 메소드는 "고객" 키워드 및 "관리자" 키워드 둘 다로 주석이 달린 액션을 검색하기 위해 액션 메타데이터 스토어(210)를 질의할 수 있다. 본 발명의 실시예에서, 액션은 그것이 기타 다른 키워드가 아닌 "고객" 키워드 및 "관리자" 키워드 둘 다로 주석이 달린 경우에만 리턴될 것이다. 반면, 일부 액션은 그것이 설치된 문맥 중 하나와 관련되는 경우 검색된다. 예를 들어, 클라이언트 애플리케이션(120)은 "고객" 엔티티 문맥과 관련된 액션을 요청할 수 있다. 따라서, GetActions 메소드는 "고객" 키워드로 주석이 달려있는 액션을 검색하기 위해 액션 메타데이터 스토어(210)를 질의한다. 액션은 그것이 다른 키워드에 의해 주석이 달려 있다 하더라도, "고객" 키워드로 주석이 달려있기만 하면 리턴될 것이다. 도시된 본 발명의 예시적인 실시예에서, 검색될 액션이 하나의 문맥 또는 다수의 문맥과 관련되어야 하는지 여부를 판정하기 위해, 액션 메타데이터 스토어(210)는 CombinationMode 필드를 지닌다. 이 필드가 ALL로 설정되는 경우, 이 액션에 주석을 다는 키워드가 GetActions() 메소드에 의해 전송된 질의의 모든 키워드를 포함하는 경우, 질의하자마자 이 액션은 리턴된다. CombinationMode 필드가 ANY로 설정되는 경우, 액션이 GetActions() 메소드에 의해 전송된 질의의 키워드 중 적어도 하나로 주석이 달린 경우, 액션은 검색된다.
도시된 본 발명의 예시적인 실시예에서, GetActions() 메소드에 의해 행해지는 질의는 두 단계로 행해진다. 먼저, 메소드는 액션의 CombinationMode 필드가 "ALL"로 설정되어 있고 GetActions() 메소드에 의해 제공되는 질의에서 액션에 대한 키워드가 액션에 주석을 다는 모든 키워드인 모든 액션을 얻는다. 다음으로, GetActions() 메소드는 액션의 CombinationMode 필드가 "ANY"로 설정되어 있고 GetActions() 메소드에 의해 제공되는 질의에서 액션에 대한 키워드가 액션에 주석을 다는 키워드 중 적어도 하나를 지니는 모든 액션을 얻는다. 이후 GetActions() 메소드는 두 단계의 결과를 조합하여 그 결과로 생기는 액션의 목록을 리턴한다.
액션 프레임워크(500)는 또한 액션 클래스(504)를 포함한다. 본 발명의 실시예에서, 액션 클래스(504)는 액션 메타데이터의 관리된 코드 표현이다. 액션 클래스(504)는 GetDisplayMethod()를 포함한다. 이 메소드는 액션을 디스플레이하는 방법을 리턴한다. 이 메소드는 "SAP에서 고객을 편집하라(Edit Customer in SAP)"와 같은 문자열을 리턴하거나, 또는 하이퍼링크를 작성하는 것과 같이 좀 더 복잡한 어떤 것을 할 것으로 예상된다. 액션 클래스(504)는 또한 GetExecuteMethod()를 포함하는데, 이것은 액션을 실제로 수행하는 메소드를 리턴한다. GetDisplayMethod()가 하이퍼링크를 리턴하는 경우, 액션은 실행 메소드를 전혀 지니지 않을 수 있다; 이런 경우, GetExecuteMethod()는 널(null)을 리턴한다. 액션 클래스(504)는 또한 GetActionTemplate()를 포함할 수 있고, 이것은 액션의 액션 템플릿을 리턴한다.
본 발명의 일부 실시예에서, 액션 프레임워크(500)는 또한 ActionTemplate 클래스(506)를 포함할 수 있다. 일부 상황에서, 한 액션에 대해 사용될 수 있는 기존의 메소드가 존재한다면, 문맥 제공자(216)에 의해 생성되는 ContextHash 객체 로부터 모든 정보가 추출될 필요는 없다. 기존 메소드의 매개변수에 대해 필요한 정보만이 추출되면 된다. 이러한 상황에서, ActionTemplate 클래스(506)는 번역자로서 행동한다. 이것은 ContextHash 객체를 취해서 그것으로부터 기존 메소드의 매개변수에 대해 필요한 정보를 추출하고, 그 정보를 기존 메소드로 전달한다. 이 ActionTemplate 클래스(506)는 Execute()라는 하나의 메소드를 지닌다. 이 메소드는 ContextHash 객체 및 메소드 설명을 취해서, 메소드에 대해 적당한 매개변수를 찾기 위해 ContextHash 객체내의 문맥을 파싱하고, 그 메소드를 실행한다. 다수의 메소드가 하는 것과 같은 공통 특성을 지니는 다수의 메소드에 대해 하나의 ActionTemplate(506)이 사용될 수 있다. 메소드의 각각의 그룹은 ContextHash 객체로부터 어떻게 올바른 매개변수를 얻는지에 대해 알고 있는 하나의 ActionTemplate(506)을 지닐 수 있다.
결과적으로, 메소드를 실행할 때, 본 발명은 클라이언트 애플리케이션(120)이 Method.Execute()를 직접 호출하고 ContextHash 객체를 클라이언트 애플리케이션(120)으로 전달하든지 또는 ActionTemplate.Execute()를 호출하고 메소드의 설명 및 ContextHash 객체를 클라이언트 애플리케이션(120)으로 전달하든지 둘 중 하나를 할 수 있도록 한다.
도 3에 도시된 대로, 도시된 본 발명의 예시적인 실시예에서, 소프트웨어 컴포넌트(314)는 한 세트의 문맥 리졸버(220)를 더 포함할 수 있고, 이들 각각은 하나의 문맥에 대응한다. 문맥 리졸버(220)는 문맥을 키워드 세트로 번역한다. 키워드는 액션 메타데이터 스토어(210)로부터 잡다한 메타데이터에 대한 질의에서 사 용될 수 있다. 본 발명의 일부 실시예에서, 문맥 리졸버(220)는 IContextResolver라 불리는 인터페이스를 포함할 수 있다. 이것은 모든 문맥 리졸버(220)가 구현해야 하는 인터페이스이다. 이것은 한 문맥을 취해서 키-값 쌍의 용어표(a dictionary of key-value pairs)를 리턴하는 ResolvetoQuery() 메소드를 지닌다.
본 발명의 일부 실시예에서, 소프트웨어 컴포넌트(314)는 제3 자에 의해 구축되는 주문형 문맥 및 문맥 리졸버에 의해 확장될 수 있다. 제3 자가 그들의 문맥에 관한 정보를 제공할 수 있는 단순 등록 메커니즘이 제공된다. 본 발명의 일부 실시예에서, 제3 자는 그들의 메소드를 실행하는 논리를 제공하고 액션 메타데이터 스토어(210)의 액션을 셋업하고 키워드를 그 액션과 관련시킴으로써 새로운 액션을 또한 추가할 수 있다.
본 발명의 일부 실시예에서, 애플리케이션 성능 속도에 관하여 문맥 제공자(216) 및 액션 제공자(218)의 실행을 투명하게 하기 위해, 문맥 제공자(216)는 그것이 그 일생동안 생성해 온 문맥상에서 유지된다. 이러한 방식으로, 웹 페이지는 문맥 제공자(216) 객체가 로드될 때 문맥 제공자(216) 객체를 생성할 수 있고, 모든 웹 파트는 이 객체로부터 문맥을 얻을 수 있고, 이전 웹 파트의 문맥 객체를 재사용한다. 또한, 액션 제공자(218)는 애플리케이션 레지스트리 메타데이터 캐싱을 사용한다. 이러한 방식으로, 시스템은 필요한 액션 목록을 검색하기 위해 액션 메타데이터 스토어(210)로 반복되는 여행을 전혀 할 필요가 없다.
도 6a 내지 6c는 문맥 액션 게시에 대한 하나의 예시적인 방법(600)을 도시한다. 이 방법(600)은 도 2에 도시된 컴퓨팅 시스템(200)에 관하여 설명된다. 방 법(600)은 우선 문맥 제공자(216)를 사용하여 엔티티가 있는 문맥을 찾는다. 이후 방법(600)은 액션 제공자(218)를 사용하여 이들 문맥에 대응하는 모든 액션을 찾는다. 이후 엔티티가 사용되는 클라이언트 프로그램(120)은 사용자가 문맥의 엔티티상에서 수행할 수 있는 액션 세트를 디스플레이할 수 있다.
엔티티에 대해 설치된 문맥의 목록에 대해 클라이언트 애플리케이션(120)으로부터 요청을 수신하자마자(블록(602) 참조), 방법(600)은 설치된 문맥의 객체 인스턴스를 포함하는 ContextHash 객체를 생성함으로써 문맥 정보를 제공하는 프로세스(604)를 실행한다. 블록(604)을 참조하라. 도 6b는 프로세스(604)의 한 예시적인 실시예를 도시하고, 아래에서 상세히 설명될 것이다. 프로세스(604)를 실행한 후, 방법(600)은 ContextHash 객체의 설치된 문맥 객체와 관련된 액션에 대해, 설치된 문맥을 요청했던 것과 동일한 클라이언트 애플리케이션(120)으로부터 요청을 수신할 수 있다. 블록(620)을 참조하라. 이후 방법(600)은 액션 메타데이터 스토어(210)에 대해 질의를 작성하고 ContextHash 객체의 설치된 문맥 객체와 관련된 모든 액션을 검색하기 위해 프로세스(622)를 실행한다. 블록(622)을 참조하라. 도 6c는 프로세스(622)의 한 예시적인 실시예를 도시하고, 아래에서 상세히 설명될 것이다. 프로세스(622)를 실행한 후, 방법(600)은 종료된다.
도 6b는 엔티티와 관련된 설치된 문맥을 제공하는 프로세스(604)의 한 예시적인 실시예를 도시한다. 프로세스(604)는 우선 엔티티와 관련된 설치된 문맥에 관한 정보를 획득하려 한다. 블록(606)을 참조하라. 본 발명의 한 실시예에서, 프로세스(604)는 설치된 문맥에 관한 정보를 포함하는 구성 파일을 오픈한다. 예 를 들어, 설치된 문맥이 엔티티 문맥 및 역할 문맥인 경우, 이 구성 파일은 엔티티 문맥 및 역할 문맥에 대한 클래스 정보를 포함할 것이다. 이후 프로세스(604)는 구성 파일내의 설치된 문맥 목록을 검토하고, 이들 설치된 문맥의 객체 인스턴스를 생성한다. 블록(608)을 참조하라. 예를 들어, 프로세스(604)는 EntityContext 객체 인스턴스 및 RoleContext 객체 인스턴스를 생성하기 위해 EntityContext.Create() 및 RoleContext.Create()를 호출할 수 있다. EntityContext 클래스는 그것이 수신한 URL을 파싱하고 고객 ID 255로 "고객" 클래스의 인스턴스를 생성하기로 된 것을 찾는다. EntityContext 클래스는 고객 클래스에 대한 핸들러를 얻기 위해 Class.GetClass("고객")를 호출한다. 이후 EntityContext 클래스는 올바른 "고객" 객체 인스턴스를 생성하기 위해 Class.Instantiate(255)를 호출한다. 이후 EntityContext 클래스는 EntityContext 객체 인스턴스를 리턴한다. 반면, RoleContext 클래스는 현재 사용자의 아이덴티티를 검사하고 그 사용자가 관리자라는 것을 알아낸다. RoleContext 클래스는 역할(관리자) 정보를 저장하고 RoleContext 객체 인스턴스를 유지한다. 이후 프로세스(604)는 ContextHash 객체를 생성하고 설치된 문맥의 생성된 객체 인스턴스를 이 ContextHash 객체에 둔다. 블록(610)을 참조하라. 예를 들어, 프로세스(604)는 위에서 생성된 EntityContext 및 RoleContext 객체 인스턴스를 ContextHash 객체에 둘 수 있다. 이후 프로세스(604)는 그 결과로 생기는 ContextHash 객체를 리턴한다. 블록(612)을 참조하라.
도 6c는 설치된 문맥의 엔티티와 관련된 액션을 검색하는 프로세스(622)의 한 예시적인 실시예를 도시한다. 프로세스(622)는 프로세스(604)에 의해 생성된 ContextHash 객체를 검토하고 설치된 문맥 각각에 대해 적절한 문맥 리졸버(220)를 호출한다. 블록(624)을 참조하라. 예를 들어, EntityContext 및 RoleContext 객체 인스턴스가 ContextHash 객체가 포함하는 것일 경우, 프로세스(622)는 EntityContextResolver 및 RoleContextResolver를 다시 얻을 수 있다. 문맥 리졸버(220)는 이 설치된 문맥들을 반영하는 키워드를 리턴한다. 블록(626)을 참조하라. 예를 들어, 엔티티가 "고객"인 경우, EntityContextResolver는 키워드 "고객"을 리턴한다. 사용자의 역할이 관리자인 경우, RoleContextResolver는 키워드 "관리자"를 리턴한다. 이후 프로세스(622)는 이 키워드로 주석이 달린 액션을 검색하기 위해 액션 메타데이터 스토어(210)에 대해 이들 키워드를 포함하는 질의를 작성한다. 블록(628)을 참조하라. 예를 들어, 프로세스(622)는 키워드 "고객" 및 "관리자"를 포함하는 질의를 작성할 수 있다. 이후 프로세스(622)는 액션 목록을 검색하고 그것을 액션 메타데이터 스토어(210)로부터 리턴한다. 블록(630)을 참조하라.
설치된 문맥 및 이 설치된 문맥과 관련된 액션에 대해 요청했던 클라이언트 애플리케이션(120)은 방법(600)에 의해 리턴된 액션을 사용할 수 있다. 클라이언트 애플리케이션(120)은 임의의 목적에 대해 액션을 사용할 수 있다. 본 발명의 일부 실시예에서, 클라이언트 애플리케이션(120)은 액션 메뉴에 액션을 디스플레이하여 사용자는 자신이 엔티티로 할 수 있는 것에 관한 정보를 받을 수 있다. 사용자는 액션 메뉴에서 액션을 선택함으로써 실행시킬 수 있다. 이하에서 도 12 내지 13의 설명과 관련하여 액션 메뉴에 대해 더 설명될 것이다.
본 발명은 또한 엔티티와 관련된 액션을 관리하고 액세스하는 다수의 사용자 인터페이스를 제공한다. 도 7 내지 10은 엔티티와 관련된 액션을 관리하는 사용자 인터페이스(700)의 한 예시적인 구현을 도시한다. 이 예제에서, 사용자는 관리자로서 행동한다. 사용자 인터페이스(700)를 통해, 관리자는 엔티티와 관련된 액션을 생성하고 수정한다. 관리자는 또한 하나 이상의 문맥의 엔티티와 관련된 액션을 디스플레이하는 액션 메뉴를 관리할 수 있다.
본 발명의 예시적인 실시예에서, 사용자 인터페이스(700)는 Microsoft® Shared Resource Provider 관리 프로그램의 일부인 애플리케이션 레지스트리 관리 페이지내에 설치된다. 관리자가 애플리케이션 레지스트리 관리 프로그램에서 클라이언트 애플리케이션(120)을 선택하고, 엔티티상에서 클릭함으로써 사용자 인터페이스(700)에 도달할 수 있다. 이것은 엔티티 편집 페이지를 오픈한다. 엔티티 편집 페이지의 액션 섹션은 관리자가 액션을 추가하고 및/또는 편집할 수 있도록 하고, 액션 메뉴에 어느 액션이 나타나야하는지 그리고 어떤 순서로 나타나야하는지를 지정할 수 있도록 한다. 엔티티가 자신과 관련된 액션이 없는 경우, 엔티티 편집 페이지의 액션 섹션은 이 엔티티는 액션이 없다는 것을 보여준다.
도 7에 도시된 대로, 도시된 본 발명의 예시적인 실시예에서, 사용자 인터페이스(700)는 엔티티와 관련된 액션이 있는 경우, 액션(702)을 식별한다. 사용자 인터페이스(700)는 액션 이름(704)을 또한 식별한다. 예를 들어, 도 7은 고객 엔티티와 관련된 세 개의 액션(702), "고객 편집" 액션(708), "새 고객" 액션(710) 및 "프로필 보기" 액션(712)을 도시한다. 사용자 인터페이스(700)는 또한 각 액션의 액션 유형을 식별한다. 액션의 액션 유형은 그 액션이 선택되는 경우 어떤 일이 일어나는가를 나타낸다. 예를 들어, 도 7에서, 사용자 인터페이스(700)는 이들 세 개의 액션, 웹 페이지로 가기(714), 웹 페이지로 가기(진보됨)(716), 주문형 액션 실행(718) 각각과 관련된 액션 유형(706)을 디스플레이한다. 도 7에 도시된 사용자 인터페이스(700)는 또한 디스플레이된 액션들 중 어느 것이 디폴트 액션(720)인지를 나타낼 수 있다. 예를 들어, 도 7은 "고객" 엔티티에 대한 디폴트 액션은 "고객 편집" 액션(708)이라는 것을 보여주고 있다.
도 7에 도시된 대로, 사용자 인터페이스(700)에서, 관리자는 액션 이름(704)을 클릭함으로써 액션을 편집할 수 있다. 관리자는 또한 "액션 추가" 링크(722)를 클릭함으로써 액션을 추가할 수 있다. 관리자는 또한 "액션 메뉴 관리" 링크(724)를 클릭함으로써 이 엔티티와 관련된 액션 메뉴를 관리할 수 있다.
도 8a 내지 10에서는 도 7에 도시된 사용자 인터페이스(700)를 계속하여 도시한다. 보다 구체적으로, 도 8a 내지 8c에서는 사용자 인터페이스(700)를 이용하여 관리자가 다른 액션 유형의 액션을 "고객" 엔티티에 추가하는 방법을 도시한다. 예를 들어, 도 8a에서는 관리자가 액션 유형 "웹 페이지로 가기"(714)의 액션을 추가하는 방법을 도시한다. 본 발명의 한 실시예에서, 액션 유형 "웹 페이지로 가기"의 액션은 단지 사용자를 URL로 데려다주고, 선택사항으로 엔티티 데이터를 질의 문자형 매개변수 또는 포스트 데이터로서 전달한다. 이들 액션은 http://abc/def/def.asp?valueid=100과 같이 URL이 있는 웹 페이지에 대해 적합하 다. 사용자 인터페이스(700)는 우선 관리자에게 액션의 이름(704)을 지정해 줄 것을 요청한다. 이후 사용자 인터페이스(700)는 관리자에게 액션의 액션 유형(706)을 지정해 줄 것을 요청한다. 예를 들어, 도 8a에서, 관리자는 액션(704)의 액션 유형(706)이 "웹 페이지로 가기"(714)라는 것을 선택한다. 또한, 관리자는 이 액션이 이 엔티티에 대해 디폴트 액션(720)이라는 것을 지정한다.
사용자 인터페이스(700)는 관리자에게 사용자가 이 액션을 발동시킬 때 사용자를 데려갈 웹 페이지의 위치(802)를 지정해 줄 것을 또한 요청한다. 사용자 인터페이스(700)는 관리자에게 웹 페이지로 전달될 각각의 매개변수의 이름(804) 및 값(806)을 지정해 줄 것을 또한 요청한다. 사용자 인터페이스(700)는 관리자가 "매개변수 추가" 링크(808)를 이용하여 다수의 매개변수를 웹 페이지로 전달하는 것을 허용한다. 사용자 인터페이스(700)는 또한 관리자가 "예" 또는 "아니오" 버튼(810)을 선택함으로써 웹 페이지를 새 브라우저 윈도우에 론칭할 것인지 여부를 지정할 수 있도록 한다. 예를 들어, 도 8a에 도시된 사용자 인터페이스(700)에서, 관리자는 새 브라우저 윈도우에 웹 페이지를 론칭하도록 선택한다.
사용자 인터페이스(700)는 관리자에게 "Get" 또는 "Post" HTTP 메소드(812)를 사용하여 웹 페이지 요청 여부를 지정해 줄 것을 또한 요청할 수 있다. 예를 들어, 도 8a에 도시된 사용자 인터페이스(700)에서, 관리자는 웹 페이지를 요청하기 위해 "Get" HTTP 메소드를 사용하도록 선택한다. 당업자들은 "Get" HTTP 메소드가 웹 서버로부터 HTML 문서를 검색한다는 것을 알고 있을 것이다. "Get" HTTP 메소드를 이용하는 폼(a form)으로부터의 정보는 요청되는 액션 URL의 끝부분에 첨 가된다. 일반적으로, "Get" HTTP 메소드는 URL 액세스가 정보를 추가하거나 삭제함으로써 데이터베이스의 상태를 변경하지 않는 경우에 사용될 수 있다. 반면, URL 액세스가 웹 서버 데이터베이스에 변경을 초래하는 경우, "Post" HTTP 메소드가 사용되어야 한다. "Post" HTTP 메소드는 폼 내의 모든 입력을 즉시 URL로 전송한다. "Get" HTTP 메소드에 대해 "Post" HTTP 메소드를 사용하는 데 있어서의 주요 이점은 데이터가 엿보는 눈(prying eyes)에 노출되지 않는다는 것이다. 또한, "Get" HTTP 메소드를 이용하면 제한된 양의 데이터를 전송할 수 있는 데에 반해, "Post" HTTP 메소드는 이러한 제한이 없다.
도 8b는 관리자가 액션 유형 "웹 페이지로 가기(진보됨)"(716)인 액션의 추가를 선택한 경우의 사용자 인터페이스(700)를 도시한다. 이 액션 유형의 액션은 관리자가 URL에 매개변수를 삽입하고 Microsoft® .Net 포맷 문자열로 유연하게 그 매개변수들을 포맷하는 것을 허용한다. 이 액션은 http://bugcheck/bugs/sps/100.asp와 같은 웹 페이지에 대해 작동한다. 도 8b에 의해 도시된 사용자 인터페이스(700)는 도 8a에 도시된 액션 유형 "웹 페이지로 가기"(714)의 액션을 구성하는 사용자 인터페이스(700)와 매우 동일하다. 주요 차이점은 관리자가 웹 페이지의 위치(802)를 지정한 후, 도 8a에 도시된 대로 매개변수의 이름(804) 및 값(806)을 지정하는 대신, 관리자가 URL내의 포맷 문자열에 대한 포맷 인덱스(820) 및 값(822)을 지정한다는 것이다.
본 발명의 실시예는 또한 제3 자에 의해 제공되는 주문형 액션을 허용한다. 본 발명의 실시예에서, 주문형 액션은 IActionEventHandler와 같은 인터페이스를 구현하는 클래스내의 코드를 실행한다. 도 8c는 관리자가 액션 유형 "주문형 액션 실행"(718)인 액션의 추가를 선택했을 경우의 사용자 인터페이스(700)를 도시한다. 사용자 인터페이스(700)는 관리자에게 이 액션과 관련된 액션 이벤트 핸들러(830)에 대한 정보를 입력해 줄 것을 요청한다. 본 발명의 일부 실시예에서, 관리자는 이 액션 이벤트 핸들러에 대해 완전히 검증된 어셈블리 이름(832) 및 클래스 이름(834)을 제공해야 한다.
본 발명의 일부 실시예에서, 사용자 인터페이스(700)는 관리자가 액션을 추가할 때 그 액션과 관련된 위치를 지정하는 것을 또한 허용할 수 있다. 예를 들어, 관리자는 "영어(미합중국)"의 위치를 "고객 프로필 보기" 액션과 관련시키도록 지정할 수 있다.
도 9는 도 7에 표시된 대로, 관리자가 액션을 편집하기 위해 액션의 이름(704)을 클릭한 경우의 사용자 인터페이스(700)의 한 실시예를 도시한다. 액션을 편집할 때, 관리자는 액션의 이름(704) 및/또는 액션의 액션 유형(706)을 변경할 수 있다. 관리자는 또한 이 액션이 디폴트 액션(720)인지 여부를 지정할 수 있다. 예를 들어, 도 9에서, 관리자는 액션 이름(704)을 "새 고객 편집"이 되도록 수정한다. 관리자는 또한 액션의 액션 유형(706)을 "웹 페이지로 가기"(714)가 되도록 지정한다. 관리자는 이 액션과 관련된 "고객" 엔티티가 발동될 때, 이 "새 고객 편집" 액션이 디폴트 액션(720)이 되도록 또한 지정한다.
도 10은 관리자가 도 7에 도시된 "액션 메뉴 관리" 링크(724)를 발동시킬 때의 사용자 인터페이스(700)를 도시한다. 액션 메뉴 관리 스크린은 관리자가 액션 메뉴에 어떤 액션이 나타나야하는지 및 이 액션들이 어떤 순서로 나타나야하는지를 제어하는 것을 허용한다. 도 10에 도시된 대로, 관리자는 액션 옆에 위치한 디스플레이 체크 박스(1002)를 표시하거나 또는 표시해제함으로써 액션 메뉴에 보여지는 액션을 제어할 수 있다. 예를 들어, 도 10에서, 관리자는 세 개의 액션-- 고객 편집, 새 고객, 프로필 보기-- 옆에 위치한 세 개의 디스플레이 박스 모두를 표시함으로써 이 세 개의 액션 모두를 디스플레이하도록 선택할 수 있다. 관리자는 또한 "상위로부터의 위치" 박스(1004)의 숫자를 선택함으로써 액션 메뉴에 디스플레이될 이들 액션의 순서를 지정할 수 있다. 예를 들어, 도 10에서, 관리자는 "상위로부터의 위치" 박스(1004)가 각각 1, 2, 3이 되도록 이 값을 지정함으로써 "고객 편집", "새 고객" 및 "프로필 보기"의 순서로 액션이 디스플레이되도록 선택할 수 있다.
도 11a 및 11b는 엔티티와 관련된 액션을 관리하는 방법(1100)을 도시한다. 방법(1100)은 도 7 내지 10에 도시된 사용자 인터페이스(700)에 관하여 설명된다. 방법(1100)은 우선 엔티티와 관련된 액션을 관리하기 위한 요청이 있는지 여부를 검사한다. 결정 블록(1102)을 참조하라. 그 답이 "아니오"인 경우, 방법(1100)은 아무것도 하지 않는다. 그 답이 "예"인 경우, 방법(1100)은 엔티티 편집 페이지 를 디스플레이한다. 블록(1104)을 참조하라. 그 후 방법(1100)은 진행하여 액션을 추가하기 위한 요청이 있었는지를 검사한다. 결정 블록(1106)을 참조하라. 결정 블록(1106)에 대한 답이 "예"인 경우, 방법(1100)은 프로세스(1108)로 진행하여 수신된 입력에 따라 액션을 추가한다. 블록(1108)을 참조하라. 도 11b는 프로세 스(1108)의 예시적인 구현을 도시하며 이후에 상세히 설명된다. 방법(1100)이 액션을 편집하기 위한 요청을 수신하는 경우(결정 블록(1110) 참조), 방법(1100)은 진행하여 수신된 입력에 따라 액션과 관련된 속성을 수정한다. 블록(1112)을 참조하라. 방법(1100)이 이 엔티티와 관련된 액션 메뉴를 관리하기 위한 요청을 수신하는 경우(결정 블록(1114) 참조), 방법(1100)은 진행하여 수신된 입력에 따라 액션 메뉴를 조정한다. 블록(1116)을 참조하라. 본 발명의 실시예에서, 수신된 입력에 따라 액션을 추가하고 액션을 수정하고 또는 액션 메뉴를 조정한 후, 방법(1100)은 엔티티 편집 페이지를 디스플레이하기 위해 리턴하고 다음 요청을 기다린다. 방법(1100)이 일정 시간동안 요청을 수신하지 않거나 종료 신호를 수신하는 경우, 방법(1100)은 종료된다.
도 11b는 입력에 따라 액션을 추가하는 프로세스(1108)의 한 예시적인 실시예를 도시한다. 프로세스(1108)는 수신된 입력에 따라 액션의 이름을 정의함으로써 시작된다. 블록(1120)을 참조하라. 그 후 프로세스(1108)는 수신된 입력에 따라 액션의 액션 유형을 검사한다. 액션 유형이 "웹 페이지로 가기"(714)(결정 블록(1122) 참조)인 경우, 프로세스(1108)는 수신된 입력에 따라 웹 페이지 URL 및 매개변수를 지정한다. 블록(1124)을 참조하라. 액션 유형이 "웹 페이지로 가기(진보됨)"(716)(결정 블록(1126) 참조)인 경우, 프로세스(1108)는 수신된 입력에 따라 웹 페이지 URL, 매개변수 및 포맷 문자열을 지정한다. 블록(1128)을 참조하라. 액션 유형이 "주문형 액션 실행"(718)(결정 블록(1130) 참조)인 경우, 프로세스(1108)는 수신된 입력에 따라 액션 이벤트 핸들러의 어셈블리 이름 및 클래스 이름 을 지정한다. 블록(1132)을 참조하라. 이후 프로세스(1108)는 리턴한다.
도시된 본 발명의 예시적인 실시예에서, 엔티티와 관련된 액션을 포함하는 액션 메뉴는 엔티티를 사용하는 클라이언트 애플리케이션(120)에서 보여진다. 이러한 클라이언트 애플리케이션(120)은 Microsoft® Sharepoint list 또는 탐색 결과일 수 있다. 도 10에 도시된 대로, 관리자는 액션 메뉴에 어떤 액션이 보여져야 하는지 및 이 액션들이 어떤 순서로 보여져야 하는지를 지정한다. 이 동일한 액션 세트가 관리자에 의해 편집이 발생하고 애플리케이션 레지스트리와 관련된 사이트의 모든 액션 메뉴에서 나타난다.
도 12는 액션 메뉴가 관련되는 엔티티를 이용하여 클라이언트 애플리케이션(120)의 액션 메뉴를 활성화하는 한 예시적인 방법을 도시한다. 도시된 발명의 예시적인 실시예에서, 액션 메뉴는 세 개의 상태, 디폴트 상태(1202), 포커스(1204) 또는 마우스-오버 상태(mouse-over state)(1205) 및 메뉴 상태(1206)를 지닌다. 도 12에 도시된 대로, 액션 메뉴를 나타내는 아이콘만이 디스플레이될 때 액션 메뉴는 디폴트 상태(1202)에 있다. 액션 메뉴를 나타내는 아이콘이 포커스로 탭된 경우 또는 마우스와 같은 포인팅 장치가 액션 메뉴를 나타내는 아이콘상에서 움직일 때 액션 메뉴는 포커스(1204) 또는 마우스-오버 상태(1205)에 있다. 액션 메뉴가 완전히 확장되고 이 엔티티와 관련된 모든 액션이 디스플레이될 때 액션 메뉴는 메뉴 상태(1206)에 있다.
도 13은 도 12에 의해 도시된 세 가지 상태 사이에서 액션 메뉴가 이행하는(transit) 한 예시적인 방법을 도시한다. 보다 구체적으로, 도 13은 마우스와 같 은 포인팅 장치를 이용하여, 도 12에 도시된 세 가지 상태 사이에서 액션 메뉴를 이행하는 한 예시적인 방법(1300)을 도시하는 상태도이다. 액션 메뉴를 나타내는 아이콘을 포커스로 탭함으로써, 방법(1300)은 디폴트 상태(1202)에서 포커스 상태(1204)로 액션 메뉴를 이행시킨다. 루트(1302)를 참조하라. 반대로, 방법(1300)은 마우스가 액션 메뉴를 나타내는 아이콘상에 있지 않는 경우 액션 메뉴를 포커스 밖으로 탭함으로써 액션 메뉴를 포커스 상태(1204)에서 디폴트 상태(1202)로 다시 이행시킨다. 루트(1304)를 참조하라.
방법(1300)은 사용자가 아이콘을 누르거나 클릭함으로써 액션 메뉴를 나타내는 아이콘을 발동시키는 경우 액션 메뉴를 포커스 상태(1204)에서 메뉴 상태(1206)로 이행시킨다. 루트(1306)를 참조하라. 반대로, 방법(1300)은 사용자가 키보드의 escape 키를 발동시키거나 또는 완전히 확장된 액션 메뉴를 클릭하는 경우 액션 메뉴를 메뉴 상태(1206)에서 포커스 상태(1204)로 다시 이행시킨다. 루트(1308)를 참조하라.
방법(1300)은 액션 메뉴를 나타내는 아이콘을 포커스로 탭함으로써 또는 포커스 밖으로 탭함으로써, 포커스 상태(1204)와 마우스-오버 상태(1205)간의 이행을 가능하게 한다. 아이콘이 포커스 밖으로 탭되고 마우스가 아이콘 위에 있는 경우, 액션 메뉴를 나타내는 아이콘은 포커스 상태(1204)에서 마우스-오버 상태(1205)로 이행된다. 루트(1310)를 참조하라. 반대로, 방법(1300)은 아이콘을 포커스로 탭함으로써 액션 메뉴를 나타내는 아이콘을 액션 메뉴를 마우스-오버 상태(1205)에서 포커스 상태(1204)로 이행시킨다. 루트(1312)를 참조하라.
방법(1300)은 액션 메뉴를 나타내는 아이콘에 의해 점유된 영역으로부터 마우스를 멀리 이동시킴으로써, 액션 메뉴를 나타내는 아이콘이 마우스-오버 상태(1205)에서 디폴트 상태(1202)로 다시 이행하는 것을 가능하게 한다. 루트(1314)를 참조하라. 반대로, 방법(1300)은 액션 메뉴를 나타내는 아이콘에 의해 점유된 영역으로 마우스가 들어오는 경우 아이콘을 디폴트 상태(1202)에서 마우스-오버 상태(1205)로 이행시킨다. 루트(1316)를 참조하라.
방법(1300)은 사용자가 아이콘을 클릭하는 경우 액션 메뉴를 나타내는 아이콘을 마우스-오버 상태(1205)에서 메뉴 상태(1206)로 이행시킨다. 루트(1318)를 참조하라. 사용자가 액션 메뉴에 의해 점유된 영역 바깥을 클릭하는 경우 액션 메뉴는 붕괴하고 메뉴 상태(1206)에서 디폴트 상태(1202)로 다시 이행된다. 루트(1320)를 참조하라.
본 발명의 실시예는 또한 액션 웹 파트의 엔티티와 관련된 액션들을 나타낸다. 액션 웹 파트는 각종 종류의 엔티티와 관련된 액션 목록을 디스플레이한다. 이것은 웹 파트 접속을 통해 다른 엔티티 웹 파트로 접속하여 그 접속된 엔티티 목록에서 선택된 "고객" 엔티티에 대한 액션을 보여줄 수 있다. 웹 파트는 단일 목적을 지니고 웹 파트 페이지의 기본 구축 블록을 형성하는 정보의 모듈 단위이다. 특정 웹 파트의 각 인스턴스는 외양 및 행동에 있어 동일하거나 서로 다를 수 있지만, 이것들은 웹 사이트 서버에 설치된 동일한 웹 파트 어셈블리 파일에 기초를 둔다. 웹 파트 페이지는 목록 및 차트와 같은 데이터 및 텍스트와 이미지 같은 웹 콘텐츠를 공통 태스크 또는 특정 이해 중심으로 구축된 동적 정보 포탈로 통합하는 웹 페이지의 특정 유형이다. 웹 파트 페이지 각각은 하나 이상의 웹 파트 존(zone)을 포함하고, 웹 파트 존은 하나 이상의 웹 파트를 포함한다.
도 14는 엔티티와 관련된 액션을 디스플레이하는 액션 웹 파트(1400)의 한 예시적인 실시예를 도시한다. 예를 들어, 도 14에 도시된 액션 웹 파트(1400)는 "고객" 엔티티와 관련된 세 개의 액션, 새 고객(1402), 고객 편집(1404) 및 프로필보기(1406)를 나열한다. 액션 웹 파트(1400)는 또한 사용자로 하여금 액션 웹 파트의 속성을 편집할 수 있도록 하는 편집 모드(1408)를 제공한다.
본 발명의 일부 실시예에서, 사용자가 액션 웹 파트(1400)와 관련된 속성들을 편집할 수 있도록 하는 사용자 인터페이스가 제공된다. 도 15는 사용자로 하여금 액션 웹 파트(1400)와 관련된 속성을 수정할 수 있도록 하는 하나의 예시적인 사용자 인터페이스(1500)를 도시한다. 사용자 인터페이스(1500)는 사용자가 엔티티(1502)의 유형을 정의하는 것을 허용한다. 예를 들어, 도 15에 도시된 대로, 현재의 엔티티 "고객"은 SAP 유형이다. 사용자는 이 엔티티 유형을 변경하기 위해 아이콘(1504)을 클릭할 수 있다.
사용자 인터페이스(1500)는 또한 사용자가 액션이 디스플레이되는 순서를 지정할 수 있도록 한다. 예를 들어, 도 15에서, "고객" 엔티티와 관련된 세 개의 액션은 새 고객(1402), 고객 편집(1404) 및 프로필 보기(1406)의 순서로 디스플레이된다. 사용자 인터페이스(1500)는 사용자가 액션의 순서를 조정할 수 있도록 "위로(move up)"(1508) 및 "아래로(move down)"(1510) 아이콘을 제공한다.
사용자 인터페이스(1500)는 또한 사용자가 액션이 적용되어야 하는 엔티티를 지정할 수 있도록 한다. 예를 들어, 도 15에 도시된 사용자 인터페이스(1500)는 사용자에게 "웹 파트 접속에 의해 제공됨"(1514), "페이지 URL에 지정됨"(1516) 또는 "사용자에 의해 지정됨"(1518) 중 하나로서 엔티티를 지정할 수 있는 옵션을 부여한다. 사용자에 의해 엔티티를 지정하는 옵션(1518)은 액션이 적용되어야 하는 엔티티를 지정하기 위해 사용자가 "선택" 아이콘(1520)을 선택함으로써 또한 보완된다.
사용자 인터페이스(1500)는 사용자에게 액션 웹 파트(1400)가 디스플레이되는 형태를 지정할 수 있는 옵션을 부여한다. 이 옵션으로는 굵은 점 목록(bulleted list)(1524), 목록(1526), 툴바(1528) 및 아이콘이 없는 툴바(1530) 등이 있다. 예를 들어, 도 15는 굵은 점 목록(1524)이 액션 웹 파트(1400)의 형태가 되도록 선택된 것을 도시하고 있다.
도시된 본 발명의 예시적인 실시예에서, 사용자는 또한 액션 웹 파트(1400)의 액션의 디스플레이 순서를 지정할 수 있다. 사용자는 액션 웹 파트(1400)를 편집 모드(1408)로 전환하고 각 액션을 드래그 앤드 드롭함으로써(drag and drop) 액션의 순서를 정한다. 사용자는 임의의 액션의 텍스트 또는 아이콘을 아래로 누름으로써 드래그를 초기화한다. 액션을 나타내는 텍스트 및 아이콘은 사용자가 드래그할 때 반투명이 된다. 사용자가 액션을 드래그할 때, 수직 또는 수평 삽입 바가 나타나서 사용자가 마우스 버튼을 해제할 경우 액션이 어디에 위치될 것인가를 나타낸다. 사용자가 마우스 버튼은 해제할 때 드래그는 종료된다. 액션 웹 파트는 재배치된 액션으로 자기 자신을 업데이트한다.
본 발명의 바람직한 실시예가 도시되고 설명되었지만, 본 발명의 정신 및 범위를 벗어나지 않고 본 명세서에 각종 변경이 있을 수 있다는 것을 이해할 것이다.
본 발명은 엔티티를 그들의 관련 액션으로부터 분리시키는 컴퓨팅 시스템을 제공한다. 본 발명은 또한 하나 이상의 문맥의 엔티티와 관련된 액션을 디스플레이하는 방법을 제공한다. 본 발명은 또한 다수의 사용자 인터페이스를 제공하고 이를 사용하여 엔티티와 관련된 액션을 관리하고 액세스할 수 있다. 결과적으로, 본 발명은 액션과 엔티티의 동적인 관련을 가능하게 하고, 엔티티와 관련된 액션의 문맥 게시를 가능하게 한다.

Claims (31)

  1. 엔티티의 현재의 문맥과 관련된 액션을 게시(publication)하는 컴퓨팅 시스템으로서, 상기 컴퓨팅 시스템은 프로세서, 디스플레이, 및 컴퓨터 판독 가능한 명령어들을 포함하는 메모리를 포함하며, 상기 명령어들은 상기 프로세서에 의해 실행되는 경우에,
    적어도 하나의 문맥을 갖는 엔티티를 저장하는 컴포넌트 - 상기 적어도 하나의 문맥은 관련 엔티티가 이용되는 환경에 관련되어 있으며, 상기 적어도 하나의 문맥은:
    적어도 하나의 앱스트랙트(abstract) 문맥 클래스 - 상기 적어도 하나
    의 앱스트랙트 문맥 클래스는 저장된 엔티티들 각각의 적어도 하나의
    문맥에 대한 공통 로직을 보유하며, 상기 적어도 하나의 앱스트랙트
    문맥 클래스는:
    엔티티 클래스 - 상기 엔티티 클래스는,
    하나 이상의 소스로부터 엔티티 데이터를 발견 하고,
    상기 하나 이상의 소스로부터 클래스 명칭 및 객체 키를 추출하고,
    상기 엔티티 클래스 및 상기 객체 키에
    기초하여 구성된 엔티티 객체를 반환하고, 및
    클래스 필드를 제공하도록 구성됨 - ,
    애플리케이션 문맥 클래스 - 상기 애플리케이션 문맥 클래스는,
    현재의 클라이언트 애플리케이션에 관한 정보
    를 저장하고,
    상기 현재의 클라이언트 애플리케이션을 식별
    하고, 및
    식별된 현재의 클라이언트 애플리케이션을 저
    장하도록 구성됨 - ,
    사용자 역할(user role) 문맥 클래스 - 상기 사용자 역할 문맥
    클래스는,
    현재의 사용자의 아이덴티티를 체크하고,
    사용자가 속해 있는 역할이 무엇인지를 판정하
    고, 및
    사용자가 속해 있는 역할을 저장하도록 구성됨
    - , 및
    로케일(locale) 문맥 클래스 - 상기 로케일 문맥 클래스는,
    액션이 애플리케이션의 현재 언어에 의존하는
    경우에 현재 로케일에 관한 정보를 저장하도록
    구성됨 -
    를 포함하는 그룹으로부터 선택됨 - ;
    적어도 하나의 문맥 제공자;
    적어도 하나의 문맥 해쉬; 및
    모든 문맥 클래스가 구현되는 인터페이스인 적어도 하나의 문맥
    을 포함함 - ;
    상기 엔티티와 관련된 액션을 저장하는 컴포넌트 - 상기 액션은 엔티티의 활동을 기술하고, 상기 액션은 상기 액션을 사용자에게 제시하는 디스플레이 방법을 포함하며, 상기 액션은 상기 엔티티의 활동을 수행하는 실행 방법을 포함하며, 상기 액션은 상기 엔티티로부터 분리되어 저장됨 - ; 및
    엔티티를 저장하는 상기 컴포넌트 및 상기 엔티티에 관련된 액션을 저장하는 상기 컴포넌트에 결합되어, 엔티티의 현재의 문맥 내에 엔티티의 활동에 대한 정보를 제공하는 소프트웨어 컴포넌트 - 상기 소프트웨어 컴포넌트는 상기 엔티티의 현재의 문맥을 식별하는 문맥 제공자 모듈, 액션들을 저장하는 컴포넌트에 질의하고 상기 문맥에 관련된 키워드를 이용하여 상기 엔티티의 현재의 문맥과 관련된 액션들을 검색하는 액션 제공자 모듈, 및 상기 문맥을 대응하는 키워드로 변환하고 상기 액션 제공자 모듈의 문맥과 관련된 키워드를 반환하는 문맥 리졸버를 포함함 -
    로 구성되는 컴퓨팅 시스템.
  2. 제1항에 있어서,
    상기 엔티티의 현재의 문맥 및 상기 엔티티의 현재의 문맥과 관련된 상기 액션을 요청하는 클라이언트 애플리케이션을 더 포함하는 컴퓨팅 시스템.
  3. 제2항에 있어서,
    상기 클라이언트 애플리케이션은 상기 엔티티의 현재의 문맥과 관련된 상기 액션을 디스플레이하는 컴퓨팅 시스템.
  4. 제1항에 있어서,
    상기 소프트웨어 컴포넌트는 제3 자에 의해 제공되는 추가의 문맥을 통합하는 컴퓨팅 시스템.
  5. 제1항에 있어서,
    상기 액션을 저장하는 컴포넌트는 제3 자에 의해 제공되는 추가의 액션을 통합하는 컴퓨팅 시스템.
  6. 엔티티의 현재의 문맥과 관련된 액션을 게시하는 컴퓨터-구현 방법으로서,
    상기 엔티티와 관련된 적어도 하나의 문맥에 대한 요청의 수신 시에 적어도 하나의 문맥을 제공하는 단계 - 상기 적어도 하나의 문맥은 관련 엔티티가 이용되는 환경에 관련되어 있으며, 상기 적어도 하나의 문맥은:
    적어도 하나의 앱스트랙트(abstract) 문맥 클래스 - 상기 적어도 하나
    의 앱스트랙트 문맥 클래스는 엔티티들 각각의 적어도 하나의
    문맥에 대한 공통 로직을 보유하며, 상기 적어도 하나의 앱스트랙트
    문맥 클래스는:
    엔티티 클래스 - 상기 엔티티 클래스는,
    하나 이상의 소스로부터 엔티티 데이터를 발견 하고,
    상기 하나 이상의 소스로부터 클래스 명칭 및 객체 키를 추출하고,
    상기 엔티티 클래스 및 상기 객체 키에
    기초하여 구성된 엔티티 객체를 반환하고, 및
    클래스 필드를 제공하는 것을 포함함 - ,
    애플리케이션 문맥 클래스 - 상기 애플리케이션 문맥 클래스는,
    현재의 클라이언트 애플리케이션에 관한 정보
    를 저장하고,
    상기 현재의 클라이언트 애플리케이션을 식별
    하고, 및
    식별된 현재의 클라이언트 애플리케이션을 저
    장하는 것을 포함함 - ,
    사용자 역할(user role) 문맥 클래스 - 상기 사용자 역할 문맥
    클래스는,
    현재의 사용자의 아이덴티티를 체크하고,
    사용자가 속해 있는 역할이 무엇인지를 판정하
    고, 및
    사용자가 속해 있는 역할을 저장하는 것을 포
    함함 - , 및
    로케일(locale) 문맥 클래스 - 상기 로케일 문맥 클래스는,
    액션이 애플리케이션의 현재 언어에 의존하는
    경우에 현재 로케일에 관한 정보를 저장하는
    것을 포함함 -
    를 포함하는 그룹으로부터 선택됨 - ;
    적어도 하나의 문맥 제공자;
    적어도 하나의 문맥 해쉬; 및
    모든 문맥 클래스가 구현되는 인터페이스인 적어도 하나의 문맥
    을 포함함 - ; 및
    상기 엔티티의 현재의 문맥과 관련된 액션에 대한 요청의 수신 시에 상기 액션을 제공하는 단계 - 상기 액션을 제공하는 단계는,
    상기 액션에 의해, 상기 엔티티의 활동을 기술하는 단계,
    디스플레이 방법을 포함하여 상기 액션을 사용자에게 제시하는 단계,
    상기 엔티티의 활동을 수행하는 실행 방법을 제공하는 단계,
    상기 엔티티로부터 상기 액션을 분리하여 저장하는 단계,
    적어도 하나의 제공된 문맥을 적어도 하나의 대응 키워드로 변환하는
    단계,
    상기 엔티티와 관련된 액션을 저장하는 컴포넌트에 질의하는 단계, 및
    적어도 하나의 주석으로서 상기 적어도 하나의 대응 키워드를 포함하
    는 액션을 검색하는 단계를 포함함 -
    를 포함하는 방법.
  7. 제6항에 있어서,
    상기 적어도 하나의 문맥을 제공하는 단계는,
    적어도 하나의 문맥에 대한 정보를 획득하는 단계; 및
    적어도 하나의 문맥에 대해 객체 인스턴스를 생성하는 단계
    를 더 포함하는 방법.
  8. 제7항에 있어서,
    상기 적어도 하나의 문맥의 객체 인스턴스를 포함하는 적어도 하나의 문맥 해쉬 객체를 생성하는 단계를 더 포함하는 방법.
  9. 제6항에 있어서,
    적어도 하나의 주석으로서 상기 적어도 하나의 대응 키워드를 포함하는 액션을 검색하는 단계는, 주석으로서 상기 적어도 하나의 대응 키워드 모두 및 적어도 하나의 대응 키워드 중 임의의 키워드를 포함하는 액션을 검색하는 단계를 더 포함하는 방법.
  10. 제6항에 있어서,
    적어도 하나의 주석으로서 상기 적어도 하나의 대응 키워드를 포함하는 액션을 검색하는 단계는, 주석으로서 상기 적어도 하나의 대응 키워드 중 적어도 하나를 포함하는 액션을 검색하는 단계를 더 포함하는 방법.
  11. 제6항에 있어서,
    상기 엔티티의 현재의 문맥과 관련된 상기 액션을 디스플레이하는 단계를 더 포함하는 방법.
  12. 컴퓨터에 의해 실행되는 경우, 상기 컴퓨터가 엔티티의 현재의 문맥과 관련된 액션을 게시하는 방법을 수행하도록 하는 컴퓨터 실행가능 명령어들을 포함하는 컴퓨터 판독가능 기억 매체로서, 상기 방법은,
    상기 엔티티와 관련된 적어도 하나의 문맥에 대한 요청의 수신 시에 적어도 하나의 문맥을 제공하는 단계 - 상기 적어도 하나의 문맥은 관련 엔티티가 이용되는 환경에 관련되어 있으며, 상기 적어도 하나의 문맥은:
    적어도 하나의 앱스트랙트(abstract) 문맥 클래스 - 상기 적어도 하나
    의 앱스트랙트 문맥 클래스는 엔티티들 각각의 적어도 하나의
    문맥에 대한 공통 로직을 보유하며, 상기 적어도 하나의 앱스트랙트
    문맥 클래스는:
    엔티티 클래스 - 상기 엔티티 클래스는,
    하나 이상의 소스로부터 엔티티 데이터를 발견 하고,
    상기 하나 이상의 클래스 명칭 및 객체 키를 추출하고,
    상기 엔티티 클래스 및 상기 객체 키에
    기초하여 구성된 엔티티 객체를 반환하고, 및
    클래스 필드를 제공하는 것을 포함함 - ,
    애플리케이션 문맥 클래스 - 상기 애플리케이션 문맥 클래스는,
    현재의 클라이언트 애플리케이션에 관한 정보
    를 저장하고,
    상기 현재의 클라이언트 애플리케이션을 식별
    하고, 및
    식별된 현재의 클라이언트 애플리케이션을 저
    장하는 것을 포함함 - ,
    사용자 역할(user role) 문맥 클래스 - 상기 사용자 역할 문맥
    클래스는,
    현재의 사용자의 아이덴티티를 체크하고,
    사용자가 속해 있는 역할이 무엇인지를 판정하
    고, 및
    사용자가 속해 있는 역할을 저장하는 것을 포
    함함 - , 및
    로케일(locale) 문맥 클래스 - 상기 로케일 문맥 클래스는,
    액션이 애플리케이션의 현재 언어에 의존하는
    경우에 현재 로케일에 관한 정보를 저장하는
    것을 포함함 -
    를 포함하는 그룹으로부터 선택됨 - ;
    적어도 하나의 문맥 제공자;
    적어도 하나의 문맥 해쉬; 및
    모든 문맥 클래스가 구현되는 인터페이스인 적어도 하나의 문맥
    을 포함함 - ; 및
    상기 엔티티의 현재의 문맥과 관련된 액션에 대한 요청의 수신 시에 상기 액션을 제공하는 단계 - 상기 액션을 제공하는 단계는,
    상기 액션에 의해, 상기 엔티티의 활동을 기술하는 단계,
    디스플레이 방법을 포함하여 상기 액션을 사용자에게 제시하는 단계,
    상기 엔티티의 활동을 수행하는 실행 방법을 제공하는 단계,
    상기 엔티티로부터 상기 액션을 분리하여 저장하는 단계,
    적어도 하나의 제공된 문맥을 대응 키워드로 변환하는 단계,
    상기 엔티티와 관련된 액션을 저장하는 컴포넌트에 질의하는 단계, 및
    적어도 하나의 주석으로서 적어도 하나의 대응 키워드를 포함하
    는 액션을 검색하는 단계를 포함함 -
    를 포함하는 컴퓨터 판독가능 기억 매체.
  13. 제12항에 있어서,
    상기 적어도 하나의 문맥을 제공하는 단계는,
    적어도 하나의 문맥에 대한 정보를 획득하는 단계; 및
    적어도 하나의 문맥에 대해 객체 인스턴스를 생성하는 단계
    를 더 포함하는 컴퓨터 판독가능 기억 매체.
  14. 제13항에 있어서,
    상기 적어도 하나의 문맥의 객체 인스턴스를 포함하는 적어도 하나의 문맥 해쉬 객체를 생성하는 단계를 더 포함하는 컴퓨터 판독가능 기억 매체.
  15. 제12항에 있어서,
    적어도 하나의 주석으로서 상기 적어도 하나의 대응 키워드를 포함하는 액션을 검색하는 단계는, 주석으로서 상기 적어도 하나의 대응 키워드 모두 및 적어도 하나의 대응 키워드 중 임의의 키워드를 포함하는 액션을 검색하는 단계를 더 포함하는 컴퓨터 판독가능 기억 매체.
  16. 제12항에 있어서,
    적어도 하나의 주석으로서 상기 적어도 하나의 대응 키워드를 포함하는 액션을 검색하는 단계는, 주석으로서 상기 적어도 하나의 대응 키워드 중 적어도 하나를 포함하는 액션을 검색하는 단계를 더 포함하는 컴퓨터 판독가능 기억 매체.
  17. 제12항에 있어서,
    상기 엔티티의 현재의 문맥과 관련된 상기 액션을 디스플레이하는 단계를 더 포함하는 컴퓨터 판독가능 기억 매체.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
KR1020050051304A 2004-09-30 2005-06-15 문맥 액션 게시 KR101152988B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/955,945 US7603381B2 (en) 2004-09-30 2004-09-30 Contextual action publishing
US10/955,945 2004-09-30

Publications (2)

Publication Number Publication Date
KR20060048375A KR20060048375A (ko) 2006-05-18
KR101152988B1 true KR101152988B1 (ko) 2012-06-11

Family

ID=35588954

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050051304A KR101152988B1 (ko) 2004-09-30 2005-06-15 문맥 액션 게시

Country Status (5)

Country Link
US (1) US7603381B2 (ko)
EP (1) EP1643424A3 (ko)
JP (1) JP5063870B2 (ko)
KR (1) KR101152988B1 (ko)
CN (1) CN1755683B (ko)

Families Citing this family (204)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7657512B2 (en) * 2005-12-29 2010-02-02 Sap Ag Source-context aware object-based navigation
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US7954111B2 (en) * 2006-12-28 2011-05-31 Sap Ag Data structures for context information related to business events
US20080196040A1 (en) * 2007-02-14 2008-08-14 Oracle International Corporation Enterprise clipboard with context
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US7761483B2 (en) * 2007-07-27 2010-07-20 Sap Ag System and method for providing data handling within a human capital management system
US20090100321A1 (en) * 2007-10-12 2009-04-16 Microsoft Corporation Universal contextual actions menu across windows applications
US8473834B1 (en) * 2007-11-08 2013-06-25 Hewlett-Packard Development Company, L.P. Dynamic portal menu and message system and method
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US7962444B2 (en) * 2008-05-19 2011-06-14 Qualcomm Incorporated System and method for presenting a contextual action for an indicator
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US9959870B2 (en) 2008-12-11 2018-05-01 Apple Inc. Speech recognition involving a mobile device
DE102010064593A1 (de) * 2009-05-21 2015-07-30 Koh Young Technology Inc. Formmessgerät und -verfahren
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US20120311585A1 (en) * 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
US10540976B2 (en) 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
WO2011014979A1 (en) * 2009-08-04 2011-02-10 Google Inc. Query suggestions from documents
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US8949317B2 (en) 2010-01-21 2015-02-03 Versaic Inc. Metadata-configurable systems and methods for network services
DE112011100329T5 (de) 2010-01-25 2012-10-31 Andrew Peter Nelson Jerram Vorrichtungen, Verfahren und Systeme für eine Digitalkonversationsmanagementplattform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
CN102566985B (zh) * 2010-12-10 2015-12-16 腾讯科技(深圳)有限公司 一种客户端软件管理方法、系统及服务器
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10672399B2 (en) 2011-06-03 2020-06-02 Apple Inc. Switching between text data and audio data based on a mapping
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US9798450B1 (en) * 2011-12-02 2017-10-24 Google Inc. Multi-function graphical user interface button
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9123030B2 (en) 2012-07-30 2015-09-01 Sap Se Indication of off-screen calendar objects
US9658672B2 (en) 2012-07-30 2017-05-23 Sap Se Business object representations and detail boxes display
US9483086B2 (en) 2012-07-30 2016-11-01 Sap Se Business object detail display
US8832583B2 (en) 2012-08-31 2014-09-09 Sap Se Visualizing entries in a calendar using the third dimension
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9081466B2 (en) * 2012-09-10 2015-07-14 Sap Se Dynamic chart control that triggers dynamic contextual actions
US20140075350A1 (en) * 2012-09-10 2014-03-13 Sap Ag Visualization and integration with analytics of business objects
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US9250781B2 (en) 2012-10-17 2016-02-02 Sap Se Method and device for navigating time and timescale using movements
US8972883B2 (en) 2012-10-19 2015-03-03 Sap Se Method and device for display time and timescale reset
US9313162B2 (en) 2012-12-13 2016-04-12 Microsoft Technology Licensing, Llc Task completion in email using third party app
US10528385B2 (en) * 2012-12-13 2020-01-07 Microsoft Technology Licensing, Llc Task completion through inter-application communication
DE212014000045U1 (de) 2013-02-07 2015-09-24 Apple Inc. Sprach-Trigger für einen digitalen Assistenten
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
WO2014144949A2 (en) 2013-03-15 2014-09-18 Apple Inc. Training an at least partial voice command system
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
DE112014002747T5 (de) 2013-06-09 2016-03-03 Apple Inc. Vorrichtung, Verfahren und grafische Benutzerschnittstelle zum Ermöglichen einer Konversationspersistenz über zwei oder mehr Instanzen eines digitalen Assistenten
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
CN105265005B (zh) 2013-06-13 2019-09-17 苹果公司 用于由语音命令发起的紧急呼叫的系统和方法
AU2014306221B2 (en) 2013-08-06 2017-04-06 Apple Inc. Auto-activating smart responses based on activities from remote devices
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9594477B1 (en) * 2014-02-06 2017-03-14 Symantec Corporation Using deep links to restore interactive state of a web page
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
EP3149728B1 (en) 2014-05-30 2019-01-16 Apple Inc. Multi-command single utterance input method
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9418128B2 (en) 2014-06-13 2016-08-16 Microsoft Technology Licensing, Llc Linking documents with entities, actions and applications
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
GB2540957B (en) * 2015-07-31 2019-12-25 Arm Ip Ltd Managing interaction constraints
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10069697B2 (en) * 2016-01-29 2018-09-04 Microsoft Technology Licensing, Llc Routing actions to user devices based on a user graph
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US20180129994A1 (en) 2016-11-06 2018-05-10 Microsoft Technology Licensing, Llc Efficiency enhancements in task management applications
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US11076039B2 (en) 2018-06-03 2021-07-27 Apple Inc. Accelerated task performance
US11019083B2 (en) * 2018-06-20 2021-05-25 Cisco Technology, Inc. System for coordinating distributed website analysis
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
CN109857314B (zh) * 2018-12-29 2021-06-29 百度在线网络技术(北京)有限公司 有屏设备的手势控制方法和装置
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
US11038966B1 (en) 2020-04-28 2021-06-15 Arm Ip Limited Remote device operation
US11729213B2 (en) * 2020-10-05 2023-08-15 Sap Se Automatic generation of deceptive API endpoints

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6106569A (en) * 1997-08-14 2000-08-22 International Business Machines Corporation Method of developing a software system using object oriented technology
US6442748B1 (en) * 1999-08-31 2002-08-27 Accenture Llp System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment
US20040122826A1 (en) 2002-12-20 2004-06-24 Kevin Mackie Data model and applications
US20040177028A1 (en) 1999-02-01 2004-09-09 American Management Systems, Inc. Distributed, object oriented global trade finance system with imbedded imaging and work flow and reference data

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644738A (en) * 1995-09-13 1997-07-01 Hewlett-Packard Company System and method using context identifiers for menu customization in a window
WO1997038386A1 (en) * 1996-04-10 1997-10-16 Konnersman Paul M Computer-based system for work processes that consist of interdependent decisions involving one or more participants
US6574636B1 (en) * 1999-05-04 2003-06-03 Accenture Llp Method and article of manufacture for isolating data within a computer program
US7251666B2 (en) * 2000-02-01 2007-07-31 Internet Business Information Group Signature loop authorizing method and apparatus
AU7606301A (en) * 2000-09-29 2002-04-11 International Business Machines Corporation Context based view design to support client side multi-threading
CN1493048A (zh) * 2000-12-29 2004-04-28 皇家Kpn公司 为客户提供可配置的业务的系统和方法
US6732109B2 (en) * 2001-01-31 2004-05-04 The Eon Company Method and system for transferring information between a user interface and a database over a global information network
US7310653B2 (en) * 2001-04-02 2007-12-18 Siebel Systems, Inc. Method, system, and product for maintaining software objects during database upgrade
US20030088536A1 (en) * 2001-04-09 2003-05-08 Afshin Behnia Platform within an organization for providing knowledge management and decision support services
US6922695B2 (en) * 2001-09-06 2005-07-26 Initiate Systems, Inc. System and method for dynamically securing dynamic-multi-sourced persisted EJBS
AU2002365257A1 (en) * 2001-10-26 2003-07-24 Zeosoft Corporation Development, management of distributed clients and servers
US6985922B1 (en) * 2001-12-21 2006-01-10 S.J. Bashen, Inc. Method, apparatus and system for processing compliance actions over a wide area network
US7426521B2 (en) * 2002-07-19 2008-09-16 Microsoft Corporation Property and object validation in a database system
AU2003252065A1 (en) * 2002-07-22 2004-02-09 Thought, Inc. Dynamic object- driven database manipulation and mapping system
US20040181539A1 (en) * 2003-03-12 2004-09-16 Microsoft Corporation Shared business constituent model
US20040249823A1 (en) * 2003-06-04 2004-12-09 Raghuvir Yuvaraj Athur System and method for object navigation grammar completion
US8122062B2 (en) * 2003-07-22 2012-02-21 Sap Ag Meta model for an enterprise service architecture
US20060026178A1 (en) * 2004-07-16 2006-02-02 Wolf Werner G Method and apparatus for adapting an email application program user interface to interface with a business management system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6106569A (en) * 1997-08-14 2000-08-22 International Business Machines Corporation Method of developing a software system using object oriented technology
US20040177028A1 (en) 1999-02-01 2004-09-09 American Management Systems, Inc. Distributed, object oriented global trade finance system with imbedded imaging and work flow and reference data
US6442748B1 (en) * 1999-08-31 2002-08-27 Accenture Llp System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment
US20040122826A1 (en) 2002-12-20 2004-06-24 Kevin Mackie Data model and applications

Also Published As

Publication number Publication date
JP2006107436A (ja) 2006-04-20
JP5063870B2 (ja) 2012-10-31
US7603381B2 (en) 2009-10-13
US20060069666A1 (en) 2006-03-30
KR20060048375A (ko) 2006-05-18
CN1755683A (zh) 2006-04-05
EP1643424A3 (en) 2008-01-09
CN1755683B (zh) 2012-03-21
EP1643424A2 (en) 2006-04-05

Similar Documents

Publication Publication Date Title
KR101152988B1 (ko) 문맥 액션 게시
US20230289513A1 (en) Enterprise web application constructor system and method
US11442924B2 (en) Selective filtered summary graph
US7246316B2 (en) Methods and apparatus for automatically generating presentations
JP5642984B2 (ja) 証跡ベースのデータコンテンツの発見、編成及び処理
US20100251143A1 (en) Method, system and computer program for creating and editing a website
US8495510B2 (en) System and method for managing browser extensions
US20020169789A1 (en) System and method for accessing, organizing, and presenting data
US20110246444A1 (en) Method and system for managing enterprise content
US20110271171A1 (en) Creating and Managing Reference Elements of Deployable Web Archive Files
US10706033B2 (en) Content management system and method for managing ad-hoc collections of content
KR20010083113A (ko) 소스 코드 제어 시스템과 상호작용하는 장치 및 방법
EP1763802A1 (en) Object based navigation
ZA200503578B (en) Adaptively interfacing with a data repository
WO2007005378A2 (en) Business intelligence incorporated business process management system and method thereof
US8769439B2 (en) Method for creation, management, and presentation of user-scoped navigation topologies for web applications
US8135697B2 (en) Search-friendly templates
US20100057689A1 (en) Synchronization of records of a table using bookmarks
Prakash et al. Liferay Customization
AU2003264164B2 (en) Adaptively interfacing with a data repository
Pelletier et al. Plone live

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
LAPS Lapse due to unpaid annual fee