KR102203648B1 - 정보 처리 장치, 방법, 및 프로그램 - Google Patents

정보 처리 장치, 방법, 및 프로그램 Download PDF

Info

Publication number
KR102203648B1
KR102203648B1 KR1020207025791A KR20207025791A KR102203648B1 KR 102203648 B1 KR102203648 B1 KR 102203648B1 KR 1020207025791 A KR1020207025791 A KR 1020207025791A KR 20207025791 A KR20207025791 A KR 20207025791A KR 102203648 B1 KR102203648 B1 KR 102203648B1
Authority
KR
South Korea
Prior art keywords
delivery
data
information
destination
virtual machine
Prior art date
Application number
KR1020207025791A
Other languages
English (en)
Other versions
KR20200108489A (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 KR20200108489A publication Critical patent/KR20200108489A/ko
Application granted granted Critical
Publication of KR102203648B1 publication Critical patent/KR102203648B1/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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

가상 머신(12)의 게스트 오퍼레이팅 시스템(120)은 가상 머신(13)을 목적지로 하는 데이터를, 목적지 ID와 송신원 ID와 함께, 공유 메모리(111)에 기입한다.배송 관리부(181)는 배송 정보 테이블(161)에, 목적지 ID와 송신원 ID에 대응한 배송지로서 정보 처리 장치(21)가 지정되어 있다고 판별하면, 데이터를 통신부(182)에 공급한다. 통신부(182)는 배송 관리부(181)로부터 공급된 데이터를 정보 처리 장치에 송신한다. 배송 관리부(181)는 배송 정보 테이블(161)에 목적지 ID와 송신원 ID에 대응한 배송지가 지정되어 있지 않다고 판별하면, 제1 데이터를 공유 메모리(112)에 기입하여 가상 머신(13)에 배송한다.

Description

정보 처리 장치, 방법, 및 프로그램
본 발명은 정보 처리 장치, 방법, 및 프로그램에 관한 것이다.
가상 환경을 구축한 정보 처리 장치의 가상 머신 상에서 복수의 애플리케이션이 제휴하여 동작하는 경우가 있다. 예를 들면, 공장 자동화의 분야에서는, 리얼타임 오퍼레이팅 시스템이 동작하는 가상 머신 상에서 구동 기기, 검사 장치 등을 제어하는 제어용 애플리케이션이 실행된다. 또한, 비리얼타임 오퍼레이팅 시스템이 동작하는 다른 가상 머신 상에서, 검사 장치가 출력한 검사 데이터를 처리하는 정보 처리용 애플리케이션이 실행된다.
사양의 변경, 결함 등 때문에, 어느 애플리케이션을 수정하는 경우가 있다. 이 경우, 프로덕션 환경과는 다른 테스트 환경에서, 수정 후의 애플리케이션을 실행하여 동작 검증을 하는 것이 통상이다. 테스트 환경에서는, 테스트용의 더미 데이터를 사용하여 검증을 행하기도 하지만, 프로덕션 환경에서 수집한 데이터를 사용하여 검증을 행하는 것이 바람직한 경우가 있다. 예를 들면, 프로덕션 환경에서만 발생하는 결함에 대응하기 위해 애플리케이션을 수정했을 경우이다.
특허 문헌 1에는, 동일한 정보 처리 장치에 프로덕션 환경과 테스트 환경을 구축하고, 프로덕션 환경과 테스트 환경이 파일 자원을 공유하는 것이 기재되어 있다. 이러한 구성으로 함으로써, 테스트 환경에서, 프로덕션 환경에서 수집한 데이터를 사용하여 검증을 행할 수 있다.
가상 환경을 구축한 정보 처리 장치에 있어서, 특허 문헌 1과 같이 실전용의 정보 처리 장치에 테스트 환경을 구축하기 위해서는, 그 정보 처리 장치에 1개 이상의 가상 머신을 새롭게 추가할 필요가 있다. 그러나, 가상 머신의 추가에 의해, 기존의 가상 머신의 동작이 불안정하게 되어, 프로덕션 환경의 가동 상태에 악영향을 주는 경우가 있다. 예를 들면, 공장 자동화의 분야에서는, 구동 기기, 검사 장치 등을 제어하는 제어용 애플리케이션이 실행되고 있는 가상 머신의 동작이 불안정하게 되면, 구동 기기, 검사 장치 등의 가동 상태에 악영향을 주어 버린다. 최악의 경우, 구동 기기, 검사 장치 등이 폭주한다고 하는 문제가 발생하는 경우도 예상된다.
특허 문헌 1: 일본 특허공개공보 평8-235011호 공보
상기의 문제는, 검증 시에는, 구동 기기, 검사 장치 등을 제어하는 제어용 애플리케이션과 같은 애플리케이션을, 다른 정보 처리 장치의 가상 머신 상에서 실행함으로써 미리 방지할 수 있다. 그렇지만, 이 경우, 상이한 정보 처리 장치로 동작하는 가상 머신이 통신할 필요가 있다.
통신처를 다른 정보 처리 장치 상의 가상 머신으로 변경하는 경우, 프로덕션 환경의 가상 머신의 설정 및 해당 가상 머신 상에서 동작하는 애플리케이션의 설정의 변경이 필요하여, 프로덕션 환경의 동작에 악영향을 미칠 가능성이 있었다.
본 발명은 상기 실정을 감안하여 이루어진 것으로, 가상 머신측의 설정을 변경하는 일 없이, 복수의 정보 처리 장치를 걸친 가상 머신 간의 통신을 가능하게 한다.
상기 목적을 달성하기 위해, 본 발명의 정보 처리 장치는, 가상 머신을 복수 포함하는 가상 환경이 구축된 정보 처리 장치이다. 정보 처리 장치는 정보 처리 장치 상에서 동작하는 루트 오퍼레이팅 시스템과, 가상 머신 상에서 각각 동작하는 게스트 오퍼레이팅 시스템과, 게스트 오퍼레이팅 시스템과 루트 오퍼레이팅 시스템이 액세스 가능한 공유 메모리와, 가상 머신이 지정하는 데이터의 목적지를 나타내는 목적지 정보 및 해당 데이터의 송신원을 나타내는 송신원 정보와, 해당 데이터를 실제로 배송할 곳인 배송지와의 관계를 지정하는 배송 정보 기억 수단을 구비한다. 루트 오퍼레이팅 시스템은 가상 머신이 출력한 데이터의 배송을 관리하는 배송 관리 수단과, 다른 정보 처리 장치와 통신 경로를 통해서 통신하는 통신 수단을 포함한다. 복수의 가상 머신 중 제1 가상 머신의 게스트 오퍼레이팅 시스템이, 복수의 가상 머신 중 제2 가상 머신을 목적지로 하는 제1 데이터를, 목적지 정보 및 송신원 정보와 함께, 공유 메모리에 기입하면, 배송 관리 수단은 배송 정보 기억 수단에 목적지 정보 및 송신원 정보에 대응한 배송지가 지정되어 있는지 여부를 판별한다. 배송 정보 기억 수단에 목적지 정보 및 송신원 정보에 대응한 배송지로서 다른 정보 처리 장치가 지정되어 있다고 판별하면, 배송 관리 수단은 제1 데이터를 통신 수단에 공급하고, 통신 수단은 배송 관리 수단으로부터 공급된 제1 데이터를 다른 정보 처리 장치에 송신한다. 배송 관리 수단은 배송 정보 기억 수단에 목적지 정보 및 송신원 정보에 대응한 배송지가 지정되어 있지 않다고 판별하면, 제1 데이터를 제2 가상 머신에 배송한다.
본 발명의 정보 처리 장치에서는, 배송 관리 수단이 제1 가상 머신이 공유 메모리에 기입한 제1 데이터에 대해서, 배송 정보 기억 수단에 목적지 정보 및 송신원 정보에 대응한 배송지로서 다른 정보 처리 장치가 지정되어 있다고 판별하면, 제1 데이터를 통신 수단에 공급하고, 통신 수단은 배송 관리 수단으로부터 공급된 제1 데이터를 다른 정보 처리 장치에 송신한다. 이러한 구성을 구비함으로써, 가상 머신측의 설정을 변경하는 일 없이, 복수의 정보 처리 장치의 가상 머신이, 정보 처리 장치 간을 걸쳐, 통신하는 것을 가능하게 한다.
도 1은 본 발명의 실시 형태에 따른 정보 처리 시스템의 구성의 개요를 나타내는 도면이다.
도 2는 실시 형태에 따른 정보 처리 장치의 하드웨어 구성을 나타내는 블록도이다.
도 3은 실시 형태에 따른 정보 처리 장치의 기능 블록도이다.
도 4는 실시 형태에 따른 공유 메모리에 세트되는 데이터의 구성을 나타내는 도면이다.
도 5는 실시 형태에 따른 배송 정보 테이블에 등록되는 데이터의 일례를 나타내는 도면이다.
도 6은 실시 형태에 따른 기동 조건 테이블에 등록되는 데이터의 일례를 나타내는 도면이다.
도 7은 실시 형태에 따른 기동 조건 테이블에 등록되는 데이터의 다른 예를 나타내는 도면이다.
도 8은 실시 형태에 따른 정보 처리 장치 사이에서 송수신되는 데이터의 구성을 나타내는 도면이다.
도 9는 실시 형태에 따른 송신측의 정보 처리 장치의 배송 관리부의 제1 배송 처리의 순서도이다.
도 10은 실시 형태에 따른 송신측의 정보 처리 장치의 통신부의 송신 처리의 순서도이다.
도 11은 실시 형태에 따른 수신측의 정보 처리 장치의 통신부의 수신 처리의 순서도이다.
도 12는 실시 형태에 따른 수신측의 정보 처리 장치의 배송 관리부의 제2 배송 처리의 순서도이다.
도 13은 변형예에 따른 정보 처리 장치의 기능 블록도이다.
도 14는 변형예에 따른 배송 정보 테이블에 등록되는 데이터의 일례를 나타내는 도면이다.
도 15는 변형예에 따른 정보 처리 장치의 배송 관리부의 배송 처리의 순서도이다.
도 16은 배송 정보 테이블에 등록되는 데이터의 다른 예를 나타내는 도면이다.
도 17은 기동 조건 테이블에 등록되는 데이터의 다른 예를 나타내는 도면이다.
도 18은 배송 정보 테이블에 등록되는 데이터의 또 다른 예를 나타내는 도면이다.
(실시 형태)
도 1에 나타내는 것처럼, 본 실시 형태에 따른 정보 처리 시스템(100)은 통신 경로(50)를 통해서 상호 통신이 가능한 정보 처리 장치(11)와 정보 처리 장치(21)를 포함한다. 정보 처리 장치(11)는 FA 제어 시스템의 프로덕션 환경(production environment)으로서 가동하는 장치이다. 정보 처리 장치(21)는 FA 제어 시스템의 테스트 환경용의 장치이다.
여기에서는, 정보 처리 장치(11)는 공장 내에 설치되고, 정보 처리 장치(21)는 공장 밖에 설치되어 있다. 이 때문에, 정보 처리 장치(11)와 정보 처리 장치(21)는, 통신 경로(50)를 통해서 접속되어 있다. 통신 경로(50)는 도시하지 않은 LAN(Local Area Network)의 일부를 구성한다.
정보 처리 장치(11, 21)에는 각각 가상 환경이 구축되어 있다. 정보 처리 장치(11)에서는, 가상 머신(12 및 13)이 동작한다. 정보 처리 장치(21)에서는, 가상 머신(22 및 23)이 동작한다. 덧붙여, 도 1에서는, 호스트 머신인 정보 처리 장치(11, 21)에 각각 인스톨된 루트 오퍼레이팅 시스템의 도시를 생략하고 있다.
가상 머신(12)은 프로그래머블 로직 컨트롤러로서 기능한다. 가상 머신(12)은 공장 내의 구동 기기(91 및 92)와, 검사 장치(93)에 접속되어 있다. 가상 머신(12)은 본 발명의 제1 가상 머신의 일례이다. 가상 머신(12)의 게스트 오퍼레이팅 시스템(이하, 게스트 OS라고 칭함)(120)은 제어용 애플리케이션(130)을 실행한다. 애플리케이션(130)은 프로그래머블 로직 컨트롤러의 펌웨어이다. 애플리케이션(130)은 구동 기기(91 및 92)의 제어와 관련되는 처리와, 검사 장치(93)의 검사 데이터의 수집 처리를 행한다. 애플리케이션(130)은, 예를 들면, 검사 데이터로서 검사 장치(93)가 제조 부품을 촬영한 화상 데이터를 수집하고, 그 화상 데이터를 가상 머신(13)에 송신한다.
가상 머신(13)은 정보 처리를 행하는 컴퓨터로서 기능한다. 가상 머신(13)은 본 발명의 제2 가상 머신의 일례이다. 가상 머신(13)의 게스트 OS(140)는, 현장의 검사 데이터를 해석하여, 생산 라인으로 피드백하는 품질 관리 애플리케이션과 같은, 정보 처리용 애플리케이션(150)을 실행한다. 애플리케이션(150)은 검사 장치(93)의 검사 데이터를 해석하는 해석 처리를 행한다. 애플리케이션(150)은, 예를 들면, 가상 머신(12)의 애플리케이션(130)으로부터 수신한 검사 장치(93)가 촬영한 화상 데이터를 해석하여, 불량품의 개수를 수정한 집계 데이터와 같은, 해석에 기초하는 품질 상황을 나타내는 데이터를 생성하고, 생성한 품질 상황을 나타내는 데이터를, 가상 머신(12)에 송신한다.
가상 머신(22)은 가상 머신(12)과 같은 구성을 구비하고, 프로그래머블 로직 컨트롤러로서 기능한다. 가상 머신(12)과는 달리, 가상 머신(22)은 실제 기기의 제어를 행하지 않는다. 가상 머신(22)에는 시뮬레이터(94)가 접속되어 있다. 시뮬레이터(94)는 퍼스널 컴퓨터가 시뮬레이션용의 프로그램을 실행함으로써 실현된다.
가상 머신(23)은 가상 머신(13)과 같은 구성을 구비하고, 정보 처리를 행하는 컴퓨터로서 기능한다.
프로덕션 환경의 가동시에 있어서는, 정보 처리 장치(11)의 가상 머신(12 및 13)이 협동하여 동작한다. 애플리케이션의 동작 검증시에는, 테스트 환경용의 정보 처리 장치(21)의 가상 머신(22 및 23)이 협동하여 동작한다.
또한, 본 실시 형태에서는, 프로덕션 환경에서 수집한 데이터를 사용하여, 애플리케이션의 동작 검증을 행하기 위해, 정보 처리 장치(11)의 가상 머신(12)과 정보 처리 장치(21)의 가상 머신(23)이 협동하여 동작할 수 있다. 또, 정보 처리 장치(11)의 가상 머신(13)과 정보 처리 장치(21)의 가상 머신(22)이 협동하여 동작할 수 있다. 이 때문에, 정보 처리 장치(11, 21) 모두, 가상 머신의 하나가 동일 정보 처리 장치의 다른 가상 머신 앞으로 송신한 데이터를, 유저가 지정한 다른 정보 처리 장치에 배송할 수 있다. 바꾸어 말하면, 가상 머신의 하나가 동일 정보 처리 장치의 다른 가상 머신 앞으로 송신한 데이터를, 유저가 지정한 다른 정보 처리 장치에 전송할 수 있다.
도 2에 나타내는 것처럼, 정보 처리 장치(11)는 하드웨어 구성으로서, 프로세서(1)와, 주 기억부(2)와, 보조 기억부(3)와, 통신 제어부(4)를 가진다. 주 기억부(2), 보조 기억부(3), 통신 제어부(4)는 모두 내부 버스(9)를 통해서 프로세서(1)에 접속되어 있고, 프로세서(1)와 통신한다. 덧붙여, 정보 처리 장치(21)의 하드웨어 구성도, 정보 처리 장치(11)의 구성과 같다.
프로세서(1)는 CPU(Central Processing Unit)를 포함한다. 프로세서(1)는 보조 기억부(3)에 기억되는 각종 프로그램을 실행하여, 정보 처리 장치(11)의 각종 기능을 실현한다.
주 기억부(2)는 휘발성 메모리를 포함하며, 프로세서(1)의 워크메모리로서 이용된다. 프로세서(1)는 주 기억부(2)에 보조 기억부(3)에 격납된 프로그램, 파라미터 등을 로드하고, 주 기억부(2)에 로드한 프로그램, 파라미터 등을 사용하여 각종 처리를 행한다.
보조 기억부(3)는 불휘발성 메모리를 포함한다. 보조 기억부(3)는 프로그램, 파라미터 등을 격납한다. 보조 기억부(3)는 후술하는 배송 관리부(181)의 기능을 실현하기 위한 프로그램(001)과 통신부(182)의 기능을 실현하기 위한 프로그램(002)을 격납한다. 또한, 보조 기억부(3)에는 가상 머신(12, 13)을 작성하는 프로그램, 가상 머신(12)의 애플리케이션(130)을 실행하기 위한 프로그램, 가상 머신(13)의 애플리케이션(150)을 실행하기 위한 프로그램 등이 격납되어 있다.
통신 제어부(4)는 통신 경로(50)를 통한 통신을 행하기 위한 네트워크 인터페이스를 포함한다. 통신 제어부(4)는 통신 경로(50)를 통해서 전송된 신호를 수신하고, 수신한 신호가 나타내는 데이터를 프로세서(1)에 출력한다. 또, 통신 제어부(4)는 프로세서(1)로부터 공급된 데이터를 나타내는 신호를, 통신 경로(50)를 통해서, 정보 처리 장치(21)에 송신한다.
도 3에 나타내는 것처럼, 정보 처리 장치(11)는 기능적으로는, 가상 머신(12 및 13)을 관리하는 하이퍼바이저(hypervisor, 110)와, 가상 머신(12) 상에서 동작하는 게스트 OS(120) 및 애플리케이션(130)과, 가상 머신(13) 상에서 동작하는 게스트 OS(140) 및 애플리케이션(150)과, 호스트 머신인 정보 처리 장치(11)에 인스톨되어, 호스트 머신 상에서 동작하는 루트 오퍼레이팅 시스템(이하, 루트 OS라고 칭함)(180)과, 가상 머신(12)과 가상 머신(13) 사이에서 교환되는 데이터를 배송하는 목적지인 배송지가 등록되어 있는 배송 정보 테이블(161)과, 배송 정보 테이블(161)에 등록되어 있는 정보의 유효 또는 무효에 관한 정보가 등록되어 있는 기동 조건 테이블(162)을 포함한다. 배송 정보 테이블(161)은 본 발명의 배송 정보 기억 수단의 일례이다. 기동 조건 테이블(162)은 본 발명의 유효 무효 설정 조건 기억 수단의 일례이다.
하이퍼바이저(110)는 후술하는 루트 OS(180)의 제어에 따라서, 가상 머신(12 및 13)을 작성하고, 작성한 가상 머신(12 및 13)을 관리한다. 하이퍼바이저(110)는 프로세서(1)가 보조 기억부(3)에 기억하는 전용의 프로그램을 실행함으로써 실현된다.
하이퍼바이저(110)는 가상 머신(12)에 할당된 공유 메모리(111)와, 가상 머신(13)에 할당된 공유 메모리(112)와, 가상 디바이스 드라이버인 백엔드 드라이버(113)를 가진다. 공유 메모리(111)는 게스트 OS(120)와 루트 OS(180) 사이의 데이터 교환에 사용된다. 이 때문에, 게스트 OS(120)와 루트 OS(180)가 공유 메모리(111)에 액세스 가능하다. 이하, 공유 메모리(111)에 데이터를 기입하는 것을, 데이터를 세트한다고 하는 경우가 있다. 공유 메모리(112)는 보조 기억부(3)에 의해 실현된다. 공유 메모리(112)는 게스트 OS(140)와 루트 OS(180) 사이의 데이터 교환에 사용된다. 이 때문에, 게스트 OS(140)와 루트 OS(180)가 공유 메모리(112)에 액세스 가능하다. 공유 메모리(112)는 보조 기억부(3)에 의해 실현된다.
본 실시 형태에 있어서, 게스트 OS(120)와 게스트 OS(140)는 직접 데이터의 교환을 할 수 없다. 이 때문에, 루트 OS(180)가 공유 메모리(111, 112)를 사용하여, 게스트 OS(120)와 게스트 OS(140) 사이의 데이터의 주고받음을 행한다. 예를 들면, 게스트 OS(120)가 게스트 OS(140)에 데이터를 송신하는 경우, 우선, 게스트 OS(120)는 게스트 OS(140)에 송신하는 데이터를 공유 메모리(111)에 세트한다. 루트 OS(180)는 게스트 OS(120)가 공유 메모리(111)에 세트한 데이터를 읽어낸다. 루트 OS(180)는 읽어낸 데이터를, 공유 메모리(112)에 세트한다. 게스트 OS는 루트 OS(180)가 공유 메모리(112)에 세트한 데이터를 읽어낸다. 이와 같이 하여, 게스트 OS(120)로부터 게스트 OS(140)로 데이터가 건네진다. 게스트 OS(140)로부터 게스트 OS(120)에 데이터를 건네주는 경우도 마찬가지이다.
백엔드 드라이버(113)는 루트 OS(180)의 제어에 따라서, 공유 메모리(111 및 112)에 대한 데이터의 판독 기입을 행한다.
게스트 OS(120)는 가상 머신(12) 상에서 실행되는 오퍼레이팅 시스템이다. 본 실시 형태에서는, 게스트 OS(120)로서 RTOS(Real Time Operating System)를 상정하고 있다. 게스트 OS(120)는 루트 OS(180)로부터 지시되면 애플리케이션(130)을 기동한다. 또, 게스트 OS(120)는 루트 OS(180)와의 사이에서, 공유 메모리(111)를 사용한 데이터 교환을 행한다. 게스트 OS(120)는 프로세서(1)가 보조 기억부(3)에 격납되어 있는 프로그램을 실행함으로써 실현된다.
게스트 OS(120)는 가상 디바이스 드라이버인 프론트엔드 드라이버(121)를 가지고 있다. 프론트엔드 드라이버(121)는 게스트 OS(120)의 제어하에, 공유 메모리(111)에 대한 데이터의 판독 기입을 행한다.
게스트 OS(120)는 프론트엔드 드라이버(121)를 제어하여, 애플리케이션(130)의 출력 데이터를 공유 메모리(111)에 기입한다.
도 4에 게스트 OS(120)가 공유 메모리(111)에 세트하는 데이터의 포맷의 일례를 나타낸다. 공유 메모리(111)에 세트되는 데이터는, 헤더(1010)와, 데이터부(1020)와, 오류 검출 코드(1030)를 포함한다.
헤더(1010)는 목적지의 가상 머신의 식별 정보인 목적지 ID(Identification)(1011)와, 송신원의 가상 머신의 식별 정보인 송신원 ID(1012)와, 데이터를 출력한 애플리케이션을 식별하는 식별 정보를 나타내는 정보인 타입(1013)과, 데이터부(1020)의 사이즈를 나타내는 정보인 사이즈(1014)를 포함한다. 목적지 ID(1011)는 본 발명의 목적지 정보의 일례이고, 송신원 ID(1012)는 본 발명의 송신원 정보의 일례이며, 타입(1013)은 본 발명의 식별 정보의 일례이다.
예를 들면, 가상 머신(12)이 가상 머신(13)에 애플리케이션(130)의 출력 데이터를 송신하는 경우는, 다음과 같은 값이 헤더(1010)의 각부에 세트된다. 목적지 ID(1011)에는 가상 머신(13)을 나타내는 ID가, 송신원 ID(1012)에는 가상 머신(12)을 나타내는 ID가, 타입(1013)의 값에는, 애플리케이션(130)의 식별 정보가 세트된다.
데이터부(1020)는 애플리케이션(130)의 출력 데이터를 포함한다. 예를 들면, 데이터부(1020)는 애플리케이션(130)이 검사 장치(93)로부터 수집한 검사 데이터를 포함한다. 오류 검출 코드(1030)는 오류 검출을 위한 부호이다. 오류 검출의 방식으로서, 예를 들면, CRC(Cyclic Redundancy Check), 패리티, 허밍 등을 채용할 수 있다.
또, 게스트 OS(120)는 프론트엔드 드라이버(121)를 제어하여, 루트 OS가 공유 메모리(111)에 세트한 데이터를 읽어낸다. 루트 OS(180)가 공유 메모리(111)에 세트하는 데이터의 포맷도 도 4에 나타내는 예와 같다.
도 3에 나타내는 게스트 OS(120)는, 또한, 프론트엔드 드라이버(121)를 제어하여, 루트 OS(180)와의 사이에서 가상 버스를 통한 버스 통신을 행한다. 구체적으로는, 게스트 OS(120)는 공유 메모리(111)에 데이터를 기입했다는 취지를 통지하는 데이터 세트 통지의 시그널을, 프론트엔드 드라이버(121)를 제어하여 루트 OS(180)에 송신한다. 이 시그널을 받아, 루트 OS(180)는 공유 메모리(111)로부터 데이터를 읽어낸다.
또, 루트 OS(180)가 공유 메모리(111)에 데이터를 세트했을 경우, 루트 OS(180)는 프론트엔드 드라이버(121)에, 데이터를 세트한 것을 통지하는 데이터 세트 통지의 시그널을 송신한다. 프론트엔드 드라이버(121)가 이 시그널을 받으면, 게스트 OS(120)는 프론트엔드 드라이버(121)를 제어하여 공유 메모리(111)로부터 데이터를 읽어낸다.
애플리케이션(130)은 구동 기기(91 및 92)의 제어와 관련되는 처리와, 검사 장치(93)의 검사 데이터의 수집 처리를 행한다. 애플리케이션(130)은 검사 장치(93)로부터 검사 데이터를 수집하고, 그 검사 데이터를 가상 머신(13)에 송신한다. 애플리케이션(130)은 게스트 OS(120)가, 보조 기억부(3)에 격납되어 있는 프로그램을 실행함으로써 기동된다.
게스트 OS(140)는 가상 머신(13) 상에서 실행되는 오퍼레이팅 시스템이다. 본 실시 형태에서는, 게스트 OS(140)로서 비리얼타임 OS를 상정하고 있다. 게스트 OS(140)는 루트 OS(180)로부터 지시받으면 애플리케이션(150)을 기동한다. 또, 게스트 OS(140)는, 루트 OS(180)와의 사이에서, 공유 메모리(112)를 사용한 데이터 교환을 행한다. 게스트 OS(140)는 프로세서(1)가 보조 기억부(3)에 격납되어 있는 프로그램을 실행함으로써 실현된다.
게스트 OS(140)는 가상 디바이스 드라이버인 프론트엔드 드라이버(141)를 가지고 있다. 프론트엔드 드라이버(141)는 게스트 OS(140)의 제어하에, 공유 메모리(112)에 대한 데이터의 판독 기입을 행한다. 게스트 OS(140)는 프론트엔드 드라이버(141)를 제어하여, 애플리케이션(150)의 출력 데이터를 공유 메모리(112)에 기입한다. 게스트 OS(140)가 공유 메모리(112)에 세트하는 데이터의 포맷은, 도 4에 나타낸 예와 같다. 여기에서는, 데이터부(1020)에, 애플리케이션(150)이 출력한 데이터가 세트된다. 또, 게스트 OS(140)는 프론트엔드 드라이버(141)를 제어하여, 루트 OS(180)가 공유 메모리(112)에 세트한 데이터를 읽어낸다. 루트 OS(180)가 공유 메모리(112)에 세트하는 데이터의 포맷도 도 4에 나타내는 예와 같다.
도 3에 나타내는 게스트 OS(140)는, 또한, 프론트엔드 드라이버(141)를 제어하여, 루트 OS(180)와의 사이에 가상 버스를 통한 버스 통신을 행한다. 게스트 OS(140)는 공유 메모리(112)에 데이터를 세트하면, 데이터 세트 통지의 시그널을, 프론트엔드 드라이버(141)를 제어하여 루트 OS(180)에 송신한다. 이 시그널을 받아, 루트 OS(180)는 백엔드 드라이버(113)를 사용하여 공유 메모리(112)로부터 데이터를 읽어낸다.
또, 루트 OS(180)가 공유 메모리(112)에 데이터를 세트했을 경우, 루트 OS(180)는 프론트엔드 드라이버(141)에, 데이터 세트 통지의 시그널을 송신한다. 프론트엔드 드라이버(141)가 이 시그널을 받으면, 게스트 OS(140)는 프론트엔드 드라이버(141)를 제어하여, 공유 메모리(112)로부터 데이터를 읽어낸다.
애플리케이션(150)은 검사 장치(93)의 검사 데이터를 해석하는 해석 처리를 행한다. 애플리케이션(150)은, 예를 들면, 가상 머신(12)의 애플리케이션(130)으로부터 수신한 검사 데이터를 해석하여, 해석에 기초하는 품질 상황을 나타내는 데이터를 생성하고, 생성한 품질 상황을 나타내는 데이터를, 가상 머신(12)에 송신한다. 애플리케이션(150)은 게스트 OS(140)가, 보조 기억부(3)에 격납되어 있는 프로그램을 실행함으로써 기동된다.
게스트 OS(120, 140)는 헤더(1010)의 목적지 ID(1011)에 목적지의 가상 머신을 나타내는 ID를 세트하여, 목적지의 가상 머신을 지정한다. 목적지로서 같은 정보 처리 장치(11)의 가상 머신(12, 13) 중 한쪽이 지정된다. 다만, 상술한 것처럼, 유저가 다른 정보 처리 장치에 전송하도록 지정했을 경우, 루트 OS(180)는 가상 머신(12, 13)이 공유 메모리(111, 112)에 세트한 데이터를, 유저가 지정하는 목적지에 전송한다. 또한, 루트 OS(180)는, 유저의 지정에 기초하여, 가상 머신(12, 13)이 공유 메모리(111, 112)에 세트한 데이터의 헤더(1010)의 정보를 고쳐 쓴다. 배송 정보 테이블(161)과 기동 조건 테이블(162)은, 상기의 루트 OS(180)의 처리에 사용된다.
배송 정보 테이블(161)에는, 가상 머신(12, 13)이 데이터를 배송하는 목적지인 배송지가 미리 등록되어 있다. 배송 정보 테이블(161)로의 등록은 다음과 같이 행해진다. 우선, 유저는 도시하지 않은 등록용 툴을 사용하여, 배송 정보 테이블(161)에 등록할 데이터를 작성한다. 유저는 등록용 툴을 통신 케이블로 정보 처리 장치(11)에 접속하여, 작성한 데이터를 정보 처리 장치(11)에 업로드하여, 배송 정보 테이블(161)에 데이터를 등록한다. 여기서, 등록용 툴은 퍼스널 컴퓨터에 전용 프로그램을 인스톨한 것이다.
배송 정보 테이블(161)에는 게스트 OS(120, 140)가 공유 메모리(111, 112)에 세트한 헤더(1010)의 정보와, 데이터의 배송지의 대응을 나타내는 정보가 격납되어 있다. 보다 구체적으로는, 배송 정보 테이블(161)에는, 목적지의 가상 머신을 나타내는 목적지 ID(1011)와, 송신원의 가상 머신을 나타내는 송신원 ID(1012)와, 해당 데이터를 출력한 애플리케이션의 식별 정보인 타입(1013)으로부터, 데이터의 배송지가 지정되어 있다. 또한, 배송 정보 테이블(161)에서는, 송신시에 갱신하는 헤더(1010)의 값도 지정되어 있다.
도 5에 배송 정보 테이블(161)에 등록되는 데이터의 일례를 나타낸다. 이하, 가상 머신(12)을 식별하는 ID를 「VM12」, 가상 머신(13)을 식별하는 ID를 「VM13」, 가상 머신(22)을 식별하는 ID를 「VM22」, 가상 머신(23)을 식별하는 ID를 「VM23」으로 하여 설명을 행한다. 또, 타입(1013)에 세트하는 값에는, 수치 계산용 애플리케이션의 식별 정보인 「APP1」과, 제어용 애플리케이션의 식별 정보인 「APP2」와, 화상 처리용 애플리케이션의 식별 정보인 「APP3」이 포함되는 것으로 한다.
도 5에 나타내는 것처럼, 배송 설정의 No.1에서는, 목적지 ID(1011)가 "VM13"이고, 송신원 ID(1012)가 "VM12"이고, 타입(1013)이 "APP1"인 경우에, 배송지를 "정보 처리 장치(21)"로 하는 것이 지정되어 있다. 도시하는 예에서는, 정보 처리 장치를 식별하는 정보로서 "정보 처리 장치(21)"와 같은 값이 등록되어 있지만, 배송지로서, 정보 처리 장치의 IP(Internet Protocol) 어드레스를 지정해도 된다.
배송 설정 No.1의 갱신 헤더의 목적지 ID(1011)는 "VM23", 송신원 ID(1012)는 "VM22", 타입(1013)은 "APP1"이다. 이것은 헤더(1010)의 목적지 ID(1011)를 "VM23"으로, 송신원 ID(1012)를 "VM22"으로, 타입(1013)을 "APP1"로 갱신하도록 지정되어 있는 것을 나타낸다.
예를 들면, 가상 머신(12)의 게스트 OS(120)가, 수치 계산용 애플리케이션이 출력한 데이터를 가상 머신(13) 앞으로의 데이터로서 도 4에 나타내는 포맷으로 공유 메모리(111)에 격납한 것으로 한다. 이 경우, 해당 데이터의 헤더(1010)에는, 목적지 ID(1011) "VM13", 송신원 ID(1012) "VM12", 타입(1013) "APP1"이 세트되어 있다. 이 경우, 도 5에 나타내는 것처럼, 헤더(1010)에 세트된 정보에 합치하는 배송 설정은 No.1이다. 배송 설정의 No.1에서는, 배송지로서 "정보 처리 장치(21)"가 지정되어 있다. 이 때문에, 후술의 배송 관리부(181)와 통신부(182)에 의해, 해당 데이터는 정보 처리 장치(21)에 배송된다.
또한, 배송 설정의 No.1에 따라서, 배송 관리부(181)에 의해, 헤더(1010)의 목적지 ID(1011)가 "VM23"으로, 송신원 ID(1012)가 "VM22"로, 타입(1013)이 "APP1"로 갱신된다. 이 때문에, 해당 데이터를 수신한 정보 처리 장치(21)의 가상 머신(23)에서는, 수신한 데이터가 같은 정보 처리 장치(21)의 가상 머신(22)의 수치 계산 프리케이션으로부터 출력된 것이라고 간주된다.
도 5에 나타내는 것처럼, 배송 설정의 No.2에서는, 목적지 ID(1011)가 "VM13"이고, 송신원 ID(1012)가 "VM12"이고, 타입(1013)이 "APP2"인 경우에, 배송지를 "정보 처리 장치(21)"로 하는 것이 지정되어 있다. 또한, 배송 설정의 No.2에서는, 헤더(1010)의 목적지 ID(1011)를 "VM23"으로, 송신원 ID(1012)를 "VM22"로, 타입(1013)을 "APP3"으로 갱신하는 것이 지정되어 있다.
도 3에 나타내는 가상 머신(12)이 제어용 애플리케이션의 출력 데이터를, 가상 머신(13) 앞으로의 데이터로서 공유 메모리(111)에 격납했을 경우, 도 5에 나타내는 배송 설정의 No.2에 따라서, 해당 데이터는 정보 처리 장치(21)로 배송된다. 배송시에, 헤더(1010)의 각 값이, 배송 설정의 No.2의 갱신 헤더의 값으로 갱신되기 때문에, 정보 처리 장치(21)가 수신한 데이터의 목적지 ID(1011)는 "VM23", 송신원 ID(1012)는 "VM22", 타입(1013)은 "APP3"으로 되어 있다. 이 때문에, 정보 처리 장치(21)의 가상 머신(23)에서는, 수신한 데이터가 같은 정보 처리 장치(21)의 가상 머신(22)의 화상 처리용 애플리케이션으로부터 출력된 것이라고 잔주된다.
배송 설정의 No.3에서는, 목적지 ID(1011)가 "VM12"이고, 송신원 ID(1012)가 "VM13"이고, 타입(1013)이 "APP2"인 경우에, 갱신 헤더의 정보가 등록되어 있지 않다. 이것은 해당 데이터를 어디에도 배송하지 않는 것을 나타낸다.
도 3에 나타내는 가상 머신(13)이 제어용 애플리케이션의 출력 데이터를, 가상 머신(12) 앞으로의 데이터로서 공유 메모리(112)에 격납했을 경우, 도 5에 나타내는 배송 설정의 No.3에 따라서, 해당 데이터는 어디에도 배송되지 않는다. 즉, 가상 머신(13)으로부터 가상 머신(12)을 향한 통신이 차단된다.
배송 설정의 No.4에서는, 목적지 ID(1011)가 "VM13"이고, 송신원 ID(1012)가 "VM12"이고, 타입(1013)이 "APP3"인 경우에, 배송지로서 "로컬 호스트", 즉, 자기(自機)의 정보 처리 장치(11)가 지정되어 있다. 배송 설정의 No.4에서는, 헤더(1010)의 목적지 ID(1011)를 "VM13", 송신원 ID(1012)를 "VM12", 타입(1013)을 "APP1"로 갱신하는 것이 지정되어 있다.
도 3에 나타내는 가상 머신(12)이 화상 처리용 애플리케이션의 출력 데이터를, 가상 머신(13) 앞으로의 데이터로서 공유 메모리(111)에 격납했을 경우, 도 5에 나타내는 배송 설정의 No.4에 따라서, 해당 데이터는 동일한 정보 처리 장치(11)의 가상 머신(13)에 배송된다. 배송 시에, 헤더(1010)의 각 값이, 배송 설정의 No.4의 갱신 헤더의 값으로 갱신되기 때문에, 가상 머신(13)이 수신한 데이터의 타입(1013)은 "APP3"이 되어 있다. 이 때문에, 가상 머신(13)에서는, 수신한 데이터가 수치 계산용 애플리케이션으로부터 출력된 것이라고 간주된다.
기동 조건 테이블(162)에는, 배송 정보 테이블(161)의 각 배송 설정을 유효로 할지, 무효로 할지를 나타내는 정보가 미리 등록되어 있다. 기동 조건 테이블(162)의 데이터도, 배송 정보 테이블(161)의 데이터와 마찬가지로, 유저가 등록용 툴을 사용하여 작성하여, 정보 처리 장치(11)에 업로드함으로써, 기동 조건 테이블(162)에 등록된다.
실시 형태에 있어서, 배송 정보 테이블(161)의 각 배송 설정은, 기동 조건 테이블(162)에서 결정된 조건이 충족된 경우에, 유효 또는 무효가 된다.
도 6에 기동 조건 테이블(162)에 등록되는 데이터의 일례를 나타낸다. 여기에서는, 정보 처리 장치(11)의 보조 기억부(3)의 지정된 메모리 어드레스에 격납되어 있는 값과 임계치의 관계에서, 유효 혹은 무효로 하도록 지정되어 있다. 도시하는 예에서는, 배송 설정의 No.1은 지정된 메모리 어드레스의 값이 임계치와 일치했을 때에 유효가 되고, 배송 설정의 No.2는 지정된 메모리 어드레스의 값이 임계치 미만일 때 유효가 된다. 배송 설정의 No.3은 지정된 메모리 어드레스의 값이 임계치보다 클 때 무효가 된다
도 7에 기동 조건 테이블(162)에 등록되는 데이터의 다른 예를 나타낸다. 여기에서는, 지정된 기간, 배송 설정을 유효 또는 무효로 하는 것이 지정되어 있다. 도시하는 예에서는, 배송 설정의 No.4는 지정된 개시 일시·개시 시각으로부터 종료 일시·종료 시각까지의 동안, 유효가 된다.
도 3에 나타내는 것처럼, 루트 OS(180)는 정보 처리 장치(11)에 인스톨되어 있고, 정보 처리 장치(11)에 전원이 투입되면, 처음에 기동된다. 루트 OS(180)는 하이퍼바이저(110)에, 가상 머신(12 및 13)을 작성시켜, 관리시킨다. 루트 OS(180)는 프로세서(1)가 보조 기억부(3)에 격납되어 있는 프로그램을 실행함으로써 실현된다.
루트 OS(180)는 배송 관리부(181)와 통신부(182)를 포함한다. 배송 관리부(181)는 루트 OS(180)가 보조 기억부(3)의 프로그램(001)을 실행함으로써 실현된다. 통신부(182)는 루트 OS(180)가 보조 기억부(3)의 프로그램(002)을 실행함으로써, 실현된다. 배송 관리부(181)는 본 발명의 배송 관리 수단의 일례이다. 통신부(182)는 본 발명의 통신 수단의 일례이다.
배송 관리부(181)는 송신원이 가상 머신(12, 13)인 데이터, 목적지로서 가상 머신(12, 13)이 지정되어 있는 데이터의 배송과 관련되는 처리를 행한다.
우선, 배송 관리부(181)가 가상 머신(12, 13)이 공유 메모리(111, 112)에 데이터를 세트했을 경우에 행하는 처리를 설명한다. 배송 관리부(181)는 가상 머신(12, 13)이 공유 메모리(111, 112)에 세트한 데이터를 각각, 전술한 배송 정보 테이블(161)과 기동 조건 테이블(162)에 기초한 배송지에, 혹은 가상 머신(12, 13)이 각각 지정한 목적지에 배송한다.
예를 들면, 데이터 세트 통지의 시그널의 수신에 의해, 가상 머신(12)이 공유 메모리(111)에 데이터를 세트했다고 판별하면, 배송 관리부(181)는 백엔드 드라이버(113)를 제어하여, 공유 메모리(111)로부터 데이터를 읽어낸다. 배송 관리부(181)는 읽어낸 데이터의 목적지 ID(1011)와 송신원 ID(1012)와 타입(1013)에 기초하여, 배송 정보 테이블(161)에 배송지가 등록되어 있는지 여부를 판별한다.
배송 관리부(181)는 공유 메모리(111)로부터 읽어낸 데이터에 대해서, 배송 정보 테이블(161)의 배송지로서 다른 정보 처리 장치인 정보 처리 장치(21)가 지정되어 있는 경우는, 헤더(1010)를 갱신하고, 해당 데이터를 배송지의 정보 처리 장치(21)를 나타내는 정보와 함께, 통신부(182)에 송신한다. 배송 관리부(181)는 공유 메모리(111)로부터 읽어낸 데이터에 대해서, 배송 정보 테이블(161)에, 배송 설정이 등록되지 않은 경우, 헤더(1010)를 갱신하지 않고, 해당 데이터를 가상 머신(13)의 공유 메모리(112)에, 백엔드 드라이버(113)를 제어하여 기입한다. 또, 배송 관리부(181)는 공유 메모리(111)로부터 읽어낸 데이터에 대해서, 배송 정보 테이블(161)의 배송지로서 자기의 정보 처리 장치(11)의 가상 머신(13)이 지정되어 있는 경우는, 헤더(1010)를 갱신하고, 해당 데이터를 가상 머신(13)의 공유 메모리(112)에, 백엔드 드라이버(113)를 제어하여 기입한다.
이상이, 배송 관리부(181)가 가상 머신(12, 13)이 공유 메모리(111, 112)에 데이터를 세트했을 경우에 행하는 처리이다.
이어서, 배송 관리부(181)가 통신부(182)가 정보 처리 장치(21)로부터 통신 패킷을 수신했을 경우에 행하는 처리를 설명한다.
배송 관리부(181)는 통신부(182)로부터의 통신 패킷으로부터 통신용 헤더(1040)를 제거한 데이터를 수취하면, 해당 데이터의 헤더(1010)의 목적지 ID에 기초하여, 가상 머신(12 또는 13)에 해당 데이터를 배송한다. 예를 들면, 목적지 ID(1011)가 가상 머신(13)을 나타내는 경우, 배송 관리부(181)는 백엔드 드라이버(113)를 제어하여, 해당 데이터를 공유 메모리(112)에 기입하고, 프론트엔드 드라이버(141)에 데이터 세트 통지의 시그널을 송신한다. 목적지 ID(1011)가 가상 머신(12)을 나타내는 경우도, 배송 관리부(181)는 같은 처리를 행한다. 이와 같이 하여, 다른 정보 처리 장치인 정보 처리 장치(21)로부터 송신된 데이터는, 가상 머신(12 또는 13)에 배송된다.
통신부(182)는 통신 경로(50)를 통해서, 정보 처리 장치(21)와, 통신 패킷의 송수신을 행한다.
우선, 통신부(182)가 배송 관리부(181)로부터 정보 처리 장치(21) 앞으로의 데이터를 수신했을 경우에, 통신부(182)가 행하는 처리를 설명한다. 통신부(182)는 배송 관리부(181)로부터 도 4에 나타내는 것 같은 정보 처리 장치(21) 앞으로의 데이터와, 배송지의 정보를 수신하면, 배송지의 정보를 포함한 통신용 헤더(1040)를 생성한다. 예를 들면, 통신부(182)는 통신 경로(50)가 포함되는 LAN의 프로토콜에 따른 IP헤더를 통신용 헤더(1040)로서 생성한다. 통신부(182)는, 도 8에 나타내는 것 같은, 배송 관리부(181)로부터 수신한 정보 처리 장치(21) 앞으로의 데이터에, 통신용 헤더(1040)를 부가한 통신 패킷(1100)을 생성한다. 통신부(182)는 생성한 통신 패킷(1100)을, 통신 경로(50)로부터 정보 처리 장치(21)에 송신한다.
이어서, 통신부(182)가 정보 처리 장치(21)로부터 통신 패킷을 수신했을 경우에, 통신부(182)가 행하는 처리를 설명한다. 통신부(182)는 정보 처리 장치(21)로부터 통신 패킷(1100)을 수신하면, 통신 패킷(1100)으로부터 통신용 헤더(1040)를 제거한 데이터를, 배송 관리부(181)에 송신한다.
이상, 정보 처리 장치(11)의 각부의 구성을 설명했지만, 정보 처리 장치(21)도 같은 구성을 가진다.
다음에, 정보 처리 장치(11)의 가상 머신(12, 13)이 송신측인 경우의 일련의 처리의 흐름을 설명한다. 이하, 가상 머신(12, 13)이 공유 메모리(111, 112)에 세트하는 데이터를 공유 메모리 데이터라고 하는 경우가 있다. 공유 메모리 데이터는 본 발명의 제1 데이터의 일례이다.
우선, 가상 머신(12, 13) 중 어느 것으로부터 공유 메모리 데이터의 데이터 세트 통지를 받은 배송 관리부(181)의 제1 배송 처리를 설명한다.
도 9에 나타내는 것처럼, 배송 관리부(181)는 결정된 주기로, 데이터 세트 통지의 시그널을 수신했는지 여부를 판별한다(스텝 S101). 배송 관리부(181)는 데이터 세트 통지의 시그널을 수신했다고 판별하면(스텝 S101;Yes), 백엔드 드라이버(113)를 제어하여, 가상 머신(12와 13) 중, 데이터 세트 통지의 시그널을 송신한 가상 머신에 할당된 공유 메모리로부터 공유 메모리 데이터를 읽어낸다(스텝 S102). 읽어낸 데이터를 보조 기억부(3)의 결정된 영역에 격납한다. 예를 들면, 가상 머신(12)으로부터 데이터 세트 통지의 시그널을 수신하면, 배송 관리부(181)는 공유 메모리(111)로부터 공유 메모리 데이터를 읽어낸다. 이하, 배송 관리부(181)는 보조 기억부(3)의 결정된 영역에 격납한 데이터에 대해서 하기의 처리를 실행한다.
배송 관리부(181)는 공유 메모리로부터 읽어낸 데이터의 헤더(1010)의 목적지 ID(1011)와 송신원 ID(1012)와 타입(1013)에 기초하여, 배송 정보 테이블(161)에 배송지가 설정되어 있는지 여부를 판별한다(스텝 S103). 예를 들면, 공유 메모리(111)로부터 읽어낸 데이터의 목적지 ID(1011)가 가상 머신(13)을 나타내는 "VM13"이고, 송신원 ID(1012)가 가상 머신(12)을 나타내는 "VM12"이고, 타입(1013)이 "APP1"인 경우, 배송 정보 테이블(161)의 배송 설정의 No.1과 일치하기 때문에, 배송 관리부(181)는 배송지가 지정되어 있다고 판별한다(스텝 S103;Yes).
배송 관리부(181)는 기동 조건 테이블(162)을 참조하여, 배송 설정이 유효인지 여부를 판별한다(스텝 S104). 예를 들면, 배송 관리부(181)는 배송 설정의 No.1에 대해서, 지정된 메모리 어드레스 「0X1000000」의 값이 임계치 「100」이라고 판별하면, 배송 설정이 유효라고 판별한다(스텝 S104;Yes).
배송 관리부(181)는 배송 정보 테이블(161)의 갱신 헤더로서 지정된 값으로, 공유 메모리(111)로부터 읽어낸 공유 메모리 데이터의 헤더(1010)의 값을 갱신한다(스텝 S105). 예를 들면, 배송 설정 No.1의 경우, 배송 관리부(181)는 목적지 ID(1011)를 "VM23"으로, 송신원 ID(1012)를 "VM22"로, 타입(1013)을 "APP1"로 갱신한다.
배송 관리부(181)는 배송 정보 테이블(161)의 배송지의 정보 처리 장치를 나타내는 정보와, 헤더(1010)의 값을 갱신한 공유 메모리 데이터를 통신부(182)에 공급한다(스텝 S106).
한편, 스텝 103에서, 배송 관리부(181)는 배송지가 지정되어 있지 않다고 판별하면(스텝 S103;No), 백엔드 드라이버(113)를 제어하여, 읽어낸 공유 메모리 데이터에 포함되는 목적지 ID(1011)가 나타내는 가상 머신의 공유 메모리에, 공유 메모리 데이터를 기입한다(스텝 S107). 그 후, 배송 관리부(181)는 목적지 ID(1011)가 나타내는 가상 머신의 프론트엔드 드라이버에 대해서, 데이터 세트 통지의 시그널을 송신한다(스텝 S108). 예를 들면, 공유 메모리(111)로부터 읽어낸 공유 메모리 데이터의 목적지 ID(1011)가 가상 머신(13)을 나타내는 "VM13"인 경우, 배송 관리부(181)는 그 공유 메모리 데이터를 가상 머신(13)의 공유 메모리(112)에 기입한다. 그 후, 배송 관리부(181)는 가상 머신(13)의 프론트엔드 드라이버(141)에, 데이터 세트 통지의 시그널을 송신한다.
또, 스텝 S104에서, 배송 관리부(181)는 배송 설정이 유효가 아니라고 판별하면(스텝 S104;No), 상술한 스텝 S107와 S108의 처리를 실행한다. 이상이, 배송 관리부(181)가 가상 머신(12, 14) 중 어느 것으로부터 데이터 세트 통지의 시그널을 받았을 때 행하는 처리이다.
이어서, 도 9의 스텝 S106에서, 배송 관리부(181)로부터 배송지의 정보 처리 장치의 정보와, 공유 메모리 데이터가 공급된 통신부(182)의 송신 처리를 설명한다.
도 10에 나타내는 것처럼, 통신부(182)는, 결정된 주기로, 배송 관리부(181)로부터, 배송지의 정보 처리 장치를 나타내는 정보와, 송신하는 공유 메모리 데이터를 수신했는지 여부를 판별한다(스텝 S201). 통신부(182)는 배송지의 정보 처리 장치를 나타내는 정보와, 송신하는 공유 메모리 데이터를 수신했을 경우(스텝 S201;Yes), 배송지의 정보 처리 장치를 나타내는 정보를 포함한 통신용 헤더(1040)를 생성한다(스텝 S202).
통신부(182)는, 스텝 S202에서 생성한 통신용 헤더(1040)를, 스텝 S201에서 배송 관리부(181)로부터 수신한 송신하는 공유 메모리 데이터에 부가하여, 통신 패킷을 생성한다(스텝 S203). 그 후, 통신부(182)는 통신 경로(50)로부터 통신 패킷을 송신한다(스텝 S204). 이상이, 통신부(182)의 송신 처리이다.
이상, 정보 처리 장치(11)를 예로 설명했지만, 정보 처리 장치(21)의 가상 머신(22, 23)이 송신측인 경우도 마찬가지이다.
다음에, 정보 처리 장치(11)의 가상 머신(12, 13)이 수신측인 경우의 일련의 처리의 흐름을 설명한다.
우선, 정보 처리 장치(21)로부터 공유 메모리 데이터를 포함하는 통신 패킷이 송신되었을 경우의, 통신부(182)의 수신 처리를 설명한다.
도 11에 나타내는 것처럼, 통신부(182)는 결정된 주기로 통신 경로(50)로부터 통신 패킷을 수신했는지 여부를 판별하여(스텝 S301), 수신했다고 판별하면(스텝 S301;Yes), 수신 패킷으로부터 공유 메모리 데이터를 취출한다(스텝 S302). 구체적으로는, 통신 패킷으로부터, 도 8에 나타내는 통신용 헤더(1040)를 제거한다. 도 11에 나타내는 것처럼, 통신부(182)는 공유 메모리 데이터를 배송 관리부(181)에 공급한다(스텝 S303). 이상이, 통신부(182)의 통신 처리이다.
이어서, 도 11의 스텝 S303에서, 통신부(182)로부터, 공유 메모리 데이터가 공급된 배송 관리부(181)의 제2 배송 처리를 설명한다.
도 12에 나타내는 것처럼, 배송 관리부(181)는 결정된 주기에 통신부(182)로부터 공유 메모리 데이터가 공급되었는지 여부를 판별한다(스텝 S401). 공유 메모리 데이터가 공급되면(스텝 S401;Yes), 하기의 처리를 실행한다. 배송 관리부(181)는 수신한 공유 메모리 데이터의 목적지 ID(1011)가 나타내는 가상 머신의 공유 메모리에, 백엔드 드라이버(213)를 제어하여, 공유 메모리 데이터를 세트한다(스텝 S402). 배송 관리부(181)는 데이터를 세트한 취지를 통지하는 데이터 세트 통지의 시그널을, 목적지 ID(1011)가 나타내는 가상 머신의 프론트엔드 드라이버에 통지한다(스텝 S403). 이상이 공유 메모리 데이터를 수신한 배송 관리부(181)의 제2 배송 처리이다.
이상, 정보 처리 장치(11)을 예로 설명했지만, 정보 처리 장치(21)의 가상 머신(22, 23)이 수신측인 경우도 마찬가지이다.
이상 설명한 것처럼, 본 발명의 실시 형태에 따른 정보 처리 장치(11)에서는, 가상 머신(12)과 가상 머신(13)의 데이터의 교환이 루트 OS(180)를 통해서 행해진다. 가상 머신(12)과 가상 머신(13) 간의 데이터를 정보 처리 장치(21)에 전송하도록 지정되어 있는 경우에는, 그 데이터는 정보 처리 장치(21)에 전송된다. 이와 같이, 복수의 정보 처리 장치의 가상 머신이, 정보 처리 장치 간을 걸쳐서, 통신할 수 있다.
상기 설명에 있어서는, 정보 처리 장치(11) 내의 가상 머신(12)과 가상 머신(13) 사이에서 교환되는 데이터를 다른 정보 처리 장치(21)에 전송했지만, 정보 처리 장치(11) 내에 가상 머신 간에서 데이터를 전송할 수 있다. 이하, 변형예에 있어서 설명한다.
(변형예)
도 13에 나타내는 것처럼, 변형예에 따른 정보 처리 장치(11)는 가상 머신(12와 13)에 더하여, 가상 머신(14)을 가진다. 덧붙여, 도 13에 있어서는, 정보 처리 장치(21)의 구성의 도시를 생략하고 있지만, 정보 처리 장치(21)와 관련되는 구성은, 실시 형태와 같다.
가상 머신(14)은 가상 머신(13)과 마찬가지로 정보 처리를 행하는 컴퓨터로서 기능한다. 가상 머신(14)은 본 발명의 제3 가상 머신의 일례이다. 가상 머신(14)의 게스트 OS(170)는 가상 머신(13)의 게스트 OS(140)와 마찬가지로, 정보 처리용 애플리케이션(190)을 실행한다. 가상 머신(14)은 가상 머신(13)과 같은 구성을 가지기 때문에, 여기에서는 가상 머신(14)의 하드웨어, 기능에 대한 설명을 생략한다.
변형예에 있어서는, 정보 처리 장치(11) 내의 가상 머신(12)과 가상 머신(13) 사이에서 교환되는 데이터를, 같은 정보 처리 장치(11)의 가상 머신(14)에 전송하는 것을 상정하여 설명한다. 이 경우, 배송 정보 테이블(161)에 등록되는 데이터의 예를 도 14에 나타낸다. 여기에서는, 가상 머신(14)을 식별하는 ID를 「VM14」라고 한다. 그 외의 가상 머신을 식별하는 ID와, 타입(1013)의 값은 실시 형태와 같다. 배송 설정 No.1부터 No.4의 내용은, 실시 형태와 같기 때문에 설명을 생략한다.
도 14에 나타내는 것처럼, 배송 설정의 No.5에는, 목적지 ID(1011)가 "VM13"이고, 송신원 ID(1012)가 "VM12"이고, 타입(1013)이 "APP1"인 경우에, 배송지에 "로컬 호스트"가 지정되어 있다. 또한, 헤더(1010)의 각 값에 대해서, 목적지 ID(1011)를 "VM14"로, 송신원 ID(1012)를 "VM12"로, 타입(1013)을 "APP1"로 갱신하는 것이 지정되어 있다.
배송 설정의 No.5에 따라서, 데이터가 어떻게 배송되는지를 설명한다. 덧붙여, 배송 설정 No.5는 유효로 되어 있는 것으로 한다. 가상 머신(12)이 수치 계산용 애플리케이션의 출력 데이터를, 가상 머신(13) 앞으로의 공유 메모리(111)에 세트하고, 데이터 세트 통지를 루트 OS(180)에 송신했다고 가정한다. 이 경우, 공유 메모리(111)의 목적지 ID(1011)에는 "VM13", 송신원 ID(1012)에는 "VM12", 타입(1013)에는 "APP1"이 세트된다.
이하, 도 14를 참조하면서, 배송 관리부(181)의 변형예에 따른 제1 배송 관리 처리를 설명한다. 덧붙여, 실시 형태와 상이한 구성을 중심으로 설명한다.
배송 관리부(181)는 가상 머신(12)으로부터 데이터 세트 통지의 시그널을 수신했다고 판별하면(스텝 S101;Yes), 백엔드 드라이버(113)를 제어하어, 가상 머신(12)에 할당된 공유 메모리(111)로부터 공유 메모리 데이터를 읽어내고(스텝 S102), 읽어낸 데이터를 보조 기억부(3)의 결정된 영역에 격납한다.
배송 관리부(181)는 공유 메모리로부터 읽어낸 데이터의 헤더(1010)의 목적지 ID(1011)와 송신원 ID(1012)와 타입(1013)에 기초하여, 배송 정보 테이블(161)에 배송지가 설정되어 있는지 여부를 판별한다(스텝 S103). 여기에서는, 도 14에 나타내는 것처럼, 목적지 ID(1011)와, 송신원 ID(1012)와, 타입(1013)의 값이, 배송 설정의 No.5와 일치하기 때문에, 도 15에 나타내는 것처럼, 배송 관리부(181)는 배송지가 지정되어 있다고 판별한다(스텝 S103;Yes).
배송 관리부(181)는 기동 조건 테이블(162)을 참조하여, 배송 설정이 유효인지 여부를 판별하여(스텝 S104), 배송 설정의 No.5가 유효라고 판별한다(스텝 S104;Yes).
배송 관리부(181)는 배송 정보 테이블(161)의 갱신 헤더로서 지정된 값으로, 공유 메모리(111)로부터 읽어낸 공유 메모리 데이터의 헤더(1010)의 값을 갱신한다(스텝 S105). 도 14에 나타내는 것처럼, 배송 설정의 No.5의 경우, 배송 관리부(181)는 목적지 ID(1011)를 "VM14 "로, 송신원 ID(1012)를 "VM12"로, 타입(1013)을 "APP1"로 갱신한다.
도 15에 나타내는 것처럼, 배송 관리부(181)는 배송 정보 테이블(161)의 배송지가, 다른 정보 처리 장치인지, 즉, 정보 처리 장치(11) 이외인지를 판별한다(스텝 S109). 도 14에 나타내는 것처럼, 배송 설정의 No.5의 경우, 배송지는 "로컬 호스트"이므로, 도 15에 나타내는 것처럼, 배송 관리부(181)는 배송지가 다른 정보 처리 장치(21)는 아니라고 판별한다(스텝 S109;No).
배송 관리부(181)는 백엔드 드라이버(113)를 제어하여, 배송 설정이 나타내는 목적지의 가상 머신의 공유 메모리에, 공유 메모리 데이터를 기입한다(스텝 S110). 여기에서는, 배송 관리부(181)는 가상 머신(14)에 할당된 공유 메모리(114)에 공유 메모리 데이터를 기입한다. 그 후, 배송 관리부(181)는 가상 머신(14)의 프론트엔드 드라이버(171)에 대해서, 데이터 세트 통지의 시그널을 송신한다(스텝 S111).
한편, 도 15에 나타내는 것처럼, 스텝 S106에서, 배송 관리부(181)는 배송지가 다른 정보 처리 장치라고 판별하면(스텝 S109;Yes), 배송 정보 테이블(161)의 배송지의 정보 처리 장치를 나타내는 정보와, 헤더(1010)의 값을 갱신한 공유 메모리 데이터를 통신부(182)에 공급한다(스텝 S112).
또, 스텝 S103에서, 배송 관리부(181)가, 배송 정보 테이블(161)에 배송지가 지정되어 있지 않다고 판별했을 경우(스텝 S103;No)의 처리는, 실시 형태와 같다. 스텝 S104에서, 배송 설정이 유효가 아니라고 판별했을 경우(스텝 S104;No)의 처리는, 실시 형태와 같다.
이상, 실시 형태, 변형예에 있어서 설명한 것처럼, 본 발명에 따른 정보 처리 장치에서는, 가상 머신 사이에서 교환되는 데이터에 대해서, 배송 정보 테이블(161)에 있어서, 다른 정보 처리 장치에 전송하도록 지정되어 있는 경우, 본래의 목적지의 가상 머신으로가 아니라, 지정된 다른 정보 처리 장치에 데이터를 송신한다. 이러한 구성을 구비함으로써, 가상 머신측의 설정을 변경하는 일 없이, 복수의 정보 처리 장치를 걸쳐 가상 머신 간의 통신이 가능하다.
변형예에 있어서는, 배송 관리부(181)는 배송 정보 테이블(161)에, 가상 머신이 공유 메모리에 기입한 목적지 ID(1011)와는 상이한 가상 머신이 목적지로서 지정되어 있는 경우, 지정되어 있는 가상 머신에 할당된 공유 메모리로 데이터를 배송한다. 이와 같이, 동일 정보 처리 장치 내의 가상 머신으로도 데이터를 전송할 수 있다.
배송 정보 테이블(261)에서는, 목적지 ID(1011)와 송신원 ID(1012)와 타입(1013)에 기초하여, 데이터의 배송지가 지정되어 있다. 이 때문에, 특정의 애플리케이션에 대해서, 정보 처리 장치를 걸쳐, 가상 머신 간의 통신이 가능하다. 또, 동일한 정보 처리 장치 내의 가상 머신 간의 통신에 대해서도, 마찬가지로 특정의 애플리케이션 간의 데이터의 교환을 가능하게 한다.
기동 조건 테이블(262)에 있어서, 배송 정보 테이블(261)의 각각의 배송 설정이 유효인지 무효인지를 설정할 수 있기 때문에, 예를 들면, 애플리케이션 간의 데이터의 교환에 대해 검증하는 경우에는, 대상 애플리케이션 이외의 애플리케이션의 무관계한 통신을 배제할 수 있다.
가상 머신의 게스트 오퍼레이팅 시스템은, 공유 메모리에 데이터를 기입했다는 취지를 통지하는 데이터 세트의 시그널을, 루트 오퍼레이팅 시스템에 송신한다. 이것에 의해, 루트 오퍼레이팅 시스템은 데이터 세트의 시그널을 받았을 때, 공유 메모리의 데이터를 읽으러 가면 되어, 각 가상 머신에 할당된 공유 메모리를 감시할 필요가 없다. 또, 루트 오퍼레이팅 시스템은, 헤더(1010)의 정보에 의존하지 않아도, 공유 메모리에 기입한 가상 머신을 판별할 수 있다.
배송 관리부(181)는 공유 메모리에 기입했다는 취지를 통지하는 데이터 세트의 시그널을 대상이 되는 게스트 오퍼레이팅 시스템에 통지한다. 이것에 의해, 게스트 오퍼레이팅 시스템은 데이터 세트의 시그널을 받았을 때, 공유 메모리의 데이터를 읽으러 가면 되어, 공유 메모리를 감시할 필요가 없다.
또, 1개의 정보 처리 장치에, 많은 가상 머신을 동작시켰을 경우에는, 복수의 가상 머신은, 물리적으로 1대의 정보 처리 장치의 하드웨어 자원을 사용하게 되므로, 자원 부족이 되는 경우도 생긴다. 그러나, 실시 형태에서는, 2대 이상의 정보 처리 장치의 가상 머신 간의 통신이 가능하기 때문에, 정보 처리 장치의 하드웨어 자원의 부족과 같은 사태를 회피할 수 있다.
상술의 예에서는, 기동 조건 테이블(162, 262)을 사용하여, 배송 설정의 유효 또는 무효를 지정했다. 그러나, 정보 처리 장치(11, 21)는 기동 조건 테이블(162, 262)을 사용하지 않아도 된다. 이 경우, 배송 정보 테이블(161, 261)에 등록되어 있는 모든 배송 설정을 유효로 하는 것으로 하고, 배송 설정을 무효로 하고 싶은 경우는, 배송 정보 테이블(161, 261)로부터 그 배송 설정을 삭제하도록 해도 된다. 이 경우, 정보 처리 장치(11, 21)는 각각, 기동 조건 테이블(162, 262)의 테이블을 1개만 가지면 되므로, 테이블의 메인터넌스의 조작이 용이하다.
혹은, 도 16에 나타내는 것처럼, 배송 정보 테이블(161, 261)에, 기동 조건의 필드를 추가해도 된다. 이 경우도, 정보 처리 장치(11, 21)는 각각, 기동 조건 테이블(162, 262)의 테이블을 1개만 가지면 되기 때문에, 테이블의 메인터넌스의 조작이 용이하다.
혹은, 기동 조건 테이블(162, 262)이 유효/무효를 지정하는 필드만을 가져도 된다. 도 17에 나타내는 예에서는, 조건에 따라 유효 또는 무효를 지정하는 것이 아니라, 단순하게 유효 또는 무효를 지정하고 있다.
혹은, 배송 정보 테이블(161, 261)에, 도 18에 나타내는 것처럼, 유효/무효를 지정하는 필드를 추가하고, 이 값을 변경함으로써, 배송 정보의 유효 또는 무효를 지정하도록 해도 된다. 도 18에 나타내는 예에서는, 조건에 따라 유효 또는 무효를 지정하는 것이 아니라, 단순하게 유효 또는 무효를 지정하고 있다.
실시 형태, 변형예에서는, 각 가상 머신에 1개씩 공유 메모리를 할당했지만, 모든 가상 머신이, 다른 가상 머신에 송신하는 데이터를 같은 공유 메모리에 기입해도 된다. 이 경우에도, 루트 OS(180)는 공유 메모리에 기입된 헤더(1010)의 송신원 ID(1012)에 의해, 어느 가상 머신이 기입한 데이터인지 판별할 수 있다.
1개의 정보 처리 장치에 구축하는 가상 머신의 수는, 2 또는 3으로 한정하지 않고, 그것보다 많아도 된다. 혹은, 1개의 정보 처리 장치에 구축하는 가상 머신의 수는, 1개뿐이어도 된다. 예를 들면, 정보 처리 장치(21)에는 가상 머신(23)만을 구축해도 된다. 이 경우도, 가상 머신(22)에는 시뮬레이터(94)를 접속해도 된다. 예를 들면, 가상 머신(13)의 애플리케이션(150)의 동작을 검증하는 경우, 정보 처리 장치(11)의 가상 머신(13)과, 정보 처리 장치(21)의 가상 머신(23)이 통신을 행함으로써, 구동 기기(91 및 92)와, 검사 장치(93)의 동작 상황에 영향을 주지 않을 수 있다. 또, 정보 처리 장치(21)는 1개의 가상 머신(23)을 구축 가능한 스펙을 가지고 있으면 되기 때문에, 예를 들면, 정보 처리 장치(21)의 스펙을, 정보 처리 장치(11)의 스펙과 동등한 것으로 할 필요가 없다. 따라서, 코스트를 삭감하는 것이 가능하다.
상술한 예에서는, 통신 경로(50)는 LAN의 일부를 구성하는 것이었기 때문에, 정보 처리 장치(11과 21)는 LAN를 사용한 통신을 행했다. 그러나, 통신 경로(50)는 이것으로 한정되지 않고, 예를 들면, 통신 경로(50)로서 USB 규격의 통신 케이블을 사용하여, 정보 처리 장치(11과 21)는 USB를 통해서 통신해도 된다. 혹은, 통신 경로(50)는 유선 케이블이 아니어도 되고, 정보 처리 장치(11과 21)는 무선 LAN, WPAN(Wireless Personal Area Network)를 사용하여 통신해도 된다.
상술한 예에서는, 1개의 가상 머신이 1개의 애플리케이션만을 실행하는 예를 설명했지만, 1개의 가상 머신이 복수의 애플리케이션을 실행해도 된다.
상기의 루트 OS(180)가 실행하는 프로그램을 기록하는 기록 매체로서는, USB 메모리, 플렉서블 디스크, CD, DVD, Blu-ray(등록상표), MO, SD 카드, 메모리 스틱(등록상표), 그 외, 자기 디스크, 광 디스크, 광 자기 디스크, 반도체 메모리, 자기 테이프를 포함하는 컴퓨터 판독 가능한 기록 매체를 사용할 수 있다.
본 발명은 광의의 정신과 범위를 일탈하는 일 없이, 다양한 실시 형태 및 변형이 가능하게 되는 것이다. 또, 상술한 실시 형태는, 본 발명을 설명하기 위한 것이며, 본 발명의 범위를 한정하는 것은 아니다. 즉, 본 발명의 범위는 실시 형태가 아니라, 청구의 범위에 의해서 나타내진다. 그리고, 청구 범위 내 및 그것과 동등한 발명의 의의의 범위 내에서 실시되는 다양한 변형이, 본 발명의 범위 내로 간주된다.
001, 002: 프로그램 1: 프로세서
2: 주 기억부 3: 보조 기억부
4: 통신 제어부 9: 버스
11, 21: 정보 처리 장치 12, 13, 14, 22, 23: 가상 머신
50: 통신 경로 91, 92: 구동 기기
93: 검사 장치 94: 시뮬레이터
100: 정보 처리 시스템 110, 210: 하이퍼바이저
111, 112, 114, 211, 212: 공유 메모리
113, 213; 백엔드 드라이버
120, 140, 220, 240: 게스트 오퍼레이팅 시스템
121, 141, 171, 221, 241: 프론트엔드 드라이버
130, 150, 190, 230, 250: 애플리케이션
161, 261: 배송 정보 테이블 162, 262: 기동 조건 테이블
180, 280: 루트 OS 181, 281: 배송 관리부
182, 282: 통신부 1010: 헤더
1011: 목적지 ID 1012: 송신원 ID
1013: 타입 1014: 사이즈
1020: 데이터부 1030: 오류 검출 코드
1040: 통신용 헤더 1100: 통신 패킷

Claims (8)

  1. 가상 머신을 복수 포함하는 가상 환경이 구축된 정보 처리 장치로서,
    상기 정보 처리 장치 상에서 동작하는 루트 오퍼레이팅 시스템과,
    상기 가상 머신 상에서 각각 동작하는 게스트 오퍼레이팅 시스템과,
    상기 게스트 오퍼레이팅 시스템과 상기 루트 오퍼레이팅 시스템이 액세스 가능한 공유 메모리와,
    상기 가상 머신이 지정하는 데이터의 목적지를 나타내는 목적지 정보 및 해당 데이터의 송신원을 나타내는 송신원 정보와, 해당 데이터를 실제로 배송할 곳인 배송지의 관계를 지정하는 배송 정보 기억 수단을 구비하고,
    상기 루트 오퍼레이팅 시스템은, 상기 가상 머신이 출력한 데이터의 배송을 관리하는 배송 관리 수단과, 다른 정보 처리 장치와 통신 경로를 통해서 통신하는 통신 수단을 포함하고,
    복수의 상기 가상 머신 중 제1 가상 머신의 상기 게스트 오퍼레이팅 시스템이, 복수의 상기 가상 머신 중 제2 가상 머신을 목적지로 하는 제1 데이터를, 상기 목적지 정보 및 상기 송신원 정보와 함께, 상기 공유 메모리에 기입하면, 상기 배송 관리 수단은 상기 배송 정보 기억 수단에 상기 목적지 정보 및 상기 송신원 정보에 대응한 배송지가 지정되어 있는지 여부를 판별하고,
    상기 배송 정보 기억 수단에 상기 목적지 정보 및 상기 송신원 정보에 대응한 배송지로서 상기 다른 정보 처리 장치가 지정되어 있다고 판별하면, 상기 배송 관리 수단은 상기 제1 데이터를 상기 통신 수단에 공급하고, 상기 통신 수단은 상기 배송 관리 수단으로부터 공급된 상기 제1 데이터를 상기 다른 정보 처리 장치에 송신하고,
    상기 배송 관리 수단은 상기 배송 정보 기억 수단에 상기 목적지 정보 및 상기 송신원 정보에 대응한 배송지가 지정되어 있지 않다고 판별하면, 상기 제1 데이터를 상기 제2 가상 머신에 배송하는, 정보 처리 장치.
  2. 청구항 1에 있어서,
    상기 배송 관리 수단은 상기 배송 정보 기억 수단에 상기 목적지 정보 및 상기 송신원 정보에 대응한 배송지로서 상기 정보 처리 장치 상의 복수의 상기 가상 머신 중 제3 가상 머신이 지정되어 있다고 판별하면, 상기 제1 데이터를 상기 제3 가상 머신에 배송하는, 정보 처리 장치.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 배송 정보 기억 수단은 상기 목적지 정보 및 상기 송신원 정보와 상기 가상 머신 상에서 동작하는 애플리케이션을 식별하는 식별 정보에 기초하여, 상기 가상 머신 사이에서 교환되는 데이터의 배송지를 지정하고,
    상기 제1 가상 머신의 상기 게스트 오퍼레이팅 시스템은, 상기 제1 가상 머신 상에서 동작하는 애플리케이션이 출력한 데이터로서, 상기 제2 가상 머신을 목적지로 하는 데이터를, 상기 목적지 정보 및 상기 송신원 정보와 상기 식별 정보와 함께, 상기 공유 메모리에 기입하고,
    상기 배송 관리 수단은 상기 공유 메모리로부터 읽어낸 상기 목적지 정보 및 상기 송신원 정보와 상기 식별 정보에 기초하여, 상기 제1 데이터를 배송할 곳을 판별하는, 정보 처리 장치.
  4. 청구항 1 또는 청구항 2에 있어서,
    상기 배송 정보 기억 수단의 상기 배송지의 지정이 유효인지 여부가 설정된 유효 무효 설정 조건 기억 수단을 추가로 구비하고,
    상기 배송 관리 수단은 상기 공유 메모리로부터 읽어낸 상기 제1 데이터에 대해서, 상기 배송 정보 기억 수단에 상기 배송지가 지정되어 있는 경우, 상기 유효 무효 설정 조건 기억 수단에 있어서, 상기 배송지의 지정이 유효라고 판별했을 경우, 상기 배송 정보 기억 수단에 있어서 지정된 상기 배송지에 상기 제1 데이터를 배송하는, 정보 처리 장치.
  5. 청구항 1 또는 청구항 2에 있어서,
    상기 제1 가상 머신의 상기 게스트 오퍼레이팅 시스템은, 상기 제1 데이터를 상기 공유 메모리에 기입하면, 상기 루트 오퍼레이팅 시스템에 상기 공유 메모리에 데이터를 기입했다는 취지를 통지하고,
    상기 루트 오퍼레이팅 시스템은 상기 제1 가상 머신의 상기 게스트 오퍼레이팅 시스템으로부터 데이터를 기입했다는 취지의 통지를 받으면, 상기 공유 메모리로부터 상기 제1 데이터를 읽어내는, 정보 처리 장치.
  6. 청구항 1 또는 청구항 2에 있어서,
    상기 배송 관리 수단은 상기 제1 데이터를 그 배송지에 배송하기 위해 상기 제1 데이터를 상기 공유 메모리에 기입하면, 상기 제1 데이터를 배송한 곳인 상기 가상 머신의 상기 게스트 오퍼레이팅 시스템에, 상기 공유 메모리에 상기 제1 데이터를 기입했다는 취지를 통지하고,
    상기 제1 데이터를 배송한 곳인 상기 가상 머신의 상기 게스트 오퍼레이팅 시스템은, 상기 배송 관리 수단으로부터 상기 제1 데이터를 기입했다는 취지의 통지를 받으면, 상기 공유 메모리로부터 상기 제1 데이터를 읽어내는, 정보 처리 장치.
  7. 가상 머신을 복수 포함하는 가상 환경이 구축된 정보 처리 장치에서, 가상 머신 사이에서 교환되는 데이터를 배송하는 방법으로서,
    상기 정보 처리 장치는
    상기 정보 처리 장치 상에서 동작하는 루트 오퍼레이팅 시스템과,
    상기 가상 머신 상에서 각각 동작하는 게스트 오퍼레이팅 시스템과,
    상기 게스트 오퍼레이팅 시스템과 상기 루트 오퍼레이팅 시스템이 액세스 가능한 공유 메모리와,
    상기 가상 머신이 지정하는 데이터의 목적지를 나타내는 목적지 정보 및 해당 데이터의 송신원을 나타내는 송신원 정보와, 해당 데이터를 실제로 배송할 곳인 배송지의 관계를 지정하는 배송 정보 기억 수단을 구비하고,
    복수의 상기 가상 머신 중 제1 가상 머신의 상기 게스트 오퍼레이팅 시스템이, 복수의 상기 가상 머신 중 제2 가상 머신을 목적지로 하는 제1 데이터를, 상기 목적지 정보 및 상기 송신원 정보와 함께, 상기 공유 메모리에 기입하는 스텝과,
    상기 루트 오퍼레이팅 시스템이, 상기 배송 정보 기억 수단에, 상기 공유 메모리에 기입된 상기 목적지 정보 및 상기 송신원 정보에 대응한 배송지가 지정되어 있는지 여부를 판별하는 스텝과,
    상기 루트 오퍼레이팅 시스템이 상기 배송 정보 기억 수단에 상기 제1 데이터의 상기 배송지가 지정되어 있다고 판별했을 경우, 상기 배송 정보 기억 수단의 상기 배송지로서 다른 정보 처리 장치가 지정되어 있는지 여부를 판별하는 스텝과,
    상기 루트 오퍼레이팅 시스템이, 상기 배송 정보 기억 수단에 상기 목적지 정보 및 상기 송신원 정보에 대응한 배송지로서 상기 다른 정보 처리 장치가 지정되어 있다고 판별했을 경우, 상기 제1 데이터를 상기 다른 정보 처리 장치에 송신하는 스텝과,
    상기 루트 오퍼레이팅 시스템이, 상기 배송 정보 기억 수단에 상기 목적지 정보 및 상기 송신원 정보에 대응한 배송지가 지정되어 있지 않다고 판별했을 경우, 상기 제1 데이터를 상기 제2 가상 머신에 배송하는 스텝을 포함하는 방법.
  8. 가상 머신을 복수 포함하는 가상 환경이 구축된 정보 처리 장치 상에서 동작하는 루트 오퍼레이팅 시스템이 실행하는 기록 매체에 저장된 프로그램으로서,
    상기 정보 처리 장치는
    상기 루트 오퍼레이팅 시스템과,
    상기 가상 머신 상에서 각각 동작하는 게스트 오퍼레이팅 시스템과,
    상기 게스트 오퍼레이팅 시스템과 상기 루트 오퍼레이팅 시스템이 액세스 가능한 공유 메모리와,
    상기 가상 머신 사이에서 교환되는 데이터의 목적지를 나타내는 목적지 정보 및 해당 데이터의 송신원을 나타내는 송신원 정보와 해당 데이터를 실제로 배송할 곳인 배송지의 관계를 지정하는 배송 정보 기억 수단을 구비하고,
    상기 루트 오퍼레이팅 시스템에,
    복수의 상기 가상 머신 중 제1 가상 머신의 상기 게스트 오퍼레이팅 시스템이, 복수의 상기 가상 머신 중 제2 가상 머신을 목적지로 하는 제1 데이터를, 상기 목적지 정보 및 상기 송신원 정보와 함께, 상기 공유 메모리에 기입하면, 상기 배송 정보 기억 수단에, 상기 목적지 정보 및 상기 송신원 정보에 대응한 배송지가 지정되어 있는지를 판별하고,
    상기 제1 데이터에 대해 상기 배송 정보 기억 수단에 상기 배송지가 지정되어 있다고 판별했을 경우, 상기 배송 정보 기억 수단에 상기 배송지로서 다른 정보 처리 장치가 지정되어 있는지 여부를 판별하고,
    상기 배송 정보 기억 수단에 상기 목적지 정보 및 상기 송신원 정보에 대응한 배송지로서 상기 다른 정보 처리 장치가 지정되어 있다고 판별했을 경우, 상기 제1 데이터를 상기 다른 정보 처리 장치에 송신하고,
    상기 배송 정보 기억 수단에 상기 목적지 정보 및 상기 송신원 정보에 대응한 배송지가 지정되어 있지 않다고 판별했을 경우에, 상기 제1 데이터를 상기 제2 가상 머신에 배송하는 것을 실행시키는 기록 매체에 저장된 프로그램.
KR1020207025791A 2018-03-20 2018-03-20 정보 처리 장치, 방법, 및 프로그램 KR102203648B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/011023 WO2019180812A1 (ja) 2018-03-20 2018-03-20 情報処理装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
KR20200108489A KR20200108489A (ko) 2020-09-18
KR102203648B1 true KR102203648B1 (ko) 2021-01-15

Family

ID=66530787

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207025791A KR102203648B1 (ko) 2018-03-20 2018-03-20 정보 처리 장치, 방법, 및 프로그램

Country Status (7)

Country Link
US (1) US11656898B2 (ko)
JP (1) JP6513324B1 (ko)
KR (1) KR102203648B1 (ko)
CN (1) CN111868687B (ko)
DE (1) DE112018007104T5 (ko)
TW (1) TWI719420B (ko)
WO (1) WO2019180812A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083465B (zh) * 2019-04-26 2021-08-17 上海连尚网络科技有限公司 一种寄宿应用间的数据传递方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009301117A (ja) 2008-06-10 2009-12-24 Toshiba Corp 仮想マシンシステム及び仮想マシンモニタ用プログラムプログラム
US20130031544A1 (en) 2011-07-27 2013-01-31 Microsoft Corporation Virtual machine migration to minimize packet loss in virtualized network
US20170063674A1 (en) 2015-08-29 2017-03-02 Vmware, Inc. Routing optimization for inter-cloud connectivity

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3435454B2 (ja) 1995-02-28 2003-08-11 富士通株式会社 異なる環境空間での連続運転方法およびそのための装置
JP2002251352A (ja) * 2001-02-26 2002-09-06 Minolta Co Ltd データ送信管理装置、データ送信管理方法、データ送信管理プログラムおよびデータ送信管理プログラムを記録したコンピュータ読み取り可能な記録媒体
US7181744B2 (en) 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
JP2004265333A (ja) * 2003-03-04 2004-09-24 Sony Corp 情報処理装置および方法、並びにプログラム
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7685635B2 (en) 2005-03-11 2010-03-23 Microsoft Corporation Systems and methods for multi-level intercept processing in a virtual machine environment
US8176485B2 (en) * 2006-05-15 2012-05-08 Microsoft Corporation Launching hypervisor under running operating system
CN101207604B (zh) * 2006-12-20 2012-03-28 联想(北京)有限公司 一种虚拟机系统及其通信处理方法
JP2010066931A (ja) * 2008-09-09 2010-03-25 Fujitsu Ltd 負荷分散機能を有した情報処理装置
JP4631974B2 (ja) * 2009-01-08 2011-02-16 ソニー株式会社 情報処理装置、情報処理方法、プログラム、および情報処理システム
US8918488B2 (en) * 2009-02-04 2014-12-23 Citrix Systems, Inc. Methods and systems for automated management of virtual resources in a cloud computing environment
JP2010193357A (ja) 2009-02-20 2010-09-02 Kddi Corp 経路制御装置およびプログラム
US9094210B2 (en) * 2009-10-26 2015-07-28 Citrix Systems, Inc. Systems and methods to secure a virtual appliance
EP2568408B1 (en) * 2010-05-07 2016-05-18 Panasonic Intellectual Property Management Co., Ltd. Information processing device, information processing method, and program distribution system
JP4940380B1 (ja) * 2011-11-30 2012-05-30 株式会社メディアロジック 情報処理装置、およびプログラム
KR101751936B1 (ko) * 2011-12-15 2017-07-12 한국전자통신연구원 호스트 기반 단말 가상화 환경에서 공유 메모리를 이용한 입출력 디바이스 가상화 장치 및 방법
US9268587B2 (en) * 2012-04-13 2016-02-23 Empire Technology Development Llc Determining destination cloud system requirements
TWI588751B (zh) 2013-05-31 2017-06-21 聯想企業解決方案(新加坡)有限公司 透過基板管理控制器管理虛擬機器的電腦主機與方法
US9553764B2 (en) * 2013-07-17 2017-01-24 Red Hat Israel, Ltd. Migration of guest bridge
KR101559929B1 (ko) * 2013-12-27 2015-10-14 성균관대학교산학협력단 가상화 장치 및 방법
JP2015158773A (ja) 2014-02-24 2015-09-03 富士通株式会社 仮想装置の動作検証装置,仮想装置の動作検証システム及びプログラム
US9588796B2 (en) * 2014-06-28 2017-03-07 Vmware, Inc. Live migration with pre-opened shared disks
US9459903B2 (en) * 2014-09-24 2016-10-04 Intel Corporation Techniques for routing service chain flow packets between virtual machines
US9766917B2 (en) * 2014-10-29 2017-09-19 Red Hat Israel, Ltd. Limited virtual device polling based on virtual CPU pre-emption
JP6442230B2 (ja) * 2014-10-31 2018-12-19 キヤノン株式会社 情報処理装置、同期制御方法、及びプログラム
KR101939075B1 (ko) * 2015-01-28 2019-04-11 닛본 덴끼 가부시끼가이샤 시스템, 가상화 제어 장치, 가상화 제어 장치의 제어 방법 및 프로그램
US9716688B1 (en) * 2015-05-13 2017-07-25 Parallels International Gmbh VPN for containers and virtual machines in local area networks
US9916174B2 (en) * 2015-05-27 2018-03-13 International Business Machines Corporation Updating networks having virtual machines with migration information
US10664179B2 (en) 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
US10628194B2 (en) * 2015-09-30 2020-04-21 Netapp Inc. Techniques for data migration
US10110707B2 (en) * 2015-12-11 2018-10-23 International Business Machines Corporation Chaining virtual network function services via remote memory sharing
JP2017162416A (ja) * 2016-03-11 2017-09-14 富士通株式会社 レプリケーションプログラム、冗長化システム、およびレプリケーション方法
US10375121B2 (en) * 2016-06-23 2019-08-06 Vmware, Inc. Micro-segmentation in virtualized computing environments
US10083123B2 (en) * 2016-08-10 2018-09-25 Vmware, Inc. Page-fault latency directed virtual machine performance monitoring
US10241947B2 (en) * 2017-02-03 2019-03-26 Intel Corporation Hardware-based virtual machine communication
US10367733B2 (en) * 2017-03-30 2019-07-30 Nicira, Inc. Identifier-based virtual networking

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009301117A (ja) 2008-06-10 2009-12-24 Toshiba Corp 仮想マシンシステム及び仮想マシンモニタ用プログラムプログラム
US20130031544A1 (en) 2011-07-27 2013-01-31 Microsoft Corporation Virtual machine migration to minimize packet loss in virtualized network
US20170063674A1 (en) 2015-08-29 2017-03-02 Vmware, Inc. Routing optimization for inter-cloud connectivity

Also Published As

Publication number Publication date
JP6513324B1 (ja) 2019-05-15
TWI719420B (zh) 2021-02-21
CN111868687B (zh) 2021-09-17
DE112018007104T5 (de) 2020-10-29
CN111868687A (zh) 2020-10-30
US20210042143A1 (en) 2021-02-11
JPWO2019180812A1 (ja) 2020-04-23
US11656898B2 (en) 2023-05-23
TW201941050A (zh) 2019-10-16
KR20200108489A (ko) 2020-09-18
WO2019180812A1 (ja) 2019-09-26

Similar Documents

Publication Publication Date Title
US11599349B2 (en) Gateway device, in-vehicle network system, and firmware update method
US20200344116A1 (en) Gateway device, firmware update method, and recording medium
US11842185B2 (en) Gateway device, in-vehicle network system, and firmware update method
US11334379B2 (en) Control device
WO2017032112A1 (zh) 一种与无中央处理器单板通讯的方法及通讯设备
US11886170B2 (en) Control system, setting device and setting program
US20200278874A1 (en) Online Reconfiguration Of A Node In A Process Control System
KR102203648B1 (ko) 정보 처리 장치, 방법, 및 프로그램
JPWO2015190079A1 (ja) 計算機システム、遠隔デバイスの接続管理方法及びプログラム
US20190306029A1 (en) Support apparatus, non-transitory computer readable recording medium and setting method
US9189370B2 (en) Smart terminal fuzzing apparatus and method using multi-node structure
CN110071948B (zh) 物联网分域控制方法、系统以及物联网系统
US10715433B2 (en) Information processing apparatus and information processing method
US11604670B2 (en) Virtual machine live migration method, apparatus, and system
JP2019148890A (ja) コントローラ、制御方法およびプログラム
US11625348B2 (en) Transfer device, information processing device, and data transfer method
US11722368B2 (en) Setting change method and recording medium recording setting change program
KR102575524B1 (ko) 가상화 기반 전투체계를 위한 분산정보처리장치 및 이의 자원 할당 방법
JP7404748B2 (ja) プログラム開発装置およびプログラム開発装置を実現するためのプログラム
JP2017016514A (ja) 情報処理システム、デバイス情報取得方法、及びそのためのプログラム
US20160218932A1 (en) Method and apparatus for controlling life-cycle of process for network operating system
JP2021064166A (ja) メモリ制御装置、および制御方法
JP2020154422A (ja) ネットワーク評価装置及びネットワーク評価システム
JP2016045673A (ja) システム間連携装置

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant