JP2003150405A - Debug method for equipment incorporating program - Google Patents

Debug method for equipment incorporating program

Info

Publication number
JP2003150405A
JP2003150405A JP2001343047A JP2001343047A JP2003150405A JP 2003150405 A JP2003150405 A JP 2003150405A JP 2001343047 A JP2001343047 A JP 2001343047A JP 2001343047 A JP2001343047 A JP 2001343047A JP 2003150405 A JP2003150405 A JP 2003150405A
Authority
JP
Grant status
Application
Patent type
Prior art keywords
class
class object
host computer
program
java
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2001343047A
Other languages
Japanese (ja)
Inventor
Toyohiko Ushiku
豊彦 牛久
Original Assignee
Canon Inc
キヤノン株式会社
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

Links

Abstract

PROBLEM TO BE SOLVED: To provide a debug method for equipment incorporating program capable of suppressing API disclosed to the outside to the minimum extent and ensuring security. SOLUTION: When debugging a program executed by object directivity language represented by Java and incorporated in equipment and codes not depending on type of machine on a host computer through a network, a debug method is provided with a mounted class object acquisition means for acquiring a mounted class object executed in a subclass of a specific class and suitable for the environment, a remote proxy means for generating and deleting each class object on equipment instead of a program executed on the host computer and calling a method of class object, and a remote method transmission means for transmitting the operation performed for itself by class object acquired by the mounted class object acquisition means on the host computer to the remote proxy means as it is.

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明は、Java言語プログラムに代表される仮想マシン上で実行されるプログラム言語を機器制御に用いる装置に組み込むべきプログラムをデバッグする方法に関する。 BACKGROUND OF THE INVENTION [0001] [Technical Field of the Invention The present invention is to debug the program to incorporate program languages ​​to be executed on a virtual machine typified by Java language program in the apparatus to be used for device control a method for. 【0002】 【従来の技術】プリンタ、コピア、FAX等のオフィス機器、冷蔵庫、電話機、電子レンジ等の家庭用機器等の装置にマイクロプロセッサを搭載し、マイクロプロセッサによって実行されるプログラムにより装置を制御することが一般的に行われている。 [0002] printers, copiers, FAX etc. office equipment, refrigerators, telephones, the apparatus of household appliances such as microwave ovens equipped with a microprocessor, controls the device by a program executed by the microprocessor it is common practice to. これらの装置内のマイクロプロセッサによって実行されるプログラムを機器組込みソフトウェアと呼ぶ。 The program executed by the microprocessor in these devices is referred to as a device embedded software. 【0003】近年、マイクロプロセッサの高性能化、メモリ、ハードディスク等の記憶装置の大容量化、低価格化等によって、とりわけオフィス機器において、機器組込みソフトウェアの高機能化と大規模化が行われている。 [0003] In recent years, high-performance microprocessor, memory, the capacity of the storage device such as a hard disk, by the low price and the like, especially in the office equipment, high-functionality and scale of the equipment built-in software is performed there. 機器組込みソフトウェアの高機能化と大規模化に伴い、ソフトウェア開発の複雑化、開発期間の長期化の傾向が見られるようになってきた。 Along with high functionality and large scale of equipment embedded software, the complexity of software development, the tendency of prolonged development period has come to be seen. 特に、これらの機器では使用されるマイクロプロセッサや機器制御を行うためのリアルタイムOS等は、同じシリーズの製品でもコストの問題等の諸々の事情により変更されることがあり、 In particular, the real-time OS or the like for performing a microprocessor and equipment control used these devices, may be changed by various circumstances such as cost issues in the same series of products,
そのため前の製品で動いたプログラムが後から開発される製品では動かなくなってしまい、最初から作り直さねばならなくなってしまうことが多い。 For this reason will no longer work with the product to be developed later moved the program in front of the product, it is often no longer must be rebuilt from scratch. このことが危機組込みソフトウェアの生産性を著しく悪化させる要因となっている。 This is a factor which significantly worsen the productivity of the crisis embedded software. 【0004】一方、コンピュータの分野でも、プロセッサのアーキテクチャや稼動しているOS毎にソフトウェアを開発しなければならないことに変わりはない。 [0004] On the other hand, in the field of computer, there is no change in that you have to develop software for each OS that is architecture and operation of the processor. そのため、種々雑多なコンピュータが接続されているネットワーク全体で同じソフトウェアを使用したい場合、プロセッサアーキテクチャとOS、機器構成等の組み合わせ全部に対して個別にソフトウェアを開発、維持管理しなければならない。 Therefore, if you want to use the same software across the network for miscellaneous computer is connected, the processor architecture and OS, development of individual software against all combinations of device configuration or the like, must be maintained. そのため、プロセッサアーキテクチャ、OSや機器構成等に依存することなく、全てのコンピュータ上において全く同じプログラムを実行可能とするJava言語が開発され、使用されるようになってきた。 Therefore, without depending on the processor architecture, OS and device configuration etc., the Java language that can be executed exactly the same program on all computers were developed and come to be used. 【0005】前記組込みソフトウェアの生産性の問題を解決するためにコンピュータ用に開発されたこのJava言語を機器組込みソフトウェアに使うことが多くなってきている。 [0005] have become often use this Java language that has been developed for the computer in order to solve the embedded software of the productivity of the problem in the device built-in software. Javaにおいては、ソースプログラムはバイトコードと呼ばれる仮想マシンのコードに翻訳され、各々のコンピュータ上に実現された仮想マシンの上でバイトコードが解釈・実行されることにより、同じプログラムを異なるアーキテクチャのプロセッサ上で実行可能にしている。 In Java, a source program is translated into code of a virtual machine called bytecode, by each bytecode on a virtual machine implemented on a computer are interpreted and executed, the processor of the same program different architectures It is to be executed on. 【0006】又、標準API(Application Programmin [0006] In addition, the standard API (Application Programmin
g lnterface )が用意され、OSの持つ機能が抽象化されており、標準APIを使用している限りは直接OSやその上で動くミドルウェアの機能を直接呼び出す必要はない。 g lnterface) are provided, functions of the OS are abstracted, does not need to invoke the functionality of the middleware operating on the direct OS and its direct as long as using the standard API. そのため、標準APIを使えば機器に組み込んで実行するJavaプログラムをそのままコンピュータ上で動かすことができるようになる。 Therefore, it Using standard API a Java program to be executed by incorporating the device as it can be run on a computer. このことにより、コンピュータ用のJavaプログラム開発ツールを使用し、コーディングからテスト・デバッグまでの機器組込みプログラムの開発をコンピュータ上で行うことができる。 Thus, it is possible to perform using the Java program development tools for the computer, the development of equipment built-in program from coding to testing and debugging on a computer. 【0007】しかしながら、オフィス機器等はコンピュータとは異なった特有の機能を持っている場合が多い。 [0007] However, office equipment, etc. If often has a specific function that is different from the computer.
それらの機能を使用するためのJavaプログラムを構築するためには、それらの機能用のJava APIが提供される必要がある。 To construct a Java program to use those features, it is necessary to Java API for these functions are provided. これらのAPIの内部では機器の特有機能を使用するためにJava以外で記述された既存のプログラムモジュールを呼び出す形で実現されるのが普通である。 Within these API is usually realized in the form of calling the existing program modules written in non-Java in order to use the specific features of the equipment.
この機器特有機能を使用するJavaプログラムをコンピュータ上で実行するためには、これら機能を使用するためのJava APIをコンピュータ上に構築しなければならない。 To execute a Java program that uses this device specific features on a computer must build Java API to use these functions on a computer. 【0008】しかし、機器上の機器の特有機能を使用するための既存プログラムモジュールはコンピュータ上では実行できないため、機器用に作られたJava APIをコンピュータ上で実行することはできない。 [0008] However, the existing program modules to use the specific function of the device on the device because it can not run on a computer, it is not possible to run a Java API made to equipment on the computer. そのため、次の2つの方法を採るのが一般的である。 Therefore, it is common to adopt the following two ways. 【0009】1)機器の特有機能をコンピュータ上でシミュレートする。 [0009] 1) to simulate on a computer the specific features of the device. 機器の持つ機能をコンピュータ上でシミュレートするソフトウェアを開発しJava APIから利用する。 We developed a software that simulates the functions of the devices on the computer to use from the Java API. 【0010】2)機器特有の機能のプログラムモジュールに機器外部からアクセスする機器特有機能のプログラムモジュールを機器外部からもアクセス可能に修正し、 [0010] 2) to modify accessible to the program module of the device-specific functions to be accessed from a device external to the program module of the device-specific functions from the device outside,
コンピュータ上のJava API内部で機器のプログラムモジュールをアクセスする。 To access the program modules of the equipment inside the Java API on your computer. 【0011】 【発明が解決しようとする課題】前記2つの方法には次の問題が存在する。 [0011] the two methods [0006] There are following problems. 【0012】先ず、1)の方法では、機器特有の機能の大部分はハードウェアによって実現されていることが多く、コンピュータ上でハードウェアのシミュレーションを行わなければならない。 [0012] First, 1) In the method, most of the equipment-specific features are often being implemented by hardware, it must be made to simulate hardware on the computer. 一般にハードウェアのシミュレートはコンピュータ資源を多く必要とするため、シミュレートを行うコンピュータには高性能なものが要求される。 Generally for simulating hardware that requires a lot of computer resources, of high performance is required for the computer to perform the simulation. 【0013】又、2)の方法では、本来外部に公開しないものを公開しなければならないため、公開するためのプログラムや、外部からの不正使用を防止するためのプログラム等を開発しなければならず、プログラム規模の増大を招くという問題が存在する。 [0013] In addition, in the method 2), shall order shall be open to the public shall not be published originally on the outside, and programs for the public, to be developed a program or the like in order to prevent unauthorized use of an external no, there is a problem that results in an increase in program size. 【0014】本発明は上記問題に鑑みてなされたもので、その目的とする処は、開発に多大な労力の必要で、 [0014] The present invention has been made in view of the above problems, treatment is required of great effort in the development of its purposes,
実行する際にも資源を多く必要とする機器のシミュレータをホストコンピュータ上に準備する必要もなく、外部に公開するAPIを最小限にしてセキュリティを確保することができる機器組込みプログラムのデバッグ方法を提供することにある。 It is not necessary to prepare the simulator equipment that require much resources even when running on a host computer, provides a debugging method of a device embedded program that can be to minimize the API to expose to the outside to ensure security It is to. 【0015】 【課題を解決するための手段】上記目的を達成するため、本発明は、機器に組み込まれJavaに代表されるオブジェクト指向言語で且つ機種非依存なコードにより実行されるプログラムをネットワークを通じてホストコンピュータ上でデバッグする場合、特定のクラスのサブクラスで実行される環境に合った実装クラスオブジェクトを取得する実装クラスオブジェクト取得手段と、ホストコンピュータ上で実行されるプログラムの代わりに機器上で各クラスオブジェクトの生成・削除、クラスオブジェクトのメソッド呼び出し等を行うリモートプロキシ手段を有し、ホストコンピュータ上で前記実装クラスオブジェクト取得手段によって取得されたクラスオブジェクトが自分自身に行われる操作をそのまま前記リモートプロキシ手 [0015] [Means for Solving the Problems] To achieve the above object, the present invention, through a network a program to be executed by and machine-independent code in an object-oriented language typified by Java installed in a device each class in devices instead of cases, the implementation class object obtaining means for obtaining the implementation class object that matches the environment to be executed by the subclasses of a particular class, a program running on a host computer to debug on the host computer creation and deletion of objects, having a remote proxy means for performing method calls like class objects, as the remote proxy hand operation class object obtained by the implementation class object obtaining means on the host computer is performed to itself に対して伝えるリモートメソッド伝達手段を備えるように構成することによって行うことを特徴とする。 And performing by configured with remote method transmitting means for transmitting against. 【0016】 【発明の実施の形態】以下に本発明の実施の形態を添付図面に基づいて説明する。 [0016] be described with reference to embodiments of the present invention in the accompanying drawings DETAILED DESCRIPTION OF THE INVENTION. 【0017】尚、本実施の形態はJavaの標準クラスライブラリであるRMI(Remote Method Invocation)を使用して実施している。 [0017] Note that this embodiment is carried out by use RMI (Remote Method Invocation) is a standard class library Java. 【0018】図1は本発明方法を実施するための機器の構成を示すブロック図であり、同図において、110はホストコンピュータであり、このホストコンピュータ1 [0018] Figure 1 is a block diagram showing the configuration of a device for carrying out the present invention method, reference numeral 110 denotes a host computer, the host computer 1
10は、CPU111、ROM112、RAM113、 10, CPU111, ROM112, RAM113,
ネットワーク・デバイス114、ハードディスク11 The network device 114, the hard disk 11
5、バス116、入出力デバイス117から成る。 5, bus 116, consisting of input and output device 117. CP CP
U111は、ホストコンピュータ110全体の制御及びデータ演算を行う。 U111 controls and data operations of the entire host computer 110. ROM112は、ホストコンピュータ110の制御プログラム、初期データ等を格納する。 ROM112 stores a control program of the host computer 110, it stores the initial data and the like.
RAM113は情報処理の一時的な記憶領域を提供する。 RAM113 provides temporary storage of the information processing. ネットワーク・デバイス114は外部の装置とのデータ送受信を行う。 Network device 114 performs data transmission and reception with an external device. ハードディスク115は各種プログラム、データ等を永続的に格納する。 Hard disk 115 is permanently stores various programs, data and the like. 入出力デバイス1 Input and output device 1
17は、データの入出力や操作指示等を行うデバイスである。 17 is a device for performing the data input and operating instructions or the like. バス116は以上の各部を接続し、ホストコンピュータ110内部において各種データの伝達を行う。 Bus 116 connects the above each unit, performs transmission of various data inside the host computer 110. 【0019】120はプリンタ等のオフィス機器であり、このオフィス機器120は、CPU121、ROM [0019] 120 is an office equipment such as a printer, this office device 120, CPU121, ROM
122、RAM123、ネットワーク・デバイス12 122, RAM 123, network device 12
4、特殊デバイス125、バス126から成る。 4, it consists of a special device 125, a bus 126. CPU CPU
121は、オフィス機器120全体の制御及びデータ演算を行う。 121 performs office equipment 120 overall control and data operations. ROM122は、オフィス機器120の制御プログラム、初期データ等を格納する。 ROM122 stores office equipment 120 control program, initial data, and the like. RAM123は情報処理の一時的な記憶領域を提供する。 RAM123 provides temporary storage of the information processing. ネットワーク・デバイス124は外部の装置とのデータ送受信を行う。 Network device 124 performs data transmission and reception with an external device. 特殊デバイス125はオフィス機器120の持つ特殊機能を実現しているデバイスで、オフィス機器120 Special device 125 is a device that implements the special functions of the office equipment 120, office equipment 120
がプリンタである場合は紙への印刷を行うプリント・エンジンに当たる。 If it is a printer strikes the print engine for printing on paper. バス126は以上の各部を接続し、オフィス機器120内部において各種データの伝達を行う。 Bus 126 connects the above each unit, performs transmission of various data in the office equipment 120 inside. 【0020】又、図2はオフィス機器120上で実行されるプログラムの構成を階層として表現した図であり、 [0020] Also, FIG. 2 is a diagram expressing the structure of a program executed by the office equipment 120 on a hierarchy,
上位層は下位層のプログラムを呼び出すことにより機能を実現していることを表している。 Upper layer represents that realizes the functions by calling a program of lower layers. 【0021】図2において、201は図1のオフィス機器120で構成が示されているハードウェア、202はハードウェア201の制御やプログラムの実行制御を行うオペレーティングシステム、203はバイトコードを解釈・実行する仮想マシン、204は良く使う処理を汎用ライブラリとしてまとめJavaクラスで構成されたJava [0021] In FIG. 2, 201 hardware that structure is indicated by the office equipment 120 of FIG. 1, 202 operating system controls the execution of the control program, and hardware 201, 203 interprets and executes the bytecodes virtual machine, 204 is configured to process frequently used in the Summary Java class as a general-purpose library Java
APIライブラリ、205はJava APIライブラリ204内でJavaと、Java以外で記述されたルーチンとの間を繋ぐためのネイティブ・アクセス・レイヤ、206はネイティブ・アクセス・レイヤ205からアクセスされるJava API libraries, and Java in Java API library within 204 205, the native access layer for connecting between the routines written in other than Java, 206 is Java accessed from the native access layer 205
以外の言語で記述されたルーチン群であるネイティブ・ Native is a routine group that has been written in a language other than
ライブラリ、207はJava APIライブラリ204を呼び出すことにより各種処理を行うJavaで記述されたアプリケーションである。 Library, 207 is an application written in Java that executes various processes by calling Java API library 204. 【0022】更に、図3はJavaアプリケーション207 [0022] Further, FIG. 3 is a Java application 207
をホストコンピュータ110で実行し、デバッグする際のオフィス機器120及びホストコンピュータ110上で実行されるソフトウェアの構成を階層として表現した図である。 Was run on the host computer 110 is a diagram representing the configuration of software executed as a hierarchy on the office device 120 and the host computer 110 at the time of debugging. 同図において、311はホストコンピュータ110のハードウェアであり、312はホストコンピュータ110のオペレーティングシステム、313はホストコンピュータ110のJava仮想マシン、314はホストコンピュータ110のJava APIライブラリ、315はホストコンピュータのネイティブ・アクセス・レイヤ、 In the figure, 311 is a hardware of the host computer 110, 312 is the operating system of the host computer 110, 313 is a host computer 110 of the Java Virtual Machine, the Java API library of the host computer 110 314, 315 native host computer access layer,
316はオフィス機器120上でJavaアプリケーション207の代理として実行されるRMIスケルトンである。 316 is a RMI skeleton executed on behalf of the Java application 207 in office equipment 120. 201〜207は図2と同じものを表している。 201-207 represent the same as FIG. 【0023】図4〜図13はJavaプログラムの例を示す図であり、図4は各クラスの継承図、図5はRMIToolkit [0023] FIGS 13 is a diagram showing an example of a Java program, 4 inheritance diagram of each class, 5 RMIToolkit
クラスのソースコード・リスト、図6はPrinter クラスのソースコード・リスト、図7はRMIToolkitクラスのサブクラスであるTRMIToolkitクラスのソースコード・リスト、図8はPrinter クラスのサブクラスであるTprint Source code listings of classes, 6 source code listing of the Printer class, 7 source code listing of TRMIToolkit class is a subclass of RMIToolkit class, FIG. 8 is a subclass of the Printer class Tprint
erクラスのソースコード・リスト、図9はRMIToolkitクラスのサブクラスであるHRMIToolkit クラスのソースコード・リスト、図10はPrinter クラスのサブクラスであるHPrinterクラスのソースコード・リスト、図11は Source code listings of er classes, Figure 9 is a source code listing of HRMIToolkit class is a subclass of RMIToolkit class, source code listing of HPrinter class 10 is a subclass of the Printer class, 11
RMI のリモートアクセスのためのインタフェースである It is an interface for RMI Remote Access
Remoteインタフェースを継承したRPrinterインタフェースのソースコード・リスト、図12はRMI のリモートメソッド呼び出しのためのクラスであるUnicastRemote0bj Source code listing of RPrinter interface that extends Remote interface, and FIG. 12 is a class for RMI remote method invocation UnicastRemote0bj
ect クラスのサブクラスで、RPrinterインタフェースを実装しているPrintServer クラスのソースコード・リスト、図13はデバッグ対象となるユーザアプリケーションのソースコード・リストである。 In a subclass of ect class, source code listing of PrintServer class implementing the RPrinter interface, 13 is a source code listing of the user application to be debugged. 【0024】以上の図を用いて本実施の形態を説明する。 The present embodiment will be described with reference to [0024] above in FIG. 【0025】先ず、ユーザアプリケーションをオフィス機器120上で実行する際の動作について説明する。 [0025] First, the operation when executing a user application in office equipment 120. ここで、ユーザアプリケーションとして、オフィス機器としてプリンタを想定し、プリンタの各種属性値を文字列のリストとして得るような機能を想定する。 Here, as a user application, assuming a printer as office equipment, assume the function so as to obtain the various attributes of the printer as a list of strings. 【0026】ユーザアプリケーションがオフィス機器で実行されるとき、オフィス器機内にはJava API204としRMIToolkit、Printer 、TRMIToolkit の各クラス、NA [0026] When the user application is executed in office equipment, office device in the machine and Java API204 RMIToolkit, Printer, each class of TRMIToolkit, NA
L 205としてTPrinterクラスはライブラリとして存在している。 TPrinter class as L 205 is present as a library. 又、ネイティブライブラリ206には、TPri In addition, the native library 206, TPri
nterクラスから呼び出されるネイティブメソッドルーチンが存在している。 Native method routine is present that will be called from nter class. ユーザアプリケーションは、図14 User application 14
で示すようなユーザインタフェースを持ち、ボタンが押されるとプリンタの属性リストを表示するように構成されている。 Has a user interface as shown in the button is configured to display a list of attributes when pressed printer. ボタンが押されると図13のユーザプログラムを構成するTestApp クラスのactionPerformed メソッドが呼び出される。 When the button is pressed actionPerformed method TestApp classes that make up the user program of Fig. 13 is called. その中で、409で示す部分でPrin Among them, Prin at a portion indicated by 409
ter クラスオブジェクトを取得し、そのPrinter クラスオブジェクトのgetAttributeメソッドを呼び出すことによって属性リストを取得している。 Get the ter class objects, has obtained the attribute list by calling the getAttribute method of the Printer class object. Printer クラスオブジェクトは、以下のようにして取得する。 Printer class object is obtained as follows. 【0027】先ず、RMIToolkitクラスに対してgetDefau [0027] First of all, getDefau against RMIToolkit class
ltToolkit メソッドを呼び出すことによって、現在実行している環境で標準値として使用されるRMIToolkitクラスオブジェクトを取得する。 By calling the ltToolkit method to get the RMIToolkit class object used as a standard value in an environment that is currently running. RMIToolk tクラスではgetD getD In RMIToolk t class
efaultToolkit メソッドでは、図5の401に示すようにシステムプロパティとして定義されているRMIToolkit In efaultToolkit method is defined as a system property as shown in 401 of FIG. 5 RMIToolkit
クラスの実装クラスを捜してそのクラスのオブジェクトを生成し、リターン値として返す。 Looking class implementation class to generate an object of that class, and returns as a return value. オフィス機器のJava Of office equipment Java
仮想マシン203はRMIToolkitの実装クラスとしてTRMI Virtual machine 203 TRMI as the implementation class of RMIToolkit
Toolkit クラスを使用するようシステムプロパティが設定されているため、getDefaultToolkit のリターン値としてTRMIToolkit クラスオブジェクトが返される。 Since the system property to use the Toolkit class is set, TRMIToolkit class object is returned as the return value getDefaultToolkit. TRMI TRMI
Toolkit クラスオブジェクトのgetPrinterメソッドは、 The getPrinter method of the Toolkit class object,
図7の403に示すようにTPrinterクラスオブジェクトを返すようになっている。 It defined to give a TPrinter class object, as shown in 403 of FIG. このようにしてPrinter クラスの実装オブジェクトとしてTprinterクラスオブジェクトが取得できる。 Such Tprinter class object can be acquired as the implementer of Printer class in the. 【0028】図8の404に示すようにTPrinterのgetA [0028] getA of TPrinter as shown in 404 of FIG. 8
ttributeメソッドは、ネイティブメソッドであるgetAtt ttribute method is a native method getAtt
rib を呼び出し、getAttrib はプリンタの属性を管理しているルーチンから属性値を取得する。 Call the rib, getAttrib to get the attribute values ​​from the routine that manages the attribute of the printer. 【0029】次に、ユーザアプリケーションをホストコンピュータ120上で実行する際の動作について説明する。 [0029] Next, the operation when executing a user application on the host computer 120. 【0030】ユーザアプリケーションがホストコンピュータで実行されるとき、オフィス器機内にはJava API2 [0030] When a user application running on the host computer, Java in the office instrument flight API2
04としRMIToolkit、Printer 、TRMIToolkit の各クラス、NAL 205としてTPrinterクラスがライブラリとして存在している。 04 and the RMIToolkit, Printer, each class of TRMIToolkit, TPrinter class is present as a library as NAL 205. 又、ネイティブライブラリ206には、TPrinterクラスから呼び出されるネイティブメソッドルーチンが存在している。 In addition, the native library 206, there is a native method routine that will be called from TPrinter class. 更に、RMI 用に図11に示すインタフェースを持つRMI クラスPrintServer クラスが実行されており、RMI のrmiregistry コマンドにより Furthermore, RMI class PrintServer class with the interface shown in Figure 11 are performed for RMI, the RMI of rmiregistry command
PrintServer クラスがprintersaverとしてネットワークに対して登録されている。 PrintServer class is registered to the network as printersaver. 勿論、PrintServer クラスのスタブ、テンプレートもオフィス機器120内に用意されている。 Of course, PrintServer class of the stub, templates have also been provided in the office equipment 120. 【0031】又、ホストコンピュータ110には、Java [0031] In addition, the host computer 110, Java
API314としRMIToolkit、Printer 、HRMIToolkit の各クラス、NAL 315としてHPrinterクラスがライブラリとして存在している。 API314 and then RMIToolkit, Printer, each class of HRMIToolkit, HPrinter class exists as library as NAL 315. 【0032】ユーザアプリケーションのボタンが押されると図13のユーザプログラムを構成するTestApp クラスのactionPerformed メソッドが呼び出される。 [0032] When the button of the user application is pressed actionPerformed method TestApp classes that make up the user program of Fig. 13 is called. その中で、409で示す部分でPrinter クラスオブジェクトを取得し、そのPrinter クラスオブジェクトのgetAttribu Among them, it obtains the Printer class object in the portion indicated by 409, GetAttribu the Printer class object
teメソッドを呼び出すことによって属性リストを取得している。 It has acquired the attribute list by calling the te method. 【0033】ホストコンピュータ110用のPrinter クラスオブジェクトは以下のようにして取得する。 [0033] Printer class object for the host computer 110 is obtained as follows. 【0034】先ず、RMIToolkitクラスに対してgetDefau [0034] First of all, getDefau against RMIToolkit class
ltToolkit メソッドを呼び出すことによって、ホストコンピュータの環境で標準値として使用されるRMIToolkit By calling the ltToolkit method, it RMIToolkit used as the standard value in the host computer environment
クラスオブジェクトを取得する。 To get the class object. RMIToolkitクラスでは In RMIToolkit class
getDefaultToolkit メソッドでは、図5の401に示すようにシステムプロパティとして定義されているRMIToo In getDefaultToolkit method is defined as a system property as shown in 401 of FIG. 5 RMIToo
lkitクラスの実装クラスを捜してそのクラスのオブジェクトを生成し、リターン値として返す。 Create an object of that class in search of the implementation class of lkit class, and returns as a return value. 【0035】ホストコンピュータ110のJava仮想マシン313はRMIToolkitの実装クラスとしてHRMIToolkit [0035] HRMIToolkit Java virtual machine 313 of the host computer 110 as an implementation class of RMIToolkit
クラスを使用するようシステムプロパティが設定されているため、getDefaultToolkit のリターン値としてHRMI Since the system property to use the class is set, HRMI as a return value of getDefaultToolkit
Toolkit クラスオブジェクトが返される。 Toolkit class object is returned. HRMIToolkit HRMIToolkit
クラスオブジェクトのgetPrinterメソッドは、図9の4 getPrinter method of the class object, 4 of 9
05に示すようにHPrinterクラスオブジェクトを返すようになっている。 It is adapted to return the HPrinter class object, as shown in 05. このようにしてPrinter クラスの実装オブジェクトとしてHPrinterクラスオブジェクトが取得できる。 Such HPrinter class object can be acquired as the implementer of Printer class in the. 【0036】図10の406,407に示すようにHPri [0036] HPri as shown in 406 and 407 in FIG. 10
nterのgetAttributeメソッドは、RMI を使用してネットワークからprintserver を探し出す。 getAttribute method of nter is, find the printserver from the network using the RMI. このとき、オフィス機器のPrintServer クラスオブジェクトが発見され、 In this case, PrintServer class object of office equipment have been discovered,
PrintServer クラスのリモートオブジェクトのgetAttri PrintServer of remote objects of class getAttri
buteメソッドを呼び出す。 Call the bute method. オフィス機器120のPrintS PrintS of office equipment 120
erver クラスでは図12の408に示すようにユーザアプリケーションと同様の方法によってプリンタ属性リストをオフィス機器で取得し、ホストコンピュータに返している。 In erver class retrieves the printer attribute list office equipment in the same way as the user application as shown in 408 of FIG. 12, is returned to the host computer. このときの動作はユーザアプリケーションがオフィス機器で動作するときと全く同じ動作をする。 Operation at this time is exactly the same behavior as when the user application to work in the office equipment. 【0037】このようにして、ユーザアプリケーションはホストコンピュータ上で動作しているにも拘らず、あたかもオフィス機器で実行されているかのようにプリンタ属性リストを取得することができる。 [0037] In this way, it is possible to user application despite running on the host computer, it acquires the printer attribute list as if it were running as if in office equipment. 【0038】 【発明の効果】以上の説明で明らかなように、本発明によれば、機器に組み込まれJavaに代表されるオブジェクト指向言語で且つ機種非依存なコードにより実行されるプログラムをネットワークを通じてホストコンピュータ上でデバッグする場合、特定のクラスのサブクラスで実行される環境に合った実装クラスオブジェクトを取得する実装クラスオブジェクト取得手段と、ホストコンピュータ上で実行されるプログラムの代わりに機器上で各クラスオブジェクトの生成・削除、クラスオブジェクトのメソッド呼び出し等を行うリモートプロキシ手段を有し、ホストコンピュータ上で前記実装クラスオブジェクト取得手段によって取得されたクラスオブジェクトが自分自身に行われる操作をそのまま前記リモートプロキシ手段に [0038] As apparent from the above description, according to the present invention, through according to the present invention, a program executed by and machine-independent code in an object-oriented language typified by Java installed in a device network each class in devices instead of cases, the implementation class object obtaining means for obtaining the implementation class object that matches the environment to be executed by the subclasses of a particular class, a program running on a host computer to debug on the host computer creation and deletion of objects, having a remote proxy means for performing method calls like class objects, as the remote proxy means an operation class object obtained by the implementation class object obtaining means on the host computer is performed to itself to して伝えるリモートメソッド伝達手段を備えるように構成することによって行うようにしたため、開発に多大な労力の必要で、実行する際にも資源を多く必要とする機器のシミュレータをホストコンピュータ上に準備する必要もなく、外部に公開するAPIを最小限にしてセキュリティを確保することができるという効果が得られる。 Because you performed by configured with remote method transmitting means for transmitting, the necessary and a great effort to develop, to prepare the simulator equipment that require much resources even when running on the host computer without the need also, the effect is obtained that it is possible to ensure security and to minimize the API to expose to the outside.

