KR20180098324A - 서브-그래프 인터페이스 생성 - Google Patents

서브-그래프 인터페이스 생성 Download PDF

Info

Publication number
KR20180098324A
KR20180098324A KR1020187021019A KR20187021019A KR20180098324A KR 20180098324 A KR20180098324 A KR 20180098324A KR 1020187021019 A KR1020187021019 A KR 1020187021019A KR 20187021019 A KR20187021019 A KR 20187021019A KR 20180098324 A KR20180098324 A KR 20180098324A
Authority
KR
South Korea
Prior art keywords
graph
interface
interface element
directional
components
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020187021019A
Other languages
English (en)
Other versions
KR102051768B1 (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 KR20180098324A publication Critical patent/KR20180098324A/ko
Application granted granted Critical
Publication of KR102051768B1 publication Critical patent/KR102051768B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • G06F17/30958
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Indexing; Data structures therefor; Storage structures
    • G06F17/30292
    • G06F17/30312
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Logic Circuits (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Acyclic And Carbocyclic Compounds In Medicinal Compositions (AREA)
  • Peptides Or Proteins (AREA)

Abstract

적어도 하나의 방향성 링크들의 제 1 세트에 의해 상호연결된 제 1 복수의 컴포넌트들을 포함하는 제 1 방향성 그래프(400)의 설명을 포함하는 명세가 수신된다. 그래프 인터페이스(126)는, 그래프 인터페이스의 제 1 인터페이스 엘리먼트를 형성하는 것 - 상기 제 1 인터페이스 엘리먼트는 상기 제 1 수의 컴포넌트들의 제 1 컴포넌트의 제 1 포트와 연관됨 - , 및 상기 제 1 컴포넌트의 상기 제 1 포트가 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들과 일치하도록 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 구성하는 것을 포함하는, 상기 제 1 복수의 컴포넌트들로 형성된다. 상기 그래프 인터페이스의 제 1 구현(124)은 제 1 수의 컴포넌트들을 포함하여 형성되고, 상기 형성하는 것은 제 1 인터페이스 엘리먼트와 제 1 수의 컴포넌트들의 제 1 컴포넌트의 제 1 포트 사이에 제 1 대응을 형성하는 것을 포함한다.

Description

서브-그래프 인터페이스 생성
관련 출원에 대한 상호 참조
본 출원은 2015년 12월 21일에 출원된 미국 특허 출원 제62/270,163호에 대한 우선권을 주장한다.
본 설명은 동적으로 링크된 서브-그래프들에 대한 서브-그래프 인터페이스들을 위한 생성에 관한 것이다.
많은 소프트웨어 애플리케이션들은 데이터를 처리하기 위해 존재한다. 이들 소프트웨어 애플리케이션들 중 일부는 데이터 흐름 그래프들(dataflow graphs)로서 특정화된다. 데이터 흐름 그래프는 전형적으로 때때로 "흐름들(flows)"이라고 지칭되는 링크에 의해 상호연결되는 다수의 데이터 처리 컴포넌트를 포함한다.
동작 시에, 데이터(예를 들어, 데이터 세트)는 데이터베이스 또는 일부 다른 데이터 저장 시스템으로부터의 데이터 흐름 그래프에 의해 수신된다. 수신된 데이터는 컴포넌트들 및 흐름들의 상호연결에 의해 정의된 의존성들에 따라 흐름을 통해 컴포넌트로 전파됨으로써 데이터 흐름 그래프를 통해 진행한다. 각각의 컴포넌트는 적어도 하나의 흐름들을 통해 출력 데이터로서 처리된 데이터를 제공하기 전에 컴포넌트와 연관된 미리 결정된 기능(function)에 따라 수신하는 데이터를 처리한다. 데이터 흐름 그래프의 출력에서, 처리된 데이터는 예를 들어, 다른 데이터 저장 시스템에 저장되거나, 다른 다운 스트림 시스템에 제공되거나, 또는 사용자에게 제공된다.
데이터 흐름 그래프의 개발자는, 데이터 흐름 그래프가 원하는 기능을 구현하도록, 일반적으로 컴포넌트들을 나타내는 블록들을 그래픽 개발 환경(GDE, graphical development environment)에 의해 제공된 그래픽 작업 영역(또는 "캔버스") 상으로 드래그하고, 데이터 흐름들을 나타내는 링크들로 컴포넌트들을 상호연결함으로써 그래프를 특정한다. 개발자가 데이터 흐름 그래프의 구현에 만족하면, 나중에 사용하기 위해 데이터 흐름 그래프를 스토리지에 저장할 수 있다. 일반적으로, 개발자가 나중에 데이터 흐름 그래프의 구현을 변경해야 하는 경우, 개발자는 GDE로 하여금 스토리지로부터 저장된 데이터 흐름 그래프를 판독하고, 데이터 흐름 그래프를 변경한 다음, 변경된 데이터 흐름 그래프를 저장하도록 한다.
일부 예들에서, 데이터 흐름 그래프의 컴포넌트들은 그 자체가 "서브-그래프들"로 지칭되는 데이터 흐름 그래프들을 사용하여 구현된다. 주어진 데이터 흐름 그래프에서 사용되는 컴포넌트의 서브-그래프를 변경하기 위해, 데이터 흐름 그래프가 디스크로부터 읽혀 지고, 서브-그래프 컴포넌트는 그 서브-그래프가 편집될 수 있도록 오픈되고, 서브-그래프에 대한 변경 내용들(changes)이 만들어지고, 데이터 흐름 그래프 자체는 스토리지에 재-저장됨으로써, 저장된 데이터 흐름 그래프에서 변경 내용들은 서브-그래프에 임베딩된다.
일반적인 양상에서, 방법은 적어도 하나의 방향성 링크들(directed links)의 제 1 세트에 의해 상호연결된 제 1 다수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하는 단계, 및 제 1 다수의 컴포넌트들에 대한 그래프 인터페이스를 형성하는 단계를 포함한다. 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)이다. 상기 그래프 인터페이스를 형성하는 단계는 상기 그래프 인터페이스의 제 1 인터페이스 엘리먼트를 형성하는 단계 - 상기 제 1 인터페이스 엘리먼트는 상기 제 1 다수의 컴포넌트들 중 제 1 컴포넌트의 제 1 포트와 연관됨 - , 및 상기 제 1 컴포넌트의 상기 제 1 포트가 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들과 일치하도록 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 구성하는 단계, 상기 제 1 다수의 컴포넌트들을 포함하는 상기 그래프 인터페이스의 제 1 구현을 형성하는 단계 - 상기 형성하는 단계는 상기 제 1 인터페이스 엘리먼트와 상기 제 1 다수의 컴포넌트들의 상기 제 1 컴포넌트의 상기 제 1 포트 사이에 제 1 대응(correspondence)을 형성하는 단계를 포함함 - , 및 데이터 저장 시스템에 상기 그래프 인터페이스의 제 1 구현을 저장하는 단계를 포함한다.
양상들은 다음 특징들 중 적어도 하나를 포함할 수 있다.
방법은, 데이터 저장 시스템에서, 적어도 하나의 방향성 링크들의 제 2 세트에 의해 상호연결된 제 2 다수의 컴포넌트들을 포함하는 제 2 방향성 그래프의 설명을 포함하는 명세를 저장하는 단계, 상기 제 2 방향성 그래프에서 상기 제 1 방향성 그래프의 적어도 하나의 방향성 링크들의 제 1 세트에 의해 상호연결된 상기 제 1 다수의 컴포넌트들의 인스턴스(instance)를 식별하는 단계, 및 상기 제 2 방향성 그래프에서 상기 적어도 하나의 방향성 링크들의 제 1 세트에 의해 상호연결된 상기 제 1 다수의 컴포넌트들의 상기 식별된 인스턴스를 상기 그래프 인터페이스로 대체하는 단계를 포함할 수 있다. 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 구성하는 단계는, 상기 제 1 컴포넌트의 상기 제 1 포트와 연관된 데이터의 적어도 하나의 설명자들(descriptors) 또는 계산 특성들(computational characteristics)을 결정하는 단계 및 상기 결정된 적어도 하나의 설명자들에 기반하여 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 구성하는 단계를 포함할 수 있다.
상기 결정된 적어도 하나의 설명자들에 기반하여 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 구성하는 단계는, 상기 제 1 컴포넌트의 상기 제 1 포트와 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성들의 전파 방향을 결정하는 단계 및 상기 결정된 전파 방향(direction of propagation)에 기반하여 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 구성하는 단계를 포함할 수 있다. 상기 제 1 컴포넌트의 상기 제 1 포트와 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성들의 전파 방향을 결정하는 단계는, 상기 제 1 포트를, 데이터의 설명자 또는 계산 특성들을 상기 제 1 인터페이스 엘리먼트에 전파하는 포트로 식별하는 단계 및 상기 식별에 기반하여 상기 제 1 인터페이스 엘리먼트에 전파의 외향 방향(outward direction)을 할당하는 단계를 포함할 수 있다. 상기 제 1 컴포넌트의 상기 제 1 포트와 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성들의 전파 방향을 결정하는 단계는, 상기 제 1 포트를, 데이터의 설명자 또는 계산 특성들을 상기 제 1 인터페이스 엘리먼트에 전파하지 않는 포트로 식별하는 단계 및 상기 식별에 기반하여 상기 제 1 인터페이스 엘리먼트에 전파의 내향 방향(inward direction)을 할당하는 단계를 포함할 수 있다. 그 다음에 상기 할당된 전파 방향은 그래프 인터페이스의 제 1 구현을 포함하는, 상기 컨테이너 그래프의 실행 이전에 데이터의 설명자 또는 계산 특성들의 전파 동안 사용된다.
상기 그래프 인터페이스를 형성하는 단계는, 상기 그래프 인터페이스의 제 2 인터페이스 엘리먼트를 형성하는 단계 - 상기 제 2 인터페이스 엘리먼트는 상기 제 1 복수의 컴포넌트들 중 제 2 컴포넌트의 제 2 포트와 연관됨 - , 상기 제 2 컴포넌트의 상기 제 2 포트와 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성들의 전파 방향을 결정하는 단계 - 상기 제 2 포트를, 데이터의 설명자들 또는 계산 특성들을 상기 제 2 인터페이스 엘리먼트에 전파하지 않는 포트로 식별하는 단계 및 상기 식별에 기반하여 상기 제 2 인터페이스 엘리먼트에 전파의 내향 방향(inward direction)을 할당하는 단계를 포함함 - , 및 상기 제 1 컴포넌트의 상기 제 1 포트와 연관된 데이터의 상기 적어도 하나의 설명자들 또는 계산 특성들 및 상기 제 2 컴포넌트의 상기 제 2 포트와 연관된 데이터의 적어도 하나의 설명자 또는 계산 특성들 간의 관계를 식별하고 상기 제 1 인터페이스 엘리먼트 및 상기 제 2 인터페이스 엘리먼트 간의 상기 식별된 관계의 표현(representation)을 형성하는 단계를 포함할 수 있다.
상기 관계의 표현은 상기 제 1 인터페이스 엘리먼트와 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성이 상기 제 2 인터페이스 엘리먼트와 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성과 동일한 것을 나타내는 제약을 포함할 수 있다. 상기 방법은, 적어도 하나의 다른 컴포넌트들의 포트들이 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들에 따르도록 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 수정하는 단계를 포함할 수 있다. 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 수정하는 단계는, 사용자 입력을 수신하는 단계 및 상기 사용자 입력에 기초하여 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 수정하는 단계를 포함할 수 있다. 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 수정하는 단계는, 적어도 하나의 다른 컴포넌트들을 분석하여 상기 적어도 하나의 다른 컴포넌트들의 상기 포트들과 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성들을 결정하는 단계 및 상기 적어도 하나의 다른 컴포넌트들의 상기 포트와 연관된, 상기 결정된 데이터의 적어도 하나의 설명자들 또는 계산 특성들에 기반하여 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 수정하는 단계를 포함할 수 있다.
상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 수정하는 단계는, 적어도 하나의 다른 컴포넌트들을 분석하여 상기 적어도 하나의 다른 컴포넌트들의 상기 포트들과 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성들의 전파 방향을 결정하는 단계 및 상기 결정된 전파 방향에 기반하여 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 수정하는 단계를 포함할 수 있다. 상기 그래프 인터페이스를 형성하는 단계는, 상기 제 1 복수의 컴포넌트들과 연관된 파라미터를 식별하는 단계 및 상기 파라미터와 연관된 인터페이스 엘리먼트를 상기 그래프 인터페이스에 추가하는 단계를 포함할 수 있다. 상기 방법은, 상기 파라미터에 대응하는 파라미터 값을 식별하는 단계와, 상기 식별된 파라미터 값을 디폴트 값으로서 사용하도록 상기 그래프 인터페이스를 구성하는 단계를 포함할 수 있다.
상기 방법은, 실행을 위해 제 2 방향성 그래프를 준비하는 단계를 포함할 수 있고, 상기 제 2 방향성 그래프를 준비하는 단계는, 상기 데이터 저장 시스템으로부터 상기 그래프 인터페이스의 제 1 구현을 판독하는 단계, 및 상기 그래프 인터페이스의 상기 제 1 구현에서 상기 제 1 인터페이스 엘리먼트 및 상기 제 1 다수의 컴포넌트들의 상기 제 1 컴포넌트의 상기 제 1 포트 사이의 제 1 대응에 기반하여, 상기 그래프 인터페이스의 제 1 인터페이스 엘리먼트에서 상기 제 1 다수의 컴포넌트들의 제 1 컴포넌트의 제 1 포트 및 상기 그래프 인터페이스의 상기 제 1 인터페이스 엘리먼트 사이의 방향성 링크를 설정하는 단계를 포함하여, 상기 제 2 방향성 그래프에 상기 제 1 구현을 삽입하는 단계를 포함한다. 상기 방법은, 실행을 위해 제 2 방향성 그래프를 준비하는 단계를 포함할 수 있고, 상기 제 2 방향성 그래프를 준비하는 단계는, 상기 제 2 방향성 그래프를 준비하는 단계는, 상기 데이터 저장 시스템으로부터, 상기 그래프 인터페이스의 제 1 구현과 상이한, 상기 그래프 인터페이스의 제 2 구현을 판독하는 단계, 및 상기 그래프 인터페이스의 상기 제 2 구현에서 상기 제 1 인터페이스 엘리먼트 및 상기 컴포넌트의 포트 사이의 제 2 대응에 기반하여, 상기 그래프 인터페이스의 제 2 구현에서 컴포넌트의 포트 및 상기 그래프 인터페이스의 상기 제 1 인터페이스 엘리먼트 사이의 방향성 링크를 설정하는 단계를 포함하여, 상기 제 2 방향성 그래프에 상기 제 2 구현을 삽입하는 단계를 포함할 수 있다.
상기 제 1 인터페이스 엘리먼트는 상기 제 1 다수의 컴포넌트들에 포함되지 않은 다른 컴포넌트의 포트에 상기 제 1 다수의 컴포넌트들의 상기 제 1 컴포넌트의 상기 제 1 포트에 연결된 방향성 링크를 결합하기 위한 흐름 접속(flow junction)을 포함할 수 있다.
다른 일반적인 양상에서, 소프트웨어는 그래프 인터페이스 및 상기 그래프 인터페이스의 구현을 결정하기 위해, 컴퓨터-판독가능 매체 상에 비-일시적 형태로 저장된다. 상기 소프트웨어는 컴퓨팅 시스템으로 하여금, 적어도 하나의 방향성 링크들(directed links)의 제 1 세트에 의해 상호연결된 제 1 다수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하고, 제 1 복수의 컴포넌트들에 대한 그래프 인터페이스를 형성하도록 하는 명령들을 포함한다. 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)이다. 상기 그래프 인터페이스를 형성하는 것은: 상기 그래프 인터페이스의 제 1 인터페이스 엘리먼트를 형성하는 것 - 상기 제 1 인터페이스 엘리먼트는 상기 제 1 다수의 컴포넌트들 중 제 1 컴포넌트의 제 1 포트와 연관됨 - , 및 상기 제 1 컴포넌트의 상기 제 1 포트가 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들과 일치하도록 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 구성하는 것을 포함하고, 상기 제 1 다수의 컴포넌트들을 포함하는 상기 그래프 인터페이스의 제 1 구현을 형성하고 - 상기 형성하는 것은 상기 제 1 인터페이스 엘리먼트와 상기 제 1 다수의 컴포넌트들의 상기 제 1 컴포넌트의 상기 제 1 포트 사이에 제 1 대응(correspondence)을 형성하는 단계를 포함함 - , 및 상기 데이터 저장 시스템에 상기 그래프 인터페이스의 제 1 구현을 저장하도록 하는 명령들을 포함한다.
다른 일반적인 양상에서, 그래프 인터페이스 및 상기 그래프 인터페이스의 구현을 결정하는 컴퓨팅 시스템은, 적어도 하나의 방향성 링크들(directed links)의 제 1 세트에 의해 상호연결된 제 1 다수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하도록 구성된 입력 디바이스, 및 상기 명세를 프로세싱하도록 구성된 적어도 하나의 프로세서를 포함한다. 상기 프로세싱하는 것은, 제 1 복수의 컴포넌트들에 대한 그래프 인터페이스를 형성하는 것을 포함한다. 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)이다. 상기 그래프 인터페이스를 형성하는 것은: 상기 그래프 인터페이스의 제 1 인터페이스 엘리먼트를 형성하는 것 - 상기 제 1 인터페이스 엘리먼트는 상기 제 1 다수의 컴포넌트들 중 제 1 컴포넌트의 제 1 포트와 연관됨 - , 및 상기 제 1 컴포넌트의 상기 제 1 포트가 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들과 일치하도록 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 구성하는 것을 포함하고, 상기 제 1 복수의 컴포넌트들을 포함하는 상기 그래프 인터페이스의 제 1 구현을 형성하는 것 - 상기 형성하는 것은 상기 제 1 인터페이스 엘리먼트와 상기 제 1 복수의 컴포넌트들의 상기 제 1 컴포넌트의 상기 제 1 포트 사이에 제 1 대응(correspondence)을 형성하는 것을 포함함 - ; 및 상기 데이터 저장 시스템에 상기 그래프 인터페이스의 제 1 구현을 저장하는 것을 포함한다.
다른 일반적인 양상에서, 그래프 인터페이스 및 상기 그래프 인터페이스의 구현을 결정하는 컴퓨팅 시스템은, 적어도 하나의 방향성 링크들(directed links)의 제 1 세트에 의해 상호연결된 제 1 다수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하는 수단, 및 상기 명세를 프로세싱하는 수단을 포함한다. 상기 프로세싱하는 것은, 제 1 다수의 컴포넌트들에 대한 그래프 인터페이스를 형성하는 것을 포함한다. 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)이다. 상기 그래프 인터페이스를 형성하는 것은: 상기 그래프 인터페이스의 제 1 인터페이스 엘리먼트를 형성하는 것 - 상기 제 1 인터페이스 엘리먼트는 상기 제 1 복수의 컴포넌트들 중 제 1 컴포넌트의 제 1 포트와 연관됨 - , 및 상기 제 1 컴포넌트의 상기 제 1 포트가 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들과 일치하도록 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 구성하는 것을 포함하고, 상기 제 1 복수의 컴포넌트들을 포함하는 상기 그래프 인터페이스의 제 1 구현을 형성하는 것 - 상기 형성하는 것은 상기 제 1 인터페이스 엘리먼트와 상기 제 1 복수의 컴포넌트들의 상기 제 1 컴포넌트의 상기 제 1 포트 사이에 제 1 대응(correspondence)을 형성하는 것을 포함함 - ; 및 상기 데이터 저장 시스템에 상기 그래프 인터페이스의 제 1 구현을 저장하는 것을 포함한다.
다른 일반적인 양상에서, 그래프 인터페이스를 결정하는 방법은, 방향성 링크들(directed links)에 의해 상호연결된 복수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하는 단계, 및 제 1 방향성 그래프에 대한 그래프 인터페이스를 형성하는 단계를 포함한다. 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)이다. 상기 그래프 인터페이스를 형성하는 단계는: 상기 그래프 인터페이스의 적어도 하나의 인터페이스 엘리먼트들을 형성하기 위한 정보를 식별하기 위해 제 1 방향성 그래프를 분석하는 단계, 및 적어도 하나의 인터페이스 엘리먼트를 형성하는 단계 - 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트들 각각은 메타데이터 설명자 속성 또는 메타데이터 전파 속성의 방향 중 적어도 하나를 포함하는 적어도 하나의 속성들과 연관됨 - , 및 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트 각각에 대해, 상기 제 1 방향성 그래프를 분석하여, 상기 인터페이스 엘리먼트와 연관된 메타데이터 설명자 속성의 값이 제 1 방향성 그래프로부터 인터페이스 엘리먼트로 전파되는지 또는 상기 그래프 인터페이스가 사용되는 컨테이너 그래프인 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지 여부를 결정하는 단계, 및 상기 분석 결과에 기반하여 상기 인터페이스 엘리먼트에 대한 메타데이터 전파 속성의 방향을 구성하는 단계를 포함한다.
양상들은 다음 특징들 중 적어도 하나를 포함할 수 있다.
상기 인터페이스 엘리먼트와 연관된 메타데이터 설명자 속성은 상기 인터페이스 엘리먼트를 통해 전달된 데이터의 데이터 특성 또는 상기 다수의 컴포넌트들 중 적어도 하나 컴포넌트들의 계산 특성을 포함할 수 있다. 상기 데이터 특징은 상기 전달된 데이터 내의 레코드 필드들의 포맷을 포함 할 수 있다. 상기 계산 특성은 상기 다수의 컴포넌트들 중 적어도 하나의 컴포넌트에 의해 표현된 계산의 실행의 패러랠리즘(parallelism)의 정도를 포함할 수 있다. 상기 제 1 방향성 그래프에 대한 그래프 인터페이스를 형성하는 단계는, 상기 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트들 각각에 대해, 상기 제 1 방향성 그래프를 분석하여 상기 인터페이스 엘리먼트와 연관된 적어도 하나의 속성들이 인터페이스 엘리먼트가 상기 그래프 인터페이스를 통해 파라미터 값을 전달하도록 구성되는 것을 명시하는 단계를 포함 할 수 있다. 상기 인터페이스 엘리먼트와 연관된 상기 메타데이터 설명자 속성의 값이 상기 제 1 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지 또는 상기 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지를 결정하는 단계는, 상기 인터페이스 엘리먼트와 연관된 상기 메타데이터 설명자 속성의 값이 상기 메타데이터 설명자 속성의 값을 상기 인터페이스에 전달하는 상기 다수의 컴포넌트들 중 하나의 컴포넌트의 식별에 기반하여 상기 제 1 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는 단계를 포함할 수 있다.
상기 인터페이스 엘리먼트와 연관된 상기 메타데이터 설명자 속성의 값이 상기 제 1 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지 또는 상기 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지를 결정하는 단계는, 상기 인터페이스 엘리먼트와 연관된 상기 메타데이터 설명자 속성의 값이 상기 다수의 컴포넌트들 중 어느 컴포넌트도 상기 메타데이터 설명자 속성의 값을 상기 인터페이스에 전달하지 않는 결정에 기반하여 상기 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는 단계를 포함할 수 있다. 상기 제 1 방향성 그래프에 대한 그래프 인터페이스를 형성하는 단계는 적어도 둘 이상의 인터페이스 엘리먼트들이 각각 반드시 동일한 속성과 연관이 있는지를 결정하는 단계를 포함할 수 있다. 상기 방법은, 데이터 저장 시스템에서, 상기 그래프 인터페이스의 표현 및 상기 제 1 방향성 그래프의 표현을 저장하는 단계를 포함할 수 있다. 상기 적어도 하나의 인터페이스 엘리먼트들 중 적어도 일부는, 상기 다수의 컴포넌트들 중 하나의 컴포넌트의 포트에 연결된 방향성 링크를 상기 다수의 컴포넌트들에서 포함되지 않는 다른 컴포넌트의 포트에 결합하기 위한 흐름 접속을 포함할 수 있다.
다른 일반적인 양상에서, 그래프 인터페이스를 결정하기 위해, 컴퓨터-판독가능 매체 상에 비-일시적 형태로 저장되는 소프트웨어는, 컴퓨팅 시스템으로 하여금, 방향성 링크들(directed links)에 의해 상호연결된 다수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하고, 그리고 제 1 방향성 그래프에 대한 그래프 인터페이스를 형성하도록 하는 명령들을 포함하고 - 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)임 - , 상기 그래프 인터페이스를 형성하는 것은: 상기 그래프 인터페이스의 적어도 하나의 인터페이스 엘리먼트들을 형성하기 위한 정보를 식별하기 위해 제 1 방향성 그래프를 분석하는 것, 및 적어도 하나의 인터페이스 엘리먼트를 형성하는 것 - 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트들 각각은 메타데이터 설명자 속성 또는 메타데이터 전파 속성의 방향 중 적어도 하나를 포함하는 적어도 하나의 속성들과 연관됨 - , 및 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트 각각에 대해, 상기 제 1 방향성 그래프를 분석하여, 상기 인터페이스 엘리먼트와 연관된 메타데이터 설명자 속성의 값이 제 1 방향성 그래프로부터 인터페이스 엘리먼트로 전파되는지 또는 상기 그래프 인터페이스가 사용되는 컨테이너 그래프인 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지 여부를 결정하는 것, 및 상기 분석 결과에 기반하여 상기 인터페이스 엘리먼트에 대한 메타데이터 전파 속성의 방향을 구성하는 것을 포함한다.
다른 일반적인 양상에서, 그래프 인터페이스를 결정하는 컴퓨팅 시스템은, 적어도 하나의 방향성 링크들(directed links)의 제 1 세트에 의해 상호연결된 제 1 다수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하도록 구성된 입력 디바이스, 및 상기 명세를 프로세싱하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 프로세싱하는 것은 제 1 방향성 그래프에 대한 그래프 인터페이스를 형성하는 것을 포함하고, 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)이고, 상기 그래프 인터페이스를 형성하는 것은: 상기 그래프 인터페이스의 적어도 하나의 인터페이스 엘리먼트들을 형성하기 위한 정보를 식별하기 위해 제 1 방향성 그래프를 분석하는 것, 및 적어도 하나의 인터페이스 엘리먼트를 형성하는 것 - 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트들 각각은 메타데이터 설명자 속성 또는 메타데이터 전파 속성의 방향 중 적어도 하나를 포함하는 적어도 하나의 속성들과 연관됨 - , 및 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트 각각에 대해, 상기 제 1 방향성 그래프를 분석하여, 상기 인터페이스 엘리먼트와 연관된 메타데이터 설명자 속성의 값이 제 1 방향성 그래프로부터 인터페이스 엘리먼트로 전파되는지 또는 상기 그래프 인터페이스가 사용되는 컨테이너 그래프인 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지 여부를 결정하고, 및 상기 분석 결과에 기반하여 상기 인터페이스 엘리먼트에 대한 메타데이터 전파 속성의 방향을 구성하는 것을 포함한다.
다른 일반적인 양상에서, 그래프 인터페이스를 결정하기 위한 컴퓨팅 시스템은, 방향성 링크들(directed links)에 의해 상호연결된 복수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하기 위한 수단, 및 상기 명세를 프로세싱하기 위한 수단을 포함하고, 상기 프로세싱하기 위한 수단은, 제 1 방향성 그래프에 대한 그래프 인터페이스를 형성하는 것을 포함하고 - 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)임 - , 상기 그래프 인터페이스를 형성하는 것은, 상기 그래프 인터페이스의 적어도 하나의 인터페이스 엘리먼트들을 형성하기 위한 정보를 식별하기 위해 제 1 방향성 그래프를 분석하는 것, 및 적어도 하나의 인터페이스 엘리먼트를 형성하는 것 - 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트들 각각은 메타데이터 설명자 속성 또는 메타데이터 전파 속성의 방향 중 적어도 하나를 포함하는 적어도 하나의 속성들과 연관됨 - , 및 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트 각각에 대해, 상기 제 1 방향성 그래프를 분석하여, 상기 인터페이스 엘리먼트와 연관된 메타데이터 설명자 속성의 값이 제 1 방향성 그래프로부터 인터페이스 엘리먼트로 전파되는지 또는 상기 그래프 인터페이스가 사용되는 컨테이너 그래프인 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지 여부를 결정하고, 및 상기 분석 결과에 기반하여 상기 인터페이스 엘리먼트에 대한 메타데이터 전파 속성의 방향을 구성하는 것을 포함한다.
양상들은 다음의 이점들 중 적어도 하나를 포함할 수 있다.
데이터 흐름 그래프 소프트웨어 개발과 관련하여, 서브-그래프 인터페이스 및 대응하는 구현 서브-그래프를 포함하는, 정적으로 링크된 서브-그래프를 동적으로 링크된 서브-그래프로 변환할 수 있는 능력이 필요하다. 일부 예들에서, 일단 정적으로 링크된 서브-그래프가 그 컨테이너 그래프로부터 제거되면, 메타데이터 전파에 대한 상당한 장애가 발생할 수 있기 때문에, 그렇게 하는 것은 어렵다.
예를 들어, 서브-그래프 인터페이스의 구현이 컨테이너 그래프에서 인스턴스화될(instantiated) 때, 메타데이터 전파 프로세스는 구현 서브-그래프를 그 모든 정점들이 네이티브 그래프 정점인 것처럼 취급한다. 메타데이터 전파 프로세스가 메타데이터를 구현 서브-그래프로 전파할 때, 컨테이너 그래프로부터의 메타데이터는 구현 서브-그래프로부터의 메타데이터와 혼합되고, 이는 예기치 않은 결과를 초래할 수 있다. 레이아웃 알고리즘은 레이아웃을 할당하기 위해 가중치의 전체적인 고려에 복잡한 방식으로 의존하기 때문에, 레이아웃 메타데이터의 경우에 이러한 혼합이 악화된다. 레이아웃 메타데이터는 예를 들어, 실행될 수 있는 컴포넌트의 인스턴스의 수(예를 들어, 실행될 수 있는 최대 수 및/또는 실행될 수 있는 최대 수)를 지정함으로써, 패러렐리즘 정도와 같은 계산 특성을 특정하고, 선택적으로 적어도 하나의 인스턴스가 실행될 특정 호스트와 같은 기타 정보를 포함할 수 있다.
또한, 다수의 상이한 컨테이너 그래프들 및 구현 서브-그래프들은 임의의 주어진 서브-그래프 인터페이스를 사용할 수 있으며, 각각은 잠재적으로 서브-그래프 인터페이스를 통해 상이하게 전파된다. 따라서, 구현 서브-그래프(들)에 고유한 특성들을 임의의 하나의 컨테이너 또는 구현 서브-그래프에서 사실인 특성들로부터 분리하는 것이 유용하다.
그렇게 하기 위해, 본 명세서에 설명된 양상들은 지정된 서브-그래프로부터 서브-그래프 인터페이스를 자동으로 생성하고, 선택적으로, 사용자는 자동적으로 생성된 서브-그래프 인터페이스와 연관된 메타데이터 제약을 강화하거나 완화하게 할 수 있다.
다른 이점들 중에서, 양상들은 다수의 컨테이너 그래프 및 서브-그래프 구현에 부합하는 동적으로 링크된 서브-그래프 인터페이스의 생성을 용이하게 하여 보다 다양하고 재사용 가능한 서브-그래프 인터페이스를 가능하게 한다.
양상들은, 선택적으로 사용자 입력을 수신할 수 있고, 재사용 가능한 서브-그래프 인터페이스를 포함하는 동적 링크된 서브-그래프의 생성을 초래할 수 있는, 다수의 단계들을 통해 자동으로 진행할 수 있다.
본 발명의 다른 특징들 및 이점들은 하기의 설명, 및 청구 범위로부터 명백해질 것이다.
도 1은 서브-그래프 인터페이스 생성을 위한 시스템의 블록도이다.
도 2a는 서브-그래프 인터페이스를 포함하는 데이터 흐름 그래프이다.
도 2b는 서브-그래프 인터페이스의 구현이다.
도 2c는 조합된 데이터 흐름 그래프이다.
도 3은 동적으로 링크된 서브-그래프 생성을 위해 특정된 데이터 흐름 그래프이다.
도 4는 동적으로 링크된 서브-그래프 생성을 위한 개발 환경의 블록도이다.
도 5는 자동 동적 서브-그래프 생성기의 블록도이다.
도 6은 제 1 편집-시간 메타데이터 전파 프로세스를 도시한다.
도 7은 그 흐름 접속들에 대해 결정된 메타데이터 전파 방향을 갖는 초기 서브-그래프 인터페이스이다.
도 8은 제 2 편집-시간 메타데이터 전파 프로세스이다.
도 9는 메타데이터 규칙을 포함하는 초기 서브-그래프 인터페이스이다.
도 10은 서브-그래프 인터페이스 파라미터를 포함하는 초기 서브-그래프 인터페이스를 도시한다.
도 11은 완료된 초기 서브-그래프 인터페이스이다.
도 12는 서브-그래프 인터페이스 개선 위저드(sub-graph interface refinement wizard)의 흐름 접속 구성 화면이다.
도 13은 서브-그래프 인터페이스 개선 위저드의 전파 규칙 설정 화면이다.
도 14는 서브-그래프 인터페이스 구성 위저드의 레이아웃 구성 화면이다.
도 15는 서브-그래프 인터페이스 설정 위저드의 파라미터 설정 화면이다.
도 16은 최종 서브-그래프 인터페이스이다.
도 1은 서브-그래프 인터페이스 생성 기술들이 사용될 수 있는 데이터 처리 시스템(100)의 예를 도시한다.
시스템(100)은, 임의의 다양한 포맷들(예를 들어, 데이터베이스 테이블들, 스프레드 시트 파일들, 플랫 텍스트 파일들, 또는 메인 프레임에서 사용하는 네이티브 포맷)로 데이터를 저장하거나 제공할 수 있는, 온라인 데이터 스트림들에 대한 저장 디바이스들 또는 연결들과 같은 적어도 하나의 데이터 소스들을 포함할 수 있는 데이터 소스(102)를 포함한다. 실행 환경(104)은 전처리 모듈(106) 및 실행 모듈(112)을 포함한다. 실행 환경(104)은, 예를 들어, UNIX 운영 체제의 버전과 같은, 적합한 운영 체제의 제어 하에 적어도 하나의 범용 컴퓨터들 상에서 호스팅될 수 있다. 예를 들어, 실행 환경(104)은 멀티 중앙 프로세싱 유닛들(CPUs) 또는 프로세서 코어들, 로컬(예컨대, 대칭 멀티-프로세싱(SMP) 컴퓨터들과 같은 멀티프로세서 시스템들) 또는 로컬로 분산된(예컨대, 클러스터들 또는 대규모 병렬 프로세싱(MPP) 시스템들로 결합된 멀티 프로세서들) 시스템들, 또는 원격, 또는 원격으로 분산된(예컨대, LAN(Local Area Network) 및/또는 WAN(Wide-Area Network)을 통해 결합 된 멀티 프로세서들) 시스템들, 또는 이들의 임의의 조합 중 어느 하나를 사용하는 컴퓨터 시스템들의 구성을 포함하는, 멀티-노드 병렬 컴퓨팅 환경, 또는 이들의 임의의 조합을 포함할 수 있다.
전처리 모듈(106)은 데이터 저장 시스템(116)으로부터 적어도 하나의 데이터 흐름 그래프들(114)을 판독하고, 실행 모듈(112)에 의한 실행을 위해 데이터 흐름 그래프를 준비한다. 일부의 경우, 이 준비 프로세스의 일부는, 데이터 흐름 그래프들(114) 내의 임의의 서브-그래프 인터페이스들을 따르는 임의의 구현 서브-그래프를 동적으로 링크하는 것을 포함한다. 이 동적 링크(dynamic linking)는 전형적으로 메타데이터 전파를 포함한다. 여기에 기술된 기술들을 사용하여 자동적으로 생성된 임의의 서브-그래프 인터페이스는, 그 특성이 메타데이터 전파를 용이하게 하도록 구성된, 아래에서 자세히 설명되는 바와 같이, 흐름 접속들 또는 파라미터와 같은 요소('인터페이스 엘리먼트'라고 불림)를 포함할 것이다. 전처리 모듈(106)은 컨테이너 데이터 흐름 그래프 내의 서브-그래프 인터페이스에 “따르는”(예컨대, 일치하는) 특정 동적-링크된 구현 서브-그래프를 실행 모듈(112)에 의한 실행 직전에 그 컨데이터 데이트 흐름 그래프로 로딩한다. 예를 들어, 구현 서브-그래프를 따르는 것은 서브-그래프 인터페이스상의 흐름 접속들과 일치하는 포트를 가져야 하며, 서브-그래프 인터페이스와 연관된 파라미터들과 일치하는 파라미터 값을 가져야 한다.
실행 환경(104)은 상이한 형태의 데이터베이스 시스템들을 포함하는, 데이터 소스(102)를 구현할 수 있는, 다양한 유형의 시스템들로부터 데이터를 수신할 수 있다. 데이터는, 가능한 경우 null 값을 포함하는, 각 필드들(또한 "속성들(attributes)" 또는 "열들(columns)"이라고도 함)에 대한 값을 갖는 레코드들로서 조직화될 수 있다. 데이터 소스로부터 데이터를 먼저 판독할 때, 실행 모듈(112)은 전형적으로 그 데이터 소스 내의 레코드들에 관한 일부 초기 포맷 정보로 시작한다. 일부 상황들에서, 데이터 소스의 기록 구조는 초기에 알려지지 않을 수도 있고, 대신에 데이터 소스 또는 데이터의 분석 후에 결정될 수 있다. 기록에 관한 초기 정보는, 예를 들어, 구별 값, 레코드 내의 필드 순서, 및 비트들로 표시되는 값 유형(예: 문자열, 부호가 있거나/부호가 없는 정수)을 나타낸다.
데이터 소스(102)를 제공하는 저장 장치는 실행 환경(104)에 국부적일 수 있고, 예를 들어, 실행 환경(104)(예를 들어, 하드 드라이브(108))을 호스팅하는 컴퓨터에 연결된 저장 매체 상에 저장될 수 있거나, 또는 실행 환경(104)에 원격일 수 있고, 예를 들어 원격 접속(예를 들어, 클라우드 컴퓨팅 인프라 구조에 의해 제공됨)을 통해, 실행 환경(104)을 호스팅하는 컴퓨터와 통신하는 원격 시스템(예를 들어, 메인 프레임(110) 상에 호스팅될 수 있다.
실행 모듈(112)은 전처리 모듈(106)에 의해 준비된 데이터를 처리하여 출력 데이터를 생성한다. 출력 데이터는 실행 환경(104)에 액세스 가능한 데이터 소스(102) 또는 데이터 저장 시스템(116)에 다시 저장되거나, 또는 달리 사용될 수 있다.
데이터 저장 시스템(116)은 또한 개발 환경(118)에 액세스 가능하다. 개발자(120)는 개발 환경(118)을 사용하여 정점들 사이의 지시된 링크들(작업 엘리먼트들의 흐름들, 즉 데이터를 나타냄)에 의해 연결된 정점들(데이터 프로세싱 컴포넌트들 또는 데이터 세트들을 나타냄)을 포함하는 데이터 흐름 그래프로서 애플리케이션들을 개발할 수 있다. 예를 들어, 이러한 환경은, 본 명세서에 참고로 포함된, “Managing Parameters for Graph-Based Applications”라는 제목의 미국 특허 제2,007/0011668호에 보다 상세히 기술되어 있다. 이러한 그래프-기반 계산을 실행하기 위한 시스템은, 본 명세서에 참고로 포함된, “EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS,”이라는 미국 특허 제5,966,072호에 기재되어 있다. 이 시스템에 따라 작성된 데이터 흐름 그래프들은 그래프 컴포넌트들에 의해 표현된 개별적인 프로세스들로 정보를 가져오고 오고 나가게 하고, 프로세스들 간에 정보를 이동시키고, 프로세스들의 실행 순서를 정의하는, 방법들을 제공한다. 이 시스템은 임의의 사용 가능한 방법들(예를 들어, 그래프의 링크들에 따른 통신 경로들은 TCP/IP 또는 UNIX 도메인 소켓들을 사용하거나, 공유된 메모리를 사용하여 프로세스 간에 데이터를 전달할 수 있음)로부터 프로세스 간 통신 방법들을 선택하는 알고리즘들을 포함한다
일부 실시 예들에서, 개발 환경(118)은 이하에서 보다 상세히 설명되는 바와 같이, 종래의 서브-그래프로부터 동적인 서브-그래프를 생성하기 위한 동적 서브-그래프 생성기(121)를 포함한다.
1. 동적으로 링크된 서브-그래프들(Dynamically Linked Sub-Graphs)
개발 환경(118)에서 개발될 수 있는 하나의 특정 유형의 데이터 흐름 그래프는 "동적 링크된 서브-그래프(dynamic-linked sub-graph)"라고 불린다. 일반적으로, 동적으로 링크된 서브-그래프는 서브-그래프 인터페이스 및 서브-그래프 인터페이스를 따르는 구현 서브-그래프를 포함한다. 서브-그래프 인터페이스는 컨테이너 그래프의 흐름과 서브-그래프 인터페이스와 연관된 서브-그래프 사이의 연결 지점들을 정의하는, 적어도 하나의 "흐름 접속들"을 포함한다. 각각의 흐름 접속은 제 1 데이터 흐름 그래프의 컴포넌트 상의 포트로의 또는 포트로부터의 데이터 흐름과 제 2 데이터 흐름 그래프의 컴포넌트 상의 포트로의 또는 포트로부터의 데이터 흐름 간의 연결(또는 "접속")을 나타낸다.
데이터 흐름 그래프를 개발할 때, 개발자는 서브-그래프 인터페이스를 데이터 흐름 그래프에서 구현 서브-그래프를 위한 플레이스홀더(placeholder)로서 사용할 수 있다. 일부 예들에서, 서브-그래프 인터페이스를 포함하는 데이터 흐름 그래프는 "컨테이너 데이터 흐름 그래프", 또는 단순히 "컨테이너 그래프"로 지칭된다.
도 2a를 참조하면, 컨테이너 데이터 흐름 그래프(200)의 일례는, 흐름들(206A-206E)에 의해 상호연결된 포트들(204A-204J)을 모두 갖는, 복수의 컴포넌트들(208A-208B) 및 서브-그래프 인터페이스(210)에 데이터를 제공하거나 이들로부터 데이터를 수신하는 다수의 데이터 세트들(202A-202C)을 포함한다. 컨테이너 데이터 흐름 그래프(200)에서, 서브-그래프 인터페이스(210) 대신 데이터 흐름 그래프에 정적으로 링크된 컴포넌트는 없다. 대신에, 서브-그래프 인터페이스(210)는 서브-그래프 인터페이스(210)를 따르는 구현 서브-그래프로 대체될 데이터 흐름 그래프(200)에서 플레이스홀더로서 기여한다(serve).
도 2b를 참조하면, 도 2a의 서브-그래프 인터페이스(210)에 대응하는 구현 서브-그래프(201)의 일례는, 흐름들(206F-206I)에 의해 상호연결되는, 복수의 컴포넌트들(208C-208D) 및 포트들(204D, 204F, 204G 및 204K-204O)을 포함한다. 구현 서브-그래프(201)가 도 2a의 서브-그래프 인터페이스(210)의 구현이기 때문에, 구현 서브-그래프는 서브-그래프 인터페이스(210)상의 입력 포트에 대응하는 입력 흐름들(206G, 206F) 및 서브-그래프 인터페이스(210)상의 출력 포트에 대응하는 출력 흐름들을 갖는다.
컨테이너 데이터 흐름 그래프(200)를 개발한 후(예를 들어, 컨테이너 데이터 흐름 그래프(200)를 실행하기 바로 전에), 데이터 흐름 그래프는 실행을 위해 준비된다. 실행을 위한 데이터 흐름 그래프를 준비하는 한 단계는 구현 서브-그래프(201)를 컨테이너 데이터 흐름 그래프(200)에 링크시킴으로써, 컨테이너 데이터 흐름 그래프(200)의 서브-그래프 인터페이스(210)를 구현 서브-그래프(201)로 대체함으로써 결합된 데이터 흐름 그래프를 형성하는 것을 포함한다.
예를 들어, 도 2c를 참조하면, 결합된 데이터 흐름 그래프(300)는 서브-그래프 인터페이스(210) 대신에도 도 2b의 구현 데이터 흐름 그래프(201)가 링크된 도 2a의 컨테이너 데이터 흐름 그래프(200)를 포함한다. 구현 데이터 흐름 그래프(201)가 서브-그래프 인터페이스(210)에 일치하기 때문에, 구현 데이터 흐름 그래프(201)의 모든 입력 및 출력 포트는 흐름들을 통해 컨테이너 데이터 흐름 그래프(200)의 컴포넌트들에 연결된다. 구현 서브-그래프(201)를 컨테이너 데이터 흐름 그래프(200)에 링크시킴으로써 결합된 데이터 흐름 그래프(300)를 형성한 후에, 결합된 데이터 흐름 그래프(300)가 컴파일되고 실행될 수 있다.
동적으로 링크된 서브-그래프의 전술한 설명은 서브젝트(subject)에 대한 프라이머(primer)로서의 역할을 하기 위한 것이지 서브젝트에 대한 철저한 설명은 아니다. 동적으로 링크된 서브-그래프에 대한보다 상세한 설명은, 본 명세서에 참고로 포함된, “MANAGING INTERFACES FOR SUB-GRAPHS,”라는 제목의 미국 특허 출원 제14/561,494호에서 찾을 수 있다.
2. 동적 링크된 서브-그래프 생성(Dynamically Linked Sub-Graph Generation)
“MANAGING INTERFACES FOR SUB-GRAPHS,”라는 제목의 미국 특허 출원 제14/561,494호에 설명된 것과 같은 일부 예에서, 서브-그래프 인터페이스들은 사용자 지정되고 사용자들은 서브-그래프 인터페이스들을 따르는 구현 서브-그래프들을 작성한다. 다른 실시 예들에서, 기존, 종래의(즉, 정적으로 링크된) 서브-그래프들로부터 서브-그래프 인터페이스들 및 구현 서브-그래프들을 생성할 필요가 있다.
예를 들어, 도 3을 참조하면, 종래의 서브-그래프로부터 동적으로 링크된 서브-그래프의 생성을 개시하기 위해, 종래의 서브-그래프(400)는 개발 환경(118)을 이용하여(예를 들어, 사용자가 디스크로부터 종래의 서브-그래프(400)를 나타내는 파일을 선택함으로써) 우선 지정된다.
2.1 지정된 서브-그래프 개요(Specified Sub-Graph Overview)
이 예에서, 특정 서브-그래프(400)의 블록도는, 복수의 컴포넌트들(302A-302C)을 사용하여, 제 1 입력 포트(304A) 및 제 2 입력 포트(304B)로부터 수신된 데이터를 프로세싱하고 프로세싱된 데이터를 제 1 출력 포트(304C), 제 2 출력 포트(304D), 및 제 3 출력 포트(304E)에 기록하도록 구성된다. 서브-그래프(400)는 제 1 컴포넌트(302A), 제 2 컴포넌트(302B), 제 3 컴포넌트(302C) 및 제 4 컴포넌트(302D)를 포함한다. 컴포넌트들 각각은 입력 데이터를 수신하기 위한 입력 포트들 및 출력 데이터를 제공하기 위한 출력 포트들(예를 들어, 포트들(304F-304N)) 중 하나 또는 둘 모두를 갖는다. 일반적으로, 각각의 컴포넌트는 그 입력 포트(들)로 흐르는 입력 데이터에 적어도 하나의 계산을 적용하고 계산 결과를 출력 포트(들)를 통해 출력으로서 제공한다. 특정 유형의 컴포넌트들(예를 들어, 제 3 컴포넌트(302C))이 입력 포트들만 또는 출력 포트들만을 포함할 수 있는 것이 언급된다.
서브-그래프(400)의 입력 및 출력 포트들은 데이터가 서브-그래프(400)의 포트들과 컴포넌트들 사이에서 어떻게 전파되는지를 정의하는 흐름들(306A-306G)에 의해 상호연결된다. 구체적으로, 서브-그래프(400)의 경계에 포함된 제 1 입력 포트(304A)는 제 1 흐름(306A)에 의해 제 1 컴포넌트(302A)에 포함된 제 3 입력 포트(304F)에 연결된다. 서브-그래프(400)의 경계에 포함된 제 2 입력 포트(304B)는 제 2 흐름(306B)에 의해 제 2 컴포넌트(302B)에 포함된 제 4 입력 포트(304G)에 연결된다. 제 1 컴포넌트(302A)에 포함된 제 4 출력 포트(304H)는 제 3 흐름(306C)에 의해 제 4 컴포넌트(302D)에 포함된 제 5 입력 포트(304J)에 연결된다. 제 2 컴포넌트(302B)에 포함된 제 5 출력 포트(304I)는 제 4 흐름(306D)에 의해 제 4 컴포넌트(302D)에 포함된 제 6 입력 포트(304K)에 연결된다.
제 3 컴포넌트(302C)에 포함된 제 6 출력 포트(304N)는 제 5 흐름(306E)에 의해 서브-그래프(400)의 경계에서 제 3 출력 포트(304E)에 연결된다. 제 4 컴포넌트(302D)에 포함된 제 7 출력 포트(304L)는 제 6 흐름(306F)에 의해 서브-그래프(400)의 경계에서 제 1 출력 포트(304C)에 연결된다. 제 4 컴포넌트(302D)에 포함된 제 8 출력 포트(304M)는 제 7 흐름(306G)에 의해 서브-그래프(400)의 경계상의 제 2 출력 포트(304D)에 연결된다. 제 3 컴포넌트(302C)는 파라미터(P1)에 의해 구성 가능하다.
2.2 동적 서브-그래프 생성기(Dynamic Sub-Graph Generator)
도 4를 참조하면, 지정된 서브-그래프(400)로부터 동적 링크된 서브-그래프를 생성하기 위해, 지정된 서브-그래프(400)가 개발 환경(118)의 동적 서브-그래프 생성기(121)로 먼저 판독된다. 일부 예들에서, 서브-그래프 생성기(121)는 자동 동적 서브-그래프 생성기(122) 및 서브-그래프 인터페이스 개선 모듈(128)을 포함한다. 매우 일반적으로, 자동 동적 서브-그래프 생성기(122)는 초기 서브-그래프 인터페이스(126)를 자동적으로 생성하고, 지정된 서브-그래프(400)에 대한 구현 서브-그래프(124)를 선택적으로 생성하고, 서브-그래프 인터페이스 인터페이스 개선 모듈(sub-graph interface refinement module)(128)은 자동적인 개선 프로세스를 수행하고, 사용자 입력을 수신하여, 최종 서브-그래프 인터페이스(130)를 생성하기 위해 초기 서브-그래프 인터페이스(126)를 수정하도록 선택적으로 구성된다. 일부 예들에서, 최종 서브-그래프 인터페이스(130)는 인터페이스(130)상의 특정 포트가 선택적으로 지정될 수 있다는 의미에서 초기 서브-그래프 인터페이스(126)보다 더 제한적이거나 또는 제한적인 특성을 가지거나, 또는 최종 서브-그래프 인터페이스(130)가 더 많은 수의 구현 서브-그래프들을 수용할 수 있도록 인터페이스(130)상의 특정 포트와 연관된 메타데이터 제한이 완화될 수 있다. 최종 서브-그래프 인터페이스(130)는, 선택적으로, 나중에 사용하기 위해 데이터 저장 장치(116)에 저장된다.
일부 예들에서, 서브-그래프 인터페이스(126)에 행해진 수정 중 적어도 일부에 대해서, 서브-그래프 인터페이스 개선 모듈(128)은 또한 구현 서브-그래프(124)에 대응하는 수정을 한다. 일부 실시 예들에서, 구현 서브-그래프(124)는 생성되지 않고, 서브-그래프 인터페이스(130)는 적어도 하나의 구현 서브-그래프들의 잠재적 미래 개발을 위해 그 자체로 사용된다.
2.2.1 자동 동적 서브-그래프 생성기(Automatic Dynamic Sub-Graph Generator)
도 5를 참조하면, 자동 동적 서브-그래프 생성기(122)는 특정 서브-그래프(400)를 수신하고, 구현 서브-그래프 형성 모듈(132) 및 메타데이터 전파 방향 식별 모듈(134)에 특정 서브-그래프(400)를 제공한다.
2.2.1.1 구현 서브-그래프 형성(Implementation Sub-Graph Formation)
구현 서브-그래프 형성 모듈(132)은 출력으로서 동적 서브-그래프 생성기(122)로부터 전달되는, 구현 서브-그래프(124)를 생성하기 위해 특정된 서브-그래프(400)를 프로세싱한다. 일부 실시 예들에서, 구현 서브-그래프(124)는 지정된 서브-그래프(400)의 복사를 먼저 생성함으로써 형성된다. 그 다음, 전술한 바와 같이, 서브-그래프 인터페이스(126)에 대해 행해진 적어도 일부 수정들에 대해, 서브-그래프 인터페이스 개선 모듈(128)은 또한 구현 서브-그래프(124)를 형성하기 위해 지정된 서브-그래프(400)의 복사에 대해 대응하는 수정들을 한다. 예를 들어, 서브-그래프 인터페이스(126) 상에 전파하는 "내향(inward)"으로 표시된 흐름 접속들은 또한 구현 서브-그래프(124) 상에 전파하는 "내향"으로서 마킹될 수 있다. 또한, 구현 서브-그래프(124)의 내부 구조에 대한 어느 정도의 편집이 디자인된 전파 방향을 지원하도록 이루어질 필요가 있을 수 있다.
2.2.1.2 메타데이터 전파 방향 식별(Metadata Propagation Direction Identification)
메타데이터 전파 방향 식별 모듈(134)은 지정된 서브-그래프의 경계상의 포트들에 대응하는 흐름 접속들을 식별함으로써 초기 서브-그래프 인터페이스를 형성하고 식별된 흐름 접속들 각각에 대한 메타데이터 전파의 방향을 결정한다.
메타데이터 전파 방향 식별 모듈(134)의 동작을 설명하기 전에, 메타데이터 전파에 대한 간단한 설명이 제공된다. 데이터 흐름 그래프에서, 데이터 흐름 그래프 내의 컴포넌트의 포트 및/또는 컴포넌트 자체와 연관된 메타데이터와 연관된 메타데이터가 관리되는 것이 중요하다. 일부 예들에서, 메타데이터는 데이터의 설명자(예를 들어, 필드들의 시퀀스 및 포트로 유입되거나 유출되는 레코드들의 데이터 타입들을 포함하는 포트에 대한 레코드 포맷) 또는 계산 특성(예를 들어, 파티셔닝 또는 컴포넌트에 대한 레이아웃)을 포함한다. 다른 실시 예들에서, 메타데이터는 컴포넌트가 사용할 수 있는 메모리의 양, 컴포넌트가 사용할 수 있는 컴퓨팅 자원들, 소티드니스(sortedness), 압축 방법, 문자 세트, 바이너리 표현(예: 빅-엔디안, 리틀-엔디안) 또는 데이터 변환들을 포함한다.
메타데이터 관리는 수동으로, 자동으로, 또는 수동 및 자동 메타데이터 관리의 조합을 사용함으로써, 달성될 수 있다. 수동 메타데이터 관리의 경우, 메타데이터는, 예를 들어, 그래프 개발자 또는 그래프 사용자에 의해 제공된다. 자동 메타데이터 관리의 경우, 메타데이터는 공지된(즉, 명시적으로 정의된) 메타데이터를 갖는 그래프의 부분들로부터 미지의 메타데이터를 갖는 그래프의 부분들로 전파된다. 메타데이터 전파는 주어진 포트 또는 컴포넌트에 대한 메타데이터가 그래프 사용자 또는 개발자에 의해 직접 공급되지 않을 때 필요하다. 그러한 경우에, 주어진 포트 또는 컴포넌트에 대한 메타데이터는 그래프 내의 다른 포트들 또는 컴포넌트들로부터 도출되어야 한다. 본 명세서에서 사용되는 바와 같이 메타데이터 전파라는 용어는 이러한 유도 프로세스(derivation process)를 지칭한다.
종래의 컴포넌트들 및 데이터 세트들을 포함하는 종래의 데이터 흐름 그래프에서, 데이터 흐름 그래프를 통한 명시적으로 정의된 메타데이터의 이러한 전파는 데이터 흐름 그래프의 모든 컴포넌트와 연관된 메타데이터를 초래한다. 메타데이터 전파에서 발생하는 임의의 충돌은 일반적으로 개발자 개입을 위해 플래그된다. 그러나, 서브-그래프 인터페이스를 포함하는 데이터 흐름 그래프에 대한 메타데이터 전파는 일반적으로 종래의 컴포넌트만을 포함하는 데이터 흐름 그래프에 대한 메타데이터 전파와 다르게 취급된다. 특히, 메타데이터는 편집-시간 메타데이터 전파 스테이지 및 링크-시간 메타데이터 해석 스테이지의 두 스테이지들로 전파될 수 있다.
서브-그래프 인터페이스 대신에 링크될 컨테이너 그래프(즉, 서브-그래프 인터페이스를 컴포넌트로서 포함하는 그래프) 및 구현 서브-그래프(즉, 서브-그래프 인터페이스를 따르는 서브-그래프)는 서로의 메타데이터 정보를 알지 못하기 때문에, 이 2 스테이지 접근법이, 편집-시간에, 사용된다. 이 정보에 대한 액세스가 없다면, 종래의 메타데이터 전파는 메타데이터가 구현 서브-그래프로의 "내향" 방향으로(즉, 컨테이너 그래프는 구현 서브-그래프에 대한 메타데이터의 소스로서 작용함) 또는 구현 서브-그래프로부터 “외향” 방향으로 (즉, 컨테이너 그래프는 구현 서브-그래프로부터의 메타데이터의 싱크(sink)로서 작용함) 전파되어야 하는지를 알 수 있는 방법이 없다.
따라서, 서브-그래프 인터페이스를 포함하는 데이터 흐름 그래프에서 메타데이터 전파를 가능하게 하기 위해, 서브-그래프 인터페이스의 각각의 흐름 접속은 메타데이터 전파 방향을 특정한다. 일부 예들에서, 메타데이터 전파의 가능한 방향들의 세트는 "내향" 전파 및 "외향" 전파를 포함한다.
서브-그래프 인터페이스상의 흐름 접속이 "내향"의 메타데이터 전파 방향을 갖는 것으로 선언될 때, 컨테이너 그래프의 메타데이터 전파는 흐름 접속에 연결된 흐름을 통해 메타데이터 정의를 제공한다(결국 구현 서브-그래프의 흐름에 연결된 포트에 대해). 즉, 컨테이너 그래프에서, 편집-시간 메타데이터 전파는 흐름 접속을 메타데이터 싱크로서 취급한다.
서브-그래프 인터페이스상의 흐름 접속이 "외향"의 메타데이터 전파 방향을 갖는 것으로 선언될 때, 구현 서브-그래프의 메타데이터 전파는 흐름 접속에 대한 메타데이터 정의를 컨테이너 그래프에 제공한다. 즉, 컨테이너 그래프에서, 편집-시간 메타데이터 전파는 흐름 접속을 메타데이터에 대한 편집-시간 정의가 존재하지 않더라도 메타데이터 소스로서 취급한다(정의는 구현 서브-그래프로부터 링크-시간에 단지 이용 가능하기 때문에).
메타데이터 전파 방향 식별 모듈(134)은 지정된 서브-그래프(400)에서 메타데이터의 공지된 소스들(예를 들어, 포트들)을 식별하고, 식별된 소스들로부터 시작된 메타데이터 전파 프로세스를 수행하여 초기 서브-그래프 인터페이스(126) 상에 지정된 서브-그래프(400) 및 이들의 대응하는 흐름 접속의 경계상의 포트에 대한 메타데이터 전파의 방향을 결정한다
도 6을 참조하면, 동작 시에, 메타데이터 전파 방향 식별 모듈(134)은 지정된 서브-그래프(400)의 제 1 입력 포트(304A)에 대응하는 제 1 흐름 접속, i0(644), 지정된 서브-그래프(400)의 제 2 입력 포트(304B)에 대응하는 제 2 흐름 접속, i1(646), 지정된 서브-그래프의 제 1 출력 포트(304C)에 대응하는 제 3 흐름 접속, o0(648), 지정된 서브-그래프(400)의 제 2 출력 포트(304D)에 대응하는 제 4 흐름 접속, o1(650), 및 지정된 서브-그래프(400)의 제 3 출력 포트(304E)에 대응하는 제 5 흐름 접속, o2를 포함하는 초기 서브-그래프 인터페이스(126)를 생성한다.
메타데이터 전파 방향 식별 모듈(134)은 그 다음에, 메타데이터의 알려진 소스들과 같이(예컨대, 포트들의 특성을 분석함으로써), 지정된 서브-그래프(400)의 제 1 컴포넌트(302A)에 포함된 제 4 출력 포트(304H) 및 지정된 서브-그래프(400)의 제 3 컴포넌트(302C)에 포함된 제 6 출력 포트(304H)를 식별한다. 도 6에서, 제 4 출력 포트(304H) 및 제 6 출력 포트(304N)와 연관된 메타데이터는, 각각, M1 및 M2로 표시된다. 그러나, 표기 M1 및 M2는 임의의 특정 메타데이터 값이 공지된 메타데이터 소스와 연관된다는 것을 의미하는 것은 아니다. 실제로, 일부 예들에서, 공지된 메타데이터 소스와 연관된 특정 메타데이터 값은 알려지지 않았고, M1 및 M2는 전파에 사용될 수 있는 단순히 플레이스홀더 메타데이터 값이다. 물론, 플레이스홀더 메타데이터 값은 컨테이너 그래프가 실행될 때 알려져 있다. 다른 예들에서, M1 및 M2는 알려진 메타데이터 소스와 연관된 특정 메타데이터 값을 나타낼 수 있다.
공지된 메타데이터 소스가 식별되면, 메타데이터 전파 방향 식별 모듈(134)은 알려진 메타데이터 소스 모두에 대해 편집-시간 메타데이터 전파 프로세스를 수행한다.
그렇게함에 있어서, 메타데이터 전파 방향 식별 모듈(134)은 M1을 제 4 출력 포트(304H)로부터 업스트림 방향(즉, 제 1 흐름 접속을 향하는 방향, i0(644)) 및 다운스트림 방향(즉, 제 3 흐름 접속, o0(648), 및 제 4 흐름 접속, o1(650), 을 향하는 방향)에서 전파한다.
업스트림 방향에서, 편집-시간 메타데이터 전파 프로세스는 제 1 컴포넌트(302A)가 메타데이터에 임의의 변환을 적용하지 않기 때문에, 컴포넌트(302A)를 통해 메타데이터, M1을 전파하고, 이를 제 1 컴포넌트(302A) 상에 제 3 입력 포트(304F)와 연관시킨다. 일부 예들에서, 이 연관성은, 메타데이터가 전파된 포트로부터 포인팅하고 메타데이터가 시작된 포트에서 끝나는(제 3 입력 포트(304f)로부터 제 4 출력 포트(304H)를 포인팅하는 화살표), 화살표(때로는 "같은" 화살표라고 함)로 표시된다. 그 다음, M1은 제 3 입력 포트(304F)로부터 지정된 서브-그래프(400)의 경계 상에 제 1 입력 포트(304A) (결과적으로, 제 1 입력 포트(304a)로부터 제 4 출력 포트(304H)를 포인팅하는 "동일" 화살표가 됨) 및 제 1 입력 포트(304A)와 연관된 제 1 흐름 접속, i0(644)로 전파된다. 메타데이터(즉, M1)가 공지된 메타데이터 소스로부터 흐름 접속(644)으로 전파되기 때문에, 제 1 흐름 접속(1104)은 "외향"의 메타데이터 전파 방향이 할당된다.
다운 스트림 방향에서, 편집-시간 메타데이터 전파 프로세스는 M1을 제 1 컴포넌트(302A)의 제 4 출력 포트(304H)로부터 제 4 컴포넌트(302D)의 제 5 입력 포트(304J)로 전파한다(결과적으로 제 5 입력 포트(304J)로부터 제 4 출력 포트(304H)로 포인팅하는 “동일” 화살표가 됨). 편집-시간 메타데이터 전파 프로세스는 제 4 컴포넌트(302D)가 메타데이터에 변환을 적용하고 그에 따라 다운 스트림 방향으로 M1을 더 전파하지 않는다고 결정한다.
편집-시간 메타데이터 전파 프로세스는 또한 제 3 컴포넌트(302C)상의 제 6 출력 포트(304N)로부터 지정된 서브-그래프(400)의 경계상의 제 3 출력 포트(304E) 및 제 3 출력 포트(304E)와 연관된 제 5 흐름 접속, o2(652)로 전파된다(결과적으로 제 3 출력 포트(304E)부터 제 6 출력 포트(304N)를 포인팅하는 "동일” 화살표가 됨). 메타데이터(즉, M2)가 공지된 메타데이터 소스로부터 흐름 접속(652)으로 전파되기 때문에, 제 5 흐름 접속, o2(652)은 "외향"의 메타데이터 전파 방향으로 할당된다.
편집-시간 메타데이터 전파 프로세스의 종결에서, "외향"의 메타데이터 전파 방향을 갖는 것으로 마킹되지 않은(즉, 전파된 메타데이터를 수신하지 않음) 임의의 흐름 접속은 “내향”의 메타데이터 전파 방향을 갖는 것으로 마킹된다. 도 7을 참조하면, 본 실시 예에서, 제 1 흐름 접속, i0(644) 및 제 5 흐름 접속, o2(652)만이 메타데이터 전파 방향 식별 모듈(134)에 의해 "외향”의 메타데이터 전파 방향으로 마킹되고, 그래서, 제 2 흐름 접속, i1(646), 제 3 흐름 접속, o0(648), 및 제 4 흐름 접속(650)은 메타데이터 전파 방향 식별 모듈(134)에 의해 "내향"의 메타데이터 전파 방향을 갖는 것으로 마킹된다. 일부 예들에서, 메타데이터 전파 방향 식별 모듈(134)에 의해 수행된 전파 표현은 구현 서브-그래프(124)와 함께 저장된다.
2.2.1.3 메타데이터 규칙 식별(Metadata Rule Identification)
초기 서브-그래프 인터페이스(126)상의 모든 흐름 접속에 대한 메타데이터 전파의 방향이 결정되면, 초기 서브-그래프 인터페이스(126) 및 지정된 서브-그래프(400)는, 지정된 서브-그래프(400)를 분석하여 초기 서브-그래프 인터페이스(126)에 포함시키기 위한 메타데이터 규칙을 결정하는, 메타데이터 규칙 식별 모듈(136)에 제공된다.
그렇게 하기 위해, 메타데이터 규칙 식별 모듈(136)은 메타데이터 전파의 “내향” 방향을 갖는 각각의 흐름 접속에 플레이스홀더 값들을 할당하고, 다른 편집-시간 메타데이터 전파 프로세스를 수행하여 지정된 서브-그래프(400)의 경계 상의 포트들 사이에 존재하는 관계들을 발견한다. 메타데이터 규칙 식별 모듈(136)은 메타데이터 규칙들을 초기 서브-그래프 인터페이스(126)의 흐름 접속들에 할당하기 위해 발견된 임의의 관계들을 사용한다. 예를 들어, 도 8을 참조하면, 플레이스홀더 메타데이터 D1은 제 2 흐름 접속, i1(646)에 할당되고, 플레이스홀더 메타데이터 D2는 제 3 흐름 접속, o0(648)에 할당되고, 플레이스홀더 메타데이터 D3은 제 4 흐름 접속, o1(650)에 할당된다.
메타데이터 규칙 식별 모듈(136)은 지정된 서브-그래프(400)의 경계상의 제 2 입력 포트(304B)로부터 제 2 컴포넌트(302B)상의 제 4 입력 포트(304G)로 D1을 전파한다(결과적으로, 제 4 입력 포트(304G)로부터 제 2 입력 포트(304B)로 포인팅하는 화살표가 됨). 편집-시간 메타데이터 전파 프로세스는 제 2 컴포넌트(302B)가 메타데이터에 임의의 변환을 적용하지 않고, 따라서 제 2 컴포넌트(302B)를 통해 제 5 출력 포트(304I)로 D1을 전파하는 것으로 결정한다(결과적으로 제 5 출력 포트(304I)로부터 제 2 입력 포트(304B)로 포인팅하는 "동일” 화살표가 됨).
메타데이터 규칙 식별 모듈(136)은 또한 D2를 제 1 출력 포트(304C)로부터 제 7 출력 포트(304L)로 전파한다(결과적으로 제 1 출력 포트(304C)로부터 제 7 출력 포트(304L)로 포인팅하는 "동일" 화살표가 됨). 편집-시간 메타데이터 전파 프로세스는 제 4 컴포넌트(302D)가 메타데이터(D2)에 변환을 적용하고 따라서 더 이상 D2를 전파하지 않는다고 결정한다.
메타데이터 규칙 식별 모듈(136)은 제 2 출력 포트(304D)로부터 제 8 출력 포트(304M)로 D3을 전파한다(결과적으로 제 8 출력 포트(304M)로부터 제 2 출력 포트(304D)로 포인팅하는 "동일” 화살표가 됨). 편집-시간 메타데이터 전파 프로세스는 제 4 컴포넌트(302D)가 메타데이터(D3)에 어떠한 변환도 적용하지 않으며, 따라서 D3를 제 4 컴포넌트(302D) 및 제 6 입력 포트(304K)를 통해 전달 함을 결정한다 제 6 입력 포트(304k)로부터 제 2 출력 포트(304D)를 포인팅하는 "화살표"로 표시됨).
“내향” 전파 방향을 갖는 것으로 마킹된 모든 포트들로부터 전파된 메타데이터와 함께, 메타데이터 규칙 식별 모듈(136)은, D1과 D3의 전파에 기반하여, 제 2 입력 포트(304B)와 연관된 임의의 메타데이터가 제 2 출력 포트(304D)와 연관된 메타데이터와 동일해야 하는 것을 결정한다. 도 9를 참조하면, 메타데이터 규칙 식별 모듈(136)은 제 2 흐름 접속, i1(646) 및 제 4 흐름 접속, o1(650) 사이의 동일 메타데이터 관계를 나타내기 위해 초기 서브-그래프 인터페이스(126) 상에 "복사" 메타데이터 규칙(754)을 포함한다.
2.2.1.4 파라미터 식별(Parameter Identification)
다시 도 5를 참조하면, 식별된 메타데이터 규칙에 따라, 초기 서브-그래프 인터페이스(126) 및 지정된 서브-그래프(400)는, 편집-시간 메타데이터 전파 프로세스에 의해 도달 가능하지 않지만, 지정된 서브-그래프 (400)에서 디폴트 값을 갖지 않는 지정된 서브-그래프와 연관된 파라미터를 사용하여 구성 가능한, 지정된 서브-그래프의 임의의 포트들 또는 컴포넌트들을 식별하는 파라미터 식별 모듈(138)에 제공된다. 파라미터 식별 모듈(138)은 서브-그래프 인터페이스 파라미터를 그것이 식별하는 임의의 파라미터들에 대한 초기 서브-그래프 인터페이스(126)에 추가한다.
도 10을 참조하면, 파라미터 식별 모듈(138)은 제 3 컴포넌트(302C)가, 지정된 서브-그래프(400)에서 디폴트 값을 갖지 않는 파라미터, P1을 사용하여 구성 가능하다고 결정한다. 따라서, 파라미터 식별 모듈(138)은 서브-그래프 인터페이스 파라미터, P1(1058)을 초기 서브-그래프 인터페이스(126)에 추가한다.
도 11을 참조하면, 파라미터 식별 모듈(138)의 결과는 완전한 초기 서브-그래프 인터페이스(126)이다. 완전한 초기 서브-그래프 인터페이스(126)는 자동 동적 서브-그래프 생성기(122)로부터 전달된다.
일부 예들에서, 자동 동적 서브-그래프 생성기(122)의 다양한 단계들은 위에서 설명된 예시적인 순서 이외의 순서로 수행된다는 것을 유의해야 한다.
2.2.2 서브-그래프 인터페이스 개선(Sub-Graph Interface Refinement)
도 4를 다시 참조하면, 자동 서브-그래프 생성기(122)에 의해 출력된 초기 서브-그래프 인터페이스(126)는 서브-그래프 인터페이스 개선 모듈(128)에 제공되어, 사용자(또는 자동화된 개선 프로세스)가 초기 서브-그래프 인터페이스(128)를 수정하여 최종 서브-그래프 인터페이스(130)를 생성할 수 있다.
일부 예들에서, 서브-그래프 인터페이스 개선 모듈(128)은 초기 서브-그래프 인터페이스(126)의 사용자 개선을 용이하게 하는 다수의 스크린을 포함하는 "위저드(wizard)"로서 구현된다.
도 12를 참조하면, 위저드(1260)의 제 1 화면(1262)은 자동 서브-그래프 생성기(122)에 의해 자동적으로 발견된 초기 서브-그래프 인터페이스(126)의 흐름 접속을 구성하기 위한 테이블(1264)을 포함한다. 표는 발견된 흐름 접속들의 이름 목록을 포함하는 제 1 열(1265), 흐름 접속의 각각이 최종 서브-그래프 인터페이스(103) 상에 "요구되는(required)"지를 나타내는 체크 박스들(1268)을 포함하는 제 2 열(1266) 및 각각의 흐름 접속이 "캔 팬(can fan)"여부를 표시하기 위한 체크 박스들(1272)을 포함하는 제 3 컬럼(1270)을 포함한다.
제 2 열(1266) 내의 주어진 흐름 접속에 대응하는 체크 박스를 체킹하는 것은 주어진 흐름 접속이 최종 그래프 인터페이스(130)상의 "요구되는" 흐름 접속임을 지시한다. 주어진 흐름 접속에 대응하는 체크 박스를 체크하지 않으면 주어진 흐름 접속이 최종 그래프 인터페이스(130)에서 요구되지 않거나 "선택적(optional)"이라는 것을 나타낸다. 매우 일반적으로, 컨테이너 그래프가 컴파일되고 실행되기 전에 "요구되는" 서브-그래프 인터페이스상의 흐름 접속이 컨테이너 그래프의 흐름에 접속되어야 한다. "선택적"인 서브-그래프 인터페이스상의 흐름 접속은 컨테이너 그래프의 흐름에 접속되거나 접속되지 않을 수 있으며, 선택적인 흐름 접속이 컨테이너 그래프에서의 흐름에 접속되는지의 여부에 상관없이 컨테이너 그래프가 컴파일되고 실행될 수 있다.
제 3 컬럼(1270) 내의 주어진 흐름 접속에 대응하는 체크 박스를 체킹하는 것은 주어진 흐름 접속이, 흐름 접속이 구현 서브-그래프의 입력 포트와 연관되어 있다면 "팬-인(fan-in) 또는 흐름 접속이 구현 서브-그래프의 출력 포트와 연관되어 있으면 "팬 아웃(fan-out)"을 허용하는 것을 나타낸다. 제 3 컬럼(1270)에서 주어진 흐름 접속에 대응하는 체크 박스를 체크하지 않으면, 주어진 흐름 접속이 "팬인(fan-in)"또는 "팬 아웃(fan-out)"할 수 없음을 나타낸다.
도 12의 예에서, 사용자는, 제 1 흐름 접속, i0(644)가 요구되고 팬-인(fan-in)할 수 있음을 표시하고, 제 2 흐름 접속, i1(646)이 요구되고 팬-인(fan-in)할 수 있음을 표시하고, 제 3 흐름 접속, o0(648)이 요구되고 팬-아웃(fan-out)할 수 없음을 표시하고, 제 4 흐름 접속, o1(650)이 요구되고 팬-아웃(fan-out)할 수 없음을 표시하고, 제 5 흐름 접속, o2(652)가 요구되고 팬-아웃(fan-out)할 수 없음을 표시함으로써, 흐름 접속들을 구성하였다.
사용자가 흐름 접속들의 자신의 구성에 만족하면, 위저드(1260)에서 "OK" 버튼(1274)을 클릭하여 위저드(1260)로 하여금 위저드(1260)의 전파 규칙 설정 화면으로 진행하게 한다.
도 13을 참조하면, 전파 규칙 설정 화면(1375)은 2개의 테이블들인, 내측의 메타 그래프 전파 방향을 갖는 초기 서브-그래프 인터페이스(126) 상의 모든 흐름 접속들을 포함하는 제 1 테이블(1376)과, 외향 메타데이터 전파 방향을 갖는, 초기 서브-그래프 인터페이스(126) 상의 모든 흐름 접속들을 포함하는 제 2 테이블(1378)을 포함한다. 제 1 테이블(1376)에서, 동일한 메타데이터(즉, "복사" 메타데이터 전파 규칙의 일부인 흐름 접속)를 갖는 것이 요구되는 흐름 접속은 함께 그룹화된다.
예를 들어, 도 13에서, 제 1 테이블(1376)은 2개의 그룹들인, 제 3 흐름 접속, o0(648)을 포함하는 제 1 그룹(1380), 및 제 2 흐름 접속, i1(646) 및 제 4 흐름 접속, o1(650)을 포함하는 제 2 그룹(1382)을 포함한다. 제 3 흐름 접속, o0(648)은 "복사(copy)" 메타데이터 전파 규칙의 일부가 아니기 때문에, 제 1 그룹(1380)의 유일한 흐름 접속이다. 제 2 흐름 접속, i1(646) 및 제 4 흐름 접속, o1(650)은 "복사" 메타데이터 전파 규칙(상기 예에서 설명된 바와 같이)의 일부이기 때문에, 이들은 모두 동일한 그룹에 있다(즉, 제 2 그룹(1382)).
제 2 테이블(1378)은 2 개의 그룹인, 제 1 흐름 접속, i0(644)을 포함하는 제 3 그룹(1384), 및 제 5 흐름 접속, o2(652)를 포함하는 제 4 그룹(1386)을 포함한다.
위저드의 사용자는, 예를 들어, "복사" 메타데이터 전파 규칙을 형성하기 위해 그룹들을 병합하거나 "복사" 메타데이터 전파 규칙을 제거하기 위해 그룹을 분할함으로써, 메타데이터 전파 규칙들을 구성하기 위해 전파 규칙 구성 화면(1375)을 사용할 수 있다. 예를 들어, 사용자가 제 2 그룹(1382)에 의해 지정된 "복사" 메타데이터 전파 규칙이 최종 서브-그래프 인터페이스(130)에 포함되는 것을 원하지 않는다면, 이들은 제 2 그룹(1382)을 두 개의 다른 그룹들, 즉 제 2 흐름 접속, i1(646)을 포함하는 하나 및 제 4 흐름 접속, o1(650)을 포함하는 다른 하나를 포함한다.
사용자가 서브-그래프 인터페이스에 대한 전파 규칙의 구성에 만족하면, 이들은 위저드(1260)에서 "OK" 버튼(1374)을 클릭하여 위저드(1260)를 위저드(1260)의 레이아웃 구성 화면으로 진행시킨다.
도 14를 참조하면, 레이아웃 구성 화면(1488)은 2 개의 옵션들을 갖는 라디오 버튼을 포함한다. 제 1 옵션(1490)은 최종 그래프 인터페이스(130)의 모든 흐름 접속들이, 레이아웃 파라미터(1492)에 의해 지정된 것과 같이, 동일한 레이아웃 메타데이터를 사용해야 함을 나타낸다. 제 2 옵션(1494)은 사용자가 테이블(1496)을 사용하여 최종 그래프 인터페이스의 흐름 접속에 대한 맞춤 레이아웃 특성들을 지정할 수 있게 한다. 테이블(1496)은 사용자가 각각의 흐름 접속들과 연관된 레이아웃 메타데이터의 전파 방향을 지정하고 동일한 레이아웃 메타데이터를 갖는 흐름 접속을 그룹화하게 한다.
도 14에서, 사용자는 "레이아웃(Layout)"이라는 레이아웃 파라미터에 의해 지정된 바와 같이, 모든 흐름 접속이 동일한 레이아웃 메타데이터를 갖는 것을 나타내는 제 1 옵션(1490)을 선택했다.
사용자가 서브-그래프 인터페이스(130)에 대한 레이아웃의 구성에 만족할 때, 이들은 위저드(1260)에서 "OK" 버튼(1474)을 클릭하여, 위저드(1260)로 하여금 위저드(1260)의 파라미터 설정 화면으로 진행시킨다.
도 15를 참조하면, 위저드(1260)의 파라미터 설정 화면(1549)은 초기 서브-그래프 인터페이스(126)와 연관된 서브-그래프 인터페이스 파라미터가 최종 서브-그래프 인터페이스(130) 상에 포함되도록 선택하기 위한 테이블(1597)을 포함한다. 테이블(1597)은, 초기 서브-그래프 인터페이스(126) 상의 서브-그래프 인터페이스 파라미터들과 연관된 파라미터들의 명단들을 포함하는 제 1 열(1598) 및 제 1 열(1598)에 열거된 각각의 파라미터에 대한 서브-그래프 인터페이스 파라미터가 최종 서브-그래프 인터페이스에 포함되는지를 나타내기 위한, 체크 박스(1568)을 포함하는 제 2 열(1599)을 포함한다.
도 15의 예에서, 단지 하나의 파라미터, P1만이 제 1 열(1598)에 포함되고, P1과 연관된 체크 박스(1568)가 체크되어, P1에 대한 서브-그래프 인터페이스 파라미터가 최종 서브-그래프 인터페이스(130)에 포함되는지를 나타낸다.
사용자가 서브-그래프 인터페이스(130)에 대한 서브-그래프 인터페이스 파라미터의 구성에 만족하면, 위저드(1260)에서 "OK" 버튼(1574)을 클릭하여, 위저드(1260)로 하여금 최종 서브-그래프 인터페이스(130)를 완료하고 출력하게 한다.
도 16을 참조하면, 최종 서브-그래프 인터페이스(130)는, 요구되고 메타데이터 전파의 외향 방향을 갖는 제 1 흐름 접속, i0(644), 요구되고 메타데이터 전파의 내향 방향을 갖는 제 2 흐름 접속, i1(646), 요구되고 메타데이터 전파의 내향 방향을 갖는 제 3 흐름 접속, o0(648), 요구되고 메타데이터 전파의 내향 방향을 갖는 제 4 흐름 접속, o1(650), 선택적이고 메타데이터 전파의 외향 방향을 갖는 제 5 흐름 접속, o2(652)을 포함한다. 최종 서브-그래프 인터페이스(130)는 또한 서브-그래프 인터페이스 파라미터(1058), P1 및 제 2 흐름 접속, i1(646)와 제 4 흐름 접속, o1(650) 사이의 "복사" 메타데이터 규칙(754)을 포함한다.
최종 서브-그래프 인터페이스(130)는 도 2a-도 2c의 서브-그래프 인터페이스(210)가 사용되는 것과 동일한 방식으로 컨테이너 그래프들에서 사용될 수 있다. 또한, 사용자에 의한 서브-그래프 인터페이스(130)에 대한 개선에 따라, 전처리 모듈(106)은, 서브-그래프 인터페이스(130)에 따르는 것을 고려하면, 자동 생성된 구현 서브-그래프를 포함하는 다수의 상이한 구현 서브-그래프를 동적으로 링크 및 로딩할 수 있다.
3. 대안들(Alternatives)
일부 예들에서, 디스크 상에 서브-그래프를 특정하기보다는, 사용자는 동적으로 링크된 서브-그래프를 생성하기 위해 미리-존재하는 데이터 흐름 그래프에서 컴포넌트 세트들을 선택할 수 있다. 동적으로 링크된 서브-그래프 생성이 완료되면, 선택된 컴포넌트 세트는 데이터 흐름 그래프에서 생성된 동적 링크된 서브-그래프의 서브-그래프 인터페이스로 대체된다.
4. 구현들(Implementations)
위에서 설명된 서브-그래프 인터페이스 생성 접근법은, 예를 들어, 적절한 소프트웨어 명령을 실행하는 프로그램 가능한 컴퓨팅 시스템을 사용하여 구현될 수 있거나, 또는 FPGA(field-programmable gate array) 또는 일부 하이브리드 형태와 같은 적절한 하드웨어로 구현될 수 있다. 예를 들어, 프로그래밍된 접근법에서 소프트웨어는 적어도 하나의 프로그램된 또는 프로그램 가능한 컴퓨팅 시스템(분산된, 클라이언트/서버 또는 그리드와 같은 다양한 아키텍처일 수 있음)상에서 실행되는 적어도 하나의 컴퓨터 프로그램들의 절차를 포함할 수 있고, 각각은 적어도 하나의 프로세서, 적어도 하나의 데이터 스토리지 시스템(휘발성 및/또는 비-휘발성 메모리 및/또는 스토리지 엘리먼트들을 포함함), 적어도 하나의 사용자 인터페이스(적어도 하나의 입력 디바이스 또는 포트를 사용하여 입력을 수신하기 위한 것, 적어도 하나의 출력 디바이스 또는 포트를 사용하여 출력을 제공하기 위한 것)를 포함한다. 소프트웨어는, 예를 들어, 데이터 플로우 그래프들의 설계, 구성 및 실행과 연관된 서비스를 제공하는, 보다 큰 프로그램의 적어도 하나의 모듈을 포함할 수 있다. 프로그램의 모듈들(예를 들어, 데이터 플로우 그래프의 엘리먼트)은 데이터 구조들 또는 데이터 저장소에 저장된 데이터 모델을 따르는 상이한 조직화된 데이터로 구현될 수 있다.
일정 기간 동안(예컨대, 동적 RAM과 같은 동적 메모리 디바이스의 리프레시 주기들 사이의 시간) 매체의 물리적 특성(예를 들어, 표면 피트 및 랜드(surface pits and lands), 마그네틱 영역들(magnetic domains), 또는 전기적 전하)을 사용하여, 휘발성 또는 비-휘발성 스토리지 매체, 또는 임의의 상이한 비-일시적인 매체로 구현되는 것과 같이, 소프트웨어는 비-일시적 형태로 저장될 수 있다. 명령들을 로딩하기 위한 준비에서, 소프트웨어는 CD-ROM 또는 상이한 컴퓨터-판독 가능 매체(예를 들어, 범용 또는 특수 목적 컴퓨팅 시스템 또는 디바이스에 의해 판독 가능)와 같은, 실제적이고, 비-일시적인 매체 상에 제공될 수 있거나, 또는 네트워크의 통신 매체를 통해 그것이 실행되는 컴퓨팅 시스템의 실제적이고, 비-일시적인 매체에 전달될 수 있다(전파된 신호로 인코딩됨). 프로세싱의 일부 또는 전부는 특수 목적 컴퓨터 수행되거나, 코프로세서들(coprocessors) 또는 FPGA(field-programmable gate arrays) 또는 전용, 애플리케이션-특정 집적 회로들(ASICs)과 같은, 특수-목적 하드웨어를 사용하여 수행될 수 있다. 프로세싱은 소프트웨어에 의해 특정된 계산의 상이한 부분이 상이한 계산 엘리먼트에 의해 수행되는 분산 방식으로 구현될 수 있다. 이러한 각각의 컴퓨터 프로그램은, 스토리지 디바이스 매체가 본 명세서에 설명된 프로세싱을 수행하도록 컴퓨터에 의해 판독될 때 컴퓨터를 구성하고 동작시키기 위해, 바람직하게는 범용 또는 특수 목적 프로그래머블 컴퓨터에 의해 액세스 가능한 스토리지의 컴퓨터-판독가능 저장 매체(예를 들어, 고체 상태 메모리 또는 매체, 또는 자기 또는 광학 매체)에 저장되거나 다운로드될 수 있다. 본 발명의 시스템은 또한, 컴퓨터 프로그램으로 구성된, 실제적이고, 비-일시적인 매체로서 구현되는 것으로 고려될 수 있고, 그렇게 구성된 매체는 컴퓨터가 특정 및 미리 정의된 방식으로 동작하여 적어도 하나의 본 명세서에 설명된 프로세싱 단계들을 수행하는 특수 및 미리 정의된 방식으로 동작하도록 한다.
본 발명의 많은 실시 예가 설명되었다. 그럼에도 불구하고, 전술한 설명은 예시하기 위한 것이지, 다음의 특허 청구항들의 범주에 의해 정의되는, 본 발명의 범위를 제한하는 것은 아니다. 따라서, 상이한 실시 예들은 또한 다음의 청구항들의 범위 내에 있다. 예를 들어, 본 발명의 범위를 벗어나지 않고 다양한 변형들이 이루어질 수 있다. 부가적으로, 위에서 설명된 단계들의 일부는 순서 독립적일 수 있고, 따라서 설명된 것과 상이한 순서로 수행될 수 있다.

Claims (33)

  1. 그래프 인터페이스 및 상기 그래프 인터페이스의 구현을 결정하는 방법으로서, 상기 방법은:
    적어도 하나의 방향성 링크들(directed links)의 제 1 세트에 의해 상호연결된 제 1 복수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하는 단계;
    제 1 복수의 컴포넌트들에 대한 그래프 인터페이스를 형성하는 단계 - 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)임 - , 상기 그래프 인터페이스를 형성하는 단계는:
    상기 그래프 인터페이스의 제 1 인터페이스 엘리먼트를 형성하는 단계 - 상기 제 1 인터페이스 엘리먼트는 상기 제 1 복수의 컴포넌트들 중 제 1 컴포넌트의 제 1 포트와 연관됨 - , 및
    상기 제 1 컴포넌트의 상기 제 1 포트가 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들과 일치하도록 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 구성하는 단계를 포함함;
    상기 제 1 복수의 컴포넌트들을 포함하는 상기 그래프 인터페이스의 제 1 구현을 형성하는 단계 - 상기 형성하는 단계는 상기 제 1 인터페이스 엘리먼트와 상기 제 1 복수의 컴포넌트들의 상기 제 1 컴포넌트의 상기 제 1 포트 사이에 제 1 대응(correspondence)을 형성하는 단계를 포함함 - ; 및
    데이터 저장 시스템에 상기 그래프 인터페이스의 제 1 구현을 저장하는 단계를 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  2. 제 1 항에 있어서, 데이터 저장 시스템에서, 적어도 하나의 방향성 링크들의 제 2 세트에 의해 상호연결된 제 2 복수의 컴포넌트들을 포함하는 제 2 방향성 그래프의 설명을 포함하는 명세를 저장하는 단계, 상기 제 2 방향성 그래프에서 상기 제 1 방향성 그래프의 적어도 하나의 방향성 링크들의 제 1 세트에 의해 상호연결된 상기 제 1 복수의 컴포넌트들의 인스턴스(instance)를 식별하는 단계, 및 상기 제 2 방향성 그래프에서 상기 적어도 하나의 방향성 링크들의 제 1 세트에 의해 상호연결된 상기 제 1 복수의 컴포넌트들의 상기 식별된 인스턴스를 상기 그래프 인터페이스로 대체하는 단계를 더 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 구성하는 단계는, 상기 제 1 컴포넌트의 상기 제 1 포트와 연관된 데이터의 적어도 하나의 설명자들(descriptors) 또는 계산 특성들(computational characteristics)을 결정하는 단계 및 상기 결정된 적어도 하나의 설명자들에 기반하여 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 구성하는 단계를 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  4. 제 1 항 또는 제 2 항에 있어서, 상기 결정된 적어도 하나의 설명자들에 기반하여 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 구성하는 단계는, 상기 제 1 컴포넌트의 상기 제 1 포트와 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성들의 전파 방향을 결정하는 단계 및 상기 결정된 전파 방향(direction of propagation)에 기반하여 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 구성하는 단계를 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  5. 제 4 항에 있어서, 상기 제 1 컴포넌트의 상기 제 1 포트와 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성들의 전파 방향을 결정하는 단계는, 상기 제 1 포트를, 데이터의 설명자 또는 계산 특성들을 상기 제 1 인터페이스 엘리먼트에 전파하는 포트로 식별하는 단계 및 상기 식별에 기반하여 상기 제 1 인터페이스 엘리먼트에 전파의 외향 방향(outward direction)을 할당하는 단계를 포함하고, 상기 할당된 전파 방향은 상기 컨테이너 그래프의 실행 이전에 데이터의 설명자 또는 계산 특성들의 전파 동안 사용되는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  6. 제 4 항에 있어서, 상기 제 1 컴포넌트의 상기 제 1 포트와 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성들의 전파 방향을 결정하는 단계는, 상기 제 1 포트를, 데이터의 설명자 또는 계산 특성들을 상기 제 1 인터페이스 엘리먼트에 전파하지 않는 포트로 식별하는 단계 및 상기 식별에 기반하여 상기 제 1 인터페이스 엘리먼트에 전파의 내향 방향(inward direction)을 할당하는 단계를 포함하고, 상기 할당된 전파 방향은 상기 컨테이너 그래프의 실행 이전에 데이터의 설명자 또는 계산 특성들의 전파 동안 사용되는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  7. 제 6 항에 있어서, 상기 그래프 인터페이스를 형성하는 단계는:
    상기 그래프 인터페이스의 제 2 인터페이스 엘리먼트를 형성하는 단계 - 상기 제 2 인터페이스 엘리먼트는 상기 제 1 복수의 컴포넌트들 중 제 2 컴포넌트의 제 2 포트와 연관됨 -;
    상기 제 2 컴포넌트의 상기 제 2 포트와 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성들의 전파 방향을 결정하는 단계 - 상기 제 2 포트를, 데이터의 설명자들 또는 계산 특성들을 상기 제 2 인터페이스 엘리먼트에 전파하지 않는 포트로 식별하는 단계 및 상기 식별에 기반하여 상기 제 2 인터페이스 엘리먼트에 전파의 내향 방향(inward direction)을 할당하는 단계를 포함함 - ; 및
    상기 제 1 컴포넌트의 상기 제 1 포트와 연관된 데이터의 상기 적어도 하나의 설명자들 또는 계산 특성들 및 상기 제 2 컴포넌트의 상기 제 2 포트와 연관된 데이터의 적어도 하나의 설명자 또는 계산 특성들 간의 관계를 식별하고 상기 제 1 인터페이스 엘리먼트 및 상기 제 2 인터페이스 엘리먼트 간의 상기 식별된 관계의 표현(representation)을 형성하는 단계를 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  8. 제 7 항에 있어서, 상기 관계의 표현은 상기 제 1 인터페이스 엘리먼트와 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성이 상기 제 2 인터페이스 엘리먼트와 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성과 동일한 것을 나타내는 제약을 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  9. 선행하는 어느 한 항에 있어서, 적어도 하나의 다른 컴포넌트들의 포트들이 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들에 따르도록 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 수정하는 단계를 더 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  10. 제 9 항에 있어서, 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 수정하는 단계는, 사용자 입력을 수신하는 단계 및 상기 사용자 입력에 기초하여 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 수정하는 단계를 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  11. 제 9 항 또는 제 10 항에 있어서, 상기 제 1 인터페이스 엘리먼트의 상기 적어도 하나의 속성들을 수정하는 단계는, 적어도 하나의 다른 컴포넌트들을 분석하여 상기 적어도 하나의 다른 컴포넌트들의 상기 포트들과 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성들을 결정하는 단계 및 상기 적어도 하나의 다른 컴포넌트들의 상기 포트와 연관된, 상기 결정된 데이터의 적어도 하나의 설명자들 또는 계산 특성들에 기반하여 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 수정하는 단계를 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  12. 제 9 항 또는 제 10 항 또는 제 11 항에 있어서, 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 수정하는 단계는, 적어도 하나의 다른 컴포넌트들을 분석하여 상기 적어도 하나의 다른 컴포넌트들의 상기 포트들과 연관된 데이터의 적어도 하나의 설명자들 또는 계산 특성들의 전파 방향을 결정하는 단계 및 상기 결정된 전파 방향에 기반하여 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 수정하는 단계를 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  13. 선행하는 어느 한 항에 있어서, 상기 그래프 인터페이스를 형성하는 단계는, 상기 제 1 복수의 컴포넌트들과 연관된 파라미터를 식별하는 단계 및 상기 파라미터와 연관된 인터페이스 엘리먼트를 상기 그래프 인터페이스에 추가하는 단계를 더 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  14. 제 13 항에 있어서, 상기 파라미터에 대응하는 파라미터 값을 식별하는 단계와, 상기 식별된 파라미터 값을 디폴트 값으로서 사용하도록 상기 그래프 인터페이스를 구성하는 단계를 더 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  15. 제 2 항에 있어서, 실행을 위해 제 2 방향성 그래프를 준비하는 단계를 더 포함하고, 상기 제 2 방향성 그래프를 준비하는 단계는:
    상기 데이터 저장 시스템으로부터 상기 그래프 인터페이스의 제 1 구현을 판독하는 단계, 및
    상기 그래프 인터페이스의 상기 제 1 구현에서 상기 제 1 인터페이스 엘리먼트 및 상기 제 1 복수의 컴포넌트들의 상기 제 1 컴포넌트의 상기 제 1 포트 사이의 제 1 대응에 기반하여, 상기 그래프 인터페이스의 제 1 인터페이스 엘리먼트에서 상기 제 1 복수의 컴포넌트들의 제 1 컴포넌트의 제 1 포트 및 상기 그래프 인터페이스의 상기 제 1 인터페이스 엘리먼트 사이의 방향성 링크를 설정하는 단계를 포함하여, 상기 제 2 방향성 그래프에 상기 제 1 구현을 삽입하는 단계를 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  16. 제 2 항에 있어서, 실행을 위해 제 2 방향성 그래프를 준비하는 단계를 더 포함하고, 상기 제 2 방향성 그래프를 준비하는 단계는:
    상기 제 2 방향성 그래프를 준비하는 단계는, 상기 데이터 저장 시스템으로부터, 상기 그래프 인터페이스의 제 1 구현과 상이한, 상기 그래프 인터페이스의 제 2 구현을 판독하는 단계, 및
    상기 그래프 인터페이스의 상기 제 2 구현에서 상기 제 1 인터페이스 엘리먼트 및 상기 컴포넌트의 포트 사이의 제 2 대응에 기반하여, 상기 그래프 인터페이스의 제 2 구현에서 컴포넌트의 포트 및 상기 그래프 인터페이스의 상기 제 1 인터페이스 엘리먼트 사이의 방향성 링크를 설정하는 단계를 포함하여, 상기 제 2 방향성 그래프에 상기 제 2 구현을 삽입하는 단계를 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  17. 선행하는 어느 한 항에 있어서, 상기 제 1 인터페이스 엘리먼트는 상기 제 1 복수의 컴포넌트들에 포함되지 않은 다른 컴포넌트의 포트에 상기 제 1 복수의 컴포넌트들의 상기 제 1 컴포넌트의 상기 제 1 포트에 연결된 방향성 링크를 결합하기 위한 흐름 접속(flow junction)을 포함하는, 그래프 인터페이스 및 그래프 인터페이스의 구현을 결정하는 방법.
  18. 그래프 인터페이스 및 상기 그래프 인터페이스의 구현을 결정하기 위해, 컴퓨터-판독가능 매체 상에 비-일시적 형태로 저장되는 소프트웨어로서, 상기 소프트웨어는 컴퓨팅 시스템으로 하여금:
    적어도 하나의 방향성 링크들(directed links)의 제 1 세트에 의해 상호연결된 제 1 복수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하고;
    제 1 복수의 컴포넌트들에 대한 그래프 인터페이스를 형성하고 - 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)임 - , 상기 그래프 인터페이스를 형성하는 것은:
    상기 그래프 인터페이스의 제 1 인터페이스 엘리먼트를 형성하는 것 - 상기 제 1 인터페이스 엘리먼트는 상기 제 1 복수의 컴포넌트들 중 제 1 컴포넌트의 제 1 포트와 연관됨 - , 및
    상기 제 1 컴포넌트의 상기 제 1 포트가 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들과 일치하도록 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 구성하는 것을 포함하고;
    상기 제 1 복수의 컴포넌트들을 포함하는 상기 그래프 인터페이스의 제 1 구현을 형성하고 - 상기 형성하는 것은 상기 제 1 인터페이스 엘리먼트와 상기 제 1 복수의 컴포넌트들의 상기 제 1 컴포넌트의 상기 제 1 포트 사이에 제 1 대응(correspondence)을 형성하는 단계를 포함함 - ; 및
    데이터 저장 시스템에 상기 그래프 인터페이스의 제 1 구현을 저장하도록 하는 명령들을 포함하는, 컴퓨터-판독가능 매체 상에 비-일시적 형태로 저장되는 소프트웨어.
  19. 그래프 인터페이스 및 상기 그래프 인터페이스의 구현을 결정하는 컴퓨팅 시스템으로서, 상기 컴퓨팅 시스템은:
    적어도 하나의 방향성 링크들(directed links)의 제 1 세트에 의해 상호연결된 제 1 복수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하도록 구성된 입력 디바이스;
    상기 명세를 프로세싱하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 프로세싱하는 것은,
    제 1 복수의 컴포넌트들에 대한 그래프 인터페이스를 형성하는 것 - 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)임 - , 상기 그래프 인터페이스를 형성하는 것은:
    상기 그래프 인터페이스의 제 1 인터페이스 엘리먼트를 형성하는 것 - 상기 제 1 인터페이스 엘리먼트는 상기 제 1 복수의 컴포넌트들 중 제 1 컴포넌트의 제 1 포트와 연관됨 - , 및
    상기 제 1 컴포넌트의 상기 제 1 포트가 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들과 일치하도록 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 구성하는 것을 포함하고;
    상기 제 1 복수의 컴포넌트들을 포함하는 상기 그래프 인터페이스의 제 1 구현을 형성하는 것 - 상기 형성하는 것은 상기 제 1 인터페이스 엘리먼트와 상기 제 1 복수의 컴포넌트들의 상기 제 1 컴포넌트의 상기 제 1 포트 사이에 제 1 대응(correspondence)을 형성하는 것을 포함함 - ; 및
    데이터 저장 시스템에 상기 그래프 인터페이스의 제 1 구현을 저장하는 것을 포함하는, 컴퓨팅 시스템.
  20. 그래프 인터페이스 및 상기 그래프 인터페이스의 구현을 결정하는 컴퓨팅 시스템으로서, 상기 컴퓨팅 시스템은:
    적어도 하나의 방향성 링크들(directed links)의 제 1 세트에 의해 상호연결된 제 1 복수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하는 수단; 및
    상기 명세를 프로세싱하는 수단을 포함하고, 상기 프로세싱하는 것은,
    제 1 복수의 컴포넌트들에 대한 그래프 인터페이스를 형성하는 것 - 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)임 - , 상기 그래프 인터페이스를 형성하는 것은:
    상기 그래프 인터페이스의 제 1 인터페이스 엘리먼트를 형성하는 것 - 상기 제 1 인터페이스 엘리먼트는 상기 제 1 복수의 컴포넌트들 중 제 1 컴포넌트의 제 1 포트와 연관됨 - , 및
    상기 제 1 컴포넌트의 상기 제 1 포트가 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들과 일치하도록 상기 제 1 인터페이스 엘리먼트의 적어도 하나의 속성들을 구성하는 것을 포함하고;
    상기 제 1 복수의 컴포넌트들을 포함하는 상기 그래프 인터페이스의 제 1 구현을 형성하는 것 - 상기 형성하는 것은 상기 제 1 인터페이스 엘리먼트와 상기 제 1 복수의 컴포넌트들의 상기 제 1 컴포넌트의 상기 제 1 포트 사이에 제 1 대응(correspondence)을 형성하는 것을 포함함 - ; 및
    데이터 저장 시스템에 상기 그래프 인터페이스의 제 1 구현을 저장하는 것을 포함하는, 컴퓨팅 시스템.
  21. 그래프 인터페이스를 결정하는 방법으로서, 상기 방법은:
    방향성 링크들(directed links)에 의해 상호연결된 복수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하는 단계; 및
    제 1 방향성 그래프에 대한 그래프 인터페이스를 형성하는 단계를 포함하고 - 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)임 - , 상기 그래프 인터페이스를 형성하는 단계는:
    상기 그래프 인터페이스의 적어도 하나의 인터페이스 엘리먼트들을 형성하기 위한 정보를 식별하기 위해 제 1 방향성 그래프를 분석하는 단계, 및 적어도 하나의 인터페이스 엘리먼트를 형성하는 단계 - 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트들 각각은 메타데이터 설명자 속성 또는 메타데이터 전파 속성의 방향 중 적어도 하나를 포함하는 적어도 하나의 속성들과 연관됨 - ; 및
    적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트 각각에 대해, 상기 제 1 방향성 그래프를 분석하여, 상기 인터페이스 엘리먼트와 연관된 메타데이터 설명자 속성의 값이 제 1 방향성 그래프로부터 인터페이스 엘리먼트로 전파되는지 또는 상기 그래프 인터페이스가 사용되는 컨테이너 그래프인 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지 여부를 결정하는 단계, 및 상기 분석 결과에 기반하여 상기 인터페이스 엘리먼트에 대한 메타데이터 전파 속성의 방향을 구성하는 단계를 포함하는, 그래프 인터페이스를 결정하는 방법.
  22. 제 21 항에 있어서, 상기 인터페이스 엘리먼트와 연관된 메타데이터 설명자 속성은 상기 인터페이스 엘리먼트를 통해 전달된 데이터의 데이터 특성 또는 상기 복수의 컴포넌트들 중 적어도 하나 컴포넌트들의 계산 특성을 포함하는, 그래프 인터페이스를 결정하는 방법.
  23. 제 22 항에 있어서, 상기 데이터 특징은 상기 전달된 데이터 내의 레코드 필드들의 포맷을 포함하는, 그래프 인터페이스를 결정하는 방법.
  24. 제 22 항 또는 제 23 항에 있어서, 상기 계산 특성은 상기 복수의 컴포넌트들 중 적어도 하나의 컴포넌트에 의해 표현된 계산의 실행의 패러랠리즘(parallelism)의 정도를 포함하는, 그래프 인터페이스를 결정하는 방법.
  25. 제 21 항 내지 제 24 항 중 어느 한 항에 있어서, 상기 제 1 방향성 그래프에 대한 그래프 인터페이스를 형성하는 단계는, 상기 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트들 각각에 대해, 상기 제 1 방향성 그래프를 분석하여 상기 인터페이스 엘리먼트와 연관된 적어도 하나의 속성들이 인터페이스 엘리먼트가 상기 그래프 인터페이스를 통해 파라미터 값을 전달하도록 구성되는 것을 명시하는 단계를 더 포함하는, 그래프 인터페이스를 결정하는 방법.
  26. 제 21 항 내지 제 25 항 중 어느 한 항에 있어서, 상기 인터페이스 엘리먼트와 연관된 상기 메타데이터 설명자 속성의 값이 상기 제 1 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지 또는 상기 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지를 결정하는 단계는, 상기 인터페이스 엘리먼트와 연관된 상기 메타데이터 설명자 속성의 값이 상기 메타데이터 설명자 속성의 값을 상기 인터페이스에 전달하는 상기 복수의 컴포넌트들 중 하나의 컴포넌트의 식별에 기반하여 상기 제 1 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는 단계를 포함하는, 그래프 인터페이스를 결정하는 방법.
  27. 제 21 항 내지 제 25 항 중 어느 한 항에 있어서, 상기 인터페이스 엘리먼트와 연관된 상기 메타데이터 설명자 속성의 값이 상기 제 1 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지 또는 상기 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지를 결정하는 단계는, 상기 인터페이스 엘리먼트와 연관된 상기 메타데이터 설명자 속성의 값이 상기 복수의 컴포넌트들 중 어느 컴포넌트도 상기 메타데이터 설명자 속성의 값을 상기 인터페이스에 전달하지 않는 결정에 기반하여 상기 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는 단계를 포함하는, 그래프 인터페이스를 결정하는 방법.
  28. 제 21 항 내지 제 27 항 중 어느 한 항에 있어서, 상기 제 1 방향성 그래프에 대한 그래프 인터페이스를 형성하는 단계는 적어도 둘 이상의 인터페이스 엘리먼트들이 각각 반드시 동일한 속성과 연관이 있는지를 결정하는 단계를 더 포함하는, 그래프 인터페이스를 결정하는 방법.
  29. 제 21 항 내지 제 28 항 중 어느 한 항에 있어서, 데이터 저장 시스템에서, 상기 그래프 인터페이스의 표현 및 상기 제 1 방향성 그래프의 표현을 저장하는 단계를 더 포함하는, 그래프 인터페이스를 결정하는 방법.
  30. 제 21 항 내지 제 29 항 중 어느 한 항에 있어서, 상기 적어도 하나의 인터페이스 엘리먼트들 중 적어도 일부는, 상기 복수의 컴포넌트들 중 하나의 컴포넌트의 포트에 연결된 방향성 링크를 상기 복수의 컴포넌트들에서 포함되지 않는 다른 컴포넌트의 포트에 결합하기 위한 흐름 접속을 포함하는, 그래프 인터페이스를 결정하는 방법.
  31. 그래프 인터페이스를 결정하기 위해, 컴퓨터-판독가능 매체 상에 비-일시적 형태로 저장되는 소프트웨어로서, 상기 소프트웨어는 컴퓨팅 시스템으로 하여금:
    방향성 링크들(directed links)에 의해 상호연결된 복수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하고; 그리고
    제 1 방향성 그래프에 대한 그래프 인터페이스를 형성하도록 하는 명령들을 포함하고 - 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)임 - , 상기 그래프 인터페이스를 형성하는 것은:
    상기 그래프 인터페이스의 적어도 하나의 인터페이스 엘리먼트들을 형성하기 위한 정보를 식별하기 위해 제 1 방향성 그래프를 분석하는 것, 및 적어도 하나의 인터페이스 엘리먼트를 형성하는 것 - 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트들 각각은 메타데이터 설명자 속성 또는 메타데이터 전파 속성의 방향 중 적어도 하나를 포함하는 적어도 하나의 속성들과 연관됨 - ; 및
    적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트 각각에 대해, 상기 제 1 방향성 그래프를 분석하여, 상기 인터페이스 엘리먼트와 연관된 메타데이터 설명자 속성의 값이 제 1 방향성 그래프로부터 인터페이스 엘리먼트로 전파되는지 또는 상기 그래프 인터페이스가 사용되는 컨테이너 그래프인 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지 여부를 결정하고, 및 상기 분석 결과에 기반하여 상기 인터페이스 엘리먼트에 대한 메타데이터 전파 속성의 방향을 구성하는 것을 포함하는, 컴퓨터-판독가능 매체 상에 비-일시적 형태로 저장되는 소프트웨어.
  32. 그래프 인터페이스를 결정하기 위한 컴퓨팅 시스템으로서, 상기 컴퓨팅 시스템은:
    방향성 링크들(directed links)에 의해 상호연결된 복수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하는 입력 디바이스; 및
    상기 명세를 프로세싱하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 프로세싱하는 것은:
    제 1 방향성 그래프에 대한 그래프 인터페이스를 형성하는 것을 포함하고 - 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)임 - , 상기 그래프 인터페이스를 형성하는 것은:
    상기 그래프 인터페이스의 적어도 하나의 인터페이스 엘리먼트들을 형성하기 위한 정보를 식별하기 위해 제 1 방향성 그래프를 분석하는 것, 및 적어도 하나의 인터페이스 엘리먼트를 형성하는 것 - 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트들 각각은 메타데이터 설명자 속성 또는 메타데이터 전파 속성의 방향 중 적어도 하나를 포함하는 적어도 하나의 속성들과 연관됨 - ; 및
    적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트 각각에 대해, 상기 제 1 방향성 그래프를 분석하여, 상기 인터페이스 엘리먼트와 연관된 메타데이터 설명자 속성의 값이 제 1 방향성 그래프로부터 인터페이스 엘리먼트로 전파되는지 또는 상기 그래프 인터페이스가 사용되는 컨테이너 그래프인 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지 여부를 결정하고, 및 상기 분석 결과에 기반하여 상기 인터페이스 엘리먼트에 대한 메타데이터 전파 속성의 방향을 구성하는 것을 포함하는, 그래프 인터페이스를 결정하기 위한 컴퓨팅 시스템.
  33. 그래프 인터페이스를 결정하기 위한 컴퓨팅 시스템으로서, 상기 컴퓨팅 시스템은:
    방향성 링크들(directed links)에 의해 상호연결된 복수의 컴포넌트들을 포함하는 제 1 방향성 그래프(directed graph)의 설명(description)을 포함하는 명세(specification)를 수신하는 수단; 및
    상기 명세를 프로세싱하는 수단을 포함하고, 상기 프로세싱하는 것은:
    제 1 방향성 그래프에 대한 그래프 인터페이스를 형성하는 것을 포함하고 - 상기 그래프 인터페이스는 컨테이너 그래프의 실행 이전에 상기 그래프 인터페이스에 따르는 구현에 의해 대체될 컨테이너 그래프의 플레이스홀더(placeholder)임 - , 상기 그래프 인터페이스를 형성하는 것은:
    상기 그래프 인터페이스의 적어도 하나의 인터페이스 엘리먼트들을 형성하기 위한 정보를 식별하기 위해 제 1 방향성 그래프를 분석하는 것, 및 적어도 하나의 인터페이스 엘리먼트를 형성하는 것 - 적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트들 각각은 메타데이터 설명자 속성 또는 메타데이터 전파 속성의 방향 중 적어도 하나를 포함하는 적어도 하나의 속성들과 연관됨 - ; 및
    적어도 하나의 인터페이스 엘리먼트들의 적어도 일부 인터페이스 엘리먼트 각각에 대해, 상기 제 1 방향성 그래프를 분석하여, 상기 인터페이스 엘리먼트와 연관된 메타데이터 설명자 속성의 값이 제 1 방향성 그래프로부터 인터페이스 엘리먼트로 전파되는지 또는 상기 그래프 인터페이스가 사용되는 컨테이너 그래프인 제 2 방향성 그래프로부터 상기 인터페이스 엘리먼트로 전파되는지 여부를 결정하고, 및 상기 분석 결과에 기반하여 상기 인터페이스 엘리먼트에 대한 메타데이터 전파 속성의 방향을 구성하는 것을 포함하는, 그래프 인터페이스를 결정하기 위한 컴퓨팅 시스템.
