(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023082421
(43)【公開日】2023-06-14
(54)【発明の名称】情報処理装置、方法およびプログラム
(51)【国際特許分類】
H04L 67/02 20220101AFI20230607BHJP
G06F 21/32 20130101ALI20230607BHJP
G06F 21/33 20130101ALI20230607BHJP
【FI】
H04L67/02
G06F21/32
G06F21/33
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021196182
(22)【出願日】2021-12-02
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100110607
【弁理士】
【氏名又は名称】間山 進也
(72)【発明者】
【氏名】和泉 直孝
(57)【要約】
【課題】 OSおよびブラウザに依存せずにAPIを利用できる情報処理装置、方法およびプログラムを提供すること。
【解決手段】 WebView部331を備えるアプリケーション330と、特定のプログラミング言語に対応していないOSとがインストールされた情報処理装置110であって、特定のプログラミング言語をベースとするAPIを提供するサーバと通信する通信部310を含み、アプリケーション330は、通信部310が特定のプログラミング言語をベースとするAPIからのレスポンスを受信した場合に、アプリケーション331のネイティブの実装を読み込むスクリプト実行部332を備える。
【選択図】
図4
【特許請求の範囲】
【請求項1】
WebView機能を備えるアプリケーションと、特定のプログラミング言語に対応していないOSとがインストールされた情報処理装置であって、
前記特定のプログラミング言語をベースとするAPIを提供するサーバと通信する通信手段を含み、
前記アプリケーションは、前記通信手段が前記特定のプログラミング言語をベースとする前記APIからのレスポンスを受信した場合に、当該アプリケーションのネイティブの実装を読み込む手段を備えることを特徴とする、
情報処理装置。
【請求項2】
前記APIは、WebAPI、ライブラリまたはSDKのいずれかである、請求項1に記載の情報処理装置。
【請求項3】
前記アプリケーションは、FIDO2方式のログイン認証を行うことを特徴とする、請求項1または2に記載の情報処理装置。
【請求項4】
前記特定のプログラミング言語が、スクリプト言語であることを特徴とする、請求項1~3のいずれか1項に記載の情報処理装置。
【請求項5】
前記OSが、Android(登録商標)またはiOS(登録商標)のいずれかであり、
前記APIが、JavaScript(登録商標)ベースのWebAPIである、
請求項1~4のいずれか1項に記載の情報処理装置。
【請求項6】
WebView機能を備えるアプリケーションと、特定のプログラミング言語に対応していないOSとがインストールされた情報処理装置が実行する方法であって、
前記特定のプログラミング言語をベースとするAPIからのレスポンスを受信するステップと、
前記レスポンスを受信した場合に、前記アプリケーションのネイティブの実装を読み込むステップと
を含む、方法。
【請求項7】
特定のプログラミング言語に対応していないOSがインストールされた情報処理装置にインストールされ、WebView機能を備えるプログラムであって、
前記プログラムは、前記情報処理装置に、
前記特定のプログラミング言語をベースとするAPIからのレスポンスを受信するステップと、
前記レスポンスを受信した場合に、当該プログラムにおけるネイティブの実装を読み込むステップと
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、APIを実行する情報処理装置、方法およびプログラムに関する。
【背景技術】
【0002】
近年の情報処理技術の発達に伴い、多様なクラウドサービスが展開されている。クラウドサービスの利用はパソコン端末のみならず、スマートフォン端末やMPFなどの多岐な情報処理装置に広がっている。
【0003】
一方で、情報処理装置が、クラウドサービスを利用するためのWebAPIに対応していないブラウザしか搭載していないOSを使用している場合もあり、このような情報処理装置は、クラウドサービスを利用できない。例えば、JavaScript(登録商標)ベースのWebAPIを利用する場合には、OSがWindows(登録商標)である情報処理装置であれば当該WebAPIを利用できるが、Android(登録商標)やiOS(登録商標)などのOSを搭載した情報処理装置(スマートフォン端末など)の場合には利用できない。
【0004】
この点につき、特開2014-215672号公報(特許文献1)は、コンピュータ内に仮想的なWeb環境を構築し、Webブラウザから利用できない機能をローカルで動作するWebAPI化する技術を開示している。特許文献1によれば、OSやデバイスに依存せずに、WebAPIの処理を代替的に実行することができる。
【0005】
しかしながら、特許文献1の方法では、仮想Webサーバが必要であること、また、仮想WebサーバがサポートしていないAPIには対応できないことから、さらなる利便性の向上が求められていた。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、上記従来技術における課題に鑑みてなされたものであり、OSおよびブラウザに依存せずにAPIを利用できる情報処理装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
すなわち、本発明によれば、
WebView機能を備えるアプリケーションと、特定のプログラミング言語に対応していないOSとがインストールされた情報処理装置であって、
前記特定のプログラミング言語をベースとするAPIを提供するサーバと通信する通信手段を含み、
前記アプリケーションは、前記通信手段が前記特定のプログラミング言語をベースとする前記APIからのレスポンスを受信した場合に、当該アプリケーションのネイティブの実装を読み込む手段を備えることを特徴とする、
情報処理装置が提供される。
【発明の効果】
【0008】
本発明によれば、OSおよびブラウザに依存せずにAPIを利用できる情報処理装置、方法およびプログラムが提供できる。
【図面の簡単な説明】
【0009】
【
図1】本実施形態におけるシステム全体のハードウェアの概略構成を示す図。
【
図2】本実施形態の情報処理装置に含まれるハードウェア構成を示す図。
【
図3】一般的な情報処理装置の従来技術におけるWebAPIの実行を説明する図。
【
図4】本実施形態の情報処理装置に含まれるソフトウェアブロック図。
【
図5】本実施形態において情報処理装置がWebAPIを実行する処理を示すフローチャート。
【
図6】本実施形態の具体的な例において情報処理装置がWebAPIを実行する処理を示すフローチャート。
【
図7】本実施形態の具体的な例における表示画面の例を示す図。
【発明を実施するための形態】
【0010】
以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜その説明を省略するものとする。
【0011】
図1は、本実施形態におけるシステム100全体のハードウェアの概略構成を示す図である。
図1では、例として、パソコン端末110a、画像形成装置110b、スマートフォン端末110cなどの情報処理装置110と、サーバ120とが、インターネットやLANなどのネットワーク130を介して接続された環境を例示している。なお、情報処理装置110の台数は、
図1に示したものに限らず、システム100に含まれる台数に制限はない。また、情報処理装置110やサーバ120から、ネットワーク130へ接続する方法は、有線または無線のどちらでもよい。
【0012】
情報処理装置110は、例えば、パソコン端末110a、画像形成装置110b、スマートフォン端末110cなどの装置であって、ユーザが操作することによって、所定の演算、処理、ジョブなどを実行することができる。
【0013】
サーバ120は、情報処理装置110に各種サービスを提供する装置である。本実施形態のサーバ120は、情報処理装置110にWebAPIを提供することができる。また、サーバ120は、情報処理装置110へのプログラムの提供、サービスを利用するユーザのアカウント管理、認証、契約内容の管理などを行うことができる。なお、本実施形態のサーバ120は、上記の各種サービスを1台の装置によって提供してもよいし、複数の装置によって提供してもよい。
【0014】
次に、情報処理装置110のハードウェア構成について説明する。
図2は、本実施形態の情報処理装置110に含まれるハードウェア構成を示す図である。情報処理装置110は、CPU210と、RAM220と、ROM230と、記憶装置240と、通信I/F250と、ディスプレイ260と、入力装置270とを含んで構成され、各ハードウェアはバスを介して接続されている。
【0015】
CPU210は、情報処理装置110の動作を制御するプログラムを実行し、所定の処理を行う装置である。RAM220は、CPU210が実行するプログラムの実行空間を提供するための揮発性の記憶装置であり、プログラムやデータの格納用、展開用として使用される。ROM230は、CPU210が実行するプログラムやファームウェアなどを記憶するための不揮発性の記憶装置である。
【0016】
記憶装置240は、情報処理装置110を機能させるOSや種々のソフトウェア、設定情報、各種データなどを記憶する、読み書き可能な不揮発性の記憶装置である。記憶装置240の一例としては、HDD(Hard Disk Drive)やSSD(Solid State Drive)などが挙げられる。
【0017】
通信I/F250は、情報処理装置110とネットワーク130とを接続し、ネットワーク130を介して他の装置との通信を可能にする。ネットワーク130を介した通信は、有線通信または無線通信のいずれであってもよく、TCP/IPなどの所定の通信プロトコルを使用し、各種データを送受信できる。
【0018】
ディスプレイ260は、各種データや情報処理装置110の状態などを、ユーザに対して表示する装置であり、例として、LCD(Liquid Crystal Display)などが挙げられる。入力装置270は、ユーザが情報処理装置110を操作するための装置であり、例として、キーボード、マウスなどが挙げられる。なお、ディスプレイ260と入力装置270は、それぞれ別個の装置であってもよいし、タッチパネルディスプレイのような両方の機能を備えるものであってもよい。
【0019】
以上、本実施形態の情報処理装置110に含まれるハードウェア構成について説明した。なお、
図2に示した情報処理装置110のハードウェア構成は一例であって、上述した以外のハードウェアを含んでもよい。例えば、情報処理装置110が画像形成装置110bの場合には、プリンタ装置やスキャナ装置を備えていてもよいし、スマートフォン端末110cの場合には、カメラ、マイク、スピーカを備えていてもよい。また、情報処理装置110は、ユーザのログイン認証をおこなうためのカードリーダを備えていてもよい。
【0020】
ここで、本実施形態の詳細を説明する前提として、従来技術においてWebAPIを実行する情報処理装置110を説明する。
図3は、一般的な情報処理装置110の従来技術におけるWebAPIの実行を説明する図である。
【0021】
一般的な従来技術においてWebAPIを実行する情報処理装置110は、
図3に示すように、通信部310、表示部320、アプリケーション330、ブラウザ340含んで構成される。
【0022】
通信部310は、通信I/F250の動作を制御し、情報処理装置110とウェブサービス121とを接続する手段である。通信部310は、ウェブサービス121を提供するサーバ120と間で、各種データの送受信を行うことができ、特に、後述するブラウザ340の要求に応じてWebAPIを呼び出すことができる。
【0023】
表示部320は、ディスプレイ260の動作を制御し、各種情報を画面上に表示する手段である。表示部320は、例えば、アプリケーション330に関する画面、ブラウザ340によるウェブページの画面やWebAPIなどを表示することができる。
【0024】
アプリケーション330は、情報処理装置110上で所定の処理を実行するソフトウェアである。アプリケーション330の一例として、クラウドサービスと連携したユーザ認証処理が挙げられる。
【0025】
ブラウザ340は、通信部310を介してネットワーク130から取得したHTMLデータを読み込んで処理するソフトウェアである。また、ブラウザ340は、ウェブサービス121をコールしてWebAPIを利用することができる。
【0026】
一般的な従来技術では、WebAPIをクライアント側(情報処理装置110)からウェブサービス121にコールする。ここで、特定のプログラミング言語をベースとしたWebAPIの場合であっても、ブラウザ340が当該プログラミング言語に対応していれば、WebAPIをコールし、実行することができる。例えば、JavaScript(登録商標。以下同じ)ベースのWebAPIを利用する場合に、Windows(登録商標)10上のブラウザ340は、JavaScriptに対応しているため、WebAPIをコールして実行することができる。
【0027】
しかしながら、WebAPIの言語をサポートしていないOSやブラウザしか搭載していない情報処理装置110の場合には、上述したようなWebAPIのコールを行うことができない。例えば、Android(登録商標)やiOS(登録商標)を搭載したスマートフォンなどでは、特定のJavaScriptベースのWebAPIを実行できず、
図3に示したような、ブラウザ340からのWebAPIのコールを行うことができない。
【0028】
そこで、本実施形態では、アプリケーション330のWebView機能を拡張して、WebAPIのコールを行う。以下、
図4を参照して、本実施形態の情報処理装置110のソフトウェアブロックについて説明する。
図4は、本実施形態の情報処理装置110に含まれるソフトウェアブロック図である。
【0029】
図4に示すように本実施形態の情報処理装置110は、通信部310、表示部320、アプリケーション330の各機能モジュールを含む。
図4に示す通信部310および表示部320は、
図3で説明した従来技術のものと同様であるため、詳細な説明は省略する。
【0030】
アプリケーション330は、情報処理装置110上で所定の処理を実行するソフトウェアであり、例えばユーザによる操作に対する処理を実行することができる。本実施形態のアプリケーション330は、WebView部331、スクリプト実行部332を含む。
【0031】
WebView部331は、HTMLコンテンツなどのウェブページを表示、閲覧するための、アプリケーション330に実装された機能手段である。WebView部331は、通信部310を介して取得したHTMLデータを読み込んで、コンテンツの内容を表示部320に表示させることができる。本実施形態のWebView部331は、Java(登録商標)やSwift(登録商標)などによって実装され、WebAPIのコールや応答の受け付けなどを行うことができる。説明する実施形態では、特定のJavaScriptをWebView部331に埋め込むことで、特定のJavaScriptベースのWebAPIを実行できないOSであっても、当該特定のJavaScriptベースのWebAPIを扱うことができる。
【0032】
スクリプト実行部332は、ウェブサービス121が提供するWebAPIからの特定のレスポンスを受領した場合に、スクリプトの実装を読み込む手段である。スクリプト実行部332は、WebView部331を介してWebAPIからのレスポンスを受け付けることができ、当該WebAPIを実行ことができる。なお、スクリプト実行部332は、便宜的な名称であり、当該機能手段が実行する処理は、スクリプト言語に限定されるものではない。
【0033】
なお、上述したソフトウェアブロックは、CPU210が本実施形態のプログラムを実行することで、各ハードウェアを機能させることにより、実現される機能手段に相当する。また、各実施形態に示した機能手段は、全部がソフトウェア的に実現されても良いし、その一部または全部を同等の機能を提供するハードウェアとして実装することもできる。
【0034】
また、
図4のソフトウェアブロックは説明の便宜の観点から示したものであり、必ずしもアプリケーション330がスクリプト実行部332を備えていなくてもよい。他の実施形態の例として、情報処理装置110は、WebViewのような拡張APIが用意されているブラウザ340にスクリプト実行部332を実装したものを備える構成であってもよい。
【0035】
次に情報処理装置110が実行する処理について
図5を参照して説明する。
図5は、本実施形態において情報処理装置110がWebAPIを実行する処理を示すフローチャートである。ここで、
図5に示す処理は、主としてアプリケーション330が実行する。
【0036】
なお、以下に説明する実施形態では、認証カードを用いたチャレンジアンドレスポンス認証を行うJavaScriptベースのWebAPIをウェブサービス121からコールして実行する場合を例に説明する。そのため、説明する実施形態の例では、アプリケーション330は、カード認証を行うソフトウェアであり、特定のJavaScriptレスポンスを受領した際に、アプリケーションのJava/Swiftの実装を読み込むようにスクリプト実行部332が設定されている(換言すると、WebView部331にJavaScriptがセットされている)。しかしながら説明する実施形態は一例であって、特に実施形態を限定するものではない。したがって、例えば、WebAPIは、JavaScriptベースのものでなくてもよいし、認証カードを用いたチャレンジアンドレスポンス認証以外の処理を行うものであってもよい。また、説明する実施形態では特定のOSを想定していないが、一例として、Runtime上でJavaScriptを実行できるOSに本実施形態を適用することができる。
【0037】
情報処理装置110は、ステップS1000から処理を開始する。その後、アプリケーション330は、ステップS1001において、処理に係るイベントを受信する。説明する実施形態の例では、アプリケーション330は、ウェブサービス121にログインするためにユーザが認証カードを情報処理装置110にかざした動作が行われたというイベントを受信する。
【0038】
次に、アプリケーション330は、ステップS1002において、イベントに対応したUIを表示する。説明する実施形態の例では、ウェブサービス121にログインするためのサインイン画面が表示される。
【0039】
その後、ステップS1003では、WebView部331はウェブサービス121に対して、ログインする旨のリクエストを送信する。続くステップS1004においてWebView部331は、ウェブサービス121からリクエストに対するJavaScriptのレスポンスを受信する。説明する実施形態の例では、ステップS1004で受信するレスポンスは、チャレンジ付きレスポンスである。
【0040】
次に、ステップS1005では、情報処理装置110のブラウザがWebAPIの言語に対応しているか否かによって処理を分岐する。対応している場合には(YES)、ステップS1006に進む。ステップS1006では、ブラウザがWebAPIの言語に対応しているため、受信したレスポンスに基づく処理が実行できる。その後、ステップS1008において、実行したJavaScriptのレスポンスをウェブサービス121に返す。その後、ステップS1009で、情報処理装置110は処理を終了する。
【0041】
一方で、ステップS1005において、WebAPIの言語に対応していない場合には(NO)、ステップS1007に進む。説明する実施形態の例では、情報処理装置110は、JavaScriptに対応していないため、ステップS1007の処理に進む。
【0042】
ステップS1007では、スクリプト実行部332がJavaScriptを実行し、アプリケーション330のネイティブ実装(Java/Swift)、すなわち、WebAPIの結果を生成するための処理を実行する。なお、ここで説明する「ネイティブ」とはOS上で解釈可能な言語を指し、説明する実施形態の例においては、JavaやSwiftと同義である。説明する実施形態の例におけるステップS1007では、チャレンジを元にユーザ情報をハッシュ化するロジックを実行し、次いで、JavaScriptに対してハッシュ化した結果をJSON(JavaScript Object Notation)形式で渡す。
【0043】
その後、ステップS1008において、実行したJavaScriptのレスポンスをウェブサービス121に返す。その後、ステップS1009で、情報処理装置110は処理を終了する。
【0044】
上述した処理によって、WebAPIの言語に対応していないOSやブラウザしか搭載していない情報処理装置110であっても、アプリケーション330内の処理としてWebAPIをコールして利用することができる。
【0045】
次に、本実施形態に係る発明を適用した具体的な例について
図6を参照して説明する。
図6は、本実施形態の具体的な例において情報処理装置110がWebAPIを実行する処理を示すフローチャートである。
図6に示す具体例は、FIDO2方式において認証処理を行う例を示しているが、特に実施形態を限定するものではない。なお、以下の
図6の説明では、
図5において説明した処理と同様の処理については、適宜その説明を省略する。
【0046】
情報処理装置110は、ステップS2000から処理を開始する。その後、ステップS2001において、ウェブサービス121にログインするために、FIDO2カードを情報処理装置110にかざす。次に、ステップS2002では、ステップS2001のイベント、すなわち、FIDO2カードを情報処理装置110にかざす操作が行われた旨を受信する。
【0047】
次いで、情報処理装置110は、ステップS2003~S2005の処理を行う。なお、ステップS2003~S2005の処理は、
図5におけるステップS1002~S1004に相当する処理であるため、説明を省略する。
【0048】
次に、情報処理装置110は、ステップS2006を行う。なお、ステップS2006は、
図5におけるステップS1007に相当する処理であるため、説明を省略する。また、説明の便宜上省略しているが、ステップS2006の処理を行う前提として、
図5におけるステップS1005に相当する分岐処理が行われている点に留意されたい。
【0049】
その後、ステップS2007において、アプリケーション330は、チャレンジを元にユーザ情報をハッシュ化するロジックを実行する。次いで、ステップS2008では、多要素認証によって正当なユーザであるかを識別する。
【0050】
ステップS2008において本人であることを識別した後、ステップS2009では、チャレンジを元に、識別された署名付きのユーザ情報をハッシュ化するロジックを実行する。その後、ステップS2010において、JavaScriptに対してハッシュ化した結果をJSON形式で渡す。
【0051】
次に、ステップS2011では、実行したJavaScriptのレスポンスをウェブサービス121に返す。なお、ステップS2011の処理は、
図5におけるステップS1008の処理と同様である。その後、ステップS2012で、情報処理装置110は処理を終了する。
【0052】
上述した処理によって、WebAPIの言語に対応していないOSやブラウザしか搭載していない情報処理装置110において、FIDO2方式において認証処理を行うWebAPIをコールして利用することができる。
【0053】
次に、
図6に示した処理におけるアプリケーション330のUI例について
図7を参照して説明する。
図7は、本実施形態の具体的な例における表示画面の例を示す図である。
【0054】
図7(a)は、
図6に示した認証処理の開始画面の例である。
図7(a)に示す画面において、「セキュリティキーを使用してサインインする」を選択することで、
図6の処理を開始する。
【0055】
そして、
図6のステップS2001において、ユーザがFIDO2カードをかざすことで、
図7(b)に示す画面に遷移する。その後は、
図7(b)に示す画面が表示されているバックグラウンドで、
図6に示す処理(ステップS2002以降の処理)が実行される。
【0056】
なお、ここまで、WebAPIを実行する実施形態について説明したが、より広義のAPIであってもよく、例えば、特定の言語ベース(例えばJavaScriptベース)のライブラリやSDK(Software Development Kit)であっても、説明した実施形態を適用することができる。
【0057】
また、説明した実施形態は、アプリケーションにスクリプト実行部を導入することで機能を拡張するものであったが、実施形態はアプリケーションに限らず、例えば、WebViewのような拡張APIが用意されているブラウザにスクリプト実行部に相当する機能を導入することとしてもよい。これによって、OSがWebAPIの言語に対応していなくても、ブラウザの拡張を実装することで、WebAPIを利用することができる。
【0058】
以上、説明した本発明の実施形態によれば、OSおよびブラウザに依存せずにAPIを利用できる情報処理装置、方法およびプログラムを提供することができる。
【0059】
上述した本発明の実施形態の各機能は、C、C++、C#、Java(登録商標)等で記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD-ROM、MO、DVD、フレキシブルディスク、EEPROM(登録商標)、EPROM等の装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【0060】
上記で説明した実施形態の各機能は、一または複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュールなどのデバイスを含むものとする。
【0061】
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【0062】
100…システム、110…情報処理装置、110a…パソコン端末、110b…画像形成装置、110c…スマートフォン端末、120…サーバ、121…ウェブサービス、130…ネットワーク、210…CPU、220…RAM、230…ROM、240…記憶装置、250…通信I/F、260…ディスプレイ、270…入力装置、310…通信部、320…表示部、330…アプリケーション部、331…WebView部、332…スクリプト実行部、340…ブラウザ
【先行技術文献】
【特許文献】
【0063】