【図面の簡単な説明】 【図1】本発明方法を実施するための機器の構成を示すブロック図である。 Is a block diagram showing the configuration of a device for implementing BRIEF DESCRIPTION OF THE DRAWINGS [Figure 1] The present invention method. 【図2】オフィス機器のソフトウェア構成を示す図である。 FIG. 2 is a diagram showing the software configuration of office equipment. 【図3】デバッグ時のソフトウェア構成を示す図である。 FIG. 3 is a block diagram showing the software configuration of the debugging. 【図4】Javaプログラムの例を示す図である。 FIG. 4 is a diagram showing an example of a Java program. 【図5】Javaプログラムの例を示す図である。 FIG. 5 is a diagram showing an example of a Java program. 【図6】Javaプログラムの例を示す図である。 FIG. 6 is a diagram showing an example of a Java program. 【図7】Javaプログラムの例を示す図である。 FIG. 7 is a diagram showing an example of a Java program. 【図8】Javaプログラムの例を示す図である。 FIG. 8 is a diagram showing an example of a Java program. 【図9】Javaプログラムの例を示す図である。 FIG. 9 is a diagram showing an example of a Java program. 【図10】Javaプログラムの例を示す図である。 FIG. 10 is a diagram showing an example of a Java program. 【図11】Javaプログラムの例を示す図である。 FIG. 11 is a diagram showing an example of a Java program. 【図12】Javaプログラムの例を示す図である。 FIG. 12 is a diagram showing an example of a Java program. 【図13】Javaプログラムの例を示す図である。 13 is a diagram showing an example of a Java program. 【図14】ユーザアプリケーションの画面例を示す図である。 14 is a diagram showing an example of a screen of the user application. 【符号の説明】 110 ホストコンピュータ111 CPU 112 ROM 113 RAM 114 ネットワークデバイス115 ハードディスク116 バス117 入出力デバイス120 オフィス機器121 CPU 122 ROM 123 RAM 124 ネットワークデバイス125 特殊デバイス126 バス [EXPLANATION OF SYMBOLS] 110 host computer 111 CPU 112 ROM 113 RAM 114 network devices 115 hard disk 116 bus 117 input device 120 Office equipment 121 CPU 122 ROM 123 RAM 124 network device 125 special device 126 bus

