JP2015222872A - 画像処理装置とその制御方法、及びプログラム - Google Patents

画像処理装置とその制御方法、及びプログラム Download PDF

Info

Publication number
JP2015222872A
JP2015222872A JP2014106458A JP2014106458A JP2015222872A JP 2015222872 A JP2015222872 A JP 2015222872A JP 2014106458 A JP2014106458 A JP 2014106458A JP 2014106458 A JP2014106458 A JP 2014106458A JP 2015222872 A JP2015222872 A JP 2015222872A
Authority
JP
Japan
Prior art keywords
application
image processing
function
processing apparatus
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014106458A
Other languages
English (en)
Inventor
康友 清水
Yasutomo Shimizu
康友 清水
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.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014106458A priority Critical patent/JP2015222872A/ja
Priority to US14/712,201 priority patent/US9591164B2/en
Publication of JP2015222872A publication Critical patent/JP2015222872A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • H04N1/00973Input arrangements for operating instructions or parameters, e.g. updating internal software from a remote device, e.g. receiving via the internet instructions input to a computer terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • H04N1/00209Transmitting or receiving image data, e.g. facsimile data, via a computer, e.g. using e-mail, a computer network, the internet, I-fax
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00278Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a printing apparatus, e.g. a laser beam printer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0074Arrangements for the control of a still picture apparatus by the connected apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0081Image reader
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0082Image hardcopy reproducer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0093Facsimile machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Abstract


【課題】ローカルアプリケーションをWebブラウザから操作するためには、所定のプロトコルの規格に応じた修正を加え、Webブラウザ対応アプリケーションとして作り直す必要があった。
【解決手段】Webブラウザを有する画像処理装置とその制御方法であって、画像処理装置の機能を実行するアプリケーションを有し、Webブラウザから制御要求を受けると、対応するアプリケーションの少なくともクラス名と関数名を制御要求として転送し、その転送された制御要求に含まれるアプリケーションのクラスをロードして実行関数を呼び出すことにより前記対応するアプリケーションを実行する。
【選択図】 図3

Description

