JP2012014510A - アプリケーション実行装置及びプログラム - Google Patents

アプリケーション実行装置及びプログラム Download PDF

Info

Publication number
JP2012014510A
JP2012014510A JP2010151109A JP2010151109A JP2012014510A JP 2012014510 A JP2012014510 A JP 2012014510A JP 2010151109 A JP2010151109 A JP 2010151109A JP 2010151109 A JP2010151109 A JP 2010151109A JP 2012014510 A JP2012014510 A JP 2012014510A
Authority
JP
Japan
Prior art keywords
task
screen
data
flow
execution
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
JP2010151109A
Other languages
English (en)
Other versions
JP5409529B2 (ja
Inventor
Takao Yoneda
貴雄 米田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010151109A priority Critical patent/JP5409529B2/ja
Publication of JP2012014510A publication Critical patent/JP2012014510A/ja
Application granted granted Critical
Publication of JP5409529B2 publication Critical patent/JP5409529B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】画面の一部の表示内容を更新する手順をカスタマイズしやすくする。
【解決手段】ブラウザ120はアプリケーション・サーバ220から実行エンジン121をダウンロードする。実行エンジン121のフロー処理部124は、ブラウザ120で表示される画面を更新するための処理を行う複数のタスクを実行するタスク実行部を有する。アプリケーション・サーバ220は、複数のタスクを実行するフローを画面ごとに定義する動作フロー定義情報227を保持する。フロー処理部124は、ブラウザ120で表示される画面が遷移する度に、アプリケーション・サーバ220から遷移先の画面の動作フロー定義情報227を取得し、取得した動作フロー定義情報227で定義されたフローに従って、上記複数のタスクを上記タスク実行部に実行させる。
【選択図】図3

Description

本発明は、アプリケーション実行装置及びプログラムに関するものである。本発明は、特に、フロー処理型アプリケーション実行装置に関するものである。
従来のアプリケーション開発方法では、画面が一枚のソースコードで構成される。このためアプリケーションの画面をカスタマイズする場合、画面全体を改修しなければならなく、また、画面で使用するロジックも画面ごとに改修しなければならなく、開発者の負担が大きかった。画面とロジックを部品単位に分解した上で、それらの部品を連携させてアプリケーションを実行させることができれば、画面のカスタマイズを簡単にすることができる。上記を実現するためには、部品の実行順序の制御や部品間でのデータの受け渡しを可能にする必要があった。
従来技術として、データの受け渡しと実行順序の制御を同時に行う方法が開示されている(例えば、特許文献1参照)。この方法では、アプリケーションが共有のデータ領域を監視することで、データの変更をトリガーとして、各部品(画面部品、ロジック部品)へのデータの受け渡し、及び、起動のタイミングを制御している。また、部品間で予めデータへの共通の入出力仕様を定義しておくことで、部品の組み換えを可能としている。
特開2003−216427号公報
従来の方法では、画面の一部の表示内容を更新するだけでも、画面全体を更新しなければならない、あるいは、画面の一部の表示内容を更新する手順をカスタマイズしにくいという課題があった。
また、上記の従来技術では、以下のような課題があった。
・処理の流れがデータに依存するため、部品の設計時にデータの更新タイミングを考慮しなければならない。部品を呼び出すためにはデータの更新を行わなければならないため、処理の流れを設計する際にはデータの更新タイミングも考慮しなければならなくなるため、設計が複雑になり開発者の負荷が高くなる。
・部品間でやり取りするデータ形式を予め定義しておかなければ部品の交換ができない。予め定義されていない場合には部品を修正して部品間のインタフェースを合わせる必要があり、カスタマイズを実行する度に上記の作業が発生するため、開発者への負荷が高くなる。
本発明は、例えば、画面の一部の表示内容を更新する手順をカスタマイズしやすくすることを目的とする。
本発明の一の態様に係るアプリケーション実行装置は、
画面を表示するアプリケーションプログラムを実行するアプリケーション実行装置であり、
前記アプリケーションプログラムで表示される画面を更新するための処理を行う複数のタスクを処理装置により実行するタスク実行部と、
前記複数のタスクを実行するフローを画面ごとに定義する定義情報を提供するサーバから、前記アプリケーションプログラムで表示される画面が遷移する度に、遷移先の画面の定義情報を取得し、取得した定義情報で定義されたフローに従って、前記複数のタスクを前記タスク実行部に処理装置により実行させるフロー処理部と、
を備えることを特徴とする。
本発明の一の態様では、アプリケーション実行装置が、アプリケーションプログラムで表示される画面が遷移する度に、サーバから遷移先の画面の定義情報を取得し、取得した定義情報で定義されたフローに従って、画面を更新するための処理を行う複数のタスクを実行する。このため、定義情報を変更するだけで、画面を更新する処理のフローを簡単にカスタマイズすることが可能となる。
実施の形態1に係るシステムの一構成例を示すブロック図。 実施の形態1に係るクライアント・コンピュータのハードウェア構成の一例を示す図。 実施の形態1に係るブラウザとアプリケーション・サーバの詳細な構成の例を示すブロック図。 実施の形態1に係る動作フロー定義情報で定義される処理の流れの一例を示す図。 実施の形態1に係るフロー処理部の詳細な構成の例を示す図。 実施の形態1に係るブラウザの処理の流れを示すフローチャート。 実施の形態1に係る実行エンジンの初期化処理の流れを示すフローチャート。 実施の形態1に係るフロー処理部の処理の流れを示すフローチャート。 実施の形態1に係るタスク実行部の処理の流れを示すフローチャート。
以下、本発明の実施の形態について、図を用いて説明する。
実施の形態1.
図1は、本実施の形態に係るシステムの一構成例を示すブロック図である。
この構成では、クライアント・コンピュータ100とサーバ・コンピュータ200が、例えば、イーサネット(登録商標)・プロトコルにより、通信回線300に接続されている。通信回線300はさらに、プロキシ・サーバ400(サーバ・コンピュータ)を介して、インターネット500に接続され、インターネット500を介して複数のサーバ・コンピュータ600にアクセスすることができる。
クライアント・コンピュータ100は、ハードディスク140と、イーサネット(登録商標)・プロトコルに対応する通信インタフェース160(I/F)を備え、ハードディスク140には、オペレーティング・システムやブラウザ120等を有する。オペレーティング・システムとしては、例えば、マイクロソフト社のWindows(登録商標)、Linux(登録商標)、Mac・OS(登録商標)等を使用することができるが、ここに挙げたオペレーティング・システムには限定されない。ブラウザ120としては、例えば、マイクロソフト社のInternet・Explorer(登録商標)、FireFox(登録商標)等が使用可能であるが、ここに挙げたブラウザには限定されない。
クライアント・コンピュータ100は、画面を表示するアプリケーションプログラムを実行するアプリケーション実行装置の一例である。上記のように、本実施の形態において、クライアント・コンピュータ100は、アプリケーションプログラムの例として、ウェブページの画面を表示するブラウザ120を実行する。
サーバ・コンピュータ200は、ハードディスク240と、イーサネット(登録商標)・プロトコルに対応する通信インタフェース260を備え、ハードディスク240には、オペレーティング・システムやアプリケーション・サーバ220等を有する。オペレーティング・システムとしては、例えば、マイクロソフト社のWindows(登録商標)、Linux(登録商標)、Mac・OS(登録商標)等を使用することができるが、ここに挙げたオペレーティング・システムには限定されない。アプリケーション・サーバ220としては、例えば、Apache・Tomcat、Internet・Information・Server等、任意のものが使用可能であるが、ここに挙げたアプリケーション・サーバには限定されない。
サーバ・コンピュータ600は、サーバ・コンピュータ200と同様に、ハードディスク640と、任意のネットワーク・プロトコルに対応する通信インタフェース660を備え、ハードディスク640には、オペレーティング・システムやアプリケーション・サーバ620等を有する。
サーバ・コンピュータ200,600(特に、アプリケーション・サーバ220,620)は、画面の構成要素となる複数の部品を提供するサーバの一例である。後述するように、本実施の形態において、サーバ・コンピュータ200,600は、複数の部品の例として、GUI(Graphical・User・Interface)部品、GUIロジック部品等を提供する。
ハードディスク140,240,640は、記憶装置の一例である。図示していないが、クライアント・コンピュータ100、サーバ・コンピュータ200,600は、記憶装置以外にも、処理装置、入力装置、出力装置等のハードウェアを備える。ハードウェアは、後述するクライアント・コンピュータ100、サーバ・コンピュータ200,600の各部によって利用される。例えば、処理装置は、各部でデータや情報の演算、加工、読み取り、書き込み等を行うために利用される。入力装置は、そのデータや情報を入力するために、出力装置は、そのデータや情報を出力するために利用される。
図2は、クライアント・コンピュータ100のハードウェア構成の一例を示す図である。なお、サーバ・コンピュータ200,600についても、以下と同様のハードウェア構成を採用することができる。
この例において、クライアント・コンピュータ100は、LCD901(Liquid・Crystal・Display)、キーボード902(K/B)、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(Compact・Disc・Drive)、プリンタ906といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。LCD901の代わりに、CRT(Cathode・Ray・Tube)、あるいは、その他の表示装置が用いられてもよい。マウス903の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
クライアント・コンピュータ100は、プログラムを実行するCPU911(Central・Processing・Unit)を備えている。CPU911は、処理装置の一例である。CPU911は、バス912を介してROM913(Read・Only・Memory)、RAM914(Random・Access・Memory)、通信ボード915、LCD901、キーボード902、マウス903、FDD904、CDD905、プリンタ906、ハードディスク140と接続され、これらのハードウェアデバイスを制御する。ハードディスク140の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ又はその他の記憶媒体が用いられてもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、ハードディスク140は、不揮発性メモリの一例である。これらは、記憶装置の一例である。通信ボード915、キーボード902、マウス903、FDD904、CDD905は、入力装置の一例である。また、通信ボード915、LCD901、プリンタ906は、出力装置の一例である。
通信ボード915は、LAN(Local・Area・Network)等の通信回線300に接続されている。通信ボード915は、LANに限らず、IP−VPN(Internet・Protocol・Virtual・Private・Network)、広域LAN、ATM(Asynchronous・Transfer・Mode)ネットワークといったWAN(Wide・Area・Network)、あるいは、インターネット500に接続されていても構わない。LAN、WAN、インターネット500は、ネットワークの一例である。
ハードディスク140には、オペレーティング・システム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティング・システム921、ウィンドウシステム922により実行される。プログラム群923には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、CPU911により読み出され実行される。ファイル群924には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(識別子)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、RAM914やハードディスク140等の記憶媒体に記憶される。RAM914やハードディスク140等の記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU911の処理(動作)に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、RAM914等のメモリ、FDD904のフレキシブルディスク(FD)、CDD905のコンパクトディスク(CD)、ハードディスク140の磁気ディスク、光ディスク、DVD(Digital・Versatile・Disc)、あるいは、その他の記録媒体に記録される。また、データや信号は、バス912、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
図3は、ブラウザ120とアプリケーション・サーバ220の詳細な構成の例を示すブロック図である。なお、アプリケーション・サーバ220を、アプリケーション・サーバ620に置き換えてもよい。
アプリケーション・サーバ220は、実行エンジン121と、アプリケーション定義情報225と、部品サービス実行部230と、部品リポジトリ235を有する。
実行エンジン121は、クライアント上から部品の呼び出しを制御しアプリケーションを実行する基盤であり、ブラウザ120側からの要求でダウンロードされ、ブラウザ120上で実行される。
アプリケーション定義情報225は、実行エンジン121でアプリケーションを実行するために必要な情報を定義したもの(ファイル等)であり、画面定義情報226、動作フロー定義情報227、操作検出定義情報228を含む。
画面定義情報226は、ブラウザ120上で表示される画面の構成を定義したもの(ファイル等)であり、ブラウザ120上に表示する画面の数、及び、それぞれの画面の大きさ、位置等が記述されている。動作フロー定義情報227は、ブラウザ120上で実行される処理の流れを定義したもの(ファイル等)である。操作検出定義情報228は、ユーザがブラウザ120を操作した際に検出する操作の内容を定義したもの(ファイル等)である。なお、本実施の形態では、画面定義情報226、動作フロー定義情報227、操作検出定義情報228はXML(eXtensible・Markup・Language)の形式で書かれているものとする。
部品サービス実行部230は、部品リポジトリ235に格納されている各部品に対応した実行結果を出力する。部品の種類としては、GUI部品236、GUIロジック部品237、ロジック部品238がある。
GUI部品236は、クライアント・コンピュータ100側のブラウザ120で処理される表示用の部品であり、例えば、HTML(HyperText・Markup・Language)形式のソースコードが記述されている。GUIロジック部品237は、クライアント・コンピュータ100側のブラウザ120で処理される部品であり、GUI部品236の加工や、ブラウザ120上で実行される演算処理等を行うためのソースコードが記述されている。本実施の形態では、JavaScript(登録商標)で記述されているものとする。ロジック部品238は、アプリケーション・サーバ220で実行されるプログラムであり、ビジネスロジック等が実装されている。GUI部品236、GUIロジック部品237に対する部品サービス実行部230の出力結果はソースコードであるが、ロジック部品238に対する部品サービス実行部230の出力結果はロジック部品238を実行したときの出力結果である。
ブラウザ120は、アプリケーション・サーバ220から実行エンジン121をダウンロードしてきて実行する。実行エンジン121は、画面構成部122、操作検出部123、フロー処理部124、部品呼出部125、データ変換部126、データバス127を有する。
画面構成部122は、アプリケーション・サーバ220から画面定義情報226を(直接又はブラウザ120本体を介して)取得し、画面定義情報226に基づき、ブラウザ120上に表示する画面の構成を設定する。操作検出部123は、アプリケーション・サーバ220から操作検出定義情報228を(直接又はブラウザ120本体を介して)取得し、操作検出定義情報228に基づき、ブラウザ120上で行われたユーザの操作を検出する。フロー処理部124は、アプリケーション・サーバ220から動作フロー定義情報227を(直接又はブラウザ120本体を介して)取得し、動作フロー定義情報227に基づき、部品の呼び出し等を行う。部品呼出部125は、アプリケーション・サーバ220上の部品サービス実行部230を呼び出して、部品サービスの実行結果(出力結果)を取得する。データ変換部126は、データバス127からデータを入力したり、データバス127にデータを出力したりする際に、データ形式の変換を行う。データバス127は、部品サービス実行部230の実行結果や、フローで共通して利用されるデータを保持する。
図4は、動作フロー定義情報227で定義される処理の流れの一例を示す図である。
動作フロー定義情報227では、ブラウザ120で表示される画面を更新するための処理を行う複数のタスクを実行するフローが、画面ごとに定義される。この例では、動作フロー定義情報227の処理フロー記述領域に、アプリケーション・サーバ220上の部品サービス実行部230を呼び出す部品呼出タスク1211、ユーザからの操作を検出する操作検出待ちタスク1212、フローの分岐や画面遷移等を制御するフロー制御タスク1213の処理の順序が記載されている。また、動作フロー定義情報227のデータバス記述領域に、部品呼出タスク1211やフロー制御タスク1213の入出力で使われるデータバス127上のデータ1231との関係、及び、必要なデータ変換の方法が属性情報1221としてフローに記述されている。
図5は、フロー処理部124の詳細な構成の例を示す図である。
フロー処理部124は、実行待ちタスク・リスト131と、実行管理部132と、タスク実行部133と、タスク・リスト134を有する。
タスク・リスト134は、フロー処理部124がアプリケーション・サーバ220から取得した動作フロー定義情報227で定義されたフローに含まれるタスク136を格納している。実行待ちタスク・リスト131は、タスク・リスト134にあるタスク136のうち、フロー処理部124が実行対象とする(実行待ちの)タスク135を格納している。それぞれのタスク135は、例えば、タスクID、種類、処理内容、データ、次タスクID(次に実行されるタスク135のタスクID)といったフォーマット138で実行待ちタスク・リスト131に格納される。
実行管理部132は、一定間隔で実行待ちタスク・リスト131を監視しており、タスク135が追加された場合(実行待ちタスク・リスト131にタスク135がある場合)に、タスク実行部133に対して、(例えば、実行待ちタスク・リスト131にあるタスク135のうち、実行順序が最先となっている)タスク135の実行指示を行う。
タスク実行部133は、複数のタスク135を実行する機能をもち、部品呼出タスク1211、操作検出待ちタスク1212、フロー制御タスク1213をそれぞれ実行する。
タスク135が部品呼出タスク1211の場合、タスク実行部133は、部品呼出部125を利用して、アプリケーション・サーバ220側のGUI部品236、GUIロジック部品237、ロジック部品238の実行結果を得る。このとき、呼び出す部品がGUI部品236、GUIロジック部品237の場合、タスク実行部133は、ブラウザ120が画面表示を行うために参照しているHTMLデータにソースコードをそれぞれ追加する。GUIロジック部品237の場合、タスク実行部133は、さらに、ブラウザ120上で追加されたGUIロジック処理を実行し、その出力結果を得る。ロジック部品238の場合、タスク実行部133は、部品サービス実行部230の実行結果を得る。タスク実行部133は、部品呼出タスク1211を実行する際、データバス127からデータ128を入力したり、データバス127にデータ128を出力したりする場合にデータ形式の変換が必要である場合は、データ変換部126を使ってデータ変換を行う。
タスク135が操作検出待ちタスク1212の場合、タスク実行部133は、検出対象の操作を操作検出部123に登録し、操作検出が可能な状態にする。操作検出部123では、検出対象の操作が行われた場合、実行待ちタスク・リスト131へのタスク135(次に実行されることが動作フロー定義情報227で定義されているタスク135)の追加が行われる。
タスク135がフロー制御タスク1213の場合、タスク実行部133は、その種類に応じてフローの制御を実施する。フロー制御タスク1213の種類には、分岐、結合等の一般的なフロー処理のほかに、画面遷移を用意する。フロー処理の場合、タスク実行部133は、条件判定を実施した際に、真であれば、実行したフロー制御タスク1213の次のタスク135(条件が真の場合に次に実行されることが動作フロー定義情報227で定義されているタスク135)を実行待ちタスク・リスト131に追加する等の処理を行う。偽であれば、別の処理を行うか、あるいは、別のタスク135(条件が偽の場合に次に実行されることが動作フロー定義情報227で定義されているタスク135)を実行待ちタスク・リスト131に追加する等の処理を行う。画面遷移の場合、タスク実行部133は、条件判定が真であれば画面遷移を行い、偽であれば行わない等の処理を行う。
図4に示した例において、フロー処理部124は、動作フロー定義情報227に基づき、複数のタスクT11〜16をタスク・リスト134に追加する。これにより、フロー処理部124は、動作フロー定義情報227で定義されたフローに従って、タスクT11〜16をタスク実行部133に処理装置により実行させる。なお、フロー処理部124は、ブラウザ120で表示される画面が遷移する度に、遷移先の画面の定義情報として動作フロー定義情報227を取得するものとする。
まず、フロー処理部124は、タスクT11,T12を順番に実行待ちタスク・リスト131に追加する。
実行管理部132は、実行待ちタスク・リスト131にタスクT11が追加されたことを検知すると、タスク実行部133にタスクT11を実行するよう処理装置により命令する。この命令に従い、タスク実行部133は、タスクT11を処理装置により実行する。部品呼出タスク1211であるタスクT11は、部品呼出部125を利用して、アプリケーション・サーバ220から所定の部品を取得する。例えば、タスクT11は、GUI部品236としてHTMLのソースコード等を取得し、取得したHTMLのソースコード等を、ブラウザ120で表示中の画面(ウェブページ)に追加して当該画面を更新する。また、例えば、タスクT11は、アプリケーション・サーバ220からGUIロジック部品237としてJavaScript(登録商標)等のスクリプトのソースコード等を取得し、取得したスクリプトのソースコード等を、ブラウザ120で表示中の画面(ウェブページ)に追加して当該画面を更新する。このとき、タスクT11は、スクリプトを実行し、その実行結果を第1形式のデータとして出力してもよい(この場合、タスクT11はデータ出力タスクでもある)。また、例えば、タスクT11は、ロジック部品238の実行結果として所定のデータベースからの抽出データ等を取得し、第1形式のデータとして出力する(この場合、タスクT11はデータ出力タスクでもある)。図4の例のように、タスクT11によって第1形式のデータが出力される場合、この第1形式のデータは、属性情報1221に基づきデータ変換部126によって処理装置により第2形式のデータ1231に変換され、データバス127に格納される。
実行管理部132は、続けて、タスク実行部133にタスクT12を実行するよう処理装置により命令する。この命令に従い、タスク実行部133は、タスクT12を処理装置により実行する。操作検出待ちタスク1212であるタスクT12は、ブラウザ120で表示中の画面に対するユーザの特定の操作(例えば、所定のボタンの押下、所定のテキストボックスへの文字入力)を検出する。タスク実行部133は、操作検出待ちタスク1212を実行した場合、下記のように、その操作検出待ちタスク1212によってユーザの特定の操作が検出されてから次のタスクを実行する。
タスクT12によってユーザの特定の操作が検出されると、フロー処理部124は、タスクT13,14を実行待ちタスク・リスト131に追加する。
実行管理部132は、実行待ちタスク・リスト131にタスクT13が追加されたことを検知すると、タスク実行部133にタスクT13を実行するよう処理装置により命令する。この命令に従い、タスク実行部133は、タスクT13を処理装置により実行する。部品呼出タスク1211であるタスクT13の処理については、タスクT11と略同様であるが、タスクT13は、さらに、データバス127から、データ変換部126が変換したデータ1231を取得し、取得したデータ1231を利用した処理を行う(この場合、タスクT13はデータ利用タスクでもある)。タスクT13は、例えば、データ1231を入力パラメータとして、GUIロジック部品237のスクリプトを実行したり、アプリケーション・サーバ220にロジック部品238を実行させたりする。このとき、タスクT13は、さらに、その実行結果を第1形式のデータとして出力してもよい(この場合、タスクT13はデータ出力タスクでもある)。
実行管理部132は、続けて、タスク実行部133にタスクT14を実行するよう処理装置により命令する。この命令に従い、タスク実行部133は、タスクT14を処理装置により実行する。フロー制御タスク1213であるタスクT14は、データバス127から、データ変換部126が変換したデータ1231を取得し、取得したデータ1231が所定の条件を満たしているかどうかに応じて次のタスクを決定する(この場合、タスクT14はデータ利用タスクでもある)。具体的には、タスクT14は、タスクT15,T16のいずれかを選択する。タスク実行部133は、フロー制御タスク1213を実行した場合、下記のように、そのフロー制御タスク1213によって決定されたタスクを次に実行する。
タスクT14によって次のタスクがタスクT15に決定されると、フロー処理部124は、タスクT15を実行待ちタスク・リスト131に追加する。一方、タスクT14によって次のタスクがタスクT16に決定されると、フロー処理部124は、タスクT16を実行待ちタスク・リスト131に追加する。
実行管理部132は、実行待ちタスク・リスト131にタスクT15又はタスクT16が追加されたことを検知すると、タスク実行部133に当該タスクを実行するよう処理装置により命令する。この命令に従い、タスク実行部133は、当該タスクを処理装置により実行する。
以下、本実施の形態に係るシステムの動作について説明する。
図6は、ブラウザ120の処理の流れを示すフローチャートである。
ステップS101において、ブラウザ120は初期化処理を行いユーザがブラウザ120を利用可能な状態にする。ブラウザ120の起動は、ユーザがクライアント・コンピュータ100上にて行う。
ステップS102において、ブラウザ120はアプリケーション・サーバ220に対してリクエストを送信する。リクエストを送信するためのURL(Uniform・Resource・Locator)等は、ユーザから与えられるものとする。
ステップS103において、ブラウザ120はアプリケーション・サーバ220上にある実行エンジン121をダウンロードする。
ステップS104において、ブラウザ120はアプリケーション定義情報225をダウンロードしてハードディスク240に保存する。アプリケーション定義情報225には、画面定義情報226、動作フロー定義情報227、操作検出定義情報228が含まれる。
ステップS105において、ブラウザ120は実行エンジン121を初期化する。実行エンジン121は、ステップS104にて取得したアプリケーション定義情報225を参照し、実行エンジン121を実行するために必要な処理を実行する。
ステップS106において、ブラウザ120は実行エンジン121でフロー処理を実行する。フロー処理部124は、動作フロー定義情報227に定義された順序で各タスクを実行する。
ステップS107において、ブラウザ120は、実行エンジン121の実行結果が画面遷移であるかを判断し、画面遷移であった場合には、ステップS104へ戻る。画面遷移でない場合には、ステップS108に移動する。
ステップS108において、ブラウザ120はユーザによる閉じるボタンの押下等により終了される。
図7は、実行エンジン121の初期化処理の流れを示すフローチャートである。
ステップS121において、画面構成部122は前述のステップS104で取得した画面定義情報226をハードディスク240から読み込む。即ち、画面構成部122はブラウザ120本体を介して画面定義情報226を取得する。画面定義情報226には、画面ID、ブラウザ120上での画面の位置、画面の大きさに関する情報が記載されているものとする。また、そのほかに、画面を装飾するための情報が、CSS(Cascading・Style・Sheets)等のレイアウト表記方法で記載されていてもよいものとする。
ステップS122において、画面構成部122はステップS121で読み込んだ画面定義情報226を基に、画面レイアウトを処理装置により生成する。本実施の形態では、具体的にはHTMLとCSSのファイルを生成する。例えば、ステップS121で取得した画面IDに相当する画面は、例えば、<div>タグでHTMLファイルに出力される。また、ステップS121で取得した画面の位置、大きさ、そのほかのレイアウト属性については、CSSファイルに出力される。
ステップS123において、操作検出部123はステップS104で取得した操作検出定義情報228をハードディスク240から読み込む。即ち、操作検出部123はブラウザ120本体を介して操作検出定義情報228を取得する。操作検出定義情報228には、操作検出ID、検出するイベント(ユーザの操作)の種類、検出するイベントが発生する位置(例えば、GUI部品236)に関する情報が記載されているものとする。また、イベントが発生したときにHTMLファイルから取得する内容に関する記載がなされていてもよいものとする。
ステップS124において、操作検出部123はステップS123で読み込んだ操作検出定義情報228を基に、ユーザの操作イベントを検出するためのスクリプトを生成しHTMLファイルに追加し、ブラウザ120上から利用可能な状態とする。
ステップS125において、フロー処理部124はステップS104で取得した動作フロー定義情報227をハードディスク240から読み込む。即ち、フロー処理部124はブラウザ120本体を介して動作フロー定義情報227を取得する。動作フロー定義情報227には、フロー処理部124が実行するタスクの実行順序と実行内容に関する情報が記載されている。図5に示したように、各タスクには、タスクID、タスクの種類、タスクの内容、保持するデータ、次タスクIDが記載されている。タスクの種類には、部品呼出タスク1211、操作検出待ちタスク1212、フロー制御タスク1213がある。部品呼出タスク1211の場合、呼び出す部品の種類(GUI部品236、GUIロジック部品237、ロジック部品238)と、リクエスト先の部品サービスのURL、呼出時に入力とするデータバス127上のデータ、呼び出し完了時に出力結果を格納するためのデータバス127上の格納先等が記載されているものとする。操作検出待ちタスク1212の場合には、操作検出定義情報228に記載されている操作検出IDが記載されているものとする。フロー制御タスク1213の場合には、フローを次に進めるための条件式、条件一致時・不一致時の次タスクID等が記載されているものとする。本実施の形態の変形例として、その他、例外発生時に例外処理等を行うタスク等を用意してもよい。
ステップS126において、フロー処理部124は、ステップS125で読み込んだ動作フロー定義情報227から全てのタスクに対応するオブジェクトを生成し、タスク・リスト134を処理装置により生成する。
ステップS127において、フロー処理部124は、タスク・リスト134に含まれるフロー開始のタスク136をインスタンス化し、実行待ちタスク・リスト131に処理装置により投入する。
図8は、フロー処理部124の処理の流れを示すフローチャートである。
ステップS141において、実行管理部132は、実行待ちタスク・リスト131にタスク135があるかどうかを処理装置により判断し、ある場合には、ステップS142に移動する。ない場合は、ステップS145に移動し、一定時間待った後、再びステップS141に移動する。
ステップS142において、実行管理部132は、実行待ちタスク・リスト131から、タスク135を処理装置により取得する。
ステップS143において、実行管理部132はタスク実行部133を用いて、ステップS142で取得したタスク135を実行する。
ステップS144において、実行管理部132は、ステップS143の結果、フローが終了したかどうか、又は、画面遷移が発生したかどうかを処理装置により判断し、フローが終了した場合、画面遷移が発生した場合にはフローを終了する。フローが終了していなおらず、画面遷移も発生していない場合は、ステップS141へと戻る。
図9は、タスク実行部133の処理の流れを示すフローチャートである。
ステップS161において、タスク実行部133は、タスク135が部品呼出タスク1211であるかどうかを処理装置により判断し、部品呼出タスク1211である場合には、ステップS162に移動する。そうでない場合はステップS171に移動する。
ステップS162において、タスク実行部133は、部品呼出部125を使って部品の呼び出しを行う。以下のように、部品呼出部125を使って実行される処理は、呼び出す部品の種類に応じて異なる処理となる。
GUI部品236の場合、タスク実行部133は、リクエスト先の部品サービスから該当する部品のHTMLのソースコードを取得する。取得したソースコードは指定された格納先に格納する。GUI部品236の場合には、格納先には画面IDが設定されているものとする。また、格納する際、既に表示されている画面の内容を消して新たに格納するか、もしくは、追記するかの設定がされているものとする。HTMLのソースコードは、静的なHTMLだけでなく、アプリケーション・サーバ220側のサーブレットやJSP(登録商標)により生成された動的なHTMLでも構わない。
GUIロジック部品237の場合、タスク実行部133は、リクエスト先の部品サービスから該当する部品のJavaScript(登録商標)のソースコードを取得する。タスク実行部133は、取得したソースコードをHTMLファイルに追加し、ブラウザ120上から利用可能にする。次いで、タスク実行部133は、追加されたJavaScript(登録商標)のソースコードから、呼び出し対象のメソッドを呼び出して実行する。なお、GUIロジック部品237の場合には、実行するメソッド名、入力パラメータ、出力結果の格納先が設定されているものとする。入力パラメータとしては、設定段階で直接値を入力してもよいし、データバス127上にあるデータを参照してもよい。出力結果の格納先にはデータバス127上にあるデータのデータIDを指定しておく。また、このとき、データバス127からデータを入出力する際に、データ変換部126を用いてデータの形式を変換してもよい。
ロジック部品238の場合、タスク実行部133は、リクエスト先の部品サービスから該当する部品の演算結果を取得する。次いで、タスク実行部133は、取得した結果をデータバス127に格納する。出力結果の格納先にはデータバス127上にあるデータのデータIDを指定しておく。また、このとき、データバス127からデータを入出力する際に、データ変換部126を用いてデータの形式を変換してもよい。
ステップS164において、タスク実行部133は、タスク135の実行が完了したことをフロー処理部124本体に通知する。これに応じて、フロー処理部124は、次のタスク136のインスタンスを生成し、実行待ちタスク・リスト131に処理装置により追加する。
ステップS165において、フロー処理部124本体(あるいは、タスク実行部133)は、ステップS162で実行したタスク135を、実行待ちタスク・リスト131から除去する。
ステップS171において、タスク実行部133は、タスク135が操作検出待ちタスク1212であるかどうかを処理装置により判断し、操作検出待ちタスク1212である場合には、ステップS172に移動する。そうでない場合はステップS181に移動する。
ステップS172において、タスク実行部133は、該当する操作検出IDに対応するユーザの操作を検出対象の操作として登録する。操作検出部123では、ユーザが登録された操作を実行した場合に、その旨をフロー処理部124に通知する。これに応じて、フロー処理部124は、このタスク135の次のタスク136のインスタンスを生成し、実行待ちタスク・リスト131に処理装置により格納する。そして、フロー処理部124は、ステップS165に移動し、ステップS172で実行したタスク135を、実行待ちタスク・リスト131から除去する。
ステップS181において、タスク実行部133は、タスク135がフロー制御タスク1213であるかどうかを処理装置により判断し、フロー制御タスク1213である場合には、ステップS182に移動する。そうでない場合はフローを抜ける。
ステップS182において、タスク実行部133は、フロー制御タスク1213に記載されている条件式を実行し、条件判定を処理装置により行う。フロー制御タスク1213の種類には、分岐、合流、判断、フロー開始、フロー終了、画面遷移等があるため、これらの制御を行うために、データバス127上のデータや、タスク135が持っているデータを要素として条件判定する。
ステップS183において、ステップS182の条件判定の結果、条件に一致していた場合は、ステップS184に移動する。そうでない場合は、何もせずにフローを抜ける。
ステップS184において、フロー制御タスク1213が“フロー終了”であった場合、フローを終了させる。そうでない場合は、ステップS185に移動する。
ステップS185において、フロー制御タスク1213が“画面遷移”であった場合、ステップS186に移動する。そうでない場合は、ステップS164に移動し、フロー処理部124に通知する。これに応じて、フロー処理部124は、次のタスク135のインスタンスを生成し、実行待ちタスク・リスト131に処理装置により追加する。
ステップS186において、画面遷移をするための準備として、タスク実行部133は、画面遷移先のアプリケーション定義情報225が置いてあるURL等(即ち、アプリケーション・サーバ220の特定の格納場所を示す情報)を保持し、フローを抜ける。このURL等は、実行エンジン121本体に渡され、ステップS104で利用される。
このように、本実施の形態においては、アプリケーションで行う処理の部品をフローで定義し、そのフローを実行することで、任意のアプリケーションを即座に構築できる構成とした。また、これにより、処理の流れとデータの依存関係を分離することができ、部品の設計者はデータの更新タイミングを考慮しなくてもよく、開発者の負荷を軽減することができる。また、部品間の入出力結果を変換することにより、やり取りするデータの形式を意識する必要がなくなり、部品改修時に部品のインタフェースを改修する必要がなく、開発者の負荷を軽減できる。
また、既に部品が用意されている状態であれば、設定情報の組み合わせだけでアプリケーションを実行できるため、アプリケーションの開発効率、及び、改修効率が向上する。
クライアント側で、処理を実行する際にアプリケーション定義情報255を読み込む構成のため、アプリケーション定義情報255の変更内容が、次回のブラウザ120の画面更新時には即座に反映されているため、アプリケーション改修までの期間が短く、開発作業を効率化することができる。
なお、本実施の形態では、同一のアプリケーション・サーバ220上にある部品のみを用いて説明しているが、これに限らず、インターネット500外部にある複数のアプリケーション・サーバ620上にある部品等も使ってもよい。これにより、クライアント側には意識させずに使用できる部品の追加・拡張が容易にできる。また、共有することができる部品を拡充することにより、再利用性を高め、開発を効率化することができる。
また、従来はブラウザ120上の画面の一部の表示内容を更新するだけでも、画面全体を更新しなければならず、サーバとの通信が発生していたが、この方法では、必要なときに必要な箇所のみ画面更新することができるので、重複した通信量を削減できる、また、サーバサイドで実行する処理を最低限にでき、ユーザへのレスポンスを高速化することができる。また、画面の一部の表示内容を更新する手順をカスタマイズしやすくなる。
また、表示する画面の内容、使用する部品、及びその処理順序等をGUIでグラフィカルに定義し、アプリケーション定義情報255を生成する開発支援用のツールを用意することで、より一層開発効率を向上させることができる。
また、例えば、クライアント側にはJavaScript(登録商標)が実行できる環境があればよく、一般的なブラウザ以外、アプリケーションを実行するために必要なドライバをクライアント側にインストールする必要がないため、ユーザが利用する上での敷居を低くすることができる。
また、異なるシステムが持つ機能を部品化しておくことにより、複数のシステムの機能を持つような統合アプリケーションの開発が容易になる。
以上説明したように、本実施の形態は、アプリケーション開発の効率化に関するものであり、特に、アプリケーション画面、及び、画面を利用する上で必要なロジックのカスタマイズ方法に関するものである。
本実施の形態では、イベント駆動で部品を呼び出す、部品呼出時にデータ形式を変換することを特徴とする、アプリケーション実行方法を提供することで、開発者の負荷低減を得ることができる。
本実施の形態に係るアプリケーション実行装置は、アプリケーションの実行順序をフローで制御しイベント駆動で部品を呼び出す実行エンジン121、部品呼出時にデータ形式を変換し部品間のインタフェースの違いを吸収するデータ変換部126、を備えることを特徴とする。
本実施の形態に係る実行エンジン121、及び、フロー制御方法は、部品呼出タスク1211、操作検出待ちタスク1212、フロー制御タスク1213を組み合わせて記述されたフローを、クライアント上で解釈して実行制御することを特徴とする。
また、実行エンジン121は、GUI部品236、クライアント上で処理を実行するGUIロジック部品237、サーバ上で処理を実行するロジック部品238を組み合わせて処理を実行することを特徴とする。
また、実行エンジン121は、クライアント側で、アプリケーションの実行時にアプリケーション定義情報225を読み込むことで、設定変更を即座に反映することができることを特徴とする。
100 クライアント・コンピュータ、120 ブラウザ、121 実行エンジン、122 画面構成部、123 操作検出部、124 フロー処理部、125 部品呼出部、126 データ変換部、127 データバス、128 データ、131 実行待ちタスク・リスト、132 実行管理部、133 タスク実行部、134 タスク・リスト、135,136 タスク、138 フォーマット、140,240,640 ハードディスク、160,260,660 通信インタフェース、200,600 サーバ・コンピュータ、220,620 アプリケーション・サーバ、225 アプリケーション定義情報、226 画面定義情報、227 動作フロー定義情報、228 操作検出定義情報、230 部品サービス実行部、235 部品リポジトリ、236 GUI部品、237 GUIロジック部品、238 ロジック部品、300 通信回線、400 プロキシ・サーバ、500 インターネット、901 LCD、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、921 オペレーティング・システム、922 ウィンドウシステム、923 プログラム群、924 ファイル群、1211 部品呼出タスク、1212 操作検出待ちタスク、1213 フロー制御タスク、1221 属性情報、1231 データ。

Claims (7)

  1. 画面を表示するアプリケーションプログラムを実行するアプリケーション実行装置において、
    前記アプリケーションプログラムで表示される画面を更新するための処理を行う複数のタスクを処理装置により実行するタスク実行部と、
    前記複数のタスクを実行するフローを画面ごとに定義する定義情報を提供するサーバから、前記アプリケーションプログラムで表示される画面が遷移する度に、遷移先の画面の定義情報を取得し、取得した定義情報で定義されたフローに従って、前記複数のタスクを前記タスク実行部に処理装置により実行させるフロー処理部と、
    を備えることを特徴とするアプリケーション実行装置。
  2. 前記タスク実行部は、前記複数のタスクに含まれるタスクとして、画面の構成要素となる複数の部品を提供するサーバから所定の部品を取得し、取得した部品を、前記アプリケーションプログラムで表示中の画面に追加して当該画面を更新する部品呼出タスクを実行する、請求項1のアプリケーション実行装置。
  3. 前記タスク実行部は、前記複数のタスクに含まれるタスクとして、第1形式のデータを出力するデータ出力タスクを実行し、
    前記アプリケーション実行装置は、
    前記タスク実行部が実行したデータ出力タスクによって出力されたデータを第2形式のデータに処理装置により変換するデータ変換部をさらに備え、
    前記タスク実行部は、前記複数のタスクに含まれるタスクとして、前記データ変換部が変換したデータを利用した処理を行うデータ利用タスクを実行する、請求項1のアプリケーション実行装置。
  4. 前記タスク実行部は、前記データ利用タスクとして、画面の構成要素となる複数の部品を提供するサーバから前記データ変換部が変換したデータを表示する部品と当該データを利用した処理を行う部品とのいずれかを取得し、取得した部品を、前記アプリケーションプログラムで表示中の画面に追加して当該画面を更新する部品呼出タスクを実行する、請求項3のアプリケーション実行装置。
  5. 前記タスク実行部は、前記データ利用タスクとして、前記データ変換部が変換したデータが所定の条件を満たしているかどうかに応じて次のタスクを決定するフロー制御タスクを実行し、実行したフロー制御タスクによって決定されたタスクを次に実行する、請求項3又は4のアプリケーション実行装置。
  6. 前記タスク実行部は、前記複数のタスクに含まれるタスクとして、前記アプリケーションプログラムで表示中の画面に対するユーザの操作を検出する操作検出待ちタスクを実行し、実行した操作検出待ちタスクによって当該操作が検出されてから次のタスクを実行する、請求項1から5いずれかのアプリケーション実行装置。
  7. 画面を表示するアプリケーションプログラムを実行するコンピュータで実行されるプログラムにおいて、
    前記アプリケーションプログラムで表示される画面を更新するための処理を行う複数のタスクを処理装置により実行するタスク実行処理と、
    前記複数のタスクを実行するフローを画面ごとに定義する定義情報を提供するサーバから、前記アプリケーションプログラムで表示される画面が遷移する度に、遷移先の画面の定義情報を取得し、取得した定義情報で定義されたフローに従って、前記複数のタスクを前記タスク実行処理に処理装置により実行させるフロー処理と、
    をコンピュータに実行させることを特徴とするプログラム。
JP2010151109A 2010-07-01 2010-07-01 アプリケーション実行装置及びプログラム Active JP5409529B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010151109A JP5409529B2 (ja) 2010-07-01 2010-07-01 アプリケーション実行装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010151109A JP5409529B2 (ja) 2010-07-01 2010-07-01 アプリケーション実行装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2012014510A true JP2012014510A (ja) 2012-01-19
JP5409529B2 JP5409529B2 (ja) 2014-02-05

Family

ID=45600843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010151109A Active JP5409529B2 (ja) 2010-07-01 2010-07-01 アプリケーション実行装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5409529B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017041669A (ja) * 2015-08-17 2017-02-23 株式会社リコー 情報処理システム、情報処理装置、及び情報処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216427A (ja) * 2002-01-28 2003-07-31 Hitachi Ltd カスタマイズ可能な情報処理装置
JP2005055983A (ja) * 2003-08-06 2005-03-03 Canon Inc サービス管理方法、サービス管理装置および制御プログラム
JP2007172098A (ja) * 2005-12-20 2007-07-05 Hitachi Information Systems Ltd 情報処理システム及び情報処理サーバ装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216427A (ja) * 2002-01-28 2003-07-31 Hitachi Ltd カスタマイズ可能な情報処理装置
JP2005055983A (ja) * 2003-08-06 2005-03-03 Canon Inc サービス管理方法、サービス管理装置および制御プログラム
JP2007172098A (ja) * 2005-12-20 2007-07-05 Hitachi Information Systems Ltd 情報処理システム及び情報処理サーバ装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017041669A (ja) * 2015-08-17 2017-02-23 株式会社リコー 情報処理システム、情報処理装置、及び情報処理方法

Also Published As

Publication number Publication date
JP5409529B2 (ja) 2014-02-05

Similar Documents

Publication Publication Date Title
TWI521357B (zh) 經由網頁瀏覽器輸入內容至應用程式
US7992128B2 (en) Computer software adaptation method and system
US9851954B2 (en) Drag and drop portlet deployment
JP5409529B2 (ja) アプリケーション実行装置及びプログラム
US9785560B2 (en) Scene-isolated internet application
EP3289451A1 (en) Cross-platform command extensibility
Mikkonen et al. Creating a mobile web application platform: the lively kernel experiences
Sur Visual Studio 2013 and. NET 4.5 Expert Cookbook
Freeman et al. Understanding React Projects
KR20150097181A (ko) 애플리케이션 개발 환경 제공 시스템
KR20150097190A (ko) 애플리케이션 개발 환경 제공 시스템
KR20150099136A (ko) 애플리케이션 개발 환경 제공 방법
CN116361582A (zh) 数据处理方法、装置、电子设备以及存储介质
Del Sole Hidden WPF: secrets for creating great applications in Windows Presentation Foundation
Mabbutt et al. Using jQuery
KR20150099187A (ko) 애플리케이션 개발 환경 제공 방법
KR20150097224A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
KR20150097204A (ko) 애플리케이션 개발 환경 제공 시스템
KR20150099245A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 기록매체
KR20150097148A (ko) 애플리케이션 개발 환경 제공 방법
KR20150097154A (ko) 애플리케이션 개발 환경 제공 방법
KR20150097147A (ko) 애플리케이션 개발 환경 제공 방법
KR20150099204A (ko) 애플리케이션 개발 환경 제공 방법
KR20150097153A (ko) 애플리케이션 개발 환경 제공 방법
KR20150097221A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130909

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131105

R150 Certificate of patent or registration of utility model

Ref document number: 5409529

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250