JP2014179908A - Information processing device and program - Google Patents

Information processing device and program Download PDF

Info

Publication number
JP2014179908A
JP2014179908A JP2013053963A JP2013053963A JP2014179908A JP 2014179908 A JP2014179908 A JP 2014179908A JP 2013053963 A JP2013053963 A JP 2013053963A JP 2013053963 A JP2013053963 A JP 2013053963A JP 2014179908 A JP2014179908 A JP 2014179908A
Authority
JP
Japan
Prior art keywords
authentication
scanner
information
image data
data output
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.)
Granted
Application number
JP2013053963A
Other languages
Japanese (ja)
Other versions
JP6107260B2 (en
Inventor
Tatsuki Kodera
竜樹 小寺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2013053963A priority Critical patent/JP6107260B2/en
Publication of JP2014179908A publication Critical patent/JP2014179908A/en
Application granted granted Critical
Publication of JP6107260B2 publication Critical patent/JP6107260B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide an information processing device that is able to obtain connection confirmation with a plurality of image data output devices at high speed regardless of the number of the image data output devices.SOLUTION: An information processing device 100 for obtaining scanner information from scanners 200 includes: communication information acquisition means 31 for acquiring communication information to communicate with each scanner existing on a network; authentication information reception means 32 for receiving input of authentication information; authentication means 43 for individually authenticating the scanners, the number of which is the same as the number of image data output devices existing on the network; and display means 33 for displaying, per scanner, scanner device information if the authentication by the authentication means is a success, and authentication failure if the authentication is not a success. The authentication means, of which the upper limit number is a predetermined maximum number, is characterized in that each of them, at the same time for a plurality of scanners, sets communication information to communication means and transmits the authentication information to each scanner, and receives an authentication result from each scanner.

Description

本発明は、ネットワークに接続されたスキャナのスキャナ情報を取得する情報処理装置に関する。   The present invention relates to an information processing apparatus that acquires scanner information of a scanner connected to a network.

ネットワークの普及によりスキャナもネットワークに対応するようになり、いわゆるネットワークスキャナが使用されている。ネットワークスキャナ(以下、単にスキャナという)は、ネットワークに接続された複数のPC(Personal Computer)と通信できるので、各PCはスキャナが作成した画像データを受信することができる。   With the spread of networks, scanners are also compatible with networks, and so-called network scanners are used. Since a network scanner (hereinafter simply referred to as a scanner) can communicate with a plurality of PCs (Personal Computers) connected to the network, each PC can receive image data created by the scanner.

しかしながら、あるユーザがスキャナを使用中に、別のユーザが同じスキャナを使用すると画像データが別のユーザのPCに送信されてしまうので、原稿を読み取らせる前にユーザはPCとスキャナの接続を確立する(以下、接続限定という)必要がある。このため、ユーザは接続ツールによりPCとスキャナを接続させる(例えば、特許文献1参照。)。   However, if one user is using the scanner and another user uses the same scanner, the image data will be sent to the other user's PC, so the user establishes a connection between the PC and the scanner before scanning the document. (Hereinafter referred to as connection limitation). For this reason, the user connects the PC and the scanner with a connection tool (see, for example, Patent Document 1).

図1は、接続ツールの画面例を示す図である。ユーザが接続ツールを起動すると、接続ツールはPCにインストールされているスキャナドライバ名を表示する。図では「R1SCAN」というスキャナドライバが選択されている。   FIG. 1 is a diagram illustrating a screen example of the connection tool. When the user activates the connection tool, the connection tool displays the name of the scanner driver installed on the PC. In the figure, the scanner driver “R1SCAN” is selected.

ユーザが検索ボタンを押下すると、接続ツールはネットワークに接続されているスキャナを検索して、選択されたスキャナのスキャナ名(ホスト名)とアドレスを表示する。図では検索された2つのスキャナが表示されている。ユーザはホスト名を見て使用する予定のスキャナを選択する(これにより反転表示される)。   When the user presses the search button, the connection tool searches for a scanner connected to the network and displays the scanner name (host name) and address of the selected scanner. In the figure, two searched scanners are displayed. The user looks at the host name and selects the scanner to be used (this highlights it).

そして、ユーザが接続テストを押下すると、接続ツールは選択されたスキャナと通信し、他のユーザが使用していないかなどの状態を判定し、使用していなければ、当該PCとの接続限定を行う(接続テストと接続限定が別々の操作になっているツールもある)。また、スキャナが使用可能であることをユーザに通知するメッセージを表示する。これにより、スキャナは当該PCと接続限定される。この後、ユーザはOKボタンをクリックし、画像処理アプリを起動することでネットワーク経由でスキャナを制御することができる。   When the user presses the connection test, the connection tool communicates with the selected scanner to determine the status such as whether or not another user is using it. Yes (some tools have separate tests for connection testing and connection limitation). In addition, a message notifying the user that the scanner is usable is displayed. As a result, the scanner is limited in connection with the PC. Thereafter, the user can control the scanner via the network by clicking an OK button and starting an image processing application.

しかしながら、従来の接続テストでは、ユーザは一度にスキャナ1台に対してしか接続テストを行うことができないという問題があった。すなわち、図1にて説明したように、ユーザが接続テストを押下する際には1台のスキャナ名しか選択できず、各スキャナの状態を確認する必要がある場合などに、ネットワーク上のスキャナの数だけ接続テストする必要がある。電源が入っていないなどの理由で応答できない状態のスキャナは接続テストに対し応答しないが、応答しないと接続ツールが判断するためにはタイムアウト時間の経過が必要である。このため、多くのスキャナがネットワークに接続されている場合、長い時間がかかってしまうという問題があった。また、タイムアウト時間を短く設定したとしても、ユーザはスキャナを選択して1台ごとに接続テストを行う必要があるという問題があった。   However, the conventional connection test has a problem that the user can perform the connection test for only one scanner at a time. That is, as described with reference to FIG. 1, when the user presses the connection test, only one scanner name can be selected, and it is necessary to check the status of each scanner. It is necessary to test the number of connections. A scanner that cannot respond because the power is not turned on does not respond to the connection test. However, in order for the connection tool to determine that it does not respond, a time-out period must elapse. For this reason, when many scanners are connected to the network, there is a problem that it takes a long time. Even if the timeout time is set short, there is a problem that the user needs to select a scanner and perform a connection test for each scanner.

また、近年、ネットワークに複数のスキャナが接続されることが多くなっており、機種が異なるスキャナに共通のスキャナドライバが開発されるようになっている。このため、スキャナの接続テストを行う機会も増えている。   In recent years, a plurality of scanners are often connected to a network, and a scanner driver common to scanners of different models has been developed. For this reason, the opportunity to perform a scanner connection test is increasing.

そこで、接続ツールを、一度に複数のスキャナ(例えば、アドレスが既知の全てのスキャナ)と接続テストを行うように改良することが検討される。しかしながら、このように接続ツールを改良すると、以下のような問題がある。   Therefore, it is considered to improve the connection tool to perform connection tests with a plurality of scanners (for example, all scanners whose addresses are known) at a time. However, when the connection tool is improved in this way, there are the following problems.

一度に複数のスキャナと接続テストする場合、状態を確認する処理をマルチスレッド化することが考えられる。しかし、ネットワーク上のスキャナの数はユーザの環境によって様々なので、あまりに多くのスキャナが存在するとPCの他のスレッドを圧迫するおそれがある。   When performing a connection test with a plurality of scanners at a time, it is conceivable to make the process of checking the state multithreaded. However, since the number of scanners on the network varies depending on the user's environment, if there are too many scanners, there is a risk of pressing other threads on the PC.

また、接続テストの際に、PCとスキャナの間で認証処理が行われる場合がある。一度に複数のスキャナと接続テストを行う場合、認証処理もマルチスレッド化されるが、単に認証処理をマルチスレッド化するだけでは、各スレッドが任意のタイミングで認証情報を記憶エリアに入出力するため、認証情報が破壊されるなどの不都合が生じるおそれがある。   In the connection test, authentication processing may be performed between the PC and the scanner. When performing a connection test with multiple scanners at a time, authentication processing is also multi-threaded. However, simply by multi-threading authentication processing, each thread inputs and outputs authentication information to the storage area at any time Inconveniences such as destruction of authentication information may occur.

このように、単純なマルチスレッド化では、一度に複数のスキャナと接続テストを行う処理の実装が困難であるという問題がある。   As described above, with simple multithreading, there is a problem that it is difficult to implement processing for performing connection tests with a plurality of scanners at once.

本発明は、上記課題に鑑み、複数のスキャナとの接続確認をスキャナの台数に関わらず高速に取得することが可能な情報処理装置を提供することを目的とする。   In view of the above problems, an object of the present invention is to provide an information processing apparatus capable of acquiring connection confirmation with a plurality of scanners at high speed regardless of the number of scanners.

本発明は、ネットワークに接続された画像データ出力装置の装置情報を取得する情報処理装置であって、ネットワーク上に存在する各画像データ出力装置と通信するための通信情報を取得する通信情報取得手段と、認証情報の入力を受け付ける認証情報受け付け手段と、ネットワーク上に存在する画像データ出力装置の数と同じ数の、画像データ出力装置を個別に認証するための認証手段と、前記認証手段により認証が成立した場合には画像データ出力装置の装置情報を、認証が成立しない場合は認証不成立を画像データ出力装置毎に表示する表示手段と、を有し、予め定められた最大数を上限とする前記認証手段のそれぞれは、複数の画像データ出力装置に対し同時に、前記通信情報を通信手段に設定して各画像データ出力装置に認証情報を送信し、各画像データ出力装置から認証結果を受信する、ことを特徴とする。   The present invention relates to an information processing apparatus for acquiring apparatus information of an image data output apparatus connected to a network, and communication information acquisition means for acquiring communication information for communicating with each image data output apparatus existing on the network Authentication information accepting means for accepting input of authentication information, authentication means for individually authenticating image data output devices as many as the number of image data output devices existing on the network, and authentication by the authenticating means Display means for displaying the image data output device information for each image data output device if authentication is not established, and a predetermined maximum number as an upper limit. Each of the authentication means simultaneously sets the communication information in a communication means for a plurality of image data output devices and sends authentication information to each image data output device. Transmitted, receives the authentication result from the image data output device, it is characterized.

複数のスキャナとの接続確認をスキャナの台数に関わらず高速に取得することが可能な情報処理装置を提供することができる。   It is possible to provide an information processing apparatus capable of acquiring connection confirmation with a plurality of scanners at high speed regardless of the number of scanners.

接続ツールの画面例を示す図である。It is a figure which shows the example of a screen of a connection tool. スキャナドライバの構成を模式的に説明する図の一例である。It is an example of the figure which illustrates the structure of a scanner driver typically. スキャナシステムの概略構成図の一例である。1 is an example of a schematic configuration diagram of a scanner system. FIG. 端末のハードウェア構成図の一例である。It is an example of the hardware block diagram of a terminal. ソフトウェア的な構成例を説明する図の一例である。It is an example of the figure explaining the example of a software structure. スキャナドライバのうち状態確認に使用される機能のクラス図、クラスから生成されたインスタンス間の関係を模式的に説明する図の一例である。FIG. 5 is an example of a diagram schematically illustrating a relationship between a class diagram of functions used for status confirmation in a scanner driver and instances generated from the class. スキャナドライバと認証ライブラリの構造について説明する図の一例である。It is an example of the figure explaining the structure of a scanner driver and an authentication library. クラスの記述例を示す図の一例である。It is an example of the figure which shows the example of description of a class. 端末のディスプレイに表示されたUIの一例を示す図である。It is a figure which shows an example of UI displayed on the display of the terminal. スキャナドライバの動作手順を示すシーケンス図の一例である。It is an example of a sequence diagram showing an operation procedure of the scanner driver. スキャナドライバの効果を説明するための図の一例である。It is an example of the figure for demonstrating the effect of a scanner driver.

以下、本発明を実施するための形態について図面を参照しながら説明する。しかしながら、本発明の技術的範囲が、本実施の形態に限定されるものではない。   Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings. However, the technical scope of the present invention is not limited to this embodiment.

図2は、本実施例のスキャナドライバの構成を模式的に説明する図の一例である。接続ツールはこのスキャナドライバを介して接続テストを行う。
(i) スキャナドライバは、ネットワーク上でIPアドレス(又はホスト名でもよい)が既知の全てのネットワークスキャナ(以下、単にスキャナという)について制御・認証のインスタンスを、スキャナの数だけ生成する。1つのインスタンスは1つのスレッドとして実行されるので、複数のインスタンスが平行に実行可能になる。
(ii) 各認証情報制御インスタンスは、認証情報構造体ポインタから取得した、各スキャナの認証情報のポインタを有している。認証情報のポインタは認証情報が記憶されたアドレスを示す。したがって、1つの認証情報制御インスタンスが1つの認証情報にアクセスする。
(iii) スキャナドライバは所定数のマルチスレッドを並行に実行する。所定数とは、プログラムの実行環境において並列実行が推奨される最大の数であり、OS(Operating System)やPC(Personal Computer)の能力により変わりうる。
FIG. 2 is an example of a diagram schematically illustrating the configuration of the scanner driver according to the present embodiment. The connection tool performs a connection test via this scanner driver.
(i) The scanner driver generates as many instances of control / authentication as the number of scanners for all network scanners (hereinafter, simply referred to as scanners) whose IP addresses (or host names may be known) on the network. Since one instance is executed as one thread, a plurality of instances can be executed in parallel.
(ii) Each authentication information control instance has a pointer for authentication information of each scanner acquired from the authentication information structure pointer. The pointer of the authentication information indicates an address where the authentication information is stored. Therefore, one authentication information control instance accesses one authentication information.
(iii) The scanner driver executes a predetermined number of multithreads in parallel. The predetermined number is the maximum number recommended for parallel execution in the program execution environment, and may vary depending on the capabilities of an OS (Operating System) and a PC (Personal Computer).

このように、接続ツールは、並行して複数のスキャナの接続テストを行うことができるため、従来のようにユーザが1台ずつ接続テストするよりも接続テストに必要な時間を短縮できる。また、ユーザは1回、接続テストのボタンを押下すればよいので、操作性を向上できる。また、各認証情報制御インスタンスが認証情報にアクセスするので、認証情報構造体ポインタにアクセスが集中する不都合(例えば、アクセスバイオレーション)を抑制し、認証情報を個別に読み出したり書き出したりできる。   As described above, since the connection tool can perform a connection test of a plurality of scanners in parallel, the time required for the connection test can be shortened as compared with the conventional case where the user performs the connection test one by one. Further, since the user only has to press the connection test button once, the operability can be improved. Further, since each authentication information control instance accesses the authentication information, it is possible to suppress inconvenience (for example, access violation) that the access concentrates on the authentication information structure pointer, and to read and write the authentication information individually.

〔構成例〕
図3は、スキャナシステムの概略構成図の一例を示す。ネットワークを介して端末と複数のスキャナが通信可能に接続されている。ネットワークスキャナを使用する際の一般的なユーザ操作の流れは以下のようになる。
(i)ユーザは端末で動作する接続ツールを操作して、複数台のスキャナとの接続テストを行う。内部的にはスキャナドライバが動作する。
(ii)使用可能なスキャナの中から1台(又は複数台)を選択し接続限定する。
(iii)その後、ユーザはスキャナの設置場所に赴き原稿をセットする。
(iv)ユーザが画像処理アプリを操作すると、画像処理アプリがスキャナドライバを介してスキャナを制御し原稿のスキャンを行う。
(v)スキャナは原稿の画像データを端末に送信する。
[Configuration example]
FIG. 3 shows an example of a schematic configuration diagram of the scanner system. A terminal and a plurality of scanners are communicably connected via a network. A general user operation flow when using the network scanner is as follows.
(i) The user operates a connection tool operating on the terminal to perform a connection test with a plurality of scanners. Internally, the scanner driver operates.
(ii) Select one (or more) scanners from the available scanners and limit the connection.
(iii) Thereafter, the user places a manuscript at the scanner installation location.
(iv) When the user operates the image processing application, the image processing application controls the scanner via the scanner driver to scan the document.
(v) The scanner transmits the image data of the document to the terminal.

本実施形態では、(i)の接続テストにおいて、接続ツールが複数のスキャナとの通信確認を並行に行うことが可能なスキャナドライバについて説明する。   In the present embodiment, a scanner driver that enables the connection tool to check communication with a plurality of scanners in parallel in the connection test (i) will be described.

端末は、例えばPC、タブレット端末、スマートフォン、PDA(Personal Digital Assistant)、携帯電話など、広義の情報処理装置である。また、情報処理装置としての機能を備えていればその呼称はどのようなものでもよい。   The terminal is an information processing device in a broad sense such as a PC, a tablet terminal, a smartphone, a PDA (Personal Digital Assistant), or a mobile phone. The name may be any name as long as it has a function as an information processing apparatus.

スキャナは、原稿を撮像素子で撮影して原稿の画像データを作成する。例えば、副走査方向に移動するキャリッジに搭載された露光ランプと光学系を有し、露光ランプで原稿を主走査方向に露光した際の反射光を光学系で集光してCCDに結象させる。CCDは反射光を光電変換してアナログデータを生成する。アナログデータはA/D変換により例えば8bitの階調のデジタルの画像データに変換される。なお、カラーの原稿をカラーで読み取る場合、RGB各色のLEDライトを順番に点灯するか、又は、RGB各色のカラーフィルタを介して原稿を読み取る。   The scanner creates image data of a document by photographing the document with an image sensor. For example, it has an exposure lamp and an optical system mounted on a carriage that moves in the sub-scanning direction, and the reflected light when the original is exposed in the main scanning direction by the exposure lamp is condensed by the optical system and is imaged on the CCD. . The CCD generates analog data by photoelectrically converting the reflected light. The analog data is converted into digital image data of, for example, 8-bit gradation by A / D conversion. Note that when reading a color document in color, the RGB LED lights are sequentially turned on, or the document is read through RGB color filters.

スキャナは、スキャナの機能のみを有している装置である必要はなく、原稿の読み取り機能を有する装置であればよい。例えば、複写機、FAX装置、プリンター、又は、MFP(Multi Function Peripheral)などと呼ばれていても本実施形態のスキャナに含まれ得る。スキャナは特許請求の範囲の画像データ出力装置の一例である。   The scanner does not need to be an apparatus having only the scanner function, and may be an apparatus having an original reading function. For example, even though it is called a copier, a FAX apparatus, a printer, or an MFP (Multi Function Peripheral), it can be included in the scanner of this embodiment. The scanner is an example of an image data output device in claims.

ネットワークは、LAN、又は、複数のLANがルータなどを介して接続されたWANである。また、インターネットまで含めてネットワークを称する場合がある。ネットワークは有線で構築されていてもよいし、一部又は全てが無線LAN(IEEE802.11b/a/g/n等)で構築されていてもよい。また、無線LANのアドホックモードで、スキャナの数だけ1対1通信していてもよい。   The network is a LAN or a WAN in which a plurality of LANs are connected via a router or the like. In some cases, the network includes the Internet. The network may be constructed in a wired manner, or part or all of the network may be constructed in a wireless LAN (IEEE802.11b / a / g / n etc.). Further, one-to-one communication may be performed for the number of scanners in the ad hoc mode of the wireless LAN.

図4は、端末のハードウェア構成図の一例を示す。端末200は、バスに接続された、CPU301、ROM302、RAM303、HDD304、ディスプレイ320が接続されたグラフィックボード305、キーボード・マウス306、メディアドライブ307、及び、ネットワーク通信部308を有する。CPU301はHDD304に記憶されたプログラム310をRAM303に展開して実行し、各部品を制御して入出力を行ったり、データの加工を行ったりする。ROM302にはBIOSやOSをRAM303に読み出すプログラムが記憶されている。   FIG. 4 shows an example of a hardware configuration diagram of the terminal. The terminal 200 includes a CPU 301, a ROM 302, a RAM 303, an HDD 304, a graphic board 305 to which a display 320 is connected, a keyboard / mouse 306, a media drive 307, and a network communication unit 308 connected to a bus. The CPU 301 expands and executes the program 310 stored in the HDD 304 in the RAM 303, and controls each component to perform input / output and process data. The ROM 302 stores a program for reading the BIOS and OS into the RAM 303.

HDD304は、不揮発性のメモリであればよくSSD(Solid State Drive)などでもよい。HDD304はOS、プログラム310(UI画面、接続ツール、及び、スキャナドライバ)を記憶している。UI画面、接続ツール、及び、スキャナドライバはセットでインストールされることが多いが、別々のプログラムとして配布されてもよい。なお、OSとしては、Windows(登録商標)系、LINUX(登録商標)、UNIX(登録商標)などがある。ディスプレイ320にはプログラムが指示し、グラフィックボード305が作成したGUI画面が表示される。   The HDD 304 may be a non-volatile memory, and may be an SSD (Solid State Drive) or the like. The HDD 304 stores an OS and a program 310 (UI screen, connection tool, and scanner driver). The UI screen, connection tool, and scanner driver are often installed as a set, but may be distributed as separate programs. The OS includes Windows (registered trademark), LINUX (registered trademark), UNIX (registered trademark), and the like. The display 320 displays a GUI screen generated by the graphic board 305 as instructed by the program.

キーボード・マウス306はユーザの操作を受け付ける入力装置である。メディアドライブ307はコンパクトディスク、DVD及びブルーレイディスクなどの光学メディアにデータを読み書きする。また、フラッシュメモリなどのメモリカードにデータを読み書きしてもよい。   A keyboard / mouse 306 is an input device that receives user operations. The media drive 307 reads and writes data to and from optical media such as compact discs, DVDs, and Blu-ray discs. Further, data may be read from and written to a memory card such as a flash memory.

ネットワーク通信部308は、例えばLANに接続するためのイーサネット(登録商標)カードである。TCP/IP(UDP/IP)やアプリケーション層のプロトコルの処理はOSやプログラム310が行う。アプリケーション層のプロトコルは各種あるが、クラウドサービスに適したプロトコルを含め一般的なプロトコルに対応している(例えば、HTTP、FTP、SNMP(Simple Network Management Protocol)、SMB(Server Message Block)等)。   The network communication unit 308 is, for example, an Ethernet (registered trademark) card for connecting to a LAN. The OS and program 310 perform TCP / IP (UDP / IP) and application layer protocol processing. There are various application layer protocols, but they are compatible with general protocols including those suitable for cloud services (for example, HTTP, FTP, SNMP (Simple Network Management Protocol), SMB (Server Message Block), etc.).

プログラム310は、インストール可能な形式又は実行可能な形式のファイルで、コンピュータで読み取り可能な記録メディアに記録して配布される。また、プログラム310は、不図示のサーバからインストール可能な形式又は実行可能な形式のファイルで配布される。   The program 310 is a file in an installable or executable format, and is distributed by being recorded on a computer-readable recording medium. The program 310 is distributed in a file that can be installed or executed from a server (not shown).

〔ソフトウェア構成〕
図5は、ソフトウェア的な構成例を説明する図の一例である。接続ツール11及びUI画面15はAPI(Application Interface)13を介してスキャナドライバ14を操作する。UI画面は、ユーザが画像データを取得するためのUIを提供する。
[Software configuration]
FIG. 5 is an example of a diagram illustrating an exemplary software configuration. The connection tool 11 and the UI screen 15 operate the scanner driver 14 via an API (Application Interface) 13. The UI screen provides a UI for the user to acquire image data.

スキャナドライバ14のAPIはTWAIN(Technology Without Any Interesting Name)という規格が広く知られている。画像処理アプリなどのアプリケーションが直接、スキャナ100を制御しようとすると、アプリケーションはスキャナ100のメーカが作成したスキャナドライバ14と通信する必要がある。   A standard called TWAIN (Technology Without Any Interesting Name) is widely known as the API of the scanner driver 14. When an application such as an image processing application directly controls the scanner 100, the application needs to communicate with the scanner driver 14 created by the manufacturer of the scanner 100.

しかし、アプリケーションとスキャナ100を同一メーカが作成するとは限らないため、アプリケーションのメーカはスキャナドライバ14を意識してアプリケーションを作成する必要が生じる。この場合、アプリケーションは各種存在するスキャナ100によって仕様が変更される必要が生じてしまうため、不便なものとなる。そこで、TWAINでは、アプリケーション側とスキャナドライバ14側にそれぞれAPI13が策定されており、任意のアプリケーションとスキャナドライバ(スキャナ)の組み合わせでスキャナ100を制御することを実現している。   However, since the application and the scanner 100 are not necessarily created by the same manufacturer, the application manufacturer needs to be aware of the scanner driver 14 and create the application. In this case, the application needs to be changed by various scanners 100, which is inconvenient. Therefore, in TWAIN, APIs 13 are formulated on the application side and the scanner driver 14 side, respectively, and the scanner 100 is controlled by a combination of an arbitrary application and a scanner driver (scanner).

接続ツール、UI画面15、及び、スキャナドライバはスキャナメーカ側が作成して提供する。これに対し、任意の画像処理アプリはTWAINに対応していればスキャナを使用できる。また、画像処理アプリがUI画面15を介してスキャナを使用できるようになっている。以下では、UI画面15が単体で起動するか、画像処理アプリ12から起動されるかを問わずに説明する。   The connection tool, UI screen 15, and scanner driver are created and provided by the scanner manufacturer. On the other hand, any image processing application can use a scanner as long as it supports TWAIN. Further, the image processing application can use the scanner via the UI screen 15. In the following, description will be made regardless of whether the UI screen 15 is activated alone or from the image processing application 12.

UI画面15を起動させるとスキャナドライバ14も起動し、接続ツール11を起動させるとスキャナドライバ14も起動する。   When the UI screen 15 is activated, the scanner driver 14 is activated, and when the connection tool 11 is activated, the scanner driver 14 is also activated.

なお、API13はTWAINの他に、WIA(Windows Image Acquisition)などでもよく、スキャナやデジタルカメラなどの画像作成装置のデバイスドライバとアプリケーションのAPIであればよい。   In addition to TWAIN, the API 13 may be WIA (Windows Image Acquisition) or the like, and may be a device driver of an image creation apparatus such as a scanner or a digital camera and an application API.

接続ツール11は、UI(User Interface)を提供すると共にユーザからの操作を受け付け、OS21やAPI13に処理を要求する。例えば、OS21を介してネットワーク300に接続された機器を検索したり、API13を介して接続限定したりする。また、接続ツール11は接続限定したスキャナ100のスキャナ情報(IPアドレス、ホスト名、認証情報)をレジストリに記憶させる(登録する)。   The connection tool 11 provides a user interface (UI) and receives an operation from the user, and requests the OS 21 and API 13 for processing. For example, a device connected to the network 300 via the OS 21 is searched, or connection is limited via the API 13. Further, the connection tool 11 stores (registers) the scanner information (IP address, host name, authentication information) of the scanner 100 for which connection is limited in the registry.

接続ツール11は、検索部31(特許請求の範囲の通信情報取得手段の一例である)、認証情報受付部32(特許請求の範囲の認証情報受け付け手段の一例である)及び表示部33を有する。検索部31は、ネットワークに接続されているスキャナを検索しホスト名とIPアドレスの少なくとも一方を取得する。認証情報受付部32は、後述するUI画面からユーザが入力した認証情報(ユーザ名、パスワード)を受け付ける。表示部33は、スキャナの状態を表示する。   The connection tool 11 includes a search unit 31 (an example of a communication information acquisition unit in claims), an authentication information reception unit 32 (an example of an authentication information reception unit in claims), and a display unit 33. . The search unit 31 searches for a scanner connected to the network and acquires at least one of a host name and an IP address. The authentication information receiving unit 32 receives authentication information (user name, password) input by the user from a UI screen described later. The display unit 33 displays the status of the scanner.

認証ライブラリについては後述するが、認証ライブラリは、認証情報構造体ポインタを有しており、スキャナドライバがスキャナと通信して取得した各認証情報の保存場所を管理している。   Although the authentication library will be described later, the authentication library has an authentication information structure pointer, and manages the storage location of each authentication information acquired by the scanner driver by communicating with the scanner.

〔スキャナドライバの機能〕
図6(a)は、スキャナドライバのうち状態確認に使用される機能のクラス図を説明する図の一例である。状態確認の機能は、「複数スキャナ制御クラス」41、「スキャナ1台制御クラス」42、「認証情報制御クラス」43、及び、「ネットワーク通信クラス」44の4クラスによって提供される。
[Scanner Driver Functions]
FIG. 6A is an example of a diagram illustrating a class diagram of functions used for status confirmation in the scanner driver. The status confirmation function is provided by four classes of “multiple scanner control class” 41, “one scanner control class” 42, “authentication information control class” 43, and “network communication class” 44.

「複数スキャナ制御クラス」は「スキャナ1台制御クラス」と集約の関係にあり、「スキャナ1台制御クラス」は「認証情報制御クラス」と集約の関係にあり、「認証情報制御クラス」は「ネットワーク通信クラス」と集約の関係にある。なお、集約とは、オブジェクト指向プログラミングにおける用語で、あるクラスオブジェクトがもう一方のクラスオブジェクトと「全体と一部の関係にある(has-aの関係)」ことを示す。一般にクラスBの集約であるクラスAは、クラスBのメソッドを呼び出すこと、すなわちクラスBの機能を使用することができる。   The “multiple scanner control class” has an aggregation relationship with the “single scanner control class”, the “single scanner control class” has an aggregation relationship with the “authentication information control class”, and the “authentication information control class” has “ Network communication class ”and aggregation relationship. Aggregation is a term used in object-oriented programming and indicates that a certain class object is “partially related to the whole (has-a relationship)”. Class A, which is generally an aggregation of class B, can call methods of class B, that is, use the functions of class B.

したがって、「複数スキャナ制御クラス」は「スキャナ1台制御クラス」の機能を使用し、「スキャナ1台制御クラス」は「認証情報制御クラス」の機能を使用し、「認証情報制御クラス」は「ネットワーク通信クラス」の機能を使用することができる。このような、関係は、単に一方が他方の機能を有すると表現できる。
「複数スキャナ制御クラス」から生成される「複数スキャナ制御インスタンス」は1つであり、「スキャナ1台制御クラス」から生成される「スキャナ1台制御インスタンス」は0以上である。具体的には、ネットワーク上で検索にヒットしたIPアドレス又はホスト名が既知のスキャナの台数だけ生成される。IPアドレス又はホスト名が既知のスキャナを、以下、単に「スキャナの数だけ」と称する。同様に、「認証情報制御クラス」から生成される「認証情報制御インスタンス」はスキャナの数だけ生成される。「ネットワーク通信クラス」から生成される「ネットワーク通信インスタンス」は1つである。
Therefore, the “multiple scanner control class” uses the function of “one scanner control class”, the “single scanner control class” uses the function of “authentication information control class”, and the “authentication information control class” The function of “network communication class” can be used. Such a relationship can be expressed simply as one having the function of the other.
There is one “multiple scanner control instance” generated from “multiple scanner control class”, and “one scanner control instance” generated from “one scanner control class” is 0 or more. More specifically, the number of scanners whose IP addresses or host names hit the search on the network are known is generated. Hereinafter, a scanner whose IP address or host name is known is simply referred to as “the number of scanners”. Similarly, “authentication information control instances” generated from the “authentication information control class” are generated by the number of scanners. There is one “network communication instance” generated from the “network communication class”.

「スキャナ1台制御クラス」はメンバとして、"スキャナの名称"、"IPアドレス"、"ホスト名"、及び、"スキャナの状態"を有する。"スキャナの状態"は、「電源が入っていない」、「認証情報が異なる」、「使用できない」などのスキャナの状態を表す情報である。したがって、「スキャナ1台制御インスタンス」は、これらのメンバの具体的な値を保持する。   The “one scanner control class” has “scanner name”, “IP address”, “host name”, and “scanner status” as members. The “scanner status” is information indicating the scanner status such as “power is not turned on”, “authentication information is different”, “cannot be used”, and the like. Therefore, the “one scanner control instance” holds specific values of these members.

「認証情報制御クラス」はメンバとして、"認証強度"、"ユーザー名"、"パスワード"などの認証情報を有する。したがって、「認証情報制御インスタンス」は、これらのメンバの具体的な値を保持する。認証強度とは、認証アルゴリズムや暗号鍵のビット長である。   The “authentication information control class” has authentication information such as “authentication strength”, “user name”, and “password” as members. Therefore, the “authentication information control instance” holds specific values of these members. The authentication strength is the bit length of the authentication algorithm or encryption key.

「複数スキャナ制御インスタンス」はスキャナドライバの起動により生成されるインスタンスであり、定常的に存在している。また、「複数スキャナ制御インスタンス」はAPI(つまりアプリケーション側)とのインタフェースとなるインスタンスである。   The “multiple scanner control instance” is an instance generated by the activation of the scanner driver and exists constantly. The “multiple scanner control instance” is an instance that serves as an interface with the API (that is, the application side).

「複数スキャナ制御インスタンス」は「ネットワーク通信インスタンス」を1つだけ生成する。また、「複数スキャナ制御インスタンス」は「スキャナ1台制御インスタンス」をスキャナの数だけ作成する。各「スキャナ1台制御インスタンス」はそれぞれが1つの「認証情報制御インスタンス」を作成する。したがって、「認証情報制御インスタンス」の数もスキャナの数と同じである。   The “multiple scanner control instance” generates only one “network communication instance”. In addition, “multiple scanner control instances” create “one scanner control instance” as many as the number of scanners. Each “one scanner control instance” creates one “authentication information control instance”. Therefore, the number of “authentication information control instances” is the same as the number of scanners.

図6(b)はクラスから生成されたインスタンス間の関係を模式的に説明する図の一例である。図6(b)はスキャナの数が4つである場合を想定している。   FIG. 6B is an example of a diagram schematically illustrating the relationship between instances generated from classes. FIG. 6B assumes a case where the number of scanners is four.

「複数スキャナ制御インスタンス」41Iは、各「スキャナ1台制御インスタンス」42Iを用いてスキャナ情報/状態取得処理を実行する。各「スキャナ1台制御インスタンス」は、「認証情報制御インスタンス」43Iを用いて認証処理+情報/状態取得を行う。「認証情報制御インスタンス」は1つしかない「ネットワーク通信インスタンス」44Iを用いてスキャナと通信すると共に、認証処理を行いスキャナの状態を取得する。各「スキャナ1台制御インスタンス」は「認証情報制御インスタンス」が取得したスキャナの状態によりメンバを更新する。   The “multiple scanner control instance” 41I executes the scanner information / status acquisition process using each “one scanner control instance” 42I. Each “one scanner control instance” performs authentication processing + information / status acquisition using an “authentication information control instance” 43I. The “authentication information control instance” communicates with the scanner using only one “network communication instance” 44I, and also performs authentication processing to acquire the scanner status. Each “one scanner control instance” updates the member according to the scanner status acquired by the “authentication information control instance”.

なお、スキャナの数だけ作成される「スキャナ1台制御インスタンス」と「認証情報制御インスタンス」の数は、RAMなどのメモリを占有する実体なので、現実的にはメモリ容量の制約を受けるが、本実施形態の端末はスキャナの数のインスタンスを作成可能な充分なメモリ容量を有している。   Note that the number of “one scanner control instance” and “authentication information control instance” created as many as the number of scanners is an entity that occupies a memory such as a RAM. The terminal of the embodiment has a sufficient memory capacity capable of creating an instance of the number of scanners.

「スキャナ1台制御インスタンス」と「認証情報制御インスタンス」はマルチスレッドとして実行される。マルチタスクをサポートするOS21は、異なるアプリケーションを1つのタスクとして、所定時間毎にアプリケーションを切り替えることで、複数のアプリケーションを同時並行的に実行しているように見せる。マルチスレッドは、ある1つのアプリケーションがマルチタスクを実現する手法である。すなわち、所定数の「スキャナ1台制御インスタンス」と「認証情報制御インスタンス」は同時並行的に実行される。このコードの記述例については後述する。   The “one scanner control instance” and the “authentication information control instance” are executed as multi-threads. The OS 21 that supports multitasking makes different applications appear as one task, and the applications are switched at predetermined time intervals so that a plurality of applications are executed concurrently. Multithreading is a technique in which a single application realizes multitasking. That is, a predetermined number of “one scanner control instance” and “authentication information control instance” are executed concurrently. A description example of this code will be described later.

「スキャナ1台制御インスタンス」1つに対して「認証情報制御インスタンス」が保持されるので、スキャナそれぞれで認証情報が異なる場合においても、容易にそれぞれの認証情報を管理することが可能である。   Since “authentication information control instance” is held for one “scanner control instance”, even when the authentication information is different for each scanner, it is possible to easily manage each authentication information.

また、「ネットワーク通信インスタンス」は、マルチスレッドに対応したAPI13を使用するため、認証処理をマルチスレッド化することができる。認証情報などは機器により異なるため、スキャナ台数分のインスタンスを生成する必要があるが、ネットワーク通信に関しては、スキャナの種類によらず共通であるため、唯一のオブジェクトを生成するように実装している。「認証情報制御インスタンス」は「ネットワーク通信インスタンス」から、スキャナへネットワーク経由での通信を行い、情報や状態を取得する。   In addition, since the “network communication instance” uses the API 13 that supports multi-threading, authentication processing can be multi-threaded. Since the authentication information differs depending on the device, it is necessary to generate as many instances as the number of scanners. However, since network communication is common regardless of the type of scanner, it is implemented to generate only one object. . The “authentication information control instance” communicates from the “network communication instance” to the scanner via the network, and acquires information and status.

〔認証処理ライブラリ〕
図7は、スキャナドライバと認証ライブラリ16の構造について説明する図の一例である。認証ライブラリ16は認証処理に使用される各認証API25及び認証情報構造体ポインタ26を有している。認証情報構造体ポインタ(認証情報を保持する構造体のポインタ)はグローバル変数であるため、各インスタンスがアクセス可能である。しかし、マルチスレッド環境下では、構造体のメンバの変更などが排他制御なしに実施されてしまい、アクセスバイオレーションなどが発生するおそれがある。
[Authentication processing library]
FIG. 7 is an example of a diagram for explaining the structure of the scanner driver and the authentication library 16. The authentication library 16 has authentication APIs 25 and authentication information structure pointers 26 used for authentication processing. Since the authentication information structure pointer (the pointer of the structure holding authentication information) is a global variable, each instance is accessible. However, in a multi-thread environment, a change in a structure member or the like is performed without exclusive control, and access violation may occur.

そこで、本実施形態では、認証ライブラリ16で保持している認証情報構造体ポインタ26と同様の情報を、各認証情報制御インスタンスが保持することとした。認証情報制御インスタンスは、生成されるとスレッドとして実行される前に認証ライブラリ16からポインタ(特許請求の範囲の記憶領域指示情報の一例である)を取得して保持しておく。   Therefore, in this embodiment, each authentication information control instance holds the same information as the authentication information structure pointer 26 held in the authentication library 16. When the authentication information control instance is generated, it acquires a pointer (which is an example of storage area instruction information in claims) from the authentication library 16 and holds it before being executed as a thread.

そして、本実施形態のネットワーク通信インスタンスは、認証ライブラリ16の各認証API25を介して認証情報構造体ポインタ26へアクセスすることが禁止されている。   The network communication instance of this embodiment is prohibited from accessing the authentication information structure pointer 26 via each authentication API 25 of the authentication library 16.

また、認証情報制御インスタンスは、ネットワーク通信インスタンスを使用して認証処理を行う場合、認証ライブラリ16の各認証API25を実行せずに、認証情報制御インスタンス自身の認証情報ポインタを操作する。このように、認証ライブラリ16及び認証情報制御インスタンスの動作を従来に対し変更することで、認証処理の排他制御を可能とした。また、アクセスバイオレーションが発生することなく、安定した環境でマルチスレッドの認証処理ができるようになる。   Further, when performing authentication processing using a network communication instance, the authentication information control instance operates the authentication information pointer of the authentication information control instance itself without executing each authentication API 25 of the authentication library 16. As described above, the operations of the authentication library 16 and the authentication information control instance are changed from the conventional ones, thereby enabling the exclusive control of the authentication process. In addition, multi-thread authentication processing can be performed in a stable environment without occurrence of access violation.

なお、認証情報制御インスタンスは、各スキャナの認証情報を保持、制御するという役割のほかに、認証処理ライブラリの初期化(開始)と終了化を行うという役割を持つ。各スキャナの認証情報制御インスタンスの実行数はスキャナ台数に比例するが、初期化と終了化の実行数は、スキャナ台数に関わらず1度ずつである必要がある。   The authentication information control instance has a role of initializing (starting) and ending the authentication processing library in addition to the role of holding and controlling the authentication information of each scanner. Although the number of executions of the authentication information control instance of each scanner is proportional to the number of scanners, the number of executions of initialization and finalization needs to be one time regardless of the number of scanners.

このため、初期化、終了化処理をstatic関数として使用することで、認証情報制御インスタンスを生成せずとも初期化、終了化を実施できるようにした。このようなクラス構成の工夫により、初期化、終了化を行う特別な認証情報制御インスタンスを生成する必要がなくなり、各インスタンスの管理が非常に容易となった。   For this reason, initialization and termination processing can be performed without generating an authentication information control instance by using initialization and termination processing as static functions. With such a class configuration, it is no longer necessary to generate a special authentication information control instance for initialization and termination, and management of each instance becomes very easy.

〔記述例〕
図8(a)は、ネットワーク通信クラスの記述例を示す図である。ネットワーク通信クラスのアクセス指定子をPrivateに設定することで、このクラスのインスタンスをスキャナドライバが作成することができない。したがって、ネットワーク通信インスタンスを1つだけに制限できる。1つだけのネットワーク通信インスタンスは、アクセス指定子がpublicの中に設定される。これにより、「認証情報制御インスタンス」は1つだけのネットワーク通信インスタンスにアクセスできる。
[Description example]
FIG. 8A is a diagram illustrating a description example of the network communication class. By setting the access specifier of the network communication class to Private, the scanner driver cannot create an instance of this class. Therefore, the network communication instance can be limited to only one. For one network communication instance, the access specifier is set in public. Thereby, the “authentication information control instance” can access only one network communication instance.

図8(b)は、「スキャナ1台制御クラス」「認証情報制御クラス」、インスタンスの生成、スレッドの記述例を示す図である。「スキャナ1台制御クラス」にはメンバ(スキャナの名称、 IPアドレス、ホスト名、スキャナの状態)が定義され、「認証情報制御クラス」にはメンバ(認証強度、ユーザ名、パスワード)が定義される。   FIG. 8B is a diagram showing a description example of “one scanner control class”, “authentication information control class”, instance generation, and thread description. Members (scanner name, IP address, host name, scanner status) are defined in the “one scanner control class”, and members (authentication strength, user name, password) are defined in the “authentication information control class” The

メイン関数内では、「スキャナ1台制御インスタンス」の生成が256回繰り返され、各「スキャナ1台制御インスタンス」を生成する。また、各インスタンスは64個が同時に実行されるスレッドとして記述される。   In the main function, the generation of “one scanner control instance” is repeated 256 times to generate each “one scanner control instance”. Each instance is described as a thread in which 64 instances are executed simultaneously.

なお、図8はC++というプログラム言語で記述されているが、本実施形態で説明した構造を備えるオブジェクト指向言語であれば、どのような言語で記述されていてもよい。   8 is described in a programming language called C ++, it may be described in any language as long as it is an object-oriented language having the structure described in the present embodiment.

〔画面例〕
図9は、端末のディスプレイに表示されたUIの一例を示す図である。本実施形態のスキャナドライバは機種が異なる複数のスキャナに共通である。
[Screen example]
FIG. 9 is a diagram illustrating an example of a UI displayed on the display of the terminal. The scanner driver of this embodiment is common to a plurality of scanners of different models.

図9(a)は、接続ツールの画面例を示す図の一例である。接続ツールは、画像処理アプリから起動させることもできるし、単体で起動させることもできる。   FIG. 9A is an example of a diagram illustrating a screen example of the connection tool. The connection tool can be activated from the image processing application or can be activated alone.

接続ツールは、主要な機能として、ドライバー選択欄501、スキャナ検索ボタン502、直接入力欄505、及び、認証情報欄503を有している。ドライバー選択欄501は、端末200にインストールされているスキャナドライバを選択するボタンである。   The connection tool has a driver selection field 501, a scanner search button 502, a direct input field 505, and an authentication information field 503 as main functions. A driver selection field 501 is a button for selecting a scanner driver installed in the terminal 200.

スキャナ検索ボタン502は、ネットワークのスキャナを選択するためのボタンである。スキャナ検索により図9(b)の検索結果画面が表示される。   A scanner search button 502 is a button for selecting a scanner on the network. The search result screen of FIG. 9B is displayed by the scanner search.

なお、ユーザーは、直接入力欄505にIPアドレス又はホスト名を直接、入力することもできる。これにより、IPアドレス又はホスト名が分かっている場合は、検索が不要になり、また、セグメントが異なるスキャナ100を接続限定することが可能となる。   Note that the user can also directly enter the IP address or host name in the direct entry field 505. As a result, when the IP address or host name is known, the search becomes unnecessary, and the connection of the scanners 100 having different segments can be limited.

認証情報欄503は、スキャナ100がユーザーを認証する場合に、認証情報(パスワード、ユーザー名)を設定するための欄である。認証情報は、例えば、アカウント名、パスワード、及び、認証アルゴリズムである。   The authentication information column 503 is a column for setting authentication information (password, user name) when the scanner 100 authenticates a user. The authentication information is, for example, an account name, a password, and an authentication algorithm.

スキャナ検索ボタン502が押下されると、検索部31がスキャナを検索する。スキャナの検索方法は公知であるが、例えば以下のような手順で表示する。同じセグメント内の機器はネットワークアドレスが同じなので、各機器が取り得るIPアドレスの範囲を特定できる。例えば、ネットワークアドレスが「192.168.1.0/24」の場合、「192.168.1.0」〜「192.168.1.255」の如くである。したがって、検索部31は、「192.168.1.255」を宛先とするブロードキャストでpingコマンドを送信し、応答があるか否かによりIPアドレスと存在する機器を検索できる。   When the scanner search button 502 is pressed, the search unit 31 searches for a scanner. The scanner search method is well known, but for example, the display is performed in the following procedure. Since devices in the same segment have the same network address, the range of IP addresses that each device can take can be specified. For example, when the network address is “192.168.1.0/24”, it is like “192.168.1.0” to “192.168.1.255”. Therefore, the search unit 31 can search for an IP address and an existing device depending on whether or not there is a response by transmitting a ping command by broadcast with “192.168.1.255” as a destination.

なお、本実施形態では、端末200と同じセグメントのスキャナ100を検索することとするが、別のセグメントのネットワークアドレスが既知であれば、別のセグメントのスキャナ100を検索することができる。   In this embodiment, the scanner 100 of the same segment as the terminal 200 is searched. However, if the network address of another segment is known, the scanner 100 of another segment can be searched.

pingコマンドに応答した機器のIPアドレスはARPテーブルに登録されるので、ARPテーブルに同じネットワークアドレスに存在する全ての機器のIPアドレスが登録されている。なお、スキャナ100のホスト名は、pingコマンドで問い合わせることもできるし、DNSサーバに問い合わせることもできる。   Since the IP addresses of the devices responding to the ping command are registered in the ARP table, the IP addresses of all devices existing at the same network address are registered in the ARP table. The host name of the scanner 100 can be inquired using a ping command, or can be inquired of a DNS server.

存在する機器のIPアドレスが判明すれば、検索部31は、SNMPによりスキャナドライバ14が対応するスキャナ100を特定することができる。SNMPではMIBというオブジェクトツリーの情報を提供している。MIBには機器の名称、ホスト名などの他、スキャナメーカが独自に定義した情報が格納されている。なお、本実施形態ではMIBにスキャナ100の認証情報が格納されているものとする。   If the IP address of the existing device is found, the search unit 31 can specify the scanner 100 to which the scanner driver 14 corresponds by SNMP. SNMP provides object tree information called MIB. In addition to the device name and host name, the MIB stores information uniquely defined by the scanner manufacturer. In this embodiment, it is assumed that authentication information of the scanner 100 is stored in the MIB.

したがって、検索部31は応答した機器の名称を問い合わせ、スキャナドライバ14が対応したスキャナ名の場合に検索にヒットしたと判定する。   Therefore, the search unit 31 inquires about the name of the responding device, and determines that the search is hit when the scanner driver 14 has a corresponding scanner name.

また、スキャナドライバは、検索に伴い、検索にヒットした複数の機器と一度に接続テストすることができる。または、接続テストボタンを接続ツールに設けてもよい。   In addition, the scanner driver can perform a connection test at once with a plurality of devices that have been hit by the search. Alternatively, a connection test button may be provided on the connection tool.

図9(b)は、検索結果画面の一例を示す図である。検索結果画面は、スキャナ名欄511、IPアドレス・ホスト名欄512、状態表示欄516、選択ボックス513、及び、再検索ボタン514を有している。スキャナ名欄511には、検索部が検索したスキャナのスキャナ名が表示される。IPアドレス・ホスト名欄512には表示中のスキャナのIPアドレス又はホスト名が表示される。状態表示欄516は、検索したスキャナの状態を表示する欄である。状態には、使用可、使用中、認証不可、電源オフなどがある。この状態は、スキャナ1台制御インスタンスが取得したものである。選択ボックスは、ユーザーが接続限定するスキャナを選択するためのボタンである。再検索ボタン514は、再検索するためのボタンである。   FIG. 9B shows an example of the search result screen. The search result screen has a scanner name column 511, an IP address / host name column 512, a status display column 516, a selection box 513, and a re-search button 514. The scanner name column 511 displays the scanner name of the scanner searched by the search unit. The IP address / host name column 512 displays the IP address or host name of the scanner being displayed. The status display column 516 is a column for displaying the status of the searched scanner. The status includes usable, in use, authentication not possible, and power off. This state is acquired by the control instance of one scanner. The selection box is a button for the user to select a scanner for connection limitation. The re-search button 514 is a button for re-searching.

検索結果画面には、このように検索されたネットワークに存在する全ての(又は1台以上の)スキャナが、スキャナ名等と共に表示され、ユーザーは1度に複数のスキャナと接続限定することができる。   In the search result screen, all (or one or more) scanners existing in the network searched in this way are displayed together with the scanner name and the like, and the user can limit connection to a plurality of scanners at a time. .

〔動作手順〕
図10は、本実施形態のスキャナドライバの動作手順を示すシーケンス図の一例を示す。大きな流れは以下のようになる。
I.ネットワーク通信インスタンスの生成
II.スキャナ台数N個分のスキャナ1台制御インスタンス及び認証情報制御インスタンスの生成
III.マルチスレッドによる所定数のスキャナのスキャナ情報/状態取得
以下では、N=256台のスキャナ、最大のマルチスレッド数が64の環境であるとして説明する。最大のマルチスレッド数とは、OS21が推奨する値で必ずしも64より多いマルチスレッドの同時実行が困難であるわけではない。OS21の種類・バージョン、CPUの能力、及び、メモリ量などにより変わりうるものである。
[Operation procedure]
FIG. 10 shows an example of a sequence diagram showing an operation procedure of the scanner driver of this embodiment. The big flow is as follows.
I. Creating a network communication instance
II. Generation of one scanner control instance and authentication information control instance for N scanners
III. In the following description, it is assumed that N = 256 scanners and the maximum number of multithreads is 64. The maximum number of multithreads is a value recommended by the OS 21 and does not necessarily make it difficult to simultaneously execute more than 64 multithreads. This may vary depending on the type / version of the OS 21, the CPU capability, the amount of memory, and the like.

I.ネットワーク通信インスタンスの生成
S1:認証情報受付部32が認証情報の入力を受け付ける。
S2:検索部31がネットワークのスキャナを検索する。
S3:接続ツール11はユーザの操作を受け付けて、API13に対し接続テストを要求する。この時、接続ツールはIPアドレス(及びホスト名)・認証情報・スキャナ情報/状態を取得するスキャナの台数N(256)をAPIに送出する。
S4:API13は複数スキャナ制御インスタンスにネットワーク通信インスタンスの生成を要求する。
S5:複数スキャナ制御インスタンスは、1つのネットワーク通信インスタンスを生成する。図9に示したように、複数のネットワーク通信インスタンスが生成されることはない。
I. Creating a network communication instance
S1: The authentication information receiving unit 32 receives input of authentication information.
S2: The search unit 31 searches for a network scanner.
S3: The connection tool 11 receives a user operation and requests a connection test from the API 13. At this time, the connection tool sends an IP address (and host name), authentication information, and the number N (256) of scanners for acquiring scanner information / status to the API.
S4: The API 13 requests the multiple scanner control instance to generate a network communication instance.
S5: The multiple scanner control instance generates one network communication instance. As shown in FIG. 9, a plurality of network communication instances are not generated.

II.スキャナ台数N個分のスキャナ1台制御インスタンス及び認証情報制御インスタンスの生成
S6:API13は、「複数スキャナ制御インスタンス」にスキャナ台数N個分の「スキャナ1台制御インスタンス」の生成を要求する。
S7:「複数スキャナ制御インスタンス」はN個の「スキャナ1台制御インスタンス」を生成する。
S8:生成された「スキャナ1台制御インスタンス」は、「認証情報制御インスタンス」を生成する。
S9:生成された「認証情報制御インスタンス」は、「ネットワーク通信インスタンス」のメンバに自分を登録する。これにより、ネットワーク通信インスタンスは認証情報制御インスタンスを認識する。APIは生成されたスキャナ1台制御インスタンス、認証情報制御インスタンスを把握する。
S10:インスタンスの生成が完了したら、API13は全ての「スキャナ1台制御インスタンス」に、認証情報、スキャナの名称、及び、IPアドレス又はホスト名の少なくとも一方を設定する。
S11:API13は「複数スキャナ制御インスタンス」のメンバに、動的に256個の「スキャナ1台制御インスタンス」を登録する。
II. Generation of one scanner control instance and authentication information control instance for N scanners
S6: The API 13 requests the “multiple scanner control instances” to generate “one scanner control instance” for N scanners.
S7: “Multiple Scanner Control Instance” generates N “One Scanner Control Instance”.
S8: The generated “single scanner control instance” generates an “authentication information control instance”.
S9: The generated “authentication information control instance” registers itself as a member of the “network communication instance”. Thereby, the network communication instance recognizes the authentication information control instance. The API grasps the generated one scanner control instance and authentication information control instance.
S10: When the generation of the instance is completed, the API 13 sets at least one of the authentication information, the scanner name, and the IP address or host name in all “one scanner control instance”.
S11: The API 13 dynamically registers 256 “one scanner control instance” as a member of “multiple scanner control instances”.

III.マルチスレッドによる所定数のスキャナのスキャナ情報/状態取得
S12:API13は「複数スキャナ制御インスタンス」に複数のスキャナのスキャナ情報/状態の取得を要求する。
S13:「複数スキャナ制御インスタンス」は、「スキャナ1台制御インスタンス」にスキャナのスキャナ情報/状態の取得を要求する。
S14:「スキャナ1台制御インスタンス」は認証情報を、「認証情報制御インスタンス」に設定する。
S15:「スキャナ1台制御インスタンス」は、スキャナ状態/状態取得を行う。
S16:「スキャナ1台制御インスタンス」は「認証情報制御インスタンス」に対し、認証処理とスキャナ情報/状態取得を要求する。
S17:「認証情報制御インスタンス」は「ネットワーク通信インスタンス」に対しスキャナと通信させ、認証処理、スキャナ情報/状態取得を行う。すなわち、認証情報をスキャナに送信し、スキャナから認証結果を取得する。「スキャナ1台制御インスタンス」にIPアドレスが設定されているので、「ネットワーク通信インスタンス」はスキャナと通信でき、スキャナから認証結果(認証情報が一致したか否か)及びスキャナ情報(スキャナの名称、スキャナの状態)を取得できる。
III. Multi-threaded scanner information / status acquisition for a given number of scanners
S12: The API 13 requests the “multiple scanner control instance” to obtain scanner information / status of a plurality of scanners.
S13: The “multiple scanner control instance” requests the “scanner control instance” to obtain scanner information / status of the scanner.
S14: “One scanner control instance” sets the authentication information to “authentication information control instance”.
S15: “One scanner control instance” performs scanner status / status acquisition.
S16: “One scanner control instance” requests “authentication information control instance” for authentication processing and scanner information / status acquisition.
S17: The “authentication information control instance” causes the “network communication instance” to communicate with the scanner, and performs authentication processing and scanner information / status acquisition. That is, the authentication information is transmitted to the scanner, and the authentication result is acquired from the scanner. Since an IP address is set in the “one scanner control instance”, the “network communication instance” can communicate with the scanner, and the scanner provides an authentication result (whether the authentication information matches) and scanner information (scanner name, Scanner status).

認証が成立した場合(かつ電源がONである)、スキャナの状態、又は、再度、「ネットワーク通信インスタンス」を通して機器から取得したスキャナの状態を「スキャナ1台制御インスタンス」に送出する。スキャナの状態の取得に成功すれば、"使用可能である"という状態を取得したことになる。また、認証が成立しなかった場合には、スキャナの状態の取得に失敗し、"認証情報が異なる"という状態を取得することになる。取得した情報は最終的に接続ツールまで送出される。
S18:接続ツールの表示部33は、図9(b)に示したようにスキャナの状態を表示する。
When the authentication is established (and the power is ON), the scanner state or the scanner state acquired from the device through the “network communication instance” is sent again to the “one scanner control instance”. If the scanner status is successfully acquired, the status is “available”. If the authentication is not established, the acquisition of the scanner status fails, and the status “authentication information is different” is acquired. The acquired information is finally sent to the connection tool.
S18: The connection tool display unit 33 displays the status of the scanner as shown in FIG.

スキャナドライバはIIIの手順を、マルチスレッドにより同時並行に実行する。まず、スキャナ群を所定数(同時最大実行スレッド数)で構成されるブロックに分割する。所定数が64,スキャナの台数が256なので、256/64=4ブロックに分割される。このブロック数がシーケンス図の外側のループ回数に相当する。1ブロック目、2ブロック目、3ブロック目、4ブロック目と、それぞれ64台同時にマルチスレッドによりスキャナ情報/状態取得の処理を実行する。   The scanner driver executes the procedure of III in parallel by multithreading. First, the scanner group is divided into blocks each having a predetermined number (the maximum number of simultaneous execution threads). Since the predetermined number is 64 and the number of scanners is 256, it is divided into 256/64 = 4 blocks. This number of blocks corresponds to the number of loops outside the sequence diagram. 64 pieces of the first block, the second block, the third block, and the fourth block are simultaneously executed for the scanner information / status acquisition process by multithreading.

したがって、所定数(同時最大実行スレッド数)でスキャナ群をブロックに分割することにより、スキャナの台数がどれだけ増加しても端末の実行スレッド数を圧迫することがない。   Therefore, by dividing the scanner group into blocks by a predetermined number (simultaneous maximum number of execution threads), the number of execution threads of the terminal is not compressed even if the number of scanners increases.

〔効果〕
図11は、本実施形態のスキャナドライバの効果を説明するための図の一例である。これまでの説明と同様に、N=256台のスキャナの状態取得を行うとし、同時最大実行スレッドを64とする。
〔effect〕
FIG. 11 is an example of a diagram for explaining the effect of the scanner driver of the present embodiment. Similarly to the description so far, it is assumed that the status of N = 256 scanners is acquired and the maximum simultaneous execution thread is 64.

スキャナ情報/状態の取得にはタイムアウトの設定が必要か、少なくとも予め初期値が設定されている必要がある。これは、電源が入っていないスキャナはスキャナ情報の要求に対し応答しないため、スキャナドライバは長時間、応答を待つ必要があるためである。   In order to acquire scanner information / status, it is necessary to set a timeout or at least to set an initial value in advance. This is because a scanner that is not turned on does not respond to a request for scanner information, and the scanner driver needs to wait for a response for a long time.

よって、タイムアウト時間が経過した場合、そのスキャナの電源が入っていないと判断することが一般的である。一例として、タイムアウト時間を3秒とする。   Therefore, when the timeout time elapses, it is common to determine that the scanner is not turned on. As an example, the timeout time is 3 seconds.

同時最大実行スレッド数で256台のスキャナをブロックに分割すると、4ブロックに分割することができる。マルチスレッドで64台同時に取得するため、1ブロックのスキャナ群のスキャナ情報/状態の取得に必要な時間は、スキャナ1台分に必要な時間とほぼ等しい。したがって、本実施形態による256台のスキャナ情報/状態の取得にかかる時間は、従来技術における4台のスキャナ情報/状態にかかる時間とほぼ等しくなる。   If 256 scanners are divided into blocks with the maximum number of simultaneous execution threads, it can be divided into 4 blocks. Since 64 multi-threads are acquired simultaneously, the time required to acquire the scanner information / status of one scanner group is almost equal to the time required for one scanner. Therefore, the time required for acquiring the 256 scanner information / states according to the present embodiment is substantially equal to the time required for the 4 scanner information / states in the prior art.

最も時間がかかるパターンとして、256台のスキャナ全てが電源OFFの状態であるとする。
本実施形態の場合に必要な時間は、
(タイムアウト時間 = 3秒) × (4ブロック) = 12秒
である。
従来技術では、
(タイムアウト時間 = 3秒) × (256台) = 768秒
である。このように、大幅にスキャナ情報/状態の取得に必要な時間を短縮することができる。
Assume that all 256 scanners are in a power-off state as the most time-consuming pattern.
The time required for this embodiment is:
(Timeout time = 3 seconds) × (4 blocks) = 12 seconds.
In the prior art,
(Timeout time = 3 seconds) x (256 units) = 768 seconds. In this way, the time required for acquiring the scanner information / status can be greatly shortened.

また、ネットワークに接続されているスキャナの台数を増加させても、端末が実行する他のスレッドを圧迫することはない。例えば、1000台にスキャナを増やした場合、ブロック数が4から15に増えるだけで、同時最大実行スレッド数は64のままで変化しない。
このため、スキャナの台数を増やすことによる端末への負荷は増大しても他のアプリケーションの動作に影響するなどということがない。
Also, even if the number of scanners connected to the network is increased, other threads executed by the terminal are not compressed. For example, when the number of scanners is increased to 1000, the number of blocks only increases from 4 to 15, and the maximum number of concurrently executing threads remains 64.
Therefore, even if the load on the terminal due to the increase in the number of scanners increases, the operation of other applications is not affected.

以上説明したように、本実施形態のスキャナドライバは、並行して複数のスキャナの接続テストを行うことができるため、従来のようにユーザが1台ずつ接続テストするよりも接続テストに必要な時間を短縮できる。各認証情報制御インスタンスが認証情報にアクセスするので、認証情報構造体ポインタ26にアクセスが集中する不都合を抑制し、認証情報を個別に読み出したり書き出したりできる。   As described above, the scanner driver according to the present embodiment can perform a connection test for a plurality of scanners in parallel. Therefore, the time required for the connection test is longer than a conventional user connection test. Can be shortened. Since each authentication information control instance accesses the authentication information, it is possible to suppress inconvenience that the access is concentrated on the authentication information structure pointer 26, and to read or write the authentication information individually.

11 接続ツール
13 API
14 スキャナドライバ
16 認証ライブラリ
25 各認証API
26 認証情報構造体ポインタ
41 複数スキャナ制御クラス
42 スキャナ1台制御クラス
43 認証情報制御クラス
44 ネットワーク通信クラス
100 スキャナ
200 端末
11 Connection tool 13 API
14 Scanner Driver 16 Authentication Library 25 Each Authentication API
26 Authentication Information Structure Pointer 41 Multiple Scanner Control Class 42 One Scanner Control Class 43 Authentication Information Control Class 44 Network Communication Class 100 Scanner 200 Terminal

特許4612112号公報Japanese Patent No. 4612112

Claims (4)

ネットワークに接続された画像データ出力装置の装置情報を取得する情報処理装置であって、
ネットワーク上に存在する各画像データ出力装置と通信するための通信情報を取得する通信情報取得手段と、
認証情報の入力を受け付ける認証情報受け付け手段と、
ネットワーク上に存在する画像データ出力装置の数と同じ数の、画像データ出力装置を個別に認証するための認証手段と、
前記認証手段により認証が成立した場合には画像データ出力装置の装置情報を、認証が成立しない場合は認証不成立を画像データ出力装置毎に表示する表示手段と、を有し、
予め定められた最大数を上限とする前記認証手段のそれぞれは、複数の画像データ出力装置に対し同時に、
前記通信情報を通信手段に設定して各画像データ出力装置に認証情報を送信し、各画像データ出力装置から認証結果を受信する、
ことを特徴とする情報処理装置。
An information processing apparatus for acquiring apparatus information of an image data output apparatus connected to a network,
Communication information acquisition means for acquiring communication information for communicating with each image data output device existing on the network;
Authentication information receiving means for receiving input of authentication information;
Authentication means for individually authenticating the image data output devices, the same number as the number of image data output devices existing on the network;
When the authentication is established by the authentication means, the apparatus information of the image data output device, and if the authentication is not established, display means for displaying the authentication failure for each image data output device,
Each of the authentication means having an upper limit of a predetermined maximum number is simultaneously applied to a plurality of image data output devices.
Setting the communication information in the communication means, transmitting authentication information to each image data output device, and receiving an authentication result from each image data output device;
An information processing apparatus characterized by that.
前記通信手段は、前記認証手段の数に関わらず1つのみ存在する、ことを特徴とする請求項1記載の情報処理装置。   2. The information processing apparatus according to claim 1, wherein there is only one communication unit regardless of the number of authentication units. ネットワーク上に存在する画像データ出力装置の数と同じ数の前記認証手段のそれぞれは、画像データ出力装置に認証情報を送信する前に、ネットワーク上に存在する各画像データ出力装置の認証情報の記憶領域を確保している構造体から、各画像データ出力装置の認証情報を記憶するための記憶領域指示情報を取得する、
ことを特徴とする請求項1又は2記載の情報処理装置。
Each of the authentication means as many as the number of image data output devices existing on the network stores the authentication information of each image data output device existing on the network before transmitting the authentication information to the image data output device. Obtaining storage area instruction information for storing authentication information of each image data output device from the structure securing the area;
The information processing apparatus according to claim 1 or 2.
所定のプログラムに基づいて動作する情報処理装置に、
ネットワーク上に存在する各画像データ出力装置と通信するための通信情報を取得する通信情報取得ステップと、
認証情報の入力を受け付ける認証情報受け付けステップと、
ネットワーク上に存在する画像データ出力装置の数と同じ数だけ、画像データ出力装置を個別に認証するための認証手段を生成するステップと、
予め定められた最大数を上限とする前記認証手段に対し、複数の画像データ出力装置に対し同時に、前記通信情報を通信手段に設定して各画像データ出力装置に認証情報を送信させ、各画像データ出力装置から認証結果を受信させるステップと、
認証が成立した場合には画像データ出力装置の装置情報を、認証が成立しない場合は認証不成立を画像データ出力装置毎に表示するステップと、
を実行させるプログラム。
In an information processing device that operates based on a predetermined program,
A communication information acquisition step of acquiring communication information for communicating with each image data output device existing on the network;
An authentication information receiving step for receiving input of authentication information;
Generating authentication means for individually authenticating the image data output devices by the same number as the number of image data output devices existing on the network;
For the authentication means having an upper limit of a predetermined maximum as an upper limit, the communication information is simultaneously set in the communication means for a plurality of image data output devices, and the authentication information is transmitted to each image data output device. Receiving an authentication result from the data output device; and
When authentication is established, the device information of the image data output device is displayed, and when authentication is not established, authentication failure is displayed for each image data output device; and
A program that executes
JP2013053963A 2013-03-15 2013-03-15 Information processing apparatus and program Active JP6107260B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013053963A JP6107260B2 (en) 2013-03-15 2013-03-15 Information processing apparatus and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013053963A JP6107260B2 (en) 2013-03-15 2013-03-15 Information processing apparatus and program

Publications (2)

Publication Number Publication Date
JP2014179908A true JP2014179908A (en) 2014-09-25
JP6107260B2 JP6107260B2 (en) 2017-04-05

Family

ID=51699398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013053963A Active JP6107260B2 (en) 2013-03-15 2013-03-15 Information processing apparatus and program

Country Status (1)

Country Link
JP (1) JP6107260B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005092810A (en) * 2003-09-19 2005-04-07 Ricoh Co Ltd Information processor, information processing method and information processing program and recording medium
JP2008005060A (en) * 2006-06-20 2008-01-10 Canon Inc Image communication system, image communication device and control method thereof, computer program, and computer-readable storage medium
JP2009134423A (en) * 2007-11-29 2009-06-18 Konica Minolta Business Technologies Inc Printing system and printer specifying method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005092810A (en) * 2003-09-19 2005-04-07 Ricoh Co Ltd Information processor, information processing method and information processing program and recording medium
JP2008005060A (en) * 2006-06-20 2008-01-10 Canon Inc Image communication system, image communication device and control method thereof, computer program, and computer-readable storage medium
JP2009134423A (en) * 2007-11-29 2009-06-18 Konica Minolta Business Technologies Inc Printing system and printer specifying method

Also Published As

Publication number Publication date
JP6107260B2 (en) 2017-04-05

Similar Documents

Publication Publication Date Title
JP6187053B2 (en) Information processing system, information processing apparatus, and program
JP6331504B2 (en) Electronic device and information processing system
US11159482B2 (en) Information processing apparatus that determines a device for performing an action based on acquired address information
US10762043B2 (en) Information processing system, information processing apparatus, and information processing method
JP2016048911A (en) Information processing device, control method thereof, and control program
US20180376015A1 (en) Image forming apparatus with personalization function, control method therefor, and storage medium
JP6451337B2 (en) Information processing system and communication method
US9319376B2 (en) Information processing apparatus, control method, and storage medium
US10789107B2 (en) Information processing device, information processing system, and information processing method
JP6107260B2 (en) Information processing apparatus and program
US9607163B2 (en) Information processing apparatus, control method, and storage medium storing program
US20200034095A1 (en) Information processing apparatus, information storing apparatus, and image forming system
JP6318469B2 (en) Service providing system and service providing method
JP7024247B2 (en) Information processing equipment, communication systems, communication methods and programs
JP2014179012A (en) Information processing apparatus and program
US10868935B2 (en) Information processing device, information processing method, non-transitory recording medium, and image forming system
JP2019008436A (en) Image processing apparatus and program
JP5180771B2 (en) Information processing apparatus, and image forming system, method, and program using the same
JP5812733B2 (en) Image processing apparatus, data processing method and program in the image processing apparatus
JP6627910B2 (en) Electronic equipment and information processing system
JP2018112976A (en) Information processing device, communication system, communication method, and program
JP6226736B2 (en) Information processing apparatus, control method, and program
JP2016115200A (en) Information processing system, information processing device and program
KR20220164425A (en) Information processing system, information processing apparatus, and control method of the same
JP2020109676A (en) Program, information processing device, and information processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170123

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: 20170207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170220

R151 Written notification of patent or utility model registration

Ref document number: 6107260

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151