KR101693229B1 - 데이터 저장 시스템과의 통신 - Google Patents

데이터 저장 시스템과의 통신 Download PDF

Info

Publication number
KR101693229B1
KR101693229B1 KR1020117019123A KR20117019123A KR101693229B1 KR 101693229 B1 KR101693229 B1 KR 101693229B1 KR 1020117019123 A KR1020117019123 A KR 1020117019123A KR 20117019123 A KR20117019123 A KR 20117019123A KR 101693229 B1 KR101693229 B1 KR 101693229B1
Authority
KR
South Korea
Prior art keywords
data
data processing
processing element
storage system
data storage
Prior art date
Application number
KR1020117019123A
Other languages
English (en)
Other versions
KR20110119715A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=42562078&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR101693229(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 아브 이니티오 테크놀로지 엘엘시 filed Critical 아브 이니티오 테크놀로지 엘엘시
Publication of KR20110119715A publication Critical patent/KR20110119715A/ko
Application granted granted Critical
Publication of KR101693229B1 publication Critical patent/KR101693229B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/26Visual data mining; Browsing structured data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명의 측면에서, 네트웍(110)을 거쳐 데이터 저장 시스템(112)에 연결하고, 데이터 저장 시스템은 데이터 객체(118)을 저장한다. 데이터의 플로우를 표시하는 링크에 의하여 연결되는 데이터 처리 요소를 표시하는 노드를 포함하는 데이터 플로우 그래프는 데이터 저장 시스템의 인터페이스(113)에 액세스한다. 인터페이스는 데이터 객체를 액세스하기 위한 기능을 제공한다. 적어도 하나의 데이터 처리 요소가 하나 이상의 저장된 데이터 객체(118)을 수정하기 위하여 인터페이스(113)에 의하여 제공되는 기능(114a~d)을 인에이블 하는 데이터의 수신된 입력 플로우에 관하여 작업을 수행하고, 데이터의 출력 플로우를 생성하기 위하여 인터페이스에 의하여 제공되는 기능에 응답하여 작업을 수행한다.

Description

데이터 저장 시스템과의 통신{COMMUNICATING WITH DATA STORAGE SYSTEMS}
본 출원은 2009년 2월 13일에 출원된 미국 특허 출원 번호 제61/152,640호의 우선권을 주장하고, 이는 본 명세서에 참조로서 포함되어 있다.
본 명세서는 데이터 저장 시스템과의 통신에 관한 것이다.
데이터를 보유하는 외부 데이터베이스는 많은 방법으로 액세스되고 제어될 수 있다. 원격 데이터 소스와 상호작용하는 한가지 전형적인 기술은 웹 서비스의 이용이다. 웹 서비스는 웹 애플리케이션이 네트웍을 통하여 서로 연결하도록 사용하는 공통 프로토콜을 제공한다(예를 들어, 근거리 네트웍 또는 인터넷). 웹 서비스의 한가지 장점은 업계의 표준에 기하고 있다는 점이다. 서비스는 XML언어로 기술되어 있고 기존의 HTTP기반에서 통신한다. XML 및 HTTP의 결합은, 예를 들어, 데이터 전송 프로토콜을 가능하게 한다: 즉, Simple Object Access Protocol (SOAP)와 같은 것이다.
본 발명은 네트웍을 통한 데이터 저장 시스템을 개선하고자 한다.
일반적으로, 한 측면에서 본 발명의 방법은 네트웍을 통하여 데이터 저장 시스템에 연결하는 것과 데이터 저장 시스템은 데이터 객체를 저장하는 것을 포함한다. 데이터 플로우 그래프는 노드(node)를 포함하고 노드는 링크(link)에 의하여 연결된 데이터 처리 요소를 나타내고 리으는 데이터의 플로우를 나타내며 이는 데이터 저장 시스템의 인터페이스를 액세스한다. 인터페이스는 데이터 객체를 액세스하기 위한 기능을 제공한다. 적어도 하나의 데이터 처리 요소가 데이터의 입력 플로우 상에서 동자갛고 입력 플로우는 인터페이스에 의하여 제공되는 기능이 하나 이상의 저장된 데이터 객체를 수정할 수 있게 하고, 데이터의 출력 플로우를 생성하는 인터페이스에 의하여 제공되는 기능에 응답하여 동작을 수행한다.
본 발명의 측면의 하나 이상의 이하의 특징을 포함한다. 그래픽 사용자 인터페이스가 사용자로부터의 입력을 받고 포매팅 정보를 적어도 하나의 데이터 처리 요소로 제공한다. 포매팅 정보는 데이터 객체와 연관된 하나 이상의 필드에 따라서 데이터 레코드에 대한 포맷을 정의하고, 여기서 정의된 포맷에 따라서 포맷된 데이터 레코드는 데이터 처리 요소에 의하여 수행되는 동작과 호환가능하다. 그래픽 사용자 인터페이스는 복수의 동작에서 선택된 동작과 연관된 규칙에 기하여 데이터 객체와 연관된 데이터 객체 및 필드를 디스플레이한다. 규칙은 어떤 데이터 객체 및 필드가 선택된 동작에 적용 가능한지 특정한다. 그래픽 사용자 인터페이스는 규칙을 만족하는 데이터 객체 및 필드만을 디스플레이한다. 하나 이사의 데이터 객체 및 필드가 그래픽 사용자 인터페이스에 의하여 디스플레이되는데 이는 선택가능하다. 규칙을 만족하는 데이터 객체 및 필드는 선택된대로 자동적으로 디스플레이된다. 그래픽 사용자 인터페이스는 선택된대로 자동적으로 디스플레이된 뎅터 객체 및 필드를 선택해제하는 것을 방지한다. 데이터 처리 요소는 데이터 저장시스템으로 보내질 요청을 생성한다. 데이터 처리 요소를 다수의 입력 데이터 레코드를 가지는 입력을 단일 요청 메시지로 변형한다. 데이터 처리 요소는 데이터 저장 시스템에서 받은 단일 응답 메시지를 복수의 출력 데이터 레코드로 변형한다. 데이터 처리 요소는 데이터의 플로우를 표시하는 입력 파라메터에 기하여 요청 메시지를 생성한다. 사용자는 메타 데이터 브라우저를 통하여 데이터 처리 요소의 입력 파라메터를 변경한다. 데이터 저장 시스템에서 받은 단순한 객체 액세스 프로토콜 응답은 성공적 기능처리의 수신확인 및 실패한 기능 처리의 수신 확인을 포함한다. 데이터 처리 요소는 실패한 기능 처리 및 성공한 기능 처리에 연관된 데이터를 데이터 처리 요소의 다른 포트로 보낸다. 데이터 저장 시스템과 연결하는 것은 데이터 처리 요소로부터의 로그인 요청을 데이터 저장 시스템으로 송신하는 것, 세션 인증을 얻기 위해 데이터 저장 시스템에 로그인하는 것, 세션 인증을 저장하는 것, 저장된 세션 인증을 앞으로의 로그인 요청으로 인코딩하는 것을 포함한다. 로그인 요청은 내부 게이트웨이로 송신된다. 저장된 세션 인증은 복수의 동시 로그인 요청으로 인코딩된다. 데이터의 출력 플로우를 생성하는 것은 데이터 저장 시스템으로부터 수신된 부분적 결과의 하나 이상이 배치(batch)에 관한 동작을 수행하는 것을 포함한다. 하나 이상의 데이터 처리 요소는 적어도 제1 데이터 처리 요소 및 제2 데이터 처리 요소를 포함한다. 제1 데이터 처리 요소는 데이터 저장 시스템으로부터의 부분적 결과의 하나 이상의 배치를 받고 적어도 몇몇의 부분적 결과를 제2 데이터 처리 요소로 제공하고, 제1 데이터 처리 요소는 부분적 결과의 배치를 계속하여 받는다. 제2 처리 요소는 수신된 부분적 결과의 적어도 일부에 기하여 출력 데이터 플로우를 생성한다.
다른 측면에서, 일반적으로 시스템은: 데이터 저장 시스템에 연결하기 위한 회로를 포함하고 데이터 저장 시스템은 데이터 객체를 저장하는 네트웍 인터페이스; 및 데이터 처리 환경을 포함하고, 환경은 데이터 저장 시스템의 인터페이스에 액세스하도록 구성된 적어도 하나의 프로세서를 포함하고, 이는 데이터의 플로우를 나타내는 링크에 의하여 연결된 데이터 처리 요소를 표시하는 노드를 포함하는 데이터 플로우 그래프에 의하고, 인터페이스는 데이터 객체를 액세스하기 위한 기능을 제공한다. 적어도 하나의 데이터 처리 요소는 수신된 데이터의 입력 플로우에 관한 동작을 수행하고, 이는 인터페이스에 의해 제공된 기능이 하나 이상의 저장된 데이터 객체를 수정할 수 있게 해 주고, 그리고 데이터 처리 요소는 데이터의 출력 플로우를 생성하기 위하여 인터페이스에 의하여 제공된 기능에 응답하여 동작을 수행한다.
다른 측면에서, 시스템은 네트웍을 거쳐서 데이터 저장 시스템에 연결하고 데이터 저장 시스템은 데이터 객체를 저장하는 수단; 및 데이터 저장 시스템의 인터페이스에 액세스하는 수단을 포함하고, 이는 데이터의 플로우를 표시하는 링크에 의해 연결되는 데이터 처리 요소를 표시하는 노드를 포함하는 데이터 플로우 그래프에 의하고, 인터페이스는 데이터 객체를 액세스하기 위한 기능을 제공한다. 적어도 하나의 데이터 처리 요소는 수신된 데이터의 입력 플로우에 관한 동작을 수행하고, 이는 인터페이스에 의해 제공된 기능이 하나 이상의 저장된 데이터 객체를 수정할 수 있게 해 주고, 또한 데이터 처리 요소는 데이터의 출력 플로우를 생성하기 위하여 인터페이스에 의하여 제공된 기능에 응답하여 동작을 수행한다.
다른 측면에서, 컴퓨터 판독 가능한 매체는 컴퓨터로 하여금 다음의 동작을 하도록 하는 명령을 저장하는 컴퓨터 프로그램을 저장한다: 네트웍을 거쳐서 데이터 저장 시스템은 데이터 객체를 저장하고; 데이터 저장 시스템의 인터페이스에 액세스하고 이는 데이터의 플로우를 표시하는 링크에 의하여 연결된 데이터 처리 프로세스를 표시하는 노드를 포함하는 데이터 플로우 그래프에 의하고, 인터페이스는 데이터 객체를 액세스하기 위한 기능을 제공한다. 적어도 하나의 데이터 처리 요소가 데이터의 수신된 입력 플로우에 관해 동작을 수행하고 이는 인터페이스에 의하여 제공된 기능이 하나 이상의 저장된 데이터 객체를 수정할 수 있게 해 주고, 데이터 처리 요소가 데이터의 출력 플로우를 생성하는 인터페이스에 의하여 제공된 기능에 응답하여 동작을 수행한다.
본 발명의 측면은 다음의 하나 이상의 장점을 가진다. 대용량의 데이터를 가지는 사용자가 데이터베이스에 데이터를 로드하고 이로부터 데이터를 추출할 수 있으면서도 전형적인 기업데이터 보안 기준을 맞출 수 있다. 대용량 데이터 로드 및 추출이 효율적으로 이루어질 수 있고 병렬 데이터 플로우 프로그래밍의 장점을 이용할 수 있다. 그래픽 사용자 인터페이스가 누락 및 스펠링 에러를 줄여주면서 많은 객체 및 필등 간해 즉각적이고 정확한 정보를 제공한다. 인터페이스가 자동적으로 데이터베이스와 작용하기 위한 로우 레벨 요구를 처리하고, 이는 특정 처리를 요구하는 동작과 같은 것이다.
다른 특징 및 장점들은 이하의 상세한 설명 및 청구 범위로부터 명확해질 것이다.
도 1은 네트웍 구조의 예이다.
도 2는 예시적인 설정가능한 라이브러리의 스크린 표시이다.
도 3은 예시적인 설정 파라메터의 사용자 인터페이스이다.
도 4는 요소의 특성을 보여주는 브라우저의 예이다.
도 5 및 6은 예시적인 GUI의 화면 표시 예이다.
도 7은 예시적인 요소 내의 데이터 플로우 디자인의 예이다.
애플리케이션 개발을 위하여 프로그램들 사이에 네트웍 통신을 허용하는 것은 중요하다. 많은 현대의 애플리케이션들이 DCOM 및 COBRA와 같은 객체 사이의 원격 프로시쥬어 콜(RPC)을 사용하여 통신한다; 하지만, HTTP는 본래 이러한 통신을 위하여 디자인 되지는 않았다. RPC는 호환성 및 보안 문제를 나타낸다. 예를 들어, 방화벽 및 프록시 서버는 이러한 종류의 트래픽을 막을 수 있다. HTTP가 모든 인터넷 및 서버에 의하여 지원되기 때문에, 가능하다면 이 프로토콜을 사용하여 통신하는 것이 유용하다. SOAP는 객체들 사이의 HTTP 통신을 부분적으로 허가하기 위하여 개발된 프로토콜이다. SOAP는 다르 기술 및 프로그램 언어로 된 다른 운영체제에서 실행되는 애플리케이션 사이에서 통신하는 방법을 제공한다.
복합적인 비즈니스 시스템은 전형적으로 데이터를 다수의 스테이지에서 처리하고, 한 스테이지에 의해 생성된 결과가 다음 스테이지에 제공된다. 그러한 시스템을 통한 정보의 전반적인 플로우는 방향 데이터 플로우 그래프를 사용하여 기술될 수 있는데, 그래프에서 꼭지점은 요소(데이터 파일 또는 프로세스)를 나타내고 그래프에서 링크 또는 "모서리"는 요소들 사이의 데이터의 플로우를 나타낸다.
그래프는 또한 계산을 직접 시작시키기 위하여 사용될 수 있다. 매사츄세츠, 렉싱턴 소재의 아브 이니티오 소프트웨어 코퍼레이션에서 제공되는 그래픽 개발 환경(GDE)를 구비한 "CO>OPERATING SYSTEM®"는 그러한 시스템의 한 예이다. 이러한 시스템에 따라 작성되는 그래프는 그래프 요소에 의해 표시되는개별 프로세스로 출입하는 정보를 얻고, 프로세스들 사이에서 정보를 이동시키고, 프로세스에 대하여 실행 순서를 정의하기 위한 방법을 제공한다. 이 시스템은 프로세스 간 통신 방법을 선택하는 알고리즘 및 프로세스 처리를 스케쥴링하고, 그래프의 처리에 대한 모니터링도 제공하는 알고리즘을 포함한다.
도 1은 네트웍 구성의 예이고 이는 클라이언트(102), 원격 데이터 베이스(112) 및 그 사이에 개재된 네트웍 요소를 포함한다. 몇몇 예에서, 원격 데이터 베이스(112)는 사용자, 구독자 또는 고객(101)에게 액세스할 수 있는 데이터(116)을 호스트한다. 데이터(116)은 필드(120)을 포함하는 객체(118)로 구성될 수 있다. 도 1의 예에서, 사용자(101)은 원격 데이터 베이스(112)에 저장된 객체(118)에 액세스하거나 또는 네트웍(110)을 거쳐 원격 데이터 베이스에 새로운 데이터를 추가하는 데이터(116)에 액세스하려고 한다. 이하의 기재에서 네트웍(110)은 종종 인터넷으로 표시된다; 그러나, 근거리 네트웍과 같은 다른 네트웍도 사용될 수 있다.
원격 데이터 베이스(112)는 사용자에 대해 데이터를 호스트하고, 사용자는 네트웍(110)을 개재하여 원격 데이터 베이스에 판독 또는 기록할 수 있다. 사용자에 대한 데이터를 호스트하는 원격 데이터 베이스(112)의 예는 웹사이트 www.salesforce.com®("Salesforce")이다. 이하의 몇몇 예들이 Salesforce 구현예를 참조할 수 있지만, Salesforce는 단지 네트웍을 거쳐서 사용자에 의해 액세스되고수정될 수 있는 데이터를 가지는 원격 데이터 호스트의 예이다. 몇몇 경우에, 원격 데이터 베이스에 의하여 제공되는 통상적인 웹서비스는 대용량 데이터의 사용자에게는 부적절하다. 이 대용량 사용자는 원격 데이터베이스에 대해 효율적으로 데이터를 판독 및 기록할 필요가 있고, 전형적으로 그 데이터를 다른 데이터 시스템(데이터 파일, 메시지 시스템, 데이터 베이스 및 비즈니스 리포트 툴과 같은)에 통합할 필요가 있다.
몇몇 예에서, 원격 데이터 베이스(112)는 고객들이 대용량 데이터를 효율적으로 판독 및 기록하는데 사용될수 있는 웹 서비스 기술 언어(WSDL)의 웹서비스 애플리케이션 프로그래밍 인터페이스(113)(API)를노출한다. 그러나, 원격 데이터 베이스는 이 API의 구현을 제공할 수 없을 수 있다. API의 전형적인 구현은 전형적으로 자바와 같은 언어에서 전통적인 코딩을 이용할 것이다.
사용자들(예를들어 개발자들)은 몇가지 이유 때문에 원격 데이터 베이스에 의하여 제공되는 표준 인터페이스를 구현하는 것이 번거롭다고 발견할 수 있다. 먼저, 사용자는 연속적인 웹 서비스 요청 사이에 상태가 확보되는 것을 필요로 할 수 있다. 다음으로, 사용자들은 또한 그 자신의 방화벽 환경(예를 들어, 방화벽 환경 외부의 데이터 소스와의 모든 통신을 확인할 수 있는, 데이터 게이트웨이(108)을 통하여) 그리고 원격 데이터 베이스(112)(공공 웹사이트일 수 있는) 사이의 요구를 안전하게 패스하는 것이 어렵다는 것을 발견할 수 있다. 마지막으로, 사용자들은 고(高) 레이턴시(latency) 웹 서비스의 부정적 효과를 최소화하면서 API를 구현하는 것이 어려움을 발견할 수 있다. 또한, 데이터 플로우 프로그래밍 환경을 이용하는 구현예를 제공하는 것이 유용할 것이다.
몇몇 예에서, 그래프 기반 컴퓨팅이 분산 서비스와 상호작용하는데에 두가지 방법이 있다. 몇몇 예에서, 그래프는 서비스를 호출하고 서비스가 그래프의 노드인 것처럼 서비스와 관계한다. 다른 예에서, 어떤 애플리케이션이 그래프와 관계하여 그래프가 서비스를 제공한다. 두가지 경우는 동시에 일어날 수 있다. 예를 들어, 한 애플리케이션에 서비스를 제공하는 그래프는 그 자신이 다른 서비스를 호출하여 계산의 일부를 실행할 수 있다. 한 그래프가 호출하는 서비스는 다른 그래프에 의하여 제공될 수 있고, 예를 들어 제1 그래프가 제2 그래프를 서브 그래프로서 포함하지 않고 호출한다.
몇몇 예에서, 데이터 플로우 처리 환경(104) 내의 작업이 실행될 때, 이는 서비스의 클라이언트로서 원격 데이터 베이스(112)의 인터페이스(113)에 의하여 노출되는 기능(114a~d)를 호출한다. 예를 들어, 데이터 플로우 처리 환경(104) 내의 요소는 SOAP, HTTP, XML, WSDL 등 중의 하나 이상의 조합을 이용하여 웹서비스를 액세서하여 원격 데이터 베이스(112)에 호스트되는 웹 서비스 인터페이스(113)과 통신할 수 있다. 성공인 경우, 데이터 플로우 처리 환경(104) 내의 요소는 원격 데이터 베이스(112) 내에 저장된 데이터(116)을 액세스하도록 허용될 수 있다.
몇몇 예에서, 설정가능한 라이브러리가 데이터 플로우 처리 환경(104) 내에서와 같이 데이터 플로우 애플리케이션("그래프")에서 사용하기 위하여 요소를 포함할 수 있다. 라이브러리 내에 포함된 요소를 구성함으로써, 요소는 원격 데이터 베이스 내의 객체를 판독 및 기록하는데 사용될 수 있고, 원격 데이터베이스(112)의 인터페이스(113)에서 정의된 기능(114a~114d)를 인에이블하는데 사용될 수 있다. 도 2는 요소(206)의 라이브러리(204)를 디스플레이하는 브라우저(202)의 한 예이다. 요소(206)의 각각은 재사용 가능한 프로그래밍 논리의 부분을 설정한다. 요소들은 그래프에서 사용될 수 있고, 그들의 움직임은 요소의 인스턴스에 몇개의 파라메터 값을 제공함으로써 설정될수 있다.
도 3은 요소 인스턴스를 설정하기 위한 사용자 인터페이스의 예이다. 이는 레코드 포맷 기술을 포함하지만 이에 제한되지는 않는다. 이 예에서, 브라우저(302)는 "Write_Objects 속성"을 표시하고, 요소(206)(도 2)에 의하여 판독 및 기록되는 객체의 유형을 설정하기 위하여 사용될 수 있다. 브라우저는 사용자가 요소(206)에 의하여 사용되는 숨겨진 그리고 보이는 레코드 포맷 둘 다 및 데이터 변형을 편집할 수 있게 해 준다. 이들 레코드 포맷 및 변형의 구성은 요소가 원격 데이터 베이스의 인터페이스와 통신할 수 있도록 요청(예를들어 SOAP 요청)를 기록 및 parse 둘 다 할 수 있게 해 준다. 예를 들어, 파라메터 "작업" 및 "트리거"는 조합된 SOAP 요청 내에서 어떤 특징을 구현할지를 설정한다. 몇몇 파라메터들은 로그인 인증(사용자 이름 및 패스워드)와 관련이 있고, 다른 파라메터들은 회복도를 규율하고(출력 빈도를 세이브하고), 또는 동시 출현, 시간 경과 유연성 및 보안(예들 들어 ssl, 게이트웨이)과 연관이 있다.
도 4는 객체 기록 요소의 파라메터 집합(예를 들어, 도 3의 예에서 위에서 기재된 파라메터 집합)으로부터 실시된 편집기(402)의 예이다. 몇몇 예에서, 편집기(402)의 디스플레이는 원격 데이터베이스(112)에 대해 만들어진 SOAP 요청에 의해 규율된다(도 1). 예를 들어, 사용자가 편집기(402)를 디스플레이하도록 작업을 할 때, SOAP 호출이 원격 데이터베이스에 대해 이루어져 원격저장된 데이터(예를 들어 메타 데이터)를 불러들인다. SOAP 호출은 브라우저에서 무엇이 디스플레이되는지를 규율하는 스키머(예를 들어, 객체 필드 및 규칙의 hierarchy)를 회신한다. 이 예에서, 사용자는 요소의 파라메터 리스트에 관하여 "Upsert(업데이트+삽입)" 기능에 대한 편집기를 선택한다. 편집기에서, 사용자는 "접촉" 객체(406)에 대하여 데이터를 로드하기로 선택하고 기록을 위하여 몇 개의 필드(408a, 408b, 408c, 408d)를 선택하였다. 이들 선택에 기하여, 편집기는 DML에 따라 몇가지 "유형"(예를 들어, 날짜, 날짜 시간, 정수)로 구성되는 레코드 포맷을 설정하고 DML은 데이터 레코드를 변형하고 상호작용하는 데 사용되는 레코드 포맷과 다양한 기능과 표현들을 특정하기 위하여 사용된다. 이들 유형들은 요소의 숨겨진 그리고 보이는 파라메터를 편집하는데 사용된다. 예를 들어, 요소(예를 들어 요소(104)(도 1))의 입력 레코드 포맷 파라메터의 값은 편집기에 의해 변경될 수 있다. 그 결과, 원격 데이터 베이스(112)(도 1)을 발송하는 SOAP 요청을 생성하기 위하여, 사용자는 요소를 설정하고 호환성 있는 데이터 플로우를 요소 내외로 흐르도록 설정한다. 사용자에 의하여 설정된 유형들은 또한 데이터 변형을 포함하는 다른 요소를 편집하는 데 사용될 수 있다.
또한, 요소들이 설정가능하므로, 사용자에게 요구되던 전통적인 코딩 없이 원격 데이터 베이스의 어떤 객체도 판독 및 기록하는 데 사용될 수 있다. 도 3에 도시된 편집기를 사용하여, 사용자는 성능 및 보안 요구사항을 만족시키기 위하여 요소의 움직임을 설정할 수 있다.
각각의 요소는 원격 데이터 베이스(112)의 인터페이스(113)에 정의된 하나 이상의 기능(114a~d)(도 1)을 인에이블 시킬 수 있다. 예를 들어, "객체 기록" 요소는 원격 데이터 베이스(112)의 "생성", "업데이트", "Upsert" 기능을 구현한다. 이는 사용자가 인터페이스(113)에 의하여 제공되는 어떤 기능을 이용하여 원격 데이터 베이스에 데이터를 기록할 수 있게 해 준다. 각각의 기능은 원격 데이터 베이스(112)에 의해 정의되는 특정 움직임을 가지고, 각각의 기능은 데이터(116), 객체(118) 또는 필드(120)을 액세스하고, 조작하고, 추가하고, 제거하는 데 사용될 수 있다.
요소는 재사용 가능한 논리로 구성되어 있고, 임의의 HTTP 요청 또는 HTTP 응답 작업의 업스트림 및 다운스트림 데이터 처리를 수행할 수 있다. 예를 들어, 요소에 의하여 수행되는 데이터 처리는 응답 데이터를 성공 레코드 및 실패 레코드로 분리하는 것, 많은 입력 데이터 레코드를 단일 요청(예를 들어, 원격 데이터 베이스(112)로 보내지는 SOAP 요청)으로 변형하는 것, 단일 응답(예를 들어, 원격 데이터 베이스(112)로부터 수신된 SOAP 응답)을 항나 이상의 출력 데이터 레코드로 변형하는 것을 포함할 수 있다.
예를 들어, "객체 기록" 요소에서, 사용자는 원격 데이터 베이스의 인터페이스에 의하여 정의되는 "생성" 기능을 사용할 수 있고, 이는 사용자가 원격 데이터 베이스에서 새로운 객체를 생성할 수 있게 해 준다. 객체가 이미 존재하는 경우(키이에 의하여 결정되는 경우와 같이), 생성은 실패로 동작한다. 단일 SOAP 요청(또는 다른 유형의 요청)은 생성될 많은 객체를 포함할 수 있다. 실패가 아닌 SOAP 응답은 이들 동작의 각각의 결과에 관한 정보를 포함할 것이다.
"객체 기록" 요소는 N개의 입력 레코드를 단일 SOAP 요청으로 변형하고 단일 SOAP 응답을 N개의 출력 레코드로 변형하는 논리를 포함한다(N이 레코드의 수를 표시하는 요소의 설정가능한 파라메터인 경우). 이 논리를 요소에서 인코딩함으로써, 사용자는 데이터를 "플랫(flat)" 레코드로서 처리할 수 있고, 이 요청을 결합하고 응답을 parse하는 전통적 코딩을 수행하지 않고 처리된다. 요소는 또한 실패한 생성 동작을 성공한 생성 동작으로부터 분리하는 논리를 포함할 수 있고, 따라서 데이터를 다른 포트로 라우팅할 수 있다. 이 기능은 원격 데이터 베이스의 표준 인터페이스에 의하여 제공되지 않을 수 있고, 요소의 업스트림 및 다운스트림 처리 능력은 이 추가된 기능을 가능하게 할 수 있다.
도 7의 예에서, 요소(702) "객체 기록"의 내부 데이터 플로우가 도시된다. 부요소 "CWS 및 폴트 처리"(712)는 포트(704, 706, 708, 710)을 가진다. 각각의 포트는 레코드를 입력으로서 받거나 레코드를 출력으로서 패스할 수 있다. 부요소 "성공을 실패로부터 분리하기 위한 FBE"(716)의 포트(714)는 포트(714)에서 데이터의 플로우를 받을 수 있다 (예를 들어, 위에서 기재된 성공 또는 실패 표시부를 포함하는 레코드와 같이). 부요소(716)은 성공한 작업으로부터 실패한 작업을 분리하는 논리를 포함하고, 따라서 데이터를 포트(718, 720)으로 라우팅할 수 있다.
요소의 배열과 형태는 데이터 플로우 프로그래밍의 이점을 이용한다. 예를 들어, 요소는 프로세스 데이터 및 (가능한 경우) 파이프라인 병렬 처리를 인에이블하고, 배치 또는 연속 프로세스로서 실행할 수 있고, 최소한의 배열로 사용하기 쉽게 항ㄴ다. 요소는 또한 공유된 로그, 에러 및 폴트 처리 특징을 포함할 수 있다.
몇몇 요소는 재시작 가능하다. 즉, 재시작 가능한 요소의 하나를 포함하는 애플리케이션이 실행 중에 예기치않게 종료하는 경우, 애플리케이션은 그 지점에서 재시작할 수 있다.
몇몇 요소들은 "웹 서비스 호출" 요소를 포함할 수 있다. 이 요소는 사용자가 HTTP 1.1 프로토콜을 사용하여 웹 서비스를 호출하고, 응답을 기다리고, 응답이 수신되었을 때 응답을 처리할 수 있게 해 준다. 웹 서비스 호출 요소의 유형적 동작은 파라메터의 집합에 의해 규율되고, 그 중 하나는 변형이다. 변형은 DML 프로그래밍 언어에서 정의된 변수, 유형 및 기능의 집합이다. 웹 서시스 호출 요소와 관련된 변형의 인스턴스는 원격 데이터 베이스에 로그인하고 이후의 요청으로 인코딩될 수 있는 세션 인증을 얻는 논리를 포함할 수 있다. 요청은 적절한 URL(내부 "데이터 게이트웨이" URL일 수 있음)으로 라우팅된다. 변형은 또한 발송될 동시 요청을 허락할 수 있다.
변형은 로그인 요청이 발송될 URL을 구성한다; 예를 들어, 클라이언트가 데이터 게이트웨이(108)(도 1) 배후에서 동작하는 경우, 원격 데이터 베이스 URL이 생성될 것이고, 추가로 WSDL 스키머 코드 및 버전 번호를 포함할 수 있다. 그 후 로그인 요청이 발송되어 원격 데이터 베이스의 인터페이스 "로그인" 기능을 구현할 수 있다. 그 후 변형은 응답을 기다리고 이를 번역하여 세션 ID를 얻는다.
요소로의 각각의 입력 레코드에 관하여, URL이 데이터 요청이 발송될 곳에 대하여 구성되고, 세션 ID(위에서 기재된, 앞서의 프로세스로부터 얻어짐)가 WSDL에 의하여 특정된 대로 요청으로 삽입된다. 응답이 시간 종료를 표시하는 경우, 재시도 카운터가 특정 요청에 대하여 감소된다. 요청이 아직 재시도인 채로 남아있는 경우, 요청은 다시 발송된다. 요청이 카운터 상에서 남이 있는 재시도가 없는 경우 실패가 로그된다.
이후 요청은 원격 데이터베이스로 발송되고, 변형이 응답을 기다린다. 응답이 성공을 표시하는 경우, 변형은 다운스트림 데이터 플로우로 데이터 플로우 처리 환경(104)(도 1) 내에서 성공 응답을 출력한다.
위에서 기재된 변형은 몇 가지의 추가 특징을 포함할 수 있다. 몇몇 예에서 변형은 다수의 병렬 요청을 발송하고, 여기서 병렬의 정도는 요소의 파라메터에 의하여 규율된다. 각각의 요청이 웹 서비스(예를 들어, 도 1의 인터페이스(113))로 발송되기 때문에, 이 레이턴시는 높다. 이들 요청들이 병렬로 발송되지 않는 경우, 모든 요청들의 경과 시간은 요청의 총수에 의해 곱해진 하나의 요청의 레이턴시와 대략 같을 것이다. 요청을 동시에 발송함으로써, 레이턴시는 동시 요청이 허용되는 수와 동일한 요소만큼 감소될 수 있다.
또한, 변형은 설정가능한 횟수까지 요청을 재시도함으로써 HTTP 요청 시간 경과를 처리할수 있다. 시간 경과가 선언되기 전의 시간의 길이는 요소의 설정가능한 파라메터이고, 이는 에러를 로그하기 전에 재시도하는 횟수와도 같다. 또한, 몇몇 예에서, 변형은 사용자가 데이터 게이트웨이(108)(도 1)과 같은 데이터 게이트웨이로 요청을 발송할 수 있게 한다. 이러한 설정은 기업 컴퓨팅 환경에서 전형적이고, 여기서는 원격 데이터베이스에 대한 대용량 처리량이 요구된다. 요소 파라메터의 사용자에 의한 구성에 의하여, 요청은 원격 데이터베이스로 직접 발송되거나, 또는 데이터 게이트웨이 URL(전형적으로 방화벽 처리된 환경에 내재한 URL)로 발송될 것이다. 마지막으로, 변형은 로그인 요청에 의하여 세션ID를 얻음으로써 세션 정보를 관리하고, 이후 다음의 데이터 요청으로 삽입하고, 이는 재확인될 세션의 필요성을 없애준다.
추가의 변형이 요소에 포함되어 "질의" 기능을 제공할수 있고, 이는 원격 데이터베이스 내의 객체에 질의하는 것을 가능하게 한다. 다른 것 중에서, 이 변형은 레코드의 대량 배치에 질의 가능하게 하는 추가 기능을 가진다. 질의 기능을 인에이블하는데 사용되는 변형은 최초의 질의 요청을 발송한다. 원격 데이터베이스가 이 질의에 응답하여 대향이 객체를 발견하는 경우, 최초의 응답에서 몇몇 객체를 회신하고 유일하게 질의를 식별하는 키이를 제공한다. "추가 질의" 기능을 사용하고 이 키이를 제공하는 원격 데이터 베이스에 대한 이후의 요청은 최초의 지의에 대해 추가 회답을 회신할 것이다. 변형은 질의 식별 키이에 대한 최초 응답을 재확인함으로써 이 동작을 지원하고 이후의 "추가 질의" 요청으로 삽입한다.
몇몇 예에서, 요소들은 동작을 병렬로 실행시킬수 있는 능력을 가진다. 예를 들어, "질의" 동작은 상당량의 데이터를 회신할 수 있다. 사실, 원격 데이터베이스는 작은 배치로 하여 되돌려보내고 요소는 '다음 질의 결과'를 계속하여 요청하여야 한다. 이는 질의로 시작하는 루프로 이끌고, 추가 질의 상에서 루프를 수행하고, 최종적으로 종료한다. 작업은 지원될 뿐 아니라, 병렬로 지원된다; 부분적 응답의 다수의 집합이 회신되고, 집합되고 그래프의 나머지에 (최종적으로) 주어진다. 또한, 전체적 성능과 처리량을 개선하기 위하여, 요소는 그래프의 나머지에 부분적인 결과를 제공할 수 있다.
많은 경우에 (위에서 설명한 것과 같이) 그래프는 클라이언트와 원격 데이터 베이스 둘 다에 의하여 수행되는 동작의 구동요소이다. 이 "모드"에서, 그래프는 원격 데이터 베이스에 대한 연결을 시작하고, 작업을 수행하고, 결과를 생성하고 작업을 마무리한다. 이러한 면에서, 그래프는 "구동 요소"이다. 한편, 그래프가 구동되는 작업의 다른 모드가 있다. 원격 데이터베이스는 원격 데이터베이스로부터 외부 메시지에 대해 "듣는" 그래프에 대한 접속을 원격 데이터 베이스가 시작시키는 모드를 지원할 수 있다. 이는 종종 사용자가 원격 데이터베이스의 인터페이스를 사용할 때 일어난다 (예를 들어 원격 데이터 베이스의 웹 페이지의 주소를 업데이트할 때). 이는 웹 서버에 대한 요청을 생성하고 응답을 기대하도록 설정될 수 있다. 이 웹 서버는 웹 서비스를 제공하고, 원격 데이터 베이스 요청에 대한 응답을 생성할 수 있는 그래프를 구동할 수 있다. 이 그래프 및 응답은 교대로 원격 데이터 베이스에 인터페이스를 개재한 정보에 대하여 물을 수 있다. 이 모드에서, 그래프는 "구동된다"; 즉, 이는 원격 데이터 베이스에 대한 서비스를 제공한다.
다시 도 1을 참조하여 GUI(106)의 기능이 이제 기대될 것이다. 사용자(101)이 원격 데이터 베이스(112)와 상호 작용하기 위하여, 사용자는 특정 데이터 베이스 조작 작업에 적절하고 또한 데이터 조작의 구조에 설정된 데이터 계층을 정확히 반영하는 모든 그리고 오직 존재하는 요소를 포함하는 레코드 포맷을 생성한다. 이는 사용자에게 번거롭고 수동적인 태스크가 될 수 있는데 왜냐하면 많은 객체와 객체당 많은 필드가 존재하고, 원격 데이터 베이스는 명백할 수 있지 않은 필드의 유효성 및 관계에 관한 규칙을 가질 수 있기 때문이다. 또한, 필드의 유효성은 각 작업에 대하여 다를 수 있다. 또한, 원격 데이터 베이스와의 프로그램 가능한 상호 작용을 구현하기 위하여, 생성된 레코드 포맷은 특정한 수신 확인을 요구하는 DML 포맷에 정확하게 나타나야만 한다. 이들 상세 내용의 모두는 사용자 에러로 이끌어질 수 있다.
사용자 에러를 최소화하거나 방지하기 위하여, 그래픽 사용자 인터페이스가 제공되어 레코드 포맷에 대하여 적절한 객체와 필드를 선택하는 프로세스를 단순화한다. 요소에 의해 수행될 레코드 포맷 및 작업과 연관된 규칙 및 규약을 실행함으로써, GUI(106)은 데이터 플로우 처리 환경 내의 요소에 의해 수행되는 작업의 실질적 집합에 대한 정확한 DML의 생성을 제공할 수 있다. GUI(106)은 통상적인 트리 제어를 사용하여 객체와 필드의 적절한 선택을 제공할 수 있고, 이는 특정 요소에 의해 수행될 특정 작업의 맥락에 의하여 구동된다. 또한, GUI는 사용자가 문법적으로 올바른 SOAP 요청을 유형화하는 것을 도와줄 수 있다.
몇몇 예에서, GUI(106)은 요소에 의하여 수행될 작업에 적용 가능한 객체와 필드의 유형만을 디스플레이하고, 이는 동일한 트리 제어 내에서 완전히 다른 계층의 디스플레이를 결합하여 이루어진다. 몇몇 작업에 대하여, 오직 베이스 객체(작업이 수행하는 주 객체)의 필드 만이 적절히 보여진다. 몇몇 작업에 대하여는, 베이스 객체의 필드 및 베이스 객체의 어떤 모 객체의 필드 둘 다가 보여지기에 적절하다. 어떤 작업에 대하여는, 베이스 객체의 필드, 베이스 객체의 어떤 모 객체의 필드, 그리고 어떤 자 객체의 필드가 보여지기에 적절하다.
GUI(106)은 또한 단지 특정 객체의 이들 필드를 디스플레이할 수 있고, 이는 그 작업에 대한 유효한 입력에 관하여 작업과 규칙의 맥락에 개별적으로 관련된 각각의 필드에 의하여 평가됨으로써 요소에 의해 수행될 작업에 적용 가능하다. GUI(106)은 불필요한 필드는 단지 디스플레이하지 않을 수 있다; 즉, 수행될 작업에 필요하지 않은 필드는 "억제될" 수 있다. 예로서, 요소가 생성 작업을 수행하려고 시도하는 경우, 그리고 필드가 생성가능하지 않은 경우, 필드는 GUI(106)에 의하여 보여져서는 안된다. 사용자가 이 특정 적업에 대하여 이 필드를 선택하는 것이 올바르지 않기 때문에, 이 필드를 숨기거나 억제함으로써 사용자 에러가 피해질 수 있다.
도 5는 GUI(106)으로부터 취해진 스크린 장면이다. 이 예에서, 객체(504)("계정")은 편집기(502)의 왼쪽 칸(506)에서 선택되고, 그 필드(510)은 오른쪽 칸(508)에서 디스플레이된다. 오른쪽 칸(508)에서 모든 필드(510)은 사용자에 의하여 선택가능하다; 즉, 모든 필드(510)은 유효하고 사용자에 의해 선택되어 수행될 작업에 대하여 DML에 포함될 수 있다.
도 6은 GUI(106)으로부터 취해진 스크린 장면이다. 이 예에서, 객체(604)(역시 "계정")이 편집기(602)의 왼쪽 칸(606)에서 선택되고, 필드는 오른쪽 칸(608)에서 디스플레이된다. 이 경우에, 관련된 작업은 "질의" 작업이다. 오른쪽 칸(508)의 모든 필드는 사용자에 의해 선택가능하다; 즉, 모든 필드는 유효하고 사용자에 의해 선택되어 수행될 작업에 관하여 DML에 포함된다. 도 6의 예에서, 베이스 객체("계정") 모(610) 및 자(612) 객체는 또한 디스플레이되고, 모 및 자 객체의 유효한 필드는 사용자에 의해 확장되고 보여질 수 있다.
요소에 의하여 수행되는 작업에 따라서, 사용자에게 객체에 관하여 사용 가능한 필드는 다를 수 있다. 즉, GUI는 작업에 대하여 유효하지 않은 필드를 억제한다. 그러나, 몇몇 예에서, GUI(106)은 유효하지 않은 필드를 디스플레이할 수 있으나, 이들 필드를 선택 가능하지 않은 것으로 지정한다(예를 들어, GUI(106)은 사용자가 필드 상에서 클릭하는 것을 막는다). GUI(106)은 또한 사용자에 의하여 선택된 어떠한 유효하지 않은 필드도 자동적으로 선택해제할 수 있다. GUI(106)은 또한 어떤 수의 필드만의 선택을 강제할 수 있다; 즉, 사용자가 미리 정해진 수의 필드보다 많이 선택하는 경우, GUI는 잉여로 선택된 필드를 자동적으로 선택해제하거나, 또는 사용자가 그 작업에 대하여 미리 정해진 수의 필드를 넘어선 어떤 추가의 필드를 선택하는 것을 금지할 수 있다. 예를 들어, 객체의 오직 하나의 필드가 작업에 주어질 수 있는 경우에, GUI(106)은 사용자가 어떤 필드도 마음대로 선택하도록 허락할 수 있지만, 그 객체의 모든 다른 필드들은 자동적으로 선택해제한다. 유사하게, GUI(106)은 어떤 특정 작업에 요구되는 필드가 선택된 것으로 나타나고 사용자에 의하여 의하여 선택해제될 수 없도록 보장할 수 있다. 작업이 선택될 객체의 어떤 수의 필드를 받아들이는 경우, GUI는 사용자가 필드를 자유롭게 선택하고 선택해제하도록 허용할 수 있다.
GUI(106)은 시인성 및 필드 선택에 관하여 작업 특화된 규칙을 실행하고, 규칙을 객체의 유형에 관하여 작업 특화된 규칙과 결합한다. 즉, UI는 각각의 다른 유형 객체 계층에 적절하게 규칙을 실행한다-동일한 트리 제어의 다른 섹션이 다른 적절한 선택 움직임을 나타낼 것이다. 예를 들어, 모 객체는 자 또는 베이스 객체보다 필드에 관하여 다른 선택 규칙을 가질 수 있다.
몇몇 작업은 객체 및 모 또는 자 둘 다를 참조(또는 수정)한다. 예를 들어, 객체는 정보를 각각의 자로부터 회신하도록 질의를 받을 수 있다. GUI는 어떤 작업이 모 및/또는 자에 대한 참조를 요구할 수 있는지 파악한다. 적절한 정보의 집합이 트리 제어에서 디스플레이되는 것은 이러한 상황 하에서이다(예를 들어, 베이스, 베이스+모, 베이스+모+자). 또한, 몇몇 필드는 보이고 몇몇은 보이지 않으며, 체크를 위한 규칙은 변화할 수 있다. 몇몇 예에서, 질의 작업이 객체의 모 및 자 모두를 보여주고, 이는 대부분의 필드에서 그러하고, 모와 자로부터 다수의 필드의 선택을 가능하게 해 준다. "Upsert" 작업은, 한편으로, 모 객체만을 보여주고(베이스 필드에 추가하여), 제한된 수의 필드(키이 필드) 만을 보여주고, 각각의 모 객체에 대하여 이들 필드의 하나의 선택만을 허락한다. 종료 결과는 적절히 구성된 레코드 포맷이다.
GUI가 일단 사용자에게 작업을 위하여 객체의 유효한 필드를 선택하도록 한 경우에는, GUI는 자동적이고 정확하게 레코드 포맷의 DML 표현 및 원격 데이터 베이스와 상호 작용하는 요소에 의하여 필요로 하는 변형 기능의 두 가지 다를 특정 동작이 주어지는 경우 생성할 수 있다. DML에서 레코드 포맷을 생성함에 있어서, DML은 자 및 모의 부객체를 포함할 수 있다. 생성된 DML 및 필드 선택에 특정된 정보가 또한 생성될 수 있다. 예를 들어, GUI는 어떤 필드가 특정한 처리(예를 들어 필드가 특정 작업-"NULL"로 설정되어야 하는 경우)를 요구하는지 기록하여 요소가 원격 데이터 베이스에 특별 지시를 제공할 수 있다. 원격 데이터 베이스는 이들 특별 지시를 사용하여 적절한 조치를 취하여 그 필드 내의 특별값에 대응하게 될 것이다(예를 들어, 원격 데이터 베이스가 그 필드에서 NULL 값을 받는 것에 응답하여 필드를 클리어할 것이다).
몇몇 경우에, GUI(106)은 특정한, 알려진 규칙의 집합을 따른다(예를 들어, 작업 유형에 기하여 취해진 동작). 한편, GUI(106)은 원격 데이터 베이스의 인터페이스에 대한 현재의 동작 중인 연결 동안 동적으로 발견된 것에 기하여 동작을 취한다. 예를 들어, GUI(106)은 어떤 필드를 현재의 맥락에서 의미가 없기 때문에 배제하도록 결정할 수 있다(예를 들어, "생성" 작업의 맥락에서 생성될 수 없는 필드). 유사하게, GUI(106)은 틸드의 속성에 기하여 필드를 미리 선택할 수 있다. GUI(106)은 또한 현재 존재하는 유일한 객체 및 필드만을 보여줄 수 있다. 몇몇 예에서, 객체 및 필드의 하드 코드된 리스트가 없다-이 정보는 (다른 모든 정보와 같이) 실시간으로 결정된다.
위에서 언급된 기술은 컴퓨터에서 실행될 수 있는 소프트웨어를 사용하여 실행될 수 있다. 예를 들어, 소프트웨어는 하나 이상의 컴퓨터 프로그램에서 프로시쥬어를 형성하고, 프로그램은 하나 이상의 프로그램된 또는 프로그램할 수 있는 (분산 처리 시스템, 클라이언트/서버 시스템, 또는 그리드 시스템등 다양한 아키텍쳐로 되어 있는) 컴퓨터 시스템에서 실행되며, 각 컴퓨터 시스템은 적어도 하나의 프로세서, 적어도 하나의 데이터 저장 시스템 (휘발성 및 불휘발성 메모리 및/또는 저장 요소를 포함), 적어도 하나의 입력 장치 또는 포트, 그리고 적어도 하나의 출력 장치 또는 포트를 포함한다. 소프트웨어는 대형 프로그램의 하나 이상의 모듈을 형성할 수 있고, 대형 프로그램은 예를 들어 계산 그래프의 디자인 및 배열과 관련된 다른 서비스들을 제공한다. 그래프의 노드와 요소들은 컴퓨터 판독 가능한 매체에 저장된 데이터 구조 또는 데이터 보존부에 저장된 데이터 모델과 일치하는 또 다른 조직된 데이터로서 구현될 수 있다.
소프트웨어는 범용 또는 특수목적 프로그램 가능한 컴퓨터에서 읽을 수 있는 CD-ROM과 같은 저장장치에서 제공될 수 있고, 실행될 때 네트웍의 통신 매체를 통해 컴퓨터로 배신될 수 있다 (전파된 신호로 인코딩됨). 모든 함수들은 특수 목적 컴퓨터 또는 코프로세서와 같은 특수 목적 하드웨어에서 실행될 수 있다. 소프트웨어는 소프트웨어에 의하여 특정된 다른 계산 부분이 다른 컴퓨터에 의하여 수행되는 분산 처리 방식으로 실행될 수 있다. 그러한 컴퓨터 프로그램의 각각은 바람직하게는 범용 또는 특수목적 프로그램 가능한 컴퓨터에서 읽을 수 있는 저장 매체 또는 장치(즉, 고체 메모리 또는 매체 또는 자기 또는 광학 매체)에 저장되고 다운로드 되고, 저장매체 또는 장치가 컴퓨터 시스템에 의하여 읽힐 때 컴퓨터 시스템은 배열되고 운영되어 본 명세서에서 기재된 프로시쥬어들을 실행한다. 본 발명의 시스템은 컴퓨터 판독 가능한 저장매체로서 고려될 수 있는데, 저장 매체는 컴퓨터 프로그램이 설치되어 있고 저장 매체는 컴퓨터 시스템이 특정 방식 또는 사전에 정의된 방식으로 동작하여 본 명세서에 기재된 함수들을 수행한다.
본 발명의 다수의 실시예 들이 지금까지 서술되었다. 그럼에도 불구하고, 다양한 변경들이 본 발명의 기본 정신과 범위로부터 벗어나지 않으면서 이루어질 수 있다는 점이 이해되어야 할 것이다.예를 들어, 위에서 기재된 단계들 중 몇몇은 독립적으로 될 수 있고 따라서 기재된 순서와는 다른 순서로 실행될 수 있다.
앞에서 기재된 내용은 예를 들어 설명하기 위한 것이고 발명의 범위를 제한하기 위한 것이 아니라는 점을 이해하여야 할 것이다. 발명의 범위는 첨부된 특허 청구 범위에 의하여 정의된다. 예를 들어, 위에서 서술된 다수의 단계들은 전체적인 처리에 영향을 주지 않으면서 다른 순서로 실행될 수 있다. 다른 실시예들은 이하의 특허 청구 범위 내에 있을 것이다.

Claims (81)

  1. 네트웍 인터페이스를 통하여 컴퓨터 시스템을 데이터 저장 시스템에 연결하는 단계로서, 상기 데이터 저장 시스템은 데이터 객체를 저장하는, 연결 단계;
    상기 데이터 저장 시스템의 인터페이스에 액세스하는 단계로서, 상기 인터페이스는 상기 데이터 객체에 대한 액세스를 제공하는 기능을 제공하는, 액세스 단계;
    상기 인터페이스에 의해 제공되는 기능과 연관된 하나 이상의 규칙에 기초하여 필드를 선택하는 단계로서, 상기 규칙은 상기 데이터 저장 시스템으로부터 수신되는, 선택 단계;
    선택된 상기 필드 중 적어도 하나를 그래픽 사용자 인터페이스에서 디스플레이하는 단계;
    디스플레이된 상기 필드 중 적어도 하나에 대한 식별 정보를 상기 그래픽 사용자 인터페이스를 통해 사용자로부터 수신하는 단계;
    데이터 처리 환경에서 데이터 레코드를 처리하는 단계를 포함하고, 상기 처리하는 단계는:
    식별된 상기 필드의 데이터를 나타내는 제1 데이터 객체를 상기 데이터 저장 시스템의 인터페이스로부터 수신하도록, 하나 이상의 데이터 처리 요소에 의해, 상기 데이터 저장 시스템의 인터페이스에 의해 제공되는 상기 기능을 호출하는 단계, 및
    상기 하나 이상의 데이터 처리 요소 중 적어도 하나의 데이터 처리 요소에 의해, 상기 제1 데이터 객체를 다수의 데이터 레코드로 변형하는 단계를 포함하고, 각각의 데이터 레코드는 개개의 데이터 객체로부터의 데이터를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 그래픽 사용자 인터페이스는 사용자로부터 입력을 수신하고 하나 이상의 데이터 처리 요소에 포매팅 정보를 제공하고, 상기 포매팅 정보는 상기 데이터 객체와 연관된 하나 이상의 필드에 따라서 데이터 레코드의 포맷을 정의하고, 상기 정의된 포맷에 따라서 포맷된 데이터 레코드는 상기 데이터 처리 요소에 의하여 수행된 작업과 호환가능한 것인 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 그래픽 사용자 인터페이스는 상기 규칙을 만족하는 데이터 객체 및 필드만을 디스플레이하는 것인 방법.
  5. 제1항에 있어서,
    상기 그래픽 사용자 인터페이스에 의하여 디스플레이되는 하나 이상의 데이터 객체 및 필드는 선택가능한 것인 방법.
  6. 제5항에 있어서, 상기 규칙을 만족하는 데이터 객체 및 필드는 선택된 바에 따라 자동적으로 디스플레이 되는 것인 방법.
  7. 제6항에 있어서,
    상기 그래픽 사용자 인터페이스는 선택된 바에 따라 자동적으로 디스플레이된 데이터 객체 및 필드를 사용자가 선택해제하는 것을 방지하는 것인 방법.
  8. 제1항에 있어서, 상기 데이터 처리 요소는 상기 데이터 저장 시스템에 보내지는 요청 메시지를 생성하는 것인 방법.
  9. 제8항에 있어서, 상기 데이터 처리 요소는 다수의 입력 데이터 레코드를 가지는 입력을 단일 요청 메시지로 변형하는 것인 방법.
  10. 제8항에 있어서, 상기 데이터 처리 요소는 상기 데이터 저장 시스템으로부터 수신한 응답 메시지를 복수의 출력 데이터 레코드로 변형하는 것인 방법.
  11. 제8항에 있어서,
    상기 데이터 처리 요소는 데이터의 플로우를 표시하는 입력 파라메터에 기하여 상기 요청 메시지를 생성하는 것인 방법.
  12. 제11항에 있어서, 사용자는 상기 데이터 처리 요소의 상기 입력 파라메터를 메타데이터 브라우저를 통해 변경하는 것인 방법.
  13. 제10항에 있어서, 상기 데이터 저장 시스템으로부터 수신한 응답은 성공적인 기능 처리의 수신 확인 및 실패한 기능 처리의 수신 확인을 포함하는 것인 방법.
  14. 제13항에 있어서,
    상기 데이터 처리 요소는 상기 성공적인 기능 처리의 수신 확인 및 상기 실패한 기능 처리의 수신 확인을 분리하는 것인 방법.
  15. 제14항에 있어서,
    상기 데이터 처리 요소는 상기 실패한 기능 처리와 성공한 기능 처리와 연관된 데이터를 상기 데이터 처리 요소의 다른 포트로 보내는 것인 방법.
  16. 제1항에 있어서,
    상기 데이터 저장 시스템에 연결하는 단계는:
    상기 데이터 처리 요소로부터의 로그인 요청을 상기 데이터 저장 시스템으로 송신하는 단계;
    세션 인증을 얻기 위하여 상기 데이터 저장 시스템에 로그인하는 단계;
    상기 세션 인증을 저장하는 단계; 및
    상기 저장된 세션 인증을 하나 이상의 로그인 요청으로 인코딩하는 단계를 포함하는 것인 방법.
  17. 제16항에 있어서,
    상기 로그인 요청은 내부 게이트웨이로 송신되는 것인 방법.
  18. 제16항에 있어서,
    상기 저장된 세션 인증은 복수의 동시 로그인 요청으로 인코딩되는 것인 방법.
  19. 제1항에 있어서, 상기 데이터의 출력 플로우를 생성하는 단계는 상기 데이터 저장 시스템으로부터 수신한 부분적 결과의 하나 이상의 배치(batch)에 관하여 작업을 수행하는 단계를 포함하는 것인 방법.
  20. 제1항에 있어서,
    상기 하나 이상의 데이터 처리 요소는 적어도 제1 데이터 처리 요소 및 제2 데이터 처리 요소를 포함하는 것인 방법.
  21. 제20항에 있어서,
    제1 데이터 처리 요소에 의하여 상기 데이터 저장 시스템으로부터의 부분적 결과의 하나 이상의 배치(batch)를 수신하는 단계; 및
    상기 제1 데이터 처리 요소가 부분적 결과의 배치를 계속하여 수신하는 동안 상기 제1 데이터 처리 요소에 의하여 상기 부분적 결과의 적어도 일부를 상기 제2 데이터 처리 요소에 제공하는 단계를 더 포함하는 것인 방법.
  22. 제21항에 있어서,
    상기 제2 데이터 처리 요소는 상기 수신된 부분적 결과의 적어도 일부에 기하여 출력 데이터 플로우를 생성하는 것인 방법.
  23. 데이터 저장 시스템에 연결되는 회로를 포함하는 네트웍 인터페이스로서, 상기 데이터 저장 시스템은 데이터 객체를 저장하는, 네트웍 인터페이스;
    그래픽 사용자 인터페이스를 제공하는 컴퓨터 시스템; 및
    적어도 하나의 프로세서를 포함하여 데이터 레코드를 처리하기 위한 데이터 처리 환경
    을 포함하고, 상기 컴퓨터 시스템은:
    상기 데이터 저장 시스템의 인터페이스에 액세스하고, 상기 인터페이스는 상기 데이터 객체에 대한 액세스를 제공하는 기능을 제공하며;
    상기 인터페이스에 의해 제공되는 기능과 연관된 하나 이상의 규칙에 기초하여 필드를 선택하고, 상기 규칙은 상기 데이터 저장 시스템으로부터 수신되며;
    선택된 상기 필드 중 적어도 하나를 상기 그래픽 사용자 인터페이스에서 디스플레이하고;
    디스플레이된 상기 필드 중 적어도 하나에 대한 식별 정보를 상기 그래픽 사용자 인터페이스를 통해 사용자로부터 수신하도록 구성되고,
    상기 적어도 하나의 프로세서는:
    식별된 상기 필드의 데이터를 나타내는 제1 데이터 객체를 상기 데이터 저장 시스템의 인터페이스로부터 수신하도록, 하나 이상의 데이터 처리 요소에 의해, 상기 데이터 저장 시스템의 인터페이스에 의해 제공되는 상기 기능을 호출하고,
    상기 하나 이상의 데이터 처리 요소 중 적어도 하나의 데이터 처리 요소에 의해, 상기 제1 데이터 객체를 다수의 데이터 레코드로 변형하도록 구성되며, 각각의 데이터 레코드는 개개의 데이터 객체로부터의 데이터를 포함하는, 시스템.
  24. 네트웍을 통하여 데이터 저장 시스템에 연결하기 위한 수단으로서, 상기 데이터 저장 시스템은 데이터 객체를 저장하는, 연결 수단;
    상기 데이터 저장 시스템의 인터페이스에 액세스하기 위한 수단으로서, 상기 인터페이스는 상기 데이터 객체에 대한 액세스를 제공하는 기능을 제공하는, 액세스 수단;
    상기 인터페이스에 의해 제공되는 기능과 연관된 하나 이상의 규칙에 기초하여 필드를 선택하기 위한 수단으로서, 상기 규칙은 상기 데이터 저장 시스템으로부터 수신되는, 선택 수단;
    선택된 상기 필드 중 적어도 하나를 그래픽 사용자 인터페이스에서 디스플레이하기 위한 수단;
    디스플레이된 상기 필드 중 적어도 하나에 대한 식별 정보를 상기 그래픽 사용자 인터페이스를 통해 사용자로부터 수신하기 위한 수단;
    데이터 처리 환경에서 데이터 레코드를 처리하기 위한 수단을 포함하고, 상기 처리하는 것은:
    식별된 상기 필드의 데이터를 나타내는 제1 데이터 객체를 상기 데이터 저장 시스템의 인터페이스로부터 수신하도록, 하나 이상의 데이터 처리 요소에 의해, 상기 데이터 저장 시스템의 인터페이스에 의해 제공되는 상기 기능을 호출하는 것, 및
    상기 하나 이상의 데이터 처리 요소 중 적어도 하나의 데이터 처리 요소에 의해, 상기 제1 데이터 객체를 다수의 데이터 레코드로 변형하는 것을 포함하며, 각각의 데이터 레코드는 개개의 데이터 객체로부터의 데이터를 포함하는, 시스템.
  25. 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 매체로서, 상기 컴퓨터 프로그램은 컴퓨터로 하여금:
    네트웍을 통하여 데이터 저장 시스템에 연결하고, 상기 데이터 저장 시스템은 데이터 객체를 저장하며;
    상기 데이터 저장 시스템의 인터페이스에 액세스하고, 상기 인터페이스는 상기 데이터 객체에 대한 액세스를 제공하는 기능을 제공하며;
    상기 인터페이스에 의해 제공되는 기능과 연관된 하나 이상의 규칙에 기초하여 필드를 선택하고, 상기 규칙은 상기 데이터 저장 시스템으로부터 수신되며;
    선택된 상기 필드 중 적어도 하나를 그래픽 사용자 인터페이스에서 디스플레이하고;
    디스플레이된 상기 필드 중 적어도 하나에 대한 식별 정보를 상기 그래픽 사용자 인터페이스를 통해 사용자로부터 수신하고;
    데이터 처리 환경에서 데이터 레코드를 처리하도록 하는 명령을 포함하며, 상기 처리하는 것은:
    식별된 상기 필드의 데이터를 나타내는 제1 데이터 객체를 상기 데이터 저장 시스템의 인터페이스로부터 수신하도록, 하나 이상의 데이터 처리 요소에 의해, 상기 데이터 저장 시스템의 인터페이스에 의해 제공되는 상기 기능을 호출하는 것, 및
    상기 하나 이상의 데이터 처리 요소 중 적어도 하나의 데이터 처리 요소에 의해, 상기 제1 데이터 객체를 다수의 데이터 레코드로 변형하는 것을 포함하며, 각각의 데이터 레코드는 개개의 데이터 객체로부터의 데이터를 포함하는, 컴퓨터 판독가능한 매체.
  26. 제1항에 있어서,
    상기 데이터 처리 요소의 하나 이상은 하나 이상의 포트를 포함하는 것인 방법.
  27. 제26항에 있어서,
    상기 하나 이상의 포트는 데이터의 입력 플로우를 수신하도록 설정된 포트, 및 데이터의 출력 플로우를 패스하도록 설정된 포트 중 하나 이상을 포함하는 것인 방법.
  28. 제27항에 있어서,
    상기 데이터의 입력 플로우는 복수의 레코드를 포함하는 것인 방법.
  29. 제27항에 있어서,
    상기 데이터의 출력 플로우는 복수의 레코드를 포함하는 것인 방법.
  30. 삭제
  31. 제1항에 있어서,
    상기 하나 이상의 데이터 처리 요소는, 데이터의 플로우를 나타내는 링크에 의하여 연결되는 데이터 플로우 그래프 내의 노드에 의해 표현되는, 방법.
  32. 제23항에 있어서,
    상기 그래픽 사용자 인터페이스는 사용자로부터 입력을 수신하고 하나 이상의 데이터 처리 요소에 포매팅 정보를 제공하고, 상기 포매팅 정보는 상기 데이터 객체와 연관된 하나 이상의 필드에 따라서 데이터 레코드의 포맷을 정의하고, 상기 정의된 포맷에 따라서 포맷된 데이터 레코드는 상기 데이터 처리 요소에 의하여 수행된 작업과 호환가능한 것인, 시스템.
  33. 제23항에 있어서,
    상기 그래픽 사용자 인터페이스는 상기 규칙을 만족하는 데이터 객체 및 필드만을 디스플레이하는 것인, 시스템.
  34. 제23항에 있어서,
    상기 그래픽 사용자 인터페이스에 의하여 디스플레이되는 하나 이상의 데이터 객체 및 필드는 선택가능한 것인, 시스템.
  35. 제34항에 있어서,
    상기 규칙을 만족하는 데이터 객체 및 필드는 선택된 바에 따라 자동적으로 디스플레이 되는 것인, 시스템.
  36. 제35항에 있어서,
    상기 그래픽 사용자 인터페이스는 선택된 바에 따라 자동적으로 디스플레이된 데이터 객체 및 필드를 사용자가 선택해제하는 것을 방지하는 것인, 시스템.
  37. 제23항에 있어서,
    상기 데이터 처리 요소는 상기 데이터 저장 시스템에 보내지는 요청 메시지를 생성하는 것인, 시스템.
  38. 제37항에 있어서,
    상기 데이터 처리 요소는 다수의 입력 데이터 레코드를 가지는 입력을 단일 요청 메시지로 변형하는 것인, 시스템.
  39. 제37항에 있어서,
    상기 데이터 처리 요소는 상기 데이터 저장 시스템으로부터 수신한 응답 메시지를 복수의 출력 데이터 레코드로 변형하는 것인, 시스템.
  40. 제37항에 있어서,
    상기 데이터 처리 요소는 데이터의 플로우를 표시하는 입력 파라메터에 기하여 상기 요청 메시지를 생성하는 것인, 시스템.
  41. 제40항에 있어서,
    사용자는 상기 데이터 처리 요소의 상기 입력 파라메터를 메타데이터 브라우저를 통해 변경하는 것인, 시스템.
  42. 제39항에 있어서,
    상기 데이터 저장 시스템으로부터 수신한 응답은 성공적인 기능 처리의 수신 확인 및 실패한 기능 처리의 수신 확인을 포함하는 것인, 시스템.
  43. 제42항에 있어서,
    상기 데이터 처리 요소는 상기 성공적인 기능 처리의 수신 확인 및 상기 실패한 기능 처리의 수신 확인을 분리하는 것인, 시스템.
  44. 제43항에 있어서,
    상기 데이터 처리 요소는 상기 실패한 기능 처리와 성공한 기능 처리와 연관된 데이터를 상기 데이터 처리 요소의 다른 포트로 보내는 것인, 시스템.
  45. 제23항에 있어서,
    상기 데이터 저장 시스템에 연결하는 것은:
    상기 데이터 처리 요소로부터의 로그인 요청을 상기 데이터 저장 시스템으로 송신하는 것;
    세션 인증을 얻기 위하여 상기 데이터 저장 시스템에 로그인하는 것;
    상기 세션 인증을 저장하는 것; 및
    상기 저장된 세션 인증을 하나 이상의 로그인 요청으로 인코딩하는 것을 포함하는, 시스템.
  46. 제45항에 있어서,
    상기 로그인 요청은 내부 게이트웨이로 송신되는 것인, 시스템.
  47. 제45항에 있어서,
    상기 저장된 세션 인증은 복수의 동시 로그인 요청으로 인코딩되는 것인, 시스템.
  48. 제23항에 있어서,
    상기 데이터의 출력 플로우를 생성하는 것은 상기 데이터 저장 시스템으로부터 수신한 부분적 결과의 하나 이상의 배치에 관하여 작업을 수행하는 것을 포함하는, 시스템.
  49. 제23항에 있어서,
    상기 하나 이상의 데이터 처리 요소는 적어도 제1 데이터 처리 요소 및 제2 데이터 처리 요소를 포함하는 것인, 시스템.
  50. 제49항에 있어서,
    상기 적어도 하나의 프로세서는:
    상기 제1 데이터 처리 요소에 의하여 상기 데이터 저장 시스템으로부터의 부분적 결과의 하나 이상의 배치를 수신하고;
    상기 제1 데이터 처리 요소가 부분적 결과의 배치를 계속하여 수신하는 동안 상기 제1 데이터 처리 요소에 의하여 상기 부분적 결과의 적어도 일부를 상기 제2 데이터 처리 요소에 제공하도록 더 구성되는, 시스템.
  51. 제50항에 있어서,
    상기 제2 데이터 처리 요소는 상기 수신된 부분적 결과의 적어도 일부에 기하여 출력 데이터 플로우를 생성하는 것인, 시스템.
  52. 제23항에 있어서,
    상기 데이터 처리 요소의 하나 이상은 하나 이상의 포트를 포함하는 것인, 시스템.
  53. 제52항에 있어서,
    상기 하나 이상의 포트는 데이터의 입력 플로우를 수신하도록 설정된 포트, 및 데이터의 출력 플로우를 패스하도록 설정된 포트 중 하나 이상을 포함하는 것인, 시스템.
  54. 제53항에 있어서,
    상기 데이터의 입력 플로우는 복수의 레코드를 포함하는 것인, 시스템.
  55. 제53항에 있어서,
    상기 데이터의 출력 플로우는 복수의 레코드를 포함하는 것인, 시스템.
  56. 제23항에 있어서,
    상기 하나 이상의 데이터 처리 요소는, 데이터의 플로우를 나타내는 링크에 의하여 연결되는 데이터 플로우 그래프 내의 노드에 의해 표현되는, 시스템.
  57. 제25항에 있어서,
    상기 그래픽 사용자 인터페이스는 사용자로부터 입력을 수신하고 하나 이상의 데이터 처리 요소에 포매팅 정보를 제공하고, 상기 포매팅 정보는 상기 데이터 객체와 연관된 하나 이상의 필드에 따라서 데이터 레코드의 포맷을 정의하고, 상기 정의된 포맷에 따라서 포맷된 데이터 레코드는 상기 데이터 처리 요소에 의하여 수행된 작업과 호환가능한 것인, 컴퓨터 판독가능한 매체.
  58. 제25항에 있어서,
    상기 그래픽 사용자 인터페이스는 상기 규칙을 만족하는 데이터 객체 및 필드만을 디스플레이하는 것인, 컴퓨터 판독가능한 매체.
  59. 제25항에 있어서,
    상기 그래픽 사용자 인터페이스에 의하여 디스플레이되는 하나 이상의 데이터 객체 및 필드는 선택가능한 것인, 컴퓨터 판독가능한 매체.
  60. 제59항에 있어서,
    상기 규칙을 만족하는 데이터 객체 및 필드는 선택된 바에 따라 자동적으로 디스플레이 되는 것인, 컴퓨터 판독가능한 매체.
  61. 제60항에 있어서,
    상기 그래픽 사용자 인터페이스는 선택된 바에 따라 자동적으로 디스플레이된 데이터 객체 및 필드를 사용자가 선택해제하는 것을 방지하는 것인, 컴퓨터 판독가능한 매체.
  62. 제25항에 있어서,
    상기 데이터 처리 요소는 상기 데이터 저장 시스템에 보내지는 요청 메시지를 생성하는 것인, 컴퓨터 판독가능한 매체.
  63. 제62항에 있어서,
    상기 데이터 처리 요소는 다수의 입력 데이터 레코드를 가지는 입력을 단일 요청 메시지로 변형하는 것인, 컴퓨터 판독가능한 매체.
  64. 제62항에 있어서,
    상기 데이터 처리 요소는 상기 데이터 저장 시스템으로부터 수신한 응답 메시지를 복수의 출력 데이터 레코드로 변형하는 것인, 컴퓨터 판독가능한 매체.
  65. 제62항에 있어서,
    상기 데이터 처리 요소는 데이터의 플로우를 표시하는 입력 파라메터에 기하여 상기 요청 메시지를 생성하는 것인, 컴퓨터 판독가능한 매체.
  66. 제65항에 있어서,
    사용자는 상기 데이터 처리 요소의 상기 입력 파라메터를 메타데이터 브라우저를 통해 변경하는 것인, 컴퓨터 판독가능한 매체.
  67. 제64항에 있어서,
    상기 데이터 저장 시스템으로부터 수신한 응답은 성공적인 기능 처리의 수신 확인 및 실패한 기능 처리의 수신 확인을 포함하는 것인, 컴퓨터 판독가능한 매체.
  68. 제67항에 있어서,
    상기 데이터 처리 요소는 상기 성공적인 기능 처리의 수신 확인 및 상기 실패한 기능 처리의 수신 확인을 분리하는 것인, 컴퓨터 판독가능한 매체.
  69. 제68항에 있어서,
    상기 데이터 처리 요소는 상기 실패한 기능 처리와 성공한 기능 처리와 연관된 데이터를 상기 데이터 처리 요소의 다른 포트로 보내는 것인, 컴퓨터 판독가능한 매체.
  70. 제25항에 있어서,
    상기 데이터 저장 시스템에 연결하는 것은:
    상기 데이터 처리 요소로부터의 로그인 요청을 상기 데이터 저장 시스템으로 송신하는 것;
    세션 인증을 얻기 위하여 상기 데이터 저장 시스템에 로그인하는 것;
    상기 세션 인증을 저장하는 것; 및
    상기 저장된 세션 인증을 하나 이상의 로그인 요청으로 인코딩하는 것을 포함하는, 컴퓨터 판독가능한 매체.
  71. 제70항에 있어서,
    상기 로그인 요청은 내부 게이트웨이로 송신되는 것인, 컴퓨터 판독가능한 매체.
  72. 제70항에 있어서,
    상기 저장된 세션 인증은 복수의 동시 로그인 요청으로 인코딩되는 것인, 컴퓨터 판독가능한 매체.
  73. 제25항에 있어서,
    상기 데이터의 출력 플로우를 생성하는 것은 상기 데이터 저장 시스템으로부터 수신한 부분적 결과의 하나 이상의 배치에 관하여 작업을 수행하는 것을 포함하는, 컴퓨터 판독가능한 매체.
  74. 제25항에 있어서,
    상기 하나 이상의 데이터 처리 요소는 적어도 제1 데이터 처리 요소 및 제2 데이터 처리 요소를 포함하는 것인, 컴퓨터 판독가능한 매체.
  75. 제74항에 있어서,
    상기 컴퓨터 프로그램은 상기 컴퓨터로 하여금:
    상기 제1 데이터 처리 요소에 의하여 상기 데이터 저장 시스템으로부터의 부분적 결과의 하나 이상의 배치를 수신하고;
    상기 제1 데이터 처리 요소가 부분적 결과의 배치를 계속하여 수신하는 동안 상기 제1 데이터 처리 요소에 의하여 상기 부분적 결과의 적어도 일부를 상기 제2 데이터 처리 요소에 제공하도록 하기 위한 명령을 더 포함하는, 컴퓨터 판독가능한 매체.
  76. 제75항에 있어서,
    상기 제2 데이터 처리 요소는 상기 수신된 부분적 결과의 적어도 일부에 기하여 출력 데이터 플로우를 생성하는 것인, 컴퓨터 판독가능한 매체.
  77. 제25항에 있어서,
    상기 데이터 처리 요소의 하나 이상은 하나 이상의 포트를 포함하는 것인, 컴퓨터 판독가능한 매체.
  78. 제77항에 있어서,
    상기 하나 이상의 포트는 데이터의 입력 플로우를 수신하도록 설정된 포트, 및 데이터의 출력 플로우를 패스하도록 설정된 포트 중 하나 이상을 포함하는 것인, 컴퓨터 판독가능한 매체.
  79. 제78항에 있어서,
    상기 데이터의 입력 플로우는 복수의 레코드를 포함하는 것인, 컴퓨터 판독가능한 매체.
  80. 제78항에 있어서,
    상기 데이터의 출력 플로우는 복수의 레코드를 포함하는 것인, 컴퓨터 판독가능한 매체.
  81. 제25항에 있어서,
    상기 하나 이상의 데이터 처리 요소는, 데이터의 플로우를 나타내는 링크에 의하여 연결되는 데이터 플로우 그래프 내의 노드에 의해 표현되는, 컴퓨터 판독가능한 매체.
KR1020117019123A 2009-02-13 2010-02-12 데이터 저장 시스템과의 통신 KR101693229B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15264009P 2009-02-13 2009-02-13
US61/152,640 2009-02-13
PCT/US2010/024115 WO2010093933A1 (en) 2009-02-13 2010-02-12 Communicating with data storage systems

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR20157008130A Division KR20150038757A (ko) 2009-02-13 2010-02-12 데이터 저장 시스템과의 통신

Publications (2)

Publication Number Publication Date
KR20110119715A KR20110119715A (ko) 2011-11-02
KR101693229B1 true KR101693229B1 (ko) 2017-01-05

Family

ID=42562078

Family Applications (2)

Application Number Title Priority Date Filing Date
KR20157008130A KR20150038757A (ko) 2009-02-13 2010-02-12 데이터 저장 시스템과의 통신
KR1020117019123A KR101693229B1 (ko) 2009-02-13 2010-02-12 데이터 저장 시스템과의 통신

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR20157008130A KR20150038757A (ko) 2009-02-13 2010-02-12 데이터 저장 시스템과의 통신

Country Status (7)

Country Link
US (1) US9846732B2 (ko)
EP (1) EP2399192A4 (ko)
KR (2) KR20150038757A (ko)
CN (1) CN102395950B (ko)
AU (2) AU2010213583A1 (ko)
CA (1) CA2750479C (ko)
WO (1) WO2010093933A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150038757A (ko) 2009-02-13 2015-04-08 아브 이니티오 테크놀로지 엘엘시 데이터 저장 시스템과의 통신
KR101862235B1 (ko) 2009-12-14 2018-05-29 아브 이니티오 테크놀로지 엘엘시 사용자 인터페이스 요소 지정
JP5881708B2 (ja) * 2010-09-10 2016-03-09 アビニシオ テクノロジー エルエルシー 属性に基づくデータ選択管理
US9298473B2 (en) * 2010-10-29 2016-03-29 Sap Se System and method for a generic object access layer
US9547626B2 (en) 2011-01-29 2017-01-17 Sdl Plc Systems, methods, and media for managing ambient adaptability of web applications and web services
US11182455B2 (en) 2011-01-29 2021-11-23 Sdl Netherlands B.V. Taxonomy driven multi-system networking and content delivery
US10657540B2 (en) 2011-01-29 2020-05-19 Sdl Netherlands B.V. Systems, methods, and media for web content management
US10580015B2 (en) 2011-02-25 2020-03-03 Sdl Netherlands B.V. Systems, methods, and media for executing and optimizing online marketing initiatives
US9773270B2 (en) 2012-05-11 2017-09-26 Fredhopper B.V. Method and system for recommending products based on a ranking cocktail
US11386186B2 (en) 2012-09-14 2022-07-12 Sdl Netherlands B.V. External content library connector systems and methods
US10452740B2 (en) * 2012-09-14 2019-10-22 Sdl Netherlands B.V. External content libraries
US11308528B2 (en) 2012-09-14 2022-04-19 Sdl Netherlands B.V. Blueprinting of multimedia assets
US9811233B2 (en) 2013-02-12 2017-11-07 Ab Initio Technology Llc Building applications for configuring processes
US20150026465A1 (en) * 2013-07-18 2015-01-22 Alcatel Lucent Methods And Devices For Protecting Private Data
AU2014362192B2 (en) 2013-12-13 2020-01-30 Ab Initio Technology Llc Dynamically determining a mode of a data processing application
US10587689B2 (en) * 2014-02-14 2020-03-10 Western Digital Technologies, Inc. Data storage device with embedded software
US10614167B2 (en) 2015-10-30 2020-04-07 Sdl Plc Translation review workflow systems and methods
US11343352B1 (en) * 2017-06-21 2022-05-24 Amazon Technologies, Inc. Customer-facing service for service coordination
US11423083B2 (en) 2017-10-27 2022-08-23 Ab Initio Technology Llc Transforming a specification into a persistent computer program
CN110297699B (zh) * 2018-03-23 2021-09-14 华为技术有限公司 调度方法、调度器、存储介质及***
US11921872B2 (en) * 2020-12-16 2024-03-05 International Business Machines Corporation Access control for a data object including data with different access requirements
US11461297B1 (en) 2021-06-09 2022-10-04 T-Mobile Usa, Inc. Ensuring database integrity using a data flow in a graph, such as for use by a wireless telecommunications service provider

Family Cites Families (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5291587A (en) * 1986-04-14 1994-03-01 National Instruments, Inc. Graphical system for executing a process and for programming a computer to execute a process, including graphical variable inputs and variable outputs
US5481741A (en) * 1986-04-14 1996-01-02 National Instruments Corporation Method and apparatus for providing attribute nodes in a graphical data flow environment
US4901221A (en) * 1986-04-14 1990-02-13 National Instruments, Inc. Graphical system for modelling a process and associated method
US4914568A (en) * 1986-10-24 1990-04-03 National Instruments, Inc. Graphical system for modelling a process and associated method
US5438659A (en) 1992-10-08 1995-08-01 Hewlett-Packard Company Object-action user interface management system
US5966072A (en) * 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US5844554A (en) 1996-09-17 1998-12-01 Bt Squared Technologies, Inc. Methods and systems for user interfaces and constraint handling configurations software
US6102965A (en) * 1996-09-23 2000-08-15 National Instruments Corporation System and method for providing client/server access to graphical programs
US6064812A (en) * 1996-09-23 2000-05-16 National Instruments Corporation System and method for developing automation clients using a graphical data flow program
US6437805B1 (en) * 1996-09-23 2002-08-20 National Instruments Corporation System and method for accessing object capabilities in a graphical program
US6219628B1 (en) * 1997-08-18 2001-04-17 National Instruments Corporation System and method for configuring an instrument to perform measurement functions utilizing conversion of graphical programs into hardware implementations
US6173438B1 (en) * 1997-08-18 2001-01-09 National Instruments Corporation Embedded graphical programming system
US6341279B1 (en) * 1998-10-12 2002-01-22 Starwave Corporation Method and apparatus for event modeling
US7000190B2 (en) * 1999-08-19 2006-02-14 National Instruments Corporation System and method for programmatically modifying a graphical program in response to program information
US7937665B1 (en) * 2000-06-13 2011-05-03 National Instruments Corporation System and method for automatically generating a graphical program to implement a prototype
US8146007B2 (en) 1999-08-19 2012-03-27 National Instruments Corporation Converting a first graphical program into an intermediate abstract representation for new graphical program generation
US7120876B2 (en) * 1999-08-19 2006-10-10 National Instruments Corporation System and method for programmatically generating a graphical program in response to user input
US7210117B2 (en) * 1999-08-19 2007-04-24 National Instruments Corporation System and method for programmatically generating a graphical program in response to program information
US6694321B1 (en) * 1999-09-23 2004-02-17 Affymetrix, Inc. System, method, and product for development and maintenance of database-related software applications
WO2001067309A2 (en) * 2000-03-03 2001-09-13 Radiant Logic, Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces
JP2001344105A (ja) 2000-03-31 2001-12-14 Hitachi Software Eng Co Ltd Webアプリケーション開発方法、開発支援システム、および該方法に係るプログラムを記憶した記憶媒体
US6763515B1 (en) * 2000-06-05 2004-07-13 National Instruments Corporation System and method for automatically generating a graphical program to perform an image processing algorithm
AU2001265424A1 (en) 2000-06-05 2001-12-17 Altoweb Systems, Inc. Converting, and presenting the source document in a target format
US7164422B1 (en) 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US20070192863A1 (en) * 2005-07-01 2007-08-16 Harsh Kapoor Systems and methods for processing data flows
US8042098B2 (en) 2000-12-06 2011-10-18 Axiomatic Design Software, Inc. Method and apparatus for producing software
US7188091B2 (en) * 2001-03-21 2007-03-06 Resolutionebs, Inc. Rule processing system
US20040210445A1 (en) 2001-04-05 2004-10-21 Luca Veronese Method and system for specifying and implementing business applications
US6801229B1 (en) 2001-04-06 2004-10-05 Plumbdesign System for creation of visual representation of data
US7493397B1 (en) * 2001-06-06 2009-02-17 Microsoft Corporation Providing remote processing services over a distributed communications network
US20040093342A1 (en) 2001-06-27 2004-05-13 Ronald Arbo Universal data mapping system
US20030172193A1 (en) * 2002-03-07 2003-09-11 Olsen Jesse Dale User interface generator and method of automatically generating a user interface
US20030174165A1 (en) 2002-03-18 2003-09-18 Barney Rock D. System and method for rendering a directed graph
US7353464B1 (en) * 2002-04-01 2008-04-01 Microsoft Corporation Hierarchical data navigation tool populated by a web service
US20080091491A1 (en) * 2002-04-18 2008-04-17 Bdna Corporation Method and/or system for flexible data handling
US7574652B2 (en) * 2002-06-20 2009-08-11 Canon Kabushiki Kaisha Methods for interactively defining transforms and for generating queries by manipulating existing query data
AU2003259744A1 (en) * 2002-08-09 2004-02-25 Corticon Technologies, Inc. Rule engine
AU2003265811A1 (en) * 2002-08-26 2004-03-11 Guardednet, Inc. Determining threat level associated with network activity
US7167850B2 (en) * 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7840545B2 (en) 2002-10-25 2010-11-23 International Business Machines Corporation Method and system for providing access to a database
AU2002953555A0 (en) * 2002-12-23 2003-01-16 Canon Kabushiki Kaisha Method for presenting hierarchical data
US7644361B2 (en) * 2002-12-23 2010-01-05 Canon Kabushiki Kaisha Method of using recommendations to visually create new views of data across heterogeneous sources
JP4127194B2 (ja) 2003-01-15 2008-07-30 セイコーエプソン株式会社 レイアウトシステム及びレイアウトプログラム、並びにレイアウト方法
GB0306971D0 (en) * 2003-03-26 2003-04-30 British Telecomm Client server model
US20040239674A1 (en) * 2003-06-02 2004-12-02 Microsoft Corporation Modeling graphs as XML information sets and describing graphs with XML schema
US7624375B2 (en) 2003-06-12 2009-11-24 National Instruments Corporation Automatically configuring a graphical user interface element to bind to a graphical program
EP1665034B1 (en) 2003-08-13 2017-03-22 National Instruments Corporation Creating a graphical user interface for selected parameters of a graphical program
KR100922141B1 (ko) * 2003-09-15 2009-10-19 아브 이니티오 소프트웨어 엘엘시 데이터 프로파일링 방법 및 시스템
US7756907B2 (en) * 2003-09-16 2010-07-13 The Board Of Trustees Of The Leland Stanford Jr. University Computer systems and methods for visualizing data
US7448047B2 (en) * 2004-04-29 2008-11-04 Sybase, Inc. Database system with methodology for providing stored procedures as web services
US7913231B2 (en) 2004-05-11 2011-03-22 Sap Ag Testing pattern-based applications
US8296665B2 (en) 2004-05-11 2012-10-23 Sap Ag Developing and executing applications with configurable patterns
US7530052B2 (en) * 2004-05-14 2009-05-05 National Instruments Corporation Creating and executing a graphical program with first model of computation that includes a structure supporting second model of computation
US7281018B1 (en) 2004-05-26 2007-10-09 Microsoft Corporation Form template data source change
US8533229B2 (en) * 2004-06-16 2013-09-10 Salesforce.Com, Inc. Soap-based web services in a multi-tenant database system
JP4275013B2 (ja) * 2004-06-21 2009-06-10 三洋電機株式会社 データフローグラフ処理装置、処理装置、リコンフィギュラブル回路。
US7730012B2 (en) * 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US20050289356A1 (en) * 2004-06-29 2005-12-29 Idan Shoham Process for automated and self-service reconciliation of different loging IDs between networked computer systems
WO2006043012A1 (en) 2004-10-22 2006-04-27 New Technology/Enterprise Limited Data processing system and method
US7899833B2 (en) * 2004-11-02 2011-03-01 Ab Initio Technology Llc Managing related data objects
US7523440B2 (en) 2004-11-16 2009-04-21 The Mathworks, Inc. Dynamic generation of formatted user interfaces in software environments
US7349384B2 (en) * 2004-12-10 2008-03-25 Microsoft Corporation Reliable one-way messaging over request-response transport protocols
US20060190480A1 (en) 2005-02-22 2006-08-24 Transparency Software, Inc. Generation of names related to organization actions
US20060190488A1 (en) * 2005-02-22 2006-08-24 Transparency Software, Inc. System and method for determining information related to user interactions with an application
KR20070110367A (ko) * 2005-02-24 2007-11-16 제라운드 시스템즈 리미티드 데이터 관리 방법 및 장치
US7716630B2 (en) * 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US8078954B2 (en) * 2005-09-27 2011-12-13 Oracle International Corporation System and method for page flow editor
US7739292B2 (en) * 2005-09-28 2010-06-15 Altova Gmbh System and method for modeling and managing enterprise architecture data and content models and their relationships
US7650316B2 (en) 2006-03-10 2010-01-19 National Instruments Corporation Automatic generation of help information for specified systems
US20070233655A1 (en) 2006-04-03 2007-10-04 National Instruments Corporation Graphical program representation of queries
WO2007134265A2 (en) 2006-05-12 2007-11-22 Captaris, Inc. Workflow data binding
US7870556B2 (en) * 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
US7701869B2 (en) 2006-07-21 2010-04-20 National Instruments Corporation Generating a data flow diagram
JP5894724B2 (ja) * 2006-08-10 2016-03-30 アビニシオ テクノロジー エルエルシー グラフ型計算の分散サービス
CN100527131C (zh) * 2006-12-30 2009-08-12 中国建设银行股份有限公司 一种ims数据库互动式访问方法和工具
US8069129B2 (en) * 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
US7644254B2 (en) * 2007-04-18 2010-01-05 International Business Machines Corporation Routing data packets with hint bit for each six orthogonal directions in three dimensional torus computer system set to avoid nodes in problem list
US8271943B2 (en) * 2007-04-24 2012-09-18 National Instruments Corporation Automatically generating a graphical program with a plurality of models of computation
US9594731B2 (en) * 2007-06-29 2017-03-14 Microsoft Technology Licensing, Llc WYSIWYG, browser-based XML editor
JP5453273B2 (ja) * 2007-09-20 2014-03-26 アビニシオ テクノロジー エルエルシー グラフベース計算におけるデータフロー管理
US8156481B1 (en) 2007-10-05 2012-04-10 The Mathworks, Inc. Profiler-based optimization of automatically generated code
US20090319494A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Field mapping for data stream output
KR101499599B1 (ko) 2008-06-30 2015-03-18 아브 이니티오 테크놀로지 엘엘시 그래프 기반 계산에서의 데이터 로깅
US20100235495A1 (en) * 2008-09-10 2010-09-16 Salesforce.Com, Inc. Methods and systems for reducing a load on a multi-tenant database
KR20150038757A (ko) 2009-02-13 2015-04-08 아브 이니티오 테크놀로지 엘엘시 데이터 저장 시스템과의 통신
US8560941B2 (en) 2009-04-08 2013-10-15 Microsoft Corporation Schema based user interface mechanisms
KR20120115233A (ko) 2009-11-13 2012-10-17 아브 이니티오 테크놀로지 엘엘시 레코드 포맷 정보의 관리
KR101862235B1 (ko) 2009-12-14 2018-05-29 아브 이니티오 테크놀로지 엘엘시 사용자 인터페이스 요소 지정
JP5881708B2 (ja) 2010-09-10 2016-03-09 アビニシオ テクノロジー エルエルシー 属性に基づくデータ選択管理
US9811233B2 (en) 2013-02-12 2017-11-07 Ab Initio Technology Llc Building applications for configuring processes
EP3132352B1 (en) 2014-04-17 2018-09-12 AB Initio Technology LLC Integrated monitoring and control of processing environment

Also Published As

Publication number Publication date
US9846732B2 (en) 2017-12-19
CN102395950B (zh) 2016-03-16
US20100217783A1 (en) 2010-08-26
AU2016200704A1 (en) 2016-02-25
CN102395950A (zh) 2012-03-28
WO2010093933A1 (en) 2010-08-19
AU2016200704B2 (en) 2017-10-05
EP2399192A4 (en) 2016-09-07
AU2010213583A1 (en) 2011-08-11
KR20150038757A (ko) 2015-04-08
CA2750479A1 (en) 2010-08-19
CA2750479C (en) 2019-03-12
EP2399192A1 (en) 2011-12-28
KR20110119715A (ko) 2011-11-02

Similar Documents

Publication Publication Date Title
KR101693229B1 (ko) 데이터 저장 시스템과의 통신
US10129116B2 (en) Techniques for capturing execution time data in dataflow graphs
JP5230964B2 (ja) コンピュータソフトウェア開発の方法およびシステム
US7676816B2 (en) Systems and methods for integrating services
US6385642B1 (en) Internet web server cache storage and session management system
US7949999B1 (en) Providing support for multiple interface access to software services
US20050027559A1 (en) Generic framework for applying object-oriented models to multi-tiered enterprise applications
US9015651B2 (en) Gateway data distribution engine
TWI388992B (zh) 在網路應用程式中用以製造並傳遞請求資料的系統與方法
US20070277154A1 (en) Testing distributed components
US20060064675A1 (en) Method and apparatus for creating templates
US9747353B2 (en) Database content publisher
WO2010036354A2 (en) Dynamic service routing
JP2011086291A (ja) システムランドスケープ対応アプリケーション間通信インフラストラクチャ
US7853605B2 (en) Auxiliary data provider
JP4708685B2 (ja) Cliコマンド投入方法/プログラム/プログラム記録媒体/装置、データ記録媒体
Schopmeyer Automation of SMI-S managed storage systems with Pywbem
Pham Developing Sensors Management App
Hasan et al. Writing Optimized Web Services
WO2004095303A1 (en) Knowledge governing system and method
Pickering Distributed Applications

Legal Events

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