KR102379640B1 - 스트리밍 데이터의 인터렉티브 실시간 시각화 - Google Patents

스트리밍 데이터의 인터렉티브 실시간 시각화 Download PDF

Info

Publication number
KR102379640B1
KR102379640B1 KR1020217007970A KR20217007970A KR102379640B1 KR 102379640 B1 KR102379640 B1 KR 102379640B1 KR 1020217007970 A KR1020217007970 A KR 1020217007970A KR 20217007970 A KR20217007970 A KR 20217007970A KR 102379640 B1 KR102379640 B1 KR 102379640B1
Authority
KR
South Korea
Prior art keywords
visual metaphor
additional
visual
opacity
metaphor
Prior art date
Application number
KR1020217007970A
Other languages
English (en)
Other versions
KR20210032564A (ko
Inventor
진롱 시에
패트릭 넬슨
빈빈 샤오
제퀴안 쉔
조허 카루
Original Assignee
이베이 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이베이 인크. filed Critical 이베이 인크.
Publication of KR20210032564A publication Critical patent/KR20210032564A/ko
Application granted granted Critical
Publication of KR102379640B1 publication Critical patent/KR102379640B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/904Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/487Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
    • 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/248Presentation of query results
    • 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
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • H04L65/4069
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/602
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Computational Linguistics (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

본 개시의 양상들은 적어도 하나의 프로그램이 저장된 컴퓨터 판독 가능 저장 매체를 포함하는 시스템 및 대량의 스트리밍 데이터의 인터렉티브 시각 표현을 렌더링하는 방법을 포함한다. 복수의 이벤트를 기술하는 스트리밍 데이터가 메모리에 로딩된다. 스트리밍 데이터는 각 이벤트의 소스 위치 및 목적지 위치를 명시하는 지형 공간적 데이터를 포함한다. 이벤트를 나타내는 시각적 메타포가 시각화 수학 모델을 사용해서 렌더링되고, 시각화 수학 모델은 각각의 시각적 메타포에 대해 슬라이딩 시간 윈도우 동안에 시각적 메타포에 따른 각각의 포인트에 대한 공간 위치와 불투명도를 정의한다.

Description

스트리밍 데이터의 인터렉티브 실시간 시각화{INTERACTIVE REAL-TIME VISUALIZATION FOR STREAMING DATA}
우선권 주장
본 출원은 "INTERACTIVE REAL-TIME VISUALIZATION SYSTEM FOR LARGE-SCALE STREAMING DATA"라는 제목으로 2017년 9월 18일자로 출원된 미국 특허 출원 제 15/707,529 호의 우선권을 주장하는데, 이는 "INTERACTIVE REAL-TIME VISUALIZATION SYSTEM FOR LARGE-SCALE STREAMING DATA"라는 제목으로 2016년 9월 19일자로 출원된 미국 가출원 제 62/396,632 호를 우선권으로 하고 있으며, 그 전체 내용은 본 명세서에 참조로서 인용된다.
기술 분야
본 개시는 전반적으로, 시각화를 생성하고 렌더링하는 특수 목적 머신(이러한 특수 목적 머신의 컴퓨터화된 변종을 포함함)의 기술 분야에 맞게 구성된 머신과 이러한 변종의 개선에 관한 것이고, 또한 이러한 특수 목적 머신이 시각화를 생성하고 렌더링하는 다른 특수 목적 머신에 비해서 개선되게 하는 기술에 관한 것이다. 상세하게, 본 개시는 인터렉티브 실시간 시각화 시스템 및 대규모 스트리밍 데이터에 대한 방법을 다루고 있다.
현재, 대량의 라이브 데이터 스트림을 분석해서 최종 사용자 장치에 인터렉티브 레이트로 이를 시각화하는 데는, 계산 리소스의 측면에서 매우 많은 비용이 소요된다. 이는 특히, 빅 데이터의 시대에, 많은 판정이 행해질 때 복잡한 데이터를 효율적으로 분석해서 시각화하는 것에 의존하기 때문에 그러하다. 실제로, 데이터를 실시간으로 및 대규모로 처리해서 시각화하는 것은 중요하다.
대량의 데이터를 시각화하기 위한 종래의 프리로드-스토어-플롯(preload-store-plot) 방식은 대량 데이터 I/O 지체라는 문제가 있고, 이러한 방식은 기껏해야 거의 실시간 성능을 제공할 뿐이다. 나아가, 시각화를 위한 프론트-엔드 방식은 측정점(data point)의 수가 너무 많아지면 쉽게 문제가 발생된다(overwhelmed). 예를 들어, 최근의 시각화 라이브러리(예를 들어, D3.js)는 프로그래밍하기 쉽고 표현력이 풍부하다. 그러나 수만개의 요소(element)까지(및 이를 넘어서) 스케일 확장될 수는 없다. 레벨 오브 디테일(Level-Of-Detail) 스케일링과 같은 솔루션이 오랫동안 사용되어 왔지만, 이는 단지 사용자가 다수의 링크된 뷰를 디스플레이하는 능력을 갖고 있을 때 야기되는 성능 문제를 완화시킬 뿐이다.
첨부된 다양한 도면은 단지 본 개시의 예시적인 실시예를 도시하는 것으로, 그 범주를 제한하는 것으로 간주될 수는 없다.
도 1은 예시적인 실시예에 따른 시각화 시스템을 도시하는 시스템도이다.
도 2는 예시적인 실시예에 따른, 시각화 시스템의 일부로서 제공되는 렌더링 엔진의 기능적 구성 요소를 나타내는 블록도이다.
도 3은 예시적인 실시예에 따른 원호 상의 포인트의 내삽을 나타내는 도면이다.
도 4는 예시적인 실시예에 따른 원호 상의 i번째 포인트의 내삽을 나타내는 도면이다.
도 5(a) 및 도 5(b)는 예시적인 실시예에 따른 곡선을 따라서 원호 하이라이트 애니메이션을 파라미터화하는 것을 나타내는 도면이다.
도 6 내지 도 8은 예시적인 실시예에 따른 시각적 메타포를 렌더링하는 방법을 수행할 때의 시각화 시스템의 예시적인 동작을 나타내는 흐름도이다.
도 9 내지 도 15는 예시적인 실시예에 따른, 시각화 시스템에 의해 제공되는 사용자 인터페이스의 양태들을 나타낸다.
도 16은 예시적인 실시예에 따른, 시각화 시스템이 전개될 수 있는 네트워크 환경을 나타내는 네트워크도이다.
도 17은 본 명세서의 다양한 하드웨어 아키텍처와 함께 사용될 수 있는 대표적인 소프트웨어 아키텍처를 도시하는 블록도이다.
도 18은 머신 판독 가능 매체로부터의 명령을 판독하고 본 명세서에 개시된 모든 방법을 수행할 수 있는, 일부 예시적인 실시예에 따른, 머신의 구성 요소들을 나타내는 블록도이다.
이하, 신규한 청구 대상을 수행하기 위한 특정 예시적인 실시예를 상세하게 참조한다. 이러한 특정 실시예의 예시가 첨부된 도면에 도시되어 있다. 이들 예시가 청구 범위를 도시된 실시예로 제한하려는 것은 아니라는 것을 이해할 것이다. 반대로, 이들은 본 개시의 범주 내에 포함될 수 있는 대안, 수정 및 등가물을 포함하도록 의도했다. 이하의 설명에서, 청구 대상을 완전하게 이해할 수 있도록 특정한 세부 사항이 설명된다. 이 실시예는 이러한 특정한 세부 사항 중 일부 혹은 전부가 없어도 실시될 수 있다.
본 개시의 양태들은 시각화 시스템을 포함하며, 이는 사용자가 다차원 공간에서 지리-태그된(geo-tagged) 이벤트 데이터(예를 들어, 거래 데이터)를 인터렉티브하게 평가하고, 이벤트 데이터의 공간적 및 시간적 분포를 이해하며, 다양한 스케일 레벨(예를 들어, 지역, 국가 또는 세계)에서 거동(behavior)을 이해하는 것을 가능하게 한다. 이러한 시각화 시스템은, 소셜 네트워킹 포스트에 사용되는 것과 같은 대규모 스트리밍 데이터와 관련된 홍보, 브랜딩 및 기업 커뮤니케이션 이력의 생성을 돕는 특정 응용 프로그램에서 그 예를 찾을 수 있다.
일례로, 더 큰 통찰력을 제공하기 위해, 시각화 시스템은 멀티-스크린 디스플레이 시스템에 디스플레이하도록 다수의 링크된 뷰를 제공하도록 구성될 수도 있다. 예를 들어, 멀티-스크린 디스플레이 시스템은, 큰 센터 스크린이 회전하는 3차원(3D) 가상 지구본의 오버뷰를 디스플레이하도록 구성되고, 사이드 스크린들이 지구본의 다양한 영역의 줌인 뷰를 평면 세계지도와 함께 디스플레이하도록 구성되는 방식으로, 구성될 수 있다. 대안의 예로서, 시각화 시스템에는 VR(가상 현실) 헤드셋과 같은 VR 시스템이 통합되어서, 사용자가 VR 공간에서 시각 표현을 보고 인터렉션하는 것을 가능하게 할 수도 있다. 멀티-스크린 디스플레이 및 VR 시스템에 더해서, 시각화 시스템에는 모션 입력 장치가 통합되어서, 사용자가 3D 가상 지구본 혹은 3D 평면 세계 지도를 자신의 손짓으로 직접 탐사하는 것을 가능하게 할 수도 있다.
도 1을 참조하면, 예시적인 실시예에 따른 시각화 시스템(100)이 도시되어 있다. 도시된 바와 같이, 시각화 시스템(100)은 백 엔드 데이터 처리 컴포넌트(102), 프론트 엔드 시각화 컴포넌트(104), 인터렉션 컴포넌트(106), 및 분석 컴포넌트(108)를 포함한다. 관련 컴퓨터 분야에 종사하는 당업자들이 이해하는 바와 같이, 도 1에 도시된 이들 기능 컴포넌트는, 실행 가능 소프트웨어 명령어의 세트 및 이 명령어를 실행하기 위한 대응 하드웨어(예를 들어, 메모리 및 프로세서)를 나타낸다. 또한, 도 1에 도시된 다양한 기능 컴포넌트들은 단일 머신(예를 들어, 서버 또는 랩탑) 상에 존재할 수도 있고 혹은 클라우드 기반 아키텍처와 같은 다양한 구성으로 여러 컴퓨터들에 걸쳐 분산될 수도 있다. 또한, 도 1의 기능 컴포넌트는 단수 개념으로 설명되지만, 다른 실시예에서는 하나 이상의 컴포넌트의 다수의 인스턴스가 사용될 수도 있다는 것을 이해해야 한다.
백 엔드 데이터 처리 컴포넌트(102)는 입수 데이터 소스(110)로부터의 라이브 스트리밍 데이터를 처리하는 역할을 한다. 백 엔드 데이터 처리 컴포넌트(102)는 라이브 스트리밍 데이터가 생성될 때 이를 처리한다. 프론트 엔드 시각화 컴포넌트(104)는, 예를 들어, 사용자가 지정한 제약에 기초해서 백 엔드 데이터 처리 컴포넌트(102)로부터의 데이터의 서브세트를 디스플레이한다. 인터렉션 컴포넌트(106)는 프론트 엔드 시각화 컴포넌트(104)와의 사용자 인터렉션을 처리한다. 분석 컴포넌트(108)는 사용자의 선택 및 필터를 결정하고, 이후에 프론트 엔드 시각화 컴포넌트(104)로부터의 출력을 제어하기 위해서 대응하는 규칙을 적용한다. 필터링의 예로서, 분석 컴포넌트(108)는, 특정 카테고리(예를 들어, 제품의 카테고리)의 거래만이 시각화될 수 있도록, 정보를 카테고리에 기초해서 필터링하는 능력을 사용자에게 제공할 수 있다.
대용량의 라이브 데이터 스트림을 효율적으로 처리하기 위해서, 시각화 시스템(100)은 데이터 저장 장치로서 분산형 메시징 시스템(112)을 사용하고, 분산형 실시간 계산 컴포넌트(114)를 이용해서 무한한(unbounded) 데이터 스트림을 신뢰성 있게 처리한다. 나아가, 방대한 양의 정보를 플로팅하도록 프론트 엔드 시각화 컴포넌트(104)의 성능을 확대하기 위해서 프론트 엔드 시각화 컴포넌트(104)는 클라이언트(118)의 디스플레이 장치에 시각 표현을 렌더링하는 렌더링 엔진(116)을 포함한다. 시각 표현이 렌더링되는 클라이언트(118)는 예를 들어 웹 브라우저를 실행하는 컴퓨팅 머신(예를 들어, 퍼스널 컴퓨터 또는 랩탑), 시각화 시스템(100)과 통신하도록 구성된 애플리케이션을 실행하는 모바일 장치(예를 들어, 스마트 폰), VR 헤드셋 디스플레이 또는 이들의 임의의 조합에 대응할 수 있다.
렌더링 엔진(116)은, 로컬의 그래픽 처리 유닛(GPU)(120)(예를 들어, 클라이언트(118)의 GPU)의 연산 리소스를 활용함으로써, 유연한 시간적 및 지형 공간적(geospatial) 시각화 프레임워크를 사용해서 시각화 능력을 개선하고 향상시킨다. 이러한 방식으로, 렌더링 엔진(116)은, 기존의 DOM(Document Object Model) 렌더링에 기초한 것과 같은 전형적인 방식보다 빠른 속도로 데이터를 플로팅할 수 있다.
시각화 시스템(100)은 이벤트 구동식 논블로킹(non-blocking) I/O 런타임 모델을 포함하며, 이는 프론트 엔드 시각화 컴포넌트(104)와 실시간 계산 컴포넌트(114) 사이에서 역할을 하는 하나 이상의 데이터 큐레이션 서버(122)를 포함해서, 큐레이트된 데이터를 프론트 엔드 시각화 컴포넌트(104)에 제공하고 백 엔드 데이터 처리 컴포넌트(102)에 추가 보호층을 제공한다. 부하 밸런서(124)는 시각화 컴포넌트(104)를 포함한 복수의 시각화 컴포넌트와 하나 이상의 데이터 큐레이션 서버(122) 사이의 접속을 분산시킨다.
렌더링 엔진
상술한 바와 같이, 렌더링 엔진(116)은 로컬의 GPU(120)를 이용해서 렌더링 속도를 가속해서, 대량의(예를 들어 수백만의) 기하학적 프리미티브를 용이하게 플로팅한다(예를 들어, 초당 60 프레임으로). DOM 및 SVG(Scalable Vector Graphics) 기반 기술을 사용하는 기존의 방법에서는, 디스플레이에서 렌더링하기 전에 먼저 중간 HTML을 생성한다. 이러한 방식은 대량의 점 또는 선과 같은 기하학적 프리미티브에 맞춰서 적절하게 스케일링되지는 않으며, HTML 파일의 크기를 확대해서 클라이언트 브라우저의 상당한 성능 저하를 유발할 수 있다. 이와 달리, 렌더링 엔진(116)은 오버헤드없이 낮은 레벨의 API(예를 들어, WebGL에 의해 노출됨)를 사용하고, 렌더링 결과는 중간 SVG 요소를 생성하지 않으면서 캔버스 요소 상에 직접 드로잉된다.
도 2를 참조하면, 예시적인 실시예에 따른, 렌더링 엔진(116)의 기능 컴포넌트가 도시된다. 도 2에 도시된 렌더링 엔진(116)의 기능적 컴포넌트들은 하드웨어, 소프트웨어, 또는 이들의 다양한 조합(예를 들어, 메모리 및 프로세서)을 가리킬 수 있다.
렌더링 엔진(116)은 동적인, 대규모의, 실시간 스트리밍 이벤트들을 다양한 시각적 메타포들에 시각화할 수 있다. 이러한 시각적 메타포들은, 3D 가상 지구본이나 또는 2차원(2D) 평면 지도 상의, 공간 적응형 원호 애니메이션, 산점도(scatterplot) 및 지리-기반 막대 도표를 포함한다. 렌더링 엔진(116)은 3D 구형(spherical) 투사법과 2D 평면 투사법 사이의 매끄러운 전환을 제공함으로써, 실시간 스트리밍 이벤트를 지리적 위치 치수로 시각화할 수 있는 최대의 유연성을 사용자에게 제공한다. 전술한 바와 같이, 렌더링 엔진(116)은 예를 들어 웹 브라우저를 실행하는 컴퓨팅 머신(예를 들어, 퍼스널 컴퓨터 또는 랩탑), 시각화 시스템(100)과 통신하도록 구성된 애플리케이션을 실행하는 모바일 장치(예를 들어, 스마트 폰), VR 헤드셋 디스플레이 또는 이들의 임의의 조합과 같은 클라이언트의 디스플레이 상에 시각적 메타포를 렌더링할 수 있다.
도 2에 도시된 바와 같이, 렌더링 엔진(116)은 동적 메모리 관리 컴포넌트(202) 및 적응형 지터 안정화 컴포넌트(204)를 포함한다. 동적 메모리 관리 컴포넌트(202)는, 렌더링 품질은 희생시키지 않으면서 전체 데이터 크기를 관리 가능한 크기로 유지하기 위해서 새로운/이전 데이터의 바꿔오기/바꿔보내기(swapping in/out)을 처리하도록 구성된다. 도시된 바와 같이, 백 엔드 데이터 처리 컴포넌트(102)에 의해 획득되는, 데이터 소스(110)로부터의 라이브 스트리밍 데이터는, 중앙 처리 유닛(CPU) 메모리(206)(예를 들어, CPU 캐시)에 로딩되고, 여기서 동적 메모리 관리 컴포넌트(202)에 의해 페치되어서 GPU 메모리(208)(예를 들어, GPU 캐시)에 로딩된다. 이하 더 상세하게 설명하는 바와 같이, 동적 메모리 관리 컴포넌트(202)는 수학적 모델을 사용해서 오래된 데이터를 GPU 메모리(208)로부터 바꿔오기 하는 시점을 결정해서 스트리밍 데이터의 다수의 배치(batch) 사이의 단절없는 천이를 달성하며, 스트리밍 데이터의 각각의 배치는 다수의 데이터 패킷을 포함할 수 있다. 나아가, 동적 메모리 관리 컴포넌트(202)는 적응형 지터 안정화 컴포넌트(204)에 가장 최근에 도달하는 데이터 패킷의 타임 스탬프(210)를 제공한다.
적응형 지터 안정화 컴포넌트(204)를 참조하면, 지터는, 상정되는 주기 신호의 정확한 주기로부터의 바람직하지 않은 편차를 포함하고 있다. 지터는, 네트워크 트래픽 파동, 패킷 손실, 재전송, 또는 백 엔드 데이터 계산 리소스 변동으로 인해서, 라이브 스트리밍 데이터에서 매우 일반적인 것이다. 일반적으로, 지터는 실시간 스트리밍 데이터의 규칙적인 흐름 패턴을 파괴해서, 실시간 패킷 도달의 불규칙한 지연을 야기하거나, 심지어는 도달 순서를 뒤바꾸기도 한다(예를 들어, 오래된 패킷이 새로운 패킷보다 늦게 도착한다). 지터가 없다면, 가장 최근의 데이터 패킷의 타임 스탬프(210)가 애니메이션의 진행을 제어하는데 사용될 수 있다. 그러나, 지터가 존재하기 때문에, 원래의 지터가 존재하는 스트리밍 데이터의 타임 스탬프(210)를 시각화에서 직접 사용하는 것은 사용자에게 혼란을 야기할 수 있다. 이것은 특히 애니메이트된 공간 적응형 원호 시각화에서 특히 그러하다. 예를 들어 최악의 경우 애니메이트된 원호는 부메랑처럼 앞뒤로 움직인다.
전술한 문제점을 보완하기 위해서, 적응형 지터 안정화 컴포넌트(204)는 가장 최근의 데이터 패킷의 타임 스탬프(210)와 애니메이션 슬라이딩 시간 윈도우(212) 사이의 델타를 계산해서, 슬라이딩 시간 윈도우(212)를 업데이트하기 위한 변화율을 결정한다. 슬라이딩 시간 윈도우(212)는 상한 및 하한을 포함한다. 설명의 목적으로, 시점 t의 입수 데이터 패킷의 에포크 타임스탬프(epoch timestamp)를 Tp(t)라고 한다. 또한,
Figure 112021031273913-pat00001
는 애니메이션 진행을 제어하는 슬라이딩 시간 윈도우를 나타내며, 여기서 Tmin(t)는 하한이고, Tmax(t)는 상한이며,
Figure 112021031273913-pat00002
는 상수이다. 현재 키 프레임에서의 Tw(t)의 변화율은 다음과 같은 1차분 미분식(이하 "식 1"이라 함)에 의해 결정된다.
Figure 112021031273913-pat00003
여기서, ω는 작은 상수 계수이고, h는 스텝 크기로 통상적으로
Figure 112021031273913-pat00004
의 작은 부분이다. 식 1은 예를 들어 오일러 스테핑 공식에 의해 풀릴 수 있다. 식 1의 맥락에서, 슬라이딩 윈도우의 변화율은 가장 최근의 데이터 타임스탬프와 슬라이딩 시간 윈도우의 상한 사이 차이에 따라 달라진다. 데이터 타임스탬프가 슬라이딩 시간 윈도우의 상한보다 오래된 것인 경우에(Tp(t)<Tmax(t)), 식 1은 시간 윈도우가 앞으로 이동하는 것을 중지시킨다. 이것은 오래된 데이터 패킷이 원래 도달했어야 하는 것보다 늦게 도달하는 지터 상황이다. 한편, 슬라이딩 시간 윈도우가 너무 느리게 이동해서 가장 최근의 타임스탬프가 슬라이딩 시간 윈도우의 상한보다 새로운 것인 경우에(Tp(t)>Tmax(t)), 시간 윈도우의 변화율은 유지되거나 혹은 증가된다. 요약하면, 식 1은 Tp(t)와 Tmax(t)의 균형을 맞춰서 동기화되게 한다.
시각화 수학 모델
렌더링 엔진(116)은, 실시간 스트리밍 이벤트의 각각의 발생을 나타내는 애니메이트된 공간 적응형 원호와 같은 시각적 메타포를 형성하는데 수학적 모델을 이용한다. 이러한 이벤트는 일반적으로 적어도 지형 공간적 정보와 시간 정보와의 높은 치수성(dimensionality)을 특징으로 한다. 랜더링 엔진(116)은 다수의 별개의 이벤트 벌크 사이의 매끄러운 천이를 제공해서, 예를 들어, 인간 분석가가 전개된 데이터의 보다 양호한 심리적인 모델(mental model)을 달성하는 것을 도울 수 있다.
일부 실시예에서, 렌더링 엔진(116)은 가상의 3D 지구본 또는 2D 평면 세계 지도 주위에 플로팅된 유연한 애니메이션 공간 적응형 원호를 사용해서 각각의 실시간 이벤트를 나타낸다. 예를 들어, 실시간 이벤트는 구매자와 판매자 사이의 거래에 대응할 수 있고, 렌더링 엔진(116)은 거래가 실시간으로 발생함에 따라 판매자의 위치를 구매자의 위치에 연결하는 곡선형 원호를 명확하게 묘사할 수 있다. 렌더링 엔진(116)이 사용하는 시각화 수학적 모델의 요소들의 분류가 이하에 제시된다.
구면 상에서 두 엔드 포인트 사이에 원호 생성
도 3을 참조하면, i번째 원호의 제 1 포인트 및 마지막 포인트를 pi,0 및 pi,1라고 하고, k는 파라미터이며, 0≤k≤1이다. 원호 상의 어느 포인트를 정의하는 지리적인 식이 이하와 같이 주어진다(이하 '식 2'라 함).
Figure 112021031273913-pat00005
여기서 φi는 도 3에 도시된 바와 같이 i번째 원호에 의해 서브텐드된(subtended) 각도로 계산된다. 이러한 모델은 두 엔드 포인트 사이에서 원호 상에 포인트를 부드럽게 내삽한다.
원호에 적응형 곡률 제어를 도입
전술한 식 2를 더 확대하기 위해서, 적응형 곡률 제어가 포함되어서, 구의 면의 서로 가까운 한 쌍의 포인트가 멀리 떨어져 있는 한 쌍의 포인트를 연결하는 원호보다 더 평탄하게 보이는 원호를 생성할 수 있을 것이다. 곡선의 수가 많으면 적응형 곡률 제어를 포함하는 것의 여러 이점이 존재하며, 예를 들어, 1) 원호의 더 많은 시각적인 변이를 제공하는 것, 2) 시각적인 클러터를 감소시키는 것(이 모델에서 긴 원호는 짧은 원호보다 더 높은 고도를 갖는 경향이 있기 때문에), 3) 엔드 포인트 사이의 거리에 의해서 원호가 자연스럽게 클러스터링되게 해서 핵심적인 시각적인 패턴의 세트를 형성하는 것, 4) 더 긴 원호가 가상 3D 지구본에 의해 가로막히는 것을 완화시키는 것을 포함한다.
새로운 원호 상의 임의의 포인트를 정의하는 기하학적 공식은 다음과 같이 주어진다(이하, '식 3'이라 함).
Figure 112021031273913-pat00006
여기서 최대 높이 hi,max는 원호 곡률을 결정하고, hi,max=λΦi로 정의되며, 0≤λ≤1는 모든 원호에 적용되는 사용자 선택 전체 상수 계수이다. 특히, λ=0이면, 식 3은 식 2로 축소된다. 일례로서, 식 3의 적용 결과가 도 4에 도시되어 있다.
원호에 애니메이션을 도입
마지막 2개의 모델에 기초해서 시작 포인트(소스)와 엔드 포인트(목적지)를 식별하는 것은 어렵다. 이러한 문제를 해결하기 위해서, 소스 포인트에서 목적지 포인트로 비행하는 하이라이트(flying highlight)를 표시함으로써 애니메이션이 원호에 도입된다. 비행하는 하이라이트는, 원호의 나머지 부분의 불투명도는 감소된 상태에서, 원호 중 불투명도가 높은 작은 일부분이다. 어느 부분이 더 높은 불투명도를 가질지를 변경함으로써, 렌더링 엔진(116)은 비행하고 있는 원호라는 심리적인 인상을 시청자에게 제공하는 애니메이션을 생성할 수 있다. 소스 포인트 및 목적지 지점을 나타내기 위해서, 상이한 색상, 형상 또는 라벨과 같은, 상이한 다른 시각적 메타포를 사용할 수는 있지만, 원호를 사용하면 얻을 수 있는 이점은 다음과 같다. 1) 2개의 목적지 포인트 사이의 차이를 시각적으로 비교하지 않고도 소스 포인트와 목적지 포인트의 아이디어를 즉시 캡처할 수 있고(이는 하나의 엔드 포인트 또는 2개의 엔드 포인트가 가상 지구본의 반대면에 있는 경우 특히 그러하다), 및 2) 인간의 눈은 이동하는 물체에 더 민감하기 때문에 주목도와 참여도를 더 높게 한다.
이 모델에서 i번째 원호에 따른 불투명도 분포는 그 피크 위치가 전술한 슬라이딩 시간 윈도우에 의해 제어되는 가우스 함수(이하 '식 4')에 의해 공식화된다.
Figure 112021031273913-pat00007
여기서 파라미터 ti는 i번째 이벤트의 에포크 타임스탬프이다. α 및 β는 조정 가능한 상수 계수이다. k는 식 3에서와 같은 파라미터이다. τ는 시작 포인트 pi,o에 대한 원호 상의 하이라이트 위치를 제어하는 새로운 파라미터이다(0≤τ≤1). 예를 들어, τ=0일 때, OP(k, 0)는 t=0에서 최대 값을 달성하며, 이는 pi,o에 대응한다. 유사하게 τ=1일 때, OP(k, 1)는 k=1에서 최대 값을 달성하며, 이는 pi,1에서이다. 결과적으로, τ가 0에서 1로 갈수록, 하이라이트 부분은 시작 포인트(예를 들어, 소스 위치)에서 엔드 포인트(예를 들어, 목적지 위치)로 이동한다. 상수 계수 c는 작은 임계값이므로 그 k>c+τ인 원호의 부분에 대해 불투명도는 간단히 0으로 떨어진다.
도 5(a) 및 도 5(b)는 식 4의 예시적인 적용예를 제공한다. 도 5(a)를 참조하면, 점선 화살표는 τ가 0에서 1로 증가함에 따른 하이라이트 이동 방향을 나타낸다. 점선 화살표 아래의 펄스 함수는 식 4에 의해 정의되는 원호에 따른 불투명도 분포를 나타낸다. 도 5(b)를 참조하면, 도 5(a)와 유사한 예가 도시되어 있지만, τ가 더 높은 값으로 증가되어서 하이라이트는 목적지 포인트 pi,1에 더 가깝게 이동하게 된다.
원호 유지(arc retention)를 포함
랜더링 엔진(116)은 디스플레이 상에 오래된 원호(오래된 이벤트를 나타냄)를 무기한으로 유지되어서 심각한 시각적 클러스터를 야기하는 것을 방지하도록 구성된다. 또한, 동적 메모리 관리 컴포넌트(202)는 새로운 데이터를 위해서 CPU 및 GPU 메모리를 모두 클리어하는 역할을 한다. 이를 위해서, 식 4는 오래된 데이터가 메모리로부터 제거되도록 하는 데이터 유지 방식으로 더욱 개선될 수 있다. 그러나, 오래된 데이터를 직접 제거하면, 디스플레이에서 일련의 원호가 갑자기 사라지는 것과 같은 불쾌한 시각적 결함을 유발할 수 있다. 이 문제를 해결하기 위해서, 렌더링 엔진(116)은 일시적 감쇠 계수를 사용해서, 각 원호의 불투명도를, 대응하는 이벤트와 연관된 타임스탬프로부터 결정되는 그 오래된 정도(age)에 기초하여 점차 감소시킨다. 원호가 완전히 투명하게 되면, 그 대응 데이터가 메모리로부터 제거된다. 다음 식(이하 '식 5'라고 함)은 페이드 아웃 효과를 분석적으로 매끄럽게 제어하는 데 사용된다.
Figure 112021031273913-pat00008
식 5에서, 식 4와 동일한 슬라이딩 시간 윈도우가 적용된다. 파라미터 ti는 i번째 이벤트의 에포크 타임스탬프이다. γ 및 σ는 감쇠율 즉 원호를 얼마나 유지하고자 하는지를 결정하는 조정 가능한 상수 계수이다.
공간적 및 시간적 불투명도 제어
마지막으로, 비행하는 원호 애니메이션 및 페이드 아웃 효과를 모두 제어하기위한 통합 모델을 수립하기 위해, 식 4 및 식 5가 융합되어서 다음 식(이하, '식 6'이라 함)에 포함될 수 있다.
Figure 112021031273913-pat00009
전체적으로, 식 6 및 식 3은 함께, 시간 ti에 나타나는 i번째 실시간 이벤트를 나타내기 위한 시각적 메타포로 사용되는 시변형 및 공간 적응형 원호를 정의한다. k에 의해 파라미터화된 이 원호에 따른 모든 포인트에 대해, 그 공간적인 위치가 식 3에 의해 주어지며, 그 불투명도는 식 5에 의해 계산된다. 시간이 경과함에 따른 전체 애니메이션 및 페이드 아웃 효과를 유도하는 변수는 슬라이딩 시간 윈도우(Tmin(t), Tmax(t))이다.
파라미터 최적화
일부 경우에, 시각적 메타포의 시간적 불투명도가 너무 빨리 감쇠되어서, 애니메이트된 하이라이트가 소스 포인트 pi,0에서 목적지 포인트 pi,1로 플라이하는 충분한 시간을 주지 못할 수 있다. 애니메이트된 하이라이트가 목적지 포인트에 도달한 후 각 원호가 잠시 동안 확실히 유지되게 하기 위해서, 다음 식을 사용해서 원호가 일찍 페이드 아웃되는 것을 방지할 수 있다.
Figure 112021031273913-pat00010
도시된 바와 같이, 식 5의 파라미터 σ는, 하이라이트가 목적지 포인트에 도달하기 전에 장시간 동안 원호를 가시적으로 유지할 수 있도록 식 5에서의 가우시안 함수를 충분히 평평하게 하기 위해서, 슬라이딩 윈도우의 크기의 절반 이상이어야 한다.
나아가, 일부 실시예에서, 시각화 시스템(100)에 의해 사용되는 원호 모델링 기술은, 포스-다이렉티드 에지 번들링(Force-Directed Edge Bundling) 및/또는 커널 밀도 추정(kernel density estimation)과 같은 에지-번들링 기술을 통해서 향상될 수 있다. 이러한 종류의 기술은 시각적인 클러스터 문제를 더 개선해서 잠재적으로 높은 수준의 에지 또는 원호 패턴을 나타낼 수 있다. 이 기술의 예가 도 15에 나타나 있다.
전술한 수학적 모델을 이용해서, 렌더링 엔진(116)은 이력 데이터를 재생하는 것에 더해서 라이브 실시간 이벤트 데이터의 매끄러운 천이 및 효율적인 렌더링을 처리할 수 있다. 이는 분석가가 과거 데이터를 빨리 감기 방식으로 보고, 하루 또는 1주일분의 데이터를 몇 분만에 재생하려는 경우에 특히 유용할 수 있다.
도 6 내지 도 8은 예시적인 실시예에 따른, 시각적 메타포를 렌더링하는 방법(600)을 수행하는 시각화 시스템(100)의 예시적인 동작을 나타내는 흐름도이다. 방법(600)은 하드웨어 컴포넌트(예를 들어, 프로세서)에 의한 실행을 위한 컴퓨터 판독 가능 명령어로 구현될 수 있으며, 방법(600)의 동작들은 컴퓨팅 머신에 의해 수행될 수 있다. 특히, 방법(600)의 동작들은 부분적으로 또는 전체적으로 시각화 시스템(100)을 형성하는 기능 컴포넌트에 의해 수행될 수 있으며, 따라서, 이하에서는 방법(600)은 예로서 시각화 시스템(100)를 참조해서 설명된다. 그러나, 방법(600)은 다양한 다른 하드웨어 구성에 배치될 수도 있으며, 시각화 시스템(100)으로 한정되도록 의도한 것은 아니다.
동작 605에서, 백 엔드 데이터 처리 컴포넌트(102)는 데이터 소스(110)로부터 라이브 스트리밍 데이터를 획득한다. 라이브 스트리밍 데이터는 하나 이상의 데이터 패킷을 포함하고, 각각의 데이터 패킷은 이벤트를 서술한다. 각각의 데이터 패킷은 소스 위치 및 목적지 위치를 나타내는 이벤트 및 지형 공간적 데이터에 대응하는 타임스탬프(210)를 포함한다. 데이터 소스(110)는 예를 들어, 하나 이상의 상거래 관련 애플리케이션을 호스팅하는 네트워크 기반 상거래 플랫폼의 서버를 포함하거나 혹은 이에 대응할 수 있다. 이 예에서, 이벤트는 네트워크 기반 상거래 플랫폼에서 발생하는 트랜잭션에 대응할 수 있으며, 여기서 소스 위치는 판매자 위치에 대응하고 목적지 위치는 구매자 위치에 대응한다.
라이브 스트리밍 데이터를 처리할 때, 백 엔드 데이터 처리 컴포넌트(102)는 라이브 스트리밍 데이터를 CPU 메모리(206)에 로딩한다(610). 예를 들어, 라이브 스트리밍 데이터는 서버 머신의 CPU 캐시에 추가될 수 있다.
동적 메모리 관리 컴포넌트(202)는 CPU 메모리(206)로부터의 라이브 스트리밍 데이터의 적어도 일부를 페치하고(동작 615에서), 페치된 라이브 스트리밍 데이터를 로컬 GPU 메모리(208)에 로딩한다(동작 620에서). 라이브 스트리밍 데이터 중 CPU 메모리(206)로부터 페치되어서 GPU 메모리(208)에 로딩되는 부분은, 사용자에 의해 제공되는 하나 이상의 제약에 기초할 수 있다. 네트워크 기반 상거래 플랫폼의 예에서, 사용자는 특정 타입 또는 카테고리의 거래만을 시각화하도록 요청할 수 있다. 페치된 라이브 스트리밍 데이터를 GPU 메모리(208)에 로딩하기 전에, 동적 메모리 관리 컴포넌트(202)는 데이터 패킷을 GPU에 의한 처리에 적합한 포맷으로 변환할 수 있다. 다른 예로서, 사용자는 제약으로서 시간 범위를 제공할 수 있고, 동적 메모리 관리 컴포넌트(202)에 의해 페치되는 데이터는 사용자가 지정한 시간 범위 내의 타임스탬프를 가진 데이터 패킷에 대응한다. 일부 실시예에서, 동적 메모리 관리 컴포넌트(202)는 하나 이상의 데이터 패킷이 GPU 메모리(208)로부터 제거되는 것에 응답해서 라이브 스트리밍 데이터를 페치할 수 있다(이하 더 설명함).
동작 625에서, 렌더링 엔진(116)은 시각화 수학적 모델을 사용해서 지도 상에 하나 이상의 시각적 메타포를 디스플레이 상에 렌더링한다. 각 시각적 메타포는 실시간 스트리밍 데이터에 포함된 이벤트를 나타낸다. 하나 이상의 시각적 메타포는 공간 적응형 원호 애니메이션, 산점도(scatterplot) 및 지리-기반 막대 도표를 포함할 수 있다. 시각화 수학적 모델은, 각각의 시각적 메타포에 대해서, 슬라이딩 시간 윈도우(예를 들어, 도 2에 도시된 슬라이딩 시간 윈도우(212)) 동안의 시각적 메타포의 다양한 공간적인 위치 및 불투명도를 정의한다. 예를 들어, 전술한 바와 같이, 공간 적응형 원호 애니메이션을 참조하면 시각화 수학 모델은 슬라이딩 시간 윈도우 동안의 원호에 따른 모든 포인트의 공간적인 위치 및 불투명도를 제어한다. 이 예에서, 시각화 수학적 모델은, 소스 위치와 목적지 위치 사이의 원호 상에 포인트를 내삽하는 제 1 컴포넌트, 소스 위치와 목적지 사이의 거리에 기초해서 원호에 곡률 제어를 적용하는 제 2 컴포넌트, 슬라이딩 시간 윈도우 동안의 원호 상의 포인트의 불투명도를 변화시킴으로써 원호에 애니메이션을 도입하는 제 3 컴포넌트, 대응하는 이벤트와 연관된 타임스탬프로부터 결정되는 원호의 오래된 정도에 기초해서 원호의 불투명도를 감소시키는 제 4 컴포넌트(예를 들어, 라이브 스트리밍 데이터에 포함된 데이터 패킷에 의해 서술됨).
동작 630에서, 동적 메모리 관리 컴포넌트(202)는 GPU 메모리(208) 및 CPU 메모리(206)로부터 하나 이상의 데이터 패킷을 제거한다. 전술한 바와 같이, 시각 수학 모델은 시각적 메타포가 완전히 투명하게 되어서 시각적인 클러스터를 감소시킬 때까지 시각적 메타포의 불투명도를 점차 감소시킨다. 동적 메모리 관리 컴포넌트(202)는 대응하는 시각적 메타포에 응답하여 GPU 메모리(208)로부터 데이터 패킷을 제거해서, CPU 메모리 및 GPU 메모리(206, 208)에 새로운 데이터를 위한 공간을 마련할 수 있다.
도 7에 도시된 바와 같이, 방법(600)은 일부 실시예들에서 동작들 705, 710, 715 및 720을 더 포함할 수 있다. 일부 실시예들과 일관되게, 동작들 705, 710, 715 및 720은, 렌더링 엔진(116)이 하나 이상의 시각적 메타포를 렌더링하는, 동작 625의 일부(예를 들어, 서브 프로세스 또는 서브 루틴)를 포함할 수 있다. 구체적으로, 동작 705, 710, 715 및 720은 라이브 스트리밍 데이터에 포함된 데이터 패킷에 의해 서술된 이벤트를 나타내는 특정 시각적 메타포(공간 적응형 원호)를 생성하는 동작에 대응한다. 공간 적응형 원호의 단 하나의 인스턴스 만이 후속하는 설명에서 다루어 지지만, 동작 625은 다수의 공간 적응형 원호를 렌더링하는 것을 포함할 수 있다는 것을 이해해야 한다.
동작 705에서, 렌더링 엔진(116)은 소스 위치를 목적지 위치에 연결하는, 맵 상의 원호의 포인트들을 내삽한다. 렌더링 엔진(116)은 상술한 바와 같이 시각적 수학적 모델에 기초해서 원호의 포인트들을 내삽한다.
동작 710에서, 렌더링 엔진(116)은 소스 위치와 목적지 위치 사이의 거리에 기초해서 원호에 곡률 제어를 적용한다. 원호에 곡률을 적용함에 있어서, 렌더링 엔진(116)은 상술한 시각적 수학적 모델에 따라서 소스 위치와 목적지 위치 사이의 거리에 기초하여 원호의 최대 높이를 결정한다.
동작 715에서, 렌더링 엔진(116)은 소스 위치로부터 목적지 위치로의 원호의 이동을 애니메이트한다. 렌더링 엔진(116)은 전술한 시각적 수학적 모델에 따라 슬라이딩 시간 윈도우 동안의 원호의 부분의 불투명도를 변화시킴으로써 원호의 이동을 애니메이트한다. 보다 구체적으로, 렌더링 엔진(116)은, 초기에 소스 위치에 위치된 원호의 특정 부분('하이라이트' 부분)의 불투명도를 증가시키고, 원호의 다른 부분의 불투명도는 유지하면서 하이라이트 부분을 소스 위치로부터 목적지 위치로 점차 이동시킴으로써, 원호의 이동을 애니메이트한다.
동작 720에서, 렌더링 엔진(116)은 원호의 전체 불투명도를 점차 감소시킨다. 렌더링 엔진(116)은 원호가 완전히 투명해질 때까지(예를 들어, 슬라이딩 시간 윈도우의 끝에서), 슬라이딩 시간 윈도우 동안의 원호의 전체 불투명도를 점차 감소시킨다.
도 8에 도시된 바와 같이, 방법(600)은 일부 실시예에서, 동작들 805, 810, 815, 및 820을 더 포함할 수 있다. 도시된 바와 같이, 동작들 805, 810, 815, 및 820은 동적 메모리 관리 컴포넌트(202)가 CPU 메모리(206)로부터의 라이브 스트리밍 데이터의 적어도 일부를 페치하는 동작 615에 이어서 수행될 수 있으며, 동적 메모리 관리 컴포넌트(202)가 로컬 GPU 메모리(208)에 페치된 데이터를로드하는 동작 620과 동시에 수행될 수 있다. 나아가, 이하 설명으로부터 자명한 바와 같이, 동작들 805, 810, 815, 및 820은 적응형 지터 안정화 컴포넌트(204)에 의해 수행되는 적응형 지터 제어 방법에 대응한다.
동작 805에서, 적응형 지터 안정화 컴포넌트(204)는 CPU 메모리(206)로부터 페치된 라이브 스트리밍 데이터에 포함된 데이터 패킷의 타임스탬프(210)에 액세스한다. 타임스탬프(210)는 메모리 관리 컴포넌트(202)에 의해 적응형 지터 안정화 컴포넌트(204)에 제공될 수 있다.
전술한 바와 같이, 슬라이딩 시간 윈도우(212)는 하한 및 상한을 포함한다. 동작 810에서, 적응형 지터 안정화 컴포넌트(204)는 타임스탬프(210)를 슬라이딩 시간 윈도우(212)의 상한과 비교해서, 타임스탬프(210)가 슬라이딩 시간 윈도우(212)의 상한보다 오래된 것인지를 결정한다. 환언하면, 적응형 지터 안정화 컴포넌트(204)는 타임스탬프(210)가 슬라이딩 시간 윈도우(212)의 상한보다 시간적으로 빠른 것인지 여부를 결정한다. 적응형 지터 안정화 컴포넌트(204)가 타임스탬프(210)가 슬라이딩 시간 윈도우(212)의 상한보다 오래된 것이라고 결정하면, 적응형 지터 안정화 컴포넌트(204)는 동작 815에서 슬라이딩 시간 윈도우(212)의 변화율을 감소시키거나 정지시킨다. 적응형 지터 안정화 컴포넌트(204)가 상한이 타임스탬프(210)보다 오래된 것이라고 결정하는 경우에, 적응형 지터 안정화 컴포넌트(204)는 동작 820에서 슬라이딩 시간 윈도우(210)의 변화율을 유지하거나 혹은 증가시킨다.
도 9 내지 도 15는 다양한 실시예에 따른 사용자 인터페이스의 양태를 나타낸다. 도 9는 3D 가상 지구본 둘레를 비행하는 다수의 공간 적응형 원호를 도시하며, 각각은 소스 위치와 목적지 위치 사이의 고유한 거래를 실시간으로 나타낸다. 도 10은 실시간 이벤트의 밀도를 사용하여 3D 가상 지구본에 렌더링된 산점도를 나타낸다. 도 11은 이력(historical) 이벤트의 누적 수를 사용해서 3D 가상 지구본에 렌더링된 막대 도표를 나타낸다. 도 12는 2D 평면 세계 지도 상에 투영된 공간 적응형 원호를 나타낸다.
도 13은 식 5에서 감쇠율이 낮을 때 나타나는 렌더링된 원호 세트를 도시한다. 도시된 바와 같이, 식 3의 공간 적응형 제어는 원호의 엔드 포인트 사이의 거리에 의해서 원호가 자연스럽게 클러스터링되게 해서 핵심적인 시각적인 패턴의 세트를 형성한다.
도 14는 미국에서의 실시간 거래 이벤트의 순간을 도시한다. 원호의 하이라이트는 소스 위치(예를 들어, 판매자 위치)로부터 목적지 위치(예를 들어, 구매자 위치)까지의 비행 방향을 나타낸다.
도 15는 포스-다이렉티드 에지 번들링(Force-Directed Edge Bundling)을 이용해서 다수의 원호들을 이들의 공간적인 근접성 및 사용자가 정의한 속성들의 유사성에 기초하여 번들링한 결과를 도시한다.
도 16을 참조하면, 클라이언트-서버-기반 아키텍처(1600)의 예시적인 실시예가 도시된다. 보다 구체적으로, 도 16은 시각화 시스템(100)이 배치될 수 있는 네트워크 시스템의 예를 도시한다. 불필요한 세부 사항으로 본 신규한 청구 대상을 모호하게 하는 것을 방지하기 위해서, 본 신규한 청구 대상을 이해시키는 것과 밀접하지 않은 다양한 기능적 컴포넌트는 도 16에서 생략되었다. 또한, 도 16에 도시된 다양한 기능적 컴포넌트 단수로서 설명되었지만, 다양한 기능적 컴포넌트들 중 어느 하나의 다수의 인스턴스가 사용될 수도 있다.
도 16에 도시된 바와 같이, 클라이언트 장치(1610)는 네트워크(1606)를 통해 컨텐츠 공개 플랫폼(1602)과 통신할 수 있다. 일부 실시예와 일관되게, 장치(1610)는 시각화 시스템(100)의 시각화 컴포넌트(104)를 포함한다. 일부 실시예에서, 컨텐츠 퍼블리케이션 플랫폼(1602)은 데이터 소스(110)에 대응한다.
네트워크(1606)의 하나 이상의 부분은 애드혹 네트워크, 인트라넷, 엑스트라 넷, VPN(virtual private network), LAN(local area network), WLAN(wireless LAN), WAN(wide area network), WWAN(wireless WAN), MAN(metropolitan area network), PSTN(public switched telephone network)의 일부, 셀룰러 전화 네트워크, 무선 네트워크, WiFi 네트워크, WiMax 네트워크, 다른 유형의 네트워크, 또는 이러한 네트워크의 2개 이상의 조합을 포함할 수 있다.
컨텐츠 퍼블리케이션 플랫폼(1602)은 서버측 기능을 네트워크(1606)를 통해서 클라이언트 장치(1610)에 제공한다. 클라이언트 장치(1610)는 이동 전화, 데스크톱 컴퓨터, 가상 현실 헤드셋 또는 다른 가상 실현 가능 장치, 노트북, PDA, 스마트 폰, 태블릿, 울트라 북, 넷북, 랩톱, 멀티 프로세서 시스템, 마이크로 프로세서 기반 또는 프로그램 가능한 소비자 전자 장치, 게임 콘솔, 셋톱 박스, 또는 컨텐츠 퍼블리케이션 플랫폼(1602)이나 시각화 시스템(100)에 액세스하기 위해 사용자가 활용할 수 있는 임의의 다른 통신 장치를 포함할 수 있지만, 이것으로 한정되는 것은 아니다. 일 실시예에서, 컨텐츠 퍼블리케이션 플랫폼(1602)은 출판물(예를 들어, 웹 문서)을 출판하는 네트워크 기반 시장으로, 네트워크 기반 시장에서 사용 가능한 제품의 품목 목록을 포함한다. 이러한 네트워크 기반 시장은 특정 카테고리의 제품 또는 여러 카테고리의 제품의 목록을 호스팅할 수 있다.
클라이언트 장치(1610)는, 비한정의 예로서 웹 브라우저, 가상 현실 애플리케이션, 메시징 애플리케이션, 전자 메일(이메일) 애플리케이션, 전자 상거래 애플리케이션(시장 애플리케이션이라고도 함) 등과 같은 하나 이상의 애플리케이션('앱'이라고도 함)을 더 포함할 수 있다. 일부 실시예에서, 클라이언트 장치는 데이터 혹은 처리 성능을 로컬하게 이용할 수 없는 경우(예를 들어, 판매 가능한 아이템의 데이터베이스에 액세스하는 것, 사용자(1604)를 인증하는 것, 지불 방법을 확인하는 것 등)에, 필요에 따라서 사용자 인터페이스 및 컨텐츠 퍼블리케이션 플랫폼(1602)과 통신하는 기능 중 적어도 일부를 로컬하게 제공하도록 구성된 하나 이상의 애플리케이션을 포함할 수 있다.
사용자(1604)는 사람, 머신 또는 클라이언트 장치(1610)와 인터렉션하는 다른 수단일 수 있다. 예시적인 실시예에서, 사용자(1604)는 클라이언트-서버 기반 아키텍처(1600)의 일부가 아니고, 클라이언트 장치(1610)를 통해서 시각화 시스템(100) 및 컨텐츠 퍼블리케이션 플랫폼(1602)과 인터렉트할 수 있다.
애플리케이션 서버 인터페이스(API) 서버(1620) 및 웹 서버(1622)는 각각 애플리케이션 서버(1640)에 연결되어서 프로그램식의 웹 인터페이스를 여기에 제공한다. 애플리케이션 서버(1640)는 퍼블리케이션 애플리케이션(1642)을 호스팅할 수 있으며, 이는 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 애플리케이션 서버(1640)는 데이터베이스(1626)에 대한 액세스를 용이하게 하는 데이터베이스 서버(1624)에 연결되는 것으로 도시되어 있다. 예시적인 실시예에서, 데이터베이스(1626)는 퍼블리케이션 애플리케이션(1642)으로 포스팅될 정보(예컨대, 퍼블리케이션 혹은 리스트)를 저장하는 저장 장치이다. 데이터베이스(1626)는 또한 예시적인 실시예에 따라 디지털 아이템 정보를 저장할 수 있다.
퍼블리케이션 애플리케이션(1642)은 다수의 퍼블리케이션 기능 및 서비스를 컨텐츠 퍼블리케이션 플랫폼(1602)에 액세스하는 사용자에게 제공한다. 예를 들어, 퍼블리케이션 애플리케이션(1642)은 사용자(1604)가 클라이언트 장치(1610)를 사용해서 웹 문서(예컨대, 제품 리스트)를 생성 및 발행하는 것을 가능하게 하는 인터페이스를 제공한다(예를 들어, 클라이언트 장치(1610)와의 통신을 통해서). 퍼블리케이션 애플리케이션(1642)은 또한 사용자(1604)가 발행된 웹 문서의 다양한 부분을 수정하는 것을 가능하게 하는 인터페이스를 제공할 수 있다.
시각화 시스템(100)의 컨텐츠 퍼블리케이션 플랫폼(1602) 및 시각화 컴포넌트가 도 16에 개별적이고 별개로 도시되어 있지만, 대안적인 실시예에서, 시각화 시스템(100)은 컨텐츠 퍼블리케이션 플랫폼(1602)에 통합되어서 그 일부를 형성할 수 있다(예를 들어, 시각화 시스템(100)은 컨텐츠 퍼블리케이션 플랫폼(1602)의 서브 시스템이다).
소프트웨어 아키텍처
도 17은 전술한 장치 중 임의의 하나 이상에 설치될 수 있는, 소프트웨어의 아키텍처(1702)를 나타내는 블록도(1700)이다. 도 17은 소프트웨어 아키텍처의 비제한적 예일뿐으로, 본 명세서에서 설명되는 기능을 용이하게 하기 위해 많은 다른 아키텍처가 구현될 수도 있다는 점이 이해될 것이다. 다양한 실시예들에서, 소프트웨어(1702)는 프로세서(1810), 메모리(1830), 및 I/O 컴포넌트들(1850)을 포함하는 도 18의 머신(1800)과 같은 하드웨어에 의해 구현된다. 이러한 예시적인 아키텍처에서, 소프트웨어(1702)는 레이어들의 스택으로서 개념화될 수 있는데, 각각의 레이어가 특정 기능성을 제공할 수 있다. 예를 들어, 소프트웨어(1702)는 운영 체제(1704), 라이브러리(1706), 프레임워크(1708) 및 애플리케이션(1710)과 같은 레이어를 포함한다. 동작시에, 애플리케이션(910)은, 일부 실시예들과 일관되게, 소프트웨어 스택을 통해 API(application programming interface) 호출(1712)을 불러오기하고, API 호출(1712)에 응답해서 메시지(1714)를 수신한다.
다양한 구현예에서, 운영 체제(1704)는 하드웨어 리소스를 관리하고 공통 서비스를 제공한다. 운영 체제(1704)는, 예를 들어 커널(1720), 서비스(1722) 및 드라이버(1724)를 포함한다. 커널(1720)은 일부 실시예들과 일관되게 하드웨어와 다른 소프트웨어 레이어 사이의 추상화 레이어(abstraction layer)로서 작용한다. 예를 들어, 커널(1720)은, 다른 기능성 중에서, 메모리 관리, 프로세서 관리(예를 들어, 스케줄링), 컴포넌트 관리, 네트워킹 및 보안 설정을 제공한다. 서비스(1722)는 다른 소프트웨어 레이어에 대한 다른 공통 서비스를 제공할 수 있다. 드라이버(1724)는 일부 실시예들에 따른 기본 하드웨어를 제어하거나 이와 인터페이싱하는 것을 담당한다. 예를 들어, 드라이버(1724)는 디스플레이 드라이버, 카메라 드라이버, BLUETOOTH® 또는 BLUETOOTH® 로우 에너지 드라이버, 플래시 메모리 드라이버, 직렬 통신 드라이버(예를 들어, USB(Universal Serial Bus) 드라이버), WI-FI® 드라이버, 오디오 드라이버, 전력 관리 드라이버 등을 포함할 수 있다.
일부 실시예에서, 라이브러리(1706)는 애플리케이션들(1710)에 의해 이용되는 로우-레벨 공통 인프라스트럭처를 제공한다. 라이브러리(1706)는 메모리 할당 기능, 문자열 조작 기능, 수학 기능 등과 같은 기능을 제공할 수 있는 시스템 라이브러리(1730)(예를 들어, C 표준 라이브러리)를 포함할 수 있다. 나아가, 라이브 러리(1706)는 미디어 라이브러리(예를 들어, MPEG4(Moving Picture Experts Group-4), H.264 또는 AVC(Advanced Video Coding), MP3(Moving Picture Experts Group Layer-3), AAC(Advanced Audio Coding), AMR(Adaptive Multi-Rate) 오디오 코덱, JPEG 또는 JPG(Joint Photographic Experts Group), 또는 PNG(Portable Network Graphics)와 같은, 다양한 미디어 포맷들의 프리젠테이션 및 조작을 지원하는 라이브러리), 그래픽 라이브러리(예를 들어, 디스플레이 상에 그래픽 콘텐츠에서 2차원(2D) 및 3차원(3D)으로 렌더링하는데 사용되는 OpenGL 프레임워크), 데이터베이스 라이브러리(예를 들어, 다양한 관계형 데이터베이스 기능 들을 제공하는 SQLite), 웹 라이브러리(예를 들어, 웹 브라우징 기능성을 제공하는 WebKit) 등과 같은, API 라이브러리(1732)를 포함할 수 있다. 라이브러리(1706)는 많은 다른 API를 애플리케이션들(1710)에 제공하는 광범위한 다른 라이브러리들(1734)을 또한 포함할 수 있다.
프레임워크(1708)는, 일부 실시예에 따른, 애플리케이션(1710)에 의해 이용될 수 있는 하이-레벨 공통 인프라스트럭처를 제공한다. 예를 들어, 프레임워크(1708)는 다양한 GUI(graphic user interface) 기능, 하이-레벨 리소스 관리, 하이-레벨 위치 서비스 등을 제공한다. 프레임워크(1708)는 애플리케이션(1710)에 의해 이용될 수 있는 넓은 스펙트럼의 다른 API를 제공할 수 있고, 이들 중 일부는 특정 운영 체제 또는 플랫폼에 특정된 것일 수도 있다.
예시적인 실시예에서, 애플리케이션(1710)은, 홈 애플리케이션(1750), 연락처 애플리케이션(1752), 브라우저 애플리케이션(1754), 북 리더 애플리케이션(1756), 위치 애플리케이션(1758), 미디어 애플리케이션(1760), 메시징 애플리케이션(1762), 게임 애플리케이션(1764), 및 제3자 애플리케이션(1766)과 같은, 광범위한 다른 애플리케이션을 포함한다. 일부 실시예들에 따르면, 애플리케이션(1710)은 프로그램에서 정의되는 기능을 실행하는 프로그램이다. 객체 지향형 프로그래밍 언어(예를 들어, Objective-C, Java, 또는 C++) 또는 절차형 프로그래밍 언어(예를 들어, C 또는 어셈블리 언어)와 같은, 다양한 방식으로 구조화되는, 다양한 프로그래밍 언어들이 애플리케이션들(1710) 중 하나 이상을 생성하는데 이용될 수 있다. 구체적인 예에서, 제3자 애플리케이션(1766)(예를 들어, 특정 플랫폼의 공급자 이외의 엔티티에 의해 ANDROIDTM 또는 IOSTM SDK(software development kit)을 사용하여 개발되는 애플리케이션)은 IOSTM, ANDROIDTM, WINDOWS® Phone, 또는 다른 모바일 운영 체제와 같은, 모바일 운영 체제 상에서 실행되는 모바일 소프트웨어일 수 있다. 이러한 예에서, 제3자 애플리케이션(1766)은 본 명세서에서 설명되는 기능을 용이하게 하기 위해 운영 체제(1704)에 의해 제공되는 API 호출(1712)을 불러내기할 수 있다.
머신 아키텍쳐
도 18은 일 예시적인 실시예에 따라 머신(1800)으로 하여금 본 명세서에 논의된 임의의 하나 이상의 방법을 수행하도록 하는 명령어의 세트가 실행될 수 있는, 컴퓨터 시스템 형태의 머신(1800)의 도식적인 표현을 나타낸다. 구체적으로, 도 18은 머신(1800)으로 하여금 본 명세서에 설명된 방법들 중 임의의 하나 이상의 방법을 수행하게 하는 명령어(1816)(예를 들어, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱 또는 다른 실행 가능한 코드)가 실행될 수 있는 컴퓨터 시스템의 예시적 형태의 머신(1800)의 개략도를 도시한다. 예를 들어, 명령어(1816)는 머신(1800)으로 하여금 도 6 내지 도 8의 방법(600)을 수행하게 한다. 이와 달리 혹은 이에 더해서, 명령어(1816)는 도 1 및 도 2 등에 도시된 컴포넌트의 적어도 일부를 구현할 수 있다. 명령어(1816)는 일반적이고 프로그램되지 않은 머신(1800)을, 설명되고 도시된 기능을 개시된 방식으로 수행하도록 프로그램된 특정 머신(1800)으로 변환시킨다. 대안의 실시예에서, 머신(1800)은 독립형 장치로서 동작하거나 다른 머신에 결합(예를 들어, 네트워크화)될 수 있다. 네트워크화된 구성에서, 머신(1800)은 서버-클라이언트 네트워크 환경에서 서버 머신 또는 클라이언트 머신의 기능으로 동작할 수 있거나, 피어 투 피어(또는 분산형) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신(1800)은 비 한정적인 예로서, 서버 컴퓨터, 클라이언트 컴퓨터, 퍼스널 컴퓨터(PC), 태블릿 컴퓨터, 랩탑 컴퓨터, 넷북, 셋톱 박스(STB), PDA, 엔터테인먼트 미디어 시스템, 셀룰러 전화, 스마트 폰, 모바일 장치, 웨어러블 장치(예를 들어, 스마트 워치), 스마트 홈 장치(예를 들어, 스마트 가전), 기타 스마트 장치, 웹 가전, 네트워크 라우터, 네트워크 스위치, 네트워크 브릿지, 또는 머신(1800)에 의해 취해질 동작을 지정하는 명령어(1816)를 순차적으로 또는 다른 방식으로 실행할 수 있는 임의의 머신일 수 있다. 나아가, 단일 머신(1800)만이 도시되어 있지만, "머신"이라는 용어는 본 명세서에서 설명된 방법 중 임의의 하나 이상의 방법을 수행하기 위해 개별적으로 또는 공동으로 명령어(1816)를 실행하는 머신(1800)의 집합을 포함하는 것으로 간주되어야 한다.
머신(1800)은, 예를 들어 버스(1802)를 통해 서로 통신하도록 구성될 수 있는 프로세서(1810), 메모리(1830) 및 I/O 컴포넌트(1850)를 포함할 수 있다. 예시적 실시예에서, 프로세서(1810)(예를 들어, CPU(Central Processing Unit), RISC(Reduced Instruction Set Computing) 프로세서, CISC(Complex Instruction Set Computing) 프로세서, GPU(Graphics Processing Unit), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), RFIC(Radio-Frequency Integrated Circuit), 다른 프로세서, 또는 이들의 임의의 적절한 조합)은, 예를 들어, 명령어(1816)를 실행할 수 있는 프로세서(1812) 및 프로세서(1814)를 포함할 수 있다. "프로세서"라는 용어는 명령어를 동시에 실행할 수 있는 2개 이상의 독립적 프로세서("코어"라고도 함)를 포함할 수 있는 멀티 코어 프로세서를 포함하도록 의도된다. 도 18은 다수의 프로세서를 도시하지만, 머신(1800)은 단일 코어를 갖는 단일 프로세서, 다중 코어(예를 들어, 멀티 코어 프로세서)를 갖는 단일 프로세서, 단일 코어를 갖는 다중 프로세서, 다중 코어를 갖는 다중 프로세서, 또는 이들의 임의의 조합을 포함할 수 있다.
메모리(1830)는 메인 메모리(1832), 정적 메모리(1834) 및 스토리지 유닛(1836)을 포함할 수 있는데, 이들은 모두 예를 들어 버스(1802)를 통해 프로세서(1810)에 액세스 가능하다. 메인 메모리(1832), 정적 메모리(1834) 및 스토리지 유닛(1836)은 본 명세서에 설명된 방법 또는 기능 중 임의의 하나 이상을 구현하는 명령어(1816)를 저장한다. 명령어(1816)는 또한 머신(1800)에 의해 실행되는 동안, 메인 메모리(1832) 내에, 정적 메모리(1834) 내에, 스토리지 유닛(1836) 내에, 프로세서(1810) 중 적어도 하나 내에(예를 들어, 프로세서의 캐시 메모리 내에), 또는 이들의 임의의 적절한 조합 내에, 전체적으로 또는 부분적으로 상주할 수 있다.
I/O 컴포넌트(1850)는 입력을 수신하고, 출력을 제공하고, 출력을 생성하고, 정보를 전송하고, 정보를 교환하고, 측정을 캡처하는 등을 수행하는 다양한 컴포넌트를 포함할 수 있다. 특정 머신에 포함되는 특정 I/O 컴포넌트(1850)는 머신의 유형에 의존할 것이다. 예를 들어, 휴대 전화와 같은 휴대용 머신은 터치 입력 장치 또는 그러한 다른 입력 메커니즘을 포함할 수 있지만, 헤드리스 서버 시스템은 그러한 터치 입력 장치를 포함하지 않을 것이다. I/O 컴포넌트(1850)는 도 18에 도시되지 않은 많은 다른 컴포넌트를 포함할 수 있음이 이해되어야 한다. I/O 컴포넌트(1850)는 단지 다음의 설명을 단순화하기 위해 기능성에 따라 그룹화되며, 그룹화는 결코 한정적인 것이 아니다. 다양한 예시적 실시예에서, I/O 컴포넌트(1850)는 출력 컴포넌트(1852)와 입력 컴포넌트(1854)를 포함할 수 있다. 출력 컴포넌트(1852)는 비주얼 컴포넌트(예를 들어, 플라즈마 디스플레이 패널(PDP), 발광 다이오드(LED) 디스플레이, 액정 디스플레이(LCD), 프로젝터 또는 음극선관(CRT)), 음향 컴포넌트(예를 들어, 스피커), 햅틱 컴포넌트(예를 들어, 진동 모터, 저항 메커니즘), 기타 신호 발생기 등을 포함할 수 있다. 입력 컴포넌트(1854)는 영숫자 입력 컴포넌트(예를 들어, 키보드, 영숫자 입력을 수신하도록 구성된 터치 스크린, 포토-옵티컬 키보드 또는 다른 영숫자 입력 컴포넌트), 포인트 기반 입력 컴포넌트(예를 들어, 마우스, 터치 패드, 트랙볼, 조이스틱, 움직임 센서, 또는 기타 포인팅 기구), 촉각 입력 컴포넌트(예를 들어, 물리적 버튼, 터치 또는 터치 제스처의 위치 및/또는 포스를 제공하는 터치 스크린 또는 기타 촉각 입력 컴포넌트), 오디오 입력 컴포넌트(예를 들어, 마이크) 등을 포함할 수 있다.
또 다른 예시적 실시예에서, I/O 컴포넌트(1850)는 다수의 다른 컴포넌트 중에서 생체 측정 컴포넌트(1856), 움직임 컴포넌트(1858), 환경 컴포넌트(1860) 또는 포지션 컴포넌트(1862)를 포함할 수 있다. 예를 들어, 생체 측정 컴포넌트(1856)는, 표현(예를 들어, 손 표현, 표정, 음성 표현, 몸짓 또는 눈 추적)을 검출하고, 생체 신호(예를 들어, 혈압, 심박수, 체온, 땀 또는 뇌파)를 측정하고, 사람을 식별(예를 들어, 음성 식별, 망막 식별, 안면 식별, 지문 식별 또는 뇌파 기반 식별)하는 등을 수행하는 컴포넌트를 포함할 수 있다. 움직임 컴포넌트(1858)는 가속도 센서 컴포넌트(예를 들어, 가속도계), 중력 센서 컴포넌트, 회전 센서 컴포넌트(예를 들어, 자이로스코프) 등을 포함할 수 있다. 환경 컴포넌트(1860)는 예를 들어, 조명 센서 컴포넌트(예를 들어, 광도계), 온도 센서 컴포넌트(예를 들어, 주변 온도를 검출하는 하나 이상의 온도계), 습도 센서 컴포넌트, 압력 센서 컴포넌트(기압계), 음향 센서 컴포넌트(예를 들어, 배경 잡음을 검출하는 하나 이상의 마이크), 근접 센서 컴포넌트(예를 들어, 근처의 물체를 탐지하는 적외선 센서), 가스 센서(예를 들어, 안전을 위해 유해 가스의 농도를 검출하거나 대기 중의 오염 물질을 측정하는 가스 검출 센서), 또는 주변 물리적 환경에 대응하는 표시, 측정 또는 신호를 제공할 수 있는 기타 컴포넌트를 포함할 수 있다. 포지션 컴포넌트(1862)는 위치 센서 컴포넌트(예를 들어, GPS 수신기 컴포넌트), 고도 센서 컴포넌트(예를 들어, 고도가 도출될 수 있는 기압을 검출하는 고도계 또는 기압계), 방위 센서 컴포넌트(예를 들어, 자력계) 등을 포함할 수 있다.
통신은 다양한 기술을 사용하여 구현될 수 있다. I/O 컴포넌트(1850)는 머신(1800)을 연결부(1882) 및 연결부(1872)를 통해 각각 네트워크(1880) 또는 장치(1870)에 연결하도록 동작 가능한 통신 컴포넌트(1864)를 포함할 수 있다. 예를 들어, 통신 컴포넌트(1864)는 네트워크(1880)와 인터페이스하는 네트워크 인터페이스 컴포넌트 또는 기타 적절한 장치를 포함할 수 있다. 추가 예에서, 통신 컴포넌트(1864)는 유선 통신 컴포넌트, 무선 통신 컴포넌트, 셀룰러 통신 컴포넌트, 근거리 통신(Near Field Communication: NFC) 컴포넌트, 블루투스(Bluetooth)® 컴포넌트(예를 들어, Bluetooth® Low Energy), Wi-Fi® 컴포넌트 및 다른 형태를 통해 통신을 제공하는 기타 통신 컴포넌트를 포함할 수 있다. 장치(1870)는 다른 머신 또는 임의의 다양한 주변 장치(예를 들어, USB를 통해 결합된 주변 장치) 중 임의의 것일 수 있다.
또한, 통신 컴포넌트(1864)는 식별자를 검출할 수 있거나 식별자를 검출하도록 동작할 수 있는 컴포넌트를 포함할 수 있다. 예를 들어, 통신 컴포넌트(1864)는 무선 주파수 식별(RFID) 태그 판독기 컴포넌트, NFC 스마트 태그 검출 컴포넌트, 광학 판독기 컴포넌트(예를 들어, 범용 제품 코드(UPC) 바코드와 같은 1차원 바코드, QR(Quick Response) 코드, 아즈텍(Aztec) 코드, 데이터 매트릭스, 데이터글리프(Dataglyph), 맥시코드(MaxiCode), PDF417, 울트라(Ultra) 코드, UCC RSS-2D 바코드와 같은 다차원 바코드 및 기타 광학 코드를 검출하는 광학 센서) 또는 음향 검출 컴포넌트(예를 들어, 태깅된 오디오 신호를 식별하는 마이크로폰)를 포함할 수 있다. 또한, 인터넷 프로토콜(IP) 지오로케이션(geo-location)을 통한 위치, Wi-Fi® 신호 삼각 측량을 통한 위치, 특정 위치를 표시할 수 있는 NFC 비콘 신호의 검출을 통한 위치 등과 같은 다양한 정보가 통신 컴포넌트(1864)를 통해 도출될 수 있다.
실행 가능한 명령어 및 머신 저장 매체
다양한 메모리(즉, 1830, 1832, 1834 및/또는 프로세서(들)(1810)의 메모리) 및/또는 저장 유닛(1836)은, 본 명세서에 설명된 방법 또는 기능 중 임의의 임의의 하나 이상을 실시하거나 혹은 이에 의해 이용될 수 있는 하나 이상의 명령어 세트 및 데이터 구조(예를 들어, 소프트웨어)를 저장할 수 있다. 이들 명령어(예를 들어, 명령어(1816))은 프로세서(들)(1810)에 의해 실행될 때, 다양한 동작들이 개시된 실시예를 구현하게 한다.
본 명세서에 사용된 바와 같이, "머신-저장 매체", "장치-저장 매체", "컴퓨터-저장 매체"라는 용어는 동일한 것을 의미하며, 본 개시에서 서로 바꿔서 사용될 수 있다. 이 용어들은 실행 가능한 명령어 및/또는 데이터를 저장하는 단일 또는 다중 저장 장치 및/또는 매체(예를 들어, 중앙 집중식 또는 분산형 데이터베이스 및/또는 연관된 캐시 및 서버)를 가리킨다. 따라서, 이 용어는 프로세서 내부의 또는 외부의 메모리를 포함한, 솔리드-스테이트 메모리 및 광학식 및 자기식 매체를 포함하지만, 이것으로 제한되는 것은 아니다. 머신-저장 매체, 컴퓨터-저장 매체 및/또는 장치-저장 매체의 특정 예는 예를 들어, EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), FPGA 및 플래시 메모리 장치와 같은 반도체 메모리 장치; 내부 하드 디스크 및 이동식 디스크와 같은 자기형 디스크; 광 자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함한, 비휘발성 메모리를 포함한다. '머신-저장 매체', '컴퓨터-저장 매체' 및 '장치-저장 매체'라는 용어는 특히 반송파, 변조된 데이터 신호 및 기타 매체는 제외하며, 그 중 일부는 이하 설명하는 "신호 매체'에 커버된다.
전송 매체
다양한 예시적 실시예에서, 네트워크(1880)의 하나 이상의 부분은 애드혹 네트워크, 인트라넷, 엑스트라넷, VPN, LAN, WLAN, WAN, WWAN, MAN, 인터넷, 인터넷의 일부, PSTN의 일부, POTS(plain old telephone service) 네트워크, 셀룰러 전화 네트워크, 무선 네트워크, Wi-Fi® 네트워크, 다른 유형의 네트워크, 또는 2개 이상의 이러한 네트워크의 조합일 수 있다. 예를 들어, 네트워크(1880) 또는 네트워크(1880)의 일부는 무선 또는 셀룰러 네트워크를 포함할 수 있고, 커플링(1882)은 CDMA(Code Division Multiple Access) 접속, GSM(Global System for Mobile communications) 접속, 또는 다른 유형의 셀룰러 또는 무선 커플링을 포함할 수 있다. 이 예에서, 커플링(1882)은, 1xRTT(Single Carrier Radio Transmission Technology), EVDO(Evolution-Data Optimized) 기술, GPRS(General Packet Radio Service) 기술, EDGE(Enhanced Data rates for GSM Evolution) 기술, 3G를 포함하는 3GPP(third Generation Partnership Project), 4세대 무선(4G) 네트워크, UMTS(Universal Mobile Telecommunications System), HSPA(High Speed Packet Access), WiMAX(Worldwide Interoperability for Microwave Access), LTE(Long Term Evolution) 표준, 다양한 표준 설정 기관에 의해 정의된 다른 것, 다른 장거리 프로토콜, 또는 다른 데이터 전송 기술과 같은 다양한 유형의 데이터 전송 기술 중 임의의 것으로 구현될 수 있다.
명령어(1816)는, 네트워크 인터페이스 디바이스(예를 들어, 통신 컴포넌트(1864)에 포함된 네트워크 인터페이스 컴포넌트)를 통해 전송 매체를 사용하고 다수의 공지된 전송 프로토콜(예를 들어, 하이퍼텍스트 전송 프로토콜(HTTP)) 중 임의의 하나를 이용하여 네트워크(1880)를 통해 송신되거나 수신될 수 있다. 유사하게, 명령어(1816)는 디바이스(1870)에 대한 커플링(1872)(예컨대, 피어 투 피어 커플링)을 통해 전송 매체를 사용하여 송신되거나 수신될 수 있다. "전송 매체" 및 "신호 매체"라는 용어는 동일한 것을 가리키고, 본 개시에서 서로 바꿔서 사용될 수 있다. "전송 매체" 및 "신호 매체"라는 용어는 머신(1800)에 의한 실행을 위한 명령어(1816)를 저장, 인코딩 또는 전달할 수 있는 임의의 무형의 매체를 포함하는 것으로 간주되어야 하며, 디지털 또는 아날로그 통신 신호 또는 이러한 소프트웨어의 통신을 가능하게 하는 기타 무형의 매체를 포함한다. 따라서, "전송 매체" 및 "신호 매체"라는 용어는 변조된 데이터 신호, 반송파 등의 임의의 형태를 포함하는 것으로 취해져야 한다. 용어 "변조된 데이터 신호"는 그 특성 세트 중 하나 이상을 갖고 있으며 신호 내에 정보를 인코딩하도록 변경되는 신호를 의미한다.
컴퓨터 판독 가능 매체
"머신-저장 매체", "장치-저장 매체", "컴퓨터-저장 매체"라는 용어는 동일한 것을 의미하며, 본 개시에서 서로 바꿔서 사용될 수 있다. 용어는 머신-저장 매체와 전송 매체를 모두 포함하는 것으로 정의된다. 따라서, 용어는 저장 장치/매체 및 반송파/변조된 데이터 신호 모두를 포함한다.
전자 장치 및 시스템
예시적인 실시예들은 디지털 전자 회로, 컴퓨터 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 예시적인 실시예들은, 데이터 프로세싱 장치(예를 들어, 프로그램가능 프로세서, 컴퓨터, 또는 복수의 컴퓨터)의 동작을 제어하기 위해 또는 이들에 의한 실행을 위해, 정보 캐리어(예를 들어, 머신 판독가능 매체) 내에 유형으로 포함된 컴퓨터 프로그램(예를 들어, 컴퓨터 프로그램)을 사용하여 구현될 수도 있다.
컴퓨터 프로그램은, 컴파일되거나 변환된 언어를 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 스탠드얼론 프로그램의 형태 또는 모듈, 서브루틴, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛의 형태를 포함하는 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 복수의 컴퓨터 상에서 실행되도록 배치될 수 있고, 하나의 사이트에 존재하거나 복수의 사이트에 걸쳐 분산되도록 배치될 수 있고, 통신 네트워크에 의해 상호접속되도록 배치될 수 있다.
실시예들에서, 동작은 입력 데이터를 동작시키고 출력을 생성함으로써 기능을 수행하도록 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램가능한 프로세서에 의해 수행될 수 있다. 방법의 동작들은, 전용 로직 회로(예를 들어, FPGA 또는 ASIC)에 의해 수행될 수 있고, 실시예들의 장치는 전용 로직 회로로서 구현될 수도 있다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로로부터 원격에 존재하고 전형적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터 상에서 작동하고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 프로그램가능 컴퓨팅 시스템이 배치된 실시예들에서, 하드웨어 및 소프트웨어 아키텍처 모두가 고려되어야 한다는 것이 이해될 것이다. 구체적으로, 특정 기능을 영구적으로 구성된 하드웨어(예를 들어, ASIC)에서 구현할지, 일시적으로 구성된 하드웨어(예를 들어, 소프트웨어와 프로그램가능 프로세서의 조합)에서 구현할지, 또는 영구적으로 구성된 하드웨어와 일시적으로 구성된 하드웨어의 조합에서 구현할지 결정하는 것은 설계 선택사항일 수 있다는 점이 이해될 것이다.
다음의 번호가 매겨진 예는 실시예이다.
1. 시스템으로서,
머신의 하나 이상의 프로세서와,
*하나 이상의 프로세서에 의해 실행될 때, 머신으로 하여금 동작을 수행하게하는 명령어가 저장된 머신 판독 가능 저장 매체
를 포함하되, 동작은
복수의 이벤트를 서술하는 스트리밍 데이터를 메모리에 로딩하는 것 - 스트리밍 데이터는 복수의 이벤트 내의 각 이벤트에 대응하는 소스 위치 및 목적지 위치를 나타내는 지형 공간적 데이터를 포함함 - 과,
디스플레이에서, 시각화 수학적 모델을 사용해서 지도 상에 복수의 시각적 메타포를 렌더링하는 것 - 각각의 시각적 메타포는 복수의 이벤트 중 하나의 이벤트를 나타내며, 시각화 수학적 모델은 각각의 시각적 메타포에 대해 슬라이딩 시간 윈도우 동안의 시각적 메타포 상의 각각의 포인트의 공간 위치 및 불투명도를 정의함 -
를 포함한다.
2. 예 1의 시스템으로서,
복수의 시각적 메타포 중 적어도 하나를 렌더링하는 것은,
맵 상의 소스 위치와 목적지 위치를 연결하는 원호의 포인트를 내삽하는 것과,
소스 위치와 목적지 위치 사이의 거리에 기초해서 원호에 곡률 제어를 적용하는 것
을 더 포함한다.
3. 예 2의 시스템으로서,
복수의 시각적 메타포 중 적어도 하나를 렌더링하는 것은, 원호의 일부의 불투명도를 변화시킴으로써 소스 위치로부터 목적지 위치로의 원호의 이동을 애니메이트하는 것을 더 포함한다.
4. 예 1 내지 예 3 중 어느 하나의 시스템으로서,
각각의 이벤트는 타임스탬프과 연관되고,
슬라이딩 시간 윈도우의 시간 범위는 하한 및 상한을 포함하며,
동작은, 가장 최근의 타임스탬프를 슬라이딩 시간 윈도우의 상한과 비교한 것에 기초하여 슬라이딩 시간 윈도우를 조정하는 것을 더 포함한다.
5. 예 4의 시스템으로서,
슬라이딩 시간 윈도우를 조정하는 것은 슬라이딩 시간 윈도우의 상한이 타임스탬프보다 오래된 것에 기초해서 슬라이딩 시간 윈도우의 변화율을 증가시키는 것을 포함한다.
6. 예 1 내지 예 5 중 어느 하나의 시스템으로서,
슬라이딩 시간 윈도우 동안에 복수의 시각적 메타포 중 하나의 시각적 메타포의 불투명도를 점차 감소시키는 것을 더 포함한다.
7. 예 6의 시스템으로서,
시각적 메타포의 불투명도가 감소해서 시각적 메타포가 투명하게 되는 것에 응답해서, 시각적 메타포에 대응하는 데이터를 메모리로부터 제거하는 것을 더 포함한다.
8. 예 1 내지 예 7 중 어느 하나의 시스템으로서,
메모리에 대응하는 그래픽 처리 유닛(GPU) 캐시와,
중앙 처리 장치(CPU) 캐시
를 더 포함하고, 동작은,
스트리밍 데이터를 데이터 소스로부터 획득하는 것과,
스트리밍 데이터를 CPU 캐시에 로딩하는 것과,
GPU 캐시로부터 데이터가 제거되는 것에 응답해서, CPU 캐시로부터 스트리밍 데이터를 취득하는 것을 포함한다.
9. 예 1 내지 예 8 중 어느 하나의 시스템으로서,
시각화 수학적 모델은 소스 위치와 목적지 위치 사이에서 원호 상에 포인트를 내삽하는 제 1 요소를 포함한다.
10. 예 9의 시스템으로서,
시각화 수학적 모델은 소스 위치와 목적지 위치 사이의 거리에 기초해서 원호에 곡률 제어를 적용하는 제 2 요소를 포함한다.
11. 예 10의 시스템으로서,
시각화 수학적 모델은 슬라이딩 시간 윈도우 동안에 원호 상의 포인트의 불투명도를 변화시킴으로써 원호에 애니메이션을 도입하는 제 3 요소를 포함한다.
12. 예 11의 시스템으로서,
시각화 수학적 모델은 대응하는 이벤트와 연관된 타임스탬프로부터 결정된 원호의 오래된 정도에 기초해서 원호의 불투명도를 감소시키는 제 4 요소를 포함한다.
13. 예 1 내지 예 12 중 어느 하나의 시스템으로서,
복수의 시각적 메타포는 공간 적응형 원호 애니메이션, 산점도(scatterplot) 또는 지리-기반 막대 도표 중 적어도 하나를 포함한다.
14. 프로세서 구현된 방법으로서,
복수의 이벤트를 서술하는 스트리밍 데이터를 메모리에 로딩하는 단계 - 스트리밍 데이터는 복수의 이벤트 내의 각 이벤트에 대응하는 소스 위치 및 목적지 위치를 나타내는 지형 공간적 데이터를 포함함 - 와,
디스플레이에서, 시각화 수학적 모델을 사용해서 지도 상에 복수의 시각적 메타포를 렌더링하는 단계 - 각각의 시각적 메타포는 복수의 이벤트 중 하나의 이벤트를 나타내며, 시각화 수학적 모델은 각각의 시각적 메타포에 대해 슬라이딩 시간 윈도우 동안의 시각적 메타포 상의 각각의 포인트의 공간 위치 및 불투명도를 정의함 - 를 포함한다.
15. 예 14의 방법으로서,
복수의 시각적 메타포 중 적어도 하나를 렌더링하는 단계는,
맵 상의 소스 위치와 목적지 위치를 연결하는 원호의 포인트를 내삽하는 단계와,
소스 위치와 목적지 위치 사이의 거리에 기초해서 원호에 곡률 제어를 적용하는 단계와,
소스 위치로부터 목적지 위치로의 원호의 이동을 애니메이트하는 단계와,
원호의 불투명도를 점차 감소시키는 단계
를 더 포함한다.
16. 예 15의 방법으로서,
원호에 곡률 제어를 적용하는 단계는, 소스 위치와 목적지 위치 사이의 거리에 기초해서 원호의 최대 높이를 결정하는 단계를 포함한다.
17. 예 15 또는 예 16의 방법으로서,
원호의 이동을 애니메이트하는 단계는,
원호의 일부분의 불투명도를 증가시키는 단계 - 일부분은 초기에 소스 위치에 위치됨 - 와,
원호의 나머지 부분의 불투명도를 유지하면서 불투명도가 증가된 일부분을 소스 위치로부터 목적지 위치로 점차 이동시키는 단계
를 포함한다.
18. 예 15 내지 예 17의 방법으로서,
원호의 불투명도를 감소시키는 것은, 슬라이딩 시간 윈도우가 경과된 후에 원호를 투명하게 한다.
19. 예 18의 방법으로서,
원호가 투명하게 되는 것에 응답해서, 원호에 대응하는 데이터를 메모리로부터 제거하는 단계를 더 포함한다.
20. 머신의 적어도 하나의 프로세서에 의해 실행될 때, 머신으로 하여금 동작을 수행하게 하는 명령어가 저장된 머신-판독 가능 저장 매체로서, 동작은
복수의 이벤트를 서술하는 스트리밍 데이터를 메모리에 로딩하는 것 - 스트리밍 데이터는 복수의 이벤트 내의 각 이벤트에 대응하는 소스 위치 및 목적지 위치를 나타내는 지형 공간적(geospatial) 데이터를 포함함 - 과,
디스플레이에서, 시각화 수학적 모델을 사용해서 지도 상에 복수의 시각적 메타포를 렌더링하는 것 - 각각의 시각적 메타포는 복수의 이벤트 중 하나의 이벤트를 나타내며, 시각화 수학적 모델은 각각의 시각적 메타포에 대해 슬라이딩 시간 윈도우 동안의 시각적 메타포 상의 각각의 포인트의 공간 위치 및 불투명도를 정의함 -
을 포함하고,
복수의 시각적 메타포 중 적어도 하나를 렌더링하는 것은,
맵 상의 소스 위치와 목적지 위치를 연결하는 원호의 포인트를 내삽하는 것과,
소스 위치와 목적지 위치 사이의 거리에 기초해서 원호에 곡률 제어를 적용하는 것과,
소스 위치로부터 목적지 위치로의 원호의 이동을 애니메이트하는 것과,
원호의 불투명도를 점차 감소시키는 것
을 더 포함한다.
21. 머신의 적어도 하나의 프로세서에 의해 실행될 때, 머신으로 하여금 예 14 내지 예 19 중 어느 하나에 개시된 방법을 실행하게 하는 명령어를 전달하는 머신 판독 가능 매체.
언어
본 개시의 실시예는 특정 예시적 실시예를 참조하여 설명되었지만, 본 발명의 주제의 더 넓은 범위를 벗어나지 않으면서 이들 실시예에 다양한 수정 및 변경이 이루어질 수 있음이 명백할 것이다. 따라서, 명세서 및 도면은 제한적인 의미라기보다는 예시적인 것으로 간주되어야 한다. 본 명세서의 일부를 형성하는 첨부 도면은 발명의 내용이 실시될 수 있는 특정 실시예를 제한이 아닌 예시로서 보여준다. 도시된 실시예는 당업자가 여기에 개시된 교시를 실시할 수 있도록 충분히 상세하게 설명된다. 본 개시의 범위를 벗어나지 않고 구조적 및 논리적 대체 및 변경이 이루어질 수 있도록 다른 실시예가 사용될 수 있고 그로부터 도출될 수 있다. 따라서, 본 개시의 상세한 설명은 제한적인 의미로 받아들여서는 안 되며, 다양한 실시예들의 범위는 첨부된 청구 범위와 그러한 청구 범위가 부여하는 모든 범위의 등가물에 의해서만 정의된다.
본 발명적 내용의 이러한 실시예는 사실상 두 개 이상의 발명이 개시되는 경우 본 출원의 범위를 임의의 단일 발명 또는 발명적 개념으로 자발적으로 제한하고자 하는 것이 아니라 단순히 편의상 "발명"이라는 용어에 의해 개별적으로 및/또는 집합적으로 본원에서 언급될 수 있다. 따라서, 여기에서 특정 실시예가 도시되고 설명되었지만, 동일한 목적을 달성하도록 계산된 임의의 구성이 설명된 특정 실시예를 대체할 수 있음이 이해되어야 한다. 본 개시는 다양한 실시예의 임의의 및 모든 개조 또는 변형을 포함하도록 의도된다. 위의 설명을 검토할 경우 통상의 기술자에게는 전술한 실시예들 및 여기에서 구체적으로 설명되지 않은 다른 실시예의 조합은 명백할 것이다.
본 문헌에 언급된 모든 간행물, 특허 및 특허 문헌은 개별적으로 참조를 위해 통합되는 것처럼 그 전체가 본원에 참조에 의해 통합된다. 이렇게 참조를 위해 통합된 문헌과 본 문헌 사이에 용법상의 불일치가 있는 경우, 통합된 참조에서의 용법은 본 문헌의 용법에 대해 보충적으로 고려되어야 하며, 양립할 수 없는 불일치가 있는 경우 본 문헌에서의 용법이 우선한다.
본 문헌에서, 임의의 다른 경우 또는 "적어도 하나" 또는 "하나 이상"의 사용과는 별도로, 단수 용어는 특허 문헌에서 일반적으로 사용되는 것처럼 하나 이상을 포함하도록 사용된다. 본 문헌에서, "또는"이라는 용어는 비배타적 또는(nonexclusive or)을 지칭하도록 사용되므로, "A 또는 B"는 "B 아닌 A", "A 아닌 B" 및 "A 및 B"를 포함한다. 첨부된 청구 범위에서, "포함하는(including)" 및 "여기에서(in which)"라는 용어는 각각의 용어 "포함하는(comprising)" 및 "여기서(wherein)"의 평이한 영어 등가물로서 사용된다. 또한, 이하의 청구범위에서, "포함하는(including)" 및 "포함하는(comprising)"이라는 용어는 개방형으로서, 즉, 청구항에서 그러한 용어 뒤에 열거된 것 이외의 요소를 포함하는 시스템, 디바이스, 제품 또는 프로세스는 여전히 해당 청구항의 범위에 포함되는 것으로 간주된다.

