KR20200111736A - 동적 사용자 인터페이스 블루프린트 - Google Patents

동적 사용자 인터페이스 블루프린트 Download PDF

Info

Publication number
KR20200111736A
KR20200111736A KR1020207023863A KR20207023863A KR20200111736A KR 20200111736 A KR20200111736 A KR 20200111736A KR 1020207023863 A KR1020207023863 A KR 1020207023863A KR 20207023863 A KR20207023863 A KR 20207023863A KR 20200111736 A KR20200111736 A KR 20200111736A
Authority
KR
South Korea
Prior art keywords
user
application
user interface
computer
file
Prior art date
Application number
KR1020207023863A
Other languages
English (en)
Other versions
KR102414753B1 (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 KR20200111736A publication Critical patent/KR20200111736A/ko
Application granted granted Critical
Publication of KR102414753B1 publication Critical patent/KR102414753B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

사용자는 제1 어플리케이션과 상호 작용할 수 있다. 동적 사용자 인터페이스 일관성 시스템은 명시적 사용자 선호도 및 유추된 사용자 선호도를 저장하는 사용자 인터페이스 블루프린트 파일을 생성할 수 있다. 사용자는 제2 어플리케이션을 열 수 있다. 제2 어플리케이션은 사용자 선호도에 따른 사용자 인터페이스를 생성하기 위해 상기 사용자 인터페이스 블루프린트 파일을 참조할 수 있다.

Description

동적 사용자 인터페이스 블루프린트
본 출원은 2018년 2월 19일자로 출원되고 발명의 명칭이 "동적 사용자 인터페이스 블루프린트(DYNAMIC USER INTERFACE BLUEPRINT)"인 미국 특허출원 15/898,788 호의 우선권 및 이점을 주장하며, 모든 목적을 위해 그 전체가 여기에 참조 인용되었다.
본 발명은 일반적으로 컴퓨터 시스템에 관한 것으로, 보다 구체적으로는 컴퓨터 시스템을 위한 사용자 인터페이스에 관한 것이다.
많은 소프트웨어 어플리케이션은 상이한 사용자 인터페이스를 사용하며, 또한 상이한 어플리케이션으로 전환하였을 때 하나의 어플리케이션을 보는 사용자가 그 레이아웃 및 기능을 이해하는 것은 혼란스럽거나 어려울 수 있다. 사용자 인터페이스를 표준화하기 위해 사용자 인터페이스 템플레이트를 사용하는 기존의 방법은 정적(static)일 수 있으며, 또한 폰트, 컬러, 및 제어 타입과 같은 사용자 인터페이스 스타일링의 사용에 제한이 가해질 수 있다. 보다 동적인 개선된 사용자 인터페이스 템플레이트가 요망된다.
동적 맞춤형(customized) 사용자 인터페이스를 제공하기 위한 시스템, 방법, 및 제조 물품(총칭하여 "시스템")이 기재된다. 상기 시스템은 사용자를 위해 사용자 인터페이스 블루프린트 파일을 생성하는 단계; 제1 어플리케이션에 대한 명시적 사용자 선호도(explicit user preference)를, 상기 사용자 인터페이스 블루프린트 파일에 저장하는 단계; 상기 제1 어플리케이션에 대한 유추된 사용자 선호도(inferred user preference)를 결정하는 단계; 상기 제1 어플리케이션에 대한 유추된 사용자 선호도를, 상기 사용자 인터페이스 블루프린트 파일에 저장하는 단계; 제2 어플리케이션에 액세스하라는 사용자로부터의 요청을 수신하는 단계; 상기 요청에 응답하여, 상기 사용자 인터페이스 블루프린트 파일을 판독하는 단계; 및 상기 명시적 사용자 선호도 및 상기 유추된 사용자 선호도에 기초하여, 상기 제2 어플리케이션에 대한 사용자 인터페이스를 생성하는 단계를 포함한다.
다양한 실시예에 있어서, 상기 사용자 인터페이스 블루프린트 파일은 txt 파일 또는 xml 파일 중 적어도 하나를 포함할 수 있다. 상기 사용자 인터페이스 블루프린트 파일은 사용자에 대한 고유한 사용자 식별을 포함할 수 있다. 상기 시스템은, 제2 어플리케이션에 액세스하라는 요청에 응답하여, 사용자에 대한 고유의 사용자 식별에 기초하여 상기 사용자 인터페이스 블루프린트 파일에 대한 데이터베이스를 조회(query)할 수 있다. 상기 제1 어플리케이션 및 제2 어플리케이션은 사용자 디바이스 상의 로컬 어플리케이션일 수 있다. 상기 제1 어플리케이션 및 제2 어플리케이션은 웹 어플리케이션(web application)일 수 있다. 상기 사용자 인터페이스 블루프린트 파일은 문자 카운트, 단락 카운트, 이미지 카운트, 이미지 크기, 양식 입력 카운트, 윈도우 크기, 윈도우 줌(window zoom), 윈도우 테두리, 폰트 리스트(font list), 폰트 크기, 제어 계층(control hierarchy), 제어 이름, 제어 순서, 제어 크기, 제어 위치, 제어 컬러, 제어 정렬, 스크롤 바아(scroll bar), 레이아웃 계층, 레이아웃 타입, 레이아웃 가중치(layout weight), 레이아웃 배향, 및 페이지 매김(pagination)을 포함하는 다수의 사용자 선호도를 포함할 수 있다
전술한 특징들 및 요소들은 여기에 달리 명시되지 않는 한 독점권 없이 다양한 조합으로 조합될 수 있다. 기재된 실시예의 작동뿐만 아니라, 이들 특징들 및 요소들은 이하의 발명의 상세한 설명 및 첨부한 도면을 고려하여 보다 명백해질 것이다.
본 발명의 주제는 특히 본 명세서의 결론 부분에서 지적되고 명백하게 청구된다. 그러나 본 발명의 보다 완전한 이해는 도면과 관련하여 고려되었을 때 상세한 설명 및 청구범위를 참조함으로써 얻어질 수 있으며, 도면에서 유사한 도면부호는 유사한 요소를 나타낸다.
도 1은 다양한 실시예에 따라, 동적 사용자 인터페이스 일관성(consistency)을 위한 시스템의 다양한 시스템 구성요소를 나타내는 블록도이다.
도 2는 다양한 실시예에 따라, 사용자 인터페이스 블루프린트 템플레이트의 예를 나타내고 있다.
도 3은 다양한 실시예에 따라, 제1 어플리케이션에 대한 단일-페이지 등록 양식 및 다중-페이지 등록 양식을 나타내고 있다.
도 4는 다양한 실시예에 따라, 도 3에 기재된 사용자 인터페이스에 대해 저장된 선호도에 기인하는 사용자 인터페이스 블루프린트 파일의 예를 나타내고 있다.
도 5는 다양한 실시예에 따라, 제2 어플리케이션에 대한 다중-페이지 등록 양식의 예를 나타내고 있다.
도 6은 다양한 실시예에 따라, 맞춤형 그래픽 사용자 인터페이스를 제공하기 위한 프로세스의 흐름도를 나타내고 있다.
여기서 다양한 실시예의 상세한 설명은 다양한 실시예를 단지 예로서 도시하고 있는 첨부한 도면을 참조하고 있다. 이들 다양한 실시예가 본 기술분야의 숙련자가 본 발명을 실시할 수 있도록 충분히 상세히 기재되었지만, 다른 실시예가 구현될 수 있으며 또한 본 발명의 정신 및 범주로부터의 일탈 없이 논리적이고 기계적인 변경이 이루어질 수 있음을 인식해야 한다. 따라서 여기서의 상세한 설명은 단지 예시를 위한 것이며, 제한하려는 것이 아니다. 예를 들어, 임의의 방법 또는 프로세스 설명 시 언급된 단계들은 임의의 순서로 실행될 수 있으며, 그리고 제시된 순서에 제한되지 않는다. 더욱이, 임의의 기능 또는 단계는 하나 또는 그 이상의 제3자에게 아웃소싱되거나 수행될 수 있다. 또한, 단수에 대한 임의의 참조는 복수의 실시예를 포함하며, 그리고 하나 이상의 구성요소에 대한 임의의 참조는 단수의 실시예를 포함할 수 있다.
사용자 인터페이스를 생성 및/또는 수정하기 위한 시스템 및 방법이 여기에 기재된다. 상기 시스템은 사용자가 이미 익숙한 제1 어플리케이션의 사용자 인터페이스("UI")(user interface)를, 포터블 UI 블루프린트 사양으로 동적으로 변환할 수 있다. 그 후, 상기 UI 블루프린트는 사용자에게 친숙하지 않은 제2 어플리케이션에 의해 사용될 수 있다. 상기 제2 어플리케이션은 주어진 사용자에 대한 UI 친숙함을 강화시키기 위해, UI 블루프린트를 사용하여 그 자체를 조정할 수 있다. 상기 시스템은 어플리케이션의 사용에 기초한 밀도, 설정, 계층, 시맨틱(semantics), 레이아웃 및/또는 학습(learning)을 포함하는 UI의 동적 양태를 이해할 수 있다.
이런 프로세스는 컴퓨터의 기능을 개선시킨다. 예를 들어, 사용자에게 친숙한 사용자 인터페이스를 제공함으로써, 사용자는 더 적은 컴퓨터 기능을 수행하고 그리고 더 적은 입력을 제공하게 되는데, 그 이유는 사용자가 원하는 콘텐츠를 신속하게 찾을 수 있고, 이는 데이터 저장 및 메모리를 절약하여 프로세싱 속도를 높이기 때문이다. 이런 방법의 사용에 의해, 사용자는 그 의도된 작업을 신속하게 그리고 효율적으로 수행할 것이며, 또한 계산 시간/오버헤드 및 디바이스/컴퓨터 상의 리소스(예를 들어, 메모리, CPU, 배터리) 사용량을 감소시킬 수 있다.
도 1을 참조하면, 다양한 실시예에 따른 동적 사용자 인터페이스 일관성을 위한 시스템(100)이 도시되어 있다. 상기 시스템(100)은 웹 클라이언트(110), 제1 어플리케이션 서버(120), 제2 어플리케이션 서버(130), 및 사용자 인터페이스 블루프린트 데이터베이스(140)를 포함할 수 있다.
상기 웹 클라이언트(110)는 데스크탑 컴퓨터 또는 휴대폰과 같은 네트워크를 통해 통신할 수 있는 임의의 디바이스일 수 있다. 사용자는, 어플리케이션 서버(120, 130)에 의해 수용된 데이터 및 어플리케이션을 보기 위해, 상기 웹 클라이언트(110)와 상호 작용할 수 있다. 다양한 실시예에 있어서, 사용자는 계정(transaction count) 소유자일 수 있으며, 또한 사용자는 어플리케이션 서버 상에 저장된 그 계정과 관련된 데이터를 보기를 원할 수 있다.
상기 어플리케이션 서버(120, 130)는 웹 클라이언트(110)에 디지털 콘텐츠를 제공할 수 있는 하나 또는 그 이상의 프로세서 또는 데이터베이스를 포함할 수 있다. 상기 어플리케이션 서버(120, 130)는 웹 클라이언트(110)에 제시된 하나 또는 그 이상의 어플리케이션을 작동시킬 수 있다. 다양한 실시예에 있어서, 상기 어플리케이션 서버(120, 130)는 임의의 적절한 어플리케이션 또는 제품을 제공할 수 있다.
사용자 인터페이스 블루프린트 데이터베이스(140)는, 사용자 인터페이스 블루프린트 파일(142)을 저장할 수 있다. 상기 사용자 인터페이스 블루프린트 파일(142)은 확장 가능한 마크업 언어(Extensible Markup Language)(XML) 또는 txt 파일과 같은 텍스트 파일일 수 있다. 사용자 인터페이스 블루프린트 파일(142)은, 콘텐츠를 보기 위한 사용자 선호도를 포함할 수 있다. 상기 사용자 선호도는 명시적 사용자 선호도와 암시적(implicit) 사용자 선호도 모두를 포함할 수 있다. 예를 들어, 바람직한 배경색 또는 폰트 크기와 같은 명시적 사용자 선호도는, 사용자에 의해 선택될 수 있다. 암시적 사용자 선호도는, 사용자가 선택하는 선호도 없이, 사용자 행동에 응답하여 어플리케이션 서버에 의해 학습될 수 있다. 예를 들어, 5개 이상의 데이터 필드가 있는 경우라면, 사용자는 등록 프로세스를 역사적으로 포기할 수 있다. 그 후, 상기 어플리케이션 서버(120, 130)는 사용자가 5개 미만의 데이터 필드를 갖는 등록 프로세스를 선호한다는 암시적 사용자 선호도를, 사용자 인터페이스 블루프린트 파일(142)에 저장할 수 있다.
다양한 실시예에 있어서, 사용자 인터페이스 블루프린트 파일은 웹 클라이언트(110) 상에 저장될 수 있다. 상기 웹 클라이언트(110)는 웹 클라이언트(110) 상에 맞춤형 사용자 인터페이스를 생성하기 위해, 상기 사용자 인터페이스 블루프린트 파일을 로컬로 생성 및 참조할 수 있는 하나 또는 그 이상의 어플리케이션을 실행할 수 있다.
도 2를 참조하면, 다양한 실시예에 따른 사용자 인터페이스 블루프린트 템플레이트(200)의 예가 도시되어 있다. 상기 사용자 인터페이스 블루프린트 템플레이트(200)는 사용자 인터페이스 밀도, 사용자 인터페이스 설정, 사용자 인터페이스 시맨틱, 및 사용자 인터페이스 레이아웃과 같은 선호도 카테고리를 포함할 수 있다. 각각의 선호도 카테고리는 하나 또는 그 이상의 요소를 포함할 수 있다. 예를 들어, 상기 사용자 밀도 카테고리는 문자 카운트, 단락 카운트, 이미지 카운트, 이미지 크기, 및 양식 입력 카운트를 포함할 수 있다. 상기 사용자 인터페이스 설정 카테고리는 윈도우 크기, 윈도우 줌, 윈도우 테두리, 폰트 리스트, 및 폰트 크기를 포함할 수 있다. 상기 사용자 인터페이스 시맨틱 카테고리는 제어 계층, 제어 이름, 제어 순서, 제어 크기, 제어 위치, 제어 컬러, 및 제어 정렬을 포함할 수 있다. 상기 사용자 인터페이스 레이아웃 카테고리는 스크롤 바아, 레이아웃 계층, 레이아웃 타입, 레이아웃 가중치, 레이아웃 배향, 및 페이지 매김을 포함할 수 있다.
도 3을 참조하면, 다양한 실시예에 따라, 제1 어플리케이션을 위한 단일-페이지 등록 양식(310) 및 다중-페이지 등록 양식(320)이 도시되어 있다. 상기 등록 양식(310, 320)은 사용자가 제품에 대해 가입하고, 계정을 생성하는 등을 허용할 수 있다. 일부 사용자는, 전체 등록 양식이 단일 스크린 상에 제시되었을 때, 등록 양식을 완성할 가능성이 더 높을 수 있다. 그러나 일부 사용자는, 등록 양식이 사용자에게 부분적으로 제시되었을 때, 등록 양식을 완성할 가능성이 더 높으므로, 사용자는 단일 스크린 상의 다수의 데이터 필드에 압도되지 않는다.
어플리케이션 서버는 단일 스크린 상에서 단일-페이지 등록 양식(310)에 모든 필드를 제공할 수 있다. 상기 어플리케이션 서버는 사용자가 등록 프로세스를 시작하지 않았다고 결정할 수 있다. 페이지 레벨 분석을 사용함으로써, 사용자 포기를 검출하는 것이 가능하며, 이는 사용자의 페이지 도착, 머물렀던 기간, 양식을 부분적으로 기입하여 페이지를 탐색했거나 페이지를 닫았거나, 또는 단일-페이지 등록 양식(310)을 사용하여 등록 프로세스를 시작했지만 그러나 완성하지는 않은 것처럼 수행된 임의의 동작을 검출하는 단계를 포함한다. 페이지 레벨 분석을 사용함으로써, 사용자 포기를 검출하는 것이 가능하며, 이는 사용자의 페이지 도착, 머물렀던 기간, 양식을 부분적으로 기입하여 페이지를 탐색했거나 페이지를 닫은 것처럼 수행된 임의의 동작을 검출하는 단계를 포함한다. 상기 어플리케이션 서버는 다중-페이지 등록 양식(320)을 동일한 세션 또는 상이한 세션으로 사용자에게 제시한다. 상기 다중-페이지 등록 양식(320)은 필드의 상이한 서브세트를 제1 스크린(322), 제2 스크린(324), 및 제3 스크린(326)으로 사용자에게 제시할 수 있다. 사용자가 상기 제1 스크린(322) 상의 데이터 필드를 완성한 후, 어플리케이션 서버는 사용자에게 제2 스크린(324)을 제시할 수 있다. 사용자가 상기 제2 스크린(324) 상의 데이터 필드를 완성한 후, 어플리케이션 서버는 사용자에게 제3 스크린(326)을 제시할 수 있다. 사용자가 다중-페이지 등록 양식(320)을 사용하여 등록을 완료한 것에 응답하여, 상기 어플리케이션 서버는 사용자가 단일-페이지 등록 양식보다는 다중-페이지 등록 양식을 선호하는 것으로 결정할 수 있다. 상기 어플리케이션 서버는 사용자가 등록 양식을 저밀도로 선호한다는 것을 나타내는 것으로 유추된 선호도를 상기 사용자 인터페이스 블루프린트 파일에 저장할 수 있으므로, 양식은 다중 스크린에 걸쳐 제시되고 및/또는 스크린당 특정 필드 수(number of field)로 제한된다. 평균 필드 수는, 어플리케이션을 통한 사용량에 따라 조정될 수 있고 또한 그에 따라 UI 밀도값(높음, 중간, 낮음)을 결정할 수 있는 동적 수치(dynamic number)이다.
도 4를 참조하면, 다양한 실시예에 따라, 도 3에 설명된 사용자 인터페이스에 대해 저장된 선호도에 기인하는 사용자 인터페이스 블루프린트 파일의 예가 도시되어 있다. 상기 사용자 인터페이스 블루프린트 파일은 사용자에 대한 고유 ID, 사용자 인터페이스 블루프린트 파일이 제시하는 템플레이트 타입, 및 선호도 카테고리를 포함할 수 있다. 상기 밀도 카테고리는, 사용자가 3개의 입력이 수직으로 배치된 저밀도 양식을 선호한다는 나타낸다. 상기 레이아웃 카테고리는, 사용자가 스크롤 바아가 없는 3개의 페이지를 선호한다는 것을 나타낸다. 상기 설정 카테고리는, 사용자가 1024x768 픽셀 크기, 100% 줌, 윈도우 테두리 없음, 및 크기가 12인 헬베티카 폰트(Helvetica font)를 선호한다는 것을 나타낸다. 상기 시맨틱 카테고리는, 사용자가 필드는 가운데 정렬되고 그리고 좌측으로 정렬되는 것을 선호한다는 것을 나타낸다. 다양한 실시예에 있어서, 상기 동적 사용자 인터페이스 일관성 시스템은, 사용자 인터페이스 블루프린트 파일을 실시간으로 연속적으로 업데이트할 수 있다. 예를 들어, 임의의 어플리케이션에서 사용자에 의해 취해진 각각의 동작에 응답하여, 상기 동적 사용자 인터페이스 일관성 시스템은 사용자 인터페이스 블루프린트 파일을, 밀도가 절대 값(3, 4, 등)뿐만 아니라 인디케이터(높음, 중간, 낮음)로도 캡처되는, 임의의 추가적인 명시적 또는 유추된 선호도로 업데이트할 수 있다. 이들 값은 과거 데이터의 평균에 기초하여 유추될 수 있다.
도 5를 참조하면, 다양한 실시예에 따라, 제2 어플리케이션에 대한 다중-페이지 등록 양식(500)의 예가 도시되어 있다. 어플리케이션 서버는 다중-페이지 등록 양식(500)을 생성하기 위해 도 4에 도시된 사용자 인터페이스 블루프린트 파일을 참조할 수 있다. 따라서 상기 다중-페이지 등록 양식(500)은, 스크린당 3개 이하의 필드 및 페이지 매김으로 저밀도로 디스플레이될 수 있다. 상기 다중-페이지 등록 양식(500)은 제1 스크린(510) 상에 이름 필드(first name field) 및 성 필드(last name field)를 디스플레이하는 단계를 포함할 수 있다. 사용자가 이름 필드 및 성 필드를 완성한 것에 응답하여, 상기 다중-페이지 등록 양식(500)은 제2 스크린(520) 상에 스트리트 필드(street field), 시티 필드(city field), 및 스테이트 필드(state field)를 디스플레이할 수 있다. 사용자가 제2 스크린(520) 상에 스트리트 필드, 시티 필드 및 스테이트 필드를 완성한 것에 응답하여, 상기 다중-페이지 등록 양식(500)은 제3 스크린(520) 상에 전화 필드(phone field) 및 이메일 필드를 디스플레이할 수 있다. 사용자 인터페이스 블루프린트 파일의 사양에 따라 다중-페이지 등록 양식(500)을 제시함으로써, 시스템은 그래픽 사용자 인터페이스의 효율성을 개선시키며, 또한 특정한 사용자가 다중-페이지 등록 양식(500)을 완성할 가능성을 증가시킬 수 있다.
따라서 제2 어플리케이션은 제1 어플리케이션과 유사한 모양 및 느낌으로 사용자에게 제시될 수 있다. 사용자 선호도는 로고, 컬러, 페이지 레이아웃, 탐색 시스템, 프레임, 마우스-오버(mouse-over) 효과, 또는 상이한 어플리케이션들 사이에서의 일관된 다른 요소들과 같은 시각적으로 인지 가능한 요소를 포함할 수 있으며, 사용자는 퍼미션 플래그(permission flag)를, UI에 대한 적용을 허용 가능/불가능으로 설정하도록 허용될 수 있다.
도 6을 참조하면, 다양한 실시예에 따라, 맞춤형 그래픽 사용자 인터페이스를 제공하기 위한 프로세스의 흐름도(600)가 도시되어 있다. 사용자는 제1 어플리케이션에 액세스할 수 있다(단계 610). 다양한 실시예에 있어서, 사용자는 사용자 이름 및 비밀번호와 같은 식별 정보를 제공할 수 있다. 동적 사용자 인터페이스 일관성 시스템은 사용자를 고유의 사용자 ID와 연관시킬 수 있다. 상기 어플리케이션이 클라이언트 서버 기반이라면, 사용자 동작으로부터의 이벤트가 캡처되어, 사용자 기계 상에 또는 서버측에 로컬로 저장될 수 있다. 동적 UI 시스템은, 입력을 모니터링하고 이를 프로세싱하여 블루프린트를 생성하기 위해, 이들 이벤트 로그에 액세스할 것이다. 상기 동적 사용자 인터페이스 일관성 시스템은, 사용자 ID에 대한 사용자 인터페이스 블루프린트 파일을 생성할 수 있다(단계 620). 사용자는 제1 어플리케이션에 대한 명시적 선호도를 입력할 수 있다. 예를 들어, 어플리케이션은 사용자가 폰트, 폰트 크기, 색 구성표(color scheme), 등과 같은 선호도를 선택하는 것을 허용할 수 있다. 상기 동적 사용자 인터페이스 일관성 시스템은 제1 어플리케이션으로부터 사용자 선호도를 획득하기 위해, 사용자 선호도 API를 사용할 수 있다. 상기 동적 사용자 인터페이스 일관성 시스템은 유추된 선호도를 결정할 수 있다. 유추된 선호도의 예로는, 사용자에 의해 명시적으로 설정되지 않은 임의의 UI 설정을 포함하며, 예 1은 높은 텍스트 밀도 UI의 사용자 포기에 기초하여 UI 텍스트 밀도 선호도를 결정하며, 예 2는 낮은 이미지 밀도 UI의 사용자 포기에 기초하여 UI 이미지 밀도 선호도를 결정한다. 상기 동적 일관성 시스템은 명시적 선호도 및 유추된 선호도를, 사용자 인터페이스 블루프린트 파일에 저장할 수 있다(단계 630).
사용자는 제2 어플리케이션에 액세스할 수 있다(단계 640). 동적 사용자 인터페이스 일관성 시스템은 사용자와 연관된 사용자 ID에 대한 사용자 인터페이스 블루프린트 파일이 존재하는 것으로 결정할 수 있다(단계 650). 예를 들어, 상기 동적 사용자 인터페이스 일관성 시스템은, 사용자 ID에 대한 사용자 인터페이스 블루프린트 파일을 데이터베이스에 조회할 수 있으며, 제2 앱은 UI 블루프린트에 대한 동적 UI 시스템을 조회하도록 프로그래밍 되어야만 할 것이다. 이런 조회는 동적 UI 시스템이 순수 클라이언트 기반인 경우 로컬로, 그리고 상기 시스템이 서버 기반인 경우 서버 상에서 실행될 수 있다. 상기 동적 사용자 인터페이스 일관성 시스템은, 사용자 선호도를 제2 어플리케이션에 제공할 수 있다(단계 660). 상기 제2 어플리케이션은 사용자 선호도에 따라 동적 사용자 인터페이스를 생성하기 위해, 사용자 인터페이스 블루프린트 파일을 참조할 수 있다(단계 670). 상기 시스템은 제2 어플리케이션과의 사용자 상호 작용에 응답하여, 추가적인 사용자 선호도를 수신할 수 있으며, 또한 시스템은 상기 추가적인 사용자 선호도를 상기 사용자 인터페이스 블루프린트 파일에 추가할 수 있다(단계 680).
여기서 다양한 실시예의 상세한 설명은 다양한 실시예를 예시적으로 도시한 첨부한 도면 및 사진을 참조한다. 이들 다양한 실시예가 본 기술분야의 숙련자가 본 발명을 실시할 수 있도록 충분히 상세하게 기재되었지만, 다른 실시예가 구현될 수 있으며 또한 본 발명의 정신 및 범주로부터의 일탈 없이 논리적인 그리고 기계적인 변경이 이루어질 수 있음을 인식해야 한다. 따라서 여기서의 상세한 설명은 단지 예시를 위한 것이며, 제한하려는 것이 아니다. 예를 들어, 임의의 방법 또는 프로세스 설명에 언급된 단계들은 임의의 순서로 실행될 수 있으며, 제시된 순서에 제한되지는 않는다. 더욱이, 임의의 기능 또는 단계는 하나 또는 그 이상의 제3자에게 아웃소싱되거나 수행될 수 있다. 또한, 단수에 대한 임의의 참조는 다수의 실시예를 포함하고, 하나 이상의 구성요소에 대한 임의의 참조는 단수의 실시예를 포함할 수 있다.
시스템, 방법 및 컴퓨터 프로그램 제품이 제공된다. 여기서의 상세한 설명에 있어서, "다양한 실시예", "일 실시예", "실시예", "예시적인 실시예" 등은 기재된 실시예가 특별한 특징, 구조, 또는 특성을 포함할 수 있지만, 그러나 모든 실시예가 특별한 특징, 구조, 또는 특성을 반드시 포함할 필요는 없음을 나타낸다. 더욱이, 이러한 문구가 반드시 동일한 실시예를 지칭하는 것은 아니다. 또한, 특별한 특징, 구조, 또는 특성이 실시예와 관련하여 기재되었을 때, 명시적으로 기술되었는지의 여부와는 관계없이 다른 실시예들과 관련하여 그러한 특징, 구조, 또는 특성에 영향을 미치는 것은 본 기술분야의 숙련자의 지식 내에 있다. 명세서를 읽은 후, 관련 기술(들)의 숙련자에게는 대안적인 실시예에서 본 발명을 구현하는 방법이 명백해질 것이다.
여기에 사용되는 바와 같이, "만족하다(satisfy)", "부합하다(meet)", "연관된(associated with)"이라는 문구 또는 이와 유사한 문구는, 동일한 매칭, 부분 매칭, 특정 기준에 부합, 데이터의 서브세트 매칭, 상관관계, 특정 기준 만족, 대응, 연관, 알고리즘 관계 및/또는 등을 포함할 수 있다. 유사하게, 여기에 사용되는 바와 같이, "인증(authenticate)"이라는 용어 또는 이와 유사한 용어는 정확한 인증, 부분 인증, 데이터의 서브세트 인증, 대응, 특정 기준 만족, 연관, 알고리즘 관계 및/또는 등을 포함할 수 있다.
"연관되다(associate)" 및/또는 "연관하는(associating)" 등과 유사한 용어 및 어구는, 예를 들어 (i) 계정, 및 (ii) 아이템(예를 들어, 제안, 보상, 할인) 및/또는 디지털 채널과 같은 요소들 사이의 관련성을 나타내거나 생성하기 위해, 룩업 테이블이나 임의의 다른 방법 또는 시스템을 사용하여, 태깅(tagging), 플래깅(flagging), 상관성(correlating)을 포함할 수 있다. 더욱이, 상기 연관은 임의의 적절한 동작, 이벤트, 또는 기간에 응답하여 임의의 지점에서 발생할 수 있다. 상기 연관은 사전-결정된 간격으로, 주기적으로, 무작위로, 1회, 1회 이상, 또는 적절한 요청이나 행동에 응답하여 발생할 수 있다. 임의의 정보가 소프트웨어 가능 링크를 통해 분배 및/또는 액세스될 수 있으며, 여기서 상기 링크는 이메일, 텍스트, 포스트, 소셜 네트워크 입력 및/또는 본 기술분야에 알려진 임의의 다른 방법을 통해 전송될 수 있다.
시스템 또는 임의의 구성요소는, 예를 들어 아마존(AMAZON)에 의해 개발된 알렉사 시스템(ALEXA system)과 같은 시스템 통합 기술과 통합될 수 있다. 알렉사는 작업, 엔터테인먼트, 일반 정보 등을 도울 수 있는 클라우드-기반 음성 서비스이다. 아마존 에코(Amazon Echo), 아마존 닷(Amazon Dot), 아마존 탭(Amazon Tap), 및 아마존 파이어 티브이(Amazon Fire TV)와 같은 모든 아마존 알렉사 디바이스는, 알렉사 음성 서비스(Alexa Voice Service)에 액세스할 수 있다. 시스템은 그 음성 활성화 기술을 통해 음성 명령을 수신하고, 다른 기능을 활성화하고, 스마트 디바이스를 제어하고 및/또는 정보를 수집할 수 있다. 예를 들어 음악, 이메일, 문자, 통화, 질문에 대한 답변, 주택 개량 정보(home improvement information), 스마트 홈 커뮤니케이션/활성화, 게임, 쇼핑, 해야 할 일 리스트 만들기, 알람 설정, 스트리밍 팟캐스트, 오디오북 재생, 및 날씨, 교통량 제공, 및 뉴스와 같은 다른 실시간 정보 등이 있다. 시스템은 사용자가 모든 알렉사-가능 디바이스를 거쳐 온라인 계정에 링크된 적격인 계정에 대한 정보에 액세스하는 것을 허용할 수 있다.
여기에 논의된 임의의 통신, 전송 및/또는 채널은 콘텐츠[예를 들어, 데이터, 정보, 메타 데이터(metadata) 등] 및/또는 콘텐츠 자체를 전달하기 위한 임의의 시스템 또는 방법을 포함할 수 있다. 콘텐츠는 임의의 형태 또는 매체로 제시될 수 있으며, 다양한 실시예에 있어서 콘텐츠는 전자적으로 전달될 수 있거나 및/또는 전자적으로 제시될 수 있다. 예를 들어, 채널은 웹 사이트 또는 디바이스(예를 들어, 페이스북, 유튜브®, 애플®TV®, 판도라®, 엑스박스®, 소니® 플레이스테이션®), 유니폼 리소스 로케이터("URL"), 문서(예를 들어, 마이크로소프트® 워드® 문서, 마이크로소프트® 액셀® 문서, 어도브® .pdf 문서 등), "e 북", "e 매거진", 어플리케이션 또는 마이크로 어플리케이션(여기에 기재된 바와 같은), SMS 또는 다른 타입의 텍스트 메시지, 이메일, 페이스북, 트위터, MMS 및/또는 다른 타입의 통신 기술을 포함할 수 있다. 다양한 실시예에 있어서, 채널은 데이터 파트너(data partner)에 의해 호스팅되거나 제공될 수 있다. 다양한 실시예에 있어서, 분배 채널은 판매자 웹 사이트, 소셜 미디어 웹 사이트, 가맹점(affiliate) 또는 파트너 웹 사이트, 외부 벤더, 모바일 디바이스 통신, 소셜 미디어 네트워크 및/또는 위치 기반 서비스 중 적어도 하나를 포함할 수 있다. 분배 채널은 판매자 웹 사이트, 소셜 미디어 사이트, 가맹점 또는 파트너 웹 사이트, 외부 벤더, 및 모바일 디바이스 통신 중 적어도 하나를 포함할 수 있다. 소셜 미디어 사이트의 예로는 페이스북®, 포스퀘어®, 트위터®, 마이스페이스(MYSPACE)®, 링크드인(LINKEDIN)® 등을 포함한다. 가맹점 또는 파트너 웹 사이트의 예로는 아메리칸 익스프레스®, 그루폰(GROUPON)®, 리빙소셜(LIVINGSOCIAL)® 등을 포함한다. 또한, 모바일 디바이스 통신의 예로는 문자 메시지, 이메일, 및 스마트폰용 모바일 어플리케이션을 포함한다.
다양한 실시예에 있어서, 여기에 기재된 방법은 여기에 기재된 다양한 특정 기계를 사용하여 구현된다. 여기에 기재된 방법은 본 기술분야의 숙련자에 의해 즉시 인식되는 바와 같이, 이하의 특정 기계 및 이후에 개발된 것들을 사용하여 임의의 적절한 조합으로 구현될 수 있다. 또한, 본 발명으로부터 명백한 바와 같이, 여기에 기재된 방법은 특정 물품의 다양한 변형으로 나타날 수 있다.
간결함을 위해, 통상적인 데이터 네트워킹, 어플리케이션 개발, 및 시스템의 다른 기능적 양태(및 시스템의 개별적인 작동 구성요소의 구성요소)는 여기에 상세히 기재되지 않을 수 있다. 또한, 여기에 포함된 다양한 도면에 도시된 연결선은, 다양한 요소들 사이의 예시적인 기능적 관련성 및/또는 물리적 결합을 나타내도록 의도된다. 많은 대안적인 또는 추가적인 기능적 관련성 또는 물리적 연결이 실제 시스템에 제시될 수 있음을 인식해야 한다.
여기에 논의되는 다양한 시스템 구성요소는 다음 중 하나 또는 그 이상을 포함할 수 있다: 디지털 데이터를 프로세싱하기 위한 프로세서를 포함하는 호스트 서버 또는 다른 컴퓨팅 시스템; 상기 프로세서에 연결되어 디지털 데이터를 저장하기 위한 메모리; 디지털 데이터를 입력하기 위해 상기 프로세서에 연결된 입력 디지타이저(input digitizer); 상기 메모리에 저장되고 또한 상기 프로세서에 의해 디지털 데이터의 프로세싱을 지시하도록 상기 프로세서에 의해 액세스 가능한 어플리케이션 프로그램; 상기 프로세서 및 메모리에 결합되어 상기 프로세서에 의해 프로세싱된 디지털 데이터로부터 도출되는 정보를 표시하기 위한 디스플레이 디바이스; 및 다수의 데이터베이스. 여기에 사용되는 다양한 데이터베이스는 클라이언트 데이터; 판매자 데이터; 금융 기관 데이터; 및/또는 시스템의 작동에 유용한 유사한 데이터를 포함할 수 있다. 본 기술분야의 숙련자라면 인식하는 바와 같이, 사용자 컴퓨터는 전형적으로 컴퓨터와 연관된 다양한 통상적인 종래의 지원 소프트웨어 및 드라이버뿐만 아니라, 운영체제[예를 들어, 윈도우즈®, 오에스2(OS2), 유닉스®, 리눅스®, 솔라리스(SOLARIS)®, 맥오에스(MacOS) 등]를 포함할 수 있다.
본 시스템 또는 그 임의의 부품(들) 또는 기능(들)은 하드웨어, 소프트웨어 또는 그 조합을 사용하여 구현될 수 있으며, 또한 하나 또는 그 이상의 컴퓨터 시스템이나 다른 프로세싱 시스템으로 구현될 수 있다. 그러나 실시예에 의해 수행되는 조작(manipulation)은 종종 매칭 또는 선택과 같은 용어로 지칭되며, 이는 통상적으로 인간 조작자에 의해 수행되는 정신적인 작동과 연관되어 있다. 인간 조작자의 이러한 능력은 여기에 기재된 임의의 작동에 필요하지 않으며 또는 대부분의 경우에는 바람직하지 않다. 오히려, 상기 작동은 기계 작동일 수 있으며, 또는 상기 임의의 작동은 인공 지능(AI)(Artificial Intelligence) 또는 기계 학습(Machine Learinig)에 의해 수행되거나 강화될 수 있다. 다양한 실시예를 수행하기 위한 유용한 기계로는, 범용 디지털 컴퓨터 또는 이와 유사한 디바이스를 포함한다.
실제로, 다양한 실시예에 있어서, 실시예는 여기에 기재된 기능성을 수행할 수 있는 하나 또는 그 이상의 컴퓨터 시스템에 관한 것이다. 상기 컴퓨터 시스템은 프로세서와 같은, 하나 또는 그 이상의 프로세서를 포함한다. 상기 프로세서는 통신 인프라[예를 들어, 통신 버스(communication bus), 크로스-오버 바아(cross-over bar), 또는 네트워크]에 연결된다. 이런 예시적인 컴퓨터 시스템과 관련하여 다양한 소프트웨어 실시예가 기재된다. 본 발명을 읽은 후, 관련 기술분야(들)의 숙련자에게는 다른 컴퓨터 시스템 및/또는 아키텍처를 사용하여 다양한 실시예를 구현하는 방법이 명백해질 것이다. 컴퓨터 시스템은 디스플레이 유닛 상에 디스플레이하기 위해 상기 통신 인프라로부터[또는 도시되지 않은 프레임 버퍼(frame buffer)로부터] 그래픽, 텍스트, 및 다른 데이터를 포워딩하는 디스플레이 인터페이스를 포함할 수 있다.
컴퓨터 시스템은 또한 예를 들어 랜덤 액세스 메모리(RAM)와 같은 메인 메모리를 포함하며, 그리고 보조 메모리 또는 내장-메모리(in-memory)(비회전) 하드 드라이브를 포함할 수도 있다. 상기 보조 메모리는 예를 들어 플로피 디스크 드라이브, 자기 테이프 드라이브, 광디스크 드라이브 등을 나타내는 하드 디스크 드라이브 및/또는 제거 가능한 저장 드라이브를 포함할 수 있다. 상기 제거 가능한 저장 드라이브는 잘 알려진 방식으로 제거 가능한 저장 유닛으로부터 판독하고 및/또는 제거 가능한 저장 유닛에 기입한다. 제거 가능한 저장 유닛은, 제거 가능한 저장 드라이브에 의해 판독되고 또한 이에 의해 기입되는 플로피 디스크, 자기 테이프, 광디스크 등을 나타낸다. 인식되는 바와 같이, 상기 제거 가능한 저장 유닛은 그 내부에 컴퓨터 소프트웨어 및/또는 데이터가 저장된 컴퓨터 사용 가능한 저장 매체를 포함한다.
다양한 실시예에 있어서, 보조 메모리는 컴퓨터 프로그램 또는 다른 명령들이 컴퓨터 시스템 내에 로딩되는 것을 허용하기 위해 다른 유사한 디바이스를 포함할 수 있다. 이러한 디바이스는 예를 들어, 제거 가능한 저장 유닛 및 인터페이스를 포함할 수 있다. 이러한 예로는 프로그램 카트리지 및 카트리지 인터페이스(비디오 게임 디바이스에서 발견되는 것과 같은), 제거 가능한 메모리 칩[소거 가능한 프로그램 가능한 판독 전용 메모리(EPROM)(erasable Programmable Read Only Memory) 또는 프로그램 가능한 판독 전용 메모리(PROM)(Programmable Read Only Memory)] 및 연관된 소켓, 그리고 제거 가능한 저장 유닛으로부터 컴퓨터 시스템으로 소프트웨어 및 데이터가 전송되는 것을 허용하는 기타 제거 가능한 저장 유닛 및 인터페이스를 포함할 수 있다.
컴퓨터 시스템은 통신 인터페이스를 포함할 수도 있다. 통신 인터페이스는 소프트웨어 및 데이터가 컴퓨터 시스템과 외부 디바이스 사이로 전송되는 것을 허용한다. 통신 인터페이스의 예로는 모뎀, 네트워크 인터페이스(이더넷 카드와 같은), 통신 포트, 퍼스널 컴퓨터 메모리 카드 국제 연합(PCMCIA)(Personal Computer Memory Card International Association) 슬롯 및 카드 등을 포함할 수 있다. 통신 인터페이스를 통해 전송된 소프트웨어 및 데이터는, 통신 인터페이스에 의해 수신될 수 있는 전자, 전자기, 광학 또는 다른 신호일 수 있는 신호 형태를 취한다. 이들 신호는 통신 경로(예를 들어, 채널)를 통해 통신 인터페이스에 제공된다. 이런 채널은 신호를 운반하며, 그리고 유선, 케이블, 광섬유, 전화선, 셀룰러 링크, 무선 주파수(RF) 링크, 무선, 및 기타 통신 채널을 사용하여 구현될 수 있다.
"컴퓨터 프로그램 매체" 및 "컴퓨터 사용 가능 매체" 그리고 "컴퓨터 판독 가능 매체"라는 용어는, 일반적으로 제거 가능한 저장 드라이브 및 하드 디스크 드라이브에 설치된 하드 디스크와 같은 매체를 지칭하는 데 사용된다. 이들 컴퓨터 프로그램 제품은 컴퓨터 시스템에 소프트웨어를 제공한다.
컴퓨터 프로그램(컴퓨터 제어 로직으로도 지칭된다)은 메인 메모리 및/또는 보조 메모리에 저장된다. 컴퓨터 프로그램은 통신 인터페이스를 통해 수신될 수도 있다. 이러한 컴퓨터 프로그램은, 실행되었을 때, 컴퓨터 시스템이 여기에 논의된 바와 같은 특징을 수행할 수 있게 한다. 특히, 컴퓨터 프로그램은, 실행되었을 때, 프로세서가 다양한 실시예의 특징을 수행할 수 있게 한다. 따라서 이러한 컴퓨터 프로그램은 컴퓨터 시스템의 제어기를 제공한다.
다양한 실시예에 있어서, 소프트웨어는 컴퓨터 프로그램 제품에 저장될 수 있으며, 그리고 제거 가능한 저장 드라이브, 하드 디스크 드라이브, 또는 통신 인터페이스를 사용하여 컴퓨터 시스템 내에 로딩될 수 있다. 제어 로직(소프트웨어)은, 프로세서에 의해 실행되었을 때, 프로세서로 하여금 여기에 기재된 바와 같은 다양한 실시예의 기능을 수행하게 한다. 다양한 실시예에는, 주문형 집적 회로(ASIC)와 같은 하드웨어 구성요소가 있다. 여기에 기재된 기능들을 수행하기 위해 하드웨어 상태 머신(hardware state machine)의 구현은 관련 기술(들)의 숙련자에게 명백할 것이다.
다양한 실시예에 있어서, 서버는 어플리케이션 서버[예를 들어, WEB SPHERE, WEB LOGIC, JBOSS, EDB® PPAS(Postgres Plus Advanced Server®) 등]를 포함할 수 있다. 다양한 실시예에 있어서, 서버는 웹 서버[예를 들어, 아파치, IIS, GWS, 선 자바(SUN JAVA)® 시스템 웹 서버, 리눅스 또는 윈도우즈에서 실행되는 자바 가상 머신]를 포함할 수 있다.
웹 클라이언트는 예를 들어 여기에 논의된 것들과 같은 임의의 네트워크를 통해 통신하는 임의의 디바이스(예를 들어, 퍼스널 컴퓨터)를 포함한다. 이러한 브라우저 어플리케이션은 온라인 거래 및/또는 통신을 수행하기 위해, 컴퓨팅 유닛 또는 시스템 내에 설치된 인터넷 브라우징 소프트웨어를 포함한다. 이들 컴퓨팅 유닛 또는 시스템은 컴퓨터 또는 컴퓨터 세트의 형태를 취할 수 있지만, 랩탑, 노트북, 태블릿, 핸드헬드 컴퓨터, 퍼스널 디지털 어시스턴트, 셋톱 박스, 워크 스테이션, 컴퓨터-서버, 메인 프레임 컴퓨터, 미니 컴퓨터, PC 서버, 편재형 컴퓨터(pervasive computer), 컴퓨터의 네트워크 세트, 아이패드®, 아이맥® 및 맥북스®와 같은 퍼스널 컴퓨터, 키오스크, 터미널, POS(Point of Sale) 디바이스 및/또는 터미널, 텔레비전, 또는 네트워크를 통해 데이터를 수신할 수 있는 임의의 다른 디바이스를 포함하는 다른 타입의 컴퓨팅 유닛 또는 시스템이 사용될 수 있다. 웹 클라이언트는 마이크로소프트® 인터넷 익스플로러®, 모질라(MOZILLA)® 파이어폭스®, 구글® 크롬®, 애플® 사파리(Safari), 또는 인터넷 브라우징에 사용할 수 있는 수많은 임의의 다른 소프트웨어 패키지를 실행할 수 있다.
실무자들은 웹 클라이언트가 어플리케이션 서버와 직접 접촉하거나 접촉하지 않을 수 있음을 이해할 것이다. 예를 들어, 웹 클라이언트는 인터넷 서버에 직접적으로 또는 간접적으로 연결될 수 있는, 또 다른 서버 및/또는 하드웨어 구성요소를 통해 어플리케이션 서버의 서비스에 액세스할 수 있다. 예를 들어, 웹 클라이언트는 로드 밸런서(load balancer)를 통해 어플리케이션 서버와 통신할 수 있다. 다양한 실시예에 있어서, 액세스는 네트워크를 통해 또는 상업적으로 이용 가능한 웹 브라우저 소프트웨어 패키지를 통한 네트워크를 통해 이루어진다.
본 기술분야의 숙련자라면 웹 클라이언트는 전형적으로 컴퓨터와 연관된 통상적인 다양한 지원 소프트웨어 및 드라이버뿐만 아니라, 운영체제[예를 들어, 윈도우즈®/CE/Mobile, OS2, 유닉스®, 리눅스®, 솔라리스(SOLARIS)®, 맥오에스(MacOS 등]를 포함하는 것을 인식할 것이다. 웹 클라이언트는 임의의 적절한 퍼스널 컴퓨터, 네트워크 컴퓨터, 워크 스테이션, 퍼스널 디지털 어시스턴트, 휴대폰, 스마트폰, 미니 컴퓨터, 메인 프레임 등을 포함할 수 있다. 웹 클라이언트는 네트워크에 액세스하는 가정 또는 비즈니스 환경에 있을 수 있다. 다양한 실시예에 있어서, 액세스는 네크워크를 통해 또는 상업적으로 이용 가능한 웹 브라우저 소프트웨어 패키지를 통한 인터넷을 통해 이루어진다. 웹 클라이언트는 SSL(Secure Sockets Layer) 및 TLS(Transport Layer Security)와 같은 보안 프로토콜을 구현할 수 있다. 웹 클라이언트는 http, https, ftp, 및 sftp 를 포함하는 몇몇의 어플리케이션 계층 프로토콜을 구현할 수 있다.
다양한 실시예에 있어서, 시스템(100)의 구성요소, 모듈 및/또는 엔진은 마이크로-어플리케이션 또는 마이크로-앱으로서 구현될 수 있다. 마이크로-앱은 전형적으로 예를 들어 윈도우즈® 모바일 운영체제, 안드로이드® 운영체제, 애플® IOS®, 블랙베리® 운영체제 등을 포함하는, 모바일 운영체제의 맥락으로 전개된다. 상기 마이크로-앱은 다양한 운영체제 및 하드웨어 리소스의 작동을 제어하는소정의 규칙 세트를 통해, 더 큰 운영체제 및 연관의 하드웨어의 리소스를 활용하도록 구성될 수 있다. 예를 들어, 마이크로-앱이 모바일 디바이스 또는 모바일 운영체제 이외의 디바이스 또는 네트워크와 통신하기를 원하는 경우, 상기 마이크로-앱은 미리 정해진 모바일의 규칙에 따라 운영체제 및 연관의 디바이스 하드웨어의 통신 프로토콜을 활용할 수 있다. 더욱이, 마이크로-앱이 사용자로부터의 입력을 원하는 경우, 상기 마이크로-앱은 다양한 하드웨어 구성요소를 모니터링하고 그 후 검출된 입력을 하드웨어로부터 마이크로-앱으로 통신하는 운영체제로부터 응답을 요청하도록 구성될 수 있다.
여기에 사용하는 바와 같이, "식별자(identifier)"는 아이템을 고유하게 식별하는 임의의 적절한 식별자일 수 있다. 예를 들어, 상기 식별자는 글로벌 고유 식별자("GUID")(globally unique identifier)일 수 있다. 상기 GUID 는 보편적으로 고유한 식별자 표준 하에 생성되는 및/또는 구현되는 식별자일 수 있다. 더욱이, 상기 GUID 는 32개의 16 진수로 디스플레이될 수 있는 l28-비트값으로 저장될 수 있다. 상기 식별자는 또한 주 번호(major number) 및 부 번호(minor number)를 포함할 수 있다. 상기 주 번호 및 부 번호는 각각 16 비트 정수일 수 있다.
다양한 실시예에 있어서, 계정은 고객을 식별할 수 있다. 또한, 다양한 실시예에 있어서, 고객은 예를 들어 이메일 주소, 전화 번호, 쿠키 ID, 무선 주파수 식별자(RFID), 생체 인식(biometric) 등을 포함하는 다양한 식별자에 의해 식별될 수 있다.
여기에 사용되는 바와 같이, "네트워크"라는 용어는 하드웨어 및/또는 소프트웨어 구성요소를 통합하는 임의의 클라우드, 클라우드 컴퓨팅 시스템, 또는 전자 통신 시스템 또는 방법을 포함한다. 당사자들 간의 통신은 예를 들어 전화 네트워크, 엑스트라넷, 인트라넷, 인터넷, 상호 작용 시점 디바이스(Point of Interaction device)[Point of Sale 디바이스, 개인 디지털 비서(예를 들어, 아이폰®, 블랙베리®), 휴대폰, 키오스크 등], 온라인 통신, 위성 통신, 오프라인 통신, 무선 통신, 트랜스폰더 통신, 근거리 통신망(LAN), 광대역 통신망(WAN), 가상 사설망(VPN), 네트워킹된 또는 링크된 디바이스, 키보드, 마우스 및/또는 적절한 통신 또는 데이터 입력 양식과 같은 임의의 적절한 통신 채널을 통해 달성될 수 있다. 더욱이, 여기에 기재된 시스템이 자주 TCP/IP 통신 프로토콜로 구현되는 것으로 설명되었더라도, 시스템은 IPX, 애플®톡, IP-6, NetBIOS®, OSI, 임의의 터널링 프로토콜(예를 들어, IPsec, SSH) 또는 기존의 또는 미래의 프로토콜의 임의의 번호를 사용하여 구현될 수도 있다. 네트워크가 인터넷과 같은 공용 네트워크의 특성인 경우라면, 네트워크가 안전하지 않고 도청자에게 개방되어 있다고 가정하는 것이 유리할 수 있다. 인터넷과 관련하여 이용되는 프로토콜, 표준, 및 어플리케이션 소프트웨어와 관련된 특정 정보는, 일반적으로 본 기술분야의 숙련자에게 공지되어 있으므로, 여기에 상세히 기재될 필요는 없다. 예를 들어, 디립 나익(Dilip Naik)의 인터넷 표준 및 프로토콜(1998); 자바® 2 완성, 다양한 저자(Sybex 1999); 데보라 레이(Deborah Ray) 및 에릭 레이(Eric Ray)의 HTML 4.0 마스터(1997); 및 로신(Loshin)의 TCP/IP의 명확한 설명(1997), 및 데이빗 구얼리( David Gourley) 및 브라이언 토티(Brian Totty)의 HTTP, 결정판 가이드(The Definitive Guide)(2002)를 참조하기 바라며, 그 내용들이 여기에 참조 인용되었다.
다양한 시스템 구성요소는 데이터 링크를 통해 네트워크에 독립적으로, 개별적으로 또는 집합적으로 적절하게 결합될 수 있으며, 이는 예를 들어 표준 모뎀 통신, 케이블 모뎀, 디시 네트워크(Dish Networks)®, ISDN, DSL(Digital Subscriber Line) 또는 다양한 무선 통신 방법과 관련하여 전형적으로 사용되는 로컬 루프를 통한 인터넷 서비스 공급자(ISP)(internet service provider)로의 연결을 포함하며, 이에 대해서는 여기에 참조 인용된 예를 들어 길버트 헬드(Gilbert Held)의 데이터 통신 이해(Understanding Data Communications)(1996)를 참조하기 바란다. 네트워크는 대화형 텔레비전(interactive television)(ITV) 네트워크와 같은 다른 타입의 네트워크로서 구현될 수 있음을 인식해야 한다. 더욱이, 상기 시스템은 여기에 기재된 유사한 기능성을 갖는 임의의 네트워크를 통해 임의의 상품, 서비스 또는 정보의 사용, 판매 또는 분배를 고려한다.
"클라우드" 또는 "클라우드 컴퓨팅"은 최소한의 관리 노력으로 또는 서비스 공급자 상호 작용으로 급속히 공급되어 방출될 수 있는 구성 가능한 컴퓨팅 리소스(예를 들어, 네트워크, 서버, 스토리지, 어플리케이션, 및 서비스)의 공유 풀(shared pool)에 대해 편리한 주문형 네트워크 액세스를 가능하게 하는 모델을 포함한다. 클라우드 컴퓨팅은 위치-독립적인 컴퓨팅을 포함할 수 있으며, 이에 의해 공유된 서버는 요청 시 리소스, 소프트웨어, 및 데이터를 컴퓨터 및 기타 디바이스에 제공한다. 클라우드 컴퓨팅에 대한 자세한 내용은 http://csrc.nist.gov/publications/nistpubs/800-l45/SP800-l45.pdf(2012년 6월 최종 방문)에서 클라우드 컴퓨팅의 NIST(표준 기술 국제 연합: National Institute of Standards and Technology)의 정의를 참조하기 바라며, 그 전체는 여기에 참조 인용되었다.
여기에 사용되는 바와 같이, "전송"은 네트워크 연결을 통해 하나의 시스템 구성요소로부터 또 다른 시스템 구성요소로 전자적 데이터를 전송하는 단계를 포함할 수 있다. 또한, 여기서 사용되는 바와 같이, "데이터"는 명령, 조회, 파일, 저장을 위한 데이터, 등과 같은 정보를 디지털 또는 임의의 다른 형태로 포함할 수 있다.
상기 시스템은 웹 서비스, 유틸리티 컴퓨팅, 편재형 및 개인화된 컴퓨팅, 보안 및 아이덴티티 솔루션, 자율 컴퓨팅, 클라우드 컴퓨팅, 상품 컴퓨팅, 이동성 및 무선 솔루션, 오픈 소스, 생체 인식, 그리드 컴퓨팅 및/또는 메시 컴퓨팅(mesh computing)과 연관된 사용을 고려하고 있다.
여기에 논의된 임의의 데이터베이스는 관계형, 계층적, 그래픽형, 블록 체인형, 객체-지향형 구조 및/또는 임의의 다른 데이터베이스 구성을 포함할 수 있다. 데이터베이스를 구현하는 데 사용할 수 있는 공통 데이터베이스 제품에는 아이비엠®(뉴욕 아몬크 소재)의 DB2, 오라클® 코포레이션(캘리포니아 레드우드 쇼어 소재), 마이크로소프트® 액세스® 또는 마이크로소프트® 코포레이션(워싱턴 레드몬드 소재)의 마이크로소프트® SQL 서버®, MySQL AB(스웨덴 웁살라 소재)의 MySQL, MongoDB®, Redis®, 아파치 카산드라®, 아파치®의 HBase, MapR-DB로부터 이용할 수 있는 다양한 데이터베이스 제품, 또는 임의의 다른 적절한 데이터베이스 제품을 포함한다. 더욱이, 상기 데이터베이스는 임의의 적절한 방식으로, 예를 들어 데이터 테이블 또는 룩업 테이블로서 구성될 수 있다. 각각의 레코드는 단일 파일, 일련의 파일, 링크된 일련의 데이터 필드, 또는 임의의 다른 데이터 구조일 수 있다.
특정 데이터의 연관은 본 기술분야에 알려졌거나 또는 실행된 바와 같은 임의의 원하는 데이터 연관 기술을 통해 달성될 수 있다. 예를 들어, 상기 연관은 수동으로 또는 자동으로 달성될 수 있다. 자동 관련 기술은, 검색 속도를 높이고, 모든 테이블 및 파일을 통한 순차적 검색 속도를 높이고, 룩업 등을 단순화하기 위해 알려진 순서에 따라 파일의 레코드의 분류 속도를 높이기 위해, 테이블의 키 필드를 사용하여 예를 들어 데이터베이스 검색, 데이터베이스 병합, GREP, AGREP, SQL 을 포함할 수 있다. 연관 단계는 예를 들어 미리 선택된 데이터베이스 또는 데이터 섹터의 "키 필드"를 사용하여, 데이터베이스 병합 기능에 의해 달성될 수 있다. 데이터베이스 성능을 최적화하기 위해, 다양한 데이터베이스 조정 단계가 고려된다. 예를 들어, 입/출력("I/O") 병목 현상을 감소시키기 위해, 색인(index)처럼 자주 사용되는 파일은 별도의 파일 시스템에 위치될 수 있다.
보다 구체적으로, "키 필드"는 상기 키 필드에 의해 정의된 객체의 상위 레벨 등급에 따라 데이터베이스를 분할한다. 예를 들어, 특정 타입의 데이터는 다수의 관련 데이터 테이블에서 키 필드로서 지정될 수 있으며, 그 후 데이터 테이블은 상기 키 필드의 데이터 타입에 기초하여 링크될 수 있다. 각각의 링크된 데이터 테이블에서 키 필드에 대응하는 데이터는, 동일한 것이 바람직하거나 또는 동일한 타입을 갖는 것이 바람직하다. 그러나 키 필드에서 유사한, 동일하지는 않더라도, 데이터를 갖는 데이터 테이블은 예를 들어 AGREP 를 사용하여 링크될 수도 있다. 일 실시예에 따라, 표준 포맷 없이 데이터를 저장하기 위해서는 임의의 적절한 데이터 저장 기술이 이용될 수 있다. 데이터 세트는, 예를 들어 ISO/IEC 7816-4 파일 구조를 사용하여 개별 파일을 저장하는 단계; 하나 또는 그 이상의 데이터 세트를 포함하는 하나 또는 그 이상의 기본 파일을 노출시키는 전용 파일이 선택되도록 도메인을 구현하는 단계; 계층적 파일링 시스템을 사용하여 개별 파일에 저장된 데이터 세트를 사용하는 단계; 단일 파일[압축, 하나 또는 그 이상의 키를 통해 해시된 액세스 가능한 SQL, 숫자, 제1 투플(tuple)에 의한 알파벳순 등을 포함하는]에 레코드로서 저장된 데이터 세트; ISO/IEC 7816-6 데이터 요소를 사용하여 인코딩된 그룹화되지 않은 데이터 요소로 저장된, ISO/IEC 8824 및 8825 에서처럼 ISO/IEC 추상 구문 표기법(abstract syntax notation)(ASN.1)을 사용하여 인코딩된 그룹화되지 않은 데이터 요소로 저장된 2진 대형 객체(binary large object)(BLOB); 및/또는 프랙탈 압축 방법(fractal compression method), 이미지 압축 방법 등을 포함할 수 있는 다른 독점 기술을 포함하는 임의의 적절한 기술을 사용하여 저장될 수 있다.
다양한 실시예에 있어서, 광범위한 정보를 상이한 포맷으로 저장하는 능력은, 정보를 BLOB 로서 저장함으로써 촉진된다. 따라서 임의의 2진 정보는 데이터 세트와 연관된 저장 공간에 저장될 수 있다. 전술한 바와 같이, 상기 2진 정보는 시스템과 관련하여 저장될 수 있거나, 또는 시스템의 외부에 있지만 그러나 시스템과 연계될 수 있다. 상기 BLOB 방법은, 고정된 스토리지 할당, 순환 큐 기술(circular queue technique), 또는 메모리 관리[예를 들어, 가장 최근에 사용된 페이징된 메모리(paged memory), 등]에 관한 최적의 사례를 사용하여, 고정된 메모리 오프셋을 통해 2진 블록으로서 포맷된 그룹화되지 않은 데이터 요소로서 데이터 세트를 저장할 수 있다. BLOB 방법을 사용함으로써, 상이한 포맷을 갖는 다양한 데이터 세트를 저장하는 능력은, 데이터 세트의 다중의 그리고 관련되지 않은 소유자에 의해, 데이터베이스에서 또는 시스템과 연관되어 데이터의 저장을 촉진시킨다. 예를 들어, 저장될 수 있는 제1 데이터 세트는 제1 당사자(first party)에 의해 제공될 수 있고, 저장될 수 있는 제2 데이터 세트는 관련되지 않은 제2 당사자에 의해 제공될 수 있지만, 저장될 수 있는 제3 데이터 세트는 상기 제1 및 제2 당사자와 관련없는 제3자에 의해 제공될 수 있다. 이들 3개의 예시적인 각각의 데이터 세트는 상이한 데이터 저장 포맷 및/또는 기술을 사용하여 저장된 상이한 정보를 포함할 수 있다. 또한, 각각의 데이터 세트는 다른 서브세트와 구별될 수도 있는 데이터의 서브세트를 포함할 수 있다.
전술한 바와 같이, 다양한 실시예에 있어서, 데이터는 공통 포맷에 관계없이 저장될 수 있다. 그러나 데이터 세트(예를 들어, BLOB)는 데이터를 조작하기 위해 데이터베이스 또는 시스템에 제공되었을 때 표준 방식으로 주석이 달릴 수 있다(annotated). 상기 주석(annotation)은 다양한 데이터 세트를 관리하는 데 유용한 정보를 운반하도록 구성된 각각의 데이터 세트와 관련된 짧은 헤더(short header), 트레일러(trailer), 또는 다른 적절한 인디케이터를 포함할 수 있다. 예를 들어, 상기 주석은 여기서 "상태 헤더", "헤더", "트레일러" 또는 "상태"라고 지칭될 수 있고, 또한 상기 데이터 세트의 상태의 표시를 포함하거나, 또는 특정한 발행자(specific issuer) 또는 데이터의 소유자와 관련된 식별자를 포함할 수 있다. 일 예에 있어서, 각각의 데이터 세트 BLOB 의 처음 3개의 바이트는, 예를 들어,로딩된(LOADED), 초기화된(INITIALIZED), 준비된(READY), 차단된(BLOCKED), 제거 가능한(REMOVABLE), 또는 삭제된(DELETED)과 같은 특별한 데이터 세트의 상태를 나타내도록 구성되거나 구성될 수 있다. 데이터의 후속 바이트는 예를 들어 발행자, 사용자, 계정/회원 계정 식별자 등의 신원을 나타내는 데 사용될 수 있다. 이들 각각의 상태 주석들이 여기에 더 논의될 것이다.
상기 데이터 세트 주석은 다양한 다른 목적뿐만 아니라 다른 타입의 상태 정보를 위해 사용될 수도 있다. 예를 들어, 데이터 세트 주석은 액세스 레벨을 설정하는 보안 정보를 포함할 수 있다. 상기 액세스 레벨은 예를 들어 특정의 개인, 고용인의 레벨, 회사, 또는 다른 독립체만 데이터 세트에 액세스하는 것을 허용하거나, 또는 거래, 판매자, 발행자, 사용자 등에 기반하여 특정 데이터 세트에 대한 액세스를 허용하도록 구성될 수 있다. 또한, 보안 정보는 데이터 세트의 액세스, 수정, 및/또는 삭제와 같은 특정 동작만을 제한/허용할 수 있다. 일 예에 있어서, 상기 데이터 세트 주석은 데이터 세트 소유자 또는 사용자만 데이터 세트를 삭제할 수 있고, 식별된 다양한 사용자가 데이터 세트에 액세스하여 읽기가 허용될 수 있으며, 그리고 다른 사람들은 데이터 세트에 액세스하는 것이 완전히 배제될 수 있음을 나타낸다. 그러나 다른 액세스 제한 파라미터가 사용되어, 다양한 독립체가 다양한 허용 레벨로 상기 데이터 세트에 적절히 액세스하는 것을 허용할 수도 있다.
헤더 또는 트레일러를 포함하는 데이터는 상기 헤더 또는 트레일러에 따라 데이터를 추가, 삭제, 수정, 또는 확장하도록 구성된 독립형 상호 작용 디바이스에 의해 수신될 수 있다. 따라서 일 실시예에 있어서, 상기 헤더 또는 트레일러는 연관된 발행자-소유의 데이터와 함께 거래 디바이스에 저장되지 않으며, 그 대신에 상기 독립형 디바이스에서 취해질 조치에 대한 적절한 옵션을 사용자에게 제공함으로써 적절한 조치가 취해질 수 있다. 상기 시스템은, 데이터의 헤더나 트레일러 또는 헤더나 트레일러 이력(history)이 적절한 데이터와 관련하여 시스템, 디바이스, 또는 거래 수단에 저장되는, 데이터 저장 설비를 고려할 수 있다.
본 기술분야의 숙련자라면 보안상의 이유로 시스템의 임의의 데이터베이스, 시스템, 디바이스, 서버, 또는 다른 구성요소가 단일 위치 또는 다중 위치에서 그 임의의 조합으로 구성될 수 있으며, 여기서 각각의 데이터베이스 또는 시스템은 방화벽, 액세스 코드, 암호화, 암호 해독, 압축, 압축 해제, 등과 같은 임의의 다양한 적절한 보안 특징을 포함한다.
암호화는 본 기술분야에 현재 이용 가능하거나 또는 이용 가능될 수 있는 임의의 기술, 예를 들어 Twofish, RSA, El Gamal, Schorr signature, DSA, PGP, PKI, GPG(GnuPG), HPE 포맷-보존 암호화(Format-Preserving Encryption)(FPE), 전압, 그리고 대칭 및 비대칭 암호화 시스템에 의해 수행될 수 있다. 시스템 및 방법은 ECC(Elliptic Curve Cryptography) 및 개발 중인 다른 양자 판독 가능한 암호화 알고리즘(Quantum Readable Cryptography Algorithms)뿐만 아니라, SHA 시리즈 암호화 방법도 통합할 수 있다.
상기 웹 클라이언트의 컴퓨팅 유닛에는, 표준 다이얼-업(dial-up), 케이블, DSL, 또는 본 기술분야에 알려진 임의의 다른 인터넷 프로토콜을 사용하여 인터넷 또는 인트라넷에 연결된 인터넷 브라우저가 추가로 설치될 수 있다. 웹 클라이언트에서 시작된 거래는, 다른 네트워크 사용자의 무단 액세스를 방지하기 위해, 방화벽을 통과할 수 있다. 또한, CMS 의 다양한 구성요소들 사이에 추가적인 방화벽이 전개될 수 있어서, 추가로 보안을 강화할 수 있다.
여기에 논의된 컴퓨터는 사용자에 의해 액세스 가능한 적절한 웹 사이트 또는 다른 인터넷-기반 그래픽 사용자 인터페이스를 제공할 수 있다. 일 실시예에 있어서, 마이크로소프트® 인터넷 정보 서비스(INTERNET INFORMATION SERVICES)(IIS), 마이크로소프트® 거래 서버(MICROSOFT Transaction Server)(MTS), 및 마이크로소프트® SQL 서버는, 마이크로소프트® 운영체제, 마이크로소프트® NT 웹 서버 소프트웨어, 마이크로소프트® SQL 서버 데이터베이스 시스템, 및 마이크로소프트® 커머스 서버와 함께 사용된다. 또한 액세스(Access) 또는 마이크로소프트® SQL Server, 오라클E®, 사이베이스(Sybase), 인포믹스 MySQL, 인터베이스(Interbase) 등과 같은 구성요소가 사용되어, 액티브 데이터 객체(Active Data Object)(ADO) 호환 데이터베이스 관리 시스템을 제공하는 데 사용될 수 있다. 일 실시예에 있어서, 아파치 웹 서버는 리눅스 운영체제, MySQL 데이터베이스, 및 Perl, PHP, Ruby 및/또는 Python 프로그래밍 언어와 함께 사용된다.
여기에 논의된 임의의 통신, 입력, 저장, 데이터베이스, 또는 디스플레이는 웹 페이지를 갖는 웹 사이트를 통해 촉진될 수 있다. 여기에 사용되는 바와 같이 "웹 페이지"라는 용어는 사용자와 상호 작용하기 위해 사용될 수 있는 문서 및 어플리케이션의 타입을 제한하는 것으로 의도되지 않는다. 예를 들어 전형적인 웹 사이트로는 표준 HTML 문서 외에도, 다양한 양식, 자바® 애플릿, 자바스크립트, 액티브 서버 페이지(Active Server Page)(ASP), 공통 게이트웨이 인터페이스 스크립트(Common Gateway Interface Scripts)(CGI), 확장 가능한 마크업 언어(XML), 동적 HTML, 캐스케이딩 스타일 시트(Cascading Style Sheet)(CSS), 비동기식 자바스크립트 및 XML(Asynchronous 자바스크립트 And XML)(AJAX), 헬퍼 어플리케이션(helper application), 플러그인, 등을 포함한다. 서버는 웹 서버로부터의 요청을 수신하는 웹 서비스를 포함할 수 있으며, 상기 요청은 URL 및 IP 어드레스(123.56.789.234)를 포함한다. 상기 웹 서버는 적절한 웹 페이지를 검색하여, 상기 웹 페이지에 대한 데이터 또는 어플리케이션을 IP 어드레스로 송신한다. 웹 서비스는 인터넷과 같은 통신 수단을 통해 다른 어플리케이션과 상호 작용할 수 있는 어플리케이션이다. 웹 서비스는 전형적으로 XML, SOAP, AJAX, WSDL 및 UDDI 와 같은 표준 또는 프로토콜을 기반으로 한다. 웹 서비스 방법은 본 기술분야에 잘 알려져 있으며, 또한 많은 표준 텍스트로 커버되고 있다. 예를 들어, 여기에 참조 인용된 알렉스 응히엠(Alex Nghiem)의 IT 웹 서비스: 기업을 위한 로드맵(2003)을 참조하기 바란다. 예를 들어 표현 상태 변경(Representational State Transfer)(REST) 또는 RESTful, 웹 서비스는 어플리케이션들 사이에 상호 운용성을 가능하게 하는 하나의 방법을 제공할 수 있다.
미들웨어(middleware)는, 이종 컴퓨팅 시스템들 사이의 통신 및/또는 프로세스 거래를 촉진시키도록 적절히 구성된 임의의 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 미들웨어 구성요소는 상업적으로 이용 가능하며, 그리고 본 기술분야에 알려져 있다. 미들웨어는 상업적으로 이용 가능한 하드웨어 및/또는 소프트웨어를 통해, 맞춤형 하드웨어 및/또는 소프트웨어 구성요소를 통해, 또는 그 조합을 통해 구현될 수 있다. 미들웨어는 다양한 구성으로 상주할 수 있고, 또한 독립형 시스템으로 존재할 수 있으며, 또는 인터넷 서버에 상주하는 소프트웨어 구성요소일 수 있다. 미들웨어는 여기에 기재된 임의의 목적을 위해 어플리케이션 서버의 다양한 구성요소와 임의의 개수의 내부 또는 외부 시스템 사이의 거래를 프로세싱하도록 구성될 수 있다. 아이비엠®, 인코포레이티드(뉴욕 아몬크 소재)의 WEBSPHERE MQTM(이전에는 MQSeries)는, 상업적으로 이용 가능한 미들웨어 제품의 예이다. 미들웨어의 또 다른 예로는 엔터프라이즈 서비스 버스(Enterprise Service Bus)(ESB) 어플리케이션이 있다.
실무자들은 또한 브라우저-기반 문서 내에 데이터를 디스플레이하기 위한 많은 방법이 있음을 인식할 것이다. 데이터는 표준 텍스트로서 또는 고정 리스트, 스크롤 가능 리스트, 드롭-다운 리스트, 편집 가능 텍스트 필드, 고정 텍스트 필드, 팝업 윈도우 등 내에 제시될 수 있다. 마찬가지로, 예를 들어 키보드를 이용한 자유 텍스트 입력, 메뉴 아이템의 선택, 체크 박스, 옵션 박스, 등과 같이 웹 페이지에서 데이터를 수정하는 데 유용한 여러 가지 방법이 있다.
시스템 및 방법은 여기에서는 기능 블록 구성요소, 스크린 샷(screen shot), 선택적 선택, 및 다양한 프로세싱 단계의 관점에서 기재될 수 있다. 이러한 기능 블록은 특정 기능을 수행하도록 구성된 임의의 개수의 하드웨어 및/또는 소프트웨어 구성요소에 의해 실현될 수 있음을 인식해야 한다. 예를 들어, 시스템은 다양한 집적 회로 구성요소, 예를 들어 메모리 요소, 프로세싱 요소, 로직 요소, 룩업 테이블 등을 이용할 수 있으며, 이들은 하나 또는 그 이상의 마이크로 프로세서 또는 다른 제어 디바이스 등의 제어 하에 다양한 기능을 수행할 수 있다. 유사하게, 시스템의 소프트웨어 요소는 C, C ++, C#, 자바®, 자바스크립트, 자바스크립트 객체 노테이션(JASONSCRIPT Object Notation(JSON), VBScript, 매크로미디어 콜드 퓨전(Macromedia Cold Fusion), COBOL, 마이크로소프트® 액티브 서버 페이지, 어셈블리, PERL, PHP, awk, Python, Visual Basic, SQL 스토어드 프로시저, PL/SQL, 임의의 UNIX 쉘 스크립트, 및 데이터 구조, 객체, 프로세스, 루틴, 또는 다른 프로그래밍 요소의 임의의 조합으로 구현되는 다양한 알고리즘으로 확장 가능한 마크업 언어(XML)와 같은 임의의 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 또한, 시스템은 데이터 전송, 시그널링, 데이터 프로세싱, 네트워크 제어, 등을 위한 임의의 개수의 통상적인 기술을 사용할 수 있음을 인식해야 한다. 또한, 시스템은 자바스크립트, VBScript 등과 같은 클라이언트측 스크립팅 언어의 보안 문제를 검출하거나 방지하는 데 사용될 수 있다. 암호화 및 네트워크 보안에 대한 기본 소개는, (1) "어플라이드 암호화: 존 윌리(John Wiley) 및 손스(Sons)에 의해 출판된(1995년 제2판) 부르스 쉬나이어(Bruce Schneier)의 C 에서의 프로토콜, 알고리즘, 및 소스 코드"; (2) 오레일리 앤드 어소시에이츠(O'Reilly & Associates)에 의해 출판된(1998) 조나단 너드손(Jonathan Knudson)의 "자바® 암호화"; (3) 프렌티스 홀(Prentice Hall)에 의해 출판된 윌리엄 스탈링스(William Stallings)의 "암호화 및 네트워크 보안: 원리 및 실무"를 참조하기 바라며, 이들 모두는 여기에 참조 인용되었다.
다양한 실시예에 있어서, 시스템의 소프트웨어 요소는 또한 Node.js® 을 사용하여 구현될 수 있다. Node.js® 은 다양한 핵심 기능을 취급하기 위해 몇몇의 모듈을 구현할 수 있다. 예를 들어, npm® 과 같은 패키지 관리 모듈은, 제3자Node.js® 프로그램의 설치 및 관리를 구성하는 것을 돕기 위해 오픈 소스 라이브러리로 구현될 수 있다. Node.js® 은 예를 들어 "평행 멀티스레드형 머신(Parallel Multithreaded Machine)(PM2)"와 같은 프로세스 매니저; 예를 들어, 노드 어플리케이션 메트릭스["앱메트릭스(appmetrics)"]와 같은 리소스 및 성능 모니터링 툴; 예를 들어 ReachJS® 과 같은 사용자 인터페이스를 구축하기 위한 라이브러리 모듈; 및/또는 임의의 다른 적절한 및/또는 원하는 모듈을 구현할 수도 있다.
본 기술분야의 숙련자라면 인식하고 있는 바와 같이, 시스템은 기존 시스템, 애드-온 제품(add-on product), 업그레이드된 소프트웨어를 실행하는 프로세싱 장치, 독립형 시스템, 분배 시스템, 방법, 데이터 프로세싱 시스템, 데이터 데이터 프로세싱을 위한 디바이스 및/또는 컴퓨터 프로그램 제품의 맞춤형으로서 구현될 수 있다. 따라서 시스템 또는 모듈의 임의의 부분은 코드를 실행하는 프로세싱 장치, 인터넷 기반 실시예, 전체 하드웨어 실시예, 또는 인터넷, 소프트웨어 및 하드웨어의 양태를 조합하는 실시예의 형태를 취할 수 있다. 또한, 시스템은 저장 매체에 구현된 컴퓨터-판독 가능 프로그램 코드 수단을 갖는 컴퓨터-판독 가능 저장 매체 상의 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 하드 디스크, CD-ROM, 광학 저장 디바이스, 자기 저장 디바이스 등을 포함하는 임의의 적절한 컴퓨터 판독 가능 저장 매체가 이용될 수 있다.
시스템 및 방법은 여기에서는 다양한 실시예에 따른 방법, 장치(예를 들어, 시스템), 및 컴퓨터 프로그램 제품의 스크린 샷, 블록도 및 흐름도를 참조하여 기재되었다. 블록도 및 흐름도 예시의 각각의 기능 블록, 및 블록도 및 흐름도 예시에서의 기능 블록들의 조합은, 컴퓨터 프로그램 명령에 의해 각각 구현될 수 있음을 인식해야 한다.
따라서 블록도 및 흐름도 예시의 기능 블록은 특정 기능을 수행하기 위한 수단의 조합, 특정 기능을 수행하기 위한 단계의 조합, 및 특정 기능을 수행하기 위한 프로그램 명령 수단을 지원한다. 또한, 블록도 및 흐름도 예시의 각각의 기능 블록, 및 블록도 및 흐름도 예시의 각각의 기능 블록 및 블록도 및 흐름도 예시의 기능 블록들의 조합은, 특정 기능 또는 단계를 수행하는 특수 목적의 하드웨어-기반 컴퓨터 시스템에 의해, 또는 특수 목적 하드웨어 및 컴퓨터 명령의 적절한 조합에 의해 구현될 수 있음을 인식해야 한다. 또한, 프로세스 흐름의 예시 및 그 설명은 사용자 윈도우즈®, 웹 페이지, 웹 사이트, 웹 양식, 프롬프트 등을 참조할 수 있다. 실무자들은 여기에 기재된 예시적인 단계들이 윈도우즈®, 웹 페이지, 웹 양식, 팝업 윈도우즈®, 프롬프트 등의 사용을 포함하는 임의의 개수의 구성을 포함할 수 있다는 것을 인식할 것이다. 또한, 도시되고 기재된 바와 같은 복수의 단계는 단일 웹 페이지 및/또는 윈도우즈®로 조합될 수 있지만, 그러나 간단함을 위해 확장되었음을 인식해야 한다. 다른 경우에, 단일 프로세스 단계로서 도시되고 기재된 단계는, 복수의 웹 페이지 및/또는 윈도우즈®로 분리될 수 있지만, 그러나 단순함을 위해 조합되었다.
"비 일시적(non-transitory)"이라는 용어는 청구범위로부터는 전파되는 일시적인 신호 그 자체만을 제거하는 것으로 인식되어야 하며, 또한 그 자체로 일시적인 신호만을 전파하는 것이 아닌 모든 표준 컴퓨터-판독 가능 매체에 대한 권리를 포기하지 않음을 인식해야 한다. 달리 말하면, 상기 "비 일시적 컴퓨터-판독 가능 매체" 및 "비 일시적 컴퓨터-판독 가능 저장 매체"라는 용어의 의미는, 35 USC §101에 따라 특허 가능한 주제의 범위를 벗어난 In Re Nuijten에서 발견된 그러한 타입의 일시적 컴퓨터-판독 가능 매체만을 배제하도록 해석되어야만 한다.
특정 실시예와 관련하여 이점, 다른 장점, 및 문제에 대한 해결책이 여기에 기재되었다. 그러나 이점, 장점, 문제에 대한 해결책, 및 임의의 이점, 장점, 또는 해결책이 발생하거나 더 두드러지도록 유발시킬 수 있는 임의의 요소는, 본 발명의 중요한, 요구되는, 또는 본질적인 특징 또는 요소로서 해석되어서는 안된다. 따라서 본 발명의 범주는 첨부된 청구범위 이외의 다른 것에 의해 제한되지 않으며, 단수의 요소에 대한 언급은 명시적으로 언급되지 않는 한 "오직 하나만"을 의미하는 것이 아니라, "하나 또는 그 이상"을 의미하는 것으로 의도된다. 더욱이, 'A, B, 및 C 중 적어도 하나 또는 A, B, 또는 C 중 적어도 하나와 유사한 문구가 청구범위 또는 명세서에 사용되는 경우, 상기 문구는 실시예에서는 A만 제시될 수 있고, 실시예에서는 B만 제시될 수 있고, 실시예에서는 C만 제시될 수 있다는 의미로 해석되거나, 또는 상기 요소 A, B, C의 조합, 예를 들어 A 및 B, A 및 C, B 및 C, 또는 A와 B와 C는 단일의 실시예에 제시될 수 있는 의미로 해석되는 것으로 의도된다.
본 발명이 방법을 포함하고 있더라도, 자기 또는 광학 메모리 또는 자기 또는 광학 디스크와 같은 실재하는 컴퓨터 판독 가능한 캐리어 상의 컴퓨터 프로그램 명령으로서 구현될 수 있는 것으로 고려된다. 본 기술분야의 숙련자에게 알려진 전술한 다양한 실시예의 요소에 대한 모든 구조적, 화학적, 및 기능적 등가물은, 여기에 명백히 통합되었으며, 그리고 본 청구범위에 포함되도록 의도되었다. 더욱이, 디바이스 또는 방법이 본 발명에 의해 해결하고자 하는 각각의 그리고 모든 문제에 접근할 필요는 없는데, 그 이유는 본 청구범위에 포함되기 때문이다. 또한, 본 발명의 요소, 구성요소, 또는 방법 단계는 요소, 구성요소, 또는 방법 단계가 청구범위에 명시적으로 언급되는지의 여부와는 관계없이, 대중에게 헌신하는 것으로는 의도되지 않는다. "하기 위한 수단"이라는 문구를 사용하여 요소가 명시적으로 언급되지 않는 한, 청구범위 요소는 35 U.S.C 112(f)를 적용하도록 의도되지 않았다. 여기에 사용되는 바와 같이, "포함하다(comprise)", "포함하는(comprising)"이라는 용어 또는 그 임의의 다른 파생어는, 비 배타적 포함(non-exclusive inclusion)을 커버하는 것으로 의도되므로, 요소의 리스트를 포함하는 프로세스, 방법, 물품, 또는 장치는 이러한 요소들만 포함하지 않지만, 그러나 그러한 프로세스, 방법, 물품, 또는 장치에 명시적으로 열거되거나 고유하지 않은 다른 요소를 포함할 수 있다.
본 명세서 및 청구범위는 동적 맞춤화 사용자 인터페이스를 제공한 특정 결과만을 기재할 뿐만 아니라, 본 명세서 및 청구범위는 동적 맞춤화 사용자 인터페이스를 제공한 결과를 구현하기 위한 특정 규칙을 포함하며, 또한 정보를 특정 포맷으로 렌더링하며, 그 후 상기 포맷은 McRO, Inc. v. 반다이 남코 게임즈 아메리칸 인코포레이드(Bandai Namco Games America Inc.)(Fed. Cir. 사례 번호 15-1080, 2016년 9월 13일)에 발표된 바와 같이 동적 사용자 정의 사용자 인터페이스를 제공한 원하는 결과를 생성하는 데 사용 및 적용된다. 환언하면, 동적 맞춤형 사용자 인터페이스를 제공한 결과는 많은 상이한 타입의 규칙 및 규칙의 조합에 의해 수행될 수 있으며, 본 발명은 특정 규칙을 갖는 다양한 실시예를 포함한다. 완전한 선점(preemption)의 부재가 청구가 적격임을 보장하는 것은 아니지만, 본 발명은 동적 맞춤형 사용자 인터페이스를 제공하는 필드를 충분히 선점하지는 않는다. 본 발명은, 동적 맞춤형 사용자 인터페이스를 제공하는 일반적인 추상적 아이디어를 포함하지 않기 위해, 본 발명을 좁히고, 한정하고, 달리 구속하도록 동작한다. 중요하게도, 동적 맞춤형 사용자 인터페이스를 제공하는 다른 시스템 및 방법이 존재하므로, 청구된 발명이 필드를 선점하거나 또는 동적 맞춤형 사용자 인터페이스를 제공하는 기본 툴을 독점한다고 주장하는 것은 부적절하다. 환언하면, 다른 시스템이 청구된 발명과는 상이한 방식으로 그 기능성을 이미 수행하고 있기 때문에, 본 발명은 다른 사용자가 동적 맞춤형 사용자 인터페이스를 제공하는 것을 방해하지 않을 것이다. 더욱이, 청구된 발명은 Bascom v. AT&T Mobility, 2015-1763(Fed. Cir. 2016)에 순응하여, 알려진 통상적인 제품의 비 통상적인 그리고 비 일반적인 배치에서 발견될 수 있는 본 발명의 개념을 포함한다. 본 명세서 및 청구범위는, 시스템의 상호 작용 및 시너지가 독립적으로 작동하는 시스템들 중 어느 하나에 의해 제공되지 않는 추가적인 기능성으로 이어진다는 점에서, 시스템들 중 어느 하나의 임의의 관례를 넘어선다. 본 명세서 및 청구범위는 복수의 상이한 시스템들 간의 상호 작용을 포함할 수도 있으므로, 본 발명은 일반적인 컴퓨터의 구현으로 간주될 수 없으며 또는 단지 추상적인 프로세스에 "이를 적용"할 수 없다. 본 명세서 및 청구범위는 소프트웨어 분야의 문제점에 대한 해결책의 특정 구현으로 소프트웨어의 개선에 관한 것일 수도 있다.
다양한 실시예에 있어서, 시스템 및 방법은 사용자에게 자동으로 보여질 수 있도록 설치되어 있는 윈도우의 텍스트 정보를 동적으로 재위치/재조정하기 위한 그래픽 사용자 인터페이스를 포함할 수 있다. 중첩 조건에 기초하여 텍스트 정보를 동적으로 재배치하는 것을 허용함으로써, 컴퓨터의 정보를 디스플레이하는 능력이 개선된다. 보다 구체적으로, 그래픽 사용자 인터페이스에 디스플레이되는 설치된 윈도우 내에서 텍스트 정보를 동적으로 재위치하는 방법은, 컴퓨터 스크린 상의 그래픽 사용자 인터페이스 내에 제1 포맷으로 텍스트 정보를 포함하는 제1 윈도우를 디스플레이하는 단계; 상기 그래픽 사용자 인터페이스 내에 제2 윈도우를 디스플레이하는 단계; 상기 제1 윈도우의 텍스트 정보가 사용자의 시야로부터 가려지도록 상기 제2 윈도우가 상기 제1 윈도우와 중첩되는 중첩 조건을 검출하기 위해, 상기 제1 윈도우 및 상기 제2 윈도우의 경계를 지속적으로 모니터링하는 단계; 제1 윈도우의 방해받지 않은 부분으로 재위치되었다면, 상기 텍스트 정보가 완전히 보이지 않는 것으로 결정하는 단계; 상기 제1 윈도우의 면적의 제1 측정값 및 상기 제1 윈도우의 방해받지 않은 부분의 면적의 제2 측정값을 계산하는 단계; 상기 제1 측정값과 상기 제2 측정값의 차이에 비례하는 스케일링 팩터(scaling factor)를 계산하는 단계; 상기 스케일링 팩터에 기초하여 상기 텍스트 정보를 스케일링하는 단계; 스케일링된 전체 텍스트 정보가 컴퓨터 스크린 상에서 사용자에게 보일 수 있도록, 상기 스케일링된 텍스트 정보를, 중첩 조건 동안 제2 포맷으로 상기 제1 윈도우의 가려지지 않은 부분에, 프로세서에 의해 자동으로 재위치하는 단계; 및 상기 중첩 조건이 더 이상 존재하지 않을 때, 상기 재위치된 스케일링된 텍스트 정보를 프로세서에 의해 제1 윈도우 내의 제1 포맷으로 자동으로 복귀시키는 단계를 포함할 수 있다.
다양한 실시예에 있어서, 시스템은 호스트 구매 웹 페이지의 "모양 및 느낌"을 광고 판매자의 웹 페이지의 제품-관련 콘텐츠 정보와 공동 마케팅하기 위한 시스템을 사용하여, 가맹점 구매 거래 동안 고객에 대한 제어를 유지하는 문제를 어드레스할 수도 있다. 시스템은 다중 호스트와 판매자 사이의 브로커로서 동작하는 제3자 아웃소싱 공급자에 의해 작동될 수 있다. 구현하기 전에, 호스트는 호스트의 웹 페이지 상에 판매자의 웹 페이지로의 링크를 위치시킨다. 상기 링크는 판매자의 웹 페이지 상의 제품-관련 콘텐츠와 연관된다. 또한, 아웃소싱 공급자 시스템은 각각의 호스트의 웹 페이지로부터의 "모양 및 느낌" 정보를, 컴퓨터 서버에 연결된 컴퓨터 데이터 저장소에 저장한다. 상기 "모양 및 느낌" 정보에는 로고, 컬러, 페이지 레이아웃, 탐색 시스템, 프레임, 마우스-오버 효과, 또는 각각의 호스트의 각각의 웹 페이지 일부 또는 전체를 통해 일관된 다른 요소와 같은, 시각적으로 인지 가능한 요소를 포함한다. 광고 링크를 클릭하는 고객은 호스트 웹 페이지로부터 판매자의 웹 페이지로 이동되지는 않으며, 그러나 그 대신에 선택한 아이템과 연관된 제품 정보와 호스트 웹 페이지의 시각적으로 인지할 수 있는 요소를 조합하는 복합 웹 페이지로 재지향된다. 상기 아웃소싱 공급자의 서버는 먼저 링크가 선택된 호스트 웹 페이지를 식별하고, 그리고 대응의 저장된 "모양 및 느낌" 정보를 검색함으로써 응답한다. 상기 서버는 그 내부에 제품 관련 콘텐츠가 포함되어 있는 호스트 웹 페이지의 검색된 "모양 및 느낌" 정보를 사용하여 복합 웹 페이지를 구성하므로, 상기 복합 웹 페이지는 호스트 웹 페이지와 연관된 고객에 의해 시각적으로 인지된다. 그 후, 서버는 이런 복합 웹 페이지를 고객에게 전송하고 제공하므로, 고객은 제3자 판매자 가맹점으로 재지향되지 않고 아이템을 구매하기 위해 호스트 웹 페이지에 효과적으로 남아 있게 된다. 이러한 복합 페이지는 호스트 웹 페이지와 연관된 고객에 의해 시각적으로 인지되기 때문에, 고객에게 호스트에 의해 제공된 페이지를 보고 있다는 인상을 준다. 또한 고객은 제3자 판매자 가맹점으로 재지향되지 않고 아이템을 구매할 수 있으며, 따라서 호스트가 고객에 대한 제어를 유지하는 것을 허용한다. 이런 시스템은 호스트로 하여금 방문자 트래픽 및 잠재적 고객의 손실 없이 예전과 동일한 광고 수익 흐름을 받을 수 있게 한다. 보다 구체적으로, 시스템은 상업적 기회를 제공하는 웹 페이지로 작용하는 아웃소싱 공급자에게 유용할 수 있다. 컴퓨터 스토어는 다수의 제1 웹 페이지 각각에 대해 시각적으로 인지할 수 있는 다수의 요소를 정의하는 데이터를 포함하고 있으며, 시각적으로 인지할 수 있는 요소는 다수의 제1 웹 페이지에 대응하며, 여기서 상기 제1 웹 페이지 각각은 다수의 제1 웹 페이지 소유자들 중 하나에 속하고; 상기 제1 웹 페이지의 각각은 다수의 판매자들 중 선택된 판매자의 구매 기회와 연관된 상거래 객체와 연관된 적어도 하나의 활성 링크를 디스플레이하며; 상기 선택된 판매자, 아웃소싱 공급자, 및 상기 관련된 링크를 디스플레이하는 제1 웹 페이지의 소유자는 서로에 대해 각각 제3자이며; 상기 아웃소싱 공급자의 컴퓨터 서버는 컴퓨터 스토어에 연결되어, 컴퓨터 사용자의 웹 브라우저로부터 제1 웹 페이지들 중 하나에 의해 디스플레이된 링크들 중 하나의 활성화를 나타내는 신호를 수신하여, 상기 링크가 활성화된 제1 웹 페이지들 중 하나를 소스 페이지로서 자동으로 식별하고, 상기 소스 페이지의 식별에 응답하여 상기 소스 페이지에 대응하는 저장된 데이터를 자동으로 검색하고, 상기 검색된 데이터를 사용하여, 활성화된 링크와 연관된 상거래 객체와 연관된 정보 및 상기 소스 페이지에 시각적으로 대응하는 시각적으로 인지 가능한 다수의 요소를 디스플레이하는 제2 웹 페이지를 웹 브라우저에 자동으로 생성 및 전송하도록 프로그램된다.

Claims (20)

  1. 방법으로서:
    컴퓨터-기반 시스템에 의해, 사용자에 대한 사용자 인터페이스 블루프린트 파일을 생성하는 단계;
    상기 컴퓨터-기반 시스템에 의해, 제1 어플리케이션에 대한 명시적 사용자 선호도를 상기 사용자 인터페이스 블루프린트 파일에 저장하는 단계;
    상기 컴퓨터-기반 시스템에 의해, 상기 제1 어플리케이션에 대한 유추된 사용자 선호도를 결정하는 단계;
    상기 컴퓨터-기반 시스템에 의해, 상기 제1 어플리케이션에 대한 상기 유추된 사용자 선호도를 상기 사용자 인터페이스 블루프린트 파일에 저장하는 단계;
    상기 컴퓨터-기반 시스템에 의해, 제2 어플리케이션에 액세스하라는 상기 사용자로부터의 요청을 수신하는 단계;
    상기 컴퓨터-기반 시스템에 의해 그리고 상기 요청에 응답하여, 상기 사용자 인터페이스 블루프린트 파일을 판독하는 단계; 및
    상기 컴퓨터-기반 시스템에 의해, 상기 명시적 사용자 선호도 및 상기 유추된 사용자 선호도에 기초하여, 상기 제2 어플리케이션에 대한 사용자 인터페이스를 생성하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 사용자 인터페이스 블루프린트 파일은 텍스트 파일 또는 xml 파일 중 적어도 하나를 포함하는, 방법.
  3. 청구항 1에 있어서,
    상기 사용자 인터페이스 블루프린트 파일은 상기 사용자에 대한 고유의 사용자 식별을 포함하는, 방법.
  4. 청구항 1에 있어서,
    상기 컴퓨터-기반 시스템에 의해 그리고 상기 제2 어플리케이션에 액세스하라는 상기 요청에 응답하여, 상기 사용자에 대한 고유의 사용자 식별에 기초하여 상기 사용자 인터페이스 블루프린트 파일에 대한 데이터베이스를 조회하는 단계를 더 포함하는, 방법.
  5. 청구항 1에 있어서,
    상기 제1 어플리케이션 및 상기 제2 어플리케이션은 사용자 디바이스 상의 로컬 어플리케이션인, 방법.
  6. 청구항 1에 있어서,
    상기 제1 어플리케이션 및 상기 제2 어플리케이션은 웹 어플리케이션인, 방법.
  7. 청구항 1에 있어서,
    상기 사용자 인터페이스 블루프린트 파일은 문자 카운트, 단락 카운트, 이미지 카운트, 이미지 크기, 양식 입력 카운트, 윈도우 크기, 윈도우 줌, 윈도우 테두리, 폰트 리스트, 폰트 크기, 제어 계층, 제어 이름, 제어 순서, 제어 크기, 제어 위치, 제어 컬러, 제어 정렬, 스크롤 바아, 레이아웃 계층, 레이아웃 타입, 레이아웃 가중치, 레이아웃 배향, 및 페이지 매김을 포함하는 다수의 사용자 선호도를 포함하는, 방법.
  8. 시스템으로서:
    프로세서,
    상기 프로세서와 통신하도록 구성된 실재하는 비 일시적 메모리를 포함하며,
    상기 실재하는 비 일시적 메모리는, 상기 프로세서에 의한 실행에 응답하여, 상기 프로세서로 하여금 이하의 단계를 포함하는 작동을 수행하게 하는 그 저장된 명령을 가지며,
    상기 작동은,
    상기 프로세서에 의해, 사용자에 대한 사용자 인터페이스 블루프린트 파일을 생성하는 단계;
    상기 프로세서에 의해, 제1 어플리케이션에 대한 명시적 사용자 선호도를 상기 사용자 인터페이스 블루프린트 파일에 저장하는 단계;
    상기 프로세서에 의해, 상기 제1 어플리케이션에 대한 유추된 사용자 선호도를 결정하는 단계;
    상기 프로세서에 의해, 상기 제1 어플리케이션에 대한 상기 유추된 사용자 선호도를 상기 사용자 인터페이스 블루프린트 파일에 저장하는 단계;
    상기 프로세서에 의해, 제2 어플리케이션에 액세스하라는 상기 사용자로부터의 요청을 수신하는 단계;
    상기 프로세서에 의해 그리고 상기 요청에 응답하여, 상기 사용자 인터페이스 블루프린트 파일을 판독하는 단계; 및
    상기 프로세서에 의해, 상기 명시적 사용자 선호도 및 상기 유추된 사용자 선호도에 기초하여 상기 제2 어플리케이션에 대한 사용자 인터페이스를 생성하는 단계를 포함하는, 시스템.
  9. 청구항 1에 있어서,
    상기 사용자 인터페이스 블루프린트 파일은 txt 파일 또는 xml 파일 중 적어도 하나를 포함하는, 방법.
  10. 청구항 8에 있어서,
    상기 사용자 인터페이스 블루프린트 파일은 상기 사용자에 대한 고유의 사용자 식별을 포함하는, 시스템.
  11. 청구항 8에 있어서,
    상기 작동은, 상기 프로세서에 의해 그리고 상기 제2 어플리케이션에 액세스하라는 상기 요청에 응답하여, 상기 사용자에 대한 고유의 사용자 식별에 기초하여 상기 사용자 인터페이스 블루프린트 파일에 대한 데이터베이스를 조회하는 단계를 더 포함하는, 시스템.
  12. 청구항 8에 있어서,
    상기 제1 어플리케이션 및 상기 제2 어플리케이션은 사용자 디바이스 상의 로컬 어플리케이션인, 시스템.
  13. 청구항 8에 있어서,
    상기 제1 어플리케이션 및 상기 제2 어플리케이션은 웹 어플리케이션인, 시스템.
  14. 청구항 8에 있어서,
    상기 사용자 인터페이스 블루프린트 파일은 문자 카운트, 단락 카운트, 이미지 카운트, 이미지 크기, 양식 입력 카운트, 윈도우 크기, 윈도우 줌, 윈도우 테두리, 폰트 리스트, 폰트 크기, 제어 계층, 제어 이름, 제어 순서, 제어 크기, 제어 위치, 제어 컬러, 제어 정렬, 스크롤 바아, 레이아웃 계층, 레이아웃 타입, 레이아웃 가중치, 레이아웃 배향, 및 페이지 매김을 포함하는 다수의 사용자 선호도를 포함하는, 시스템.
  15. 컴퓨터-기반 시스템에 의한 실행에 응답하여, 상기 컴퓨터-기반 시스템으로 하여금 다음의 단계들을 수행하게 하는 그 내부에 저장된 명령을 갖는 비 일시적인 실재하는 컴퓨터 판독 가능한 저장 매체를 포함하는 제조 물품에 있어서,
    상기 단계들은
    상기 컴퓨터-기반 시스템에 의해, 사용자에 대한 사용자 인터페이스 블루프린트 파일을 생성하는 단계;
    상기 컴퓨터-기반 시스템에 의해, 제1 어플리케이션에 대한 명시적 사용자 선호도를 상기 사용자 인터페이스 블루프린트 파일에 저장하는 단계;
    상기 컴퓨터-기반 시스템에 의해, 상기 제1 어플리케이션에 대한 유추된 사용자 선호도를 결정하는 단계;
    상기 컴퓨터-기반 시스템에 의해, 상기 제1 어플리케이션에 대한 상기 유추된 사용자 선호도를 상기 사용자 인터페이스 블루프린트 파일에 저장하는 단계;
    상기 컴퓨터-기반 시스템에 의해, 제2 어플리케이션에 액세스하라는 상기 사용자로부터의 요청을 수신하는 단계;
    상기 컴퓨터-기반 시스템에 의해 그리고 상기 요청에 응답하여, 상기 사용자 인터페이스 블루프린트 파일을 판독하는 단계; 및
    상기 컴퓨터-기반 시스템에 의해, 상기 명시적 사용자 선호도 및 상기 유추된 사용자 선호도에 기초하여, 상기 제2 어플리케이션에 대한 사용자 인터페이스를 생성하는 단계를 포함하는 제조 물품.
  16. 청구항 15에 있어서,
    상기 사용자 인터페이스 블루프린트 파일은 txt 파일 또는 xml 파일 중 적어도 하나를 포함하는, 제조 물품.
  17. 청구항 15에 있어서,
    상기 사용자 인터페이스 블루프린트 파일은 상기 사용자에 대한 고유의 사용자 식별을 포함하는, 제조 물품.
  18. 청구항 15에 있어서,
    상기 컴퓨터-기반 시스템에 의해 그리고 상기 제2 어플리케이션에 액세스하라는 상기 요청에 응답하여, 상기 사용자에 대한 고유의 사용자 식별에 기초하여 상기 사용자 인터페이스 블루프린트 파일에 대한 데이터베이스를 조회하는 단계를 더 포함하는, 제조 물품.
  19. 청구항 15에 있어서,
    상기 제1 어플리케이션 및 상기 제2 어플리케이션은 사용자 디바이스 상의 로컬 어플리케이션인, 제조 물품.
  20. 청구항 15에 있어서,
    상기 제1 어플리케이션 및 상기 제2 어플리케이션은 웹 어플리케이션인, 제조 물품.
KR1020207023863A 2018-02-19 2019-02-11 동적 사용자 인터페이스 블루프린트 KR102414753B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/898,788 2018-02-19
US15/898,788 US10705691B2 (en) 2018-02-19 2018-02-19 Dynamic user interface blueprint
PCT/US2019/017419 WO2019164688A1 (en) 2018-02-19 2019-02-11 Dynamic user interface blueprint

Publications (2)

Publication Number Publication Date
KR20200111736A true KR20200111736A (ko) 2020-09-29
KR102414753B1 KR102414753B1 (ko) 2022-06-30

Family

ID=67617807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207023863A KR102414753B1 (ko) 2018-02-19 2019-02-11 동적 사용자 인터페이스 블루프린트

Country Status (7)

Country Link
US (1) US10705691B2 (ko)
EP (1) EP3756101A4 (ko)
JP (1) JP7237975B2 (ko)
KR (1) KR102414753B1 (ko)
CN (1) CN111989649B (ko)
SG (1) SG11202007798VA (ko)
WO (1) WO2019164688A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11838333B2 (en) * 2022-05-02 2023-12-05 Dell Products L.P. Continuity of audio and/or video presets across different contexts
US20240020570A1 (en) * 2022-07-13 2024-01-18 Capital One Services, Llc Systems and methods for using machine learning models to organize and select access-restricted components for user interface templates based on characteristics of access token types

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060073440A (ko) * 2004-12-23 2006-06-28 마이크로소프트 코포레이션 컴퓨터 사용자의 컴퓨팅 경험을 구성하도록 할 수 있는시스템 및 방법
KR20090022922A (ko) * 2007-08-31 2009-03-04 성균관대학교산학협력단 인터페이스 생성 방법 및 장치
KR20110032813A (ko) * 2009-09-24 2011-03-30 삼성전자주식회사 맞춤형 원격 사용자 인터페이스 페이지를 제공하기 위한 장치 및 방법
US20140282062A1 (en) * 2013-03-15 2014-09-18 Microsoft Corporation Techniques for efficient and granular composition of a user profile
US20180004544A1 (en) * 2016-06-30 2018-01-04 Sap Se Personalized run time user interfaces

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278465B1 (en) 1997-06-23 2001-08-21 Sun Microsystems, Inc. Adaptive font sizes for network browsing
US6195651B1 (en) 1998-11-19 2001-02-27 Andersen Consulting Properties Bv System, method and article of manufacture for a tuned user application experience
US20050240589A1 (en) 2004-04-22 2005-10-27 Michael Altenhofen Method and system to authorize user access to a computer application utilizing an electronic ticket
US7873610B2 (en) * 2006-05-26 2011-01-18 Andrew S Poulsen Meta-configuration of profiles
JP2007334481A (ja) 2006-06-13 2007-12-27 Nippon Telegraph & Telephone East Corp メール配信システム及び方法
CN101236563A (zh) * 2008-02-01 2008-08-06 刘峰 智能个性化服务网站构造方法
US20100153313A1 (en) * 2008-12-15 2010-06-17 Symbol Technologies, Inc. Interface adaptation system
CN102104666B (zh) * 2009-12-17 2014-03-26 深圳富泰宏精密工业有限公司 应用跳转预测系统及方法
JP5892746B2 (ja) * 2010-09-29 2016-03-23 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 個別化コンテンツ・レイアウトのための方法、システム、およびプログラム(個別化コンテンツ・レイアウトのためのシステムおよび方法)
CN102479094A (zh) * 2010-11-30 2012-05-30 英业达股份有限公司 可携式通讯装置运作方法
US20170191839A1 (en) * 2011-05-19 2017-07-06 Google Inc. Using activity profiles
CN102622238A (zh) * 2012-03-15 2012-08-01 中兴通讯股份有限公司 移动设备的界面布局方法及装置
US9152529B2 (en) 2012-09-24 2015-10-06 Adobe Systems Incorporated Systems and methods for dynamically altering a user interface based on user interface actions
WO2014056129A1 (zh) * 2012-10-08 2014-04-17 华为终端有限公司 一种触屏装置用户界面的处理方法及触屏装置
WO2014085502A1 (en) * 2012-11-29 2014-06-05 Edsense, L.L.C. System and method for displaying multiple applications
US9983775B2 (en) * 2016-03-10 2018-05-29 Vignet Incorporated Dynamic user interfaces based on multiple data sources
JP2017173996A (ja) 2016-03-22 2017-09-28 コニカミノルタ株式会社 画像形成装置、デザイン変更方法、およびデザイン変更プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060073440A (ko) * 2004-12-23 2006-06-28 마이크로소프트 코포레이션 컴퓨터 사용자의 컴퓨팅 경험을 구성하도록 할 수 있는시스템 및 방법
KR20090022922A (ko) * 2007-08-31 2009-03-04 성균관대학교산학협력단 인터페이스 생성 방법 및 장치
KR20110032813A (ko) * 2009-09-24 2011-03-30 삼성전자주식회사 맞춤형 원격 사용자 인터페이스 페이지를 제공하기 위한 장치 및 방법
US20140282062A1 (en) * 2013-03-15 2014-09-18 Microsoft Corporation Techniques for efficient and granular composition of a user profile
US20180004544A1 (en) * 2016-06-30 2018-01-04 Sap Se Personalized run time user interfaces

Also Published As

Publication number Publication date
KR102414753B1 (ko) 2022-06-30
CN111989649A (zh) 2020-11-24
JP7237975B2 (ja) 2023-03-13
CN111989649B (zh) 2024-05-28
US20190258366A1 (en) 2019-08-22
EP3756101A4 (en) 2021-11-17
EP3756101A1 (en) 2020-12-30
US10705691B2 (en) 2020-07-07
JP2021514080A (ja) 2021-06-03
WO2019164688A1 (en) 2019-08-29
SG11202007798VA (en) 2020-09-29

Similar Documents

Publication Publication Date Title
US11100569B2 (en) Embedding a widget into a webpage
US9495881B2 (en) System and method for displaying multiple applications
US10839000B2 (en) Presentations and reports built with data analytics
US10521446B2 (en) System and method for dynamically refactoring business data objects
US20190121669A1 (en) Executing tasks using modular and intelligent code and data containers
US10979370B2 (en) Multi-profile chat environment
US11307949B2 (en) Decreasing downtime of computer systems using predictive detection
US10715467B2 (en) Support chat profiles using AI
US11442923B1 (en) Systems and methods for processing data service requests
US11954160B2 (en) Personalization using clickstream data
US11295326B2 (en) Insights on a data platform
KR102414753B1 (ko) 동적 사용자 인터페이스 블루프린트
US10360128B2 (en) System and method for dynamic scaling of concurrent processing threads
US20190213618A1 (en) Secure real-time access to incentive database
US20180115600A1 (en) System and method for health monitoring and task agility within network environments

Legal Events

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