KR101076857B1 - 오브젝트 데이터 통신 방법, 컴퓨터 판독가능 저장매체, 및 시스템 - Google Patents

오브젝트 데이터 통신 방법, 컴퓨터 판독가능 저장매체, 및 시스템 Download PDF

Info

Publication number
KR101076857B1
KR101076857B1 KR1020040051071A KR20040051071A KR101076857B1 KR 101076857 B1 KR101076857 B1 KR 101076857B1 KR 1020040051071 A KR1020040051071 A KR 1020040051071A KR 20040051071 A KR20040051071 A KR 20040051071A KR 101076857 B1 KR101076857 B1 KR 101076857B1
Authority
KR
South Korea
Prior art keywords
data
location
retrieving
hash value
name
Prior art date
Application number
KR1020040051071A
Other languages
English (en)
Other versions
KR20050004060A (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 KR20050004060A publication Critical patent/KR20050004060A/ko
Application granted granted Critical
Publication of KR101076857B1 publication Critical patent/KR101076857B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • Primary Health Care (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Medicines Containing Material From Animals Or Micro-Organisms (AREA)
  • Medicines Containing Plant Substances (AREA)

Abstract

원격지 컴퓨터상의 이용자에 관련된 이름 - 이 이름은 이 이용자를 나타내는 데이터 오브젝트에 유일하게 관련된 위치 데이터 및 해시 값을 포함하고 있음 - 을 수신하는 단계 및 해시 값 및 위치 데이터에 의해 식별된 위치에 근거해서 로컬 캐시중 하나로부터 데이터 오브젝트를 검색하는 단계를 포함하고 있는 방법이 제공된다. 인스턴트 메시징 대화에서 이용자들을 나타내는 오브젝트들을 관리하는 시스템은 이용자를 나타내는 것으로서, 위치 식별자와 해시 값을 포함하는 오브젝트 이름을 갖고 있는 데이터 오브젝트; 및 상기 위치 식별자에 의해 식별된 위치로부터 상기 데이터 오브젝트를 검색하고 상기 데이터 오브젝트를 상기 해시 값에 근거해서 로컬 캐시내에 저장하는 동작을 하는 오브젝트 스토어를 포함하고 있다.
Figure R1020040051071
클라이언트 컴퓨터, 네트워크, 스위치보드 서버, 스토리지

Description

오브젝트 데이터 통신 방법, 컴퓨터 판독가능 저장매체, 및 시스템{INSTANT MESSAGING OBJECT STORE}
도 1은 오브젝트 스토어를 이용하는 인스턴트 메시징 대화를 위한 예시적인 네트워크 환경을 보여주는 도면이다.
도 2는 오브젝트 관리를 위한 오브젝트 스토어를 제공하기 위해 메신저 플랫폼 내에서 개시될 수 있는 예시적인 클래스들을 가지고 있는 클래스 다이어그램이다.
도 3은 오브젝트를 생성하고 오브젝트 스토어를 이용하여 오브젝트를 저장하기 위한 예시적인 동작을 갖고 있는 저장 오브젝트 동작 흐름도이다.
도 4는 아바타를 선택하고, 다른 이용자가 이 아바타를 이용자의 디바이스에 제공하도록 권유하고, 이용자의 디바이스 상에 이 아바타를 제공하기 위한 할당된 리소스를 개시하기 위한 예시적인 동작을 갖고 있는 흐름도이다.
도 5는 요청된 오브젝트 데이터가 로컬 파일 시스템내에 위치해 있는 예시적인 오브젝트 검색 시나리오(500)를 보여주는 도면이다.
도 6은 요청된 오브젝트 데이터가 네트워크 저장 디바이스 상에 위치해 있는 다른 예시적인 오브젝트 검색 시나리오(600)를 보여주는 도면이다.
도 7은 요청된 오브젝트 데이터가 피어 컴퓨터에 위치해 있는 다른 예시적인 오브젝트 검색 시나리오(700)를 보여주는 도면이다.
도 8은 피처 오브젝트들을 관리하기 위한 오브젝트 스토어를 이용하는 인스턴트 메시징 대화에 관여하는 적절한 운영 환경을 제공하는 예시적인 시스템을 보여주는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
102: 클라이언트 컴퓨터(1)
104: 클라이언트 컴퓨터(2)
106: 네트워크
110: 스위치보드 서버
128: 스토리지
관련 출원들에 대한 상호 참조
본 출원은 John Holmes, David Michael Miller, 및 Walter vonKoch에 의한 "Transport System for Instant Messaging"을 제목으로 하는, Attorney Docket No. MS1-1526인, 동시 계류중인 미국 특허 출원 번호 제10/611,575호에 관련되고, 이것은 본 명세서와 동시에 제출되고, 본 출원의 양수인에게 양도되었으며, 배우고 개시하기 위해서 본 명세서에서 참조로 통합된다.
설명될 주제는 컴퓨터 통신에 관한 것이다. 특히, 이 주제는 인스턴트 메시징을 위한 오브젝트 스토어에 관한 것이다.
인스턴트 메시징은 컴퓨터 디바이스의 이용자들에게 매우 대중적인 통신 툴로 자리잡고 있다. 인스턴트 메시징(IM) 애플리케이션(예를 들어, 워싱턴 레이몬드 소재의 마이크로소프트 코포레이션의 WINDOW ? 메신저 시스템, 야후! 메신저, AOL 인스턴트 메신저(AIM), 등)은 이용자가 이용자의 개인 콘택 리스트 내에서 확인되는 한명 이상의 사람과 실시간 대화를 할 수 있게 해준다. 통상적으로, 개인 리스트는 대화 통로를 설정해주는 스위치보드 또는 릴레이 서버와 같은 서버에 저장되어 있다. 이후에, 스위치보드 서버는 인바운드 메시지들을 적절한 수신인들에게 라우트한다.
인스턴트 메시징 시스템들이 진보함에 따라서, 이들은 인스턴트 메시징 대화에 풍요로운 경험을 부여하는 많은 피처(feature)를 제공할 수 있다. 그러한 피처들은 텍스트 이외에도 여러 종류의 데이터 오브젝트를 운영한다. 예를 들어, 주문형 이용자 타일 피처(a custom user tile feature)는 이용자가 다른 이용자의 컴퓨터 상에 이 이용자를 고유하게 표현하는 주문형 이용자 타일을 생성하여 전송할 수 있게 해준다. 그러한 피처 오브젝트의 전송은 통상적으로 수신자에게 에러가 나타나지 않도록 텍스트 보다 더 큰 대역폭을 요구한다. 또한, 대화 동안에 이용자를 나타내는 오브젝트는 그러한 오브젝트가 액세스되는 횟수에 비해 좀처럼 변하지 않을 것이다.
불행하게도, 종래의 인스턴트 메시징 애플리케이션들은 그러한 오브젝트들의 위조를 방지하면서 효율적으로 피처 오브젝트를 관리하기 위한 메커니즘을 제공하지 못하고 있다. 예를 들어서, 이용자가 그의 고유 주문형 이용자 타일을 제2 이 용자에게 단순히 전송하였다면, 제2 이용자는 그가 표현되기를 원하는 방식으로 이 타일이 제1 이용자를 표현하지 못하도록 제1 이용자의 타일을 변경시킬 수 있을 것이다.
상기 문제 및 다른 문제를 해결하는 예시적인 실시예들이 설명된다.
한 실시예는 원격지 컴퓨터상의 이용자와 관련된 것으로서 이용자를 표현하는 데이터 오브젝트에 고유하게 관련된 위치 데이터와 해시 값(hash value)을 포함하는 이름을 수신하고 나서 해시 값 또는 위치 데이터에 의해 확인된 위치를 근거로 해서 로컬 캐시(cache)중 하나로부터 데이터 오브젝트를 검색하므로써 오브젝트 데이터를 통신하는 방법을 포함한다.
다른 실시예는 인스턴트 메시징 대화에서 이용자들을 표현하는 오브젝트를 관리하는 시스템을 포함하고 있으며, 이 시스템은 이용자를 표현하는 데이터 오브젝트를 포함하고 있고, 이 데이터 오브젝트는 위치 식별자와 해시 값을 포함하는 오브젝트 이름을 갖고 있으며, 이 데이터 오브젝트는 위치 식별자에 의해 식별된 위치로부터 데이터 오브젝트를 검색해서 이 데이터 오브젝트를 해시 값에 근거해서 로컬 캐시내에 저장하는 동작을 한다.
도면에서 동일한 참조 번호는 동일 요소를 가리키며, 적절한 컴퓨팅 환경에서 구현되는 여러 방법이 도시되어 있다. 요구되는 것은 아닐지라도, 퍼스널 컴퓨터 및/또는 다른 컴퓨팅 디바이스에 의해 실시되는 프로그램 모듈과 같은 컴퓨터- 실시가능 인스트럭션의 일반적인 배경 하에서 여러 예시적인 방법들이 설명될 것이다. 일반적으로, 프로그램 모듈은 특정한 태스크를 실행하거나 또는 특정한 추상 데이터 타입(particular abstract data types)을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조, 등을 포함하고 있다. 더욱이, 본 기술 분야에 숙련된 자이면 핸드-헬드 디바이스, 멀티-프로세서 시스템, 마이크로프로세서 기반의 또는 프로그램머블 컨슈머 전자기기, 네트워크 PC, 마이크로컴퓨터, 메인프레임 컴퓨터, 등을 포함하는 다른 컴퓨터 시스템 구성으로 여러 예시적인 방법들을 실시할 수 있을 것이다. 여러 예시적인 방법들은 통신 네트워크를 통해서 링크되는 원격지 처리 디바이스에 의해 태스크가 실행되는 분산 컴퓨팅 환경에서도 실시할 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 국부 및 원격지 메모리 저장 디바이스에 위치될 수 있다.
여러 알고림즘 액트들은 몇몇 다이어그램으로 개개의 "블록"에 요약되어 있다. 그러한 블록은 처리가 진행될 때 만들어지거나 실행되는 특정 액션 또는 결정을 기술하고 있다. 마이크로프로세서(또는 이와 동등한 것)가 이용되는 경우, 여기에 제시된 흐름도는 원하는 제어를 실시하기 위해 그러한 마이크로프로세서(또는 이와 동등한 것)에 의해 이용될 수 있는 "제어 프로그램" 또는 "소프트웨어/펌웨어"에 대한 기준을 제공한다. 이와 같이, 처리는 프로세서에 의해 실시될 때 블록으로 예시된 여러 액트를 실행하는 메모리에 저장가능한 머신-판독가능 인스트럭션으로서 구현된다.
본 기술 분야에 숙련된 자이면 여기에 제시된 흐름도와 다른 설명에 근거해 서 그러한 제어 프로그램을 쉽게 기입할 수 있을 것이다. 여기 설명된 주제는 이하 설명되는 액트들을 실행하도록 프로그램된 디바이스 및/또는 시스템 뿐만 아니라 마이크로프로세서와 소프트웨어가 구현될 수 있는 임의 모든 컴퓨터-판독가능 매체를 프로그램하도록 구성되는 소프트웨어를 포함한다. 그러한 컴퓨터-판독가능 매체의 예는 제한 없이 플로피 디스크, 하드 디스크, CD, RAM, ROM, 플래시 메모리 등을 포함한다.
개요
인스턴트 메시징 시스템에서 오브젝트를 관리하기 위한 예시적인 방법, 시스템, 및 디바이스가 설명될 것이다. 일반적으로, 오브젝트 스토어는 1회-기입, 다수-판독 오브젝트 스토리지 및 검색 시스템을 제공하며, 여기서 오브젝트들은 변하지 않는다. 오브젝트 스토어는 인터페이스를 제공하며, 이 인터페이스를 통해 피처 애플리케이션이 오브젝트 이름을 이용하여 오브젝트를 저장하거나 검색할 수 있다. 오브젝트 스토어는 고유 식별자를 생성하기 위해 오브젝트 데이터를 인코드하며, 이 식별자를 통해서 오브젝트 스토어는 로컬 캐시로부터 또는 다수의 위치들중 한 위치로부터 오브젝트를 액세스할 수 있다. 이 오브젝트는 국부적으로 또는 원격지적으로 저장될 수 있다. 오브젝트 스토어는 위치를 얻기 위해 오브젝트의 이름을 디코드할 수 있고 및/또는 국부 또는 원격지 스토리지로부터 오브젝트를 검색하기 위해 생성자(creator) 정보를 디코드할 수 있다.
인스턴트 메시징 시나리오로 오브젝트를 저장하기 위한 예시적인 시스템
도 1은 인스턴트 메시징 대화를 위한 예시적인 네트워크 환경(100)을 도시하고 있다. 일반적으로, 두 클라이언트(102 및 104)는 네트워크(106)를 경유하던가 또는 직접 접속(108)을 경유해 서로 통신할 수 있다. 스위치보드 서버(110)는 네트워크(106)를 통해서 클라이언트(1)(102)와 클라이언트(2)(104) 간의 통신을 원활하게 해 준다. 클라이언트(1)(102) 및/또는 클라이언트(2)(104)는 인스턴트 메시징 세션을 실시하기 위해 스위치보드 서버(110)에 연결될 수 있다. 직접 연결(108)을 이용하면, 데이터가 스위치보드 서버(110)를 통해서 라우트되어야 할 필요는 없지만 이 데이터는 클라이언트(1)(102)와 클라이언트(2)(104) 간에 피어-투-피어 방식으로 통신될 수 있다.
인스턴트 메시징(IM) 플랫폼(112)은 클라이언트(1)(102) 및 클라이언트(2)(104)가 인스턴트 메시징 대화에 관여할 수 있게 해 준다. IM 플랫폼(112)의 이용자는 클라이언트(2)(104)에게 그리고 이 클라이언트로부터 메시지 및 다른 데이터를 송수신하기 위해 이용자 인터페이스(도시안됨)를 경유해서 IM 플랫폼(112)과 상호 대화한다. IM 플랫폼(112)은 하나 이상의 피처(114)(이는 엔드 유저 피처(EUFs)이라 칭해지고 있음), 오브젝트 스토어(116), 오브젝트 캐시 매니저(118), 및 전송 프로토콜 스택(120)을 포함하고 있다. 전송 프로토콜 스택(120)은 애플리케이션 프로그래밍 인터페이스(API)(122)를 제공하며, 이 인터페이스에 의해서 피처(114) 및 오브젝트 스토어(116)와 같은 하이 레벨 기능들이 데이터를 송수신하기 위해 전송 프로토콜 스택(120)내의 기능을 이용할 수 있다.
일반적으로, 전송 프로토콜 스택(120) 및 전송 API(122)는 피어-투-피어 방식으로 네트워크(106)를 통해 및/또는 직접 접속(108)을 통해 클라이언트(1)(102)가 클라이언트(2)(104)와 통신하기 위한 수단을 제공한다. 전송 프로토콜 스택(120)은 피처(114) 및 오브젝트 스토어(116)에 관련된 데이터를 포함해서 인스턴트 메시징 데이터를 통신하기 위해 필요한 접속을 설정해준다. 전송 프로토콜 스택(120) 및 전송 API(122)의 예시적인 구현은 명칭이 "인스턴트 메시징용 전송 시스템"인 계류중인 미국 특허 출원 제10/611,575호에 상세히 설명되어 있다.
피처(114)는 이 피처에 관련된 데이터를 제공하기 위한 IM 애플리케이션(112)에 의해 또는 내에서 호스트되거나 실시되는 기능 또는 애플리케이션이다. 피처(114)는 이 피처가 제공하는 데이터의 종류, 즉 데이터를 제공하는 방식, 피처(114)가 이 데이터에 대해 실행할 수 있는 동작, 및/또는 이 데이터와 상호 대화하도록 이용자에게 제공하는 상호대화 옵션에 의해 특징지워질 수 있다. 예를 들어, 주문형 이용자 타일 피처(114)는 이용자 인터페이스상의 스크린 타일에 그림 데이터를 제공한다. 즉 파일 전송 피처(114)는 이용자가 파일을 선택해서 이 파일을 인스턴트 메시징 컨택에 전송할 수 있게 해 준다. 예를 들어서, 피처(114)는 주문형 이모티콘, 잉크, 임베디드 그림 및 다른 애플리케이션을 포함할 수 있다.
피처(114)는 데이터를 제공하기 위해 인스턴트 메시징 대화동안 오브젝트를 이용한다. 이들 오브젝트는 오브젝트 스토어(116)에 의해 관리된다. 오브젝트 스토어(116)는 인스턴트 메시징에 이용된 데이터 오브젝트를 저장하고, 액세스하고 다른 식으로 관리하기 위한 방법 및 데이터를 제공한다. 예를 들어, 오브젝트 스토어(204)는 클라이언트(2)(104)로부터의 주문형 이모티콘을 클라이언트(1)(102)에 디스플레이하기 위해 주문형 이모티콘 피처(114)에 의해 이용될 수 있다. 이하 상세히 설명되는 바와 같이, 오브젝트 스토어(116)는 오브젝트와 관련된 식별자 데이터를 해싱(hashing)하는 것과 같이 데이터를 암호화해서 어느 정도의 데이터 보안을 제공할 수 있다.
클라이언트 컴퓨터(1)(102)는 파일 시스템(124) 및 캐시(126)를 포함하고 있다. 오브젝트는 파일 시스템(124) 및 캐시(126)에 저장될 수 있다. 파일 시스템(124)은 클라이언트 컴퓨터(1)(102)내에 파일들을 목록화하기 위한 표준 컴퓨터 파일 시스템이다. 캐시(126)는 하드 또는 플로피 디스크, 및/또는 랜덤 액세스 메모리(RAM)와 같은 메모리를 포함하고 있다. 오브젝트 캐시 매니저(118)는 캐시(126)내의 오브젝트들을 관리한다.
오브젝트 캐시 매니저(118)의 한 구현예는 Microsoft? Corporation의 Internet Explorer?에 의해 이용되는 캐시인 WinINET? 캐시를 이용한다. 이 구현예에서, 오브젝트가 웹 어드레스(예를 들어, 유니폼 리소스 로케이터(URL))로부터 검색될 때, WinINET?은 자동으로 이 오브젝트를 WinINET? 캐시에 기입할 것이다. 오브젝트가 URL 위치와 다른 위치로부터 검색되면, 오브젝트 캐시 매니저(118)는 전송 프로토콜 스택(120)에게 오브젝트를 검색할 것을 요청하며, 오브젝트 캐시 매니저(118)는 이 오브젝트를 WinINET? 캐시에 기입한다.
네트워크(106)는 클라이언트(102 및 104)가 이용할 수 있는 오브젝트 데이터 를 보유할 수 있는 스토리지(128)를 포함하고 있다. 클라이언트(1)(102)는 네트워크를 통해 오브젝트를 검색하기 위해서 네트워크 스토리지(128)를 액세스할 수 있다. 클라이언트(1)(102) 상의 오브젝트는 클라이언트(2)(104)에 의해 검색되어 이용될 수 있고, 그 역도 마찬가지다. 이하 좀더 상세히 설명되는 바와 같이, 오브젝트 스토어(116)는 요청된 오브젝트가 어느 곳에 있는지를 결정하고 결정된 위치로부터 이들을 검색하므로써 오브젝트에 대한 요청을 처리한다. 그래서, 도 1에 도시된 바와 같이 오브젝트 스토어(116)는 오브젝트가 로컬 캐시(126), 로컬 파일 시스템(124), 네트워크 스토리지(126) 및/또는 원격지 클라이언트(2)(104)에 있음을 결정할 수 있다.
도시되어 있지는 않을지라도, 클라이언트(1)(102)에 포함되어 있는 것들과 유사한 모듈들이 클라이언트(2)(104)에도 포함되어 있다. 그래서, 클라이언트(2)(104)는 메신저 플랫폼, 피처, 오브젝트 스토어, 오브젝트 캐시 매니저, 전송 프로토콜 스택, 파일 시스템 및 캐시 메모리를 포함하고 있다.
도 1의 예시적인 환경(100)이 단지 두 클라이언트(102 및 104)가 대화 중에 있는 것으로 도시되어 있을지라도, 2 이상의 클라이언트가 대화에 참여할 수 있다는 것을 이해해야만 한다. 2 이상의 클라이언트는 멀티포인트 방식으로 통신할 수 있으며, 이 방식에서 각 클라이언트는 2 이상의 다른 클라이언트에게 (예를 들어, 피어-투-피어 또는 서버를 통한) 접속을 할 수 있다. 이하 네트워크 환경(100)에 이용될 수 있는 예시적인 동작 및 시스템들에 대해 설명하기로 한다.
도 2는 오브젝트 관리를 제공하기 위해 메신저 플랫폼(예를 들어, 도 1의 IM 플랫폼)에서 구체적으로 예시될 수 있는 예시적인 클래스를 갖고 있는 클래스 다이어그램(200)을 보여주고 있다. 한 클래스는 클라이언트 컴퓨터(예를 들어, 도 1의 클라이언트(1)(102))상에 오브젝트 스토어(예를 들어 도 1의 오브젝트 스토어(116))를 나타내는 ObjectStore 클래스(202)이다. ObjectStore 클래스(202)는 저장된 오브젝트를 나타내는 StoredObject 클래스(204)를 이용한다. 타입 열거자(type enumerator)(206)는 오브젝트의 하나 이상의 타입을 정의한다. 본 기술 분야에 숙련된 자이면 도 2의 클래스 다이어그램(200)과 같은 오브젝트 지향 소프트웨어 디자인 및 클래스 다이어그램 디자인에 익숙할 것이다.
메신저 애플리케이션(예를 들어 도 1의 IM 플랫폼(112))내의 피처(예를 들어, 도 1의 피처(114))는 StoredObject 클래스(204)의 인스턴스들을 저장 및 검색하기 위해 ObjectStore 클래스(202)(또는 ObjectStore 클래스(202)의 인스턴스))와 상호 대화한다. 특정 구현예에서, ObjectStore 클래스(202)는 스태틱 싱글톤(static singleton)이고, 이는 실시될 수 있는 모든 피처로부터의 요청을 다루기 위해 ObjectStore 클래스(202)의 단지 한 인스턴스만이 생성된다는 것을 의미한다.
예시적인 오브젝트 타입은 StoredObjectTypeEnum(206)에 제공되어 있다. 도시된 바와 같이, 도 2의 특정 구현예에서, 열거된 타입들은 주문형 이모티콘, 이용자 타일, 배경, 아바타, 및 공유 파일이다. 이들 타입은 이용자가 이용자를 표현하기 위해 생성할 수 있는 오브젝트를 참조할 수 있다. 이용자는 이 이용자에게 고유한, 주문형 이모티콘, 아바타, 또는 이용자 타일과 같은 오브젝트를 생성할 수 있다.
도 2에 도시된 바와 같이, ObjectStore 클래스(202)는 세 가지 기능: GetObject(StoredObject), StoreObject(StoredObject) 및 DeleteObject(StoredObject)을 제공한다. 기능 이름이 가리키고 있는 바와 같이, 피처는 GetObject 기능을 호출하여서 저장된 오브젝트를 검색하고, StoreObject 기능을 호출하여 오브젝트를 저장하고, DeleteObject 기능을 호출하여 오브젝트를 삭제할 수 있다. 이들 기능 각각은 타입 StoredObject 클래스(204)의 파라미터를 포함하고 있다.
StoredObject 클래스(204)는 오브젝트 데이터를 참조한다. 이 오브젝트내의 데이터는 임의의 사이즈 또는 임의의 타입인 임의의 BLOB(Binary Large Objects)) 데이터로 구성된다. StoredObject 클래스(204)의 인스턴스는 이 인스턴스가 참조하는 오브젝트 데이터와 함께 저장될 필요는 없다. 예를 들어, 도 1의 클라이언트(1)(102)는 네트워크 스토리지(도 1의 128) 또는 도 1의 클라이언트(2)(104)와 같은 다른 클라이언트에 저장되어 있는 오브젝트 데이터를 참조하는 StoredObject 클래스(204)의 인스턴스를 가질 수 있다. 이 오브젝트 데이터의 실제 위치는 ObjectStore 클래스(202) 및 StoredObject 클래스(204)의 인스턴스를 이용하는 피처에게 투명하다.
StoredObject 클래스(204)는 오브젝트 데이터를 기술하는 오브젝트 메타데이터(208)를 포함하고 있다. 예시적인 메타데이터(208)는 Name 필드, Type 필드, FriendlyName 필드, Hash1 필드, Hash2 필드, Creator 필드, 및 Location 필드를 포함하고 있다. 이름은 오브젝트를 식별하는 스트링이다. 한 실시예에서, Name 필드는 메타데이터(208)중 하나 이상의 필드들의 조합이다. Type 필드는 오브젝트의 타입을 특정하는 StoredObjectTypeEnum(206)내의 타입들중 하나이다. FriendlyName 필드는 이용자가 이 오브젝트를 제공할 수 있는 이용자-판독가능 이름이다.
한 실시예에서, Hash1 필드는 오브젝트 데이터에 관련된 고유한 값이고, 이 오브젝트 데이터를 캐시내에 위치시키는데 이용될 수 있다. Hash1 값은 Secure Hash Algorithm 1(SHA1)과 같은 크립토그래픽 해싱 기능을 이용하여 생성된다. SHA1 기능은 Hash1 값을 생성하기 위해 입력으로서 오브젝트 데이터를 취하는 것이다. SHA1 기능의 예시적인 호출 기호는 SHA1(데이터)이고 여기서 데이터는 저장될 오브젝트 데이터를 참조한다.
SHA1은 오브젝트 데이터의 '농축된 표현'을 계산하기 위한 알고리즘이다. '농축된 표현'은 길이가 고정되어 있고 '메시지 다이제스트' 또는 '지문'으로 알려져 있다. Hash1 필드의 공통 고정 길이는 160 비트이고 이는 Hash1 값이 모든 오브젝트에 대해 유일한 것이 되는 것을 실질적으로 보증한다. Hash1 값의 유일성은 데이터 보전을 공고히 해주고 데이터 비교 체킹을 허용해 주기 위한 오브젝트 데이터의 '지문'으로서 Hash1 값이 작용하도록 해 준다. 예를 들어, 오브젝트 데이터가 다운로드될 때, 오브젝트 데이터가 변경되지 않았음을 보증하기 위해 Hash1 값이 계산되어 이전의 Hash1 값에 비교될 수 있다. Hash1 값은 또한 이전에 저장된 오브젝트 데이터를 찾기 위한 캐시내의 인덱스로서 이용될 수 있다.
Hash1 값은 로널드 엘. 리베스트 교수가 개발한 메시지 다이제스트 알고리즘 5(MD5)와 같은 다른 공지된 알고리즘을 이용해서 계산할 수 있다. MD5, SHA1 또는 유사한 알고리즘을 이용해도 Hash1 값은 비-가역성이다. 이는 오브젝트 데이터가 Hash1 값으로부터 생성될 수 없다는 것을 의미한다. 본 기술 분야에 숙련된 자이면 SHA 또는 MD와 같은, 해싱 또는 메시지 다이제스트 알고리즘을 실시하기 위한 리소스를 용이하게 이용할 수 있을 것이다. SHA1 알고리즘의 한 특정 구현예에 대한 설명은 Donald E. Eastlake, III, 및 Paul E. Jones에 의해 쓰여졌고 인터넷 소사이어티(2001, 9월)에 의해 Request for Comments 3174 (RFC3174)에 실린 "US Secure Hash Algorithm 1(SHA1)"에서 볼 수 있다. 또한, 2002년 8월 1일 연방 정보 처리 표준, 퍼블리케이션(FIPS PUB) 180-2에도 Secure Hash Standard가 실려있다.
Hash2 필드는 메타데이터 필드(즉, Creator 필드, Type 필드, FriendlyName 필드, Location 필드, 및 Hash1 필드)가 앞서 언급한 SHA1 기능과 같은 해시 기능내로 입력될 때의 결과인 해시 값이다.
StoredObject 클래스(204)의 Creator 필드는 오브젝트를 생성한 이용자, 피어 또는 클라이언트를 나타낸다. Creator 필드는 생성자의 이름, 이메일 어드레스, 또는 오브젝트의 생성자를 명기하는 임의 다른 식별자를 갖고 있는 스트링일 수 있다. StoredObject 클래스(204)의 Location 필드는 오브젝트 데이터의 위치를 명기한다. 도 2에 도시된 바와 같이, 이 위치는 유니폼 리소스 로케이터(URL)에 의해 주어진다. 일반적으로 알려져 있는 바와 같이, URL은 웹 또는 임의 다른 네 트워크 설비상의 데이터에 루트를 정의하는 어드레스이다. 이하 좀 더 상세히 설명하는 바와 같이, ObjectStore 클래스(202)는 오브젝트 데이터를 검색하기 위해 Creator 및 Location 필드를 이용할 수 있다.
예시적인 StoredObject 클래스(204)의 인스턴스는 중복기능 "Create" 기능을 제공한다. 그러므로써 저장된 오브젝트는 다양한 타입으로 생성될 수 있다. 그래서, Create 기능이 ID로 호출될 때, ID를 가지고 있는 오브젝트가 생성된다; File handle로 Create 기능이 호출할 때, 참조 파일 등을 이용하여 오브젝트가 생성된다.
StoredObject 클래스(204)의 인스턴스는 "GetData()" 기능이다. GetData() 기능이 호출될 때, StoredObject 클래스(204)의 인스턴스에 의해 참조된 오브젝트 데이터가 복귀된다. 그래서, 피처가 오브젝트를 제공해야할 필요가 있을 때, 피처는 데이터가 이모티콘, 아바타, 이용자 파일, 배경 또는 어느 것이든 간에 실제 데이터를 얻기 위해 GetData()를 호출할 수 있다.
오브젝트 스토어를 이용하여 오브젝트를 저장하고 검색하기 위한 예시적인 동작
도 3은 도 1의 오브젝트 스토어(116) 및/또는 도 2의 ObjectStore 클래스(202)와 같은 오브젝트 스토어를 이용하여 오브젝트를 생성하고 저장하기 위한 예시적인 동작을 갖는 스토어 오브젝트 동작 흐름도(300)이다. 한 시나리오로, 피처는 오브젝트를 생성해서 저장하기 위해 ObjectStore 클래스(202) 및 StoredObject 클래스(204)의 인스턴스와 상호 대화한다. 피처는 오브젝트 스토어 로부터 오브젝트 이름을 수신하고, 후에 이 오브젝트를 검색하기 위해 오브젝트 스토어를 이용할 수 있다.
시작 동작(302) 후에, 생성 동작(304)은 오브젝트를 생성한다. 생성 동작(304)의 한 구현예에서, StoredObject 클래스(204)(도 2)의 인스턴스가 생성된다. 저장될 데이터에 대한 참조로 Create() 기능에 대한 호출이 이루어진다. 예를 들어, 이용자는 주문형 이모티콘 타입 StoredObject를 생성하기 위해서 주문형 이모티콘 피처를 이용할 수 있다. 주문형 이모티콘 피처는 주문형 이모티콘에 대한 참조로 Create() 기능을 호출한다.
계산 동작(306)은 (생성 동작(304)에서 생성된) StoredObject에 관련된 데이터에 대응하는 제1 해시 값을 계산한다. 계산 동작(306)은 StoredObject내의 메타데이터 필드에 근거해서 제2 해시 값을 계산할 수 있다. 해시 값을 계산하기 위한 다양한 리소스 및 알고리즘들은 앞서 설명되었으므로 반복 설명을 피하기로 한다. 저장 동작(308)은 오브젝트 데이터를 로컬 캐시내에 저장한다. 이 오브젝트 데이터는 이 오브젝트 데이터가 후에 캐시로부터 용이하게 검색될 수 있도록 제1 해시 값에 대응하는 캐시내의 한 위치에 저장된다.
설정 동작(310)은 저장된 오브젝트의 메타데이터(도 2의 메타데이터)내의 필드들을 설정한다. 오브젝트 메타데이터의 Creator 필드와 Location 필드는 이용자 로그인(login) 설정을 근거로 설정될 수 있다. Type 필드는 저장된 오브젝트 데이터의 타입으로 설정된다. FriendlyName은 이 이용자에 의해 명기될 수 있다. Hash1 필드 및 Hash2 필드는 계산 동작(306)에서 계산된 제1 해시 값 및 제2 해시 값에 각각 설정된다.
복귀 동작(312)은 오브젝트 이름을 복귀시킨다. 오브젝트 이름은 설정 동작(310)에서 설정된 메타데이터내의 하나 이상의 필드의 연결이다. 한 실시예에서, 복귀되는 오브젝트 이름은 Creator 필드 및 Location 필드를 포함하고 있다. Creator 필드 및 Location 필드는 ObjectStore가 후에 필요한 경우 로컬 캐시가 아닌 위치로부터 오브젝트 데이터를 검색할 수 있게 해 준다.
복귀 동작(312)에서 복귀된 이름은 유니폼 리소스 식별자(URI) 및 유니폼 리소스 이름(URN)과 같은 지정된 포맷일 수 있다. URI는 이미지, 텍스트, 비디오, 오디오 및 프로그램을 포함해서 인터넷상의 임의 종류의 리소스를 식별할 수 있는 문자 스트링이다. URI의 공통 버전은 유니폼 리소스 로케이터(URL)이다. URI은 한 오브젝트에 대한 영구적으로 유일한 이름인 것으로 정의된다. 예시적인 URI 및 URL은 아래와 같다:
URI://[Creator]/[Type]/[Hash1]/[Hash2]?fn=[FriendlyName]&URL=[Location];
URL:[Type]:[Creator]:[FriendlyName]:[Location]:[Hash1]:[Hash2]
도 4는 컴퓨터 네트워크 상의 임의의 다양한 위치에 저장될 수 있는 오브젝트를 검색하기 위한 예시적인 동작을 갖고 있는 검색 오브젝트 동작 흐름도(400)이다. 도 1에 관해서 설명한 바와 같이, 오브젝트 및 오브젝트 데이터는 로컬 캐시, 로컬 파일 시스템, 네트워크 스토리지(예를 들어 네트워크 서버상의 디스크), 및/또는 원격지 클라이언트 또는 피어 컴퓨터에 저장될 수 있다. 동작 흐름도(400)는 오브젝트가 위치해 있는 곳을 결정하고 나서 이 위치로부터 오브젝트를 검색하므로써 오브젝트에 대한 요청에 응답한다.
요청 동작(402)은 도 3의 복귀 동작(310)에서 복귀된 오브젝트 이름과 같은 오브젝트 이름을 이용하여 오브젝트 데이터를 요청한다. 요청 동작(402)은 원격지 클라이언트 컴퓨터 또는 네트워크 서버로부터 얻은 오브젝트 이름으로 통과할 수 있다. 오브젝트 이름은 요청된 오브젝트의 위치를 명기해주는 위치 정보(예를 들어, 도 2의 URL, 또는 StoredObject(204)내의 Location 필드)를 포함하고 있는 것으로 가정한다. 오브젝트 이름은 또한 요청된 오브젝트에 고유하게 관련된 해시 값을 포함하고 있다. 요청 동작(402)은 도 2의 ObjectStore(202)의 GetObject() 기능을 호출하는 것을 포함할 수 있다.
질의 동작(404)은 요청된 오브젝트가 로컬 캐시 내에 있는지 여부를 결정한다. 질의 동작(404)의 한 실시예에서, 입력 이름내의 Hash1 값은 오브젝트가 로컬 캐시 내에 있는지 여부를 결정하는데 이용된다. Hash1 값은 StoredObject에 관련된 데이터의 해시이다. 그래서, Hash1은 단지 검색될 오브젝트 데이터에 근거한 것이고 오브젝트에 관련된 임의 다른 이름 데이터와는 무관하다. Hash1 값은 캐시 내로의 유일한 인덱스이기 때문에, Hash1 값은 Hash1 값에 관련된 데이터가 로컬 캐시 내에 저장되어 있는지 여부를 결정하는데 이용될 수 있다. 요청된 오브젝트가 로컬 캐시 내에 있는 것으로 결정되면, 오브젝트 검색 동작(400)은 "예"를 검색 동작(406)으로 분기한다. 검색 동작(406)은 로컬 캐시 내로의 인덱스에 대한 해시 값을 이용하여 오브젝트 데이터를 검색한다.
오브젝트가 액세스되는 제1 타임에 오브젝트 데이터는 로컬 캐시 내에 있을 수 없다. 요청된 오브젝트가 로컬 캐시 내에 있지 않는 것으로 결정되면, 오브젝트 검색 동작(400)은 "아니오"를 검색 동작(408)으로 분기한다. 검색 동작(408)은 로컬 캐시가 아닌 위치로부터 요청된 오브젝트를 검색한다. 이 위치는 입력 이름으로 Location 필드에 의해 명기된다. 로컬 캐시가 아닌 위치로부터 요청된 오브젝트를 검색하는데 Location 필드가 어떻게 이용될 수 있는지를 보여주는 몇몇 시나리오가 아래 제시된다.
요청된 오브젝트가 로컬 캐시가 아닌 위치로부터 검색된 후에, 저장 동작(410)은 이 오브젝트를 로컬 캐시 내에 저장한다. 로컬 캐시로부터 오브젝트를 검색한 후, 또는 요청된 오브젝트를 로컬 캐시 내에 저장한 후에, 복귀 동작(412)은 요청된 오브젝트를 복귀시킨다.
예시적인 오브젝트 검색 시나리오
도 5는 요청된 오브젝트 데이터가 로컬 캐시 시스템에 위치해 있는 예시적인 오브젝트 검색 시나리오(500)를 도시하고 있다. 피처(502)는 오브젝트 이름을 오브젝트 스토어(504)에 보내서 오브젝트 스토어(504)로부터 오브젝트 데이터를 요청한다. 오브젝트 스토어(504)는 요청된 오브젝트가 로컬 캐시(506)내에 있는지 여부를 결정한다. 이 시나리오(500)에서, 요청된 오브젝트가 로컬 캐시(506)내에서 발견되지 않은 것으로 가정한다. 오브젝트 스토어(504)는 요청된 오브젝트 데이터의 위치를 결정하기 위해 오브젝트 이름을 분석한다. 시나리오(500)에서, 오브젝 트 이름의 위치 데이터는 이 위치를 로컬 파일 시스템(508)인 것으로 지정한다.
그래서, 로컬 파일 시스템(508)이 액세스되어 요청된 오브젝트 데이터가 검색된다. 이후 요청된 오브젝트 데이터는 로컬 캐시(506)에 저장된 후에 요청 피처(502)로 복귀한다. 그래서, 이해하고 있듯이 시나리오(500)는 싱글 클라이언트 경우에 개시된다.
도 6은 요청된 오브젝트 데이터가 네트워크 저장 디바이스에 위치해 있는 다른 예시적인 오브젝트 검색 시나리오(600)를 도시하고 있다. 피처(602)는 해시 값과 위치 정보를 가지고 있는 오브젝트 이름을 보냄으로써 오브젝트 스토어(604)로부터 오브젝트 데이터를 요청한다. 오브젝트 스토어(604)는 요청된 오브젝트가 로컬 캐시(606)내에 있는지를 결정하기 위해 요청된 오브젝트 데이터의 해시 값을 이용한다. 이 시나리오에서는 요청된 오브젝트가 로컬 캐시(606)내에 없는 것으로 가정한다. 오브젝트 스토어(604)는 위치 정보로부터 요청된 오브젝트가 네트워크(608)상의 한 위치에 저장되어 있음을 결정한다.
이 위치는 네트워크 스토리지(610)를 지정하는 URL에 의해 주어진다. 요청된 오브젝트는 네트워크 스토리지(610)로부터 검색된다. 계속해서 요청된 오브젝트는 로컬 캐시(606)내에 저장되고 나서 요청 피처(602)에게 복귀한다.
도 7은 요청된 오브젝트 데이터가 피어 컴퓨터에 위치해 있는 다른 예시적인 오브젝트 검색 시나리오(700)를 도시하고 있다. 클라이언트, 즉 클라이언트 1에 관한 피처(702)는 해시 값과 위치 정보를 가지고 있는 오브젝트 이름을 보내서 오브젝트 스토어(704)로부터 오브젝트 데이터를 요청한다. 오브젝트 스토어(704)는 요청된 오브젝트 데이터가 로컬 캐시(706)내에 없음을 결정한다. 오브젝트 스토어(704)는 이 오브젝트 이름을 분석해서 요청된 오브젝트 데이터가 클라이언트, 즉 클라이언트 2에 있음을 결정한다.
클라이언트 2로부터 요청된 오브젝트 데이터를 검색하기 위한 요청은 전송 프로토콜 스택(706)으로 전송된다. 전송 프로토콜 스택(708)은 클라이언트 2상의 전송 프로토콜 스택(710)으로의 피어-투-피어 접속을 이용한다. 오브젝트 데이터에 대한 요청은 클라이언트 2상의 전송 프로토콜 스택(710)으로 전송된다. 전송 프로토콜 스택(710)은 클라이언트 2상의 원격지 오브젝트 스토어(712)에게 다시 호출을 발행한다. 원격지 오브젝트 스토어(712)는 클라이언트 2상의 원격지 파일 시스템(714)로부터 요청된 오브젝트 데이터를 검색한다.
계속해서, 요청된 오브젝트 데이터는 전송 프로토콜 스택(708 및 710)을 통해서 클라이언트 1로부터 클라이언트 2로 송신된다. 클라이언트 1에서, 요청된 오브젝트 데이터는 로컬 캐시(706)에 저장된다. 그래서, 피어-투-피어 요청에 의존하지 않고도 오브젝트 데이터에 대한 나중의 요청이 로컬 캐시(706)로부터 용이하게 만족된다. 이후 요청된 오브젝트 데이터는 요청 피처(702)에게 복귀한다.
예시적인 운영 환경
도 8 및 이에 대한 논의는 오브젝트를 저장하고 검색하기 위한 앞서 설명된 배열 및 절차들이 구현될 수 있는 적절한 컴퓨팅 환경에 대한 전반적인 설명을 제공하고자 하는 것이다. 예시적인 컴퓨팅 환경(820)은 단지 적절한 컴퓨팅 환경의 한 예일 뿐이고 설명된 주제의 이용 또는 기능의 범위에 관해서 어떤 제한을 두고자 의도된 것이 아니다. 컴퓨팅 환경(820)은 이 환경에 예시된 컴포넌트들의 임의 하나 또는 조합에 관한 어떤 종속성 또는 필요조건을 갖고 있는 것으로 해석되어서는 아니된다.
네트워크 환경에서 오브젝트를 관리하기 위한 예시적인 배열 및 절차들은 수많은 다른 일반적인 목적 또는 특정 목적의 컴퓨팅 시스템 환경 또는 구성에서 운영될 수 있다. 설명된 주제에 이용하기 적합할 수 있는 공지된 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 이하 열거되는 것들에 제한 없이 개인용 컴퓨터, 서버 컴퓨터, 신(thin) 클라이언트, 시크(thick) 클라이언트, 핸드-헬드 또는 랩탑 디바이스, 마이크로프로세서 시스템, 마이크로프로세서-기반의 시스템, 메인프레임 컴퓨터, 서버 팜(farms) 및 코포레이트 인트라넷과 같은 분산 컴퓨팅 환경, 상기 시스템들 또는 디바이스들중 임의의 것을 포함하는 것 등이 있다.
컴퓨팅 환경(820)은 컴퓨터(830) 형태의 범용 컴퓨팅 디바이스를 포함하고 있다. 컴퓨터(830)는 앞서 설명한 바와 같은 오브젝트 스토어의 예시적인 구현예를 포함하거나 이 구현예로서 작용할 수 있다. 컴퓨터(830)의 컴포넌트들은 제한 없이 하나 이상의 프로세서 또는 프로세싱 유닛(832), 시스템 메모리(834), 및 시스템 메모리(834)를 포함하고 있는 다양한 시스템 컴포넌트를 프로세서(832)에 결합해주는 버스(836)를 포함할 수 있다.
버스(836)는 메모리 버스 또는 메모리 제어기, 주변 버스, 가속 그래픽 포트, 및 다양한 버스 아키텍처중 임의의 것을 이용하는 프로세서 또는 로컬 버스를 포함하는 몇몇 종류의 버스 구조중 하나 이상의 임의의 것을 보여주고 있다. 예로서, 그러한 아키텍처는 Industry Standard Architecture(ISA) 버스, Micro Channel Architecture(MCA) 버스, 강화된 ISA(EISA) 버스, Video Electronics Standard Association(VESA) 로컬 버스, 및 Mezzanine 버스로 알려져 있는 Peripheral Component Interconnects(PCI) 버스를 포함하나 이들에 제한되는 것은 아니다.
컴퓨터(830)는 다양한 컴퓨터 판독가능 매체를 통상적으로 포함하고 있다. 그러한 매체는 컴퓨터(830)에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있고, 이는 휘발성 및 비-휘발성 매체, 제거가능 및 비-제거 매체를 포함하고 있다.
시스템 메모리는 랜덤 액세스 메모리(RAM)(840)와 같은 휘발성 메모리 및/또는 판독 전용 메모리(RAM)(838)와 같은 비-휘발성 메모리 형태의 컴퓨터 판독가능 매체를 포함하고 있다. 예를 들어 시작 동안 컴퓨터(830)내에 있는 소자들간에 정보를 통신하는데 도움을 주는 기본 루틴을 포함하는 기본 입력/출력 시스템(BIOS)(842)은 ROM(838)내에 저장되어 있다. RAM(840)은 통상적으로 프로세서(832)에 의해서 즉시 액세스 가능하거나 및/또는 현재 동작되고 있는 데이터 및/또는 프로그램 모듈을 포함하고 있다.
컴퓨터(830)는 제거가능/비-제거가능, 휘발성/비-휘발성 컴퓨터 저장 매체를 더 포함할 수 있다. 단지 예로서, 도 8은 비-제거가능, 비-휘발성 자기 매체(도시되어 있지 않으며 통상은 "하드 드라이브"라 칭함), 비-휘발성 자기 디스크(848)(예를 들어 "플로피 디스크")로부터/에 판독 및 기입을 위한 자기 디스크 드라이브(846), 및 CD-ROM, DVD-ROM 또는 다른 광학 매체와 같은 제거가능, 비-휘발성 광학 디스크(852)로부터/에 판독 및 기입을 위한 광학 디스크 드라이브(850)을 도시하고 있다. 하드 디스크 드라이브(844), 자기 디스크 드라이브(846) 및 광학 디스크 드라이브(850)는 각각 하나 이상의 인터페이스(854)에 의해 버스(836)에 접속되어 있다.
드라이브 및 이들의 관련 컴퓨터-판독가능 매체는 컴퓨터(830)용의 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈, 및 다른 데이터의 비휘발성 스토리지를 제공한다. 여기에 설명된 예시적인 환경이 하드 디스크, 제거가능 자기 디스크(848) 및 제거가능 광학 디스크(852)를 이용하고 있을지라도, 자기 카세트, 플래시 메모리 카드, 디지털 비디오 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM) 등과 같은 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 다른 종류의 컴퓨터 판독가능 매체도 예시적인 운영 환경에 이용될 수 있다는 것은 이해해야 한다.
다수의 프로그램 모듈은 예를 들어 이하 열거되는 것들에 제한 없이 오퍼레이팅 시스템(858), 하나 이상의 애플리케이션 프로그램(860), 다른 프로그램 모듈(862), 및 프로그램 데이터(864)를 구비하는 하드 디스크, 자기 테이프(848), 광학 디스크(852), ROM(838), 또는 RAM(540)에 저장될 수 있다. 애플리케이션 프로그램(860)은 여기서 설명된 바와 같은 피처 애플리케이션, 오브젝트 스토어 및 전송 프로토콜 스택을 갖고 있는 인스턴트 메시징 프로그램을 구비할 수 있다.
이용자는 코맨드 및 정보를 키보드(866) 및 ("마우스"와 같은) 포인팅 디바 이스(868)와 같은 광학 입력 디바이스를 통해서 컴퓨터(830)에 엔터할 수 있다. 다른 입력 디바이스(도시안됨)는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 시리얼 포트, 스캐너 등을 포함할 수 있다. 이들 및 다른 입력 디바이스는 버스(836)에 결합되어 있는 이용자 입력 인터페이스(870)를 통해서 프로세싱 유닛(832)에 연결되어 있지만, 병렬 포트, 게임 포트 또는 유니버셜 시리얼 버스(USB)와 같은 다른 인터페이스 및 버스 구조에 의해 연결될 수 있다.
선택 모니터(872) 또는 다른 종류의 디스플레이 디바이스는 비디오 어댑터(874)와 같은 인터페이스를 통해서 버스(836)에 연결되어 있다. 모니터 이외에도, 퍼스널 컴퓨터는 통상적으로 출력 주변 인터페이스(875)를 통해서 연결될 수 있는 스피커 및 프린터와 갖은 다른 주변 출력 디바이스(도시안됨)를 포함하고 있다.
컴퓨터(830)는 원격지 컴퓨터(882)와 같은 하나 이상의 원격지 컴퓨터로의 논리적 연결을 이용하는 네트워크 환경에서 동작할 수 있다. 원격지 컴퓨터(882)는 컴퓨터(830)에 관해서 설명된 요소들 및 특징들 대부분 또는 전부를 포함할 수 있다. 도 8에 도시된 논리적 연결은 지역 네트워크(LAN)(877) 및 광역 네트워크(WAN)(879)이다. LAN(877) 및/또는 WAN(879)은 유선 네트워크, 무선 네트워크, 또는 이들의 임의 조합일 수 있다. 그러한 네트워킹 환경은 오피스, 엔터프라이즈-와이드 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 이용될 때, 컴퓨터(830)는 네트워크 인터페이스 또는 어댑터(886)를 통해서 LAN(877)에 연결될 수 있다. WAN 네트워킹 환경에 이용될 때, 컴퓨터(830)는 통상적으로 모뎀, 또는 WAN(878)상에서 통신을 설정하기 위한 다른 수단을 포함하고 있다. 내장형 또는 외장형일 수 있는 모뎀(878)은 이용자 입력 인터페이스(870) 또는 다른 적절한 메커니즘을 통해서 시스템 버스(836)에 연결될 수 있다. 도 8에는 인터넷을 통한 WAN의 특정 구현이 도시되어 있다. 컴퓨터(830)는 통상적으로 모뎀(878) 또는 인터넷(880)을 통한 통신을 설정하기 위한 다른 수단을 포함하고 있다. 모뎀(878)은 인터페이스(870)를 통해 버스(836)에 연결되어 있다.
네트워크 환경에서, 개인용 컴퓨터(830)에 관련해 도시된 프로그램 모듈은, 또는 이의 부분들이 원격지 메모리 저장 디바이스에 저장될 수 있다. 예를 들어, 도 8은 원격지 메모리 저장 디바이스가 원격지 컴퓨터(882)에 상주하는 것으로 도시하고 있다. 여기서 도시되고 설명된 네트워크 연결은 예시적인 것이며 컴퓨터들 간에 통신 링크를 설정하는 다른 수단이 이용될 수 있음을 이해해야 한다.
결론
설명된 배열, 절차 및 컴포넌트들이 구조적 피처 및/또는 방법론적 동작에 특정된 언어로 설명되었을지라도, 특허청구범위에 정의된 주제는 설명된 특정한 피처 또는 동작들에 제한되는 것이 아니다. 오히려, 특정한 피처 및 동작들은 청구된 주제를 구현하는 우선 형태로 기술된 것이다.
이용자를 표현하는 데이터 오브젝트에 고유하게 관련된 위치 데이터와 해시 값을 포함하는 이름을 수신하고 나서 해시 값 또는 위치 데이터에 의해 확인된 위 치를 근거로 해서 로컬 캐시 중 하나로부터 데이터 오브젝트를 검색하므로써 오브젝트 데이터를 통신하는 방법을 제공한다.

