JP7243064B2 - Information processing device, program, information processing system and information processing method - Google Patents
Information processing device, program, information processing system and information processing method Download PDFInfo
- Publication number
- JP7243064B2 JP7243064B2 JP2018138043A JP2018138043A JP7243064B2 JP 7243064 B2 JP7243064 B2 JP 7243064B2 JP 2018138043 A JP2018138043 A JP 2018138043A JP 2018138043 A JP2018138043 A JP 2018138043A JP 7243064 B2 JP7243064 B2 JP 7243064B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- request
- program
- device information
- 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.)
- Active
Links
Images
Description
本発明は、情報処理装置、プログラム、情報処理システム及び情報処理方法に関する。 The present invention relates to an information processing device, a program, an information processing system, and an information processing method.
MFP(Multifunction Peripheral)等の機器から各種情報を取得したり、機器に対して各種処理の実行を要求したりするためのライブラリを機器の製造元企業が外部企業に提供することが行われている。外部企業は、製造元企業から提供されたライブラリを利用することで、機器から各種情報を取得したり、機器に対して各種処理の実行を要求したりするための処理を直接実装することなく、機器と連携した処理を行う独自のアプリケーションを作成することができる。 Equipment manufacturer companies provide external companies with libraries for acquiring various information from equipment such as MFPs (Multifunction Peripherals) and for requesting the equipment to execute various processes. By using the library provided by the manufacturer company, the external company can obtain various information from the device, and without directly implementing the processing to request the device to execute various processes, You can create your own application that performs processing linked to
また、セキュリティを適切に維持しつつ、API(Application Programming Interface)等のインタフェースの少なくとも一部が公開されているフレームワークの機能を拡張させることができる画像形成装置が知られている(例えば特許文献1参照)。 Further, there is known an image forming apparatus capable of extending the functions of a framework in which at least a part of an interface such as an API (Application Programming Interface) is open to the public while appropriately maintaining security (for example, Patent Document 1).
ところで、機器の製造元企業から提供されるライブラリを利用することで、例えば、機器のIP(Internet Protocol)アドレスや機器がサポートしているデータ形式等の機器情報を取得することができる。 By using a library provided by a device manufacturer, it is possible to acquire device information such as the IP (Internet Protocol) address of the device and the data format supported by the device.
しかしながら、外部企業が作成するアプリケーションにおいて、機器から取得された機器情報が書き換えられてしまう場合があった。機器情報が書き換えられ、機器情報に不整合等が生じた場合、機器が意図しない動作を行う恐れがある。 However, in an application created by an external company, device information acquired from a device may be rewritten. If the device information is rewritten and inconsistency or the like occurs in the device information, the device may perform an unintended operation.
本発明の実施の形態は、上記の点に鑑みてなされたもので、機器から取得された情報の不正な書き換えを防止することを目的とする。 Embodiments of the present invention have been made in view of the above points, and aim to prevent unauthorized rewriting of information acquired from a device.
上記目的を達成するため、本発明の実施の形態は、所定の機能を提供するプログラムを有する情報処理装置であって、前記プログラムからの第1の要求に応じて、前記情報処理装置と接続される機器から所定の情報を含む情報を取得する取得部と、前記取得部により取得された情報を、前記プログラムと異なるパッケージに属するクラスであって、前記所定の情報を更新または参照するためのアクセス修飾子が定義されていないクラスにすることで、前記所定の情報に対して、前記プログラムにより更新または参照の要求ができないように制限する要求制御部と、前記プログラムからの第2の要求に応じて、前記取得部が取得した前記情報であって前記要求制御部によって前記プログラムからの要求が制限される前記所定の情報に基づいて、前記機器に対して、前記第2の要求に対応する処理の実行を要求する処理要求部と、を有することを特徴とする。
In order to achieve the above object, an embodiment of the present invention provides an information processing apparatus having a program that provides a predetermined function, wherein the information processing apparatus is connected to the information processing apparatus in response to a first request from the program. an acquisition unit that acquires information including predetermined information from a device that receives the information, and accesses the information acquired by the acquisition unit to a class that belongs to a package different from the program and updates or refers to the predetermined information. a request control unit that restricts the program from requesting update or reference to the predetermined information by making it a class with no modifiers defined; and responding to a second request from the program. a process corresponding to the second request to the device based on the predetermined information, which is the information acquired by the acquisition unit and for which requests from the program are restricted by the request control unit. and a processing request unit that requests execution of
機器から取得された情報の不正な書き換えを防止することができる。 It is possible to prevent unauthorized rewriting of information acquired from a device.
以下、本発明の各実施形態について、図面を参照しながら詳細に説明する。 Hereinafter, each embodiment of the present invention will be described in detail with reference to the drawings.
[第一の実施形態]
<全体構成>
まず、本実施形態に係る印刷システム1の全体構成について、図1を参照しながら説明する。図1は、第一の実施形態に係る印刷システム1の全体構成の一例を示す図である。
[First embodiment]
<Overall composition>
First, the overall configuration of a
図1に示すように、本実施形態に係る印刷システム1には、1台以上の端末装置10と、1台以上の機器20とが含まれる。また、端末装置10と機器20とは、例えば、Bluetooth(登録商標)等の近距離無線通信を用いて、通信可能に接続される。更に、端末装置10と機器20とは、例えば、Wi-Fi等の無線LAN(Local Area Network)を用いて、通信可能に接続される。
As shown in FIG. 1, a
機器20は、MFP等の画像処理装置である。機器20は、端末装置10からの要求に応じて、印刷処理やスキャン処理等の各種画像処理を行う。本実施形態では、機器20がMFPであるものとして説明する。なお、機器20は、MFPに限られず、例えば、コピー機、印刷装置、スキャナ装置、ファクシミリ、デジタルカメラ、プロジェクタ、電子会議用端末、電子黒板装置、オーディオ機器、車載機(例えばカーナビ等)、家電製品(例えば冷蔵庫等)であっても良い。
The
端末装置10は、スマートフォン等の情報処理装置である。端末装置10には、機器20の製造元企業とは異なる外部企業(以降、「サードベンダ」と表す。)により開発され、機器20と連携した処理を行う印刷アプリケーション100がインストールされている。端末装置10のユーザは、印刷アプリケーション100を用いて、機器20で印刷を行うことができる。
The
なお、端末装置10は、スマートフォンに限られず、例えば、タブレット端末、ノート型PC(パーソナルコンピュータ)、デスクトップ型PC、ゲーム機器、デジタルカメラ、ウェアラブルデバイス等であっても良い。
Note that the
<印刷アプリケーション100の構成>
ここで、サードベンダにより開発された印刷アプリケーション100の構成について、図2を参照しながら説明する。図2は、印刷アプリケーション100の構成の一例を説明する図である。
<Configuration of
Here, the configuration of the
図2に示すように、印刷アプリケーション100は、サードベンダにより開発され、独自の機能を提供するプログラムであるベンダ開発プログラム110と、機器20の製造元企業が提供するAPI群である印刷ライブラリ120とを有する。
As shown in FIG. 2, the
印刷ライブラリ120は、印刷機能を提供するためのプログラムである。印刷ライブラリ120には、例えば、機器20から機器情報を取得するためのAPIや機器20に対して印刷を要求するためのAPI等が定義されている。このため、ベンダ開発プログラム110は、印刷ライブラリ120に定義されたAPIを呼び出すことで、機器20からの機器情報の取得や機器20への印刷要求等、機器20と連携した処理を実現することができる。
The
このとき、印刷ライブラリ120は、例えば、機器20から取得した機器情報等をベンダ開発プログラム110で書き換えることができないようにする。これにより、印刷ライブラリ120により取得された機器情報等が、ベンダ開発プログラム110で不正に書き換えられてしまう事態を防止することができる。
At this time, the
また、印刷ライブラリ120は、例えば、機器20から取得した機器情報等をベンダ開発プログラム110が読み取る場合にも、少なくとも一部の情報を読み取ることができないようにする。これにより、印刷ライブラリ120により取得された機器情報等について、ベンダ開発プログラム110による不要な参照を防止することができ、機器20のセキュリティリスクの低下等を防止することができる。
Also, for example, when the
本実施形態では、ベンダ開発プログラム110及び印刷ライブラリ120は、Java(登録商標)言語で開発されたプログラムであるものとする。したがって、印刷ライブラリ120にはJavaのクラスが定義されている。ベンダ開発プログラム110は、クラス内のメソッド(API)を呼び出すことで、機器20からの機器情報の取得や機器20への印刷要求等を実現することができる。ただし、ベンダ開発プログラム110及び印刷ライブラリ120は、Java言語で開発されている場合に限られない。例えば、C言語、C++言語、Objective-C言語、C#言語等、種々のプログラミング言語で開発されても良い。
In this embodiment, the
なお、印刷ライブラリ120は、機器20の製造元企業により提供される場合に限られない。印刷ライブラリ120は、例えば、機器20の製造元企業の関連会社等により提供される場合も有り得る。また、印刷ライブラリ120は、例えば、SDK(Software Development Kit)の一部として提供されても良い。
Note that the
<ハードウェア構成>
≪端末装置10≫
次に、本実施形態に係る端末装置10のハードウェア構成について、図3を参照しながら説明する。図3は、第一の実施形態に係る端末装置10のハードウェア構成の一例を示す図である。
<Hardware configuration>
<<
Next, the hardware configuration of the
図3に示すように、本実施形態に係る端末装置10は、入力装置11と、表示装置12と、外部I/F13と、RAM(Random Access Memory)14とを有する。また、本実施形態に係る端末装置10は、ROM(Read Only Memory)15と、CPU(Central Processing Unit)16と、通信I/F17と、補助記憶装置18とを有する。これらの各ハードウェアは、それぞれがバスBで接続されている。
As shown in FIG. 3 , the
入力装置11は、例えばタッチパネル等であり、ユーザが各種操作を入力するのに用いられる。なお、入力装置11は、例えば、キーボードやマウス等であっても良い。
The
表示装置12は、ディスプレイ等であり、端末装置10による処理結果を表示する。外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。端末装置10は、外部I/F13を介して、記録媒体13aの読み取りや書き込みを行うことができる。
The
記録媒体13aには、例えば、USBメモリ、SDメモリカード、フレキシブルディスク、CD、DVD等がある。
The
RAM14は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM15は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM15には、例えば、端末装置10の起動時に実行されるBIOS(Basic Input/Output System)、OS(Operating System)設定、及びネットワーク設定等のプログラムやデータが格納されている。
The
CPU16は、ROM15や補助記憶装置18等からプログラムやデータをRAM14上に読み出し、処理を実行することで、端末装置10全体の制御や機能を実現する演算装置である。
The
通信I/F17は、端末装置10が機器20と通信を行うためのインタフェースである。通信I/F17には、例えば、Bluetoothにより機器20と通信を行うためのBluetoothモジュールと、Wi-Fi等の無線LANにより機器20と通信を行うための無線LANモジュールとが含まれる。
The communication I/
補助記憶装置18は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置18に格納されるプログラムやデータには、端末装置10全体を制御する基本ソフトウェアであるOS、印刷アプリケーション100、その他の各種機能を提供するアプリケーション等がある。補助記憶装置18は、格納しているプログラムやデータを所定のファイルシステムやDB(データベース)により管理している。
The
本実施形態に係る端末装置10は、図3に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
The
≪機器20≫
次に、本実施形態に係る機器20が、MFP等の画像処理装置である場合におけるハードウェア構成について、図4を参照しながら説明する。図4は、第一の実施形態に係る機器20のハードウェア構成の一例を示す図である。
<<
Next, the hardware configuration when the
図4に示すように、本実施形態に係る機器20は、コントローラ21と、操作パネル22と、外部I/F23と、通信I/F24と、プロッタ25と、スキャナ26とを有する。また、コントローラ21は、CPU31と、RAM32と、ROM33と、NVRAM34と、補助記憶装置35とを有する。
As shown in FIG. 4, the
ROM33は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。RAM32は、プログラムやデータを一時保持する揮発性の半導体メモリである。NVRAM34は、例えば設定情報等を格納している不揮発性の半導体メモリである。また、補助記憶装置35は、例えばHDDやSSD等であり、プログラムやデータを格納している不揮発性の記憶装置である。
The
CPU31は、ROM33やNVRAM34、補助記憶装置35等からプログラムやデータ、設定情報等をRAM32上に読み出し、処理を実行することで、機器20全体の制御や機能を実現する演算装置である。
The
操作パネル22は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている入出力装置である。外部I/F23は、外部装置とのインタフェースである。外部装置には、記録媒体23a等がある。機器20は、外部I/F23を介して、記録媒体23aの読み取りや書き込みを行うことができる。
The
記録媒体23aには、例えば、ICカード、USBメモリ、SDメモリカード、フレキシブルディスク、CD、DVD等がある。
Examples of the
通信I/F24は、機器20が端末装置10通信を行うためのインタフェースである。通信I/F24には、例えば、Bluetoothにより端末装置10と通信を行うためのBluetoothモジュールと、無線LANにより端末装置10と通信を行うための無線LANモジュールとが含まれる。なお、通信I/F24には、有線LANにより端末装置10と通信を行うためのLANボード等が含まれても良い。
The communication I/
プロッタ25は、印刷データを被印刷媒体に印刷するための装置である。なお、被印刷媒体は、紙に限られない。被印刷媒体は、例えば、OHPシートやプラスチックフィルム、銅箔、布等であっても良い。スキャナ26は、原稿を読み取って、画像データを生成する装置である。
The
本実施形態に係る機器20は、図4に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
The
<機能構成>
次に、本実施形態に係る端末装置10の機能構成について、図5を参照しながら説明する。図5は、第一の実施形態に係る端末装置10の機能構成の一例を示す図である。
<Functional configuration>
Next, the functional configuration of the
図5に示すように、本実施形態に係る端末装置10は、機器情報取得要求部111と、表示制御部112と、印刷対象データ設定部113と、印刷設定部114と、実行操作受付部115と、印刷実行要求部116とを有する。これら各部は、ベンダ開発プログラム110がCPU16に実行させる処理により実現される。
As shown in FIG. 5, the
また、本実施形態に係る端末装置10は、機器情報取得部121と、印刷処理部122とを有する。これら各部は、印刷ライブラリ120がCPU16に実行させる処理により実現される。
Further, the
機器情報取得要求部111は、ユーザによる機器情報の取得操作を受け付ける。また、機器情報取得要求部111は、ユーザによる機器情報の取得操作を受け付けると、機器情報の取得を機器情報取得部121に要求する。機器情報取得要求部111は、機器情報取得部121を実現するクラス(このクラスを、以降では「機器情報取得クラス1300」と表す。)内のメソッドを呼び出すことで、機器情報の取得を要求することができる。
The device information
表示制御部112は、機器情報取得部121により取得された機器情報を表示装置12上に表示する。
The
印刷対象データ設定部113は、ユーザによる印刷対象データの選択操作を受け付ける。印刷対象データとは、ユーザが印刷を所望するコンテンツデータのことである。コンテンツデータには、例えば、写真等の画像データや文書データ等が挙げられる。なお、機器20がプロジェクタやオーディオ機器等である場合には、コンテンツデータは、例えば、動画データや音楽データ等であっても良い。
The print target
また、印刷対象データ設定部113は、ユーザによる印刷対象データの選択操作を受け付けると、選択されたコンテンツデータを印刷対象データに設定する。
In addition, upon receiving a user's operation of selecting print data, the print
印刷設定部114は、ユーザによる印刷設定情報の指定操作を受け付ける。印刷設定情報には、例えば、部数、印刷ページ範囲、印刷カラー等がある。
The
また、印刷設定部114は、ユーザによる印刷設定情報の指定操作を受け付けると、各印刷設定情報が保持される印刷設定情報インスタンス300を生成する。そして、印刷設定部114は、ユーザにより指定された印刷設定情報を印刷設定情報インスタンス300に設定する。印刷設定部114は、印刷設定情報インスタンス300を実現するクラス(このクラスを、以降では「印刷設定情報クラス1200」と表す。)内のメソッドを呼び出すことで、印刷設定情報を設定することができる。
Further, upon receiving a user's operation of designating print setting information, the
実行操作受付部115は、ユーザによる印刷実行操作を受け付ける。印刷実行要求部116は、実行操作受付部115により印刷実行操作が受け付けられると、印刷実行を印刷処理部122に要求する。印刷実行要求部116は、印刷処理部122を実現するクラス(このクラスを、以降では「印刷処理クラス1400」と表す。)内のメソッドを呼び出すことで、印刷実行を要求することができる。
The execution
機器情報取得部121は、機器情報取得要求部111からの要求に応じて、機器20から機器情報を取得する。このとき、機器情報取得部121は、例えばBluetooth等の近距離無線通信を用いて、機器20から機器情報を取得する。機器情報には、例えば、IPアドレス、モデル名、サポートPDL(Page Description Language)、ネットワーク情報等がある。
The device
また、機器情報取得部121は、機器20から機器情報を取得すると、取得した各機器情報が保持される機器情報インスタンス200を生成する。そして、機器情報取得部121は、取得した機器情報を機器情報インスタンス200に設定する。機器情報取得部121は、機器情報インスタンス200を実現するクラス(このクラスを、以降では「機器情報クラス1100」と表す。)内のメソッドを呼び出すことで、機器情報を設定することができる。
Further, when the device
印刷処理部122は、印刷実行要求部116からの要求に応じて、印刷データを生成した上で、印刷要求を機器20に送信する。このとき、印刷処理部122は、例えばWi-Fi等の無線LANを用いて、印刷要求を機器20に送信する。
The
印刷処理部122には、印刷データ生成部123と、印刷要求部124とが含まれる。印刷データ生成部123は、印刷データを生成する。印刷データとは、印刷対象データを機器20が解釈可能なデータ形式(すなわち、機器20がサポートしているPDL)に変換したデータである。印刷要求部124は、印刷データ生成部123により生成された印刷データが含まれる印刷要求を機器20に送信する。
The
ここで、機器情報インスタンス200について、図6を参照しながら説明する。図6は、機器情報インスタンス200の一例を示す図である。
Here, the
図6に示すように、機器情報インスタンス200は、フィールド名「IPアドレス」の機器情報と、フィールド名「モデル名」の機器情報と、フィールド名「サポートPDL」の機器情報と、フィールド名「ネットワーク情報」の機器情報とを保持する。
As shown in FIG. 6, the
フィールド名「IPアドレス」の機器情報は、フィールド値として、機器20のIPアドレスが設定される。また、フィールド名「IPアドレス」の機器情報の読取範囲は「全域」であり、書換範囲は「ライブラリ内」である。これは、フィールド名「IPアドレス」の機器情報は、印刷ライブラリ120以外のプログラム(ベンダ開発プログラム110)からも読み取り可能であるが、書き替え(フィールド値の更新)は不可であることを示している。
The IP address of the
フィールド名「モデル名」の機器情報は、フィールド値として、機器20のモデル名(例えば型番等)が設定される。また、フィールド名「モデル名」の機器情報の読取範囲は「全域」であり、書換範囲は「ライブラリ内」である。これは、フィールド名「モデル名」の機器情報は、印刷ライブラリ120以外のプログラムからも読み取り可能であるが、書き替えは不可であることを示している。
For the device information with the field name “model name”, the model name (for example, model number) of the
フィールド名「サポートPDL」の機器情報は、フィールド値として、機器20が解釈可能なデータ形式名が設定される。また、フィールド名「サポートPDL」の機器情報の読取範囲及び書換範囲は「ライブラリ内」である。これは、フィールド名「サポートPDL」の機器情報は、印刷ライブラリ120以外のプログラムからは読み取りも書き換えも不可であることを示している。
A data format name interpretable by the
フィールド名「ネットワーク情報」の機器情報は、フィールド値として、機器20のSSID(Service Set Identifier)や暗号化方式、アクセスポイントのパスワード等が設定される。また、フィールド名「ネットワーク情報」の機器情報の読取範囲及び書換範囲は「ライブラリ内」である。これは、フィールド名「ネットワーク情報」の機器情報は、印刷ライブラリ120以外のプログラムからは読み取りも書き換えも不可であることを示している。
For the device information with the field name “network information”, the SSID (Service Set Identifier) of the
以上のように、機器情報インスタンス200には、当該機器情報インスタンス200が保持している機器情報の読取範囲及び書換範囲が設定されている。これにより、機器20の製造元企業は、サードベンダにより開発されたベンダ開発プログラム110が不要な機器情報を参照したり、不正に機器情報を書き換えたりすることを防止することができる。なお、機器情報インスタンス200が保持する機器情報は、上記の「IPアドレス」、「モデル名」、「サポートPDL」、及び「ネットワーク情報」に限られない。機器情報インスタンス200は、例えば、機器番号や製造年月日、製造元企業の情報等、種々の機器情報を保持しても良い。
As described above, in the
次に、印刷設定情報インスタンス300について、図7を参照しながら説明する。図7は、印刷設定情報インスタンス300の一例を示す図である。
Next, the print setting
図7に示すように、印刷設定情報インスタンス300は、フィールド名「部数」の印刷設定情報と、フィールド名「印刷ページ範囲」の印刷設定情報と、フィールド名「印刷カラー」の印刷設定情報とを保持する。
As shown in FIG. 7, the print setting
フィールド名「部数」の印刷設定情報は、フィールド値として、ユーザにより指定された印刷部数(又はデフォルトの印刷部数)が設定される。また、フィールド名「部数」の印刷設定情報の読取範囲及び書換範囲は「全域」である。これは、フィールド名「部数」の印刷設定情報は、印刷ライブラリ120以外のプログラムから読み取りも書き換えも可能であることを示している。
The number of print copies specified by the user (or the default number of print copies) is set as the field value in the print setting information with the field name “number of copies”. Also, the read range and rewrite range of the print setting information with the field name "number of copies" are "whole area". This indicates that the print setting information with the field name “number of copies” can be read and rewritten by programs other than the
フィールド名「印刷ページ範囲」の印刷設定情報は、フィールド値として、ユーザにより指定された印刷ページ範囲(又はデフォルトの印刷ページ範囲)が設定される。また、フィールド名「印刷ページ範囲」の印刷設定情報の読取範囲及び書換範囲は「全域」である。これは、フィールド名「印刷ページ範囲」の印刷設定情報は、印刷ライブラリ120以外のプログラムから読み取りも書き換えも可能であることを示している。
A print page range specified by the user (or a default print page range) is set as a field value in the print setting information with the field name “print page range”. Also, the read range and rewrite range of the print setting information with the field name "print page range" are "whole area". This indicates that the print setting information with the field name “print page range” can be read and rewritten by programs other than the
フィールド名「印刷カラー」の印刷設定情報は、フィールド値として、ユーザにより指定された印刷カラー(又はデフォルトの印刷カラー)が設定される。また、フィールド名「印刷カラー」の印刷設定情報の読取範囲及び書換範囲は「全域」である。これは、フィールド名「印刷カラー」の印刷設定情報は、印刷ライブラリ120以外のプログラムから読み取りも書き換えも可能であることを示している。
The print setting information with the field name “print color” has the print color specified by the user (or the default print color) set as the field value. Also, the read range and rewrite range of the print setting information with the field name "print color" are "whole area". This indicates that the print setting information with the field name “print color” can be read and rewritten by programs other than the
以上のように、印刷設定情報インスタンス300には、当該印刷設定情報インスタンス300が保持している印刷設定情報の読取範囲及び書換範囲が設定されている。これにより、機器20の製造元企業は、サードベンダにより開発されたベンダ開発プログラム110が不要な印刷設定情報を参照したり、例えばデフォルト値のみが適用される印刷設定情報が書き換えられたりすることを防止することができる。なお、印刷設定情報インスタンス300が保持する印刷設定情報は、上記の「部数」、「印刷ページ範囲」、及び「印刷カラー」に限られない。印刷設定情報インスタンス300は、例えば、地紋印刷の有無、集約の有無、両面印刷の有無等、種々の印刷設定情報を保持しても良い。
As described above, in the print setting
ここで、上記の機器情報インスタンス200及び印刷設定情報インスタンス300の読取範囲及び書換範囲は、Java言語のパッケージを用いて実現することができる。例えば、図8に示すように、ベンダ開発プログラム110に定義された各クラスが属するパッケージと、印刷ライブラリ120に定義された各クラスが属するパッケージとを異なるパッケージとする。
Here, the reading range and rewriting range of the
これにより、機器情報インスタンス200が保持するフィールド(すなわち、機器情報)を操作するメソッドに対してアクセスレベルを定義することで、このフィールドの読取範囲及び書換範囲を制限することができる。同様に、印刷設定情報インスタンス300が保持するフィールド(すなわち、印刷設定情報)を操作するメソッドに対してアクセスレベルを定義することで、このフィールドの読取範囲及び書換範囲を制限することができる。以降では、印刷ライブラリ120に定義された各クラスが属するパッケージのパッケージ名を「printlibrary」とする。
As a result, by defining an access level for a method that operates a field (that is, device information) held by the
なお、図8に示す例では、ベンダ開発プログラム110に定義された各クラスが同一のパッケージに属する場合を示しているが、これに限られず、例えば、これらの各クラスが異なるパッケージに属していても良い。
Although the example shown in FIG. 8 shows the case where each class defined in the
ここで、機器情報インスタンス200を実現する機器情報クラス1100について、図9を参照しながら説明する。図9は、機器情報クラス1100の一例を示す図である。機器情報インスタンス200は、例えば図9に示す機器情報クラス1100をインスタンス化することで生成される。
Here, the
図9に示すように、機器情報クラス1100には、パッケージ宣言1101と、クラス宣言1102とが含まれる。パッケージ宣言1101には、パッケージ名「printlibrary」が定義されている。クラス宣言1102には、各機器情報に対するメソッド宣言1103~1110が含まれる。
As shown in FIG. 9,
メソッド宣言1103には、フィールド名「IPアドレス」の機器情報を取得(読み取る)ためのメソッド「getIPAddress」が定義されている。また、メソッド宣言1103には、このメソッド「getIPAddress」のアクセスレベルを示す修飾子(以降では、「アクセス修飾子」と表す。)「public」が定義されている。このため、メソッド「getIPAddress」は、同一パッケージ以外のパッケージに属するクラス(すなわち、印刷ライブラリ120以外のプログラムに定義されたクラス)からも呼び出すことができる。これにより、フィールド名「IPアドレス」の機器情報の読取範囲「全域」が実現され、当該機器情報をベンダ開発プログラム110からも読み取ることができるようになる。
A
メソッド宣言1104には、フィールド名「IPアドレス」の機器情報を更新(書き換える)ためのメソッド「setIPAddress」が定義されている。また、メソッド宣言1104では、このメソッド「setIPAddress」のアクセス修飾子が定義されていない。このため、メソッド「setIPAddress」は、同一パッケージ内のクラス(すなわち、印刷ライブラリ120に定義されたクラス)からのみ呼び出すことができる。これにより、フィールド名「IPアドレス」の機器情報の書換範囲「ライブラリ内」が実現され、当該機器情報を印刷ライブラリ120以外のプログラムからは書き換えすることができないようになる。なお、アクセス修飾子がメソッドに対して定義されていない場合、このメソッドのアクセスレベルは、同一パッケージ内からのみ呼び出し可能となる。すなわち、この場合、同一パッケージでないベンダ開発プログラム110からは、当該メソッドを呼び出すことができない。
A
メソッド宣言1105には、フィールド名「モデル名」の機器情報を読み取るためのメソッド「getModelName」が定義されている。また、メソッド宣言1105には、このメソッド「getModelName」のアクセス修飾子「public」が定義されている。これにより、メソッド「getIPAddress」と同様に、フィールド名「モデル名」の機器情報の読取範囲「全域」が実現される。
A
メソッド宣言1106には、フィールド名「モデル名」の機器情報を書き換えるためのメソッド「setModelName」が定義されている。また、メソッド宣言1106では、このメソッド「setModelName」のアクセス修飾子が定義されていない。これにより、メソッド「setIPAddress」と同様に、フィールド名「モデル名」の機器情報の書換範囲「ライブラリ内」が実現される。
A
メソッド宣言1107には、フィールド名「サポートPDL」の機器情報を読み取るためのメソッド「getSupportPDL」が定義されている。また、メソッド宣言1107では、このメソッド「getSupportPDL」のアクセス修飾子が定義されていない。これにより、上記と同様に、フィールド名「サポートPDL」の機器情報の読取範囲「ライブラリ内」が実現される。
A
メソッド宣言1108には、フィールド名「サポートPDL」の機器情報を書き換えるためのメソッド「setSupportPDL」が定義されている。また、メソッド宣言1108では、このメソッド「setSupportPDL」のアクセス修飾子が定義されていない。これにより、上記と同様に、フィールド名「サポートPDL」の機器情報の書換範囲「ライブラリ内」が実現される。
A
メソッド宣言1109には、フィールド名「ネットワーク情報」の機器情報を読み取るためのメソッド「getNetworkInfo」が定義されている。また、メソッド宣言1109では、このメソッド「getNetworkInfo」のアクセス修飾子が定義されていない。これにより、上記と同様に、フィールド名「ネットワーク情報」の機器情報の読取範囲「ライブラリ内」が実現される。
A
メソッド宣言1110には、フィールド名「ネットワーク情報」の機器情報を書き換えるためのメソッド「setNetworkInfo」が定義されている。また、メソッド宣言1108では、このメソッド「setNetworkInfo」のアクセス修飾子が定義されていない。これにより、上記と同様に、フィールド名「ネットワーク情報」の機器情報の書換範囲「ライブラリ内」が実現される。
A
以上のように、機器情報クラス1100では、機器情報を操作(読み取り又は書き換え)するためのメソッドに対して、アクセス修飾子「public」を定義することで、他のパッケージに属するクラスからも機器情報に対する操作を行うことができるようになる。一方で、機器情報クラス1100では、機器情報を操作するためのメソッドに対して、アクセス修飾子を定義しないことで、他のパッケージに属するクラスからは機器情報に対する操作を行えないようにすることができる。
As described above, in the
なお、機器情報インスタンス200に対する機器情報の設定は、例えば、この機器情報インスタンス200の生成時に行っても良い。この場合、初期設定用のパラメータを引数として受け取って、機器情報の初期化を行うメソッド(コンストラクタ)がベンダ開発プログラム110のプログラムコード内に定義されている必要がある。コンストラクタは、引数として、IPアドレス、モデル名、サポートPDL、及びネットワーク情報を受け取って、メソッド宣言1103、1105、1107、1109に定義された各メソッドでIPアドレス、モデル名、サポートPDL、及びネットワーク情報をそれぞれ取得可能なように定義されていれば良い。また、機器情報インスタンス200の生成後は機器情報が変更されない場合、メソッド宣言1104、1106、1108、1110は不要であるため、この場合、これらのメソッド宣言は機器情報クラス1100に定義されていなくても良い。
Note that the device information for the
次に、印刷設定情報インスタンス300を実現する印刷設定情報クラス1200について、図10を参照しながら説明する。図10は、印刷設定情報クラス1200の一例を示す図である。印刷設定情報インスタンス300は、例えば図10に示す印刷設定情報クラス1200をインスタンス化することで生成される。
Next, the print setting
図10に示すように、印刷設定情報クラス1200には、パッケージ宣言1201と、クラス宣言1202とが含まれる。パッケージ宣言1201には、パッケージ名「printlibrary」が定義されている。クラス宣言1202には、各印刷設定情報に対するメソッド宣言1203~1208が含まれる。
As shown in FIG. 10, print setting
メソッド宣言1203には、フィールド名「部数」の印刷設定情報を読み取るためのメソッド「getCopies」が定義されている。また、メソッド宣言1203には、このメソッド「getCopies」のアクセス修飾子「public」が定義されている。これにより、機器情報クラス1100で説明したのと同様に、フィールド名「部数」の印刷設定情報の読取範囲「全域」が実現される。
A
メソッド宣言1204には、フィールド名「部数」の印刷設定情報を書き換えるためのメソッド「setCopies」が定義されている。また、メソッド宣言1204には、このメソッド「setCopies」のアクセス修飾子「public」が定義されている。これにより、機器情報クラス1100で説明したのと同様に、フィールド名「部数」の印刷設定情報の書換範囲「全域」が実現される。
A
メソッド宣言1205には、フィールド名「印刷ページ範囲」の印刷設定情報を読み取るためのメソッド「getPrintPage」が定義されている。また、メソッド宣言1205には、このメソッド「getPrintPage」のアクセス修飾子「public」が定義されている。これにより、上記と同様に、フィールド名「印刷ページ範囲」の印刷設定情報の読取範囲「全域」が実現される。
A
メソッド宣言1206には、フィールド名「印刷ページ範囲」の印刷設定情報を書き換えるためのメソッド「setPrintPage」が定義されている。また、メソッド宣言1206には、このメソッド「setPrintPage」のアクセス修飾子「public」が定義されている。これにより、上記と同様に、フィールド名「印刷ページ範囲」の印刷設定情報の書換範囲「全域」が実現される。
A
メソッド宣言1207には、フィールド名「印刷カラー」の印刷設定情報を読み取るためのメソッド「getColor」が定義されている。また、メソッド宣言1207には、このメソッド「getColor」のアクセス修飾子「public」が定義されている。これにより、上記と同様に、フィールド名「印刷カラー」の印刷設定情報の読取範囲「全域」が実現される。
A
メソッド宣言1208には、フィールド名「印刷カラー」の印刷設定情報を書き換えるためのメソッド「setColor」が定義されている。また、メソッド宣言1208には、このメソッド「setColor」のアクセス修飾子「public」が定義されている。これにより、上記と同様に、フィールド名「印刷カラー」の印刷設定情報の書換範囲「全域」が実現される。
A
以上のように、印刷設定情報クラス1200では、印刷設定情報を操作(読み取り又は書き換え)するためのメソッドに対して、アクセス修飾子「public」を定義することで、他のパッケージに属するクラスからも印刷設定情報に対する操作を行うことができるようになる。一方で、印刷設定情報クラス1200では、印刷設定情報を操作するためのメソッドに対して、アクセス修飾子を定義しないことで、他のパッケージに属するクラスからは印刷設定情報に対する操作を行えないようにすることができる。
As described above, in the print setting
次に、機器情報取得部121を実現する機器情報取得クラス1300について、図11を参照しながら説明する。図11は、機器情報取得クラス1300の一例を示す図である。機器情報取得部121は、例えば図11に示す機器情報取得クラス1300をインスタンス化することで生成される。
Next, a device
図11に示すように、機器情報取得クラス1300には、パッケージ宣言1301と、クラス宣言1302とが含まれる。パッケージ宣言1301には、パッケージ名「printlibrary」が定義されている。クラス宣言1302には、メソッド宣言1303が含まれる。
As shown in FIG. 11, device
メソッド宣言1303には、機器20から機器情報を取得するためのメソッド「getMfpInfo」が定義されている。また、メソッド宣言1303には、このメソッド「getMfpInfo」のアクセス修飾子「public」が定義されている。これにより、メソッド「getMfpInfo」は、同一パッケージ以外のパッケージに属するクラス(すなわち、印刷ライブラリ120以外のプログラムに定義されたクラス)からも呼び出すことができる。
A
次に、印刷処理部122を実現する印刷処理クラス1400について、図12を参照しながら説明する。図12は、印刷処理クラス1400の一例を示す図である。印刷処理部122は、例えば図12に示す印刷処理クラス1400をインスタンス化することで生成される。
Next, a
図12に示すように、印刷処理クラス1400には、パッケージ宣言1401と、クラス宣言1402とが含まれる。パッケージ宣言1401には、パッケージ名「printlibrary」が定義されている。クラス宣言1402には、メソッド宣言1403が含まれる。
As shown in FIG. 12,
メソッド宣言1403には、印刷要求を機器20に送信するためのメソッド「print」が定義されている。また、メソッド宣言1403には、このメソッド「print」のアクセス修飾子「public」が定義されている。これにより、メソッド「print」は、同一パッケージ以外のパッケージに属するクラス(すなわち、印刷ライブラリ120以外のプログラムに定義されたクラス)からも呼び出すことができる。
A
なお、メソッド宣言1403には、メソッド「print」の引数として、「MfpInfo info」と、「PrintData data」と、「PrintSetting setting」とが定義されている。これは、メソッド「print」の引数として、機器情報と、印刷対象データと、印刷設定情報とが指定されることを示している。
The
次に、ベンダ開発プログラム110のプログラムコード1500について、図13を参照しながら説明する。図13は、ベンダ開発プログラム110のプログラムコード1500の一例を示す図である。なお、図13では、一例として、機器情報取得要求部111と、印刷対象データ設定部113と、印刷設定部114と、印刷実行要求部116とにそれぞれ対応するコードが定義されたプログラムコード1500について説明する。表示制御部112や実行操作受付部115等に対応するコードは別途それぞれ定義する必要がある。
Next,
図13に示すように、プログラムコード1500には、パッケージ宣言1501と、クラス宣言1502とが含まれる。パッケージ宣言1501には、パッケージ名「printapp」が定義されている。このため、ベンダ開発プログラム110は、パッケージ名「printlibrary」に属する各クラスに定義されたメソッドのうち、アクセス修飾子「public」が定義されていないメソッドを呼び出すことができない。
As shown in FIG. 13,
クラス宣言1502には、印刷実行クラス1503が含まれる。そして、印刷実行クラス1503には、機器情報取得要求部111に対応するコードが定義されたコード定義1504と、印刷設定部114に対応するコードが定義されたコード定義1505とが含まれる。また、印刷実行クラス1503には、印刷対象データ設定部113に対応するコードが定義されたコード定義1506と、印刷実行要求部116に対応するコードが定義されたコード定義1507とが含まれる。
コード定義1507に示すように、ベンダ開発プログラム110は、パッケージ名「printlibrary」に属する印刷処理クラス1400のメソッド「print」を呼び出す際に、機器情報インスタンス200を示す「info」を引数に指定する。これにより、メソッド「print」における処理で、機器情報インスタンス200のアクセス修飾子「public」が定義されていないメソッドを呼び出した上で、機器20に対して、処理要求(印刷要求)を行うことができる。例えば、メソッド「print」における処理で、機器情報インスタンス200を示す「info」のメソッド「getSupportPDL」を呼び出してフィールド名「サポートPDL」の機器情報を取得した上で、この機器情報を指定した印刷要求を機器20に行うことができる。
As shown in the
このため、印刷アプリケーション100は、機器20に対して、ベンダ開発プログラム110が操作することができない情報(例えば、フィールド名「サポートPDL」の機器情報やフィールド名「ネットワーク情報」の機器情報)を使用した処理要求(印刷要求)を行うことが可能となる。
For this reason, the
<印刷処理>
次に、本実施形態に係る印刷システム1の印刷処理について説明する。以降では、端末装置10のユーザが、印刷アプリケーション100を用いて、機器20で印刷を行う場合の処理について、図14を参照しながら説明する。図14は、第一の実施形態に係る印刷処理の一例を示すシーケンス図である。
<Print processing>
Next, printing processing of the
以降の図14では、機器情報クラス1100及び印刷設定情報クラス1200を除いて、ベンダ開発プログラム110及び印刷ライブラリ120に定義されている各クラスはインスタンス化されているものとして説明する。なお、ベンダ開発プログラム110及び印刷ライブラリ120に定義されている各クラスで、インスタンス化されていないクラスがあっても良い。この場合、当該クラスにより実現される機能部(インスタンス)の処理を実行する前に、適宜、インスタンス化されれば良い。また、機器情報クラス1100及び印刷設定情報クラス1200も予めインスタンス化されていても良い。
14 below, except for the
まず、ベンダ開発プログラム110の機器情報取得要求部111は、ユーザによる機器情報の取得操作を受け付ける(ステップS101)。ユーザは、例えば、表示制御部112により表示された所定の画面において、近くに設置されている機器20の一覧の中から所望の機器20を選択する操作を行うことで、機器情報の取得操作を行うことができる。又は、例えば、機器20の筐体に貼り付け等されているQRコード(登録商標)を端末装置10のカメラで撮像することで、機器情報の取得操作を行っても良い。
First, the device information
ベンダ開発プログラム110の機器情報取得要求部111は、ユーザによる機器情報の取得操作を受け付けると、機器情報の取得を機器情報取得部121に要求する(ステップS102)。機器情報取得要求部111は、機器情報取得クラス1300のメソッド宣言1303に定義されているメソッド「getMfpInfo」を呼び出すことで、機器情報の取得要求を行うことができる。
The device information
印刷ライブラリ120の機器情報取得部121は、機器情報の取得要求を受け取ると、機器20に対して、機器情報の問い合わせを行う(ステップS103)。機器情報取得部121は、例えばBluetooth等の近距離無線通信により、機器20に対して、機器情報の問い合わせを行うことができる。なお、近距離無線通信は、Bluetoothに限られず、例えば、BLE(Bluetooth Low Energy)やZigbee等であっても良い。又は、赤外線やRFID(Radio Frequency Identification)等が用いられても良い。
Upon receiving the device information acquisition request, the device
そして、機器情報取得部121は、上記の問い合わせに応じて機器20から返信された機器情報を受信する。これにより、機器情報取得部121は、IPアドレス、モデル名、サポートPDL、ネットワーク情報等の機器情報を機器20から取得することができる。
Then, the device
なお、上記のステップS103では、Bluetooth等の近距離無線通信により機器20から機器情報を取得する場合について説明したが、これに限られない。機器情報取得部121は、例えば、機器20の筐体に貼り付け等されているQRコードをカメラで撮像することで、このQRコードに埋め込まれている機器情報を取得しても良い。又は、機器情報取得部121は、近距離無線通信以外の無線通信(例えば、Wi-Fi等)により、機器20から機器情報を取得しても良い。例えば、端末装置10は、自身のIPアドレスを機器20に通知した上で、この通知に対する応答として、Wi-Fi等の無線通信により、機器情報を機器20から取得しても良い。
In step S103 above, the case where the device information is acquired from the
印刷ライブラリ120の機器情報取得部121は、機器20から機器情報を取得すると、機器情報インスタンス200を生成する(ステップS104)。機器情報インスタンス200は、機器情報クラス1100をインスタンス化することで生成される。
Upon acquiring the device information from the
次に、印刷ライブラリ120の機器情報取得部121は、機器20から取得した機器情報を機器情報インスタンス200に設定する(ステップS105)。
Next, the device
すなわち、機器情報取得部121は、機器20から取得したIPアドレスを引数に指定した上で、機器情報クラス1100のメソッド宣言1104に定義されているメソッド「setIPAddress」を呼び出す。これにより、フィールド名「IPアドレス」の機器情報が機器情報インスタンス200に設定される。
That is, the device
同様に、機器情報取得部121は、機器20から取得したモデル名を引数に指定した上で、機器情報クラス1100のメソッド宣言1106に定義されているメソッド「setModelName」を呼び出す。これにより、フィールド名「モデル名」の機器情報が機器情報インスタンス200に設定される。
Similarly, the device
同様に、機器情報取得部121は、機器20から取得したサポートPDLを引数に指定した上で、機器情報クラス1100のメソッド宣言1108に定義されているメソッド「setSupportPDL」を呼び出す。これにより、フィールド名「サポートPDL」の機器情報が機器情報インスタンス200に設定される。
Similarly, the device
同様に、機器情報取得部121は、機器20から取得したネットワーク情報を引数に指定した上で、機器情報クラス1100のメソッド宣言1110に定義されているメソッド「setNetworkInfo」を呼び出す。これにより、フィールド名「ネットワーク情報」の機器情報が機器情報インスタンス200に設定される。
Similarly, the device
そして、機器情報取得部121は、機器20から取得した各機器情報が設定された機器情報インスタンス200をベンダ開発プログラム110に返信する。
Then, the device
ベンダ開発プログラム110の表示制御部112は、機器情報取得部121から返信された機器情報インスタンス200から機器情報を取得する。そして、表示制御部112は、機器情報インスタンス200から取得した機器情報を表示装置12上に表示する(ステップS106)。
The
このとき、表示制御部112は、機器情報インスタンス200に保持されている機器情報のうち、読取範囲が「全域」となっている機器情報を取得することができる。すなわち、表示制御部112は、フィールド名「IPアドレス」の機器情報と、フィールド名「モデル名」の機器情報とを機器情報インスタンス200から取得することができる。表示制御部112は、機器情報クラス1100のメソッド宣言1103に定義されているメソッド「getIPAddress」を呼び出すことで、フィールド名「IPアドレス」の機器情報を機器情報インスタンス200から取得することができる。同様に、表示制御部112は、機器情報クラス1100のメソッド宣言1105に定義されているメソッド「getModelName」を呼び出すことで、フィールド名「モデル名」の機器情報を取得することができる。
At this time, the
なお、表示制御部112は、上記で取得した機器情報を用いて、後述するステップS109で印刷設定情報の指定操作を受け付けるための画面における選択肢を制限することができる。例えば、表示制御部112は、フィールド名「モデル名」の機器情報に基づいて、モノクロ印刷のみ対応した機器20であることを判断して、印刷設定情報として「カラー」を指定できないように制限する(例えば、「カラー」を選択するための選択肢を非表示にする等)ことができる。
Note that the
また、表示制御部112は、例えば、複数の機器20の機器情報を取得した場合には、これらの機器情報を用いて、ユーザが出力先の機器20を選択するための機器一覧画面等を生成及び表示しても良い。機器一覧画面が表示されることで、ユーザは、複数の機器20の中から出力先の機器20(印刷実行する機器20)を選択することができるようになる。
Further, for example, when the device information of a plurality of
一方で、表示制御部112は、フィールド名「サポートPDL」の機器情報と、フィールド名「ネットワーク情報」の機器情報とを機器情報インスタンス200から取得することはできない。
On the other hand, the
したがって、表示装置12上には、表示制御部112により、機器20のIPアドレスとモデル名とが表示される。これにより、例えば、サポートPDLやネットワーク情報等、ユーザが必ずしも参照する必要のない機器情報が表示されることを防止することができる。
Therefore, the
ここで、上記のステップS106で表示装置12上に表示される画面の一例として、印刷を実行する機器20の機器情報を確認するための機器確認画面G100を図15に示す。図15は、機器確認画面G100の一例を示す図である。
FIG. 15 shows a device confirmation screen G100 for confirming the device information of the
図15に示す機器確認画面G100には、機器情報表示欄G110が含まれる。機器情報表示欄G110には、機器情報インスタンス200から取得可能な機器情報(すなわち、読取範囲が「全域」である機器情報。具体的には、フィールド名「IPアドレス」の機器情報及びフィールド名「モデル名」の機器情報)が表示される。このように、表示制御部112は、機器情報インスタンス200に保持されている機器情報のうち、読取範囲が「全域」となっている機器情報を機器情報表示欄G110に表示させる。
The device confirmation screen G100 shown in FIG. 15 includes a device information display field G110. In the device information display field G110, device information that can be acquired from the device information instance 200 (that is, device information whose reading range is “whole area”). "model name" device information) is displayed. In this manner, the
一方で、表示制御部112は、機器情報インスタンス200から取得することができない機器情報を機器情報表示欄G110に表示することはできない。すなわち、表示制御部112は、読取範囲が「ライブラリ内」である機器情報(具体的には、フィールド名「サポートPDL」の機器情報及びフィールド名「ネットワーク情報」の機器情報)を機器情報表示欄G110に表示することはできない。
On the other hand, the
次に、ベンダ開発プログラム110の印刷対象データ設定部113は、ユーザによる印刷対象データの選択操作を受け付ける(ステップS107)。ユーザは、例えば、上記のステップS106で機器情報が表示されている画面からコンテンツデータの一覧画面に遷移させた上で、コンテンツデータの一覧画面から所望のコンテンツデータを選択することで、印刷対象データの選択操作を行うことができる。
Next, the print target
ベンダ開発プログラム110の印刷対象データ設定部113は、ユーザによる印刷対象データの選択操作を受け付けると、選択されたコンテンツデータを印刷対象データに設定する(ステップS108)。なお、上記のステップS101の処理が実行される前に、印刷対象データが予め設定されている場合等には、上記のステップS107及びステップS108の処理は実行されなくても良い。
The print target
次に、ベンダ開発プログラム110の印刷設定部114は、ユーザによる印刷設定情報の指定操作を受け付ける(ステップS109)。ユーザは、例えば、印刷対象データを選択した後に表示される所定の画面において、各印刷設定情報の設定値を指定することで、印刷設定情報の指定操作を行うことができる。なお、ユーザが印刷設定情報を変更しない場合(すなわち、印刷設定情報の設定値としてデフォルト値を用いる場合)、本ステップの処理は実行されなくても良い。
Next, the
ベンダ開発プログラム110の印刷設定部114は、印刷設定情報インスタンス300を生成する(ステップS110)。印刷設定情報インスタンス300は、印刷設定情報クラス1200をインスタンス化することで生成される。
The
次に、ベンダ開発プログラム110の印刷設定部114は、上記のステップS109でユーザにより指定された印刷設定情報を印刷設定情報インスタンス300に設定する(ステップS111)。
Next, the
すなわち、印刷設定部114は、ユーザにより指定された部数を引数に指定した上で、印刷設定情報クラス1200のメソッド宣言1204に定義されているメソッド「setCopies」を呼び出す。これにより、フィールド名「部数」の印刷設定情報が印刷設定情報インスタンス300に設定される。
That is, the
同様に、印刷設定部114は、ユーザにより指定された印刷ページ範囲を引数に指定した上で、印刷設定情報クラス1200のメソッド宣言1206に定義されているメソッド「setPrintPage」を呼び出す。これにより、フィールド名「印刷ページ範囲」の印刷設定情報が印刷設定情報インスタンス300に設定される。
Similarly, the
同様に、印刷設定部114は、ユーザにより指定された印刷カラーを引数に指定した上で、印刷設定情報クラス1200のメソッド宣言1208に定義されているメソッド「setColor」を呼び出す。これにより、フィールド名「印刷カラー」の印刷設定情報が印刷設定情報インスタンス300に設定される。
Similarly, the
なお、上記のステップS109で一部の印刷設定情報のみがユーザにより指定された場合(例えば、部数のみが指定された場合)、印刷設定部114は、ユーザにより指定された印刷設定情報のみを印刷設定情報インスタンス300に設定しても良い。又は、印刷設定情報インスタンス300が保持している各印刷設定情報がデフォルト値に初期化されていない場合は、印刷設定部114は、ユーザにより指定されていない印刷設定情報について、この印刷設定情報のデフォルト値を印刷設定情報インスタンス300に設定しても良い。
Note that if the user specifies only part of the print setting information in step S109 (for example, if only the number of copies is specified), the
次に、ベンダ開発プログラム110の実行操作受付部115は、ユーザによる印刷実行操作を受け付ける(ステップS112)。ユーザは、例えば、印刷設定情報を指定した後に表示される所定の画面において、印刷実行ボタンを押下することで、印刷実行操作を行うことができる。
Next, the execution
ベンダ開発プログラム110の印刷実行要求部116は、実行操作受付部115により印刷実行操作が受け付けられると、印刷実行を印刷処理部122に要求する(ステップS113)。この印刷実行要求には、機器情報インスタンス200と、印刷対象データと、印刷設定情報インスタンス300とが含まれる。印刷実行要求部116は、機器情報インスタンス200と、印刷対象データと、印刷設定情報インスタンス300とを引数に指定した上で、印刷処理クラス1400のメソッド宣言1403に定義されているメソッド「print」を呼び出すことで、印刷実行要求を行うことができる。
When the execution
メソッド「print」に対して機器情報インスタンス200が引数に指定されることで、例えば、複数の機器情報インスタンス200が存在する場合(すなわち、例えば、周囲に複数の機器20が存在し、これら複数の機器20からそれぞれ機器情報を取得した場合)、どの機器情報インスタンス200を用いるかを指定することができるようになる。このため、ベンダ開発プログラム110からは操作することができない複数の情報を管理することができるようになる。
By specifying the
例えば、複数の機器情報インスタンス200が存在する場合、例えば、フィールド名「サポートPDL」の機器情報は機器20毎に存在する。この場合、フィールド名「サポートPDL」の機器情報は、いずれもベンダ開発プログラム110からは参照することができない。このため、ベンダ開発プログラム110は、これらの機器情報のうちの一の機器情報を直接指定することはできないものの、機器情報インスタンス200を指定することで、どの機器20のサポートPDLを用いるかを結果的に指定することができるようになる。
For example, when a plurality of
印刷ライブラリ120の印刷処理部122は、印刷データ生成部123により、印刷実行要求に含まれる機器情報インスタンス200からサポートPDLを取得する(ステップS114)。すなわち、印刷データ生成部123は、機器情報インスタンス200に保持されている機器情報のうち、フィールド名「サポートPDL」の機器情報を取得する。印刷データ生成部123は、機器情報クラス1100のメソッド宣言1107に定義されているメソッド「getSupprotPDL」を呼び出すことで、フィールド名「サポートPDL」の機器情報を取得することができる。なお、印刷処理部122を実現する印刷処理クラス1400と、機器情報クラス1100とは同一のパッケージ「printlibrary」に属するため、印刷データ生成部123は、メソッド「getSupprotPDL」を呼び出すことができる。
The
次に、印刷ライブラリ120の印刷処理部122は、印刷データ生成部123により、印刷実行要求に含まれる印刷設定情報インスタンス300から各印刷設定情報を取得する(ステップS115)。すなわち、印刷データ生成部123は、印刷設定情報インスタンス300に保持されている印刷設定情報を取得する。印刷データ生成部123は、印刷設定情報クラス1200のメソッド宣言1203、メソッド宣言1205、及びメソッド宣言1207にそれぞれ定義されているメソッドを呼び出すことで、各印刷設定情報を取得することができる。
Next, the
次に、印刷ライブラリ120の印刷処理部122は、印刷データ生成部123により、印刷データを生成する(ステップS116)。すなわち、印刷データ生成部123は、上記のステップS114で取得されたサポートPDLと、上記のステップS115で取得された印刷設定情報とを用いて、印刷対象データから印刷データを生成する。このとき、印刷データ生成部123は、上記のステップS114で取得されたサポートPDLが示すデータ形式の印刷データを生成する。
Next, the
次に、印刷ライブラリ120の印刷処理部122は、印刷要求部124により、印刷実行要求に含まれる機器情報インスタンス200からネットワーク情報を取得する(ステップS117)。すなわち、印刷要求部124は、機器情報インスタンス200に保持されている機器情報のうち、フィールド名「ネットワーク情報」の機器情報を取得する。印刷要求部124は、機器情報クラス1100のメソッド宣言1109に定義されているメソッド「getNetworkInfo」を呼び出すことで、フィールド名「ネットワーク情報」の機器情報を取得することができる。なお、印刷処理部122を実現する印刷処理クラス1400と、機器情報クラス1100とは同一のパッケージ「printlibrary」に属するため、印刷要求部124は、メソッド「getNetworkInfo」を呼び出すことができる。
Next, the
次に、印刷ライブラリ120の印刷処理部122は、印刷要求部124により、上記のステップS117で取得されたネットワーク情報に基づいて、機器20との通信可否を判定する(ステップS118)。すなわち、印刷要求部124は、例えば、上記のステップS117で取得されたネットワーク情報に含まれるSSIDと、端末装置10が接続しているアクセスポイントのSSIDとを比較することで、端末装置10と機器20とが通信可能であるか否かを判定する。
Next, the
なお、通信可能であるか否かは、例えば、これらのSSIDを比較して、端末装置10と機器20とが同一ネットワーク内にあるか否かを判定すれば良い。ただし、これに限られず、例えば、端末装置10の通信方式と、機器20の通信方式とを比較して、端末装置10と機器20とが通信可能であるか否かを判定しても良い。
Whether or not communication is possible can be determined, for example, by comparing these SSIDs and determining whether or not the
ステップS118において、機器20と通信可能であると判定された場合、印刷ライブラリ120の印刷処理部122は、印刷要求部124により、印刷実行要求に含まれる機器情報インスタンス200からIPアドレスを取得する(ステップS119)。すなわち、印刷要求部124は、機器情報インスタンス200に保持されている機器情報のうち、フィールド名「IPアドレス」の機器情報を取得する。印刷要求部124は、機器情報クラス1100のメソッド宣言1103に定義されているメソッド「getIPAddress」を呼び出すことで、フィールド名「IPアドレス」の機器情報を取得することができる。
If it is determined in step S118 that communication with the
次に、印刷ライブラリ120の印刷処理部122は、印刷要求部124により、印刷要求を機器20に送信する(ステップS120)。すなわち、印刷要求部124は、例えばWi-Fi等の無線LANにより、上記のステップS119で取得されたIPアドレス宛に印刷要求を送信する。印刷要求には、上記のステップS116で生成された印刷データが含まれる。これにより、印刷要求を受信した機器20において印刷データの印刷が行われ、印刷結果が返信される。
Next, the
一方で、ステップS118において、機器20と通信可能でないと判定された場合、印刷ライブラリ120の印刷処理部122は、印刷要求部124により、ベンダ開発プログラム110にエラーを返信する。これにより、例えば、印刷を行うことができないことを示すエラー画面が表示装置12上に表示される。
On the other hand, if it is determined in step S118 that communication with the
<第一の実施形態のまとめ>
以上のように、本実施形態に係る印刷システム1では、機器20の製造元企業が提供する印刷ライブラリ120により管理される各種情報について、サードベンダにより開発されたベンダ開発プログラム110が読み取りや書き換えを制限することができる。これにより、本実施形態に係る印刷システム1では、印刷ライブラリ120により管理される各種情報について、ベンダ開発プログラム110により不正に書き換えられてしまったり、不要な情報が参照されてしまったりといった事態を防止することができる。
<Summary of the first embodiment>
As described above, in the
また、本実施形態に係る印刷システム1では、ベンダ開発プログラム110による情報の書き換えを制限することで、機器20の意図しない動作等を防止することができる。
Further, in the
例えば、ベンダ開発プログラム110によりフィールド名「サポートPDL」の機器情報が書き換えられてしまった場合、図14のステップS116で機器20がサポートしていないデータ形式の印刷データが生成されてしまうことがある。このため、機器20で意図しないエラー(印刷データのデータ形式エラー等)が発生することがある。
For example, if the
また、例えば、フィールド名「IPアドレス」の機器情報が書き換えられてしまった場合、図14のステップS120で印刷要求が意図しない機器20に送信されてしまうことがある。このため、意図しない機器20で印刷が行われてしまうことができる。
Also, for example, if the device information with the field name "IP address" is rewritten, the print request may be sent to an
なお、本実施形態では、機器20で印刷を行う場合について説明したが、例えば、機器20でスキャンにより生成された画像データ(スキャン画像)をベンダ開発プログラム110が取得する場合についても同様に適用することができる。この場合、印刷ライブラリ120には、機器20からスキャン画像を取得するためのクラス(スキャン画像取得クラス)が定義されていれば良い。そして、スキャン画像取得クラスにより実現されるスキャン画像取得部が、機器情報に基づいて、機器20からスキャン画像を取得すれば良い。
In the present embodiment, the case where printing is performed by the
[第二の実施形態]
次に、第二の実施形態について説明する。第一の実施形態では機器20がMFPである場合について説明したが、第二の実施形態では機器20がプロジェクタである場合について説明する。
[Second embodiment]
Next, a second embodiment will be described. In the first embodiment, the
なお、第二の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と同様の構成要素については、適宜、その説明を省略又は簡略化する。 In addition, in the second embodiment, differences from the first embodiment will be mainly described, and the description of the same components as in the first embodiment will be omitted or simplified as appropriate.
<全体構成>
まず、本実施形態に係る投影システム2の全体構成について、図16を参照しながら説明する。図16は、第二の実施形態に係る投影システム2の全体構成の一例を示す図である。
<Overall composition>
First, the overall configuration of the
図16に示すように、本実施形態に係る投影システム2には、1台以上の端末装置10と、1台以上の機器20とが含まれる。また、端末装置10と機器20とは、例えば、Bluetooth等の近距離無線通信を用いて、通信可能に接続される。更に、端末装置10と機器20とは、例えば、Wi-Fi等の無線LANを用いて、通信可能に接続される。
As shown in FIG. 16 , the
機器20は、プロジェクタ等の投影装置である。機器20は、端末装置10からの要求に応じて、投影処理を行う。なお、機器20のハードウェア構成としては、例えば、一般的なプロジェクタのハードウェア構成とすれば良い。
The
端末装置10は、スマートフォン等の情報処理装置である。端末装置10には、サードベンダにより開発され、機器20と連携した処理を行う投影アプリケーション400がインストールされている。端末装置10のユーザは、投影アプリケーション400を用いて、機器20で画像の投影を行うことができる。なお、端末装置10のハードウェア構成は第一の実施形態と同様である。
The
なお、端末装置10は、第一の実施形態と同様に、スマートフォンに限られず、例えば、タブレット端末、ノート型PC(パーソナルコンピュータ)、デスクトップ型PC、ゲーム機器、デジタルカメラ、ウェアラブルデバイス等であっても良い。
Note that, as in the first embodiment, the
<投影アプリケーション400の構成>
ここで、サードベンダにより開発された投影アプリケーション400の構成について、図17を参照しながら説明する。図17は、投影アプリケーション400の構成の一例を説明する図である。
<Configuration of
Here, the configuration of the
図17に示すように、投影アプリケーション400は、サードベンダにより開発され、独自の機能を提供するプログラムであるベンダ開発プログラム410と、機器20の製造元企業が提供するAPI群である投影ライブラリ420とを有する。
As shown in FIG. 17, the
投影ライブラリ420は、投影機能を提供するためのプログラムである。投影ライブラリ420には、例えば、機器20から機器情報を取得するためのAPIや機器20に対して投影を要求するためのAPI等が定義されている。このため、ベンダ開発プログラム410は、投影ライブラリ420に定義されたAPIを呼び出すことで、機器20からの機器情報の取得や機器20への投影要求等、機器20と連携した処理を実現することができる。
なお、第一の実施形態と同様に、ベンダ開発プログラム410及び投影ライブラリ420は、Java言語で開発されたプログラムであるものとする。
As in the first embodiment, the
<機能構成>
次に、本実施形態に係る端末装置10の機能構成について、図18を参照しながら説明する。図18は、第二の実施形態に係る端末装置10の機能構成の一例を示す図である。
<Functional configuration>
Next, the functional configuration of the
図18に示すように、本実施形態に係る端末装置10は、機器情報取得要求部411と、表示制御部412と、投影対象データ設定部413と、投影設定部414と、実行操作受付部415と、投影実行要求部416とを有する。これら各部は、ベンダ開発プログラム410がCPU16に実行させる処理により実現される。
As shown in FIG. 18, the
また、本実施形態に係る端末装置10は、機器情報取得部421と、投影処理部422とを有する。これら各部は、投影ライブラリ420がCPU16に実行させる処理により実現される。
Further, the
機器情報取得要求部411は、ユーザによる機器情報の取得操作を受け付ける。また、機器情報取得要求部411は、ユーザによる機器情報の取得操作を受け付けると、機器情報の取得を機器情報取得部421に要求する。機器情報取得要求部411は、機器情報取得部421を実現するクラス(このクラスを、以降では「機器情報取得クラス2300」と表す。)内のメソッドを呼び出すことで、機器情報の取得を要求することができる。
The device information
表示制御部412は、機器情報取得部421により取得された機器情報を表示装置12上に表示する。
The
投影対象データ設定部413は、ユーザによる投影対象データの選択操作を受け付ける。投影対象データとは、ユーザが投影を所望するコンテンツデータのことである。コンテンツデータとしては、例えば、画像データや動画データ等が挙げられる。以降では、一例として、コンテンツデータは画像データであるものとする。
The projection target
また、投影対象データ設定部413は、ユーザによる投影対象データの選択操作を受け付けると、選択されたコンテンツデータを投影対象データに設定する。
In addition, upon receiving a selection operation of projection target data by the user, the projection target
投影設定部414は、ユーザによる投影設定情報の指定操作を受け付ける。投影設定情報には、例えば、切替方法等がある。切替方法とは、投影対象の画像を他の画像に切り替える場合における切り替え時の表示態様のことである。
The
また、投影設定部414は、ユーザによる投影設定情報の指定操作を受け付けると、各投影設定情報が保持される投影設定情報インスタンス600を生成する。そして、投影設定部414は、ユーザにより指定された投影設定情報を投影設定情報インスタンス600に設定する。投影設定部414は、投影設定情報インスタンス600を実現するクラス(このクラスを、以降では「投影設定情報クラス2200」と表す。)内のメソッドを呼び出すことで、投影設定情報を設定することができる。
Further, upon receiving a user's operation of specifying projection setting information, the
実行操作受付部415は、ユーザによる投影実行操作を受け付ける。投影実行要求部416は、実行操作受付部415により投影実行操作が受け付けられると、投影実行を投影処理部422に要求する。投影実行要求部416は、投影処理部422を実現するクラス(このクラスを、以降では「投影処理クラス2400」と表す。)内のメソッドを呼び出すことで、投影実行を要求することができる。
The execution
機器情報取得部421は、機器情報取得要求部411からの要求に応じて、機器20から機器情報を取得する。このとき、機器情報取得部421は、例えばBluetooth等の近距離無線通信を用いて、機器20から機器情報を取得する。機器情報には、例えば、IPアドレス、モデル名、解像度、ネットワーク情報等がある。
The device
また、機器情報取得部421は、機器20から機器情報を取得すると、取得した各機器情報が保持される機器情報インスタンス500を生成する。そして、機器情報取得部421は、取得した機器情報を機器情報インスタンス500に設定する。機器情報取得部421は、機器情報インスタンス500を実現するクラス(このクラスを、以降では「機器情報クラス2100」と表す。)内のメソッドを呼び出すことで、機器情報を設定することができる。
Further, when the device
投影処理部422は、投影実行要求部416からの要求に応じて、投影データを生成した上で、投影要求を機器20に送信する。このとき、投影処理部422は、例えばWi-Fi等の無線LANを用いて、投影要求を機器20に送信する。
The
投影処理部422には、投影データ生成部423と、投影要求部424とが含まれる。投影データ生成部423は、投影データを生成する。投影データとは、投影対象データを機器20が投影可能なデータ形式(例えば、機器20が投影可能な解像度のデータ形式)に変換したデータである。投影要求部424は、投影データ生成部423により生成された投影データが含まれる投影要求を機器20に送信する。
The
ここで、機器情報インスタンス500について、図19を参照しながら説明する。図19は、機器情報インスタンス500の一例を示す図である。
Here, the
図19に示すように、機器情報インスタンス500は、フィールド名「IPアドレス」の機器情報と、フィールド名「モデル名」の機器情報と、フィールド名「解像度」の機器情報と、フィールド名「ネットワーク情報」の機器情報とを保持する。これらの機器情報のうち、フィールド名「IPアドレス」、「モデル名」及び「ネットワーク情報」の機器情報は、第一の実施形態と同様であるため、その説明を省略する。
As shown in FIG. 19, the
フィールド名「解像度」の機器情報は、フィールド値として、機器20が投影可能な画像データの解像度が設定される。また、フィールド名「解像度」の機器情報の読取範囲及び書換範囲は「ライブラリ内」である。これは、フィールド名「解像度」の機器情報は、投影ライブラリ420以外のプログラムからは読み取りも書き換えも不可であることを示している。ただし、フィールド名「解像度」の機器情報の読取範囲は、「全域」であっても良い。
For the device information with the field name “resolution”, the resolution of image data that can be projected by the
なお、フィールド名「解像度」のフィールド値には、「1280×720」等の具体的な解像度の値が設定される場合に限られない。例えば、「XGA(Extended Graphics Array)」や「HD(High Definition video)」等の解像度の規格又は分類が設定されても良い。 Note that the field value of the field name "resolution" is not limited to the case where a specific resolution value such as "1280×720" is set. For example, resolution standards or classifications such as “XGA (Extended Graphics Array)” and “HD (High Definition video)” may be set.
以上のように、機器情報インスタンス500には、当該機器情報インスタンス500が保持している機器情報の読取範囲及び書換範囲が設定されている。これにより、機器20の製造元企業は、サードベンダにより開発されたベンダ開発プログラム410が不要な機器情報を参照したり、不正に機器情報を書き換えたりすることを防止することができる。なお、機器情報インスタンス500が保持する機器情報は、上記の「IPアドレス」、「モデル名」、「解像度」、及び「ネットワーク情報」に限られない。機器情報インスタンス500は、例えば、機器番号や製造年月日、製造元企業の情報等、種々の機器情報を保持しても良い。
As described above, in the
次に、投影設定情報インスタンス600について、図20を参照しながら説明する。図20は、投影設定情報インスタンス600の一例を示す図である。
Next, projection setting
図20に示すように、投影設定情報インスタンス600は、フィールド名「切替方法」の投影設定情報を保持する。
As shown in FIG. 20, the projection setting
フィールド名「切替方法」の投影設定情報は、フィールド値として、ユーザにより設定された切替方法(又はデフォルトの切替方法)が設定される。切替方法とは、上述したように、投影対象の画像を他の画像に切り替える場合における切り替え時の表示態様のことである。フィールド名「切替方法」のフィールド値としては、例えば、「none」、「fade」、「cut」等が挙げられる。「none」は、例えば、投影対象の画像を他の画像に単に切り替える表示態様のことである。「fade」は、例えば、投影対象の画像をフェードアウト、他の画像をフェードインさせることで、投影対象の画像を他の画像に切り替える表示態様のことである。「cut」は、例えば、投影対象の画像をカットアウト、他の画像をカットインさせることで、投影対象の画像を他の画像に切り替える表示態様のことである。 A switching method set by the user (or a default switching method) is set as a field value in the projection setting information with the field name “switching method”. The switching method is, as described above, the display mode at the time of switching when the image to be projected is switched to another image. Field values of the field name "switching method" include, for example, "none", "fade", and "cut". "None" is, for example, a display mode in which the image to be projected is simply switched to another image. "fade" is, for example, a display mode in which the image to be projected is faded out and the other image is faded in, thereby switching the image to be projected to another image. “Cut” is, for example, a display mode in which an image to be projected is cut out and another image is cut in, thereby switching the image to be projected to another image.
また、フィールド名「切替方法」の投影設定情報の読取範囲及び書換範囲は「全域」である。これは、フィールド名「切替方法」の投影設定情報は、投影ライブラリ420以外のプログラムから読み取りも書き換えも可能であることを示している。
Also, the read range and rewrite range of the projection setting information with the field name "switching method" are "whole area". This indicates that the projection setting information with the field name “switching method” can be read and rewritten by programs other than the
以上のように、投影設定情報インスタンス600には、当該投影設定情報インスタンス600が保持している投影設定情報の読取範囲及び書換範囲が設定されている。これにより、機器20の製造元企業は、サードベンダにより開発されたベンダ開発プログラム410が不要な投影設定情報を参照したり、例えばデフォルト値のみが適用される投影設定情報が書き換えられたりすることを防止することができる。なお、投影設定情報インスタンス600が保持する投影設定情報は、上記の「切替方法」に限られない。
As described above, in the projection setting
ここで、上記の機器情報インスタンス500及び投影設定情報インスタンス600の読取範囲及び書換範囲は、Java言語のパッケージを用いて実現することができる。例えば、図21に示すように、ベンダ開発プログラム410に定義された各クラスが属するパッケージと、投影ライブラリ420に定義された各クラスが属するパッケージとを異なるパッケージとする。
Here, the reading range and rewriting range of the
これにより、機器情報インスタンス500が保持するフィールド(すなわち、機器情報)を操作するメソッドに対してアクセスレベルを定義することで、このフィールドの読取範囲及び書換範囲を制限することができる。同様に、投影設定情報インスタンス600が保持するフィールド(すなわち、投影設定情報)を操作するメソッドに対してアクセスレベルを定義することで、このフィールドの読取範囲及び書換範囲を制限することができる。以降では、投影ライブラリ420に定義された各クラスが属するパッケージのパッケージ名を「projectionlibrary」とする。
Thus, by defining an access level for a method that operates a field (that is, device information) held by the
なお、図21に示す例では、ベンダ開発プログラム410に定義された各クラスが同一のパッケージに属する場合を示しているが、これに限られず、例えば、これらの各クラスが異なるパッケージに属していても良い。
Although the example shown in FIG. 21 shows the case where each class defined in the
ここで、機器情報インスタンス500を実現する機器情報クラス2100について、図22を参照しながら説明する。図22は、機器情報クラス2100の一例を示す図である。機器情報インスタンス500は、例えば図22に示す機器情報クラス2100をインスタンス化することで生成される。
Here, the
図22に示すように、機器情報クラス2100には、パッケージ宣言2101と、クラス宣言2102とが含まれる。パッケージ宣言2101には、パッケージ名「projectionlibrary」が定義されている。クラス宣言2102には、各機器情報に対するメソッド宣言2103~2110が含まれる。
As shown in FIG. 22,
メソッド宣言2103~2106及びメソッド宣言2109~2110は、図9に示す機器情報クラス1100のメソッド宣言1103~1106及びメソッド宣言1109~1110とそれぞれ同様であるため、その説明を省略する。
メソッド宣言2107には、フィールド名「解像度」の機器情報を読み取るためのメソッド「getResolution」が定義されている。また、メソッド宣言2107では、このメソッド「getResolution」のアクセス修飾子が定義されていない。これにより、フィールド名「解像度」の機器情報の読取範囲「ライブラリ内」が実現される。
A
メソッド宣言2108には、フィールド名「解像度」の機器情報を書き換えるためのメソッド「setResolution」が定義されている。また、メソッド宣言2108では、このメソッド「setResolution」のアクセス修飾子が定義されていない。これにより、フィールド名「解像度」の機器情報の書換範囲「ライブラリ内」が実現される。
A
以上のように、機器情報クラス2100では、機器情報を操作(読み取り又は書き換え)するためのメソッドに対して、アクセス修飾子「public」を定義することで、他のパッケージに属するクラスからも機器情報に対する操作を行うことができるようになる。一方で、機器情報クラス2100では、機器情報を操作するためのメソッドに対して、アクセス修飾子を定義しないことで、他のパッケージに属するクラスからは機器情報に対する操作を行えないようにすることができる。
As described above, in the
次に、投影設定情報インスタンス600を実現する投影設定情報クラス2200について、図23を参照しながら説明する。図23は、投影設定情報クラス2200の一例を示す図である。投影設定情報インスタンス600は、例えば図23に示す投影設定情報クラス2200をインスタンス化することで生成される。
Next, the projection setting
図23に示すように、投影設定情報クラス2200には、パッケージ宣言2201と、クラス宣言2202とが含まれる。パッケージ宣言2201には、パッケージ名「projectionlibrary」が定義されている。クラス宣言2202には、各投影設定情報に対するメソッド宣言2203~2204が含まれる。
As shown in FIG. 23, projection setting
メソッド宣言2203には、フィールド名「切替方法」の投影設定情報を読み取るためのメソッド「getSwitch」が定義されている。また、メソッド宣言2203には、このメソッド「getSwitch」のアクセス修飾子「public」が定義されている。これにより、フィールド名「切替方法」の投影設定情報の読取範囲「全域」が実現される。
A
メソッド宣言2204には、フィールド名「切替方法」の投影設定情報を書き換えるためのメソッド「setSwitch」が定義されている。また、メソッド宣言2204には、このメソッド「setSwitch」のアクセス修飾子「public」が定義されている。これにより、フィールド名「切替方法」の投影設定情報の書換範囲「全域」が実現される。 A method declaration 2204 defines a method “setSwitch” for rewriting projection setting information with a field name “switching method”. Also, in the method declaration 2204, the access modifier "public" of this method "setSwitch" is defined. As a result, the rewrite range "whole area" of the projection setting information with the field name "switching method" is realized.
以上のように、投影設定情報クラス2200では、投影設定情報を操作(読み取り又は書き換え)するためのメソッドに対して、アクセス修飾子「public」を定義することで、他のパッケージに属するクラスからも投影設定情報に対する操作を行うことができるようになる。一方で、投影設定情報クラス2200では、投影設定情報を操作するためのメソッドに対して、アクセス修飾子を定義しないことで、他のパッケージに属するクラスからは投影設定情報に対する操作を行えないようにすることができる。
As described above, in the projection setting
次に、機器情報取得部421を実現する機器情報取得クラス2300について、図24を参照しながら説明する。図24は、機器情報取得クラス2300の一例を示す図である。機器情報取得部421は、例えば図24に示す機器情報取得クラス2300をインスタンス化することで生成される。
Next, a device
図24に示すように、機器情報取得クラス2300には、パッケージ宣言2301と、クラス宣言2302とが含まれる。パッケージ宣言2301には、パッケージ名「projectionlibrary」が定義されている。クラス宣言2302には、メソッド宣言2303が含まれる。
As shown in FIG. 24, device
メソッド宣言2303には、機器20から機器情報を取得するためのメソッド「getProjectorInfo」が定義されている。また、メソッド宣言2303には、このメソッド「getProjectorInfo」のアクセス修飾子「public」が定義されている。これにより、メソッド「getProjectorInfo」は、同一パッケージ以外のパッケージに属するクラス(すなわち、投影ライブラリ420以外のプログラムに定義されたクラス)からも呼び出すことができる。
A
次に、投影処理部422を実現する投影処理クラス2400について、図25を参照しながら説明する。図25は、投影処理クラス2400の一例を示す図である。投影処理部422は、例えば図25に示す投影処理クラス2400をインスタンス化することで生成される。
Next, a
図25に示すように、投影処理クラス2400には、パッケージ宣言2401と、クラス宣言2402とが含まれる。パッケージ宣言2401には、パッケージ名「projectionlibrary」が定義されている。クラス宣言2402には、メソッド宣言2403が含まれる。
As shown in FIG. 25,
メソッド宣言2403には、投影要求を機器20に送信するためのメソッド「project」が定義されている。また、メソッド宣言2403には、このメソッド「project」のアクセス修飾子「public」が定義されている。これにより、メソッド「project」は、同一パッケージ以外のパッケージに属するクラス(すなわち、投影ライブラリ420以外のプログラムに定義されたクラス)からも呼び出すことができる。
A
なお、メソッド宣言2403には、メソッド「project」の引数として、「ProjectorInfo info」と、「ProjectData data」と、「ProjectSetting setting」とが定義されている。これは、メソッド「project」の引数として、機器情報と、投影対象データと、投影設定情報とが指定されることを示している。
In the
次に、ベンダ開発プログラム410のプログラムコード2500について、図26を参照しながら説明する。図26は、ベンダ開発プログラム410のプログラムコード2500の一例を示す図である。なお、図26では、一例として、機器情報取得要求部411と、投影対象データ設定部413と、投影設定部414と、投影実行要求部416とにそれぞれ対応するコードが定義されたプログラムコード2500について説明する。表示制御部412や実行操作受付部415等に対応するコードは別途それぞれ定義する必要がある。
Next,
図26に示すように、プログラムコード2500には、パッケージ宣言2501と、クラス宣言2502とが含まれる。パッケージ宣言2501には、パッケージ名「projectionapp」が定義されている。このため、ベンダ開発プログラム410は、パッケージ名「projectionlibrary」に属する各クラスに定義されたメソッドのうち、アクセス修飾子「public」が定義されていないメソッドを呼び出すことができない。
As shown in FIG. 26,
クラス宣言2502には、投影実行クラス2503が含まれる。そして、投影実行クラス2503には、機器情報取得要求部411に対応するコードが定義されたコード定義2504と、投影設定部414に対応するコードが定義されたコード定義2505とが含まれる。また、投影実行クラス2503には、投影対象データ設定部413に対応するコードが定義されたコード定義2506と、投影実行要求部416に対応するコードが定義されたコード定義2507とが含まれる。
コード定義2507に示すように、ベンダ開発プログラム410は、パッケージ名「projectionlibrary」に属する投影処理クラス2400のメソッド「project」を呼び出す際に、機器情報インスタンス500を示す「info」を引数に指定する。これにより、メソッド「project」における処理で、機器情報インスタンス500のアクセス修飾子「public」が定義されていないメソッドを呼び出した上で、機器20に対して、処理要求(投影要求)を行うことができる。例えば、メソッド「project」における処理で、機器情報インスタンス500を示す「info」のメソッド「getResolution」を呼び出してフィールド名「解像度」の機器情報を取得した上で、この機器情報を指定した投影要求を機器20に行うことができる。
As shown in the
このため、投影アプリケーション400は、機器20に対して、ベンダ開発プログラム410が操作することができない情報(例えば、フィールド名「解像度」の機器情報やフィールド名「ネットワーク情報」の機器情報)を使用した処理要求(登録要求)を行うことが可能となる。
Therefore, the
<投影処理>
次に、本実施形態に係る投影システム2の投影処理について説明する。以降では、端末装置10のユーザが、投影アプリケーション400を用いて、機器20で画像の投影を行う場合の処理について、図27を参照しながら説明する。図27は、第二の実施形態に係る投影処理の一例を示すシーケンス図である。
<Projection processing>
Next, projection processing of the
以降の図27では、機器情報クラス2100及び投影設定情報クラス2200を除いて、ベンダ開発プログラム410及び投影ライブラリ420に定義されている各クラスはインスタンス化されているものとして説明する。なお、ベンダ開発プログラム410及び投影ライブラリ420に定義されている各クラスで、インスタンス化されていないクラスがあっても良い。この場合、当該クラスにより実現される機能部(インスタンス)の処理を実行する前に、適宜、インスタンス化されれば良い。また、機器情報クラス2100及び投影設定情報クラス2200も予めインスタンス化されていても良い。
27 below, except for the
まず、ベンダ開発プログラム410の機器情報取得要求部411は、図14のステップS101と同様に、ユーザによる機器情報の取得操作を受け付ける(ステップS201)。
First, the device information
ベンダ開発プログラム410の機器情報取得要求部411は、ユーザによる機器情報の取得操作を受け付けると、機器情報の取得を機器情報取得部421に要求する(ステップS202)。機器情報取得要求部411は、機器情報取得クラス2300のメソッド宣言2303に定義されているメソッド「getProjectorInfo」を呼び出すことで、機器情報の取得要求を行うことができる。
The device information
投影ライブラリ420の機器情報取得部421は、図14のステップS103と同様に、機器情報の取得要求を受け取ると、機器20に対して、機器情報の問い合わせを行う(ステップS203)。そして、機器情報取得部421は、上記の問い合わせに応じて機器20から返信された機器情報を受信する。これにより、機器情報取得部421は、IPアドレス、モデル名、解像度、ネットワーク情報等の機器情報を機器20から取得することができる。
Upon receiving the device information acquisition request, the device
投影ライブラリ420の機器情報取得部421は、機器20から機器情報を取得すると、機器情報インスタンス500を生成する(ステップS204)。機器情報インスタンス500は、機器情報クラス2100をインスタンス化することで生成される。
Upon acquiring the device information from the
次に、投影ライブラリ420の機器情報取得部421は、機器20から取得した機器情報を機器情報インスタンス500に設定する(ステップS205)。
Next, the device
すなわち、機器情報取得部421は、機器20から取得したIPアドレスを引数に指定した上で、機器情報クラス2100のメソッド宣言2104に定義されているメソッド「setIPAddress」を呼び出す。これにより、フィールド名「IPアドレス」の機器情報が機器情報インスタンス500に設定される。
That is, the device
同様に、機器情報取得部421は、機器20から取得したモデル名を引数に指定した上で、機器情報クラス2100のメソッド宣言2106に定義されているメソッド「setModelName」を呼び出す。これにより、フィールド名「モデル名」の機器情報が機器情報インスタンス500に設定される。
Similarly, the device
同様に、機器情報取得部421は、機器20から取得した解像度を引数に指定した上で、機器情報クラス2100のメソッド宣言2108に定義されているメソッド「setResolution」を呼び出す。これにより、フィールド名「解像度」の機器情報が機器情報インスタンス500に設定される。
Similarly, the device
同様に、機器情報取得部421は、機器20から取得したネットワーク情報を引数に指定した上で、機器情報クラス2100のメソッド宣言2110に定義されているメソッド「setNetworkInfo」を呼び出す。これにより、フィールド名「ネットワーク情報」の機器情報が機器情報インスタンス500に設定される。
Similarly, the device
そして、機器情報取得部421は、機器20から取得した各機器情報が設定された機器情報インスタンス500をベンダ開発プログラム410に返信する。
Then, the device
ベンダ開発プログラム410の表示制御部412は、機器情報取得部421から返信された機器情報インスタンス500から機器情報を取得する。そして、表示制御部412は、機器情報インスタンス500から取得した機器情報を表示装置12上に表示する(ステップS206)。このとき、表示制御部412は、図14のステップS106と同様に、機器情報インスタンス200に保持されている機器情報のうち、読取範囲が「全域」となっている機器情報を取得することができる。これにより、例えば、解像度やネットワーク情報等、ユーザが必ずしも参照する必要のない機器情報が表示されることを防止することができる。
The
次に、ベンダ開発プログラム410の投影対象データ設定部413は、ユーザによる投影対象データの選択操作を受け付ける(ステップS207)。ユーザは、例えば、上記のステップS206で機器情報が表示されている画面からコンテンツデータの一覧画面に遷移させた上で、コンテンツデータの一覧画面から所望のコンテンツデータを選択することで、投影対象データの選択操作を行うことができる。
Next, the projection target
ベンダ開発プログラム410の投影対象データ設定部413は、ユーザによる投影対象データの選択操作を受け付けると、選択されたコンテンツデータを投影対象データに設定する(ステップS208)。なお、上記のステップS201の処理が実行される前に、投影対象データが予め設定されている場合等には、上記のステップS207及びステップS208の処理は実行されなくても良い。
The projection target
次に、ベンダ開発プログラム410の投影設定部414は、ユーザによる投影設定情報の指定操作を受け付ける(ステップS209)。ユーザは、例えば、投影対象データを選択した後に表示される所定の画面において、各投影設定情報の設定値を指定することで、投影設定情報の指定操作を行うことができる。なお、ユーザが投影設定情報を変更しない場合(すなわち、投影設定情報の設定値としてデフォルト値を用いる場合)、本ステップの処理は実行されなくても良い。
Next, the
ベンダ開発プログラム410の投影設定部414は、投影設定情報インスタンス600を生成する(ステップS210)。投影設定情報インスタンス600は、投影設定情報クラス2200をインスタンス化することで生成される。
The
次に、ベンダ開発プログラム410の投影設定部414は、上記のステップS209でユーザにより指定された投影設定情報を投影設定情報インスタンス600に設定する(ステップS211)。
Next, the
すなわち、投影設定部414は、ユーザにより指定された切替方法を引数に指定した上で、投影設定情報クラス2200のメソッド宣言2204に定義されているメソッド「setSwitch」を呼び出す。これにより、フィールド名「切替方法」の投影設定情報が投影設定情報インスタンス600に設定される。
That is, the
次に、ベンダ開発プログラム410の実行操作受付部415は、ユーザによる投影実行操作を受け付ける(ステップS212)。ユーザは、例えば、投影設定情報を指定した後に表示される所定の画面において、投影実行ボタンを押下することで、投影実行操作を行うことができる。
Next, the execution
ベンダ開発プログラム410の投影実行要求部416は、実行操作受付部415により投影実行操作が受け付けられると、投影実行を投影処理部422に要求する(ステップS213)。この投影実行要求には、機器情報インスタンス500と、投影対象データと、投影設定情報インスタンス600とが含まれる。投影実行要求部416は、機器情報インスタンス500と、投影対象データと、投影設定情報インスタンス600とを引数に指定した上で、投影処理クラス2400のメソッド宣言2403に定義されているメソッド「project」を呼び出すことで、投影実行要求を行うことができる。
When the execution
メソッド「project」に対して機器情報インスタンス500が引数に指定されることで、例えば、複数の機器情報インスタンス500が存在する場合(すなわち、例えば、周囲に複数の機器20が存在し、これら複数の機器20からそれぞれ機器情報を取得した場合)、どの機器情報インスタンス500を用いるかを指定することができるようになる。このため、ベンダ開発プログラム410からは操作することができない複数の情報を管理することができるようになる。
By specifying the
例えば、複数の機器情報インスタンス500が存在する場合、例えば、フィールド名「解像度」の機器情報は機器20毎に存在する。この場合、フィールド名「解像度」の機器情報は、いずれもベンダ開発プログラム410からは参照することができない。このため、ベンダ開発プログラム410は、これらの機器情報のうちの一の機器情報を直接指定することはできないものの、機器情報インスタンス500を指定することで、どの機器20の解像度を用いるかを結果的に指定することができるようになる。
For example, when a plurality of
投影ライブラリ420の投影処理部422は、投影データ生成部423により、投影実行要求に含まれる機器情報インスタンス500から解像度を取得する(ステップS214)。すなわち、投影データ生成部423は、機器情報インスタンス500に保持されている機器情報のうち、フィールド名「解像度」の機器情報を取得する。投影データ生成部423は、機器情報クラス2100のメソッド宣言2107に定義されているメソッド「getResolution」を呼び出すことで、フィールド名「解像度」の機器情報を取得することができる。なお、投影処理部422を実現する投影処理クラス2400と、機器情報クラス2100とは同一のパッケージ「projectionlibrary」に属するため、投影データ生成部423は、メソッド「getResolution」を呼び出すことができる。
The
次に、投影ライブラリ420の投影処理部422は、投影データ生成部423により、投影実行要求に含まれる投影設定情報インスタンス600から投影設定情報を取得する(ステップS215)。すなわち、投影データ生成部423は、投影設定情報インスタンス600に保持されている投影設定情報を取得する。投影データ生成部423は、投影設定情報クラス2200のメソッド宣言2203に定義されているメソッド「getSwitch」を呼び出すことで、フィールド名「切替方法」の投影設定情報を取得することができる。
Next, the
次に、投影ライブラリ420の投影処理部422は、投影データ生成部423により、投影データを生成する(ステップS216)。すなわち、投影データ生成部423は、上記のステップS214で取得された解像度を用いて、投影対象データから投影データを生成する。このとき、投影データ生成部423は、例えば、当該投影対象データを、上記のステップS214で取得された解像度に変換することで、投影データを生成する。
Next, the
次に、投影ライブラリ420の投影処理部422は、図14のステップS117と同様に、投影要求部424により、投影実行要求に含まれる機器情報インスタンス500からネットワーク情報を取得する(ステップS217)。
Next, the
次に、投影ライブラリ420の投影処理部422は、図14のステップS118と同様に、投影要求部424により、上記のステップS217で取得されたネットワーク情報に基づいて、機器20との通信可否を判定する(ステップS218)。
Next, the
ステップS218において、機器20と通信可能であると判定された場合、投影ライブラリ420の投影処理部422は、図14のステップS119と同様に、投影要求部424により、投影実行要求に含まれる機器情報インスタンス500からIPアドレスを取得する(ステップS219)。
In step S218, if it is determined that communication with the
次に、投影ライブラリ420の投影処理部422は、投影要求部424により、投影要求を機器20に送信する(ステップS420)。すなわち、投影要求部424は、例えばWi-Fi等の無線LANにより、上記のステップS219で取得されたIPアドレス宛に投影要求を送信する。投影要求には、上記のステップS216で生成された投影データが含まれる。これにより、投影要求を受信した機器20で投影データが示す画像の投影が行われ、投影結果が返信される。
Next, the
一方で、ステップS218において、機器20と通信可能でないと判定された場合、投影ライブラリ420の投影処理部422は、投影要求部424により、ベンダ開発プログラム410にエラーを返信する。これにより、例えば、投影を行うことができないことを示すエラー画面が表示装置12上に表示される。
On the other hand, if it is determined in step S218 that communication with the
<第二の実施形態のまとめ>
以上のように、本実施形態に係る投影システム2では、プロジェクタである機器20の製造元企業が提供する投影ライブラリ420により管理される各種情報について、サードベンダにより開発されたベンダ開発プログラム410が読み取りや書き換えを制限することができる。これにより、本実施形態に係る投影システム2では、投影ライブラリ420により管理される各種情報について、ベンダ開発プログラム410により不正に書き換えられてしまったり、不要な情報が参照されてしまったりといった事態を防止することができる。
<Summary of Second Embodiment>
As described above, in the
また、本実施形態に係る投影システム2では、ベンダ開発プログラム410による情報の書き換えを制限することで、機器20の意図しない動作等を防止することができる。
Further, in the
[第三の実施形態]
次に、第三の実施形態について説明する。第一の実施形態及び第二の実施形態では、実行可能形式のアプリケーション(印刷アプリケーション100又は投影アプリケーション400)が端末装置10にインストールされているものとして説明したが、当該アプリケーションはプログラムコードが定義されたソースファイルをコンパイル等することで作成される。そこで、第三の実施形態では、例えばPC(パーソナルコンピュータ等)である開発用端末30が、ソースファイルをコンパイルすることで、実行可能形式(例えば、Javaバイトコード)のアプリケーション(印刷アプリケーション100又は投影アプリケーション400)を作成する場合について説明する。以降では、印刷アプリケーション100又は投影アプリケーション400を「アプリケーション700」と表す。
[Third embodiment]
Next, a third embodiment will be described. In the first and second embodiments, an executable application (the
なお、第三の実施形態では、主に、第一の実施形態及び第二の実施形態との相違点について説明し、第一の実施形態及び第二の実施形態と同様の構成要素については、適宜、その説明を省略又は簡略化する。 In addition, in the third embodiment, mainly the differences from the first embodiment and the second embodiment are explained, and the same components as the first embodiment and the second embodiment are The description is omitted or simplified as appropriate.
<機能構成>
まず、本実施形態に係る開発用端末30の機能構成について、図28を参照しながら説明する。図28は、第三の実施形態に係る開発用端末30の機能構成の一例を示す図である。
<Functional configuration>
First, the functional configuration of the
図28に示すように、本実施形態に係る開発用端末30は、コンパイル処理部800を有する。当該機能部は、開発用端末30にインストールされた1以上のプログラムがCPUに実行させる処理により実現される。
As shown in FIG. 28, the
また、本実施形態に係る開発用端末30は、記憶部900を有する。当該記憶部は、例えば、HDDやSSD等の補助記憶装置を用いて実現可能である。なお、当該記憶部は、開発用端末30とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
Further, the
記憶部900には、ソースファイル910と、ライブラリ920とが記憶されている。ソースファイル910は、作成対象のアプリケーション700が印刷アプリケーション100である場合はベンダ開発プログラム110のソースコードが記述されたファイルであり、作成対象のアプリケーション700が投影アプリケーション400である場合はベンダ開発プログラム410のソースコードが記述されたファイルである。また、ライブラリ920は、作成対象のアプリケーション700が印刷アプリケーション100である場合は印刷ライブラリ120であり、作成対象のアプリケーション700が投影アプリケーション400である場合は投影ライブラリ420である。
A
なお、ライブラリ920は、例えば、当該ライブラリ920に定義されているAPI(メソッド)の利用方法(例えば、引数の指定方法)等が記載されたマニュアルと共に、機器20の製造元企業等から配布される。
The
コンパイル処理部800は、ソースファイル910とライブラリ920とを入力して、ソースファイル910をコンパイル(より正確には、ソースファイル910及びライブラリ920をコンパイル)することで、実行可能形式のアプリケーション700を作成する。このとき、コンパイル処理部800は、呼び出し対象のメソッドと、このメソッドの呼び出し元のクラスとの間でアクセス関係が正常に定義されているか否かを判定する。
Compile processing
すなわち、コンパイル処理部800は、呼び出し対象のメソッドが定義されたクラスと、当該メソッドの呼び出し元のクラスとが同一のパッケージに属するか否かを判定する。また、コンパイル処理部800は、これらのクラスが同一のパッケージに属しないと判定された場合に、当該メソッドに対してアクセス識別子「public」が定義されているか否かを判定する。
That is, the compile
そして、コンパイル処理部800は、ソースファイル910の全てのメソッドに対してアクセス関係が正常に定義されていると判定した場合、ソースファイル910をコンパイルして、実行可能形式のアプリケーション700を作成する。一方で、コンパイル処理部800は、少なくとも1つのメソッドに対してアクセス関係が正常に定義されていないと判定した場合、例えばエラー画面等を表示する。
Then, when the compile
<コンパイル処理>
次に、本実施形態に係る開発用端末30が実行するコンパイル処理について説明する。以降では、開発用端末30のユーザ(例えばサードベンダ等のアプリ開発者)が、ソースファイル910をコンパイルして、実行可能形式のアプリケーション700を作成する処理について、図29を参照しながら説明する。図29は、第三の実施形態に係るコンパイル処理の一例を示すフローチャートである。図29に示す処理は、例えば、開発用端末30のユーザによる操作(ソースファイル910のコンパイル開始操作)に応じてソースファイル910及びライブラリ920がコンパイル処理部800に入力されることで実行が開始され、当該ソースファイル910に定義されたメソッドの呼び出し処理を示すコード毎に繰り返し実行される。
<Compile processing>
Next, the compilation process executed by the
まず、コンパイル処理部800は、当該コードに定義された呼び出し対象のメソッドのクラスが、呼び出し元のクラスと同一パッケージであるか否かを判定する(ステップS301)。
First, the
ステップS301において、呼び出し対象のメソッドのクラスが、呼び出し元のクラスと同一パッケージでないと判定した場合、コンパイル処理部800は、当該メソッドに対して、アクセス修飾子「public」が定義されているか否かを判定する(ステップS302)。
If it is determined in step S301 that the class of the method to be called is not in the same package as the class of the caller, the
ステップS301において、呼び出し対象のメソッドのクラスが、呼び出し元のクラスと同一パッケージであると判定した場合、又は、ステップS302において、当該メソッドに対して、アクセス修飾子「public」が定義されていると判定された場合、コンパイル処理部800は、当該メソッドのアクセス関係が正常に定義されていると判定する(ステップS303)。
If it is determined in step S301 that the class of the method to be called is in the same package as the calling class, or if the access modifier "public" is defined for the method in step S302. When determined, the
一方で、ステップS302において、当該メソッドに対して、アクセス修飾子「public」が定義されていないと判定された場合、コンパイル処理部800は、当該メソッドのアクセス関係が正常に定義されていない(エラーである)と判定する(ステップS304)。この場合、コンパイル処理部800は、例えば、ソースファイル910中に定義されたメソッドのアクセス関係が正常でないことを示すエラー画面を表示させて、コンパイル処理を終了させる。
On the other hand, if it is determined in step S302 that the access modifier "public" is not defined for the method, the
他方、ソースファイル910中の全てのメソッドに対してアクセス関係が正常に定義されていると判定された場合、コンパイル処理部800は、当該ソースファイル910及びライブラリ920をコンパイルして、実行可能形式のアプリケーション700を作成する(ステップS305)。これにより、ライブラリ920により管理される各種情報について、ベンダ開発プログラム110又はベンダ開発プログラム410による操作を制限したアプリケーション700(印刷アプリケーション100又は投影アプリケーション400)が作成される。なお、より正確には、ソースファイル910及びライブラリ920をそれぞれコンパイルすることで作成されるオブジェクトファイルのリンク等が行われることで、当該アプリケーション700が作成される。
On the other hand, if it is determined that the access relationships are normally defined for all the methods in the
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。 The invention is not limited to the specifically disclosed embodiments above, but various modifications and changes are possible without departing from the scope of the claims.
1 印刷システム
10 端末装置
20 機器
100 印刷アプリケーション
110 ベンダ開発プログラム
111 機器情報取得要求部
112 表示制御部
113 印刷対象データ設定部
114 印刷設定部
115 実行操作受付部
116 印刷実行要求部
120 印刷ライブラリ
121 機器情報取得部
122 印刷処理部
123 印刷データ生成部
124 印刷要求部
200 機器情報インスタンス
300 印刷設定情報インスタンス
1
Claims (12)
前記プログラムからの第1の要求に応じて、前記情報処理装置と接続される機器から所定の情報を含む情報を取得する取得部と、
前記取得部により取得された情報を、前記プログラムと異なるパッケージに属するクラスであって、前記所定の情報を更新または参照するためのアクセス修飾子が定義されていないクラスにすることで、前記所定の情報に対して、前記プログラムにより更新または参照の要求ができないように制限する要求制御部と、
前記プログラムからの第2の要求に応じて、前記取得部が取得した前記情報であって前記要求制御部によって前記プログラムからの要求が制限される前記所定の情報に基づいて、前記機器に対して、前記第2の要求に対応する処理の実行を要求する処理要求部と、
を有することを特徴とする情報処理装置。 An information processing device having a program that provides a predetermined function,
an acquisition unit that acquires information including predetermined information from a device connected to the information processing device in response to a first request from the program;
By converting the information acquired by the acquisition unit into a class belonging to a package different from the program and having no defined access modifier for updating or referring to the predetermined information, a request control unit that restricts the program from requesting updates or references to information;
In response to a second request from the program, based on the predetermined information, which is the information acquired by the acquisition unit and the request from the program is restricted by the request control unit, to the device , a processing request unit that requests execution of processing corresponding to the second request;
An information processing device comprising:
前記要求制御部は、
前記取得部により取得された情報を、前記所定の情報を更新するためのメソッドにアクセス修飾子が定義されていないクラスから生成されたインスタンスに設定することで、前記プログラムにより更新の要求ができないように制限する、ことを特徴とする請求項1に記載の情報処理装置。 The program is a program written in Java language,
The request control unit
By setting the information acquired by the acquisition unit to an instance generated from a class in which an access modifier is not defined in a method for updating the predetermined information, the program cannot request update. 2. The information processing apparatus according to claim 1 , wherein the limit is set to .
前記要求制御部は、
前記取得部により取得された情報を、前記所定の情報を参照するためのメソッドにアクセス修飾子が定義されていないクラスから生成されたインスタンスに設定することで、前記プログラムにより参照の要求ができないように制限する、ことを特徴とする請求項1に記載の情報処理装置。 The program is a program written in Java language,
The request control unit
By setting the information acquired by the acquisition unit to an instance generated from a class in which an access modifier is not defined in a method for referring to the predetermined information, the program cannot request a reference. 2. The information processing apparatus according to claim 1 , wherein the limit is set to .
前記処理要求部は、
前記プログラムからの前記識別情報を含む第2の要求に応じて、前記識別情報に対応付けられた前記複数の情報のうち、前記要求制御部によって要求が制限される前記所定の情報に基づいて、前記機器に対して前記第2の要求に対応する処理の実行を要求する、ことを特徴とする請求項1に記載の情報処理装置。 a storage control unit that stores a plurality of pieces of information acquired by the acquisition unit in association with one piece of identification information;
The processing request unit is
In response to a second request including the identification information from the program, based on the predetermined information for which the request is restricted by the request control unit, among the plurality of pieces of information associated with the identification information, 2. The information processing apparatus according to claim 1, wherein the device is requested to execute a process corresponding to the second request.
前記処理要求部は、
前記プログラムからの第2の要求に応じて、前記要求制御部によって要求が制限される前記所定の情報に基づいて、前記機器に対して、前記印刷処理の実行を要求する、ことを特徴とする請求項1に記載の情報処理装置。 the device is an image processing device capable of executing at least print processing;
The processing request unit is
requesting the device to execute the printing process in response to a second request from the program, based on the predetermined information for which requests are restricted by the request control unit. The information processing device according to claim 1 .
前記プログラムから前記所定の情報に対する要求を受け付けない制御を行い、
前記処理要求部から前記所定の情報に対する要求を受け付ける制御を行う、ことを特徴とする請求項8に記載の情報処理装置。 The request control unit
performing control not to accept a request for the predetermined information from the program;
9. The information processing apparatus according to claim 8 , wherein control is performed to receive a request for said predetermined information from said processing request unit.
前記プログラムからの第1の要求に応じて、前記情報処理装置と接続される機器から所定の情報を含む情報を取得する取得手順と、
前記取得手順により取得された情報を、前記プログラムと異なるパッケージに属するクラスであって、前記所定の情報を更新または参照するためのアクセス修飾子が定義されていないクラスにすることで、前記所定の情報に対して、前記プログラムにより更新または参照の要求ができないように制限する要求制御手順と、
前記プログラムからの第2の要求に応じて、前記取得手順が取得した前記情報であって前記プログラムからの要求が制限される前記所定の情報に基づいて、前記機器に対して、前記第2の要求に対応する処理の実行を要求する処理要求手順と、
を実行させるためのプログラム。 An information processing device having a program that provides a predetermined function,
an acquisition procedure for acquiring information including predetermined information from a device connected to the information processing device in response to a first request from the program;
By making the information acquired by the acquisition procedure a class belonging to a package different from the program and having no defined access modifier for updating or referring to the prescribed information, a request control procedure for restricting information from being requested to be updated or referenced by the program;
In response to a second request from the program, based on the predetermined information, which is the information acquired by the acquisition procedure and for which requests from the program are restricted, the second request is sent to the device. a process request procedure that requests execution of a process corresponding to the request;
program to run the
前記プログラムからの第1の要求に応じて、前記画像処理装置から所定の情報を含む情報を取得する取得部と、
前記取得部により取得された情報を、前記プログラムと異なるパッケージに属するクラスであって、前記所定の情報を更新または参照するためのアクセス修飾子が定義されていないクラスにすることで、前記所定の情報に対して、前記プログラムにより更新または参照の要求ができないように制限する要求制御部と、
前記プログラムからの第2の要求に応じて、前記取得部が取得した前記情報であって前記要求制御部によって前記プログラムからの要求が制限される前記所定の情報に基づいて、前記画像処理装置に対して、前記第2の要求に対応する処理の実行を要求する処理要求部と、
を有することを特徴とする情報処理システム。 An information processing system including an information processing device having a program that provides a predetermined function and an image processing device capable of executing predetermined image processing,
an acquisition unit that acquires information including predetermined information from the image processing device in response to a first request from the program;
By converting the information acquired by the acquisition unit into a class belonging to a package different from the program and having no defined access modifier for updating or referring to the predetermined information, a request control unit that restricts the program from requesting updates or references to information;
In response to a second request from the program, based on the predetermined information, which is the information acquired by the acquisition unit and the request from the program is restricted by the request control unit, the image processing apparatus a processing request unit for requesting execution of processing corresponding to the second request;
An information processing system characterized by having:
前記プログラムからの第1の要求に応じて、前記情報処理装置と接続される機器から所定の情報を含む情報を取得する取得手順と、
前記取得手順により取得された情報を、前記プログラムと異なるパッケージに属するクラスであって、前記所定の情報を更新または参照するためのアクセス修飾子が定義されていないクラスにすることで、前記所定の情報に対して、前記プログラムにより更新または参照の要求ができないように制限する要求制御手順と、
前記プログラムからの第2の要求に応じて、前記取得手順が取得した前記情報であって前記要求制御手順によって前記プログラムからの要求が制限される前記所定の情報に基づいて、前記機器に対して、前記第2の要求に対応する処理の実行を要求する処理要求手順と、
を有することを特徴とする情報処理方法。 An information processing method executed by an information processing device having a program that provides a predetermined function,
an acquisition procedure for acquiring information including predetermined information from a device connected to the information processing device in response to a first request from the program;
By converting the information acquired by the acquisition procedure into a class belonging to a package different from the program and having no defined access modifier for updating or referring to the prescribed information, a request control procedure that restricts the program from requesting updates or references to the information of
in response to a second request from the program, to the device based on the predetermined information, which is the information acquired by the acquisition procedure and for which requests from the program are restricted by the request control procedure; , a process request procedure for requesting execution of a process corresponding to the second request;
An information processing method characterized by having
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/142,323 US10389901B2 (en) | 2017-09-28 | 2018-09-26 | Information processing device, information processing system, and information processing method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017189192 | 2017-09-28 | ||
JP2017189192 | 2017-09-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019067367A JP2019067367A (en) | 2019-04-25 |
JP7243064B2 true JP7243064B2 (en) | 2023-03-22 |
Family
ID=66337878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018138043A Active JP7243064B2 (en) | 2017-09-28 | 2018-07-23 | Information processing device, program, information processing system and information processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7243064B2 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000148424A (en) | 1998-11-13 | 2000-05-30 | Nec Corp | Network print system, and printer and client device used in same system |
JP2001159962A (en) | 1999-12-01 | 2001-06-12 | Seiko Epson Corp | Printing system and printing setting device |
JP2009099093A (en) | 2007-10-19 | 2009-05-07 | Brother Ind Ltd | Management program, information processor and information processing system |
JP2011242946A (en) | 2010-05-17 | 2011-12-01 | Brother Ind Ltd | Image formation control program, image formation program, and data structure of image formation setting information |
JP2017033052A (en) | 2015-07-29 | 2017-02-09 | キヤノン株式会社 | Control device and program in image forming apparatus |
JP2017112618A (en) | 2016-12-27 | 2017-06-22 | キヤノン株式会社 | Information processing apparatus, method of controlling the same, and program |
-
2018
- 2018-07-23 JP JP2018138043A patent/JP7243064B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000148424A (en) | 1998-11-13 | 2000-05-30 | Nec Corp | Network print system, and printer and client device used in same system |
JP2001159962A (en) | 1999-12-01 | 2001-06-12 | Seiko Epson Corp | Printing system and printing setting device |
JP2009099093A (en) | 2007-10-19 | 2009-05-07 | Brother Ind Ltd | Management program, information processor and information processing system |
JP2011242946A (en) | 2010-05-17 | 2011-12-01 | Brother Ind Ltd | Image formation control program, image formation program, and data structure of image formation setting information |
JP2017033052A (en) | 2015-07-29 | 2017-02-09 | キヤノン株式会社 | Control device and program in image forming apparatus |
JP2017112618A (en) | 2016-12-27 | 2017-06-22 | キヤノン株式会社 | Information processing apparatus, method of controlling the same, and program |
Also Published As
Publication number | Publication date |
---|---|
JP2019067367A (en) | 2019-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10275192B2 (en) | Information processing apparatus, image processing system, and printer driver | |
CN109327641B (en) | Information processing system, information processing apparatus, and control method thereof | |
JP6311352B2 (en) | Information processing apparatus, control method, program, and information processing system | |
JP6255749B2 (en) | Service providing system, service providing method, information storage device, operation terminal, and program | |
JP2011141683A (en) | Image processing apparatus, display device, authentication system, display control method, display control program and recording medium recording the same | |
JP2006148876A (en) | Image formation apparatus, information processing method, information processing program, and recording medium | |
JP6787115B2 (en) | Image forming device, function addition method, program, | |
JP2009054027A (en) | Information processor, display screen customizing method, and display screen customizing program | |
US20150082222A1 (en) | Information processing program product, information processing apparatus, and information processing system | |
JP2008041057A (en) | Image processor, image forming apparatus, program management method, and management program for managing same program | |
JP2008147961A (en) | Image forming apparatus, screen managing method and screen management program | |
JP6044143B2 (en) | Service providing system and service providing method | |
JP2013191196A (en) | Information processing device, apparatus, information processing system, information processing method, and information processing program | |
JP2012161076A (en) | System and method for enabling network access to mass storage devices connected to multi-function devices | |
JP2005293407A (en) | Information processor, input operation simplification method and program | |
RU2604515C2 (en) | Electronic device, information processing system, information managing apparatus, information processing method and information processing program | |
KR20190088292A (en) | Controlling apps providing same or similar services in an image forming apparatus supporting multiple platforms | |
US10389901B2 (en) | Information processing device, information processing system, and information processing method | |
JP7243064B2 (en) | Information processing device, program, information processing system and information processing method | |
JP2017062835A (en) | Output system, application, and information processing device | |
JP2010191521A (en) | Information processing apparatus, program, and computer-readable recording medium | |
JP2007122348A (en) | Image forming apparatus, security management method, security management program and recording medium | |
US11436299B2 (en) | Information processing system, server apparatus, and information processing method | |
JP2015055927A (en) | Apparatus management device, apparatus management system, apparatus management method, and program | |
US10863044B2 (en) | Information processing apparatus, information processing system, and method of processing information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210520 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220203 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220324 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220426 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221004 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221014 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230220 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7243064 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |