KR100928913B1 - 네트워크 기기 시스템 - Google Patents

네트워크 기기 시스템 Download PDF

Info

Publication number
KR100928913B1
KR100928913B1 KR1020077013003A KR20077013003A KR100928913B1 KR 100928913 B1 KR100928913 B1 KR 100928913B1 KR 1020077013003 A KR1020077013003 A KR 1020077013003A KR 20077013003 A KR20077013003 A KR 20077013003A KR 100928913 B1 KR100928913 B1 KR 100928913B1
Authority
KR
South Korea
Prior art keywords
function
network device
variable
memory
network
Prior art date
Application number
KR1020077013003A
Other languages
English (en)
Other versions
KR20070090911A (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 KR20070090911A publication Critical patent/KR20070090911A/ko
Application granted granted Critical
Publication of KR100928913B1 publication Critical patent/KR100928913B1/ko

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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
    • G06F9/544Buffers; Shared memory; Pipes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

본 발명의 네트워크 기기 시스템은 함수 처리형 시스템의 시스템이고, 각각의 네트워크 디바이스가 자신에게 할당된 함수를 수행함으로써 시스템 전체가 소정의 동작을 수행한다. 각각의 상기 네트워크 디바이스는 함수 메모리부(10), 변수 메모리 교환기(11), 실행 함수 선택기(12), 및 함수 실행부(13)을 포함한다. 변수 메모리 교환기(11)는 통신 선로를 통해 각각의 상기 네트워크 디바이스에 연결되어 있고, 각각의 상기 네트워크 디바이스의 상기 함수 메모리부(10)에 저장된 함수를 실행하는 데 필요한 변수를 저장하며, 상기 네트워크 디바이스들 사이에 상기 변수를 공유시킨다. 상기 실행 함수 선택기(12)는 상기 변수 메모리 교환기(11) 내에 저장된 변수를 참조하고, 상기 함수 메모리부(10)에 저장된 함수 중에서 실행 가능한 함수를 선택한다. 상기 함수 실행부(13)는 상기 실행 함수 선택기(12)에 의해 선택된 함수를 실행하고, 상기 실행 결과에 의해 상기 변수 메모리 교환기(11) 내에 저장된 변수를 갱신한다.
시스템, 네트워크 기기, 네트워크 디바이스, 함수 처리형, 함수, 분산, 협상, 위임

Description

네트워크 기기 시스템 {NETWORK EQUIPMENT SYSTEM}
본 발명은 네트워크 기기 시스템에 관한 것이며, 더욱 구체적으로는 분산 함수 처리형 시스템의 네트워크 기기 시스템에 관한 것이다.
복수의 네트워크가 인터넷과 같은 통신 선로를 통해 서로 연결되어 있고 서로 협력하여 소정의 동작(action)을 수행하는 네트워크 기기 시스템이 제공되고 있다. 예를 들면, 홈 서버 및 가정 내의 기기 디바이스(equipment device)(예컨대, 정보 표시 디바이스, 에어컨디셔닝 제어 디바이스 등)가 인터넷을 통해 서로 연결되어 있고, 상기 가정 내의 장치를 제어하고/하거나 인터넷을 통해 가정 내의 전력을 모니터링하는 시스템이 제공되고 있다.
지금까지, 이러한 시스템을 설계하기 위해, 객체 지향 언어가 널리 이용되었다. 이 객체 지향 언어(object-oriented language)는 은닉(encapsulation), 상속(inheritance), 다형성(polymorphism)과 같은 특성이 있고, 특히 대규모 소프트웨어 개발에 효과적이다.
객체 지향 언어로 구성된 네트워크 기기 시스템에 새로운 네트워크 디바이스가 추가될 때, 시스템 전체에 대한 새로운 네트워크 디바이스의 영향을 조사할 필요가 있는데, 이는 시스템이 복잡해짐에 따라 많은 시간과 노력을 필요로 한다. 이것은 객체 지향 언어 내의 객체들이 상호작용하면서 동작하기 때문이며, 객체가 추가될 때, 다른 객체들의 상태는 추가되는 객체에 의해 영향을 받는다. 시스템에 대한 조사가 불완전하면, 소위 교착상태(deadlock)가 발생할 수 있다. 따라서, 시스템이 복잡해짐에 따라 객체 지향 언어로 구성된 네트워크 기기 시스템에 새로운 네트워크 디바이스를 추가하는 것이 어려워진다. 또, 객체는 많은 내부 상태 정보를 가지기 때문에, 시스템 조사 시에 문제가 발생하면, 문제를 재현(re-create)하기 위해 내부 상태 정보의 식별 및 상태의 재현이 필요하고, 그래서 디버깅이 용이하지 않다.
그런데, 심사청구되지 않은 일본공개특허공보 제8-137697호는, 복수의 에이전트가 연결되어 소정의 시스템 특성에 따라 태스크(task)를 처리하기 위해 함께 작동하는 자율 분산형 시스템(autonomous distributed system)을 개시한다. 이 분산형 시스템에서, 전체 시스템의 문제는 독립적으로 해결될 수 있는 하위 문제(subproblem)로 분해되고, 각 에이전트는 협상에 의해 하위 문제 중의 자신의 몫을 결정한다. 각 하위 문제는 다른 서브 문제들에 종속하지 않도록 구성되어 있고, 각 하위 문제의 결과는 다른 하위 문제들을 필요로 하지 않는다. 이 자율 분산형 시스템에서는, 각 에이전트가 문제를 자율적으로 해결하기 때문에, 시스템 구성의 변경과 같은, 시스템의 유지가 용이하게 된다고 기술되어 있다.
그래서, 시스템 변경을 용이하게 처리하기 위해, 이러한 자율 분산형 시스템의 전술한 네트워크 기기 시스템에의 적용을 생각할 수 있다. 하지만, 전술한 네트워크 기기 시스템에서는 전체 시스템의 문제를 하위 문제로 분해하는 것이 곤란 하고 분해된 하위 문제들 사이에 의존 관계가 존재하기 때문에 상기 공개공보의 자율 분산형 시스템을 적용하는 것이 곤란하다.
상기한 문제를 고려하여, 본 발명의 목적은 시스템 변경 및 시스템 확장을 용이하게 처리할 수 있고, 교착상태가 발생할 염려가 없으며, 시스템을 최적화할 수 있는 네트워크 기기 시스템을 제공하는 것이다.
상기한 문제를 해결하기 위해, 본 발명의 발명자는 소위 함수형 언어(functional language)라고 하는 것에 주의를 집중하였다. 함수형 언어는 수학적인 언어 규약(mathematical language specification)을 가지는 프로그램 언어(예를 들면, Haskell)으로, 상태에 대한 개념이 없고, 그 결과는 오로지 인수(들)에 의해서만 결정되며, 부작용(side-effect)는 없고, 참조의 투명성(referential transparency)을 가진다.
본 발명의 네트워크 기기 시스템은 통신 선로에 연결된 복수의 네트워크 디바이스가 서로 협력하여 소정의 동작을 수행하는 네트워크 기기 시스템이며, 전체 시스템은 함수형 언어로 이루어지는 함수들의 조합으로 구성된다. 그리고, 전체 시스템의 함수들은 각 네트워크 디바이스에 적절하게 분산되고, 각 네트워크 디바이스는 할당된 함수(함수들)를 수행함으로써, 네트워크 기기 시스템은 전체로서 소정의 동작을 실행한다.
각 네트워크 디바이스는 함수 메모리부, 변수 메모리 교환기(variable memory exchanger), 실행 함수 선택기, 및 함수 실행부를 포함한다. 상기 함수 메모리부는 자신의 네트워크 디바이스가 실행하여야 하는 함수를 저장한다. 상기 변수 메모리 교환기는 상기 통신 선로를 통해 각각의 상기 네트워크 디바이스에 연결되어 있고, 각각의 상기 네트워크 디바이스의 상기 함수 메모리부에 저장된 함수들을 실행하는 데 필요한 변수를 저장하며, 상기 네트워크 디바이스들 사이에 상기 변수를 공유시킨다. 상기 실행 함수 선택기는 상기 변수 메모리 교환기 내에 저장된 변수를 참조하고, 자신의 네트워크 디바이스의 상기 함수 메모리부에 저장된 함수 중에서 실행 가능한 함수를 선택한다. 상기 함수 실행부는 상기 변수 메모리 교환기 내에 저장된 변수를 사용하여 상기 실행 함수 선택기에 의해 선택된 함수를 실행하고, 상기 변수 메모리 교환기 내에 저장된 변수를 상기 함수의 실행에 의해 취득된 변수로 갱신한다.
함수형 언어에서는, 상기 함수의 실행에 필요한 변수를 모니터링하고 함수의 실행에 필요한 모든 변수가 필연적으로 생성되면(constrained), 상기 함수를 실행할 수 있다. 종래에 연구된 함수 처리형 시스템에서는, 각 함수들이 주로 컴퓨터 내부에서 처리되기 때문에 함수의 실행에 필요한 변수를 모니터링하는 것이 용이하다. 하지만, 본 발명에서처럼 네트워크 디바이스들이 여러 원격지에 설치되어 있는 네트워크 기기 시스템에 함수 처리형 시스템을 적용하는 경우, 변수를 모니터링하는 방법이 문제가 된다. 본 발명의 발명자는 각 네트워크 디바이스에 전술한 함수 메모리부, 변수 메모리 교환기, 실행 함수 선택기 및 함수 실행부를 제공함으로써 이 문제를 해결하였다.
즉, 본 발명의 네트워크 기기 시스템에서는, 전체 시스템의 함수의 실행에 필요한 변수들을 저장하고 통신 선로를 통해 연결된 각각의 네트워크 디바이스의 변수 메모리 교환기에서 공유한다. 실행 함수 선택기는 변수 메모리 교환기에 의해 공유되는 함수를 참조하고, 자신의 네트워크 디바이스의 함수 메모리부에 저장된 함수들 중에서 실행 가능한 것이 있으면, 그 함수를 선택한다. 함수 실행부는 실행 함수 선택기에 의해 선택된 함수를 실행하고, 실행 결과에 의해 변수 메모리 교환기 내에 저장된 변수를 갱신(또는 필연적으로 생성)한다. 갱신된 변수는 다른 함수에 의해 사용되고, 함수의 실행 결과에 따라 변수 메모리 교환기 내에 저장된 변수가 다시 갱신된다.
상기한 구성에 의해, 함수 처리형 시스템이 분산형 네트워크 디바이스에 적용되는 분산 함수 처리형 시스템(distributed functional processing system)을 구현할 수 있다. 이 네트워크 기기 시스템은 함수 처리형 시스템으로 구성되기 때문에, 새로운 함수가 추가되더라도 부작용이 없어서 시스템 변경을 용이하게 처리할 수 있다. 또, 함수 처리형 시스템은 실행 순서에 종속되지 않기 때문에, 교착상태가 발생할 염려가 없다. 그리고, 각 네트워크 디바이스에 함수를 적절하게 분사시킴으로써 시스템의 최적화가 가능하다. 함수를 분산시키는 방법에 무관하게, 시스템 전체의 거동(behavior)이 변화하지 않는다는 것을 수학적으로 보증할 수 있다.
바람직하게는, 상기 함수 메모리부는 자신의 네트워크 디바이스에 고유한 함수를 적어도 저장한다. 상기 자신의 네트워크 디바이스에 고유한 함수는 자신의 네트워크 디바이스에서만 실행할 수 있는 함수이고, 많은 경우에, 예를 들면 센서의 값을 판독하는 함수와 같은, 입출력에 관한 함수이다. 상기 네트워크 기기 시스템에서, 각각의 네트워크 디바이스는 많은 경우에, 예를 들면 센서의 값을 판독하는 함수와 같은, 자신의 네트워크 디바이스에 고유한 함수를 가지므로, 모든 함수를 시스템 전체에 분산시키는 것은 불가능하다. 따라서, 자신의 네트워크 디바이스의 함수 메모리부에 자신의 네트워크 디바이스에 고유한 함수를 적어도 저장함으로써, 그리고 자신의 네트워크 디바이스에 고유하지 않은 다른 함수들을 각 네트워크 디바이스에 분산 및 할당함으로써, 프로세스가 입출력에 따라 시간순으로 실행되는 함수 처리형 시스템의 네트워크 기기 시스템을 구현할 수 있다.
바람직하게는, 상기 네트워크 디바이스는 또한 함수 분산 협상부(function distribution negotiation part)를 가진다. 상기 함수 분산 협상부는 상기 통신 선로를 통해 다른 네트워크 디바이스들에 연결되어 있고, 상기 함수 메모리부에 저장된 함수들 중 자신의 네트워크 디바이스에 고유한 함수 이외의 함수를 다른 네트워크 디바이스들에 위임하는 능력(capability)을 가진다. 상기 함수 메모리부는 상기 함수 분산 협상부에 의해 다른 네트워크 디바이스들에 위임된 상기 함수를 저장한다. 이 경우에, 함수의 계산 에이전트를 동적으로 변경할 수 있어, 네트워크 기기 시스템을 최적화할 수 있고 분산 방식으로 네트워크 기기 시스템의 능력을 증대시킬 수 있다.
바람직하게는, 상기 함수 분산 협상부는 각각의 상기 네트워크 디바이스에게 처리부하를 문의하고, 각각의 상기 네트워크 디바이스로부터 응답을 수신하며, 상기 응답에 기초하여 상기 네트워크 디바이스에 함수를 위임할 것인지를 결정한다. 이 경우에, 상기 함수를 위임하기에 바람직한 네트워크 디바이스의 선택이 가능하다. 또, 상기한 처리 부하는 각 네트워크 디바이스의 부하 상태, 함수의 실행에 필요한 처리 시간 등을 포함한다.
바람직하게는, 상기 복수의 네트워크 디바이스 중 하나 이상은 본 네트워크 기기 시스템에 사용되는 상기 함수의 임플리멘테이션(implementation)을 저장하기 위한 함수 저장소(function repository)를 가지고, 각각의 상기 네트워크 디바이스는 또한 상기 함수 실행부가 함수를 실행하는데 필요한 소정의 함수의 임플리멘테이션을 저장하기 위한 함수 임플리멘테이션 메모리부, 및 상기 함수 분산 협상부에 의해 다른 네트워크 디바이스들에 위임된 함수 중에서 상기 함수 임플리멘테이션 메모리부에 저장되어 있지 않은 함수의 임플리멘테이션을, 상기 함수 저장소로부터 취득하는 함수 임플리멘테이션 추가부를 가진다. 이 경우에, 시스템의 변경 및 확장이 용이하게 된다.
바람직하게는, 각각의 상기 네트워크 디바이스는 또한 상기 변수 메모리 교환기에 저장된 변수들을 상기 네트워크 디바이스들 사이에 공유되는 공유 변수와 상기 네트워크 디바이스들 사이에 공유되지 않는 비공유 변수로 분류하는 변수 공개 제어기(variable publication controller)를 가지고, 상기 변수 메모리 교환기는 상기 공유 변수만을 상기 네트워크 디바이스들에게 통신 선로를 통해 공유시킨다. 이 경우에, 변수 메모리 교환기가 불필요한 변수를 공유시키는 것을 방지할 수 있고, 변수 공유로 인한 네트워크 부하를 낮출 수 있다.
바람직하게는, 상기 복수의 네트워크 디바이스는 적어도 센터 서버, 가정에 설치된 홈 서버, 및 상기 가정에 설치된 기기 디바이스를 포함한다. 이 경우에, 상기 센터 서버, 상기 가정에 설치된 홈 서버, 및 상기 가정에 설치된 기기 디바이스를 서로 연결하는 홈 시스템을 만들 수 있고, 높은 처리 능력을 가지는 상기 센트 서버 또는 상기 홈 서버에 함수들을 분산시킴으로써 네트워크 기기 시스템의 처리 능력을 증대시킬 수 있다.
도 1은 본 발명의 실시예에 따른 네트워크 기기 시스템을 구성을 나타낸 도면이다.
도 2는, 도 1의 네트워크 기기 시스템에 사용된 각 네트워크 디바이스의 구성을 나타낸 블록도이다.
도 3은, 도 1의 네트워크 기기 시스템의 함수를 실행하는 절차를 설명하기 위한 흐름도이다.
도 4a는, 도 1의 네트워크 기기 시스템에서의 함수 위임을 설명하기 위한 도면이다.
도 4b는, 도 1의 네트워크 기기 시스템의 함수 위임을 설명하기 위한 도면이다.
이하, 첨부 도면을 참조하여 본 발명에 대해 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 네트워크 기기 시스템을 구성을 나타낸 도면이다. 이 네트워크 기기 시스템에는, 네트워크 디바이스로서, 센터 서버(1); 가정(H)에 설치된 홈 서버(3); 그리고 정보 표시 디바이스(4) 및 가정(H)에 설치된 에어 컨디셔닝 제어 디바이스(5)와 같은 각종 기기 디바이스가 인터넷(2)과 LAN을 통해 서로 연결되어 있다. 이해하기 쉽도록, 이 실시예에서는 상기한 네트워크 디바이스들만을 예로 들었지만, 네트워크 디바이스는 물론 상기한 것으로 한정되지 않는다.
센터 서버(1)는 네트워크 능력(capability)을 가지는 범용의 컴퓨터 디바이스로 구성되고, 이 네트워크 기기 시스템에서 사용되는 함수들의 임플리멘테이션을 저장하기 위한 함수 임플리멘테이션 저장소(6)를 가진다.
홈 서버(3)는 센터 서버(1)와 협력하여 LAN을 통해 여러 가지 능력(기능)을 가정 내의 각 기기 디바이스에 제공한다. 홈 서버(3)는 게이트웨이의 능력, 웹서버의 능력 등을 가질 수 있다.
정보 표시 디바이스(4)는 디스플레이를 가지고, 이 디스플레이에 다양한 정보를 표시할 수 있다.
에어 컨디셔닝 제어 디바이스(5)는 가정 내부의 온도를 검출하기 위한 온도 센서(도시하지 않음), 인터넷을 통해 가정의 내부와 외부 모두의 에어 컨디셔닝을 제어할 수 있다. 사용자가 가정에서 에어 컨디셔닝 제어 디바이스(5)를 조작하는 경우, 에어 컨디셔닝 제어 디바이스(5)의 조작 화면이 정보 표시 디바이스(4)의 디스플레이에 표시되고, 사용자는 정보 표시 디바이스(4)의 디스플레이를 보면서 에어 컨디셔닝 제어 디바이스(5)를 조작할 수 있다.
이 네트워크 기기 시스템은 함수 처리형 시스템으로 전체 시스템이 함수들의 조합으로 구성되어 있다. 즉, 시스템 전체의 능력이 함수형 언어의 함수들의 조합으로 기술되어 있다. 함수 처리형 시스템의 시스템에서, 임의의 네트워크 디바이스는 각 네트워크 디바이스에 고유한 함수를 제외한 함수를 실행할 수 있다. 다시 말해, 네트워크 기기 시스템에서, 함수의 실행 장소, 즉 계산 엔티티는(calculation entity) 고려되지 않는다. 그러므로, 이 네트워크 기기 시스템에서, 시스템 전체에 필요한 함수들은 각 네트워크 디바이스에 적절하게 분산되어 있고, 각 네트워크 디바이스는 자신에게 할당된 함수를 실행하고, 이로써 네트워크 기기 시스템은 전체로서 소정의 동작을 수행한다.
함수를 분산시키기 위한 방법에 관하여, 예를 들면 네트워크 디바이스들의 조합에 따라 각각의 네트워크 기기에 할당되는 함수의 리스트는 센터 서버(1) 또는 홈 서버(3)에 저장될 수 있고, 센터 서버(1) 또는 홈 서버(3)는 리스트를 참조하면서 네트워크 디바이스의 조합에 따라 함수들을 각각의 네트워크 디바이스에 통계적으로 분산시킬 수 있다. 또는, 네트워크 디바이스들의 조합이 리스트에 포함되어 있지 않거나, 센터 서버(1) 또는 홈 서버(3)가 리스트를 보유하고 있지 않은 경우, 센터 서버(1) 또는 홈 서버(3)는 각 네트워크 디바이스의 처리 용량(processing capacity)(또는, 규약(specification))을 각각의 네트워크 디바이스로부터 인출할 수 있으며, 각 네트워크 디바이스의 처리 용량에 기초하여 최적의 분산 방법을 시물레이션할 수 있고, 시뮬레이션 결과에 기초하여 함수를 각각의 네트워크에 동적으로 분산시킬 수 있다. 또는, 상세하게 후술하는 바와 같이, 각각의 네트워크 디바이스는 서로 협상에 의해 함수들을 동적으로 분산시킬 수도 있다.
도 2에 도시한 바와 같이, 홈 서버(3), 정보 표시 디바이스(4), 및 에어 컨디셔닝 제어 디바이스(5)는 각각, 함수 메모리부(function memory part)(10), 변수 메모리 교환기(variable memory exchanger)(11), 실행 함수 선택기(execution function selecto(12), 함수 실행부(function execution part)(13), 함수 분산 협상부(function distribution negotiation part)(14), 함수 임플리멘테이션 메모리부(15) (function implementation memory part), 함수 임플리멘테이션 추가부function implementation addition part(16), 및 변수 공개 제어부(variable publication controller)(17)를 가진다.
함수 메모리부(10)는 자신의 네트워크 디바이스가 실행하여야 하는 함수를 저장한다.
자신의 네트워크 디바이스가 실행하여야 하는 함수에 관한 한, 대략 다음 3종류의 함수가 있다.
첫째, 함수는 다른 네트워크 디바이스에 의해 실행될 수 없는 자신의 네트워크 디바이스에 고유한 함수이다. 예를 들면, 에어 컨디셔닝 제어 디바이스(5)의 온도 센서 값을 판독하는 함수가 있다고 하면, 온도 센서를 구비한 에어 컨디셔닝 제어 디바이스(5)만 이 함수를 실행할 수 있다. 위와 같이, 함수 메모리부(10)는 자신의 네트워크 디바이스에 고유한 함수를 적어도 저장한다.
둘째로, 함수는 센터 서버(1), 또는 인터넷(2), 또는 다른 네트워크 디바이스와의 협상 결과에 의해 다른 네트워크 디바이스로부터 위임된 함수이다.
셋째로, 함수는 네트워크 디바이스의 공장에서 함수 메모리부(10)에 저장되었고, 다른 네트워크 디바이스에 위임되지 않은 함수이다.
변수 메모리 교환기(11)는 LAN과 인터넷 접속과 같은 통신 선로를 통해 각각의 네트워크 디바이스에 연결되어 있고, 각각의 네트워크 디바이스의 함수 메모리부(10)에 저장된 함수를 실행하는 데 필요한 변수를 저장하며, 네트워크 디바이스들 사이에 변수를 공유시킨다. 변수를 공유시키는 방법에 대해 설명하면, 예컨대 공유 변수가 갱신된 변수 메모리 교환기(11)가 공유 변수의 갱신 리스트를 각각의 네트워크 디바이스의 변수 메모리 교환기(11)에 멀티캐스팅으로 전송하고, 공유 변수의 갱신 리스트를 수신한 각각의 변수 메모리 교환기(11)가 갱신 리스트 내에 리스팅된 공유 변수를 저장할 수 있다.
실행 함수 선택기(12)는 변수 메모리 교환기(11)에 의해 공유된 변수를 참조하고, 자신의 네트워크 디바이스의 함수 메모리부(10)에 저장된 함수 중에서 실행 가능한 함수를 선택한다.
함수 실행부(13)는 변수 메모리 교환기(11) 내에 저장된 변수(들)를 가지고(즉, 사용하여) 실행 함수 선택기(12)에 의해 선택된 함수를 실행한다. 또 함수 실행부(13)는 변수 메모리 교환기(11) 내에 저장된 변수를 함수의 실행에 의해 취득된 변수로 갱신한다.
함수 임플리멘테이션 메모리부(15)는 함수 실행부(13)이 함수 메모리부(10)에 저장된 함수(들)를 실행하는 데 필요한 함수 임플리멘테이션을 저장한다.
이하, 변수 메모리 교환기(11), 실행 함수 선택기(12), 함수 실행부(13), 및 함수 임플리멘테이션 메모리부(15)에 대해 도 3의 흐름도를 참조하여 상세하게 설명한다.
이제, 다음의 두 함수가 일정한 네트워크 디바이스의 함수 메모리부(10)에 저장되어 있다고 하자. 다시 말해, 다음의 두 함수가 일정한 네트워크 디바이스에 할당되어 있다고 하자.
c = f(a, b); (함수 1)
e = g(d); (함수 2)
여기서, "a", "b", "c", 및 "d"는 각각 변수이고, f(a, b)는 인수(argument)가 변수 "a" 및 "b"인 함수를 의미하고, g(d)는 인수가 변수 "d"인 함수를 의미한다.
실행 함수 선택기(12)는 변수 메모리 교환기(11)에 의해 공유된 변수를 참조하고, 자신의 네트워크 디바이스의 함수 메모리부(10)에 저장되어 있는 함수 f(a,b), g(d)의 실행에 필요한 변수 "a", "b", 및 "d"가 필연적으로 생성되어 있는지 여부를 검사한다(단계 S1). 구체적으로 설명하면, 실행 함수 선택기(12)는 자신의 네트워크 디바이스의 함수 메모리부(10)에 저장되어 있는 함수의 실행에 필요한 변수 "a", "b", 및 "d"와 변수 메모리 교환기(11) 내에 저장된 변수들의 패턴 대조(pattern matching)를 수행한다.
이제는, 변수 "a" 및 "b"가 어떤 시점에 필연적으로 생성되어 있다고 하자. 실행 함수 선택기(12)가 자신의 네트워크 디바이스의 함수 메모리부(10)에 저장되어 있는 함수 f(a,b)의 실행에 필요한 변수 "a" 및 "b"가 변수 메모리 교환기(11) 내에 필연적으로 생성되어 있음을 패턴 대조에 의해 검출한 경우, 실행 함수 선택기(12)는 실행 가능해진 함수 f(a,b)를 선택한다(단계 S2).
실행 함수 선택기(12)가 함수 f(a,b)를 선택한 경우, 함수 실행부(13)는
함수 임플리멘테이션 메모리부(15)로부터 함수 f(a,b)를 실행하는 데 필요한 임플리멘테이션을 취득하고, 변수 메모리 교환기(11) 내에 저장된 변수 "a" 및 "b"를 사용하여 함수 f(a, b)를 실행한다(단계 S3). 그리고, 함수 실행부(13)는 상기 함수의 실행으로 취득된 변수 "c"(c = f(a, b)) 에 의해 변수 메모리 교환기(11)에 저장된 변수를 갱신한다(단계 S4). 이렇게 하여, 변수 "c"는 변수 메모리 교환기(11) 내에 새롭게 저장되고, 네트워크 디바이스들 사이에 공유된다.
변수 "c"는 이 네트워크 디바이스에 의해 사용되지 않지만, 다른 네트워크 디바이스에 의해 사용되고 있고, 변수 "c"의 사용에 의해, 새로운 변수가 필연적으로 생성되고(또는 갱신되고), 마찬가지로 함수들은 연쇄 반응으로 차례대로 실행된다.
한편, 이 네트워크 디바이스는 단계 S1로 돌아가서, 변수 메모리 교환기(11)에 의해 공유된 변수들을 다시 참조하고 자신의 네트워크 디바이스의 함수 메모리부(10)에 저장된 함수 g(d)의 실행에 필요한 변수 "d"가 필연적으로 생성되어 있는지 여부를 검사한다. 변수 "d"가 어떤 시점에서 생성되어 있으면, 실행 가능해진 함수 g(d)가 선택된다(단계 S2). 또, 함수 실행부(13)는 함수 임플리멘테이션 메모리부(15)로부터 함수 g(d)의 실행에 필요한 임플리멘테이션을 취득하고, 함수 g(d)를 실행한다(단계 S3). 그리고 함수 실행부(13)는 취득된 변수 "e"(e=g(d))에 의해 변수 메모리 교환기(11) 내에 저장된 변수들을 갱신한다(단계 S4).
전술한 바와 같이, 이 함수 처리형 시스템의 네트워크 기기 시스템에서는, 시스템 전체의 함수 중에서 함수의 실행에 필요한 변수가 필연적으로 생성되어 있는 함수가 차례로 순차 실행되고, 그 결과로, 시스템 전체의 모든 함수가 실행된다.
실행 함수 선택기(12)가 규칙적인 간격으로 변수 메모리 교환기(11) 내의 변수를 참조하는 대신에, 변수가 갱신되는 경우, 이 갱신이 변수 메모리 교환기(11)를 트리거하여, 자신의 기기 디바이스의 실행 함수 선택기(12)에 이벤트(event) 신호를 보내도록 할 수 있다. 또는, 실행 함수 선택기(12)가 변수 메모리 교환기(11) 내에 공유된 모든 변수를 참조하는 대신에, 미리 규정된 필요한 변수들만을 부분적으로 참조할 수 있다. 이 경우에, 실행 함수 선택기(12)가 변수 메모리 교환기(11) 내에 저장된 모든 변수를 참조하는 것에 비해, 실행 함수 선택기(12)의 부하를 감소시킬 수 있고, 실행 함수 선택기(12)의 참조 속도를 증대시킬 수 있다.
다음에, 함수 분산 협상부(14)에 대해 상세하게 설명한다. 함수 분산 협상부(14)는 LAN 등을 통해 다른 네트워크 디바이스의 함수 분산 협상부(14)와 연결되어 있고, 함수 메모리부(10)에 저장된 함수들을 다른 네트워크 디바이스들에 위임시키는 능력을 가진다.
앞서 설명한 바와 같이, 이 네트워크 기기 시스템은 함수 처리형 시스템이기 때문에, 임의의 네트워크 디바이스는 각각의 네트워크 디바이스에 고유한 함수를 제외한 함수를 실행할 수 있고, 각각의 네트워크 디바이스에 함수를 적절하게 분산시킴으로써 네트워크 기기 시스템의 능력을 최적화 및 강화할 수 있다.
센터 서버(1) 또는 홈 서버(3)에 의해 중심적으로 함수를 분산시키는 대신에, 함수 분산 협상부(14)를 제공하여 각각의 네트워크 디바이스에 의해 자신의 네트워크 디바이스에 할당된 함수를 다른 네트워크 디바이스에 동적으로 분산시킨다.
함수 분산 협상부(14)가 활성화되는 타이밍은 특히 한정되어 있지 않지만, 함수 분산 협상부(14)는 예를 들면 자신의 기기 디바이스의 처리 용량이 한계에 도달한 경우(이 경우에, 각각의 기기 디바이스는 자신의 기기 디바이스의 CPU의 용량 사용율을 모니터링하기 위한 검출 수단을 가진다), 또는 네트워크 기기 시스템에 새로운 네트워크 디바이스가 추가되는 경우, 또는 네트워크 기기 시스템의 소프트웨어가 갱신된 경우 등에 활성화될 수 있다.
함수 분산 협상부(14)가 활성화되면, 함수 분산 협상부(14)는 자신의 네트워크 디바이스의 함수 메모리부(10)에 저장된 함수 중에서 각각의 네트워크 디바이스에 고유한 함수를 제외한 함수들의 계산 엔티티(caculation entity)에 대해 다른 네트워크 디바이스의 함수 분산 협상부(14)와 협상한다. 구체적으로 설명하면, 함수 분산 협상부(14)는 각각의 네트워크 디바이스에 그들의 처리부하(처리 시간, 처리 용량 등을 포함함)에 대해 멀티캐스팅에 의해 문의하고, 각각의 네트워크 디바이스로부터 응답을 수신한다. 그러고나서, 그 응답에 따라 함수 분산 협상부(14)는 해당 함수를 위임하기에 가장 적합한 네트워크 디바이스를 최종적으로 결정한다. 바람직하게는, 함수 분산 협상부(14)는 처리 부하뿐만 아니라 통신 오버헤드와 같은 상태도 고려하여 해당 함수를 위임할 네트워크 디바이스를 결정한다. 함수 분산 협상부(14)가 상기 응답에 의해 자신의 네트워크 디바이스가 해당 함수를 수행하는 것이 가장 적합한 것으로 판정하면, 해당 함수를 위임하지 않고 자신의 네트워크 디바이스에서 해당 함수를 실행한다.
함수를 위임받은 네트워크 디바이스는 위임된 함수를 함수 메모리부(10)에 저장한다. 그 후로, 그 함수는 위임받은 네트워크 디바이스에 의해 실행된다.
전술한 바와 같이, 부하 상태, 처리 시간 및 처리 능력에 따라 함수의 계산 엔티티를 동적으로 변경함으로써, 네트워크 기기 시스템의 최적화 및 능력 강화가 동적으로 그리고 분산적으로 가능하다.
이하, 함수 분산 협상부(14)에 대해 구체적인 예를 들어 설명한다.
도 4a에서, 가정에 정보 표시 디바이스(4)와 에어 컨디셔닝 제어 디바이스(5)가 설치되어 있다고 하자. 에어 컨디셔닝 제어 디바이스(5)와 정보 표시 디바이스(4)는 LAN을 통해 서로 연결되어 있고, 사용자가 에어 컨디셔닝 제어 디바이스(5)를 사용하는 경우, 에어 컨디셔닝 제어 디바이스(5)의 조작 화면이 정보 표시 디바이스(4)의 디스플레이에 표시되고, 사용자는 정보 표시 디바이스(4)의 디스플레이를 보면서 에어 컨디셔닝 제어 디바이스(5)를 조작할 수 있다.
또한 함수 A, B, 및 C가 에어 컨디셔닝 제어 디바이스(5)에 할당되어 있고 이 함수들이 에어 컨디셔닝 제어 디바이스(5)에 저장되어 있다고 하자. 함수 A는 에어 컨디셔닝 제어 디바이스(5)에 고유한 함수이고(여기서, 함수 A를 에어 컨디셔닝 제어 디바이스 5의 온도 센서의 값을 판독하는 함수라고 가정한다), 함수 B 및 C는 에어 컨디셔닝 제어 디바이스(5)에 고유하지 않은 함수이므로 이들을 다른 네트워크 디바이스들에 위임시킬 수 있다. 함수 C를 정보 표시 디바이스(4)에 표시되는 에어 컨디셔닝 제어 디바이스(5)의 조작 화면을 생성하는 함수라고 가정한다(이하, 그래픽 생성 함수 C).
도 4a의 경우, 먼저, 에어 컨디셔닝 제어 디바이스(5)의 함수 A(즉, 온도 세서의 값을 판독하는 함수)가 에어 컨디셔닝 제어 디바이스(5)에 의해 실행된다. 다음에, 함수 A의 실행에 의해 필연적으로 생성되는 변수(들)에 기초하여 함수 B, C, 또는 다른 함수가 실행된다. 그런 다음, 해당 함수의 실행에 의해 필연적 생성된 변수(또는 변수들)에 기초하여 다른 함수가 실행되고, 유사한 방식으로, 정보 표시 디바이스(4) 및 에어 컨디셔닝 제어 디바이스(5)의 모든 함수들이 차례로 시간순으로 실행된다.
다른 예에서, 예를 들면 홈 시큐리티 시스템(home security system)에서는, 사람 검출 센서, 조명 장치, 카메라 디바이스, 정보 표시 디바이스, 홈 서버 등이 네트워크 디바이스로서 동작한다. 먼저, 사람 검출 센서가 사람 검출 함수를 실행하고, 이것은 자신의 변수 메모리 교환기(11) 내에 사람 검출 함수의 실행에 의해 얻은 변수들을 필연적으로 생성한다. 다음에, 변수의 필연적 생성에 응답하여, 조명 장치 및 카메라 디바이스에서, 필연적으로 생성된 변수를 입력으로 사용하는 함수들이 실행되고, 그 결과로서 예를 들면 조명 장치가 조명을 비추거나, 카메라 디바이스가 촬영을 개시할 수 있다. 또, 카메라 디바이스가 함수 처리의 결과로서 변수(예를 들면, 촬영 시각(shooting time) 등을 의미하는 변수)를 필적으로 발생시키고, 그 변수를 네트워크 디바이스들 사이에 공유시키는 경우, 홈 서버는 그 변수를 입력으로 사용함으로써 웹브라우저를 구비하는 TV와 같은 정보 표시 디바이스 상에 촬영 시각을 표시하기 위한 함수를 실행한다. 위와 같이하여, 홈 시큐리티 시스템을 구현할 수 있다.
그런데, 도 4a의 경우에는 그래픽 생성 함수 C이 에어 컨디셔닝 제어 디바이스(5)에 할당되어 있기 때문에, 에어 컨디셔닝 제어 디바이스(5)의 조작 화면은 에어 컨디셔닝 제어 디바이스(5) 자체에서 생성된다. 하지만, 에어 컨디셔닝 제어 디바이스(5)는 처리 용량이 부족하기 때문에, 정보 표시 디바이스(4)에 단순한 조작 화면만 보여줄 수 있을 뿐이다.
여기서, 도 4b에 도시한 바와 같이, 도 4a의 네트워크 기기 시스템에 고처리 능력을 가지는 홈 서버(3)가 추가된다고 하자. 홈 서버(3)가 네트워크 기기 시스템에 새롭게 설치되는 경우, 에어 컨디셔닝 제어 디바이스(5)의 함수 분산 협상부(14), 홈 서버(3), 및 정보 표시 디바이스(4)는 네트워크 기기 시스템에 새로운 네트워크 디바이스의 설치에 의해 발생된 트리거에 의해 함수들의 계산 엔티티에 관한 협상을 개시한다.
에어 컨디셔닝 제어 디바이스(5)는 홈 서버(3) 및 정보 표시 디바이스(4)에, 함수 메모리부(10)에 저장된 함수 B 및 함수 C의 실행에 필요한 처리 시간 및 그들의 처리 용량에 관해 멀티캐스팅으로 문의한다. 함수 A는 에어 컨디셔닝 제어 디바이스(5)에 고유한 것이므로, 협상의 대상이 아니다.
문의한 결과, 함수 C(즉, 그래픽 생성 함수 C)에 관해, 홈 서버(3)가 처리 시간 및 처리 용량에서 정보 표시 디바이스(4) 및 에어 컨디셔닝 제어 디바이스(5)보다 뛰어난 것으로 밝혀지면, 에어 컨디셔닝 제어 디바이스(5)는 함수 C를 홈 서버(3)에 위임한다.
함수 C를 위임받은 홈 서버(3)는 함수 C를 자신의 함수 메모리부(10)에 저장하고, 그 이후로 함수 C는 홈 서버(3)에서 실행된다. 홈 서버(3)는 그림을 단시간 그릴 수 있고 높은 처리 능력을 가지기 때문에, 정보 표시 디바이스(4)의 디스플레이에 다채로운 조작 화면을 고속으로 나타낼 수 있다.
위임되지 않은 함수 A 및 B는 이전처럼 에어 컨디셔닝 제어 디바이스(5)에 의해 실행된다.
전술한 바와 같이, 함수 분산 협상부(14)에 의해 함수의 계산 엔티티를 동적으로 변경할 수 있기 때문에, 네트워크 기기 시스템의 최적화 및 능력 증대가 가능하다. 또, 함수 처리형 시스템의 함수는 부작용이 없기 때문에, 함수가 위임되더라도 목표(target) 네트워크 디바이스의 원래의 동작에는 영향이 없다. 즉, 도 4b의 경우, 에어 컨디셔닝 제어 디바이스(5)의 그래픽 생성 함수 C가 위임되더라도, 홈 서버(3)의 원래의 동작은 보증될 수 있다. 물론, 에어 컨디셔닝 제어 디바이스(5)의 동작도 또한 보증된다.
도 4a 및 도 4b에서는 함수 분산 협상부(14)에 의해 처리 시간 및 그래픽 생성 능력이 향상되지만, 함수 분산 협상부(14)에 의해 동작 상태의 이력을 참조하는 이력 참조 능력 및 전력 소비를 낮추는 능력과 같은 다른 능력들도 향상시키는 것이 가능한 것은 물론이다.
그리고, 도 4a 및 도 4b에서, 함수 분산 협상부(14)의 협상 범위가 가정에 설치된 네트워크 디바이스인 홈 서버(3), 정보 표시 디바이스(4), 및 에어 컨디셔닝 제어 디바이스(5)만을 포함하지만, 도 1에 도시된 바와 같이 가정 내의 네트워크 디바이스가 인터넷(2)을 통해 센터 서버(1)에 연결되어 있으면, 각각의 함수 분산 협상부(14)는 센터 서버(1)를 포함하는 범위 내에서 협상할 수 있다. 함수가 센터 서버(1)에 위임되면, 처리 능력을 더욱 향상시킬 수 있다.
그런데, 함수 분산 협상부(14)에 의해 새로운 함수가 위임되면, 위임받은 네트워크 디바이스의 함수 임플리멘테이션 메모리부(15)에는 해당 함수의 임플리멘테이션이 저장되어 있지 않은 일이 발생할 수 있다. 네트워크 기기 시스템에 사용되는 모든 함수의 임플리멘테이션을 함수 임플리멘테이션 메모리부(15)에 저장하는 것도 가능할 수 있지만, 이는 기억 공간을 낭비이고 실제적이지 못하다. 또, 이것은 새롭게 추가되는 함수를 처리할 수 없다. 그래서, 도 2에 도시된 바와 같이, 각각의 네트워크 디바이스가 함수 임플리멘테이션 추가부(16)를 가지는 것이 바람직하다. 함수 임플리멘테이션 추가부(16)는 인터넷(2)을 통해 센터 서버(1)의 임플리멘테이션 저장소(6)에 연결되어 있다. 자산의 함수 임플리멘테이션 메모리부(15)에 임플리멘테이션이 저장되어 있지 않은 함수가 함수 분산 협상부(14)에 위임되는 경우, 함수 임플리멘테이션 추가부(16)는 인터넷을 통해 임플리멘테이션 저장소(6)로부터 함수의 임플리멘테이션을 취득한다. 이로써, 함수 실행부(13)는 해당 함수의 임플리멘테이션이 자신의 함수 임플리멘테이션 메모리부(15)에 저장되어 있지 않더라도 그 함수를 수행할 수 있게 된다. 또, 새로운 네트워크 디바이스가 네트워크 기기 시스템에 추가되면, 단지 그 네트워크 디바이스의 임플리멘테이션을 임플리멘테이션 저장소(6)에 저장함으로써, 임의의 네트워크 디바이스가 해당 함수를 실행하는 것이 가능해진다. 함수 임플리멘테이션 추가부(16)는 함수의 임플리멘테이션을 임플리멘테이션 저장소(6)뿐 아니라 해당 함수가 위임된 네트워크 디바이스로부터도 취득할 수 있다.
도 2에 도시된 바와 같이, 더욱 바람직한 시스템 구성에서는, 각각의 네트워크 디바이스가 변수 공개 제어기(17)를 가진다. 변수 공개 제어기(17)는 변수 메모리 교환기(11) 내에 저장된 변수들을 네트워크 디바이스들 사이에 공유되는 공유 변수와 네트워크 디바이스들 사이에 공유되지 않는 비공유 변수로 분류하고, 공유 변수만을 네트워크 디바이스들에게 통신 선로를 통해 공유시킨다.
더욱 상세하게는, 변수 메모리 교환기(11)에서 공유되는 변수의 수는 네트워크 기기 시스템이 커질수록 증가한다. 하지만, 모든 변수를 공유할 필요는 없다. 예를 들면, 일정한 함수 X의 실행에 의해 필연적으로 생성되는 변수 α가 다른 함수 Y에 의해 사용되는 경우에, 함수 X 및 함수 Y 모두가 동일한 네트워크 디바이스에 의해 실행되면, 변수 α를 공개(즉, 공유)할 필요는 없다. 그러므로, 이 경우에, 변수 공개 제어기(17)는 변수 α를 비공개 변수로 분류하고, 변수 메모리 교환기(11)는 변수 α를 네트워크 디바이스들 사이에 공유시키지 않는다. 함수 X 및 함수 Y가 상이한 네트워크 디바이스에 의해 실행되면, 변수 α를 공개(공유)할 필요가 있으므로, 변수 공개 제어기(17)는 변수 α를 공유 변수로 분류하고, 변수 메모리 교환기(11)는 변수 α를 네트워크 디바이스들 사이에 공유시킨다. 또, 함수 분산 협상부(14)의 협상 결과는 어떤 변수가 공유 변수로 하여야 하는지를 나타낸다. 변수 공개 제어기(17)를 제공함으로써, 변수의 불필요한 공유를 억제할 수 있고, 이로써 변수 공유를 위한 네트워크의 부하를 낮출 수 있다.
이상과 같이 각각의 네트워크 디바이스를 구성함으로써, 분산 함수 처리형 시스템의 네트워크 기기 시스템을 구현하는 것이 가능하다. 네트워크 기기 시스템이 함수 처리형 시스템의 함수들의 조합에 의해 구성되기 때문에, 새로운 네트워크 디바이스가 추가되는 경우라도, 새로운 네트워크 디바이스의 능력(또는 기능)은 기존의 네트워크 디바이스들에 부작용을 일으키지 않기 때문에, 네트워크 기기 시스템의 변경을 용이하게 처리할 수 있다. 또, 시스템 전체의 함수를 각각의 네트워크 디바이스(도 1에서, 센터 서버(1), 홈 서버(3), 정보 표시 디바이스(4), 및 에어 컨디셔닝 제어 디바이스(5)에 적절하게 분산시킴으로써 시스템 전체의 최적화 및 능력 강화가 가능하다. 예를 들면, 도 1의 네트워크 기기 시스템에 시큐리티 디바이스(security device)(도시하지 않음)를 추가하는 경우, 시큐리티 디바이스의 함수 세트는 기존의 네트워크 디바이스의 함수들에 대해 부작용을 일으키지 않기 때문에, 시큐리티 디바이스를 시스템에 추가하는 것이 용이하고, 또한 시큐리티 디바이스의 검출 능력을 제외한 능력 중에서 담당하고 있는 시큐리티 디바이스의 함수를, 각각의 네트워크 디바이스에 그들의 처리부하에 따라 위임하는 것이 가능하다.
함수를 분산시키는 방법에 관한 한, 센터 서버(1) 또는 홈 서버(3)가 중심적으로 함수를 분산시킬 수 있거나, 또는 각각의 네트워크 디바이스가 분산 방식으로 함수 분산 협상부(14)에 의해 서로 함수를 분산할 수 있다. 함수를 분산시키는 방법에 관계없이, 시스템 전체의 거동이 변화하지 않는다는 것을 수학적으로 보증할 수 있다. 또, 함수 처리형 시스템은 실행 순서에 종속하지 않기 때문에, 교착상태가 발생할 위험이 없다.
이상에서 설명한 바와 같이, 본 발명의 사상과 범위를 벗어나지 않는 본 발명의 많은 다른 실시예가 다방면에 걸쳐 이루어질 수 있으므로, 본 발명은 첨부된 청구의 범위에서 규정된 것을 제외하고 특정 실시예들로 한정되지 않는다.

Claims (7)

  1. 통신 선로에 연결된 복수의 네트워크 디바이스가 서로 협력하여 소정의 동작을 수행하는 분산 함수 처리형 시스템을 사용하는 네트워크 기기 시스템으로서,
    전체 시스템은 함수들의 조합으로 구성되어 있고, 상기 네트워크 기기 시스템은 각각의 상기 네트워크 디바이스가 자신에게 할당된 함수를 수행함으로써 상기 네트워크 기기 시스템이 전체로서 소정의 동작을 실행하도록 구성되어 있으며,
    각각의 상기 네트워크 디바이스는,
    자신의 네트워크 디바이스가 실행하여야 하는 함수를 저장하는 함수 메모리부;
    상기 통신 선로를 통해 각각의 상기 네트워크 디바이스에 연결되어 있고, 각각의 상기 네트워크 디바이스의 상기 함수 메모리부에 저장된 함수를 실행하는 데 필요한 변수를 저장하며, 상기 네트워크 디바이스들 사이에 상기 변수를 공유시키는 변수 메모리 교환기(variable memory exchanger);
    상기 변수 메모리 교환기 내에 저장된 변수를 참조하고, 자신의 네트워크 디바이스의 상기 함수 메모리부에 저장된 함수 중에서, 상기 변수 메모리 교환기 내에 저장된 변수를 이용하여 실행할 수 있는 함수를 선택하는 실행 함수 선택기; 및
    상기 변수 메모리 교환기 내에 저장된 변수를 사용하여 상기 실행 함수 선택기에 의해 선택된 함수를 실행하고, 상기 변수 메모리 교환기 내에 저장된 변수를 상기 함수의 실행에 의해 취득된 변수로 갱신하는 함수 실행부
    를 포함하는, 분산 함수 처리형 시스템을 사용하는 네트워크 기기 시스템.
  2. 제1항에 있어서,
    상기 함수 메모리부는, 자신의 네트워크 디바이스에 고유한 함수를 적어도 저장하는, 분산 함수 처리형 시스템을 사용하는 네트워크 기기 시스템.
  3. 제1항에 있어서,
    각각의 상기 네트워크 디바이스는 함수 분산 협상부(function distribution negotiation part)를 더 포함하고,
    상기 함수 분산 협상부는, 상기 통신 선로를 통해 다른 네트워크 디바이스들에 연결되어 있고, 상기 함수 메모리부에 저장된 함수 중에서 자신의 네트워크 디바이스에 고유한 함수 이외의 함수를 다른 네트워크 디바이스들에 위임하는 능력(capability)을 가지며,
    상기 함수 메모리부는 상기 함수 분산 협상부에 의해 다른 네트워크 디바이스들에 위임된 상기 함수를 저장하는, 분산 함수 처리형 시스템을 사용하는 네트워크 기기 시스템.
  4. 제3항에 있어서,
    상기 함수 분산 협상부는 각각의 상기 네트워크 디바이스에 처리부하를 문의하고, 각각의 상기 네트워크 디바이스로부터 응답을 수신하며, 상기 응답에 기초하여 상기 네트워크 디바이스에 함수를 위임할 것인지를 결정하는, 분산 함수 처리형 시스템을 사용하는 네트워크 기기 시스템.
  5. 제3항에 있어서,
    상기 복수의 네트워크 디바이스 중 하나 이상은 상기 네트워크 기기 시스템에 사용되는 상기 함수의 임플리멘테이션(implementation)을 저장하기 위한 함수 저장소(function repository)를 가지고,
    각각의 상기 네트워크 디바이스는,
    상기 함수 실행부가 상기 함수를 실행하는 데 필요한 소정의 함수의 임플리멘테이션을 저장하기 위한 함수 임플리멘테이션 메모리부, 및
    상기 함수 분산 협상부에 의해 다른 네트워크 디바이스들에 위임된 함수 중에서 상기 함수 임플리멘테이션 메모리부에 저장되어 있지 않은 함수의 임플리멘테이션을, 상기 함수 저장소로부터 취득하는 함수 임플리멘테이션 추가부
    를 더 포함하는, 분산 함수 처리형 시스템을 사용하는 네트워크 기기 시스템.
  6. 제1항에 있어서,
    각각의 상기 네트워크 디바이스 교환기에 저장된 변수들을 상기 네트워크 디바이스들 사이에 공유되는 공유 변수와 상기 네트워크 디바이스들 사이에 공유되지 않는 비공유 변수로 분류하는 변수 공개 제어기(variable publication controller)를 더 포함하고,
    상기 변수 메모리 교환기는 상기 공유 변수만을 상기 네트워크 디바이스들에게 통신 선로를 통해 공유시키는, 분산 함수 처리형 시스템을 사용하는 네트워크 기기 시스템.
  7. 제1항에 있어서,
    상기 복수의 네트워크 디바이스는 센터 서버(center server), 가정에 설치된 홈 서버(home sever), 및 상기 가정에 설치된 기기 디바이스(equipment device)를 적어도 포함하는, 분산 함수 처리형 시스템을 사용하는 네트워크 기기 시스템.
KR1020077013003A 2005-12-28 2006-12-28 네트워크 기기 시스템 KR100928913B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005379947 2005-12-28
JPJP-P-2005-00379947 2005-12-28
PCT/JP2006/326258 WO2007074905A1 (ja) 2005-12-28 2006-12-28 ネットワーク機器システム

Publications (2)

Publication Number Publication Date
KR20070090911A KR20070090911A (ko) 2007-09-06
KR100928913B1 true KR100928913B1 (ko) 2009-11-30

Family

ID=38218126

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077013003A KR100928913B1 (ko) 2005-12-28 2006-12-28 네트워크 기기 시스템

Country Status (5)

Country Link
EP (1) EP1890238B1 (ko)
JP (1) JP4966004B2 (ko)
KR (1) KR100928913B1 (ko)
CN (1) CN100514314C (ko)
WO (1) WO2007074905A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101662420B (zh) * 2008-08-29 2012-09-05 国际商业机器公司 用于整合网络设备的系统和方法
US11237719B2 (en) 2012-11-20 2022-02-01 Samsung Electronics Company, Ltd. Controlling remote electronic device with wearable electronic device
US10423214B2 (en) 2012-11-20 2019-09-24 Samsung Electronics Company, Ltd Delegating processing from wearable electronic device
US11157436B2 (en) 2012-11-20 2021-10-26 Samsung Electronics Company, Ltd. Services associated with wearable electronic device
JP6463598B2 (ja) * 2012-11-20 2019-02-06 三星電子株式会社Samsung Electronics Co.,Ltd. 着用式電子デバイスからのプロセッシングの委任
US11372536B2 (en) 2012-11-20 2022-06-28 Samsung Electronics Company, Ltd. Transition and interaction model for wearable electronic device
US10185416B2 (en) 2012-11-20 2019-01-22 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving movement of device
US8994827B2 (en) 2012-11-20 2015-03-31 Samsung Electronics Co., Ltd Wearable electronic device
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
US10691332B2 (en) 2014-02-28 2020-06-23 Samsung Electronics Company, Ltd. Text input on an interactive display
CN108304492B (zh) * 2018-01-09 2020-07-31 武汉斗鱼网络科技有限公司 一种搜索列表更新方法、存储介质、设备及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004265425A (ja) * 2004-03-08 2004-09-24 Fuji Xerox Co Ltd メッセージ通信方法及び装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137697A (ja) * 1994-11-15 1996-05-31 Kobe Steel Ltd 自律分散型システム
JP2988462B2 (ja) * 1998-02-12 1999-12-13 三菱電機株式会社 自律協調処理装置、自律協調処理方法、並びに、その記録媒体
AU2490100A (en) * 1999-01-07 2000-07-24 Iq Netsolutions, Inc. Distributed processing systems incorporating a plurality of cells which process information in response to single events
JP2002057785A (ja) * 2000-08-11 2002-02-22 Kenwood Corp 自動車電話装置
JP2004126896A (ja) * 2002-10-02 2004-04-22 Hitachi Ltd 自律分散データ計算処理サーバーシステム
JP2005251068A (ja) * 2004-03-08 2005-09-15 Nippon Telegr & Teleph Corp <Ntt> 分散機能連携システム、分散機能管理装置、分散機能連携方法、およびプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004265425A (ja) * 2004-03-08 2004-09-24 Fuji Xerox Co Ltd メッセージ通信方法及び装置

Also Published As

Publication number Publication date
EP1890238A4 (en) 2009-07-15
EP1890238B1 (en) 2011-10-19
JP2007200313A (ja) 2007-08-09
JP4966004B2 (ja) 2012-07-04
KR20070090911A (ko) 2007-09-06
CN101103342A (zh) 2008-01-09
WO2007074905A1 (ja) 2007-07-05
CN100514314C (zh) 2009-07-15
EP1890238A1 (en) 2008-02-20

Similar Documents

Publication Publication Date Title
KR100928913B1 (ko) 네트워크 기기 시스템
CN102377796B (zh) 基于OSGi的异构服务集成系统及方法
JP2008293117A (ja) 仮想計算機の性能監視方法及びその方法を用いた装置
CN103793295A (zh) 用于灾难恢复虚拟化的模拟引擎的系统和方法
US20210149723A1 (en) Method and apparatus for microservice architecture reconfiguration
Lu et al. JTangCMS: An efficient monitoring system for cloud platforms
TW202203617A (zh) SCADA Web HMI系統及HMI用戶端
US6658491B1 (en) System and method for constructing an ole process control compliant data server from a noncompliant user application
CA2439007C (en) Method and system for distributed processing management
Raibulet et al. Mobile agent technology for the management of distributed systems–a case study
US7877467B2 (en) Network equipment system
Maurel et al. Towards a service-oriented component model for autonomic management
KR102309764B1 (ko) 복수의 gpu에 대한 분산처리를 수행하는 fpga 장치 및 이를 이용한 분산처리 수행 방법
Ismail et al. Decentralized planning for self-adaptation in multi-cloud environment
KR20140122966A (ko) 자율 컴퓨팅 장치들간의 토픽을 공유하는 장치 및 그 방법
WO2020189204A1 (ja) 制御システム、中継装置、および中継プログラム
Fernandez-Marquez et al. A Pattern-Based Architectural Style for Self-Organizing Software Systems.
Richard et al. The I-Cluster Cloud: distributed management of idle resources for intense computing
Amoretti Evolutionary strategies for ultra-large-scale autonomic systems
Betts et al. Engineering MAS–a device integration framework for smart home environments
Ibrahim Cluster of heterogeneous computers: Using mobile agents for improving load balance
US11044320B2 (en) Data distribution method for a process automation and internet of things system
JP3577714B2 (ja) プログラム実行方法を用いたシステム
Caton et al. Distributed image processing over an adaptive Campus Grid
Sun et al. Theory and implementation of an adaptive middleware for ubiquitous computing systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131101

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee