KR20020012594A - 풋프린트 장치를 위한 정시공급 서비스 - Google Patents

풋프린트 장치를 위한 정시공급 서비스 Download PDF

Info

Publication number
KR20020012594A
KR20020012594A KR1020017015700A KR20017015700A KR20020012594A KR 20020012594 A KR20020012594 A KR 20020012594A KR 1020017015700 A KR1020017015700 A KR 1020017015700A KR 20017015700 A KR20017015700 A KR 20017015700A KR 20020012594 A KR20020012594 A KR 20020012594A
Authority
KR
South Korea
Prior art keywords
program module
module
software
small footprint
service
Prior art date
Application number
KR1020017015700A
Other languages
English (en)
Inventor
마크 베이커
조쉬 듀간
Original Assignee
케네쓰 올센
선 마이크로시스템즈, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 케네쓰 올센, 선 마이크로시스템즈, 인코포레이티드 filed Critical 케네쓰 올센
Publication of KR20020012594A publication Critical patent/KR20020012594A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/02Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network
    • 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2805Home Audio Video Interoperability [HAVI] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2809Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/284Home automation networks characterised by the type of medium used
    • H04L2012/2841Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

공유가능한 프로그램 모듈을 지원하는 경량의 수용구조이다. 상기 수용구조는 광범위한 자원이 제한된 피디에이(PDA), 소형 휴대전화, 지구측위시스템(GPS) 수신기 등과 같은 소형 풋프린트 장치에서 실행하기에 충분히 컴팩트하며 효율적이다. 수용구조는 모듈 등록, 순람, 인스턴스 추적 등과 같은 모듈 관리 서비스를 제공한다. 상기 구조에 의해 제공되는 기본적인 기능성은 상기 구조에 시스템 모듈을 부가시킴으로써 확장가능하다. 공유가능한 프로그램 모듈은 서비스를 실행할 수 있다. 모듈은 서비스 제공자 및 다른 서비스 모듈의 고객 양자일 수 있다. 상기 시스템의 경량적이고 효율적인 성질로 인하여 웹프라우저, 이메일 고객 등과 같은 데스크탑 컴퓨터 시스템과 전통적으로 관련된 애플리케이션 프로그램이 소형 풋프린트 장치상에서 실행될 수 있다. 상기 수용구조상에서 구축되는 온-디바이스 애플리케이션/서비스는 네트워크 서비스 제공자상에서 실행되는 오프-디바이스 서비스(off-device service)와 통합될 수 있다.

Description