Claims (1)

  1. 【特許請求の範囲】 【請求項1】 機器に組み込まれJavaに代表されるオブジェクト指向言語で且つ機種非依存なコードにより実行されるプログラムをネットワークを通じてホストコンピュータ上でデバッグする場合、特定のクラスのサブクラスで実行される環境に合った実装クラスオブジェクトを取得する実装クラスオブジェクト取得手段と、ホストコンピュータ上で実行されるプログラムの代わりに機器上で各クラスオブジェクトの生成・削除、クラスオブジェクトのメソッド呼び出し等を行うリモートプロキシ手段を有し、ホストコンピュータ上で前記実装クラスオブジェクト取得手段によって取得されたクラスオブジェクトが自分自身に行われる操作をそのまま前記リモートプロキシ手段に対して伝えるリモートメソッド伝達手段を備 Patent Claims: 1. When debugging through a network a program to be executed by and machine-independent code in an object-oriented language typified by Java installed in a device on the host computer, the particular class and implementation class object obtaining means for obtaining the implementation class object that matches the environment to be executed in a subclass, creation and deletion of each class object on the device, instead of a program running on the host computer, method call, etc. class object a remote proxy means for performing, Bei a remote method transmitting means class objects obtained by the implementation class object obtaining means on the host computer tell against it the remote proxy means the operation to be performed on their own るように構成することによって行うことを特徴とする機器組込みプログラムのデバッグ方法。 Debugging equipment embedded programs and performing by configuring the so that.