KR1020187021019A 2015-12-21 2016-12-20 서브-그래프 인터페이스 생성 Active KR102051768B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562270163P 2015-12-21 2015-12-21
US62/270,163 2015-12-21
PCT/US2016/067742 WO2017112654A2 (en) 2015-12-21 2016-12-20 Sub-graph interface generation

Publications (2)

Publication Number Publication Date
KR20180098324A true KR20180098324A (ko) 2018-09-03
KR102051768B1 KR102051768B1 (ko) 2019-12-03

Family

ID=57777721

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187021019A Active KR102051768B1 (ko) 2015-12-21 2016-12-20 서브-그래프 인터페이스 생성

Country Status (9)

Country Link
US (1) US10671669B2 (ko)
EP (2) EP3394739B1 (ko)
JP (1) JP6584672B2 (ko)
KR (1) KR102051768B1 (ko)
CN (1) CN108475189B (ko)
AU (1) AU2016377516B2 (ko)
CA (2) CA3005263C (ko)
SG (1) SG11201803929YA (ko)
WO (1) WO2017112654A2 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9880818B2 (en) 2014-11-05 2018-01-30 Ab Initio Technology Llc Application testing
US10936289B2 (en) * 2016-06-03 2021-03-02 Ab Initio Technology Llc Format-specific data processing operations
US10387453B1 (en) * 2016-06-29 2019-08-20 EMC IP Holding Company LLC Database views for graphs using dynamic subgraphs
US10642867B2 (en) * 2017-09-15 2020-05-05 Adobe Inc. Clustering based on a directed graph
US10666744B2 (en) 2018-06-01 2020-05-26 The Mathworks, Inc. Managing discovery and selection of service interface specifications
US10831456B1 (en) 2019-05-31 2020-11-10 The Mathworks, Inc. External code integrations within a computing environment
US11729222B2 (en) * 2019-07-12 2023-08-15 Palo Alto Research Center Incorporated System and method for extracting configuration-related information for reasoning about the security and functionality of a composed internet of things system
JP2024505238A (ja) 2021-01-31 2024-02-05 アビニシオ テクノロジー エルエルシー 論理データセットグループの操作を伴うデータ処理システム
WO2022165326A1 (en) 2021-01-31 2022-08-04 Ab Initio Technology Llc Dataset multiplexer for data processing system
US11930046B2 (en) 2021-06-17 2024-03-12 Xerox Corporation System and method for determining vulnerability metrics for graph-based configuration security
US12284216B2 (en) 2021-09-17 2025-04-22 Xerox Corporation System and method for synthesizing role-based access control assignments per a policy
US12223074B2 (en) 2021-09-17 2025-02-11 Xerox Corporation System and method for securing windows discretionary access control
US11656744B1 (en) * 2022-03-14 2023-05-23 Wolters Kluwer Technology BV Interactive tool for efficiently developing task flows
CN114880620B (zh) * 2022-04-15 2024-05-24 国家电投集团数字科技有限公司 一种有向树组的聚集生成方法
US12238132B2 (en) 2022-04-22 2025-02-25 Xerox Corporation Method and system for facilitating a ranking score using attack volume to find optimal configurations
US12443615B2 (en) * 2022-08-23 2025-10-14 Ab Initio Technology Llc Operationalizing metadata
US12293152B1 (en) * 2024-09-11 2025-05-06 The Florida International University Board Of Trustees Systems and methods for performing temporal analysis

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294150A1 (en) * 2005-06-27 2006-12-28 Stanfill Craig W Managing metadata for graph-based computations
JP2008547134A (ja) * 2005-06-27 2008-12-25 エービー イニティオ ソフトウェア コーポレーション グラフ型計算のためのパラメータ管理
US8429631B2 (en) * 2003-11-03 2013-04-23 Pervasive Software, Inc. System and method for data transformation using dataflow graphs
US20150160926A1 (en) * 2013-12-05 2015-06-11 Ab Initio Technology Llc Managing interfaces for sub-graphs