Claims (17)

  1. 컴퓨팅 장치에 의해 구현되는 방법으로서,
    거래에 대응하는 이벤트를 나타내는 시각적 메타포를 렌더링하는 단계 - 상기 시각적 메타포는 상기 거래의 제 1 위치와 제 2 위치를 연결함 - 와,
    상기 제 1 위치와 상기 제 2 위치 사이에서 상기 시각적 메타포의 적어도 일 부분의 불투명도를 변경하여 상기 시각적 메타포의 이동을 애니메이트하는 단계를 포함하고,
    상기 방법은
    슬라이딩 시간 윈도우에 걸쳐서 상기 시각적 메타포의 불투명도를 점차 감소시키는 단계와,
    상기 시각적 메타포의 불투명도를 감소시키는 것에 의해 상기 시각적 메타포가 투명하게 되는 것에 응답해서, 상기 시각적 메타포에 대응하는 데이터를 제거하는 단계를 더 포함하는,
    방법.
  2. 제 1 항에 있어서,
    추가 거래에 대응하는 복수의 추가 이벤트를 나타내는 추가 시각적 메타포를 렌더링하는 단계 - 상기 추가 시각적 메타포는 상기 추가 거래의 제 1 위치 및 제 2 위치를 서술함 - 를 더 포함하는,
    방법.
  3. 제 2 항에 있어서,
    상기 시각적 메타포 및 상기 추가 시각적 메타포는 상기 이벤트 및 상기 복수의 추가 이벤트에 의해 서술되는 위치에서 지도 상의 산점도(scatterplot)에 포함되는,
    방법.
  4. 제 2 항에 있어서,
    상기 시각적 메타포 및 상기 추가 시각적 메타포는 상기 이벤트 및 상기 복수의 추가 이벤트에 의해 서술되는 위치에서 지도 상의 막대를 가지는 막대 도표에 포함되는,
    방법.
  5. 제 2 항에 있어서,
    상기 시각적 메타포 및 상기 추가 시각적 메타포는 2 차원 평면 지도 상에 렌더링되는,
    방법.
  6. 제 2 항에 있어서,
    렌더링된 상기 시각적 메타포 및 상기 추가 시각적 메타포는 상기 제 1 위치와 상기 제 2 위치 사이의 공간 적응형 원호들이고,
    상기 방법은 상기 제 1 위치와 상기 제 2 위치 사이의 상기 공간 적응형 원호의 적어도 서브세트를 클러스터링하는 단계를 더 포함하는,
    방법.
  7. 제 1 항에 있어서,
    상기 시각적 메타포의 이동을 애니메이트하는 단계는 제 1 시점의 상기 적어도 일부분의 불투명도가 제 2 시점의 상기 적어도 일부분의 불투명도와 상이하도록 상기 시각적 메타포의 상기 적어도 일부분의 불투명도를 변경하는 단계를 포함하는,
    방법.
  8. 삭제
  9. 시스템으로서,
    머신의 적어도 하나의 프로세서와,
    상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 머신으로 하여금 동작을 수행하도록 하는 명령어를 저장하는 머신 판독가능 저장 매체를 포함하되,
    상기 동작은,
    거래에 대응하는 이벤트를 나타내는 시각적 메타포를 렌더링하는 것 - 상기 시각적 메타포는 상기 거래의 제 1 위치와 제 2 위치를 연결함 - 과,
    상기 제 1 위치와 상기 제 2 위치 사이에서 상기 시각적 메타포의 적어도 일 부분의 불투명도를 변경하여 상기 시각적 메타포의 이동을 애니메이트하는 것을 포함하고,
    상기 동작은
    슬라이딩 시간 윈도우에 걸쳐서 상기 시각적 메타포의 불투명도를 점차 감소시키는 것과,
    상기 시각적 메타포의 불투명도를 감소시키는 것에 의해 상기 시각적 메타포가 투명하게 되는 것에 응답해서, 상기 시각적 메타포에 대응하는 데이터를 제거하는 것을 더 포함하는,
    시스템.
  10. 제 9 항에 있어서,
    상기 동작은, 추가 거래에 대응하는 복수의 추가 이벤트를 나타내는 추가 시각적 메타포를 렌더링하는 것 - 상기 추가 시각적 메타포는 상기 추가 거래의 제 1 위치 및 제 2 위치를 서술함 - 을 더 포함하는,
    시스템.
  11. 제 10 항에 있어서,
    상기 시각적 메타포 및 상기 추가 시각적 메타포는 상기 이벤트 및 상기 복수의 추가 이벤트에 의해 서술되는 위치에서 지도 상의 산점도(scatterplot)에 포함되는,
    시스템.
  12. 제 10 항에 있어서,
    상기 시각적 메타포 및 상기 추가 시각적 메타포는 상기 이벤트 및 상기 복수의 추가 이벤트에 의해 서술되는 위치에서 지도 상의 막대를 가지는 막대 도표에 포함되는,
    시스템.
  13. 제 10 항에 있어서,
    상기 시각적 메타포 및 상기 추가 시각적 메타포는 2 차원 평면 지도 상에 렌더링되는,
    시스템.
  14. 제 10 항에 있어서,
    렌더링된 상기 시각적 메타포 및 상기 추가 시각적 메타포는 상기 제 1 위치와 상기 제 2 위치 사이의 공간 적응형 원호들이고,
    상기 동작은 상기 제 1 위치와 상기 제 2 위치 사이의 상기 공간 적응형 원호의 적어도 서브세트를 클러스터링하는 것을 더 포함하는,
    시스템.
  15. 제 9 항에 있어서,
    상기 시각적 메타포의 이동을 애니메이트하는 것은 제 1 시점의 상기 적어도 일부분의 불투명도가 제 2 시점의 상기 적어도 일부분의 불투명도와 상이하도록 상기 시각적 메타포의 상기 적어도 일부분의 불투명도를 변경하는 것을 포함하는,
    시스템.
  16. 삭제
  17. 머신의 적어도 하나의 프로세서에 의해 실행될 때, 상기 머신으로 하여금 제 1 항 내지 제 7 항 중 어느 한 항에 개시된 방법을 실행하게 하는 명령어가 저장된 머신 판독 가능 저장 매체.