풋프린트 장치를 위한 정시공급 서비스{JUST-IN-TIME SERVICES FOR SMALL FOOTPRINT DEVICES}
"스마트(smart)" 소형 풋프린트 장치의 분야는 신속하게 성장하고 변화하고 있다. 소형 풋프린트 장치는 포켓용 컴퓨터, 피디에이(PDA), 휴대폰, 지구측위시스템(GPS) 수신기, 게임 콘솔 및 그와 같은 보다 많은 장치를 포함한다. 이 장치들은 더욱 영리해지고 보다 상호연결화되고 있다. 주식회사 선 마이크로시스템즈의 지니(Jini;등록상표)와 같은 기술 및 개방 서비스 게이트웨이 이니셔티브(OSGI;Open Service Gateway Initiative)와 같은 이니셔티브(initiative)는 컴퓨터 네트워크의 전통적인 개념을 확장시켜 소형 풋프린트 장치를 포함하게 한다.
이와 같이 증가되고 있는 장치 상호연결은 새로운 유형의 전산 서비스와 상호간의-장치에 기초하는 서비스와 내부적인-장치에 기초하는 서비스인 전산 서비스를 통합하는 새로운 방법의 필요성을 도입해 왔다. "서비스"는 사람, 애플리케이션, 또는 또다른 서비스에 의해 이용될 수 있는 장치로부터 액세스될 수 있거나 그 내부에서 실행되는 실체이다. 서비스의 개념은 광범위하며 많은 상이한 척도로 고려될 수 있다. 예를 들어, 서비스는 공유되는 프린팅, 이메일, 전화통신 등과 같은 잘 알려진 네트워크에 근거하는 서비스를 포함한다. 서비스는 또한 지역 네트워크(local network)내의 장치의 전력소모를 제어할 수 있는 에너지 관리 서비스, 오류 발생시 서비스 기술자에게 정보를 보낼 수 있도록 하는 진단 서비스, 건강 전문가에게 긴급상황을 즉각적으로 알리는 건강-모니터링 서비스 등와 같은 덜 알려진 예를 포함할 수도 있다.
서비스는 또한 지역적인 기계나 장치내에 배치되고 실행될 수 있는 모듈 또는 애플리케이션을 포함한다. 예를 들어, 지역 애플리케이션 프로그램은 달력(calendar) 서비스, 접촉 리스트(contact list) 서비스, 북마크(bookmark) 서비스 등을 활용할 수도 있다. 이 예에서, 애플리케이션 프로그램은 이 서비스들을 함께 이용하여 사용자로 하여금 접촉 리스트로부터 한 사람을 선택할 수 있게 하고, 그 사람과의 만남을 위한 약속시간을 기록할 수 있게 하고, 그 약속 기재사항을 쉽게 액세스하기 위한 북마크를 만들게 할 수 있다.
오늘날, 단일의 소형 풋프린트 장치에서 다중의 서비스와 애플리케이션을 함께 실행하는 것은 더욱 일반적으로 되어가고 있다. 그러나, 소형 풋프린트 장치에서는 메모리, 처리능력 및 그밖의 자원들이 일반적으로 매우 제한적이기 때문에, 요구되는 서비스와 애플리케이션의 통합을 달성하기 위해서는 특수화된 경량의 소프트웨어 구조(S/W framework)가 필요하다. 또한, 상기 구성은 모든 종류의 소형풋프린트 장치에 대해 모든 유형의 서비스와 애플리케이션을 위한 지원을 제공할 수 있을 정도로 유연성 있으며 확장가능할 것이 요구된다. 더 나아가서, 상기 구조(framework)는 지니(등록상표) 네트워크내의 장치에 이용될 수 있는 서비스와 같은 오프-디바이스(off-device) 서비스에 대해 호환성있고 그와 통합되어야 한다는 목표가 있다. 여기에서, 소형 풋프린트 장치에서 실행되는 애플리케이션/서비스를 위한 경량의, 확장가능한, 네트워크 서비스와 호환성있는 수용구조(containment framework)가 설명된다.
본 발명은 포켓용 컴퓨터, 피디에이(PDA), 휴대전화 등과 같이 자원-제한적인 소형 풋프린트 장치에 관한 것이다. 보다 상세하게는, 본 발명은 소형 풋프린트 장치에서 공유할 수 있는 서비스를 지원하는 경량의 구조를 포함한다.
본 발명의 다른 목적 및 이점은 다음의 상세한 설명과 첨부 도면을 참조하여 읽으면 분명해 질 것이다.
도 1은 전형적인 소형 풋프린트 장치의 하드웨어 아키텍쳐를 나타내는 블록도,
도 2는 수용구조내의 애플리케이션과 서비스를 실행하고 있는 시스템과 관련된 하드웨어/소프트웨어 층의 전형적인 계층구조(hierarchy)를 나타내는 도면,
도 3은 지역 서비스에 근거한 네트워크에 연결되는 수용구조내의 애플리케이션/서비스를 실행하고 있는 소형 풋프린트 장치를 포함하는 예시적 네트워크를 나타내는 도면,
도 4는 서비스 제공자가 순람(順覽) 서비스를 찾고 있는, 발견 과정을 나타내는 도면,
도 5는 서비스 제공자가 서비스를 순람 서비스로 등록하는, 결합 과정(join process)을 나타내는 도면,
도 6은 순람 과정(lookup process)을 나타내는 도면으로서, 고객이 순람 서비스로부터 서비스를 요청하며,
도 7은 고객이 순람 서비스로부터 수신된 서비스 객체(service object)를 사용하여 서비스를 호출하는, 서비스 호출 과정(service invocation process)을 나타내는 도면,
도 8은 수용구조의 기본적인 아키텍쳐를 나타내는 추상적 블록도,
도 9 및 10은 계층적 수용 환경을 시뮬레이션하기 위해 수용구조내의 모듈 요청 청취자(module request listener)의 이용을 나타내는 도면,
도 11은 모듈을 함께 그룹짓기 위한 꾸러미(parcels)를 이용하는 것을 나타내는 도면,
도 12는 중앙 구조 인스턴스가 고객 모듈로부터 서비스 모듈을 위한 순람 요청을 수신할 때 수행할 수 있는 전형적인 순람(順覽;lookup) 과정을 나타내는 흐름도,
도 13은 모듈 해제과정(module release process)을 나타내는 흐름도,
본 발명은 소형 풋프린트 장치내에서 프로그램 모듈을 수용하고 관리하는 시스템 및 방법을 포함한다. 본 발명은 공유가능한 모듈을 위한 수용구조(containment framework)를 포함한다. 수용구조의 일례는 요크(York) 1.1 이라고 호칭된다. 수용구조는 모듈 등록, 순람(順覽), 인스턴스 추적 등을 가능하게 한다. 수용구조내의 모듈들은 다른 모듈들에 의하여 서비스로 이용될 수 있다. 수용구조는 동적일 수 있으며, 요구되거나 필요한 바에 따라 모듈이 등록되고 로딩될 수 있도록 한다.
모듈들은 꾸러미들로 그룹지어지고 유닛으로서 관리될 수 있다. 꾸러미들은 다양한 목적에 대해 역할을 할 수 있다. 예를 들어, 많은 모듈의 실행시간 환경(runtime context)은 그것이 기원하는 꾸러미에 의해 결정될 수 있다. 또한, 애플리케이션은 설치 및 업그레이드 절차를 포함하는, 꾸러미에 의해 운영될 수 있다. 또한, 꾸러미 시스템은 다목적 개발의 지원을 가능하게 한다(즉, 개발 그룹은꾸러미들을 이용하여, 공통의 라이브러리에 대한 의존을 중단하지 않고, 상이한 플랫폼 또는 시스템을 위한 개발을 동시에 할 수 있다).
위에서 설명된 바와 같이, 소형 풋프린트 장치를 위한 수용구조는 경량이어야 한다. 본 수용구조는 매우 적은 메모리를 가진 장치에서 기능을 할 수 있다. 예를 들어, 일례로 수용구조는 불과 300KB의 쓰기 가능한 메모리를 가진 장치에서 기능을 할 수 있으면서도 여러 모듈이 작동하기 위한 충분한 메모리 공간을 남길 수 있다. 또한, 그 수용구조는 16MHz-클래스 칩을 가진 소형 풋프린트 장치와 같은 낮은 처리 능력을 가진 장치에 대응할 수 있다.
경량의 지위를 이루는데 도움을 주는 수용구조의 한 측면은, 비계층적인 구조라는 점이다. 계층적 수용은, 구조에 있어서 매우 유용한 특성일 수 있다. 모듈을 그룹짓고 모듈들로 하여금 서로간의 서비스를 발견하여 이용할 수 있도록 하는 표준적 방법을 제공하기 때문에, 계층적 수용은 그것을 수행하는 데 요구되는 자원의 견제에서 볼 때, 달성하기에 일반적으로 비용이 많이 든다. 본 수용구조는, 총경비의 추가없이, 계층적 수용과 관련된 많은 이점을 제공한다. 모듈들은 다른 모듈들에 의한 모듈 순람요청을 가로챌 수 있으며, 따라서 그것들이 요청하는 모듈의 환경을 맞추도록 할 수 있다.
본 수용구조는 공통 표준(common standards)에 근거할 수 있다. 예를 들어, 일례로 수용구조는 순수한 자바(등록상표)로 작성될 수 있고 퍼스널 자바(Personal Java;등록상표) 3.0 애플리케이션 환경에 완벽하게 호환될 수 있고 그 안에서 실행될 수 있다. 퍼스널 자바(등록상표)는 가정, 사무실 및 차량용 소비자 장치를 위해 특별히 설계된 자바(등록상표) 애플리케이션 환경이다. 그것은 자바(등록상표) 가상 기계(Java Virtual Machine;JVM) 및 자바(등록상표) 애플리케이션 프로그래밍 인터페이스(API)을 포함하며, 핵심적인 API와 선택적인 API 및 클래스 라이브러리를 포함한다. 또한, 퍼스널 자바(등록상표) API는 자원이 한정된 환경에서 소비자 애플리케이션에 의해 요청되는 특별한 특징을 가지고 있다. 본 수용구조는 또한 하드웨어 롬(ROM)에 포함될 수 있거나 또는 네이티브 코드로 컴파일될 수 있다.
본 수용구조는 공통 표준(common standards)에 근거할 수 있기 때문에, 다른 장치 유형 및 다른 판매자에 의해 제조된 장치에 쉽게 연결될 수 있으며, 이는 제품출하시간과 개발비용을 크게 감소시킨다. 이 구조의 확장가능한 아키텍쳐는 또한 상이한 장치나 서비스를 위해 필요하거나 요구되는 만큼, 새로운 모듈이 구조에 도입되도록 할 수 있다. 본 아키텍쳐는 또한 주문맞춤이 가능하고 조절가능한 사용자 인터페이스를 가능하게 할 수도 있다. 예를 들어, 애플리케이션의 사용자 인터페이스 콤포넌트는 상이한 장치를 위한 디스플레이 유형에 적절하도록 교환될 수 있다.
아래에 보다 상세하게 설명되는 바와 같이, 본 수용구조는 관련된 시스템 데이터뿐 아니라 로딩된 모듈의 리스트를 보유한다. 모듈은 예컨대, 중앙 구조 인스턴스(central framework instance)의 방법을 호출함으로써, 일반적으로 모듈 리스트나 시스템 데이터를 간접적으로만 액세스한다. 그러나, 시스템 모듈로 불리우는 어떤 모듈들은 시스템 데이터를 그들 스스로 액세스하거나 수정할 수 있는 능력을 가질 수 있다. 핵심적 데이터에 대한 이러한 유형의 직접 데이터 액세스는 수용구조를 경량으로 유지하는데 도움을 준다. 시스템 모듈은 핵심적 시스템 데이터로의 접근수단을 가지고 있기 때문에, 중앙 구조 인스턴스에 의해 수행되는 기본적인 모듈 관리를 넘어서는 어떠한 필요한 또는 요청되는 확장된 기능성이라도 적절한 시스템 모듈을 추가함으로써, 시스템에 도입될 수 있다. 따라서, 수용구조는 또한 확장성도 매우 크다.
시스템은 다른 모듈이 이용할 수 있는 핵심적 서비스 모듈 세트를 포함할 수 있다. 이 핵심적 서비스들은 위의 예에서 설명된 달력, 접촉 리스트 및 북마크 서비스와 같은 서비스들을 포함할 수 있다. 그러한 핵심 서비스와 함께, 수용구조는 소형 풋프린트 장치에서의 애플리케이션과 서비스의 통합된 모음을 실행하기 위한 완전한 아키텍쳐를 제공한다. 예를 들어, (주)선 마이크로시스템즈(Sun Microsystems,Inc.)로부터 구할 수 있는 퍼스널 애플리케이션 모음은 그 수용구조의 일실시예의 환경에서 구축되었다. 퍼스널 애플리케이션 모음은 퍼스널 애플리케이션 브라우저(Browser), 퍼스널 애플리케이션 이메일 고객(Email Client) 및 퍼스널 오거나이저(Personal Organizer)를 포함한, 컴팩트하고 메모리-효율적인 애플리케이션의 통합 세트를 포함한다.
본 발명의 시스템 및 방법이 소형 풋프린트 장치에서 실행되는 관리 모듈과 관련될 수 있더라도, 그것들이 이 용도에 한정되는 것은 아니다. 그와는 반대로, 본 발명의 많은 측면은 그와 같은 큰 자원 제한을 가지지 않는 시스템에서도 유용할 수 있다. 다른 측면에서는, 본 수용구조의 실시예들은 상기한 소형 풋프린트 장치보다 자원이 더욱 제한적인 환경으로 쉽게 전환되도록 설계될 수 있다. 예를들어, 수용구조의 실시예는 극소의 수정으로 또는 아무런 수정 없이 임베디드 자바(등록상표)(Embedded Java) 애플리케이션 환경에서 실행될 수 있다.
도 1 - 하드웨어 아키텍쳐 블록도
도 1은 전형적인 소형 풋프린트 장치의 하드웨어 아키텍쳐를 나타내는 블록도이다. 여기에서 사용되는 바와 같이, 소형 풋프린트 장치는 프로세서와 시스템 메모리와 같은 전산 자원을 포함하지만, 전형적인 데스크탑 컴퓨터가 가지고 있는 것보다 하나 이상의 이러한 자원에 대해 상당히 많은 구속성을 가지는 하드웨어 장치이다. 예를 들어, 소형 풋프린트 장치는 2메가 또는 그보다 적은 메모리를 가질 수 있는 반면에, 전형적인 데스크탑 시스템은 64 메가바이트 이상을 가질 수 있다. 또한, 전형적인 풋 프린트 장치는 프로세서 유형 또는 프로세서 속도 중 어느 하나의 견지에서 또는 양자의 견지에서, 전형적인 데스크탑 전산 시스템보다 상당히 낮은 처리 능력을 가질 수 있다. 예를 들어, 피디에이(PDA) 장치는 16MHz 프로세서를 가질 수 있는 반면에, 전형적인 데스크탑 시스템은 100 MHz 또는 그 이상의 프로세서 속도를 가질 수 있다. 또한, 전형적인 소형 풋프린트 장치는 데스크탑 전산 시스템의 디스플레이 스크린보다 상당히 적은 디스플레이 사이즈를 가질 수 있다. 예를 들어, 데스크탑 모니터의 디스플레이 스크린과 비교하여 포켓용 컴퓨터의 디스플레이 스크린은 일반적으로 작다.
여기에서 주어진 특정 숫자는 예시적일 뿐이며 비교의 목적을 위해서 이용되는 점에 주의하라. 예를 들어, 위에서 설명한 2메가바이트의 전형적인 모습보다 많은 메모리를 가지고 있지만, 8 메가바이트 이상을 가지는 피디에이(PDA)도 소형 풋프린트 장치에 해당할 수 있다. 소형 풋프린트 장치는 또한, 위에서 설명된 메모리, 프로세서, 디스플레이 사이즈 자원 외에 전형적인 데스크탑 전산 시스템에 비하여 다른 자원 유형에 대한 제한을 가지고 있다. 예를 들어, 전형적인 소형 풋프린트 장치는 하드디스크를 가지지 않거나, 네트워크 연결이 없거나, 간헐적인 네트워크 연결이 없거나, 또는 무선 네트워크 연결을 가질 수 있다.
많은 소형 풋프린트 장치는 데스크탑 컴퓨터에 비하여 휴대가능하고 그리고/또는 소형이지만, 반드시 그래야만 하는 것은 아니다. 또한, 많은 소형 풋프린트 장치들은 기본적으로 또는 오직 배터리에 의해 동작된다. 또한, 소형 풋프린트 장치는 일반적으로 전형적인 데스크탑 전산 시스템보다 더 제한되거나 국한된 범위의 사용 가능성을 가지고 있다. 소형 풋프린트 장치는 포켓용 컴퓨터, 착용가능한 장치(예컨대, 손목시계형 컴퓨터), 피디에이(PDA), "스마트" 휴대전화, 셋톱 박스,게임 콘솔, 지구측위시스템(GPS) 유닛, 전자 텍스트북 장치 등의 예를 포함하지만 그에 국한되지는 않는다. 소비자 장치의 새로운 클래스가 급속히 출현하고 있기 때문에, 소형 풋프린트 장치를 총망라한 리스트를 제공하는 것은 불가능하다. 그러나, 용어 "소형 풋프린트 장치"는 위에서 설명된 용어의 사상과 범위내에 합리적으로 포함되는 바와 같은 장치를 포함하고자 하는 것이다.
도 1은 전형적인 소형 풋프린트 장치의 블록도를 나타낸다.
소형 풋프린트 장치는 필요한 바에 따라, 다양한 상이한 아키텍쳐를 가질 수 있다는 점에 유의해야 한다. 본 발명의 동작을 이해하는데 필요하지 않은 하드웨어 요소는 간결을 위해 생략되었다.
도 1에 나타낸 바와 같이, 소형 풋프린트 장치는 프로세서(100)를 포함한다. 프로세서(100)는 예컨대 펜티엄 클래스인 x86 프로세서, 파워PC 프로세서를 포함하는 다양한 유형 및 그밖의 보다 강력하지 않은 프로세서 또는 소형 풋프린트 장치를 위해 특별히 개발된 프로세서 중 어느 하나일 수도 있다. 프로세서(100)는 데스크탑 컴퓨터 클레스 프로세서에서 나타나는 것과 유사한 클럭 스피드 뿐 아니라 16MHz와 같은 저속을 포함하는, 다양한 클럭속도를 가질 수 있다.
또한, 도 1에서 상기 장치는 시스템 메모리(102)를 포함한다. 시스템 메모리(102)는 RAM 또는 ROM을 포함하여 다양한 유형의 메모리를 포함할 수 있다. 전형적은 소형 풋프린트 장치는 전형적인 데스크탑 컴퓨터 시스템에 비하여 매우 소형의 메모리 저장 공간을 가질 수 있다.
또한, 소형 풋프린트 장치는 하나 이상의 입력 메커니즘을 포함할 수 있다.입력 메커니즘(104)이 도 1에 나타나 있다. 입력 메커니즘(104)은 특정 장치에 적절한 다양한 유형 중 어떤 것이라도 될 수 있다. 예를 들면, 입력 메커니즘은 키패드, 마우스, 트랙볼, 터치 펜, 마이크로폰 등이 될 수 있다.
소형 풋프린트 장치는 또한 하나 이상의 디스플레이 메커니즘을 포함할 수 있다. 디스플레이(106)가 도 1에 나타나 있다. 그러나, 소형 풋프린트 장치는 디스플레이를 포함하지 않을 수 있으며, 오디오 스피커와 같은 다른 유형의 출력 메커니즘을 포함할 수 있다. 디스플레이 메커니즘(106)은 특정 장치에 적절한 다양한 유형 중 어떤 것이라도 될 수 있다. 스마트 휴대전화와 같이 전형적인 소형 풋프린트 장치를 위한 디스플레이 메커니즘은 데스크탑 컴퓨터 시스템의 디스플레이에 비교하여 소형일 수 있다.
도 2 - 하드웨어/소프트웨어 계층구조도
도 2는 수용구조내의 애플리케이션과 서비스를 실행하고 있는 시스템과 관련된 하드웨어/소프트웨어 층의 전형적인 계층구조를 나타낸다. 본 도면은 예시적이며, 특정 장치 또는 실행을 위해 적절하도록 다양한 층이 추가, 조합, 또는 생략될 수 있다.
도 2에 나타난 기저층은 장치 하드웨어층(120)으로서, 소프트웨어 시스템을 지원하기 위해 필요한 프로세서와 시스템 메모리와 같은 하드웨어 자원을 포함한다. 일례로, 도 1에 나타난 소형 풋프린트 하드웨어의 예와 같은 소형 풋프린트 장치의 하드웨어는 도 2에 나타난 하드웨어층(120)을 실행한다. 그러나, 다른 실시예에서, 하드웨어 층(120)은 스마트 카드와 같이 일반적인 소형 풋프린트 장치보다 더욱 자원 제한적인, 다른 유형의 장치에서도 실행할 수 있다.
도 2에 나타난 바와 같이, 하드웨어 층의 위의 다음 층은 운영체제층(122)이다. 본 기술분야에서 잘 알려진 바와 같이, 운영체제는 상기 장치에서 실행하는 장치 하드웨어와 소프트웨어 하드웨어 사이의 인터페이스층으로서 기능하며 입력/출력, 메모리 관리 등과 같은 저급 작업 관리자로서의 역할을 한다. 도 2에 나타난 운영체제(122)는 도 2에 나타난 보다 높은 층을 지원하는 어떠한 특정 운영체제일 수도 있다. 운영체제(122)는 소형 풋프린트 장치에서의 사용을 위한 적절하고 특별히 작성된 작고 효율적인 것일 수 있다. 예를 들어, 상기 운영체제(122)는 (주)선 마이크로시스템즈로부터 구입할 수 있는 자바(등록상표) OS 운영체제일 수 있다.
일례로, 수용구조는 하나 이상의 자바(등록상표) 클래스와 같은 자바(등록상표) 애플리케이션 환경에서 실행될 수 있다. 도 2에 나타낸 바와 같이, 자바(등록상표) 가상 기계층(124)과 자바(등록상표) 애플리케이션 프로그래밍 인터페이스(API) 클래스 라이브러리층(126)은 상기 운영체제의 다음 위에 있다. 이 두 층은 함께 자바(등록상표) 애플리케이션 환경 또는 자바(등록상표) 플랫폼을 구성한다. 수용구조를 수행하는 클래스는 자바(등록상표) 라이브러리(126)를 사용하여 구축될 수 있고 바이트 코드(bytecode)로 컴파일될 수 있다. 바이트 코드는 자바(등록상표) 가상 기계(124)에서 실행하는 명령어들이며, 운영체제(122) 및/또는 장치 하드웨어(120)와 상호작용한다.
일례로, 본 수용구조는 퍼스널 자바 자바(등록상표) 애플리케이션 환경에서 실행될 수 있는데, 이것은 최소의 시스템 자원을 요구하면서도 양호하게 잘 조절가능하고, 모듈식이며, 구성가능하도록 설계되는 자바(등록상표) 플랫폼이다. 퍼스널 자바(등록상표)는 핵심적이고 선택적인 API와 클랙스 라이브러리를 포함하는, 자바(등록상표) API의 서브셋 및 자바(등록상표) 가상 기계를 포함한다. 또한, 퍼스널 자바(등록상표) API는 자바(등록상표) 앱스트랙트 윈도우 툴킷(AWT)의 특별 버전과 같이, 자원-제한적 환경에서 소비자 애플리케이션에 의해 요구되어지는 특별한 특징을 가진다. 퍼스널 자바(등록상표) AWT 라이브러리는 소비자의 제품 시각 및 느낌에 따라 목표를 정하고 조율되며, 저해상도 디스플레이와 (마우스와 키보드 없는 장치를 위한 확장된 이벤트 모델을 통하여) 대체적 입력장치를 지원하는 그래픽과 윈도우 특성을 제공한다.
또 도 2를 참조하면, 본 수용구조(128)는 자바(등록상표) 플렛폼 층의 다음 윗층으로 나타난다. 위에서 언급한 바와 같이, 본 수용구조(128)는 또한 다른 플랫폼에 근거할 수 있다. 아래에 상세히 설명되는 바와 같이, 본 수용구조(128)는, 예컨대 모듈 등록(register), 순람(lookup), 인스턴스 추적(instance tracking) 등을 가능하게 함으로써, 프로그램 모듈을 관리한다. 모듈은 다양한 서비스를 제공할 수 있다. 본 수용구조(128)는 모듈들로 하여금 그들의 서비스를 이용하기 위해, 다른 모듈들을 요청하게 할 수 있다. 애플리케이션들은 다른 모듈들의 서비스를 활용하는 모듈로서 실행될 수 있다. 따라서, 본 수용구조(128)는 경량의, 확장가능한 서비스 및 애플리케이션 구조를 제공하며, 애플리케이션들이 공존하며 모듈의 코드 베이스를 공유하도록 한다.
다중의 프로그램 모듈이 협동하도록 하는 이러한 유형의 확장가능한 아키텍쳐는 소형 풋프린트 장치를 위해 중요한 개발이다. 소형 풋프린트 장치는 역사적으로 상대적으로 좁은 이용에 국한되어 왔다. 예를 들어, 휴대전화는 전화통화로만 사용되고 다른 용도로는 거의 사용되지 않았다. 그러나, 범용 프로세서, 대형 디스플레이 스크린 등을 가지는, 소형 풋프린트 장치가 더욱 "영리하게" 되도록 하는 다양한 기술이 개발됨에 따라, 소형 풋프린트 장치에서 이용되는 애플리케이션의 범위를 확장하는 것이 바람직하게 되었다.
본 수용구조는 일반적으로 데스크탑 전산환경과 관련된 애플리케이션 및 서비스의 유형이, 데스크탑 사용자들이 친숙한 방법으로, 소형 풋프린트 장치에서 함께 작동하게 한다. 도 2에 나타내고 위에서 설명한 바와 같이, 소형 풋프린트 장치에서 실행되는 서비스와 애플리케이션(130)은 수용구조층(128)에 구축되는 모듈로서 실행될 수 있다. 예를 들어, (주)선 마이크로시스템즈에서 구입할 수 있는 퍼스널 애플리케이션 모음은 수용구조(128)의 일례를 이용하여 구축된다. 퍼스널 애플리케이션 모음은 브라우저, 이메일 고객, 그리고 퍼스널 오거나이저와 같은 애플리케이션의 통합 세트를 포함한다.
도 2는 또한 본 수용구조(128)의 몇몇 실시예가 오프-디바이스(off-device) 서비스(132)를 온-디바이스(on-device) 애플리케이션/서비스(130)와 통합시킬 수 있는 능력를 나타낸다. 예를 들어, 본 수용구조(128)는 지니(등록상표) 네트워크와 같은 네트워크와 소형 풋프린트 장치 사이의 인터페이스를 제공할 수 있다. 소형 풋프린트 장치 시스템은 네트워크내의 다른 장치나 고객에 의해 사용되기 위한 서비스를 등록할 수 있다. 본 수용구조는 또한 소형 풋프린트 장치내부의 서비스와 애플리케이션이 다른 네트워크 장치에 의해 제공되는 서비스를 순람하고 사용할 수 있도록 한다. 소형 풋프린트 장치의 서비스를 네트워크 서비스와 통합하는 것은, 도 3에 대하여 아래에서 보다 상세히 설명된다.
도 3 - 7 : 예시적인 네트워크 장치와 서비스 연합
도 3은 본 수용구조내에서 애플리케이션/서비스를 실행하고 있는 소형 풋프린트 장치가 지역 서비스에 근거한 네트워크에 연결되는, 예시적인 네트워크를 나타낸다. 나타난 예에서, 본 수용구조(144)를 활용하고 있는 스마트 휴대전화(134)가 네트워크에 연결된다. 또한, 상기 네트워크에는 프린터(130)와 인터넷이 가능한 텔레비젼(132)이 부가되어 있다. 이 예에서, 프린터(130)와 텔레비젼(132) 장치들은 네트워크로 서비스를 송출(export)하도록 동작할 수 있고 네트워크상의 다른 장치의 서비스를 이용할 수 있다. 예를 들어, 프린터는 그 프린트 서비스(138)를 송출할 수 있고, 인터넷 텔레비젼은 그 프린트 서비스를 순란(lookup)하고 그것을 이용하여 웹 페이지를 프린트할 수 있다. 이러한 방법으로, 장치들과 서비스들의 연합을 용이하게 하기 위하여, 순람(順覽;lookup) 서비스(136)가 네트워크상에 배치된다. 순람 서비스(136)는 네트워크 서버와 같은 분리된 장치상에 거주할 수도 있다.
장치들과 서비스들의 연합은 다양한 방법으로 실행될 수 있다. 예를 들어,(주)선 마이크로시스템에서 구입할 수 있는, 지니(등록상표) 기술은 도 3에 나타낸 분포된 시스템의 유형을 가능하게 하는 콤포넌트 및 프로그래밍 모델을 가진다. 일례로, 도 3에 나타낸 지역 네트워크는 지니(등록상표) 네트워크일 수 있으며, 프린터(130)와 인터넷 텔레비젼(132)은 지니(등록상표)가 가능한 장치일 수 있다. 각 장치는 지니(등록상표) 네트워크 순람 서비스를 찾아내고 그것이 순람 서비스와 함께 제공하는 서비스를 등록한다. 순람 서비스는 서비스에 의하여 그 서비스를 실행하는 객체 세트에 제공되는 기능성을 지시하는 인터페이스들을 매핑(mapping)한다.
서비스 연합에 그 서비스들을 부가하기 위하여, 하나의 장치 또는 그밖의 서비스 제공자는 적절한 순람 서비스를 "발견" 프로토콜(discovery protocol)을 사용함으로써 위치를 찾아낼 수 있다. 도 4는 발견 과정(discovery process)을 나타낸다. 나타낸 바와 같이, 예컨대, 도 3에 나타낸 프린터(130)와 같은, 서비스 제공자(164)는 어떠한 순람 서비스라도 그들 자신을 식별하기 위해 지역 네트워크상에서 요청을 퍼뜨릴 수 있다.
일단 서비스 제공자(164)가 순람 서비스(160)의 위치를 찾아내면, 서비스 제공자(164)는 "결합" 프로토콜을 사용함으로써 순람 서비스(160)를 가지고 그 서비스를 등록할 수 있다. 도 5는 결합 과정을 나타낸다. 서비스 제공자(164)는 서비스를 호출하기 위해 고객이 이용할 수 있는 서비스 객체(service object)를 창제할 수 있다. 도 5에 나타낸 바와 같이, 제공되는 서비스를 위한 서비스 객체는, 제공되는 서비스의 이름이나 유형에 관한 정보를 담고 있는 특성 또는 서술자와 함께,순람 서비스(160) 안으로 로딩(loading)될 수 있다. 예를 들어, 지니(등록상표) 네트워크에서, 도 3에 나타난 프린터(130)는 프린트 서비스(138)를 위한 자바(등록상표) 프로그래밍 인터페이스를 포함하는 서비스 객체를 창제할 수 있다. 그러면, 프린터(130)는 순람 서비스(136)의 "등록" 방법(register method)을 호출할 수 있으며, 등록되는 서비스(138)가 프린트 서비스라는 것을 지정하는 특성, 프린팅 해상도, 가능한 용지 사이즈 등과 함께 이 서비스 객체를 전달한다.
일단 서비스 제공자(164)가 그 서비스들을 순람 서비스(160)에 결합시키면, 다른 네트워크 고객들은 그 서비스를 요청하고 이용할 수 있다. 서비스를 요청하는 과정, 호출되는 순람이 도 6에 나타나 있다. 순람 서비스를 발견한 후, 고객(162)은 요청된 서비스의 설명을 이용하여 순람 서비스(160)로부터 서비스를 요청할 수 있다. 순람 서비스(160)는 요청자에 의해 주어진 설명(description)을 순람 서비스에 결합한 서비스들에 조화시키도록 시도한다. 순람 서비스(160)는 이 조화를 수행하기 위하여 결합 과정 동안에 서비스 제공자(164)에 의해 보내진 서비스 특성을 이용할 수 있다. 조화가 발견되면, 순람 서비스(160)는 고객(162)에게 적절한 서비스 객체를 제공한다. 예를 들어, 요청받은 서비스를 위한 자바(등록상표) 인터페이스가 고객(162)에 제공될 수 있다.
일단 고객(162)이 순람 서비스로부터 서비스 객체를 수신받으면, 고객은 그 서비스를 호출할 수 있다. 도 7은 서비스 호출 과정(service invocation process)을 나타낸다. 서비스가 호출되면, 고객(162)과 서비스 제공자(164)는 서로 직접적으로 통신할 수 있다. 다양한 상호작용 포로토콜중 어느 것이라도 이 통신을 위해이용될 수 있다. 예를 들어, 이용되는 프로토콜은 자바(등록상표) 원격 방법 요청(Remote Method Invocation;RMI), CORBA, CDOM 등일 수 있다. 고객이 순람 서비스로부터 수신하는 서비스 객체는, 예컨대 RMI 방법을 호출함으로써, 서비스 제공자에 배치된 코드로 다시 호출될 수 있거나, 요청되는 서비스를 제공하기 위하여 지역적으로 실행할 수 있거나, 이러한 접근방법들을 조합하여 이용할 수 있다.
도 3에 나타낸 바와 같이, 지역 네트워크를 위한 순람 서비스(136)는 또한 인터넷(154)과 같은 외부 네트워크로의 게이트웨이(gateway)로 활동할 수도 있다. 따라서, 서비스에 근거한 분배된 전산 모델은 지역 네트워크의 외부에 배치된 고객과 서비스를 포함하도록 확장될 수 있다. 예를 들어, 개방 서비스 게이트웨이 이니셔티브(OSGI)를 위해 개발되고 있는 기술이 이 유형의 분포된 전산 시스템을 실행하도록 투입될 수 있다.
상이한 네트워크와 인터넷 사이 및 그에 걸치는 이러한 유형의 서비스 공유는 새로운 유형의 애플리케이션이 개발가능하도록 할 수 있다. 예를 들어, 장치가 연결된 지역 네트워크에 따라, 상인들은 인터넷 서비스를 이용하여 특정 소비자에 대한 데이터를 기록할 수 있고, 광고 서비스 제공자들은 이 데이터를 사용하여 소비자 장치에 특정 내용의 광고를 밀어넣을 수 있다. 예를 들어, 무선 연결을 통하여, 소비자는 쇼핑몰에 들어갈 수 있고 피디에이(PDA)를 쇼핑몰을 위한 지역 네트워크에 연결시킬 수 있다. 인터넷에 근거하는 소비자 데이터 서비스는 쇼핑몰 네트워크를 위해 순람 서비스와 결합될 수 있고 그 몰 네트워크에 최근에 연결한 특정 소비자에 대한 정보를 제공할 수 있다. 그러면, 그 쇼핑몰 네트워크에서 실행되고 있는 서비스는, 개별화된 광고를 일반화하고 그것들을 고객의 PDA에 밀어넣기 위하여, 그 몰 내에서의 소비자의 현재 위치, 날짜의 시간 등과 같은 다른 인자와 함께 이 데이터를 이용할 수 있다.
도 3의 네트워크에 근거한 많은 다른 서비스의 예가 가능하다. 예를 들어: 가정내에서 네트워크가 가능한 소비자 장치는 인터넷을 경유하여, 전력 회사에 의해 제공되는 서비스를 활용할 수 있으며, 이것은 가정내의 전력 소비를 관리한다; 보안 서비스 제공자는 네트워크 서비스를 경유하여 가정이나 특정 장치를 모니터링 할 수 있고 그 자산이 고장났을 때 그 소유자에게 즉각 알릴 수 있다; 건강 서비스 제공자는 의료 기구와 통신함으로써 환자의 상태를 원격으로 모니터링 할 수 있다; 등.
위에서 열거된 예에서, 장치들은 네트워크에 투명하게 연결될 수 있고, 네트워크 서비스를 장치 고유의 서비스와 통합하고, 장치 고유의 서비스를 네트워크 고객에 의해 이용될 수 있도록 송출할 수 있다. 여기에서 설명되는 수용구조는, 피디에이(PDA), 포켓용 컴퓨터, 스마트 휴대전화 등과 같은 소형 풋프린트 장치의 서비스와 애플리케이션을 네트워크 서비스 연합(network service federation)과 통합하기 위하여 필요한 인터페이스를 제공할 수 있다.
도 3에 나타나 있고 아래에 보다 상세히 설명되는 바와 같이, 본 수용구조(144)는 그 자체 유형의 순람 서비스(146)를 가진다. 본 수용구조(144) 내부의 순람 서비스(146)는 발견, 결합, 순람 및 서비스 호출 과정을 활용하여, 위에서 설명된 지역 네트워크 순람 서비스와 마찬가지로 동작할 수 있다. 예를 들어, 퍼스널 오거나이저 애플리케이션(152)은 달력 서비스, 접촉 리스트 서비스, 북마크 서비스 등(도시되지 않음)과 같은 다양한 서비스들을 활용할 수 있다. 퍼스널 오거나이저 애플리케이션(152)은 수용구조 순람 서비스(146)를 통하여, 이 서비스들과 통신하기 위한 참조를 획득할 수 있다.
본 수용구조(144)는 자신의 순람 서비스(146)를 도 3에 나타난 지역 네트워크 순람 서비스(136)와 같은 오프-디바이스 순람 서비스와 통합할 수 있다. 이 방법으로, 프린트 서비스(138) 및 웹 서비스(140)와 같은 오프-디바이스 서비스는 수용구조의 애플리케이션/서비스(148, 150, 152)에 이용가능하게 될 수 있고 그 반대도 가능하다. 예를 들어, 퍼스널 오거나이저 애플리케이션(152)는 수용구조 순람 서비스(146)로부터 프린트 서비스를 요청할 수 있다. 수용구조 순람 서비스(146)는 우선 온-디바이스 프린트 서비스를 탐색할 수 있다. 하나도 찾아내지 못하면, 수용구조 순람 서비스(146)는 네트워크 순람 서비스(136)로부터 프린트 서비스를 요청할 수 있다. 그러면,프린트 서비스(138)를 위한 서비스 객체(service object)가 퍼스널 오거나이저(152)로 되돌려질 수 있다. 온-디바이스 서비스/애플리케이션 및 오프-디바이스 서비스 사이의 인터페이스(142)가 도 3에 나타나 있다. 온-디바이스/오프-디바이스 서비스의 통합이 어떻게 실행되는지 다음에 자세히 나와 있다.
위에서 언급한 바와 같이, 서비스의 고객은 다른 고객으로의 서비스로 될 수 있다. 예를 들어, 도 3에 나타난 스마트 휴대전화의 이메일 고객 "애플리케이션"(150)은 그자체로서 본 수용구조(144)에서 실행되고 있는 고객에 대한 또는 네트워크 고객에 대한 서비스로 될 수 있다. 예를 들어, 오동작이 발생할 경우, 도 3에 나와 있는 프린터(130)는 이메일 서비스를 요청하여, 서비스 기술자에 진단 정보를 보내도록 할 수 있다. 네트워크 순람 서비스(136)가 네트워크에 근거하는 이메일 서비스를 찾을 수 없으면, 인터페이스(142)를 경유하여 스마트 휴대전화(134)로부터 이메일 서비스를 요청할 수 있다. 수용구조(144)에서 실행되고 있는 이메일 애플리케이션/서비스(150)를 위한 서비스 객체가 요청하고 있는 프린터 고객(130)으로 전달될 수 있다. 이 예에서, 프린터 고객(130)은 진단 정보를 담고 있는 이메일을 프린터 서비스 기술자에게 보내기 위하여, 이메일 애플리케이션/서비스(150)와 직접 통신할 수 있다. 이메일 애플리케이션/서비스(150)는 이메일 서버 서비스를 찾을 수 있으면 즉각적으로 이메일을 보낼 수 있거나, 휴대전화 사용자가 다른 네트워크에 연결하여 나중에 그러한 서비스가 이용가능하게 될 때 이메일을 보낼 수 있다.
비록 상기의 설명이 자바(등록상표) 기술과 같이 특정 프로토콜과 프로그래밍 모델을 참조로 하고 있지만, 이들 특정 기술들은 예일 뿐이라는 점에 주의해야 한다. 예를 들어 수용구조 내부의 애플리케이션 및 서비스는 고객, 서비스, 장치, 네트워크 등과 통합될 수 있다. 이는 다양한 유형의 표준, 프로토콜, 프로그래밍 모델 중 어느 것이라도 포함하며, 지니(등록상표), CORBA, COM/DCOM, Bluetooth, CAL, CEBus, HAVi, Home API, HomePNA, HomePnP, HomeRF, VESA 등을 포함하지만 그에 국한하지 않는다.
도 8 - 수용구조 블록도
도 8은 수용구조 환경의 기본적 아키텍쳐를 나타내는 추상적 블록도이다. 위에서 설명한 바와 같이, 본 수용구조는 애플리케이션들과 서비스들을 위한 수용 시스템을 제공한다. 이 애플리케이션들과 서비스들은 모듈(modules)이라고 불리우는 유닛들로서 시스템 내에서 관리된다. 수용구조는 경량이다; 일례로, 모듈은 모든 모듈 관리를 수행하는 단일의 구조 관리자 객체(framework manager object)와 상호작용할 수 있다. 이 관리자는 여기서 중앙 구조 인스턴스(central framework instance)라고 호칭된다. 일례로, 중앙 구조 인스턴스(170)는 자바(등록상표) 클래스의 인스턴스로서 실행될 수 있다. 도 8은 중앙 구조 인스턴스(170)와 그것이 포함하고/관리하는 코드 및 데이터를 나타낸다. 도 8은 수용구조의 일례를 나타낼 뿐이라는 점에 유의해야 한다. 그밖의 실시예들로서는, 다른 아키텍쳐를 채용할 수 있으며 그리고/또는 다른 프로그래밍 언어나 소프트웨어 환경에서 실행될 수도 있다. 예를 들어, 도 8에 나타나 있는 중앙 구조 인스턴스(170)에 의해 수행되는 모듈 관리/수용은, 다른 실시예에서는 다중의 객체(objects) 또는 콤포넌트(components)에 의해 수행될 수도 있다.
도 8에 나타낸 바와 같이, 중앙 구조 인스턴스(170)는 시스템에 현재 로딩된 모듈을 나타내는 데이터(182)를 가진다. 이 수용구조 아키텍쳐는 비계층적이다. 따라서, 로딩된 모듈들은 모듈들의 평탄한 리스트(flat list) 또는 배열(array)로서 표현될 수 있다. 이 비계층적 시스템은 핵심적인 수용구조 코드 및 그 구조내에서 실행되고 있는 모듈들을 컴팩트하게 유지하는데 도움을 준다.자바빈즈(JavaBeans;등록상표) 콤포넌트와 같은 계층적인 콤포턴트를 채용하고 있는 시스템은 관련된 이점을 제공하지만, 그러한 이점은 보다 많은 시스템 자원을 요구하는 보다 복잡한 관리 시스템을 대가로 한다. 그러나, 본 수용구조는 비계층적 모듈이 많은 계층적 수용 시스템의 이점을 얻도록 하는 메커니즘을 제공한다. 이 메커니즘은 도 9 및 10에 대해 아래에 설명된다.
도 8에 나타낸 바와 같이, 일례로 중앙 구조 인스턴스(170)는 모듈이 호출할 수 있는, 공개적으로 액세스 가능한 방법을 포함한다. 이 방법들은 추상적인 그룹들로 나뉘어질 수 있다. 예를 들어, 한 그룹의 방법(172)은 순람 방법(lookup method)을 포함할 수 있다. 순람 방법은 위에서 설명된 순람 서비스 기능을 실행한다. 모듈들은 특정 서비스 모듈의 위치를 찾아내기 위하여 모듈 서술자(module descriptor)를 중앙 구조 인스턴스(170)의 순람 방법에 전달할 수 있다. 수용구조 순람 과정이 도 12에 대해 아래에 설명된다. 또 다른 그룹의 구조 방법(174)는 모듈을 로딩/언로딩하기 위한 방법을 포함할 수 있다. 서비스 모듈을 찾아낸 후, 고객 모듈은 중앙 구조 인스턴스로 하여금 서비스 모듈을 로딩하고 로딩된 모듈에 대한 참조를 되돌려 주도록 요청할 수 있다. 그러면, 고객 모듈은 그 서비스를 호출할 수 있다. 고객은 사용이 끝나면 서비스 모듈을 해제하기 위하여 구조 방법(framework method)을 호출할 수 있다. 특별한 그룹으로 설명되었지만, 방법들을 순람 및 로딩/언로딩 그룹으로 나누는 것은 개념적인 분할일 뿐이다. 예를 들어, 일례로 순람 방법은 또한 그것이 조화하는 모듈을 로딩할 수 있고 그 조화되는 모듈에 대한 참조를 되돌려줄 수 있다.
도 8은 또한 구조의 정의데이터(metadata)라고 호칭되는 시스템 데이터(180)를 나타내는데, 구조의 정의데이터는 로딩된 모듈의 리스트를 설명하는 데이터(182) 및 시스템의 상태를 설명하는 다른 데이터를 포함할 수 있다. 중앙 구조 인스턴스(170)의 또다른 추상적 그룹의 방법(176)은 반사 방법(reflection method)을 포함할 수 있다. 반사 방법은 다른 그룹의 방법과는 어느정도 다른데, 이는 그들이 핵심적 정의데이터(180)로의 직접적인 액세스를 제공하기 때문이다. 시스템 모듈이라 호칭되는 특별 클래스의 모듈들은 정의데이터(180)로의 액세스를 획득하기 위해 반사 방법을 호출할 수 있다. 정규적 모듈들은 정의데이터(180)를 액세스하지 않을 수 있다.
핵심적 시스템 데이터(180)에 대한 참조를 수신한 후, 시스템 모듈은 바람직한 어떠한 방법으로, 그 데이터를 사용하거나 수정할 수 있다. 따라서, 수용 구조는 매우 확장성이 크다. 중앙 구조 인스턴스(170)는 그 자체로 작게 유지될 수 있고, 시스템 모듈들은 중앙 구조 인스턴스(170)에 의해 이미 가능하도록 되지 않은 어떠한 기능이라도 실행하기 위하여 부가될 수 있다. 예를 들어, 시스템 모듈은, 도 3-7에 대해 위에서 설명된, 수용구조내에서 실행되고 있는 애플리케이션/서비스와 외부적 네트워크에 근거하는 서비스와의 사이의 통합을 가능하게 할 수 있다.
이 예에서, 그러한 시스템 모듈은 외부적 네트워크의 프로토콜 및 프로그래밍 모델을 따르는 두번째 순람 서비스로서 기록될 수 있다. 예를 들어, 지니(등록상표) 네트워크에서, 지니(등록상표) 네트워크 순람 서비스를 발견하고 네트워크 순람 서비스를 결합하고, 그 자체를 두번째 순람 서비스로 등록하는 시스템 모듈이기록될 수 있다. 네트워크 고객이 서비스를 요청할 때, 네트워크 순람 서비스는 시스템 모듈에 의해 실행되는 순람 서비스를 호출할 수 있다. 이 시스템 모듈은 요청되는 서비스의 설명과 조화하는 수용구조 내부의 서비스 모듈을 찾도록 시도할 수 있다. 하나의 조화가 발견되면, 시스템 모듈은 서비스 모듈을 네트워크 고객에게 송출하기 위해 필요한 어떠한 단계라도 수행할 수 있는데, 이는 시스템 모듈이 시스템 모듈 리스트 및 정의데이터로의 완전한 액세스를 가지고 있기 때문이다. 예를 들어, 시스템 모듈은 시스템으로 조화되는 서비스 모듈을 로딩하고 등록하고, 자바(등록상표) 인터페이스와 같은 인터페이스를 요청자로 새로이 로딩되는 모듈을 향해 되돌려준다.
도 9 및 10 - 계층적 환경의 시뮬레이션.
모듈을 위한 계층적 환경을 확립하는 것은 종종 바람직하다. 예를 들어, 동일한 유형의 여러 서비스 모듈이 시스템에 존재할 수 있지만, 각각은 약간 다르게 행동할 수 있다. 계층적 수용 시스템에서, 모듈의 서비스 요청은 요청하는 모듈의 조상 모듈이나 수용 모듈을 통하여 여과될 수 있어서, 특정 서비스 모듈의 참조는 요청자에게 되돌려질 수 있다. 계층적 수용은 또한, 모듈의 계층적 구조중에서 데이터를 쉽게 분배하고 저장하는 능력과 같이, 다른 고유의 유익성을 가진다. 그러나, 위에서 언급된 바와 같이, 계층적 수용 시스템의 전적인 수행은 메모리와 처리 능력과 같이 요구되는 시스템 자원의 견지에서 볼 때 매우 비용이 크다. 수용구조는 개발자와 애플리케이션에게 계층적 수용의 많은 이점을 주는 메커니즘을 제공할수 있지만, 그것과 관련하여 일반적으로 높은 총경비를 요구하지는 않는다.
예를 들어, 수용구조의 일례는 모듈들이 그 자신들을 다른 모듈의 모듈 요청 청취자(module request listener)로 등록할 수 있게 한다. 예를 들어, 모듈 A는 그 자신을 모듈 B의 요청 청취자로 등록할 수 있으며, 예컨대, 중앙 구조 인스턴스의 부가 요청 청취자(AddRequestListener) 방법을 호출함으로써 그러하다. 그 다음에, 모듈 B가 특정 서비스를 찾아내기 위해 중앙 구조 인스턴스의 방법을 호출하면, 중앙 구조 인스턴스는 모듈 B를 위한 모듈 요청 청취자를 확인한다. 이 경우에, 그것은 모듈 A를 요청 청취자로서 발견하며, 모듈 A로 하여금 모듈 B로 요청된 서비스 모듈을 제공하도록 요구한다.
도 9 및 10은 수용구조내의 모듈 요청 청취자(module request listeners)의 예시적인 이용을 나타낸다. 도 9는 프린트 서비스를 위해 요청되는 개념적인 모듈 계층구조를 나타낸다. 도면에 나타낸 바와 같이, 2개의 프린트 서비스 모듈(192 및 194),즉 프린트 서비스(A)와 프린트(B)는 프린트 관리자 모듈(190)내에 싸여있다. 예를 들어, 2개의 프린트 서비스(192 및 194)는 상이한 위치로 프린트 할 수 있으며, 상이한 해상도와 컬러 능력 등을 가질 수 있다. 이 프린트 서비스 모듈 중 어느 하나는 프린트 서비스를 위한 또다른 모듈에 의한 순람 요청을 만족시킬 수 있다. 그러나, 특정 프린트 서비스를 선택하고 되돌려주는 프린트 관리자 모듈을 채용하는 것이 바람직하다. 예를 들어, 프린트 관리자(190)는 고객 모듈이 프린트 요청을 하는데 근거를 두고 있는 프린트 서비스를 선택할 수 있고, 또는 프린트 관리자는 필요한 프린트 서비스 특성을 위해 사용자 입력을 요청하는 다이얼로그 박스를 디스플레이 할 수 있다.
비록 수용구조가 비계층적 수용 모델을 활용하더라도, 도 9에 나타낸 계층구조는 프린트 관리자 모듈(190)을, 프린트 서비스를 요청할 수 있는 고객 모듈의 모듈 요청 청취자로서 등록함으로써 현실화될 수 있다. 도 10은 시스템에서 실행할 수 있는 모듈(198)의 예를 나타낸다. 앞서 설명된 바와 같이, 이 모듈들은 그자신들이 다른 모듈들을 서비스로서 채용할 수 있다. 수용구조의 비계층적 모델에 따라서, 모듈들은 편평한 레이아웃으로 배열되어 나타나며, 고유의 모듈 계층구조는 없다.
이 예에서, 웹 브라우저 모듈(196)은 예컨대, 웹페이지를 프린팅하기 위한 프린트 요청을 하도록 동작될 수 있다. 도 10에 나타낸 바와 같이, 프린트 관리자 모듈(190)은 웹 브라우저 모듈(196)을 위한 모듈 요청 청취자로서 등록될 수 있다. 웹 브라우저(196)로부터 프린트 서비스 요청을 수신하면, 수용구조 순람 서비스는 웹 브라우저(196)를 위한 요청 청취자로서 등록된 프린트 관리자 모듈(190)을 찾아낼 수 있고, 프린트 관리자 모듈(190)로 하여금 프린트 서비스 모듈을 웹 브라우저 요청자(196)에 제공하도록 요청할 수 있다. 그러면, 프린트 관리자 모듈(190)은 프린트 서비스 모듈 A(192) 또는 프린트 서비스 모듈 B(194)에 대한 참조를 되돌려 줄 수 있거나, 또는 프린트 관리자 모듈(190)은 어느 프린트 서비스 모듈을 되돌려 줄 것인지 등을 결정하기 위하여 사용자에게 다이얼로그 박스를 보여줄 수 있다. 따라서, 도 9의 요구되는 모듈 계층구조는 수용구조의 비계층적 모듈을 위해 실행될 수 있다.
도 11 - 꾸러미 패키징 유닛
모듈은 꾸러미라고 호칭되는 유닛들로 일괄화될 수 있다. 이 일괄화는 여러 목적에 대해 역할을 한다. 예를 들어, 꾸러미는 관련된 코드 및 데이터를 유닛으로서 관리하기 위한 편리한 메커니즘을 제공한다. 밀접하게 관련된 모듈들이 정적인 의존성을 가지면, 그것들은 꾸러미로 함께 일괄화 될 수 있다. 꾸러미들은 시스템 내에서 설치 및 업그레이드를 다루는데 이용될 수 있다.
도 11은 개인 정보 관리자(Personal Information Manager;PIM)에 관련된 모듈을 함께 그룹화하는 꾸러미(200)의 예를 나타낸다. 도면은 달력 모듈(202), 접촉 리스트 모듈(204), 약속 모듈(208), 그리고 사용자 인터페이스 모듈(206)을 나타낸다. 필요에 따라, 다른 다양한 모듈이 꾸러미내에 나타날 수 있다. PIM 꾸러미(200)의 모듈들은 또한, 북마크 서비스, 검색 서비스 등과 같은 수용구조내에서 실행하는 다양한 핵심적 서비스 모듈들을 이용할 수 있다. PIM 꾸러미를 사용하는 것은, PIM 애플리케이션의 설치 및 업그레이드를 간단하게 할 수 있다. PIM 모듈을 이러한 방법으로 꾸러미로 일괄화하는 것은, 다목적 개발을 위해 분리된 코드 유닛을 창제하는 것에 대해 개발시간적 이점을 가지고 있다.
또한 꾸러미들은 비계층적 모듈을 위한 실행시간 환경을 제공하는 추가적 방법을 제공한다. 모듈이 시스템에 로딩될 때, 중앙 구조 인스턴스는, 꾸러미가 하나라도 있다면, 어떤 꾸러미에 모듈이 속하는가를 특정하는 정의데이터를 저장할 수 있다. 서비스 모듈은 나중에 이 정보를 이용하여, 고객이 어느 꾸러미에 속하는지에 따라 상이한 고객 모듈에게 상이하게 서비스를 제공한다. 예를 들어, 고객 모듈은 루트 디렉토리(root directory)를 획득하기 위해 화일 액세스 서비스 모듈을 이용할 수 있다. 화일 액세스 모듈은 고객들이 어느 꾸러미에 속하는 지에 따라, 상이한 고객들에게 상이한 루트 디렉토리들을 되돌려줄 수 있다.
도 12 - 모듈 요청 흐름도
도 12는 중앙 구조 인스턴스가 고객 모듈로부터 서비스 모듈을 위한 순람 요청을 수신받았을 때 수행하는 전형적인 순람 과정을 나타내는 흐름도이다. 도 12는 예시적인 것이며, 다양한 단계가 병합, 생략, 또는 수정될 수 있다. 예를 들어, 앞에서 언급된 바와 같이, 순람 과정을 주문에 따라 맞추는 시스템 모듈이 부가될 수 있다.
도 12의 단계 300에서, 중앙 구조 인스턴스는 요청자 모듈(requestor module)로부터 모듈 순람 요청(module lookup request)을 수신한다. 예를 들어, 요청자 모듈은, 요청자 모듈 자체의 참조 뿐 아니라 요청되는 서비스 모듈을 위한 모듈 서술자(module descriptor)를 전달하면서, 중앙 구조 인스턴스의 요청모듈(RequestModule) 방법을 호출할 수 있다. 서비스 모듈 사용자를 추적하기 위하여, 상기 요청자 모듈의 참조가 시스템 데이터에 부가될 수 있다. 아래에 보다 상세하게 설명되는 바와 같이, 모듈은 다른 모듈이 그것을 사용하지 않을 때 언로딩될 수 있다.
요청자 모듈에 의해 전달되는 모듈 서술자(module descriptor)는, 구조 인스턴스가 조화하는 모듈을 찾도록 시도하기 위해 이용할 수 있는, 요청된 모듈에 대한 다양한 특성을 지정한다. 이 모듈 서술자는 요청되는 모듈의 서비스 유형, 클래스 명칭, 및/또는 서비스-특수의 특징 등과 같은 정보를 포함하는 객체(object)일 수 있다. 또한, 요청자는 텍스트 설명을 중앙 구조 인스턴스로 전달할 수 있는데, 중앙 구조 인스턴스는 모듈 서술자 객체(module descriptor object)를 창제하기 위하여 이것을 이용한다.
단계 302에서, 중앙 구조 인스턴스는 어떤 요청 청취자 모듈이 요청 모듈을 위해 등록되었는지를 알아내기 위해 확인한다. 요청 청취자가 발견되면, 단계 304에서 구조 인스턴스는 요청 청취자에게 그 요청을 알리며, 요청 청취자로 하여금 모듈 요청 서술자와 조화하는 모듈을 제공하도록 시도하게 지시한다. 요청 청취자가 조화하는 모듈을 제공할 수 있으면, 실행은 단계 314로 진행된다. 그렇지 않으면, 조화가 발견되거나 더이상 요청 청취자가 없을 때까지, 다른 등록된 요청 청취자가 모듈을 제공하도록 요청받을 수 있다.
아무 요청 청취자가 발견되지 않거나 또는 아무 요청 청취자도 요청된 모듈을 제공할 수 없으면, 실행 과정은 단계 306로 진행한다. 그러나, 일례로, 만약 하나 이상의 요청 청취자가 요청하는 모듈을 위해 등록되고 그것들 중에 아무것도 조화하는 모듈을 제공할 수 없으면, 진행은 단계 304 다음에 정지할 수 있다. 단계 306에서, 중앙 구조 인스턴스는 모듈중의 하나가 모듈 서술자와 조화하는지 여부를 결정하기 위하여 모듈의 리스트를 체크한다. 만약 조화가 발견되면, 단계 308에서 구조 인스턴스는 조화되는 모듈이 다중-인스턴스가 가능한지 체크한다.조화가 발견되지 않으면, 실행은 단계 314로 진행한다.
단계 308에서 만약 조화되는 모듈이 다중-인스턴스가 가능한 것으로 발견되면, 중앙 구조 인스턴스는 모듈 리스트를 통하여 조화를 위해 계속 검색할 수 있다. 만약 검색할 모듈이 더이상 없으면, 실행은 단계 310으로 진행한다. 단계 310에서, 구조 인스턴스는 모듈 리스트내에서 모듈-제공자 모듈들을 검색한다. 모듈-제공자 모듈들은 요청되는 모듈을 제공할 수 있는 모듈들이다. 예를 들어, 네트워크 순람 서비스는 본 수용구조를 위해 모듈-제공자 모듈로서 도입(import)될 수 있다.
만약 모듈-제공자 모듈이 발견되면, 단계 312에서, 중앙 구조 인스턴스는 모듈-제공자 모듈에게 요청을 알리고, 모듈-제공자 모듈이 모듈 요청 서술자와 조화하는 모듈을 제공하도록 시도하게 지시한다. 만약 조화가 발견되면 실행은 단계 314로 진행한다. 만약 모듈 제공자가 요청되는 모듈을 제공할 수 없으면, 중앙 구조 인스턴스는 다른 모듈-제공자 모듈을 순람하고 단계 312를 반복할 수 있다. 만약 아무런 모듈 제공자가 모듈 리스트에 존재하지 않거나 또는 아무것도 요청되는 모듈을 제공할 수 없으면, 요청자는 요청이 성취될 수 없다는 것을 지시받으며 실행은 완성된다.
단계 314는 단계 304, 308, 또는 312로부터 도달될 수 있다. 모든 경우에, 모듈 요청 서술자와 조화하는 모듈이 발견될 수 있다. 단계 314에서, 요청자는 조화되는 모듈의 사용자로 등록되고, 단계 316에서 조화되는 모듈에 대한 참조가 요청자에게 되돌려진다. 또한 단계 314에서는, 조화되는 모듈을 로딩하고 초기화하는데 관련된 어떠한 필요한 초기화 단계라도 수행된다. 예를 들어, 모듈은 모듈이 로딩될 때 호출되는 초기화 방법(Initialize method)을 가질 수 있다.
위에서 언급된 바와 같이, 도 12의 흐름도는 예시적인 것이며, 다양한 실시예가 상이한 순람/로딩 시나리오를 가질 수 있다. 예를 들어, 모듈이 조화되는 모듈에 대한 참조를 되돌리지 않고 서비스 모듈을 로드하기 위하여 중앙 구조 방법을 호출할 수 있거나, 또는 요청 청취자들이 몇몇 경우에서 무시될 수 있는 등이 그러하다.
도 13 - 모듈 해제 흐름도
고객 모듈이 서비스 모듈의 사용을 마칠 때, 고객은 모듈을 해제하기 위해 중앙 구조 인스턴스의 방법을 호출할 수 있다. 도 13은 모듈 해제 과정을 나타내는 흐름도이다. 도 13의 흐름도는 예시적이며, 상이한 실시예에 대해 요구되고 필요함에 따라 다양한 단계가 조합, 생략, 부가, 수정될 수 있다.
단계 330에서, 중앙 구조 인스턴스는 사용자 모듈로부터 모듈-해제 지시를 수신한다. 도 12에 대해 위에서 설명된 바와 같이, 사용자 모듈이 서비스 모듈을 요청할 때, 사용자 모듈은 서비스 모듈의 사용자의 리스트에 부가된다. 단계 332에서, 중앙 구조 인스턴스는 해제하고 있는 사용자 모듈을 해제되는 모듈의 사용자 리스트로부터 제거한다. 단계 334에서, 구조 인스턴스는 다른 사용자 모듈이 해제된 모듈을 이용하고 있는지를, 예컨대 다른 모듈이 해제 모듈의 사용자 모듈 리스트에 존재하는지를 체크함으로써, 결정한다. 그렇다면, 실행은 정지한다.
만약 아무런 다른 모듈이 해제되는 모듈을 사용하고 있지 않으면, 중앙 구조 인스턴스는 해제되는 모듈의 언로드(unload)를 시도할 수 있다. 단계 336에서, 구조 인스턴스는 해제되는 모듈의 최종화가능(CanFinalize) 방법을 호출할 수 있다. 최종화가능(CanFinalize) 방법은 모듈이 언로드될 수 있으면 참값(true)을 되돌려주고, 그렇지 않으면 거짓값(false)을 되돌려준다. 단계 336에서, 만약 해제된 모듈의 최종화가능 방법이 거짓값을 되돌려주면 실행은 정지한다. 그렇지 않으면, 해제된 모듈의 최종화(Finalize) 방법이 호출될 수 있다. 최종화 방법은 자원을 해제하는 것과 같이, 모듈을 언로드하기 위해 필요한 어떠한 단계라도 수행할 수 있다. 그러면, 특정 실시예에 따라서, 쓰레기-모음(garbage-collection) 등을 포함할 수 있는, 모듈이 언로드될 수 있다.
비록 본 발명이 특정 실시예와 연결되어 설명되었지만, 본 발명은 여기에서 나타나는 특정 형태에 국한되고자 하는 것이 아니며, 그와 반대로, 첨부된 특허청구범위에 의해 정의되는 본 발명의 기술적 사상과 범위내에 합리적으로 포함될 수 있는 대체, 수정, 등가 등을 포함하도록 의도된 것이다.