Claims (22)

  1. 인스턴트 메시징 플랫폼(instant messaging platform) 상에서 실행되는 인스턴트 메시징 애플리케이션에 의해 요청되는 오브젝트 데이터를 통신하는 방법으로서,
    상기 인스턴트 메시징 애플리케이션을 실행하는 클라이언트 컴퓨팅 장치에서, 원격 사용자로부터 수신한 오브젝트 데이터에 기초하여 고정된 길이의 고유 해시 값을 생성하는 단계 - 상기 오브젝트 데이터는 상기 원격 사용자를 나타내며 상기 오브젝트 데이터를 설명하는 메타데이터를 포함하고, 상기 메타데이터는, 생성된 해시 값을 저장하는 해시 필드와, 상기 클라이언트 컴퓨팅 장치의 로컬 캐시 내의 위치가 아닌 상기 오브젝트 데이터의 위치를 가리키는 위치 식별자를 저장하는 위치 필드와, 상기 인스턴트 메시징 애플리케이션의 향후 접속(future session) 동안 상기 원격 사용자를 고유하게 나타내도록 상기 원격 사용자에 의해 이전에 선택된 오브젝트 타입을 가리키는 타입 필드를 포함함 - 와,
    상기 클라이언트 컴퓨팅 장치의 로컬 캐시 내의 위치에 상기 오브젝트 데이터를 저장하는 단계 - 상기 로컬 캐시 내의 상기 오브젝트 데이터의 위치는 상기 해시 값에 대응함 - 와,
    상기 오브젝트 데이터의 오브젝트 이름을 상기 인스턴트 메시징 애플리케이션에게 리턴하는 단계 - 상기 오브젝트 이름은, 상기 해시 값과 상기 위치 필드를 포함하며, 상기 오브젝트 데이터의 일부분이 상기 클라이언트 컴퓨팅 장치에서 변경되지 않고서 상기 인스턴트 메시징 애플리케이션에 의해 상기 로컬 캐시 내의 상기 오브젝트 데이터의 액세스를 가능하게 함 -
    를 포함하는 오브젝트 데이터 통신 방법.
  2. 제1항에 있어서,
    상기 인스턴트 메시징 애플리케이션으로부터 상기 오브젝트 데이터에 대한 요청을 수신하는 단계 - 상기 요청은 상기 오브젝트 이름을 포함함 - 와,
    상기 컴퓨팅 장치의 로컬 캐시로부터 상기 오브젝트 데이터를 검색(retrieve)하는 단계 - 상기 오브젝트 데이터는 상기 오브젝트 데이터 내의 상기 해시 값에 기초하여 위치함 -
    를 더 포함하는 오브젝트 데이터 통신 방법.
  3. 제1항에 있어서,
    상기 인스턴트 메시징 애플리케이션으로부터 상기 오브젝트 데이터에 대한 요청을 수신하는 단계 - 상기 요청은 상기 오브젝트 이름을 포함함 - 와,
    상기 위치 식별자를 이용하는 위치로부터 상기 오브젝트 데이터를 검색하는 단계
    를 더 포함하는 오브젝트 데이터 통신 방법.
  4. 제1항에 있어서,
    상기 인스턴트 메시징 애플리케이션으로부터 상기 오브젝트 데이터에 대한 요청을 수신하는 단계 - 상기 요청은 상기 오브젝트 이름을 포함함 - 와,
    요청한 오브젝트 데이터가 상기 클라이언트 컴퓨팅 장치의 로컬 캐시 내에 있는지 여부를 상기 해시 값에 기초하여 판정하는 단계와,
    요청한 오브젝트 데이터가 상기 클라이언트 컴퓨팅 장치의 로컬 캐시 내에 있다면 상기 로컬 캐시로부터 상기 오브젝트 데이터를 검색하는 단계와,
    상기 위치 식별자에 의해 식별되는 위치로부터 상기 요청한 오브젝트 데이터를 검색하는 단계
    를 더 포함하는 오브젝트 데이터 통신 방법.
  5. 제4에 있어서,
    상기 위치 식별자에 의해 식별되는 위치로부터 상기 요청한 오브젝트 데이터를 검색하는 단계는, 네트워크 스토리지(network storage)로부터 상기 요청한 오브젝트 데이터를 검색하는 단계를 포함하는 오브젝트 데이터 통신 방법.
  6. 제4에 있어서,
    상기 위치 식별자에 의해 식별되는 위치로부터 상기 요청한 오브젝트 데이터를 검색하는 단계는, 상기 클라이언트 컴퓨팅 장치 내의 로컬 파일 시스템으로부터 상기 요청한 오브젝트 데이터를 검색하는 단계를 포함하는 오브젝트 데이터 통신 방법.
  7. 제4에 있어서,
    상기 위치 식별자에 의해 식별되는 위치로부터 상기 요청한 오브젝트 데이터를 검색하는 단계는, 상기 클라이언트 컴퓨팅 장치로부터 원격되어 있는 파일 시스템으로부터 상기 요청한 오브젝트 데이터를 검색하는 단계를 포함하는 오브젝트 데이터 통신 방법.
  8. 제7에 있어서,
    상기 클라이언트 컴퓨팅 장치로부터 원격되어 있는 파일 시스템으로부터 상기 요청한 오브젝트 데이터를 검색하는 단계는, 피어-투-피어 접속(peer-to-peer connection)을 통해 상기 파일 시스템에 액세스하는 단계를 포함하는 오브젝트 데이터 통신 방법.
  9. 제7에 있어서,
    상기 클라이언트 컴퓨팅 장치로부터 원격되어 있는 파일 시스템으로부터 상기 요청한 오브젝트 데이터를 검색하는 단계는, 스위치보드(switchboard) 서버에 의한 접속을 통해 상기 파일 시스템에 액세스하는 단계를 포함하는 오브젝트 데이터 통신 방법.
  10. 컴퓨터 실행가능 명령어를 저장하고 있는 컴퓨터 판독가능 저장매체로서,
    상기 컴퓨터 실행가능 명령어는, 클라이언트 컴퓨터 내의 하나 이상의 프로세서에 의해 실행시 상기 클라이언트 컴퓨터로 하여금,
    상기 클라이언트 컴퓨터에서, 상기 클라이언트 컴퓨터 상에서 실행되는 인스턴트 메시징 애플리케이션으로부터 원격 컴퓨터 상의 사용자에 연관된 이름을 수신하는 단계와,
    상기 클라이언트 컴퓨터에서, 해시 값을 생성하여 상기 원격 컴퓨터 상의 사용자에 연관된 데이터 오브젝트의 간결한 표현(condensed representation)을 생성하는 단계와,
    상기 이름에 연관된 데이터 오브젝트를 검색하는 단계
    를 포함하는 방법을 수행하게 하고,
    상기 이름은, 상기 원격 컴퓨터 상의 사용자에 의해 수신되며 상기 원격 컴퓨터 상의 사용자를 나타내는 데이터 오브젝트에 고유하게 연관된 해시 값 및 위치 데이터를 포함하고, 상기 데이터 오브젝트는 상기 오브젝트 데이터를 설명하는 메타데이터를 포함하고,
    상기 해시 값은 상기 클라이언트 컴퓨터의 로컬 캐시 내의 상기 데이터 오브젝트의 위치를 식별하며,
    상기 이름 내의 위치 데이터는 상기 해시 값에 의해 식별되는 상기 로컬 캐시 내의 위치가 아닌 상기 데이터 오브젝트의 위치를 가리키며,
    상기 메타데이터는,
    상기 해시 값을 저장하는 해시 필드와,
    상기 이름 내의 위치 데이터를 가리키는 위치 식별자를 저장하는 위치 필드와,
    상기 인스턴트 메시징 애플리케이션의 향후 접속 동안 상기 원격 컴퓨터 상의 사용자를 고유하게 나타내도록 상기 사용자에 의해 이전에 선택된 오브젝트 타입을 가리키는 타입 필드를 포함하고,
    상기 이름에 연관된 데이터 오브젝트를 검색하는 단계는,
    상기 데이터 오브젝트가 상기 클라이언트 컴퓨터의 로컬 캐시 내에 있는지 여부를 상기 해시 값에 기초하여 판정하는 단계와,
    상기 로컬 캐시로부터 상기 데이터 오브젝트를 검색하는 단계와,
    상기 데이터 오브젝트가 상기 로컬 캐시 내에 있지 않다면 상기 위치 데이터에 의해 식별되는 위치로부터 상기 데이터 오브젝트를 검색하는 단계
    를 포함하는, 컴퓨터 판독가능 저장매체.
  11. 제10항에 있어서,
    상기 로컬 캐시로부터 상기 데이터 오브젝트를 검색하는 단계는, 상기 해시 값에 기초하여 상기 로컬 캐시로부터 상기 데이터 오브젝트를 검색하는 단계를 포함하는 컴퓨터 판독가능 저장매체.
  12. 제10항에 있어서,
    상기 위치 데이터에 의해 식별되는 위치로부터 상기 데이터 오브젝트를 검색하는 단계는, 피어-투-피어 접속을 통해 원격 컴퓨터에 액세스하는 단계를 포함하는 컴퓨터 판독가능 저장매체.
  13. 클라이언트 컴퓨터와 원격 클라이언트 컴퓨터 사이의 인스턴트 메시징 대화에서 상기 원격 클라이언트 컴퓨터 상의 원격 사용자를 나타내는 데이터 오브젝트를 관리하도록, 상기 클라이언트 컴퓨터에서 구현되는 시스템으로서,
    하나 이상의 프로세서와,
    상기 하나 이상의 프로세서에 연결되며, 명령어를 저장하고 있는 메모리와,
    데이터 오브젝트 스토어(data object store)
    를 포함하고,
    상기 하나 이상의 프로세서는, 상기 명령어로 하여금, 상기 클라이언트 컴퓨터 상의 원격 사용자를 나타내며 상기 원격 클라이언트 컴퓨터로부터 상기 클라이언트 컴퓨터에 의해 수신되는 데이터 오브젝트 - 상기 데이터 오브젝트는 자신을 설명하는 메타데이터를 포함함 - 를 구현하게 하고,
    상기 메타데이터는,
    상기 데이터 오브젝트가 저장되어야 하는 상기 클라이언트 컴퓨터의 로컬 캐시 내의 위치를 식별하도록 상기 클라이언트 컴퓨터에 의해 생성된 해시 값을 저장하는 해시 필드와,
    상기 데이터 오브젝트가 저장된 상기 원격 클라이언트 컴퓨터 내의 위치를 가리키는 위치 식별자를 저장하는 위치 필드와,
    상기 데이터 오브젝트의 상기 위치 식별자와 해시 값을 포함하는 오브젝트 이름을 저장하는 이름 필드와,
    상기 인스턴트 메시징 대화의 향후 접속 동안 상기 원격 사용자를 고유하게 나타내도록 상기 원격 클라이언트 컴퓨터 상의 원격 사용자에 의해 이전에 선택된 오브젝트 타입을 가리키는 타입 필드를 포함하고,
    상기 데이터 오브젝트 스토어는, 상기 위치 식별자에 의해 식별되는 위치를 통해 상기 원격 클라이언트 컴퓨터로부터 상기 데이터 오브젝트를 검색하고, 상기 해시 값에 기초하여 상기 클라이언트 컴퓨터의 로컬 캐시 내에 검색한 데이터 오브젝트를 저장하도록 동작가능한 시스템.
  14. 제13항에 있어서,
    상기 오브젝트 이름은 상기 데이터 오브젝트의 생성자(creator)를 식별하는 생성자 식별자를 더 포함하는 시스템.
  15. 제13항에 있어서,
    상기 메타데이터는,
    상기 데이터 오브젝트의 애칭(friendly name)을 저장하는 애칭 필드와,
    상기 해시 값, 위치 식별자, 오브젝트 이름, 오브젝트 타입, 생성자 식별자, 데이터 오브젝트의 애칭을 포함하는 상기 메타데이터에 기초하는 제2 해시 값을 더 포함하는 시스템.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
