KR20220016059A - 데이터 자산들에 대한 대화형 계보 분석기 - Google Patents

데이터 자산들에 대한 대화형 계보 분석기 Download PDF

Info

Publication number
KR20220016059A
KR20220016059A KR1020217037901A KR20217037901A KR20220016059A KR 20220016059 A KR20220016059 A KR 20220016059A KR 1020217037901 A KR1020217037901 A KR 1020217037901A KR 20217037901 A KR20217037901 A KR 20217037901A KR 20220016059 A KR20220016059 A KR 20220016059A
Authority
KR
South Korea
Prior art keywords
data
lineage
objects
model
data objects
Prior art date
Application number
KR1020217037901A
Other languages
English (en)
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 KR20220016059A publication Critical patent/KR20220016059A/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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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/24Querying
    • G06F16/245Query processing
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases

Abstract

실시예들은, 제공될 수도 있는 데이터 모델의 계층들과 연관된 데이터 객체들을 포함하는 데이터 모델을 관리하는 것에 관한 것이다. 계층과 연관된 하나 이상의 계보 객체들을 갖는 계보 객체들을 포함하는 계보 모델이 제공될 수도 있다. 계층과 연관된 계보 객체가 활성화될 수도 있다. 활성화된 계보 객체에 기초하여 데이터 객체들의 제1 부분이 결정될 수도 있다. 데이터 객체들의 제1 부분으로부터 앵커 객체가 결정될 수도 있다. 데이터 모델에서의 앵커 데이터 객체의 포지션에 기초하여 종속성 정보를 제공하기 위해 데이터 모델의 탐색이 채용될 수도 있다. 종속성 정보에 기초하여 데이터 객체들의 제2 부분이 결정될 수도 있다. 데이터 객체들의 제2 부분, 종속성 정보, 또는 이와 유사한 것의 리스트를 포함하는 리포트가 제공될 수도 있다.

Description