本発明は、画像処理装置とその制御方法、及びプログラムに関する。
従来、スキャナやプリンタ、ファクシミリ、通信装置などの各装置の機能を1つの筐体内に収納した画像処理装置が知られている。このような画像処理装置は、スキャナやプリンタなどの各種処理をアプリケーション単位で動作させるアプリケーションプラットフォーム環境を有し、操作部の表示にはWebブラウザが用いられている。そしてユーザは、Webブラウザにより表示される画面を操作することで、アプリケーションプラットフォーム上で起動するアプリケーションを介した画像処理装置の各種機能を利用することができる。
Webブラウザに表示される操作画面から画像処理装置の各種機能、アプリケーションを利用する形態として、例えば特許文献1に記載された方法がある。特許文献1によると、まずWebブラウザは、ネットワーク上の外部装置から受信した画面情報に基づいて、操作画面を画像処理装置の操作部に表示する。そしてユーザが、その操作画面を操作すると、Webブラウザは、ユーザの操作内容をネットワークを介して外部装置へ送信する。またWebブラウザは、送信した内容に対する応答としてSOAP(Simple Object Access Protocol)の通信プロトコルに従った要求を受信する。これによりWebブラウザは、その受信した要求をWebサービスプロバイダアプリケーションへ転送して、Webサービスプロバイダで提供される画像処理装置の機能を利用する。
特開2012−105071号公報
しかしながら従来の技術では、Webブラウザから操作できる画像処理装置のアプリケーションは、所定のプロトコルに対応しているWebブラウザ対応アプリケーションのみであった。一般的に、画像処理装置の操作画面から操作できるローカルアプリケーションは、Webブラウザからの操作に対応していない。そのため、ローカルアプリケーションをWebブラウザから操作するためには、所定のプロトコルの規格に応じた修正を加え、Webブラウザ対応アプリケーションとして作り直す必要があった。
本発明の目的は、上記従来技術の問題点を解決することにある。
本発明の特徴は、アプリケーションをWebブラウザから操作可能にするためのアプリケーションの修正を不要にして、Webブラウザ対応に要するプログラムの開発工数を削減することを目的とする。
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
Webブラウザを有する画像処理装置であって、
前記画像処理装置の機能を実行するアプリケーションと、
前記Webブラウザから制御要求を受けると、対応するアプリケーションの少なくともクラス名と関数名を制御要求として転送する要求転送手段と、
前記要求転送手段により転送された前記制御要求に含まれるアプリケーションのクラスをロードして実行関数を呼び出すことにより前記対応するアプリケーションを実行する制御手段と、を有することを特徴とする。
本発明によれば、アプリケーションをWebブラウザから利用するためのアプリケーションの修正作業が不要になるためプログラムの開発工数を削減できるという効果がある。
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
本発明の実施形態1に係る情報処理システム全体の構成例を示す図。 実施形態1に係る外部装置と画像処理装置のハードウェア構成例を示すブロック図。 実施形態1に係る外部装置と画像処理装置のソフトウェア構成を説明する機能ブロック図。 実施形態1に係る画像処理装置の表示部に表示されるメインメニュー画面例を示す図。 実施形態1に係る画像処理装置における処理手順を説明するシーケンス図。 実施形態1に係る画像処理装置の表示部に表示されるWebアプリケーションの操作画面の一例を示す図。 実施形態1に係る画像処理装置が、図5のS603で外部装置から受信するHTMLデータの一例を示す図。 実施形態1に係る画像処理装置のJavaScript(登録商標)ライブラリの一例を示す図。 本発明の実施形態1に係る画像処理装置の要求転送部の応答処理を実行するプログラムの一例を示す図。 本発明の実施形態1に係る画像処理装置の要求処理部アプリケーションの応答処理を実行するプログラムの一例を示す図。 本発明の実施形態2に係る外部装置と画像処理装置のソフトウェア構成例を示す機能ブロック図。 実施形態2に係る画像処理装置の処理手順を示すシーケンス図。 実施形態2に係る画像処理装置のJavaScriptライブラリの一例を示す図。 本発明の実施形態2に係る判定部を実現するプログラムの一例を示す図。 実施形態2に係る画像形成装置で表示されるエラー画面例を示す図。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
図1は、本発明の実施形態1に係る情報処理システム全体の構成例を示す図である。
このシステムでは、ネットワーク102を介して、画像処理装置100と外部装置101とが接続されている。画像処理装置100は、画像形成機能、画像読取機能、画像送信機能などの各種画像処理機能と、ネットワークを介してHTTP(Hyper Text Transfer Protocol)通信を行うWebブラウザ機能とを有する装置である。画像処理装置100は、プリンタ、コピー、FAX及びスキャナ機や、それら複数の機能を一台の筺体で実現するMFP(Multi Functional Peripheral)であってもよい。外部装置101は、Webサーバ機能、及び、画像処理装置100に画面情報としてGUI(Graphical User Interface)を提供する機能を備えたWebアプリケーションが実装されたコンピュータ(PC)等の情報処理装置である。
図2は、実施形態1に係る外部装置101と画像処理装置100のハードウェア構成例を示すブロック図である。
画像処理装置100は、外部装置101等とネットワーク通信を行うネットワークI/F201、ユーザ操作を受け付ける入力部202(キーボードなど)、操作画面を表示する表示部203を有する。
更に、画像処理装置100は、装置全体を制御するCPU204、CPU204のワークエリアを提供するRAM205、原稿を読み取る読取部206、画像データを印刷する印刷部207、各種制御プログラムなどを記録する記憶部208を有する。画像処理装置100のこれら各部はメインバス200を介してCPU204と接続されており、相互にデータの送受信が可能となっている。尚、図2では、入力部202と表示部203が別々のユニットとして記載しているが、これらユニットが一体となった操作部であってもよい。
外部装置101は、画像処理装置100とネットワーク通信を行うネットワークI/F301、装置全体を制御するCPU302、CPU302のワークエリアを提供するRAM303、各種制御プログラム等を記録する記憶部304を含んでいる。外部装置101のこれら各部はメインバス300を介して接続されており、相互にデータの送受信が可能となっている。
図3は、実施形態1に係る外部装置101と画像処理装置100のソフトウェア構成を説明する機能ブロック図である。
はじめに、外部装置101が備えるソフトウェアについて説明する。
外部装置101は、Webアプリケーション400を有する。Webアプリケーション400は記憶部304に記憶されており、ネットワークI/F301を介して画像処理装置100に送信される。
Webアプリケーション400は、画像処理装置100の表示部203に、Webブラウザ410を介して画像処理装置100を操作する操作画面を表示する機能を備える。また、Webアプリケーション400は、操作画面を介したユーザの操作に従って、画像処理装置100の動作を制御する機能を備える。Webアプリケーション400は、上述の機能を実現するため、マークアップ言語で記述されたデータとしてHTML(Hypertext Markup Language)と、スクリプト言語で記述されたデータとを有する。尚、スクリプト言語には、後述する画像処理装置100の機能を制御するための、所定のJavaScriptライブラリが含まれる。Webアプリケーション400は、所定のJavaScriptライブラリを有していれば、実現構成に制限はない。
次に画像形成装置100が備えるソフトウェアについて説明する。
画像処理装置100は、Webブラウザ410、要求転送部420、及びアプリケーションプラットフォーム430を有する。これら各部の機能は、画像処理装置100の記憶部208に記憶されており、CPU204が、そのプログラムを実行することで実現される。Webブラウザ410は、通信部411、解析部412、画面表示部413、スクリプト実行部414を有する。通信部411は、ネットワークI/F201を介したHTTP通信により、外部装置101から提供されるWebアプリケーションを取得する。解析部412は、取得したWebアプリケーション400を構成するHTMLデータを解析する。画面表示部413は、解析部412によって解析されたデータを用いて画面を表示させる。スクリプト実行部414は、取得したWebアプリケーション400を構成するスクリプトで定義された制御を実行し、画面表示部413の画面遷移などの制御を行う。また、スクリプト実行部414は、取得したWebアプリケーション400を構成するスクリプトに実装された、後述する所定のJavaScript関数を実行する。また、スクリプト実行部414は、要求転送部420から取得したJavaScriptコードを実行し、画面表示部413の画面遷移などの制御を行う。
要求転送部420は、Webブラウザ410とアプリケーションプラットフォーム430間の制御要求、及び、JavaScriptコードの送受信を制御する。要求転送部420は、転送部421、及び、スクリプト生成部422を有する。転送部421は、後述する所定のJavaScript関数の呼び出しに対応する制御用の関数としてコールバック関数を備える。スクリプト実行部414で所定のJavaScript関数が実行されると、転送部421の、そのJavaScriptに対応付けられたコールバック関数が呼び出される。これにより転送部421は、制御要求としてスクリプト実行部414から送信されるコールバック関数の引数を、アプリケーションプラットフォーム430へ転送する。尚、この引数には、画像処理装置100のアプリケーション実行するために必要なパラメータが指定されている。また転送部421は、アプリケーションプラットフォーム430から、画像処理装置100の機能に対する制御要求の実行結果を受信し、その実行結果をスクリプト生成部422に転送する。スクリプト生成部422は、転送部421から画像処理装置100の機能に対する制御要求の実行結果を受け取り、スクリプト実行部414で実行可能なJavaScriptコードを生成し、それを転送部421へ送信する。転送部421は、スクリプト生成部422から受け取ったJavaScriptコードをスクリプト実行部414へ送信する。
アプリケーションプラットフォーム430は、制御API(Application Program Interface)を介して画像処理装置100を制御するアプリケーションを実行可能な実行基盤である。実施形態では、アプリケーションプラットフォーム430は、Java(登録商標)アプリケーションを実行可能なJava仮想マシンである。
アプリケーションプラットフォーム430は、制御APIを用いて画像処理装置100のハードウェア資源(読取部206、印刷部207等)を使用するアプリケーションとして、制御対象アプリケーション440を備える。制御対象アプリケーション440は、例えば、コピーアプリケーション、スキャンアプリケーションである。また、アプリケーションプラットフォーム430は、Webブラウザ410からの制御要求に従って制御対象アプリケーション440を実行する機能を備えた要求通信部アプリケーション431を備える。要求通信部アプリケーション431は、解析部432と通信部433とを有する。通信部433は、転送部421から送信される、制御対象アプリケーション440に対する制御要求を受信する。また通信部433は、解析部432から送信される制御対象アプリケーション440における画像処理装置100の機能の実行結果を転送部421へ送信する。解析部432は、通信部433から受信した制御要求を解釈し、指定された制御対象アプリケーション440のクラスをロードし、制御実行関数を呼び出すことで画像処理装置100の動作を制御する。尚、アプリケーションプラットフォーム430は、後述する要求通信部アプリケーション431の解析部432が備えている「アプリケーション実行中にロードするクラスや実行関数を動的に変更可能な仕組み」を有するものであれば、その構成に制限はない。
図4は、本実施形態1に係る画像処理装置100の表示部203に表示されるメインメニュー画面例を示す図である。
このメインメニュー画面は、画像処理装置100の電源がオンされると最初に表示される画面であり、図3に示す制御対象アプリケーション440を介した画像処理装置100の機能を提供するためのアプリケーション起動ボタン501,502を備える。
アプリケーション起動ボタン501は、制御対象アプリケーション440を直接起動するボタンである。例として、制御対象アプリケーション440のコピーアプリケーションを実行するコピーボタン503が押下されたときの動作を説明する。ユーザによりコピーボタン503が押下されると、画像処理装置100のCPU204は、制御対象アプリケーション440のコピーアプリケーションを起動する。このときユーザは、表示部203に表示されたコピーアプリケーションの操作画面を介して、コピーアプリケーションの実行を指示する。
アプリケーション起動ボタン502は、Webブラウザ410の画面表示に切り替えるボタンである。本実施形態では、このメインメニュー画面には、Webブラウザ410を起動するボタン504と、Webブラウザ410を起動し、予めユーザがCPU204に記憶させたURLアドレスにアクセスするショートカットボタン505を有する。
ここでは具体例として、制御対象アプリケーション440のコピーアプリケーションをWebブラウザ410から実行するショートカットボタンであるコピーWebアプリケーションボタン506が押下されたときの動作を説明する。コピーWebアプリケーションボタン506は、後述する処理手順でコピー機能を実行するための操作を行うアプリケーションのURLがCPU204に記憶されたボタンである。ユーザによりコピーWebアプリケーションボタン506が押下されると、CPU204は、そのボタンに対応付けて記憶されたURLアドレスから、コピーWebアプリケーションを取得してWebブラウザ410により表示する。次にユーザは、表示部203に表示されたWebアプリケーションの表示画面を介して操作を行ってコピーアプリケーションの実行を指示する。CPU204は、実行のための制御要求を受け付けると、要求転送部420、要求通信部アプリケーション431を介して、コピーアプリケーションを実行する。尚、これ以降の処理手順は、ユーザがコピーWebアプリケーションボタン506を押下し、制御対象アプリケーション440のコピーアプリケーションをWebブラウザ410を介して操作するものとする。
図5は、本実施形態1に係る画像処理装置100における処理手順を説明するシーケンス図である。以下、このシーケンス図を参照して、実施形態1に係る画像処理装置100の動作を説明する。また、各処理を構成する構成データ(図7から図14)を参照して、画像処理装置100で実施される処理の詳細を説明する。尚、この図5の各ステップSは画像処理装置100が備えるCPU204が、記憶部208に記録されたプログラムをRAM205上に読み出して実行することで実行される。また実施形態1では、制御対象アプリケーション440は、画像処理装置100が備えるコピー機能を実行する制御APIを利用し作成されたアプリケーションであるものとする。また、Webアプリケーション400は、制御対象アプリケーション440を介して、画像形成装置100のコピー機能を実行するための操作を行うアプリケーションとする。また図5において、前述の図3のソフトウェア構成と共通する部分は同じ記号で示し、それらの説明を省略する。まず図5のS602からS605までの一連の処理の流れを説明する。
ユーザ600がS601で、入力部202から、Webアプリケーション400を起動するボタン(不図示)を押下すると、CPU204はS602で、記憶部208に記憶されているWebブラウザ410を起動するプログラムを実行する。こうしてWebブラウザ410を起動した後、CPU204は、記憶部208に記憶されたWebアプリケーション400の記憶場所を示すURLに基づき、HTTP Requestを通信部411からネットワークI/F201を介して外部装置101に送信する。
これにより外部装置101のCPU302は、ネットワークI/F301を介して、HTTP Requestを受け取る。そしてS603でCPU302は、記憶部304からWebアプリケーション400を構成するデータ(HTML,JavaScriptなど)を、HTTP Responseに含めてネットワークI/F301を介し画像処理装置100へ送信する。
これにより画像処理装置100のCPU204はS604で、ネットワークI/F201を介して通信部411が受信したデータを解析部412で解析する。そしてS605でCPU204は、画面表示部413を通じて表示部203に操作画面を表示する。
図6は、図5のS604,S605においてCPU204により解析され、画面表示部413を通じて表示部203に表示されるWebアプリケーション400の操作画面の一例を示す図である。
実施形態1では、画像処理装置100が備えるコピー機能を、制御対象アプリケーション440の一つであるコピーアプリケーションを介して実行するための操作画面となっている。同図に示されるように、操作画面660は、印刷枚数、原稿サイズなどの設定ボタン661と、制御対象アプリケーション440の機能実行を開始するための実行ボタン662とを備える。以上が図5のS602からS605までの一連の処理の流れの説明である。
尚、本実施形態1では、Webブラウザ410を起動する際、予めWebアプリケーション400を記憶する外部装置101のURLを記憶部208に記憶しているが、本発明はこれに限られたものではない。例えば、ユーザ600が入力部202の起動ボタンを押下すると、CPU204が記憶部208からWebブラウザ410を起動する。その後、CPU204が、ユーザ600が入力部202により指定したWebアプリケーション400を記憶する外部装置101のURLに基づくHTTP RequestをネットワークI/F201を介して通信部411から送信する形式でもよい。
次に、図5のS610,S611,S620,S621の処理の流れを説明する。
ユーザ600がS610で、入力部202で操作画面660の設定ボタン661を押下する。これによりCPU204は、設定ボタン661の操作に対応する、画面遷移などの制御を動的に行うスクリプト部(図7の記述702b)をスクリプト実行部414を介して実行する。そしてS611でCPU204は、画面表示部413を動的に遷移させながら制御対象アプリケーション440に対する制御要求を作成する。
次に、ユーザ600がS620で、入力部202で操作画面660の実行ボタン662を押下する。これによりCPU204は、実行ボタン662に対応する、制御対象アプリケーション440を実行させるためのスクリプト部(記述702c)をスクリプト実行部414を介して実行する。そしてスクリプト部(記述702c)の実行により、CPU204はS621で、前述のS610,S611を通じて作成した制御要求を、要求転送部420の転送部421に送信する。
図5のS610,S611,S620,S621で実行する、操作画面の遷移や、制御対象アプリケーション440の機能実行の開始などを行う、スクリプトデータの一例を図7及び図8に示す。
図7は、図5のS603で外部装置101から受信するHTMLデータの一例を示す図である。このHTMLデータは、操作画面660の画面形式定義部(記述703)を備える。また、このHTMLデータは、画面遷移などの制御を動的に行うスクリプト部(記述702)と、制御対象アプリケーション440を実行するためのクラス、関数を実装したJavaScriptライブラリ800のインポート部(記述701)とを備える。
記述703は、印刷枚数、原稿サイズなどの設定ボタン661(記述703a)と、制御対象アプリケーション440の機能実行を開始する実行ボタン662(記述703b)の構成を含んでいる。
操作画面の動的遷移などの操作設定(S611,S621)は、設定ボタン661を定義するスクリプト部(記述702b)、実行ボタン662を定義するスクリプト部(記述702c)を介して実現される。また記述702b、記述702cは、各種制御設定の保存(S611)と制御要求の送受信(S621,S628)を実行するため、記述701でインクルードするJavaScriptライブラリ800(図8)の関数を呼び出すスクリプトである。
記述702aは、JavaScriptライブラリ800で定義されるapiインスタンスを生成するスクリプトである。記述702bは、api.setCopiesSize関数、記述702cにおいてはapi.setCopiesNum関数、api.startApplication関数を実行するスクリプトである。
図8に示されるJavaScriptライブラリ800は、コンストラクタ部(記述801)、Getter、Setter部(記述802)、制御要求送信部(記述803)、制御結果格納部(記述804)を有する。記述801は、S621で制御要求として送信する配列(記述801a)、S611で生成される制御要求を格納する制御対象アプリケーション440の実行関数の引数に対応した変数群(記述801b)の定義である。記述801aは、初期値として、制御対象アプリケーション440のjarファイルのパス名、処理を実行するクラス名を代入する。また、後述するS629のスクリプト実行時における、制御対象アプリケーション440の制御結果を格納する変数(記述801b)も定義している。
記述802は、記述801bの各変数に対して、変数の取得、設定を行う関数群の定義である。
記述803は、作成された制御対象アプリケーション440に対する制御要求を要求転送部420へ送信するスクリプトであり、S621で実行される。記述803は、変数群(記述801b)の制御設定を配列(記述801a)に格納する関数群(記述803a)と、制御要求を引数として要求転送部420へ送信する制御開始関数(記述803b)を有する。記述803bは、後述する要求転送部420の構成データ内でコールバック関数を呼び出すための関数定義である。
実行ボタン662の操作により記述803bのstartAppl関数が実行されると、要求転送部420のコールバック関数が実行され、記述803bの関数の引数(copies)が、制御要求として要求転送部420へ送信される。
以上のHTMLデータとスクリプトにより、S610でのユーザ600の設定ボタン661の操作に対し、Webブラウザ410は、スクリプト部(記述702b)を実行することで、S611の操作画面の動的遷移や制御要求の作成を実行する。またS620でのユーザ600の実行ボタン662の操作に対し、Webブラウザ410は、スクリプト部(記述702c)を実行することで、S621における、制御要求の要求転送部420への送信を実行する。以上が図5における、S610,S611,S620,S621の処理の流れの説明である。
次に、図5のS622の処理の流れを説明する。
CPU204は、前述のS621において所定のJavaScript関数をスクリプト実行部414で実行した後、要求転送部420の転送部421のプログラムを記憶部208からRAM205に読み出す。そしてCPU204はS622で、転送部421のプログラム内で、所定のJavaScript関数の実行に対応づけられたコールバック関数を実行して制御要求を取得し、要求通信部アプリケーション431の通信部433に制御要求を転送する。
S622で使用する、要求転送部420の応答処理を実行するプログラムの一例を図9及び図10に示す。
記述900は、要求転送部420のプログラムの全体構成を示し、記述901及び記述902を備える。本実施形態1では、記述900のプログラムはC/C++で記載されている。記述901は、WebブラウザエンジンWebKit(登録商標)のJavaScriptCoreライブラリの機能をインクルードするための宣言である。記述901は、Webブラウザ410上のJavaScriptライブラリ800から要求転送部420の処理、及び要求転送部420からJavaScriptライブラリ800の処理を実行可能とするライブラリの利用と独自APIの追加のために利用される。
記述902は、JavaScriptCoreライブラリ800の機能を利用するためのコードである。記述902は、記述902aと記述902bとを含んでいる。記述902aは、JavaScriptライブラリ800で指定した所定の関数(記述803b)の実行時に呼び出されるコールバック関数の設定である。本実施形態1では、JavaScriptライブラリ800で指定した所定の関数をstartAppli関数、呼び出されるコールバック関数をJSGlobalStart関数(記述902b)とする。記述902aは、Webブラウザ410の起動時に1回だけ呼び出される。この時、JavaScriptライブラリ800のstartAppli関数実行時に呼び出されるコールバック関数として、JSGlobalStart関数が対応づけられる。以降、Webブラウザ410は、startAppli関数を実行するときにコールバック関数の利用が可能となる。記述902bは、JavaScriptライブラリ800で指定した関数(記述803b)の実行時に呼び出されるコールバック関数である。記述902bは、JavaScript文字列変換部(記述902c)、要求通信部アプリケーション431への転送(記述902d)、スクリプト生成部(記述902e)、Webブラウザ410への転送(記述902f)を含んでいる。また記述902bは、JavaScriptライブラリ800で指定した関数(記述803b)に引数が存在する場合、その引数を取得した状態で実行する。実施形態1では、S621におけるstartAppli関数の実行時に、制御対象アプリケーション440に対する制御要求を引数として取ることで(記述803b)、記述902bに制御要求を送信している。
記述902cは、コールバック関数に渡された制御要求がJavaScriptコード形式であるため、C/C++文字列に変換している。記述902cは、JavaScriptCoreライブラリ800の機能によって実現される。
本実施形態では、制御要求のJavaScript配列 ["CopyAppli/copy_sample.jar", "copy.CopyJob", ...]を、文字列「CopyAppli/copy_sample.jar,copy.CopyJob,...」に変換する。
記述902dは、S622に対応する処理として、制御要求の文字列を要求通信部アプリケーション431に転送する。実施形態1では、ソケット通信を利用し、制御要求の文字列を送信する構成としているが、要求転送部420、要求通信部アプリケーション431間で制御要求を送受信可能な構成を有していれば、実現構成に制限はない。
以上のプログラムにより、S621でWebブラウザ410がstartAppli関数を実行すると、要求転送部420が、その関数に対応付けられたJSGlobalStart関数(記述902b)を実行する。そしてその関数内において、S622で要求転送部420が、要求通信部アプリケーション431に制御要求を転送する。
尚、本実施形態1では、JavaScriptCoreライブラリ800を利用しているため、要求転送部420をC/C++で実装しているが、JavaScriptに対し相互に実行可能とする独自APIを追加できるライブラリを有していれば、実現構成に制限はない。
以上が図5におけるS622の処理の流れの説明である。
次に、図5のS623からS626までの一連の処理の流れを説明する。
CPU204は、前述のS622で転送部421が送信した制御要求を、要求通信部アプリケーション431の通信部433が受信する。次にS623でCPU204は、解析部432で、その制御要求を解析し、S624,S625でその解析した制御要求に対応する制御対象アプリケーション440を実行する。その後、CPU204はS626で、通信部433により、解析部432から受け取った制御対象アプリケーション440の実行結果を転送部421へ送信する。
上述のS623からS626までで使用する、要求通信部アプリケーション431の処理応答を実現するプログラムの一例を図11から図14に示す。
記述1100は、要求通信部アプリケーション431のプログラムの全体構成を示し、記述1101、記述1102(図12)、記述1103(図13、図14)とを備える。本実施形態1では、記述1100のプログラムはJavaで記載されている。
記述1101は、S623からS626までの一連の処理を実行する。記述1101aは、前述のS622で要求転送部420から送信された制御要求の受信を行う。記述1102は、S623,S624,S625に対応する、制御要求の解析、制御対象アプリケーション440の実行を行う関数を実行する。記述1101bは、S626に対応する、記述1102における制御対象アプリケーション440の実行結果を、要求転送部420へ送信する。
尚、本実施形態1では、制御要求の受信と実行結果の送信にソケット通信を利用する構成としているが、要求転送部420、要求通信部アプリケーション431の構成プログラム間で要求制御を送受信可能な構成を有していれば実現構成に制限はない。
記述1102は、S623に対応する受信した制御要求の解析部と、S624,S625に対応する制御要求の実行部を備える。記述1102aは、要求転送部420から受信した制御要求文字列を文字列単位に分割し、解析用の文字配列に格納する。本実施形態1では、要求転送部420が記述902cで変換した制御要求文字列「CopyAppli/copy_sample,copy.CopyJob,...」を「,」で区切り、「CopyAppli/copy_sample」、「.copy.CopyJob」…の文字列ごとに配列に格納する。
記述1102bは、分割した制御要求の文字列を基に、制御対象アプリケーション440において、画像処理装置100の所定の機能を実行する制御APIが実装されているクラスのインスタンスの動的生成を行う。
本実施形態1では、記述1102aで文字配列の一番目に確保したjarファイルのパスから、制御APIが実装されたクラスのロードを行っている。また、文字配列の二番目に確保したクラス名から、動的にインスタンスを生成する。以降の処理において、要求通信部アプリケーション431は、前述のインスタンスを通じた制御対象アプリケーション440の制御APIの呼び出しが可能になる。
記述1102cは、記述1102d、記述1102e、及び記述1103で構成される。記述1102dは、記述1102aで確保した文字配列の内容を解釈し、制御対象アプリケーション440の実行する制御APIの関数名と引数を格納した配列の範囲を特定する。
本実施形態1では、文字配列の「##START_METHOD##」、「##END_METHOD##」間に存在する文字列が、関数名と引数を備えており、該当範囲の配列番号を確保する。
記述1102eは、制御要求、作成したクラスのインスタンス(記述1102b)、解析した配列番号(記述1102d)を引数とした、制御対象アプリケーション440の制御APIを実行する処理用関数(記述1103)を呼び出す(S624,S625)。尚、記述1102cは、受信した全ての制御要求が実行されるか、又は処理用関数(記述1103)の実行結果が異常終了であった場合まで、繰り返し処理を実行する。
記述1102fは、記述1102の処理中に例外が発生した場合、処理を中断し異常終了の戻り値を返す処理を行っている。S626においては、記述1103の関数の実行結果(S625)に加え、ここでの処理結果を実行結果として、要求転送部420に送信する。
記述1103は、S624,S625に対応し、制御要求として指定された制御対象アプリケーション440の制御APIの関数の実行を行う。記述1103aは、制御要求として指定された制御対象アプリケーション440の制御APIの関数名が、記述1102bで動的に生成したクラス内に存在するか判定し、存在しない場合はエラーを返して処理を終了する。記述1103bは、制御要求として指定された制御対象アプリケーション440の制御APIの関数がもつ引数の型群を配列に確保する。記述1103cは、制御要求として受信した、制御要求として指定された制御対象アプリケーション440の制御APIの関数に実行時に渡す引数を配列に確保する。記述1103dでは、記述1103b、記述1103cで確保した配列を用いて、制御要求として指定された制御対象アプリケーション440の制御APIの関数を実行する。これらの処理より、要求通信部アプリケーション431は、クラス名、関数名、変数を基に制御対象アプリケーション440の制御APIを介した、画像処理装置100の機能の実行を行う。記述1103eは、図5のS625に対応する処理として、記述1103の処理中に例外が発生した場合、処理を中断し異常終了の戻り値を返し、そうでなければ正常終了の結果を記述1102に返す。
以上のプログラムにより、S623で、要求通信部アプリケーション431が受信した制御要求を解析し、S624,S625で、指定された制御対象アプリケーション440を実行し、S625で要求転送部420に実行結果を転送する。
以上が図5における、S623からS626までの一連の処理の流れの説明である。
次に、図5のS627,S628の処理の流れを説明する。
CPU204はS626で、転送部421で通信部433から送信した制御対象アプリケーション440の実行結果を受信した後、S627で、スクリプト生成部422のプログラムを実行し、実行結果に応じたJavaScriptのコードを作成する。その後、CPU204は、転送部421でスクリプト生成部422により生成されたJavaScriptコードを、S628でWebブラウザ410のスクリプト実行部414に送信する。
図5のS627,S628で使用する要求転送部420の該当する処理応答を構成するプログラムの一例を図10の記述902eから記述902hに示す。
記述902eは、S626に対応する処理として、要求通信部アプリケーション431から制御対象アプリケーション440の実行結果の文字列を受信する構成を有している。尚、本実施形態1では、実行結果の文字列を受信する構成としてソケット通信を利用しているが、要求転送部420、要求通信部アプリケーション431の構成プログラム間で要求制御を送受信可能な構成を有していれば実現構成に制限はない。
記述902fは、S627に対応する処理として、受信した制御対象アプリケーション440の実行結果に応じ、実行結果を反映したJavaScriptのコードを表わすC/C++文字列を作成する。この時、作成するJavaScriptコード文字列には、JavaScriptライブラリ800で定義されている所定のJavaScript関数が含まれる。本実施形態1では、JavaScriptライブラリ800内で、この所定のJavaScript関数を、実行結果の文字列を受信する関数returnAppliとして定義している(記述804a)。また、記述902fにおいて、作成するJavaScriptコードの文字列を、引数に実行結果の文字列を取るreturnAppli関数の実行としている。記述902gは、作成したJavaScriptコードのC/C++文字列を、JavaScriptとして実行可能なJavaScriptコードへ変換する。この記述902gは、JavaScriptCoreライブラリの機能を利用して実現している。記述902hは、S628に対応する処理として、変換されたJavaScriptコードを引数としたスクリプト実行部414の関数呼び出しによるWebブラウザ410への実行結果の転送を行う。この記述902hは、JavaScriptCoreライブラリの機能を利用して実現している。
本実施形態1では、スクリプト実行部414を構成するJavaScriptCoreライブラリの機能より、引数のJavaScriptコードを実行する関数に対し、S627で作成したJavaScriptコードを引数として呼び出しを行っている。
この処理により、引数のJavaScriptコードは、記述されたreturnAppli関数が引数に実行結果の文字列を持つ関数(記述804a)としてWebブラウザ410のスクリプト実行部414で実行される。即ち、記述902hの処理を通じて、S628に対応する、要求転送部420からWebブラウザ410への実行結果の転送が行われる。
尚、本実施形態1では、S627,S628においてJavaScriptCoreライブラリを利用しているが、実現構成はこれに制限されるものではない。文字列をJavaScriptコードとして実行可能なライブラリを有し、かつ、スクリプト実行部414の実行プログラム(不図示)において当該ライブラリを利用する構成であればよい。
以上のプログラムにより、要求転送部420がS627で、受信した制御対象アプリケーション440の実行結果からスクリプトを生成し、S628でWebブラウザ410にそのスクリプトを送信することで、実行結果を転送する。
以上が図5のS627,S628の処理の流れの説明である。
最後に、図5のS629の処理の流れを説明する。
CPU204はS629で、転送部421から送信した実行結果を反映したスクリプトをスクリプト実行部414にて実行し、画面表示部413への結果の反映などを行う。このS629の処理では、図7のHTMLデータの記述702d、及び、JavaScriptライブラリ800の記述804が実行される。
記述804は、要求転送部420でJavaScriptコードとして指定する所定のJavaScript関数部(記述804a)と、要求転送部420から受信した実行結果の文字列取得部(記述804b)とを備える。記述804aは、記述902fでJavaScriptコードとして生成されるreturnAppli関数を実装しており、実施形態1では、引数として渡された実行結果を、制御結果の格納用変数(記述801c)へ代入する処理を行う。
記述702dは、実行結果をWebブラウザ410で反映させる処理を行う。本実施形態1では、記述804bの関数を呼び出し、取得した実行結果の文字列を画面に表示する処理を実行する。
以上のプログラムにより、Webブラウザ410上でS629の、制御対象アプリケーション440の実行結果を反映した、画面表示部413への結果の反映などを行う。
尚、本実施形態1では、指定する所定のJavaScript関数(記述804a)として、引数として取る文字列をセットする処理を行っているが、JavaScriptとして実行可能なコードであれば、その実現構成に制限はない。同様に、記述702dの処理において、実行結果の成功/失敗の判定を文字列としてalert関数で表示するものとしているが、HTML,JavaScriptとして実行可能なプログラムであれば、実現構成に制限はない。
以上が図5におけるS629の処理の流れの説明である。
以上により実施形態1では、Webブラウザ410から、JavaScriptライブラリ800に記載されたクラス名、関数名、変数に基づき、画像処理装置100の制御対象アプリケーション440を実行することが可能になる。そのため、Webブラウザ410からのローカルアプリケーションを利用する際、JavaScriptライブラリの作成のみで、ローカルアプリケーションに修正を加えることなくWebブラウザ対応アプリケーションとして使用できるようになる。このことから、画像処理装置100のWebブラウザ410によりアプリケーションを実行させるために要するプログラムの開発工数を削減することができる。
[実施形態2]
上述の実施形態1では、Webブラウザ410から制御対象アプリケーション440を実行するため、Webブラウザ410はJavaScriptライブラリ800に記載されたクラス名、関数名、変数に基づく制御要求を要求通信部アプリケーション431に送信する。そして、要求通信部アプリケーション431は、制御要求を解析し、該当する制御対象アプリケーション440の実行を行っていた。即ち、画像処理装置100は、Webブラウザ410から制御要求として指定する制御対象アプリケーション440の情報に関して、要求通信部アプリケーション431が解析する時点まで取得することができない。従って、画像処理装置100は、ユーザ600が指定するWebアプリケーション400からの制御要求が制御対象アプリケーション440を使用できるかどうか、ユーザ600による制御要求操作を受信するまで判定することができない。
そこで実施形態2では、Webアプリケーション400の起動時に、そのWebアプリケーション400が制御する制御対象アプリケーション440が使用可能かどうか判定する処理を行う。以下、図を参照して実施形態1との差分を説明する。尚、実施形態2に係るシステム構成及び外部装置101と画像処理装置100のハードウェア構成は前述の実施形態1と同様であるため、その説明を省略する。
図15は、本発明の実施形態2に係る外部装置101と画像処理装置100のソフトウェア構成例を示す機能ブロック図である。図15に示すソフトウェア構成は、図2で示した、画像処理装置100のCPU204、外部装置101のCPU303がプログラムを実行することで実現される。尚、図15以降の図において、実施形態1で参照した図と同じ番号で示されるものは同一のものとし、その説明を省略する。
判定部1500は、通信部433が受信した利用アプリケーション情報を解釈し、制御対象アプリケーション440が有するアプリケーション名、バージョン情報との比較を行い、利用可能かどうかの判定を行う。
図16は、実施形態2に係る画像処理装置100の処理手順を示すシーケンス図である。以下、このシーケンス図と、各処理を構成する構成データ図(図17、図18)、及び表示するエラー画面図(図19)を用いて、処理手順の説明を行う。尚、この実施形態2に係る処理は、図5のS604とS605との間で実行されるものである。そのため、図16では、S610以降の処理の記述を省略している。
まず、図16のS1600の処理の流れを記載する。
CPU204は、S604で解析したHTMLデータ内に記述されたスクリプトデータをスクリプト実行部414で実行する。そしてスクリプトデータ(図17の記述1701)の実行により、CPU204は、利用する制御対象アプリケーション440に関する使用アプリケーション情報を転送部421に送信する(S1601)。S1600の処理の詳細について、図17のJavaScriptライブラリ800を用いて説明する。
実施形態2では、JavaScriptライブラリ800において、コンストラクタ部(記述801)に、S1600で送信する配列(記述1700)を追加している。また、使用アプリケーション情報を転送部421に送信する判定用関数(記述1701)を追加している。記述1700は、JavaScriptライブラリ800が利用する、制御対象アプリケーション440のアプリケーション名、利用可能なアプリケーションのバージョン範囲を代入した使用アプリケーション情報を備える。本実施形態2では、制御対象アプリケーション440のアプリケーション名を「Copy_Service」、対応しているバージョン範囲を「1.0.2」から「2.2.1」として、使用アプリケーション情報にまとめている。記述1701は、使用アプリケーション情報の配列(記述1700)を引数として要求転送部420へ送信する判定開始関数(記述1702)を有する。記述1702は、記述803bの関数と同様に、要求転送部420のコールバック関数を呼び出すための関数定義であり、Webブラウザ410がcheckInfo関数を実行すると、要求転送部420は対応するコールバック関数を実行する。このとき記述1702の引数が、判定情報として要求転送部420へ送信される。記述1700、記述1701に加えて、図7のHTMLデータは、スクリプト部(記述702)内のInit関数の処理に、記述1701の関数を呼び出す記述を新たに備える(不図示)。Init関数は、画面形式定義部(記述703)より、解析されたHTMLデータよる操作画面が表示される直前に実行される。そのため、Webアプリケーション400は、起動前に使用アプリケーション情報の判定処理を行うことが可能となる。
以上のプログラムにより、Webブラウザ410は、S604のHTMLデータの解析によって、Init関数を介してcheckInfo関数(記述1702)を実行する。checkInfo関数(記述1702)の実行によって、Webブラウザ410は、使用アプリケーション情報を要求転送部420へ送信する(S1600)。
以上が図16における、S1600の処理の流れの説明である。
次に、図16のS1601の処理の流れを説明する。
CPU204は、前述のS1600において所定のJavaScript関数をスクリプト実行部414で実行した後、要求転送部420を構成する転送部421のプログラムを記憶部208からRAM205に読み出す。そしてCPU204は、転送部421で、所定のJavaScript関数の実行に対応づけられたコールバック関数を実行し、スクリプト実行部414から送信した使用アプリケーション情報を通信部433へ転送する(S1601)。このS1601の処理は、S621の処理と同様である。即ち、JavaScriptライブラリ800で指定したcheckInfo関数(記述1702)に対応するコールバック関数を設定する(不図示)。そして、コールバック関数内でcheckInfo関数から受け取った引数を、通信部433へ送信する構造を定義する(不図示)。
以上のプログラムにより、Webブラウザ410がcheckInfo関数を実行すると(S1600)、要求転送部420が、その関数に対応付けられたコールバック関数を実行する。そしてその関数内において、要求転送部420が、要求通信部アプリケーション431に使用アプリケーション情報を転送する(S1601)。以上が図16のS1601の処理の流れの説明である。
次に、図16のS1602からS1605までの一連の処理の流れを説明する。
CPU204は、前述のS1601で転送部421が送信した使用アプリケーション情報を、要求通信部アプリケーション431の通信部433で受信する。次にCPU204は、判定部1500で、全ての制御対象アプリケーションに対してアプリケーション情報の取得(S1602)と使用アプリケーション情報との比較(S1603)を行う。この比較判定後、CPU204は、通信部433において、判定部1500から受け取った制御対象アプリケーション440のアプリケーション情報と使用アプリケーション情報の比較結果を、S1604で転送部421へ送信する。
S1602,S1603の処理の詳細について、図18の要求通信部アプリケーション431を構成する、判定部1500を実現するプログラムの一例を参照して説明する。記述1800は、判定部1500のプログラムの全体構成を示し、記述1801、記述1802とを備える。尚、S1601,S1604の使用アプリケーション情報の受信と、判定結果の送信を行う処理は、通信部433の記述1101a、記述1101bと同様のプログラムにより実行されるものとし、説明は省略する。
記述1801は、実施形態2において、記述1802でアプリケーションプラットフォーム430上の稼働するアプリケーション情報を取得するための宣言部である。ここでは、OSGi(Open Services Gateway initiative platform)フレームワークでアプリケーションを起動し、バンドルコンテキストオブジェクトの取得を行う。そのため実施形態2では、アプリケーションプラットフォーム430を構成するJava仮想マシンに、OSGiフレームワークを含んでいる。また要求通信部アプリケーション431、制御対象アプリケーション440は、OSGiフレームワーク上で稼働するアプリケーションとする。OSGiフレームワークは、モジュールシステムと、Javaのサービスプラットフォームと、アプリケーションのインストール、開始、停止、アンインストールを、Java仮想マシンを再起動することなく実行できる環境を提供する。OSGiフレームワークは、アプリケーションをバンドルという単位で管理する。バンドルは、アプリケーションを構成するJarファイルに加え、アプリケーション名、バージョン情報などのメタデータを記述したマニフェストファイルを有する。バンドルとして起動するアプリケーションは、単一のフレームワーク上で管理されるため、他のバンドルを検知し利用することができる。従って、要求通信部アプリケーション431をOSGiフレームワーク上で起動し、バンドルコンテキストオブジェクトを取得することで、後述する記述1802bで稼働している全てのアプリケーションの情報を取得することが可能となる。
記述1802は、S1602,S1603に対応する使用アプリケーション情報の判定部を備え、記述1802a、記述1802bとを有する。
記述1802aは、アプリケーションプラットフォーム430上で稼働する、全てのアプリケーションのオブジェクトを取得する。実施形態2においては、OSGiフレームワーク上で稼働する、全てのアプリケーションに関するバンドルオブジェクトを取得する。バンドルオブジェクトを取得することで、判定部1500は、稼働しているアプリケーションが有するマニフェストファイルの情報を参照することが可能となる。
記述1802bは、記述1802aで取得した全てのオブジェクトに対し、アプリケーション名、バージョン情報を使用アプリケーション情報と比較し(記述1802c、記述1802d)、情報の一致判定を行う。記述1802bは、使用アプリケーション情報に記載されたアプリケーション名が存在しない、又は、存在していてもバージョン情報が異なる場合、対応するエラーコードを返し、一致した場合は、正常終了のコードを返す。
実施形態2では、稼働しているアプリケーションのバンドルオブジェクトが有する、マニフェストファイル内に記載されたメタデータを用いて判定を行う。記述1802cでは、マニフェストファイルの「Bundle-Name」内に記載されたアプリケーション名を用いて、制御対象アプリケーション440が画像処理装置100に存在しているか判定する。制御対象アプリケーション440が存在した場合、記述1802dは、マニフェストファイルの「Bundle-Version」内に記載されたバージョン情報を取得し、使用アプリケーション情報に記載された、対応可能バージョン範囲内であることを判定する。
以上のプログラムにより、要求通信部アプリケーション431が、S1602で制御対象アプリケーション440のアプリケーション情報を取得し、S1603で使用アプリケーション情報と比較し、S1604で、その比較結果を要求転送部420に送信する。
以上が図16のS1602からS1605までの一連の処理の流れの説明である。
尚、実施形態2では、制御対象アプリケーション440の使用可能判定のため、OSGiフレームワーク含むJava仮想マシンによるアプリケーションプラットフォームとしているが、実現構成はこれに限られたものではない。即ち、プラットフォーム上で稼働するアプリケーションが、メタデータとしてアプリケーション名、バージョン情報を有するものであり、かつ、アプリケーション間でそれらの情報を参照可能であるプラットフォームであればよい。
最後に、図16のS1605からS1610までの処理の流れを説明する。
CPU204はS1604で、転送部421で通信部433から送信した使用アプリケーション情報の判定結果を受信した後、スクリプト生成部422のプログラムを実行する。CPU204は、判定結果が正常終了コードである場合、何も処理を行わず、S604で解析した画面を表示する(S605)。CPU204は、判定結果がエラーコードである場合、S1605で、エラー画面を表示するためのJavaScriptのコードを作成する。その後、CPU204はS1606で、転送部421が、スクリプト生成部422により生成されたJavaScriptコードをWebブラウザ410のスクリプト実行部414に送信する。そしてCPU204はS1607で、転送部421から送信したエラー画面を表示するためのJavaScriptコードをスクリプト実行部414で実行する。
次にCPU204はS1608で、JavaScriptコードのWebアプリケーション400のエラー画面構成データの記憶場所を示すURLに基づき、HTTP Requestを通信部414からネットワークI/F201を介し外部装置101に送信する。これにより外部装置101のCPU302は、ネットワークI/F301を介して、HTTP Requestを受け取る。その後、CPU302はS1609で、記憶部304からWebアプリケーション400のエラー画面データ(HTML)を、HTTP Responseに含めてネットワークI/F301を介し画像処理装置100へ送信する。これにより画像処理装置100のCPU204はS1610で、ネットワークI/F201を介して通信部411で受信したデータを解析部412で解析し、S605で、画面表示部413を通じて表示部203にエラー画面を表示する。
S1605,S1606はS627,S628と、S1607はS629と、S1608からS1610は、S602からS604とそれぞれ同様の処理を行う。即ち、S1605で、判定部1500の判定結果に応じたJavaScriptコード文字列を作成する。次にS1606でJavaScriptコードへ変換し、そのコードを引数としたスクリプト実行部414の関数呼び出しによる、Webブラウザ410への実行結果の転送を行う。そして、S1607で、Webブラウザ410でスクリプトを実行し、S1608からS1610で、判定結果を反映した画面表示部413によるエラー画面表示を行う。
実施形態2では、S1605において、作成するJavaScriptコード文字列を、エラーコードに応じて画面を移動するスクリプトとして設定している(不図示)。ここでは、アプリケーションが存在しないエラーコードの場合、「string returnRelult = "location.replace('http://192.168.xx.xxx/ errorName.html');";」を生成する。またバージョン情報が一致しない場合、「string returnRelult = "location.replace('http://192.168.xx.xxx/errorVersion.html');";」を生成する(不図示)。そして、スクリプト内に記述されたURLに基づき、前者の場合は図19(A)のエラー画面、後者の場合は図19(B)を表示する。そのため、外部装置101へのHTMLデータ取得要求(S1608,S1609)と、HTMLデータ解析処理(S1610)が含まれている。
図19は、実施形態2に係る画像形成装置100で表示されるエラー画面例を示す図で、図19(A)は、アプリケーションが存在しないエラーの場合の画面例を示し、図19(B)は、バージョン情報が一致しない場合のエラー画面例を示す。
以上のプログラムにより、要求転送部420は、判定結果がエラーだった場合、Webブラウザ410にエラー画面を表示するJavaScriptコードを生成し、Webブラウザ410へ送信する(S1605,S1606)。Webブラウザ410は、受信したJavaScriptコードを実行し(S1607)、エラー画面を構成するHTMLデータの取得、解析、画面表示を行う(S1608,S1609,S1610)。
尚、実施形態2において、表示するエラー画面のHTMLデータは、外部装置101のWebアプリケーション400に格納され、JavaScriptコードでURLを指定して取得しているが、実現構成はこれに限られたものではない。即ち、JavaScriptコードの生成、実行を通じて、アプリケーションが存在しない、またはバージョン情報が一致しないエラー画面の表示を実行できる構成であれば実現構成に制限はない。
以上が図16における、S1605からS1610までの処理の流れの説明である。
以上説明したように実施形態2によれば、Webブラウザ410からのローカルアプリケーションの利用において、Webアプリケーション400起動時に、そのWebアプリケーションが利用可能かどうかを判定することができる。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
100…画像形成装置、101…外部装置、202…入力部、203…表示部、204…CPU、208…記憶部、302…CPU、410…Webブラウザ、420…要求転送部、430…アプリケーションプラットフォーム、431…要求通信部アプリケーション。