Family Cites Families (233)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3662343A (en) 1970-07-29 1972-05-09 Docutel Corp Credit card automatic currency dispenser
US3662401A (en) 1970-09-23 1972-05-09 Collins Radio Co Method of program execution
US4228496A (en) 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4814979A (en) 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4972314A (en) 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US4720780A (en) 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4914568A (en) 1986-10-24 1990-04-03 National Instruments, Inc. Graphical system for modelling a process and associated method
US5127104A (en) 1986-12-29 1992-06-30 Dataflow Computer Corporation Method and product involving translation and execution of programs by automatic partitioning and data structure allocation
JPS63231613A (ja) 1987-03-20 1988-09-27 Matsushita Giken Kk コマンド設定方法
JPS6413189A (en) 1987-07-06 1989-01-18 Nec Corp Character signal generation circuit
JPH0194431A (ja) 1987-10-06 1989-04-13 Matsushita Electric Ind Co Ltd ソフトウェア部品合成装置
US5357632A (en) 1990-01-09 1994-10-18 Hughes Aircraft Company Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
US5280619A (en) 1990-05-17 1994-01-18 Texas Instruments Incorporated System for accessing shared data using a serialization graph constructed from a history file showing completed locking dependencies between transactions
US5323452A (en) 1990-12-18 1994-06-21 Bell Communications Research, Inc. Visual programming of telephone network call processing logic
DE4216871C2 (de) 1991-05-21 2001-09-06 Digital Equipment Corp Ausführungsordnen zum Sicherstellen der Serialisierbarkeit verteilter Transaktionen
EP0529303A3 (en) 1991-08-29 1993-09-22 International Business Machines Corporation Checkpoint synchronization with instruction overlap enabled
US6400996B1 (en) 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5333319A (en) 1992-03-02 1994-07-26 International Business Machines Corporation Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
US5418888A (en) 1992-06-04 1995-05-23 Alden; John L. System for revelance criteria management of actions and values in a rete network
JP3223933B2 (ja) 1993-02-10 2001-10-29 日本電信電話株式会社 知識ベース推論方法およびその装置
US5432942A (en) 1993-06-10 1995-07-11 The United States Of America As Represented By The Secretary Of The Navy Data structure extraction, conversion and display tool
US5745778A (en) 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
US6044211A (en) 1994-03-14 2000-03-28 C.A.E. Plus, Inc. Method for graphically representing a digital device as a behavioral description with data and control flow elements, and for converting the behavioral description to a structural description
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5890997A (en) 1994-08-03 1999-04-06 Roth; Eric S. Computerized system for the design, execution, and tracking of exercise programs
JPH08106540A (ja) 1994-10-06 1996-04-23 Toshiba Corp 編集装置
US5692168A (en) 1994-10-18 1997-11-25 Cyrix Corporation Prefetch buffer using flow control bit to identify changes of flow within the code stream
JPH08305576A (ja) 1995-01-12 1996-11-22 Internatl Business Mach Corp <Ibm> コンピュータ・ユーザとの対話を行うためのエキスパート・システム及びその方法
US5673369A (en) 1995-03-02 1997-09-30 International Business Machines Corporation Authoring knowledge-based systems using interactive directed graphs
US5701400A (en) 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US5805462A (en) 1995-08-18 1998-09-08 Vlsi Technology, Inc. Automatic synthesis of integrated circuits employing boolean decomposition
JP3154942B2 (ja) 1995-09-11 2001-04-09 株式会社東芝 分散チェックポイント生成方法および同方法が適用される計算機システム
US5630047A (en) 1995-09-12 1997-05-13 Lucent Technologies Inc. Method for software error recovery using consistent global checkpoints
US5712971A (en) 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
JP3258228B2 (ja) 1996-03-15 2002-02-18 株式会社東芝 チェックポイント生成方法
US7415466B2 (en) 1996-03-19 2008-08-19 Oracle International Corporation Parallel transaction recovery
US6006242A (en) 1996-04-05 1999-12-21 Bankers Systems, Inc. Apparatus and method for dynamically creating a document
JP3672208B2 (ja) 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US5857204A (en) 1996-07-02 1999-01-05 Ab Initio Software Corporation Restoring the state of a set of files
US6016516A (en) 1996-08-07 2000-01-18 Fuji Xerox Co. Ltd. Remote procedure processing device used by at least two linked computer systems
US6760903B1 (en) 1996-08-27 2004-07-06 Compuware Corporation Coordinated application monitoring in a distributed computing environment
US5799266A (en) 1996-09-19 1998-08-25 Sun Microsystems, Inc. Automatic generation of test drivers
US5930794A (en) 1996-10-18 1999-07-27 Sagent Technologies, Inc. Database repository with deferred transactions
US6038558A (en) 1996-10-18 2000-03-14 Sagent Technology, Inc. Extensible database retrieval and viewing architecture
US6151531A (en) 1996-12-12 2000-11-21 Charles Frankel Et Al System and method for managing the alteration of garments
US5924095A (en) 1997-02-05 1999-07-13 Oracle Corporation Processing distributed transactions in heterogeneous computing environments using two-phase commit
US6330008B1 (en) 1997-02-24 2001-12-11 Torrent Systems, Inc. Apparatuses and methods for monitoring performance of parallel computing
US5933640A (en) 1997-02-26 1999-08-03 Digital Equipment Corporation Method for analyzing and presenting test execution flows of programs
US5999729A (en) 1997-03-06 1999-12-07 Continuum Software, Inc. System and method for developing computer programs for execution on parallel processing systems
US6088716A (en) 1997-04-28 2000-07-11 Ab Initio Software Corporation Method for preventing buffer deadlock in dataflow computations
US6032158A (en) 1997-05-02 2000-02-29 Informatica Corporation Apparatus and method for capturing and propagating changes from an operational database to data marts
US6044394A (en) 1997-07-21 2000-03-28 International Business Machines Corporation Managing independently executing computer tasks that are interrelated by dataflow
US6145017A (en) 1997-08-05 2000-11-07 Adaptec, Inc. Data alignment system for a hardware accelerated command interpreter engine
US6173276B1 (en) 1997-08-21 2001-01-09 Scicomp, Inc. System and method for financial instrument modeling and valuation
US6574661B1 (en) 1997-09-26 2003-06-03 Mci Communications Corporation Integrated proxy interface for web based telecommunication toll-free network management using a network manager for downloading a call routing tree to client
US6332212B1 (en) 1997-10-02 2001-12-18 Ltx Corporation Capturing and displaying computer program execution timing
US5958004A (en) 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US6339775B1 (en) 1997-11-07 2002-01-15 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6014670A (en) 1997-11-07 2000-01-11 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6044374A (en) 1997-11-14 2000-03-28 Informatica Corporation Method and apparatus for sharing metadata between multiple data marts through object references
JPH11184766A (ja) 1997-12-18 1999-07-09 Nippon Telegr & Teleph Corp <Ntt> ビジネスイベントサーバ
US6272650B1 (en) 1998-02-03 2001-08-07 Amazing Media, Inc. System and method for disambiguating scene graph loads
US6437796B2 (en) 1998-02-17 2002-08-20 Sun Microsystems, Inc. Multiple processor visibility search system and method
US6208345B1 (en) 1998-04-15 2001-03-27 Adc Telecommunications, Inc. Visual data integration system and method
US6256637B1 (en) 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6675189B2 (en) 1998-05-28 2004-01-06 Hewlett-Packard Development Company, L.P. System for learning and applying integrated task and data parallel strategies in dynamic applications
US6480876B2 (en) 1998-05-28 2002-11-12 Compaq Information Technologies Group, L.P. System for integrating task and data parallelism in dynamic applications
US6314114B1 (en) 1998-06-23 2001-11-06 Oracle Corporation Distributed resource management
US6259988B1 (en) 1998-07-20 2001-07-10 Lockheed Martin Corporation Real-time mission adaptable route planner
JP2000089955A (ja) 1998-09-17 2000-03-31 Fujitsu Ltd プログラム実行装置、プログラム作成装置及びこれらのプログラム記憶媒体
JP2000099317A (ja) 1998-09-18 2000-04-07 Toshiba Corp ユーザインタフェース設計装置及び方法
US6401216B1 (en) 1998-10-29 2002-06-04 International Business Machines Corporation System of performing checkpoint/restart of a parallel program
US6608628B1 (en) 1998-11-06 2003-08-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration (Nasa) Method and apparatus for virtual interactive medical imaging by multiple remotely-located users
US6744472B1 (en) 1998-11-09 2004-06-01 Broadcom Corporation Graphics display system with video synchronization feature
US6449711B1 (en) 1999-02-04 2002-09-10 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs
US6538651B1 (en) 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6728879B1 (en) 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
US6816825B1 (en) 1999-06-18 2004-11-09 Nec Corporation Simulation vector generation from HDL descriptions for observability-enhanced statement coverage
US6647408B1 (en) 1999-07-16 2003-11-11 Novell, Inc. Task distribution
US6715145B1 (en) 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US20020129340A1 (en) 1999-10-28 2002-09-12 Tuttle Douglas D. Reconfigurable isomorphic software representations
US7137116B2 (en) 1999-11-09 2006-11-14 Microsoft Corporation Method and system for performing a task on a computer
US6879946B2 (en) 1999-11-30 2005-04-12 Pattern Discovery Software Systems Ltd. Intelligent modeling, transformation and manipulation system
US6584581B1 (en) 1999-12-06 2003-06-24 Ab Initio Software Corporation Continuous flow checkpointing data processing
WO2001046798A2 (en) 1999-12-20 2001-06-28 Headway Research Limited System and method for computer-aided graph-based dependency analysis
US6848100B1 (en) 2000-03-31 2005-01-25 Intel Corporation Hierarchical software path profiling
US7062483B2 (en) 2000-05-18 2006-06-13 Endeca Technologies, Inc. Hierarchical data-driven search and navigation system and method for information retrieval
US6922685B2 (en) 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US6813761B1 (en) 2000-06-30 2004-11-02 Microsoft Corporation Methods for enhancing flow analysis
US7164422B1 (en) * 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US6832369B1 (en) 2000-08-01 2004-12-14 International Business Machines Corporation Object oriented method and apparatus for class variable initialization
US6496961B2 (en) 2000-10-27 2002-12-17 Nec Usa, Inc. Dynamic detection and removal of inactive clauses in SAT with application in image computation
US20020152244A1 (en) 2000-12-22 2002-10-17 International Business Machines Corporation Method and apparatus to dynamically create a customized user interface based on a document type definition
US6804800B2 (en) 2000-12-29 2004-10-12 Intel Corporation Method and apparatus for detecting and recovering from errors in a source synchronous bus
US20020111876A1 (en) 2001-02-09 2002-08-15 Rudraraju Panduranga R. Transaction aggregation system and method
US7082386B2 (en) 2001-02-21 2006-07-25 International Business Machines Corporation Generalized software modeling tool
KR100406630B1 (ko) 2001-03-13 2003-11-20 엘지전자 주식회사 데모용 데이터의 기록 및 재생방법과, 그에 따른 기록매체
US7188091B2 (en) 2001-03-21 2007-03-06 Resolutionebs, Inc. Rule processing system
US6651234B2 (en) 2001-04-06 2003-11-18 Nec Corporation Partition-based decision heuristics for SAT and image computation using SAT and BDDs
US20020147745A1 (en) 2001-04-09 2002-10-10 Robert Houben Method and apparatus for document markup language driven server
US7082604B2 (en) 2001-04-20 2006-07-25 Mobile Agent Technologies, Incorporated Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents
US20040093559A1 (en) 2001-05-25 2004-05-13 Ruth Amaru Web client for viewing and interrogating enterprise data semantically
GB2376094A (en) 2001-05-30 2002-12-04 Ibm Flexible navigation of a workflow graph in a data processing system
US7069536B2 (en) 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US6868526B2 (en) 2001-07-18 2005-03-15 The Mathworks, Inc. Graphical subclassing
US20030033432A1 (en) 2001-08-08 2003-02-13 Simpson Shell S. Web based imaging service that converts web pages into content on behalf of another web site
US7594220B2 (en) 2001-08-14 2009-09-22 National Instruments Corporation Configuration diagram with context sensitive connectivity
US20040006745A1 (en) 2001-08-31 2004-01-08 Van Helden Wico Methods, apparatuses, system, and articles for associating metadata with datastream
US7165030B2 (en) 2001-09-17 2007-01-16 Massachusetts Institute Of Technology Concatenative speech synthesis using a finite-state transducer
US7085426B2 (en) 2001-10-15 2006-08-01 Jonas August Volterra filters for enhancement of contours in images
US7130484B2 (en) 2001-10-15 2006-10-31 Jonas August Biased curve indicator random field filters for enhancement of contours in images
DE10152213B4 (de) 2001-10-23 2006-04-27 Onespin Solutions Gmbh Verfahren zur Verifikation digitaler arithmetischer Schaltungen mittels eines Äquivalenzvergleiches
US20030130821A1 (en) * 2001-11-09 2003-07-10 Sun Microsystems, Inc. Method, system, and program for rendering a visualization of network devices
US20040024573A1 (en) * 2002-07-31 2004-02-05 Sun Microsystems, Inc. Method, system, and program for rendering information about network components
US7092401B2 (en) 2001-11-15 2006-08-15 International Business Machines Corporation Apparatus and method for managing work and completion queues using head and tail pointers with end-to-end context error cache for reliable datagram
EP1320217B1 (en) 2001-12-14 2004-10-13 Hewlett-Packard Company, A Delaware Corporation Method of installing monitoring agents, system and computer program for monitoring objects in an IT network
US6951013B1 (en) 2002-03-01 2005-09-27 Lozins Neal N Method for facilitating development and testing of relational database application software
US7240247B2 (en) 2002-04-29 2007-07-03 Intel Corporation Providing a chain of tokenized error and state information for a call stack
US20040041838A1 (en) 2002-09-04 2004-03-04 Adusumilli Venkata J.R.B. Method and system for graphing data
US7103597B2 (en) 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7167850B2 (en) 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7694272B2 (en) 2002-10-21 2010-04-06 Sungard (Israel) Ltd Method, a language and a system for the definition and implementation of software solutions by using a visualizable computer executable modeling language
US7412658B2 (en) 2002-11-14 2008-08-12 Sap Ag Modeling system for graphic user interface
US7711772B2 (en) 2002-11-15 2010-05-04 Schlumberger Technology Corporation Web-based system and method for electronic data delivery
US7292537B2 (en) 2002-11-29 2007-11-06 Alcatel Lucent Measurement architecture to obtain per-hop one-way packet loss and delay in multi-class service networks
US7430747B2 (en) 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
US7441008B2 (en) 2002-12-18 2008-10-21 International Business Machines Corporation Method for correlating transactions and messages
US20050193056A1 (en) 2002-12-26 2005-09-01 Schaefer Diane E. Message transfer using multiplexed connections in an open system interconnection transaction processing environment
US20040148373A1 (en) 2003-01-23 2004-07-29 International Business Machines Corporation Service level agreement compliance measurement
WO2004072796A2 (en) 2003-02-05 2004-08-26 Arizona Board Of Regents Reconfigurable processing
US7707564B2 (en) 2003-02-26 2010-04-27 Bea Systems, Inc. Systems and methods for creating network-based software services using source code annotations
US7088374B2 (en) 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US7417645B2 (en) 2003-03-27 2008-08-26 Microsoft Corporation Markup language and object model for vector graphics
US7669129B2 (en) 2003-04-04 2010-02-23 Avid Technology, Inc. Graphical user interface for providing editing of transform hierarchies within an effects tree
US7665025B2 (en) 2003-04-16 2010-02-16 The Mathworks, Inc. Signal navigation and label propagation in block diagrams
US20040225657A1 (en) 2003-05-07 2004-11-11 Panacea Corporation Web services method and system
US8265979B2 (en) 2003-06-17 2012-09-11 International Business Machines Corporation Automatic generation of process models
US20050059046A1 (en) 2003-06-18 2005-03-17 Applera Corporation Methods and systems for the analysis of biological sequence data
CA2432866A1 (en) 2003-06-20 2004-12-20 Ibm Canada Limited - Ibm Canada Limitee Debugging optimized flows
WO2005001721A1 (en) 2003-06-24 2005-01-06 Bae Systems Plc A method, tool and system for increasing the efficiency of a design process
CN1842764B (zh) 2003-06-25 2010-06-23 起元科技有限公司 用于计算图的计算机辅助并行化的方法及其系统
US7185322B2 (en) 2003-07-11 2007-02-27 Computer Associates Think, Inc. Method and apparatus for parallel action processing
GB0318196D0 (en) 2003-08-02 2003-09-03 Ibm A method apparatus and computer program for processing a queue of messages
US7243088B2 (en) 2003-08-06 2007-07-10 Oracle International Corporation Database management system with efficient version control
US7444595B2 (en) 2003-08-13 2008-10-28 National Instruments Corporation Graphical programming system and method for creating and managing a scene graph
WO2005022417A2 (en) 2003-08-27 2005-03-10 Ascential Software Corporation Methods and systems for real time integration services
US7174479B2 (en) 2003-09-10 2007-02-06 Microsoft Corporation Method and system for rollback-free failure recovery of multi-step procedures
US20050102670A1 (en) 2003-10-21 2005-05-12 Bretl Robert F. Shared object memory with object management for multiple virtual machines
US20050097515A1 (en) 2003-10-31 2005-05-05 Honeywell International, Inc. Data empowered laborsaving test architecture
US7296072B2 (en) 2003-12-12 2007-11-13 International Business Machines Corporation Enhanced port type agnostic proxy support for web services intermediaries
US7404189B2 (en) 2003-12-30 2008-07-22 International Business Machines Corporation Scheduler supporting web service invocation
US7543275B2 (en) 2004-01-29 2009-06-02 Sun Microsystems, Inc. Mechanism for executing test suites written for different harnesses under one test execution harness
US7467383B2 (en) 2004-03-08 2008-12-16 Ab Initio Software Llc System for controlling task execution using a graphical representation of task dependency
US7594227B2 (en) 2004-03-08 2009-09-22 Ab Initio Technology Llc Dependency graph parameter scoping
CA2563478A1 (en) 2004-04-16 2005-10-27 James A. Aman Automatic event videoing, tracking and content generation system
US20050256818A1 (en) 2004-04-30 2005-11-17 Xerox Corporation Workflow auto generation from user constraints and hierarchical dependence graphs for workflows
JP2007536634A (ja) 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US7614037B2 (en) 2004-05-21 2009-11-03 Microsoft Corporation Method and system for graph analysis and synchronization
US7316001B2 (en) 2004-06-05 2008-01-01 Graphlogic Inc. Object process graph system
US7596227B2 (en) 2004-06-08 2009-09-29 Dartdevices Interop Corporation System method and model for maintaining device integrity and security among intermittently connected interoperating devices
US7398514B2 (en) 2004-09-29 2008-07-08 Microsoft Corporation Test automation stack layering
US7343482B2 (en) 2004-10-20 2008-03-11 Arm Limited Program subgraph identification
US7598953B2 (en) 2004-11-05 2009-10-06 Microsoft Corporation Interpreter for simplified programming of graphics processor units in general purpose programming languages
US8082541B2 (en) 2004-12-09 2011-12-20 Advantest Corporation Method and system for performing installation and configuration management of tester instrument modules
US7703027B2 (en) 2005-01-13 2010-04-20 National Instruments Corporation Merging graphical programs
WO2006078751A2 (en) 2005-01-18 2006-07-27 Everypoint, Inc. Systems and methods for processing changing data
US8396886B1 (en) 2005-02-03 2013-03-12 Sybase Inc. Continuous processing language for real-time data streams
US7620947B2 (en) 2005-03-11 2009-11-17 Autodesk, Inc. Enhanced directed graph representation for dependency systems
JP4622611B2 (ja) 2005-03-24 2011-02-02 ソニー株式会社 信号処理装置
US7505975B2 (en) 2005-04-14 2009-03-17 Bea Systems, Inc. Use of transaction context to select single database instance for global transaction
US20070118839A1 (en) 2005-10-24 2007-05-24 Viktors Berstis Method and apparatus for grid project modeling language
US7747565B2 (en) 2005-12-07 2010-06-29 Microsoft Corporation Garbage collector support for transactional memory
US8073671B2 (en) 2006-03-31 2011-12-06 Microsoft Corporation Dynamic software performance models
US7870556B2 (en) 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
US8572236B2 (en) 2006-08-10 2013-10-29 Ab Initio Technology Llc Distributing services in graph-based computations
US7844946B2 (en) 2006-09-26 2010-11-30 Intel Corporation Methods and apparatus to form a transactional objective instruction construct from lock-based critical sections
EP2092424B1 (en) 2006-10-19 2015-12-30 Checkmarx Ltd. Locating security vulnerabilities in source code
US8191052B2 (en) 2006-12-01 2012-05-29 Murex S.A.S. Producer graph oriented programming and execution
US20080244524A1 (en) 2007-03-27 2008-10-02 Tim Kelso Program Test System
US7805635B2 (en) 2007-04-09 2010-09-28 International Business Machines Corporation Constraint programming for reduction of system test-configuration-matrix complexity
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
WO2008131106A1 (en) 2007-04-17 2008-10-30 Earl Industries Llc Digital system for organizing diverse information
JP4073033B1 (ja) 2007-04-27 2008-04-09 透 降矢 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
CN101821721B (zh) 2007-07-26 2017-04-12 起元技术有限责任公司 具有误差处理的事务型基于图的计算
US8347292B2 (en) 2007-08-30 2013-01-01 International Business Machines Corporation Transaction aggregation to increase transaction processing throughout
JP5453273B2 (ja) 2007-09-20 2014-03-26 アビニシオ テクノロジー エルエルシー グラフベース計算におけるデータフロー管理
US7886141B2 (en) 2007-10-27 2011-02-08 Asix Electronics Corporation Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems
US8775441B2 (en) 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
US20090193417A1 (en) 2008-01-24 2009-07-30 Nec Laboratories America, Inc. Tractable dataflow analysis for concurrent programs via bounded languages
US8225288B2 (en) 2008-01-29 2012-07-17 Intuit Inc. Model-based testing using branches, decisions, and options
US8797178B2 (en) 2008-03-10 2014-08-05 Microsoft Corporation Efficient stream sharing for multi-user sensor data collection
US20090235267A1 (en) 2008-03-13 2009-09-17 International Business Machines Corporation Consolidated display of resource performance trends
US9184874B2 (en) 2008-03-31 2015-11-10 Qualcomm Incorporated Storing log likelihood ratios in interleaved form to reduce hardware memory
US8336052B2 (en) 2008-06-16 2012-12-18 International Business Machines Corporation Management, control, and monitoring of workload including unrelated processes of different containers
EP2324434A4 (en) 2008-06-30 2013-10-30 Ab Initio Technology Llc DATA PROTOCOLING IN GRAPH-BASED CALCULATIONS
US20100070955A1 (en) 2008-07-08 2010-03-18 Nec Laboratories America Alias analysis for concurrent software programs
US8782613B2 (en) 2008-08-12 2014-07-15 Hewlett-Packard Development Company, L.P. Optimizing applications using source code patterns and performance analysis
US8711148B2 (en) * 2008-10-01 2014-04-29 International Business Machines Corporation Method and system for generating and displaying an interactive dynamic selective view of multiply connected objects
US20100169137A1 (en) 2008-12-31 2010-07-01 Ebay Inc. Methods and systems to analyze data using a graph
US7979479B2 (en) 2009-01-08 2011-07-12 International Business Machines Corporation Transaction-controlled graph processing and management
US8635694B2 (en) 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
EP2396724A4 (en) 2009-02-13 2012-12-12 Ab Initio Technology Llc TASK EXECUTION MANAGEMENT
US7992040B2 (en) 2009-02-20 2011-08-02 International Business Machines Corporation Root cause analysis by correlating symptoms with asynchronous changes
US8327377B2 (en) 2009-04-30 2012-12-04 Ca, Inc. Detecting, logging and tracking component dependencies in web service transactions
US8332811B2 (en) 2009-04-30 2012-12-11 United Parcel Service Of America, Inc. Systems and methods for generating source code for workflow platform
US8473901B1 (en) 2009-06-12 2013-06-25 The Mathworks, Inc. Non-literal representation of programming language code
US8205113B2 (en) 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
US8667329B2 (en) 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US8997040B2 (en) 2010-03-24 2015-03-31 Microsoft Technology Licensing, Llc Variable closure
CN107066241B (zh) 2010-06-15 2021-03-09 起元技术有限责任公司 用于动态加载基于图的计算的系统和方法
AU2014262225A1 (en) 2010-06-15 2014-12-04 Ab Initio Technology Llc Dynamically loading graph-based computations
US8458729B2 (en) 2010-07-20 2013-06-04 International Business Machines Corporation Managing and optimizing workflows among computer applications
US9158650B2 (en) 2010-08-04 2015-10-13 BoxTone, Inc. Mobile application performance management
CN103069394B (zh) 2010-08-25 2016-06-22 起元技术有限责任公司 评估数据流图的特征
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
US8997024B2 (en) 2010-12-09 2015-03-31 Microsoft Technology Licensing, Llc Navigating between views of a graph using placemarkers
AU2012100128A4 (en) 2011-02-22 2012-03-08 Zensar Technologies Ltd A computer implemented system and method for indexing and optionally annotating use cases and generating test scenarios therefrom
US8863089B2 (en) 2011-02-25 2014-10-14 Nintendo Co., Ltd. Method and apparatus for visualizing computer program execution
US8732669B2 (en) 2011-03-11 2014-05-20 Oracle International Corporation Efficient model checking technique for finding software defects
US9165029B2 (en) 2011-04-12 2015-10-20 Microsoft Technology Licensing, Llc Navigating performance data from different subsystems
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
RU2549510C1 (ru) 2011-07-12 2015-04-27 Экспириен Инфомэйшн Солюшнз, Инк. Системы и способы создания крупномасштабной архитектуры обработки кредитной информации
EP2754041B1 (en) 2011-09-07 2020-06-24 Imagine Communications Corp. Systems and methods for developing component-based computing applications
US9607045B2 (en) 2012-07-12 2017-03-28 Microsoft Technology Licensing, Llc Progressive query computation using streaming architectures
US9323650B2 (en) 2012-07-23 2016-04-26 Infosys Limited Methods for generating software test input data and devices thereof
US9875094B2 (en) 2012-08-29 2018-01-23 International Business Machines Corporation Microcode upgrade in a storage system
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9811233B2 (en) * 2013-02-12 2017-11-07 Ab Initio Technology Llc Building applications for configuring processes
KR102143889B1 (ko) * 2013-03-15 2020-08-12 아브 이니티오 테크놀로지 엘엘시 메타데이터 관리를 위한 시스템
US9076552B2 (en) * 2013-07-08 2015-07-07 Globalfoundries Inc. Device including a dual port static random access memory cell and method for the formation thereof
EP3011440A2 (en) * 2014-09-17 2016-04-27 Siemens Aktiengesellschaft Method and digital tool for engineering software architectures of complex cyber-physical systems of different technical domains

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429631B2 (en) * 2003-11-03 2013-04-23 Pervasive Software, Inc. System and method for data transformation using dataflow graphs
US20060294150A1 (en) * 2005-06-27 2006-12-28 Stanfill Craig W Managing metadata for graph-based computations
JP2008547134A (ja) * 2005-06-27 2008-12-25 エービー イニティオ ソフトウェア コーポレーション グラフ型計算のためのパラメータ管理
US20150160926A1 (en) * 2013-12-05 2015-06-11 Ab Initio Technology Llc Managing interfaces for sub-graphs

