KR101389290B1 - 네트워킹된 시스템에서 데이터 생성기에 코드를 선택적으로 전달하는 방법 - Google Patents

네트워킹된 시스템에서 데이터 생성기에 코드를 선택적으로 전달하는 방법 Download PDF

Info

Publication number
KR101389290B1
KR101389290B1 KR1020070100443A KR20070100443A KR101389290B1 KR 101389290 B1 KR101389290 B1 KR 101389290B1 KR 1020070100443 A KR1020070100443 A KR 1020070100443A KR 20070100443 A KR20070100443 A KR 20070100443A KR 101389290 B1 KR101389290 B1 KR 101389290B1
Authority
KR
South Korea
Prior art keywords
data
code
data generator
processing operation
agent
Prior art date
Application number
KR1020070100443A
Other languages
English (en)
Other versions
KR20080031833A (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 KR20080031833A publication Critical patent/KR20080031833A/ko
Application granted granted Critical
Publication of KR101389290B1 publication Critical patent/KR101389290B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D21/00Measuring or testing not otherwise provided for
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명의 일 실시예는 네트워킹된 시스템에서 코드를 데이터 생성기에 선택적으로 전달하는 시스템을 제공한다. 이러한 시스템에서, 데이터 생성기는 데이터를 생성하고 상기 데이터를 장치에 전송한다. 상기 장치는 데이터 생성기로부터 상기 데이터를 수신하고, 그 후 상기 데이터에 대한 처리 동작을 수행하기 위해 상기 장치에서 코드를 이용한다. 이어서, 시스템은 상기 데이터 생성기 상에서 처리 동작을 수행하는 것이 리소스 사용을 감소시킬 수 있는지 여부를 결정하기 위해 상기 데이터의 특성들을 분석한다. 그렇다면, 상기 시스템은 상기 장치에서 상기 데이터 생성기로 상기 코드를 전송하고, 이어서 데이터 생성기 상에서 상기 코드를 실행시킨다. 상기 데이터 생성기 상에서 상기 코드를 실행시킴으로써, 상기 시스템은 네트워킹된 시스템에서의 리소스 사용을 최적화할 수 있다.
Figure R1020070100443
네트워크, 데이터 생성기, 센서, 코드, 전력 소비

Description

네트워킹된 시스템에서 데이터 생성기에 코드를 선택적으로 전달하는 방법{Method for selective transferring code to a data producer in a networked system}
본 발명은 일반적으로 네트워킹된 시스템을 가로질러 소프트웨어를 배포하는 문제에 관한 것이다. 보다 상세하게는, 본 발명은 데이터 생성기에 코드를 전달하는 시스템 및 방법에 관한 것이다.
무선 센서 네트워크들은 재난 복구, 국토 안보, 기반시설 모니터링, 거주지 모니터링, 및 편재형 컴퓨팅 환경들을 포함하는, 광범위한 영역들에서의 애플리케이션들을 찾는다. 무선 센서 네트워크는 일반적으로 정보를 수집하고, 로컬 계산들을 수행하며, 무선 네트워크를 통해 다른 장치들 및 호스트들과 통신하는 물리적 환경들에 포함된 장치들의 콜렉션으로 구성된다.
무선 센서 네트워크들은 무선 센서 네트워크들을 포함하는 장치들이 종종 종래의 네트워크들에서의 장치들보다 더 엄격한 리소스 제약들을 가지기 때문에 고유의 도전들을 취한다. 예를 들면, 네트워크 대역폭들은 종종 낮고, 센서들은 많은 양의 데이터를 전달하기 위해 이용가능한 매우 적은 전력을 가질 수 있다. 그러한 제약들은 예를 들면 데이터 품질 및 센서 노드 수명에 영향을 미침으로써 센서 네트워크 성능을 방해한다. 부가적으로, 상이한 센서들은 예로서, 이종의 센서들이 양호하게 규정된 표준 없이 상이한 제조자들에 의해 생성될 때 상이한 포맷이지만 동일한 종류의 데이터를 생성할 수 있다.
그러면, 상술된 문제점들 없이 네트워킹된 시스템들로부터 데이터를 효율적으로 수집하는 것을 용이하게 하는 시스템 및 방법이 요구된다.
본 발명의 일 실시예는 네트워킹된 시스템에서 데이터 생성기에 코드를 선택적으로 전달하는 시스템을 제공한다. 이러한 시스템에서, 데이터 생성기는 데이터를 생성하고, 그 후 상기 데이터를 장치에 전송한다. 장치는 데이터 생성기로부터 상기 데이터를 수신하며, 그 후 데이터 상의 처리 동작을 수행하기 위해 장치 상에서 코드를 사용한다. 이어서, 시스템은 데이터 생성기가 처리 동작을 수행하는 것이 리소스 사용을 줄일 수 있는지에 대한 여부를 결정하기 위해 상기 데이터의 특성들을 분석한다. 그렇다면, 시스템은 상기 장치에서 상기 데이터 생성기로 코드를 전달하고, 이어서 데이터 생성기 상에서 코드를 실행한다. 데이터 생성기 상에서 코드를 실행함으로써, 시스템은 네트워킹된 시스템에서의 리소스 사용을 최적화할 수 있다.
본 실시예의 변경에 있어서, 처리 동작은, 데이터를 전처리하는 단계; 상기 데이터를 압축하는 단계; 상기 데이터로부터 아이템을 제거하는 단계; 상기 데이터에 아이템을 부가하는 단계; 상기 데이터를 필터링하는 단계; 상기 데이터를 제 1 포맷에서 제 2 포맷으로 변환하는 단계; 및/또는 상기 코드가 실행하는 위치에서 상기 데이터로부터 아이템을 보관하는 단계를 포함한다.
다른 변경에 있어서, 시스템은 상기 데이터 생성기에서 상기 장치로 전달된 데이터의 양을 감소시키기 위해 상기 데이터 생성기 상의 코드를 실행하며, 그에 의해 전력을 줄이고 및/또는 네트워크 대역폭의 소비를 줄인다.
다른 변경에 있어서, 데이터 생성기 및 장치는 무선 네트워크를 통해 통신한다.
본 실시예에서의 변경에 있어서, 시스템은 위치 및 라우팅 정보를 관리하는 배포된 프레임워크를 이용하여 데이터의 특성들을 분석한다. 이러한 배포된 프레임워크는 동시에 실행하고 코드를 이동하는 것이 시스템 성능 및/또는 리소스 활용을 향상시킬 수 있는지 여부를 결정하는 배포된 애플리케이션들의 세트에 대한 특성들과 요구들을 모니터한다.
다른 변경에 있어서, 코드는 장치 및/또는 중앙 저장소(central repository)에 캐싱될 수 있는 애플리케이션 바이너리이다. 장치에서 데이터 생성기로 코드를 전달할 때, 시스템은, 애플리케이션 바이너리가 데이터 생성기 상에서 이미 이용가능한지 여부를 결정하고, 및/또는 상기 데이터 생성기가 상기 애플리케이션 바이너리를 찾고 검색할 수 있도록 허용하는 데이터 생성기에 정보를 전송할 수 있다.
다른 변경에 있어서, 시스템이 장치에서 데이터 생성기로 코드를 전달하는 동안 장치상에서 이벤트를 수신할 때, 시스템은 코드 이외에 이러한 이벤트에 관한 정보를 데이터 생성기에 포워딩한다. 그러한 정보를 포워딩함으로써, 시스템은 코드가 전송되는 동안 외에 무시될 수 있는 이벤트를 전달 및/또는 처리할 수 있다.
다른 변경에 있어서, 시스템은 코드가 데이터 생성기 상에서 실행하기 시작할 때 장치상에서 이벤트를 처리하고, 데이터 생성기에 상태 정보를 전달하고; 코드가 데이터 생성기 상에서 실행되기 시작할 때, 장치상에 이벤트를 저장하고, 그 후 데이터 생성기에 상기 이벤트를 전달하고; 및/또는 이벤트에 관한 정보를 데이터 생성기에 포워딩하도록 하는 요구를 제거하는, 이벤트가 데이터 생성기 및 장치 모두에 수신되는 중복 이벤트인지를 검출하여, 이벤트에 관한 정보를 포워딩한다.
다른 변경에 있어서, 시스템은 장치상에 코드의 실행을 먼저 중지함으로써 장치로부터 데이터 생성기에 코드를 전달하는 프로세스를 시작한다. 전달 프로세스 동안, 시스템은 장치상에 코드의 사본을 유지하고, 임의의 에러들이 코드의 전달 동안에 발생하였는지 여부를 결정한다. 그렇다면, 시스템은 장치상에서 코드를 재시작한다.
이러한 실시예의 변경에 있어서, 데이터 생성기는 다음 중 하나 이상을 포함 하는 제한된 리소스들을 갖는 컴퓨팅 장치이다: 제한된 전원; 제한된 대역폭 및/또는 높은 대기시간(latency)을 갖는 네트워크 접속; 제한된 계산 능력을 갖는 프로세서; 및/또는 작은 메모리.
본 실시예의 변경에 있어서, 데이터 생성기는 센서 네트워크에서의 센서이다. 데이터 생성기들은 또한 미디어 서버들과 데이터베이스들을 포함할 수 있다는 것을 주의한다.
본 발명은 네트워킹된 시스템들로부터 데이터를 효율적으로 수집하는 것을 용이하게 한다.
고성능 컴퓨팅 장치를 위한 모놀리식(monolithic) 동작 시스템은 종종 광범위한 장치들 및 기능을 지원하는 큰 코드 베이스를 포함한다. 다른 한편으로, 무선 센서 장치에는 일반적으로: 제한된 계산 능력을 갖는 프로세서; 작은 메모리; 제한된 자원; 및/또는 제한된 대역폭 및/또는 높은 대기 시간을 갖는 네트워크 접속이 제공된다. 데이터-생성 센서 장치들은 일반적으로 값이 저렴하여, 다수의 장치들이 배치될 수 있다. 그러한 장치들은 일반적으로 요구시 새로운 코드를 다운로드하기 위해, 예를 들면 새로운 애플리케이션을 지원하거나 또는 설치된 애플리케이션을 업데이트하기 위해 제공되는 제한된 동작 시스템을 포함한다.
본 발명의 일 실시예에서, 배포된 프레임워크는 네트워킹된 시스템을 위한 이동 에이전트 아키텍처를 제공하며, 여기서 아키텍처에서의 각각의 에이전트는 사용자를 위해 작업들을 달성하기 위해 특정한 정도의 자율을 갖고 동작할 수 있는 소프트웨어 엔티티이다. 이러한 프레임워크는 배포된 방식으로 동시에 실행하는 다수의 애플리케이션들을 지원할 수 있다. 예를 들면, 프레임워크는 주어진 데이터 생성기를 사용하여 애플리케이션들의 세트를 검출하도록 외부 감시 노드를 사용할 수 있다. 이것은 시스템이 개별적인 또는 다수의 애플리케이션들에 관련되는 코드를 주어진 데이터 생성기에 다운로드할 수 있게 한다.
배포된 프레임워크에서의 동작은 배포된 프레임워크에 참여하는 하나 이상의 노드들 상에서 실행하는 코드를 포함할 수 있다. 배포된 프레임워크를 위한 하나의 공통적인 동작은, 네트워킹된 시스템에서 데이터 생성기들의 물리적 위치들을 추적하고; 데이터를 라우팅하고 에이전트들을 이동시키도록 시스템 레벨에서 결정하기 위해 위치 정보를 이용하고; 및 에이전트들이 데이터 특성들에 의존하여 노드 간을 이동할 수 있도록 함으로써 위치 정보를 관리하는 단계를 포함한다. 예를 들면, 움직이는 물체를 추적하는 카메라 센서들의 네트워크에서, 프레임워크는 센서들 간의 물체를 추적하기 위한 코드의 작은 조각을 전달하는 것이 많은 양의 이미지를 비-이동 추적 에이전트에 전달하는 것보다 보다 더 효율적이라는 것을 결정할 수 있으며, 이는 전자가 실질적으로 적은 네트워크 대역폭을 사용하고 따라서 전력을 덜 소모하기 때문이다.
본 발명의 일 실시예에서, 데이터 생성기로부터의 데이터 수신기들은 데이터가 전송 이전에 처리될 수 있도록 전송하는 데이터 생성기에 처리 명령들을 업로드할 수 있다. 그러한 시스템에서, 데이터 생성기 상에서 데이터를 처리하는 것은 데 이터의 크기를 감소시키고, 따라서 대역폭과 송신 전력을 덜 소비한다. 더욱이, 처리 단계는 데이터를 조화된 포맷으로 변환할 수 있다.
처리 동작은 이에 제한되지는 않지만 다음 중 하나 이상을 포함할 수 있다.
- 데이터를 전처리하는 단계;
- 상기 데이터를 압축하는 단계;
- 상기 데이터로부터 아이템을 제거하는 단계;
- 상기 데이터에 아이템을 부가하는 단계;
- 상기 데이터를 필터링하는 단계;
- 상기 데이터를 제 1 포맷에서 제 2 포맷으로 변환하는 단계; 및/또는
- 코드가 실행되는 노드에 국소적으로 상기 데이터로부터의 아이템을 보관하는 단계.
도 1a는 시스템이 데이터 생성 노드(100) 상에서 데이터를 생성하고, 상기 데이터를 소비 노드(102)에 전달하며, 그 후 소비 에이전트에 대한 관심있는 데이터를 추출하기 위해 상기 데이터를 필터링하는 네트워킹된 시스템을 설명한다. 양쪽 노드들 모두는 애플리케이션 에이전트들이 실행되는, 애플리케이션 에이전트 공간(104), 및 시스템 에이전트들이 실행되는 시스템 런타임 공간(106)을 포함한다. 도 1a 내지 도 1c에서, 화살표의 크기는 대응하는 데이터 스트림의 크기를 나타낸다는 것을 주의한다.
도 1a에 도시된 바와 같이, 데이터 생성 에이전트(108)는 데이터의 세트를 수집하고, 그 후 상기 데이터를 데이터 생성 노드들(102)의 런타임 시스템에서의 시스템 에이전트(110)에 전달한다(화살표 1). 이어서, 시스템 에이전트(110)는 원 데이터를 소비 노드 상에서(102)의 시스템 에이전트(110)에 포워딩하여, 그로 인해 많은 양의 대역폭과 전력을 소비한다(화살표 2). 그 후, 소비 노드(102) 상에서 시스템 에이전트(110)는 필터 에이전트(112)와 같이, 이전에 데이터에 관심을 표현한 에이전트들로 데이터를 전달한다(화살표 3). 이어서, 필터 에이전트(112)는 원하는 데이터를 추출하도록 진행하고, 재배포를 위해 관련있는 필터링된 데이터의 훨씬 더 작은 세트를 런타임 시스템에 전달한다(화살표 4). 그 후, 시스템은 필터링된 데이터를 소비 에이전트(114)에 전달하고(화살표 5), 이것은 예를 들면 사용자에게 데이터를 디스플레이할 수 있다.
도 1b는 필터링 에이전트(112)를 데이터 생성 노드(100)에 전달하는 프로세스를 설명한다. 이것은 예를 들면, 시스템이 시스템 성능 및/또는 리소스 소비가 데이터를 소비 노드(102)에 전송하기 이전에 데이터 상에서 필터 에이전트(112)를 실행함으로써 개선될 수 있다는 것을 결정할 때 발생할 수 있다. 예를 들면, 필터 에이전트(112)는 데이터 생성 노드(100)로 이동하는 것이 성능을 향상시킬 수 있고, 그 후 이동을 개시하기 위해 소비 노드(102)의 공장 시스템 에이전트(116)에 "이동" 이벤트를 전송(화살표 1)할 수 있다는 것을 결정할 수 있다.
공장 시스템 에이전트들(116)이 시스템을 위한 에이전트 이동성을 관리한다는 것을 주의한다. 예를 들면, 소비 노드(102) 상에서 공장 시스템 에이전트(116)는 에이전트 바이너리 저장장치(118)로부터 필터 에이전트를 위한 바이너리들을 검색하고(화살표 2, 3), 그 후 필터 에이전트(112)로부터 현재 상태를 수집하고 소비 노드(102) 상에서의 필터 에이전트(112)의 인스턴스를 파괴한다(화살표 4, 5). 이어서, 소비 노드(102) 상에서 공장 시스템 에이전트(116)는 필터 에이전트 상태 및 바이너리들을 패키지에 넣고, 상기 패키지를 데이터 생성 노드(100)의 공장 시스템 에이전트(116)에 전송한다(화살표 6). 데이터 생성 노드(100)의 공장 시스템 에이전트(116)는 바이너리들을 상기 데이터 생성 노드(100)의 에이전트 바이너리 저장장치(118)에 저장하고(화살표 7), 그 후 시스템은 에이전트 바이너리 저장장치(118)로부터의 바이너리들을 런타임 시스템에 동적으로 로딩하고, 그에 의해 데이터 생성 노드(100) 상에서 필터 에이전트(120)의 새로운 인스턴스를 생성한다(화살표 8). 마지막으로, 데이터 생성 노드(100) 상에서 공장 시스템 에이전트(116)는 소비 노드(102) 상에서 필터 에이전트(112)로부터 수집된 절약 상태를 새로운 필터 에이전트(120)에 전달하여, 새로운 필터 에이전트(120)가 이전 인스턴스가 중단된 곳으로부터 재시작할 수 있도록 한다.
도 1c는 필터 에이전트(112)를 데이터 생성 노드(100)에 전달한 후의 네트워킹된 시스템의 동작을 설명한다. 이러한 프로세스 동안에, 데이터 생성 에이전트(108)는 데이터의 세트를 수집하고, 노드의 런타임 시스템에서 데이터를 시스템 에이전트(110)에 전달한다(화살표 1). 이러한 시스템 에이전트(110)는 관심 있는 에이전트들에 데이터를 재배포하고, 이제 데이터 생성 노드(100) 상에서 필터 에이전트(120)의 새로운 인스턴스를 포함한다(화살표 2). 이어서, 새로운 필터 에이전트(120)는 원하는 데이터 세트를 추출하고, 결과적인 보다 작은 세트의 필터링된 데이터를 런타임 시스템에 전달한다(화살표 3). 그 후, 필터링된 데이터의 세트는 이러한 경우 소비 노드(102) 상에서를 포함하여, 데이터에서의 관심을 나타내는 시스템에서의 다른 노드들 상에서의 시스템 에이전트들(100)에 전달된다(화살표 4). 보다 작은 양의 대역폭, 및 따라서 적은 송신 전력은 도 1a에 비교할 때 도 1c에 사용된다는 것을 주의한다. 마지막으로, 소비 노드(102) 상에서 시스템 에이전트(110)는 필터링된 데이터를 소비 에이전트(114)에 전달한다(화살표 5).
도 2는 코드를 데이터 생성기에 전달하는 프로세스를 설명한 흐름도를 나타낸다. 초기에, 시스템은 데이터를 데이터 생성기에서 장치로 전송하고, 그 후 장치 상에서 데이터에 대한 처리 동작을 수행한다(단계 200). 다음에, 시스템은 데이터의 특성들을 분석하고(단계 202), 데이터 생성기 상에서 처리 동작을 수행하는 것이 리소스 사용을 줄일 수 있는지 여부를 결정하려고 시도한다(단계 204). 만약 그렇다면(단계 206), 시스템은 처리 동작에 대한 코드를 데이터 생성기에 전달하고(단계 208), 그 후 데이터 생성기 상에서 처리 동작에 대한 코드를 실행하기 위해 진행한다(단계 210).
본 발명의 일 실시예에서, 시스템은 분석 및/또는 발견적 방법(heuristics)에 기초하여 에이전트를 이동할지 여부를 결정한다. 예를 들면, 시스템은 데이터 스트림의 크기를 모니터하고, 필터링 에이전트가 데이터 스트림을 소비하거나 또는 단축하는지 여부를 추적할 수 있고, 그 후 가능한 데이터 소스에 가깝게 수축성이 있는 필터링 에이전트를 이동시키도록 선택할 수 있다. 그러한 이동 동작들을 결정하는 것은 노드 위치, 리소스 경쟁 및 협상, 로드 밸런싱, 전력 트레이드 오프들, 및 네트워크 트래픽과 애플리케이션 특성들의 예측들을 고려한 복잡한 네트워크 최 적화 분석을 포함할 수 있다.
배포된 시스템들은 일반적으로 많은 배포된 구성요소들을 포함하고, 종종 원자 동작들(atomic operations)을 제공하지 않고, 따라서 부분적인 결함들이 있을 수 있다. 배포된 시스템은 그러한 부분적 결함들을 적절하게 처리하고, 시스템의 나머지에 대한 그 영향을 최소화해야 한다. 그러면, 이관 시스템은 성공적이지 않은 에이전트 이관을 처리하기 위한 메커니즘들을 포함해야 한다.
본 발명의 일 실시예에 있어서, 시스템은 시스템이 성공적인 이관에 대한 확인을 수신할 때까지 소스 노드에 이동되는 에이전트의 사본을 유지함으로써 실패에 준비한다. 예를 들면, 소스 노드가 에러 메시지를 수신하거나, 또는 이동된 에이전트가 몇몇 타임 아웃 간격 이후에 원격 노드들에서 재시작되지 않는다면, 시스템은 그 후 최소의 오버헤드를 가지고 소스 노드에서의 에이전트를 재시작할 수 있다.
본 발명의 일 실시예에 있어서, 시스템은 에이전트 이관 동안 강력한 이벤트 전달을 제공한다. 에이전트 이동 동안에, 시스템은 에이전트를 대기(sleep) 상태에 언ㅎ고, 에이전트에 예정된 인입하는 이벤트들의 세트를 큐잉하며, 그 후 상기 이벤트들은 새로운 인스턴스가 준비될 때 새로운 노드 상에서 에이전트의 새로운 인스턴스에 포워딩한다. 이동이 중단되거나, 또는 실패하면, 소스 노드 상에서 에이전트는 재시작될 수 있고, 에이전트는 큐에 저장된 이벤트들을 처리하도록 진행한다. 대안적인 접근법에 있어서, 시스템은 이동 동안에 소스 노드에서 에이전트를 활성 상태(active)로 유지할 수 있고, 애플리케이션에 종속하여, 소스 노드에서 에이전트를 중단하기 전에 에이전트의 두 인스턴스들 간의 상태를 동기화시킬 수 있 다.
몇몇 에이전트 시스템들에서, 이벤트들은 상태를 유지하지 않고(stateless) 에이전트들은 시스템 프레임워크를 갖는 특정 이벤트들에 그것들의 관심을 등록한다는 것을 주의한다. 이러한 유형의 시스템에서, 시스템 프레임워크는 이벤트들이 에이전트들에 올바르게 포워딩될 수 있음을 보장한다. 그러한 시스템들은 애플리케이션 특성들에 부가하는 것을 단순화하지만, 그것들은 임의의 잠재적인 복잡도들을 처리하기 위해 시스템에 종속한다. 예를 들면, 이동 후에 에이전트에 중복 이벤트들을 전달하는 것을 피하기 위해, 시스템은 큐딩된 이벤트들의 모두가 수신되고 처리될 때까지 목적지 노드 상에서의 에이전트의 새롭게 시작된 인스턴스에 임의의 이벤트들을 전달하지 않아야 한다. 중복 에이전트들을 처리하지 않는다는 것을 보장하기 위해, 시스템은 더 이상의 중복들이 도달하지 않을 것이라는 것을 시스템이 확신할 수 있을 때까지 큐잉된 이벤트들에 대한 상태를 유지할 필요가 있으며, 이것은 배포된 전역 클록을 이용하여 포함할 수 있다.
본 발명의 일 실시예에 있어서, 시스템은 에이전트 이동을 위해 전달되는 코드의 양을 최소화하려고 시도한다. 예를 들면, 네트워크 대역폭이 낮지만 지연 시간이 엄청나게 높지 않다면, 시스템은 이동될 에이전트에 대한 적절한 애플리케이션 바이너리가 이미 목적지 노드에 존재하는지(예를 들면 캐시되었는지) 여부를 결정할 수 있고, 그 후 필요한 경우에만 애플리케이션 바이너리를 전달할 수 있다. 대안적으로, 높은 대기시간을 갖는 낮은 오버헤드 네트워크 링크의 경우에, 시스템은 모든 경우들에 바이너리를 간단히 전송하는 것이 보다 효율적임을 결정할 수 있 다. 또 다른 실시예에서, 목적지 노드는 적절한 애플리케이션 바이너리를 획득하고 바이너리가 획득될 때를 소스 노드에 알리기 위한 책임을 보장한다. 예를 들면, 목적지 노드는 소스 노드에 의해 지정된 위치 및/또는 중앙 저장소로부터 바이너리를 검색할 수 있다. 그러한 장치는 목적지 노드에서 바이너리를 획득하는데 있어서의 어려움 또는 실패를 추적하는 소스 노드에서의 부가적인 상태를 포함할 수 있다. ]
요약하면, 본 발명의 일 실시예에서, 시스템은 데이터 생성기에 코드를 업로드할 수 있고, 따라서 네트워킹된 시스템을 통해 전송된 데이터의 크기를 감소시키며, 그에 의해 전력을 감소시킨다. 데이터 스트림의 소스를 향하여 처리 동작 업 스트림을 이동시킴으로써, 시스템은 네트워킹된 시스템의 용량 및 효율성을 향상시킬 수 있다.
본 발명의 실시예에 대한 상기 설명들은 단지 예시 및 설명을 목적으로 하여 제공된다. 그것들은 본 발명을 개시된 형태로 제한하거나 그에 철저하고자 의도하지 않는다. 따라서, 많은 변경들 및 변이들이 이 기술분야의 숙련자들에게 명백할 것이다. 부가적으로, 상기 개시는 본 발명을 제한하려고 의도하지 않는다. 본 발명의 범위는 첨부된 청구항들에 의해 정의된다.
도 1a는 본 발명의 실시예에 따른 데이터 생성 노드 및 소비 노드를 갖는 네트워킹된 시스템을 도시한 도면.
도 1b는 본 발명에 실시예에 따라 필터 에이전트를 데이터 생성 노드에 전달하는 프로세스를 도시한 도면.
도 1c는 본 발명에 실시예에 따른 필터 에이전트의 전달 후에 네트워킹된 시스템을 도시한 도면.
도 2는 본 발명의 실시예에 따라 코드를 데이터 생성기에 전달하는 프로세스를 도시한 흐름도.