Claims (30)

  1. 소형 풋프린트 장치를 위한 소프트웨어 구조로서, 상기 구조는 공유가능한 프로그램 모듈을 지원하고, 상기 프로그램 모듈은 전산 서비스를 실행하기 위해 실행가능한, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  2. 제1항에 있어서,
    상기 소형 풋프린트 장치는 운영체제를 포함하고, 상기 소형 풋프린트 장치는 상기 소프트웨어 환경내에서 소프트웨어 프로그램들을 실행하게 하는 실행가능한 소프트웨어 환경을 더 포함하고, 상기 소프트웨어 구조는 상기 소프트웨어 환경내에서 실행하는 소프트웨어 콤포넌트를 포함하는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  3. 제2항에 있어서,
    상기 실행가능한 소프트웨어 환경은 자바(등록상표) 애플리케이션 환경인, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  4. 제3항에 있어서,
    상기 소프트웨어 콤포넌트는 자바(등록상표) 클래스의 인스턴스(instance)인, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  5. 제2항에 있어서,
    상기 소프트웨어 콤포넌트는 상기 프로그램 모듈을 상기 소프트웨어 환경으로 로딩(load)할 수 있는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  6. 제2항에 있어서,
    상기 소프트웨어 환경으로 제1 프로그램 모듈이 로딩되고, 상기 제1 프로그램 모듈은 상기 소프트웨어 콤포넌트로 하여금 제2 프로그램 모듈을 상기 소프트웨어 환경으로 로딩하도록 요청할 수 있고, 상기 소프트웨어 콤포넌트는 상기 제1 프로그램 모듈로부터 상기 요청을 수신함에 응답하여 상기 제2 프로그램 모듈을 상기 소프트웨어 환경으로 로딩할 수 있는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  7. 제6항에 있어서,
    상기 소프트웨어 콤포넌트는 또한 상기 제2 프로그램 모듈에 대한 참조를 상기 제1 프로그램 모듈에게 되돌려 줄 수 있고, 상기 제1 프로그램 모듈은 상기 제2 프로그램 모듈을 호출할 수 있는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  8. 제2항에 있어서,
    상기 소프트웨어 환경으로 제1 프로그램 모듈이 로딩되고, 상기 제1 프로그램 모듈은 상기 소프트웨어 콤포넌트에게 모듈 서술자(module descriptor)를 전달할 수 있고, 상기 소프트웨어 콤포넌트는 상기 모듈 서술자와 조화하는 제2 프로그램 모듈의 위치를 찾아내고 상기 제2 프로그램 모듈을 상기 소프트웨어 환경으로 로딩할 수 있는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  9. 제2항에 있어서,
    상기 소프트웨어 환경으로 제1 프로그램 모듈이 로딩되고, 상기 제1 프로그램 모듈은 상기 소프트웨어 콤포넌트에게 모듈 서술자(module descriptor)를 전달하도록 동작될 수 있고, 상기 소프트웨어 콤포넌트는 상기 모듈 서술자와 조화하는 제2 프로그램 모듈의 위치를 찾아내고 상기 제2 프로그램 모듈에 대한 참조를 상기 제1 프로그램 모듈에게 되돌려줄 수 있는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  10. 제2항에 있어서,
    상기 소프트웨어 환경으로 제1 프로그램 모듈과 제2 프로그램 모듈이 로딩되고, 상기 제2 프로그램 모듈은 상기 소프트웨어 콤포넌트로부터 제3 프로그램 모듈에 대한 참조를 요청할 수 있고, 상기 소프트웨어 콤포넌트는 상기 제2 프로그램 모듈에게 상기 제3 프로그램 모듈에 대한 요청을 상기 제1 프로그램 모듈에게 되돌려 주도록 지시할 수 있는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  11. 제1항에 있어서,
    상기 소프트웨어 구조는 제1 프로그램 모듈이 제2 프로그램 모듈을 위하여 모듈 요청 청취자로서 등록하기 위한 수단을 포함하고, 상기 제1 프로그램 모듈은 모듈 서술자와 조화하는 제3 프로그램 모듈에 대한 참조를 위한 상기 제2 프로그램 모듈로부터의 요청을 수신할 수 있고, 상기 제1 프로그램 모듈은 상기 모듈 서술자와 조화하는 제3 프로그램 모듈에 대한 참조를 상기 제2 프로그램 모듈에게 되돌려 줄 수 있는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  12. 제1항에 있어서,
    상기 소프트웨어 구조는 상기 프로그램 모듈에 관계된 데이터를 포함하고, 상기 프로그램 모듈은 모든 상기 데이터를 액세스할 수 있는 제1 클래스의 시스템 모듈을 포함하고, 상기 프로그램 모듈은 상기 데이터의 적어도 일부를 액세스할 수 없는 제2 클래스의 모듈을 더 포함하는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  13. 제1항에 있어서,
    상기 소프트웨어 구조내에서 제1 프로그램 모듈이 실행되고, 상기 제1 프로그램 모듈은 제1 전산 서비스를 수행하기 위해 실행가능하고, 상기 제2 프로그램 모듈은 상기 소프트웨어 구조내에서 실행되고, 상기 제2 프로그램 모듈은 제2 전산 서비스를 수행하기 위해 실행가능하고, 상기 제2 프로그램 모듈은 상기 제1 프로그램 모듈을 활용하여 상기 제2 전산 서비스를 수행하는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  14. 제13항에 있어서,
    상기 제2 전산 서비스는 웹 브라우징 서비스(web browsing service)이고, 상기 웹 브라우징 서비스는 상기 소형 풋프린트 장치의 사용자로 하여금 웹 페이지를 볼 수 있게 해주는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  15. 제1항에 있어서,
    상기 소형 풋프린트 장치는 시스템 메모리를 포함하고, 상기 소프트웨어 구조는 하나 이상의 소프트웨어 콤포넌트를 포함하고, 상기 하나 이상의 소프트웨어 콤포넌트는 상기 시스템 메모리내에 저장되고, 상기 하나 이상의 소프트웨어 콤포턴트는 300킬로바이트보다 적은 메모리 공간을 요구하는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  16. 제1항에 있어서,
    상기 소형 풋프린트 장치는 피디에이(PDA), 휴대전화, 지구측위시스템(GPS) 수신기로 구성되는 그룹에 속하는 하나의 소형 풋프린트 장치인, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  17. 제1항에 있어서,
    상기 소형 풋프린트 장치는 게임 콘솔(game console), 착용가능한 전산장치, 셋톱 박스, 전자서적장치로 구성되는 그룹에 속하는 하나의 소형 풋프린트 장치인, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  18. 제1항에 있어서,
    상기 소형 풋프린트 장치는 2메가바이트보다 적은 메모리를 포함하는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  19. 제1항에 있어서,
    상기 소형 풋프린트 장치는 20 제곱인치보다 적은 디스플레이 스크린을 포함하는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  20. 제1항에 있어서,
    상기 소형 풋프린트 장치는 오직 배터리에 의해 동작되는, 소형 풋프린트 장치를 위한 소프트웨어 구조.
  21. 프로그램 모듈을 실행시킬 수 있는 소형 풋프린트 장치로서, 상기 소형 풋프린트 장치는
    프로세싱 유닛과;
    시스템 메모리를 포함하고;
    상기 시스템 메모리는 소프트웨어 환경내에서 소프트웨어 프로그램을 실행할 수 있도록 하는 소프트웨어 환경 및 운영체제를 저장하고;
    상기 시스템 메모리는 또한 본 발명에 따른 하나 이상의 소프트웨어 콤포넌트를 포함하고, 상기 하나 이상의 소프트웨어 콤포넌트는 상기 소프트웨어 환경내에서 실행되며 상기 하나 이상의 소프트웨어 콤포넌트는 공유가능한 프로그램 모듈을 지원하는 소프트웨어 구조를 수행하고, 상기 프로그램 모듈은 전산 서비스를 수행하기 위해 실행가능한, 프로그램 모듈을 실행시킬 수 있는 소형 풋프린트 장치.
  22. 제21항에 있어서,
    상기 실행가능한 소프트웨어 환경은 자바(등록상표) 애플리케이션 환경인, 프로그램 모듈을 실행시킬 수 있는 소형 풋프린트 장치.
  23. 제21항에 있어서,
    하나 이상의 상기 소프트 웨어 콤포넌트는 상기 프로그램 모듈을 상기 소프트웨어 환경으로 로딩할 수 있는, 프로그램 모듈을 실행시킬 수 있는 소형 풋프린트 장치.
  24. 제21항에 있어서,
    상기 소프트웨어 환경에 제1 프로그램 모듈이 로딩되고, 상기 제1 프로그램모듈은 하나 이상의 상기 소프트웨어 콤포넌트로 하여금 제2 프로그램 모듈을 상기 소프트웨어 환경으로 로딩하도록 요청할 수 있고, 상기 하나 이상의 상기 소프트웨어 콤포넌트는 상기 제1 프로그램 모듈로부터의 요청을 수신받는 것에 응답하여 상기 제2 프로그램 모듈을 상기 소프트웨어 환경으로 로딩할 수 있는, 프로그램 모듈을 실행시킬 수 있는 소형 풋프린트 장치.
  25. 제24항에 있어서,
    상기 하나 이상의 상기 소프트웨어 콤포넌트는 또한 상기 제2 프로그램 모듈에 대한 참조를 상기 제1 프로그램 모듈에 되돌려줄 수 있고, 상기 제1 프로그램 모듈은 상기 제2 프로그램 모듈을 호출할 수 있는, 프로그램 모듈을 실행시킬 수 있는 소형 풋프린트 장치.
  26. 제21항에 있어서,
    상기 소프트웨어 구조는 상기 프로그램 모듈에 대한 데이터를 포함하고, 상기 프로그램 모듈은 모든 상기 데이터에 액세스할 수 있는 제1 클래스의 시스템 모듈을 포함하고, 상기 프로그램 모듈은 상기 데이터의 적어도 일부를 액세스 할 수 없는 제2 클래스의 모듈을 더 포함하는, 프로그램 모듈을 실행시킬 수 있는 소형 풋프린트 장치.
  27. 제21항에 있어서,
    상기 소형 풋프린트 장치는 피디에이(PDA), 휴대전화, 지구측위시스템(GPS) 수신기로 구성되는 그룹에 속하는 하나의 소형 풋프린트 장치인, 프로그램 모듈을 실행시킬 수 있는 소형 풋프린트 장치.
  28. 제21항에 있어서,
    상기 소형 풋프린트 장치는 게임 콘솔(game console), 착용가능한 전산장치, 셋톱 박스, 전자서적장치로 구성되는 그룹에 속하는 하나의 소형 풋프린트 장치인, 프로그램 모듈을 실행시킬 수 있는 소형 풋프린트 장치.
  29. 제21항에 있어서,
    상기 시스템 메모리는 2메가바이트보다 적은 저장 용량을 가지는, 프로그램 모듈을 실행시킬 수 있는 소형 풋프린트 장치.
  30. 제21항에 있어서,
    상기 소형 풋프린트 장치는 오직 배터리에 의해서 동작되는, 소프트웨어 구조.