Also Published As

Publication number Publication date
CA3005263C (en) 2021-06-15
AU2016377516B2 (en) 2020-01-30
EP3394739A2 (en) 2018-10-31
CA3114779A1 (en) 2017-06-29
CN108475189A (zh) 2018-08-31
SG11201803929YA (en) 2018-06-28
EP3779674B1 (en) 2023-02-01
WO2017112654A2 (en) 2017-06-29
CA3114779C (en) 2023-03-07
EP3394739B1 (en) 2020-11-11
JP2019505885A (ja) 2019-02-28
JP6584672B2 (ja) 2019-10-02
WO2017112654A3 (en) 2017-08-03
AU2016377516A1 (en) 2018-05-31
CA3005263A1 (en) 2017-06-29
US10671669B2 (en) 2020-06-02
KR102051768B1 (ko) 2019-12-03
CN108475189B (zh) 2021-07-09
US20170177740A1 (en) 2017-06-22
EP3779674A1 (en) 2021-02-17

Similar Documents

Publication Publication Date Title
KR102051768B1 (ko) 서브-그래프 인터페이스 생성
US10901702B2 (en) Managing interfaces for sub-graphs
JP6449173B2 (ja) プロセスを構成するためのアプリケーションの構築
HK1259805A1 (en) Sub-graph interface generation
HK1259805B (zh) 子图接口生成的方法、系统及计算机可读介质
HK40110825A (en) Managing interfaces for dataflow graphs composed of sub-graphs
HK1231979A1 (en) Managing interfaces for dataflow graphs composed of sub-graphs
HK1231979B (zh) 管理包括子图的数据流图所用的接口

Legal Events

Date Code Title Description
A201 Request for examination
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U12-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7