Claims (11)

  1. Webブラウザを有する画像処理装置であって、
    前記画像処理装置の機能を実行するアプリケーションと、
    前記Webブラウザから制御要求を受けると、対応するアプリケーションの少なくともクラス名と関数名を制御要求として転送する要求転送手段と、
    前記要求転送手段により転送された前記制御要求に含まれるアプリケーションのクラスをロードして実行関数を呼び出すことにより前記対応するアプリケーションを実行する制御手段と、
    を有することを特徴とする画像処理装置。
  2. 前記Webブラウザは、ネットワークを介して接続された外部装置からHTMLデータを取得して操作画面を表示し、前記操作画面を介したユーザの操作に応じて、前記HTMLデータに含まれるスクリプトを実行して前記制御要求を生成することを特徴とする請求項1に記載の画像処理装置。
  3. 前記要求転送手段は、前記Webブラウザで実行された前記スクリプトに対応付けられたコールバック関数の引数を前記制御手段に転送することを特徴とする請求項2に記載の画像処理装置。
  4. 前記制御手段は、更に前記アプリケーションの実行結果を前記要求転送手段に転送することを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
  5. 前記制御手段は、前記対応するアプリケーションの制御APIの関数を実行することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
  6. 前記制御手段は、前記制御要求に含まれるアプリケーションのクラスの制御APIの関数名が存在するかどうかを判定し、存在するときは当該制御APIの関数の引数を用いて前記対応するアプリケーションの制御APIの関数を実行し、存在しないときは前記要求転送手段にエラーを返すことを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。
  7. 前記要求転送手段は、前記アプリケーションの実行結果を基にスクリプトを生成して前記Webブラウザに送信することを特徴とする請求項4に記載の画像処理装置。
  8. 前記制御要求は、アプリケーションのアプリケーション名、バージョン情報の少なくともいずれかを含み、当該アプリケーションのアプリケーション名、バージョン情報の少なくともいずれかに基づいて、実行可能なアプリケーションが存在するか判定する判定手段を更に有することを特徴とする請求項1乃至7のいずれか1項に記載の画像処理装置。
  9. 前記スクリプトは、JavaScriptであることを特徴とする請求項2,3,7のいずれか1項に記載の画像処理装置。
  10. Webブラウザを有し、機能を実行するアプリケーションを具備する画像処理装置を制御する制御方法であって、
    前記Webブラウザから制御要求を受けると、対応するアプリケーションの少なくともクラス名と関数名を制御要求として転送する要求転送工程と、
    前記要求転送工程で転送された前記制御要求に含まれるアプリケーションのクラスをロードして実行関数を呼び出すことにより前記対応するアプリケーションを実行する制御工程と、
    を有することを特徴とする画像処理装置の制御方法。
  11. コンピュータを、請求項1乃至9のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