Claims (4)

  1. 네트워킹된 시스템에서 데이터 생성기에 코드를 선택적으로 전달하는 방법으로서, 상기 데이터 생성기는 데이터를 생성하고 상기 데이터를 로컬 컴퓨팅 장치에 전송하는, 상기 코드를 선택적으로 전달하는 방법은,
    상기 로컬 컴퓨팅 장치에 의해, 상기 데이터 생성기로부터 상기 데이터를 수신하는 단계와;
    처리된 데이터를 생성하기 위해 상기 데이터에 대한 처리 동작을 수행하는 단계와;
    상기 처리 동작이 상기 데이터의 크기를 감소시키는 것을 포함하는 리소스 사용을 감소시키는지 여부를 결정하기 위해 상기 데이터의 특성들을 분석하는 단계로서, 상기 처리된 데이터의 특성의 분석은 위치 및 라우팅 정보를 관리하는 배포된 프레임워크의 사용을 포함하고, 상기 배포된 프레임워크는 동시에 실행하는 배포된 애플리케이션들의 세트에 대한 요구 및 특성을 모니터하고, 상기 배포된 프레임워크는 이동이 시스템 성능 또는 리소스 사용을 향상시키는지 여부를 결정하는, 상기 분석 단계와;
    상기 처리 동작이 리소스 사용을 감소시키는지 여부를 결정하는 것에 응답하여, 상기 데이터 생성기가 처리 동작을 재시작하기 위해 상기 처리 동작을 상기 데이터 생성기에 전달하는 단계를 포함하고, 상기 처리 동작을 전달하는 단계는,
    상기 처리 동작과 연관된 바이너리 실행가능한 버전의 코드를 검색하는 단계와;
    상기 처리 동작의 현재 처리 상태들을 수집하는 단계와;
    상기 로컬 컴퓨팅 장치상의 처리 동작의 인스턴스를 파괴하는 단계와;
    상기 수집된 처리 상태들 및 상기 검색된 바이너리 실행가능한 버전의 코드를 패키징하는 단계와;
    상기 코드의 실행을 재시작하기 위해 패키지를 상기 로컬 컴퓨팅 장치로부터 상기 데이터 생성기로 전달하는 단계로서, 상기 패키지는 상기 수집된 처리 상태들 및 상기 검색된 바이너리 실행가능한 버전의 코드를 포함하는, 상기 패키지를 전달하는 단계를 포함하는, 코드를 선택적으로 전달하는 방법.
  2. 제 1 항에 있어서,
    상기 처리 동작을 수행하는 단계는,
    상기 데이터를 전처리하는 단계;
    상기 데이터를 압축하는 단계;
    상기 데이터로부터 아이템을 제거하는 단계;
    상기 데이터에 아이템을 부가하는 단계;
    상기 데이터를 필터링하는 단계;
    상기 데이터를 제 1 포맷에서 제 2 포맷으로 변환하는 단계; 및
    상기 코드가 실행되는 위치에서 상기 데이터로부터 아이템을 보관하는 단계 중 하나 이상을 포함하는, 코드를 선택적으로 전달하는 방법.
  3. 제 2 항에 있어서,
    상기 데이터 생성기 상에서 상기 코드를 실행하는 것은 상기 데이터 생성기에서 상기 로컬 컴퓨팅 장치에 전달된 데이터의 양을 감소시키고,
    상기 전달된 데이터의 양을 감소시키는 것은 전력을 절약하거나 네트워크 대역폭의 소비를 줄이는, 코드를 선택적으로 전달하는 방법.
  4. 제 3 항에 있어서,
    상기 데이터 생성기 및 상기 로컬 컴퓨팅 장치는 무선 네트워크를 통해 통신하는, 코드를 선택적으로 전달하는 방법.