데이터 자산들에 대한 대화형 계보 분석기
본 발명은 일반적으로 데이터 시각화(data visualization)에 관한 것으로, 배타적으로가 아니라 더 구체적으로, 데이터 시각화들에 포함되는 객체(object)들의 디스플레이를 관리하는 것에 관한 것이다.
조직들은 계속 증가하는 양의 데이터를 생성 및 수집하고 있다. 이 데이터는, 소비자 활동, 제조 활동, 고객 서비스, 서버 로그들, 또는 이와 유사한 것과 같은, 조직의 이질적인 부분들과 연관될 수도 있다. 다양한 이유들로, 그러한 조직들은 이들의 방대한 데이터 콜렉션들을 효과적으로 활용하는 것이 불편할 수도 있다. 일부 경우들에서, 다량의 데이터는 비즈니스 실무를 개선시키기 위해 수집된 데이터를 효과적으로 활용하기 어렵게 만들 수도 있다. 이에 따라, 일부 경우들에서, 조직들은 이들의 데이터의 일부 또는 전부에 기초하여 시각화들을 생성하기 위해 다양한 애플리케이션들 또는 툴들을 채용할 수도 있다. 데이터를 표현하기 위해 시각화들을 채용하면 조직들이 비즈니스 운영들, 판매들, 고객 정보, 직원 정보, 핵심 성과 지표들, 또는 이와 유사한 것의 이들의 이해를 개선시키는 것을 가능하게 할 수도 있다. 일부 경우들에서, 정교한 시각화들은, 상이한 데이터베이스들을 포함하는, 조직 내 다양한 소스들로부터의 데이터를 포함하거나 또는 그렇지 않으면 그 데이터에 종속될 수도 있다. 일부 경우들에서, 이들 다양한 또는 이질적인 데이터 소스들에 종속될 수도 있는 많은 상이한 시각화들이 있을 수도 있다. 이에 따라, 데이터베이스들 또는 다른 데이터 제공자들에 대해 이루어진, 겉보기에는 사소한 변경들이라도, 현재 사용 중인 하나 이상의 시각화들 또는 애플리케이션들에 광범위한 영향을 미칠 수도 있다. 일부 경우들에서, 데이터 변경들의 영향을 결정하는 것(예를 들어, 데이터베이스 테이블의 컬럼(column)을 수정하는 것)이 어려울 수도 있는데, 이는, 일부 상황들에서, 변경에 의해 영향받을 수도 있는 최종 사용자 애플리케이션(end-user application)들을 결정하는 것이 어려울 수도 있기 때문이다. 따라서, 본 발명이 이루어진 것은 이들 고려사항들 및 다른 것들과 관련된다.
본 혁신들의 비제한적이고 비포괄적인 실시예들이 다음의 도면들을 참조하여 설명된다. 도면들에서, 동일한 참조 번호들은 달리 특정되지 않는 한 다양한 도면들 전반에 걸쳐 동일한 부분들을 지칭한다. 설명된 혁신들의 더 나은 이해를 위해, 첨부 도면들과 연관되어 판독되어야 하는 다음의 다양한 실시예들의 상세한 설명에 대해 참조가 이루어질 것이고, 여기서:
도 1은 다양한 실시예들이 구현될 수도 있는 시스템 환경을 예시한다.
도 2는 클라이언트 컴퓨터의 개략적인 실시예를 예시한다.
도 3은 네트워크 컴퓨터의 개략적인 실시예를 예시한다.
도 4는 다양한 실시예들 중 하나 이상에 따른, 데이터 자산(data asset)들에 대한 대화형 계보 분석(interactive lineage analysis)을 위한 시스템의 논리적 아키텍처를 예시한다.
도 5는 다양한 실시예들 중 하나 이상에 따를 수도 있는, 대화형 그래프 기반 데이터 시각화를 위한 시스템의 일 부분의 논리적 표현을 예시한다.
도 6은 다양한 실시예들 중 하나 이상에 따른, 계보 정보를 관리하기 위한 데이터 구조체를 표현하는 계보 객체의 논리적 개략도를 예시한다.
도 7은 다양한 실시예들 중 하나 이상에 따른, 데이터 모델의 종속성들(dependencies)을 나타내는 시스템의 일 부분의 논리적 개략도를 예시한다.
도 8a는 다양한 실시예들 중 하나 이상에 따른, 데이터 모델의 종속성들을 나타내는 시스템의 일 부분의 논리적 개략도를 예시한다.
도 8b는 다양한 실시예들 중 하나 이상에 따른, 데이터 모델의 종속성들을 나타내는 시스템의 일 부분의 논리적 개략도를 예시한다.
도 9는 다양한 실시예들 중 하나 이상에 따른, 데이터 자산들에 대한 대화형 계보 분석기를 위한 사용자 인터페이스의 일 부분의 논리적 개략도를 예시한다.
도 10은 다양한 실시예들 중 하나 이상에 따른, 데이터 자산들의 대화형 계보 분석을 위한 프로세스의 개요 흐름도를 예시한다.
도 11은 다양한 실시예들 중 하나 이상에 따른, 데이터 자산들의 대화형 계보 분석을 위한 프로세스의 흐름도를 예시한다.
도 12는 다양한 실시예들 중 하나 이상에 따른, 데이터 자산들의 대화형 계보 분석을 위한 종속성들을 결정하기 위한 프로세스의 흐름도를 예시한다.
이제, 본 명세서의 일부를 형성하고, 예시로서, 본 발명이 실시될 수도 있게 하는 특정 예시적인 실시예들을 도시하는 첨부 도면들을 참조하여 다양한 실시예들이 이하에서 더 완전히 설명될 것이다. 그러나, 실시예들은 많은 상이한 형태들로 구체화될 수도 있고 본 명세서에 제시된 실시예들로 제한된 것으로서 해석되어서는 안 되며; 오히려, 이들 실시예들이 제공되어 본 개시내용이 철저하고 완전해질 것이고, 본 기술분야의 통상의 기술자들에게 실시예들의 범주를 완전히 전달할 것이다. 다른 것들 중에서도, 다양한 실시예들은 방법들, 시스템들, 매체들 또는 디바이스들일 수도 있다. 이에 따라, 다양한 실시예들은 전체 하드웨어 실시예, 전체 소프트웨어 실시예 또는 소프트웨어 및 하드웨어 양태들을 조합한 실시예의 형태를 취할 수도 있다. 그에 따라, 다음의 상세한 설명은 제한적인 의미로 간주되어서는 안 된다.
명세서 및 청구범위 전반에 걸쳐, 맥락상 명백히 달리 지시되지 않는 한, 다음의 용어들은 본 명세서에서 명시적으로 연관된 의미들을 취한다. 본 명세서에서 사용되는 바와 같은 "일 실시예에서(in one embodiment)"라는 어구는 반드시 동일한 실시예를 지칭하는 것은 아니지만, 동일한 실시예를 지칭할 수도 있다. 게다가, 본 명세서에서 사용되는 바와 같은 "다른 실시예에서(in another embodiment)"라는 어구는 반드시 상이한 실시예를 지칭하는 것은 아니지만, 상이한 실시예를 지칭할 수도 있다. 따라서, 아래에 설명되는 바와 같이, 본 발명의 범주 또는 사상으로부터 벗어남이 없이, 다양한 실시예들이 용이하게 조합될 수도 있다.
부가적으로, 본 명세서에서 사용되는 바와 같이, "또는"이라는 용어는 포괄적인 "또는" 연산자이고, 맥락상 명백히 달리 지시되지 않는 한, "및/또는"이라는 용어와 동등하다. "~에 기초하는(based on)"이라는 용어는 배타적이지 않으며, 맥락상 명백히 달리 지시되지 않는 한, 설명되지 않은 부가적인 인자들에 기초하는 것이 가능하다. 부가적으로, 명세서 전반에 걸쳐, "a", "an", 및 "the"의 의미는 복수 참조들을 포함한다. "in"의 의미는 "in"과 "on"을 포함한다.
예시적인 실시예들에 대해, 맥락상 명백히 달리 지시되지 않는 한, 다음의 용어들이, 대응하는 의미에 따라 본 명세서에서 또한 사용된다.
본 명세서에서 사용되는 바와 같이, "엔진"이라는 용어는, C, C++, 오브젝티브-C(Objective-C), 코볼(COBOL), 자바(Java)™, 코틀린(Kotlin), PHP, 펄(Perl), 자바스크립트(JavaScript), 루비(Ruby), VB스크립트(VBScript), 마이크로소프트(Microsoft) .NET™ 언어들 예컨대 C#, 또는 이와 유사한 것과 같은 프로그래밍 언어로 작성될 수 있는 하드웨어 또는 소프트웨어 명령어들로 구체화되는 로직을 지칭한다. 엔진은 실행가능 프로그램들로 컴파일되거나 또는 인터프리트된 프로그래밍 언어들로 작성될 수도 있다. 소프트웨어 엔진들은 다른 엔진들로부터 또는 그 자체로부터 호출가능할 수도 있다. 본 명세서에서 설명되는 엔진들은, 다른 엔진들 또는 애플리케이션들과 병합될 수 있거나 또는 서브-엔진들로 분할될 수 있는 하나 이상의 논리 모듈들을 지칭한다. 엔진들은 비일시적 컴퓨터 판독가능 매체 또는 컴퓨터 스토리지 디바이스에 저장되고 하나 이상의 범용 컴퓨터들 상에 저장되고 이들에 의해 실행되어, 따라서 엔진을 제공하도록 구성되는 특수 목적 컴퓨터를 생성할 수 있다. 또한, 일부 실시예들에서, 엔진의 하나 이상의 부분들은, 엔진의 지원으로 또는 엔진의 일부로서 하나 이상의 액션들을 수행하는 하드웨어 디바이스, ASIC, FPGA, 또는 이와 유사한 것일 수도 있다.
본 명세서에서 사용되는 바와 같이, "데이터 모델"이라는 용어는, 조직에 의해 수집 또는 유지되는 데이터와 연관된 하나 이상의 엔티티들(entities)을 표현하는 하나 이상의 데이터 구조체들을 지칭한다. 데이터 모델들은, 조직과 연관된 다양한 동작들 또는 활동들을 모델링하도록 전형적으로 배열된다. 일부 경우들에서, 데이터 모델들은 효율적인 저장, 쿼리들(queries), 인덱싱, 탐색(search), 업데이트들, 또는 이와 유사한 것과 같은 다양한 데이터-포커싱된 액션들을 제공하거나 또는 이들을 용이하게 하도록 배열된다. 일반적으로, 데이터 모델은 데이터의 이해하기 쉬운 표현 또는 시각화들을 제공하기보다는 오히려 데이터 조작 또는 데이터 관리와 관련된 피처(feature)들을 제공하도록 배열될 수도 있다.
본 명세서에서 사용되는 바와 같이, "데이터 객체"라는 용어는, 데이터 모델들을 포함하는 하나 이상의 엔티티들 또는 데이터 구조체들을 지칭한다. 일부 경우들에서, 데이터 객체들은 데이터 모델의 부분들로 간주될 수도 있다. 데이터 객체들은, 데이터베이스들, 데이터-소스들, 테이블들, 워크북(workbook)들, 시각화들, 워크플로(work-flow)들, 또는 이와 유사한 것과 같은, 아이템들의 클래스들 또는 종류들을 표현할 수도 있다.
본 명세서에서 사용되는 바와 같이, "데이터 객체 클래스" 또는 "객체 클래스"라는 용어는, 데이터 객체들의 클래스, 종류, 또는 타입을 표현하는 하나 이상의 엔티티들 또는 데이터 구조체들을 지칭한다.
본 명세서에서 사용되는 바와 같이, "디스플레이 모델"이라는 용어는, 하나 이상의 하드웨어 디스플레이들 상에 디스플레이되는 시각화에 사용하기에 적합할 수도 있는 데이터 모델의 하나 이상의 표현들을 표현하는 하나 이상의 데이터 구조체들을 지칭한다. 디스플레이 모델들은, 비저작 사용자(non-authoring user)에게 이용가능해질 수도 있는 스타일링 또는 사용자 인터페이스 피처들을 정의할 수도 있다.
본 명세서에서 사용되는 바와 같이, "계보 모델"이라는 용어는, 대응하는 데이터 모델에 대한 계보 정보를 표현하기 위한 특수화된 모델을 표현하는 하나 이상의 데이터 구조체들을 지칭한다.
본 명세서에서 사용되는 바와 같이, "계보 객체"라는 용어는, 계보 모델에 의해 표현되는 데이터 객체 클래스들에 대응할 수도 있는 계보 모델을 포함하는 하나 이상의 데이터 구조체들을 지칭한다.
본 명세서에서 사용되는 바와 같이, "디스플레이 객체"라는 용어는, 디스플레이 모델들을 포함하는 하나 이상의 데이터 구조체들을 지칭한다. 일부 경우들에서, 디스플레이 객체들은 디스플레이 모델의 부분들로 간주될 수도 있다. 디스플레이 객체들은, 시각화에 디스플레이될 수도 있는 아이템들의 전체 클래스들 또는 종류들 또는 아이템들의 개별 인스턴스들을 표현할 수도 있다. 일부 실시예들에서, 디스플레이 객체들은 뷰들로 간주 또는 지칭될 수도 있는데, 이는 이들이 데이터 모델의 일부 부분의 뷰를 제공하기 때문이다.
본 명세서에서 사용되는 바와 같이, "앵커 데이터 객체(anchor data object)"라는 용어는, 데이터 모델에 대한 계보 분석을 위한 시작 포인트인 것으로 지정된 데이터 객체를 지칭한다. 앵커 데이터 객체들은, 계보 객체와 연관된 하나 이상의 데이터 객체들로부터 디자인 또는 선택되는 데이터 객체들일 수도 있다.
본 명세서에서 사용되는 바와 같이, "앵커 속성"이라는 용어는, 속성 레벨 데이터 계보 분석을 실행하기 위한 시작 포인트인 것으로 선택된 데이터 객체의 속성, 필드, 또는 특성을 지칭한다.
본 명세서에서 사용되는 바와 같이, "패널"이라는 용어는, 그래픽 사용자 인터페이스(graphical user interface)(GUI) 내에 정의된 지오메트리(예를 들어, x, y, z-차수)를 갖는 GUI 내의 영역을 지칭한다. 패널들은 사용자들에게 정보를 디스플레이하도록 또는 하나 이상의 대화형 컨트롤(interactive control)들을 호스팅하도록 배열될 수도 있다. 패널들과 연관된 지오메트리 또는 스타일들은, 동적 규칙들을 포함하는 구성 정보를 사용하여 정의될 수도 있다. 또한, 일부 경우들에서, 사용자들은 하나 이상의 패널들 상에서 이동, 보여주기, 숨기기, 리사이징(re-sizing), 재순서화, 또는 이와 유사한 것과 같은 액션들을 수행하는 것이 가능할 수도 있다.
본 명세서에서 사용되는 바와 같이, "구성 정보"라는 용어는, 구성 파일들, 데이터베이스들, 사용자 입력, 빌트인 디폴트들, 또는 이와 유사한 것, 또는 이들의 조합을 포함하는 다양한 소스들로부터 제공될 수도 있는 규칙 기반 정책들, 패턴 매칭, 스크립트들(예를 들어, 컴퓨터 판독가능 명령어들), 또는 이와 유사한 것을 포함할 수도 있는 정보를 지칭한다.
다음은 본 발명의 일부 양태들의 기본적인 이해를 제공하기 위해 본 발명의 실시예들을 간략하게 설명한다. 이 간략한 설명은 광범위한 개요로서 의도된 것이 아니다. 그것은 핵심 또는 중요 요소들을 식별하거나, 또는 범주의 한계를 결정하거나 또는 그렇지 않으면 범주를 좁히도록 의도된 것이 아니다. 그 목적은 단지, 추후에 제시되는 더 상세한 설명에 대한 서두로서 일부 개념들을 단순화된 형태로 제시하는 것일 뿐이다.
간략하게 말해서, 다양한 실시예들은 네트워크 컴퓨터들을 사용하여 데이터를 관리하는 것에 관한 것이다. 다양한 실시예들 중 하나 이상에서, 데이터 모델의 하나 이상의 계층들과 연관될 수도 있는 복수의 데이터 객체들을 포함하는 데이터 모델이 제공될 수도 있다.
다양한 실시예들 중 하나 이상에서, 하나 이상의 계보 객체들을 포함하는 계보 모델이 제공될 수도 있어서 하나 이상의 계보 객체들이 각각 하나 이상의 데이터 모델 계층들 중 하나와 연관될 수도 있도록 한다.
다양한 실시예들 중 하나 이상에서, 하나 이상의 계보 객체들 중 하나는 데이터 모델 계층과의 연관에 기초하여 활성화될 수도 있다.
다양한 실시예들 중 하나 이상에서, 데이터 모델, 활성화된 계보 객체, 또는 이와 유사한 것에 기초하여 복수의 데이터 객체들의 제1 부분이 결정될 수도 있어서, 데이터 객체들의 제1 부분 및 활성화된 계보 객체가 동일한 데이터 모델 계층과 연관될 수도 있도록 한다.
다양한 실시예들 중 하나 이상에서, 데이터 객체들의 제1 부분의 하나 이상의 특성들에 기초하여 데이터 객체들의 제1 부분으로부터 앵커 객체가 결정될 수도 있다.
다양한 실시예들 중 하나 이상에서, 데이터 모델에서의 앵커 데이터 객체의 포지션에 기초하여 종속성 정보를 제공하기 위해 데이터 모델의 탐색이 채용될 수도 있다. 다양한 실시예들 중 하나 이상에서, 종속성 정보를 제공하는 것은: 앵커 데이터 객체와 연관될 수도 있는 하나 이상의 속성들을 결정하는 것; 하나 이상의 속성들, 및 데이터 모델에서의 복수의 데이터 객체들과 연관될 수도 있는 하나 이상의 다른 속성들에 기초하여 데이터 모델을 탐색하는 것; 하나 이상의 연관들 또는 하나 이상의 속성들 및 하나 이상의 다른 속성들에 기초하여 종속성 정보를 제공하는 것을 포함할 수도 있다. 다양한 실시예들 중 하나 이상에서, 종속성 정보를 제공하는 것은: 데이터 모델 및 앵커 데이터 객체에 기초하여 쿼리 정보를 생성하는 것; 종속성 정보를 제공할 수도 있는 쿼리를 실행하기 위해 쿼리 정보를 채용하는 것; 또는 이와 유사한 것을 포함할 수도 있다.
다양한 실시예들 중 하나 이상에서, 복수의 데이터 객체들의 제2 부분이 종속성 정보에 기초하여 결정될 수도 있다. 다양한 실시예들 중 하나 이상에서, 데이터 객체들의 제2 부분을 결정하는 것은, 계보 패널에 디스플레이될 수도 있는 하나 이상의 필터들에 기초하여 데이터 객체들의 제2 부분을 수정하는 것을 포함할 수도 있다.
다양한 실시예들 중 하나 이상에서, 복수의 데이터 객체들 중 하나 이상에 대한 수정에 응답하여, 추가의 액션들이 수행될 수도 있는데, 이 추가의 액션들은: 하나 이상의 수정된 데이터 객체들에 기초하여 활성화된 계보 객체를 결정하는 것; 하나 이상의 수정된 데이터 객체들에 기초하여 앵커 데이터 객체를 결정하는 것; 종속성 정보에 기초하여 수정과 연관된 하나 이상의 사용자들을 결정하여, 각각의 사용자가, 수정에 의해 영향받을 수도 있는 하나 이상의 데이터 객체들과 연관될 수도 있도록 하는 것; 사용자와 연관된 각각의 영향받은 데이터 객체에 기초하여 각각의 사용자에게 하나 이상의 통지들을 제공하는 것; 또는 이와 유사한 것을 포함한다.
다양한 실시예들 중 하나 이상에서, 데이터 객체들의 제2 부분, 종속성 정보, 또는 이와 유사한 것의 리스트를 포함하는 하나 이상의 리포트들이 제공될 수도 있다.
다양한 실시예들 중 하나 이상에서, 액션들을 수행하기 위해 디스플레이 엔진이 인스턴스화될 수도 있는데, 이 액션들은: 계보 패널 및 객체 패널을 포함할 수도 있는 그래픽 사용자 인터페이스(GUI)를 생성하는 것; 계보 패널에서, 계보 모델 및 하나 이상의 계보 객체들을 디스플레이하는 것; 객체 패널에서, 데이터 객체들의 제1 부분을 디스플레이하는 것; 및 계보 패널에 대한 하나 이상의 입력들에 기초하여 다른 활성화된 계보 객체를 결정하는 것; 다른 활성화된 계보 객체에 기초하여 복수의 데이터 객체들의 다른 부분을 자동으로 결정하는 것 - 여기서 데이터 객체들의 다른 부분은 객체 패널에 디스플레이될 수도 있다 -; 또는 이와 유사한 것을 포함한다.
다양한 실시예들 중 하나 이상에서, 하나 이상의 데이터 객체 클래스들이 데이터 모델에 기초하여 제공될 수도 있어서 하나 이상의 데이터 객체 클래스들이 데이터베이스들, 테이블들, 데이터 소스들, 워크북들, 시트들, 또는 이와 유사한 것 중하나 이상을 포함하도록 한다. 그리고, 다양한 실시예들 중 하나 이상에서, 데이터 모델의 각각의 계층은 하나 이상의 데이터 객체 클래스들 중 하나와 연관될 수도 있어서, 각각의 데이터 객체가, 계층과 연관될 수도 있는 데이터 객체 클래스와 대응할 수도 있는 데이터 객체 클래스와 연관될 수도 있도록 한다.
예시된 동작 환경
도 1은 본 발명의 실시예들이 실시될 수도 있는 환경의 일 실시예의 컴포넌트들을 도시한다. 모든 컴포넌트들이 본 발명을 실시하도록 요구되는 것은 아닐 수도 있으며, 본 발명의 사상 또는 범주로부터 벗어남이 없이 컴포넌트들의 배열 및 타입의 변형들이 이루어질 수도 있다는 것에 주목한다. 도시된 바와 같이, 도 1의 시스템(100)은 근거리 네트워크(local area network)(LAN)들/광역 네트워크(wide area network)(WAN)들 - (네트워크)(110), 무선 네트워크(108), 클라이언트 컴퓨터들(102 내지 105), 시각화 서버 컴퓨터(116), 또는 이와 유사한 것을 포함한다.
클라이언트 컴퓨터들(102 내지 105)의 적어도 하나의 실시예가 도 2와 관련하여 아래에 더 상세히 설명된다. 일 실시예에서, 클라이언트 컴퓨터들(102 내지 105) 중 적어도 일부는 네트워크들(108, 또는 110)과 같은 하나 이상의 유선 또는 무선 네트워크들을 통해 동작할 수도 있다. 일반적으로, 클라이언트 컴퓨터들(102 내지 105)은, 정보를 전송 및 수신하는 것, 다양한 온라인 활동들, 오프라인 액션들을 수행하는 것, 또는 이와 유사한 것을 하기 위해 네트워크를 통해 통신하는 것이 가능한 사실상 모든 컴퓨터를 포함할 수도 있다. 일 실시예에서, 클라이언트 컴퓨터들(102 내지 105) 중 하나 이상은 비즈니스 또는 다른 엔티티를 위한 다양한 서비스들을 수행하기 위해 비즈니스 또는 다른 엔티티 내에서 동작하도록 구성될 수도 있다. 예를 들어, 클라이언트 컴퓨터들(102 내지 105)은 웹 서버, 방화벽, 클라이언트 애플리케이션, 미디어 플레이어, 모바일 전화기, 게임 콘솔, 데스크톱 컴퓨터, 또는 이와 유사한 것으로서 동작하도록 구성될 수도 있다. 그러나, 클라이언트 컴퓨터들(102 내지 105)은 이들 서비스들로 제약되지 않으며, 예를 들어, 다른 실시예들에서는 최종 사용자 컴퓨팅을 위한 것으로서 또한 채용될 수도 있다. 더 많은 또는 더 적은 클라이언트 컴퓨터들(도 1에 도시된 바와 같음)이 본 명세서에서 설명되는 바와 같은 시스템 내에 포함될 수도 있고, 그에 따라 실시예들은 채용된 클라이언트 컴퓨터들의 수 또는 타입에 의해 제약되지 않는다는 것이 인식되어야 한다.
클라이언트 컴퓨터(102)로서 동작할 수도 있는 컴퓨터들은, 퍼스널 컴퓨터들, 멀티프로세서 시스템들, 마이크로프로세서 기반 또는 프로그래밍가능 전자 디바이스들, 네트워크 PC들, 또는 이와 유사한 것과 같은 유선 또는 무선 통신 매체를 사용하여 전형적으로 연결하는 컴퓨터들을 포함할 수도 있다. 일부 실시예들에서, 클라이언트 컴퓨터들(102 내지 105)은, 랩톱 컴퓨터(103), 모바일 컴퓨터(104), 태블릿 컴퓨터들(105), 또는 이와 유사한 것과 같은, 다른 컴퓨터에 연결하고 정보를 수신하는 것이 가능한 사실상 모든 휴대용 컴퓨터를 포함할 수도 있다. 그러나, 휴대용 컴퓨터들은 이와 같이 제한되지 않으며, 셀룰러 전화기들, 디스플레이 페이저(display pager)들, 라디오 주파수(radio frequency)(RF) 디바이스들, 적외선(infrared)(IR) 디바이스들, 개인 휴대 정보 단말기(Personal Digital Assistant)(PDA)들, 핸드헬드 컴퓨터들, 웨어러블 컴퓨터들, 선행하는 컴퓨터들 중 하나 이상을 조합한 통합 디바이스들, 또는 이와 유사한 것과 같은 다른 휴대용 컴퓨터들을 또한 포함할 수도 있다. 이와 같이, 클라이언트 컴퓨터들(102 내지 105)은 전형적으로 능력들 및 피처들의 관점에서 광범위한 범위에 있다. 더욱이, 클라이언트 컴퓨터들(102 내지 105)은 브라우저 또는 다른 웹 기반 애플리케이션을 포함하는 다양한 컴퓨팅 애플리케이션들에 액세스할 수도 있다.
웹 가능 클라이언트 컴퓨터는, 웹을 통해 요청들을 전송하고 응답들을 수신하도록 구성되는 브라우저 애플리케이션을 포함할 수도 있다. 브라우저 애플리케이션은 사실상 모든 웹 기반 언어를 채용하여 그래픽들, 텍스트, 멀티미디어, 및 이와 유사한 것을 수신 및 디스플레이하도록 구성될 수도 있다. 일 실시예에서, 브라우저 애플리케이션은 메시지를 디스플레이 및 전송하기 위해 자바스크립트, 하이퍼텍스트 마크업 언어(HyperText Markup Language)(HTML), 확장성 마크업 언어(eXtensible Markup Language)(XML), 자바스크립트 객체 표기법(JavaScript Object Notation)(JSON), 캐스케이딩 스타일 시트들(Cascading Style Sheets)(CSS), 또는 이와 유사한 것, 또는 이들의 조합을 채용하는 것이 가능하다. 일 실시예에서, 클라이언트 컴퓨터의 사용자가 네트워크(온라인)를 통해 다양한 활동들을 수행하기 위해 브라우저 애플리케이션을 채용할 수도 있다. 그러나, 다양한 온라인 활동들을 수행하기 위해 다른 애플리케이션이 또한 사용될 수도 있다.
클라이언트 컴퓨터들(102 내지 105)은 또한, 다른 컴퓨터 사이에서 콘텐츠를 수신 또는 전송하도록 구성되는 적어도 하나의 다른 클라이언트 애플리케이션을 포함할 수도 있다. 클라이언트 애플리케이션은, 콘텐츠를 전송 또는 수신하는 능력, 또는 이와 유사한 것을 포함할 수도 있다. 클라이언트 애플리케이션은, 타입, 능력, 명칭, 및 이와 유사한 것을 포함하는, 자신을 식별하는 정보를 추가로 제공할 수도 있다. 일 실시예에서, 클라이언트 컴퓨터들(102 내지 105)은, 인터넷 프로토콜(Internet Protocol)(IP) 주소, 전화 번호, 모바일 식별 번호(Mobile Identification Number)(MIN), 전자 일련 번호(electronic serial number)(ESN), 클라이언트 인증서, 또는 다른 디바이스 식별자를 포함하는 다양한 메커니즘들 중 임의의 것을 통해 자신을 고유하게 식별할 수도 있다. 그러한 정보는, 다른 클라이언트 컴퓨터들, 시각화 서버 컴퓨터(116), 또는 다른 컴퓨터들 사이에서 전송되는 하나 이상의 네트워크 패킷들, 또는 이와 유사한 것에서 제공될 수도 있다.
클라이언트 컴퓨터들(102 내지 105)은, 최종 사용자가, 시각화 서버 컴퓨터(116), 또는 이와 유사한 것과 같은 다른 컴퓨터에 의해 관리될 수도 있는 최종 사용자 계정에 로그인하는 것을 가능하게 하는 클라이언트 애플리케이션을 포함하도록 추가로 구성될 수도 있다. 그러한 최종 사용자 계정은, 하나의 비제한적인 예에서, 최종 사용자가, 하나의 비제한적인 예에서, 프로젝트 관리, 소프트웨어 개발, 시스템 관리, 구성 관리, 탐색 활동들, 소셜 네트워킹 활동들을 포함하는 하나 이상의 온라인 활동들을 관리하는 것, 다양한 웹사이트들을 브라우징하는 것, 다른 사용자들과 통신하는 것, 또는 이와 유사한 것을 하는 것을 가능하게 하도록 구성될 수도 있다. 또한, 클라이언트 컴퓨터들은, 사용자들이, 시각화 서버 컴퓨터(116)에 의해 제공되는 리포트들, 대화형 사용자-인터페이스들, 또는 결과들을 디스플레이하는 것을 가능하게 하도록 배열될 수도 있다.
무선 네트워크(108)는 클라이언트 컴퓨터들(103 내지 105) 및 그의 컴포넌트들을 네트워크(110)와 커플링하도록 구성된다. 무선 네트워크(108)는, 클라이언트 컴퓨터들(103 내지 105)에 대한 인프라스트럭처 지향 커넥션을 제공하기 위해 독립형 애드혹 네트워크(stand-alone ad-hoc network)들, 및 이와 유사한 것을 추가로 오버레이할 수도 있는 다양한 무선 서브-네트워크들 중 임의의 것을 포함할 수도 있다. 그러한 서브-네트워크들은 메시 네트워크들, 무선 LAN(Wireless LAN)(WLAN) 네트워크들, 셀룰러 네트워크들, 및 이와 유사한 것을 포함할 수도 있다. 일 실시예에서, 시스템은 하나 초과의 무선 네트워크를 포함할 수도 있다.
무선 네트워크(108)는, 무선 라디오 링크들, 및 이와 유사한 것에 의해 연결되는 단말기들, 게이트웨이들, 라우터들, 및 이와 유사한 것의 자율 시스템을 더 포함할 수도 있다. 이들 커넥터들은 자유롭게 그리고 랜덤하게 이동하고 자신을 임의로 조직화하여, 무선 네트워크(108)의 토폴로지(topology)가 급격히 변경될 수도 있도록 구성될 수도 있다.
무선 네트워크(108)는, 셀룰러 시스템들, WLAN, 무선 라우터(Wireless Router)(WR) 메시, 및 이와 유사한 것을 위한 2세대(2G), 3세대(3G), 4세대(4G) 5세대(5G) 라디오 액세스를 포함하는 복수의 액세스 기술들을 추가로 채용할 수도 있다. 2G, 3G, 4G, 5G와 같은 액세스 기술들, 및 장래의 액세스 네트워크들은, 다양한 이동성 정도들을 갖는 클라이언트 컴퓨터들(103 내지 105)과 같은 모바일 컴퓨터들에 대한 광역 커버리지를 가능하게 할 수도 있다. 하나의 비제한적인 예에서, 무선 네트워크(108)는, 모바일 통신용 글로벌 시스템(Global System for Mobil communication)(GSM), 일반 패킷 라디오 서비스들(General Packet Radio Services)(GPRS), 향상된 데이터 GSM 환경(Enhanced Data GSM Environment)(EDGE), 코드 분할 다중 액세스(code division multiple access)(CDMA), 시분할 다중 액세스(time division multiple access)(TDMA), 광대역 코드 분할 다중 액세스(Wideband Code Division Multiple Access)(WCDMA), 고속 다운링크 패킷 액세스(High Speed Downlink Packet Access)(HSDPA), 롱 텀 에볼루션(Long Term Evolution)(LTE), 및 이와 유사한 것과 같은 라디오 네트워크 액세스를 통한 라디오 커넥션을 가능하게 할 수도 있다. 본질적으로, 무선 네트워크(108)는, 정보가 클라이언트 컴퓨터들(103 내지 105)과 다른 컴퓨터, 네트워크, 클라우드 기반 네트워크, 클라우드 인스턴스, 또는 이와 유사한 것 사이에서 이동할 수도 있게 하는 사실상 모든 무선 통신 메커니즘을 포함할 수도 있다.
네트워크(110)는 무선 네트워크(108), 또는 이와 유사한 것을 통해 시각화 서버 컴퓨터(116), 클라이언트 컴퓨터들(102), 및 클라이언트 컴퓨터들(103 내지 105)을 포함하는 다른 컴퓨터들과 네트워크 컴퓨터들을 커플링하도록 구성된다. 네트워크(110)는 하나의 전자 디바이스로부터 다른 것으로 정보를 통신하기 위해 임의의 형태의 컴퓨터 판독가능 매체들을 채용하는 것이 가능하다. 또한, 네트워크(110)는 근거리 네트워크(LAN)들, 광역 네트워크(WAN)들 이외의 인터넷, 예컨대 범용 직렬 버스(universal serial bus)(USB) 포트, 이더넷 포트를 통한 다이렉트 커넥션들, 다른 형태들의 컴퓨터 판독가능 매체들, 또는 이들의 임의의 조합을 포함할 수 있다. 상이한 아키텍처들 및 프로토콜들에 기초하는 것들을 포함하는 상호연결된 세트의 LAN들 상에서, 라우터는 LAN들 사이의 링크로서 역할을 하여, 메시지들이 서로 전송되는 것을 가능하게 한다. 부가적으로, LAN들 내의 통신 링크들은 전형적으로 연선(twisted wire pair) 또는 동축 케이블을 포함하는 한편, 네트워크들 사이의 통신 링크들은 아날로그 전화 라인들, T1, T2, T3, 및 T4를 포함하는 전체적 또는 부분적 전용 디지털 라인들, 또는, 예를 들어, E-캐리어들, 통합 서비스 디지털 네트워크(Integrated Services Digital Network)(ISDN)들, 디지털 가입자 라인(Digital Subscriber Line)(DSL)들, 위성 링크들을 포함하는 무선 링크들, 또는 본 기술분야의 통상의 기술자들에게 알려진 다른 통신 링크들을 포함하는 다른 캐리어 메커니즘들을 활용할 수도 있다. 더욱이, 통신 링크들은, 제한 없이, 예를 들어, DS-0, DS-1, DS-2, DS-3, DS-4, OC-3, OC-12, OC-48, 또는 이와 유사한 것을 포함하는 다양한 디지털 시그널링 기술들 중 임의의 것을 추가로 채용할 수도 있다. 게다가, 원격 컴퓨터들 및 다른 관련 전자 디바이스들이 모뎀 및 임시 전화 링크를 통해 LAN들 또는 WAN들 중 어느 하나에 원격으로 연결될 수 있다. 일 실시예에서, 네트워크(110)는 인터넷 프로토콜(IP)의 정보를 전송하도록 구성될 수도 있다.
부가적으로, 통신 매체들은 전형적으로 컴퓨터 판독가능 명령어들, 데이터 구조체들, 프로그램 모듈들, 또는 다른 전송 메커니즘을 구체화하고, 임의의 정보 비일시적 전달 매체들 또는 일시적 전달 매체들을 포함한다. 예로서, 통신 매체들은, 유선 매체들 예컨대 연선, 동축 케이블, 광섬유들, 도파관들, 및 다른 유선 매체들 및 무선 매체들 예컨대 음향, RF, 적외선, 및 다른 무선 매체들을 포함한다.
또한, 시각화 서버 컴퓨터(116)의 일 실시예가 도 3과 관련하여 아래에 더 상세히 설명된다. 도 1은 단일 컴퓨터로서 시각화 서버 컴퓨터(116)를 예시하지만, 혁신들 또는 실시예들은 이와 같이 제한되지 않는다. 예를 들어, 시각화 서버 컴퓨터(116), 또는 이와 유사한 것의 하나 이상의 기능들이 하나 이상의 구별되는 네트워크 컴퓨터들에 걸쳐 분산될 수도 있다. 더욱이, 하나 이상의 실시예들에서, 시각화 서버 컴퓨터(116)는 복수의 네트워크 컴퓨터들을 사용하여 구현될 수도 있다. 추가로, 다양한 실시예들 중 하나 이상에서, 시각화 서버 컴퓨터(116), 또는 이와 유사한 것은 하나 이상의 클라우드 네트워크들에서 하나 이상의 클라우드 인스턴스들을 사용하여 구현될 수도 있다. 이에 따라, 이들 혁신들 및 실시예들은 단일 환경으로 제한되는 것으로서 해석되어서는 안 되고, 다른 구성들 및 다른 아키텍처들이 또한 고려된다.
예시적인 클라이언트 컴퓨터
도 2는 도시된 것들보다 더 많은 또는 더 적은 컴포넌트들을 포함할 수도 있는 클라이언트 컴퓨터(200)의 일 실시예를 도시한다. 클라이언트 컴퓨터(200)는, 예를 들어, 도 1에 도시된 모바일 컴퓨터들 또는 클라이언트 컴퓨터들의 하나 이상의 실시예를 표현할 수도 있다.
클라이언트 컴퓨터(200)는, 버스(228)를 통해 메모리(204)와 통신하는 프로세서(202)를 포함할 수도 있다. 클라이언트 컴퓨터(200)는 또한 파워 서플라이(power supply)(230), 네트워크 인터페이스(232), 오디오 인터페이스(256), 디스플레이(250), 키패드(252), 조명기(254), 비디오 인터페이스(242), 입/출력 인터페이스(238), 햅틱 인터페이스(264), 글로벌 포지셔닝 시스템(global positioning systems)(GPS) 수신기(258), 오픈 에어 제스처 인터페이스(open air gesture interface)(260), 온도 인터페이스(262), 카메라(들)(240), 프로젝터(246), 포인팅 디바이스 인터페이스(266), 프로세서 판독가능 고정식 스토리지 디바이스(234), 및 프로세서 판독가능 탈착가능 스토리지 디바이스(236)를 포함할 수도 있다. 클라이언트 컴퓨터(200)는 임의로 기지국(도시되지 않음)과 통신하거나, 또는 다른 컴퓨터와 직접 통신할 수도 있다. 그리고 일 실시예에서, 도시되지 않았지만, 클라이언트 컴퓨터(200)의 배향을 측정 또는 유지하기 위해 클라이언트 컴퓨터(200) 내에 자이로스코프가 채용될 수도 있다.
파워 서플라이(230)는 클라이언트 컴퓨터(200)에 전력을 제공할 수도 있다. 재충전가능 또는 비-재충전가능 배터리가 전력을 제공하는 데 사용될 수도 있다. 전력은, 배터리를 보충 또는 재충전하는 전력공급형 도킹 크래들(powered docking cradle) 또는 AC 어댑터와 같은 외부 전력 소스에 의해 또한 제공될 수도 있다.
네트워크 인터페이스(232)는, 클라이언트 컴퓨터(200)를 하나 이상의 네트워크들에 커플링하기 위한 회로부를 포함하고, 모바일 통신(GSM), CDMA, 시분할 다중 액세스(TDMA), UDP, TCP/IP, SMS, MMS, GPRS, WAP, UWB, WiMax, SIP/RTP, GPRS, EDGE, WCDMA, LTE, UMTS, OFDM, CDMA2000, EV-DO, HSDPA, 또는 다양한 다른 무선 통신 프로토콜들 중 임의의 것을 위해 OSI 모델의 임의의 부분을 구현하는 프로토콜들 및 기술들을 포함하지만 이에 제한되지 않는 하나 이상의 통신 프로토콜들 및 기술들과 함께 사용하도록 구축된다. 네트워크 인터페이스(232)는 때때로 트랜시버, 송수신 디바이스, 또는 네트워크 인터페이스 카드(network interface card)(NIC)로서 알려져 있다.
오디오 인터페이스(256)는 인간 음성의 사운드와 같은 오디오 신호들을 생성 및 수신하도록 배열될 수도 있다. 예를 들어, 오디오 인터페이스(256)는 다른 것들과의 전기통신을 가능하게 하거나 또는 일부 액션에 대한 오디오 확인응답을 생성하기 위해 스피커 및 마이크로폰(도시되지 않음)에 커플링될 수도 있다. 오디오 인터페이스(256)에서의 마이크로폰이 또한 클라이언트 컴퓨터(200)에 대한 입력 또는 그의 제어를 위해 사용되어, 예를 들어, 음성 인식을 사용하는 것, 사운드에 기초하여 터치를 검출하는 것, 그리고 이와 유사한 것을 할 수 있다.
디스플레이(250)는, 액정 디스플레이(liquid crystal display)(LCD), 가스 플라즈마, 전자 잉크, 발광 다이오드(light emitting diode)(LED), 유기 LED(Organic LED)(OLED) 또는 컴퓨터와 함께 사용될 수 있는 임의의 다른 타입의 광 반사 또는 광 투과 디스플레이일 수도 있다. 디스플레이(250)는, 인간 손으로부터의 손가락 또는 스타일러스와 같은 객체로부터 입력을 수신하도록 배열되는 터치 인터페이스(244)를 또한 포함할 수도 있고, 터치 또는 제스처들을 감지하기 위해 저항, 용량, 표면 탄성파(surface acoustic wave)(SAW), 적외선, 레이더, 또는 다른 기술들을 사용할 수도 있다.
프로젝터(246)는, 원격 벽 또는 임의의 다른 반사 객체 예컨대 원격 스크린 상에 이미지를 투영하는 것이 가능한 통합 프로젝터 또는 원격 핸드헬드 프로젝터일 수도 있다.
비디오 인터페이스(242)는 스틸 사진, 비디오 세그먼트, 적외선 비디오, 또는 이와 유사한 것과 같은 비디오 이미지들을 캡처하도록 배열될 수도 있다. 예를 들어, 비디오 인터페이스(242)는 디지털 비디오 카메라, 웹 카메라, 또는 이와 유사한 것에 커플링될 수도 있다. 비디오 인터페이스(242)는 렌즈, 이미지 센서, 및 다른 전자 장치를 포함할 수도 있다. 이미지 센서들은, 상보성 금속 산화물 반도체(complementary metal-oxide-semiconductor)(CMOS) 집적 회로, 전하 커플링 디바이스(charge-coupled device)(CCD), 또는 광을 감지하기 위한 임의의 다른 집적 회로를 포함할 수도 있다.
키패드(252)는, 사용자로부터 입력을 수신하도록 배열되는 임의의 입력 디바이스를 포함할 수도 있다. 예를 들어, 키패드(252)는 푸시 버튼 숫자 다이얼, 또는 키보드를 포함할 수도 있다. 키패드(252)는, 이미지들을 선택 및 전송하는 것과 연관된 커맨드 버튼들을 또한 포함할 수도 있다.
조명기(254)는 상태 표시를 제공하거나 또는 광을 제공할 수도 있다. 조명기(254)는 특정 기간들의 시간 동안 또는 이벤트 메시지들에 응답하여 액티브한 채로 유지될 수도 있다. 예를 들어, 조명기(254)가 액티브할 때, 그것은 키패드(252) 상의 버튼들을 백라이팅하고, 클라이언트 컴퓨터가 전력공급되는 동안 온(on)으로 머물러 있을 수도 있다. 또한, 조명기(254)는 다른 클라이언트 컴퓨터에 다이얼링하는 것과 같은 특정 액션들이 수행될 때 다양한 패턴들로 이들 버튼들을 백라이팅할 수도 있다. 조명기(254)는 또한, 클라이언트 컴퓨터의 투명 또는 반투명 케이스 내에 포지셔닝된 광 소스들이 액션들에 응답하여 조명하게 할 수도 있다.
추가로, 클라이언트 컴퓨터(200)는, 키들, 디지털 인증서들, 패스워드들, 패스프레이즈(passphrase)들, 2-인자 인증 정보(two-factor authentication information), 또는 이와 유사한 것과 같은, 보안/암호화 정보를 생성, 저장 또는 사용하기 위한 부가적인 변경 방지 안전장치(tamper resistant safeguard)들을 제공하기 위한 하드웨어 보안 모듈(hardware security module)(HSM)(268)을 또한 포함할 수도 있다. 일부 실시예들에서, 하드웨어 보안 모듈은 하나 이상의 표준 공개 키 인프라스트럭처들(public key infrastructures)(PKI)을 지원하기 위해 채용될 수도 있고, 키 쌍들, 또는 이와 유사한 것을 생성, 관리, 또는 저장하기 위해 채용될 수도 있다. 일부 실시예들에서, HSM(268)은 독립형 컴퓨터일 수도 있고, 다른 경우들에서, HSM(268)은, 클라이언트 컴퓨터에 부가될 수도 있는 하드웨어 카드로서 배열될 수도 있다.
클라이언트 컴퓨터(200)는, 외부 주변기기 디바이스들 또는 다른 컴퓨터들 예컨대 다른 클라이언트 컴퓨터들 및 네트워크 컴퓨터들과 통신하기 위한 입/출력 인터페이스(238)를 또한 포함할 수도 있다. 주변기기 디바이스들은 오디오 헤드셋, 가상 현실 헤드셋들, 디스플레이 스크린 안경들, 원격 스피커 시스템, 원격 스피커 및 마이크로폰 시스템, 및 이와 유사한 것을 포함할 수도 있다. 입/출력 인터페이스(238)는 범용 직렬 버스(USB), 적외선, WiFi, WiMax, 블루투스(Bluetooth)™, 및 이와 유사한 것과 같은 하나 이상의 기술들을 활용할 수 있다.
입/출력 인터페이스(238)는, 지오로케이션 정보(geolocation information)(예를 들어, GPS)를 결정하는 것, 전기 전력 조건들을 모니터링하는 것(예를 들어, 전압 센서들, 전류 센서들, 주파수 센서들 등), 날씨를 모니터링하는 것(예를 들어, 서모스탯(thermostat)들, 기압계들, 풍속계들, 습도 검출기들, 강수량 스케일(precipitation scale)들, 또는 이와 유사한 것), 또는 이와 유사한 것을 하기 위한 하나 이상의 센서들을 또한 포함할 수도 있다. 센서들은, 클라이언트 컴퓨터(200)의 외부에 있는 데이터를 수집 또는 측정하는 하나 이상의 하드웨어 센서들일 수도 있다.
햅틱 인터페이스(264)는 클라이언트 컴퓨터의 사용자에게 촉각 피드백을 제공하도록 배열될 수도 있다. 예를 들어, 햅틱 인터페이스(264)는 컴퓨터의 다른 사용자가 호출하고 있을 때 특정 방식으로 클라이언트 컴퓨터(200)를 진동시키기 위해 채용될 수도 있다. 온도 인터페이스(262)는 온도 측정 입력 또는 온도 변화 출력을 클라이언트 컴퓨터(200)의 사용자에게 제공하는 데 사용될 수도 있다. 오픈 에어 제스처 인터페이스(260)는, 예를 들어, 단일 또는 스테레오 비디오 카메라들, 레이더, 사용자에 의해 보유 또는 착용된 컴퓨터 내측의 자이로스코프 센서, 또는 이와 유사한 것을 사용함으로써, 클라이언트 컴퓨터(200)의 사용자의 물리적 제스처들을 감지할 수도 있다. 카메라(240)는 클라이언트 컴퓨터(200)의 사용자의 물리적 안구 움직임들을 추적하는 데 사용될 수도 있다.
GPS 트랜시버(258)는, 전형적으로 위도 및 경도 값들로서 위치를 출력하는, 지구의 표면 상의 클라이언트 컴퓨터(200)의 물리적 좌표들을 결정할 수 있다. GPS 트랜시버(258)는 지구의 표면 상의 클라이언트 컴퓨터(200)의 물리적 위치를 추가로 결정하기 위해, 삼각측량, 보조 GPS(assisted GPS)(AGPS), 향상된 관측 시차(Enhanced Observed Time Difference)(E-OTD), 셀 식별자(Cell Identifier)(CI), 서비스 영역 식별자(Service Area Identifier)(SAI), 향상된 타이밍 어드밴스(Enhanced Timing Advance)(ETA), 기지국 서브시스템(Base Station Subsystem)(BSS), 또는 이와 유사한 것을 포함하지만 이에 제한되지 않는 다른 지오포지셔닝 메커니즘들을 또한 채용할 수 있다. 상이한 조건들 하에서, GPS 트랜시버(258)는 클라이언트 컴퓨터(200)에 대한 물리적 위치를 결정할 수 있다는 것이 이해된다. 그러나, 하나 이상의 실시예에서, 클라이언트 컴퓨터(200)는, 다른 컴포넌트들을 통해, 예를 들어, 미디어 액세스 제어(Media Access Control)(MAC) 주소, IP 주소, 및 이와 유사한 것을 포함하는, 클라이언트 컴퓨터의 물리적 위치를 결정하기 위해 채용될 수도 있는 다른 정보를 제공할 수도 있다.
다양한 실시예들 중 적어도 하나에서, 운영 체제(206), 클라이언트 디스플레이 엔진(222), 다른 클라이언트 앱들(224), 웹 브라우저(226), 또는 이와 유사한 것과 같은 애플리케이션들은 시간대(time zone)들, 언어들, 통화들(currencies), 캘린더 포맷팅(calendar formatting), 또는 이와 유사한 것과 같은 하나 이상의 로컬화 피처들을 선택하기 위해 지오로케이션 정보를 채용하도록 배열될 수도 있다. 로컬화 피처들은 문서들, 시각화들, 디스플레이 객체들, 디스플레이 모델들, 액션 객체들, 사용자-인터페이스들, 리포트들뿐만 아니라, 내부 프로세스들 또는 데이터베이스들에서 사용될 수도 있다. 다양한 실시예들 중 적어도 하나에서, 로컬화 정보를 선택하기 위해 사용되는 지오로케이션 정보는 GPS(258)에 의해 제공될 수도 있다. 또한, 일부 실시예들에서, 지오로케이션 정보는, 무선 네트워크(108) 또는 네트워크(111)와 같은 네트워크들을 통해 하나 이상의 지오로케이션 프로토콜들을 사용하여 제공되는 정보를 포함할 수도 있다.
휴먼 인터페이스 컴포넌트들은, 클라이언트 컴퓨터(200)와는 물리적으로 분리되어 클라이언트 컴퓨터(200)에 대한 원격 입력 또는 출력을 가능하게 하는 주변기기 디바이스들일 수 있다. 예를 들어, 디스플레이(250) 또는 키보드(252)와 같은 휴먼 인터페이스 컴포넌트들을 통해 여기에 설명된 바와 같이 라우팅된 정보가 그 대신에, 네트워크 인터페이스(232)를 통해, 원격으로 위치된 적절한 휴먼 인터페이스 컴포넌트들로 라우팅될 수 있다. 원격일 수도 있는 휴먼 인터페이스 주변기기 컴포넌트들의 예들은 오디오 디바이스들, 포인팅 디바이스들, 키패드들, 디스플레이들, 카메라들, 프로젝터들, 및 이와 유사한 것을 포함하지만 이에 제한되지 않는다. 이들 주변기기 컴포넌트들은 블루투스™, 지그비(Zigbee)™ 및 이와 유사한 것과 같은 피코 네트워크를 통해 통신할 수도 있다. 그러한 주변기기 휴먼 인터페이스 컴포넌트들을 갖는 클라이언트 컴퓨터의 하나의 비제한적인 예는 웨어러블 컴퓨터이고, 이 웨어러블 컴퓨터는, 하나 이상의 카메라들과 함께 원격 피코 프로젝터를 포함할 수도 있는데, 이 하나 이상의 카메라들은 사용자의 손 또는 벽과 같은 반사된 표면 상으로 피코 프로젝터에 의해 투영된 이미지의 부분들을 향한 사용자의 제스처들을 감지하기 위해, 별개로 위치된 클라이언트 컴퓨터와 원격으로 통신한다.
클라이언트 컴퓨터는, 웹 페이지들, 웹 기반 메시지들, 그래픽들, 텍스트, 멀티미디어, 및 이와 유사한 것을 수신하도록 그리고 이들을 전송하도록 구성되는 웹 브라우저 애플리케이션(226)을 포함할 수도 있다. 클라이언트 컴퓨터의 브라우저 애플리케이션은, 무선 애플리케이션 프로토콜 메시지들(WAP), 및 이와 유사한 것을 포함하는 사실상 모든 프로그래밍 언어를 채용할 수도 있다. 하나 이상의 실시예에서, 브라우저 애플리케이션은 핸드헬드 디바이스 마크업 언어(Handheld Device Markup Language)(HDML), 무선 마크업 언어(Wireless Markup Language)(WML), WMLScript, 자바스크립트, 표준 범용 마크업 언어(Standard Generalized Markup Language)(SGML), 하이퍼텍스트 마크업 언어(HTML), 확장성 마크업 언어(XML), HTML5, 및 이와 유사한 것을 채용하는 것이 가능하다.
메모리(204)는 RAM, ROM, 또는 다른 타입들의 메모리를 포함할 수도 있다. 메모리(204)는 컴퓨터 판독가능 명령어들, 데이터 구조체들, 프로그램 모듈들 또는 다른 데이터와 같은 정보의 저장을 위한 컴퓨터 판독가능 저장 매체들(디바이스들)의 예를 예시한다. 메모리(204)는, 클라이언트 컴퓨터(200)의 저레벨 동작을 제어하기 위한 BIOS(208)를 저장할 수도 있다. 메모리는, 클라이언트 컴퓨터(200)의 동작을 제어하기 위한 운영 체제(206)를 또한 저장할 수도 있다. 이 컴포넌트는 UNIX, 또는 LINUXTM의 버전과 같은 범용 운영 체제, 또는 윈도우 폰(Windows Phone)™, 안드로이드(Android)™, 또는 IOS 운영 체제와 같은 특수화된 클라이언트 컴퓨터 통신 운영 체제를 포함할 수도 있다는 것이 인지될 것이다. 운영 체제는, 자바(Java) 애플리케이션 프로그램들을 통해 하드웨어 컴포넌트들 또는 운영 체제 동작들의 제어를 가능하게 하는 자바 가상 머신 모듈을 포함하거나, 또는 이와 인터페이싱할 수도 있다.
메모리(204)는, 다른 것들 중에서도, 애플리케이션들(220) 또는 다른 데이터를 저장하기 위해 클라이언트 컴퓨터(200)에 의해 활용될 수 있는 하나 이상의 데이터 스토리지(210)를 더 포함할 수도 있다. 예를 들어, 데이터 스토리지(210)는 클라이언트 컴퓨터(200)의 다양한 능력들을 설명하는 정보를 저장하기 위해 또한 채용될 수도 있다. 그 후에, 정보는, 통신 동안 헤더의 일부로서 전송되는 것, 요청 시에 전송되는 것, 또는 이와 유사한 것을 하는 것을 포함하는, 다양한 방법들 중 임의의 것에 기초하여 다른 디바이스 또는 컴퓨터에 제공될 수도 있다. 데이터 스토리지(210)는 주소록(address book)들, 버디 리스트(buddy list)들, 에일리어스(alias)들, 사용자 프로파일 정보, 또는 이와 유사한 것을 포함하는 소셜 네트워킹 정보를 저장하기 위해 또한 채용될 수도 있다. 데이터 스토리지(210)는, 액션들을 실행 및 수행하기 위해 프로세서(202)와 같은 프로세서에 의한 사용을 위한 프로그램 코드, 데이터, 알고리즘들, 및 이와 유사한 것을 더 포함할 수도 있다. 일 실시예에서, 데이터 스토리지(210)의 적어도 일부는 또한, 비일시적 프로세서 판독가능 탈착가능 스토리지 디바이스(236), 프로세서 판독가능 고정식 스토리지 디바이스(234)를 포함하지만 이에 제한되지 않는, 클라이언트 컴퓨터(200)의 다른 컴포넌트 상에 저장되거나, 또는 심지어 클라이언트 컴퓨터의 외부에 있을 수도 있다.
애플리케이션들(220)은, 클라이언트 컴퓨터(200)에 의해 실행될 때, 명령어들 및 데이터를 송신, 수신, 또는 그렇지 않으면 프로세싱하는 컴퓨터 실행가능 명령어들을 포함할 수도 있다. 애플리케이션들(220)은, 예를 들어, 클라이언트 디스플레이 엔진(222), 다른 클라이언트 애플리케이션들(224), 웹 브라우저(226), 또는 이와 유사한 것을 포함할 수도 있다. 클라이언트 컴퓨터들은 쿼리들, 탐색들, 메시지들, 통지 메시지들, 이벤트 메시지들, 경고들, 성능 메트릭들, 로그 데이터, API 호출들, 또는 이와 유사한 것, 이들의 조합과 같은 통신들을 시각화 서버 컴퓨터들과 교환하도록 배열될 수도 있다.
애플리케이션 프로그램들의 다른 예들은 캘린더들, 탐색 프로그램들, 이메일 클라이언트 애플리케이션들, IM 애플리케이션들, SMS 애플리케이션들, 음성 인터넷 프로토콜(Voice Over Internet Protocol)(VOIP) 애플리케이션들, 연락처 관리자들, 태스크 관리자들, 트랜스코더들, 데이터베이스 프로그램들, 워드 프로세싱 프로그램들, 보안 애플리케이션들, 스프레드시트 프로그램들, 게임들, 탐색 프로그램들 등을 포함한다.
부가적으로, 하나 이상의 실시예들(도면들에 도시되지 않음)에서, 클라이언트 컴퓨터(200)는, 주문형 집적 회로(Application Specific Integrated Circuit)(ASIC), 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array)(FPGA), 프로그래밍가능 어레이 로직(Programmable Array Logic)(PAL), 또는 이와 유사한 것, 또는 이들의 조합과 같은 임베디드 로직 하드웨어 디바이스(embedded logic hardware device)를 CPU 대신에 포함할 수도 있다. 임베디드 로직 하드웨어 디바이스는 액션들을 수행하기 위해 그의 임베디드 로직을 직접 실행할 수도 있다. 또한, 하나 이상의 실시예들(도면들에 도시되지 않음)에서, 클라이언트 컴퓨터(200)는 CPU들 대신에 하나 이상의 하드웨어 마이크로제어기들을 포함할 수도 있다. 하나 이상의 실시예에서, 하나 이상의 마이크로제어기들, 예컨대 시스템 온 칩(System On a Chip)(SOC), 또는 이와 유사한 것은 그 자신의 임베디드 로직을 직접 실행하여 액션들을 수행하고 그 자신의 내부 메모리 및 그 자신의 외부 입력 및 출력 인터페이스들(예를 들어, 하드웨어 핀들 또는 무선 트랜시버들)에 액세스하여 액션들을 수행할 수도 있다.
예시적인 네트워크 컴퓨터
도 3은 다양한 실시예들 중 하나 이상을 구현하는 시스템에 포함될 수도 있는 네트워크 컴퓨터(300)의 일 실시예를 도시한다. 네트워크 컴퓨터(300)는, 도 3에 도시된 것들보다 더 많은 또는 더 적은 컴포넌트들을 포함할 수도 있다. 그러나, 도시된 컴포넌트들은 이들 혁신들을 실시하기 위한 예시적인 실시예를 개시하기에 충분하다. 네트워크 컴퓨터(300)는, 예를 들어, 도 1의 하나 이상의 시각화 서버 컴퓨터(116)의 일 실시예를 표현할 수도 있다.
네트워크 컴퓨터(300)와 같은 네트워크 컴퓨터들은, 버스(328)를 통해 메모리(304)와 통신할 수도 있는 프로세서(302)를 포함할 수도 있다. 일부 실시예들에서, 프로세서(302)는 하나 이상의 하드웨어 프로세서들, 또는 하나 이상의 프로세서 코어들로 구성될 수도 있다. 일부 경우들에서, 하나 이상의 프로세서들 중 하나 이상은, 본 명세서에서 설명되는 것들과 같은 하나 이상의 특수화된 액션들을 수행하도록 디자인되는 특수화된 프로세서들일 수도 있다. 네트워크 컴퓨터(300)는 또한 파워 서플라이(330), 네트워크 인터페이스(332), 오디오 인터페이스(356), 디스플레이(350), 키보드(352), 입/출력 인터페이스(338), 프로세서 판독가능 고정식 스토리지 디바이스(334), 및 프로세서 판독가능 탈착가능 스토리지 디바이스(336)를 포함한다. 파워 서플라이(330)는 네트워크 컴퓨터(300)에 전력을 제공한다.
네트워크 인터페이스(332)는 네트워크 컴퓨터(300)를 하나 이상의 네트워크들에 커플링하기 위한 회로부를 포함하고, 개방형 시스템 상호연결 모델(Open Systems Interconnection model)(OSI 모델)의 임의의 부분을 구현하는 프로토콜들 및 기술들, 모바일 통신용 글로벌 시스템(GSM), 코드 분할 다중 액세스(CDMA), 시분할 다중 액세스(TDMA), 사용자 데이터그램 프로토콜(user datagram protocol)(UDP), 송신 제어 프로토콜/인터넷 프로토콜(transmission control protocol/Internet protocol)(TCP/IP), 단문 메시지 서비스(Short Message Service)(SMS), 멀티미디어 메시징 서비스(Multimedia Messaging Service)(MMS), 일반 패킷 라디오 서비스(GPRS), WAP, 초광대역(ultra-wide band)(UWB), IEEE 802.16 마이크로파 액세스를 위한 세계적 상호운용성(Worldwide Interoperability for Microwave Access)(WiMax), 세션 개시 프로토콜/실시간 전송 프로토콜(Session Initiation Protocol/Real-time Transport Protocol)(SIP/RTP), 또는 다양한 다른 유선 및 무선 통신 프로토콜들 중 임의의 것을 포함하지만 이에 제한되지 않는 하나 이상의 통신 프로토콜들 및 기술들과 함께 사용하기 위해 구축된다. 네트워크 인터페이스(332)는 때때로 트랜시버, 송수신 디바이스, 또는 네트워크 인터페이스 카드(NIC)로서 알려져 있다. 네트워크 컴퓨터(300)는 임의로 기지국(도시되지 않음)과 통신하거나, 또는 다른 컴퓨터와 직접 통신할 수도 있다.
오디오 인터페이스(356)는 인간 음성의 사운드와 같은 오디오 신호들을 생성 및 수신하도록 배열된다. 예를 들어, 오디오 인터페이스(356)는 다른 것들과의 전기통신을 가능하게 하거나 또는 일부 액션에 대한 오디오 확인응답을 생성하기 위해 스피커 및 마이크로폰(도시되지 않음)에 커플링될 수도 있다. 오디오 인터페이스(356)에서의 마이크로폰이 또한 네트워크 컴퓨터(300)에 대한 입력 또는 그의 제어를 위해 사용되어, 예를 들어, 음성 인식을 사용할 수 있다.
디스플레이(350)는, 액정 디스플레이(LCD), 가스 플라즈마, 전자 잉크, 발광 다이오드(LED), 유기 LED(OLED) 또는 컴퓨터와 함께 사용될 수 있는 임의의 다른 타입의 광 반사 또는 광 투과 디스플레이일 수도 있다. 일부 실시예들에서, 디스플레이(350)는, 벽 또는 다른 객체 상에 이미지를 투영하는 것이 가능한 핸드헬드 프로젝터 또는 피코 프로젝터일 수도 있다.
네트워크 컴퓨터(300)는, 도 3에 도시되지 않은 외부 디바이스들 또는 컴퓨터들과 통신하기 위한 입/출력 인터페이스(338)를 또한 포함할 수도 있다. 입/출력 인터페이스(338)는 USB™, 파이어와이어(Firewire)™, WiFi, WiMax, 썬더볼트(Thunderbolt)™, 적외선, 블루투스™, 지그비™, 직렬 포트, 병렬 포트, 및 이와 유사한 것과 같은 하나 이상의 유선 또는 무선 통신 기술들을 활용할 수 있다.
또한, 입/출력 인터페이스(338)는, 지오로케이션 정보(예를 들어, GPS)를 결정하는 것, 전기 전력 조건들을 모니터링하는 것(예를 들어, 전압 센서들, 전류 센서들, 주파수 센서들 등), 날씨를 모니터링하는 것(예를 들어, 서모스탯들, 기압계들, 풍속계들, 습도 검출기들, 강수량 스케일들, 또는 이와 유사한 것), 또는 이와 유사한 것을 하기 위한 하나 이상의 센서들을 또한 포함할 수도 있다. 센서들은, 네트워크 컴퓨터(300)의 외부에 있는 데이터를 수집 또는 측정하는 하나 이상의 하드웨어 센서들일 수도 있다. 휴먼 인터페이스 컴포넌트들은 네트워크 컴퓨터(300)로부터 물리적으로 분리될 수 있어서, 네트워크 컴퓨터(300)에 대한 원격 입력 또는 출력을 가능하게 한다. 예를 들어, 디스플레이(350) 또는 키보드(352)와 같은 휴먼 인터페이스 컴포넌트들을 통해 여기에 설명된 바와 같이 라우팅된 정보가 그 대신에, 네트워크 인터페이스(332)를 통해, 네트워크 상의 다른 곳에 위치된 적절한 휴먼 인터페이스 컴포넌트들로 라우팅될 수 있다. 휴먼 인터페이스 컴포넌트들은, 컴퓨터가 컴퓨터의 인간 사용자로부터 입력을 취득하게 하거나, 또는 그 인간 사용자로 출력을 전송하게 하는 임의의 컴포넌트를 포함한다. 이에 따라, 마우스들, 스타일러스들, 트랙 볼들, 또는 이와 유사한 것과 같은 포인팅 디바이스들은 사용자 입력을 수신하기 위해 포인팅 디바이스 인터페이스(358)를 통해 통신할 수도 있다.
GPS 트랜시버(340)는, 전형적으로 위도 및 경도 값들로서 위치를 출력하는, 지구의 표면 상의 네트워크 컴퓨터(300)의 물리적 좌표들을 결정할 수 있다. GPS 트랜시버(340)는 지구의 표면 상의 네트워크 컴퓨터(300)의 물리적 위치를 추가로 결정하기 위해, 삼각측량, 보조 GPS(AGPS), 향상된 관측 시차(E-OTD), 셀 식별자(CI), 서비스 영역 식별자(SAI), 향상된 타이밍 어드밴스(ETA), 기지국 서브시스템(BSS), 또는 이와 유사한 것을 포함하지만 이에 제한되지 않는 다른 지오포지셔닝 메커니즘들을 또한 채용할 수 있다. 상이한 조건들 하에서, GPS 트랜시버(340)는 네트워크 컴퓨터(300)에 대한 물리적 위치를 결정할 수 있다는 것이 이해된다. 그러나, 하나 이상의 실시예들에서, 네트워크 컴퓨터(300)는, 다른 컴포넌트들을 통해, 예를 들어, 미디어 액세스 제어(MAC) 주소, IP 주소, 및 이와 유사한 것을 포함하는, 클라이언트 컴퓨터의 물리적 위치를 결정하기 위해 채용될 수도 있는 다른 정보를 제공할 수도 있다.
다양한 실시예들 중 적어도 하나에서, 운영 체제(306), 데이터 관리 엔진(322), 디스플레이 엔진(324), 계보 엔진(326), 웹 서비스들(329), 또는 이와 유사한 것과 같은 애플리케이션들은 시간대들, 언어들, 통화들, 통화 포맷팅, 캘린더 포맷팅, 또는 이와 유사한 것과 같은 하나 이상의 로컬화 피처들을 선택하기 위해 지오로케이션 정보를 채용하도록 배열될 수도 있다. 로컬화 피처들은 문서들, 파일 시스템들, 사용자-인터페이스들, 리포트들, 디스플레이 객체들, 디스플레이 모델들, 시각화들뿐만 아니라 내부 프로세스들 또는 데이터베이스들에서 사용될 수도 있다. 다양한 실시예들 중 적어도 하나에서, 로컬화 정보를 선택하기 위해 사용되는 지오로케이션 정보는 GPS(340)에 의해 제공될 수도 있다. 또한, 일부 실시예들에서, 지오로케이션 정보는, 무선 네트워크(108) 또는 네트워크(111)와 같은 네트워크들을 통해 하나 이상의 지오로케이션 프로토콜들을 사용하여 제공되는 정보를 포함할 수도 있다.
메모리(304)는 랜덤 액세스 메모리(Random Access Memory)(RAM), 판독 전용 메모리(Read-Only Memory)(ROM), 또는 다른 타입들의 메모리를 포함할 수도 있다. 메모리(304)는 컴퓨터 판독가능 명령어들, 데이터 구조체들, 프로그램 모듈들 또는 다른 데이터와 같은 정보의 저장을 위한 컴퓨터 판독가능 저장 매체들(디바이스들)의 예를 예시한다. 메모리(304)는, 네트워크 컴퓨터(300)의 저레벨 동작을 제어하기 위한 기본 입/출력 시스템(basic input/output system)(BIOS)(308)을 저장한다. 메모리는, 네트워크 컴퓨터(300)의 동작을 제어하기 위한 운영 체제(306)를 또한 저장한다. 이 컴포넌트는, UNIX, 또는 LINUXTM의 버전과 같은 범용 운영 체제, 또는 Microsoft Corporation의 Windows® 운영 체제, 또는 Apple Corporation의 OSX® 운영 체제와 같은 특수화된 운영 체제를 포함할 수도 있다는 것이 인지될 것이다. 운영 체제는, 자바 애플리케이션 프로그램들을 통해 하드웨어 컴포넌트들 또는 운영 체제 동작들의 제어를 가능하게 하는 자바 가상 머신 모듈과 같은 하나 이상의 가상 머신 모듈들을 포함하거나, 또는 이들과 인터페이싱할 수도 있다. 마찬가지로, 다른 런타임 환경들이 포함될 수도 있다.
메모리(304)는, 다른 것들 중에서도, 애플리케이션들(320) 또는 다른 데이터를 저장하기 위해 네트워크 컴퓨터(300)에 의해 활용될 수 있는 하나 이상의 데이터 스토리지(310)를 더 포함할 수도 있다. 예를 들어, 데이터 스토리지(310)는 네트워크 컴퓨터(300)의 다양한 능력들을 설명하는 정보를 저장하기 위해 또한 채용될 수도 있다. 그 후에, 정보는, 통신 동안 헤더의 일부로서 전송되는 것, 요청 시에 전송되는 것, 또는 이와 유사한 것을 하는 것을 포함하는, 다양한 방법들 중 임의의 것에 기초하여 다른 디바이스 또는 컴퓨터에 제공될 수도 있다. 데이터 스토리지(310)는 주소록들, 버디 리스트들, 에일리어스들, 사용자 프로파일 정보, 또는 이와 유사한 것을 포함하는 소셜 네트워킹 정보를 저장하기 위해 또한 채용될 수도 있다. 데이터 스토리지(310)는, 아래에 설명된 이들 액션들과 같은 액션들을 실행 및 수행하기 위해 프로세서(302)와 같은 프로세서에 의한 사용을 위한 프로그램 코드, 데이터, 알고리즘들, 및 이와 유사한 것을 더 포함할 수도 있다. 일 실시예에서, 데이터 스토리지(310)의 적어도 일부는 또한, 비일시적 미디어 인사이드 프로세서 판독가능 탈착가능 스토리지 디바이스(336), 프로세서 판독가능 고정식 스토리지 디바이스(334), 또는 네트워크 컴퓨터(300) 내의 임의의 다른 컴퓨터 판독가능 스토리지 디바이스를 포함하지만 이에 제한되지 않는, 네트워크 컴퓨터(300)의 다른 컴포넌트 상에 저장되거나, 또는 심지어 네트워크 컴퓨터(300)의 외부에 있을 수도 있다. 데이터 스토리지(310)는, 예를 들어, 데이터 모델들(314), 디스플레이 모델들(316), 그래프 모델들(318), 소스 데이터(319), 또는 이와 유사한 것을 포함할 수도 있다. 데이터 모델들(314)은, 하나 이상의 데이터 모델들의 하나 이상의 부분들을 표현하는 파일들, 문서들, 버전들, 특성들, 메타-데이터, 데이터 구조체들, 또는 이와 유사한 것을 저장할 수도 있다. 디스플레이 모델들(316)은 디스플레이 모델들을 저장할 수도 있다. 계보 모델들(318)은, 계보 모델들을 저장하는 데 사용되는 메모리를 표현할 수도 있다. 소스 데이터(319)는, 데이터 모델들, 계보 모델들, 디스플레이 모델들, 또는 이와 유사한 것의 기초가 되는 데이터에 기여하는 데이터베이스들, 또는 다른 데이터 소스들을 저장하는 데 사용되는 메모리를 표현할 수도 있다.
애플리케이션들(320)은, 네트워크 컴퓨터(300)에 의해 실행될 때, 메시지들(예를 들어, SMS, 멀티미디어 메시징 서비스(MMS), 인스턴트 메시지(Instant Message)(IM), 이메일, 또는 다른 메시지들), 오디오, 비디오를 송신, 수신, 또는 그렇지 않으면 프로세싱하고 다른 모바일 컴퓨터의 다른 사용자와의 전기통신을 가능하게 하는 컴퓨터 실행가능 명령어들을 포함할 수도 있다. 애플리케이션 프로그램들의 다른 예들은 캘린더들, 탐색 프로그램들, 이메일 클라이언트 애플리케이션들, IM 애플리케이션들, SMS 애플리케이션들, 음성 인터넷 프로토콜(VOIP) 애플리케이션들, 연락처 관리자들, 태스크 관리자들, 트랜스코더들, 데이터베이스 프로그램들, 워드 프로세싱 프로그램들, 보안 애플리케이션들, 스프레드시트 프로그램들, 게임들, 탐색 프로그램들 등을 포함한다. 애플리케이션들(320)은, 아래에 설명되는 실시예들에 대한 액션들을 수행하도록 배열될 수도 있는 데이터 관리 엔진(322), 디스플레이 엔진(324), 계보 엔진(326), 웹 서비스들(329), 또는 이와 유사한 것을 포함할 수도 있다. 다양한 실시예들 중 하나 이상에서, 애플리케이션들 중 하나 이상은 다른 애플리케이션의 모듈들 또는 컴포넌트들로서 구현될 수도 있다. 추가로, 다양한 실시예들 중 하나 이상에서, 애플리케이션들은 운영 체제 확장자들, 모듈들, 플러그인들, 또는 이와 유사한 것으로서 구현될 수도 있다.
게다가, 다양한 실시예들 중 하나 이상에서, 데이터 관리 엔진(322), 디스플레이 엔진(324), 계보 엔진(326), 웹 서비스들(329), 또는 이와 유사한 것은 클라우드 기반 컴퓨팅 환경에서 동작할 수도 있다. 다양한 실시예들 중 하나 이상에서, 관리 플랫폼을 포함하는 이들 애플리케이션들 및 다른 것들은, 클라우드 기반의 기반 컴퓨팅 환경에서 관리될 수도 있는 가상 머신들 또는 가상 서버들 내에서 실행되고 있을 수도 있다. 다양한 실시예들 중 하나 이상에서, 이러한 맥락에서 애플리케이션들은, 클라우드 컴퓨팅 환경에 의해 자동으로 관리되는 성능 및 스케일링 고려사항들에 따라 클라우드 기반 환경 내의 하나의 물리적 네트워크 컴퓨터로부터 다른 것으로 이동할 수도 있다. 마찬가지로, 다양한 실시예들 중 하나 이상에서, 데이터 관리 엔진(322), 디스플레이 엔진(324), 웹 서비스들(329), 또는 이와 유사한 것에 전용되는 가상 머신들 또는 가상 서버들이 자동으로 프로비저닝 및 작동해제될 수도 있다.
또한, 다양한 실시예들 중 하나 이상에서, 데이터 관리 엔진(322), 디스플레이 엔진(324), 계보 엔진(326), 웹 서비스들(329), 또는 이와 유사한 것은 하나 이상의 특정 물리적 네트워크 컴퓨터들에 연결되기보다는 오히려 클라우드 기반 컴퓨팅 환경에서 실행되는 가상 서버들에 위치될 수도 있다.
추가로, 네트워크 컴퓨터(300)는, 키들, 디지털 인증서들, 패스워드들, 패스프레이즈들, 2-인자 인증 정보, 또는 이와 유사한 것과 같은, 보안/암호화 정보를 생성, 저장 또는 사용하기 위한 부가적인 변경 방지 안전장치들을 제공하기 위한 하드웨어 보안 모듈(HSM)(360)을 또한 포함할 수도 있다. 일부 실시예들에서, 하드웨어 보안 모듈은 하나 이상의 표준 공개 키 인프라스트럭처들(PKI)을 지원하기 위해 채용될 수도 있고, 키 쌍들, 또는 이와 유사한 것을 생성, 관리, 또는 저장하기 위해 채용될 수도 있다. 일부 실시예들에서, HSM(360)은 독립형 네트워크 컴퓨터일 수도 있고, 다른 경우들에서, HSM(360)은, 네트워크 컴퓨터에 설치될 수도 있는 하드웨어 카드로서 배열될 수도 있다.
부가적으로, 하나 이상의 실시예들(도면들에 도시되지 않음)에서, 네트워크 컴퓨터(300)는, 주문형 집적 회로(ASIC), 필드 프로그래밍가능 게이트 어레이(FPGA), 프로그래밍가능 어레이 로직(PAL), 또는 이와 유사한 것, 또는 이들의 조합과 같은 임베디드 로직 하드웨어 디바이스를 CPU 대신에 포함할 수도 있다. 임베디드 로직 하드웨어 디바이스는 액션들을 수행하기 위해 그의 임베디드 로직을 직접 실행할 수도 있다. 또한, 하나 이상의 실시예들(도면들에 도시되지 않음)에서, 네트워크 컴퓨터는 CPU 대신에 하나 이상의 하드웨어 마이크로제어기들을 포함할 수도 있다. 하나 이상의 실시예에서, 하나 이상의 마이크로제어기들, 예컨대 시스템 온 칩(SOC), 또는 이와 유사한 것은 그 자신의 임베디드 로직을 직접 실행하여 액션들을 수행하고 그 자신의 내부 메모리 및 그 자신의 외부 입력 및 출력 인터페이스들(예를 들어, 하드웨어 핀들 또는 무선 트랜시버들)에 액세스하여 액션들을 수행할 수도 있다.
예시적인 논리적 시스템 아키텍처
도 4는 다양한 실시예들 중 하나 이상에 따른, 데이터 자산들에 대한 대화형 계보 분석을 위한 시스템(400)의 논리적 아키텍처를 예시한다. 다양한 실시예들 중 하나 이상에서, 시스템(400)은, 하나 이상의 데이터베이스 객체들로부터 하나 이상의 시각화들에 이르는 다양한 데이터 객체들로 구성될 수도 있는 데이터 모델(402)과 같은 다양한 컴포넌트들을 포함할 수도 있다. 이 예에서, 데이터 모델(402)은 데이터베이스 객체(404), 데이터베이스 객체(406), 테이블 객체(408), 테이블 객체(410), 테이블 객체(412), 워크플로 객체(414), 데이터 소스 객체(416), 데이터 소스 객체(418), 워크북 객체(420), 시트 객체(422), 및 시트 객체(424)를 포함한다.
다양한 실시예들 중 하나 이상에서, 시각화 서버 컴퓨터(116)와 같은 시각화 서버 컴퓨터들은 시각화들을 생성하기 위해 사용될 수도 있는 정보를 표현하기 위해 데이터 모델(402)과 같은 데이터 모델들을 채용하도록 배열될 수도 있다. 또한, 일부 실시예들에서, 데이터 모델들은, 사용자들, 저작자들, 또는 이와 유사한 것을 포함하는, 시각화 시스템에서의 다른 행위자들을 관리하는 데 사용될 수도 있다.
이 예에서, 데이터 모델(402)은 데이터 객체(404) 및 데이터 객체(406)와 같은 하나 이상의 루트 레벨 데이터 객체들을 가질 수도 있다. 데이터 객체(404) 및 데이터 객체(406)는, 데이터 모델을 구동하는 정보의 소스일 수도 있는 데이터베이스들을 표현한다. 예를 들어, 데이터 객체(404)는, 조직의 하나의 부분과 연관된 SQL RDBMS를 표현할 수도 있는 한편, 데이터 객체(406)는 다른 정보 제공자 또는 다른 데이터베이스들에 대한 API 게이트웨이를 표현할 수도 있다.
다양한 실시예들 중 하나 이상에서, 데이터 객체(408), 데이터 객체(410), 데이터 객체(412), 또는 이와 유사한 것은, 하나 이상의 데이터베이스들에 의해 제공될 수도 있는 테이블들 또는 테이블 유사 객체(table-like object)들을 표현한다. 이 레벨의 데이터 모델에서, 데이터 객체들은, 데이터베이스들로부터 제공되는 엔티티들을 래핑(wrap)하거나 또는 그렇지 않으면 밀접하게 모델링하는 것으로 간주될 수도 있다. 이에 따라, 일부 실시예들에서, 테이블 또는 데이터베이스 객체들의 특성들 또는 속성들은 속성 명칭들, 데이터 타입들, 테이블 명칭들, 컬럼 명칭들, 또는 이와 유사한 것의 관점에서 이들의 고유 표현들을 밀접하게 미러링할 수도 있다. 예를 들어, 데이터 관리자들은 데이터베이스들 또는 테이블들을 데이터 모델로 "임포팅(import)"하여, 임포팅된 객체들이, 고유 형태로 이용가능한 피처들 또는 속성들의 일부 또는 전부를 유지하도록 하는 것이 가능할 수도 있다.
다양한 실시예들 중 하나 이상에서, 임포팅된 테이블 객체가 시각화들을 위해 사용될 수도 있기 전에, 데이터 관리자들은 시각화들 또는 시각화 저작자들에 의한 소비를 위한 정보를 준비하기 위해 하나 이상의 액션들을 수행 또는 실행해야 할 수도 있다. 이 예에서, 추출-변환-로드(extract-transform-load)(ETL) 객체(414)는, 그것이 시각화들에서의 사용을 위해 이용가능해지기 전에 테이블 객체(410) 및 테이블 객체(412)에서의 정보에 대해 일부 프로세싱을 행하는 ETL 프로세스를 표현한다.
다양한 실시예들 중 하나 이상에서, 데이터 소스(416) 또는 데이터 소스(418)와 같은 데이터 소스 객체들은, 시각화들 또는 다른 디스플레이 모델들에 포함시키도록 시각화 저작자들에게 이용가능해질 수도 있는 데이터 객체들을 표현한다. 일부 실시예들에서, 데이터 소스 객체들은, 시각화들 또는 시각화 저작자들에게 이용가능해질 수도 있는 데이터베이스들(예를 들어, 데이터베이스(404) 또는 데이터베이스(406))로부터의 정보를 관리하거나 또는 그렇지 않으면 형상화하기 위해 데이터 관리자들의 제어를 제공할 수도 있다. 예를 들어, 데이터베이스(404)에서의 하나 이상의 테이블들은, 조직이 시각화들로부터 배제시키기를 원하는 민감한 정보를 포함할 수도 있다. 이에 따라, 일부 실시예들에서, 테이블 객체들로부터 데이터 소스 객체들로의 매핑 속성들을 선택함으로써, 데이터 관리자들은 데이터가 기본 데이터베이스들로부터 노출되는 방법을 제어할 수도 있다. 일부 실시예들에서, 데이터 관리자들은 데이터 소스들에 포함시킬 테이블 객체들로부터 특정 컬럼들 또는 속성들을 선택하는 것이 가능할 수도 있다. 또한, 일부 실시예들에서, 테이블 객체들에서의 속성 명칭들(예를 들어, 컬럼 명칭들)은 데이터 소스들에서의 상이한 명칭들에 매핑될 수도 있다. 예를 들어, 테이블 객체에서 customer_identifier라고 명명된 테이블 컬럼은 데이터 소스에서 'Account Number'라고 명명된 속성에 매핑될 수도 있다. 또한, 일부 실시예들에서, 데이터 타입 컨버전(data type conversion)들, 집계들, 필터링, 조합, 또는 이와 유사한 것과 같은 매핑들의 다른 변환들이 수행될 수도 있다. 일부 실시예들에서, 광범위하거나 또는 복잡한 변환들이 ETL 객체들, 또는 이와 유사한 것에 캡슐화될 수도 있는 반면, 더 단순하거나 또는 더 통상적인 변환들은 별개의 ETL 객체를 사용하는 일 없이 가능할 수도 있다.
다양한 실시예들 중 하나 이상에서, 에지(448)는 테이블 객체로부터 데이터 소스로의 매핑을 표현한다. 이 예에서, 에지(448)는, 테이블 객체(408)의 하나 이상의 속성들(예를 들어, 컬럼들)을 데이터 소스(416)에 매핑시키는 하나 이상의 데이터 구조체들을 표현할 수도 있다. 이에 따라, 일부 실시예들에서, 에지(448)는, 테이블 객체(408)로부터의 어떤 정보가 데이터 소스(416)에서 이용가능한지뿐만 아니라, 테이블 객체(408)로부터의 정보가 시각화 저작자들에게 어떻게 나타날 수도 있는지를 정의하는 하나 이상의 매핑 규칙들 또는 명령어들을 제공하거나 또는 이들에 연관된다.
다양한 실시예들 중 하나 이상에서, 워크북 객체(420)는, 시트 객체(422) 또는 시트 객체(424)와 같은 하나 이상의 사용자 레벨 데이터 객체들과 연관될 수도 있는 데이터 객체를 표현한다. 일부 실시예들에서, 시각화 저작자들은, 데이터 소스(416) 또는 데이터 소스(418)와 같은 하나 이상의 데이터 소스들에 의해 제공되는 정보에 기초하여, 워크북 객체(420)와 같은 워크북들을 디자인하는 것이 가능할 수도 있다. 일부 실시예들에서, 시각화 저작자들은, 하나 이상의 시트들(예를 들어, 시트 객체(422) 또는 시트 객체(424)를 포함하는 워크북들을 디자인할 수도 있다. 일부 실시예들에서, 시트 객체들은 하나 이상의 시각화들, 또는 이와 유사한 것을 포함할 수도 있다.
다양한 실시예들 중 하나 이상에서, 시트 객체(422) 또는 시트 객체(424)는, 사용자들에 의해 채용될 수도 있는 하나 이상의 대화형 시각화 애플리케이션들 또는 리포트들을 생성하는 시각화 엔진, 또는 이와 유사한 것에 제공될 수도 있는 정보의 일부 또는 전부를 표현할 수도 있다. 이 예에서, 시트 객체(422) 또는 시트 객체(424)는, 하나 이상의 데이터베이스들에 의해 제공될 수도 있는 정보의 하나 이상의 시각화들을 렌더링하는 데 사용될 수도 있는 데이터, 메타-데이터, 데이터 구조체들, 또는 이와 유사한 것 중 하나 이상을 포함 또는 참조하는 것으로 간주될 수도 있다. 일부 실시예들에서, 시트들은 하나 이상의 디스플레이 모델들, 스타일링 정보, 텍스트 설명들, 내러티브 정보, 스타일화된 그래픽들, 다른 시트들에 대한 링크들, 또는 이와 유사한 것을 포함하도록 배열될 수도 있다.
이에 따라, 일부 실시예들에서, 사용자(426) 또는 사용자(428)와 같은 사용자들은 시트들에 액세스하는 것이 가능할 수도 있다. 시트에서의 콘텐츠 또는 시각화들은 그의 디자인 및 그것이 기초하는 정보(예를 들어, 데이터베이스(404) 또는 데이터베이스(406)로부터의 정보)에 종속될 수도 있다. 전형적으로, 시트들 또는 포함된 시각화들은 하나 이상의 데이터베이스들로부터의 하나 이상의 필드들, 노드들, 컬럼들, 또는 이와 유사한 것에 종속될 수도 있다. 마찬가지로, 일부 실시예들에서, 데이터베이스와 연관될 수도 있는 종속성들은 테이블들, 데이터 소스들, 워크북들, 또는 이와 유사한 것과 같은 다른 데이터 객체들을 통해 전파될 수도 있다. 일부 경우들에서, 시트와 그의 기본 데이터베이스 사이에 개재된 다른 데이터 객체들은, 시트들 또는 시각화들을 통해 전파될 수도 있는 부가적인 종속성들을 도입시킬 수도 있다.
일부 실시예들에서, 하나 이상의 데이터 객체들에 대한 업스트림 변경들은 하나 이상의 다운스트림 시트들 또는 시각화들에 영향을 미칠 수도 있다. 일부 경우들에서, 업스트림 변경들은 시트들 또는 시각화들을 깰 수도 있어서, 깨진 시트 또는 시각화와 연관된 에러 메시지들에 기초하여 업스트림 데이터 객체들에 변경들이 있었다는 것을 사용자들 또는 저작자들이 쉽게 알도록 한다. 예를 들어, 시각화가 업스트림 필드 또는 속성에 종속되는 경우, 그 속성을 제거하거나 또는 그의 명칭을 변경하면 누락된 속성을 식별하는 에러를 야기시킬 수도 있다.
그러나, 일부 실시예들에서, 일부 또는 많은 업스트림 변경들은, 사용자에게 명백하지 않을 수도 있는 영향들을 미칠 수도 있다. 예를 들어, 일부 실시예들에서, 업스트림 변경은 속성의 의미 또는 시맨틱스를 수정할 수도 있어서, 그것이, 정보의 의미가 변경되었더라도 시스템 에러를 생성하는 일 없이 시각화에 의해 소비될 수도 있는 정보를 여전히 제공하도록 한다. 이 예에서, 사용자는 이들의 시각화가 더 이상 올바른 결과들을 생성하고 있지 않더라도 업스트림 변경이 발생하였다는 것을 인식하지 못할 수도 있다.
유사하게, 일부 실시예들에서, 조직을 위한 데이터베이스들 또는 다른 데이터 객체들을 관리하는 데이터 관리자들은, 데이터 객체 또는 데이터 모델에 대한 변경이 야기시킬 수도 있는 잠재적인 다운스트림 영향들을 쉽게 결정하는 것이 불가능할 수도 있다. 예를 들어, 데이터 관리자들은 데이터베이스에 대한 하나 이상의 변경들을 제안할 수도 있지만, 이들은 그러한 변경들이 다운스트림 사용자들에게 미칠 수도 있는 잠재적인 영향들을 추정, 검증, 또는 확인하기가 어려울 수도 있다.
이에 따라, 다양한 실시예들 중 하나 이상에서, 계보 엔진(326)과 같은 계보 엔진은, 데이터 모델(402)과 연관될 수도 있는 계보 정보를 제공하는 계보 모델(432)과 같은 하나 이상의 계보 모델들을 생성 및 유지하도록 배열될 수도 있다. 다양한 실시예들 중 하나 이상에서, 계보 모델은 계보 객체(434), 계보 객체(436), 계보 객체(438), 계보 객체(440), 계보 객체(442), 계보 객체(444), 계보 객체(446), 또는 이와 유사한 것과 같은 하나 이상의 계보 객체들을 포함하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 객체들은, 데이터 모델의 동일한 계층의 일부일 수도 있는 데이터 객체들의 타입들을 표현할 수도 있다. 일부 실시예들에서, 데이터 모델의 계층의 멤버들은, 동일한 또는 유사한 피처들 또는 목적들을 가질 수도 있는 데이터 객체들을 포함할 수도 있다. 예를 들어, 계보 객체(434)는, 데이터 객체(404) 및 데이터 객체(406)와 같은, 데이터베이스들인 것으로 간주될 수도 있는 데이터 객체들을 표현한다. 그리고, 예를 들어: 계보 객체(436)는, 데이터 객체(408), 데이터 객체(410), 데이터 객체(412), 또는 이와 유사한 것과 같은, 테이블들을 표현하는 데이터 객체들을 표현할 수도 있다; 계보 객체(438)는, 데이터 객체(414), 또는 이와 유사한 것과 같은, ETL 프로세스들을 표현하는 데이터 객체들을 표현할 수도 있다; 계보 객체(440)는, 데이터 객체(416), 데이터 객체(418), 또는 이와 유사한 것과 같은, 데이터 소스들을 표현하는 데이터 객체들을 표현할 수도 있다; 계보 객체(442)는, 데이터 객체(420), 또는 이와 유사한 것과 같은, 워크북들을 표현하는 데이터 객체들을 표현할 수도 있다; 계보 객체(444)는, 시트 데이터 객체(422), 시트 데이터 객체(424), 또는 이와 유사한 것과 같은, 시트들을 표현하는 데이터 객체들을 표현할 수도 있다. 또한, 일부 객체들에서, 계보 모델들은, 사용자(426), 사용자(428), 또는 이와 유사한 것과 같은, 시트 또는 시각화와 연관될 수도 있는 한 명 이상의 사용자들을 표현하는 계보 객체들을 포함하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 모델들은 데이터 객체들의 더 많은 또는 더 적은 클래스들을 표현하도록 배열될 수도 있다. 예를 들어, 일부 실시예들에서, 계보 엔진이, 시트들과 연관될 수도 있는 사용자들을 식별하는 것이 제약되거나 또는 그렇지 않으면 불가능한 경우, 계보 모델은, 계보 객체(446)와 같은, 사용자들을 표현하는 계보 객체들을 생략할 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 엔진들은 데이터 모델(402)을 자동으로 조사하여 데이터 모델에서의 데이터 객체 클래스들 또는 데이터 모델 계층들에 기초하여 그의 계보 객체들을 결정하도록 배열될 수도 있다. 일부 실시예들에서, 데이터 모델에서의 하나 이상의 데이터 객체들 또는 데이터 객체 클래스들은 보안 고려사항들, 또는 이와 유사한 것과 같은 다양한 이유들로 계보 엔진들 또는 계보 모델들로부터 배제될 수도 있다. 이에 따라, 일부 실시예들에서, 계보 엔진들은 계보 모델들에 포함시킬 계보 객체들을 결정하기 위해 구성 정보를 통해 제공되는 하나 이상의 규칙들, 필터들, 또는 조건들을 채용하도록 배열될 수도 있다.
도 5는 다양한 실시예들 중 하나 이상에 따를 수도 있는, 대화형 그래프 기반 데이터 시각화를 위한 시스템(500)의 일 부분의 논리적 표현을 예시한다. 이 예에서, 일부 실시예들에 대해, 데이터 모델(502)은 상술된 데이터 모델(402)과 유사한 것으로 간주될 수도 있다. 이 예에서, 데이터 객체(506)는, 데이터 관리자가 수정하려고 고려하고 있을 수도 있는 데이터 객체를 표현한다. 이에 따라, 이 예에서, 데이터 객체(506)에 대한 변경들은 데이터 객체(508), 데이터 객체(510), 데이터 객체(512), 데이터 객체(514), 또는 이와 유사한 것과 같은 다양한 다운스트림 데이터 객체들에 영향을 미칠 수도 있다. 또한, 이 예에서, 사용자(516) 또는 사용자(518)는, 데이터 객체(512) 또는 데이터 객체(514)에 의존하거나 또는 이를 소유하는 사용자들일 수도 있다.
또한, 이 예에서, 일부 실시예들에 대해, 계보 모델(520)은, 데이터 모델(502)에 기초하여 계보 엔진이 생성한 계보 모델일 수도 있다. 이에 따라, 이 예에서, 일부 실시예들에 대해, 계보 객체(522)는, 계보 모델(520)에 포함된 계보 객체들 중 하나를 표현할 수도 있다.
이에 따라, 일부 실시예들에서, 계보 모델에서의 계보 객체가 활성화되는 경우, 계보 엔진은 활성화된 계보 객체와 연관된 데이터 객체들에 종속될 수도 있는 그의 대응하는 데이터 모델(예를 들어, 데이터 모델(502))에서의 데이터 객체들을 결정하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 객체가 활성화될 수도 있는 경우, 계보 엔진은 활성화된 계보 객체에 대응하는 데이터 모델 계층에 포함될 수도 있는 데이터 모델에서의 데이터 객체들을 결정하도록 배열될 수도 있다. 이 예에서, 활성화된 계보 객체는 계보 객체(522)일 수도 있다. 이 예에서, 계보 객체(522)는 데이터 모델(502)에서의 테이블 계층에 대응하는 것으로 간주될 수도 있다. 이에 따라, 이 예에서, 계보 엔진은, 테이블 계층과 연관될 수도 있는 데이터 모델(502)에서의 데이터 객체들의 일부 또는 전부를 결정할 수도 있다.
일부 실시예들에서, 계보 객체와 연관된 데이터 객체들이 결정될 수도 있는 경우, 계보 엔진은, 구성 정보에 의해 제공될 수도 있는 하나 이상의 규칙들, 사용자 입력들, 또는 이와 유사한 것에 기초하여 하나 이상의 앵커 데이터 객체들을 결정할 수도 있다. 예를 들어, 일부 실시예들에서, 구성 정보는, 하나 이상의 데이터 객체들을 자동으로 선택하는 규칙들(예를 들어, 액세스된 마지막 데이터 객체, 정렬된 리스트에서 첫 번째의 것, 또는 이와 유사한 것)을 포함할 수도 있다. 또한, 일부 실시예들에서, 계보 엔진들은 사용자 입력에 기초하여 하나 이상의 앵커 데이터 객체들을 결정하도록 배열될 수도 있다. 예를 들어, 데이터 관리자는 데이터 객체(506)를 선택할 수도 있는데, 이는 그것이 하나 이상의 보류 중인 수정들과 연관될 수도 있기 때문이다.
다양한 실시예들 중 하나 이상에서, 앵커 데이터 객체가 결정된 경우, 계보 엔진은, 앵커 데이터 객체에 기초하여 종속성 정보를 포함하는 계보 정보를 결정하기 위해 데이터 모델의 탐색을 개시하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 엔진들은, 하나 이상의 계보 객체들과 연관될 수도 있는 데이터 객체들에 관한 다양한 정보를 결정하도록 배열될 수도 있다. 일부 실시예들에서, 계보 엔진들은, 각각의 계보 객체와 연관될 수도 있는 데이터 모델 계층과 연관될 수도 있는 데이터 객체들의 수를 결정하도록 배열될 수도 있다. 예를 들어, 일부 실시예들에서, 계보 엔진들은, 하나 이상의 계보 객체들을, 주어진 계보 객체와 연관된 데이터 객체들의 수와 연관시킬 수도 있다. 다른 실시예들에서, 계보 객체들은, 데이터 모델에서 하나 또는 하나의 제약된 데이터 객체들을 식별하는 것과 같은 다른 정보를 포함할 수도 있다. 예를 들어, 데이터 모델(502)이 제약된 테이블 데이터 객체(도시되지 않음)를 포함한 경우, 계보 객체(522)는, 그러한 정보를 저장할 수도 있는 속성을 갖도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 엔진들은 집계 데이터 모델 계층 정보로부터 하나 이상의 데이터 객체들을 배제시키기 위해 하나 이상의 필터들 또는 다른 규칙들을 실행하도록 배열될 수도 있다. 예를 들어, 데이터 모델(502)이, 데이터 관리자에게 액세스불가능하도록 구성된 하나 이상의 테이블 데이터 객체들(도시되지 않음)을 포함한 경우, 하나 이상의 테이블 데이터 객체들은, 데이터 관리자가 뷰잉 또는 수정할 수도 있는 데이터 객체들로부터 배제되거나 또는 그렇지 않으면 이들로부터 구별될 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 엔진들은 활성화된 계보 객체에 기초하여 데이터 객체들의 종속성들을 조사하기 위한 계보 모델들을 생성하도록 배열될 수도 있다. 추가로, 일부 실시예들에서, 계보 엔진들은, 앵커 데이터 객체들로서 지정될 수도 있는 하나 이상의 데이터 객체들에 기초하여 종속성 조사를 추가로 정밀화하도록 배열될 수도 있다. 예를 들어, 데이터 객체(506)가 앵커 데이터 객체인 경우, 계보 객체(522)가 활성화된 것으로 간주될 수도 있는데, 이는, 데이터 객체(506)가, 계보 객체(522)에 대응하는 데이터 모델 계층(예를 들어, 데이터 객체 클래스 테이블들)에 있기 때문이다. 이에 따라, 일부 실시예들에서, 계보 엔진들은 전체 데이터 모델을 탐색하기보다는 오히려 데이터 모델에서의 앵커 데이터 객체의 포지션에 기초하여 앵커 데이터 객체와 연관된 종속성들을 추적하는 데이터 모델의 탐색을 실행하도록 배열될 수도 있다.
이 예에서, 데이터 객체(506)가 앵커 데이터 객체인 경우, 계보 엔진은, 데이터 객체(506)와 연관된 종속성 경로를 결정할 수도 있다. 여기에서, 데이터 모델(502)에서의 이 경로는 볼드(bold)/굵은 라인들을 사용하여 예시되고, 데이터 객체(506), 데이터 객체(508), 데이터 객체(510), 데이터 객체(512), 데이터 객체(514), 사용자(516), 및 사용자(518)를 포함한다. 또한, 이 예에서, 계보 객체(522)의 외관은, 그것이 액티브 데이터 모델 계층을 표현함을 표시하도록 수정될 수도 있다.
도 6은 다양한 실시예들 중 하나 이상에 따른, 계보 정보를 관리하기 위한 데이터 구조체를 표현하는 계보 객체(600)의 논리적 개략도를 예시한다. 일부 실시예들에서, 계보 객체들은, 계보 객체와 연관될 수도 있는 데이터 객체들과 연관될 수도 있는 다양한 정보를 포함하도록 배열될 수도 있다. 일부 실시예들에서, 계보 엔진들은, 구성 정보, 또는 이와 유사한 것에 기초하여 계보 객체에 수집 및 포함될 특정 정보를 결정하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 객체들은, 데이터 모델 계층과 연관된 하나 이상의 데이터 객체들과 연관된 정보 또는 정보에 대한 레퍼런스를 저장하는 데 사용될 수도 있는 다양한 특성들을 포함할 수도 있다. 이 예에서, 일부 실시예들에서, 계보 객체(600)는, 식별자 특성(602), 계층 특성(604), 객체 카운트 특성(606), 배제된 객체 카운트 특성(608), 필터들 특성(610), 또는 이와 유사한 것과 같은 특성들을 포함한다.
일부 실시예들에서, 특성(604)과 같은 계층 특성들은, 계보 객체가 표현하는 데이터 모델의 계층을 표시하는 식별자(예를 들어, ID, 참조 번호, 포인터, 레이블, 태그들, 또는 이와 유사한 것)를 포함할 수도 있다. 이 예에서, 특성(604)은, 그것이 데이터 모델의 테이블 계층과 연관될 수도 있음을 표시하는 "테이블들"의 값을 갖는다. 마찬가지로, 예를 들어, 특성(604)이 "데이터 소스"의 값을 갖는 경우, 그것은 계보 객체가 데이터 모델의 "데이터 소스" 계층과 연관될 수도 있음을 표시할 수도 있다. 대안적으로, 일부 실시예들에서, 데이터 객체 클래스 특성(도시되지 않음)이 계층 특성(604)보다는 오히려 또는 그에 부가적으로 포함될 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 객체들은 카운트들, 평균들, 합계들, 또는 이와 유사한 것과 같은 집계된 정보 값들에 대한 하나 이상의 특성들을 갖도록 배열될 수도 있다. 이 예에서, 특성(606)은, 이 계보 객체와 연관될 수도 있는 데이터 객체들의 수를 표현하는 값을 저장할 수도 있다. 유사하게, 이 예에서, 특성(608)은, 특성(606)에서의 객체 카운트에서 배제된 "테이블" 계층에서의 데이터 객체들의 수를 표현하는 값을 저장할 수도 있다. 일부 실시예들에서, 데이터 관리자에게 은닉되거나 또는 그렇지 않으면 액세스블가능할 수도 있는 데이터 객체들; 필터 또는 다른 구성에 기초하여 배제될 수도 있는 데이터 객체들; 또는 이와 유사한 것을 포함하는 하나 이상의 데이터 객체들이 다양한 이유들로 배제될 수도 있다. 그리고, 이 예에서, 특성(610)은, 계보 엔진이 적용할 수도 있는 필터 정보 또는 필터 정보에 대한 레퍼런스들을 저장할 수도 있다.
도 7은 다양한 실시예들 중 하나 이상에 따른, 데이터 모델의 종속성들을 나타내는 시스템(700)의 일 부분의 논리적 개략도를 예시한다. 이 예에서, 시스템(700)은 데이터 객체(702), 데이터 객체(704), 데이터 객체(706), 데이터 객체(708), 또는 이와 유사한 것을 포함한다. 또한, 이 예에서, 시스템(700)은, 계보 객체(710), 계보 객체(712), 계보 객체(714), 계보 객체(716), 또는 이와 유사한 것을 포함하는 계보 모델의 일 부분을 포함한다.
상술된 바와 같이, 다양한 실시예들 중 하나 이상에서, 데이터 모델에서의 데이터 객체들은 동일한 데이터 모델에서의 다른 데이터 객체들에 종속될 수도 있다. 이 예에서, 데이터 객체(704), 데이터 객체(706), 및 데이터 객체(708)는 데이터 객체(702)에 종속된다. 이에 따라, 이 예에서, 데이터 객체(708)는 데이터 객체(706) 등에 종속된다. 이 예에서의 모든 데이터 객체들은, 데이터 객체(702)를 루트로서 갖는 동일한 종속성 트리의 일부이지만, 상이한 또는 별개의 종속성 그래프들을 갖는 다른 데이터 객체들이 동일한 데이터 모델에 있을 수도 있다는 것에 주목한다.
다양한 실시예들 중 하나 이상에서, 데이터 모델에서의 데이터 객체들은 다른 데이터 객체에 종속될 수도 있는데, 이는 이들이 다른 데이터 객체들의 하나 이상의 속성들에 종속되기 때문이다. 도 7에서, 데이터 객체들에서의 컬럼들을 데이터 객체들에서의 다른 컬럼들에 연결하는 라인들이 속성 레벨에서 데이터 객체들 사이의 종속성들을 표현한다. 이에 따라, 이 예에서, 데이터 객체(702)는, 5개의 속성들로 간주될 수도 있는 5개의 컬럼들을 갖는다. 이 예에서, 데이터 객체(702)를 데이터 객체(704)에 연결하는 라인들은, 데이터 객체(704)가 데이터 객체(702)의 4개의 속성들에 종속된다는 것을 표현한다. 유사하게, 이 예에서, 데이터 객체(706)는 데이터 객체(704)의 3개의 속성들에 직접적으로 종속되고 데이터 객체(702)의 3개의 속성들에 간접적으로 종속된다. 또한, 유사하게, 이 예에서, 데이터 객체(708)는 데이터 객체(706)로부터의 하나의 속성에 직접적으로 종속되고, 데이터 객체(706), 데이터 객체(704), 및 데이터 객체(702)의 하나의 속성에 간접적으로 종속된다. 따라서, 이 예에서, 모든 데이터 객체들은 이들의 부모들 중 하나 이상에 종속되지만, 데이터 객체들 사이의 종속성들은 속성들 모두보다는 더 적은 속성에 기초할 수도 있다. 예를 들어, 라인(718)은, 데이터 객체(708)가 데이터 객체(706)의 하나의 필드 또는 속성들에 종속된다는 것을 표현한다.
일부 실시예들에서, 데이터 객체 또는 속성들 사이의 종속성들은 일반적으로, 속성 값들이 자손 데이터 객체(descendant data object)들로 아래로 전달됨에 따라 그 속성 값들에 적용될 수도 있는 하나 이상의 함수들, 필터들, 변환들, 또는 이와 유사한 것에 좌우될 수도 있다. 예를 들어, 테이블 데이터 객체는, 유닉스 에포크(Unix epoch) 타임스탬프로서 저장되는 타임스탬프 속성을 포함할 수도 있다. 그러나, 이 예에서, 종속 데이터 소스는, 유닉스 에포크 타임스탬프보다는 오히려 종래의 날짜 표현을 기대하는 Date라고 레이블링된 속성을 가질 수도 있다. 이에 따라, 이 예에서, 종속 데이터 소스의 Date 속성은, 부모 테이블에 의해 제공되는 유닉스 에포크 타임스탬프 값을, 데이터 소스의 요건들을 충족시키는 종래의 날짜 값으로 컨버팅하는 변환 액션과 연관될 수도 있다.
또한, 이 예에서: 계보 모델(710)은, 데이터 객체(702)를 포함하는 데이터 모델 계층 "테이블들"(도시되지 않음)과 대응하는 것으로 간주될 수도 있고; 계보 모델(712)은, 데이터 객체(704)를 포함하는 데이터 모델 계층 "데이터 소스"(도시되지 않음)와 대응하는 것으로 간주될 수도 있고; 계보 모델(714)은, 데이터 객체(706)를 포함하는 데이터 모델 계층 "워크북들"(도시되지 않음)과 대응하는 것으로 간주될 수도 있으며; 계보 모델(716)은, 데이터 객체(708)를 포함하는 데이터 모델 계층 "시트들"(도시되지 않음)과 대응하는 것으로 간주될 수도 있다.
도 8a는 다양한 실시예들 중 하나 이상에 따른, 데이터 모델의 종속성들을 나타내는 시스템(800)의 일 부분의 논리적 개략도를 예시한다. 이 예에서, 시스템(800)은, 상술된 시스템(700)과 유사한 것으로 간주될 수도 있다. 이 예에서, 일부 실시예들에 대해, 시스템(800)은 데이터 객체(802), 데이터 객체(804), 데이터 객체(806), 및 데이터 객체(808)를 포함한다.
다양한 실시예들 중 하나 이상에서, 계보 모델에서의 계보 객체는 앵커 데이터 객체와 연관될 수도 있다. 이에 따라, 일부 실시예들에서, 계보 엔진들은 데이터 모델의 탐색에 기초하여 종속성 정보를 결정하도록 배열될 수도 있다. 이 예에서, 데이터 객체(808)가 앵커 데이터 객체인 경우, 계보 객체(810)가 활성화될 수도 있다. 또한, 이 예에서, 일부 실시예들에 대해, 계보 엔진은 데이터 객체(808)가 데이터 객체(806), 데이터 객체(804), 및 데이터 객체(802)에 종속된다는 것을 결정하기 위해 데이터 모델의 탐색을 실행하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 엔진은, 속성들 또는 다른 데이터 객체들에 종속될 수도 있는 데이터 객체에서의 속성들을 결정하기 위해 데이터 모델을 탐색함으로써 종속성들을 결정하도록 배열될 수도 있다. 이 예에서, 계보 엔진은 데이터 객체(808)의 속성(812)이 데이터 객체(802)의 속성(814)에 종속된다는 것을 결정할 수도 있다.
이에 따라, 다양한 실시예들 중 하나 이상에서, 속성 레벨 종속성 분석은, 계보 엔진이, 개별 속성들에 대한 수정에 의해 영향받을 수도 있는 데이터 객체들을 결정하는 것을 가능하게 한다. 이 예에서, 일부 실시예들에 대해, 계보 분석은, 데이터 객체(808)에 영향을 미치는 일 없이 데이터 객체(802)의 속성(816)이 수정될 수도 있다는 것을 식별할 수도 있다.
도 8b는 다양한 실시예들 중 하나 이상에 따른, 데이터 모델의 종속성들을 나타내는 시스템(800)의 일 부분의 논리적 개략도를 예시한다. 이 예에서, 시스템(800)은, 상술된 시스템(700)과 유사한 것으로 간주될 수도 있다. 이 예에서, 일부 실시예들에 대해, 시스템(800)은 데이터 객체(802), 데이터 객체(804), 데이터 객체(806), 및 데이터 객체(808)를 포함한다.
이 예에서, 계보 객체(818)는 활성화된 계보 객체(볼드 라인 굵기로 표시됨)로 간주될 수도 있고 데이터 객체(802)는 앵커 데이터 객체로 간주될 수도 있다. 이에 따라, 이 예에서, 계보 엔진에 의해 수행된 계보 분석은, 데이터 객체(806) 및 데이터 객체(804)가 데이터 객체(802)의 속성(816)에 종속된다는 것을 식별할 수도 있다. 이에 따라, 이 예에서, 속성(816)이 수정되는 경우, 데이터 객체(804) 및 데이터 객체(806)가 영향받을 수도 있는 한편, 데이터 객체(808)는 속성(816)에 대한 수정에 의해 영향받지 않을 것인데, 이는 데이터 객체(808)의 속성들 중 어느 것도 속성(816)에 직접적으로 또는 간접적으로 종속되지 않기 때문이다.
마찬가지로, 이 예에서, 계보 객체(818)가 활성화된 계보 객체이기 때문에, 계보 객체(810)가 비활성화될 수도 있다(정상 라인 굵기로 표시됨).
도 9는 다양한 실시예들 중 하나 이상에 따른, 데이터 자산들에 대한 대화형 계보 분석기를 위한 사용자 인터페이스(900)의 일 부분의 논리적 개략도를 예시한다. 일부 실시예들에서, 계보 객체가 활성화될 수도 있는 경우, 계보 엔진은, 활성화된 계보 객체에 대응할 수도 있는 데이터 모델 계층과 연관될 수도 있는 데이터 객체들의 일부 또는 전부를 결정하도록 배열될 수도 있다. 이에 따라, 일부 실시예들에서, 앵커 데이터 객체가 이들 데이터 객체들로부터 선택되거나 또는 그렇지 않으면 결정될 수도 있다. 따라서, 일부 실시예들에서, 앵커 데이터 객체가 결정되는 경우, 계보 엔진은 앵커 데이터 객체에 기초하여 계보 분석을 실행할 수도 있다.
이 예에서, 사용자 인터페이스(900)는 계보 패널(902)에서 계보 모델을 디스플레이하도록 배열될 수도 있다. 이에 따라, 일부 실시예들에서, 계보 패널(902)은 계보 객체(904)와 같은 하나 이상의 계보 객체들을 디스플레이하도록 배열될 수도 있다. 또한, 일부 실시예들에서, 계보 패널(902)과 연관된 계보 객체들은, 주어진 계보 객체에 대응하는 데이터 모델 계층과 연관된 데이터 객체들과 연관될 수도 있는 계보 정보의 일부 또는 전부와 함께 디스플레이될 수도 있다. 이 예에서, 계보 객체(904)는 그것이 활성화됨을 표시하기 위해 볼드 굵기 라인들을 사용하여 예시된다.
추가로, 다양한 실시예들 중 하나 이상에서, 계보 정보(906)와 같은, 계보 객체들에 관한 계보 정보가 계보 모델과 함께 디스플레이될 수도 있다. 이 예에서, 계보 정보(906)는 대응하는 계보 객체에 인접하여 또는 그렇지 않으면 그에 가깝게 디스플레이된다. 상술된 바와 같이, 계보 정보는, 계보 객체와 연관될 수도 있는 데이터 모델 계층 또는 데이터 객체들과 연관된 정보를 포함할 수도 있다. 이 예에서, 계보 정보는 명칭들, 레이블들, 데이터 객체 카운트들, 또는 이와 유사한 것과 같은 기본 정보를 포함한다. 다양한 실시예들 중 하나 이상에서, 계보 엔진들은 구성 정보로부터 획득된 디폴트들 또는 사용자 선호도들에 기초하여 디스플레이할 계보 정보를 결정하도록 배열될 수도 있다.
일부 실시예들에서, 사용자 인터페이스(900)와 같은 계보 분석 사용자 인터페이스들은 객체 패널(908)과 같은 객체 패널을 포함하도록 배열될 수도 있다. 일부 실시예들에서, 객체 패널들은, 하나 이상의 데이터 모델 계층들과 연관될 수도 있는 데이터 객체들을 디스플레이하도록 배열될 수도 있다. 이에 따라, 일부 실시예들에서, 계보 객체가 활성화될 수도 있는 경우, 계보 엔진들은 활성화된 계보 객체와 연관된 데이터 모델 계층과 연관될 수도 있는 하나 이상의 데이터 객체들을 결정하여 이들이 객체 패널(908)과 같은 객체 패널에 디스플레이될 수도 있도록 배열될 수도 있다.
이 예에서, 객체들(910)은, 계보 객체(904)와 같은 활성화된 계보 객체와 연관될 수도 있는 데이터 객체들의 일부 또는 전부를 표현한다. 일부 실시예들에서, 계보 객체 또는 데이터 모델 계층과 연관된 많은 데이터 객체들이 있을 수도 있다. 그래서, 일부 실시예들에서, 패널(908)은 데이터 객체들의 디스플레이를 관리하기 위해 스크롤링, 페이징, 또는 이와 유사한 것을 위한 사용자 인터페이스 컨트롤들을 포함하도록 배열될 수도 있다. 추가로, 일부 실시예들에서, 디스플레이되는 데이터 객체들의 세트는, 구성 정보로부터 획득될 수도 있는 사용자 선호도들, 시스템 전반의 구성(system-wide configuration)들, 또는 이와 유사한 것을 반영할 수도 있는 하나 이상의 필터들, 제약들, 또는 이와 유사한 것에 의해 영향받을 수도 있다.
다양한 실시예들 중 하나 이상에서, 상술된 바와 같이, 활성화된 계보 객체들은, 데이터 객체 클래스에 대응하는 데이터 모델 계층에 대응할 수도 있다. 그러나, 일부 실시예들에서, 하나 이상의 데이터 모델 계층들이 많은 데이터 객체들과 연관될 수도 있다. 이에 따라, 일부 실시예들에서, 데이터 객체들 중 하나 이상이 앵커 데이터 객체들로서 지정될 수도 있다. 예를 들어, 객체들(906)이 데이터 모델에서의 데이터 소스들의 일부 또는 전부를 표현하는 경우, 데이터 객체(912)는 지정된 앵커 데이터 객체를 표현할 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 엔진들은 데이터 모델에서 데이터 객체들 사이의 또는 데이터 객체들 간의 하나 이상의 종속성들을 결정하기 위해 데이터 모델의 탐색을 포함할 수도 있는 계보 분석을 수행하기 위해 활성화된 계보 객체 및 지정된 앵커 데이터 객체를 채용하도록 배열될 수도 있다.
일반화된 동작들
도 10 내지 도 12는 다양한 실시예들 중 하나 이상에 따른, 데이터 자산들의 대화형 계보 분석을 위한 일반화된 동작들을 표현한다. 다양한 실시예들 중 하나 이상에서, 도 10 내지 도 12와 관련하여 설명된 프로세스들(1000, 1100, 및 1200)은 도 3의 네트워크 컴퓨터(300)와 같은 단일 네트워크 컴퓨터 상의 하나 이상의 프로세서들에 의해 구현되거나 또는 이들에 의해 실행될 수도 있다. 다른 실시예들에서, 이들 프로세스들, 또는 이들의 부분들은 도 3의 네트워크 컴퓨터(300)와 같은 복수의 네트워크 컴퓨터들에 의해 구현되거나 또는 이들 상에서 실행될 수도 있다. 또 다른 실시예들에서, 이들 프로세스들, 또는 이들의 부분들은 클라우드 기반 환경에서의 것들과 같은 하나 이상의 가상화된 컴퓨터들에 의해 구현되거나 또는 이들 상에서 실행될 수도 있다. 그러나, 실시예들은 이와 같이 제한되지 않으며 네트워크 컴퓨터들, 클라이언트 컴퓨터들, 또는 이와 유사한 것의 다양한 조합들이 활용될 수도 있다. 추가로, 다양한 실시예들 중 하나 이상에서, 도 10 내지 도 12와 관련하여 설명된 프로세스들은, 도 4 내지 도 9와 관련하여 설명된 것들과 같은 다양한 실시예들 또는 아키텍처들 중 적어도 하나에 따라 데이터 자산들의 대화형 계보 분석을 위해 사용될 수도 있다. 추가로, 다양한 실시예들 중 하나 이상에서, 프로세스들(800, 900, 및 1000)에 의해 수행되는 액션들의 일부 또는 전부는, 하나 이상의 네트워크 컴퓨터들의 하나 이상의 프로세서들 상에서 실행되는 데이터 관리 엔진(322), 디스플레이 엔진(324), 또는 계보 엔진(326)에 의해 부분적으로 실행될 수도 있다.
도 10은 다양한 실시예들 중 하나 이상에 따른, 데이터 자산들의 대화형 계보 분석을 위한 프로세스(1000)의 개요 흐름도를 예시한다. 시작 블록 이후에, 시작 블록 1002에서, 다양한 실시예들 중 하나 이상에서, 데이터 모델이 계보 엔진에 제공될 수도 있다. 상술된 바와 같이, 데이터 관리 엔진, 디스플레이 엔진, 또는 이와 유사한 것은 데이터 모델에서 다양한 데이터 모델 계층들 또는 데이터 객체 클래스와 연관될 수도 있는 데이터 객체들을 생성하기 위해 시각화 저작자들 또는 데이터 관리자들에 의해 사용될 수도 있는 데이터 모델들을 생성하도록 배열될 수도 있다.
블록 1004에서, 다양한 실시예들 중 하나 이상에서, 계보 엔진은 데이터 모델에 기초하여 계보 모델을 결정하도록 배열될 수도 있다. 다양한 실시예들 중 하나 이상에서, 계보 엔진들은 데이터 모델의 스캐닝, 스키마 정보의 검사, 하나 이상의 쿼리들 또는 탐색들의 실행, 또는 이와 유사한 것과 같은 다양한 액션들을 수행함으로써 데이터 모델의 특성들을 조사하도록 배열될 수도 있다. 일부 실시예들에서, 계보 엔진들은 구성 정보, 또는 이와 유사한 것으로부터 계보 모델을 생성하기 위한 정보를 결정하도록 배열될 수도 있다.
블록 1006에서, 다양한 실시예들 중 하나 이상에서, 계보 엔진은 대화형 계보 패널에 계보 모델을 디스플레이하도록 배열될 수도 있다. 상술된 바와 같이, 디스플레이 엔진은, 대화형 계보 패널을 포함하는 사용자 인터페이스를 생성할 수도 있다.
블록 1008에서, 다양한 실시예들 중 하나 이상에서, 계보 엔진은, 활성화된 계보 객체와 연관될 수도 있는 하나 이상의 데이터 객체들을 결정하도록 배열될 수도 있다. 다양한 실시예들 중 하나 이상에서, 계보 엔진들은 활성화된 계보 객체와 연관된 하나 이상의 데이터 객체들을 결정하기 위해 데이터 모델의 탐색을 수행하도록 배열될 수도 있다. 일부 실시예들에서, 탐색은 데이터 모델의 직접 순회(direct traversal)를 포함할 수도 있다. 다른 실시예들에서, 계보 엔진들은 데이터 모델을 저장하고 있을 수도 있는 데이터베이스들 상에서 쿼리를 실행하도록 배열될 수도 있다. 예를 들어, 일부 실시예들에서, 데이터 모델이 그래프 기반 데이터베이스에 저장되는 경우, 활성화된 계보 객체와 연관된 하나 이상의 데이터 객체들을 결정하기 위해 graphQL 또는 graphQL 유사 쿼리를 실행함으로써 탐색들이 수행될 수도 있다.
블록 1010에서, 다양한 실시예들 중 하나 이상에서, 디스플레이 엔진은 객체 패널에 하나 이상의 데이터 객체들을 디스플레이하도록 배열될 수도 있다.
블록 1012에서, 다양한 실시예들 중 하나 이상에서, 계보 엔진은, 하나 이상의 지정된 앵커 데이터 객체들과 연관될 수도 있는 종속성들을 결정 또는 추적하기 위해 데이터 모델을 탐색하도록 배열될 수도 있다.
블록 1014에서, 다양한 실시예들 중 하나 이상에서, 계보 엔진은, 결정된 종속성들과 연관된 정보를 포함하는 하나 이상의 영향 리포트들을 생성하도록 배열될 수도 있다. 예를 들어, 데이터 관리자가 데이터 모델에서의 데이터 객체에 대한 특정 수정과 연관된 영향을 평가하고 있는 경우, 영향 리포트는, 임박한 수정들에 의해 영향받을 수도 있는 데이터 객체들의 리스트를 포함할 수도 있다.
또한, 일부 실시예들에서, 영향 리포트는, 수정에 의해 영향받을 수도 있는 하나 이상의 사용자들에 대한 연락처 정보를 포함하도록 배열될 수도 있다. 예를 들어, 시각화 서버 컴퓨터는, 어떤 사용자들이 데이터 모델에서의 하나 이상의 시트들 또는 워크북들에 책임이 있거나 또는 그렇지 않으면 이들에 종속될 수도 있는지의 연관을 유지하도록 배열될 수도 있다. 일부 실시예들에서, 데이터 객체들에 대한 사용자 관계들이 데이터 모델에 포함될 수도 있다.
다양한 실시예들 중 하나 이상에서, 영향 리포트는, 데이터 모델에 대한 수정의 영향에 관한 통지들을 사용자들에게 자동으로 제공하는 것을 포함할 수도 있다.
다음으로, 다양한 실시예들 중 하나 이상에서, 제어가 호출 프로세스로 리턴될 수도 있다.
도 11은 다양한 실시예들 중 하나 이상에 따른, 데이터 자산들의 대화형 계보 분석을 위한 프로세스(1100)의 흐름도를 예시한다. 시작 블록 이후에, 시작 블록 1102에서, 다양한 실시예들 중 하나 이상에서, 디스플레이 엔진은 사용자 인터페이스 상의 계보 패널에 계보 모델을 디스플레이하도록 배열될 수도 있다. 상술된 바와 같이, 데이터 모델에 대한 계보 모델은, 데이터 모델에서의 데이터 모델 계층들 또는 데이터 객체 클래스들의 일부 또는 전부에 대응하는 하나 이상의 계보 객체들을 포함할 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 객체들의 일부 또는 전부는 대화형 계보 패널에 디스플레이될 수도 있다. 이에 따라, 일부 실시예들에서, 사용자는 어떤 계보 객체들이 어떤 데이터 모델 계층에 대응하는지를 쉽게 알 수도 있다. 추가로, 다양한 실시예들 중 하나 이상에서, 계보 패널들은, 계보 객체와 연관될 수도 있는 계층 정보의 일부 또는 전부, 예컨대, 계층 명칭들/레이블들, 데이터 객체 카운트들, 또는 이와 유사한 것을 디스플레이하도록 배열될 수도 있다.
판정 블록 1104에서, 다양한 실시예들 중 하나 이상에서, 계보 객체가 활성화될 수도 있는 경우, 제어가 블록 1106으로 흐를 수도 있고; 그렇지 않으면, 제어는 블록 1102로 루프백할 수도 있다. 일부 실시예들에서, 계보 패널은 사용자가 터치 인터페이스, 포인팅 디바이스, 핫-키(hot-key)들, 또는 이와 유사한 것을 사용하여 계보 객체를 선택함으로써 그 계보 객체를 활성화시키는 것을 가능하게 하도록 배열될 수도 있다.
일부 실시예들에서, 계보 엔진들은 하나 이상의 계보 객체들의 활성화를 인가된 사용자들로 제약하도록 배열될 수도 있다. 이에 따라, 일부 실시예들에서, 일부 사용자들은 계보 모델에서 일부 계보 객체들을 활성화시키는 것이 불가능할 수도 있다. 일부 실시예들에서, 계보 엔진들은 구성 정보에 기초하여 주어진 계보 객체를 활성화시키도록 사용자가 인가되는지를 결정하도록 배열될 수도 있다.
또한, 일부 실시예들에서, 계보 패널은 현재 사용자의 역할들 또는 권리들에 기초하여 자동으로 하나 이상의 계보 객체들의 외관을 스타일링하거나 또는 이들의 상호작용성을 제한하도록 배열될 수도 있다. 예를 들어, 사용자가 데이터 모델의 데이터베이스 계층에 액세스하기 위한 인가를 갖고 있지 않은 경우, 데이터 모델의 데이터베이스 계층에 대응하는 계보 객체들은 클릭들, 터치들, 호버링(hovering), 또는 이와 유사한 것과 같은 사용자 입력들에 응답하지 않도록 스타일링될 수도 있다.
블록 1106에서, 다양한 실시예들 중 하나 이상에서, 계보 엔진은 활성화된 계보 객체에 기초하여 데이터 모델 계층을 결정하도록 배열될 수도 있다. 상술된 바와 같이, 계보 모델에서의 계보 객체들은 데이터 모델 계층과 연관될 수도 있다. 이에 따라, 일부 실시예들에서, 계보 객체가 활성화되는 경우, 계보 엔진은 활성화된 계보 객체에 기초하여 대응하는 데이터 모델 계층을 결정하도록 배열될 수도 있다. 예를 들어, 일부 실시예들에서, 계보 객체들을 표현하는 데 사용되는 데이터 구조체들은, 그의 대응하는 데이터 모델 계층에 대한 식별자 또는 레퍼런스를 저장하는 특성을 포함할 수도 있다.
블록 1108에서, 다양한 실시예들 중 하나 이상에서, 계보 엔진은 데이터 모델 계층에 기초하여 하나 이상의 데이터 객체들을 결정하도록 배열될 수도 있다. 일부 실시예들에서, 계보 엔진들은 특정 데이터 모델 계층에 대한 데이터 객체들을 발견하기 위해 데이터 모델을 탐색하도록 배열될 수도 있다. 일부 실시예들에서, 계보 엔진들은 실시간으로 데이터 모델을 탐색해야 하는 것보다는 오히려 직접적으로 데이터 모델 계층에 대한 데이터 객체들을 결정하기 위해 채용될 수도 있는 하나 이상의 인덱스들 또는 캐시들을 유지하도록 배열될 수도 있다.
또한, 다양한 실시예들 중 하나 이상에서, 데이터 모델들은 그래프 기반 데이터베이스에 표현 또는 저장될 수도 있다. 이에 따라, 다양한 실시예들 중 하나 이상에서, 계보 엔진들은, 활성화된 계보 객체에 대응하는 데이터 모델 계층과의 연관 또는 데이터 객체 클래스에서의 멤버십에 기초하여 데이터 객체들을 탐색하도록 배열될 수도 있는 graphQL 또는 graphQL 유사 명령어들을 사용하여 하나 이상의 쿼리들을 생성하도록 배열될 수도 있다.
추가로, 일부 실시예들에서, 데이터 모델이 그래프 모델인 경우, 계보 엔진들은 직접적으로 데이터 모델을 순회함으로써 탐색을 수행하도록 배열될 수도 있다.
블록 1110에서, 다양한 실시예들 중 하나 이상에서, 디스플레이 엔진은 객체 패널에 하나 이상의 데이터 객체들을 디스플레이하도록 배열될 수도 있다. 상술된 바와 같이, 디스플레이 엔진은, 활성화된 계보 객체에 대응하는 데이터 모델 계층과 연관된 데이터 객체들의 표현들을 디스플레이하도록 배열될 수도 있다. 일부 실시예들에서, 한 번에 디스플레이될 수도 있는 것보다 디스플레이할 데이터 객체들이 더 많을 수도 있다. 이에 따라, 일부 실시예들에서, 디스플레이 엔진은 사용자가 데이터 객체들을 통해 브라우징하는 것을 가능하게 하도록 스크롤링 또는 페이징 사용자 인터페이스 컨트롤들을 제공하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 디스플레이 엔진들은, 객체 패널에 디스플레이될 수도 있는 데이터 객체들을 필터링하는 데 사용될 수도 있는 탐색 컨트롤을 포함하는 객체 패널들을 생성하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 엔진들 또는 디스플레이 엔진들은, 구성 정보에 기초하여 정의될 수도 있는 정렬 순서에 기초하여 객체 패널에서의 데이터 객체들의 디스플레이 순서를 정렬하도록 배열될 수도 있다.
판정 블록 1112에서, 대화형 세션이 종료될 수도 있는 경우, 제어가 호출 프로세스로 리턴될 수도 있고; 그렇지 않으면, 제어는 블록 1102로 루프백할 수도 있다.
다양한 실시예들 중 하나 이상에서, 디스플레이 엔진 및 계보 엔진은 사용자가 상이한 계보 객체들을 활성화시킴에 따라 계보 패널 및 객체 패널의 외관을 동적으로 또는 자동으로 업데이트하기 위해 협력하여 작동하도록 배열될 수도 있다. 이에 따라, 일부 실시예들에서, 계보 객체의 초기 활성화 후에 일부 데이터 객체들이 디스플레이되는 경우, 디스플레이 엔진 또는 계보 엔진은 활성화될 다른 계보 객체를 즉시 준비할 수도 있다. 그리고, 일부 실시예들에서, 디스플레이 엔진 또는 계보 엔진은 하나 이상의 후속적으로 활성화된 계보 객체들에 응답하여 객체 패널에서의 하나 이상의 데이터 객체들을 결정 및 디스플레이하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 프로세스(1100)는 커맨드에 따라 종료되어, 제어를 호출 프로세스로 리턴할 수도 있다.
도 12는 다양한 실시예들 중 하나 이상에 따른, 데이터 자산들의 대화형 계보 분석을 위한 종속성들을 결정하기 위한 프로세스(1200)의 흐름도를 예시한다. 시작 블록 이후에, 시작 블록 1202에서, 다양한 실시예들 중 하나 이상에서, 계보 엔진은 하나 이상의 앵커 데이터 객체들을 결정하도록 배열될 수도 있다. 상술된 바와 같이, 일부 실시예들에서, 계보 엔진들은, 활성화된 계보 객체와 연관될 수도 있는 하나 이상의 데이터 객체들을 결정하기 위해 데이터 모델의 탐색을 수행하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 활성화된 계보 객체와 연관된 데이터 객체들 중 하나 이상이 앵커 데이터 객체로서 지정될 수도 있다. 일부 실시예들에서, 계보 엔진들은 구성 정보에 기초하여 결정된 규칙들 또는 다른 기준들에 기초하여 앵커 데이터 객체들을 자동으로 지정하도록 배열될 수도 있다. 일부 실시예들에서, 하나 이상의 데이터 모델 계층들은 디폴트 앵커 데이터 객체들과 연관될 수도 있다. 예를 들어, 일부 실시예들에 대해, 계보 엔진들은, 연령, 액세스 최근성(예를 들어, 디폴트는, 앵커 객체로서 가장 최근에 지정된 객체일 수도 있다), 액세스 빈도, 사용자 선호도들, 또는 이와 유사한 것과 같은, 데이터 객체들의 하나 이상의 특성들에 기초하여 앵커 데이터 객체를 자동으로 지정하도록 구성될 수도 있다. 일부 실시예들에서, 계보 엔진들은 구성 정보로부터 앵커 데이터 객체들을 지정하기 위한 디폴트 규칙들을 획득하도록 배열될 수도 있다.
일부 실시예들에서, 앵커 데이터 객체들은 다른 프로세스 또는 서비스에 의해 지정될 수도 있다. 예를 들어, 데이터 관리 엔진 또는 디스플레이 엔진은, 사용자 상호작용들을 포함하는 다양한 조건들에 기초하여 앵커 데이터 객체로서 지정될 수도 있는 데이터 객체의 레퍼런스 또는 식별자를 제공하도록 배열될 수도 있다.
또한, 다양한 실시예들 중 하나 이상에서, 계보 엔진들은 데이터 관리자, 또는 이와 유사한 것에 의해 제공되는 입력에 기초하여 앵커 데이터 객체를 지정하도록 배열될 수도 있다.
블록 1204에서, 다양한 실시예들 중 하나 이상에서, 계보 엔진은, 앵커 데이터 객체에 포함되는 하나 이상의 앵커 속성들을 결정하도록 배열될 수도 있다. 상술된 바와 같이, 데이터 객체들은, 다른 데이터 객체의 하나 이상의 속성들에 종속될 수도 있는 하나 이상의 속성들을 포함하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 엔진들은 앵커 속성들을 결정하기 위해 다양한 액션들을 수행하도록 배열될 수도 있다. 일부 실시예들에서, 하나 이상의 데이터 객체들은, 데이터 객체가 앵커 데이터 객체로서 지정될 수도 있는 경우 자동으로 결정될 수도 있는 미리 할당된 앵커 속성들을 가질 수도 있다. 일부 실시예들에서, 앵커 데이터 객체는, 계보 엔진에 의해 자동으로 지정될 수도 있는 단지 하나의 속성을 포함할 수도 있다. 일부 실시예들에서, 사용자는 앵커 데이터 객체의 일부 또는 모든 속성들 간에서 앵커 속성을 직접적으로 선택하는 것이 가능할 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 엔진들은 데이터 모델 내에서 가장 긴 종속성 체인 또는 경로와 연관될 수도 있는 데이터 객체의 속성에 기초하여 앵커 속성을 자동으로 결정하도록 배열될 수도 있다. 추가로, 일부 실시예들에서, 계보 엔진들은 앵커 속성이 얼마나 자주 앵커 속성으로서 이전에 지정되었을 수도 있는지에 기초하여 앵커 속성을 선택하도록 배열될 수도 있다.
블록 1206에서, 다양한 실시예들 중 하나 이상에서, 계보 엔진은 앵커 속성들에 기초하여 종속성 정보를 결정하기 위해 데이터 모델을 탐색하도록 배열될 수도 있다. 이에 따라, 다양한 실시예들 중 하나 이상에서, 계보 엔진들은 데이터 모델에서의 다른 데이터 객체들에 종속될 수도 있는 속성들을 결정하기 위해 앵커 속성으로부터 데이터 모델을 탐색하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 데이터 모델들은, 노드들 사이의 에지들에 의해 표현되는 관계 정보가, 데이터 객체들 사이의 관계를 포함하는 하나 이상의 속성들을 식별할 수도 있는 세부 정보를 포함할 수도 있도록 배열되는 그래프 모델들일 수도 있다. 이에 따라, 일부 실시예들에서, 데이터 객체는, 다른 데이터 객체의 하나 이상의 속성들에 종속되는 데이터 객체의 적어도 하나의 속성에 기초하여 다른 데이터 객체에 종속될 수도 있다.
다양한 실시예들 중 하나 이상에서, 계보 엔진들은 깊이 우선 탐색, 너비 우선 탐색, 또는 이와 유사한 것과 같은 종래의 그래프 순회 방법들을 사용하여 하나 이상의 그래프 순회들을 수행하도록 배열될 수도 있다.
다양한 실시예들 중 하나 이상에서, 데이터 모델들은 그래프 기반 데이터베이스 시스템들을 사용하여 표현될 수도 있다. 이에 따라, 다양한 실시예들 중 하나 이상에서, 계보 엔진들은, 데이터 모델에서의 데이터 객체들의 속성 관계들에 기초하여 종속 데이터 객체들을 탐색하도록 배열될 수도 있는 graphQL 또는 graphQL 유사 명령어들을 사용하여 하나 이상의 쿼리들을 생성하도록 배열될 수도 있다.
블록 1208에서, 다양한 실시예들 중 하나 이상에서, 계보 엔진은 탐색에 의해 결정된 종속성 정보를 적어도 포함하는 계보 정보를 결정하도록 배열될 수도 있다. 다양한 실시예들 중 하나 이상에서, 종속성들의 속성들에 기초하는 계보 정보는 데이터 모델에 대한 변경의 잠재적인 영향들의 정밀화된 뷰를 제공할 수도 있다.
일부 실시예들에서, 제안된 변경이 거의 사용되지 않는 속성에 대한 것인 경우, 변경의 영향은, 계보 분석이 객체 레벨 종속성들로 제한된 경우에 나타나는 것보다 더 적을 수도 있다. 예를 들어, 일부 실시예들에서, 테이블 데이터 객체가 많은 자손 데이터 객체들과의 관계들을 갖더라도, 자손 데이터 객체들 중 단지 소수만이, 수정을 위해 고려되는 속성들 중 하나 이상에 실제로 종속된다는 것일 수도 있다. 따라서, 일부 실시예들에서, 속성 종속성 정보는, 고려 하에 있는 수정과 연관된 영향들의 더 정확한 뷰를 제공할 수도 있다.
다음으로, 다양한 실시예들 중 하나 이상에서, 제어가 호출 프로세스로 리턴될 수도 있다.
각각의 흐름도 예시에서의 각각의 블록, 및 각각의 흐름도 예시에서의 블록들의 조합들은 컴퓨터 프로그램 명령어들에 의해 구현될 수 있다는 것이 이해될 것이다. 이들 프로그램 명령어들은, 프로세서 상에서 실행되는 명령어들이 각각의 흐름도 블록 또는 블록들에서 특정된 액션들을 구현하기 위한 수단을 생성하도록 하는 머신을 생성하기 위해 프로세서에 제공될 수도 있다. 컴퓨터 프로그램 명령어들은, 프로세서 상에서 실행되는 명령어들이 각각의 흐름도 블록 또는 블록들에서 특정된 액션들을 구현하기 위한 단계들을 제공하도록 하는 컴퓨터 구현 프로세스를 생성하기 위해 일련의 동작 단계들이 프로세서에 의해 수행되게 하도록 프로세서에 의해 실행될 수도 있다. 컴퓨터 프로그램 명령어들은 또한, 각각의 흐름도의 블록들에 도시된 동작 단계들 중 적어도 일부가 병렬로 수행되게 할 수도 있다. 더욱이, 단계들 중 일부는 멀티-프로세서 컴퓨터 시스템에서 발생할 수도 있는 것과 같이 하나 초과의 프로세서에 걸쳐 또한 수행될 수도 있다. 부가적으로, 각각의 흐름도 예시에서의 하나 이상의 블록들 또는 블록들의 조합들은 다른 블록들 또는 블록들의 조합들과 동시에, 또는 심지어 본 발명의 범주 또는 사상으로부터 벗어남이 없이 예시된 것과는 상이한 시퀀스로 또한 수행될 수도 있다.
이에 따라, 각각의 흐름도 예시에서의 각각의 블록은 특정된 액션들을 수행하기 위한 수단들의 조합들, 특정된 액션들을 수행하기 위한 단계들의 조합들 및 특정된 액션들을 수행하기 위한 프로그램 명령어 수단들을 지원한다. 각각의 흐름도 예시에서의 각각의 블록, 및 각각의 흐름도 예시에서의 블록들의 조합들은, 특정된 액션들 또는 단계들, 또는 특수 목적 하드웨어 및 컴퓨터 명령어들의 조합들을 수행하는 특수 목적 하드웨어 기반 시스템들에 의해 구현될 수 있다는 것이 또한 이해될 것이다. 전술한 예는 제한적이거나 또는 총망라한 것으로 해석되어서는 안 되고, 오히려, 본 발명의 다양한 실시예들 중 적어도 하나의 실시예의 구현을 보여주는 예시적인 사용 사례로 해석되어야 한다.
추가로, 하나 이상의 실시예들(도면들에 도시되지 않음)에서, 예시적인 흐름도들에서의 로직은, 주문형 집적 회로(ASIC), 필드 프로그래밍가능 게이트 어레이(FPGA), 프로그래밍가능 어레이 로직(PAL), 또는 이와 유사한 것, 또는 이들의 조합과 같은 임베디드 로직 하드웨어 디바이스를 CPU 대신에 사용하여 실행될 수도 있다. 임베디드 로직 하드웨어 디바이스는 액션들을 수행하기 위해 그의 임베디드 로직을 직접 실행할 수도 있다. 하나 이상의 실시예에서, 마이크로제어기, 예컨대 시스템 온 칩(SOC), 또는 이와 유사한 것은 그 자신의 임베디드 로직을 직접 실행하여 액션들을 수행하고 그 자신의 내부 메모리 및 그 자신의 외부 입력 및 출력 인터페이스들(예를 들어, 하드웨어 핀들 또는 무선 트랜시버들)에 액세스하여 액션들을 수행하도록 배열될 수도 있다.

Claims (28)

  1. 하나 이상의 프로세서들을 포함하는 컴퓨터를 사용하여 데이터를 관리하기 위한 방법으로서,
    상기 방법의 각각의 단계는 하나 이상의 프로세서들에 의해 수행되고, 상기 방법은:
    데이터 모델의 하나 이상의 계층들과 연관된 복수의 데이터 객체(data object)들을 포함하는 상기 데이터 모델을 제공하는 단계;
    하나 이상의 계보 객체(lineage object)들을 포함하는 계보 모델을 제공하는 단계 - 상기 하나 이상의 계보 객체들은 각각 하나 이상의 데이터 모델 계층들 중 하나와 연관됨 -;
    데이터 모델 계층과의 연관에 기초하여 상기 하나 이상의 계보 객체들 중 하나를 활성화시키는 단계;
    상기 데이터 모델 및 상기 활성화된 계보 객체에 기초하여 상기 복수의 데이터 객체들의 제1 부분을 결정하는 단계 - 상기 데이터 객체들의 제1 부분 및 상기 활성화된 계보 객체는 동일한 계층과 연관됨 -;
    상기 데이터 객체들의 제1 부분의 하나 이상의 특성들에 기초하여 상기 데이터 객체들의 제1 부분으로부터 앵커 객체(anchor object)를 결정하는 단계;
    상기 데이터 모델에서의 앵커 데이터 객체의 포지션에 기초하여 종속성 정보(dependency information)를 제공하기 위해 상기 데이터 모델의 탐색(search)을 채용하는 단계;
    상기 종속성 정보에 기초하여 상기 복수의 데이터 객체들의 제2 부분을 결정하는 단계; 및
    상기 종속성 정보 또는 상기 데이터 객체들의 제2 부분의 리스트 중 하나 이상을 포함하는 리포트를 제공하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 종속성 정보를 결정하는 것은:
    상기 앵커 데이터 객체와 연관된 하나 이상의 속성들을 결정하는 것;
    상기 하나 이상의 속성들, 및 상기 데이터 모델에서의 복수의 데이터 객체들과 연관된 하나 이상의 다른 속성들에 기초하여 상기 데이터 모델을 탐색하는 것; 및
    하나 이상의 연관들 또는 상기 하나 이상의 속성들 및 상기 하나 이상의 다른 속성들에 기초하여 상기 종속성 정보를 제공하는 것
    을 더 포함하는, 방법.
  3. 제1항에 있어서,
    상기 복수의 데이터 객체들 중 하나 이상에 대한 수정에 응답하여, 추가의 액션들을 수행하는 단계를 더 포함하고,
    상기 추가의 액션들은:
    하나 이상의 수정된 데이터 객체들에 기초하여 상기 활성화된 계보 객체를 결정하는 것;
    상기 하나 이상의 수정된 데이터 객체들에 기초하여 상기 앵커 데이터 객체를 결정하는 것;
    상기 종속성 정보에 기초하여 상기 수정과 연관된 하나 이상의 사용자들을 결정하는 것 - 각각의 사용자는, 상기 수정에 의해 영향받은 하나 이상의 데이터 객체들과 연관됨 -; 및
    상기 사용자와 연관된 각각의 영향받은 데이터 객체에 기초하여 각각의 사용자에게 하나 이상의 통지들을 제공하는 것
    을 포함하는, 방법.
  4. 제1항에 있어서,
    액션들을 수행하기 위해 디스플레이 엔진을 인스턴스화하는 단계를 더 포함하고,
    상기 액션들은:
    계보 패널 및 객체 패널을 포함하는 그래픽 사용자 인터페이스(graphical user interface)(GUI)를 생성하는 것;
    상기 계보 패널에서, 상기 계보 모델 및 상기 하나 이상의 계보 객체들을 디스플레이하는 것;
    상기 객체 패널에서, 상기 데이터 객체들의 제1 부분을 디스플레이하는 것; 및
    상기 계보 패널에 대한 하나 이상의 입력들에 기초하여 다른 활성화된 계보 객체를 결정하는 것; 및
    상기 다른 활성화된 계보 객체에 기초하여 상기 복수의 데이터 객체들의 다른 부분을 자동으로 결정하는 것
    을 포함하고,
    상기 데이터 객체들의 다른 부분은 상기 객체 패널에 디스플레이되는, 방법.
  5. 제1항에 있어서,
    상기 데이터 객체들의 제2 부분을 결정하는 단계는, 하나 이상의 필터들에 기초하여 상기 데이터 객체들의 제2 부분을 수정하는 단계를 더 포함하고, 상기 하나 이상의 필터들은 상기 계보 패널에 디스플레이되는, 방법.
  6. 제1항에 있어서,
    상기 데이터 모델에 기초하여 하나 이상의 데이터 객체 클래스들을 제공하는 단계 - 상기 하나 이상의 데이터 객체 클래스들은 데이터베이스들, 테이블들, 데이터 소스들, 워크북들, 또는 시트들 중 하나 이상을 포함함 -; 및
    상기 데이터 모델의 각각의 계층을 상기 하나 이상의 데이터 객체 클래스들 중 하나와 연관시키는 단계
    를 더 포함하고,
    각각의 데이터 객체는, 상기 계층과 연관된 데이터 객체 클래스와 대응하는 데이터 객체 클래스와 연관되는, 방법.
  7. 제1항에 있어서,
    상기 종속성 정보를 제공하는 것은:
    상기 데이터 모델 및 상기 앵커 데이터 객체에 기초하여 쿼리 정보(query information)를 생성하는 것; 및
    상기 종속성 정보를 제공하는 쿼리를 실행하기 위해 상기 쿼리 정보를 채용하는 것
    을 더 포함하는, 방법.
  8. 데이터를 관리하기 위한 명령어들을 포함하는 프로세서 판독가능 비일시적 저장 매체로서,
    하나 이상의 프로세서들에 의한 상기 명령어들의 실행은 액션들을 수행하고,
    상기 액션들은:
    데이터 모델의 하나 이상의 계층들과 연관된 복수의 데이터 객체들을 포함하는 상기 데이터 모델을 제공하는 것;
    하나 이상의 계보 객체들을 포함하는 계보 모델을 제공하는 것 - 상기 하나 이상의 계보 객체들은 각각 하나 이상의 데이터 모델 계층들 중 하나와 연관됨 -;
    데이터 모델 계층과의 연관에 기초하여 상기 하나 이상의 계보 객체들 중 하나를 활성화시키는 것;
    상기 데이터 모델 및 상기 활성화된 계보 객체에 기초하여 상기 복수의 데이터 객체들의 제1 부분을 결정하는 것 - 상기 데이터 객체들의 제1 부분 및 상기 활성화된 계보 객체는 동일한 계층과 연관됨 -;
    상기 데이터 객체들의 제1 부분의 하나 이상의 특성들에 기초하여 상기 데이터 객체들의 제1 부분으로부터 앵커 객체를 결정하는 것;
    상기 데이터 모델에서의 앵커 데이터 객체의 포지션에 기초하여 종속성 정보를 제공하기 위해 상기 데이터 모델의 탐색을 채용하는 것;
    상기 종속성 정보에 기초하여 상기 복수의 데이터 객체들의 제2 부분을 결정하는 것; 및
    상기 종속성 정보 또는 상기 데이터 객체들의 제2 부분의 리스트 중 하나 이상을 포함하는 리포트를 제공하는 것
    을 포함하는, 프로세서 판독가능 비일시적 저장 매체.
  9. 제8항에 있어서,
    상기 종속성 정보를 결정하는 것은:
    상기 앵커 데이터 객체와 연관된 하나 이상의 속성들을 결정하는 것;
    상기 하나 이상의 속성들, 및 상기 데이터 모델에서의 복수의 데이터 객체들과 연관된 하나 이상의 다른 속성들에 기초하여 상기 데이터 모델을 탐색하는 것; 및
    하나 이상의 연관들 또는 상기 하나 이상의 속성들 및 상기 하나 이상의 다른 속성들에 기초하여 상기 종속성 정보를 제공하는 것
    을 더 포함하는, 프로세서 판독가능 비일시적 저장 매체.
  10. 제8항에 있어서,
    상기 복수의 데이터 객체들 중 하나 이상에 대한 수정에 응답하여, 추가의 액션들을 수행하는 것을 더 포함하고,
    상기 추가의 액션들은:
    하나 이상의 수정된 데이터 객체들에 기초하여 상기 활성화된 계보 객체를 결정하는 것;
    상기 하나 이상의 수정된 데이터 객체들에 기초하여 상기 앵커 데이터 객체를 결정하는 것;
    상기 종속성 정보에 기초하여 상기 수정과 연관된 하나 이상의 사용자들을 결정하는 것 - 각각의 사용자는, 상기 수정에 의해 영향받은 하나 이상의 데이터 객체들과 연관됨 -; 및
    상기 사용자와 연관된 각각의 영향받은 데이터 객체에 기초하여 각각의 사용자에게 하나 이상의 통지들을 제공하는 것
    을 포함하는, 프로세서 판독가능 비일시적 저장 매체.
  11. 제8항에 있어서,
    액션들을 수행하기 위해 디스플레이 엔진을 인스턴스화하는 것을 더 포함하고,
    상기 액션들은:
    계보 패널 및 객체 패널을 포함하는 그래픽 사용자 인터페이스(GUI)를 생성하는 것;
    상기 계보 패널에서, 상기 계보 모델 및 상기 하나 이상의 계보 객체들을 디스플레이하는 것;
    상기 객체 패널에서, 상기 데이터 객체들의 제1 부분을 디스플레이하는 것; 및
    상기 계보 패널에 대한 하나 이상의 입력들에 기초하여 다른 활성화된 계보 객체를 결정하는 것; 및
    상기 다른 활성화된 계보 객체에 기초하여 상기 복수의 데이터 객체들의 다른 부분을 자동으로 결정하는 것
    을 포함하고,
    상기 데이터 객체들의 다른 부분은 상기 객체 패널에 디스플레이되는, 프로세서 판독가능 비일시적 저장 매체.
  12. 제8항에 있어서,
    상기 데이터 객체들의 제2 부분을 결정하는 것은, 하나 이상의 필터들에 기초하여 상기 데이터 객체들의 제2 부분을 수정하는 것을 더 포함하고, 상기 하나 이상의 필터들은 상기 계보 패널에 디스플레이되는, 프로세서 판독가능 비일시적 저장 매체.
  13. 제8항에 있어서,
    상기 데이터 모델에 기초하여 하나 이상의 데이터 객체 클래스들을 제공하는 것 - 상기 하나 이상의 데이터 객체 클래스들은 데이터베이스들, 테이블들, 데이터 소스들, 워크북들, 또는 시트들 중 하나 이상을 포함함 -; 및
    상기 데이터 모델의 각각의 계층을 상기 하나 이상의 데이터 객체 클래스들 중 하나와 연관시키는 것
    을 더 포함하고,
    각각의 데이터 객체는, 상기 계층과 연관된 데이터 객체 클래스와 대응하는 데이터 객체 클래스와 연관되는, 프로세서 판독가능 비일시적 저장 매체.
  14. 제8항에 있어서,
    상기 종속성 정보를 제공하는 것은:
    상기 데이터 모델 및 상기 앵커 데이터 객체에 기초하여 쿼리 정보를 생성하는 것; 및
    상기 종속성 정보를 제공하는 쿼리를 실행하기 위해 상기 쿼리 정보를 채용하는 것
    을 더 포함하는, 프로세서 판독가능 비일시적 저장 매체.
  15. 데이터를 관리하기 위한 시스템으로서,
    네트워크 컴퓨터 및 클라이언트 컴퓨터를 포함하고,
    상기 네트워크 컴퓨터는:
    네트워크를 통해 통신하는 트랜시버;
    적어도 명령어들을 저장하는 메모리; 및
    액션들을 수행하는 명령어들을 실행하는 하나 이상의 프로세서들
    을 포함하고,
    상기 액션들은:
    데이터 모델의 하나 이상의 계층들과 연관된 복수의 데이터 객체들을 포함하는 상기 데이터 모델을 제공하는 것;
    하나 이상의 계보 객체들을 포함하는 계보 모델을 제공하는 것 - 상기 하나 이상의 계보 객체들은 각각 하나 이상의 데이터 모델 계층들 중 하나와 연관됨 -;
    데이터 모델 계층과의 연관에 기초하여 상기 하나 이상의 계보 객체들 중 하나를 활성화시키는 것;
    상기 데이터 모델 및 상기 활성화된 계보 객체에 기초하여 상기 복수의 데이터 객체들의 제1 부분을 결정하는 것 - 상기 데이터 객체들의 제1 부분 및 상기 활성화된 계보 객체는 동일한 계층과 연관됨 -;
    상기 데이터 객체들의 제1 부분의 하나 이상의 특성들에 기초하여 상기 데이터 객체들의 제1 부분으로부터 앵커 객체를 결정하는 것;
    상기 데이터 모델에서의 앵커 데이터 객체의 포지션에 기초하여 종속성 정보를 제공하기 위해 상기 데이터 모델의 탐색을 채용하는 것;
    상기 종속성 정보에 기초하여 상기 복수의 데이터 객체들의 제2 부분을 결정하는 것; 및
    상기 종속성 정보 또는 상기 데이터 객체들의 제2 부분의 리스트 중 하나 이상을 포함하는 리포트를 제공하는 것
    을 포함하고;
    상기 클라이언트 컴퓨터는:
    네트워크를 통해 통신하는 트랜시버;
    적어도 명령어들을 저장하는 메모리; 및
    액션들을 수행하는 명령어들을 실행하는 하나 이상의 프로세서들
    을 포함하고,
    상기 액션들은:
    상기 리포트를 수신하는 것
    을 포함하는, 시스템.
  16. 제15항에 있어서,
    상기 종속성 정보를 결정하는 것은:
    상기 앵커 데이터 객체와 연관된 하나 이상의 속성들을 결정하는 것;
    상기 하나 이상의 속성들, 및 상기 데이터 모델에서의 복수의 데이터 객체들과 연관된 하나 이상의 다른 속성들에 기초하여 상기 데이터 모델을 탐색하는 것; 및
    하나 이상의 연관들 또는 상기 하나 이상의 속성들 및 상기 하나 이상의 다른 속성들에 기초하여 상기 종속성 정보를 제공하는 것
    을 더 포함하는, 시스템.
  17. 제15항에 있어서,
    상기 네트워크 컴퓨터의 하나 이상의 프로세서들은 액션들을 수행하는 명령어들을 실행하고,
    상기 액션들은:
    상기 복수의 데이터 객체들 중 하나 이상에 대한 수정에 응답하여, 추가의 액션들을 수행하는 것을 더 포함하고,
    상기 추가의 액션들은:
    하나 이상의 수정된 데이터 객체들에 기초하여 상기 활성화된 계보 객체를 결정하는 것;
    상기 하나 이상의 수정된 데이터 객체들에 기초하여 상기 앵커 데이터 객체를 결정하는 것;
    상기 종속성 정보에 기초하여 상기 수정과 연관된 하나 이상의 사용자들을 결정하는 것 - 각각의 사용자는, 상기 수정에 의해 영향받은 하나 이상의 데이터 객체들과 연관됨 -; 및
    상기 사용자와 연관된 각각의 영향받은 데이터 객체에 기초하여 각각의 사용자에게 하나 이상의 통지들을 제공하는 것
    을 포함하는, 시스템.
  18. 제15항에 있어서,
    상기 네트워크 컴퓨터의 하나 이상의 프로세서들은 액션들을 수행하는 명령어들을 실행하고,
    상기 액션들은:
    액션들을 수행하기 위해 디스플레이 엔진을 인스턴스화하는 것을 더 포함하고,
    상기 액션들은:
    계보 패널 및 객체 패널을 포함하는 그래픽 사용자 인터페이스(GUI)를 생성하는 것;
    상기 계보 패널에서, 상기 계보 모델 및 상기 하나 이상의 계보 객체들을 디스플레이하는 것;
    상기 객체 패널에서, 상기 데이터 객체들의 제1 부분을 디스플레이하는 것; 및
    상기 계보 패널에 대한 하나 이상의 입력들에 기초하여 다른 활성화된 계보 객체를 결정하는 것; 및
    상기 다른 활성화된 계보 객체에 기초하여 상기 복수의 데이터 객체들의 다른 부분을 자동으로 결정하는 것
    을 포함하고,
    상기 데이터 객체들의 다른 부분은 상기 객체 패널에 디스플레이되는, 시스템.
  19. 제15항에 있어서,
    상기 데이터 객체들의 제2 부분을 결정하는 것은, 하나 이상의 필터들에 기초하여 상기 데이터 객체들의 제2 부분을 수정하는 것을 더 포함하고, 상기 하나 이상의 필터들은 상기 계보 패널에 디스플레이되는, 시스템.
  20. 제15항에 있어서,
    상기 네트워크 컴퓨터의 하나 이상의 프로세서들은 액션들을 수행하는 명령어들을 실행하고,
    상기 액션들은:
    상기 데이터 모델에 기초하여 하나 이상의 데이터 객체 클래스들을 제공하는 것 - 상기 하나 이상의 데이터 객체 클래스들은 데이터베이스들, 테이블들, 데이터 소스들, 워크북들, 또는 시트들 중 하나 이상을 포함함 -; 및
    상기 데이터 모델의 각각의 계층을 상기 하나 이상의 데이터 객체 클래스들 중 하나와 연관시키는 것
    을 더 포함하고,
    각각의 데이터 객체는, 상기 계층과 연관된 데이터 객체 클래스와 대응하는 데이터 객체 클래스와 연관되는, 시스템.
  21. 제15항에 있어서,
    상기 종속성 정보를 제공하는 것은:
    상기 데이터 모델 및 상기 앵커 데이터 객체에 기초하여 쿼리 정보를 생성하는 것; 및
    상기 종속성 정보를 제공하는 쿼리를 실행하기 위해 상기 쿼리 정보를 채용하는 것
    을 더 포함하는, 시스템.
  22. 데이터를 관리하기 위한 네트워크 컴퓨터로서,
    네트워크를 통해 통신하는 트랜시버;
    적어도 명령어들을 저장하는 메모리; 및
    액션들을 수행하는 명령어들을 실행하는 하나 이상의 프로세서들
    을 포함하고,
    상기 액션들은:
    데이터 모델의 하나 이상의 계층들과 연관된 복수의 데이터 객체들을 포함하는 상기 데이터 모델을 제공하는 것;
    하나 이상의 계보 객체들을 포함하는 계보 모델을 제공하는 것 - 상기 하나 이상의 계보 객체들은 각각 하나 이상의 데이터 모델 계층들 중 하나와 연관됨 -;
    데이터 모델 계층과의 연관에 기초하여 상기 하나 이상의 계보 객체들 중 하나를 활성화시키는 것;
    상기 데이터 모델 및 상기 활성화된 계보 객체에 기초하여 상기 복수의 데이터 객체들의 제1 부분을 결정하는 것 - 상기 데이터 객체들의 제1 부분 및 상기 활성화된 계보 객체는 동일한 계층과 연관됨 -;
    상기 데이터 객체들의 제1 부분의 하나 이상의 특성들에 기초하여 상기 데이터 객체들의 제1 부분으로부터 앵커 객체를 결정하는 것;
    상기 데이터 모델에서의 앵커 데이터 객체의 포지션에 기초하여 종속성 정보를 제공하기 위해 상기 데이터 모델의 탐색을 채용하는 것;
    상기 종속성 정보에 기초하여 상기 복수의 데이터 객체들의 제2 부분을 결정하는 것; 및
    상기 종속성 정보 또는 상기 데이터 객체들의 제2 부분의 리스트 중 하나 이상을 포함하는 리포트를 제공하는 것
    을 포함하는, 네트워크 컴퓨터.
  23. 제22항에 있어서,
    상기 종속성 정보를 결정하는 것은:
    상기 앵커 데이터 객체와 연관된 하나 이상의 속성들을 결정하는 것;
    상기 하나 이상의 속성들, 및 상기 데이터 모델에서의 복수의 데이터 객체들과 연관된 하나 이상의 다른 속성들에 기초하여 상기 데이터 모델을 탐색하는 것; 및
    하나 이상의 연관들 또는 상기 하나 이상의 속성들 및 상기 하나 이상의 다른 속성들에 기초하여 상기 종속성 정보를 제공하는 것
    을 더 포함하는, 네트워크 컴퓨터.
  24. 제22항에 있어서,
    상기 하나 이상의 프로세서들은 액션들을 수행하는 명령어들을 실행하고,
    상기 액션들은:
    상기 복수의 데이터 객체들 중 하나 이상에 대한 수정에 응답하여, 추가의 액션들을 수행하는 것을 더 포함하고,
    상기 추가의 액션들은:
    하나 이상의 수정된 데이터 객체들에 기초하여 상기 활성화된 계보 객체를 결정하는 것;
    상기 하나 이상의 수정된 데이터 객체들에 기초하여 상기 앵커 데이터 객체를 결정하는 것;
    상기 종속성 정보에 기초하여 상기 수정과 연관된 하나 이상의 사용자들을 결정하는 것 - 각각의 사용자는, 상기 수정에 의해 영향받은 하나 이상의 데이터 객체들과 연관됨 -; 및
    상기 사용자와 연관된 각각의 영향받은 데이터 객체에 기초하여 각각의 사용자에게 하나 이상의 통지들을 제공하는 것
    을 포함하는, 네트워크 컴퓨터.
  25. 제22항에 있어서,
    상기 하나 이상의 프로세서들은 액션들을 수행하는 명령어들을 실행하고,
    상기 액션들은:
    액션들을 수행하기 위해 디스플레이 엔진을 인스턴스화하는 것을 더 포함하고,
    상기 액션들은:
    계보 패널 및 객체 패널을 포함하는 그래픽 사용자 인터페이스(GUI)를 생성하는 것;
    상기 계보 패널에서, 상기 계보 모델 및 상기 하나 이상의 계보 객체들을 디스플레이하는 것;
    상기 객체 패널에서, 상기 데이터 객체들의 제1 부분을 디스플레이하는 것; 및
    상기 계보 패널에 대한 하나 이상의 입력들에 기초하여 다른 활성화된 계보 객체를 결정하는 것; 및
    상기 다른 활성화된 계보 객체에 기초하여 상기 복수의 데이터 객체들의 다른 부분을 자동으로 결정하는 것
    을 포함하고,
    상기 데이터 객체들의 다른 부분은 상기 객체 패널에 디스플레이되는, 네트워크 컴퓨터.
  26. 제22항에 있어서,
    상기 데이터 객체들의 제2 부분을 결정하는 것은, 하나 이상의 필터들에 기초하여 상기 데이터 객체들의 제2 부분을 수정하는 것을 더 포함하고, 상기 하나 이상의 필터들은 상기 계보 패널에 디스플레이되는, 네트워크 컴퓨터.
  27. 제22항에 있어서,
    상기 하나 이상의 프로세서들은 액션들을 수행하는 명령어들을 실행하고,
    상기 액션들은:
    상기 데이터 모델에 기초하여 하나 이상의 데이터 객체 클래스들을 제공하는 것 - 상기 하나 이상의 데이터 객체 클래스들은 데이터베이스들, 테이블들, 데이터 소스들, 워크북들, 또는 시트들 중 하나 이상을 포함함 -; 및
    상기 데이터 모델의 각각의 계층을 상기 하나 이상의 데이터 객체 클래스들 중 하나와 연관시키는 것
    을 더 포함하고,
    각각의 데이터 객체는, 상기 계층과 연관된 데이터 객체 클래스와 대응하는 데이터 객체 클래스와 연관되는, 네트워크 컴퓨터.
  28. 제22항에 있어서,
    상기 종속성 정보를 제공하는 것은:
    상기 데이터 모델 및 상기 앵커 데이터 객체에 기초하여 쿼리 정보를 생성하는 것; 및
    상기 종속성 정보를 제공하는 쿼리를 실행하기 위해 상기 쿼리 정보를 채용하는 것
    을 더 포함하는, 네트워크 컴퓨터.
KR1020217037901A 2019-04-19 2020-04-14 데이터 자산들에 대한 대화형 계보 분석기 KR20220016059A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/389,389 US11194845B2 (en) 2019-04-19 2019-04-19 Interactive lineage analyzer for data assets
US16/389,389 2019-04-19
PCT/US2020/028163 WO2020214620A1 (en) 2019-04-19 2020-04-14 Interactive lineage analyzer for data assets

Publications (1)

Publication Number Publication Date
KR20220016059A true KR20220016059A (ko) 2022-02-08

Family

ID=72832506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217037901A KR20220016059A (ko) 2019-04-19 2020-04-14 데이터 자산들에 대한 대화형 계보 분석기

Country Status (8)

Country Link
US (2) US11194845B2 (ko)
JP (1) JP2022529791A (ko)
KR (1) KR20220016059A (ko)
CN (1) CN113950674A (ko)
AU (1) AU2020258980A1 (ko)
CA (1) CA3137126A1 (ko)
SG (1) SG11202111528RA (ko)
WO (1) WO2020214620A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11194845B2 (en) 2019-04-19 2021-12-07 Tableau Software, LLC Interactive lineage analyzer for data assets
US11829421B2 (en) 2019-11-08 2023-11-28 Tableau Software, LLC Dynamic graph generation for interactive data analysis
US11514072B1 (en) 2019-12-31 2022-11-29 Cigna Intellectual Property, Inc. Computerized system for programmatic mapping of record lineage based on data flow through data storage components
US11681721B2 (en) * 2020-05-08 2023-06-20 Jpmorgan Chase Bank, N.A. Systems and methods for spark lineage data capture
US11436204B2 (en) 2020-06-04 2022-09-06 Bank Of America Corporation Enterprise data flow lineage from enterprise data testing metadata
CN112597193B (zh) * 2020-12-22 2021-10-22 北京九章云极科技有限公司 一种数据处理方法和数据处理系统
US20220342884A1 (en) * 2021-04-27 2022-10-27 Capital One Services, Llc Techniques for building data lineages for queries
EP4348435A1 (en) * 2021-06-01 2024-04-10 Tableau Software, LLC Metadata inheritance for data assets
US20230059083A1 (en) * 2021-08-23 2023-02-23 Tableau Software, LLC Generating shortcut paths between related data types
US11829340B1 (en) * 2023-06-22 2023-11-28 Citibank, N.A. Systems and methods for generating data transfers using programming language-agnostic data modeling platforms

Family Cites Families (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5550971A (en) 1993-06-30 1996-08-27 U S West Technologies, Inc. Method and system for generating a user interface adaptable to various database management systems
US5689711A (en) 1995-04-21 1997-11-18 Bardasz; Theodore Method and apparatus for representing data dependencies in software modeling systems
US20040205562A1 (en) 2001-12-27 2004-10-14 G.E. Information Services, Inc. System and method for transforming documents to and from an XML format
US7412658B2 (en) 2002-11-14 2008-08-12 Sap Ag Modeling system for graphic user interface
JP2005011150A (ja) * 2003-06-20 2005-01-13 Victor Co Of Japan Ltd コンテンツ配信システム
NL1029182C2 (nl) 2004-06-03 2009-08-11 John Bernard Olson Werkwijzen en toestellen voor het ontwerp van visuele applicaties.
US7428535B1 (en) 2004-06-25 2008-09-23 Apple Inc. Automatic relevance filtering
US7800613B2 (en) 2004-12-02 2010-09-21 Tableau Software, Inc. Computer systems and methods for visualizing data with generation of marks
US20080126987A1 (en) 2006-09-19 2008-05-29 International Business Machines Corporation Graphical representation of compatible workflow steps
US20090006939A1 (en) 2007-06-29 2009-01-01 Microsoft Corporation Task-specific spreadsheet worksheets
CA2593233A1 (en) * 2007-07-06 2009-01-06 Cognos Incorporated System and method for federated member-based data integration and reporting
US9053437B2 (en) 2008-11-06 2015-06-09 International Business Machines Corporation Extracting enterprise information through analysis of provenance data
US9767100B2 (en) 2008-12-02 2017-09-19 Ab Initio Technology Llc Visualizing relationships between data elements
US8972899B2 (en) 2009-02-10 2015-03-03 Ayasdi, Inc. Systems and methods for visualization of data analysis
US8269773B2 (en) 2009-03-12 2012-09-18 Sas Institute Inc. System and method for drag-and-drop graph building with live feedback
US8185563B2 (en) 2009-06-16 2012-05-22 Jonathan Cohen Data-visualization system and method
US8286087B1 (en) 2009-08-20 2012-10-09 Adobe Systems Incorporated Active route validation in workflow process authoring
US20110219321A1 (en) 2010-03-02 2011-09-08 Microsoft Corporation Web-based control using integrated control interface having dynamic hit zones
CN102081764A (zh) * 2011-01-11 2011-06-01 上海海洋大学 一种基于uldb的海洋环境监测数据管理系统
US9424536B2 (en) 2011-05-31 2016-08-23 Oracle International Corporation System for business portfolio modeling and analysis
US9383913B2 (en) 2012-05-30 2016-07-05 Sap Se Touch screen device data filtering
US20140058789A1 (en) 2012-08-24 2014-02-27 Markus Doehring Process model generation and weak-spot analysis from plain event logs
US9798768B2 (en) 2012-09-10 2017-10-24 Palantir Technologies, Inc. Search around visual queries
US9063998B2 (en) * 2012-10-18 2015-06-23 Oracle International Corporation Associated information propagation system
US9361363B2 (en) * 2012-12-31 2016-06-07 Facebook, Inc. Modifying structured search queries on online social networks
US9372596B2 (en) 2013-01-28 2016-06-21 International Business Machines Corporation Assistive overlay for report generation
US10386827B2 (en) 2013-03-04 2019-08-20 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics platform
US10866952B2 (en) 2013-03-04 2020-12-15 Fisher-Rosemount Systems, Inc. Source-independent queries in distributed industrial system
US20140372956A1 (en) 2013-03-04 2014-12-18 Atigeo Llc Method and system for searching and analyzing large numbers of electronic documents
US9230351B2 (en) 2013-03-12 2016-01-05 Microsoft Technology Licensing, Llc Data binding graph for interactive chart
CN105144080B (zh) * 2013-03-15 2021-05-18 起元技术有限责任公司 用于元数据管理的系统
US20140330821A1 (en) 2013-05-06 2014-11-06 Microsoft Corporation Recommending context based actions for data visualizations
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US9489119B1 (en) 2013-10-25 2016-11-08 Theodore Root Smith, Jr. Associative data management system utilizing metadata
US9274828B2 (en) * 2013-11-03 2016-03-01 Maestrano Pty Ltd. Systems and methods for event driven object management and distribution among multiple client applications
US11556578B2 (en) 2014-05-12 2023-01-17 Semantic Technologies Pty Ltd Putative ontology generating method and apparatus
US11334831B2 (en) 2014-05-21 2022-05-17 X-Act Science, Inc. Predictive risk assessment in system modeling
US9229689B2 (en) 2014-05-30 2016-01-05 Software Ag System and method for providing user support in designing graph structures
US10282290B2 (en) 2014-06-24 2019-05-07 Shimadzu Corporation Analyzing device management system
US10318882B2 (en) 2014-09-11 2019-06-11 Amazon Technologies, Inc. Optimized training of linear machine learning models
KR102279859B1 (ko) * 2014-07-18 2021-07-20 아브 이니티오 테크놀로지 엘엘시 파라미터 세트의 관리
US9779147B1 (en) 2014-08-15 2017-10-03 Tableau Software, Inc. Systems and methods to query and visualize data and relationships
US11275775B2 (en) 2014-10-09 2022-03-15 Splunk Inc. Performing search queries for key performance indicators using an optimized common information model
US9760240B2 (en) 2014-10-09 2017-09-12 Splunk Inc. Graphical user interface for static and adaptive thresholds
KR102363703B1 (ko) 2014-12-26 2022-02-17 삼성전자주식회사 질의 처리 방법, 전자 장치 및 서버
US9892164B2 (en) 2015-01-30 2018-02-13 International Business Machines Corporation Reducing a large amount of data to a size available for interactive analysis
US10061824B2 (en) 2015-01-30 2018-08-28 Splunk Inc. Cell-based table manipulation of event data
US10423623B2 (en) 2015-02-05 2019-09-24 Sap Se Hierarchy modeling and query
US10049473B2 (en) 2015-04-27 2018-08-14 Splunk Inc Systems and methods for providing for third party visualizations
US10534518B2 (en) 2015-07-06 2020-01-14 Honeywell International Inc. Graphical model explorer
US10983682B2 (en) 2015-08-27 2021-04-20 Sas Institute Inc. Interactive graphical user-interface for analyzing and manipulating time-series projections
US10558349B2 (en) 2015-09-15 2020-02-11 Medidata Solutions, Inc. Functional scrollbar and system
US20170091317A1 (en) 2015-09-28 2017-03-30 Microsoft Technology Licensing, Llc Location correlation between query script and data flow
US10515093B2 (en) 2015-11-30 2019-12-24 Tableau Software, Inc. Systems and methods for interactive visual analysis using a specialized virtual machine
US10152560B2 (en) 2015-12-17 2018-12-11 Business Objects Software Limited Graph database querying and visualization
US11093553B2 (en) 2015-12-17 2021-08-17 Business Objects Software Ltd Graph database visualization by node and edge type
US10235780B2 (en) 2015-12-18 2019-03-19 Dropbox, Inc. Integrated data exploration, modeling and visualization
US10268753B2 (en) 2015-12-22 2019-04-23 Opera Solutions Usa, Llc System and method for optimized query execution in computerized data modeling and analysis
US10970473B2 (en) 2015-12-29 2021-04-06 Microsoft Technology Licensing, Llc Formatting document objects by visual suggestions
EP3188040B1 (en) 2015-12-31 2021-05-05 Dassault Systèmes Retrieval of outcomes of precomputed models
US10586173B2 (en) 2016-01-27 2020-03-10 Bonsai AI, Inc. Searchable database of trained artificial intelligence objects that can be reused, reconfigured, and recomposed, into one or more subsequent artificial intelligence models
US10997190B2 (en) 2016-02-01 2021-05-04 Splunk Inc. Context-adaptive selection options in a modular visualization framework
WO2017172635A1 (en) 2016-03-31 2017-10-05 Osisoft, Llc Event based data collection, integration, and presentation
US10754867B2 (en) 2016-04-08 2020-08-25 Bank Of America Corporation Big data based predictive graph generation system
WO2017186774A1 (en) 2016-04-26 2017-11-02 Pilab S.A. Systems and methods for querying databases
US10331416B2 (en) 2016-04-28 2019-06-25 Microsoft Technology Licensing, Llc Application with embedded workflow designer
US10324609B2 (en) 2016-07-21 2019-06-18 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US9881066B1 (en) 2016-08-31 2018-01-30 Palantir Technologies, Inc. Systems, methods, user interfaces and algorithms for performing database analysis and search of information involving structured and/or semi-structured data
US10776350B1 (en) 2016-09-26 2020-09-15 Splunk Inc. Field analyzer for event search screen
US11853529B2 (en) 2016-11-07 2023-12-26 Tableau Software, Inc. User interface to prepare and curate data for subsequent analysis
JP7170638B2 (ja) * 2016-12-01 2022-11-14 アビニシオ テクノロジー エルエルシー 系統メタデータの生成、アクセス、及び表示
US10372761B2 (en) * 2016-12-28 2019-08-06 Sap Se Auto-discovery of data lineage in large computer systems
US10565220B2 (en) 2017-01-31 2020-02-18 Splunk Inc. Generating visualizations for search results data containing multiple data dimensions
US10387423B2 (en) 2017-01-31 2019-08-20 Splunk Inc. Interactive development environment for iterative query visualization and exploration
US20180260903A1 (en) 2017-03-10 2018-09-13 Brian Callery Computerized machine learning based recommendations
US10210240B2 (en) * 2017-06-30 2019-02-19 Capital One Services, Llc Systems and methods for code parsing and lineage detection
US10592260B1 (en) 2017-09-21 2020-03-17 Inductive Automation, LLC Hierarchical data binding for industrial control systems
US10783162B1 (en) 2017-12-07 2020-09-22 Palantir Technologies Inc. Workflow assistant
US10769165B2 (en) * 2017-12-20 2020-09-08 Sap Se Computing data lineage across a network of heterogeneous systems
US10762142B2 (en) 2018-03-16 2020-09-01 Open Text Holdings, Inc. User-defined automated document feature extraction and optimization
US10776377B2 (en) 2018-03-26 2020-09-15 Splunk Inc. User interface and process to generate journey instance based on one or more pivot identifiers and one or more step identifiers
US11003636B2 (en) 2018-06-18 2021-05-11 Tamr, Inc. Generating and reusing transformations for evolving schema mapping
GB201813561D0 (en) 2018-08-21 2018-10-03 Shapecast Ltd Machine learning optimisation method
US11429627B2 (en) 2018-09-28 2022-08-30 Splunk Inc. System monitoring driven by automatically determined operational parameters of dependency graph model with user interface
US11620300B2 (en) 2018-09-28 2023-04-04 Splunk Inc. Real-time measurement and system monitoring based on generated dependency graph models of system components
US10445170B1 (en) * 2018-11-21 2019-10-15 Fmr Llc Data lineage identification and change impact prediction in a distributed computing environment
US11275346B2 (en) 2018-12-03 2022-03-15 DSi Digital, LLC Data interaction platforms utilizing dynamic relational awareness
US11194845B2 (en) 2019-04-19 2021-12-07 Tableau Software, LLC Interactive lineage analyzer for data assets
US11100173B2 (en) 2019-06-18 2021-08-24 Lucid Software, Inc. Autolayout of visualizations based on graph data
US20190325292A1 (en) 2019-06-28 2019-10-24 Intel Corporation Methods, apparatus, systems and articles of manufacture for providing query selection systems
US11886399B2 (en) 2020-02-26 2024-01-30 Ab Initio Technology Llc Generating rules for data processing values of data fields from semantic labels of the data fields
US11566909B2 (en) 2020-10-12 2023-01-31 Verizon Patent And Licensing Inc. Systems and methods for optimal path determination using contraction hierarchies with turn costs

Also Published As

Publication number Publication date
AU2020258980A1 (en) 2021-11-11
CN113950674A (zh) 2022-01-18
WO2020214620A1 (en) 2020-10-22
US11194845B2 (en) 2021-12-07
US11687571B2 (en) 2023-06-27
JP2022529791A (ja) 2022-06-24
CA3137126A1 (en) 2020-10-22
US20200334277A1 (en) 2020-10-22
SG11202111528RA (en) 2021-11-29
US20220092090A1 (en) 2022-03-24

Similar Documents

Publication Publication Date Title
US11687571B2 (en) Interactive lineage analyzer for data assets
US11605189B2 (en) Dynamic visualization and data analytics based on parameter actions
US20240095285A1 (en) Dynamic graph generation for interactive data analysis
US20240111791A1 (en) Generating shortcut paths between related objects
US11893039B2 (en) Interactive interface for data analysis and report generation
US20230273715A1 (en) Automatic data model generation
US11651003B2 (en) Interactive data visualization interface for data and graph models
US20220382761A1 (en) Metadata inheritance for data assets
US20210390483A1 (en) Interactive forecast modeling based on visualizations
US20230008999A1 (en) Data processing for visualizing hierarchical data
US11188558B2 (en) Parenting computed fields with data objects
US20230065227A1 (en) Providing data flow directions for data objects
US11537490B2 (en) Event sequence analysis
US11422985B2 (en) Interactive data modeling
EP4348435A1 (en) Metadata inheritance for data assets
US20210133239A1 (en) Providing data visualizations based on personalized recommendations
CN117716352A (zh) 数据资产的元数据继承
CN117940913A (en) Data processing for visualizing hierarchical data

Legal Events

Date Code Title Description
A201 Request for examination