KR1020217007970A 2016-09-19 2017-09-19 스트리밍 데이터의 인터렉티브 실시간 시각화 KR102379640B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201662396632P 2016-09-19 2016-09-19
US62/396,632 2016-09-19
US15/707,529 2017-09-18
US15/707,529 US10542060B2 (en) 2016-09-19 2017-09-18 Interactive real-time visualization system for large-scale streaming data
PCT/US2017/052227 WO2018053490A1 (en) 2016-09-19 2017-09-19 Interactive real-time visualization for streaming data
KR1020197007978A KR102231174B1 (ko) 2016-09-19 2017-09-19 스트리밍 데이터의 인터렉티브 실시간 시각화

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197007978A Division KR102231174B1 (ko) 2016-09-19 2017-09-19 스트리밍 데이터의 인터렉티브 실시간 시각화

Publications (2)

Publication Number Publication Date
KR20210032564A KR20210032564A (ko) 2021-03-24
KR102379640B1 true KR102379640B1 (ko) 2022-03-28

Family

ID=61619766

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217007970A KR102379640B1 (ko) 2016-09-19 2017-09-19 스트리밍 데이터의 인터렉티브 실시간 시각화
KR1020197007978A KR102231174B1 (ko) 2016-09-19 2017-09-19 스트리밍 데이터의 인터렉티브 실시간 시각화

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020197007978A KR102231174B1 (ko) 2016-09-19 2017-09-19 스트리밍 데이터의 인터렉티브 실시간 시각화