KR1020070100443A 2006-10-05 2007-10-05 네트워킹된 시스템에서 데이터 생성기에 코드를 선택적으로 전달하는 방법 KR101389290B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/543,738 US8504999B2 (en) 2006-10-05 2006-10-05 System and method for transferring code to a data producer
US11/543,738 2006-10-05

Publications (2)

Publication Number Publication Date
KR20080031833A KR20080031833A (ko) 2008-04-11
KR101389290B1 true KR101389290B1 (ko) 2014-04-25

Family

ID=39092893

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070100443A KR101389290B1 (ko) 2006-10-05 2007-10-05 네트워킹된 시스템에서 데이터 생성기에 코드를 선택적으로 전달하는 방법

Country Status (5)

Country Link
US (1) US8504999B2 (ko)
EP (1) EP1909460B1 (ko)
JP (1) JP5196939B2 (ko)
KR (1) KR101389290B1 (ko)
DE (1) DE602007002355D1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102360061B1 (ko) * 2020-11-17 2022-02-09 쿠팡 주식회사 데이터베이스 쿼리 효율 향상을 위한 시스템 및 방법.

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7921206B2 (en) * 2007-04-18 2011-04-05 Nec Laboratories America, Inc. Visibility and control of wireless sensor networks
WO2013015835A1 (en) * 2011-07-22 2013-01-31 Seven Networks, Inc. Mobile application traffic optimization
WO2012018556A2 (en) * 2010-07-26 2012-02-09 Ari Backholm Mobile application traffic optimization
US8792341B2 (en) * 2010-10-27 2014-07-29 Futurewei Technologies, Inc. System and method for machine-to-machine application based congestion control
CN108429800B (zh) 2010-11-22 2020-04-24 杭州硕文软件有限公司 一种移动设备
JP5737075B2 (ja) 2011-08-29 2015-06-17 富士通株式会社 イベント収集方法及び情報処理装置
JP6183168B2 (ja) 2013-11-13 2017-08-23 富士通株式会社 イベント収集方法、情報処理装置、情報処理システム、及び情報処理プログラム
JP6187181B2 (ja) 2013-11-18 2017-08-30 富士通株式会社 分散配備装置、システム、プログラム、および方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005004676A (ja) 2003-06-16 2005-01-06 Fujitsu Ltd 適応型分散処理システム
KR20050115100A (ko) * 2004-06-03 2005-12-07 조승호 저소비 전력형 무선 데이터 전송방법 및 장치와 그프로그램을 저장한 기록매체
KR20060073654A (ko) * 2003-09-09 2006-06-28 인터디지탈 테크날러지 코포레이션 전송 포맷 조합 지표의 유도 방법, 디지털 신호 프로세서,무선 송수신기 및 통신 데이터 처리 방법
US20060215588A1 (en) 2005-03-22 2006-09-28 Yoon Chang-June C Energy-efficient network protocol and node device for sensor networks

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3737560B2 (ja) * 1996-04-19 2006-01-18 松下電器産業株式会社 ネットワークにおける分散処理方法及びそのシステム
GB2333169A (en) 1998-01-13 1999-07-14 Ibm Diagnostic system
JP3558887B2 (ja) * 1998-08-28 2004-08-25 株式会社東芝 分散システム、その制御方法、および記憶媒体
US6622157B1 (en) * 1998-09-28 2003-09-16 Certeon, Inc. Extending network services using mobile agents
US6851115B1 (en) * 1999-01-05 2005-02-01 Sri International Software-based architecture for communication and cooperation among distributed electronic agents
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
JP3815231B2 (ja) * 2001-02-16 2006-08-30 日本電気株式会社 携帯機器向け移動エージェント転送システム、携帯機器及び移動エージェント転送方法
US20020152260A1 (en) * 2001-03-12 2002-10-17 Qiming Chen Dynamic agent with embedded web server and mark-up language support for e-commerce automation
US7316000B2 (en) * 2001-08-27 2008-01-01 International Business Machines Corporation Interactive agent for a topological multi-tier business application composer
US7475107B2 (en) * 2002-07-08 2009-01-06 Electronic Evidence Discovery, Inc. System and method for managing distributed computer processes
GB0220899D0 (en) * 2002-09-09 2002-10-16 Univ Liverpool Automation system for information management, condition monitoring and real-time control of distributed industrial systems
US7281236B1 (en) * 2003-09-30 2007-10-09 Emc Corporation System and methods for developing and deploying a remote domain system
US7526460B2 (en) 2004-09-16 2009-04-28 Neal Solomon Mobile hybrid software router
US7797688B1 (en) * 2005-03-22 2010-09-14 Dubagunta Saikumar V Integrating applications in multiple languages
JP4575218B2 (ja) * 2005-04-12 2010-11-04 三菱電機株式会社 サーバ型計算機および転送評価判定装置
US7805732B2 (en) * 2006-04-21 2010-09-28 Topia Technology System and method for enabling cooperation of applications on a distributed network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005004676A (ja) 2003-06-16 2005-01-06 Fujitsu Ltd 適応型分散処理システム
KR20060073654A (ko) * 2003-09-09 2006-06-28 인터디지탈 테크날러지 코포레이션 전송 포맷 조합 지표의 유도 방법, 디지털 신호 프로세서,무선 송수신기 및 통신 데이터 처리 방법
KR20050115100A (ko) * 2004-06-03 2005-12-07 조승호 저소비 전력형 무선 데이터 전송방법 및 장치와 그프로그램을 저장한 기록매체
US20060215588A1 (en) 2005-03-22 2006-09-28 Yoon Chang-June C Energy-efficient network protocol and node device for sensor networks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102360061B1 (ko) * 2020-11-17 2022-02-09 쿠팡 주식회사 데이터베이스 쿼리 효율 향상을 위한 시스템 및 방법.

