KR20150038755A - 데이터 객체의 관리 및 자동 링킹 - Google Patents

데이터 객체의 관리 및 자동 링킹 Download PDF

Info

Publication number
KR20150038755A
KR20150038755A KR1020157007996A KR20157007996A KR20150038755A KR 20150038755 A KR20150038755 A KR 20150038755A KR 1020157007996 A KR1020157007996 A KR 1020157007996A KR 20157007996 A KR20157007996 A KR 20157007996A KR 20150038755 A KR20150038755 A KR 20150038755A
Authority
KR
South Korea
Prior art keywords
data
user
objects
eme
stored
Prior art date
Application number
KR1020157007996A
Other languages
English (en)
Other versions
KR101627594B1 (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 KR20150038755A publication Critical patent/KR20150038755A/ko
Application granted granted Critical
Publication of KR101627594B1 publication Critical patent/KR101627594B1/ko

Links

Images

Classifications

    • G06F17/30607
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/30873
    • G06F17/3089
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터 레포지토리에 기억된 데이터 객체를 관리하고, 데이터 객체와 연관된 요소를 그래픽 사용자 인터페이스에 표시하기 위한 컴퓨터로 구현된 방법을 제공한다. 본 방법은 재사용가능 로직을 사용하여, 데이터 레포지토리에 기억된 제1 데이터 객체와 연관된 하나 이상의 표시된 입력 요소를 제공하는 단계를 포함한다. 표시된 입력 요소와 연관된 사용자 입력에 응답하여, 본 방법은 데이터 레포지토리에 기억되는 제2 데이터 객체를 생성하는 단계와, 표시된 요소와 연관된 데이터 객체에 기초하여, 제2 데이터 객체를, 데이터 레포지토리에 있는 하나 이상의 관련된 데이터 객체와 자동으로 링크시키는 단계를 포함한다.

Description

데이터 객체의 관리 및 자동 링킹{MANAGING AND AUTOMATICALLY LINKING DATA OBJECTS}
본 발명은 스케일러블 객체 지향 데이터베이스 시스템에서 데이터 객체를 관리하고 자동 링킹하는 기술에 관한 것이다.
우선권
본 출원은 2008년 11월 12일자로 출원된 미국 특허 출원 제61/114,032호에 대하여 35 USC§119(e) 규정에 따라 우선권을 주장하며, 그 전체 내용을 본 명세서에 참조에 의해 포함한다.
종래의 데이터 엔트리 시스템(data entry system)은 웹 애플리케이션(Web application)으로 실현되어 왔으며, 사용자는 링크를 클릭하는 것으로 새로운 객체를 생성할 수 있게 되었다. 이러한 링크는 생성될 수 있는 객체의 타입이 나열된 웹 페이지를 사용자에게 제시한다. 사용자는 객체의 타입에 대한 링크를 선택하고, 새롭게 생성한 비어 있는 객체에 대한 에디터(editor)를 갖게 될 것이다. 이후, 사용자는 기존 객체에의 링크를 포함한 새로운 객체에 관한 필요한 정보를 기입한다. 이들 링크를 기존 객체에 대하여 설정하는 것은, 링크 타겟을 찾기 위해 광대한 네비게이션을 필요로 하거나, 기존 객체의 긴 리스트를 통해 찾아야 하는 경우가 많다.
로터스 노트(Lotus Notes) 내에 내장된 주문형 애플리케이션은 적어도 새로운 객체("문서")가 생성되는 고객 인터페이스를 규정한다는 점에서 유사하며, 다른 문서에도 링킹되는 경우가 있다. 디스커션 포럼 인터페이스(discussion forum interface)는 새로운 객체 또는 응답이 이전의 기존 객체인 이전 메시지로부터 생성되고 이러한 기존 객체에 링킹되는 다른 예가 될 수 있다.
하나의 관점(aspect)으로서, 일반적으로, 본 발명은 데이터 레포지토리(data repository)에 기억된 데이터 객체(data object)를 관리하고, 데이터 객체와 연관된 요소를 그래픽 사용자 인터페이스에 표시하기 위한 방법을 특징으로 한다. 본 방법은, 재사용가능 로직(reusable logic)을 사용하여, 데이터 레포지토리에 기억된 제1 데이터 객체와 연관된 하나 이상의 표시된 입력 요소를 제공하는 단계; 표시된 입력 요소와 연관된 사용자 입력에 응답하여, 데이터 레포지토리에 기억되는 제2 데이터 객체를 생성하는 단계; 및 표시된 요소와 연관된 데이터 객체에 기초하여, 제2 데이터 객체를, 데이터 레포지토리에 있는 하나 이상의 관련된 데이터 객체와 자동으로 링크시키는 단계를 포함한다.
관점에는 다음과 같은 하나 이상의 특징이 포함될 수 있다.
표시된 요소와 연관된 데이터 객체에 기초하여, 제2 데이터 객체를, 데이터 레포지토리에 있는 하나 이상의 관련된 데이터 객체와 자동으로 링크시키는 과정은 제2 데이터 객체를 제1 데이터 객체와 링크시키는 과정을 포함한다.
표시된 요소와 연관된 데이터 객체에 기초하여, 제2 데이터 객체를, 데이터 레포지토리에 있는 하나 이상의 관련된 데이터 객체와 자동으로 링크시키는 과정은 제2 데이터 객체를, 제1 데이터 객체와 관련된 하나 이상의 데이터 객체와, 하나 이상의 관계 링크(relational link)를 통해 링크시키는 과정을 포함한다.
본 방법은, 하나 이상의 관계 링크를 통해, 제2 데이터 객체와 관련된, 데이터 레포지토리에 기억된 하나 이상의 데이터 객체와 연관된 하나 이상의 요소를 그래픽 사용자 인터페이스에 표시하는 단계를 더 포함한다.
하나 이상의 데이터 객체와 연관된 하나 이상의 요소는, 어떤 데이터 객체가 제1 데이터 객체와 관련되어 있는지에 관한 정보를 표시하는 요소를 포함한다.
정보는 제2 데이터 객체에 관한 정보를 포함한다.
하나 이상의 데이터 객체와 연관된 하나 이상의 요소는, 사용자로부터 정보를 수신하기 위한 요소를 포함한다.
입력 요소는 사용자가 정보를 제공하기 위해 지정하는 일련의 선택권(a set of choices)을 제공한다.
일련의 선택권은, 하나 이상의 관계 링크를 통해, 제2 데이터 객체에 관련된, 데이터 레포지토리에 기억된 하나 이상의 데이터 객체에 기초한다.
그래픽 사용자 인터페이스는, 하나 이상의 데이터 객체와 연관된 하나 이상의 요소를 포함하는 브라우저 페이지(browser page)를 제공한다.
재사용가능 로직은, 데이터 레포지토리에 기억된 제3 데이터 객체와 연관된 하나 이상의 표시된 입력 요소를 제공하는 데에 재사용된다.
재사용가능 로직은, 제1 데이터 객체와 연관된 상기 표시된 입력 요소와 렌더링해야 할 제1 데이터 객체와 연관된 표시된 입력 요소를 브라우저 페이지(browser pasge)에 제공하기 위해 렌더러(renderer)에 의해 사용된다.
표시된 입력 요소와 연관된 사용자 입력은 표시된 입력 요소와의 사용자 인터랙션(user interaction)을 포함한다.
본 방법은 표시된 입력 요소와 연관된 사용자 입력에 응답하여, 데이터 레포지토리에 기억시키기 위한 제3 데이터 객체를 생성하는 단계를 더 포함한다.
제2 데이터 객체를 생성하기 위해 사용자 입력을 수집하는 데에 일련의 스크린이 사용될 수 있다.
제1 데이터 객체는 전용 에디터(dedicated editor)와 연관될 수 있다.
다른 관점으로서, 일반적으로, 컴퓨터로 판독가능한 매체는 데이터 레포지토리(data repository)에 기억된 데이터 객체(data object)를 관리하고, 데이터 객체와 연관된 요소를 그래픽 사용자 인터페이스에 표시하기 위한 컴퓨터 프로그램을 기억한다. 컴퓨터 프로그램은, 컴퓨터 시스템으로 하여금, 재사용가능 로직(reusable logic)을 사용하여, 데이터 레포지토리에 기억된 제1 데이터 객체와 연관된 하나 이상의 표시된 입력 요소를 제공하도록 하고; 표시된 입력 요소와 연관된 사용자 입력에 응답하여, 데이터 레포지토리에 기억되는 제2 데이터 객체를 생성하도록 하며; 표시된 요소와 연관된 데이터 객체에 기초하여, 제2 데이터 객체를, 데이터 레포지토리에 있는 하나 이상의 관련된 데이터 객체와 자동으로 링크시키도록 하기 위한 명령어(instruction)를 포함한다.
다른 관점으로서, 일반적으로, 데이터 레포지토리에 기억된 데이터 객체를 관리하고 데이터 객체와 연관된 요소를 그래픽 사용자 인터페이스에 표시하기 위한 시스템을 제공한다. 본 시스템은 데이터 객체를 기억하기 위한 데이터 레포지토리를 제공하는 데이터 기억 시스템; 그래픽 사용자 인터페이스를 제공하기 위한 하나 이상의 출력 장치 또는 포트; 및 데이터 기억 시스템과 하나 이상의 출력 장치 또는 포트에 연결된 컴퓨터 시스템을 포함하며, 컴퓨터 시스템은, 재사용가능 로직(reusable logic)을 사용하여, 데이터 레포지토리에 기억된 제1 데이터 객체와 연관된 하나 이상의 표시된 입력 요소를 제공하고; 표시된 입력 요소와 연관된 사용자 입력에 응답하여, 데이터 레포지토리에 기억되는 제2 데이터 객체를 생성하며; 표시된 요소와 연관된 데이터 객체에 기초하여, 제2 데이터 객체를, 데이터 레포지토리에 있는 하나 이상의 관련된 데이터 객체와 자동으로 링크시키기 위한 회로(circuitry)를 포함한다.
다른 관점으로서, 일반적으로, 데이터 레포지토리(data repository)에 기억된 데이터 객체(data object)를 관리하고, 데이터 객체와 연관된 요소를 그래픽 사용자 인터페이스에 표시하기 위한 시스템을 제공한다. 본 시스템은, 재사용가능 로직을 사용하여, 데이터 레포지토리에 기억된 제1 데이터 객체와 연관된 하나 이상의 표시된 입력 요소를 제공하기 위한 수단; 표시된 입력 요소와 연관된 사용자 입력에 응답하여, 데이터 레포지토리에 기억되는 제2 데이터 객체를 생성하기 위한 수단; 및 표시된 요소와 연관된 데이터 객체에 기초하여, 제2 데이터 객체를, 데이터 레포지토리에 있는 하나 이상의 관련된 데이터 객체와 자동으로 링크시키기 위한 수단을 포함한다.
관점에는 다음과 같은 하나 이상의 장점을 가질 수 있다.
데이터 레포지토리 내의 풍부하게 상호접속된 메타데이터를 자동으로 생성 및 링크시키며, 데이터 레포지토리를 이들의 백업용 데이터스토어로서 사용하는 커스텀 워크플로우를 지원할 수 있는 장점이 있다. 또한, 메타데이터 애플리케이션은 데이터 레포지토리 자체로 구성될 수 있다.
본 발명의 다른 특징과 장점에 대해서는, 이하의 상세한 설명과 청구범위로부터 명백해질 것이다.
도 1은 그래프 기반의 계산을 실행하기 위한 시스템의 블록도이다.
도 2는 계산 그래프를 나타낸다.
도 3은 스크린 샷을 나타낸다.
도 4a는 그래프 기반의 계산 환경에서 입력 데이터를 출력 데이터로 변환하는 과정을 나타낸다.
도 4b는 그래프 기반의 계산의 예를 나타낸다.
도 5는 비지니스 룰 환경에서 기억된 데이터 객체를 생성, 표시 및 링킹하는 스크린 샷을 나타낸다.
도 6과 도 7은 일련의 마법사 스크린을 나타낸다.
도 8과 도 9는 객체 에디터와 연관된 일련의 스크린을 나타낸다.
도 10은 데이터 레포지토리에 기억된 데이터 객체를 생성, 표시 및 링킹의 실행 예를 나타내는 플로차트이다.
1. 시스템 개요
도 1은 그래프 기반의 계산(graph-based computation)을 개발, 실행 및 관리하기 위한 컴퓨팅 시스템(computing system)(100)의 일부의 상호관계를 개략적으로 나타내는 블록도이다. 그래프 기반의 계산은, 그래프에서 요소(예를 들어, 데이터 파일, 프로세스 등)를 나타내는 정점(vertex)과 그래프에서 요소들 간의 데이터의 흐름을 나타내는 방향성 링크 또는 "에지"(edge)를 가진 유향 그래프(directed graph)로 표현되는 "데이터 흐름 그래프"(data flow graph)를 사용하여 구현된다. 일례로, 그래픽 개발 환경(GDE: graphic development environment)(102)은 실행가능한 그래프를 특정하고 그래프 요소를 위한 파라미터를 규정하기 위한 사용자 인터페이스(user interface)를 제공한다. GDE(102)는 레포지토리(repository)(104) 및 병렬 실행 환경(parallel operating environment)(106)과 통신을 행한다. 또한, 레포지토리(104) 및 병렬 실행 환경(106)은 사용자 인터페이스 모듈(108) 및 외부 데이터 기억장치(112)에도 연결되어 있다.
레포지토리(104)는 그래프 기반 애플리케이션 및 다른 시스템(예를 들어, 다른 운영 체제) 사이의 메타데이터의 교환과 그래프 기반 애플리케이션의 개발 및 실행을 지원하도록 설계된 스케일러블 객체 지향 데이터베이스 시스템(scalable object-oriented database system)인 것이 바람직하다. 이러한 구성에서는, 레포지토리(104)를 엔터프라이즈 메타 환경(Enterprise Meta Environment: EME)이라고 하며, 문서, 레코드 포맷(예를 들어, 테이블에서의 레코드의 데이터 타입 및 필드), 변환 함수, 그래프, 잡(jobs), 모니터링 정보 등을 포함하며, 하나 이상의 타입의 메타데이터(metadata)를 기억할 수 있다. 특히, EME(104)는 그래프 기반 계산과 연관된 메타데이터를 기억할 수 있다. 이와 관련해서, 각각의 컴퓨터 프로그램은 데이터 플로우 그래프라고도 하는 계산 그래프(computational graph), 또는 간단히 그래프를 사용하여 구현되는 것으로 생각할 수 있다. 그래프는 데이터 흐름을 가능하게 하는 통신이 가능한(예를 들어, 플로우 또는 에지에 의해) 하나 이상의 요소(또는 정점)를 포함한다. 일부의 구성에서, 그래프는 병렬 실행 환경(106)에서 실행될 수 있다.
데이터스토어(datastore)로서 구현된 EME(104)는 그래프의 개발에서의 변경을 추적할 수 있으며, 통계적 및 의존성 해석을 수행하고, 그래프의 개발에 관련된 메타데이터를 관리하며, 그외 다른 유사한 기능을 제공할 수 있다. 일반적으로, 그래프와 관련된 메타데이터를 기억함으로써, 데이터 영향 분석이 가능하게 되어, 사용자에게 데이터가 그래프에서 어떻게 변화하는지와 이들 변화가 하나 이상의 다른 그래프에 미치는 영향을 가시적으로 제공하게 된다. 또한, EME(104)는, 예를 들어 개발 동안의 코드 변화 및 조정을 추적하기 위해 기억될 그래프의 버전을 여러 개 허용할 수 있다. EME(104)는 또한 외부 데이터 기억장치(112)에 기억된 데이터를 포함하여, 컴퓨팅 시스템(100)에 의해 처리되어야 할 실제 데이터를 나타내는 데이터 객체를 기억한다.
병렬 실행 환경(106)은 GDE(102)에서 생성된 데이터 플로우 그래프의 명세(specification)를 허용하며, 그래프에 의해 규정된 자원 및 처리 로직에 대응하는 실행가능한 명령(예를 들어, 컴퓨터 명령어)을 생성한다. 이어서, 병렬 실행 환경(106)은 다수의 프로세서(동일한 종류일 필요는 없음)에서 이들 명령을 실행시킨다.
사용자 인터페이스 모듈(108)은 EME(104)의 콘텐츠에 대한 브라우저 기반의 뷰(browser-based view)를 제공한다. 사용자는, 사용자 인터페이스 모듈(108)을 이용하여, 예를 들어 객체를 브라우즈하고, 새로운 객체를 생성하며, 기존의 객체를 변경한다. 예를 들어, 사용자 인터페이스 모듈(108)은 사용자로 하여금 EME(104)에 기억된 객체 및 객체 관련 정보를 검색 및 뷰(view)할 수 있도록 하는 브라우저 스크린(browser screen)을 생성할 수 있다.
EME(104)에 기억된 메타데이터는 계산 그래프를 구축하기 위한 그래프 요소 및 다른 기능적 객체를 포함하는 그래프 기반의 애플리케이션에 대한 데이터 객체(data objects)를 포함할 수 있다.
"기술적" 메타데이터(예를 들어, 애플리케이션 관련 비지니스 룰, 레코드 포맷, 실행 통계) 및 "기업" 또는 "사업" 메타데이터(예를 들어, 직능, 지위, 책무의 사용자가 규정한 문서) 등의 하나 이상의 타입의 메타데이터가 EME(104)에 기억될 수 있으며, 그외 다른 유사한 타입을 기억할 수도 있다.
EME(104)에 데이터 객체의 형태로 기억된 정보에 의하면, 애플리케이션 및 애플리케이션에 의해 처리되는 데이터와 관련된 다양한 유형의 해석이 가능하다. 예를 들어, 사용자는 소정의 값을 어디서 얻었는지, 출력 값이 어떻게 계산되었는지, 어떤 애플리케이션이 만들어지고 데이터에 의존하는지 등과 같은 데이터 리니지(data lineage)와 관련된 질의에 대한 답변을 얻을 수 있다. 개발자는 수정안의 결론(예를 들어, 이러한 요소가 변경된 경우, 그외에 어떤 영향을 미칠 것인지, 이러한 소스 포맷이 변경된 경우, 어떤 애플리케이션이 영향을 받을 것인지)을 이해할 수 있다. 사용자 또는 개발자는, 어떤 사용자 또는 개발자 그룹이 특정 세트의 데이터를 생성 및 사용하는 것에 대한 책임을 지고 있는지, 또는 특정 애플리케이션에 대한 최신의 갱신이 무엇인지와 같은 기술적 메타데이터 및 비지니스 메타데이터를 모두 포함하는 질의에 대한 답변을 얻을 수 있다.
EME(104)는 기억된 데이터의 상태를 추적할 수도 있다. 예를 들어, 하나 이상의 데이터 객체의 다수의 버전이 추적 및 기억될 수 있어서, 시간의 경과에 따라(예를 들어, 주 단위, 월 단위, 또는 년 단위) 객체의 상태를 조사할 수 있으며, 객체의 현재 상태와 비교가 가능하다. 예를 들어, EME(104)는 직무 추적(job-tracking), 또는 경향 분석(예를 들어, 우리의 데이터가 얼마나 빨리 증가하는가)과 용량 계획(예를 들어, 애플리케이션을 얼마나 오래 실행했는가, 얼마나 많은 데이터를 처리하였는가, 비용은 얼마인가, 애플리케이션이 어떤 리소스를 사용하였는가, 언제 다른 서버를 추가할 필요가 있는가)을 가능하게 하는 실행 정보를 수집할 수 있다.
사용자는 사용자 인터페이스 모듈(108)을 통해 기억된 데이터 객체에 포함된 정보 및 데이터 객체와 관련된 정보를 뷰(및 선택적으로 편집)할 수 있다. 하나의 구현 예로서, 사용자는 데이터 객체의 관련 서브세트에 관한 브라우저 페이지 내에 정보를 제공하는 하나 이상의 "뷰"(Vview)를 규정할 수 있다. "뷰"(View)는 이들 객체들 중의 관계에 기초하여 하나 이상의 데이터 객체를 선택하기 위한 신택스(syntax)를 사용하여 규정된다.
도 2에 나타낸 바와 같이, EME 브라우저 인터페이스(202)는 EME(104) 내의 사용자 인터페이스 모듈(108)에 의해 생성될 수 있다. EME(104) 내의 특정 객체에 관한 상세를 표시하기 위하여, EME 브라우저 인터페이스(202)는 객체(예를 들어, 객체 A) 내에 포함된 정보를 사용하여 브라우저 페이지(206)[예를 들어, 하이퍼텍스트 마크업 언어(HTML: HyperText Markup Language) 형태를 포함]의 적어도 일부를 생성할 수 있다. 예를 들어, 도 3에 나타낸 스크린 샷에서, "example 1"이란 이름의 문서 객체(Document object)에 관한 상세가 표시된다. 도 2를 다시 보면, 객체(예를 들어, 객체 A)로부터 정보를 사용하고, 랜더링할 페이지 또는 페이지의 일부를 회신하는 요소 렌더러(element render)(204)에 대하여 이러한 브라우저 페이지(206)의 생성의 일부로서 호출이 이루어진다. 페이지는 객체 A와 관련된 정보를 표시하는 표시 요소를 포함하여 요소 중에서 여러 브라우저를 포함할 수 있으며, 사용자 인터랙션(user interaction)을 수신하기 위한 입력 요소를 포함할 수 있다. 이러한 특정의 구성에서, 사용자 인터랙션을 가능하게 하는 요소로서 버튼(208)이 제공되어 있지만, 다양한 임의의 사용자 인터랙션을 수신하기 위한 다른 입력 요소도 사용될 수 있다. 예를 들어, 메뉴(예를 들어, 드롭다운 메뉴), 체크박스 및 그외 유사한 유형의 요소가 사용될 수 있다. 일반적으로, 요소 렌더러(204)는 특정 타입의 임의의 객체에서 수행될 수 있는 특정의 활동을 위해 규정되는 루틴 또는 하나 이상의 소프트웨어 프로그램에 의해 구현된 재사용가능 로직(reusable loginc)이다. 이와 같이, 요소 렌더러(204)는 객체에 대하여 어떠한 동작이 수행되는지를 판정하고, 이어서 브라우저 페이지(206)[브라우저 인터페이스(202)에 표시된 것]에 대하여 어떠한 입력 요소[예를 들어, 버튼(208)]가 렌더링되어야 하는지를 판정할 수 있다. 사용자 액션과 대응하는 요소(예를 들어, 버튼) 사이의 관계는 일반적으로 요소 렌더러(204) 내에 특정되는 로직에 의해 제공된다. 요소 렌더러가 다수의 액션 또는 여러 옵션을 지원하도록 구성되었다면, 사용자는 "뷰"(View) 내의 그 포함을 특정할 때에 렌더러에게 파라미터를 전달할 수 있다.
일례로, 요소 렌더러("file_upload.py"라고 함)는 새로운 문서를 EME(104)에 추가하거나 기존의 문서를 교체하는 편집을 행할 수 있다. 도 3에 나타낸 스크린 샷을 보면, "Replace Document"(문서 교체)라는 텍스트의 오른쪽에 있는 요소는 요소 렌더러(204)에 의해 생성된 것이다. 그러나, 요소 렌더러(204)를 "View"의 일부로서 구성하는 경우에 어떠한 액션을 취할 것인지가 특정될 수 있다. 일례로, 함수 호출 요소 렌더러(예를 들어, file_upload.py)는 디폴트로 새로운 문서를 EME(104)에 추가할 수 있다. 함수 호출 요소 렌더러[예를 들어, file_upload.py, "action=replace"(액션=교체]는 현재 문서를 교체할 수 있다. 다른 예에서, 이러한 함수 호출(예를 들어, file_update.py, "action=add&rule_name=my_doc_oid")을 위해 다수의 파라미터가 지정될 수 있다. 특정의 요소가 요소 렌더러[예를 들어, 버튼(208)]에 의해 표시되어야 한다고 판정하기 위하여, 렌더러와 관련된 로직은 제공된(및 "View"의 일부와 관련된) 파라미터를 사용할 수 있다. 요소 렌더러(204) 및 이와 관련된 프로그램은 EME(104) 내에 기억되는 것이 통상적이다. 이 프로그램은 단일의 객체에만 전용으로 사용되는 것이 아니기 때문에, 이러한 프로그램은 EME(104) 내에 존재하는 다수의 객체에 적용될 수 있다.
브라우저에 표시되는 HTML 형태의 가시(visible) 부분[예를 들어, 파일 "브라우즈"(browser) 컨트롤 버튼(302) 및 "전송"(submit) 버튼(304)]에 추가로, 파일의 전송(또는 다른 유사한 동작) 중에 HTML 형태 내의 숨겨진 정보(hidden information)가 사용될 수 있다. 일반적으로, 버튼(208)을 누르면(사용자 인터랙션에 의해), 시나리오 또는 관련 기능[예를 들어, 도 3의 "전송" 버튼(304)]과 관계없이, 스크립트(210)가 호출된다. 스크립트(210)는 다양한 유형의 사용자 요청(예를 들어, HTTP 특정의 서비스)에 응답할 수 있으며, 이에 따라 EME(104)에서의 서버측 처리를 제공할 수 있다. EME(104)에서의 객체에 대한 브라우저 페이지[예를 들어, 브라우저 페이지(206)]를 특정 객체 또는 일련의 객체에 기초해서 끌어낼 수 있다. 예를 들어, EME(104)에 기억된 하나 이상의 객체를 선택하는 사용자에 응답하여 표시되는 브라우저 페이지가, 선택된 객체와 관련된 정보 또는 다양한 특징의 렌더링이 될 수 있다. 스크립트[예를 들어, 스크립트(210)]는 콘텐츠 및/또는 레이아웃이 객체에 의존하는 페이지의 요소 또는 페이지의 커스텀 렌더링(custom rendering)을 생성할 수 있다. 일부의 예로서, 요소 렌더러(204)는 특정 객체에 기초한 브라우저 페이지의 하나 이상의 요소를 렌더링할 수 있으며, 브라우저 페이지의 다른 부분은 다른 객체에 기초한 요소의 하나 이상의 렌더링을 포함할 수 있다. 객체(예를 들어, 객체 A)와 관련된 정보, 사용자가 제공한 정보[예를 들어, 브라우저 페이지(206)를 통해 입력한 것] 및 다른 유형의 정보와 같은 다양한 유형의 입력이 스크립트(210)에 의해 사용될 수 있다. 실행하는 중에, 스크립트(210)는 EME(104) 내에 하나 이상의 다른 객체를 생성할 수 있다. 예를 들어, EME(104) 내에 다른 객체 B(212)를 제작할 수 있다. 물론, 다수의 객체를 제작해도 된다. 하나 이상의 객체를 제작하는 것과 함께, 스크립트(210)는 객체 간에 링크(관계를 의미함)를 구축할 수도 있다. 예를 들어, 링크(214)는 객체 B(212)와 객체 A 사이에 확립될 수 있다. 이러한 링크를 구축하기 위하여, 커맨드를 호출하는 것[예를 들어, EME(104)와 관련된 커맨드 라인 인터페이스를 사용하는 것]과 같은 하나 이상의 기술이 사용될 수 있다. 그 제작과 관련된 객체(예를 들어, 객체 A)에 링크되는 것과 함께, 객체 B(212)는 객체 A에 대한 렌더링된 요소 또는 요소들[예를 들어, 버튼(304)]과 연관된 스크립트(210)에 의해 판정되는 다른 객체에 링크될 수 있다.
이러한 구성에서, EME(104)는 객체 지향 레포지토리(object oriented repository)이며, 객체 및 연관된 관계를 포함한다. 일부 예에서, 새롭게 생성된 객체는 표시되는 브라우저 페이지에 대응하는 객체(또는 다수의 객체)에 링크될 수 있다. 다른 경우에, 객체(예를 들어, 기존 개체)에의 링킹은 HTML 형태에 제공된 정보로부터 정해질 수 있다. 일부의 경우에, 객체 A 및 객체 B는 EME(104)[예를 들어, 링크(214)] 내에서 링킹될 수 있으며, 링킹은 네비게이션을 위한 브라우저 페이지(206) 상의 링크로서 표시될 수 있다. 이러한 기술은 하나 이상의 장점, 예를 들어 EME(104) 내에서 어떤 객체가 링크될 것인지를 자동화 방식으로 정해지는 것으로 간주될 수 있는 등의 장점을 제공한다. EME(104) 내의 각각의 객체는 어느 객체가 EME(104) 내의 다른 객체와 관련된 관계에 관한 정보를 포함하는 "도메인"(domain)에 기억될 수 있다. 여러 링크 중의 하나의 링크[예를 들어, 링크(214)]를 생성하는 경우, 객체가 관련되는(예를 들어, 지시하는) 도메인을 나타내는 도메인에 정보가 추가될 수 있다. 스크립트(210)는 역 관계(예를 들어, 다른 객체가 그것을 지시하는)를 기록하는 것과 같이, 타겟으로 하는 객체의 도메인을 갱신할 수 있다. 링크(214) 등의 링크는 특정의 객체(예를 들어, 객체 A 또는 객체 B)와 관련된 EME(104)에 기억되는 문서 중의 일부 또는 모두에 대해 표시될 수 있다. 일부의 예로서, 스크립트(210)는 새로운 객체의 생성이 허용되는지 여부를 판정하기 위해, 그리고 사용자에게 통보될 수 없는 경우에 사용자의 입력과 관련된 승인을 검사할 수 있다.
일부의 예로서, 사용자는 수행이 이루어진[예를 들어, 스크립트(210)에 의해 수행된 효과 액션(effect action)의 결과를 나타내기 위해 현재 페이지[예를 들어, 페이지(206)]의 갱신된 버전 또는 새로운 브라우저 페이지를 볼 수 있게 된다. 일부의 예로서, 다수의 사용자는 EME(104)에 대한 변경을 거의 동시에 행할 수 있어서, 리프레시에 의해 그 변화를 표시할 수 있다. 다른 예로서, 스크립트(210)의 실행에 기인하여, 새로운 객체(또는 다수의 새로운 객체)가 생성될 수 있으며, 몇 개의 속성(attribute)이 설정(예를 들어, 직접적인 사용자 편집에 의해)될 수 있으며, 새로운 객체(또는 둘 이상의 객체)가 몇몇 기존 객체에 링크될 수 있다. 리프레시(refresh)에 기초하여, 새롭게 생성된 객체의 상세 뷰가 표시될 수 있다. 이러한 뷰는 사용자에게 속성을 편집할 경우 사용자에 의해 제공된 정보를 제시할 수 있다. 예를 들어, 객체의 뷰는 EME(104) 내에서의 다른 객체에의 네비게이트를 위해 객체 간에 링크를 할 수 있으며, 추가의 정보를 수집할 수 있는 장점을 가질 수 있다. 네비게이션(navigation)은 개시 객체(starting object)로부터 이 개시 객체에 링크된 다른 객체에의(예를 들어, 링크의 방향에 따라 "상향" 또는 "하향") "워크"(walk) 액션을 수행하는 것을 포함할 수 있다. 다수의 워크 액션은 하나 이상의 관련 객체를 네비게이트하기 위해 연속하는 링크에 대해 수행될 수 있다. 이러한 워킹의 결과로서, 리프레시 이후에 사용자에게 추가의 정보가 제시될 수 있다.
사용자에게, EME(104)에 기억될 추가의 정보에 대해 촉구되는 현재 페이지(206)의 리프레시된 버전 또는 새로운 브라우저 페이지가 제시될 수 있다. 예를 들어, 사용자에게는, 관련 링크를 통해 네비게이트함으로써 관련된 상이한 객체 또는 상이한 다수의 객체 또는 새롭게 생성된 객체(예를 들어, 객체 B)와 관련된 정보를 제공하도록 촉구될 수 있다. 새롭게 생성된 객체의 자동 링킹(automatic linking)의 장점은 객체의 콘텍스트가 사용자와의 후속하는 인터랙션을 더 정밀하게 하고 향상시키는 데에 도움이 될 수 있다는 점이다. 예를 들어, 사용자는 어느 조직체의 여러 부서 중의 하나와 관련된(예를 들어, 해당 부서에 대한 데이터 객체에 기초하여) 브라우저 페이지에 피고용인을 나타내는 데이터 객체를 생성하기 위해 입력을 제공할 수 있다. 페이지를 리프레시하면, 추가된 피고용인의 관리자를 표현하는 것과 같이, 데이터 객체를 선택하기 위한 선택 메뉴(예를 들어, 드롭다운 메뉴)가 제공될 수 있다. 스크립트(210)가 피고용인 데이터 객체를 부서 데이터 객체에 자동으로 링크하면, 메뉴 내의 선택 리스트는, 데이터 객체가 부서 데이터에 해당 부서의 부원으로서 링크되는 이들 기존의 피고용인에 한정될 수 있다.
요소 렌더러(204)는 EME(104)에 기억되는 파이손(python) 스크립트 또는 콘 쉘(Korn shell) 스크립트와 같은 고급 수준 컴퓨터 프로그래밍 언어 등을 사용하여 구현될 수 있다. 그 실행의 결과는 뷰(View) 설계에 의존하는 브라우저 페이지(206)의 단편(fragment)이며, EME 브라우저 인터페이스(202)에 의해 생성된 콘텍스트의 나머지 부분에 삽입할 수 있다. 요소 렌더러(204)는 "View" 중의 하나의 요소에 대해 HTML을 제작할 수 있다. 일부의 예로서, 뷰 요소는 커맨드 라인 인터페이스(미도시)를 사용하여 순차적으로 구성된다. 요소 렌더러(204)에 의해 회신된 브라우저 페이지 단편은 몇몇 경우에, 단일의 버튼(208)과 같이 간단한 것으로 표시될 수 있지만, 다른 예에서는 페이지 부분이 데이터 엔트리를 위한 다른 형식 요소(form element)를 포함할 수 있다. 도 3에 나타낸 예는 파일 "브라우즈" 입력 요소(302)를 포함한다.
앞서 설명한 바와 같이, 사용자가 파일을 전송하기 위해 클릭을 하면, 전형적으로 스크립트(210)가 호출된다. 스크립트(210)는 파이손(python) 스크립트 또는 다른 유사한 형식으로 구현될 수 있다. 일부의 예로서, 스크립트(210)에 의해 실행되는 액션은 다음의 단계를 통해 수행될 수 있다. 스크립트(210)는 먼저 커맨드 라인 인터페이스를 이용하여 EME(104) 데이터스토어 내에 새로운 객체[예를 들어, 객체 B(212)]를 생성할 수 있다. 도 3에 나타낸 예를 보면, 파일 업로딩과 관련해서, 새로운 객체는 사용자가 이들의 데스크톱 컴퓨터로부터 업로드된 파일이 될 수 있다. 다른 경우로서, 새로운 객체는 초기에는 전체적으로 비어 있을 수 있지만, 다른 메타데이터 또는 속성이 추가될 수 있는 플레이스 홀더(placeholder)로서 생성될 수 있다. 다음으로, 스크립트(210)가 EME(104) 내의 기존의 객체(예를 들어, 객체 A)에 새로운 객체를 링크시킬 수 있다. 마지막으로, 스크립트(210)가 사용자를 위한 원래의 페이지를 리프레시하거나 새로운 페이지를 사용자에게 제시할 수 있다. 사용자에게 새로운 페이지가 제시되면, 해당 페이지는 새롭게 링크되고 생성된 객체에 대한 웹 기반의 에디터이다.
2. 실시예
실시예 1: 사용자 피드백(user feedback)
일례로, EME(104) 내의 임의의 객체에 대한 브라우저 페이지[예를 들어, 브라우저 페이지(206)] 상에 버튼[예를 들어, 버튼(208)]이 표시될 수 있다. 사용자가 버튼을 클릭하면, 스크립트[예를 들어, 스크립트(210)]는 새로운 노트 객체를 생성하기 위한 실행을 행하도록 구성될 수 있다. 이 스크립트는 새로운 노트 객체를 지시하는 원본 객체(예를 들어, 객체 A)에 대한 링크도 생성할 수 있다. 생성되는 새로운 노트 객체는 원본 객체에 관련된 것으로 간주된다. 일부의 예로서, 이 새로운 노트 객체는 원본 객체의 일부로서 기억되지 않을 수 있다. 이와 같이, 이러한 노트 객체를 나중에 찾아서 표시하기 위하여, 원본 객체와 새로운 노트 객체 사이의 링크 또는 관계가 생성될 수 있다. 이에 의해, 해당 객체 또는 일부 더 큰 집단의 객체와 관련된 노트 모두를 표시하는 브라우저 페이지 또는 리포트가 설계될 수 있다. 예를 들어, 이러한 구현은 사용자가 프로젝트 내의 객체에 입력한 피드백을 제공할 수 있다. 또한, 사용자에게 새로운 노트 객체에 대한 텍스트 콘텐츠를 입력하기 위한 에디터가 다시 제시될 수 있다.
실시예 2: 파일 업로드(file upload)
본 실시예에서, 요소 렌더러(204)는 EME 객체에 대한 브라우저 페이지 상의 버튼[예를 들어, 버튼(208)]과 파일 브라우즈 컨트롤(예를 들어, 서버에 업로드하기 위한 컴퓨터 시스템상의 사용자가 선택할 수 있는 파일)을 포함하는 형식을 표시하는 데에 사용된다. 일례로, 요소 렌더러(204)는 고유 식별자와 관련된 브라우저 페이지 요소를 생성하고, 다수의 파일 업로드가 동일한 브라우저 페이지 상에 표시될 수 있도록 한다. 사용자가 EME(104) 내에 있는 프로젝트의 일부에 해당하는 객체에 관련된 파일(예를 들어, 엑셀 스프레드시트)을 선택하기 위해 브라우즈(그리고 버튼을 클릭)한 후에, 새로운 문서 객체로서 EME(104) 내에 파일을 업로드하도록 스크립트(210)가 호출된다. 스크립트(210)와 관련된 동작은 원본 브라우저 페이지에 대응하는 객체로부터 새로운 문서 객체에의 링크를 생성할 수 있다. 이어서, 사용자에게 네비게이션 및 리포팅을 위해 객체가 링크된 문서의 리스트를 나타내는, 원본 객체에 대한 브라우저 페이지가 다시 제시될 수 있다.
실시예 3: 비지니스 룰 환경(BRE: business rule environment)에서의 룰세트(rulesets)의 수평 버전(horizontal versioning)
일 실시예에서, 비지니스 룰(예를 들어, 메타데이터의 서브세트의 형식으로)은 EME(104) 내에 기억될 수 있다. 다양한 유형과 특징의 비지니스 룰이 구현될 수 있는데, 예를 들면 2007년 4월 10일자로 출원된 "Editing and Compiling Business Rules"이란 명칭의 미국 출원 11/733,434에 개시된 룰이 있으며, 상기 문헌의 내용을 본 명세서에 참조에 의해 포함하는 것으로 한다. 각각의 비지니스 룰은 개별의 EME 객체에 기억될 수 있다. 비지니스 룰은 하나의 포맷으로부터 다른 포맷으로 데이터를 변환하거나, 데이터에 관련된 판정을 행하거나, 입력 데이터의 세트에 기초해서 새로운 데이터를 생성하기 위한 기준 세트로서 표현될 수 있다. 예를 들어, 도 4a에 나타낸 바와 같이, 항공 예약 시스템에서의 레코드(402)는 승객의 이름(404), 승객이 올해 비행한 마일 수(406), 승객 티켓의 클래스(408), 및 승객이 착석하는 열(410)을 나타내는 필드에 대한 값을 포함한다. 비지니스 룰은 이러한 승객이 특정의 보딩 그룹(예를 들어, 보딩 그룹 1)에 지정되어야 한다는 것을 나타낼 수 있다. 비지니스 룰은 예를 들어 "제1 클래스의 승객은 그룹 1이다"라는 것을 사용자에게 이해될 수 있도록 되며, 이러한 정보는 컴퓨팅 장치(예를 들어, 컴퓨터 시스템)에 의해 인식되고 처리되어야 하는 하나 이상의 형식으로 변환될 필요가 있을 수 있다.
특정의 구성으로서, 비지니스 룰을 그래프 기반의 계산 환경에서 구현하기 위하여, 하나 이상의 데이터 소스[예를 들어, 입력 데이터세트(400)]로부터 레코드(402) 등의 입력 레코드를 수신하는 변환식(transform)(412)이 생성될 수 있다. 이 변환식은 승객의 이름(404)과 해당 승객이 어떤 그룹[예를 들어, 그룹(418)]에 지정되었는지를 나타낼 수 있는 정보를 레코드(414) 등의 출력 레코드에 삽입할 수 있다. 레코드(414)는 출력 데이터세트(420)에 대응하도록 삽입될 수 있다. 일례로, 데이터세트[예를 들어, 데이터세트(420)]는 레코드를 나타내는 것으로 예시되어 있지만, 일반적으로 데이터세트는 임의의 개수의 그리고 임의의 유형의 레코드를 포함할 수 있다. 일부의 예로서, 입력 및 출력 데이터세트를, 데이터(데이터세트로부터 제공됨)가 그래프로 또는 그래프로부터 흐르는 것으로부터 데이터 스트림(data stream)이라고도 한다.
변환식은 데이터 처리 성분을 가진 그래프 기반의 계산에 포함될 수 있으며, 데이터 흐름을 나타내는 요소를 링크시킴으로써 연결될 수 있다. 예를 들어, 도 4b에 나타낸 계산 그래프(430)는 하나 이상의 계산을 위한 입력을 제공하는 2개의 데이터세트(432, 434)(예를 들어, 상용 고객 데이터 및 항공 예약 데이터)를 포함한다. 포맷 성분(436, 438)은, 예를 들어, 출력 데이터 세트(442)(추가의 처리 동작에 의해 사용될 수 있음)를 작성하기 위해 유사한 또는 상이한 유형의 조정을 사용하여 입력 데이터를 포맷할 수 있다. 변환식은 그 자체로, 예를 들어 그래프(430)에 있는 것과 같은 그래프 기반의 계산식이 될 수 있거나, 그래프(430)를 구성하는 개별 성분(436, 438, 440)과 같은 그래프의 구성 성분 내에 구현될 수 있다.
일부 구성 예로서, 변환식의 생성을 단순화하기 위해(예를 들어, 비전문가를 위한) 하나 이상의 기술이 사용될 수 있다. 예를 들어, 사용자가 실행시킬 하나 이상의 변환식을 컴퓨터 시스템에 제공하는 익숙한 포맷으로 비지니스 룰의 세트[룰 세트(ruleset)라고 함]를 입력할 수 있도록 툴(tool)이 제공될 수 있다. 예를 들어, 룰 세트는 단일 변환식을 작성하는 룰의 세트인 것으로 간주될 수 있다. 룰은 입력에 의존하는 룰의 출력에 대한 여러 상이한 값을 계산하는 하나 이상의 룰 케이스로 이루어질 수 있다. 룰은 추가의 출력 또는 대체의 출력을 위한 값을 작성할 수 있는 다수의 룰을 포함할 수 있다. 룰 세트는 "내포된" 룰 세트(included ruleset)라고도 하는 다른 룰 세트도 포함할 수 있다.
EME(104)의 프로젝트에 대하여, 브라우저 페이지는 프로젝트 내에 포함된 룰 세트 중의 일부 또는 전부를 리스트화할 수 있다. 이러한 경우의 브라우저 페이지는 특정의 객체, 예를 들어 특정의 프로젝트에 관련된 상세를 표시할 수 있다. EME(104) 내의 프로젝트는 일반적으로 여러 종류의 기술적 메타데이터를 포함한다. 본 예에서, 브라우저 페이지는 프로젝트 내에 포함되는 모든 룰 세트를 리스트화할 수 있다. 리스트 내의 각각의 룰 세트에 대하여, 동일한 요소 렌더러(204)를 사용해서, 다수의 버튼 또는 다른 유형의 요소가 표시될 수 있다.
도 5를 보면, 예로 든 리스트에 일련의 열(row)이 포함되어 있으며, 리스트 내의 각각의 열은 4개의 버튼[예를 들어, 버튼(502, 504, 506, 508)]을 포함한다. 표시된 각각의 버튼은 요소 렌더러[예를 들어, 요소 렌더러(204)]를 상이한 옵션으로 호출함으로써 제공된다. 더 구체적으로 말하면, 버튼(502, 504, 506, 508)은 "Promote Ruleset", "Demote Ruleset", "New Minor Version", 및 "New Major Version"의 룰 세트에 기초하여 수행될 수 있는 상이한 액션을 각각 나타낸다. 룰 세트를 광범위하게 진급시키는 것은, 개발 단계부터 검사 단계까지, 최종적으로는 제작 단계(예를 들어, 룰 세트가 데이터 처리를 위해 사용자에 의해 실행될 수 있는)까지 특정의 룰 세트를 이행(transition)하는 것과 관련될 수 있다. 이들 4가지 액션은 개발 라이프사이클 동안 룰을 진급 또는 강등시키기 위해, 그리고 상이한 버전의 룰(예를 들어, 새로운 메이저 버전, 마이너 버전 등)을 생성할 수 있도록 하는 데에 사용될 수 있다. 이러한 능력에 의해, 룰 세트가 시간의 경과에 따라 진화하는 동안, 이전 버전의 룰 세트(상대적으로 오래된 것일 수 있음)를 액세스(및 사용)할 수 있게 된다. 예를 들어, 기존의 룰 또는 룰 세트를 변경하는 것이 아니라, 룰 또는 룰 세트의 새로운 복제본을 생성하고, 조정하며, 새로운 버전 번호를 부여할 수 있다.
일부 구성 예로서, 요소 렌더러[예를 들어, 요소 렌더러(204)]는 특정의 버튼이 룰 세트와 관련된 하나 이상의 승인(permission)에 기초하여 표시되어야 하는지 여부를 판정하도록 구성될 수 있다. 예를 들어, 승인은 현재의 개발 라이프사이클 및 룰 세트의 수정과 관련될 수 있다. 개발 라이프사이클을 예로 들면, 해당 라이프사이클에서의 여러 단계는 개발("Dev"), 검사("Test"), 및 제작("Prod")이 될 수 있다. 요소 렌더러[예를 들어, 요소 렌더러(204)]의 로직은 상기 3가지 단계를 통해 순차적으로 단계화(특정의 순서로)될 수 있다. "Prod" 단계에 도달하면, 룰 세트는 더 이상 진급하지 않도록 해도 된다. 마찬가지로, "Dev" 단계에서는, 사용자는 룰을 더 이상 강등시키지 않도록 해도 된다. 요소 렌더러(204)는 사용자가 버튼을 클릭하면 표시될 수 있는 확인(confirmation) 텍스트를 미리 계산할 수 있다. 즉, 사용자가 여러 버튼 중에서 하나의 버튼을 클릭하면, 텍스트를 포함하는 팝업 그래픽이 표시되고 액션을 확인할 수 있다. 예를 들어, 제1 열에 있는 버튼(502)을 클릭하면, "Ruleset-1-Dev를 Test로 진급시키고자 하는가?"라는 것을 나타내는 텍스트를 가진 대화 박스가 팝업될 수 있다. 이러한 표시를 제공함으로써, 사용자는 액션을 확인하여, 우연의 변화(잘못 클릭한 경우)가 생길 가능성을 감소시킬 수 있다.
또한, 사용자가 여러 버튼 중의 하나의 버튼을 클릭하면, 스크립트(210)가 호출되고, 대응하는 룰 세트의 복제본을 만든다. 이미 콘텐츠가 추가된 룰 세트가 복제되며, 후속되는 변화를 위한 개시 지점으로서 사용될 수 있다. 대안으로서, 복제본은 백업용으로서 사용될 수 있으며, 원본에 대하여 변경이 이루어질 수도 있다. 룰 세트의 새로운 복제본에 대한 이름은 룰의 원본 이름 및 액션에 기초해서 정해질 수 있다. 상이한 이름을 사용해도 되기 때문에, 사용자는 나중에 이들을 구분할 수 있다. 예를 들어, 룰 이름을 처음에 "Dev"로 끝나도록 하고, 그것이 진급된 경우, 새로운 룰 이름은 "Test"로 끝나도록 할 수도 있다. 앞서 설명한 바와 같이, 여러 단계에서의 규칙에 대하여 상이한 액션이 수행될 수 있다. "Dev" 단계에 있는 경우, 개발자에 의해 수정되는 것으로 간주될 수 있다. "Test" 단계에 있으면, 룰 또는 룰 세트가 일반적으로 적절한 행동인 것인지 체크되고 통상 변화되지 않은 채로 유지된다. "Prod" 단계에서는, 룰 세트가, 예를 들어 의도하지 않은 목적으로 사용되며, 통상 변화되지 않는다. 룰 세트가 "Dev"에서 "Test"로 진급되면 개발자가 새로운 변화를 시작할 수 있으므로, 여러 단계와 버전이 필요할 수 있다. 새로운 이름에 기초하여, 스트립트(210)는 룰 세트에 기억되는 몇 가지 정보를 갱신할 필요가 있을 수 있다. 일례로, 룰 세트는 코드 파일(code file)에 관한 정보[예를 들어, 도 4의 그래프에 대한 변환식(412)]를 포함한다. 일례로, 이러한 코드 파일은 룰 세트에 따라 이름이 정해진다. 이와 같이, 새로운 이름을 가진 룰 세트가 생성되면, 생성된 파일에 대한 이름도 갱신된다. 이어서, 사용자에게, 새로운 룰을 포함하도록 갱신된, 프로젝트 내의 룰 세트의 리스트가 제시된다(그리고 진급된 액션의 결과를 볼 수 있도록 해준다). 예를 들어, 이들 임의의 액션이 룰 세트에 대해 수행되면, 사용자는 새로운 또는 수정된 룰에 대한 브라우저 페이지를 얻게 된다.
실시예 4: 객체 생성(object creation)을 위한 마법사(wizard)
도 6을 참조하면, 하나 이상의 객체를, 예를 들어 사용자 인터랙션에 기초하여, 제작하기 위한 추가의 동작이 구현될 수 있다. 일례로, 사용자로부터 일련의 단계를 거쳐, 하나 이상의 객체를 제작하기 위한 정보가 수집될 수 있다. 예를 들어, 사용자 인터랙션(예를 들어, 사용자가 버튼의 그래픽 표시 부분을 클릭하는 등)은 일련의 단계를 통해 사용자를 안내하는 마법사(예를 들어, 일련의 다이얼로그) 또는 다른 유형의 사용자 인터페이스(UI) 스크린 시퀀스의 실행을 개시할 수 있다. 이러한 시퀀스를 통해 단계를 밟는 동안, 예를 들어 하나 이상의 객체를 제작하기 위해 사용되는 정보가 사용자로부터 수집된다. 수집된 정보는, 다른 동작에 대해서도 사용될 수 있으며, 예를 들어 하나 이상의 객체와 관련된 특성을 표현하고, 하나의 객체 또는 둘 이상의 객체를 수정하는 데에 사용될 수 있다.
도면에 나타낸 바와 같이, 예시를 위해 나타낸 스크린(600)의 일부는 데이터세트(예를 들어, 테이블) 내의 필드(예를 들어, 칼럼)를 포함한다. 본 예에서, 데이터 마스킹 룰(data masking rule)[예를 들어, 불명료화(obfuscation), 익명화(de-identification) 등]이 정해지고, 필드와 관련된 데이터에 대해 동작할 수 있게 된다. 프로세스를 개시하기 위하여, 사용자가(마우스와 같은 포인팅 장치와의 인터랙션을 통해) 버튼(602)["Add Masking Rule"(마스킹 룰의 추가)라고 표시된 부분]의 그래픽 표현을 선택한다. 선택이 이루어지면, 일련의 스크린을 포함하는 마법사가 실행된다. 예를 들어, 먼저 사용자가 제공하는 정보를 수집하기 위해 제1 마법사 스크린(604)의 일부가 제시될 수 있다. 본 예에서, 마법사 스크린(604)은 2개의 라디오 버튼(radio button)을 제시하여, 사용자에게 제작할 마스킹 룰의 타입을 선택하도록 촉구한다. 선택이 이루어지면, 사용자는 다음 마법사 스크린으로의 이행을 위해 버튼(606)["Next"(다음)이라는 이름이 붙은 부분]을 선택할 수 있다. 마법사를 중단하기 위해서는, 사용자는 다른 버튼(608)["Cancel"(취소)라는 이름이 붙은 부분]을 선택할 수 있다. 이어서, 이러한 시나리오에서, 다른 마법사 스크린[스크린(610)의 일부]이 제시된다. 이 스크린(610)에서, 사용자가 새로운 룰을 생성할 것인지 아니면 기존의 룰에 추가할 것인지를 선택하도록 2개의 라디오 버튼이 제시된다. 사용자에 의한 선택에 따라, 마법사는 특정의 경로(예를 들어, 일련의 스크린)를 따를 것인지를 정할 수 있다. 이와 같이, 마법사는 사용자가 정하는 다양한 시나리오를 위한 다수의 분기 경로(예를 들어, 트리 구조)를 포함할 수 있다. 스크린(604)과 유사하게, 사용자는 버튼(612)["Next"라는 이름이 붙은 부분]을 선택해서 마법사에 의해 앞으로 진행하거나, 버튼(614)["Back"이라는 이름이 붙은 부분]을 선택함으로써 하나의 스크린 뒤로 이동하거나, 버튼(616)["Cancel"이라는 이름이 붙은 부분]을 선택해서 마법사를 중지할 수 있다. 선택이 이루어지면, 마법사는 적절한 액션을 실행한다.
도 7을 참조하면, 마법사에 의해 제공되는 스크린(700)의 다른 부분에 의해, 사용자로 하여금 마스킹 룰(masking rule)을 정의하도록 객체의 리스트로부터 선택을 행할 것을 촉구한다. 본 예에서, 사용자의 선택에 대하여, 메뉴(예를 들어, 드롭다운 메뉴)에 함수 리스트가 제공된다. 선택된 각각의 함수는 기억[예를 들어, 레포지토리(104)에]될 수 있는 하나 이상의 객체와 관련될 수 있다. 본 예에서, 하나 이상의 마스킹 함수(예를 들어, Hash Census 1)는 기억된 객체와 연관된다. 마스크 선택을 위해 메뉴를 사용하는 것과 함께, 사용자는 마법사를 통해 이동되는 방향을 제어하기 위하여 버튼[버튼(612, 614, 161)과 유사함]을 사용할 수 있다. 본 예에서, 사용자 선택의 개요를 제공하는 스크린(704)으로 진행하기 위해 버튼(702)("Next")이 선택된다. 본 예에서, "preferred"라는 이름의 필드[스크린(600)에 나타낸 것 등]는 함수 "Hash Census 1"과 연관된다. 이 정보를 검토해서 버튼(706)["Finish"라는 이름이 붙은 부분]을 선택한 경우, 새로운 객체(또는 다수의 객체)가 제작되고, 해당 객체(또는 다수의 객체)에 네비게이트하기 위해, 하나 이상의 그래픽 표현이 생성될 수 있다. 예를 들어, 도 6의 스크린(600)을 다시 보면, 새롭게 제작된 객체에 대한 링크는 그래픽 버튼(602)을 대체할 수 있으며, 선택이 이루어진 경우, 링크는 사용자에게 새로운 객체를 제시할 수 있다. 일례로, 스크린(708)이 사용자에게 제시되어, 제작된 객체와 연관된 정보 및 파라미터를 볼 수 있도록 한다. 이러한 예로 든 마법사는 객체(또는 다수의 객체)의 제작을 증명하고 있지만, 유사한 마법사에 의해 다른 동작이 제공되는 것도 가능하다. 예를 들어, 객체 조정(예를 들어, 함수 할당 등), 객체 삭제 및 다른 유사한 동작이 실행될 수 있다.
실시예 5: 편집 렌더러(edit renderer)
도 8을 참조하면, 하나 이상의 객체를 생성하는 경우, 데이터의 교환과 연관된 동작과 같은 다른 동작이 실행될 수 있다. 일례로, 렌더링된 요소의 기능이 편집 기능을 포함하도록 확장될 수 있다. 예를 들어, 다른 프로그램(예를 들어, 전용 에디터)과 연관될 수 있는 객체를 제작하기 위해 스크립트, 프로그램, 또는 다른 유형의 명령 수집이 실행될 수 있다. 객체와 연관된 에디터를 도입함으로써, 편집 기능이 확장될 수 있다(예를 들어, 제한 있는 메타데이터의 편집, 외부 편집 제어의 런칭 등). 편집 기능의 향상과 함께, 객체와 연관된 에디터는 편집 유연성(editing flexibility)을 증가시킬 수 있다.
도면에 나타낸 바와 같이, 스크린(800)은 편집 스크린의 일부를 포함한다. 스크린에 포함된 필드(802)["Key"(키)라고 표시된 부분]는 편집 렌더러에 해당하는 제어를 가진다. 본 예에서, 값(예를 들어, 수치 값, 텍스트, 함수 등)은 직접 입력이나 편집이 가능하지 않다. 대신에, Key 필드의 객체와 연관된 에디터를 시작하도록 사용자에 의해 그래픽 버튼(804)이 선택될 수 있다. 이러한 구성에서, 스크린(806)은 Key 필드와 연관되고 사용자가 선택한 정보가 해당 필드와 연관될 수 있도록 하는 에디터(808)를 제시한다. 이러한 특정의 구성에서, 에디터(808)는 Flex(캘리포니아 산호세에 있는 Adobe Systems 제품)와 같은 다중 플랫폼을 위한 풍부한 인터넷 애플리케이션(예를 들어, 사용자 인터페이스)을 제작하는 소프트웨어 개발 제품으로 구현된다. 이러한 예에서, 에디터(808)는 키(Key) 필드(802)에 대한 데이터를 식별하기 위한 선택 툴(812)과 선택가능한 레코드(810)의 세트를 사용자에게 제공한다. 선택이 이루어지면, 그래픽 버튼(814)이 선택되어 이전 스크린(800)으로 되돌릴 수 있다.
도 9를 참조하면, 스크린(900)은 에디터(808)[스크린(806)에 나타낸 것]로부터의 정보가 할당된 키(Key) 필드를 가진 스크린(800)의 갱신된 버전을 나타낸다. 특히, 갱신된 키(Key) 필드(902)는 에디터(808)로부터 선택된 2개의 필드를 포함한다. 이와 같이, 두 세트의 데이터가 스크린(900)과 연관되지만, 다른 예에서는 추가의 데이터 세트가 제시될 수 있다. 데이터 세트 중의 하나, 예를 들어 스크린(900)에서 렌더링된 다이알로그(906)에 입력되고 풀 다운 메뉴(904)로 선택된 데이터가, 스크린(900)과 연관된 객체로부터 제공될 수 있다. 데이터의 제2 세트는 스크린(806)에 포함된[그리고 키(Key) 필드(802)와 연관된] 에디터(808)에 의해 제공된다. 이 데이터는, 하나 이상의 기술을 사용해서, 예를 들어 다른 스크린으로 전달될 수 있다. 예를 들어, 데이터 세트는 유사한 형태로 제공될 수 있다. 하나의 구성 예로서, 데이터는 미리 정해진 형식 또는 포맷으로 번들화되어, 질의 문자열(query string)(예를 들어, HTTP 질의 문자열)로 전송될 수 있다. 예를 들어, 사용자는 데이터를 질의 문자열로 번들화하는 것을 개시하는 그래픽 버튼(908)["Save Changes"라는 이름이 붙은 부분]을 선택할 수 있다. 데이터가 질의 문자열로 번들화되면, 이 문자열이 하나 이상의 스크린, 객체, 또는 추가의 처리 및 표시를 위한 위치에 제공될 수 있다. 다양한 유형의 에디터, 예를 들어 시간 및 날짜와 관련된 에디터, 그래픽 에디터(예를 들어, 3차원의 객체의 여러 양상을 보기 위한 것) 및 그외 다른 유형의 에디터가 사용될 수 있다.
3. 구현 방법
도 10을 참조하면, 플로차트(1000)는 데이터 레포지토리[즉, EME(104)]에 기억된 데이터를 객체를 관리하고 데이터 객체와 연관된 요소를 그래픽 사용자 인터페이스[즉, 사용자 인터페이스 모듈(108)] 상에 표시하기 위한, 요소 렌더러[예를 들어, 요소 렌더러(204)]와 스트립트[예를 들어, 스크립트(210)]에 의해 구현되는 동작의 예를 나타낸다.
앞서 설명한 바와 같이, EME(104) 내에서 풍부하게 상호접속된 메타데이터 객체는 관계 링크(relational link)에 의해 참조될 수 있다. 다수의 데이터 객체 중에서의 로직 관계를 강화하고 관리하는 것에 추가로, EME(104)는 특정의 데이터 객체의 상세를 표시하기 위해 웹 브라우저 기반의 그래픽 사용자 인터페이스[예를 들어, 인터페이스(202)]를 사용할 수 있다. 특히, 객체 내의 정보는 하나 이상의 데이터 객체에 대한 대응하는 동작을 호출할 수 있는 형식(예를 들어, 웹 형식)을 생성(1002)하는 데에 자동으로 사용된다. 이것은 통상적으로 요소 렌더러에 의해 구현되는데, EME(104) 내에 상주하는 거의 모든 데이터 객체에 대해 적용할 수 있다. 데이터 객체에 관한 다양한 사용자 인터페이스 인터랙션에 의해 표현되는 사용자 입력을 수신하면(604), 스크립트(210)는 웹 형식의 사용자 입력 데이터를 변환하여, 데이터 레포지토리 내에 새로운 데이터 객체를 생성(1006)할 수 있다. 입력 데이터를 단순히 복제하거나 중간 계산 과정 중에 최득한 임시 변수를 표현하는 것 대신에, 이 새로운 데이터 객체는 EME(104) 내에 유지될 수 있는 콘텐츠를 포함한다. 이어서, 새로운 데이터 객체를 EMEM(104) 내의 하나 이상의 관련된 데이터와 링킹(1008)하는 것은 사용자 동작이 호출되는 위치에 기초하여 자동으로 구현될 수 있다. 상기 언급한 객체 생성 및 링킹의 결과로서, 브라우저 인터페이스(202)는 그래픽 사용자 인터페이스에 표시하기 위한 콘텐츠를 관리하고, 사용자로 하여금 인터페이스를 통해 EME(104) 내에서의 변화를 볼 수 있도록 한다.
상기 설명한 객체 생성 및 링킹 방법은 컴퓨터상에서의 실행을 위한 소프트웨어를 사용해서 구현할 수 있다. 예를 들어, 소프트웨어는 하나 이상의 프로세서, 하나 이상의 데이터 기억 시스템(휘발성, 비휘발성 메모리 및/또는 기억 요소를 포함), 하나 이상의 입력 장치 또는 포트, 및 하나 이상의 출력 장치 또는 포트를 각각 포함하는 하나 이상의 프로그램된 또는 프로그램가능한 컴퓨터 시스템(분산형, 클라이언트/서버형, 또는 그리드형과 같은 다양한 구조로 될 수 있음)에서 실행되는 하나 이상의 컴퓨터 프로그램에서의 과정을 구성한다. 소프트웨어는 컴퓨터 그래픽의 설계 및 구성에 관련된 다른 서비스를 제공하는, 더 큰 프로그램의 하나 이상의 모듈을 구성할 수도 있다. 그래프의 노드 및 요소는 데이터 레포지토리에 기억된 데이터 모델에 따르는 컴퓨터로 판독가능한 매체에 기억된 데이터 구조 또는 다른 구성의 데이터로서 구현될 수 있다.
소프트웨어는 범용 또는 전용의 프로그램가능한 컴퓨터에 의해 판독가능한 CD-ROM 등의 매체에 제공될 수 있거나, 이러한 소프트웨어가 실행되는 컴퓨터에 네트워크를 통해 전달(전파되는 신호로 부호화됨)될 수 있다. 모든 기능은 전용의 컴퓨터, 또는 코프로세서와 같은 전용의 하드웨어에서 실행될 수 있다. 소프트웨어는 소프트웨어에 의해 특정된 계산의 여러 부분이 여러 컴퓨터에서 수행되는 분산 방식으로 구현될 수 있다. 이러한 컴퓨터 프로그램은 범용 또는 전용의 프로그램가능한 컴퓨터에 의해 판독가능한 기억 매체 또는 장치(예를 들어, 고체 메모리 또는 매체, 자기 매체, 또는 광 매체)에 기억되거나 다운로드되는 것이 바람직하며, 이러한 프로그램은 기억 매체 또는 장치가 본 명세서에서 설명한 과정을 수행하기 위해 컴퓨터 시스템에 의해 판독될 때에 컴퓨터를 구성하거나 동작시킨다. 본 발명의 시스템은 컴퓨터 프로그램으로 구성된, 컴퓨터로 판독가능한 기억 매체로서 구현되는 것으로 간주될 수 있으며, 기억 매체에 의해 컴퓨터 시스템이 본 명세서에서 설명한 기능을 수행하도록 특정의 그리고 미리 정해진 방식으로 동작하도록 한다.
본 발명의 여러 실시예에 대하여 설명하였다. 그렇지만, 본 발명은 설명의 범위를 벗어남이 없이 다양한 변경이 가능하다는 것을 이해할 수 있을 것이다. 예를 들어, 상기 설명한 단계는 설명된 순서에만 고정되는 것이 아닐 수 있으며, 설명된 것과 다른 순서로 실행될 수 있다. 이상의 설명은 본 발명의 범위를 예시할 뿐 제한하기 위한 것이 아니며, 청구범위에 의해 정해진다. 이하의 청구범위 내에서 다른 실시예가 가능하다.

Claims (1)

  1. 발명의 상세한 설명에 기재된, 또는 도면에 도시된 바와 같은 장치.
KR1020157007996A 2008-11-12 2009-11-12 데이터 객체의 관리 및 자동 링킹 KR101627594B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11403208P 2008-11-12 2008-11-12
US61/114,032 2008-11-12
PCT/US2009/064211 WO2010056867A1 (en) 2008-11-12 2009-11-12 Managing and automatically linking data objects

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020117012690A Division KR101688554B1 (ko) 2008-11-12 2009-11-12 데이터 객체의 관리 및 자동 링킹

Publications (2)

Publication Number Publication Date
KR20150038755A true KR20150038755A (ko) 2015-04-08
KR101627594B1 KR101627594B1 (ko) 2016-06-07

Family

ID=42166163

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157007996A KR101627594B1 (ko) 2008-11-12 2009-11-12 데이터 객체의 관리 및 자동 링킹
KR1020117012690A KR101688554B1 (ko) 2008-11-12 2009-11-12 데이터 객체의 관리 및 자동 링킹

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020117012690A KR101688554B1 (ko) 2008-11-12 2009-11-12 데이터 객체의 관리 및 자동 링킹

Country Status (8)

Country Link
US (3) US9317624B2 (ko)
EP (1) EP2356581A4 (ko)
JP (1) JP5651121B2 (ko)
KR (2) KR101627594B1 (ko)
CN (1) CN102272752B (ko)
AU (3) AU2009314067B2 (ko)
CA (2) CA3042068C (ko)
WO (1) WO2010056867A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102272752B (zh) 2008-11-12 2015-07-08 起元技术有限责任公司 管理和自动链接数据对象
AU2009322602B2 (en) 2008-12-02 2015-06-25 Ab Initio Technology Llc Mapping instances of a dataset within a data management system
KR101631978B1 (ko) * 2009-09-16 2016-06-20 아브 이니티오 테크놀로지 엘엘시 데이터세트 요소의 매핑
US8195719B2 (en) * 2010-06-11 2012-06-05 Kenneth Ellis Nichol Lampinen Graphical objects bonding society system and method of operation
WO2012061109A1 (en) * 2010-10-25 2012-05-10 Ab Initio Technology Llc Managing data set objects in a dataflow graph that represents a computer program
CN102567430B (zh) * 2010-12-31 2014-10-01 中国移动通信集团湖北有限公司 元数据关系的图形化显示方法及装置
WO2012097278A1 (en) 2011-01-14 2012-07-19 Ab Initio Technology Llc Managing changes to collections of data
US20130091444A1 (en) * 2011-10-11 2013-04-11 Microsoft Corporation Automatic rendering of interactive user interface elements
US8723870B1 (en) * 2012-01-30 2014-05-13 Google Inc. Selection of object types with data transferability
US10489360B2 (en) 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
US20150026465A1 (en) * 2013-07-18 2015-01-22 Alcatel Lucent Methods And Devices For Protecting Private Data
GB2518003A (en) * 2013-09-10 2015-03-11 Belegin Ltd Method and apparatus for generating a plurality of graphical user interfaces
CN106662854B (zh) * 2014-05-29 2019-01-15 Abb瑞士股份有限公司 用于控制系统的装置的配置的方法和系统
SG11201700384WA (en) 2014-07-18 2017-02-27 Ab Initio Technology Llc Managing parameter sets
US9626393B2 (en) 2014-09-10 2017-04-18 Ab Initio Technology Llc Conditional validation rules
EP3210170A1 (en) * 2014-10-20 2017-08-30 AB Initio Technology LLC Specifying and applying rules to data
US9524150B2 (en) * 2014-12-15 2016-12-20 Kirsten Ingmar Heiss System and method for software development using graphical tree structures
EP3040891A1 (en) * 2014-12-31 2016-07-06 Thomson Licensing Method for providing information to determine a graph associated with a data item
CN106484695B (zh) * 2015-08-25 2020-10-13 阿里巴巴集团控股有限公司 一种用于检索的方法与设备
US10733013B2 (en) * 2016-12-09 2020-08-04 Vmware, Inc. Information-technology workflows using executable tiles distributed between workflow instances
US10732947B2 (en) * 2016-12-09 2020-08-04 Wmware, Inc. Information-technology workflow using tiles that declaratively specify datatypes
US11003466B2 (en) 2016-12-09 2021-05-11 Vmware, Inc. Information-technology workflows using executable tiles with plural user interfaces
US10732934B2 (en) * 2016-12-09 2020-08-04 Vmware, Inc. Information-technology workflows using executable tiles
US11450043B2 (en) * 2018-04-25 2022-09-20 Adobe Inc. Element association and modification
US11263263B2 (en) * 2018-05-30 2022-03-01 Palantir Technologies Inc. Data propagation and mapping system
US20210165802A1 (en) * 2019-12-03 2021-06-03 BrainSquall, Inc. Context map boards
DE112022000886T5 (de) 2021-01-31 2023-12-21 Ab Initio Technology Llc Datenverarbeitungssystem mit manipulation logischer datensatzgruppen
CN114860223B (zh) * 2022-07-06 2022-09-30 绍兴圆方半导体有限公司 交互编辑框架、交互对象的生成方法和电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070009557A (ko) * 2003-12-29 2007-01-18 벤투리 와이어리스, 인코포레이티드 객체를 저장하고 액세스하는 장치 및 방법

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734886A (en) 1994-11-16 1998-03-31 Lucent Technologies Inc. Database dependency resolution method and system for identifying related data files
JPH08147317A (ja) * 1994-11-18 1996-06-07 Sharp Corp データ管理システムおよびそのデータ管理方法
US5734866A (en) * 1995-07-18 1998-03-31 Xilinx Inc Set of functions for mapping into cell based integrated circuits with fixed number of inputs
US6065002A (en) * 1996-10-31 2000-05-16 Systems And Computer Technology Corporation Simplified interface for relational database access using open database connectivity
US5930802A (en) * 1996-11-29 1999-07-27 Daewoo Electronics Co., Ltd. Method for automatically linking index data with image data in a search system
JP3202968B2 (ja) 1998-06-30 2001-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示制御情報生成方法及びコンピュータ
US6609132B1 (en) * 2000-04-11 2003-08-19 Revelink, Inc. Object data model for a framework for creation, update and view navigation of data objects and textual annotations of relations between data objects
WO2004015627A2 (en) 2002-08-09 2004-02-19 Corticon Technologies, Inc. Rule engine
US7428519B2 (en) * 2003-06-04 2008-09-23 Steven Minsky Relational logic management system
US20050257193A1 (en) * 2004-05-13 2005-11-17 Alexander Falk Method and system for visual data mapping and code generation to support data integration
CA2500573A1 (en) * 2005-03-14 2006-09-14 Oculus Info Inc. Advances in nspace - system and method for information analysis
US20070022405A1 (en) * 2005-07-20 2007-01-25 Caterpillar Inc. Method and system for software design
US20070038666A1 (en) * 2005-08-15 2007-02-15 Microsoft Corporation Independent explicit interface implementation
US8140362B2 (en) 2005-08-30 2012-03-20 International Business Machines Corporation Automatically processing dynamic business rules in a content management system
US7440945B2 (en) 2005-11-10 2008-10-21 International Business Machines Corporation Dynamic discovery of abstract rule set required inputs
JP2009533727A (ja) * 2006-04-07 2009-09-17 パラメトリク・テクノロジー・コーポレーシヨン 文書の系図を維持するシステムと方法
US7792868B2 (en) * 2006-11-10 2010-09-07 Microsoft Corporation Data object linking and browsing tool
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
US7827209B2 (en) * 2007-08-09 2010-11-02 Tektronix, Inc. Data object based data analysis
US8004541B2 (en) * 2008-01-28 2011-08-23 Hewlett-Packard Development Company, L.P. Structured display system with system defined transitions
CN102272752B (zh) 2008-11-12 2015-07-08 起元技术有限责任公司 管理和自动链接数据对象
US9519418B2 (en) * 2011-01-18 2016-12-13 Nokia Technologies Oy Method and apparatus for providing a multi-stage device transition mechanism initiated based on a touch gesture
US8650150B2 (en) * 2011-03-14 2014-02-11 Sap Ag System and method of relating data and generating reports

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070009557A (ko) * 2003-12-29 2007-01-18 벤투리 와이어리스, 인코포레이티드 객체를 저장하고 액세스하는 장치 및 방법

Also Published As

Publication number Publication date
WO2010056867A1 (en) 2010-05-20
KR101627594B1 (ko) 2016-06-07
AU2016202060A1 (en) 2016-04-28
KR101688554B1 (ko) 2016-12-21
US10997246B2 (en) 2021-05-04
US20160299993A1 (en) 2016-10-13
CA3042068A1 (en) 2010-05-20
KR20110094026A (ko) 2011-08-19
CN102272752B (zh) 2015-07-08
CA2743151C (en) 2019-12-24
CA3042068C (en) 2022-09-20
AU2018236912A1 (en) 2018-10-25
US20100121890A1 (en) 2010-05-13
EP2356581A1 (en) 2011-08-17
US9317624B2 (en) 2016-04-19
CA2743151A1 (en) 2010-05-20
AU2009314067A1 (en) 2010-05-20
AU2018236912B2 (en) 2020-10-29
US20180210967A1 (en) 2018-07-26
CN102272752A (zh) 2011-12-07
US9959366B2 (en) 2018-05-01
EP2356581A4 (en) 2012-05-02
JP2012508934A (ja) 2012-04-12
AU2009314067B2 (en) 2016-01-14
JP5651121B2 (ja) 2015-01-07

Similar Documents

Publication Publication Date Title
AU2018236912B2 (en) Managing and automatically linking data objects
US10318628B2 (en) System and method for creation of templates
Ceri et al. Web Modeling Language (WebML): a modeling language for designing Web sites
US8626477B2 (en) Spreadsheet-based graphical user interface for modeling of products using the systems engineering process
US9471213B2 (en) Chaining applications
US11556702B2 (en) Orchestration of crud operations for a hierarchical web service data model in a spreadsheet
Armel Web application development with Laravel PHP Framework version 4
Lumertz et al. User interfaces metamodel based on graphs
CN114860218A (zh) 一种低代码开发方法和装置
US20120084224A1 (en) Automatically created report generator for managing information technology service projects
AU2020200471A1 (en) Web Application Builder
Zehoo Oracle Application Express 4 Recipes
Shannon et al. Software Challenges of a Web-based Air Traffic Control Training Tool
CN117348784A (zh) 流程管理方法、装置、设备和存储介质
Singh Programming Web Applications Declaratively A Qualitative Study
Kumagai et al. Joined View Editor for Mashups of Web Data Stores
Chen et al. Automatic Generation of Web Applications from Visual High‐Level Functional Web Components
Driscoll et al. Using Entity Framework in ASP. NET MVC
Langit Reporting Tools
Labrenz et al. Ingo Glaser, Tri Huynh, Oleksandra Klymenko

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right