JP2014106458A 2014-05-22 2014-05-22 画像処理装置とその制御方法、及びプログラム Pending JP2015222872A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014106458A JP2015222872A (ja) 2014-05-22 2014-05-22 画像処理装置とその制御方法、及びプログラム
US14/712,201 US9591164B2 (en) 2014-05-22 2015-05-14 Image processing apparatus, non-transitory storage media and control method thereof for generating operation screen to utilize various applications for executing image processing functions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014106458A JP2015222872A (ja) 2014-05-22 2014-05-22 画像処理装置とその制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2015222872A true JP2015222872A (ja) 2015-12-10

Family

ID=54556957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014106458A Pending JP2015222872A (ja) 2014-05-22 2014-05-22 画像処理装置とその制御方法、及びプログラム

Country Status (2)

Country Link
US (1) US9591164B2 (ja)
JP (1) JP2015222872A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017163520A (ja) * 2016-03-04 2017-09-14 株式会社リコー 画像形成装置、画像形成システム、画像形成方法、及びプログラム
US10044896B2 (en) 2016-09-26 2018-08-07 Fuji Xerox Co., Ltd. Image processing apparatus, server apparatus, and image processing system for installing of image processing apparatus applications through a web browser
CN108762821A (zh) * 2017-04-18 2018-11-06 海马云(天津)信息技术有限公司 电子设备运行应用的装置及方法、电子设备
JP2019121261A (ja) * 2018-01-10 2019-07-22 コニカミノルタ株式会社 情報処理システムおよび制御プログラム
JP2020057872A (ja) * 2018-09-28 2020-04-09 株式会社リコー 電子機器、情報処理システム及び終了操作抑制方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10116814B2 (en) * 2014-10-10 2018-10-30 Seiko Epson Corporation Electronic apparatus and display control method for electronic apparatus
US11159603B2 (en) 2015-04-15 2021-10-26 Hyland Switzerland Sàrl Cross-platform module for loading across a plurality of device types
US10356072B2 (en) * 2015-06-04 2019-07-16 Ricoh Company, Ltd. Data process system, data process apparatus, and data protection method
JP6733479B2 (ja) * 2016-03-17 2020-07-29 株式会社リコー 情報処理システム、情報処理装置、画像形成装置、情報処理方法およびプログラム
US10033898B2 (en) 2016-03-17 2018-07-24 Ricoh Company, Ltd. Information processing system, image forming apparatus, and method of processing information
US10880272B2 (en) * 2017-04-20 2020-12-29 Wyse Technology L.L.C. Secure software client
US10735639B2 (en) * 2017-06-29 2020-08-04 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and program
US10459706B1 (en) 2018-03-12 2019-10-29 State Farm Mutual Automobile Insurance Company System and methods for simplifying three-dimensional models
JP7098427B2 (ja) * 2018-06-08 2022-07-11 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4241576B2 (ja) * 2004-11-05 2009-03-18 ブラザー工業株式会社 画像処理システム、画像処理装置、及びサーバ
GB2478750A (en) * 2010-03-16 2011-09-21 Domino Printing Sciences Plc Configurable marking apparatus
JP5683218B2 (ja) * 2010-11-10 2015-03-11 キヤノン株式会社 画像処理装置、情報処理システム、情報処理方法、及びプログラム
JP6039909B2 (ja) * 2012-03-07 2016-12-07 キヤノン株式会社 情報処理装置、その情報処理装置の制御方法およびプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017163520A (ja) * 2016-03-04 2017-09-14 株式会社リコー 画像形成装置、画像形成システム、画像形成方法、及びプログラム
US10044896B2 (en) 2016-09-26 2018-08-07 Fuji Xerox Co., Ltd. Image processing apparatus, server apparatus, and image processing system for installing of image processing apparatus applications through a web browser
CN108762821A (zh) * 2017-04-18 2018-11-06 海马云(天津)信息技术有限公司 电子设备运行应用的装置及方法、电子设备
CN108762821B (zh) * 2017-04-18 2023-04-25 海马云(天津)信息技术有限公司 电子设备运行应用的装置及方法、电子设备
JP2019121261A (ja) * 2018-01-10 2019-07-22 コニカミノルタ株式会社 情報処理システムおよび制御プログラム
JP2020057872A (ja) * 2018-09-28 2020-04-09 株式会社リコー 電子機器、情報処理システム及び終了操作抑制方法
JP7135685B2 (ja) 2018-09-28 2022-09-13 株式会社リコー 電子機器、情報処理システム及び終了操作抑制方法