Country Status (6)

Country Link
US (2) US10542060B2 (ko)
EP (1) EP3516532A4 (ko)
JP (1) JP6915051B2 (ko)
KR (2) KR102379640B1 (ko)
CN (2) CN109716316B (ko)
WO (1) WO2018053490A1 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10542060B2 (en) 2016-09-19 2020-01-21 Ebay Inc. Interactive real-time visualization system for large-scale streaming data
US10475219B1 (en) * 2017-03-30 2019-11-12 Palantir Technologies Inc. Multidimensional arc chart for visual comparison
US10887369B2 (en) 2017-09-25 2021-01-05 Splunk Inc. Customizable load balancing in a user behavior analytics deployment
CN111954869A (zh) * 2018-04-12 2020-11-17 日立数据管理有限公司 针对延迟数据的用户界面优化
US11289000B2 (en) 2018-10-25 2022-03-29 Baylor University System and method for a multi-primary wide gamut color system
US11037481B1 (en) 2018-10-25 2021-06-15 Baylor University System and method for a multi-primary wide gamut color system
US11189210B2 (en) * 2018-10-25 2021-11-30 Baylor University System and method for a multi-primary wide gamut color system
US11532261B1 (en) 2018-10-25 2022-12-20 Baylor University System and method for a multi-primary wide gamut color system
US10997896B2 (en) 2018-10-25 2021-05-04 Baylor University System and method for a six-primary wide gamut color system
US11030934B2 (en) 2018-10-25 2021-06-08 Baylor University System and method for a multi-primary wide gamut color system
US11315467B1 (en) 2018-10-25 2022-04-26 Baylor University System and method for a multi-primary wide gamut color system
US11587491B1 (en) 2018-10-25 2023-02-21 Baylor University System and method for a multi-primary wide gamut color system
US10950161B2 (en) 2018-10-25 2021-03-16 Baylor University System and method for a six-primary wide gamut color system
US11341890B2 (en) 2018-10-25 2022-05-24 Baylor University System and method for a multi-primary wide gamut color system
US11069279B2 (en) 2018-10-25 2021-07-20 Baylor University System and method for a multi-primary wide gamut color system
US11373575B2 (en) 2018-10-25 2022-06-28 Baylor University System and method for a multi-primary wide gamut color system
US11289003B2 (en) 2018-10-25 2022-03-29 Baylor University System and method for a multi-primary wide gamut color system
US11043157B2 (en) 2018-10-25 2021-06-22 Baylor University System and method for a six-primary wide gamut color system
US11488510B2 (en) 2018-10-25 2022-11-01 Baylor University System and method for a multi-primary wide gamut color system
US11475819B2 (en) 2018-10-25 2022-10-18 Baylor University System and method for a multi-primary wide gamut color system
US11069280B2 (en) 2018-10-25 2021-07-20 Baylor University System and method for a multi-primary wide gamut color system
US11062638B2 (en) 2018-10-25 2021-07-13 Baylor University System and method for a multi-primary wide gamut color system
US11403987B2 (en) 2018-10-25 2022-08-02 Baylor University System and method for a multi-primary wide gamut color system
US11410593B2 (en) 2018-10-25 2022-08-09 Baylor University System and method for a multi-primary wide gamut color system
US10950162B2 (en) 2018-10-25 2021-03-16 Baylor University System and method for a six-primary wide gamut color system
US10607527B1 (en) 2018-10-25 2020-03-31 Baylor University System and method for a six-primary wide gamut color system
CN111046260B (zh) * 2019-12-11 2023-04-18 中国兵器工业第五九研究所 一种基于自然环境因素数据的可视化方法
CN111400983A (zh) * 2020-03-04 2020-07-10 上海介方信息技术有限公司 一种基于fpga动态重配置的波形组件加载实现方法
CN111681353B (zh) * 2020-05-28 2022-03-25 浙江大华技术股份有限公司 热成像测温方法、一体化设备及存储介质
CN112328249A (zh) * 2020-11-11 2021-02-05 中投国信(北京)科技发展有限公司 一种基于业务模型的可视化快速构建系统
US11769199B2 (en) 2021-04-14 2023-09-26 Visa International Service Association System, method, and computer program product for network anomaly detection
CN115695892A (zh) * 2022-11-08 2023-02-03 中山大学深圳研究院 一种基于流媒体的群体标记可视化交互方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129437A1 (en) * 2004-12-09 2006-06-15 Ronald Lee Map-based flight searching and booking method
US20100238176A1 (en) * 2008-09-08 2010-09-23 Apple Inc. Systems, methods, and devices for flash exposure control using preflash statistics

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751931A (en) 1995-04-18 1998-05-12 Lucent Technologies Inc. Three dimensional graphical display of information
US6397163B1 (en) * 1999-12-02 2002-05-28 Eastman Kodak Company Method for determining thermal exposure of a product
US6690371B1 (en) * 2000-05-03 2004-02-10 Ge Medical Systems Global Technology, Llc Relevant image data extraction from a medical image data volume
CA2466196A1 (en) * 2001-10-31 2003-05-08 Blue Falcon Networks, Inc. Data transmission process and system
US8225217B2 (en) * 2002-05-30 2012-07-17 Microsoft Corporation Method and system for displaying information on a user interface
WO2004081878A1 (en) * 2003-03-11 2004-09-23 National University Of Singapore Method and apparatus for generating morphing sequence
US7945658B1 (en) 2005-12-05 2011-05-17 Narus, Inc. Method for real-time visualization of BGP analysis and trouble-shooting
US7885733B1 (en) * 2006-04-03 2011-02-08 Honeywell International Inc. Aviation navigational and flight management systems and methods utilizing radar vectoring
US9286639B1 (en) * 2007-05-30 2016-03-15 Intuit Inc. System and method for providing price information
US20090070130A1 (en) * 2007-09-12 2009-03-12 Neelakantan Sundaresan Reputation scoring
KR100925176B1 (ko) * 2007-09-21 2009-11-05 한국전자통신연구원 지리 정보를 이용한 네트워크 상태 표시장치 및 방법
US8095427B1 (en) * 2009-07-04 2012-01-10 Buxton Brad B Methods for facilitating an online transaction of a firearm
US9104695B1 (en) * 2009-07-27 2015-08-11 Palantir Technologies, Inc. Geotagging structured data
US20120137367A1 (en) * 2009-11-06 2012-05-31 Cataphora, Inc. Continuous anomaly detection based on behavior modeling and heterogeneous information analysis
US20120246059A1 (en) * 2009-12-04 2012-09-27 Darryl John Mahoney Method and system for representing financial market transactions
US8436872B2 (en) 2010-02-03 2013-05-07 Oculus Info Inc. System and method for creating and displaying map projections related to real-time images
US20110199286A1 (en) * 2010-02-13 2011-08-18 Robin Dziama Spherical Electronic LCD Display
US9450834B2 (en) 2010-07-19 2016-09-20 Soasta, Inc. Animated globe showing real-time web user performance measurements
US8869038B2 (en) * 2010-10-06 2014-10-21 Vistracks, Inc. Platform and method for analyzing real-time position and movement data
US20140132623A1 (en) * 2011-05-06 2014-05-15 SynerScope B.V. Data analysis system
US8768804B2 (en) 2011-05-06 2014-07-01 SynerScope B.V. Data analysis system
US9076259B2 (en) 2011-09-14 2015-07-07 Imagine Communications Corp Geospatial multiviewer
WO2013049838A2 (en) 2011-09-30 2013-04-04 My Line Golf, Inc. Systems and methods for displaying a golf green and a predicted path of a putt on the golf green
US9400600B2 (en) 2011-12-16 2016-07-26 Samsung Electronics Co., Ltd. Method, apparatus, and graphical user interface for providing visual effects on a touchscreen display
US9472015B2 (en) * 2012-05-15 2016-10-18 Sap Se Real-time visualization of transactional data objects
US9563663B2 (en) * 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US9363187B2 (en) * 2012-11-28 2016-06-07 Nvidia Corporation Jitter buffering system and method of jitter buffering
JP6173748B2 (ja) * 2013-04-05 2017-08-02 エヌ・ティ・ティ・コミュニケーションズ株式会社 データ動的表示装置、データ動的表示方法、及びデータ動的表示プログラム
US8799799B1 (en) * 2013-05-07 2014-08-05 Palantir Technologies Inc. Interactive geospatial map
KR101558324B1 (ko) * 2013-10-11 2015-10-13 주식회사 크루메이트 휴리스틱 항공조회 시스템 및 그 제공방법
US20150113018A1 (en) 2013-10-17 2015-04-23 Ut Battelle, Llc Interactive visual analytics for situational awareness of social media
US9948693B2 (en) 2014-02-24 2018-04-17 Ca, Inc. Generic cloud service for publishing data to be consumed by RSS readers
WO2016168661A1 (en) * 2015-04-17 2016-10-20 Level 3 Communications, Llc Illicit route viewing system and method of operation
US10459819B2 (en) * 2015-09-21 2019-10-29 Splunk Inc. Circular timeline displays of timestamped event data
US20170221067A1 (en) * 2016-01-29 2017-08-03 International Business Machines Corporation Secure electronic transaction
US20170351753A1 (en) * 2016-06-03 2017-12-07 Icharts, Inc. Semantic layers for secure interactive analytic visualizations
US10542060B2 (en) 2016-09-19 2020-01-21 Ebay Inc. Interactive real-time visualization system for large-scale streaming data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129437A1 (en) * 2004-12-09 2006-06-15 Ronald Lee Map-based flight searching and booking method
US20100238176A1 (en) * 2008-09-08 2010-09-23 Apple Inc. Systems, methods, and devices for flash exposure control using preflash statistics