Also Published As

Publication number Publication date
US8504999B2 (en) 2013-08-06
JP5196939B2 (ja) 2013-05-15
US20080098367A1 (en) 2008-04-24
JP2008097603A (ja) 2008-04-24
EP1909460B1 (en) 2009-09-09
KR20080031833A (ko) 2008-04-11
DE602007002355D1 (de) 2009-10-22
EP1909460A1 (en) 2008-04-09

Similar Documents

Publication Publication Date Title
KR101389290B1 (ko) 네트워킹된 시스템에서 데이터 생성기에 코드를 선택적으로 전달하는 방법
JP4204769B2 (ja) フェールオーバを処理するシステムおよび方法
US9325757B2 (en) Methods and systems for fault-tolerant distributed stream processing
US10459805B2 (en) Method and system for data recovery in a data system
US20100333094A1 (en) Job-processing nodes synchronizing job databases
JP2012528382A (ja) キャッシュクラスタを構成可能モードで用いるキャッシュデータ処理
JP2005196763A (ja) 簡略化されたpaxos
EP2203840A2 (en) Exchange of syncronization data and metadata
US20230140594A1 (en) System and method for migrating an agent server to an agent client device
US8775484B2 (en) Data management apparatus and method
EP3070606B1 (en) Event management program, event management method, and distributed system
US20050210152A1 (en) Providing availability information using a distributed cache arrangement and updating the caches using peer-to-peer synchronization strategies
JP5480046B2 (ja) 分散トランザクション処理システム、装置、方法およびプログラム
US11283876B2 (en) Systems and methods for end-to-end request-response flow routing for geographically distributed client devices
JP2007133795A (ja) クラスタ構成の業務システム
KR102133925B1 (ko) 데이터 동기화 트래픽을 최소화하기 위한 방법 및 시스템
JP2009245118A (ja) アプリケーションサービス提供システム、及び方法、並びにアプリケーション移行方法
Domingues et al. A fault recovery protocol for brokers in centralized publish-subscribe systems targeting multiprocessor systems-on-chips
Brettlecker et al. Efficient and coordinated checkpointing for reliable distributed data stream management
JP6036690B2 (ja) 分散実行システム及び分散プログラム実行方法
KR101929948B1 (ko) 데이터 타입 기반의 멀티 디바이스 데이터 동기화를 위한 방법 및 시스템
US12001404B2 (en) Techniques for replication checkpointing during disaster recovery
JP5449471B2 (ja) 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム
JP7163093B2 (ja) ブローカ装置、通信システム、通信方法、およびプログラム
JP2018097435A (ja) 並列処理装置及びノード間通信プログラム

Legal Events

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

Payment date: 20170411

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180405

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190410

Year of fee payment: 6