JP2001343047A 2001-11-08 2001-11-08 Debug method for equipment incorporating program Pending JP2003150405A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001343047A JP2003150405A (en) 2001-11-08 2001-11-08 Debug method for equipment incorporating program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001343047A JP2003150405A (en) 2001-11-08 2001-11-08 Debug method for equipment incorporating program

Publications (1)

Publication Number Publication Date
JP2003150405A true true JP2003150405A (en) 2003-05-23

Family

ID=19156804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001343047A Pending JP2003150405A (en) 2001-11-08 2001-11-08 Debug method for equipment incorporating program

Country Status (1)

Country Link
JP (1) JP2003150405A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260085A (en) * 2005-03-16 2006-09-28 Ricoh Co Ltd User authentication device, image forming device, user authentication method and user authentication program
JP2010191578A (en) * 2009-02-17 2010-09-02 Kyocera Mita Corp Software development system and software development method
JP2011022637A (en) * 2009-07-13 2011-02-03 Kyocera Mita Corp Application operation confirmation system, program for terminal and program for server
US8291386B2 (en) 2008-08-21 2012-10-16 International Business Machines Corporation System and process for debugging object-oriented programming code
US8683439B2 (en) 2008-08-21 2014-03-25 International Business Machines Corporation System and process for debugging object-oriented programming code leveraging preprocessors
JP2014056608A (en) * 2009-07-24 2014-03-27 Ricoh Co Ltd Information processing apparatus, external device, information processing system, information processing method, and program
US8752020B2 (en) 2008-08-21 2014-06-10 International Business Machines Corporation System and process for debugging object-oriented programming code leveraging runtime metadata

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260085A (en) * 2005-03-16 2006-09-28 Ricoh Co Ltd User authentication device, image forming device, user authentication method and user authentication program
JP4727263B2 (en) * 2005-03-16 2011-07-20 株式会社リコー The image processing apparatus, the user authentication method and the user authentication program
US8752020B2 (en) 2008-08-21 2014-06-10 International Business Machines Corporation System and process for debugging object-oriented programming code leveraging runtime metadata
US8291386B2 (en) 2008-08-21 2012-10-16 International Business Machines Corporation System and process for debugging object-oriented programming code
US8683439B2 (en) 2008-08-21 2014-03-25 International Business Machines Corporation System and process for debugging object-oriented programming code leveraging preprocessors
JP2010191578A (en) * 2009-02-17 2010-09-02 Kyocera Mita Corp Software development system and software development method
JP2011022637A (en) * 2009-07-13 2011-02-03 Kyocera Mita Corp Application operation confirmation system, program for terminal and program for server
JP2014056608A (en) * 2009-07-24 2014-03-27 Ricoh Co Ltd Information processing apparatus, external device, information processing system, information processing method, and program