Also Published As

Publication number Publication date
US20150341518A1 (en) 2015-11-26
US9591164B2 (en) 2017-03-07

Similar Documents

Publication Publication Date Title
JP2015222872A (ja) 画像処理装置とその制御方法、及びプログラム
KR101850582B1 (ko) 정보 처리 단말, 정보 처리 단말의 제어 방법, 및 컴퓨터 판독가능 기억 매체
US8402108B2 (en) System for providing web page having home network function and method of controlling home network devices
US20120284696A1 (en) Method, Apparatuses and a System for Compilation
KR101516504B1 (ko) 인스톨 방법 및 장치
WO2023093429A1 (zh) 微应用的运行方法、装置、设备、存储介质及程序产品
KR102073678B1 (ko) 펌웨어 가상화를 위한 방법 및 장치
JP5786535B2 (ja) 機器、情報処理方法、情報処理プログラム、及び記録媒体
CN111427594B (zh) 应用程序运行方法及装置
US8937728B2 (en) Image processing apparatus, server apparatus, methods for controlling displays of the apparatuses, and storage medium
US20230205503A1 (en) Method for dynamically integrating application programs, and software system and machine using the same
US20170033980A1 (en) Agent manager for distributed transaction monitoring system
CN114168460A (zh) 混合开发中前端代码的远程调试方法、设备及存储介质
CN113709243B (zh) 设备远程控制方法及装置、电子设备和存储介质
US9606761B2 (en) Information processing apparatus for controlling an output process and method for the same
KR20210144045A (ko) 마이크로서비스 아키텍처 애플리케이션 실행 시스템과 방법 및 이를 위한 컴퓨터 프로그램
US8286131B2 (en) Environment definition files for an environment definition system
EP3462363A1 (en) Image forming apparatus and control method therefor
JP2016143212A (ja) 情報処理装置、情報処理装置の制御方法、及び制御プログラム
JP6057740B2 (ja) 画像形成装置、情報処理方法及びプログラム
KR20220049334A (ko) 어플리케이션 테스트 방법 및 테스트 시스템
JP2010141598A (ja) 画像形成装置、表示制御方法、及び表示制御プログラム
US20240036888A1 (en) Information Processing Device, Information Processing System, and User Interface Providing Method
WO2011117954A1 (ja) 仮想マシン管理装置、仮想マシン管理方法、及びプログラム
JP4405132B2 (ja) 画像情報処理装置用端末エミュレータおよび画像情報処理装置用端末アプリ