KR1020017015700A 1999-06-15 2000-05-23 풋프린트 장치를 위한 정시공급 서비스 KR20020012594A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/333,422 1999-06-15
US09/333,422 US6430599B1 (en) 1999-06-15 1999-06-15 Just-in-time services for small footprint devices
PCT/US2000/014173 WO2000077633A1 (en) 1999-06-15 2000-05-23 Just-in-time services for small footprint devices

Publications (1)

Publication Number Publication Date
KR20020012594A true KR20020012594A (ko) 2002-02-16

Family

ID=23302708

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017015700A KR20020012594A (ko) 1999-06-15 2000-05-23 풋프린트 장치를 위한 정시공급 서비스

Country Status (7)

Country Link
US (1) US6430599B1 (ko)
EP (1) EP1192540B1 (ko)
JP (1) JP2003502730A (ko)
KR (1) KR20020012594A (ko)
AU (1) AU762637B2 (ko)
CA (1) CA2376857A1 (ko)
WO (1) WO2000077633A1 (ko)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675196B1 (en) 1999-01-08 2004-01-06 Amazon.Com, Inc. Universal protocol for enabling a device to discover and utilize the services of another device
JP4181685B2 (ja) * 1999-03-12 2008-11-19 富士通株式会社 電力制御方法及び電子機器並びに記録媒体
US7017159B1 (en) * 1999-06-15 2006-03-21 Sun Microsystems, Inc. Smart bookmarks for small footprint device applications
US6628759B1 (en) * 1999-12-10 2003-09-30 Agere Systems, Inc. Alert signal during telephone conversation
US7486628B1 (en) * 1999-12-21 2009-02-03 Nortel Networks Limited Wireless network communications
FI109951B (fi) * 1999-12-29 2002-10-31 Valtion Teknillinen Ohjain ja sen ohjausmenetelmä
US20020007321A1 (en) * 2000-03-22 2002-01-17 Burton Peter A. Methods and apparatus for on-line ordering
US7177940B1 (en) 2000-04-24 2007-02-13 Microsoft Corporation Representing a service discovery stream as an N-ary tree
US6789126B1 (en) * 2000-05-09 2004-09-07 Sun Microsystems, Inc. Addressing message gates in a distributed computing environment
US8175921B1 (en) * 2000-05-30 2012-05-08 Nokia Corporation Location aware product placement and advertising
JP2002044079A (ja) * 2000-07-25 2002-02-08 Matsushita Electric Works Ltd 通信ネットワークを利用した、サービス業者による顧客サービス支援システム、及びそのシステムを用いて、サービス業者による顧客サービスの提供を支援する方法
WO2002015004A2 (en) 2000-08-14 2002-02-21 Transvirtual Technologies, Inc. Portable operating environment for information devices
US6757262B1 (en) * 2000-09-15 2004-06-29 Motorola, Inc. Service framework supporting remote service discovery and connection
US7609402B2 (en) 2001-01-19 2009-10-27 Flexiworld, Inc. Methods for universal data output
US10915296B2 (en) 2000-11-01 2021-02-09 Flexiworld Technologies, Inc. Information apparatus that includes a touch sensitive screen interface for managing or replying to e-mails
US10860290B2 (en) 2000-11-01 2020-12-08 Flexiworld Technologies, Inc. Mobile information apparatuses that include a digital camera, a touch sensitive screen interface, support for voice activated commands, and a wireless communication chip or chipset supporting IEEE 802.11
US11204729B2 (en) 2000-11-01 2021-12-21 Flexiworld Technologies, Inc. Internet based digital content services for pervasively providing protected digital content to smart devices based on having subscribed to the digital content service
US20020051200A1 (en) 2000-11-01 2002-05-02 Chang William Ho Controller for device-to-device pervasive digital output
WO2002041107A2 (en) 2000-11-20 2002-05-23 Flexiworld Technologies, Inc. Systems and methods for mobile and pervasive output
US7343427B2 (en) * 2000-12-13 2008-03-11 Sony Corporation Method and an apparatus for the integration of IP devices into a HAVi network
US7164885B2 (en) * 2000-12-18 2007-01-16 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for selective service access
US7849190B2 (en) * 2001-02-23 2010-12-07 Nokia Siemens Networks Oy Internet protocol based service architecture
US20040177072A1 (en) * 2001-05-17 2004-09-09 Ilkka Salminen Smart environment
US7162543B2 (en) * 2001-06-06 2007-01-09 Sap Ag Process for synchronizing data between remotely located devices and a central computer system
US20030004821A1 (en) * 2001-06-29 2003-01-02 International Business Machines Corporation Method and system for interactively negotiating an item price in a physical store while shopping
US6983307B2 (en) * 2001-07-11 2006-01-03 Kirusa, Inc. Synchronization among plural browsers
AU2002322698A1 (en) * 2001-07-27 2003-02-17 Alan R. Manstof System and method of providing wireless marketing incentives
DE50210223D1 (de) * 2001-08-03 2007-07-12 Siemens Ag Verfahren zur Bildung eines Ad-hoc-Netzwerkes
US7464384B2 (en) * 2002-03-14 2008-12-09 International Business Machines Corporation Method for inter-object communication
US20030191802A1 (en) * 2002-04-03 2003-10-09 Koninklijke Philips Electronics N.V. Reshaped UDDI for intranet use
GB0212314D0 (en) 2002-05-28 2002-07-10 Symbian Ltd Secure mobile wireless device
US20040015591A1 (en) * 2002-07-18 2004-01-22 Wang Frank Xiao-Dong Collective TCP control for improved wireless network performance
US7765521B2 (en) * 2002-08-29 2010-07-27 Jeffrey F Bryant Configuration engine
US7503034B2 (en) * 2002-10-31 2009-03-10 International Business Machines Corporation Method and system for dynamically mapping archive files in an enterprise application
US8238946B2 (en) * 2003-03-07 2012-08-07 International Business Machines Corporation Method for personalizing messages delivered to a communication terminal that preserves the privacy of the recipient of the message
KR100586866B1 (ko) * 2003-12-08 2006-06-07 삼성전자주식회사 네트워크 상에서 서비스를 공유하기 위한 장치 및 방법
KR100567825B1 (ko) * 2004-01-08 2006-04-05 삼성전자주식회사 네트워크 상에서의 서비스 공유를 위한 장치 및 방법
US7778675B1 (en) 2005-01-14 2010-08-17 American Megatrends, Inc. Remotely accessing a computing device in a low-power state
US7509212B2 (en) * 2005-01-24 2009-03-24 International Business Machines Corporation Enabling services on a UAV
FR2892261A1 (fr) * 2005-10-17 2007-04-20 France Telecom Procede et systeme de gestion des applications d'un terminal mobile
US8374777B2 (en) * 2005-12-19 2013-02-12 International Business Machines Corporation GPS equipped devices that utilize geographical navigation bundles
KR100714712B1 (ko) * 2006-02-21 2007-05-04 삼성전자주식회사 컨테인먼트 프레임워크 환경에서 자원을 관리하는 장치 및방법
US11277598B2 (en) * 2009-07-14 2022-03-15 Cable Television Laboratories, Inc. Systems and methods for network-based media processing
US8588693B2 (en) * 2009-11-06 2013-11-19 Blackberry Limited Device, system and method for selecting, sharing and displaying electronic content
US20110111697A1 (en) * 2009-11-06 2011-05-12 Research In Motion Limited Device, system and method for selecting, sharing and displaying electronic content
US9052845B2 (en) * 2011-01-31 2015-06-09 Sap Se Unified interface for meta model checking, modifying, and reporting
US9841956B2 (en) 2011-01-31 2017-12-12 Sap Se User interface style guide compliance reporting
US9459846B2 (en) 2011-01-31 2016-10-04 Sap Se User interface style guide compliance

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4991199A (en) * 1988-05-05 1991-02-05 Transaction Technology, Inc. Computer and telephone apparatus with user friendly computer interface and enhanced integrity features
US5485370A (en) * 1988-05-05 1996-01-16 Transaction Technology, Inc. Home services delivery system with intelligent terminal emulator
US6304893B1 (en) * 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US5933816A (en) * 1996-10-31 1999-08-03 Citicorp Development Center, Inc. System and method for delivering financial services
US5923552A (en) * 1996-12-31 1999-07-13 Buildnet, Inc. Systems and methods for facilitating the exchange of information between separate business entities
WO1998037486A1 (en) 1997-02-18 1998-08-27 International Business Machines Corporation Method for lookup of packages and classes in java, and devices making use of this method
US6178510B1 (en) * 1997-09-04 2001-01-23 Gtech Rhode Island Corporation Technique for secure network transactions
US6339826B2 (en) * 1998-05-05 2002-01-15 International Business Machines Corp. Client-server system for maintaining a user desktop consistent with server application user access permissions
US6199762B1 (en) * 1998-05-06 2001-03-13 American Express Travel Related Services Co., Inc. Methods and apparatus for dynamic smartcard synchronization and personalization
US6351751B1 (en) * 1998-05-14 2002-02-26 Sun Microsystems, Inc. Persistent storage managers for configuring client/server environments
US6349333B1 (en) * 1998-12-04 2002-02-19 Sun Microsystems, Inc. Platform independent alarm service for manipulating managed objects in a distributed network management system