KR1020040051071A 2003-07-01 2004-07-01 오브젝트 데이터 통신 방법, 컴퓨터 판독가능 저장매체, 및 시스템 KR101076857B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/611,599 US7539727B2 (en) 2003-07-01 2003-07-01 Instant messaging object store
US10/611,599 2003-07-01

Publications (2)

Publication Number Publication Date
KR20050004060A KR20050004060A (ko) 2005-01-12
KR101076857B1 true KR101076857B1 (ko) 2011-10-25

Family

ID=33435438

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040051071A KR101076857B1 (ko) 2003-07-01 2004-07-01 오브젝트 데이터 통신 방법, 컴퓨터 판독가능 저장매체, 및 시스템

Country Status (10)

Country Link
US (1) US7539727B2 (ko)
EP (1) EP1494411B1 (ko)
JP (1) JP4515839B2 (ko)
KR (1) KR101076857B1 (ko)
CN (1) CN100499596C (ko)
AT (1) ATE481803T1 (ko)
BR (1) BRPI0402530A (ko)
CA (1) CA2469503C (ko)
DE (1) DE602004029119D1 (ko)
MX (1) MXPA04006450A (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558828B1 (en) * 2003-05-29 2009-07-07 Aol Llc, A Delaware Limited Liability Company Enabling electronic logging using an instant message system
US7539727B2 (en) * 2003-07-01 2009-05-26 Microsoft Corporation Instant messaging object store
US7363378B2 (en) 2003-07-01 2008-04-22 Microsoft Corporation Transport system for instant messaging
US7484175B2 (en) * 2003-09-30 2009-01-27 International Business Machines Corporation Method and apparatus for increasing personability of instant messaging with user images
US8171084B2 (en) * 2004-01-20 2012-05-01 Microsoft Corporation Custom emoticons
US7430720B2 (en) * 2004-03-05 2008-09-30 America Online, Inc. System and method for preventing screen-scrapers from extracting user screen names
EP1725948A4 (en) * 2004-03-08 2013-01-16 First Oversi Ltd METHOD AND DEVICE FOR PEER TO PEER FILE SHARING
US7933958B2 (en) * 2004-06-08 2011-04-26 International Business Machines Corporation Real-time blog interaction
KR100456487B1 (ko) * 2004-08-02 2004-11-09 엔에이치엔(주) 개인 아이콘 제공 시스템 및 그 방법
US7433700B2 (en) 2004-11-12 2008-10-07 Microsoft Corporation Strategies for peer-to-peer instant messaging
US20060195532A1 (en) * 2005-02-28 2006-08-31 Microsoft Corporation Client-side presence documentation
US7529255B2 (en) 2005-04-21 2009-05-05 Microsoft Corporation Peer-to-peer multicasting using multiple transport protocols
US8161005B1 (en) 2005-06-30 2012-04-17 Emc Corporation Efficient index processing
US7966292B1 (en) 2005-06-30 2011-06-21 Emc Corporation Index processing
US8156079B1 (en) * 2005-06-30 2012-04-10 Emc Corporation System and method for index processing
US7698325B1 (en) 2005-09-30 2010-04-13 Emc Corporation Index processing for legacy systems
US7627609B1 (en) 2005-09-30 2009-12-01 Emc Corporation Index processing using transformed values
US7752211B1 (en) 2005-09-30 2010-07-06 Emc Corporation Adaptive index processing
CN101346949B (zh) * 2005-10-21 2013-07-03 捷讯研究有限公司 即时消息设备/服务器协议
US8520850B2 (en) * 2006-10-20 2013-08-27 Time Warner Cable Enterprises Llc Downloadable security and protection methods and apparatus
SG145583A1 (en) * 2007-02-22 2008-09-29 Yokogawa Electric Corp System for managing information in a mesh network
CN101257411B (zh) * 2007-03-02 2011-04-13 华硕电脑股份有限公司 实时通信的监控方法与系统
DE102007010789A1 (de) 2007-03-02 2008-09-04 Deutsche Thomson Ohg Verfahren zum Betreiben eines Netzwerkes sowie lokales Netzwerk und Netzwerkkomponente
US9275401B2 (en) * 2007-09-06 2016-03-01 Adobe Systems Incorporated Tamper resistant video rendering
JP4607937B2 (ja) * 2007-10-31 2011-01-05 株式会社東芝 キャッシュ方法及びキャッシュ装置
JP4607936B2 (ja) * 2007-10-31 2011-01-05 株式会社東芝 データ転送方法及びデータ転送システム
US7916863B2 (en) * 2007-11-30 2011-03-29 Hewlett-Packard Development Company, L.P. Security printing method and system for enhancing security printing
TWI395139B (zh) * 2009-05-27 2013-05-01 Apacer Technology Inc 電子裝置及其開機方法
KR101626117B1 (ko) * 2009-06-22 2016-05-31 삼성전자주식회사 클라우드 스토리지를 제공하는 클라이언트, 중개 서버 및 방법
US8121993B2 (en) * 2009-10-28 2012-02-21 Oracle America, Inc. Data sharing and recovery within a network of untrusted storage devices using data object fingerprinting
US8621213B2 (en) 2010-06-08 2013-12-31 Merge Healthcare, Inc. Remote control of medical devices using instant messaging infrastructure
US8627411B2 (en) 2010-06-17 2014-01-07 Microsoft Corporation Techniques to share binary content
US9679404B2 (en) 2010-12-23 2017-06-13 Microsoft Technology Licensing, Llc Techniques for dynamic layout of presentation tiles on a grid
US20120166953A1 (en) * 2010-12-23 2012-06-28 Microsoft Corporation Techniques for electronic aggregation of information
US9436685B2 (en) 2010-12-23 2016-09-06 Microsoft Technology Licensing, Llc Techniques for electronic aggregation of information
US9715485B2 (en) 2011-03-28 2017-07-25 Microsoft Technology Licensing, Llc Techniques for electronic aggregation of information
US20130254163A1 (en) * 2012-01-10 2013-09-26 Bret SAVAGE Cloud-based distributed data system
KR101295209B1 (ko) * 2012-02-01 2013-09-12 엔에이치엔(주) 클라우드 서버와의 양방향 연동을 통해 파일 공유를 제공하는 그룹 메시징 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
US8938428B1 (en) 2012-04-16 2015-01-20 Emc Corporation Systems and methods for efficiently locating object names in a large index of records containing object names
US10212046B2 (en) * 2012-09-06 2019-02-19 Intel Corporation Avatar representation of users within proximity using approved avatars
US10708203B2 (en) * 2014-06-25 2020-07-07 Convergence Acceleration Solutions, Llc Systems and methods for indicating emotions through electronic self-portraits

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434568B1 (en) 1999-08-31 2002-08-13 Accenture Llp Information services patterns in a netcentric environment
US20020184309A1 (en) 2001-05-30 2002-12-05 Daniel Danker Systems and methods for interfacing with a user in instant messaging

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5278955A (en) 1990-06-18 1994-01-11 International Business Machines Corporation Open systems mail handling capability in a multi-user environment
US5446888A (en) 1994-01-14 1995-08-29 Pyne; Charles F. Remote file transfer method and apparatus
JPH07311704A (ja) * 1994-05-19 1995-11-28 Fujitsu Ltd ディレクトリシステム
US7013327B1 (en) 1996-02-16 2006-03-14 G&H Nevada -Tek Method and apparatus for computing within a wide area network
US5943478A (en) 1997-04-04 1999-08-24 Flash Communications, Inc. System for immediate popup messaging across the internet
US6003088A (en) 1997-08-29 1999-12-14 International Business Machines Corporation Blocking IP datagrams in a multi-path channel point-to-point environment
US5987515A (en) 1997-08-29 1999-11-16 International Business Machines Corporation Internet protocol assists using multi-path channel protocol
US6052531A (en) 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US6292880B1 (en) * 1998-04-15 2001-09-18 Inktomi Corporation Alias-free content-indexed object cache
US6252588B1 (en) 1998-06-16 2001-06-26 Zentek Technology, Inc. Method and apparatus for providing an audio visual e-mail system
US6463078B1 (en) 1998-07-22 2002-10-08 Microsoft Corporation Method for switching protocols transparently in multi-user applications
US6490615B1 (en) 1998-11-20 2002-12-03 International Business Machines Corporation Scalable cache
WO2000065800A1 (en) * 1999-04-26 2000-11-02 Nokia Mobile Phones Limited Radio terminal for browsing the internet
TW428146B (en) 1999-05-05 2001-04-01 Inventec Corp Data file updating method by increment
US7286115B2 (en) 2000-05-26 2007-10-23 Tegic Communications, Inc. Directional input system with automatic correction
US6549937B1 (en) 1999-07-21 2003-04-15 Microsoft Corporation System and method for multi-protocol communication in a computer network
US6535867B1 (en) * 1999-09-29 2003-03-18 Christopher J. F. Waters System and method for accessing external memory using hash functions in a resource limited device
JP2001175550A (ja) 1999-12-07 2001-06-29 Kizna.Com Inc クライアントサーバシステム及びクライアントサーバシステムのデータ伝送方法並びにそのプログラムを記録した媒体
US6993559B2 (en) 2000-02-14 2006-01-31 Bigbow.Com, Inc. System, method, apparatus and computer program product for operating a web site by electronic mail
US7031956B1 (en) 2000-02-16 2006-04-18 Verizon Laboratories Inc. System and method for synchronizing and/or updating an existing relational database with supplemental XML data
US6594665B1 (en) * 2000-02-18 2003-07-15 Intel Corporation Storing hashed values of data in media to allow faster searches and comparison of data
EP1130869B1 (en) 2000-03-01 2005-06-01 Sony International (Europe) GmbH Management of user profile data
AU2001245930A1 (en) 2000-03-22 2001-10-03 Omnipod, Inc. Integrated system and method of providing online access to files and information
US6453294B1 (en) 2000-05-31 2002-09-17 International Business Machines Corporation Dynamic destination-determined multimedia avatars for interactive on-line communications
AU2001265407A1 (en) 2000-05-31 2001-12-11 Snip, Llc Method and system for instant messaging
JP2004505363A (ja) 2000-07-25 2004-02-19 アメリカ オンライン インコーポレーテッド ビデオ・メッセージング
US20020036990A1 (en) 2000-09-11 2002-03-28 Ben Chodor Still picture capture, editing and distribution system utilizing a publicly accessible wide area network
US7222184B2 (en) 2000-11-29 2007-05-22 Ncr Corporation Method of downloading web content to a network kiosk in advance
KR100377936B1 (ko) 2000-12-16 2003-03-29 삼성전자주식회사 이동통신 단말기의 감정 아이콘 입력방법
WO2002057917A2 (en) 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US20020107925A1 (en) 2001-02-05 2002-08-08 Robert Goldschneider Method and system for e-mail management
US20020194006A1 (en) 2001-03-29 2002-12-19 Koninklijke Philips Electronics N.V. Text to visual speech system and method incorporating facial emotions
US7080139B1 (en) 2001-04-24 2006-07-18 Fatbubble, Inc Method and apparatus for selectively sharing and passively tracking communication device experiences
US7171415B2 (en) 2001-05-04 2007-01-30 Sun Microsystems, Inc. Distributed information discovery through searching selected registered information providers
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7149189B2 (en) 2001-07-17 2006-12-12 Mcafee, Inc. Network data retrieval and filter systems and methods
US6987991B2 (en) 2001-08-17 2006-01-17 Wildseed Ltd. Emoticon input method and apparatus
US7765484B2 (en) 2001-09-28 2010-07-27 Aol Inc. Passive personalization of lists
NO315679B1 (no) * 2001-10-19 2003-10-06 Dmates As Rik kommunikasjon over internett
US7233979B2 (en) 2002-03-14 2007-06-19 Microsoft Corporation Instant messaging session invite for arranging peer-to-peer communication between applications
US7203356B2 (en) * 2002-04-11 2007-04-10 Canesta, Inc. Subject segmentation and tracking using 3D sensing technology for video compression in multimedia applications
US6629793B1 (en) 2002-04-26 2003-10-07 Westie Intellectual Properties Limited Partnership Emoticon keyboard
US7779076B2 (en) * 2002-05-31 2010-08-17 Aol Inc. Instant messaging personalization
US7689649B2 (en) * 2002-05-31 2010-03-30 Aol Inc. Rendering destination instant messaging personalization items before communicating with destination
US20030225848A1 (en) * 2002-05-31 2003-12-04 Brian Heikes Remote instant messaging personalization items
US7552204B2 (en) 2002-05-15 2009-06-23 Microsoft Corporation Method and system for supporting the communication of presence information among computing devices of a network
US20030217142A1 (en) 2002-05-15 2003-11-20 Microsoft Corporation Method and system for supporting the communication of presence information regarding one or more telephony devices
WO2004004139A2 (en) 2002-06-26 2004-01-08 Yahoo Inc. System and method for communicating images between intercommunicating users
US7353253B1 (en) 2002-10-07 2008-04-01 Webex Communicatons, Inc. Peer-to-peer messaging system
US7774410B2 (en) 2002-11-18 2010-08-10 Aol Inc. Handling a multimedia object associated with an electronic message
US7289520B2 (en) * 2002-11-20 2007-10-30 Hewlett-Packard Development Company, L.P. Method, apparatus, and system for expressway routing among peers
US7185285B2 (en) 2003-02-19 2007-02-27 Microsoft Corporation User interface and content enhancements for real-time communication
US7296223B2 (en) 2003-06-27 2007-11-13 Xerox Corporation System and method for structured document authoring
WO2005017660A2 (en) 2003-07-01 2005-02-24 Apple Computer, Inc. Peer-to-peer content sharing
US7539727B2 (en) * 2003-07-01 2009-05-26 Microsoft Corporation Instant messaging object store
US20050027839A1 (en) 2003-07-31 2005-02-03 International Business Machiness Corporation Method, system and program product for dynamic transmission in a messaging session
US7437374B2 (en) 2004-02-10 2008-10-14 International Business Machines Corporation Efficient XML schema validation of XML fragments using annotated automaton encoding
US20060015560A1 (en) * 2004-05-11 2006-01-19 Microsoft Corporation Multi-sensory emoticons in a communication system
US20050273472A1 (en) 2004-06-04 2005-12-08 Prakash Reddy Verifying incremental updates to hierarchicaly structured information
US7437364B1 (en) 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US7302270B1 (en) 2004-08-02 2007-11-27 Cisco Technology, Inc. Time interval processing and annotation in presence systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434568B1 (en) 1999-08-31 2002-08-13 Accenture Llp Information services patterns in a netcentric environment
US20020184309A1 (en) 2001-05-30 2002-12-05 Daniel Danker Systems and methods for interfacing with a user in instant messaging

Also Published As

Publication number Publication date
US7539727B2 (en) 2009-05-26
US20050004993A1 (en) 2005-01-06
JP4515839B2 (ja) 2010-08-04
CN1578279A (zh) 2005-02-09
DE602004029119D1 (de) 2010-10-28
CN100499596C (zh) 2009-06-10
ATE481803T1 (de) 2010-10-15
KR20050004060A (ko) 2005-01-12
JP2005025759A (ja) 2005-01-27
MXPA04006450A (es) 2005-08-19
EP1494411A1 (en) 2005-01-05
CA2469503C (en) 2011-12-13
BRPI0402530A (pt) 2005-05-24
EP1494411B1 (en) 2010-09-15
CA2469503A1 (en) 2005-01-01

Similar Documents

Publication Publication Date Title
KR101076857B1 (ko) 오브젝트 데이터 통신 방법, 컴퓨터 판독가능 저장매체, 및 시스템
US11509618B2 (en) Maintaining a message thread with opt-in permanence for entries
US8413055B2 (en) Methods and systems for customizing and embedding widgets in instant messages
US6256666B1 (en) Method and system for remotely managing electronic mail attachments
KR102450303B1 (ko) 엔트리들을 위한 옵트-인 영속성을 갖는 메시지 스레드를 유지하는 장치 및 방법
US7080124B1 (en) Digital media resource messaging
US7401158B2 (en) Apparatus and method for instant messaging collaboration
KR101545912B1 (ko) 인스턴트 메시징의 융통성있는 확장된 프리젠스 문서능력을 용이하게 하기 위한 프로세서 액세스가능 매체 및방법
US7571228B2 (en) Contact management in a serverless peer-to-peer system
US20060168012A1 (en) Method and system for electronic messaging via distributed computing networks
US20030177194A1 (en) Data replication system and method
US7831673B1 (en) Methods and systems for processing offline chat messages
KR101544518B1 (ko) 마이크로블로그 메시지를 공유하는 방법, 장치 및 시스템
US9832148B2 (en) System and method for attaching a remotely stored attachment to an email
US20060242235A1 (en) Presence monitoring in a serverless peer-to-peer system
US20090094335A1 (en) Eliminating Redundancy of Attachments in Email Responses
CN109565518B (zh) 用于可互换的内容取回的方法和系统
JP2007501969A (ja) 共同制作電子メール文書を作成するための方法、システム、およびコンピュータ・プログラム(共同制作電子メール)
CN102138156A (zh) 维持即时消息接发应用程序中的群
US8719357B2 (en) Method and apparatus for managing message
US20090070410A1 (en) Managing Presence Information Of A Presentity
US20190075171A1 (en) System and Method for Generating Marker Data
US8826026B2 (en) Systems and methods for tracking electronic files in computer networks using electronic signatures
US7970836B1 (en) Method and apparatus for parental control of electronic messaging contacts for a child
CN109347973B (zh) 一种客户端即时通讯方法及系统

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
LAPS Lapse due to unpaid annual fee