KR100856806B1 - 수수료-기반 액세스의 제공 방법, 추상적 질의의 형성방법, 물리적 데이터의 수정 방법, 로직 프레임워크 제공방법, 컴퓨터 판독 가능 매체, 컴퓨터 및 수수료 정보의디스플레이 방법 - Google Patents

수수료-기반 액세스의 제공 방법, 추상적 질의의 형성방법, 물리적 데이터의 수정 방법, 로직 프레임워크 제공방법, 컴퓨터 판독 가능 매체, 컴퓨터 및 수수료 정보의디스플레이 방법 Download PDF

Info

Publication number
KR100856806B1
KR100856806B1 KR1020057022423A KR20057022423A KR100856806B1 KR 100856806 B1 KR100856806 B1 KR 100856806B1 KR 1020057022423 A KR1020057022423 A KR 1020057022423A KR 20057022423 A KR20057022423 A KR 20057022423A KR 100856806 B1 KR100856806 B1 KR 100856806B1
Authority
KR
South Korea
Prior art keywords
fee
physical
logic
field
abstract
Prior art date
Application number
KR1020057022423A
Other languages
English (en)
Other versions
KR20060030028A (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 KR20060030028A publication Critical patent/KR20060030028A/ko
Application granted granted Critical
Publication of KR100856806B1 publication Critical patent/KR100856806B1/ko

Links

Images

Classifications

    • 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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0283Price estimation or determination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/04Billing or invoicing
    • 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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • G06Q30/0206Price or cost determination based on market factors

Landscapes

  • Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Meter Arrangements (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

수수료를 대가로 데이터를 액세스하게 하는 시스템, 방법 및 제조물을 제공한다. 수수료 스케쥴은 필드 및 데이터 구조(예를 들면, 데이터베이스 내의 테이블)를 포함하는 데이터의 임의적인 세분화 단위(granularity)에 대해 정의된다. 수수료는 실행될 동작의 타입에 기초하여 계산될 수 있다. 또한 수수료는 동작마다 및/또는 동작 내에 포함되는 데이터 항목마다 계산될 수도 있다.

Description

수수료-기반 액세스의 제공 방법, 추상적 질의의 형성 방법, 물리적 데이터의 수정 방법, 로직 프레임워크 제공 방법, 컴퓨터 판독 가능 매체, 컴퓨터 및 수수료 정보의 디스플레이 방법{METHOD OF ESTABLISHING A DATA MANAGEMENT FEE STRUCTURE BASED ON FINE GRAINED DATA ENTITIES}
본 발명은 일반적으로 데이터 처리에 관한 것이고, 보다 구체적으로는 로직 프레임워크(logical framework)를 통해 데이터를 액세스하는 방법에 대한 것이다.
정보 기술(IT)은 다양한 형태(사무용 데이터, 음성 대화, 정지 화상, 이동 화상(motion pictures), 멀티미디어 프리젠테이션(multimedia presentations) 및 열거되지 않은 것들을 포함하는 그 외의 형태)를 갖는 정보를 생성, 저장, 교환 및 사용하기 위해 이용되는 모든 형태의 기술을 포함한다. 정보 기술은 사용자에게 상당한 이득을 제공하지만, 이러한 기술의 제공자에게는 때때로 상당한 양의 비용이 요구될 수 있다. 따라서, 제공자는 그가 제공한 서비스에 대한 수수료를 부과하는 것이 통상적이다. 예를 들면, 여러 서비스 제공자는 정보 데이터베이스를 관리하고, 데이터베이스에 대한 수수료-기반 액세스(fee-based access)를 허용한다. 이러한 데이터베이스는 연구 개발 분야뿐만 아니라 여러 직업 분야(예를 들면, 의학적, 법적 분야 등)에서 특히 널리 이용된다. 그러나, 정보 기술 산업계에서의 이러한 서비스 제공자는 비교적 유연하지 않고 제한적인 수수료 모델을 이용하여 사용자에게 데이터베이스에 대한 액세스를 제공한다.
수수료-기반 액세스를 제공할 정보의 리포지터리(repository)를 소유하고 관리하는 서비스 제공자를 고려하기로 한다. 그 정보는 의학 연구 정보의 데이터베이스 또는 특정한 범위 내에서 그 가치를 갖는 다른 종류의 데이터일 수 있다. 현재 이러한 종류의 환경에 있어서 수수료 구조를 좌우하는 다수의 방법이 형성되어 있다. 몇몇 경우에, 서비스 제공자는 리포지터리 내에 있는 정보를 액세스할 권리에 대한 연회비(연차 수수료)를 부과할 수 있다. 다른 경우에, 서비스 제공자는 검색된 정보에 대한 거래 당 수수료(per transaction fee)를 부과할 수 있다. 이러한 모델은 리포지터리 내의 모든 데이터가 동일한 값으로 고려되는 경우에 적합하기는 하지만, 리포지터리 내의 여러 개체들 간에 정보의 가치가 상이한 경우의 문제점을 해결하지 못한다.
데이터 호스팅 사업(data hosting business), 즉, 수수료를 대가로 하여 데이터 저장 및 관리 서비스를 제공하는 사업에 종사하는 다른 서비스 제공자를 고려한다. 오늘날 이용되는 하나의 모델은 저장된 데이터의 용량에 기초한 수수료 구조를 포함한다. 이러한 경우에, 모든 타입의 데이터가 동등하게 고려되고, 모든 타입의 데이터가 단순하게 저장된 바이트의 세트로서 간주된다. 이러한 모델은 서로 다른 타입의 데이터가 관리되는 방식들 사이에 차이가 없는 경우에 적절히 작용 하지만, 서로 다른 타입의 정보에 대해 제공되는 서로 다른 타입의 서비스가 존재하는 경우에는 적절한 해결책이 될 수 없다. 예를 들어, 주어진 클라이언트에 대한 환자 데모그래픽(patient demographic), 계산서(account), 테스트 결과 및 의학적 진단 정보를 저장하는 서비스 제공자를 고려하기로 한다. 여기에는 각 타입의 정보와 연관된 다양한 레벨의 서비스가 존재할 수 있다. 서비스 제공자는 리포지터리 내에 저장된 개별 환자에게 적용될 수 있는 연구 데이터를 이용할 환자의 권한을 안전하게 보장하는 서비스를 제공할 수 있다. 서비스 제공자는 소정 타입의 데이터에 대한 보다 엄격한 액세스 제어 및 데이터 암호화 지원(data encryption support)을 제공할 필요가 있을 것이다. 여기에는 또한 몇몇 타입의 정보에 대해 제공되는 데이터 분석 서비스의 세트가 존재할 수 있다. 기존의 수수료 모델은 저장된 데이터의 타입 및 그러한 데이터와 연관된 서비스에 대한 이러한 차이를 고려하지 않는다.
제 1 측면에 따르면, 데이터에 대한 수수료-기반 액세스(fee-based access)를 제공하는 방법이 제공되는데, 이 방법은 추상적 동작(abstract operations)을 논리적으로 정의하는 추상적 모델(abstract model)을 제공하여 상기 데이터를 액세스하는 단계를 포함하고, 이러한 추상적 모델은, (i) 복수의 로직 필드와, (ii) 각각의 복수의 로직 필드에 대해서, 복수의 로직 필드를 상기 데이터의 물리적 개체(physical entities)로 매핑하는 매핑 룰(mapping rule)과, (iii) 복수의 로직 필드 각각에 대한 수수료 스케쥴(fee schedule)을 포함하며, 주어진 로직 필드에 대한 각각의 수수료 스케쥴은, 주어진 로직 필드가 주어진 로직 필드에 대응하는 물리적 개체를 액세스하는 추상적 동작 내에 포함될 때 부과되는 수수료를 정의한다.
수수료를 대가로 데이터를 액세스하게 하는 시스템, 방법 및 제조물을 제공하는 것이 바람직하다. 수수료 스케쥴은 필드 및 데이터 구조(예를 들면, 데이터베이스 내의 테이블)를 포함하는 데이터의 임의적인 세분화 단위(granularity)에 대해 정의되는 것이 바람직하다. 수수료는 실행될 동작의 타입에 기초하여 계산될 수 있다. 또한 수수료는 동작마다 및/또는 동작 내에 포함되는 데이터 항목마다 계산될 수도 있다.
바람직하게는, 데이터를 액세스하기 위한 보다 유연한 수수료 기반 모델을 제공한다.
특정한 실시예에서, 물리적 데이터는 수수료 스케쥴을 정의하는 추상화 모델을 통해 액세스된다. 추상화 모델은 복수의 로직 필드를 기술하고 정의하는 메타데이터를 포함한다. 일실시예에서, 메타데이터는 또한 그 각각이 별개의 물리적 개체에 대응하는(즉, 가리키는) 로직 필드의 세트 사이의 연관성을 기술할 수 있다. 로직 필드의 세트는 모델 개체로서 지칭되고, 이것은 물리적 데이터의 액세스를 용이하게 한다. 몇몇 경우에, 모델 개체는 또한 단일 물리적 개체에 대응하는 단일 로직 필드에 의해서도 정의될 수 있다. 모델 개체가 정의되었는지 여부에 무관하게, 수수료는 하나 이상의 로직 필드와 연관될 수 있다. 수수료는 예를 들면, 동작의 타입, 동작 내에 포함된 항목의 개수 및/또는 로직 필드와 관련하여 이루어진 요청의 개수에 기초할 수 있다.
바람직한 실시예에서, 데이터는 복수의 로직 필드 중 적어도 2개를 포함하는 추상적 동작에 따라서 액세스되고, 부과될 수수료는 적어도 2개의 복수의 로직 필드 각각에 대응하는 별개의 수수료 스케쥴에 기초하여 계산된다.
바람직한 실시예에서, 복수의 로직 필드 중에서 선택된 로직 필드를 포함하는 각각의 추상적 동작을 상기 물리적 데이터에 부합되는 물리적 동작으로 변환하기 위한 변환 인스트럭션으로 구성되는 런-타임 성분(run-time component)이 제공된다. 바람직하게는, 수수료 스케쥴에 기반하여 물리적 동작을 실행하기 위한 수수료를 계산하도록 구성된 수수료 계산기(fee calculator)를 또한 제공한다.
바람직한 실시예에서, 추상적 동작은 적어도 2개의 로직 필드를 포함하는 추상적 질의(abstract query)이다. 바람직하게는, 대응하는 수수료 스케쥴은 적어도 2개의 로직 필드 각각에 대해 액세스된다. 바람직하게는, 요청 당 수수료(per request fee)는 적어도 2개의 로직 필드 중 첫 번째의 로직 필드에 대해 결정되고, 여기에서 요청 당 수수료는 적어도 2개의 로직 필드의 첫 번째의 로직 필드를 포함하는 각각의 추상적 동작에 대해 부과된다. 바람직하게는, 항목 당 수수료(per item fee)는 적어도 2개의 로직 필드 중 두 번째의 로직 필드에 대해 결정되고, 항목 당 수수료는 주어진 추상적 동작 내에 포함된 적어도 2개의 로직 필드 중 두 번째의 로직 필드의 각 인스턴스에 대해 부과된다.
바람직하게는, 항목 당 수수료와 적어도 2개의 로직 필드의 두 번째의 로직 필드의 인스턴스의 개수를 곱하여 적(product)을 구하고, 적과 요청 당 수수료를 합산하여 부과될 수수료를 결정한다.
바람직한 실시예에서, 추상적 모델에 의해 정의된 적어도 하나의 수수료 스케쥴은 제 1 타입의 동작에 대한 제 1 수수료 및 제 2 타입의 동작에 대한 제 2 수수료를 지정한다. 바람직하게는, 부과될 수수료는 실행되는 동작의 타입에 기초하여 계산된다.
바람직하게는, 제 1 타입의 동작은 질의이고, 제 2 타입의 동작은 삽입 및 업데이트 중 어느 하나이다.
제 2 측면에 따르면, 복수의 물리적 필드를 각각 포함하는 복수의 물리적 개체를 포함하는 물리적 데이터에 대한 수수료-기반 액세스를 제공하는 방법을 제공한다. 이러한 방법은 데이터를 액세스하는 동작을 논리적으로 기술하는 추상적 동작 사양(abstract operation specifications)을 정의하는 추상적 모델을 제공하는 단계를 포함한다. 추상적 모델은 (a) 복수의 로직 필드와, (b) 각각의 복수의 로직 필드에 대해서, 복수의 로직 필드를 데이터의 물리적 개체 중 적어도 하나에 대해 각각 매핑하는 매핑 룰과, (c) 물리적 개체의 물리적 필드에 대응하는 적어도 하나의 로직 필드를 각각 포함하는 복수의 모델 개체 정의와, (d) 각각의 복수의 로직 필드에 대해서, 물리적 동작의 일부분으로서 대응하는 물리적 필드를 액세스하는 수수료를 각각 지정하는 로직 필드 수수료 스케쥴을 포함한다.
바람직한 실시예에 따르면, 추상적 모델에 따라서, 추상적 동작 사양을 물리적 데이터에 부합되는 물리적 동작 사양으로 변환할 수 있는데, 각각의 추상적 동작 사양은 복수의 모델 개체 정의 중 적어도 하나를 포함한다. 바람직하게는, 수수료 스케쥴에 기반하여 물리적 동작을 실행하기 위한 수수료를 계산한다.
바람직한 실시예에 따르면, 추상적 모델에 의해 정의되는 적어도 하나의 로직 필드 수수료 스케쥴은 제 1 타입의 동작에 대한 제 1 수수료 및 제 2 타입의 동작에 대한 제 2 수수료를 지정한다.
바람직하게는, 제 1 타입의 동작은 질의이고, 제 2 타입의 동작은 삽입 및 업데이트 중의 하나이다.
제 3 측면에 따르면, 복수의 물리적 필드를 각각 포함하는 복수의 물리적 개체를 포함하는 데이터에 대한 수수료-기반 액세스를 제공하는 방법이 제공된다. 이 방법은 데이터를 액세스하는 동작을 실행하게 하는 인스트럭션을 수신하는 단계와, 동작을 실행하는 단계와, 동작에 의해 액세스되는 복수의 물리적 필드 각각에 대한 필드-특정 수수료(field-specific fees)를 결정하는 단계와, 동작에 대해 사용자에게 부과될 총 수수료를 계산하는 단계를 포함한다.
물리적 개체는 데이터베이스 테이블일 수 있다.
동작은 질의, 삽입 및 업데이트 중 어느 하나일 수 있다.
바람직한 실시예에 따르면, 필드-특정 수수료의 결정 단계는 필드-특정 수수료가 요청 당 수수료인지 항목 당 수수료인지 여부를 결정하는 단계를 포함하고, 요청 당 수수료는 대응하는 물리적 필드가 동작 내에 포함되는 인스턴스의 개수에 무관하게 동작에 대해 부과되는 단일 수수료이고, 항목 당 수수료는 동작 내에 포함된 대응하는 물리적 필드의 각각의 인스턴스에 대해 부과된다.
바람직한 실시예에 따르면, 필드-특정 수수료를 결정하는 단계는, 동작에 의해 액세스되는 각각의 물리적 필드에 대한 수수료 스케쥴을 액세스하는 단계를 포함한다.
바람직하게는, 각각의 수수료 스케쥴은 각각의 별개의 동작 타입에 대한 별개의 수수료를 정의한다.
바람직하게는, 별개의 동작 타입은 질의, 삽입 및 업데이트를 포함한다.
바람직한 실시예에 따르면, 필드-특정 수수료를 결정하는 단계는 데이터를 액세스하는 동작을 논리적으로 정의하는 추상적 모델을 액세스하는 단계를 포함한다. 바람직하게는 추상적 모델은 (i) 복수의 로직 필드와, (ii) 각각의 복수의 로직 필드에 대해서, 복수의 로직 필드를 상기 데이터의 물리적 개체로 매핑하는 매핑 룰과, (iii) 각각의 복수의 로직 필드에 대한 수수료 스케쥴을 포함하며, 주어진 로직 필드에 대한 각각의 수수료 스케쥴은 주어진 로직 필드가 주어진 로직 필드에 대응하는 물리적 개체에 액세스하는 추상적 동작에 포함될 때 부과될 수수료를 정의한다.
바람직하게는 각각의 매핑 룰은 데이터를 액세스하는 동작을 논리적으로 정의하는 추상적 동작 사양의 각각의 로직 필드에 대한 액세스 방법을 포함하고, 액세스 방법은 물리적 개체의 물리적 위치를 기술한다.
바람직한 실시예에 따르면, 각각의 수수료 스케쥴은 요청 당 수수료 및 상기 항목 당 수수료 중 적어도 하나를 정의하고, 요청 당 수수료는 대응하는 로직 필드가 동작 내에 포함되는 인스턴스의 개수에 무관하게 동작에 대해 부과되는 단일 수수료이고, 항목 당 수수료는 동작 내에 포함된 대응하는 로직 필드의 각각의 인스턴스에 대해 부과된다.
바람직한 실시예에 따르면, 추상적 모델에 따라서, 추상적 동작을 물리적 데이터에 부합되는 물리적 동작으로 변환할 수 있고 각각의 추상적 동작은 복수의 모델 개체 정의 중 적어도 하나를 포함한다. 바람직하게는 수수료 스케쥴에 기반하여 물리적 동작을 실행하기 위한 수수료를 계산할 수 있다.
바람직한 실시예에 따르면, 추상적 동작에 따라서 데이터를 액세스하는데, 추상적 동작은 복수의 로직 필드 중 적어도 2개를 포함한다. 바람직하게는 적어도 2개의 복수의 로직 필드 각각에 대응하는 별개의 수수료 스케쥴에 기초하여 수수료를 계산한다.
바람직한 실시예에 따르면, 복수의 로직 필드 중에서 선택된 로직 필드를 포함하는 각각의 추상적 동작을 물리적 데이터에 부합되는 물리적 동작으로 변환하기 위한 변환 인스트럭션으로 구성되는 런-타임 성분이 제공된다. 바람직하게는 수수료 스케쥴에 기반하여 물리적 동작을 실행하기 위한 수수료를 계산하도록 구성된 수수료 계산기도 제공된다.
바람직한 실시예에 따르면, 추상적 동작은 적어도 2개의 로직 필드를 포함하는 추상적 질의이고, 대응하는 수수료 스케쥴은 적어도 2개의 로직 필드 각각에 대해 액세스된다. 바람직하게는 요청 당 수수료는 적어도 2개의 로직 필드 중 첫 번째의 로직 필드에 대해 결정되고, 요청 당 수수료는 적어도 2개의 로직 필드 중 첫 번째의 로직 필드를 포함하는 각각의 추상적 동작에 부과된다. 바람직하게는 항목 당 수수료가 적어도 2개의 로직 필드 중 두 번째의 로직 필드에 대해 결정되고, 항목 당 수수료는 주어진 추상적 동작 내에 포함된 적어도 2개의 로직 필드 중 두 번째의 로직 필드의 각 인스턴스에 대해 부과된다.
바람직하게는 항목 당 수수료와 적어도 2개의 로직 필드의 두 번째의 로직 필드의 인스턴스의 개수를 곱하여 적(product)을 구하고, 적과 요청 당 수수료를 합산하여 부과될 수수료를 결정한다.
바람직한 실시예에 따르면, 추상적 모델에 의해 정의되는 적어도 하나의 수수료 스케쥴은 제 1 타입의 동작에 대한 제 1 수수료 및 제 2 타입의 동작에 대한 제 2 수수료를 지정한다. 바람직하게는, 수수료는 실행되는 동작의 타입에 기초하여 부과되도록 계산된다.
바람직하게는 제 1 타입의 동작은 질의이고, 제 2 타입의 동작은 삽입 및 업데이트 중 하나이다.
제 4 측면에 따르면, 프로세서에 의해 실행될 때, 복수의 물리적 필드를 각각 구비하는 복수의 물리적 개체를 포함한 물리적 데이터를 액세스하는 동작을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 매체가 제공된다. 이러한 동작은 데이터를 액세스하는 동작을 실행하게 하는 인스트럭션을 수신하는 단계와, 동작의 실행을 유도하는 단계와, 동작에 의해 액세스되는 복수의 물리적 필드 각각에 대한 필드-특정 수수료를 결정하는 단계와, 동작에 있어서 사용자에게 부과될 총 수수료를 계산하는 단계를 포함한다.
물리적 개체는 데이터베이스 테이블일 수 있다.
동작은 질의, 삽입 및 업데이트 중의 하나일 수 있다.
바람직한 실시예에 따르면, 필드-특정 수수료의 결정 단계는 필드-특정 수수료가 요청 당 수수료인지 항목 당 수수료인지 여부를 결정하는 단계를 포함하고, 요청 당 수수료는 대응하는 물리적 필드가 동작 내에 포함되는 인스턴스의 개수에 무관하게 동작에 대해 부과되는 단일 수수료이고, 항목 당 수수료는 동작 내에 포함된 대응하는 물리적 필드의 각각의 인스턴스에 대해 부과된다.
바람직한 실시예에 따르면, 필드-특정 수수료를 결정하는 단계는, 동작에 의해 액세스되는 각각의 물리적 필드에 대한 수수료 스케쥴을 액세스하는 단계를 포함한다.
바람직하게는, 각각의 수수료 스케쥴은 각각의 별개의 동작 타입에 대한 별개의 수수료를 정의한다.
바람직하게는, 별개의 동작 타입은 질의, 삽입 및 업데이트를 포함한다.
바람직한 실시예에 따르면, 필드-특정 수수료를 결정하는 단계는 데이터를 액세스하는 동작을 논리적으로 정의하는 추상적 모델을 액세스하는 단계를 포함한다. 바람직하게는 추상적 모델은 (i) 복수의 로직 필드와, (ii) 각각의 복수의 로직 필드에 대해서, 복수의 로직 필드를 데이터의 물리적 개체로 매핑하는 매핑 룰과, (iii) 각각의 복수의 로직 필드에 대한 수수료 스케쥴을 포함하며, 주어진 로직 필드에 대한 각각의 수수료 스케쥴은 주어진 로직 필드가 주어진 로직 필드에 대응하는 물리적 개체에 액세스하는 추상적 동작에 포함될 때 부과될 수수료를 정의한다.
바람직하게는 각각의 매핑 룰은 데이터를 액세스하는 동작을 논리적으로 정의하는 추상적 동작 사양의 각각의 로직 필드에 대한 액세스 방법을 포함하고, 액세스 방법은 물리적 개체의 물리적 위치를 기술한다.
제 5 측면에 따르면, 데이터베이스 내에 특정한 물리적 데이터 표현을 구비하는 물리적 데이터의 복수의 물리적 개체로 매핑되는 복수의 로직 필드에 의해 정의된 추상적 질의를 형성하는 방법이 제공된다. 이 방법은 (i) 별개의 물리적 개체에 각각 대응하는 2개 이상의 로직 필드와, (ii) 상기 모델 개체 정의에 기초하여 물리적 개체를 액세스하기 위한 수수료 스케쥴을 포함하는 모델 개체 정의에 대한 기준을 포함하는 사용자 입력을 사용자 인터페이스를 통해 수신하는 단계를 포함한다. 모델 개체 정의에 기초하여, 2개 이상의 로직 필드 중 적어도 하나를 추상적 질의에 선택적으로 추가한다. 이러한 방법은 추상적 질의에 대하여, 선택된 로직 필드 및 각각의 선택된 로직 필드에 대응하는 값에 의해 정의된 복수의 추상적 질의 요소(contributions)를 수신하는 단계와, 추상적 질의에 대하여, 선택된 로직 필드에 의해 정의되는 복수의 결과 필드를 수신하는 단계를 더 포함한다. 다음에 추상적 질의를 데이터의 특정한 물리적 데이터 표현과 부합되는 물리적 질의로 변환한다. 다음에 물리적 질의를 실행하고, 수수료 스케쥴을 기반으로 하여, 물리적 질의의 실행에 대해 부과될 수수료를 계산한다.
복수의 물리적 개체는 데이터베이스 내의 테이블일 수 있다.
바람직한 실시예에 따르면, 2개 이상의 로직 필드 중 적어도 하나를 선택적으로 추가하는 단계는, 적어도 하나의 로직 필드가 모델 개체 정의에 의해 지정된 필수 필드인지 여부를 판정하는 단계와, 적어도 하나의 로직 필드가 모델 개체 정의에 의해 지정된 필수 필드라면, 적어도 하나의 로직 필드를 추상적 질의에 추가하는 단계를 포함한다.
바람직한 실시예에 따르면, 요청 당 수수료는 2개 이상의 로직 필드 중 첫 번째의 로직 필드에 대해 정의되고, 결과 당 수수료는 2개 이상의 로직 필드 중 두 번째의 로직 필드에 대해 정의되며, 수수료의 계산 단계는, (i) 결과 당 수수료와 2개 이상의 로직 필드 중 두 번째의 로직 필드에 대한 결과의 개수를 곱하여 적을 계산하는 단계와, (ii) 적과 요청 당 수수료를 합하는 단계를 포함한다.
바람직한 실시예에 따르면, 추상적 질의를 물리적 질의로 변환하는 단계는 추상적 질의의 각각의 로직 필드를 물리적 데이터의 각각의 물리적 개체로 매핑하는 단계를 포함한다.
제 6 측면에 따르면, 복수의 물리적 개체를 포함하고, 데이터베이스 내에 특정한 물리적 데이터 표현을 구비하는 물리적 데이터를 수정하는 방법이 제공된다. 이 방법은 추상적 수정 동작의 선택을 수신하는 단계와, 추상적 수정 동작을 수행할 모델 개체 정의의 선택을 수신하는 단계-모델 개체 정의는 별개의 물리적 개체에 각각 대응하는 2개 이상의 로직 필드를 포함함-와, 적어도 수신된 선택에 기초하여, 물리적 데이터의 2개의 별개의 물리적 개체 중 하나를 각각 수정하는 적어도 2개의 물리적 수정 명령문을 생성하는 단계와, 적어도 2개의 물리적 수정 명령문을 순차화하는 단계와, 물리적 수정 명령문에 따라서 수정 동작을 실행하여 데이터를 수정하는 단계와, 모델 개체 정의에 대해 정의된 수수료 스케쥴에 기초하여 수정 동작을 실행하는 데 부과되는 수수료를 계산하는 단계를 포함한다.
바람직한 실시예에 따르면, 순차화 단계는 데이터의 물리적 개체 사이의 계층적 관계를 정의하는 물리적 개체 관계 사양에 따라서 실행되어 데이터의 무결성(integrity)을 보장한다.
바람직한 실시예에 따르면, 적어도 2개의 물리적 수정 동작의 형성은 2개 이상의 로직 필드를 그의 대응하는 물리적 개체로 매핑하는 매핑 룰에 따라서 실행된다.
제 7 측면에 따르면, 복수의 물리적 필드를 각각 포함하는 복수의 물리적 개체를 포함한 물리적 데이터를 액세스하는 추상적 동작을 정의하는 로직 프레임워크(logical framework)를 제공하는 방법이 제공되는데, 이러한 방법은 데이터를 액세스하는 동작을 논리적으로 기술하는 추상적 동작 사양을 정의하기 위한 추상적 모델을 제공하는 단계를 포함한다. 추상적 모델은, (a) 복수의 로직 필드와, (b) 각각의 복수의 로직 필드에 대하여, 복수의 로직 필드를 각각 데이터의 물리적 개체 중 적어도 하나로 매핑하는 매핑 룰과, (c) 물리적 개체의 물리적 필드에 대응하는 적어도 하나의 로직 필드를 각각 포함하는 복수의 모델 개체 정의와, (d) 각각의 복수의 모델 개체 정의에 대한 모델 개체 수수료 스케쥴을 포함하며, 수수료 스케쥴은 각각 상기 대응하는 모델 개체 정의의 물리적 필드를 액세스하기 위한 수수료를 지정한다. 이러한 방법은 추상적 모델에 따라서 추상적 동작 사양을 상기 물리적 데이터에 부합되는 물리적 동작 사양으로 변환하기 위한 런-타임 성분을 제공하는 단계를 더 포함하고, 각각의 추상적 동작 사양은 복수의 모델 개체 정의 중에서 적어도 하나의 사용자가 선택한 모델 개체 정의를 포함한다.
복수의 물리적 개체는 데이터베이스 내의 테이블일 수 있다.
바람직한 실시예에 따르면, 각각의 물리적 동작 사양은 삽입 명령문 및 업데이트 명령문 중의 하나로 선택되고, 모델 개체 수수료 스케쥴은 각 명령문에 대한 서로 다른 수수료를 정의한다.
바람직한 실시예에 따르면, 각각의 물리적 동작 사양은 질의이고, 모델 개체 수수료 스케쥴은 질의에 대해 지정되는 수수료를 정의한다.
바람직한 실시예에 따르면, 추상적 동작 사양은 추상적 질의이고, 복수의 질의 조건, 결과 필드 및 모델 개체 정의 중 하나의 모델 개체 정의에 대한 선택을 포함하는 추상적 질의를 사용자 인터페이스를 통해 수신할 수 있다. 바람직하게는 선택에 대응하는 모델 개체 정의를 액세스하고, 선택에 대응하는 모델 개체 정의가 하나 이상의 필수적 결과 필드를 지정하는지 여부를 판정할 수 있으며, 선택에 대응하는 모델 개체 정의가 하나 이상의 필수적 결과 필드를 지정한다면, 하나 이상의 필수적 결과 필드를 질의에 추가된다.
바람직한 실시예에 따르면, 런-타임 성분에 있어서 추상적 모델에 따라 단일 추상적 동작 사양을 물리적 데이터에 부합되는 적어도 2개의 별개의 물리적 동작 사양으로 변환할 수 있고, 각각의 물리적 동작 사양은 데이터의 서로 다른 물리적 개체를 수정하고, 각각의 물리적 동작 사양은 데이터의 물리적 개체들 간의 계층적 관계를 정의하는 물리적 개체 관계 사양에 따라서 실행되도록 순차화된다.
바람직한 실시예에 따르면, 요청 개체(requesting entity)가 단일 추상적 동작 사양을 실행하기 위한 요청을 발행하고, 런-타임 성분은 데이터를 수정하기 위해서 단일 추상적 동작 사양을 적어도 2개의 물리적 동작 사양으로 변환한다.
바람직하게는, 단일 추상적 동작 사양을 적어도 2개의 물리적 동작 사양으로 변환하는 단계는, 적어도 2개의 물리적 동작 사양을 생성하는 단계와, 추상적 모델의 물리적 개체 관계 사양에 따라서 적어도 2개의 물리적 동작 사양을 순차화하는 단계를 포함한다.
바람직한 실시예에 따르면, 각각의 매핑 룰은 복수의 로직 필드 중 하나의 로직 필드에 대한 액세스 방법을 포함한다.
바람직하게는, 액세스 방법은 데이터의 물리적 개체의 위치를 기술한다.
바람직한 실시예에 따르면, 복수의 로직 필드 각각에 대한 로직 필드 수수료 스케쥴이 제공되고, 수수료 스케쥴은 대응하는 물리적 필드를 물리적 동작 사양의 일부분으로서 액세스하기 위한 수수료를 각각 지정한다.
바람직하게는, 추상적 모델에 의해 정의되는 적어도 하나의 수수료 스케쥴은 제 1 타입의 동작에 대한 제 1 수수료 및 제 2 타입의 동작에 대한 제 2 수수료를 지정한다.
바람직하게는, 제 1 타입의 동작은 질의이고, 제 2 타입의 동작은 삽입 및 업데이트 중의 하나이다.
제 8 측면에 따르면, 프로세서에 의해 실행될 때, 추상적 질의 동작을 정의하는 로직 프레임워크를 제공하는 프로그램을 포함하는 컴퓨터 판독 가능 매체가 제공된다. 프로그램은 (i) 복수의 로직 필드와, (ii) 각각의 복수의 로직 필드에 대해서, 복수의 로직 필드를 데이터의 물리적 개체로 매핑하는 매핑 룰과, (iii) 복수의 로직 필드 각각에 대한 수수료 스케쥴을 포함하고, 데이터를 질의하는 동작을 논리적으로 기술하는 추상적 질의 로직을 정의하는 추상적 모델을 포함한다. 이러한 프로그램은 복수의 로직 필드 중에서 선택된 로직 필드를 포함하는 추상적 질의를 상기 물리적 데이터에 부합되는 물리적 질의로 변환하는 변환 인스트럭션으로 구성되는 런-타임 성분과, 수수료 스케쥴에 기초하여 물리적 질의를 실행하기 위한 수수료를 계산하도록 구성되는 수수료 계산기를 더 포함한다.
바람직하게는, 매핑 룰은 복수의 로직 필드 각각에 대한 액세스 방법을 포함하고, 액세스 방법은 데이터의 물리적 개체의 위치를 기술한다.
제 9 측면에 따르면, 메모리 및 적어도 하나의 프로세서를 포함하고, 물리적 데이터를 수정하는 추상적 수정 동작을 정의하는 로직 프레임워크를 더 포함하는 컴퓨터가 제공되는데, 로직 프레임워크는, (i) 복수의 로직 필드와, (ii) 각각의 복수의 로직 필드에 대해서, 복수의 로직 필드를 데이터의 물리적 개체로 매핑하는 매핑 룰과, (iii) 복수의 로직 필드 각각에 대한 수수료 스케쥴을 포함하고, 데이터를 수정하는 동작을 논리적으로 정의하는 추상적 수정 사양을 정의하는 추상적 모델을 포함한다. 로직 프레임워크는 복수의 로직 필드 중에서 선택된 로직 필드를 포함하는 추상적 질의를 상기 물리적 데이터에 부합되는 물리적 질의로 변환하기 위한 런-타임 성분과, 수수료 스케쥴에 기초하여 물리적 질의를 실행하기 위한 수수료를 계산하도록 구성되는 수수료 계산기를 더 포함한다.
바람직한 실시예에 따르면, 각각의 수수료 스케쥴은 요청 당 수수료 및 항목 당 수수료 중 적어도 하나를 정의하고, 상기 요청 당 수수료는 대응하는 로직 필드가 동작 내에 포함되는 인스턴스의 개수에 무관하게 동작에 부과되는 단일 수수료이고, 항목 당 수수료는 동작 내에 포함되는 대응하는 로직 필드의 각 인스턴스에 대해 부과된다.
바람직한 실시예에 따르면, 매핑 룰은 복수의 로직 필드 각각에 대한 액세스 방법을 포함하고, 액세스 방법은 데이터의 물리적 개체의 위치를 기술한다.
제 10 측면에 따르면, 복수의 물리적 필드를 각각 포함하는 복수의 물리적 개체를 포함한 데이터에 대한 수수료-기반 액세스를 제공하는 방법이 제공되는데, 이러한 방법은 사용자 인터페이스를 통해서, 복수의 물리적 필드 중에서 데이터 선택 필드(data selected fields)를 액세스하는 동작을 위한 인스트럭션을 포함하는 사용자 입력을 수신하는 단계와, 선택 필드 각각에 대한 필드-특정 수수료를 결정하는 단계와, 선택 필드를 액세스하는 데 있어서 사용자에게 부과될 수수료를 계산하는 단계와, 사용자 인터페이스를 통해 사용자에게 수수료를 디스플레이하는 단계를 포함한다.
물리적 개체는 데이터베이스 테이블일 수 있다.
바람직한 실시예에 따르면, 필드-특정 수수료의 결정 단계는 필드-특정 수수료가 요청 당 수수료인지 항목 당 수수료인지 여부를 결정하는 단계를 포함하고, 요청 당 수수료는 대응하는 물리적 필드가 동작 내에 포함되는 인스턴스의 개수에 무관하게 동작에 대해 부과되는 단일 수수료이고, 항목 당 수수료는 동작 내에 포함된 대응하는 물리적 필드의 각각의 인스턴스에 대해 부과된다.
바람직한 실시예에 따르면, 필드-특정 수수료를 결정하는 단계는, 동작에 의해 액세스되는 각각의 물리적 필드에 대한 수수료 스케쥴을 액세스하는 단계를 포함한다.
바람직하게는, 각각의 수수료 스케쥴은 각각의 별개의 동작 타입에 대한 별개의 수수료를 정의한다.
바람직하게는, 별개의 동작 타입은 질의, 삽입 및 업데이트를 포함한다.
제 11 측면에 따르면, 복수의 물리적 필드를 각각 포함하는 복수의 물리적 개체를 포함한 데이터에 대한 수수료-기반 액세스에 있어서 수수료 정보를 디스플레이하는 방법이 제공된다. 이러한 방법은 질의를 형성하는 하나 이상의 사용자 인터페이스 스크린을 디스플레이하는 단계와, 하나 이상의 사용자 인터페이스 스크린을 통해, 복수의 물리적 필드 중 선택된 필드를 액세스하도록 구성된 질의를 정의하는 사용자 입력을 수신하는 단계와, 하나 이상의 사용자 인터페이스 스크린을 통해, 선택된 필드 각각에 대한 필드-특정 액세스 수수료를 디스플레이하는 단계를 포함한다.
바람직하게는, 질의 당 수수료를 디스플레이할 수 있는데, 질의 당 수수료는 대응하는 물리적 필드가 질의 내에 포함되는 인스턴스의 개수에 무관하게 질의에 대해 부과되는 단일 수수료이다.
바람직한 실시예에 따르면, 질의를 논리적으로 정의하는 추상적 모델을 액세스함으로써 필드-특정 수수료를 결정할 수 있다. 바람직하게는 추상적 모델은 (i) 복수의 로직 필드와, (ii) 각각의 복수의 로직 필드에 대해서, 복수의 로직 필드를 데이터의 물리적 개체로 매핑하는 매핑 룰과, (iii) 각각의 복수의 로직 필드에 대한 수수료 스케쥴을 포함하며, 주어진 로직 필드에 대한 각각의 수수료 스케쥴은 주어진 로직 필드가 주어진 로직 필드에 대응하는 물리적 개체에 액세스하게 하는 질의 내에 포함될 때 부과될 수수료를 정의한다.
바람직하게는 각각의 매핑 룰은 데이터를 액세스하는 동작을 논리적으로 정의하는 추상적 동작 사양의 각각의 로직 필드에 대한 액세스 방법을 포함하고, 액세스 방법은 물리적 개체의 물리적 위치를 기술한다.
바람직한 실시예에 따르면, 각각의 수수료 스케쥴은 요청 당 수수료 및 상기 항목 당 수수료 중 적어도 하나를 정의하고, 요청 당 수수료는 대응하는 로직 필드가 질의 내에 포함되는 인스턴스의 개수에 무관하게 질의에 대해 부과되는 단일 수수료이고, 항목 당 수수료는 질의 내에 포함된 대응하는 로직 필드의 각각의 인스턴스에 대해 부과된다.
본 발명은 컴퓨터 소프트웨어로 구현될 수 있다는 것을 이해할 것이다.
본 발명의 바람직한 실시예는 이하의 도면을 참조하여 오로지 예로서 설명될 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 예시적인 컴퓨터 아키텍처를 도시하는 블록도.
도 2는 물리적 데이터 소스의 추상적 표현을 통해 물리적 데이터 소스에 대한 질의를 처리하도록 구성된 본 발명의 일실시예의 소프트웨어 성분에 대해 도시 하는 관계도.
도 3은 본 발명의 바람직한 실시예에 따른 런-타임 성분의 동작을 도시하는 흐름도.
도 4는 본 발명의 바람직한 실시예에 따른 런-타임 성분의 동작을 도시하는 흐름도.
도 5는 물리적 데이터 소스 내에서 물리적 대응물을 갖는 모델 개체를 정의하는 본 발명의 바람직한 실시예에 따른 추상화 계층을 도시하는 도면.
도 6은 환자 개체 및 테스트 개체에 대한 예시적인 모델 개체 사양을 도시하는 도면.
도 7은 지정된 모델 개체에 따른 초기 추상적 질의의 결과 필드의 증가(augmentation)를 도시하는 도면.
도 8 내지 도 12는 모델 개체를 이용하여 추상적 질의를 생성하는 예시적인 사용자 인터페이스 스크린을 도시하는 도면.
도 13은 본 발명의 바람직한 실시예에 따른 지정된 모델 개체에 따라서 질의 결과 필드를 증가시키는 것을 도시하는 흐름도.
도 14는 본 발명의 바람직한 실시예에 따라서 모델 개체의 사양에 기초하여 물리적 질의를 생성하는 것을 도시하는 도면.
도 15는 본 발명의 바람직한 실시예에 따른 모델 개체의 사양에 기초하여 물리적 질의를 생성하는 방법을 도시하는 흐름도.
도 16은 본 발명의 바람직한 실시예에 따른 질의 결과 필드의 세트를 나타내 기 위해 모델 개체를 이용하는 것을 도시하는 도면.
도 17은 본 발명의 바람직한 실시예에 따른 모델 개체의 사양에 기초하여 추상적 질의의 결과 필드를 확장하는 방법을 도시하는 흐름도.
도 18은 도 5에 도시된 환경에 대하여, 본 발명의 바람직한 실시예에 따른 모델 개체에 기초하여 형성된 추상적 수정 동작에 의한 데이터 소스의 수정을 나타내는 단순화된 도면.
도 19는 본 발명의 바람직한 실시예에 따른 물리적 데이터에 대한 삽입 동작을 구현하기 위해 이용되는 추상적 삽입 사양의 생성을 도시하는 흐름도.
도 20a 및 도 20b는 본 발명의 바람직한 실시예에 따른 삽입 동작에서의 필수적 필드 및 선택적 필드의 결정을 도시하는 흐름도.
도 21은 본 발명의 바람직한 실시예에 따라서 추상적 삽입 동작을 물리적 삽입 동작으로 변환하는 것을 도시하는 흐름도.
도 22는 본 발명의 바람직한 실시예에 따른 적절한 실행 순서를 보장하는 삽입 명령문 리스트의 분류를 도시하는 흐름도.
도 23 내지 도 26은 도 1에 도시된 HTML 형태가 지능형으로 구성되어 여러 필드의 특성을 나타내게 하는 삽입 동작을 도시하는 도면.
도 27은 본 발명의 바람직한 실시예에 따른 물리적 데이터 삭제 동작에 대한 삭제 동작을 실행하는 데 이용되는 추상적 삭제 사양의 생성을 도시하는 흐름도.
도 28은 본 발명의 바람직한 실시예에 따른 추상적 삭제 동작을 물리적 삭제 동작으로 변환하는 것을 도시하는 흐름도.
도 29는 본 발명의 바람직한 실시예에 따른 추상적 업데이트 동작에 대한 선택 로직을 생성하는 것을 도시하는 흐름도.
도 30은 본 발명의 바람직한 실시예에 따른 적절한 실행 순서를 보장하는 삭제 명령문 리스트의 분류를 도시하는 흐름도.
도 31은 본 발명의 바람직한 실시예에 따른 수수료 스케쥴에 따라서 추가적으로 구성된 도 5의 추상화 계층을 도시하는 도면.
도 32는 예시적인 데이터 모델을 도시하는 상세도.
도 33은 환자 개체 및 테스트 개체에 대한 예시적인 모델 개체 사양을 도시하는 도면.
도 34a 및 도 34b(통칭하여 도 34로 지칭함)는 본 발명의 바람직한 실시예에 따른 수수료-기반 질의 및 삽입 동작을 도시하는 도면.
도 35a 및 도 35b(통칭하여 도 35로 지칭함)는 본 발명의 바람직한 실시예에 따른 수수료-기반 업데이트 동작을 도시하는 흐름도.
도 36 내지 도 41은 본 발명의 바람직한 실시예에 따라서 질의를 생성하고 질의에 대한 계산된 수수료를 디스플레이하는 일련의 그래픽 사용자 인터페이스를 도시하는 도면.
도입
수수료를 대가로 데이터를 액세스하게 하는 시스템, 방법 및 제조물을 제공 한다. 수수료 스케쥴은 필드 및 데이터 구조(예를 들면, 데이터베이스 내의 테이블)를 포함하는 데이터의 임의적인 세분화 단위(granularity)에 대해 정의된다. 일실시예에서, 수수료는 실행될 동작의 타입에 기초하여 계산될 수 있다. 또한 수수료는 동작마다 및/또는 동작 내에 포함되는 데이터 항목마다 계산될 수도 있다.
특정한 실시예에서, 물리적 데이터는 액세스되는 물리적 데이터에 대응하는 수수료 스케쥴을 정의하는 추상화 모델을 통해 액세스된다. 일실시예에서, 특정한 데이터 정의 프레임워크(본 명세서에서는 데이터 추상화 모델(data abstraction model : DAM)로도 지칭됨)는 데이터가 물리적으로 표현되는 특정한 방식에 무관하게 데이터를 액세스 및 수정하기 위해 제공된다. 데이터는 데이터의 단일 리포지터리(즉, 소스) 또는 복수의 상이한 데이터 리포지터리 내에 위치될 수 있다. 따라서, DAM은 하나 이상의 기본 데이터 리포지터리에 대한 논리적 관점을 제공할 수 있다. 데이터 리포지터리의 추상적 표현을 이용함으로써, 변동을 제공하는 애플리케이션에 영향을 주지 않으면서 기본 물리적 표현을 보다 용이하게 변경 또는 대체할 수 있다. 그 대신에, 애플리케이션에 의해 요구되는 변경없이 추상적 표현을 변경한다. 추가하여, 서로 다른 디폴트 값 또는 요구되는 필드를 가질 수 있는 동일한 기본 데이터베이스 스키마(underlying database schema)에 대해 서로 다른 애플리케이션을 지원하도록 다수의 추상적 데이터 표현을 정의할 수 있다.
DAM은 복수의 로직 필드를 기술하고 정의하는 메타데이터를 포함한다. 메타데이터는 또한 로직 필드의 세트 사이의 연관 관계를 기술한다. 로직 필드의 세트는 모델 개체로서 지칭된다. 모델 개체는 질의 및 수정 동작을 통해 데이터를 액 세스하는 데 이용된다. 일측면에서, 모델 개체는 모델 개체를 포함하는 질의에 대한 요구된 출력 필드를 정의한다. 다른 측면에서, 모델 개체는 기본 물리적 데이터 리포지터리 내의 다수의 물리적 개체(예를 들면, 테이블)에 걸쳐 정보를 상관시키기 위해서 요구되는 적절한 로직을 구현하기 위해 이용될 수 있는 데이터 환경 내에 초점을 맞춘다. 다른 측면에서, 모델 개체는 모델 개체의 인스턴스에 대한 데이터 삽입 및 삭제 동작 내에 포함된 전체 필드 세트를 도출하기 위해 이용되는 최소 필드 세트를 정의한다.
일실시예에서, DAM은 개별 로직 필드, 로직 필드의 카테고리 또는 모델 개체에 대한 수수료 스케쥴을 포함한다. 수수료 스케쥴은 예를 들면, 실행되는 동작(예를 들면, 질의, 삽입, 업데이트, 삭제)에 따라서 또한 항목 당 또는 요청 당 기반으로 구성될 수 있다.
본 발명의 일실시예는 컴퓨터 시스템을 이용하는 프로그램 제품으로서 구현되고, 이하에 설명된다. 프로그램 제품의 프로그램(들)은 실시예(이하에 설명되는 방법을 포함)의 기능을 정의하고, 다양한 신호-보존 매체 상에 저장될 수 있다. 예시적인 신호-보존 매체는 (i) 기록 불가능 저장 매체(예를 들면, CD-ROM 드라이브에 의해 판독 가능한 CD-ROM 디스크 등과 같은 컴퓨터 내의 판독 전용 메모리 장치) 상에 영구적으로 저장된 정보, (ii) 기록 가능 저장 매체(예를 들면, 디스켓 드라이브 또는 하드 디스크 드라이브 내의 플로피 디스크) 상에 저장된 다른 정보, 또는 (iii) 무선 통신을 포함하는 컴퓨터 또는 전화기 네트워크 등을 통해 통신 매체에 의해 컴퓨터로 전달되는 정보를 포함하지만 이것으로 한정되지는 않는다. 후 자의 실시예는 특히 인터넷 및 다른 네트워크로부터 다운로딩되는 정보를 포함한다. 이러한 신호-보존 매체는, 본 발명의 기능을 지정하는 컴퓨터 판독 가능 인스트럭션을 저장하는 점에서, 본 발명의 실시예를 나타낸다.
일반적으로, 본 발명의 실시예를 구현하기 위해 실행되는 루틴은, 운영 체제 또는 특정 애플리케이션, 성분, 프로그램, 모듈, 객체, 또는 인스트럭션의 시퀀스의 일부분일 수 있다. 본 발명의 소프트웨어는 전형적으로 기본적 컴퓨터에 의해서 머신 판독 가능 포맷으로 변환되고, 그에 따라 실행 가능 인스트럭션으로 변환될 다수의 인스트럭션으로 구성된다. 또한, 프로그램은 프로그램에서 부분적으로 상주하거나 메모리 내부 또는 저장 장치 상에서 발견되는 변수 및 데이터 구조로 구성된다. 추가하여, 이하에서 설명되는 여러 프로그램은 본 발명의 특정한 실시예로 구현되는 애플리케이션에 기초하여 식별될 수 있다. 그러나, 이하에 제시된 임의의 특정한 전문 용어는 단지 편의상 이용된 것이고, 그에 따라 본 발명은 이러한 전문 용어에 의해 식별 및/또는 함축된 임의의 특정 애플리케이션 내에서만 이용되도록 한정되지 않는다는 것을 이해할 것이다.
환경에 대한 물리적 관점
도 1은 본 발명의 실시예가 구현될 수 있는 네트워크 시스템(100)의 블록도를 도시한다. 일반적으로 네트워크 시스템(100)은 클라이언트(즉, 일반적으로 사용자 또는 애플리케이션 등과 같은 임의의 요청 개체) 컴퓨터(102)(3개의 이러한 클라이언트 컴퓨터(102)가 도시됨) 및 적어도 하나의 서버 컴퓨터(104)(하나의 이 러한 서버 컴퓨터(104)가 도시됨)를 포함한다. 클라이언트 컴퓨터(102) 및 서버 컴퓨터(104)는 네트워크(126)를 통해 접속된다. 일반적으로, 네트워크(126)는 LAN(local area network) 및/또는 WAN(wide area network)일 수 있다. 특정한 실시예에서, 네트워크(126)는 인터넷이다. 그러나, 본 발명의 측면은 분산 환경 내에서만 구현되어야 하는 것이 아님을 유의하라. 이와 같이, 클라이언트 컴퓨터(102) 및 서버 컴퓨터(104)는 질의를 발행하는 임의의 요청 개체(사용자 또는 애플리케이션 등) 및 질의를 취급하도록 구성된 수신 개체를 보다 보편적으로 나타낸다.
클라이언트 컴퓨터(102)는 버스(130)를 통해 메모리(112), 저장 장치(114), 입력 장치(116), 출력 장치(119) 및 네트워크 인터페이스 장치(118)에 접속된 중앙 처리 장치(CPU)(110)를 포함한다. 입력 장치(116)는 클라이언트 컴퓨터(102)에 입력을 제공하는 임의의 장치일 수 있다. 예를 들면, 키보드, 키패드, 라이트-펜(light-pen), 터치 스크린, 트랙-볼, 또는 음성 인식 장치, 오디오/비디오 플레이어 등을 이용할 수 있다. 출력 장치(119)는 예를 들면, 임의의 통상적인 디스플레이 스크린 등과 같이 사용자에게 출력을 제공하는 임의의 장치일 수 있다. 입력 장치(116)와는 별도로 도시되었으나, 출력 장치(119) 및 입력 장치(116)는 결합될 수 있다. 예를 들면, 집적된 터치 스크린을 갖는 디스플레이 스크린, 집적된 키보드를 갖는 디스플레이 또는 텍스트 음성 변환기와 결합된 음성 인식 장치를 이용할 수 있다.
네트워크 인터페이스 장치(118)는 네트워크(126)를 통해 클라이언트 컴퓨터 (102)와 서버 컴퓨터(104) 사이에서 네트워크 통신을 가능하게 하도록 구성된 임의의 입력/출력 장치(entry/exit device)일 수 있다. 예를 들면, 네트워크 인터페이스 장치(118)는 네트워크 어댑터 또는 다른 네트워크 인터페이스 카드(NIC)일 수 있다.
저장 장치(114)는 바람직하게는 직접 액세스 저장 장치(Direct Access Storage Device : DASD)이다. 이것은 단일 장치로 도시되어 있기는 하지만, 고정 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 착탈 가능 메모리 카드 또는 광학 저장 장치 등과 같은 고정 및/또는 착탈 가능 저장 장치의 조합일 수 있다. 메모리(112) 및 저장 장치(114)는 다수의 1차 및 2차 저장 장치에 걸친 하나의 가상 어드레스 공간의 일부분일 수 있다.
메모리(112)는 본 발명의 필수적인 프로그래밍 및 데이터 구조를 저장할 수 있을 정도로 충분히 큰 랜덤 액세스 메모리인 것이 바람직하다. 메모리(112)는 단일 개체로서 도시되어 있으나, 메모리(112)는 사실상 복수의 모듈을 포함할 수 있고, 메모리(112)는 고속 레지스터 및 캐시로부터 저속의 대형 DRAM 칩에 이르기까지 다수의 레벨에서 존재할 수 있다는 것을 이해할 것이다.
예시적으로, 메모리(112)는 운영 체제(124)를 포함한다. 유리하게 이용될 수 있는 예시적인 운영 체제는, 리눅스(Linux) 및 마이크로소프트사의 윈도우즈
Figure 112005067677350-pct00001
(Windows
Figure 112005067677350-pct00002
)를 포함한다. 보다 일반적으로, 본 명세서에서 개시된 기능을 지원하는 임의의 운영 체제를 이용할 수 있다.
메모리(112)는 또한 CPU(110) 상에서 실행될 때, 여러 서버(104) 사이에서의 네비게이션 및 하나 이상의 서버(104)에서 네트워크 어드레스의 위치 확인에 대한 지원을 제공하는 브라우저 프로그램(122)을 포함하도록 도시되어 있다. 일실시예에서, 브라우저 프로그램(122)은 사용자가 HTML(Hyper Text Markup Language) 정보를 디스플레이할 수 있게 하는 웹 기반의 그래픽 사용자 인터페이스(GUI)를 포함한다. 그러나, 보다 일반적으로 브라우저 프로그램(122)은 서버 컴퓨터(104)로부터 정보가 송신될 수 있게 하는 임의의 GUI 기반의 프로그램일 수 있다.
서버 컴퓨터(104)는 클라이언트 컴퓨터(102)와 유사한 방식으로 물리적으로 정렬될 수 있다. 따라서, 서버 컴퓨터(104)는 버스(136)에 의해 서로 결합된 CPU(130), 메모리(132) 및 저장 장치(134)를 일반적으로 포함하도록 도시되어 있다. 메모리(132)는 서버 컴퓨터(104) 상에 위치된 필수적인 프로그래밍 및 데이터 구조를 저장할 수 있을 정도로 충분히 큰 랜덤 액세스 메모리일 수 있다.
서버 컴퓨터(104)는 일반적으로 메모리(132) 내에 상주하는 것으로 도시된 운영 체제(138)의 제어 하에 있다. 운영 체제(138)의 예는 IBM OS/400
Figure 112005067677350-pct00003
, UNIX, 마이크로소프트 윈도우즈
Figure 112005067677350-pct00004
등을 포함한다. 보다 일반적으로, 본 명세서에 기술된 기능을 지원할 수 있는 임의의 운영 체제를 이용할 수 있다.
메모리(132)는 하나 이상의 애플리케이션(140) 및 추상적 질의 인터페이스(146)를 더 포함한다. 애플리케이션(140) 및 추상적 동작 인터페이스(146)는 컴퓨터 시스템(100) 내의 여러 메모리 및 저장 장치 내에 여러 번 상주하는 복수의 인스트럭션을 포함하는 소프트웨어 제품이다. 서버(104) 내의 하나 이상의 프로세서 (130)에 의해 판독 및 실행될 때, 애플리케이션(140) 및 추상적 동작 인터페이스(146)는 컴퓨터 시스템(100)이 본 발명의 여러 측면을 구현하는 단계 또는 소자를 실행하는 데 필요한 단계를 수행하게 한다. 애플리케이션(140)(또한 보다 일반적으로, 운영 체제(138)를 포함하는 임의의 요청 개체 및 최고 레벨에서는 사용자 등)은 데이터베이스에 대한 질의를 발행한다. 질의가 발행될 수 있는 예시적인 소스는 국부적 데이터베이스(1561...156N) 및 원격 데이터베이스(1571...157N)(통칭하여 데이터베이스(들)로 지칭함(156-157))를 포함한다. 예시적으로, 데이터베이스(156)는 저장 장치(134) 내의 데이터베이스 관리 시스템(DBMS)(154)의 일부분으로서 도시된다. 보다 일반적으로, 본 명세서에서 이용된 바와 같이, "데이터베이스"라는 용어는 특정한 물리적 표현에 무관하게 데이터의 임의의 조합을 지칭한다. 예로서, 데이터베이스(156-157)는 관계 스키마(SQL 동작에 의해 액세스 가능함)에 따라서 또는 XML 스키마(XML 동작에 의해 액세스 가능함)에 따라서 조직될 수 있다. 그러나, 본 발명은 특정한 스키마로 한정되지 않고, 현재 알려지지 않은 스키마까지의 확장을 고려한다. 본 명세서에 이용된 바와 같이, "스키마"라는 용어는 일반적으로 본 명세서에 설명된 DAM 등과 같은 데이터 정의 프레임워크에 의해 기술된 데이터의 특정한 배치를 지칭한다.
일실시예에서, 애플리케이션(140)에 의해 발행된 동작(예를 들면, 질의, 삽입, 업데이트, 삭제)은 각각의 애플리케이션(140)에 포함된 애플리케이션 동작 사양(142)에 따라서 정의된다. 애플리케이션(140)에 의해 발행된 동작은 사전 정의(즉, 애플리케이션(140)의 일부분으로서 하드코딩)되거나, 입력(예를 들면, 사용자 입력)에 대한 응답으로 생성될 수 있다. 어떤 경우에나, 동작(본 명세서에서는 "추상적 동작"으로 지칭됨)은 추상적 동작 인터페이스(146)에 의해 정의된 로직 필드를 이용하여 구성된다. 특히, 추상적 동작에서 이용되는 로직 필드는 추상적 동작 인터페이스(146)의 데이터 추상화 모델(148)에 의해 정의된다. 추상적 동작은 추상적 동작을 하나 이상의 데이터베이스(156-157) 내에 포함된 데이터의 물리적 표현에 부합된 형태로 변환하는 런-타임 성분(150)에 의해 실행된다. 동작은 데이터를 액세스하고 결과를 리턴(즉, 데이터를 질의)하거나, 데이터를 수정(즉, 삽입, 삭제 또는 업데이트)하도록 구성될 수 있다. 애플리케이션 동작 사양(142) 및 추상적 동작 인터페이스(146)는 도 2a 및 도 2b를 참조하여 추가적으로 설명된다.
일실시예에서, 서버 컴퓨터(104)는 수수료 계산기(151)로 추가적으로 구성된다. 예시적으로, 수수료 계산기(151)는 그와 다르게 별개의 성분일 수 있지만 런-타임 성분(150)의 일부분으로서 도시되었다. 어떠한 경우에도, 수수료 계산기(151)는 질의, 삽입, 업데이트 또는 삭제 등과 같은 동작의 비용을 계산할 수 있게 한다.
일실시예에서, 추상적 동작의 요소는 그래픽 사용자 인터페이스(GUI)를 통해 사용자에 의해 지정된다. GUI의 컨텐츠는 애플리케이션(들)(140)에 의해 생성된다. 특정한 실시예에서, GUI 컨텐츠는 HTML(hypertext markup language) 컨텐츠로서, 브라우저 프로그램(122)을 가지고 클라이언트 컴퓨터 시스템(102) 상에서 구현될 수 있다. 따라서, 메모리(132)는 클라이언트 컴퓨터(102)로부터의 요청을 서비스하는데 적합한 http(Hypertext Transfer Protocol) 서버 프로세스(152)(예를 들면, 웹 서버)를 포함한다. 예를 들면, 프로세스(152)는 예시적으로 서버(104) 상에 상주하는 데이터베이스(들)(156)를 액세스하는 요청에 응답할 수 있다. 데이터베이스(156-157)로부터 데이터에 대한 입력된 클라이언트 요청은 애플리케이션(140)을 호출한다. 프로세서(130)에 의해 실행될 때, 애플리케이션(140)은 서버 컴퓨터(104)가 데이터베이스(들)(156-157)를 액세스하는 것을 포함하는 본 발명의 여러 측면을 구현하는 단계 또는 요소를 실행하게 한다. 일실시예에서, 애플리케이션(140)은 GUI 요소를 형성하도록 구성되고, 브라우저 프로그램(122)에 의해 제공되는 복수의 서블릿(servlets)을 포함한다. 원격 데이터베이스(157)가 애플리케이션(140)을 통해 액세스되는 경우에, 데이터 추상화 모델(148)은 검색될 데이터를 포함하는 데이터베이스를 식별하는 위치 사양으로 구성된다. 이러한 후자의 실시예는 이하에서 보다 상세하게 설명될 것이다.
도 1은 네트워크형 클라이언트 컴퓨터(102) 및 서버 컴퓨터(104)를 위한 하나의 하드웨어/소프트웨어 구성에 불과하다. 본 발명의 실시예는 임의의 동등한 하드웨어 구성, 즉 컴퓨터 시스템이 복잡한지 여부에 무관하게, 그 자체의 비휘발성 저장 장치를 구비하지 않는 다중 사용자 컴퓨터 장치, 단일 사용자 워크스테이션 또는 네트워크 제품에 적용될 수 있다. 또한, HTML을 포함하는 특정한 마크업 언어(markup languages)를 참조하였으나, 본 발명은 특정한 언어, 표준 또는 버전으로 한정되지 않음을 이해할 것이다. 따라서, 당업자라면 본 발명이 비 마크업 언어뿐만 아니라 다른 마크업 언어에도 적합하고, 본 발명이 또한 현재 알려지지 않은 다른 언어뿐만 아니라 특정한 마크업 언어의 미래의 변경에도 적합하다는 것을 인식할 것이다. 이와 마찬가지로, 도 1에 도시된 http 서버 프로세스(152)는 예시적인 것에 불과하고, 임의의 공지되거나 공지되지 않은 프로토콜을 지원하는데 적합한 다른 실시예도 고려할 수 있다.
환경에 대한 논리/ 런타임 관점
도 2a 및 도 2b는 본 발명의 복수의 상관 성분을 도시한다. 예로서, 도 2a 및 도 2b(또한 도 3 및 도 4)에 도시된 실시예는 질의를 참조하여 설명된다. 그러나, 보다 일반적으로, 실행될 동작은 데이터를 실행하는 임의의 동작(즉, 삽입, 삭제, 업데이트)일 수 있다. 요청 개체(예를 들면, 애플리케이션(140) 중의 하나)는 요청 개체의 각각의 애플리케이션 동작 사양(142)에 의해 정의된 질의(202)를 발행한다. 결과적인 질의(202)는 일반적으로 본 명세서에서 "추상적 질의"로 지칭되는데, 이것은 질의가 데이터베이스(156-157) 내의 기본 물리적 데이터 개체를 직접 참조하는 것이 아니라 추상적(즉, 로직) 필드에 따라서 구성되기 때문이다. 결과적으로, 추상적 질의는 사용된 특정한 기본 데이터 표현에 무관하게 정의될 수 있다. 일실시예에서, 애플리케이션 동작 사양(142)은 데이터 선택을 위해 이용된 기준(선택 기준(204)) 및 선택 기준(204)에 기초한 리턴될 필드의 명시적 사양(리턴 데이터 사양(206))을 모두 포함할 수 있다.
애플리케이션 동작 사양(142)에 의해 지정되고 추상적 질의(202)를 구성하기 위해 이용되는 로직 필드는 데이터 추상화 모델(148)에 의해 정의된다. 일반적으로, 데이터 추상화 모델(148)은 애플리케이션(140)에 의해 발행되는 질의(예를 들면, 추상적 질의(202)) 내에서 사용될 수 있는 로직 필드의 세트로서 정보를 노출하여 데이터 선택을 위한 기준을 지정하고, 질의 동작으로부터 리턴될 결과 데이터의 형태를 지정한다. 로직 필드는 데이터베이스(156-157) 내에서 이용되는 기본 데이터 표현에 무관하게 정의되고, 그것에 의해 질의가 기본 데이터 표현에 약하게 결합되도록 형성될 수 있게 한다.
일반적으로, 데이터 추상화 모델(148)은 통칭하여 필드 사양(208)으로 지칭되는 복수의 필드 사양(2081, 2082, 2083, 2084, 2085)(예로서 5개가 도시됨)을 포함한다. 특히, 필드 사양은 추상적 질의의 구성에 이용 가능한 각각의 로직 필드에 대해 제공된다. 각각의 필드 사양은 로직 필드 성명(2101, 2102, 2103, 2104, 2105)(통칭하여, 필드 성명(210)) 및 연관된 액세스 방법(2121, 2122, 2123, 2124, 2125)(통칭하여, 액세스 방법(212))을 포함한다. 액세스 방법은 로직 필드 성명을 데이터베이스(예를 들면, 데이터베이스(156) 중의 하나) 내의 특정한 물리적 데이터 표현(2141, 2142 ... 214N)에 대해 연관(즉, 매핑)시킨다. 예로서, 2개의 데이터 표현, 즉 XML 데이터 표현(2141) 및 관계 데이터 표현(2142)이 도시되어 있다. 그러나, 물리적 데이터 표현(214N)은 공지되거나 공지되지 않은 임의의 다른 데이터 표현이 고려될 수 있다는 것을 나타낸다.
지원될 상이한 타입의 로직 필드의 개수에 따라 임의의 개수의 액세스 방법이 고려될 수 있다. 일실시예에서, 단순한 필드, 필터링된 필드 및 조합된 필드에 대한 액세스 방법이 제공된다. 필드 사양(2081, 2082, 2085)은 단순한 필드 액세스 방법(2121, 2122, 2125)을 각각 예시한다. 단순한 필드는 기본 물리적 데이터 표현(예를 들면, 주어진 데이터베이스 테이블 및 열에 대해 매핑된 필드) 내의 특정 개체로 직접 매핑된다. 예로서, 도 2b에 도시된 단순한 필드 액세스 방법(2121)은 로직 필드 성명(2101)("이름(FirstName)")을 "컨택트(contact)"로 지칭된 테이블 내에서 "f_name"으로 지칭된 열로 매핑한다. 필드 사양(2083)은 필터링된 필드 액세스 방법(2123)을 예시한다. 필터링된 필드는 연관된 물리적 개체를 식별하고, 물리적 데이터 표현 내의 항목의 특정 서브셋을 정의하는 데 이용되는 룰(rules)을 제공한다. 필터링된 필드 액세스 방법(212)이 로직 필드 성명(2103)("AnytownLastName")을 "컨택트"로 지칭된 테이블 내의 "1_name"로 지칭된 열 내의 물리적 개체로 매핑하고, 애니타운(Anytown)이라는 도시의 개개인에 대한 필터를 정의하는 일례를 도 2b에 제공한다. 필터링된 필드의 다른 예는 뉴욕 ZIP 코드 필드로서, ZIP 코드의 물리적 표현으로 매핑하고, 데이터가 오로지 뉴욕 주에 대해 정의된 ZIP 코드로만 한정되게 한다. 필드 사양(2084)은 조합된 필드 액세스 방법(2124)을 예시한다. 조합된 액세스 방법은 액세스 방법 정의의 일부분으로서 제공되는 표현을 이용하여 하나 이상의 물리적 필드로부터 로직 필드를 계산한다. 이러한 방법으로, 기본 데이터 표현 내에 존재하지 않는 정보를 계산할 수 있다. 도 2b에 도시된 예에서, 조합된 필드 액세스 방법(2123)은 로직 필드 성명(2103)인 "AgeInDecades"를 "AgeInYears/10"으로 매핑한다. 다른 예는 판매 세금 필드(sales tax field)로서, 판매 가격 필드(sales price field)와 판매 세금 비율(sales tax rate)을 곱하는 것으로 구성된다.
도 2b에 도시된 데이터 추상화 모델(148)은 선택된 로직 필드 사양의 일례에 불과하고, 포괄적인 것으로 의도되지 않았다는 것을 유의하라. 이와 같이, 도 2b에 도시된 추상적 질의(202)는 "주(State)" 및 "가(Street)" 등과 같이 그 사양이 데이터 추상화 모델(148) 내에서 도시되지 않은 몇몇 로직 필드를 포함한다.
기본 데이터의 임의의 주어진 데이터 타입(예를 들면, 날짜, 십진수 등)에 대한 포맷이 다양할 수 있다는 것을 고려한다. 따라서, 일실시예에서, 필드 사양(208)은 기본 데이터의 포맷을 반영하는 타입 속성을 포함한다. 그러나, 다른 실시예에서, 필드 사양(208)의 데이터 포맷은 연관된 기본 물리적 데이터와 상이하고, 이러한 경우에 액세스 방법은 요청 개체에 의해 추측된 적절한 포맷으로 데이터를 리턴할 책임이 있다. 그러므로, 액세스 방법은 기본 물리적 데이터의 실제 포맷뿐만 아니라 어떤 데이터 포맷이 가정되었는지(즉, 로직 필드에 따라) 인식하여야 한다. 그러면 액세스 방법은 기본 물리적 데이터를 로직 필드의 포맷으로 변환할 수 있다.
예로서, 도 2a에 도시된 데이터 추상화 모델(148)의 필드 사양(208)은 관계 데이터 표현(2142) 내에 표현된 데이터로 매핑된 로직 필드의 대표적인 것이다. 그러나, 데이터 추상화 모델(148)의 다른 인스턴스가 로직 필드를 XML 등과 같은 다른 물리적 데이터 표현으로 매핑할 수 있다. 또한, 일실시예에서, 데이터 추상화 모델(148)은 절차적 데이터 표현에 대한 액세스 방법으로 구성된다. 이러한 데이터 추상화 모델(148)의 일실시예는 도 8을 참조하여 이하에 설명된다.
도 2에 도시된 추상적 질의(202)에 대응하는 예시적인 추상적 질의는 이하의 표 I에 도시되어 있다. 예로서, 데이터 리포지터리 추상화(148)는 XML을 이용하여 정의된다. 그러나, 어떠한 다른 언어도 유용하게 이용될 수 있다.
Figure 112005067677350-pct00005
예시적으로, 표 I에 도시된 추상적 질의는 선택 기준을 포함하는 선택 사양(005-014 라인) 및 결과 사양(015-019 라인)을 포함한다. 일실시예에서, 선택 기준은 필드 성명(로직 필드에 대한), 비교 연산자(=, >, < 등) 및 가치 표현(필드를 이것에 대해 비교함)으로 이루어진다. 일실시예에서, 결과 사양은 질의 표현의 결과로서 리턴될 추상적 필드의 리스트이다. 추상적 질의 내의 결과 사양은 필드 성명 및 분류 기준으로 이루어질 수 있다.
표 I에서 추상적 질의에 대응하는 데이터 추상화 모델(148)의 예시적인 인스턴스를 이하의 표 II에 나타내었다. 예로서, 데이터 추상화 모델(148)은 XML을 이용하여 정의되었다. 그러나, 어떠한 다른 언어도 유용하게 이용될 수 있다.
Figure 112005067677350-pct00006
004-009 라인은 도 2b에 도시된 DAM(148)의 제 1 필드 사양(2081)에 대응하고, 010-015라인은 제 2 필드 사양(2082)에 대응한다는 것을 유의하라. 간단히 말해서, 표 I에 정의된 다른 필드 사양은 도 2b에 도시되지 않았다. 또한 표 I은 카테고리를 나타내는데, 이 경우에는 "데모그래픽(Demographic)"을 나타낸다는 것을 유의하라. 카테고리는 하나 이상의 로직 필드의 그룹이다. 이러한 예에서, "이름(First Name)", "성(Last Name)" 및 "주(State)"는 공통 카테고리인 "데모그래픽(Demographic)"에 속하는 로직 필드이다.
도 3은 런-타임 성분(150)의 동작의 일실시예를 예시하는 예시적인 런-타임 방법(300)을 나타낸다. 이 방법(300)은 런-타임 성분(150)이 추상적 질의(도 2에 도시된 추상적 질의(202) 등)의 인스턴스를 입력으로서 수신할 때, 단계(302)에서 개시된다. 단계(304)에서, 런-타임 성분(150)은 추상적 질의의 인스턴스를 판독 및 파싱(parses)하고, 개별 선택 기준 및 원하는 결과 필드를 확인한다. 단계(306)에서, 런-타임 성분(150)은 추상적 질의 내에 존재하는 각각의 질의 선택 기준 명령문을 처리하는 루프(단계(306), 단계(308), 단계(310) 및 단계(312)를 포함함) 내로 진입하여, 구체적 질의(Concrete Query)의 데이터 선택부를 형성한다. 일실시예에서, 선택 기준은 필드 성명(로직 필드에 대해), 비교 연산자(=, >, < 등) 및 가치 표현(필드를 이것에 대해 비교함)으로 구성된다. 단계(308)에서, 런-타임 성분(150)은 추상적 질의의 선택 기준 중에서 필드 성명을 이용하여 데이터 리포지터리 추상화(148) 내에서 필드의 정의를 검색한다. 앞서 언급된 바와 같이, 필드 정의는 필드와 연관된 물리적 데이터를 액세스하기 위해 이용되는 액세스 방법의 정의를 포함한다. 다음에 런-타임 성분(150)은 처리될 로직 필드에 대한 구체적 질의 요소(Concerete Query Contribution)를 형성한다(단계(310)). 본 명세서에 정의된 바와 같이, 구체적 질의 요소는 현재의 로직 필드에 기초하여 데이터 선택을 실행하는 데 이용되는 구체적 질의의 일부분이다. 구체적 질의는 SQL 및 XML 질의 등의 언어로 표현된 질의이고, 주어진 물리적 데이터 리포지터리(예를 들면, 관계 데이터베이스 또는 XML 리포지터리)의 데이터와 부합된다. 따라서, 구체적 질의는 도 1에 도시된 데이터베이스(156-157)에 의해 표현된 물리적 데이터 리포지터리 중에서 데이터를 확인하고 검색하는 데 이용된다. 다음에 현재 필드에 대해 생성된 구체적 질의 요소는 구체적 질의 명령문에 추가된다. 다음에 방법(300)은 추상적 질의의 다음 필드에 대한 처리를 실행하기 위해 단계(306)로 리턴한다. 따라서, 단계(306)에서 시작된 프로세스는 추상적 질의 내의 각각의 데이터 선택 필드에 대해 반복되고, 그것에 의해 실행될 결과적 질의에 대한 추가적인 컨텐츠에 기여한다.
구체적 질의의 데이터 선택부를 형성한 후에, 런-타임 성분(150)은 질의 실행의 결과로서 리턴될 정보를 식별한다. 앞서 설명된 바와 같이, 일실시예에서 추상적 질의는 본 명세서에서 결과 사양으로 지칭되는 질의 실행의 결과로서 리턴될 추상적 필드의 리스트를 정의한다. 추상적 질의 내의 결과 사양은 필드 성명 및 분류 기준으로 구성될 수 있다. 따라서, 방법(300)은 단계(314)에서 루프(단계(314), 단계(316), 단계(318) 및 단계(320)에 의해 정의됨) 내로 진입하여 생성된 구체적 질의를 결과 필드 정의에 추가한다. 단계(316)에서, 런-타임 성분(150)은 데이터 리포지터리 추상화(148) 내에서 (추상적 질의의 결과 사양 중에서) 결과 필드 성명을 검색한 후, 데이터 리포지터리 추상화(148) 중에서 결과 필드 정의를 검색하여 현재의 로직 결과 필드에 대해 리턴될 데이터의 물리적 위치를 식별한다. 다음에 런-타임 성분(150)은 로직 결과 필드에 대한 (리턴될 데이터의 물리적 위치를 식별하는 구체적 질의의) 구체적 질의 요소를 형성한다(단계(318)). 다음에 단계(320)에서, 구체적 질의 요소는 구체적 질의 명령문에 추가된다. 추상적 질의 내의 결과 사양이 각각 처리되면, 질의는 단계(322)에서 실행된다.
단계(310) 및 단계(318)에 따른 로직 필드에 대한 구체적 질의 요소를 형성하는 방법(400)에 대한 일실시예는 도 4를 참조하여 설명된다. 단계(402)에서, 방법(400)은 현재의 로직 필드와 연관된 액세스 방법이 단순한 액세스 방법인지 여부를 질의한다. "예"라면, 물리적 데이터 위치 정보에 기초하여 구체적 질의 요소를 형성하고(단계(404)), 다음에 처리는 상술된 방법(300)에 따라 진행된다. "아니오"라면, 처리는 단계(406)로 진행되어 현재의 로직 필드와 연관된 액세스 방법이 필터링된 액세스 방법인지 여부를 질의한다. "예"라면, 몇몇 물리적 데이터 개체에 대한 물리적 데이터 위치 정보에 기초하여 구체적 질의 요소를 형성한다(단계(408)). 단계(410)에서, 구체적 질의 요소는 물리적 데이터 개체와 연관된 서브셋 데이터에 대해 이용되는 추가 로직(필터 선택)을 가지고 확장된다. 다음에 처리는 앞서 설명된 방법(300)에 따라 진행된다.
액세스 방법이 필터링된 액세스 방법이 아니면, 처리는 단계(406)로부터 단계(412)로 진행되고, 여기에서 방법(400)은 액세스 방법이 조합된 액세스 방법인지 여부를 질의한다. 액세스 방법이 조합된 액세스 방법이면, 조합된 필드 표현 내에서 각각의 서브-필드 기준에 대한 물리적 데이터 위치는 단계(414)에서 확인되고 검색된다. 단계(416)에서, 조합된 필드 표현의 물리적 필드 위치 정보는 조합된 필드 표현의 로직 필드 기준으로 대체되고, 이것에 의해 구체적 질의 요소가 생성된다. 다음에 처리는 상술된 방법(300)에 따라서 진행된다.
액세스 방법이 조합된 액세스 방법이 아니면, 처리는 단계(412)에서 단계(418)로 진행된다. 단계(418)는 본 발명의 일실시예에서 고려된 임의의 다른 액세스 방법의 타입에 대한 대표물이다. 그러나, 실시예는 구현될 수 있는 가능한 모든 액세스 방법보다 더 작게 고려된 것임을 이해할 것이다. 예를 들면, 특정한 실시예에서는 오로지 단순한 액세스 방법만이 이용된다. 다른 실시예에서는, 오로지 단순한 액세스 방법 및 필터링된 액세스 방법이 이용된다.
상술된 바와 같이, 로직 필드가 기본 물리적 데이터와 상이한 데이터 포맷을 지정한다면 데이터 변환을 실행해야 할 것이다. 일실시예에서, 방법(400)에 따라서 로직 필드에 대한 구체적 질의 요소를 형성할 때 각 액세스 방법에 대한 초기 변환이 실행된다. 예를 들면, 변환은 단계(404), 단계(408) 및 단계(416)의 일부분이거나 직후에 실행될 수 있다. 물리적 데이터의 포맷을 로직 필드의 포맷으로 변환하는 후속 변환은 질의가 단계(322)에서 실행된 후에 이루어진다. 물론, 로직 필드 정의의 포맷이 기본 물리적 데이터와 동일하면, 변환은 필요하지 않다.
데이터 리포지터리 추상화 성분의 다른 실시예
일실시예에서, 각각의 별개의 물리적 데이터 표현(214)에 대해 서로 다른 단일 데이터 추상화 모델(148)이 제공된다. 다른 실시예에서, 단일 데이터 추상화 모델(148)은 2개 이상의 물리적 데이터 표현(214)에 대한 필드 사양(연관된 액세스 방법과 함께)을 포함한다. 또 다른 실시예에서, 다수의 데이터 추상화 모델(148)이 제공되고, 여기에서 각각의 데이터 추상화 모델(148)은 동일한 기본 물리적 데이터(하나 이상의 물리적 데이터 표현(214)을 포함할 수 있음)의 상이한 부분을 노출한다. 이러한 방식으로, 단일 애플리케이션(140)은 애플리케이션에 노출된 기본 데이터의 특정 부분이 각각의 데이터 추상화 모델(148)에 의해 결정되는 경우에, 다수의 사용자가 동일한 기본 데이터를 동시에 액세스할 때 이용될 수 있다. 이러한 후자의 실시예는 인터내셔널 비지네스 머신즈 사에 양도된 "DYNAMIC END USER SPECIFIC CUSTOMIZATION OF AN APPLICATION'S PHYSICAL DATA LAYER THROUGH A DATA REPOSITORY ABSTRACTION LAYER"라는 제목의 미국 특허 출원 번호 제 10/132,228 호(공개 번호 제 US20030208486 호)에 보다 상세하게 기술되어 있다.
어떠한 경우에도, 데이터 추상화 모델(148)은 로직 필드를 물리적 데이터로 매핑하는 적어도 하나의 액세스 방법을 포함(또는 참조)한다. 이를 위하여, 상술된 실시예에 설명된 바와 같이, 액세스 방법은 로직 필드에 대응하는 데이터의 물리적 표현을 확인하고 처리하는 수단을 기술한다. 일실시예에서, 액세스 방법은 로직 필드와 연관된 데이터의 위치를 정의하는 위치 사양으로 더 구성된다. 이러한 방식으로, 데이터 추상화 모델(148)은 네트워크 환경에 걸쳐 국부적 및/또는 분산형일 수 있는 다수의 데이터 소스의 설명을 포함하도록 확장된다. 데이터 소스는 다수의 서로 다른 데이터 표현 및 데이터 액세스 기술을 이용할 수 있다. 이러한 방식으로, 현재 널리 이용되는 분산 환경에 대한 자본화(capitalizing)가 가능한 인프라 구조가 제공된다. 다수의 데이터 소스를 액세스하는 접근법은 인터내셔널 비지네스 머신즈 사에 양도된 "REMOTE DATA ACCESS AND INTEGRATION OF DISTRIBUTED DATA SOURCES THROUGH DATA SCHEMA AND QUERY ABSTRACTION"라는 명칭의 미국 특허 출원 번호 제 10/131,984 호(공개 번호 제 US20030208458 호)에서 보다 상세하게 설명된다.
여러 실시예에서, 종래 기술을 능가하는 여러 이점이 제공된다. 일 측면에서, 애플리케이션 동작 사양과 기본 데이터 표현 사이의 약한 결합을 정의함으로써 이점을 제공할 수 있다. SQL이 이용되는 경우와 마찬가지로 특정 테이블, 열 및 관계 정보로 애플리케이션을 인코딩하는 것 대신에, 애플리케이션은 보다 추상적 방식으로 데이터 동작 조건을 정의하고 다음에 이것은 런-타임으로 특정한 물리적 데이터 표현에 결합된다. 본 발명의 느슨한 동작-데이터 결합은 기본 데이터 표현이 수정되거나, 요청 개체가 전개될 때 이용되는 것보다 완전히 새로운 물리적 데이터 표현으로 요청 개체가 이용되는 경우에도 요청 개체(예를 들면, 애플리케이션)가 기능할 수 있게 한다. 주어진 물리적 데이터 표현이 수정되거나 재구성되는 경우에, 대응하는 데이터 리포지터리 추상화가 업데이트되어 기본 물리적 데이터 모델에 대해 이루어진 변경을 반영한다. 로직 필드의 동일한 세트는 질의에 의해 이용될 수 있고, 물리적 데이터 모델 내의 상이한 개체 또는 위치에만 결합된다. 결과적으로, 추상적 동작 인터페이스에 기록된 요청 개체는 대응하는 물리적 데이터 모델이 상당한 변동에 처하는 경우에도 변경없이 계속 기능한다. 요청 개체가 요청 개체가 전개될 때 이용되던 것과는 다른 완전히 새로운 물리적 데이터 표현으로 이용되는 경우에, 새로운 물리적 데이터 모델은 동일한 기술(예를 들면, 관계 데이터베이스)을 이용하지만 정보의 네이밍 및 조작화에 있어서 상이한 전략(예를 들면, 상이한 스키마)에 따라 구현될 수 있다. 새로운 스키마는 단순한, 필터링된 및 조합된 필드 액세스 방법 기술을 이용하여 애플리케이션에 의해 요구되는 로직 필드의 세트로 매칭될 수 있는 정보를 포함할 것이다. 이와 다르게, 새로운 물리적 표현은 유사한 정보를 나타내는 다른 기술을 이용(예를 들면, XML 기반의 데이터 리포지터리 대 관계 데이터베이스 시스템을 이용)할 수 있다. 어느 경우에나, 추상적 동작 인터페이스를 이용하기 위해 기록된 기존의 요청 개체는, 새로운 물리적 데이터 모델의 위치 및 물리적 표현을 가지고 질의 내에 참조된 필드를 매핑하는 다른 데이터 리포지터리 추상화에 의하여 새로운 물리적 데이터 표현을 이용하기 위해 용이하게 이동할 수 있다.
다른 측면에서, 애플리케이션 형성기(application builder) 및 최종 사용자(end-user)에 대한 사용 용이성(ease-of-use)이 활성화된다. 기본 데이터 리포지터리 내의 로직 필드를 나타내는 추상화 계층의 사용은, 애플리케이션 개발자가 기본 데이터 표현의 상세 내용을 고려하지 않으면서 주요 애플리케이션 데이터 조건에 집중할 수 있게 한다. 결과적으로, 애플리케이션 개발 동안에 더 높은 생산성 및 감소된 에러율(error rates)이 획득된다. 최종 사용자와 관련하여, 데이터 리포지터리 추상화는 데이터 필터링 메커니즘을 제공하여, 적절한 데이터를 노출하고, 주어진 질의를 전개하는 특정 계급의 최종 사용자에게 필요하지 않은 불필요 컨텐츠를 은폐한다.
현재의 모델을 구현하는 솔루션은 포함된 데이터의 위치 또는 표현에 무관하게 그 정보 조건을 전개하기 위해 제공된 추상적 동작 사양을 이용한다. 동작, 예를 들면, 질의는 데이터 추상화 모델을 이용하는 런-타임 성분에 제공되어 질의 내에 표현된 정보에 대한 각각의 정보 로직 부분을 액세스하기 위해 이용되는 위치 및 방법을 결정한다.
일측면에서, 이러한 모델은 솔루션에 의해 이용된 데이터의 물리적 위치 또는 표현에 무관하게 솔루션이 개발될 수 있게 하여 다수의 상이한 데이터 토폴로지(data topologies)에 대해 솔루션을 용이하게 전개할 수 있게 하고, 데이터가 시간에 걸쳐 재배치 또는 재조직화되는 경우에 솔루션이 기능할 수 있게 한다. 다른 측면으로, 이러한 접근법은 또한 추가적인 정보를 유리하게 이용하도록 솔루션을 확장하는 작업을 단순화한다. 확장은 추상적 질의 레벨에서 이루어지고, 액세스되는 새로운 데이터의 위치 또는 표현에 대해 고유한 소프트웨어의 추가를 필요로 하지 않는다. 이러한 방법은 액세스 데이터를 액세스하기 위해 이용된 특정한 방법에 무관하고, 참조되는 데이터의 각 항목의 위치에 무관한 소프트웨어 애플리케이션에 대한 공통 데이터 액세스 방법을 제공한다. 추상적 질의를 통해 액세스되는 물리적 데이터는 관계적으로(기존의 관계 데이터베이스 시스템에서), 계층적으로(XML로서) 또는 몇몇 다른 물리적 데이터 표현 모델에서 표현될 수 있다. SQL 및 XQuery 등과 같은 기존의 데이터 질의 방법 및 웹 서비스 호출(예를 들면, SOAP를 이용) 또는 HTTP 요청을 통한 데이터의 검색 등과 같이 정보에 대한 프로그램 액세스를 포함한 방법을 포함하는 다수의 데이터 액세스 방법이 또한 지원된다.
모델 개체
본 발명의 측면은 개별 로직 필드의 복합체를 표현하는 것에 의해 개본 데이터의 더 높은 레벨의 추상화를 식별하는 역할을 하는 데이터 추상화 모델 개체를 제공한다. 모델 개체는 최종 사용자 및 애플리케이션에게 데이터 질의 및 수정 작업(즉, 삽입 및 삭제)을 단순화할 수 있는 기본 데이터의 상위 레벨의 개념적 관점을 제공한다. 환자 또는 실험 테스트 결과 등과 같은 개체를 형성하는 개별 필드 전체를 이해하는 것보다, 사용자/애플리케이션은 보다 개념적인 모델 개체 레벨에서 작업할 수 있다. 이하에서 보다 상세하게 설명되는 바와 같이, 모델 개체의 정의는 모델 개체의 인스턴스에 대해 실행되는 거래를 합리화하고 단순화하기에 충분한 메타데이터를 포함한다.
이러한 실시예에서, 모델 개체는 추상적 데이터 모델 표현(즉, DAM)에서 이미 확인된 추가적인 메타데이터를 통해 정의된다. 그러나, 보다 일반적으로, 모델 개체는 추상적 데이터 모델 정의 내에서 정의되거나, 추상적 데이터 모델 정의 외부에서 정의될 수 있다.
또한, 실시예는 관계 데이터베이스를 참조하여 설명된다. 그러나, 본 발명은 예를 들면, XML 등과 같은 마크업 언어를 포함하는 어떠한 다른 데이터 표현에도 적용될 수 있다.
다음으로 도 5를 참조하면, 환경(500)은 물리적 데이터 소스의 액세스(즉, 질의 및 수정 동작)를 지원하도록 조합된 대표적 데이터 추상화 모델(DAM)(502)을 포함한다. 오로지 예로서, 데이터 추상화 모델(502)을 통해 액세스되는 물리적 데이터 소스는 복수의 테이블(520-523)을 포함하는 관계 데이터 소스(504)이다. 그러나, 상술된 바와 같이, 어떠한 데이터 타입도 고려될 수 있다.
데이터 추상화 모델(502)은 일반적으로 복수의 카테고리(5081-5), 복수의 로직 필드 사양(5101-16), 모델 개체 사양(525) 및 물리적 개체 관계 사양(526)을 포함한다. 카테고리(508)는 단일 로직 필드에 대해 정의되거나, 보다 통상적으로 2개 이상의 로직 필드 사양(510)을 관련시킨다. 로직 필드 사양(510)은 도 2를 참조하여 상술된 메타데이터를 포함하지만, 이것은 단순성을 위해 도시되지 않았다. 도 2를 참조하여 상술된 로직 필드 사양의 몇몇 측면은 단순화된 형태로 도시되었다. 예를 들면, 조합된 필드를 정의하는 데 이용되는 로직 필드에 대한 참조는 "나이(Age)" 로직 필드 사양(5105) 및 "지불일(Days to Payment)" 로직 필드 사양(51016)의 경우에서와 같이 화살표로 표시된다.
추가하여, 로직 필드 사양(510)은 본 발명의 측면을 구현하는 데 이용되는 추가적 메타데이터를 포함한다. 예를 들면, 선택된 로직 필드는 "필수(required)" 속성(514), "산출(generate)" 속성(516) 및 "디폴트(default)" 속성(518)을 포함하는 여러 속성으로 구성된다. 예시적으로, "이름(First Name)" 로직 필드 사양(5102), "성(Last Name)" 로직 필드 사양(5103), "도시(City)" 로직 필드 사양(5108), "주(State)" 로직 필드 사양(5109), "우편 번호(Postal Code)" 로직 필드 사양(51010), "글루코스 테스트(Glucose Test)" 로직 필드 사양(51012), "계좌 번호(AccountNumber)" 로직 필드 사양(51013) 및 "균형(Balance)" 로직 필드 사양(51014)은 "필수(Required)" 속성(514)으로 구성된다. "환자ID(PatientID)" 로직 필드 사양(5101)은 "산출" 속성(516)으로 구성되고, 테스트 날짜(Test Date) 로직 필드 사양(51011)은 디폴트 값이 "현재날짜(CurrentDate)"로서 지정된 "(Default Value)디폴트 값" 속성(518)으로 구성된다.
모델 개체 사양(525)은 복수의 모델 개체(5061-3)(예시적으로 3개의가 도시되었으나, 어떠한 개수의 모델 개체도 정의 가능함)를 정의한다. 각각의 모델 개체는 성명을 갖는다. 예시적으로, "환자(Patient)" 모델 개체(5061), "테스트(Test)" 모델 개체(5062) 및 "계좌(Account)" 모델 개체(5063)는 DAM(502)에 의해 정의된다.
예로서, 환자 및 테스트 모델 개체(5061-2)의 추가적인 세부 내용은 도 6을 참조하여 설명된다. 도시되지는 않았으나, "계좌(Account)" 모델 개체(5063)의 세부 내용은 동일한 구성을 가질 수 있다. 성명(602)에 추가하여, 각각의 모델 개체는 모델 개체에 대응하는 물리적 데이터에 대한 질의, 삽입 및 삭제 동작을 구현하기 위해 이용된 다수의 필드 세트를 정의한다. 특히, 각각의 모델 개체(506) 질의부(6041-2), 삽입부(6061-2) 및 삭제부(6081-2)를 포함하도록 분할된다. 적절한 부분은 모델 개체(506)에 대해 실행되는 동작의 타입에 따라서 액세스된다. 질의에 있어서, 모델 개체(예를 들면, 환자)를 정의하는 필드의 전체 개수(full complement)가 지정되지만, 삽입 및 삭제의 경우에 모델 개체를 정의하는 모든 필드의 서브셋이 지정된다는 것을 유의하라. 이하에서 보다 상세히 설명되는 바와 같이, 필드의 서브셋은 모델 개체의 각각의 대응하는 물리적 개체에 대한 "시드(seed)" 필드를 포함한다. 어떠한 경우에도, 모델 개체(506)의 일부분은 단일 물리적 개체를 가리키는 단일 로직 필드만을 포함할 수 있다는 것이 명확할 것이다. 또한, 모델 개체(506)는 단일 물리적 개체를 가리키는 단일 로직 필드만을 구비할 것이다. 그러나, 이 경우에 사용자는 어떤 로직 필드가 추상적 개체를 형성하는지 인식하는 부담을 갖는 것보다는 단일 추상적 표현을 가지고 작업할 수 있기 때문에, 다수의 필드/개체에 적용될 때 모델 개체는 특별한 이점을 제공한다. 이와 관련하여, 이 부분들이 추상적 개체가 다수의 로직 필드 및/또는 다수의 물리적 필드에 걸쳐 적용되는 것인지에 대해 주어진 동작에 대한 추상적 개체를 각각 정의한다는 점에서, 실제적으로 모델 개체(506)의 각 부분(질의, 삽입 및 삭제)은 그 자체가 모델 개체라는 것을 유의하라.
모델 개체 메타데이터에 추가하여, 본 발명의 측면은 물리적 개체 관계 사양(526)에 의해 구현되고, 이것은 이하에서 도 5를 참조하여 설명된다. 물리적 개체 관계 사양(526)은 물리적 모델 내의 개체 사이의 계층적 관계(즉, 관계 데이터베이스(520))를 정의한다. 예로서, 도 5에 도시된 물리적 개체 관계 사양(526)은 환자 정보 테이블(520)을 데이터 소스(504) 내의 다른 테이블(521-523) 각각에 대해 연관시킨다. 각각의 경우에, 환자 정보 테이블(520)은 2차 테이블(secondary table)에 대한 1차 테이블(primary table)이다. 도 5의 물리적 개체 관계 사양(526)에는 도시되지 않았으나, 추가적인 계층 레벨이 정의될 수 있다는 것을 고려할 수 있다. 예를 들면, 어드레스 정보 테이블(521)은 도 5에 도시되지 않은 몇몇 다른 2차 테이블(편의상 "테이블 A(Table A)"로 지칭됨)에 대한 1차 개체로서 정의될 수 있다. 이러한 경우에, 3단형(three-tiered)의 계층은 환자 정보 테이블(520)이 1차 개체이고, 어드레스 정보 테이블(521)은 2차 개체이며, 테이블 A가 3차 개체가 되게 하여 정의된다. 이러한 구성에서, 환자 정보 테이블(520) 및 어드레스 정보 테이블(521)과, 어드레스 정보 테이블(521) 및 테이블 A는 명확하게 1차-2차 관계를 갖고, 연역법에 의해, 환자 정보 테이블(520) 및 테이블 A는 1차-2차 관계를 갖는다.
물리적 개체 관계 사양(526)은 또한 개체들 간의 1차-2차 관계에 대한 기반을 나타낸다. 특히, 관계가 기초로 하는 필드(즉, 열)는 꺾인 괄호 []로 지정된다. 본 실시예에서, 개체 관계는 환자 식별자(각각 "ID" 및 "PID")에 대해 정의된다. 오로지 하나의 필드 성명만이 각각의 개체에 대해 지정된 것으로 도시되었으나, 2개 이상이 지정되어 각각의 개체가 2개 이상의 필드 쌍에 의해 연관될 수 있다. 다음의 관계 예시를 고려하면, 개체 1[필드 1, 필드 3, 필드 6] 개체 2[필드 2, 필드 3, 필드 4]가 있다. 이러한 예에서, 1차 개체인 개체 1의 필드 1, 필드 3 및 필드 6은 각각 2차 개체인 개체 2의 필드 2, 필드 3 및 필드 4에 각각 연관된다.
물리적 개체 관계 사양(526)은 또한 2개의 개체 사이의 관계가 1:1인지, 1:다(one-to-many) 다:1(many-to-one)인지, 다:다(many-to-many)인지 여부를 지정한다. 이러한 관계는 각 개체에 대해 둥근 괄호 ()로 지정된다. 예를 들면, 개체 "PatientInfo" 및 "AddressInfo"는 1:1 관계인 반면, 개체"PatientInfo" 및 "TestInfo"는 1:다 관계이다.
DAM(502)은 데이터 소스(504)로부터의 결과에 대한 요청을 발행하거나 데이터 소스(504) 내의 데이터를 수정하는 요청을 발행함으로써 요청 개체(512)(예를 들면, 도 1의 애플리케이션(140))가 데이터 소스(504)를 액세스할 수 있게 한다. 일반적으로, 이러한 요청은 모두 "질의"로서 지칭될 수 있다. 그러나, 편의상, 오로지 결과에 대한 요청만이 이하의 설명에서 질의로서 지칭될 것이다.
모델 개체를 이용하는 질의 동작
질의 동작의 경우에, 질의부(604) 내에서 모델 개체(506)에 의해 정의된 필드의 세트는 다양한 용도를 제공한다. 먼저, 질의부(604)는 모델 개체를 포함하는 질의로부터 필수 출력인 필드를 지정한다. 질의 결과에 대한 필수 필드는 "필수(required)" 속성에 의해 모델 개체의 질의부 내에서 식별된다. 예를 들면, "환자(patient)" 모델 개체(506)는 질의부(604) 내의 필수 속성(610)에 따라서 "환자 id(patient id)"를 필수 필드로서 지정함으로써, 환자에 대한 모든 질의 결과가 환자 id 내에 포함되게 한다.
필수 속성(610)이 적용되는 방법에 대한 일례로서, 도 7에 도시된 초기 추상적 질의(700)를 고려한다. 추상적 질의(700)는 예를 들면 사용자에 의해 지정된 추상적 질의의 초기 형태를 나타낸다. "환자(Patient)" 모델 개체(5061)에 대한 명확한 참조(702)를 유의하라. 이러한 참조의 결과로서, DAM(502)의 로직, 특히 환자 모델 개체(5061)의 메타데이터는, 초기 추상적 질의(700)를 유효 추상적 질의(704)로 변환하는 데 적용된다. 이러한 경우에, "환자(patient)" 모델 개체(5061)가 필수 속성(610)에 준하여 필수 필드로서 "환자 id(Patient id)"를 정의하기 때문에, "환자ID(PatientID)"는 유효 추상적 질의(704) 내에 지정된 결과 필드에 추가되었다.
최종 사용자의 전망으로부터 유효 추상적 질의(704)의 증가는, 일련의 사용자 인터페이스 스크린을 도시하는 도 8 내지 도 12를 참조하여 설명된다. 먼저 도 8을 참조하면, 스크린(800)은 사용자가 질의 초점을 선택하게 하는 선택 메뉴(802)로 구성된다. 각각의 이용 가능한 선택은 정의된 모델 개체(506) 중의 하나에 대응한다. 예시적으로, 사용자는 "환자(Patient)"를 질의 초점으로서 선택하고, "다음(Next)" 버튼(804)을 클릭하는데, 이것은 사용자 인터페이스가 도 9에 도시된 다음 스크린(900)을 디스플레이하게 한다. 다시 말해서, 사용자는 "환자(Patient)" 모델 개체(5061)를 호출하는 질의를 취급하기 위해 선발된다. 다음에 사용자는 도 10에 도시된 것과 같은 입력 필드(1002) 내에 여러 질의 조건을 지정한다. "다음(Next)" 버튼(1004)을 클릭하는 것에 의해 사용자 인터페이스는 도 11에 도시된 다음 스크린(1100)을 디스플레이하게 된다. 스크린(1100)은 결과 필드(Result Fields) 입력 필드(1102)를 포함한다. 예시적으로, 입력 필드(1102)는 "환자ID(Patient ID)" 필드를 미리 제공받는다. 다시 말해서, "환자 ID(Patient ID)" 필드는 자동적으로 결과 필드 입력 필드(1102)에 추가되는데, 이것은 "환자(Patient)" 모델 개체(5061)가 필수 속성(610)(도 6에 도시됨)에 준하는 필수 필드로서 "환자 ID(Patient ID)"를 정의하기 때문이다. 다음에 사용자는 도 12에 도시된 바와 같은 추가 결과 필드를 지정할 수 있다. 다른 실시예에서, "환자 ID(Patient ID)"는 사용자에 의한 실행을 위해 제공되기 전에는 질의의 결과 필드에 추가되지 않는다.
다음에 도 13을 참조하면, 질의의 결과 필드 증가를 예시하는 방법(1300)의 일실시예가 설명된다. 증가 프로세스는 도 7을 참조하여 설명된 초기 추상적 질의(700) 등과 같은 초기 추상적 질의(1304A)를 수신하면 시작된다(단계(1302)). 다음에 유효 질의(1304B)(도 7을 참조하여 설명된 유효 추상적 질의(704) 등)를 초기 질의(1304A)(단계(1306))로 설정한다. 이 시점에서, 유효 추상적 질의(1304B)의 조성은 초기 추상적 질의(1304A)와 동일하다. 다음에 유효 추상적 질의는 모델 개체를 참조하여 검사된다(단계(1308)). 이러한 참조가 없으면, 처리는 완료되고 방법(1300)이 종료된다. 그러나, 유효 추상적 질의(1304B)가 모델 개체에 대한 참조를 포함하면, 적절한 모델 개체 정의(506)가 데이터 추상화 모델(502) 중에서 검색된다. 모델 개체 내의 각각의 필수 질의 필드(필수 속성(610)에 의해 표시됨)에 있어서(단계(1312)에서 루프 내로 진입), 방법(1300)은 필수 필드가 이미 초기 추상적 질의(1304A) 내의 결과 필드로서 지정되었는지 여부를 판정한다(단계(1314)). "아니오"라면, 필수 필드는 유효 추상적 질의(1304B)의 결과 필드에 추가된다.
다른 측면에서, 모델 개체는 기본 물리적 데이터 리포지터리 내의 다수의 개체(예를 들면 테이블)에 걸쳐 적용되는 정보를 상관하는 데 요구되는 적절한 로직을 구현하는 데 이용될 수 있는 데이터 환경 내의 초점을 형성한다. 이러한 초점으로부터, 테이블 간의 관계를 해석하기 위한 방향이 설정될 수 있다. 예를 들면, 물리적 개체 관계 사양(526)은 PatientInfo 테이블(520) 및 TestInfo 테이블(521) 사이의 1:다 관계를 기술하는데, 각각의 환자가 다수의 실험 테스트 결과를 가질 수 있기 때문이다. 환자 개체에 초점이 맞춰진 모델 개체는 환자 정보를 실험 테스트 결과와 상관시킬 기준점을 형성할 것이다. 예를 들면, 관계 데이터베이스의 경우에, "환자(patient)"에 대한 모델 개체를 이용하여 최적 테이블 결합 로직(table join logic)을 결정할 수 있다. 각각의 환자가 다수의 실험 테스트 결과를 가질 수 있기 때문에, 다수의 테스트 결과를 갖는 환자에 대해 탐색하는 질의는 실험 테스트 테이블을 여러 번 결합하여 원하는 테스트 결과 전체를 가지고 환자의 선택을 가능하게 할 것이다. 그러나, 초점이 실험 테스트에 맞춰져 있고, "실험 테스트(lab test)"로부터 "환자 정보(patient information)"를 향하는 방향에서의 관계가 1등급(1)이기 때문에, 실험 테스트에 초점을 맞춘 모델 개체는 환자 정보 테이블을 1회만 결합할 것이다.
질의 형성에 대한 모델 개체의 효과는 도 14를 참조하여 설명된다. 예시적인 추상적 질의(1400)는 복수의 질의 조건(1402), 결과 필드(1404) 및 모델 개체, 이 경우에는 "환자"에 대한 참조(1406)를 포함한다. 다시 말해서, "환자(Patient)" 모델 개체(506)는 질의(1400)의 초점으로서 지정된다. 질의 조건(1402)은 글루코스 테스트(Glucose Test)에 대한 2개의 조건을 포함하고, 이러한 2개의 조건은 함께 논리적으로 AND로 처리된다. "환자(Patient)" 개체가 초점이 되기 때문에, 질의 조건(1402)은 "글루코스 테스트 값 = 5 및 글루코스 테스트 값 = 10을 모두 갖는 환자를 찾아라"를 의미하도록 해석된다. 또한, "PatientInfo" 테이블(520) 및 "TestInfo" 테이블(521) 사이의 물리적 개체 관계 사양(526) 내에 정의된 관계는 1:다이고, 환자가 1개 이상의 테스트 결과를 가질 수 있다는 것을 나타낸다. 이러한 정보를 가지고, 동일 환자에 대한 2개의 테스트 결과를 비교하기 위해서는 추상적 질의(1400)에 대응하는 물리적 질의(1408)(예시적으로 SQL 질의)가 "Testlnfo" 테이블(521)의 2개의 인스턴스를 필요로 한다는 것이 판정된다. "TestInfo" 테이블(521)의 2개의 인스턴스는 물리적 질의(1408)의 선택절 내에서 T2 및 T3으로서 식별된다. 또한, 물리적 개체 관계 사양(526)은 질의에 포함된 각각의 물리적 개체들 간의 필수적 상관 로직(1410)을 생성하기 위해 이용된다. 관계 모델에서, 상관 로직은 테이블이 결합되는 방식을 지정하는 결합 로직이다.
다음으로 도 15를 참조하면, 모델 개체 내의 추상적 질의 기준에 기초하여 물리적 질의를 생성하는 물리적 질의 생성 프로세스(1500)가 도시된다. 프로세스(1500)는 완전한 추상적 질의가 수신될 때 개시된다(단계(1502)). 추상적 질의 내의 각각의 추상적 질의 조건에 있어서(단계(1504)), 일련의 단계가 실행된다. 특히, 주어진 추상적 질의 조건에 있어서 프로세스(1500)는 주어진 추상적 질의 조건의 필드에 대해 하나 이상의 AND된 조건이 지정되었는지 여부를 판정한다(단계(1506)). "아니오"라면, 주어진 추상적 질의 조건의 필드에 대응하는 물리적 개체의 단일 인스턴스에 대해 물리적 질의 요소가 생성된다(단계(1508)). 그러나, 단계(1506)가 긍정으로 응답되면, 주어진 추상적 질의 조건의 필드에 대응하는 물리적 개체가 결정된다(단계(1510)). 추가하여, 지정된 모델 개체에 대응하는 물리적 개체가 결정된다(단계(1512)). 다음에 모델 개체에 대응하는 어느 하나의 물리적 개체와 주어진 추상적 질의 조건의 필드에 대한 물리적 개체 사이에 1:다 관계가 존재하는 지 여부를 판정하기 위해 물리적 개체 관계 사양(526)을 검사한다. "아니오"라면, 주어진 추상적 질의 조건의 필드에 대응하는 물리적 개체의 단일 인스턴스에 대해 물리적 질의 요소가 생성된다(단계(1508)). 그러나, 단계(1514)가 긍정으로 응답되면, 주어진 추상적 질의 조건의 필드에 대응하는 물리적 개체의 다른 인스턴스에 대한 물리적 질의 요소가 생성된다(단계(1516)).
각각의 추상적 질의 조건을 처리한 후에, 질의에 대한 결과 필드 요소가 생성된다(단계(1518)). 마지막으로, 물리적 개체 관계 사양(526) 내에 포함된 관계 메타데이터를 이용하여 질의에 포함된 각각의 물리적 개체 간의 상관 로직이 생성된다(단계(1520)). 다음에 결과적인 물리적 질의가 실행될 수 있다.
또 다른 측면에서, 모델 개체(506)는 질의 결과 필드의 세트를 나타내기 위해 이용될 수 있다. 로직 필드(또한 그에 따른 물리적 필드)의 추상적 그룹화에 의해서, 애플리케이션 및 사용자는 개체를 구성하는 성분에 대한 상세 정보를 인식하지 않고도 상위 레벨의 개체(예를 들면, 환자)를 다룰 수 있게 된다.
모델 개체를 이용하여 질의 결과 필드의 세트를 나타내는 것의 일례는 도 16을 참조하여 설명된다. 초기 추상적 질의(1600)는 예시적인 질의 조건(1602) 및 결과 필드(1604)를 가지고 도시된다. 이러한 예에서, 초기 추상적 질의(1600)는 "환자(Patient)" 모델 개체(5061)에 대한 참조(1604)를 포함한다. 이러한 참조(1604)의 결과로, 단계는 "환자(Patient)" 모델 개체(5061)에 대해 정의된 모든 로직 필드를 포함하도록 결과 필드(1604)까지 확장되어, 유효 추상적 질의(1608)가 되게 한다.
결과 필드 증가 프로세스(1700)는 도 17을 참조하여 도시된다. 주어진 초기 추상적 질의(1704A)에 있어서(단계(1702)), 대응하는 유효 질의(1704B)가 설정된다(단계(1706)). 다음에 질의(1704A)의 결과 필드는 모델 개체에 대한 참조를 판정하도록 검사된다(단계(1708)). 이러한 참조가 식별되지 않으면, 프로세스(1700)는 완료된다. 모델 개체 참조가 질의 내에 존재하면, 모델 개체 정의(506)가 검색된다(단계(1710)). 모델 개체 내의 각각의 필수 필드에 있어서(단계(1712)), 프로세스(1700)는 필수 필드가 초기 추상적 질의(1704A)의 지정된 결과 필드 내에 있는지 여부를 판정한다(단계(1714)). "아니오"라면, 필수 필드는 유효 추상적 질의(1704B)의 결과 필드에 추가된다(단계(1716)). 각 필수 필드에 대한 이러한 처리의 결과로, 유효 추상적 질의(1704B)는 지정된 모델 개체 정의(506)에 대한 로직 필드의 전체 개수(full complement)를 포함한다.
도 13, 도 15 및 도 17(또한 그와 연관된 도면)을 참조하여 별도로 설명된 개별 측면은 조합하여 이용될 수 있다는 것을 유의하라. 예를 들면, 도 14 내에 도시된 초기 추상적 질의(1400)는 결과 필드(1404) 내의 "환자ID(PatientID)" 필드를 포함하지 않는 것으로 가정한다. 처리의 제 1 스테이지는 방법(1300)에 따라서 실행되어 "환자 id(Patient id)" 필드가 결과 필드(1404)에 추가될 수 있게 한다. 다음에 처리의 제 2 스테이지는 프로세스(1500)에 따라서 실행되어 물리적 질의(1408)를 생성한다. 당업자라면, 다른 프로세스의 조합이 실행될 수 있다는 것을 인식할 것이다.
모델 개체를 이용한 수정 동작
본 발명의 측면은 결과를 리턴하기 위해 데이터를 액세스하는 것을 참조하여 상술되었다. SQL의 경우에, 이들은 선택 동작이다. 그러나, 삽입, 삭제 및 업데이트 등과 같은 공지된 수정 동작을 포함하는 수정 동작이 또한 지원된다. 따라서, 이하의 내용은 상술된 추상적 프레임워크의 기능을 확장 및 강화하여 모델 개체를 이용하는 수정 동작을 지원하는 실시예를 설명한다.
모델 개체가 다수의 물리적 개체(예를 들면, 테이블)에 걸쳐 적용될 수 있으므로, 수정 동작을 이행하기 위해 다수의 데이터베이스 동작이 필요할 수 있다. 다시 말해서, 물리적 데이터에 대해 발행된 다수의 명령문(예를 들면, 다수의 SQL 명령문)에 걸쳐 적용된 단일 로직 동작을 통해 물리적 데이터를 수정하는 실시예가 제공된다. 이를 위하여, 모델 개체는 모델 개체의 인스턴스에 대한 데이터 삽입 및 삭제 동작에 포함된 필드의 전체 세트를 도출하기 위해 이용된 필드의 최소 세트를 정의한다. 예를 들면, 환자 정보는 도 5에 도시된 관계 데이터 소스(504) 구현 내의 2개의 테이블(예를 들면, "Patientlnfo" 테이블(520) 및 "AddressInfo" 테이블(521))에 걸쳐 적용된다. 삽입 및 삭제를 실행하기 위해서, 환자에 대한 모델 개체는 각 테이블 내에 적어도 하나의 필드를 식별하여 데이터베이스 중에서 환자를 삭제하는 데 포함된 테이블의 전체 세트뿐만 아니라 새로운 환자를 데이터베이스 내에 삽입하는 데 필요한 필드의 완전한 세트를 결정하는 데 있어서 "시드(seed)"로서 기능한다. 특히, 시드 필드는 도 6에 도시된 DAM(502) 내의 "환자(Patient)"에 대한 모델 개체 정의(5061)의 삽입부(6061) 및 삭제부(6081)에서 지정된다. 삽입부(6061)의 경우에, "PatientInfo" 테이블(520)에 대응하는 시드 필드는 "성(Last Name)"이고 "AddressInfo" 테이블(521) 에 대응하는 시드 필드는 "가(Street)"이다. DAM(502) 내에서 정의된 각각의 모델 개체(506)는 시드 필드를 지정하는 유사한 부분을 가질 수 있다.
시드 필드에 기초하여, 다수의 물리적 동작이 데이터 리포지터리에 대해 실행되어 단일 추상적 동작을 구현한다. 예를 들면, 관계 데이터 소스(504)에 대한 삽입에 있어서, 이것은 포함된 테이블에 대한 다수의 물리적 SQL, INSERT 명령문의 생성을 포함할 것이다. 애플리케이션/사용자는 단지 모델 개체를 지정하기만 하면 되고, 이것은 이후에 수정 동작에 포함된 대응하는 물리적 개체 및 관련된 로직 필드를 식별하는 데 이용된다. 모델 개체는 예를 들면 HTML 형태의 드롭-다운 메뉴(drop down menu)에서 선택될 수 있다. 또한, 삭제는 물리적 데이터 리포지터리 내에서 요구되는 변경에 집중하기 위해 이용될 수 있는 조건을 지정할 수 있도록 허용한다.
도 18은 환경(500)에 대한 단순화된 도면을 도시하고, 관계 데이터 소스(504)에 대해서 삽입 동작 및 삭제 동작을 각각 실행하기 위해 이용되는 예시적인 추상적 삽입 동작 사양(18021) 및 삭제 동작 사양(18022)(통칭하여, 추상적 동작 사양(1802))을 포함한다. 추상적 동작 사양(1802)은 요청 개체(512)(예를 들면, 사용자/애플리케이션)에 의해 제공된 사양에 따라서 데이터 추상화 모델(502)을 이용하여 구성된다. 각각의 경우에, 추상적 동작 사양(1802)은 각각의 영향을 받는 물리적 개체에 대한 시드 값을 지정한다. 시드 값은 요청 개체(512)에 의해 선택된 모델 개체(506)의 적절한 부분 중에서 검색된다. 시드 값에 기초하여, 관계된 로직 필드가 결정되고, 추상적 동작 사양(1802)의 일부분을 형성한다. 따라서, 질의의 경우에서와 같이, 이러한 애플리케이션의 프레임워크는 애플리케이션 레벨 또는 최종 사용자에서의 데이터베이스 스키마에 관한 인식을 요구하기보다는 지정된 모델 개체(506)에 따른 관련 필드를 요청 개체(512)에게 제공할 것이다. 다음에 값은 요청 개체(512)(예를 들면, 사용자) 또는 값 생성기(524) 등과 같은 다른 소스로부터 각각의 필드에 대해 제공될 수 있다.
본 실시예에서는 각각의 추상적 동작이 2개의 시드 필드를 포함하지만, 추상적 동작은 또한 오로지 하나의 시드 필드만으로 구현될 수 있다. 예를 들면, 시드 필드는 연관된 외부 키(foreign key)를 구비하는 주요 키(primary key)일 수 있다. 이러한 경우에, 시드 필드를 지정하는 추상적 동작은 외부 키가 정의된 물리적 데이터에 영향을 줄 수 있다. 몇몇 경우에 이러한 결과는 바람직하지 않을 수 있다는 것을 유의하라. 다시 말해서, 주요 키/외부 키 관계에 기초하여 변경을 전파하는 것이 바람직하지 않을 수 있다. 전파가 요구된다면, 주요 키를 포함하는 테이블을 수정하도록 지시된 오로지 하나의 명령문만이 필요하다. DBMS는 관련 테이블에 대한 수정을 취급할 것이다. 몇몇 인스턴스에서, DBMS는 다수의 명령문이 요구되는 경우에 전파를 지원하지 않을 것이다. 도시하지는 않았으나, 데이터 추상화 모델은 주어진 로직 필드에 대해 전파가 요구되는지 여부를 지정하는 속성을 포함할 수 있다.
시드 필드에 추가하여, DAM은 수정 동작을 구현하기 위해 이용되는 다른 필드 타입을 정의한다. 일반적으로, 이러한 필드는 필수적이거나 선택적일 수 있다. "필수(Required)"는 적절한 디폴트 값이 존재하지 않고, 값을 생성할 알고리즘이 존재하지 않으며, 필드가 널(null)이 될 수 없기 때문에 요청 개체가 필드에 대한 값을 공급해야 한다는 것을 의미한다. 필수 필드는 도 5에 도시된 필수 속성(514)에 의해 정의된다. 선택 필드는 요청 개체에 의한 값의 사양을 요구하지 않는다. 선택 필드는 1) NULL의 값을 할당받을 수 있는 필드와, 2) 해당 필드(본 명세서에서는 "생성된 필드"로 지칭됨)에 대한 값을 생성하는 데 이용될 수 있는 알고리즘을 갖는 필드와, 3) DAM(본 명세서에서는 "디폴트 필드"로 지칭됨) 내에 정의된 디폴트 값을 갖는 필드를 포함한다. 생성된 필드 값은 값 생성기(524)(즉, 알고리즘)에 의해 생성된다. 생성된 필드는 도 5에 도시된 생성된 속성(516)에 의해 정의된다. 디폴트 값은 시드 필드에 의해 정의된 개체에 관련된 특정 필드에 대해 성명/값 쌍이 지정되지 않은 경우에 이용된다. 디폴트 필드는 디폴트 속성(518)에 의해 정의된다. 디폴트 값은 정적으로 정의되거나 생성될 수 있다. 생성된 디폴트 값의 일례로서, 예시적인 추상적 삭제 사양(5063) 내의 테스트 날짜 값(Test Date value)은 현재의 날짜로 사전 설정된다. 요청 개체(예를 들면, 사용자)는 서로 다른 값을 제공할 선택 사항을 제공받을 수 있다.
필수 필드 및 선택 필드의 일례로서, 환자 개체에 대응하는 로직 필드를 고려한다. 환자 개체가 "환자 ID" 로직 필드 사양(5101), "이름(First Name)" 로직 필드 사양(5102) 및 "성(Last Name)" 로직 필드 사양(5103)에 의해 논리적으로 정의된다는 것이 앞서 언급되었다. "이름(First Name)" 로직 필드 사양(5102) 및 "성(Last Name)" 로직 필드 사양(5103)은 필수 속성을 포함하고, 이들은 필수 필드이다. 이와는 반대로, 환자 개체를 정의하는 다른 로직 필드(즉, 생년 월일 및 성별)는 선택적이다.
따라서, 데이터 소스(504)에 대한 삽입 및 업데이트는 데이터 소스 내에 입력될 새로운 값으로 수정될 실제 필드(즉, 열)의 식별을 제공한다. 성명/값 쌍의 세트는 수정될 물리적 필드/값에 대응하는 데이터 추상화 모델(502) 내의 필드/값을 나타낸다. 성명은 데이터 추상화 모델(502)을 통해 그의 기본 물리적 표현으로 매핑된 로직 필드에 대한 추상적 성명을 나타낸다. 값은 해당 필드에 대한 데이터 소스 내에 삽입 또는 업데이트될 추상적 값이다. 일측면에서, 추상적 데이터 모델(즉, 데이터 추상화 모델(502))을 이용하면 추상적 값을 데이터베이스에 삽입될 정확한 물리적 값으로 자동으로 변환할 수 있다. 예를 들면, 데이터 추상화 모델(502)은 성별에 있어서 "남성(Male)" 및 "여성(Female)" 등과 같은 값을 이용하여 정의될 수 있는데, 이것은 기본 물리적 데이터 리포지터리가 성별(최종) 열 내에 "F"값을 갖는 기록을 포함하는 환자 정보 테이블(520)에 의해 표시된 바와 같이, 이러한 값을 표시하기 위해 "F" 및 "M"값을 이용하는 경우에 해당된다. 삽입 동작에 대한 입력 값은 이러한 추상적 값 사양을 이용하여 기본 데이터 리포지터리의 구조뿐만 아니라, 데이터 리포지터리 내에 포함된 데이터의 물리적 형태로부터 기본 물리적 표현에 대한 변경의 다른 완충물(cushion)을 제공할 수 있다.
몇몇 상황은 특수한 고려 사항을 요구한다. 여러 경우에, 로직 필드는 물리적 데이터 리포지터리 내의 다수의 필드로 물리적으로 표현될 수 있다. 일례는 하나의 테이블 내의 열이 다른 데이터베이스 테이블 내의 열에 대한 외부 키로서 정의되는 관계 데이터 소스(504)의 경우에 해당한다. 예를 들면, 환자 ID는 환자 정보 테이블(520) 내의 주요 키일 수 있고, 테스트 정보 테이블(522) 내의 외부 키로서 정의될 수도 있다. 이것이 전형적인 예이기는 하지만, 2개의 필드 간의 추상적 관계는 기본 데이터 리포지터리 내의 물리적 관계(주요 키/외부 키 등)에 의해 반드시 강화되어야 하는 것은 아니다. 2개의 물리적 위치 사이의 관계(즉, 제 1 테이블 내의 열(들)과 제 2 테이블 내의 열(들) 사이의 관계)에 대한 메타데이터를 이용하면, 추상적 데이터 표현 내의 단일 필드를 이용하여 필드에 대한 물리적 위치를 모두 취급하는 데 이용될 수 있다. 애플리케이션은 데이터베이스 스키마 내에서 특정한 값이 이용되는 여러 위치에 대한 인식으로부터 차단된다.
이러한 관계된 필드가 삽입 또는 삭제 동작에 포함될 때, 특정한 고려가 필요하다. 삽입 동작을 실행할 때, 런-타임/DAM 로직은 단일 추상적 데이터 필드에 대한 여러 물리적 표현을 인식하여야 한다. 정확한 물리적 표현은 삽입 동작의 초점 항목에 기초하여 이용되어야 한다. 예를 들면, 환자 식별자가 환자 정보 테이블(520) 내의 "ID" 열 및 테스트 정보 테이블(522) 내의 "PID" 열로서 표현된다면, 정확한 열 성명은 초점 항목에 의해 삽입 동작에 대해 정의된 테이블에 기초하여 식별되어야 한다. 추가하여, 물리적 표현의 이러한 추가 형태는 삽입 동작에 대한 디폴트 값과 필수 값을 결정할 때 고려되어야 한다. 예를 들면, 초점 항목이 동작에 대한 기본 물리적 테이블이 테스트 정보 테이블(522)이라는 것을 식별하면, 런-타임/DAM 로직은 디폴트 및 필수 값을 검색할 때 추상적 환자 ID 필드("PID")가 고려되어야 한다는 것을 인식해야 한다. 다시 말해서, 새로운 환자 ID가 생성될 수 없다.
물리적 데이터 리포지터리 내에 다수의 위치를 나타내는 추상적 필드를 취급할 때 삭제 동작을 추가적으로 고려하여 데이터 무결성이 유지되게 해야 한다. 기본 데이터 리포지터리는 이러한 타입의 필드에 대한 추가적인 제한을 부과할 수 있다. 관계 데이터베이스는 주요 키/외부 키 관계로 정의된 열에 대한 업데이트 또는 삭제를 제한하거나 외부 키 테이블을 통해 업데이트 및 삭제를 캐스케이딩(cascading)하는 것 등과 같은 측면을 제공한다. 다시 말해서, 환자 정보 테이블(520) 등과 같은 주요 테이블에 대한 삭제는, 삭제가 캐스케이딩되어야 한다는 것을 나타내고, 환자 ID에 기초한 주요 키/외부 키 관계에 따라서 테스트 정보 테이블(522)로부터 대응하는 행을 삭제하도록 설정될 수 있다. 데이터 리포지터리의 추상적 표현을 이용하면, 구현은 이러한 동작을 제한할 것인지 아니면 추상적 필드에 대한 관계의 정의에 기초하여 여러 물리적 개체를 통해 변경 사항을 전파하도록 시도할 것인지 여부를 선택할 수 있다.
모델 개체의 사양에 기초한 수정은 다수의 물리적 동작을 포함할 수 있기 때문에, 동작이 실행되어야 하는 시퀀스를 또한 고려하여야 한다. 예를 들면, SQL에 기초하는 현재의 데이터 추출(data mining) 애플리케이션에서, 애플리케이션은 동작들 간의 순서 의존도에 대한 인식을 갖는 것이 요구된다. 본 발명의 일측면은 이 애플리케이션으로부터 이러한 인식을 편집(decoupages)한 것이다. 일실시예에서, 동작들 간의 순서 의존도는 물리적 개체 관계 사양(526) 내에 지정된다.
다음으로 도 19를 참조하면, 방법(1900)은 추상적 삽입 사양을 구성하는 경우에 요청 개체(512)와 데이터 추상화 모델(502) 사이의 상호 작용을 나타낸다. 설명을 위해서, 요청 개체(512)는 사용자 인터페이스(예를 들면 도 1의 브라우저 프로그램(122))를 통해 사용자로부터 입력을 수신하는 애플리케이션(140)(도 1)의 대표격인 것으로 가정한다. 먼저, 사용자는 모델 개체를 선택한다(단계(1902)). 다음에 선택된 모델 개체에 대한 시드 필드가 결정되고, 시드 필드를 가지고 추상적 삽입 사양(18021)이 업데이트된다(단계(1906)). 각각의 시드 필드가 결정되면, 요청 개체(512)는 지정된 시드 필드에 따라서 필수 및 선택 필드에 대한 요청을 발행한다(단계(1908)). 데이터 추상화 모델(502)이 호출되어 삽입 동작에 대한 필수 및 선택 필드를 결정한다(단계(1910)). 단계(1910)에서 발생된 처리에 대한 예시적 표현은 도 20a 및 도 20b를 참조하여 이하에 설명된다. 단계(1910)에서의 판정을 실행하면, 추상적 삽입 사양(18021)은 필수 및 선택 필드로 초기화된다(단계(1912)). 다음에 필수 및 선택 필드는 요청 개체로 리턴되고(단계(1914)), 이것은 사용자가 각 필드에 대한 값을 제공하도록 자극한다(단계(1916)). 사용자 인터페이스의 분야에서 공지된 기술은 사용자가 필수 필드 및 선택 필드를 식별 및 구분할 수 있게 하기 위해서 이용될 수 있다. 예를 들면, 필수 필드는 별표로 마킹되어 적색으로 강조되거나, 필드가 필수적임을 나타내는 괄호로 씌워진 설명을 포함할 수 있다. 다른 실시예에서, 애플리케이션(140) 자체는 이러한 값의 전부 또는 일부를 제공할 수 있다. 적어도 각각의 필수 필드(또한 임의의 선택 필드)에 대한 값이 지정되면(단계(1918)), 추상적 삽입 사양(18021)이 지정된 값을 반영한다(단계(1920)).
다음으로 도 20a 및 도 20b를 참조하면, 필수 및 선택 필드를 판정하는 단계(1910)에 대한 일실시예가 도시된다. 요청 개체(512)에 의해 지정된 시드 필드를 검색하기 위해 추상적 삽입 사양(18021)을 액세스(단계(2002)한 후에, 시드 필드에 대응하는 물리적 개체(예를 들면 도 5에 도시된 관계 데이터 소스(504) 내의 테이블)를 결정하기 위해 데이터 추상화 모델(502)의 적절한 로직 필드 사양을 참조한다(단계(2004)). 삽입 동작의 경우에, 각각의 식별된 물리적 개체에 있어서, 데이터 리포지터리 추상화를 이용하여 동일한 물리적 개체와 연관된 다른 로직 필드를 결정한다(단계(2006) 및 단계(2008)). 다음에 시드 필드에 의해 참조된 특정한 물리적 개체를 정의하는 결정된 관련 로직 필드 각각에 대하여 (단계(2010)에서) 루프로 진입한다. 다시 말해서, 각각의 물리적 개체의 관련 로직 필드 각각에 대해 일련의 단계를 실행한다. 주어진 물리적 개체의 주어진 로직 필드에 대하여, 주어진 로직 필드에 대한 키 관계가 이미 처리되었는지 여부에 대한 판정이 이루어진다(단계(2012)). 단계(2006)에서 진입된 루프에 대한 제 1 반복에 있어서, 단계(2012)에서 이루어진 판정은 부정으로 응답된다. 후속 반복 동안에, 단계(2012)는 소정 필드에 대해 값이 지정되면, 후속 값 및 상충 값이 지정되지 않도록 보장한다. 다음에 처리는 필드가 필수 필드인지 여부의 판정(단계(2020)에서), 필드가 디폴트 값 필드인지 여부의 판정(단계(2026)) 또는 필드가 생성된 값 필드인지 여부의 판정(단계(2034))을 실행한다. 필드 타입은 루프에 의해서 처리되는 현재의 필드에 대한 로직 필드 사양 내에 존재하는 속성(즉, 필수 속성(514), 생성된 속성(516) 또는 디폴트 속성(518))에 따라서 결정된다. 필드가 필수적이면(단계(2020)), 필드가 필수 필드 리스트(2024)에 추가된다(단계(2022). 디폴트 속성의 경우에(단계(2026)), 필드 값은 디폴트 값으로 초기화된다(단계(2028)). 로직 필드 사양이 생성 속성(518)을 포함하는 경우에(단계(2034)), 필드는 생성된 값으로 초기화된다(단계(2036)). 생성된 값 및 디폴트 값 둘 다의 경우에, 대응하는 필드가 선택 필드 리스트(2032)에 추가된다(단계(2030)). 필드가 필수, 디폴트 또는 생성 중의 하나로 정의되지 않으면, 필드는 NULL 값으로 초기화되고(단계(2038)), 선택 필드 리스트(2032)에 추가된다(단계(2030)).
단계(2012)로 되돌아가면, 처리되는 현재의 필드가 이미 처리된 다른 필드와 키 관계(예를 들면, 주요 키/외부 키 관계)를 가지면, 현재의 필드에 대한 값은 앞서 처리된 관계 필드로 설정된다(단계(2014)). 다음에 현재의 필드는 함축적 필드 리스트(2018)에 추가된다(단계(2016)). 따라서, 다수의 물리적 개체로 생성된 함축적 필드는 추상적 동작 내에 포함되고, 이러한 개체는 키 관계를 갖는다. 이러한 경우에, 오로지 하나의 필드 및 하나의 값만이 인터페이스를 통해 노출된다. 키 필드의 쌍 내의 다른 필드는 함축적인 것으로 간주되고, 이것은 추상적 삽입의 일부분으로서 지정될 필요가 없으며 쌍을 이루는 대응하는 키와 동일한 값을 이용할 것이다. 함축적 필드는 요청 개체에게 노출되지 않지만, 이하에서 도 21을 참조하여 설명되는 바와 같이 추상적 삽입이 구체적(즉, 실행 가능한) 삽입 명령문으로 변환될 때 고려된다.
각각의 식별된 관련 필드가 단계(2010)에서 진입된 루프에 따라서 처리되면, 처리는 다음 개체에 대해 반복된다(단계(2006)). 각각의 개체가 처리되면, 필수 및 선택 필드를 판정하는 처리가 완료된다. 따라서, 추상적 삽입 사양(18021)은 필수 필드 리스트(2014) 및 선택 필드s 리스트(2022)에 따라서 업데이트되고(단계(1912)), 다음에 필수 필드 및 선택 필드는 도 19에 도시된 바와 같이 요청 개체(512)에게 제공된다(단계(1914)).
추상적 삽입 사양(18021)이 구성되면, 삽입 동작을 실행할 수 있다. 도 21은 추상적 삽입 사양(18021)에 따라서 삽입 동작을 실행하는 방법(2100)의 일실시예를 도시한다. 일반적으로, 요청 개체(512)로부터 삽입을 실행하기 위한 요청이 제출되면, 런-타임 성분(150)(도 1을 참조하여 상술됨)이 호출되어 추상적 삽입 사양(18021)을 물리적 삽입 동작으로 변환한다. 다음에 물리적 삽입 동작이 실행된다.
추상적 삽입 사양(18021)의 물리적 삽입 동작으로의 변환은 각각의 물리적 개체(2104)에 따라서 그룹화 필드(함축적 필드 리스트(2018), 필수 필드 리스트(2024) 및 선택 필드 리스트(2032))에 의해 개시된다. 다음에 특히, 런-타임 성분(150)은 각각의 물리적 개체에 대한 루프로 진입하고(단계(2106)), 주어진 물리적 개체의 각각의 로직 필드에 대한 서브-루프(sub-loop)로 진입한다(단계(2108)). 주어진 로직 필드에 있어서, 그 필드의 물리적 위치는 데이터 추상화 모델(502)로부터 결정된다(단계(2110)). 다음에, 물리적 위치 리스트(2114)는 결정된 물리적 위치로 업데이트된다(단계(2112)). 몇몇 경우에, 로직 필드는 내부 값(단계(2116)에서 결정됨)을 가질 수 있다. 즉, 로직 필드의 값은 물리적 필드의 값과 다를 수 있다. 예를 들면, 로직 필드 성명은 "남성(Male)"이지만 물리적 필드 성명은 "M"일 수 있다. 이러한 경우에, 값은 물리적 값과 부합되도록 형성되어야 한다. 이것은 값 리스트(2122)를 내부 값으로 업데이트함으로써 이루어진다(단계(2118)). 필드 값이 상이하지 않다면(즉, 단계(2116)가 부정으로 응답되었다면), 값 리스트(2122)는 물리적 필드에 대해 주어진 값으로 업데이트된다(단계(2120)).
단계(2108)에서 진입된 루프에 대한 처리가 추상적 삽입 사양(18021) 내의 각 로직 필드에 대해 실행되면, 주어진 물리적 개체에 있어서, 위치 리스트(2114) 및 값 리스트(2122)로부터 물리적 삽입 명령문이 형성된다(단계(2124)). 다음에 물리적 삽입 명령문은 삽입 명령문 리스트(2122)에 추가된다(단계(2126)). 다음에 이전의 처리가 각각의 개체마다 연속적으로 반복된다(단계(2106)). 그 후에, 삽입 명령문 리스트(2128)에 대한 순차 알고리즘이 실행된다(단계(2130)). 순차 알고리즘의 일실시예는 도 22를 참조하여 설명된다. 다음에 물리적 삽입 동작을 실행한다(단계(2132)).
다음으로 도 22를 참조하면, 단계(2130)에서 실행된 순차 알고리즘의 실시예가 설명된다. 먼저, "분류된 플래그(sorted flag)"를 폴스(False)로 설정한다(단계(2202)). 다음에 "분류된 플래그(sorted flag)"가 트루(True)로 설정될 때까지 삽입 명령문 리스트(2128) 내의 각각의 삽입 명령문에 대해 일련의 단계를 실행한다(단계(2206), 단계(2208) 및 단계(2210)). 특히, 삽입 명령문 리스트(2128)(리스트 내의 제 1 삽입 명령문부터 시작됨) 내의 주어진 삽입 명령문에 있어서, 대응하는 개체가 결정된다(단계(2212)). 다음에, 삽입 명령문 리스트(2128) 내에서 주어진 삽입 명령문의 대응하는 개체와 나머지 삽입 명령문의 각각의 관련 개체 사이의 관계가 결정된다(단계(2214) 및 단계(2216)). 특히, 런-타임 성분(150)은 (물리적 개체 관계 사양(526)에 대해서) 주어진 삽입 명령문의 개체가 다른 삽입 명령문의 주요 관련 개체에 대해서 2차 개체가 되는지 여부를 판정한다(단계(2216)). "예"라면, 주어진 삽입 명령문이 관련 개체의 삽입 명령문 이후의 위치로 이동된다(단계(2218)). 이러한 프로세스는 삽입 명령문 리스트(2128)가 삽입 명령문 리스트(2128) 내에서 후속 명령문의 개체에 대해 2차적인 현재의 개체와 충돌하지 않으면서 통과할 수 있을 때까지 반복된다. 이러한 시점에서, 삽입 명령문 리스트(2128) 내의 물리적 삽입 명령문은 물리적 개체 관계 사양(526) 내에 지정된 계층적 관계에 따라서 순차화된다. 이러한 프로세스는 주요/외부 키 쌍 중에서 주요 키를 포함하는 1차 개체가 2차 개체(외부 키를 포함함)가 수정되기 전에 먼저 삽입되도록 보장한다.
상술된 바와 같이, 본 발명의 측면은 추상적 수정 동작을 형성하는 프로세스를 통해서 요청 개체(512)(즉, 애플리케이션(140))를 "안내(guide)"할 수 있다. 이러한 측면은 HTML 형태(160)(도 1에 도시됨)가 지능적으로 반영되어 여러 필드의 특성을 나타내는 도 23 내지 도 26을 참조하여 삽입 동작에 대해 도시되었다. 먼저 도 23을 참조하면, 사용자가 추상적 삽입을 생성하도록 선택할 때 디스플레이될 수 있는 사용자 인터페이스 스크린(2300)이 도시된다. 스크린(2300)은 이용 가능한 개체가 삽입될 수 있는 메뉴(2302)를 포함한다. 메뉴(2302)에서 사용자에 의해 선택된 개체는 도 24에 도시된 "선택된 개체(Selected Entity)" 필드(2304) 내에 디스플레이된다. 이러한 예에서, 사용자는 "환자(Patient)"를 선택한다. 원하는 선택을 실행하면, 사용자는 "다음(Next)" 버튼(2306)을 클릭하여 선택을 입력하고, 도 25에 도시된 다음 스크린(2500)으로 진행한다. 스크린(2500)은 "선택된 개체(Selected Entity)" 필드(2304) 내에서 사용자에 의해 지정된 개체에 따라서 선택된 복수의 입력 필드(2502A-2502I)로 포매팅된다. 다시 말해서, 선택된 개체에 대해 정의된 필드(즉, 이 예에서는 "성(Last Name)" 및 "주(State)")는 스크린(2500) 내에 디스플레이할 필드를 결정하는 데 있어서 시드 필드로서 이용된다. 이러한 경우에, "성(Last Name)"은 "PatientInfo" 테이블(520)에 대응하는 로직 필드(5103)로서, 이러한 "PatientInfo" 테이블(520)에서 "이름(First Name)" 로직 필드(5102), "생년 월일(Birth Date)" 로직 필드(5104) 및 "성별(Gender)" 로직 필드(5106)가 또한 관련 로직 필드로서 지정되어 있다. 이와 같이, 각각의 이러한 로직 필드는 입력 필드(각각 입력 필드(2502C), 입력 필드(2502E) 및 입력 필드(2502F))로서 스크린(2500) 내에 디스플레이된다. 마찬가지로, 시드 필드 "주(State)"를 이용하여 대응하는 물리적 개체(즉, AddressInfo 테이블(521)) 및 그 관련 로직 필드를 식별한다. 또한, 필수 필드(DAM(502) 내의 필수 속성(514)의 존재에 의해 정의됨)는 별표(*)로 마킹된다. 이러한 경우에, 입력 필드(2502A, 2502B, 2502C)는 필수 필드로서 마킹된다. 또한, 디폴트 필드 내에 생성된 것은 적절한 값으로서 미리 지정된다. 본 실시예에서, "환자 ID(Patient ID)" 입력 필드(2502D)는 생성된 값으로 미리 지정된다. 입력 필드(2502)가 디폴트 속성(518)을 갖는 로직 필드 사양에 대응하기 때문에 디폴트 값은 도시하지 않았다.
일반적으로, 방법(2700)은 요청 개체(512)와 추상적 삭제를 실행하는 데이터 리포지터리 추상화(502) 사이의 상호 작용을 설명한다. 각각의 이전의 추상적 수정 동작에서와 마찬가지로, 추상적 삭제는 추상적 사양의 구성을 필요로 한다. 이를 위하여, 요청 개체(512)는 삭제할 모델 개체를 지정한다(단계(2702)). 다음에 선택된 모델 개체에 대한 시드 필드를 결정하는데(단계(2704)), 이것을 이용하여 데이터 추상화 모델(502)이 추상적 삭제 사양(18022)의 추상적 삭제 로직을 생성/업데이트한다(단계(2706)). 다음에 요청 개체(512)는 삭제할 데이터의 선택을 위한 선택 조건을 제공한다(단계(2708)). 선택 조건은 추상적 삭제 사양(18022)의 선택부에 추가된다(단계(2710)).
다음에 추상적 삭제 사양은 런-타임 성분(150)에 의해 이용되어 실행가능한 물리적 삭제 사양을 생성한다. 추상적 삭제를 물리적 삭제로 변환하는 하나의 변환 방법(2800)은, 도 28을 참조하여 설명된다. 변환 프로세스는 요청 개체(512)가 삭제 동작을 실행하게 하는 요청을 제출할 때 개시된다. 런-타임 성분(150)은 먼저 그 각각의 물리적 개체에 따라서 지정된 시드 필드를 그룹화한다(단계(2802)). 다시 말해서, 런-타임 성분(150)은 시드 값(단계(2702)에서 요청 개체(512)에 의해 지정됨) 및 데이터 추상화 모델(502)을 이용하여 삭제할 물리적 개체를 확인한다. 특히, 시드 필드에 대응하는 데이터 추상화 모델(502)의 로직 필드 사양이 식별된다. 식별된 로직 필드 사양은 삭제할 물리적 개체를 액세스하는 데 필수적인 로직(즉, 적절한 액세스 방법)을 제공한다. 각각의 물리적 개체에 있어서(단계(2804)), 런-타임 성분(150)은 추상적 삭제 사양(24022) 내에 지정된 선택 조건에 따라서 선택 로직을 생성한다(단계(2806)). 결정된 물리적 개체 및 생성된 선택 로직을 이용하여, 런-타임 성분(150)은 삭제 명령문 리스트(2812)에 추가(단계(2810))된 물리적 삭제 명령문을 형성한다(단계(2808)). 다음에 삭제 명령문 리스트(2812) 내의 명령문은 순차화(단계(2814))되고, 실행된다(단계(2816)).
방법(2800)의 단계(2806)에서 선택 로직을 생성하는 일실시예는 도 29에 도시되어 있다. 단계(2806)는 실질적으로 도 3의 단계(306, 308, 310, 312)의 실행을 포함한다는 것을 유의하라. 따라서, 각각의 선택 기준에 있어서(단계(2902)), 추상화 성분(502)에서 지정된 필드 정의를 검색한다(단계(2904)). 구체적/물리적 선택 요소를 형성하고(단계(2906)), 그 후에 업데이트 명령문의 선택부에 추가한다(단계(2908)). 구체적/물리적 선택 요소를 형성하는 로직은 실질적으로 도 4에 대한 질의로 설명된 것과 동일하고, 그에 따라서 본 명세서에서는 다시 상세하게 설명되지 않을 것이다.
단계(2814)에서 실행된 순차화의 일실시예는 도 30을 참조하여 설명된다. 먼저, "분류된 플래그(sorted flag)"는 폴스(False)로 설정된다(단계(3002)). 다음에 "분류된 플래그(sorted flag)"가 트루(True)로 설정될 때까지 삭제 명령문 리스트(2812) 내의 각각의 삭제 명령문에 대한 일련의 단계를 실행한다(단계(3006, 3008, 3010)). 특히, 삭제 명령문 리스트(2812)(리스트 내에서 제 1 삭제 명령문부터 시작됨) 내의 주어진 삭제 명령문에 있어서, 대응하는 개체가 결정된다(단계(3012)). 다음에, 삭제 명령문 리스트(2812) 내에서 주어진 삽입 명령문의 대응하는 개체와 나머지 삭제 명령문의 각각의 관련 개체 사이의 관계가 결정된다(단계(3014, 3016)). 특히, 런-타임 성분(150)은 (물리적 개체 관계 사양(526)에 대하여) 주어진 삭제 명령문의 개체가 다른 삭제 명령문의 2차 관련 개체에 대한 1차 개체가 되는지 여부에 대해 판정한다(단계(3016)). "예"라면, 주어진 삭제 명령문은 관련 개체의 삭제 명령문 이후의 위치로 이동된다(단계(3018)). 이러한 프로세스는 삭제 명령문 리스트(2812)가 삭제 명령문 리스트(2812) 내에서 후속 명령문의 개체에 대해 1차적인 현재의 개체와 충돌하지 않으면서 통과할 수 있을 때까지 반복된다. 이러한 시점에서, 삭제 명령문 리스트(2812) 내의 물리적 삭제 명령문은 물리적 개체 관계 사양(526) 내에 지정된 상호 관계에 따라서 순차화된다. 이러한 프로세스는 주요/외부 키 쌍 중에서 주요 키를 포함하는 1차 개체가 2차 개체(외부 키를 포함함)가 삭제된 이후에 마지막으로 삭제되도록 보장한다.
상술된 실시예는 예시적인 것에 불과하고 한정적이지 않다는 것을 유의하라. 당업자라면 본 발명의 범주 내의 다른 실시예를 인식할 것이다. 예를 들면, 상술된 내용은 순서 의존도가 DAM(148)의 일부분으로서 정의된(즉, 순서 의존도가 물리적 개체 관계 사양(526) 내에서 정의된) 실시예를 설명한다. 따라서, 순서 의존도 내의 변경은 추상적 데이터 표현 내의 변경을 필요로 하지만, 애플리케이션이 변경 없이 이용될 수 있도록 허용한다. 다른 실시예는 결정 의존도에 있어서 자동화의 더 높은 등급을 허용함으로써 순서 의존도의 덜 엄격한 정의를 제공한다. 다시 말해서, 물리적 개체 관계 사양(526)이 추상적 데이터 표현으로 정의된다면, 동작의 시퀀스는 다음과 같은 룰 세트(rule set)를 적용함으로써 동적으로 결정될 수 있는데, 이러한 룰 세트는 (i) 키 필드를 포함하는 삽입 동작은 임의의 관련 개체 이전에 1차 개체를 삽입하도록 요구되고, (ii) 키 필드를 포함하는 업데이트 동작은 먼저 1차 개체로부터 그 후의 모든 관련 개체까지 제한되거나 자동적으로 전파될 수 있고, (iii) 키 필드를 포함하는 행을 포함한 삭제 동작은 2차 개체로부터 1차 개체로 제한되거나 자동적으로 전파될 수 있으며, (iv) 완전히 무관한 개체에 대한 동작은 어떠한 순서로도 실행될 수 있다는 것이다.
또 다른 실시예에서, 데이터베이스가 참조용으로서 무결성 캐스케이드 동작(integrity cascade operations)을 검사하도록 고려된다. 이러한 경우에, 데이터베이스 그 자체는 작업의 일부분을 처리하고, DAM(148)이 이러한 낮은 레벨의 동작을 효과적으로 '무시(ignore)'하고 오로지 높은 레벨의 동작만을 실행하게 한다. 이와 같이, 본 발명은 데이터베이스를 이용하는 레거시(legacy) 애플리케이션으로 형성된다는 가정에 기인하여 더 이상 데이터베이스 계층에서 고정될 수 없는 레거시 데이터베이스 내의 참조용 무결성 홀(referential integrity holes)을 '패치(patch)'할 수 있다.
수수료 스케쥴
일실시예에서, 데이터 추상화 모델은 하나 이상의 로직 필드 사양에 대하여 개별적 또는 전체적인 수수료 스케쥴을 가지고 구성된다. 일반적으로, 수수료 스케쥴은 질의, 삽입, 삭제 또는 업데이트 등과 같은 추상적 동작 내에 특정한 로직 필드(들)를 포함하는 비용을 나타낸다. 수수료 구조가 단일 로직 필드 사양, 로직 필드의 카테고리 및/또는 모델 개체에 대해 부과될 수 있다고 고려되었다. 각각의 경우에, 대응하는 수수료 구조는 데이터 추상화 모델의 메타데이터로서 구현된다. 예를 들어, 도 5의 단순화된 표현이 도시된 도 31을 참조하면, 여기에서 글루코스 테스트(Glucost Test)에 대한 로직 필드 사양(51012)은 연관된 수수료 스케쥴(530A)을 구비한다. 간단히 도시하기 위해서, 오로지 하나의 로직 필드 사양(510)만이 수수료 스케쥴을 구비하는 것으로 도시되었으나, DAM(502)의 어떠한 개수의 로직 필드 사양도 수수료 스케쥴을 포함할 수 있다. 수수료 스케쥴(530B)로 구성된 카테고리는 데모그래픽 카테고리(Demographic category)(5081)에 의해 표현된다. 여기에서도, 간단하게 하기 위해서 오로지 하나의 카테고리만이 수수료 스케쥴을 구비하는 것으로 도시되었다. 마지막으로 각각의 모델 개체(5061-3)는 제각기 연관된 수수료 스케쥴(530C-530E)을 가지고 도시되었다.
수수료 스케쥴(530A-530E)의 실시예는 도 31에 도시된 DAM(502)의 개략적인 상세도를 도시하는 도 32에서 확인된다. 예를 들면, 데모그래픽 카테고리(5081)의 수수료 스케쥴(530B)은 질의, 삽입 및 업데이트에 대해 각각 정의된 수수료를 포함한다. 각각의 동작에 있어서, 수수료는 요청 당(per request)(질의 수수료 및 업데이트 수수료로 표현됨) 또는 항목 당(per item)(삽입 수수료로 표현됨) 수수료일 수 있다. 마찬가지로, 글루코스 테스트 필드 사양(51012)은 항목 당 질의 수수료 스케쥴(530A)(이러한 경우에 이것이 하나의 속성임)을 포함한다.
다음으로 도 33을 참조하면, 모델 개체 사양(6021-2)의 실시예가 도시되어 있다. 모델 개체 사양(6021-2)의 다른 성분은 도 6을 참조하여 상술되어 있으므로 여기에서 반복 설명하지는 않는다. 모델 개체의 경우에, 각 수수료 스케쥴의 속성은 각 동작의 부분들에 걸쳐 분산될 수 있다. 따라서, "환자(Patient)" 모델 개체(5061)는 개체의 질의부(6041) 내에 요청 당 질의 수수료 속성을 포함하고, 개체의 삽입부(6042) 내에 항목 당 삽입 수수료 속성을 포함하며, "테스트" 모델 개체(5062)는 개체의 질의부(6042) 내에 항목 당 질의 수수료 속성을 포함한다. 명료성을 위해서 "계좌(Account)" 모델 개체(506)는 도시하지 않았다.
도 31 내지 도 33을 참조하여 설명된 실시예는 수수료가 데이터의 세분화 단위의 여러 레벨에 기초할 수 있다는 것을 나타낸다. 이러한 실시예는 단지 예시적인 것에 불과하고, 당업자라면 본 발명의 범주 내에서 다른 실시예를 인식할 것이다. 예를 들면, 수수료는 용량에 따라서 변동되도록 이루어져서 (i) 높은 용량의 결과를 리턴하는 질의는 장애(penalty)를 초래하게 하거나(이것은 사용자가 시스템의 성능 자원을 고갈시키는 것을 방지할 수 있어서 바람직하다), (ii) 높은 용량의 결과를 리턴하는 질의는 할인(discount)을 수신할 수 있게 한다(이것은 데이터 제공자에게 경쟁적 이득의 형성 및/또는 증가된 사용을 촉진하는 것에 의한 이윤의 증가를 제공할 수 있어서 유리하다).
여러 추상적 동작에 대한 수수료 계산 알고리즘의 실시예는 도 34 및 도 35에 도시되어 있다. 편의 및 단순성을 위해서, 질의 및 삽입에 대한 수수료 계산은 도 34를 참조하여 함께 설명한다. 업데이트에 대한 수수료 계산은 도 35를 참조하여 별도로 설명된다. 각각의 경우에, 수수료 계산은 도 1에 도시된 수수료 계산기(151)에 의해 실행된다. 수수료 계산기(151)의 동작의 적어도 일부분은 추상적 동작 런-타임의 일부분으로서 실행되거나, 거래(transaction) 및 감사 로그(audit logs)를 이용하여 거래의 실행 이후 소정 시간 내에 적절한 비용을 계산하는 "실행 이후(after the fact)" 프로세스로서 구현될 수 있다는 것을 유의하라. 이러한 경우에, (수수료 계산기(151)의 동작에 의해서) 이러한 거래를 실행하기 전에 주어진 거래에 수수료가 적용될 수 있다는 것을 사용자에게 통보할 수 있도록 고려되었다.
다음으로 도 34를 참조하면, 질의 및 삽입에 대한 수수료 계산 알고리즘(3400)의 일실시예가 도시되어 있다. 수수료 계산 알고리즘(3400)은 주어진 추상적 동작에 대해서 개시된다(단계(3402)). 다음에 수수료 계산기(151)는 추상적 동작이 모델 개체에 대한 참조를 포함하는지 여부를 판정한다(단계(3404)). "예"라면, 수수료 계산기(151)는 참조 모델 개체가 특정한 동작에 대한 수수료(즉, 질의 수수료 또는 삽입 수수료)를 정의하는지 여부를 판정한다(단계(3406)). "예"라면, 수수료 계산기(151)는 수수료가 항목 당 수수료인지 여부를 판정한다(단계(3408)). "예"라면, "항목 당 수수료 리스트"(3412)를 업데이트한다(단계(3410)). "아니오"라면, 수수료는 요청 당 수수료인 것으로 가정되고, 이러한 경우에 "요청 당 수수료리스트"(3416)가 업데이트된다(단계(3414)). 일실시예에서, 항목 당 수수료 리스트(3412)는 대응하는 수수료뿐만 아니라 수수료를 적용할 각 항목에 대한 참조를 포함한다. 이와는 반대로, 요청 당 수수료 리스트(3416)는 주어진 필드에 대해 이루어진 각 요청에 대한 수수료의 기록만을 포함하기만 하면 된다. 어떤 경우에나, 그 다음에 알고리즘(3400)은 주어진 추상적 동작 내에서 지정된 각 필드에 대해서 루프에 진입한다(단계(3418)). 또한 어느 하나의 단계가 부정으로 응답되었을 때 루프는 단계(3404) 및 단계(3406)에서도 진입될 수 있다.
추상적 동작의 주어진 필드에 있어서, 알고리즘(3400)은 동작 수수료(즉, 질의 수수료 또는 삽입 수수료)가 필드에 대해 정의되었는지 여부를 결정한다(단계(3420)). "아니오"라면, 처리는 이하에 설명되는 단계(3428)로 진행된다. "아니오"라면, 수수료 계산기(151)는 동작 수수료가 항목 당 수수료인지 여부를 판정한다(단계(3422)). "예"라면, 수수료 계산기(151)는 항목 당 수수료 리스트(3412)를 업데이트한다(단계(3426)). "아니오"라면, 요청 당 수수료 리스트(3416)가 업데이트된다(단계(3424)).
다음에 수수료 계산기(151)는 주어진 필드에 대한 부모 카테고리(parent category)가 처리되었는지를 식별한다(단계(3428)). 다음에 처리되는 주어진 필드를 포함하는 각각의 카테고리(즉, 부모 카테고리, 조부모, 고조부모 등)에 대해 루프로 진입한다(단계(3430)). 주어진 카테고리에 있어서, 수수료 계산기(151)는 동작 수수료가 카테고리에 대해 정의되었는지 여부를 판정한다(단계(3432)). 정의된 동작 수수료를 구비하는 주어진 카테고리에 있어서, 수수료 계산기(151)는 다음에 수수료가 항목 당 수수료인지 여부를 판정한다(단계(3434)). "예"라면, 항목 당 수수료 리스트(3412)가 업데이트되고(단계(3436)), "아니오"라면, 요청 당 수수료 리스트(3416)가 업데이트된다(단계(3438)). 주어진 부모 카테고리에 대한 각 카테고리가 처리된 후에, 알고리즘(3400)은 단계(3418)로 되돌아가서 추상적 동작 내의 다음 필드의 처리를 시작한다. 추상적 동작의 각각의 필드가 상술된 방식으로 처리되면, 추상적 동작에 대한 총 수수료가 항목 당 수수료 리스트(3412) 및 요청 당 수수료 리스트(3416) 내에 포함된 정보에 기초하여 계산될 수 있다.
일실시예에서, 수수료 계산기(151)는 먼저 총 수수료를 0으로 초기화한다(단계(3440)). 다음에 동작을 실행한다(단계(3442)). 이와 관련하여, 수수료 계산기(151)는 동작을 실행하는 역할을 갖지 않고, 단계(3442)는 단지 설명의 편의를 위해 도시된 것임을 예측할 것이다. 실행 전, 실행 중 또는 실행 후에, 수수료 계산기(151)는 (요청 당 수수료 리스트(3416)의 정보에 기초하여) 요청 당 수수료의 합계를 구하고(단계(3444), 해당 합계를 총 수수료에 더한다(단계(3446)). 다음에 수수료 계산기(151)는 질의 결과(동작이 질의인 경우)의 개수(N), 또는 항목(동작이 삽입인 경우)의 개수를 결정한다(단계(3444)). 각각의 항목 당 수수료(F)에 있어서, 수수료 계산기(151)는 N과 F의 적(product)을 구하고, 그 적을 총 수수료에 더한다(단계(3450) 및 단계(3452)).
다음에 도 35를 참조하면, 업데이트 동작에 대한 수수료 계산 알고리즘(3500)(수수료 계산기(151)에 의해 실행됨)의 일실시예가 설명된다. 알고리즘(3500)은 주어진 추상적 업데이트 동작에 대해 개시된다(단계(3502)). 다음에 수수료 검사 레터(fee check letter)(151)는 업데이트 내의 각 필드에 대해 루프로 진입한다(단계(3504)). 주어진 필드에 있어서, 수수료 계산기(151)는 업데이트 수수료가 필드에 대해 정의되었는지 여부를 판정한다(단계(3506)). "예"라면, 수수료 계산기(151)는 업데이트 수수료가 항목 당 수수료인지 여부를 판정한다(단계(3508)). "예"라면, 항목 당 수수료 리스트(3412)가 업데이트된다(단계(3512)). "아니오"라면, 수수료 계산기(151)는 요청 당 수수료 리스트(3416)를 업데이트한다(단계(3560)).
다음에 수수료 계산기(151)는 처리되는 주어진 필드에 대한 부모 카테고리를 식별한다(단계(3514)). 다음에 처리되는 주어진 필드를 포함하는 각각의 카테고리(즉, 부모 카테고리 및 그 부모 카테고리에 대한 조상(ancestor) 카테고리)에 대해 루프로 진입된다(단계(3516)). 주어진 카테고리에 있어서, 수수료 계산기(151)는 업데이트 수수료가 해당 카테고리에 대해 정의되었는지 여부를 판정한다(단계(3516)). 정의된 업데이트 수수료를 구비하는 임의의 주어진 카테고리에 있어서, 다음에 수수료 계산기(151)는 수수료가 항목 당 수수료인지 여부를 판정한다(단계(3520)). "예"라면, 항목 당 수수료 리스트(3412)가 업데이트되고(단계(3522)), "아니오"라면, 요청 당 수수료 리스트(3416)가 업데이트된다(단계(3524)). 주어진 부모 카테고리에 대한 각각의 카테고리가 처리된 후에, 알고리즘(3500)은 단계(3516)로 되돌아가서 추상적 업데이트 동작 내에서 다음 필드의 처리를 시작한다.
추상적 업데이트 동작의 각각의 필드가 상술된 방식으로 처리되면, 수수료 계산기(151)는 주어진 필드가 모델 개체 내에서 참조되었는지 여부를 판정한다(단계(3526)). "예"라면, 수수료 계산기(151)는 참조 모델 개체가 업데이트 동작에 대한 수수료를 정의하는지 여부를 판정한다(단계(3528)). "예"라면, 수수료 계산기(151)는 수수료가 항목 당 수수료인지 여부를 판정한다(단계(3530)). "예"라면, 항목 당 수수료 리스트(3412)가 업데이트된다(단계(3532)). "아니오"라면, 수수료는 요청 당 수수료이고, 이러한 경우에 요청 당 수수료 리스트(3416)가 업데이트된다(단계(3534)).
업데이트 동작에 포함된 각각의 필드가 처리되면, 항목 당 수수료 리스트(3412) 및 요청 당 수수료 리스트(3416) 내에 포함된 정보에 기초하여 추상적 동작에 대한 총 수수료를 계산할 수 있다. 일실시예에서, 수수료 계산기(151)는 먼저 총 수수료를 0으로 초기화한다(단계(3540)). 다음에 동작을 실행한다(단계(3542)). 이와 관련하여, 수수료 계산기(151)는 동작을 실행하는 역할을 갖지 않고, 단계(3542)는 단지 설명의 편의를 위해 도시된 것임을 이해할 것이다. 실행 전, 실행 중 또는 실행 후에, 수수료 계산기(151)는 (요청 당 수수료 리스트(3516)의 정보에 기초하여) 요청 당 수수료의 합계를 구하고(단계(3544)), 해당 합계를 총 수수료에 더한다(단계(3546)). 다음에 수수료 계산기(151)는 업데이트된 항목의 개수(N)를 결정한다(단계(3544)). 각각의 항목 당 수수료(F)에 있어서, 수수료 계산기(151)는 N과 F의 적(product)을 구하고, 그 적을 총 수수료에 더한다(단계(3550) 및 단계(3552)).
수수료-기반 모델을 적용하는 일실시예는 도 36 내지 도 40을 참조하여 설명되는데, 이 도면은 추상적 질의를 생성하는 사용자 인터페이스 스크린(예를 들면, 도 1에 도시된 브라우저 프로그램(122)의 사용자 인터페이스 스크린)을 도시한다. 당업자라면 삽입 및 업데이트 동작에 있어서 유사한 스크린을 이용할 수 있다는 것을 인식할 것이다.
먼저 도 36을 참조하면, 모델 개체 선택 리스트(3602)를 구비하는 사용자 인터페이스 스크린(3600)이 도시되어 있다. 도 31에 도시된 DAM(502)에 의해 정의된 3개의 모델 개체(즉, 계좌(Account), 환자(Patient) 및 테스트(Test)) 각각에 대한 표현이 리스트(3602) 내에 제공되어 있다. 또한, 스크린(3600)은 임의의 "요청 당 수수료" 필드(3604) 및 "항목 당 수수료" 필드(3606)를 포함한다. 필드(3604, 3606)는 사용자에 의해 생성된 추상적 질의에 대해 생성된 수수료의 누계(running total)를 디스플레이한다. 따라서, 필드(3604, 3606)는 초기에 비어있거나 0달러의 액수를 나타낸다. 다음에 사용자는 리스트(3602)에서 모델 개체 중의 하나를 선택하고, 다음 버튼(3608)을 클릭함으로써, 사용자가 도 37에 도시된 사용자 인터페이스 스크린(3700)을 구비하게 한다. 예시를 목적으로, 사용자가 리스트(3602)에서 환자 모델 개체를 선택한 것으로 가정한다. 따라서, "요청 당 수수료" 필드(3604)는 1달러($1.00) 수수료를 디스플레이한다. 1달러 수수료는 도 33에 도시된 모델 개체 사양(525)을 참조하여 계산되고, 여기에서 환자 모델 개체(5061)의 질의부(6041)는 요청 당 1달러 수수료를 정의한다. 또한, 스크린(3700)은 사용자가 조건 선택 메뉴(도시하지 않음)를 호출하는 ADD 버튼(3707)을 클릭함으로써 원하는 질의 조건을 지정하게 하는 입력 필드(3702)를 포함한다. 다음에 사용자는 다음 버튼(3608)을 클릭한다. 예시적인 질의 조건은 도 38에 도시되어 있다. 본 실시예에서 사용자의 질의는 로직 필드 글루코스 테스트를 포함하고, 이것은 항목 당 $0.50의 수수료를 연관시킨다(도 32의 수수료 스케쥴(530A)에 의해 도시됨). 따라서, "항목 당 수수료" 필드(3606)는 $0.50 수수료를 디스플레이한다. 질의가 연관된 항목 당수수료를 구비하는 다른 로직 필드를 포함하면, 추가적인 "항목 당 수수료" 필드가 인터페이스(3700) 내에 제공될 수 있다. 원하는 질의 조건을 지정한 후에, 사용자는 다음 버튼(3608)을 클릭한 후 도 39에 도시된 사용자 인터페이스 스크린(3900)을 제공받는다. 사용자 인터페이스 스크린(3900)은 질의에 의해 리턴될 결과 필드를 디스플레이하는 입력 필드(3902)를 포함한다. 입력 필드(3902)는 선택된 모델 개체에 대해 정의된 임의의 필수 필드를 디스플레이하는데, 이것은 선택된 환자 모델 개체에 대하여 "환자ID(PatientID)"를 포함한다. 또한, 입력 필드(3902)는 임의의 사용자-선택형 결과 필드를 디스플레이하는데, 이것은 일실시예에서 ADD 버튼(3904)을 클릭함으로써 추가되어 결과 필드 선택 메뉴(도시하지 않음)를 호출한다. 이러한 예에서, 사용자-지정형 결과 필드는 도 40에 도시된 바와 같이 성별, 글루코스 테스트 및 나이(Age)를 포함한다. 지정된 각각의 결과 필드에 있어서, 수수료 계산기(151)는 추가적인 수수료가 적용되는지 여부를 판정한다. 본 실시예에서, 지정된 결과 필드에 대해 추가적인 수수료가 적용되지 않는다. 요구되는 추상적 질의가 완료되면, 사용자는 종료(Finish) 버튼(3616)을 클릭함으로써 질의를 실행하고, 결과를 리턴시킨다. 예시적인 결과 스크린(4100)이 도 41에 도시되어 있다. "총 수수료(Total Fee)" 필드(4102)는 질의에 대한 전체 계산된 수수료, 이 예에서는 $4.00을 디스플레이한다. $4.00은 $2.00의 요청 당 수수료와, 각각 $0.50인 글루코스 테스트 필드를 포함하는 4개의 결과에 대한 $2.00(4*$0.50=$2.00)의 합계이다.
동작에 대한 총 수수료가 계산되면, 수수료는 사용자에게 디스플레이될 수 있다. 사용자에 대한 지불금을 회수하기 위해 다양한 지불 모델이 적용될 수 있다. 예를 들면, 일실시예에서 사용자는 데이터 제공자에 의해 관리되는 계좌를 갖는 가입자(subscriber)일 수 있다. 각각의 거래 이후 또는 사용자 로그 오프(logs off) 이후에, 총 수수료는 사용자의 계좌로 자동으로 청구될 수 있다. 다른 실시예에서, 동작은 사업 개체 즉, 사용자에게 네트워크 액세스를 제공하는 상점 내의 컴퓨터의 제어 하에서 컴퓨터 상에서 실행될 수 있다. 이러한 경우에, 사용자는 상점을 떠나기 전에 청구받을 수 있다.
따라서, 본 명세서에 설명된 실시예는 개별 데이터 항목 또는 데이터의 집합체에 대한 사용 수수료를 형성하는 메타데이터-기반 모델을 제공하여, 하나의 데이터 세트에 연관된 수수료가 동일 데이터 저장소 또는 연결형(federated) 데이터 환경 내에서 다른 정보에 대해 형성된 수수료와는 서로 다를 수 있게 한다. 액세스되는 정보에 기초하여 수수료를 변동시키는 것에 추가하여, 제안된 수수료 모델은 또한 실행되는 동작의 타입(예를 들면, 데이터 검색, 데이터 삽입 또는 데이터 업데이트)을 고려한다. 이러한 모델은 기존의 정보를 검색하는 데 이용되는 스케쥴에 대해 새로운 정보의 저장을 위한 상이한 수수료 스케쥴이 허용될 수 있게 한다. 수수료 계산기는 요청 개체에 의해 실행된 거래 및 액세스되는 정보를 위해 마련된 수수료 스케쥴을 고려하여 데이터 리포지터리에 대한 각각의 거래에 대한 실청구액(net charge)을 획득한다. 일실시예에서, 이러한 접근법은 액세스되는 정보의 가치 및/또는 저장된 정보에 대해 제공되는 서비스의 레벨에 기초하여 서로 다른 청구액을 형성하면서 각각에 대한 동일한 데이터 업데이트 및 액세스 애플리케이션을 이용하여 동일한 IT 인프라 구조 내에서 높은 가치의 정보 및 낮은 가치의 정보가 모두 관리될 수 있게 한다.
여러 실시예에서, 여러 이점이 제공될 수 있다. 몇몇 경우에, 이러한 이점은 종래 기술을 능가하여 크게 진보될 수 있다. 이러한 이점 중 일부는 특수한 IT 환경을 고려하여 설명된다(또한 그 외의 이점은 상술되어 있음). 그러나, 이러한 실시예가 이점을 달성하였는지 여부 또한 이러한 이점이 실질적인 개선으로서 고려될 수 있는지 여부는 본 발명을 한정하지 않는다. 그러므로, 이하에서 설명되는 이점 및 관점은 본 발명을 한정하거나 제한하지 않고, 오로지 이하의 청구항에 의해서만 한정된다.
일실시예에서 의학적 연구 데이터베이스는 각 주제에 대한 데모그래픽 정보 및 연관된 유전자 표시 데이터를 포함한다. 데이터베이스 관리자는 도출하는 데 있어서 더 시간 소모적이고 값비싼 프로세스를 포함하는 유전자 표시 데이터의 이용에 대해 추가액(premium)을 청구하고 싶어할 것이다. 유전자 표시 결과와 연관된 로직 필드는 이러한 정보의 가치에 의해 생성된 비용(및 이윤)을 다른 당사자에게 회수할 수 있게 하는 특수한 수수료를 가질 수 있다.
다른 실시예에서, 새로운 환자가 추가되면 환자가 그들의 개인 정보를 제공하도록 희망하는 액세스 레벨을 설정하는 작업의 흐름이 요구되기 때문에, 다수의 공공 시설에 대한 의학적 기록 정보의 저장을 관리하는 의학적 기록 서비스 제공자는 새로운 환자에 대한 정보의 저장에 대해 추가액을 청구하고 싶어할 것이다. "환자(Patient)" 모델 개체에 기초하여, 보다 구체적으로는 이러한 개체에 대해 실행된 삽입 동작에 기초하여 특수한 수수료 구조를 형성하는 기능은, 덜 빈번하게 연관된 서비스가 제공되는 다른 요청(환자의 가 주소를 업데이트하는 등) 에 대해서 이러한 타입의 요청에 대한 수수료가 차별화될 수 있게 한다.
다른 실시예에서, 서비스 제공자는 동일한 가치를 제공하는 필드의 집합체에 대한 액세스 수수료 스케쥴을 형성하고자 할 것이다. 로직 그룹 또는 필드의 카테고리에 기초하여 수수료를 형성하는 기능은 이것을 가능하게 한다.
상술된 실시예의 일부분은 데이터 추상화 모델을 참조하는 수수료-기반 데이터 액세스를 설명한다. 그러나, 본 발명의 실시예는 데이터 추상화 모델 내에 구현되는 수수료 배열로 한정되지 않는다. 그 대신에, 액세스되는 특정한 정보 및/또는 정보에 대해 실행될 동작의 특성(질의, 삽입 및 업데이트)에 기초하여 수수료를 제공하는 어떠한 수수료 배열도 고려될 수 있다. 따라서, 예를 들면, 상술된 데이터 추상화 모델의 수수료 메타데이터는 또한 물리적 필드(예를 들면, 도 5에 도시된 데이터베이스(504)의 물리적 필드 등)에 대한 수수료 스케쥴을 직접적으로(즉, 추상화 모델에 의해 논리적으로 기술하지 않고) 나타낼 수 있다. 예를 들면, 데이터베이스 내의 수수료 테이블은, 이러한 수수료 테이블이 개체(테이블) 또는 개체 내의 항목(테이블 내의 열)을 액세스 또는 수정하는 요청에 대한 수수료 스케쥴을 정의한다고 고려될 수 있다. 또한, 이러한 수수료 스케쥴은 실행되는 동작의 타입에 민감하게 정의될 수 있고, 수수료가 요청 당 수수료인지 항목 당 수수료인지 여부를 나타낼 수 있다. 예를 들면, 다음의 표는 물리적, 관계 모델에 기초한 수수료 스케쥴로서 이용될 수 있다. 예시를 목적으로 테스트 개체를 고려하면, 이러한 수수료 스케쥴은 테스트 테이블로부터 리턴된 정보에 대한 $0.50의 항목 당 수수료 및 글루코스 열로부터 데이터를 리턴하는 질의에 대한 $0.50의 항목 당 수수료를 초래할 것이다.
Figure 112005067677350-pct00007
상술된 내용은 본 발명의 실시예에 대해 설명하였으나, 본 발명의 기본적인 범주를 벗어나지 않으면서 본 발명의 다른 추가적인 실시예를 도출할 수 있고, 본 발명의 범주는 이하의 청구항에 의해 결정된다.

Claims (36)

  1. 데이터에 대한 수수료-기반 액세스(fee-based access)를 제공하는 방법으로서,
    추상적 동작(abstract operations)을 논리적으로 정의하는 추상적 모델(abstract model)을 제공하여 상기 데이터에 액세스하는 단계를 포함하되,
    상기 추상적 모델은,
    (i) 복수의 로직 필드(logical fields)와,
    (ii) 상기 복수의 로직 필드 각각에 대하여, 상기 복수의 로직 필드를 상기 데이터의 물리적 개체(physical entities)로 매핑하는 매핑 룰(mapping rule)과,
    (iii) 상기 복수의 로직 필드 각각에 대한 수수료 스케쥴(fee schedule)을 포함하며,
    주어진 로직 필드에 대한 각각의 수수료 스케쥴은, 상기 주어진 로직 필드가 상기 주어진 로직 필드에 대응하는 물리적 개체에 액세스하는 추상적 동작에 수반될 때 부과될 수수료를 정의하는
    수수료-기반 액세스의 제공 방법.
  2. 청구항 2은(는) 설정등록료 납부시 포기되었습니다.
    제 1 항에 있어서,
    상기 복수의 로직 필드 중 적어도 2 개를 포함하는 추상적 동작에 따라서 상기 데이터에 액세스하는 단계와,
    상기 적어도 2 개의 복수의 로직 필드 각각에 대응하는 별개의 수수료 스케쥴에 기반하여 부과될 수수료를 계산하는 단계를 더 포함하는
    수수료-기반 액세스의 제공 방법.
  3. 청구항 3은(는) 설정등록료 납부시 포기되었습니다.
    제 1 항에 있어서,
    상기 복수의 로직 필드 중에서 선택된 로직 필드를 포함하는 각각의 추상적 동작을 상기 물리적 데이터에 부합되는 물리적 동작으로 변환하기 위한 변환 인스트럭션으로 구성되는 런-타임 성분(run-time component)을 제공하는 단계와,
    상기 수수료 스케쥴에 기반하여 물리적 동작을 실행하기 위한 수수료를 계산하도록 구성된 수수료 계산기(fee calculator)를 제공하는 단계를 더 포함하는
    수수료-기반 액세스의 제공 방법.
  4. 청구항 4은(는) 설정등록료 납부시 포기되었습니다.
    제 1 항에 있어서,
    상기 추상적 동작은 적어도 2 개의 로직 필드를 포함하는 추상적 질의(abstract query)이고,
    상기 방법은,
    상기 적어도 2 개의 로직 필드 각각에 대응하는 수수료 스케쥴을 액세스하는 단계와,
    상기 적어도 2 개의 로직 필드 중 첫 번째 로직 필드에 대한 요청 당 수수료(a per request fee)를 결정하는 단계 -상기 요청 당 수수료는 상기 적어도 2 개의 로직 필드 중 상기 첫 번째 로직 필드를 수반하는 각각의 추상적 동작마다 부과됨- 와,
    상기 적어도 2 개의 로직 필드 중 두 번째 로직 필드에 대한 항목 당 수수료(a per item fee)를 결정하는 단계 -상기 항목 당 수수료는 주어진 추상적 동작시에 수반된 상기 적어도 2 개의 로직 필드 중 상기 두 번째 로직 필드의 각 인스턴스(instance)마다 부과됨- 를 더 포함하는
    수수료-기반 액세스의 제공 방법.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
    제 4 항에 있어서,
    상기 항목 당 수수료에 상기 적어도 2 개의 로직 필드 중 상기 두 번째 로직 필드의 인스턴스의 개수를 곱하여 적(product)을 구하는 단계와,
    상기 적과 상기 요청 당 수수료를 합하여 부과될 수수료를 결정하는 단계를 더 포함하는
    수수료-기반 액세스의 제공 방법.
  6. 청구항 6은(는) 설정등록료 납부시 포기되었습니다.
    제 1 항에 있어서,
    상기 추상적 모델에 의해 정의된 적어도 하나의 수수료 스케쥴은 제 타입의 1 동작에 대한 제 1 수수료 및 제 2 타입의 동작에 대한 제 2 수수료를 지정하고,
    실행된 동작의 타입에 기반하여 부과될 수수료를 계산하는 단계를 더 포함하는
    수수료-기반 액세스의 제공 방법.
  7. 청구항 7은(는) 설정등록료 납부시 포기되었습니다.
    각각 복수의 물리적 필드를 포함하는 복수의 물리적 개체를 구비하는 물리적 데이터에 대한 수수료-기반 액세스를 제공하는 방법으로서,
    상기 데이터에 액세스하는 동작을 논리적으로 기술하는 추상적 동작 사양(abstract operation specifications)을 정의하는 추상적 모델을 제공하는 단계를 포함하되,
    상기 추상적 모델은,
    (a) 복수의 로직 필드와,
    (b) 상기 복수의 로직 필드 각각에 대하여, 상기 복수의 로직 필드 각각을 상기 데이터의 상기 물리적 개체 중 적어도 하나로 매핑하는 매핑 룰과,
    (c) 각각 상기 물리적 개체의 물리적 필드에 대응하는 적어도 하나의 로직 필드를 포함하는 복수의 모델 개체 정의와,
    (d) 상기 복수의 로직 필드 각각에 대한 로직 필드 수수료 스케줄을 포함하되,
    상기 로직 필드 수수료 스케줄은 물리적 동작의 일부분으로서 대응하는 물리적 필드에 액세스하기 위한 수수료를 각각 지정하는
    을 포함하는 수수료-기반 액세스의 제공 방법.
  8. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.
    제 7 항에 있어서,
    상기 추상적 모델에 따라서, 추상적 동작 사양을 상기 물리적 데이터에 부합되는 물리적 동작 사양으로 변환하는 단계 -각각의 상기 추상적 동작 사양은 상기 복수의 모델 개체 정의 중 적어도 하나를 포함함- 와,
    상기 수수료 스케쥴에 기반하여 물리적 동작을 실행하기 위한 수수료를 계산하는 단계를 더 포함하는
    수수료-기반 액세스의 제공 방법.
  9. 각각 복수의 물리적 필드를 포함하는 복수의 물리적 개체를 구비하는 데이터에 대한 수수료-기반 액세스를 제공하는 방법으로서,
    상기 데이터에 액세스하는 동작을 실행하게 하는 인스트럭션을 수신하는 단계와,
    상기 동작을 실행하는 단계와,
    상기 동작에 의해 액세스되는 상기 복수의 물리적 필드 각각에 대한 필드-특정 수수료(field-specific fees)를 결정하는 단계와,
    상기 동작에 대해 사용자에게 부과될 총 수수료를 계산하는 단계를 포함하는
    수수료-기반 액세스의 제공 방법.
  10. 삭제
  11. 청구항 11은(는) 설정등록료 납부시 포기되었습니다.
    제 9 항에 있어서,
    상기 필드-특정 수수료를 결정하는 단계는 상기 필드-특정 수수료가 요청 당 수수료인지 항목 당 수수료인지 여부를 결정하는 단계를 포함하고,
    상기 요청 당 수수료는 대응하는 물리적 필드가 상기 동작시에 포함되는 인스턴스의 개수에 무관하게 상기 동작에 대해 부과되는 단일 수수료이고,
    상기 항목 당 수수료는 상기 동작시에 포함된 대응하는 물리적 필드의 인스턴스마다 부과되는
    수수료-기반 액세스의 제공 방법.
  12. 청구항 12은(는) 설정등록료 납부시 포기되었습니다.
    제 9 항에 있어서,
    상기 필드-특정 수수료를 결정하는 단계는, 상기 동작에 의해 액세스되는 각각의 물리적 필드에 대한 수수료 스케쥴에 액세스하는 단계를 포함하는
    수수료-기반 액세스의 제공 방법.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 프로세서에 의해 실행되는 경우, 각각 복수의 물리적 필드를 구비하는 복수의 물리적 개체를 포함한 물리적 데이터에 액세스하는 동작을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 매체로서,
    상기 동작은,
    상기 데이터에 액세스하는 동작을 실행하게 하는 인스트럭션을 수신하는 단계와,
    상기 동작의 실행을 발생시키는 단계와,
    상기 동작에 의해 액세스되는 상기 복수의 물리적 필드 각각에 대한 필드-특정 수수료를 결정하는 단계와,
    상기 동작에 대해 사용자에게 부과될 총 수수료를 계산하는 단계를 포함하는
    컴퓨터 판독 가능 매체.
  17. 데이터베이스 내에 특정한 물리적 데이터 표현을 구비하는 물리적 데이터의 복수의 물리적 개체로 매핑되는 복수의 로직 필드에 의해 정의된 추상적 질의를 형성하는 방법으로서,
    (i) 별개의 물리적 개체에 각각 대응하는 2 개 이상의 로직 필드와, (ii) 모델 개체 정의에 기초하여 물리적 개체에 액세스하는 데 있어서의 수수료 스케쥴을 포함하는 상기 모델 개체 정의에 대한 기준을 포함하는 사용자 입력을 사용자 인터페이스를 통해 수신하는 단계와,
    상기 2 개 이상의 로직 필드 중 적어도 하나를 추상적 질의에 선택적으로 추가하는 단계와,
    상기 추상적 질의에 대하여, 선택된 로직 필드 및 상기 선택된 로직 필드각각에 대응하는 값에 의해 정의된 복수의 추상적 질의 요소(contributions)를 수신하는 단계와,
    상기 추상적 질의에 대하여, 선택된 로직 필드에 의해 정의되는 복수의 결과 필드를 수신하는 단계와,
    상기 추상적 질의를 상기 데이터의 상기 특정한 물리적 데이터 표현과 부합되는 물리적 질의로 변환하는 단계와,
    상기 물리적 질의를 실행하는 단계와,
    상기 수수료 스케쥴에 기반하여, 상기 물리적 질의의 실행에 대해 부과될 수수료를 계산하는 단계를 포함하는
    추상적 질의의 형성 방법.
  18. 청구항 18은(는) 설정등록료 납부시 포기되었습니다.
    제 17 항에 있어서,
    상기 2 개 이상의 로직 필드 중 적어도 하나를 선택적으로 추가하는 상기 단계는,
    상기 적어도 하나의 로직 필드가 상기 모델 개체 정의에 의해 지정된 필수 필드인지 여부를 판정하는 단계와,
    상기 적어도 하나의 로직 필드가 상기 모델 개체 정의에 의해 지정된 필수 필드라면, 상기 적어도 하나의 로직 필드를 상기 추상적 질의에 추가하는 단계를 포함하는
    추상적 질의의 형성 방법.
  19. 청구항 19은(는) 설정등록료 납부시 포기되었습니다.
    제 17 항에 있어서,
    요청 당 수수료는 상기 2 개 이상의 로직 필드 중 첫 번째 로직 필드에 대해 정의되고,
    결과 당 수수료는 상기 2 개 이상의 로직 필드 중 두 번째 로직 필드에 대해 정의되며,
    상기 수수료의 계산 단계는,
    (i) 상기 결과 당 수수료와 상기 2 개 이상의 로직 필드 중 상기 두 번째 로직 필드에 대한 결과의 개수를 곱하여 적을 계산하는 단계와,
    (ii) 상기 적과 상기 요청 당 수수료를 합하는 단계를 포함하는
    추상적 질의의 형성 방법.
  20. 청구항 20은(는) 설정등록료 납부시 포기되었습니다.
    제 17 항에 있어서,
    상기 추상적 질의를 상기 물리적 질의로 변환하는 상기 단계는,
    상기 추상적 질의의 각각의 상기 로직 필드를 상기 물리적 데이터의 각각의 물리적 개체로 매핑하는 단계를 포함하는
    추상적 질의의 형성 방법.
  21. 복수의 물리적 개체를 포함하고, 데이터베이스 내에 특정한 물리적 데이터 표현을 구비하는 물리적 데이터를 수정하는 방법으로서,
    추상적 수정 동작의 선택을 수신하는 단계와,
    상기 추상적 수정 동작을 수행할 모델 개체 정의의 선택을 수신하는 단계 -상기 모델 개체 정의는 별개의 물리적 개체에 각각 대응하는 2 개 이상의 로직 필드를 포함함- 와,
    적어도 상기 수신된 선택에 기초하여, 각각 상기 물리적 데이터의 2 개의 별개의 물리적 개체 중 하나를 수정하는 적어도 2 개의 물리적 수정 명령문을 생성하는 단계와,
    상기 적어도 2 개의 물리적 수정 명령문을 순차화하는 단계와,
    상기 물리적 수정 명령문에 따라서 수정 동작을 실행하여 상기 데이터를 수정하는 단계와,
    상기 모델 개체 정의에 대해 정의된 수수료 스케쥴에 기초하여 상기 수정 동작을 실행하는 데 부과되는 수수료를 계산하는 단계를 포함하는
    물리적 데이터의 수정 방법.
  22. 청구항 22은(는) 설정등록료 납부시 포기되었습니다.
    제 21 항에 있어서,
    상기 순차화 단계는 상기 데이터의 물리적 개체 사이의 계층적 관계를 정의하는 물리적 개체 관계 사양에 따라서 실행되어 상기 데이터의 무결성(integrity)을 보장하는
    물리적 데이터의 수정 방법.
  23. 청구항 23은(는) 설정등록료 납부시 포기되었습니다.
    제 21 항에 있어서,
    상기 적어도 2 개의 물리적 수정 동작의 형성은 상기 2 개 이상의 로직 필드를 대응하는 물리적 개체로 매핑하는 매핑 룰에 따라서 실행되는
    물리적 데이터의 수정 방법.
  24. 각각 복수의 물리적 필드를 포함하는 복수의 물리적 개체를 구비한 물리적 데이터에 액세스하는 추상적 동작을 정의하는 로직 프레임워크(logical framework)를 제공하는 방법으로서,
    상기 데이터에 액세스하는 동작을 논리적으로 기술하는 추상적 동작 사양을 정의하기 위한 추상적 모델을 제공하는 단계와,
    상기 추상적 모델에 따라서 추상적 동작 사양을 상기 물리적 데이터에 부합되는 물리적 동작 사양으로 변환하기 위한 런-타임 성분을 제공하는 단계를 포함하되,
    상기 추상적 모델은,
    (a) 복수의 로직 필드와,
    (b) 상기 복수의 로직 필드 각각에 대하여, 상기 복수의 로직 필드 각각을 상기 데이터의 상기 물리적 개체 중 적어도 하나로 매핑하는 매핑 룰과,
    (c) 각각 물리적 개체의 물리적 필드에 대응하는 적어도 하나의 로직 필드를 포함하는 복수의 모델 개체 정의와,
    (d) 상기 복수의 모델 개체 정의 각각에 대한 모델 개체 수수료 스케쥴을 포함하며,
    상기 수수료 스케쥴은 각각 상기 대응하는 모델 개체 정의의 물리적 필드를 액세스하기 위한 수수료를 지정하고,
    각각의 상기 추상적 동작 사양은 상기 복수의 모델 개체 정의 중에서 적어도 하나의 사용자가 선택한 모델 개체 정의를 포함하는
    로직 프레임워크 제공 방법.
  25. 청구항 25은(는) 설정등록료 납부시 포기되었습니다.
    제 24 항에 있어서,
    상기 추상적 동작 사양은 추상적 질의이고,
    상기 방법은,
    복수의 질의 조건, 결과 필드 및 상기 모델 개체 정의 중 하나의 모델 개체 정의에 대한 선택을 포함하는 상기 추상적 질의를 사용자 인터페이스를 통해 수신하는 단계와,
    상기 선택에 대응하는 상기 모델 개체 정의에 액세스하는 단계와,
    상기 선택에 대응하는 상기 모델 개체 정의가 하나 이상의 필수 결과 필드를 지정하는지 여부를 판정하는 단계와,
    상기 선택에 대응하는 상기 모델 개체 정의가 하나 이상의 필수적 결과 필드를 지정한다면, 상기 하나 이상의 필수 결과 필드를 상기 질의에 추가하는 단계를 더 포함하는
    로직 프레임워크 제공 방법.
  26. 청구항 26은(는) 설정등록료 납부시 포기되었습니다.
    제 24 항에 있어서,
    상기 추상적 모델에 따라서, 상기 런-타임 성분 변환에 의해 단일 추상적 동작 사양을 상기 물리적 데이터에 부합되는 적어도 2 개의 별개의 물리적 동작 사양으로 변환하는 단계를 더 포함하되,
    각각의 상기 물리적 동작 사양은 상기 데이터의 서로 다른 물리적 개체를 수정하고,
    각각의 상기 물리적 동작 사양은 상기 데이터의 상기 물리적 개체들 간의 계층적 관계를 정의하는 물리적 개체 관계 사양에 따라서 실행되도록 순차화되는
    로직 프레임워크 제공 방법.
  27. 청구항 27은(는) 설정등록료 납부시 포기되었습니다.
    제 24 항에 있어서,
    요청 개체(requesting entity)에 의해서, 단일 추상적 동작 사양을 실행하기 위한 요청을 발행하는 단계와,
    상기 런-타임 성분에 의해서, 상기 데이터를 수정하기 위해 상기 단일 추상적 동작 사양을 상기 적어도 2 개의 물리적 동작 사양으로 변환하는 단계를 더 포함하는
    로직 프레임워크 제공 방법.
  28. 청구항 28은(는) 설정등록료 납부시 포기되었습니다.
    제 27 항에 있어서,
    상기 단일 추상적 동작 사양을 상기 적어도 2 개의 물리적 동작 사양으로 변환하는 단계는,
    상기 적어도 2 개의 물리적 동작 사양을 생성하는 단계와,
    상기 추상적 모델의 물리적 개체 관계 사양에 따라서 상기 적어도 2 개의 물리적 동작 사양을 순차화하는 단계를 포함하는
    로직 프레임워크 제공 방법.
  29. 청구항 29은(는) 설정등록료 납부시 포기되었습니다.
    제 24 항에 있어서,
    각각의 상기 매핑 룰은 상기 복수의 로직 필드 중 하나의 로직 필드에 대한 액세스 방법을 포함하고,
    상기 액세스 방법은 상기 데이터의 상기 물리적 개체의 위치를 기술하는
    로직 프레임워크 제공 방법.
  30. 청구항 30은(는) 설정등록료 납부시 포기되었습니다.
    제 24 항에 있어서,
    상기 복수의 로직 필드 각각에 대한 로직 필드 수수료 스케쥴을 더 포함하되,
    상기 수수료 스케쥴은 대응하는 물리적 필드를 물리적 동작 사양의 일부분으로서 액세스하기 위한 수수료를 각각 지정하는
    로직 프레임워크 제공 방법.
  31. 프로세서에 의해 실행되는 경우, 추상적 질의 동작을 정의하는 로직 프레임워크를 제공하는 프로그램을 포함하는 컴퓨터 판독 가능 매체로서,
    상기 프로그램은,
    (i) 복수의 로직 필드와, (ii) 상기 복수의 로직 필드 각각에 대해서, 상기 복수의 로직 필드를 상기 데이터의 물리적 개체로 매핑하는 매핑 룰과, (iii) 상기 복수의 로직 필드 각각에 대한 수수료 스케쥴을 포함하고, 상기 데이터에 질의하는 동작을 논리적으로 기술하는 추상적 질의를 정의하는 추상적 모델과,
    상기 복수의 로직 필드 중에서 선택된 로직 필드를 포함하는 추상적 질의를 상기 물리적 데이터에 부합되는 물리적 질의로 변환하는 변환 인스트럭션으로 구성되는 런-타임 성분과,
    상기 수수료 스케쥴에 기초하여, 물리적 질의를 실행하기 위한 수수료를 계산하도록 구성되는 수수료 계산기를 포함하는
    컴퓨터 판독 가능 매체.
  32. 메모리 및 적어도 하나의 프로세서를 포함하고, 물리적 데이터를 수정하는 추상적 수정 동작을 정의하는 로직 프레임워크를 더 포함하는 컴퓨터로서,
    상기 로직 프레임워크는,
    (i) 복수의 로직 필드와, (ii) 상기 복수의 로직 필드 각각에 대해서, 상기 복수의 로직 필드를 상기 데이터의 물리적 개체로 매핑하는 매핑 룰과, (iii) 상기 복수의 로직 필드 각각에 대한 수수료 스케쥴을 포함하고, 상기 데이터를 수정하는 동작을 논리적으로 기술하는 추상적 수정 사양을 정의하는 추상적 모델과,
    상기 복수의 로직 필드 중에서 선택된 로직 필드를 포함하는 추상적 질의를 상기 물리적 데이터에 부합되는 물리적 질의로 변환하기 위한 런-타임 성분과,
    상기 수수료 스케쥴에 기초하여, 물리적 질의를 실행하기 위한 수수료를 계산하도록 구성되는 수수료 계산기를 포함하는
    컴퓨터.
  33. 삭제
  34. 각각 복수의 물리적 필드를 포함하는 복수의 물리적 개체를 구비한 데이터에 대한 수수료-기반 액세스를 제공하는 방법으로서,
    사용자 인터페이스를 통해서, 상기 복수의 물리적 필드 중에서 데이터 선택 필드(data selected fields)에 액세스하는 동작을 위한 인스트럭션을 포함하는 사용자 입력을 수신하는 단계와,
    상기 선택 필드 각각에 대한 필드-특정 수수료를 결정하는 단계와,
    상기 선택 필드에 액세스하는 데 있어서 사용자에게 부과될 수수료를 계산하는 단계와,
    상기 사용자 인터페이스를 통해 상기 사용자에게 상기 수수료를 디스플레이하는 단계를 포함하는
    수수료-기반 액세스의 제공 방법.
  35. 삭제
  36. 각각 복수의 물리적 필드를 포함하는 복수의 물리적 개체를 구비한 데이터에 대한 수수료-기반 액세스에 있어서 수수료 정보를 디스플레이하는 방법으로서,
    질의를 형성하는 하나 이상의 사용자 인터페이스 스크린을 디스플레이하는 단계와,
    상기 하나 이상의 사용자 인터페이스 스크린을 통해, 상기 복수의 물리적 필드 중 선택된 필드에 액세스하도록 구성된 질의를 정의하는 사용자 입력을 수신하는 단계와,
    상기 하나 이상의 사용자 인터페이스 스크린을 통해, 상기 선택된 필드 각각에 대한 필드-특정 액세스 수수료를 디스플레이하는 단계를 포함하는
    수수료 정보의 디스플레이 방법.
KR1020057022423A 2003-06-23 2004-06-23 수수료-기반 액세스의 제공 방법, 추상적 질의의 형성방법, 물리적 데이터의 수정 방법, 로직 프레임워크 제공방법, 컴퓨터 판독 가능 매체, 컴퓨터 및 수수료 정보의디스플레이 방법 KR100856806B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/601,995 US8775330B2 (en) 2003-06-23 2003-06-23 Establishing a data management fee structure based on fine grained data entities
US10/601,995 2003-06-23

Publications (2)

Publication Number Publication Date
KR20060030028A KR20060030028A (ko) 2006-04-07
KR100856806B1 true KR100856806B1 (ko) 2008-09-05

Family

ID=33518043

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057022423A KR100856806B1 (ko) 2003-06-23 2004-06-23 수수료-기반 액세스의 제공 방법, 추상적 질의의 형성방법, 물리적 데이터의 수정 방법, 로직 프레임워크 제공방법, 컴퓨터 판독 가능 매체, 컴퓨터 및 수수료 정보의디스플레이 방법

Country Status (7)

Country Link
US (3) US8775330B2 (ko)
KR (1) KR100856806B1 (ko)
CN (1) CN101410865A (ko)
AU (1) AU2004250347A1 (ko)
BR (1) BRPI0411805A (ko)
CA (1) CA2527329A1 (ko)
WO (1) WO2004114172A2 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8775330B2 (en) * 2003-06-23 2014-07-08 International Business Machines Corporation Establishing a data management fee structure based on fine grained data entities
US7809763B2 (en) * 2004-10-15 2010-10-05 Oracle International Corporation Method(s) for updating database object metadata
US20060100969A1 (en) * 2004-11-08 2006-05-11 Min Wang Learning-based method for estimating cost and statistics of complex operators in continuous queries
US20090204551A1 (en) * 2004-11-08 2009-08-13 International Business Machines Corporation Learning-Based Method for Estimating Costs and Statistics of Complex Operators in Continuous Queries
US7272582B2 (en) * 2005-02-10 2007-09-18 Data Gater, Llc Fee determination device
US7860760B2 (en) * 2006-07-14 2010-12-28 Stanley Benjamin Smith Method for acquiring and linking a plurality of fields from a plurality of data sources into a data supply chain of linked fields
EP1883020B1 (en) * 2006-07-28 2013-05-22 Dassault Systèmes Method and system for navigating in a database of a computer system
US8595231B2 (en) * 2007-04-26 2013-11-26 International Business Machines Corporation Ruleset generation for multiple entities with multiple data values per attribute
US7792800B1 (en) * 2007-07-02 2010-09-07 Emc Corporation Data repository upgrade process
US8788379B1 (en) * 2007-12-21 2014-07-22 Amazon Technologies, Inc. Providing configurable pricing for execution of software images
US8725967B2 (en) 2008-08-08 2014-05-13 Amazon Technologies, Inc. Providing executing programs with access to stored block data of others
US8856188B2 (en) * 2009-03-13 2014-10-07 Bruce Reiner Electronic linkage of associated data within the electronic medical record
US20110282863A1 (en) * 2010-05-11 2011-11-17 Donald Cohen Use of virtual database technology for internet search and data integration
US20110046976A1 (en) * 2009-08-20 2011-02-24 William Theodore Peruzzi Integrated Communications System
JP5099100B2 (ja) * 2009-10-20 2012-12-12 富士通株式会社 課金額算出プログラム、課金額算出装置、および課金額算出方法
US20110119252A1 (en) * 2009-11-17 2011-05-19 Microsoft Corporation Pricing Access to Data Using Contribution Analysis
US20110264688A1 (en) * 2010-04-26 2011-10-27 International Business Machines Corporation Peer to peer (p2p) data licensing model in a distributed abstract query environment
US8560464B2 (en) * 2011-01-03 2013-10-15 Stanley Benjamin Smith Business method and system to price, manage, and execute server actions initiated by one or a plurality of users through interaction with a graphical user interface linked to a data source or data supply chain
US10185814B2 (en) 2011-09-07 2019-01-22 Elwha Llc Computational systems and methods for verifying personal information during transactions
US10546306B2 (en) 2011-09-07 2020-01-28 Elwha Llc Computational systems and methods for regulating information flow during interactions
US20130060852A1 (en) * 2011-09-07 2013-03-07 Elwha LLC, a limited liability company of the State of Delaware Computational systems and methods for regulating information flow during interactions
US10263936B2 (en) 2011-09-07 2019-04-16 Elwha Llc Computational systems and methods for identifying a communications partner
US10546295B2 (en) 2011-09-07 2020-01-28 Elwha Llc Computational systems and methods for regulating information flow during interactions
US9875467B2 (en) * 2012-10-05 2018-01-23 Oracle International Corporation Business intelligence report provider
EP3105695B1 (en) * 2014-02-13 2022-06-01 Illumina, Inc. Integrated consumer genomic services
CN105740300B (zh) * 2014-12-12 2021-03-16 北京神州泰岳软件股份有限公司 一种构建模型系统的方法及一种模型系统
CN104866650B (zh) * 2015-04-28 2021-07-16 海尔优家智能科技(北京)有限公司 一种创建抽象设备的方法和装置
CA2994831A1 (en) 2015-08-05 2017-02-09 Equifax Inc. Building and managing data-processing attributes for modeled data sources
JP2018530092A (ja) * 2015-09-24 2018-10-11 グリフィス ハック プロプライエタリー リミテッド 知的財産ポートフォリオ管理システム
US11017364B2 (en) * 2016-06-03 2021-05-25 Finicity Corporation Systems and methods for managing financial transaction information
CN109471852B (zh) * 2018-05-29 2023-08-01 深圳平安医疗健康科技服务有限公司 医疗数据库建立方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010105427A (ko) * 2000-05-03 2001-11-29 전병근 컴퓨터 네트워크 접속 정보 관리 방법 및 시스템
KR20020024347A (ko) * 2000-09-25 2002-03-30 박정석 인터넷상에서의 실시간 데이타 판매에 관한 영업모델
JP2002318974A (ja) * 2001-04-23 2002-10-31 Nippon Telegr & Teleph Corp <Ntt> 課金決済業務代行方法および課金代行業者用サーバ
JP2003016270A (ja) * 2001-06-27 2003-01-17 Nec Soft Ltd 手数料を減額させるシステム及び方法
KR20030051956A (ko) * 2001-12-20 2003-06-26 (주) 코리아디지털컨텐츠 인터넷을 통한 콘텐츠 가치 평가 서비스 방법 및 그 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989141A (en) * 1987-06-01 1991-01-29 Corporate Class Software Computer system for financial analyses and reporting
US5926817A (en) * 1995-12-29 1999-07-20 Mci Communications Corporation Graphical user interface-based, client-server system and method for decision making applications
US6725227B1 (en) * 1998-10-02 2004-04-20 Nec Corporation Advanced web bookmark database system
US20020035432A1 (en) * 2000-06-08 2002-03-21 Boguslaw Kubica Method and system for spatially indexing land
US20020062241A1 (en) * 2000-07-19 2002-05-23 Janet Rubio Apparatus and method for coding electronic direct marketing lists to common searchable format
GB2366882A (en) * 2000-09-19 2002-03-20 Ncr Int Inc A data warehouse and brokerage system
US20020069176A1 (en) * 2000-12-06 2002-06-06 Daniel Newman System for obtaining fee-based data and services
US6931378B2 (en) * 2001-12-10 2005-08-16 Halliburton Energy Services, Inc. Method, systems, and program product for selecting and acquiring data to update a geophysical database
US8775330B2 (en) * 2003-06-23 2014-07-08 International Business Machines Corporation Establishing a data management fee structure based on fine grained data entities
US7941427B2 (en) * 2004-04-14 2011-05-10 International Business Machines Corporation Dynamically managing computer resources based on valuations of work items being processed

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010105427A (ko) * 2000-05-03 2001-11-29 전병근 컴퓨터 네트워크 접속 정보 관리 방법 및 시스템
KR20020024347A (ko) * 2000-09-25 2002-03-30 박정석 인터넷상에서의 실시간 데이타 판매에 관한 영업모델
JP2002318974A (ja) * 2001-04-23 2002-10-31 Nippon Telegr & Teleph Corp <Ntt> 課金決済業務代行方法および課金代行業者用サーバ
JP2003016270A (ja) * 2001-06-27 2003-01-17 Nec Soft Ltd 手数料を減額させるシステム及び方法
KR20030051956A (ko) * 2001-12-20 2003-06-26 (주) 코리아디지털컨텐츠 인터넷을 통한 콘텐츠 가치 평가 서비스 방법 및 그 시스템

Also Published As

Publication number Publication date
KR20060030028A (ko) 2006-04-07
CA2527329A1 (en) 2004-12-29
US20130218810A1 (en) 2013-08-22
US20040260658A1 (en) 2004-12-23
BRPI0411805A (pt) 2006-08-08
CN101410865A (zh) 2009-04-15
US8775330B2 (en) 2014-07-08
US20130211982A1 (en) 2013-08-15
AU2004250347A1 (en) 2004-12-29
WO2004114172A2 (en) 2004-12-29

Similar Documents

Publication Publication Date Title
KR100856806B1 (ko) 수수료-기반 액세스의 제공 방법, 추상적 질의의 형성방법, 물리적 데이터의 수정 방법, 로직 프레임워크 제공방법, 컴퓨터 판독 가능 매체, 컴퓨터 및 수수료 정보의디스플레이 방법
US7054877B2 (en) Dealing with composite data through data model entities
US8086647B2 (en) Sequenced modification of multiple entities based on an abstract data representation
US8244702B2 (en) Modification of a data repository based on an abstract data representation
Franklin et al. CrowdDB: answering queries with crowdsourcing
US7689551B2 (en) Iterative data analysis enabled through query result abstraction
Amsterdamer et al. Putting lipstick on pig: Enabling database-style workflow provenance
US8489474B2 (en) Systems and/or methods for managing transformations in enterprise application integration and/or business processing management environments
US7962888B2 (en) Producing unitary class definitions from module specifications
US20060116999A1 (en) Sequential stepwise query condition building
US8214351B2 (en) Selecting rules engines for processing abstract rules based on functionality and cost
RU2340937C2 (ru) Декларативная последовательная параметризация отчетов
WO2005119518A1 (en) Defining a data dependency path through a body of related data
Alonso et al. Towards a polyglot data access layer for a low-code application development platform
Jennings Professional ADO. NET 3.5 with LINQ and the Entity Framework
Ouzzani Efficient delivery of web services
Vu Spreadsheet-based complex data transformation
Rachine Distributed query scheduling in the context of diom: An experiment
Velinska et al. Performance of an XML DBMS as a Model Repository in Model-Driven Software Development

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