Also Published As

Publication number Publication date
CA2376857A1 (en) 2000-12-21
EP1192540B1 (en) 2018-07-11
AU5283200A (en) 2001-01-02
WO2000077633A1 (en) 2000-12-21
EP1192540A1 (en) 2002-04-03
US6430599B1 (en) 2002-08-06
JP2003502730A (ja) 2003-01-21
AU762637B2 (en) 2003-07-03

Similar Documents

Publication Publication Date Title
KR20020012594A (ko) 풋프린트 장치를 위한 정시공급 서비스
US6993570B1 (en) System and method for pushing personalized content to small footprint devices
JP4995367B2 (ja) 小フットプリント・デバイス・アプリケーション用の高性能ブックマーク
US6675351B1 (en) Table layout for a small footprint device
CA2300240C (en) Transparent loading resources from read-only memory for an application program
US6085198A (en) Integrated three-tier application framework with automated class and table generation
CA2495024C (en) System and method for adaptable provisioning of generic application content
EP1061458A2 (en) Caching of reduced forms of web pages on a small footprint device
US8499282B2 (en) System and method for extending capabilities and execution efficiency of script based applications
US7478408B2 (en) System and method for accessing objects in a platform dependent environment from a platform independent environment
US7490332B2 (en) System and method for accessing ActiveX objects in a platform dependent environment from objects in a platform independent environment
JPH1091446A (ja) Javaベースアプリケーションの発見とダウンロードのための分散オブジェクトシステムの利用
US20040019887A1 (en) Method, system, and program for loading program components
US7836456B1 (en) Seamless extension of shareable interface mechanism to servlet and extended applet model for inter-application communication
Singhal et al. The Java factor
KR20020022063A (ko) 소형 풋프린트 장치 애플리케이션 및 서비스와 네트워크에근거하는 서비스와의 통합
US20050144433A1 (en) System and method to export pre-boot system access data to be used during operating system runtime
JP2001042987A (ja) 小フットプリント・デバイスのアプリケーション・プログラム用のフォーム・ショートカット
Román et al. Unified Object Bus: Providing support for dynamic management of heterogeneous components
Kim et al. The spatial data server based on open gis standards in heterogeneous distributed environment
EP1560114A1 (en) Computer system and method for customized provisioning of application content
EP1560115A1 (en) Computer system and method for adaptable provisioning of generic application content
Gui et al. Federated trading model for object interoperation in DCE

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
NORF Unpaid initial registration fee