(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-21
(45)【発行日】2023-03-02
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
G06F 8/38 20180101AFI20230222BHJP
G06F 3/04842 20220101ALI20230222BHJP
G06F 3/14 20060101ALI20230222BHJP
G06F 9/451 20180101ALI20230222BHJP
【FI】
G06F8/38
G06F3/04842
G06F3/14 310C
G06F9/451
(21)【出願番号】P 2021192811
(22)【出願日】2021-11-29
【審査請求日】2022-04-12
(31)【優先権主張番号】P 2021008957
(32)【優先日】2021-01-22
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(73)【特許権者】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【氏名又は名称】木村 友輔
(72)【発明者】
【氏名】石田 知子
(72)【発明者】
【氏名】高塚 剛
【審査官】杉浦 孝光
(56)【参考文献】
【文献】特開2001-175566(JP,A)
【文献】特開2002-351834(JP,A)
【文献】米国特許出願公開第2008/0172608(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00 - 8/38
G06F 3/04842
G06F 3/14
G06F 9/451
(57)【特許請求の範囲】
【請求項1】
生成されるアプリケーションソフトウェアで表示される画面について識別情報を付与するか否かの指示を受け付ける表示アイテムを表示するように制御する表示制御手段と、
前記表示アイテムに対して受け付けた前記指示に応じたアプリケーションソフトウェアを生成するように制御する制御手段を有し、
前記制御手段は、前記表示アイテムで識別情報を付与する指示を受け付けた第1の画面と、前記表示アイテムで識別情報を付与する指示を受け付けていない第2の画面とを表示可能な特定のアプリケーションソフトウェアであって、前記特定のアプリケーションソフトウェアが実行される際に、前記第1の画面の表示を指示するための前記第1の画面の識別情報を前記特定のアプリケーションソフトウェアのユーザに対して出力し、前記第2の画面の表示を指示するための前記第2の画面の識別情報を前記ユーザに対して出力しないように動作する前記特定のアプリケーションソフトウェアを生成可能
とすることを特徴とする情報処理システム。
【請求項2】
前記第1の画面はブックマーク可能であり、前記第2の画面はブックマーク不可能であることを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記第2の画面は前記第1の画面において特定の操作を受け付けた場合に表示される画面であることを特徴とする請求項1または2に記載の情報処理システム。
【請求項4】
前記特定のアプリケーションソフトウェアはシングルページアプリケーションであることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理システム。
【請求項5】
前記制御手段は、生成されるアプリケーションソフトウェアがシングルページアプリケーションでない場合には、前記表示アイテムに対して受け付けた前記指示に応じた処理を行わないように制御することを特徴とする請求項4に記載の情報処理システム。
【請求項6】
前記表示制御手段は、前記表示アイテムに対する入力に応じて、前記表示アイテムの表示形態をオンの表示形態かオフの表示形態のいずれかに切り替えるように制御することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理システム。
【請求項7】
前記識別情報はURIであることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理システム。
【請求項8】
前記第1の画面の識別情報は、前記第1の画面を表示した際にブラウザのアドレスバーに表示される情報であることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理システム。
【請求項9】
生成されるアプリケーションソフトウェアで表示される画面の識別情報となる値をユーザから入力された値に基づいて設定する設定手段を更に有することを特徴とする請求項1乃至8のいずれか1項に記載の情報処理システム。
【請求項10】
生成されるアプリケーションソフトウェアで表示される複数の画面のそれぞれについて前記設定手段で設定された識別情報が、他の画面の識別情報に対してユニークであるかを判定する判定手段を更に有し、
前記制御手段は、前記判定手段でユニークでないと判定された識別情報がある場合には、アプリケーションソフトウェアの生成を中断するように制御することを特徴とする請求項9に記載の情報処理システム。
【請求項11】
前記制御手段は、それぞれユーザによって設定された情報である、入力項目定義情報と、出力情報定義情報と、項目のレイアウトの定義情報とを含む画面定義情報に基づいてアプリケーションソフトウェアを生成するように制御し、
前記表示アイテムに対して受け付けた前記指示に基づいて前記画面定義情報が定義されることを特徴とする請求項1乃至10のいずれか1項に記載の情報処理システム。
【請求項12】
生成されるアプリケーションソフトウェアで表示される画面について識別情報を付与するか否かの指示を受け付ける表示アイテムを表示するように制御する表示制御ステップと、
前記表示アイテムに対して受け付けた前記指示に応じたアプリケーションソフトウェアを生成するように制御する制御ステップを有し、
前記制御ステップは、前記表示アイテムで識別情報を付与する指示を受け付けた第1の画面と、前記表示アイテムで識別情報を付与する指示を受け付けていない第2の画面とを表示可能な特定のアプリケーションソフトウェアであって、前記特定のアプリケーションソフトウェアが実行される際に、前記第1の画面の表示を指示するための前記第1の画面の識別情報を前記特定のアプリケーションソフトウェアのユーザに対して出力し、前記第2の画面の表示を指示するための前記第2の画面の識別情報を前記ユーザに対して出力しないように動作する前記特定のアプリケーションソフトウェアを生成可能
とすることを特徴とする情報処理システムの制御方法。
【請求項13】
コンピュータを、請求項1乃至11のいずれか1項に記載された情報処理システムの各手段として機能させるためのプログラム。
【請求項14】
コンピュータを、請求項1乃至11のいずれか1項に記載された情報処理システムの各手段として機能させるためのプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションソフトウェアを生成する情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
昨今、ユーザに高速なレスポンスを返すことができ、優れたUI/UXを提供できるシングルページアプリケーション(SPA)が活用されている。シングルページアプリケーションは、1枚のHTMLに対してJavaScriptで動的に変更を加えながら画面の描画を実現しているのが特徴であり、ページ全体をロードするのは初回のみで、2回目以降はサーバからJSONデータを受け取ることで必要箇所のみリロードする。サーバサイドで画面を生成する必要がなくなり、最小限のデータ転送でアプリケーションソフトウェアが動くシステムを形成できるため、ユーザ側の待ち時間が減り、ユーザの満足度に繋がる。
【0003】
ところで、シングルページアプリケーションは最初にクライアントに送信されたページから次のページにUIが遷移しても、シングルページなので、URIは同じとなりすべての画面が同じURIになってしまうという課題がある。
【0004】
そのため、シングルページアプリケーションの遷移した先の任意の画面にブックマークができず、その画面に遷移するためには初期表示画面から必ず同じ遷移をたどらないと目的の画面を表示できない。
【0005】
上記課題を解決するために、シングルページアプリケーションではルーティングという画面ごとに任意のURIを設定する技術がある。
【0006】
特許文献1には、Webアプリケーションを使用するための各種画面間の遷移関係等が複雑な場合には、シングルページアプリケーションの開発が困難になることを解決する発明が記載されている。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、シングルページアプリケーションを開発する開発者としては、ルーティング技術により遷移するUI全てにURIが紐付けられると、アプリケーションソフトウェアのユーザに直接URIで遷移させたくないUI(画面)がある場合、不都合が生じる。
【0009】
例えば入力画面→入力内容の確認画面→申請担当者(承認者)の選択画面のような画面遷移をするアプリケーションソフトウェアの場合、アプリケーションソフトウェアのユーザには入力内容の確認画面に直接URIで遷移させたり、ブックマークをさせたくない。
【0010】
ルーティングによる任意のURIの紐付けでは、このようなURIで直接遷移させる画面と直接遷移できない画面の両方が混じったシングルページアプリケーションを作成するには複雑なルーティング設定を作らねばならず、開発者にとって困難な作業であった。
【0011】
本発明の目的は、直接遷移できる画面と直接遷移できない画面とを混在させたアプリケーションソフトウェアの生成を容易に行う仕組みを提供することである。
【課題を解決するための手段】
【0012】
上記課題を解決するために、本願発明の一実施形態による情報処理システムは、生成されるアプリケーションソフトウェアで表示される画面について識別情報を付与するか否かの指示を受け付ける表示アイテムを表示するように制御する表示制御手段と、前記表示アイテムに対して受け付けた前記指示に応じたアプリケーションソフトウェアを生成するように制御する制御手段であって、前記表示アイテムで識別情報を付与する指示を受け付けた第1の画面と、前記表示アイテムで識別情報を付与する指示を受け付けていない第2の画面とを表示可能な特定のアプリケーションソフトウェアであって、前記特定のアプリケーションソフトウェアが実行される際に、前記第1の画面の表示を指示するための前記第1の画面の識別情報を前記特定のアプリケーションソフトウェアのユーザに対して出力し、前記第2の画面の表示を指示するための前記第2の画面の識別情報を前記ユーザに対して出力しないように動作する前記特定のアプリケーションソフトウェアを生成可能な制御手段とを有する。
【発明の効果】
【0013】
本発明により、単一であるリソースを一意に識別するための識別情報を用いて画面を切り替えて表示することが可能なアプリケーションの開発を容易に行う仕組みを提供することができる。
【図面の簡単な説明】
【0014】
【
図2】本実施形態のプログラム開発装置、実行サーバ、データベースサーバ、クライアントPCのハードウェアブロック図である。
【
図3】本実施形態のプログラム開発装置のソフトウェアの機能ブロック図である。
【
図5】本実施形態のWebアプリケーション生成処理のフローチャートである。
【
図6】本実施形態のルーティング設定処理のフローチャートである。
【
図7】本実施形態の出力部210に表示される画面表示例である。
【
図8】本実施形態の出力部210に表示される画面表示例である。
【
図9】本実施形態のルーティング設定ファイルの例である。
【
図10】本実施形態の出力部210に表示される画面表示例である。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【0016】
図1は、本発明に係わるプログラム開発装置(開発者がWebアプリケーション生成のために使用する情報処理装置)、プログラム開発サーバ、データベースサーバ、クライアントPC(クライアント装置)、実行サーバ、Webサーバの構成の一例を示すシステム(情報処理システム)構成図である。
【0017】
プログラム開発装置101は、開発者の操作に従って画面レイアウト及びデータベース検索指示などを定義する。なお、プログラム開発装置101では、開発者の入力受付を行い、後述するプログラム開発サーバ102に実際のプログラム生成処理、アプリケーション生成処理(アプリケーションソフトウェアの生成処理)を行うというように役割を分けてもよいし、プログラム開発装置101単体でプログラム生成、アプリケーションソフトウェア生成までを行ってもよい。
【0018】
なお、この実施形態においては、プログラム開発装置101で生成するアプリケーションソフトウェアはWebアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションソフトウェアや組込みソフトウェアなど、Web技術による通信を利用したアプリケーションソフトウェアでなくてもよい。
【0019】
また、本実施形態においては、プログラム開発装置101によってアプリケーションソフトウェアのプログラムを生成するとしたが、プログラムの生成に限定するものではなく、開発者の操作に従って設定された定義を用いて、アプリケーションソフトウェアが動作する環境を構築するとしてもよい。
【0020】
プログラム開発サーバ102a~102b(情報処理装置)は、プログラム開発装置101により入力された開発者の設定及び指示に従って、プログラムを生成する。プログラム開発サーバ102aはLANなどのネットワーク107内に配置されてもよいし、プログラム開発サーバ102bはインターネット上やクラウド上に配置されてもよい。
【0021】
データベースサーバ103a~103b(情報処理装置)は、開発されたアプリケーションソフトウェアが使用するデータベースであり、また本発明では開発時にも動作確認などのために利用してもよい。例えば、開発者が利用するためにデータベースサーバ103は、プログラム開発装置101と同一の装置で構成されていてもよいし、LANなどのネットワーク107内に配置されてもよい(データベースサーバ103a)。またインターネット上やクラウド上に配置されてもよい(データベースサーバ103b)。また、プログラム開発装置101が、プログラム開発サーバ102と協調する場合には、プログラム開発サーバ102とデータベースサーバ103が同一の装置内に構成されていてもよい。
【0022】
実行サーバ105(情報処理装置)は、プログラム開発装置101で生成されたアプリケーションプログラム(プログラム開発装置101で生成されたアプリケーションソフトウェアのプログラム)を実行する。実行サーバ105は、LANなどのネットワーク107内に配置されてもよい(実行サーバ105)し、またインターネット上やクラウド上に配置されてもよい(実行サーバ105b)。また、ネットワーク107、インターネット、クラウド上のデータベースサーバ103と接続して動作することが可能である。
【0023】
クライアントPC104a~104b(情報処理装置)は、実行サーバ105と協調してプログラム開発装置101で開発したアプリケーションプログラムを動作させる、ユーザの入力端末である。LANなどのネットワーク107内に配置されてもよい(クライアントPC104a)し、またインターネット上やクラウド上に配置されてもよい(クライアントPC104b)。携帯端末などの情報処理装置であってもよい。
【0024】
図2は、本発明に係わるプログラム開発装置101、実行サーバ105、データベースサーバ103、クライアントPC104として適用可能な各ハードウェア構成の一例を示すブロック図である。
【0025】
図2において、CPU201は、少なくとも1つのプロセッサであり、システムバス204に接続される各デバイスを統括的に制御する。
【0026】
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステム(OS)や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
【0027】
RAM202は、CPU201の主メモリ、ワークエリア、一時待避領域等として機能する。
【0028】
入力コントローラ205は、入力部209からの入力を制御する。この入力部209としては、情報処理装置では、キーボード、マウス等のポインティングデバイス、タッチパネルが挙げられる。
【0029】
なお、入力部209がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。
【0030】
また、タッチパネルは、マルチタッチスクリーン等の、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【0031】
出力コントローラ206は、出力部210の表示を制御する。この出力部210としては、例えば、CRTや液晶ディスプレイ等が挙げられる。尚、本体と一体になったノート型パソコンのディスプレイも含まれるものとする。また、プロジェクタであってもよいこととする。
【0032】
外部メモリコントローラ207は、ブートプログラム、各種のアプリケーションソフトウェア、フォントデータ、ユーザファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ211へのアクセスを制御する。外部メモリ211には、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ211としては、ハードディスク(HD)やフレキシブルディスク(FD)、PCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)、スマートメディア等が挙げられる。
【0033】
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォント展開(ラスタライズ)処理を実行することにより、出力部210上での表示を可能としている。また、CPU201は、出力部210上の不図示のマウスカーソル等での開発者指示を可能とする。
【0034】
通信I/Fコントローラ208は、ネットワークを介して外部機器との通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
【0035】
本発明を実現するためのプログラム212は外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
【0036】
図3は、本発明の実施の形態のソフトウェア構成を示すブロック図の一例である。
【0037】
プログラム開発装置101は、以下の機能部を備える。
【0038】
定義部301は、アプリケーションソフトウェアによって表示される画面やアイテム(入出力項目)の配置などの画面定義情報と、アプリケーションソフトウェアの画面が次の画面に遷移する手順を定義する画面遷移定義情報と、を開発者から受け付ける機能部である。
【0039】
第1の設定部302は、画面定義情報内にある画面を識別する画面コードを、シングルページアプリケーションの遷移先URIとして付与するかの入力をユーザから受け付ける機能部である。シングルページアプリケーションは、ページ遷移先のURIを画面とレンダリング(紐付け、対応付け)させるルーティングライブラリを有しており、第1の設定部302で遷移先URIとして画面コードを付与すると受け付けられたUI画面は、次の第2の設定部で設定されるURIで直接レンダリングされた画面を表示できる。
【0040】
なお、本発明では、シングルページアプリケーションの所在をURIにより指定しているが、URIではなくてもリソースを一意に識別するための識別情報であればよい。また、本発明はシングルページアプリケーションについて記載しているが、必ずしもシングルページアプリケーションでなくてもよく、単一のURIを用いて画面を切り替えて表示することが可能なアプリケーションソフトウェアであればよい。
【0041】
第2の設定部303は、シングルページアプリケーションのURIに、第1の設定部で画面コードを付与すると受け付けられた画面コードを付与する機能部である。第2の設定部で付与された画面コードにより、シングルページアプリケーションの画面遷移する複数のUI画面にURIを付与することができ、シングルページアプリケーションでありながら画面コードが付与されたUI画面には直接遷移することができる。
【0042】
画面識別情報ユニーク判断部304は、画面コードがユニークであるかどうかを判断する。画面コードがアプリケーションソフトウェア内でユニークでない場合は、URIが被る可能性があるため、プログラム生成エラーと判断される。
【0043】
図4は、プログラム開発装置101、実行サーバ105及びクライアントPC104の構成図である。
【0044】
プログラム開発装置101は、リポジトリ定義部400、Webアプリケーション生成部410を備える。
【0045】
実行サーバ105は、
図4では実行サーバ420に該当し、クライアントPC104は、クライアントPC440に該当する。
【0046】
プログラム開発装置101は、Webアプリケーション生成部410によりコンパイル済みJava(登録商標)コード421とHTML/JSP/JavaScript(登録商標)などのソースコード422(シングルページアプリケーション含む)を生成する。
【0047】
リポジトリ定義部400には、アプリケーション定義401、画面定義402、画面遷移定義403、アクションバインド定義404、データモデル定義405,ビジネスプロセス定義406,データベース定義407、生成時設定情報408を有している。なお、リポジトリ定義部400の情報は外部メモリ211に記憶されている。
【0048】
アプリケーション定義401は、開発者が開発するアプリケーションソフトウェア全体の設定を保持する。この定義の中には、アプリケーションソフトウェアをシングルページアプリケーションとするか否かの定義も登録されている。
【0049】
画面定義402は、アプリケーションソフトウェア画面に配置される各種項目のレイアウトの定義情報を保持し、入力項目定義情報及び出力項目定義情報を含む。入力項目定義情報は、生成されたアプリケーションソフトウェアの画面を介して当該アプリケーションソフトウェアのエンドユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたアプリケーションソフトウェアの画面に出力する出力項目を定義した情報である。以降、入力項目及び出力項目をまとめて入出力項目と呼ぶ。また、画面間の遷移情報を定義した画面遷移定義403の情報も有する。
【0050】
アクションバインド定義404は、データの取得先として外部サイトからデータを取得するための取得先の管理や、取得後のデータの変換方法などを定義している。
【0051】
データモデル定義405は、データベースのテーブルの項目の定義情報を保持する。画面定義402の中の入出力項目の各項目には、データモデル定義405の項目を対応づけることができる。
【0052】
ビジネスプロセス定義406は、アプリケーションソフトウェアにおけるデータを処理するためのロジックの定義情報を保持する。
【0053】
データベース定義407は、アプリケーションソフトウェアが接続するデータベースに係る情報(データベースサーバ103のIPアドレス、接続ユーザ、接続パスワード等)を定義する。
【0054】
生成時設定情報408は、第1の設定部302において取得された画面コードを遷移先URIとして付与するか(ルーティング設定を生成するか)、付与する場合は付与されたURI情報が保持されている。
【0055】
なお、リポジトリ定義部は、生成するアプリケーションソフトウェアの定義を記憶する手段の一例である。
【0056】
Webアプリケーション生成部410は、開発者により設定されたリポジトリ定義部400を解析し、コンパイル済Java(登録商標)コード421及びソースコード422を含むWebアプリケーション(シングルページアプリケーション含む)を生成する。
【0057】
リポジトリ定義解析部411は、開発者により設定されたリポジトリ定義部400を解析する。
【0058】
生成設定情報解析部412は、生成時設定情報408から画面コードを遷移先URIとして付与するか(ルーティング設定を生成するか、)を取得し、ルーティング設定を生成する場合は、ルーティング設定生成部415へ処理を依頼する。
【0059】
ルーティング設定生成部415は、ルーティング設定解析部416とルーティング設定出力部417からなる。ルーティング設定生成部415は、ルーティング設定解析部416において、生成設定情報解析部412からの情報と画面定義402から、画面定義情報の解析を行う。ルーティング設定出力部417は、ルーティング設定解析部416の解析に従い、ルーティング設定ファイルの出力を行う。ルーティング設定ファイルの例は
図9において後述する。
【0060】
Webアプリケーションコード生成部413は外部メモリ211に記憶されているコード生成ルールと、リポジトリ定義解析部411、及び生成設定情報解析部312によって解析された内容とを用いて、アプリケーションソフトウェアのソースコードを生成する。
【0061】
ソースコードコンパイル部414は、Webアプリケーションコード生成部413の生成したソースコードをコンパイルし、コンパイル済Java(登録商標)コード421と、シングルページアプリケーション、ルーティング設定ファイルを含むソースコード422を実行サーバ420にデプロイする。
【0062】
実行サーバ420は、Webアプリケーション生成部410が生成したコンパイル済Java(登録商標)コード421、ソースコード422を含むWebアプリケーションを記憶し、Webアプリケーションを起動する。
【0063】
クライアントPC440は、Webブラウザ441から実行サーバ420のURIを指定してシングルページアプリケーションをダウンロードし、Webブラウザ441において、ユーザ操作を受け付け、生成されたWebアプリケーションを実行する。
【0064】
図5は、Webアプリケーション生成のフローチャートの一例を示す図である。なお、以下のフローチャートの各ステップは、プログラム開発装置101のCPU201が実行する。
【0065】
図5のフローチャートは、開発者がリポジトリ定義部400にある各定義を定義した後に、Webアプリケーションを生成しようとする際にプログラム開発装置101で開始される処理の流れである。具体的に各ステップの処理を以下で説明する。
【0066】
まず、ステップS501において、プログラム開発装置101のCPU201は、外部メモリ211に記憶されているリポジトリ定義部400のアプリケーション定義401をRAM202に読み込む。
【0067】
次に、ステップS502において、プログラム開発装置101のCPU201は、外部メモリ211に記憶されているリポジトリ定義部400のデータモデル定義405をRAM202に読み込む。
【0068】
ステップS503において、プログラム開発装置101のCPU201は、外部メモリ211に記憶されているリポジトリ定義部400の画面定義402をRAM202に読み込む。読み込んだ画面定義402を参照して、ステップS508において画面生成を行う。以下の処理も同様である。
【0069】
ステップS504において、プログラム開発装置101のCPU201は、外部メモリ211に記憶されているリポジトリ定義部400のアクションバインド定義404をRAM202に読み込む。
【0070】
ステップS505において、プログラム開発装置101のCPU201は、外部メモリ211に記憶されているリポジトリ定義部400のビジネスプロセス定義406をRAM202に読み込む。
【0071】
ステップS506において、プログラム開発装置101のCPU201は、外部メモリ211に記憶されているリポジトリ定義部400のデータベース定義407をRAM202に読み込む。
【0072】
ステップS507において、プログラム開発装置101のCPU201は、シングルページアプリケーションのルーティング設定を生成する。ステップS507では、たとえば
図9のようなルーティング設定ファイルが生成される。ステップS507の詳細は
図6を参照して後述する。
【0073】
ステップS508において、プログラム開発装置101のCPU201は、RAM202に読み込んだリポジトリ定義部400の各定義・各ファイルから情報を取得し、アプリケーションソフトウェアのソースコードを生成する。
【0074】
なお、生成されたソースコードにはプログラミング言語が記載されたファイルに加え、HTML、JSP、JavaScript(登録商標)等のアプリケーションソフトウェア、本発明で用いるシングルページアプリケーションやステップS507で生成されるルーティング設定ファイル(
図9)なども含まれる。
【0075】
ステップS509において、プログラム開発装置101のCPU201は、ステップS508にて生成したアプリケーションプログラム群を実行サーバ105に配置(デプロイ)する。これにより、実行サーバ105上でアプリケーションが動作するようになる。
【0076】
【0077】
次に、ステップS507の処理の詳細を
図6を参照して説明する。
【0078】
図6は、Webアプリケーション生成時のルーティング設定処理の流れを説明するフローチャートの一例を示す図である。なお、以下のフローチャートの各ステップは、各装置のCPU201が実行する。
【0079】
図6のフローチャートは、
図5のフローチャートにおいて、ステップS507へと処理が遷移した際に開始される処理の流れである。
【0080】
まず、ステップS601において、プログラム開発装置101のCPU201は、アプリケーション定義401をRAM202に読み込む。
【0081】
次に、ステップS602において、プログラム開発装置101のCPU201は、ステップS601において取得したアプリケーション定義401の情報により処理を分ける。アプリケーションソフトウェアをシングルページアプリケーションとして生成すると登録されている場合は、ステップS603へと処理を遷移し、シングルページアプリケーションとしてアプリケーションソフトウェアを生成しないと登録されている場合は
図6のフローチャートの処理を終了する。
【0082】
ステップS603に処理を遷移すると、プログラム開発装置101のCPU201は、アプリケーションソフトウェアの1つの画面定義402をRAM202に読み込む。読み込まれる画面定義情報の一部を定義する画面を
図7、
図8を参照して説明する。
【0083】
図7、
図8は、本実施形態において出力部210に表示される画面表示例であり、
図7の設定画面700や
図8の設定画面800は、
図5のフローチャートを実施する前にユーザによって予め入力を受け付けている設定画面の例である。
【0084】
図7、
図8は、プログラム開発装置101の出力部210によって出力され、プログラム開発装置101のディスプレイに表示される画面の表示例である。また、
図7、
図8は、プログラム開発装置101によるアプリケーションソフトウェアの開発段階で、これから生成するアプリケーションソフトウェアに関する設定を開発者(プログラム開発装置101のユ―ザー)から受け付ける設定画面の表示例である。
【0085】
また、
図10に、入力画面1001、確認画面1002、選択画面1003として、
図7の画面で設定された内容を反映して生成されたアプリケーションソフトウェアを実行した場合にクライアントPC104のディスプレイに表示される画面の表示例を示す。すなわち、
図10の各表示例は、生成されたアプリケーションソフトウェアのユーザ(クライアントPC104のユーザ)に向けて出力された画面である。また、
図10の各表示例は、クライアントPC104の出力部214によって出力され、クライアントPC104のディスプレイに表示される表示例である。
図10は、クライアントPC104のユーザである勤務者が、自身の勤務形態を申請・登録することが可能なアプリケーションソフトウェア(プログラム開発装置101で生成されたアプリケーションソフトウェア)での表示例を示している。入力画面1001でユーザ(勤務者)が自分の名前、性別、勤務形態を入力し(入力画面1001は、「山田 太郎」、「男」、「在宅勤務」と入力した例)、「入力確認へ」と記載されたボタンアイコンをクリックすると確認画面1002が表示される。確認画面1002では、入力画面1001で入力された内容が表示される。ユーザが表示内容を見て、入力内容に誤りがないことを確認した場合に、「担当者選択へ」と記載されたボタンアイコンをクリックする。入力内容に誤りがある場合はブラウザの戻るボタンを操作して入力画面1001を再度表示させ、入力内容を修正する。確認画面1002で「担当者選択へ」と記載されたボタンアイコンがクリックされると、選択画面1003が表示される。ユーザは、選択画面1003で承認を行う担当者(例えば自分の上司)を選択し、決定ボタンをクリックする。決定ボタンがクリックされると、選択された承認担当者に、申請内容(入力画面1001で入力された内容)が通知され、承認担当者が承認を行うことができるようになる。以上のような動作を想定したアプリケーションソフトウェアである。
【0086】
タブ703を選択したことによって表示される
図7の設定画面700は、
図10の入力画面1001に対応した設定画面である。タブ704を選択したことによって表示される
図8の設定画面800は、
図10の確認画面1002に対応した設定画面である。タブ705は、
図10の選択画面1003に対応した設定画面を表示させるための指示を受け付けるタブである。それぞれの設定画面において、これから生成するアプリケーションソフトウェアによって表示される画面のうち、対応する画面のURIを、クライアントPC104のユーザに提示(出力)するか否かを設定することができる。
【0087】
タブである703~705は、それぞれのアプリケーションソフトウェアの画面毎のタブである。タブ703は入力画面に関する画面定義設定の一部の例であり、タブ704は確認画面、タブ705は選択画面に関する画面定義設定の例である。
図7の設定画面での設定対象のアプリケーションソフトウェアは、タブ703に対応する入力画面「inputForm」(
図10の入力画面1001)にユーザが登録後、タブ704に対応する確認画面である、ユーザに入力項目が正しいかの確認画面「confirmation」(
図10の確認画面1002)を表示する。その後、タブ705に対応する選択画面である、担当者の選択画面「PIC」(
図10の選択画面1003)を表示する。
図10のそれぞれの入出力項目(画面定義402)は
図5のフローチャートを実施する前にユーザ(プログラム開発装置101のユーザである開発者)により設定されている。
【0088】
本実施形態の詳細な課題について記載する。
【0089】
たとえば、
図7での定義の対象である(
図10のような)アプリケーションソフトウェアはタブ703での設定対象である入力画面1001からタブ704での設定対象である確認画面1002、タブ705での設定対象である選択画面1003へと順番に遷移することを想定されている。シングルページアプリケーションのルーティング設定を行えば、それぞれの画面に対して、画面の識別情報(画面コード)を付与して、該当する画面に直接遷移することができる。たとえば、確認画面1002の場合は、“localhost:8080/_marketApp/#confirmation”とURIを指定すれば、ルーティング設定を実施していれば、確認画面1002に直接遷移できる。しかし、確認画面1002(すなわち、タブ704の設定対象の画面)は入力画面1001(すなわち、タブ703の設定対象の画面)に入力された値を確認するための画面であるため、上記URIを直接入力しても意味がない。すなわち、ルーティング設定をさせたくない画面を含むシングルページアプリケーションを生成する必要がある。シングルページアプリケーションのルーティング設定技術は、通常のマルチページアプリケーションと同じ様にするためにURIの紐付けをする技術であり、ルーティング設定をさせない画面を生成することは考慮されていない。
図7の説明に戻る。
【0090】
図7で選択されているタブ703で表示される設定画面700の画面コード入力欄701には「inputForm」が入力されている。画面コード入力欄701の値は、タブ703のタブ名に対応させているが、タブ703と画面コード入力欄701は同じでなくてもよく、タブ名と画面コードが異なる場合は2つを紐付けるデータなどで管理されていれば良い。画面コード入力欄701に入力される値(設定対象の画面のURIの末尾の文字列となる値)は、初期値をタブ名とし、初期値をユーザが文字列を入力することにより変更できるようにしてもよい。
【0091】
チェックボックス702は、
図7で開いている設定画面(この場合、タブ703の指定で表示される設定画面700)での設定対象となる画面(入力画面1001)にルーティング設定を行うかの設定をユーザに入力させるチェックボックス(表示アイテム)である。設定画面700では、タブ703での設定対象の画面(入力画面)は直接遷移させても良い画面なので、チェックボックス702にはチェックが入っている。すなわち、チェックボックス702は、生成されるアプリケーションソフトウェアで表示される画面であって、設定対象である画面について識別情報(URI)を付与するか否かの指示を受け付ける表示アイテムである。
【0092】
図8の設定画面800は、タブ804(
図7のタブ704と同じもの)(「confirmation」画面を選択するタブ)を選択した場合に表示される設定画面であり、確認画面の画面定義設定の入力画面が表示されている。画面コード入力欄801には、画面コード名である「confirmation」が入力されている。
【0093】
チェックボックス802は、
図8で開いているタブ(この場合804)での設定対象の画面にルーティング設定を行うかの設定をユーザに入力させるチェックボックスである。設定画面800では、タブ804での設定対象の入力確認画面は直接遷移させたくない画面なので、チェックボックス802にはチェックが入っていない。
図6のフローチャートの説明に戻る。
【0094】
図6のステップS603で読み込んだ画面定義情報を用いて以降の処理を実行する。
【0095】
ステップS604において、プログラム開発装置101のCPU201は、ステップS603で読み込まれた画面定義情報の画面コード名(画面コード入力欄701や801入力されているコード名)が一意(ユニーク)であるか判別する。一意であれば、ステップS606へと処理を遷移し、一意でなければ、ステップS605へと遷移しエラーと判断されて、アプリケーション生成処理を中断する。この条件分岐により画面コード名のユニーク性を保証し、ルーティング設定させている場合はURIに対する画面をユニークに設定することができる。
【0096】
ステップS606へと処理を遷移すると、プログラム開発装置101のCPU201は、ステップS603で読み込まれた画面定義情報のルーティング設定を行うか否か(702や802)を判別する。ルーティング設定を行う(チェックボックスがONの)場合はステップS607へと処理を遷移し、ルーティング設定を行わない(チェックボックスがOFFの)場合はステップS608へと処理を遷移する。
【0097】
ステップS607へと処理を遷移すると、プログラム開発装置101のCPU201は、現在読み込んでいる画面定義の設定を「history:true」としてルーティング設定ファイルに出力する。出力されたルーティング設定ファイルの例を
図9を参照して説明する。
【0098】
図9は、本発明の実施形態に係るルーティング設定ファイルの一例を示す図である。
【0099】
図9の要素901が、
図7の設定画面700で設定された画面「inputForm」(入力画面)のルーティング設定の内容である。設定画面700では、チェックボックス702がONになっている(チェックが入っている)ので、画面UI(ルーティング設定ファイル900の場合、設定画面700での設定対象である「inputForm」)は、「history」パラメータが「true」となり、ルーティング設定が実行される。すなわち、URIに「inpurForm」という識別情報を付けてURIとUI画面とをレンダリングする。
【0100】
一方、ステップS608へと処理を遷移すると、プログラム開発装置101のCPU201は、現在読み込んでいる画面定義の設定を「history:false」としてルーティング設定ファイルに出力する。出力されたルーティング設定ファイルの例を
図9を参照して説明する。
【0101】
図9の要素902が、
図8の設定画面800で設定された画面「confirmation」(確認画面)のルーティング設定の内容である。設定画面800では、チェックボックス802がOFFになっている(チェックがつけられなかった)ので、画面UI(ルーティング設定ファイル900の場合、設定画面800での設定対象である「confirmation」)は、「history」パラメータが「false」となり、ルーティング設定が実行されない。すなわち、URIとUI画面とのレンダリングを行わない。
図6のフローチャートの説明に戻る。
図10を参照して、URLとUI画面のレンダリングの関係を説明する。
【0102】
図10の入力画面1001は設定画面700のチェックボックス702のようにルーティング設定が実行されている設定(すなわち、901のように「history」パラメータが「true」)になっているので、URIはアドレスバー1004のように“localhost:8080/_marketApp/#inputForm”と表示されており、このURIにより1001の入力画面に直接遷移することができる。また、入力画面1001をブックマークすることが可能である。さらに、アドレスバーに出力されたURIをコピーしてショートカットを作成することも可能である。
【0103】
一方、確認画面1002は設定画面800のチェックボックス802のようにルーティング設定が実行されない設定(すなわち、902のように「history」パラメータが「false」)になっているので、URIはアドレスバー1005のように、“localhost:8080/_marketApp/#/”と表示されており、確認画面1002はURIとはレンダリングされていない。アドレスバー1005に表示された“localhost:8080/_marketApp/#/”という文字列をコピーして、空白のアドレスバーにペーストして検索を行っても、確認画面1002は表示されない。この場合、エラー表示がされるか、生成されたシンブルアプリケーションのトップページが表示されることとなる。すなわち、確認画面1002に遷移するための識別情報は生成されたアプリケーションソフトウェアのユーザ(クライアントPC104のユーザ)には出力されない。そのため、確認画面1002をブックマークすることが不可能である。さらに、確認画面1002へのショートカットを作成することも不可能である。
【0104】
以上のように、画面毎にURIとUI画面をレンダリングするかしないかを容易に設定できる効果を有する。すなわち、生成されるアプリケーションソフトウェアによって表示される複数の画面のそれぞれについて、URIを対応付けるかどうか(生成されるアプリケーションソフトウェアのユーザに対して出力するか否か)を、チェックボックスへのチェック操作という簡単な操作で容易に設定できる。
【0105】
次のステップS609において、プログラム開発装置101のCPU201は、他にレンダリングする画面が有るかどうかにより処理を分ける。他に画面がある場合には、ステップS603へと処理を戻し、他に画面がない場合は
図6のフローチャートの処理を終了する。
【0106】
以上の処理により、シングルページアプリケーションの開発を容易に行う仕組みを提供することができる。
【0107】
具体的には、シングルページアプリケーションにおいて、ルーティング設定を行うページと行わないページを混在させたアプリケーションソフトウェアをGUIから容易に作成することができ、高度な技術者でなくてもシングルページアプリケーションを作成できる効果を有する。
【0108】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0109】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0110】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0111】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0112】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0113】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0114】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
【0115】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0116】
101 プログラム開発装置
102 プログラム開発サーバ
103 データベースサーバ
104 クライアントPC
105 実行サーバ
107 ネットワーク