Also Published As

Publication number Publication date
US10542060B2 (en) 2020-01-21
WO2018053490A1 (en) 2018-03-22
US20200120151A1 (en) 2020-04-16
CN109716316A (zh) 2019-05-03
JP2019535066A (ja) 2019-12-05
EP3516532A1 (en) 2019-07-31
KR102231174B1 (ko) 2021-03-24
US11503097B2 (en) 2022-11-15
US20180084024A1 (en) 2018-03-22
KR20190040039A (ko) 2019-04-16
EP3516532A4 (en) 2019-08-07
CN117909390A (zh) 2024-04-19
CN109716316B (zh) 2024-01-23
KR20210032564A (ko) 2021-03-24
JP6915051B2 (ja) 2021-08-04

Similar Documents

Publication Publication Date Title
KR102379640B1 (ko) 스트리밍 데이터의 인터렉티브 실시간 시각화
US11450067B2 (en) Automated three dimensional model generation
KR102173620B1 (ko) 비디오 스트림의 실시간 페인팅
US20220303329A1 (en) Managing data transmissions over a network connection
KR20230019975A (ko) 이미지 프로세싱 sdk에서 사용하기 위한 인터페이스 캐러셀
WO2021252217A1 (en) Software development kit for image processing
US11915400B2 (en) Location mapping for large scale augmented-reality
US11995843B2 (en) Object identification in digital images
CN113079390A (zh) 处理和格式化视频用于交互式呈现
US11954421B2 (en) Reducing data usage for rendering state changes
US11003847B1 (en) Smart dynamic column sizing
US11947442B2 (en) Session replay for mobile applications
US11887213B2 (en) Image cache for session replays of mobile applications
US20230350964A1 (en) Platform independent session player
US20240029346A1 (en) Single image three-dimensional hair reconstruction
WO2023209658A1 (en) Platform independent session player

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant