KR101978180B1 - 클라이언트 장치에서 어플리케이션의 사용자 경험을 제어하는 방법 및 시스템 - Google Patents

클라이언트 장치에서 어플리케이션의 사용자 경험을 제어하는 방법 및 시스템 Download PDF

Info

Publication number
KR101978180B1
KR101978180B1 KR1020120062113A KR20120062113A KR101978180B1 KR 101978180 B1 KR101978180 B1 KR 101978180B1 KR 1020120062113 A KR1020120062113 A KR 1020120062113A KR 20120062113 A KR20120062113 A KR 20120062113A KR 101978180 B1 KR101978180 B1 KR 101978180B1
Authority
KR
South Korea
Prior art keywords
client
entity
web page
social media
media web
Prior art date
Application number
KR1020120062113A
Other languages
English (en)
Other versions
KR20120137312A (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 KR20120137312A publication Critical patent/KR20120137312A/ko
Application granted granted Critical
Publication of KR101978180B1 publication Critical patent/KR101978180B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 클라이언트 장치에서 어플리케이션의 사용자 경험을 제어하는 방법에 있어서, 상기 클라이언트 장치는 적어도 2개의 레지던트 클라이언트 엔터티들을 포함하며, 상기 방법은, 미리 정의된 규칙들에 따라 상기 적어도 2개의 레지던트 엔터티들 간에 협상을 통해 상기 클라이언트 장치 상에서 상기 어플리케이션의 동작(behavior)을 수정하는 단계; 및 상기 레지던트 클라이언트 엔터티들 중 적어도 하나를 이용하여 상기 미리 정의된 규칙들에 기초하여 상기 클라이언트 장치 상에 상기 어플리케이션을 렌더링하는 단계를 포함한다.

Description

클라이언트 장치에서 어플리케이션의 사용자 경험을 제어하는 방법 및 시스템{METHOD AND SYSTEM FOR CONTROLLING USER EXPERIENCE WITH AN APPLICATION ON A CLIENT DEVICE}
본 발명은 컴퓨팅 장치에 관한 것으로, 특히 컴퓨팅 장치들에서 어플리케이션들의 사용자 경험을 커스터마이징(customizing)하는 것에 관한 것이다.
컴퓨팅 기술에서의 발전으로 처리 속도가 훨씬 더 향상되었다. 오늘날, 휴대용 장치들 조차도 10년 전의 대형 개인용 컴퓨터 장치들에 비해 더 많은 처리 능력을 가지고 있다. 또한, 인터넷 인프라도 사용자들이 데이터에 접근할 수 있도록 하는 향상된 대역폭과 전보다 훨씬 빠른 속도를 제공하기 위해 수년간 엄청나게 발전해왔다.
다른 많은 기술적 발전과 함께 처리 능력의 증가와 인터넷 속도의 증가는 오늘날의 컴퓨팅이 주문형(on-demand)을 기반으로 대규모의 네트워크 데이터 센터들에 걸쳐 저장된 데이터에 대해 수행됨을 의미한다. 그러한 데이터 센터들에 존재하는 데이터는 언제, 어디서나 인터넷을 통해 접근할 수 있다. 그러한 기술의 발전은 호스팅된 서버 서비스들을 통해 사용자 또는 기업(business) 지향 어플리케이션들에 대한 컴퓨팅 자원들의 사내 시스템들로부터 인터넷으로의 이동을 가능하게 해왔다.
자원들의 원격 호스팅은 사용자 친화적이고, 인터넷을 통해 이용되는 서비스들을 지원하는 기술 인프라에 대한 어떠한 지식, 전문 기술 또는 제어를 필요로 하지 않는다. 이는 사용자의 시스템에서 효율적인 컴퓨팅 성능을 갖도록 자원 제공자들에 의해 사용자에게 서비스를 제공한다.
상기 컴퓨팅 자원들은 일반적으로 대규모 데이터 센터 등과 같은 별도의 자원 제공자에 의해 관리된다. 상기 컴퓨팅 장치들은 사용자 요청 작업을 실행하고 예를 들어, CPU 기능, 메모리, 저장 용량, 개발 플랫폼들, 어플리케이션 프로그램들 등을 포함할 수 있는 별도의 자원 제공자에 의해 관리될 수 있다. 따라서, 자원들의 원격 호스팅은 서비스로서 구현되는 네트워크를 통해 클라이언트/사용자 시스템으로부터 원격 메인 서버 팜(farm)으로의 어플리케이션들, 서비스 및 데이터의 재배치(relocating)를 가능하게 한다. 어플리케이션들의 실행, 서비스의 배포 및 데이터의 저장을 재배치함으로써, 사용자와 기업이 개방 시스템들의 가격을 관리하고, 정보를 중앙 집중화하며, 강인성을 향상시키고 에너지 비용을 줄일 수 있다.
자원들의 원격 호스팅이 인터넷 상에서 서버들의 네트워크를 통해 수행될 때, 그러한 원격 호스팅을 종종 클라우드 컴퓨팅이라고 칭한다.
상기에서 논의한 다양한 장점들 덕분에, 원격 또는 클라우드 기반 서비스는 사용자 어플리케이션들과 서비스가 사용자의 장치를 위해 요청된 작업들 중 많은 작업들을 수행할 수 있는 네트워크 제공자들로 이동될 수 있도록 한다. 그러나, 어플리케이션들을 중앙 집중화된 클라우드 서버로 이동시키는 데에는 심각한 단점이 있다. 이 단점은 장치 제조업자들이 그러한 환경에서 사용자 경험 또는 어플리케이션을 거의 제어를 하지 않거나 제어를 하지 않음을 의미한다.
따라서, 클라이언트 장치가 어플리케이션들의 커스터마이제이션을 통해 사용자 경험을 제어할 수 있도록 클라우드 컴퓨팅 또는 원격 호스팅 환경에서의 적절한 환경(provision)를 제공할 필요가 있다.
본 발명의 컴퓨팅 장치 상에서 사용자 경험을 향상시키기 위해 어플리케이션의 커스터마이제이션을 가능하게 하고자 한다.
또한, 본 발명은 커스터마이즈될 수 있는 어플리케이션의 측면들에서 하나 또는 그 이상의 레지던트(resident) 클라이언트 엔터티들이 하나 또는 그 이상의 클라이언트 실행 엔터티들 또는 서버와 협상하도록 하여, 컴퓨팅 장치 상에서 사용자 경험을 향상시키기 위해 어플리케이션의 커스터마이제이션을 가능하게 하고자 한다.
또한, 본 발명은 하나 또는 그 이상의 레지던트 클라이언트 엔터티들이 상기 레지던트 클라이언트 엔터티들에 위임될 수 있는 작업들에 대해 하나 또는 그 이상의 클라이언트 실행 엔터티들 또는 서버와 협상하도록 하여, 컴퓨팅 장치 상에서 사용자 경험을 향상시키기 위해 어플리케이션의 커스터마이제이션을 가능하게 하고자 한다.
따라서, 본 발명은 클라이언트 장치 상에서 사용자 경험을 제어하는 방법을 제공한다. 상기 클라이언트 장치는 미리 정의된 규칙들에 따라 상기 클라이언트 장치 상에서 어플리케이션의 동작을 수정하기 위해 서로 협상하는 2개의 레지던트 클라이언트 엔터티들로 구성된다. 또한, 상기 클라이언트 장치는 상기 레지던트 클라이언트 엔터티들을 이용하여 사용자 선호도에 기초하여 상기 어플리케이션을 렌더링한다.
다른 실시예에서, 본 발명은 클라이언트 장치 상에서 사용자 경험을 제어하는 방법을 제공한다. 상기 클라이언트 장치는 미리 정의된 규칙들에 따라 상기 클라이언트 장치 상에서 어플리케이션의 동작을 수정하기 위해 협상하는 클라이언트 실행 엔터티와 레지던트 클라이언트 엔터티를 포함한다. 또한, 상기 클라이언트 실행 엔터티는 사용자 선호도에 기초하여 상기 어플리케이션을 렌더링한다.
또 다른 실시예에서, 서버로부터 클라이언트 장치로 다운로드되는 어플리케이션으로 사용자 경험을 제어하는 방법을 제공한다. 상기 클라이언트 장치는 클라이언트 실행 엔터티와 레지던트 클라이언트 엔터티를 포함한다. 상기 레지던트 클라이언트 엔터티와 서버는 사용자의 선호도에 따라 클라이언트 장치 상에서 상기 어플리케이션의 동작(behavior)을 수정하기 위해 협상한다. 또한, 상기 서버는 상기 미리 정의된 규칙들에 따라 상기 레지던트 클라이언트 엔터티에 의해 상기 클라이언트 장치 상에서 상기 클라이언트 어플리케이션의 동작을 수정하기 위한 허가를 제공한다. 또한, 상기 클라이언트 실행 엔터티는 상기 사용자 선호도에 기초하여 상기 어플리케이션을 렌더링한다.
실시예들은 여기서 개시된 다양한 방법들을 인에이블하는 시스템을 제공한다. 그러한 실시예들의 이러한 측면들 및 다른 측면들은 하기의 설명과 첨부된 도면들과 연관하여 고려될 때 더 잘 이해될 것이다. 그러나, 하기의 설명은 바람직한 실시예들과 다양한 특정 세부사항들을 나타내고 있지만, 예시로서 제공되었지 한정으로서 제공된 것은 아님을 이해해야 할 것이다. 본 발명의 사상을 벗어나지 않고 실시예들의 범위 내에서 다양한 변경 및 수정이 이루어질 수 있으며, 이러한 실시예들은 그러한 모든 수정사항들을 포함한다.
본 발명은 첨부된 도면들에서 예시되었으며, 그러한 도면들에 걸쳐 같은 참조부호는 해당 부분들을 나타낸다. 상기 실시예들은 첨부된 도면들을 참조하여 이루어지는 하기의 설명으로부터 더 잘 이해될 것이다.
도 1은 본 발명의 실시예에 따른에 따른 원격 호스트와 상호작용하는 클라이언트 장치의 구조를 도시한 블록도.
도 2는 본 발명의 실시예에 따른에 따른 클라이언트 장치의 구조를 도시한 도면.
도 3는 본 발명의 실시예에 따른에 따른 원격 호스트의 구조를 도시한 도면.
도 4는 본 발명의 실시예에 따른에 따른, 레지던트 클라이언트 엔터티를 통해 원격 호스트와 상호작용하는 클라이언트 장치의 구조를 도시한 도면.
도 5는 본 발명의 실시예에 따른에 따른, 레지던트 클라이언트 엔터티에서의 흐름을 도시한 흐름도.
도 6은 본 발명의 실시예에 따른에 따른, 클라우드 클라이언트 실행 엔터티를 통해 원격 호스팅 서버와 상호작용하는 클라이언트 장치의 구조를 도시한 도면.
도 7은 본 발명의 실시예에 따른에 따른, 클라우드 클라이언트 실행 엔터티에서의 흐름을 도시한 흐름도.
도 8은 본 발명의 실시예에 따른에 따른, 원격 호스트에서의 흐름을 도시한 흐름도.
도 9는 본 발명의 실시예에 따른에 따른, 웹 브라우저의 구조를 도시한 도면.
도 10은 본 발명의 실시예에 따른에 따른, 웹 브라우저 구현 및 클라이언트 브라우저로의 레지던트 클라이언트 엔터티 탭핑(tapping)의 구조를 도시한 도면.
도 11은 본 발명의 실시예에 따른에 따른, 데스크톱 클라이언트 장치에서 삽입된 사용자 인터페이스 제어 객체들을 도시한 웹 페이지의 스크린 샷.
도 12는 본 발명의 실시예에 따른에 따른, 클라이언트 이동 장치에서 삽입된 사용자 인터페이스 제어 객체들을 도시한 브라우저의 스크린 샷.
여기서 실시예들 및 이들의 다양한 특징들 및 장점들을 첨부된 도면들에 예시되고 하기의 설명에서 세부화된 비제한 실시예들을 더 완전히 참조하여 설명한다. 공지된 구성요소들 및 처리 기술들의 설명은 상기 실시예들을 불필요하게 모호하게 하지 않도록 하기 위해 생략된다. 여기서 이용되는 예시들은, 실시예들이 실시되는 방식들의 이해를 돕고 당업자가 실시예들을 실행할 수 있도록 의도되었다. 따라서, 상기 예시들은 상기 실시예들의 범위를 제한하는 것으로 유추되지 않아야 한다.
상기 실시예들은 하나 또는 그 이상의 레지던트 클라이언트 엔터티들이 커스터마이즈될 수 있는 어플리케이션의 측면들에서 하나 또는 그 이상의 클라이언트 실행 엔터티들 또는 서버와 협상하도록 하여, 컴퓨팅 장치 상에서 사용자 경험을 향상시키기 위해 어플리케이션의 커스터마이제이션을 가능하게 하는 방법을 달성한다. 유사한 참조 기호들이 일관되게 해당 특징들을 나타내는 도면, 특히 도 1 내지 12를 참조하여, 바람직한 실시예들을 도시한다.
명세서에 걸쳐, “어플리케이션”이라는 단어는 어플리케이션 데이터 또는 어플리케이션에 의해 렌더링되는 데이터 혹은 이들의 조합을 의미한다.
도 1은 본 발명의 실시예에 따른에 따른, 원격 호스트(102)와 상호작용 하는 클라이언트 장치(101)의 구조를 도시한 블록도이다. 상기 클라이언트 장치(101)는 상기 원격 호스트(102)에 어플리케이션 또는 데이터를 요청할 수 있다. 상기 원격 호스트(102)는 상기 요청을 수신한 후 상기 요청된 데이터/어플리케이션을 상기 클라이언트 장치(101)로 제공한다.
도 2는 본 발명의 실시예에 따른에 따른, 상기 클라이언트 장치(101)의 구조를 도시하고 있다. 여기서, 실시예들은 상기 클라이언트 장치(101)에서 원격 어플리케이션의 제어 측면들을 협상할 수 있는 클라이언트 장치(101)에 존재하는 둘 또는 그 이상의 레지던트 클라이언트 엔터티들(또는 객체들)을 제안하며, 상기 클라이언트 장치(101)의 레지던트 클라이언트 엔터티들 중 하나는 클라이언트 어플리케이션(201)과 함께 클라이언트 실행 엔터티(203)일 수 있다. 일 실시예에서, 상기 클라이언트 장치(101)는 클라이언트 어플리케이션(201), 적어도 2개의 레지던트 클라이언트 엔터티들 및 디스플레이 백엔드/브라우저(202)로 구성될 수 있다.
바람직한 실시예에서, 2개의 레지던트 클라이언트 엔터티들은 클라이언트 실행 엔터티(203)와 레지던트 클라이언트 엔터티(204)로 구성될 수 있다. 상기 클라이언트 실행 엔터티(203)와 레지던트 클라이언트 엔터티(204)는 사용자의 선호도에 따라 요청된 어플리케이션을 수정하기 위해 서로 상호작용하고 협상한다. 상기 레지던트 클라이언트 엔터티(204)는 상기 요청된 어플리케이션의 가용성(availability)과 원격 어플리케이션의 관련 시멘틱스(semantics)를 상기 레지던트 클라이언트 엔터티(204)와 상기 클라이언트 실행 엔터티(203) 간의 선취(preemption) 또는 협상된 작업 공유를 가능하게 하는 클라이언트 실행 엔터티(203)와 협상할 수 있다. 일부 실시예들에서, 상기 레지던트 클라이언트 엔터티(204)는 추가적인 처리와 렌더링을 위해 상기 어플리케이션을 클라이언트 실행 엔터티(203)로 넘기기 전에 사용자의 선호도에 따라 어플리케이션을 수정하는 작업을 선취할 수 있다. 일부 다른 실시예들에서, 클라이언트 실행 엔터티(203)와 레지던트 클라이언트 엔터티(204)가 함께 일할 수 있으며 바람직한 출력을 얻기 위해 사용자의 선호도에 따라 어플리케이션을 수정하고 실행하는 작업들을 공유할 수 있다.
다른 실시예에서, 상기 레지던트 클라이언트 엔터티(204)와 클라이언트 실행 엔터티(203) 간의 상호작용은 상기 원격 호스트(102)와 연관될 수 있다. 렌더링을 위해 어플리케이션이 상기 레지던트 클라이언트 엔터티(204)로부터 상기 클라이언트 실행 엔터티(203)로 건네질 때나 수정을 위해 그 반대의 경우에도, 어플리케이션을 커스터마이즈하기 위해 원격 호스트(102)로부터 허가(permission)를 얻을 수도 있다.
많은 실시예들에서, 상기 레지던트 클라이언트 엔터티(204)와 클라이언트 실행 엔터티(203)는 상기 원격 호스트(102)와 연관되지 않을 수 있다. 원격 호스트(102)가 연관되지 않을 때, 레지던트 클라이언트 엔터티들은 어플리케이션들에 대한 커스터마이제이션을 이루기 위해 허가를 요구하지 않을 수도 있다.
상기 클라이언트 실행 엔터티(203)는 상기 레지던트 클라이언트 엔터티(204)로부터 전달되거나 원격 호스트(102)로부터 클라이언트 장치(101) 상에 다운로드된 어플리케이션을 클라이언트 실행 엔터티(203)에 의해 실행되도록 렌더링할 수 있다. 또한, 상기 클라이언트 실행 엔터티(203)는 디스플레이 백엔드 또는 브라우저(202) 상에 상기 어플리케이션을 렌더링하기 위해 상기 클라이언트 어플리케이션(201)과 상호작용한다. 예시적인 실시예에서, 이동 장치 또는 데스크톱에서, 상기 클라이언트 실행 엔터티(203)는 브라우저 엔진일 수 있고, 상기 클라이언트 어플리케이션(201)은 브라우저 어플리케이션일 수 있다.
다양한 실시예들에서, 커스터마이제이션은 사용자 선호도에 기초하거나 레지던트 클라이언트 엔터티(204)의 프리코딩된 규칙들의 셋에 의해, 또는 둘 모두의 조합에 의해 수행될 수 있다.
일 예에서, 사용자는 예시 어플리케이션-1과 예시 어플리케이션-2에 의해 이용되는 영역에서 고 레벨 선호도들의 셋을 제공할 수 있다. 상기 사용자는 항상 화면의 맨 위나 일부 모서리에서 예시 어플리케이션-2를 보기를 선호하는 것으로 특정할 수 있다. 그러한 고 레벨 지시(indication)들은 고 레벨 인터페이스 어플리케이션을 통해 캡쳐되어, 레지던트 클라이언트 엔터티(204)에 의한 해석을 위해 XML(Extensible Markup Language) 문서로 변환될 수 있다. 다양한 실시예들에서, 그러한 XML 문서는 상기 레지던트 클라이언트 엔터티(204), 클라이언트 실행 엔터티(203) 및 원격 호스트(102) 간의 협상의 일환으로 정보를 송신하는데 이용될 수 있다.
일부 다른 실시예들에서, 상기 레지던트 클라이언트 엔터티(204)에 의한 해석을 위해 유사한 규칙들의 셋이 장치 제조업자들에 의해 클라이언트 장치(101) 내로 프리코딩될 수 있다. 이러한 규칙들의 셋은 상기 레지던트 클라이언트 엔터티(204)에 의한 클라이언트 실행 엔터티(203)나 원격 호스트(102)와의 협상을 트리거하기 위한 기반(basis)으로서 이용된다.
상기 원격 호스트(102)는 상기 요청된 어플리케이션을 클라이언트 장치(101)로 제공한다. 도 3은 본 발명의 실시예에 따른에 따른, 원격 호스트(102)의 구조를 도시하고 있다. 일 실시예에서, 상기 원격 호스트(102)는 하나 또는 그 이상의 서버들(301)로 구성될 수 있다.
바람직한 실시예에서, 상기 서버(301)는 하나 또는 다수의 데이터베이스들(302)에 연결될 수 있다. 또한, 상기 서버(301)에 연결된 상기 데이터베이스들(302)은 원격 호스트(102)에서 로컬이거나 원격 호스트(102)로 분산되어 배치될 수 있다. 상기 클라이언트 장치(101)는 서버(301)로 어플리케이션에 대한 요청을 송신할 수 있다. 상기 서버(301)는 상기 요청된 어플리케이션을 사용자 장치(102)로 전달한다. 일부 실시예들에서, 상기 요청된 어플리케이션은 포맷되지 않은 상태로(unformatted) 서버(301)에 의해 전달될 수 있다. 일부 다른 실시예들에서, 상기 어플리케이션은 클라이언트 실행 엔터티(203)나 레지던트 클라이언트 엔터티(204)에 의해 제시되는 바와 같이 커스터마이제이션 요건에 따라 어플리케이션을 포맷한 후에 전달될 수 있다.
상기 클라이언트 장치(101)는 상기 원격 호스트(102)에 어플리케이션을 요청할 수 있다. 상기 클라이언트 장치(101)로의 어플리케이션 요청은 클라이언트 장치(101)의 레지던트 클라이언트 엔터티들 중 어느 하나, 즉 레지던트 클라이언트 엔터티(204) 또는 클라이언트 실행 엔터티(203)에 의해 이루어질 수 있다.
일 실시예에서, 상기 레지던트 클라이언트 엔터티(204)는 원격 호스트(102)와 상호작용한다. 도 4는 본 발명의 실시예에 따른에 따라, 상기 레지던트 클라이언트 엔터티(204)를 통해 원격 호스트(102)와 상호작용하는 클라이언트 장치(101)의 구조를 도시한다. 상기 레지던트 클라이언트 엔터티(또는 객체)(204)는 데이터 구성요소들/미디어 구성요소들의 노출과 클라이언트 어플리케이션(201)의 관련 시멘틱스에 관해 원격 호스트(102)와 협상할 수 있다. 상기 원격 호스트(102)는 요청된 데이터를 상기 클라이언트 장치(101)의 레지던트 클라이언트 엔터티들 중 어느 하나(즉, 레지던트 클라이언트 엔터티(204) 또는 클라이언트 실행 엔터티(203))로 전달할 수 있다.
다른 실시예에서, 상기 레지던트 클라이언트 엔터티(204)는 상기 원격 호스트(102)로부터 요청된 데이터를 수신한다. 상기 수신된 데이터는 사용자의 선호도나 프리코딩된 규칙들에 따라 원격 호스트(102)에 의해 수정될 수 있다. 상기 수정된 데이터는 상기 레지던트 클라이언트 엔터티(204)나 클라이언트 실행 엔터티(203)로 전달될 수 있다.
다른 실시예에서, 상기 클라이언트 장치(101)의 레지던트 클라이언트 엔터티(204)는 선취 또는 상기 클라이언트 장치(101) 상에서의 어플리케이션 렌더링을 위해 2개의 레지던트 클라이언트 엔터티들 간의 협상된 작업 공유를 위해, 요청된 데이터와 함께 허가를 수신할 수 있다. 상기 레지던트 클라이언트 엔터티(204)는 원격 호스트(102)와 렌더링의 측면들을 협상하기 전에 클라이언트 실행 엔터티(203)로부터 어플리케이션 타입 정보를 얻을 수 있다.
일부 실시예들에서, 상기 레지던트 클라이언트 엔터티(204)는 다운로드된 어플리케이션을 커스터마이즈하고 이를 추가 처리 및 렌더링을 위해 클라이언트 실행 엔터티(203)으로 전달하기 위한 작업을 수행하기 위해 협상할 수 있다. 일부 다른 실시예들에서는, 상기 레지던트 클라이언트 엔터티(204)가 커스터마이제이션을 위해 정보를 제공하고, 상기 커스터마이제이션은 어플리케이션의 추가 처리 및 렌더링 전에 클라이언트 실행 엔터티(203)에 의해 수행될 수 있다.
도 5는 본 발명의 실시예에 따른에 따른, 레지던트 클라이언트 엔터티(204)에서의 흐름을 도시한 흐름도이다. 사용자는 사용자 인터페이스를 통해 클라이언트 장치(101)와 상호작용한다. 상기 사용자는 사용자 인터페이스를 통해 요청할 수 있다. 상기 레지던트 클라이언트 엔터티(204)는 사용자 인터페이스로부터의 어플리케이션 흐름을 계속 모니터링 한다(501). 상기 레지던트 클라이언트 엔터티(204)는 특정 어플리케이션 요청을 수신하면 트리거 된다(502). 어플리케이션이 트리거 되면, 상기 레지던트 클라이언트 엔터티(204)는 협상 파라미터들을 트리거 한다(503). 상기 협상은 어플리케이션이 상기 클라이언트 장치(101) 상에서 렌더링되도록 제어하기 위해 레지던트 클라이언트 엔터티(204)와 상기 원격 호스트(102) 간에 수행된다(504). 일단 협상이 수행되면, 어플리케이션이 원격 호스트(102)로부터 클라이언트 장치(101)로 제공된다.
다양한 실시예들에서, 상기 클라이언트 장치(101)로 전달된(505) 어플리케이션은 사용자의 요청에 따라 원격 호스트(102)에 의해 커스터마이즈되거나 커스터마이제이션 없이 전달될 수 있다. 상기 원격 호스트(102)로부터 요청된 어플리케이션은 다양한 실시예들에서 협상에 따라 레지던트 클라이언트 엔터티(204)나 클라이언트 실행 엔터티(203)에 의해 수신될 수 있다. 상기 수신된 어플리케이션이 커스터마이즈되지 않은 경우(505), 상기 어플리케이션은 사용자 선호도나 프리코딩된 규칙들에 따라 커스터마이즈하기 위해 상기 레지던트 클라이언트 엔터티(204)로 전달된다(506). 어플리케이션이 커스터마이즈되면, 어플리케이션은 추가 처리 및 렌더링을 위해 클라이언트 실행 엔터티(203)로 전달된다(507). 상기 수신된 어플리케이션이 원격 호스트(102)에 의해 커스터마이즈되면, 상기 커스트마이즈된 어플리케이션은 클라이언트 어플리케이션(201)에서의 추가 처리 및 렌더링을 위해 클라이언트 실행 엔터티(203)로 전달된다(508).
상기 방법(500)에서 다양한 동작들은 제시된 순서, 다른 순서 또는 동시에 수행될 수 있다. 또한, 일부 실시예들에서, 도 5에 열거된 일부 동작들이 생략될 수도 있다.
다른 실시예에서, 상기 레지던트 클라이언트 엔터티(204)는 클라이언트 실행 엔터티(203)를 통해 원격 호스트(102)와 협상할 수 있다. 도 6은 본 발명의 실시예에 따른에 따라 클라이언트 실행 엔터티(203)를 통해 원격 호스트(101)와 상호작용 하는 클라이언트 장치(101)의 구조를 도시하고 있다. 상기 클라이언트 실행 엔터티(또는 객체)(203)는 선취 혹은 상기 레지던트 클라이언트 엔터티(204)와 클라이언트 실행 엔터티(203) 간의 협상된 작업 공유를 가능하게 하는 원격 호스트(102)와 데이터 구성요소들/미디어 구성요소들의 노출 및 클라이언트 어플리케이션(201)의 관련 시멘틱스에 대해 협상할 수 있다.
다른 실시예에서, 상기 레지던트 클라이언트 엔터티(204)는 상기 원격 호스트(102)로부터 요청된 어플리케이션을 수신한다. 상기 수신된 어플리케이션은 레지던트 클라이언트 엔터티(204)에서 사용자의 선호도나 프리코딩된 규칙들에 따라 원격 호스트(102)에 의해 수정될 수 있다. 상기 수정된 데이터는 레지던트 클라이언트 엔터티(204)나 클라이언트 실행 엔터티(203)로 전달될 수 있다.
다른 실시예에서, 상기 레지던트 클라이언트 엔터티(204)나 클라이언트 실행 엔터티(203)는 선취 또는 상기 클라이언트 장치(101) 상에서의 데이터 렌더링을 위해 2개의 레지던트 클라이언트 엔터티들 간의 협상된 작업 공유를 위해, 어플리케이션을 허가와 함께 원격 호스트(102)로부터 수신할 수 있다. 상기 레지던트 클라이언트 엔터티(204)와 클라이언트 실행 엔터티(203)는 서버(102)로부터 얻은 허가에 기초하여 작업을 공유함으로써 작업을 실행하기 위해 함께 작업할 수 있다.
일부 실시예들에서, 상기 레지던트 클라이언트 엔터티(204)는 원격 호스트(102)로부터 다운로드된 어플리케이션을 커스터마이즈하고 이를 추가 처리 및 렌더링을 위해 클라이언트 실행 엔터티(203)로 전달하는 작업을 실행하기 위해 협상할 수 있다. 일부 다른 실시예들에서, 상기 레지던트 클라이언트 엔터티(204)는 커스터마이제이션을 위한 정보를 제공하며, 이러한 커스터마이제이션은 어플리케이션의 추가 처리 및 렌더링 전에 클라이언트 실행 엔터티(203)에 의해 수행될 수 있다.
다양한 실시예들에서, 상기 레지던트 클라이언트 엔터티(204)와 클라이언트 실행 엔터티(203) 간의 작업 공유는 2개의 엔터티들에 대해 로컬인 스타일로 클라이언트 어플리케이션(201)에서 어플리케이션의 공유 렌더링의 측면들과 연관될 수 있다.
다양한 실시예들에서, 작업 공유는 입력/출력 인터페이스들을 렌더링 중인 어플리케이션과 연관시키는 레지던트 클라이언트 엔터티들 중 하나와 연관될 수도 있다. 예를 들어, 원격 호스트(102)로부터 수신된 데이터는 각각의 입력/출력 데이터 포맷과 연관될 수 있다. 이미지 파일, 비디오 파일, 웹 페이지는 각각 GIF(Graphics Interchange Format), MPEG(Moving Picture Experts Group), HTML(HyperText Markup Language) 렌더링 어플리케이션들과 연관되어, 그에 따라 클라이언트 어플리케이션(201)으로 렌더링될 수 있다.
도 7은 본 발명의 실시예에 따른에 따른, 클라이언트 실행 엔터티(203)에서의 흐름을 도시한 흐름도이다. 상기 레지던트 클라이언트 엔터티(204)는 클라이언트 장치(101)의 사용자 인터페이스로부터의 어플리케이션 흐름을 계속 모니터링 한다(701). 상기 레지던트 클라이언트 엔터티(204)는 어플리케이션 요청을 수신하면 트리거된다(702). 어플리케이션이 트리거되면, 상기 클라이언트 실행 엔터티(203)는 협상 파라미터들을 트리거한다(703). 상기 협상은 어플리케이션이 클라이언트 장치(101) 상에 렌더링되도록 제어하기 위해 클라이언트 실행 엔터티(203)와 원격 호스트(102) 간에 수행된다(704). 협상이 수행되면, 상기 어플리케이션은 원격 호스트(102)에 의해 클라이언트 장치(101)로 제공된다. 일부 실시예들에서, 상기 클라이언트 장치(101)로 전달된 어플리케이션은 원격 호스트(102)에 의해 커스터마이즈될 수 있다. 일부 다른 실시예들에서, 상기 어플리케이션은 커스터마이제이션 없이 원격 호스트(102)에 의해 전달될 수 있다. 원격 호스트(102)로부터의 상기 요청된 어플리케이션은 레지던트 클라이언트 엔터티(204)나 클라이언트 실행 엔터티(203)에 의해 수신될 수 있다. 상기 수신된 어플리케이션이 커스터마이즈되지 않으면(705), 어플리케이션을 사용자 선호도나 프리코딩된 규칙들에 따라 커스터마이즈하기 위해 상기 레지던트 클라이언트 엔터티(204)로 전달한다(706). 커스터마이제이션 후에, 커스터마이즈된 어플리케이션은 추가 처리 및 렌더링을 위해 클라이언트 실행 엔터티(203)로 전달된다(707). 원격 호스트(102)로부터 수신된 어플리케이션이 커스터마이즈되면, 상기 커스터마이즈된 어플리케이션은 렌더링을 위해 클라이언트 실행 엔터티(203)로 전달된다(708).
상기 방법(700)의 다양한 동작들은 제시된 순서, 다른 순서나 동시에 수행될 수 있다. 또한, 일부 실시예들에서, 도 7에 열거된 일부 동작들이 생략될 수도 있다.
도 8은 본 발명의 실시예에 따른에 따라, 원격 호스트(102)에서의 흐름을 도시한 흐름도이다. 상기 원격 호스트(102)는 레지던트 클라이언트 엔터티(204)로부터 이벤트들을 모니터하고 수신한다(801). 상기 원격 호스트(102)는 레지던트 클라이언트 엔터티(204)나 클라이언트 실행 엔터티(203)로부터 협상 파라미터들을 수신할 수 있다(802). 예를 들면, 상기 협상 파라미터들은 브라우저에 의해 렌더링될 미디어 플레이어를 위해 사용하기 위한 스킨(skin) 타입과 관련 제어들(controls)을 포함할 수 있다. 협상이 수행된 후에, 원격 호스트(102)는 레지던트 클라이언트 엔터티(204)나 클라이언트 실행 엔터티(203)로부터 요청을 수신한다(803). 상기 원격 호스트(102)는 클라이언트 장치(101)로 관련 파라미터들을 포함한 어플리케이션을 전달하기 전에 사용자의 선호도나 프리코딩된 규칙들에 따라 요청된 어플리케이션을 수정할 수 있다(804).
상기 원격 호스트(102)는 레지던트 클라이언트 엔터티들에 의한 어플리케이션의 변경을 허가하기 위해 관련 파라미터들을 포함하는 요청된 어플리케이션을 전달할 수 있다(805). 상기 전달된 어플리케이션은 레지던트 클라이언트 엔터티(204)에 의해 커스터마이즈되고, 클라이언트 장치(101)에서 요청된 어플리케이션을 렌더링하기 위해 관련 파라미터들을 갖는 클라이언트 실행 엔터티(203)로 전달될 수 있다(806).
상기 방법(800)의 다양한 동작들은 제시된 순서, 다른 순서 또는 동시에 수행될 수 있다. 또한, 일부 실시예들에서, 도 8에 제시된 일부 동작들은 생략될 수도 있다.
예시
상기 클라이언트 장치(101) 메커니즘은 웹 브라우저의 예로 설명될 수 있다. 예시 실시예에서, 상기 레지던트 클라이언트 실행 엔터티(203)와 클라이언트 어플리케이션(201)은 각각 브라우저 엔진과 브라우저 어플리케이션으로서 고려될 수 있다.
도 9는 본 발명의 실시예에 따른에 따른, 웹 브라우저의 구조를 도시하고 있다. 클라이언트 장치(101)는 클라이언트 장치(101)의 사용자 인터페이스(901)를 통해 웹 브라우저와 상호작용 한다. 상기 클라이언트 장치(101)는 브라우저이거나 그와 유사한 특징들을 갖는 다른 엔터티일 수 있는 클라이언트 엔진(902)을 통해 자신의 요청을 제공한다.
사용자 인터페이스(901)는 사용자와 클라이언트 엔진(902) 사이의 계층이다. 이는 툴바, 시각적 웹 로드 진행, 스마트 다운로드 처리, 선호도 및 프린팅과 같은 특징을 제공한다. 이는 다른 데스크톱 또는 이동 어플리케이션들로 브라우저 세션 관리 또는 통신을 제공하기 위해 데스크톱 또는 이동 환경과 통합될 수 있다. 또한, 사용자 인터페이스(901)는 데이터 지속 구조(data persistence structure, (904)와 상호작용한다.
상기 클라이언트 엔진(902)은 고 레벨 인터페이스를 렌더링 엔진(903)에 제공하는 내장 가능한 구성요소이다. 상기 클라이언트 엔진(902)은 사용자 인터페이스(901)로부터의 입력을 수신한다. 상기 클라이언트 엔진(902)은 브라우저나 유사한 특징을 갖는 다른 엔터티일 수 있다. 이는 주어진 URI(Uniform Resource Identifier)를 로딩하고 앞으로, 뒤로, 리로딩(reload)과 같은 원래의 브라우징 동작들을 지원한다. 이는 현재 페이지 로딩 진행 및 자바스크립트 경고와 같은 브라우징 세션의 다양한 측면들을 보기 위한 후크(hook)를 제공한다. 또한, 이는 렌더링 엔진(903) 설정의 질의 및 조작을 가능하게 한다. 더하여, 클라이언트 엔진(902)은 클라이언트 소프트웨어 제공자에 의해 제공될 수 있다. 또한, 클라이언트 엔진(902)은 데이터 지속 구조(904)와 상호작용 한다.
상기 렌더링 엔진(903)은 주어진 URI에 대한 시각적 표현(representation)을 생성한다. 이 엔진(903)은 이미지들과 같은 내장된 컨텐트뿐만 아니라, 선택적으로는 CSS(Cascading Style Sheets)로 스타일된(styled) HTML(Hyper Text Markup Language)과 XML(Extensible Markup Language) 문서들을 표시할 수 있다. 상기 엔진(903)은 정확한 페이지 레이아웃을 계산하고, 페이지 상의 구성요소들의 위치를 점진적으로(incrementally) 조정하기 위해 “리플로우(reflow)” 알고리즘을 이용할 수 있다. 상기 리플로우 알고리즘은 동일한 길이의 선들을 유지하고자 하고 구두점에서 줄바꾸기를(break) 하고자 하며, 적절한 이름 내에서 또는 특정 접속어들 뒤에서는 줄바꾸기를 피하고자 한다. 그 결과, 줄바꾸기에 걸쳐 어구(phrase)들이 거의 줄바꾸기가 되지 않으므로 더 판독하기가 쉽다. 상기 렌더링 엔진(903)은 또한 HTML 파서(parser)를 포함한다. 또한, 상기 렌더링 엔진(903)은 디스플레이 백엔드(202)와 네트워크 시스템(905)와 상호작용 한다.
상기 디스플레이 백엔드(202)는 클라이언트 장치(101) 상에서 원격 호스트(102)로부터 수신된 데이터 또는 어플리케이션을 디스플레이 하는데 이용된다. 상기 사용자 인터페이스(901)와 클라이언트 엔진(902)은 데이터 지속 구조(904)와 상호작용 한다.
상기 네트워킹 서브시스템(905)은 HTTP와 FTP와 같은 파일 전송 프로토콜들을 구현한다. 이는 서로 다른 캐릭터 셋들 간에 번역(translate)되고, 파일들에 대한 MIME 미디어 타입들을 분석(resolve)한다. 이는 최근에 검색된(retrieved) 자원들의 캐시(cache)를 구현할 수도 있다. 또한, 사용자 인터페이스(901), 클라이언트 엔진(902) 및 렌더링 엔진(903)은 레지던트 클라이언트 엔터티(204)와 상호작용 한다. 상기 레지던트 클라이언트 엔터티(204)는 제조업자가 의도한대로 다른 스타일로의 렌더링을 달성하기 위해, 특정 사용자 동작들 또는 이벤트들에 대해 사용자 인터페이스(901)를 탭핑(tap)하고 장치 렌더링 엔진(903)과 인터페이스하기 위한 클라이언트 엔진(902) 기능들을 제어한다.
개시된 실시예들에 따르면, 하나의 렌더링 엔진(903)을 제어하는 적어도 2개의 레지던트 클라이언트 엔터티들이 존재할 것이다. 다수의 클라이언트 엔진들(902)은 동시에 활성화될 수 있으며, 렌더링 엔진(903)의 서로 다른 측면들을 제어하여 렌더링된 사용자 경험을 제어할 수 있다. 또한, 상기 레지던트 클라이언트 엔터티(204)는 장치 제조업자에 의해 소프트웨어로서 제공될 수 있다. 데이터 지속 구조(904)는 수정될 때 자신의 이전 버전을 항상 보존하는 데이터 구조이다. 그러한 데이터 구조들은, 그들의 동작이 구조를 그 자리에서 업데이트하지 않고 대신에 새로운 업데이트된 구조를 만들어내므로, 효과적으로 변하지 않을 수 있다(immutable). 상기 레지던트 클라이언트 엔터티(204)는 클라이언트 엔진(902)으로부터의 데이터 흐름을 모니터하기 위해 클라이언트 웹 브라우저를 탭핑한다. 다양한 실시예들에서, 상기 클라이언트 실행 엔터티(203)는 이동 장치나 개인용 컴퓨터와 같은 장치 상의 웹 브라우저일 수 있다.
도 10은 클라이언트 실행 엔터티(203)가 브라우저 엔진이고 클라이언트 어플리케이션(201)이 브라우저인 예시적인 실시예에 따른, 웹 브라우저 구현 및 레지던트 클라이언트 엔터티의 클라이언트 브라우저로의 탭핑의 구조를 도시하고 있다. 상기 클라이언트 장치(101)는 주어진 URL(Uniform Resource Locator)에 의해 브라우저를 통해 어플리케이션을 요청할 수 있다. 상기 사용자가 입력한 URL은 자원 위치를 식별하고 클라이언트 요청을 처리한다. 브라우저에서 URL 파서(1001)는 트래픽 관리 및 로드 밸런싱을 가능하게 한다. URL 파서(1001)는 레지던트 클라이언트 엔터티(204)와 상호작용 한다. 상기 레지던트 클라이언트 엔터티(204)는 클라이언트 선호도를 저장한다. 상기 레지던트 클라이언트 엔터티(204)는 데이터 구성요소들의 렌더링 노출을 원격 호스트(102) 및 실행 엔터티(203)와 협상한다. 또한, 상기 URL 파서(1001)는 프로토콜 핸들러 HTTP(1002)와 상호작용 한다.
프로토콜 핸들러(1002)는 장치/브라우저 및 원격 호스트 사이의 통신을 위한 프로토콜을 정의한다. 이렇게 정의된 프로토콜들은 클라이언트의 요청을 처리하는데 이용된다. 상기 프로토콜 핸들러는 요청의 특정 단계를 처리하여 상기 요청 객체에 참조(reference)를 전달한다. TCP 연결 핸들러의 도움으로, 브라우저와 요청된 객체의 서버 간에 연결이 설정된다. 상기 요청 핸들러(1003)는 통상적으로 요청을 검사하여 상기 요청에 대한 적절한 응답을 작성한다.
또한, 상기 프로토콜 핸들러 HTTP(1004)는 응답 파서(1005)에 대한 프로토콜을 정의한다. 상기 응답 파서는 브라우저 상의 트래픽과 로드를 관리한다.
요청된 어플리케이션들은 서버로부터 검색된다. 상기 전달될 어플리케이션들은 브라우저에 의해 렌더링된다. HTML(1007), jpeg(1008), 플러그인 FLASH(1009), gif(1010) 및 어플리케이션들(1014)과 같은 몇몇 컨텐트 핸들러들이 브라우저에 존재할 수 있다. 또한, 컨텐트 핸들러들은 레지던트 클라이언트 엔터티(204)와 상호작용 한다. 상기 컨텐트 핸들러들은 데이터 저장소들을 설정할 수 있고, 컨텐트 아이템의 렌더링 전에 데이터 모델을 조작할 수 있다.
도 11은 본 발명의 실시예에 따른에 따른, 데스크톱 클라이언트 장치에서 삽입된 사용자 인터페이스 제어 객체들을 도시한 웹 페이지의 스크린 샷이다. 사용자는 브라우저를 통할 수도 있는 사용자 인터페이스를 통해 데스크톱 상에서 특정 데이터(특정 웹사이트의 웹 페이지)를 요청한다. 예를 들면, 사용자는 웹 페이지(1101)를 요청한다. 상기 브라우저는 원격 호스트(102)로부터 관련 파라미터들과 함께 웹 페이지를 다운로드한다. 상기 레지던트 클라이언트 엔터티(204)는 사용자의 선호도 또는 프리코딩된 규칙에 따라 웹 페이지(1101)를 수정할 수 있다. 일 실시예에서, 상기 요청된 웹 페이지는 사용자 선호도나 프리코딩된 규칙에 따라 요청된 웹 페이지(1101)에 제어 객체들(1102)을 통합하는 데스크톱 브라우저 엔진으로 전달된다. 상기 웹 페이지(1101)가 소셜 미디어 웹 페이지인 경우, 상기 제어 객체들은 협업(collaboration)과 연관될 수 있다. 사용자 선호도 또는 프리코딩된 규칙에 따라 커스터마이즈된 웹 페이지(1101)는 다른 어플리케이션을 렌더링하는 바와 같이 브라우저에 의해 렌더링된다. 상기 사용자는 스크린 샷에 예시된 바와 같은 소셜 미디어 웹 페이지 상에서 이용 가능한 기능들 이상으로 제어 객체(1102)에 대해 도구를 이용하여 더 협업하기 위해 삽입된 제어 객체들을 이용할 수 있다.
도 12는 본 발명의 실시예에 따른에 따른, 클라이언트 이동 장치에서 삽입된 사용자 인터페이스 제어 객체를 도시한 브라우저의 스크린 샷이다. 사용자는 브라우저를 통할 수 있는 사용자 인터페이스를 통해 이동 장치 상에서 특정 데이터를 요청한다. 예를 들면, 사용자가 특정 제어 객체들(1202)을 갖는 비디오(1201)를 요청한다. 상기 브라우저는 관련 파라미터들과 함께 비디오 파일(1201)을 원격 호스트(102)로부터 다운로드한다. 상기 레지던트 클라이언트 엔터티(204)는 사용자의 선호도나 프리코딩된 규칙에 따라 비디오(1201)를 수정할 수 있다. 또한, 상기 요청된 비디오(1201)는 상기 요청된 비디오(1201)에 제어 객체들을 통합하는 이동 브라우저로 전달된다. 또한, 제어 객체들이 통합된 비디오(1201)는 사용자의 휴대 장치(users mobile device)에서 전달된다. 상기 커스터마이즈된 어플리케이션을 이용하여, 사용자는 통합된 제어 객체들의 도움으로 비디오(1201)를 편집/제어할 수 있다.
개시된 실시예들은 적어도 하나의 하드웨어 장치에서 실행되고 네트워크 구성요소들을 제어하기 위한 네트워크 관리 기능들을 수행하는 적어도 하나의 소프트웨어 프로그램을 통해 구현될 수 있다. 도 1, 3, 4, 6 및 9에 도시된 네트워크 구성요소들은 하드웨어 장치와 소프트웨어 모듈 중 적어도 하나나 하드웨어 장치 및 소프트웨어 모듈의 조합일 수 있는 블록들을 포함한다.
개시된 실시예는 커스터마이즈될 수 있는 어플리케이션의 측면들에서 하나 또는 그 이상의 레지던트 클라이언트 엔터티들이 하나 또는 그 이상의 클라이언트 실행 엔터티들이나 서버와 협상하도록 함으로써, 어플리케이션의 커스터마이제이션이 컴퓨팅 장치 상의 사용자 경험을 개선할 수 있도록 하는 방법들 및 시스템들을 제공한다. 따라서, 보호의 범위는 그러함 프로그램, 메시지를 그 안에 포함하는 컴퓨터로 읽을 수 있는 수단으로 확장되는 것으로 이해되며, 상기 컴퓨터로 읽을 수 있는 저장 수단은, 프로그램이 서버 또는 이동 장치 또는 다른 적절한 프로그램 가능한 장치 상에서 실행될 때 상기 방법의 하나 또는 그 이상의 단계들을 구현하기 위한 프로그램 코드 수단을 포함한다. 상기 방법은 VHDL(Very high speed integrated circuit Hardware Description Language), 다른 프로그래밍 언어로 작성된 소프트웨어 프로그램을 통해 또는 이와 함께 바람직한 실시예에서 구현되거나, 적어도 하나의 하드웨어 장치 상에서 실행되는 하나 또는 그 이상의 VHDL 또는 몇몇 소프트웨어 모듈들에 의해 구현된다. 상기 하드웨어 장치는 프로그램될 수 있는 모든 종류의 휴대용 장치일 수 있다. 상기 장치는 예를 들면, ASIC와 같은 하드웨어 수단, 또는 ASIC와 FPGA와 같은 하드웨어 및 소프트웨어 수단의 조합, 또는 적어도 하나의 마이크로프로세서와, 그 안에 소프트웨어 모듈들이 위치한 적어도 하나의 메모리일 수 있는 수단을 포함할 수 있다. 기술된 상기 방법 실시예들은 일부분은 하드웨어로, 일부분은 소프트웨어로 구현될 수 있다. 또는, 본 발명은 복수의 CPU들을 이용하여 서로 다른 하드웨어 장치들 상에서 구현될 수 있다.
상기 특정 실시예들에 대한 설명은, 다른 이들이 현재 지식을 적용하여, 일반적인 개념으로부터 벗어나지 않고 특정 실시예들을 다양한 응용을 위해 쉽게 수정 및/또는 각색할 수 있는 실시예들의 일반적인 특성을 완전히 나타내줄 것이며, 따라서 그러한 각색 및 수정은 개시된 실시예들의 균등물들의 의미 및 범위 내에 포함되며 포함되고자 의도된다. 여기서 이용된 표현 또는 용어는 설명을 목적으로 하는 것이지 한정을 목적으로 하는 것은 아니다. 따라서, 실시예들이 바람직한 실시예들의 관점에서 설명되었지만, 당업자는 상기 실시예들이 기술된 실시예들의 사상 및 범위 내에서의 수정으로 실시될 수도 있음을 알 것이다.

Claims (34)

  1. 클라이언트 장치에서 어플리케이션의 사용자 경험을 제어하는 방법에 있어서,
    소셜 미디어 웹 페이지의 트리거링을 검출하는 단계;
    상기 트리거링에 대응하여, 서버로부터의 상기 소셜 미디어 웹 페이지를 요청하는 단계;
    상기 서버로부터의 상기 소셜 미디어 웹 페이지를 수신하는 단계;
    미리 정의된 규칙 및 사용자 선호도 중 적어도 하나를 기반으로 협업(collaboration) 기능을 포함하는 도구(tool)와 관련된 적어도 하나의 제어 객체를 결합함으로써 상기 소셜 미디어 웹 페이지의 동작(behavior)을 수정하는 단계; 및
    상기 수정에 기초하여 상기 클라이언트 장치 상에 상기 소셜 미디어 웹 페이지를 렌더링하는 단계를 포함하며,
    상기 클라이언트 장치는 클라이언트 실행 엔터티 및 레지던트 클라이언트 엔터티를 포함하며,
    상기 클라이언트 실행 엔터티는 브라우저 엔진을 포함하며, 상기 레지던트 클라이언트 엔터티는 상기 미리 정의된 규칙 및 상기 사용자 선호도 중 적어도 하나를 기반으로 상기 소셜 미디어 웹 페이지의 동작을 수정하며,
    상기 수정하는 단계는, 상기 클라이언트 실행 엔터티에 의해 수행되는 적어도 하나의 작업을 상기 레지던트 클라이언트 엔터티로 위임하기 위해 협상하는 단계를 포함하는 것을 특징으로 하는 사용자 경험을 제어하는 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 소셜 미디어 웹 페이지의 동작은 데이터 구성요소, 미디어 구성요소, 시멘틱스(semantics), 마크업(mark-ups), 스타일(Styles), 스크립트(Scripts), HyperText Markup Langue (HTML), eXtensible HyperText Markup Language (XHTML), eXtensible Markup Language (XML), Scalable Vector Graphics (SVG), Cascading Style Sheets (CSS) 및 JavaScript (JS)로 구성된 그룹으로부터의 적어도 하나의 구성요소를 수정함으로써 수정되는 것을 특징으로 하는 사용자 경험을 제어하는 방법.
  6. 제1항에 있어서,
    상기 미리 정의된 규칙 및 상기 사용자 선호도 중 적어도 하나를 상기 서버로 전송하는 단계; 및
    상기 수정하기 전에, 상기 미리 정의된 규칙 및 상기 사용자 선호도 중 적어도 하나를 기반으로 상기 소셜 미디어 웹 페이지의 동작을 수정하기 위한 허가를 수신하는 단계를 더 포함하는 것을 특징으로 하는 사용자 경험을 제어하는 방법.
  7. 삭제
  8. 제1항에 있어서, 상기 적어도 하나의 작업은 상기 소셜 미디어 웹 페이지를 렌더링하는 것임을 특징으로 하는 사용자 경험을 제어하는 방법.
  9. 제1항에 있어서, 상기 협상은 XML 스키마를 이용하여 수행되는 것을 특징으로 하는 사용자 경험을 제어하는 방법.
  10. 제1항에 있어서,
    상기 협상을 개시하기 전에 상기 레지던트 클라이언트 엔터티에 의해 상기 클라이언트 실행 엔터티로부터 어플리케이션 타입 정보를 얻는 단계를 더 포함하는 것을 특징으로 하는 사용자 경험을 제어하는 방법.
  11. 삭제
  12. 제1항에 있어서,
    상기 미리 정의된 규칙은 프리코딩된 규칙인 것을 특징으로 하는 사용자 경험을 제어하는 방법.
  13. 클라이언트 장치에서 서버로부터 다운로드되는 어플리케이션으로 사용자 경험을 제어하는 방법에 있어서,
    소셜 미디어 웹 페이지의 트리거링을 검출하는 단계;
    서버로부터의 상기 소셜 미디어 웹 페이지를 요청하는 단계;
    협업(collaboration) 기능을 포함하는 도구(tool)와 관련된 적어도 하나의 제어 객체를 결합함으로써 상기 소셜 미디어 웹 페이지의 동작(behavior)을 수정하기 위해 미리 정의된 규칙 및 사용자 선호도 중 적어도 하나를 상기 서버로 전송하는 단계;
    상기 서버로부터 상기 미리 정의된 규칙 및 상기 사용자 선호도 중 적어도 하나를 기반으로 수정된 동작을 포함하는 상기 소셜 미디어 웹 페이지를 수신하는 단계;
    상기 서버로부터 수신된 상기 소셜 미디어 웹 페이지를 렌더링하는 단계를 포함하며,
    상기 클라이언트 장치는 클라이언트 실행 엔터티 및 레지던트 클라이언트 엔터티를 포함하며,
    상기 렌더링하는 단계는, 상기 클라이언트 실행 엔터티에 의해 수행되는 적어도 하나의 작업을 상기 레지던트 클라이언트 엔터티로 위임하기 위해 협상하는 단계를 포함하는 것을 특징으로 하는 사용자 경험을 제어하는 방법.
  14. 삭제
  15. 제13항에 있어서, 상기 서버에서의 소셜 미디어 웹 페이지의 동작은 데이터 구성요소, 미디어 구성요소, 시멘틱스, 마크업, 스타일, 스크립트, HTML, XHTML, XML, SVG, CSS 및 JS로 구성된 그룹으로부터의 적어도 하나의 구성요소를 수정함으로써 수정되는 것을 특징으로 하는 사용자 경험을 제어하는 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 제13항에 있어서,
    상기 협상은 XML 스키마를 이용하여 수행되는 것을 특징으로 하는 사용자 경험을 제어하는 방법.
  20. 제13항에 있어서,
    상기 협상을 개시하기 전에 상기 레지던트 클라이언트 엔터티에 의해 상기 클라이언트 실행 엔터티로부터 어플리케이션 타입 정보를 얻는 단계를 더 포함하는 것을 특징으로 하는 사용자 경험을 제어하는 방법.
  21. 삭제
  22. 제13항에 있어서, 상기 미리 정의된 규칙은 프리코딩된 규칙인 것을 특징으로 하는 사용자 경험을 제어하는 방법.
  23. 어플리케이션의 사용자 경험을 제어하기 위한 클라이언트 장치에 있어서,
    서버와 통신하도록 구성된 송수신기; 및
    소셜 미디어 웹 페이지의 트리거링을 검출하고,
    상기 트리거링에 대응하여, 상기 송수신기를 통해 상기 서버로부터의 상기 소셜 미디어 웹 페이지를 요청하고,
    상기 서버로부터의 상기 소셜 미디어 웹 페이지를 상기 송수신기를 통해 수신하고,
    협업(collaboration) 기능을 포함하는 도구(tool)와 관련된 적어도 하나의 제어 객체를 결합함으로써 상기 소셜 미디어 웹 페이지의 동작(behavior)을 수정하기 위해 미리 정의된 규칙 및 사용자 선호도 중 적어도 하나를 상기 송수신기를 통해 상기 서버로 전송하고,
    상기 서버로부터 상기 미리 정의된 규칙 및 상기 사용자 선호도 중 적어도 하나를 기반으로 수정된 동작을 포함하는 상기 소셜 미디어 웹 페이지를 상기 송수신기를 통해 수신하여, 상기 서버로부터 수신된 상기 소셜 미디어 웹 페이지를 렌더링하는 제어부를 포함하며,
    상기 제어부는 클라이언트 실행 엔터티 및 레지던트 클라이언트 엔터티를 포함하며,
    상기 클라이언트 실행 엔터티는 브라우저 엔진을 포함하며, 상기 레지던트 클라이언트 엔터티는 상기 미리 정의된 규칙 및 상기 사용자 선호도 중 적어도 하나를 기반으로 상기 소셜 미디어 웹 페이지의 동작을 수정하며,
    상기 클라이언트 실행 엔터티에 의해 수행되는 적어도 하나의 작업을 상기 레지던트 클라이언트 엔터티로 위임하기 위해 상기 클라이언트 실행 엔터티와 상기 레지던트 클라이언트 엔터티가 협상을 수행함을 특징으로 하는 클라이언트 장치.
  24. 제23항에 있어서, 상기 제어부는,
    상기 소셜 미디어 웹 페이지와 연관된 구성요소를 수정하며, 상기 구성요소는 데이터 구성요소, 미디어 구성요소, 시멘틱스(semantics), 마크업(mark-ups), 스타일(Styles), 스크립트(Scripts), HyperText Markup Langue (HTML), eXtensible HyperText Markup Language (XHTML), eXtensible Markup Language (XML), Scalable Vector Graphics (SVG), Cascading Style Sheets (CSS) 및 JavaScript (JS) 중 적어도 하나를 포함함을 특징으로 하는 클라이언트 장치.
  25. 제23항에 있어서, 상기 미리 정의된 규칙은 프리코딩된 규칙인 것을 특징으로 하는 클라이언트 장치.
  26. 제23항에 있어서, 상기 적어도 하나의 작업은 상기 소셜 미디어 웹 페이지를 렌더링하는 것임을 특징으로 하는 클라이언트 장치.
  27. 제23항에 있어서, 상기 협상은 XML 스키마를 이용하여 수행되는 것을 특징으로 하는 클라이언트 장치.
  28. 제23항에 있어서, 상기 레지던트 클라이언트 엔터티는 상기 협상을 개시하기 전에 상기 클라이언트 실행 엔터티로부터 어플리케이션 타입 정보를 얻는 것을 특징으로 하는 클라이언트 장치.
  29. 제23항에 있어서, 상기 제어부는,
    상기 미리 정의된 규칙 및 상기 사용자 선호도 중 적어도 하나를 상기 서버로 전송하도록 하며, 상기 수정하기 전에, 상기 미리 정의된 규칙 및 상기 사용자 선호도 중 적어도 하나를 기반으로 상기 소셜 미디어 웹 페이지의 동작을 수정하기 위한 허가를 상기 서버로부터 수신하도록 구성된 것을 특징으로 하는 클라이언트 장치.
  30. 어플리케이션의 사용자 경험을 제어하기 위한 클라이언트 장치에 있어서,
    송수신기; 및
    소셜 미디어 웹 페이지의 트리거링을 검출하고,
    상기 트리거링에 대응하여, 상기 송수신기를 통해 서버로부터의 상기 소셜 미디어 웹 페이지를 상기 송수신기를 통해 요청하고,
    협업(collaboration) 기능을 포함하는 도구(tool)와 관련된 적어도 하나의 제어 객체를 결합함으로써 상기 소셜 미디어 웹 페이지의 동작(behavior)을 수정하기 위해 미리 정의된 규칙 및 사용자 선호도 중 적어도 하나를 상기 송수신기를 통해 상기 서버로 전송하고,
    상기 서버로부터 상기 미리 정의된 규칙 및 상기 사용자 선호도 중 적어도 하나를 기반으로 수정된 동작을 포함하는 상기 소셜 미디어 웹 페이지를 상기 송수신기를 통해 상기 서버로부터 수신하고,
    상기 서버로부터 수신된 상기 소셜 미디어 웹 페이지를 렌더링하는 제어부를 포함하며,
    상기 제어부는 클라이언트 실행 엔터티 및 레지던트 클라이언트 엔터티를 포함하며,
    상기 클라이언트 실행 엔터티에 의해 수행되는 상기 렌더링을 상기 레지던트 클라이언트 엔터티로 위임하기 위해 상기 클라이언트 실행 엔터티와 상기 레지던트 클라이언트 엔터티가 협상을 수행함을 특징으로 하는 클라이언트 장치.
  31. 제30항에 있어서, 상기 서버는,
    상기 소셜 미디어 웹 페이지와 연관된 구성요소를 수정함으로써 상기 소셜 미디어 웹 페이지의 동작을 수정하며, 상기 구성요소는 데이터 구성요소, 미디어 구성요소, 시멘틱스(semantics), 마크업(mark-ups), 스타일(Styles), 스크립트(Scripts), HyperText Markup Langue (HTML), eXtensible HyperText Markup Language (XHTML), eXtensible Markup Language (XML), Scalable Vector Graphics (SVG), Cascading Style Sheets (CSS) 및 JavaScript (JS) 중 적어도 하나를 포함함을 특징으로 하는 클라이언트 장치.
  32. 제30항에 있어서, 상기 미리 정의된 규칙은 프리코딩된 규칙인 것을 특징으로 하는 클라이언트 장치.
  33. 제30항에 있어서, 상기 협상은 XML 스키마를 이용하여 수행되는 것을 특징으로 하는 클라이언트 장치.
  34. 제30항에 있어서, 상기 레지던트 클라이언트 엔터티는 상기 협상을 개시하기 전에 상기 클라이언트 실행 엔터티로부터 어플리케이션 타입 정보를 얻는 것을 특징으로 하는 클라이언트 장치.
KR1020120062113A 2011-06-09 2012-06-11 클라이언트 장치에서 어플리케이션의 사용자 경험을 제어하는 방법 및 시스템 KR101978180B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN1964/CHE/2011 2011-06-09
IN1964CH2011 2011-06-09

Publications (2)

Publication Number Publication Date
KR20120137312A KR20120137312A (ko) 2012-12-20
KR101978180B1 true KR101978180B1 (ko) 2019-05-14

Family

ID=47294064

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120062113A KR101978180B1 (ko) 2011-06-09 2012-06-11 클라이언트 장치에서 어플리케이션의 사용자 경험을 제어하는 방법 및 시스템

Country Status (2)

Country Link
US (1) US9201634B2 (ko)
KR (1) KR101978180B1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9280377B2 (en) 2013-03-29 2016-03-08 Citrix Systems, Inc. Application with multiple operation modes
US9215225B2 (en) 2013-03-29 2015-12-15 Citrix Systems, Inc. Mobile device locking with context
US20140032733A1 (en) 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US9143530B2 (en) 2011-10-11 2015-09-22 Citrix Systems, Inc. Secure container for protecting enterprise data on a mobile device
US9774658B2 (en) 2012-10-12 2017-09-26 Citrix Systems, Inc. Orchestration framework for connected devices
US9392077B2 (en) 2012-10-12 2016-07-12 Citrix Systems, Inc. Coordinating a computing activity across applications and devices having multiple operation modes in an orchestration framework for connected devices
US9516022B2 (en) 2012-10-14 2016-12-06 Getgo, Inc. Automated meeting room
US20140109176A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US8910239B2 (en) 2012-10-15 2014-12-09 Citrix Systems, Inc. Providing virtualized private network tunnels
US20140108793A1 (en) 2012-10-16 2014-04-17 Citrix Systems, Inc. Controlling mobile device access to secure data
US9971585B2 (en) 2012-10-16 2018-05-15 Citrix Systems, Inc. Wrapping unmanaged applications on a mobile device
US9606774B2 (en) 2012-10-16 2017-03-28 Citrix Systems, Inc. Wrapping an application with field-programmable business logic
WO2014062804A1 (en) 2012-10-16 2014-04-24 Citrix Systems, Inc. Application wrapping for application management framework
FR3000339A1 (fr) * 2012-12-20 2014-06-27 France Telecom Procede de traitement de requetes d'acces a des services de virtualisation informatique, passerelle de virtualisation et navigateur web
US9455886B2 (en) 2013-03-29 2016-09-27 Citrix Systems, Inc. Providing mobile device management functionalities
US9413736B2 (en) 2013-03-29 2016-08-09 Citrix Systems, Inc. Providing an enterprise application store
US10284627B2 (en) 2013-03-29 2019-05-07 Citrix Systems, Inc. Data management for an application with multiple operation modes
US9985850B2 (en) 2013-03-29 2018-05-29 Citrix Systems, Inc. Providing mobile device management functionalities
US9355223B2 (en) 2013-03-29 2016-05-31 Citrix Systems, Inc. Providing a managed browser
IN2013CH05960A (ko) * 2013-12-20 2015-06-26 Samsung R & D Inst India Bangalore Private Ltd
KR101943430B1 (ko) * 2014-11-05 2019-01-29 삼성전자주식회사 사용자 장치, 사용자 장치의 구동방법, 서비스제공장치 및 서비스제공장치의 구동방법
US9948749B2 (en) 2015-06-05 2018-04-17 Apple Inc. Method and system for rendering content using templates

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003536133A (ja) * 2000-06-02 2003-12-02 ヤフー! インコーポレイテッド アプリケーション・プログラムの資源を管理する方法およびシステム
US20060212514A1 (en) * 2005-03-17 2006-09-21 Yannick Saillet Method for the server side processing of user interactions with a web-browser

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720671B2 (en) * 2008-06-17 2017-08-01 Microsoft Technology Licensing, Llc Installation of customized applications
US8645511B2 (en) * 2009-10-13 2014-02-04 Google Inc. Pre-configuration of a cloud-based computer
US20120254768A1 (en) * 2011-03-31 2012-10-04 Google Inc. Customizing mobile applications
US20120291011A1 (en) * 2011-05-12 2012-11-15 Google Inc. User Interfaces to Assist in Creating Application Scripts
US9710765B2 (en) * 2011-05-26 2017-07-18 Facebook, Inc. Browser with integrated privacy controls and dashboard for social network data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003536133A (ja) * 2000-06-02 2003-12-02 ヤフー! インコーポレイテッド アプリケーション・プログラムの資源を管理する方法およびシステム
US20060212514A1 (en) * 2005-03-17 2006-09-21 Yannick Saillet Method for the server side processing of user interactions with a web-browser

Also Published As

Publication number Publication date
US9201634B2 (en) 2015-12-01
US20120317185A1 (en) 2012-12-13
KR20120137312A (ko) 2012-12-20

Similar Documents

Publication Publication Date Title
KR101978180B1 (ko) 클라이언트 장치에서 어플리케이션의 사용자 경험을 제어하는 방법 및 시스템
EP3465467B1 (en) Web page accelerations for web application hosted in native mobile application
US11442901B2 (en) Web application open platform interface (WOPI) server architecture and applications for distributed network computing environments
US8732571B2 (en) Methods and systems for generating and displaying a preview image of a content area
US9232021B2 (en) Dynamically rehosting web content
CN110651252A (zh) 内容管理系统扩展
US10120847B2 (en) Methods for transforming requests for web content and devices thereof
US9697189B2 (en) Partial website optimization for a web publisher
CN102473171A (zh) 将有关本地机器的信息传达给浏览器应用
TW201443670A (zh) 提供不計內容格式及類型之內容可存取性的虛擬庫
Aghaee et al. Mashup development with HTML5
US9773214B2 (en) Content feed printing
US11176223B1 (en) Page rendering by an intermediary system that uses a truncated library
JP2011175460A (ja) 文書閲覧システム及びドキュメント変換サーバ
JP5393242B2 (ja) データ提供方法および中間サーバ装置
US20080297521A1 (en) System and method for providing skins for a web page
GB2506369A (en) Control of service requests communication in a web runtime environment
US20170147543A1 (en) Enabling legacy web applications for mobile devices
US11611482B1 (en) Bandwidth throttling
US20140379790A1 (en) Information processing apparatus, method and medium
JP2009026013A (ja) コンテンツ登録・提供装置、コンテンツ登録・提供制御方法、および、コンテンツ登録・提供制御プログラム
JP6683835B2 (ja) 複数のスレッドを使って電子リソースをダウンロードする際の待ち時間の削減
JP5970359B2 (ja) 情報処理装置、方法およびプログラム
JP5970358B2 (ja) 情報処理装置、方法およびプログラム
JP5896357B2 (ja) 情報処理装置、方法およびプログラム

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
GRNT Written decision to grant