Similar Documents

Publication Publication Date Title
Purtilo The Polylith software bus
Luckham Rapide: A language and toolset for simulation of distributed systems by partial orderings of events
US5870088A (en) System and method for editing a control via direct graphical user interaction
US5303378A (en) Reentrant protected mode kernel using virtual 8086 mode interrupt service routines
US5745683A (en) System and method for allowing disparate naming service providers to dynamically join a naming federation
Welch et al. Practical programming in Tcl and Tk
US6907519B2 (en) Systems and methods for integrating emulated and native code
US6523171B1 (en) Enhanced source code translator from procedural programming language (PPL) to an object oriented programming language (OOPL)
US6549955B2 (en) System and method for dynamic generation of remote proxies
Desoli et al. Deli: A new run-time control point
US6083281A (en) Process and apparatus for tracing software entities in a distributed system
US5551037A (en) Apparatus and methods for visualizing operation of a system of processes
US5675804A (en) System and method for enabling a compiled computer program to invoke an interpretive computer program
US5793965A (en) Method and apparatus for determining the type of an object in a distributed object system
US6513156B2 (en) Interpreting functions utilizing a hybrid of virtual and native machine instructions
US5291593A (en) System for persistent and delayed allocation object reference in an object oriented environment
US5875331A (en) System and method for generating target language code utilizing an object oriented code generator
US5307499A (en) Interpretive object-oriented facility which can access pre-compiled classes
US6345387B1 (en) Coherent object system architecture
US6345311B1 (en) Method and system of dynamically moving objects between heterogeneous execution environments
US6185728B1 (en) Development system with methods for type-safe delegation of object events to event handlers of other objects
US5875335A (en) Parameter marshaling techniques for dynamic object-oriented programming languages
US20070050469A1 (en) Commanding
US6226690B1 (en) Method and apparatus for utilizing proxy objects to communicate with target objects
US6067577A (en) Dynamic method resolution for native methods in a dynamic object-oriented programming language