IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノンマーケティングジャパン株式会社の特許一覧 ▶ キヤノンITソリューションズ株式会社の特許一覧

特開2024-93620情報処理システム、情報処理システムの制御方法、及びプログラム
<>
  • 特開-情報処理システム、情報処理システムの制御方法、及びプログラム 図1
  • 特開-情報処理システム、情報処理システムの制御方法、及びプログラム 図2
  • 特開-情報処理システム、情報処理システムの制御方法、及びプログラム 図3
  • 特開-情報処理システム、情報処理システムの制御方法、及びプログラム 図4
  • 特開-情報処理システム、情報処理システムの制御方法、及びプログラム 図5
  • 特開-情報処理システム、情報処理システムの制御方法、及びプログラム 図6
  • 特開-情報処理システム、情報処理システムの制御方法、及びプログラム 図7
  • 特開-情報処理システム、情報処理システムの制御方法、及びプログラム 図8
  • 特開-情報処理システム、情報処理システムの制御方法、及びプログラム 図9
  • 特開-情報処理システム、情報処理システムの制御方法、及びプログラム 図10
  • 特開-情報処理システム、情報処理システムの制御方法、及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024093620
(43)【公開日】2024-07-09
(54)【発明の名称】情報処理システム、情報処理システムの制御方法、及びプログラム
(51)【国際特許分類】
   G06F 8/60 20180101AFI20240702BHJP
   G06F 15/00 20060101ALI20240702BHJP
   H04L 67/10 20220101ALI20240702BHJP
   G06F 8/61 20180101ALI20240702BHJP
【FI】
G06F8/60
G06F15/00 410C
H04L67/10
G06F8/61
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2022210128
(22)【出願日】2022-12-27
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(71)【出願人】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【弁理士】
【氏名又は名称】木村 友輔
(74)【代理人】
【識別番号】100227857
【弁理士】
【氏名又は名称】中山 圭
(72)【発明者】
【氏名】柴本 文洋
(72)【発明者】
【氏名】鈴木 智子
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AB01
5B376AB47
5B376BC08
5B376BC43
5B376FA13
(57)【要約】
【課題】アプリケーションソフトウェアのPWAを利用可能な場合に、ユーザーがPWAを利用可能であることを見落とす可能性を低減する。
【解決手段】 ユーザーの操作に基づいてアプリケーションに関する定義情報を記録するように制御する記録制御手段と、
前記アプリケーションに対応するPWAのインストールに用いる特定の情報を生成する生成手段と、
前記アプリケーションの画面において、前記PWAのインストールを促す特定の表示を行うアプリケーションが構築されるように制御する制御手段と、
を有することを特徴とする。
【選択図】図11
【特許請求の範囲】
【請求項1】
ユーザーの操作に基づいてアプリケーションに関する定義情報を記録するように制御する記録制御手段と、
前記アプリケーションに対応するPWAのインストールに用いる特定の情報を生成する生成手段と、
前記アプリケーションの画面において、前記PWAのインストールを促す特定の表示を行うアプリケーションが構築されるように制御する制御手段と、
を有することを特徴とする情報処理システム。
【請求項2】
前記制御手段は、前記アプリケーションの画面に、前記特定の表示として、前記PWAのインストールを指示する表示アイテムが表示されるアプリケーションが構築されるように制御することを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記記録制御手段は、前記アプリケーションの開発の際にPWAを有効とする設定に変更されたことに応じて、前記表示アイテムを表示する設定となるように前記定義情報に記録するように制御することを特徴とする請求項2に記載の情報処理システム。
【請求項4】
前記PWAのインストールは、前記アプリケーションの画面を表示するクライアント装置において、前記特定の情報に基づき、プッシュ通知の機能を利用可能とする処理、オフラインでも動作可能とする処理、ホーム画面へアイコンの表示を行うための処理のうち少なくとも1つを含む処理であることを特徴とする請求項2に記載の情報処理システム。
【請求項5】
前記制御手段は、前記アプリケーションで表示されるトップ画面に、前記表示アイテムが表示されるアプリケーションが構築されるように制御することを特徴とする請求項2に記載の情報処理システム。
【請求項6】
前記トップ画面は、前記アプリケーションに関する認証完了後に最初に表示される画面であることを特徴とする請求項5に記載の情報処理システム。
【請求項7】
前記記録制御手段は、前記トップ画面が変更されたことに応じて、前記表示アイテムを表示する設定となるように前記定義情報に記録するように制御することを特徴とする請求項5に記載の情報処理システム。
【請求項8】
前記制御手段は、前記アプリケーションの複数の画面または複数の機能に対応する選択肢とともに、前記表示アイテムが表示されるアプリケーションが構築されるように制御することを特徴とする請求項2に記載の情報処理システム。
【請求項9】
前記制御手段は、前記アプリケーションのトップ画面に重畳して前記表示アイテムが表示されるアプリケーションが構築されるように制御することを特徴とする請求項2に記載の情報処理システム。
【請求項10】
前記制御手段は、前記定義情報に基づき、前記アプリケーションの画面を表示するクライアント装置に送信される情報であって、前記クライアント装置において前記表示アイテムが操作された場合に、前記クライアント装置がPWAのインストールを行うように制御するための動作情報を生成するように制御することを特徴とする請求項2に記載の情報処理システム。
【請求項11】
前記制御手段は、前記定義情報に基づき、PWAを有効とする設定となっている場合に前記特定の表示を行うアプリケーションが構築されるように制御し、PWAを有効とする設定となっていない場合には前記特定の表示を行わないアプリケーションが構築されるように制御することを特徴とする請求項1に記載の情報処理システム。
【請求項12】
前記特定の情報は、PWAのマニフェストの情報を含むことを特徴とする請求項1に記載の情報処理システム。
【請求項13】
前記マニフェストの情報は、前記アプリケーションに関する説明文、ホーム画面における前記アプリケーションのアイコンに使用する画像の設定の少なくとも1つを含むことを特徴とする請求項12に記載の情報処理システム。
【請求項14】
前記生成手段は、前記定義情報に基づいて前記特定の情報を生成することを特徴とする請求項1に記載の情報処理システム。
【請求項15】
前記生成手段は、前記定義情報において、PWAを有効とする定義情報が含まれている場合に、前記特定の情報を含む、前記アプリケーションの画面を表示するクライアント装置で利用するためのクライアント用プログラムを生成し、PWAを有効とする定義情報が含まれていない場合には、前記特定の情報を含まない、前記クライアント装置で利用するためのクライアント用プログラムを生成することを特徴とする請求項1に記載の情報処理システム。
【請求項16】
前記記録制御手段は、前記アプリケーションの開発画面におけるユーザー操作に基づいて、構築される前記アプリケーションで表示される画面に配置するコンポーネントの定義を記録するように制御することを特徴とする請求項1に記載の情報処理システム。
【請求項17】
前記アプリケーションはWebアプリケーションであることを特徴とする請求項1に記載の情報処理システム。
【請求項18】
ユーザーの操作に基づいてアプリケーションに関する定義情報を記録するように制御する記録制御ステップと、
前記アプリケーションに対応するPWAのインストールに用いる特定の情報を生成する生成ステップと、
前記アプリケーションの画面において、前記PWAのインストールを促す特定の表示を行うアプリケーションが構築されるように制御する制御ステップと、
ことを特徴とする情報処理システムの制御方法。
【請求項19】
少なくとも1つのコンピュータを、請求項1乃至17のいずれか1項に記載された情報処理システムの各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
情報処理システム、情報処理システムの制御方法、及びプログラム関し、特に、アプリケーションソフトウェアの構築のために用いて好適な技術に関する。
【背景技術】
【0002】
従来、プログラミング言語によるコード記述が不要または少なくてよいノーコード開発ツール/ローコード開発ツールとして、定義に従ってアプリケーションソフトウェア(以下、アプリケーションと称する)を構築するアプリケーション構築ツールが存在する。特許文献1には、構築するWebアプリケーションの画面を編集するためのレイアウトエディタ画面に、ボタン、テキストボックス等の画面部品のいずれかをドラッグ&ドロップで配置でき、配置した画面部品を入出力定義テーブルに記憶することが提案されている。
【0003】
また、ウェブとアプリの両方の利点を備えたアプリケーションであり、プッシュ通知の機能が利用可能、オフラインでも動作可能、ホーム画面へのアイコンの表示が可能といった利点をもつPWA(Progressive Web Apps)技術も知られている。特許文献2には、ネイティブアプリの代わりに、PWA(Progressive Web Apps)技術を利用し、インターネット上のクラウドサーバに構築したモバイル向けWebサイトを、端末装置60にインストールしたアプリのように使えるようにすることが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2019-49858号公報
【特許文献2】特開2022-57113号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1のようなノーコード開発ツール/ローコード開発ツールを用いて開発した構築済みアプリケーションと、構築済みアプリケーションに対応するPWAとを提供することが可能である。しかし、構築済みアプリケーションを利用するユーザーが、対応するPWAを利用可能であることに気付かずに、PWAを利用する機会を損失してしまう場合がある。
【0006】
そこで本発明は、アプリケーションソフトウェアのPWAを利用可能な場合に、ユーザーがPWAを利用可能であることを見落とす可能性を低減する仕組みを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の情報処理システムは、
ユーザーの操作に基づいてアプリケーションに関する定義情報を記録するように制御する記録制御手段と、
前記アプリケーションに対応するPWAのインストールに用いる特定の情報を生成する生成手段と、
前記アプリケーションの画面において、前記PWAのインストールを促す特定の表示を行うアプリケーションが構築されるように制御する制御手段と、
を有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、アプリケーションソフトウェアのPWAを利用可能な場合に、ユーザーがPWAを利用可能であることを見落とす可能性を低減することができる。
【図面の簡単な説明】
【0009】
図1】情報処理システムのシステム構成図である。
図2】開発者用端末100、アプリユーザー用端末200、アプリユーザー用端末201のハードウェアブロック図である。
図3】ログイン処理のフローチャートである。
図4】UIエディタ処理のフローチャートである。
図5】ログイン処理とUIエディタ処理における表示例である。
図6】UIエディタ処理におけるAppBarの表示例である。
図7】(a)コンテキストメニュー処理のフローチャートである。(b)AppBarのプロパティボックスの表示例である。
図8】(a)画面切替処理のフローチャートである。(b)アプリ設定画面の表示例である。
図9】(a)開発環境300による保存処理のフローチャートである。(b)開発環境300によるデプロイ処理のフローチャートである。
図10】UI定義情報の情報遷移図である。
図11】アプリユーザー用端末201におけるアプリケーション実行時の表示例である。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。
【0011】
以下に示す実施形態中で示した各種特徴事項は、互いに組み合わせ可能である。なお、以下において、「アプリケーション」、「アプリ」は、いずれも、アプリケーションソフトウェアを意味するものとする。
【0012】
<システム構成>
図1に、本発明の実施形態としての情報処理システムのシステム構成図を示す。図1には、ソフトウェア開発を行うためのシステムと、開発されたソフトウェアを使用するためのシステムとを示す。
【0013】
開発者用端末100は、パーソナルコンピュータ(以下、PC)やスマートフォンなどで構成可能な開発者ユーザーが操作する情報処理装置(情報処理端末)である。すなわち、開発者ユーザーのユーザー端末である。開発者用端末100は、開発するアプリケーションの設計操作を開発者から受け付け、設計された内容であるアプリケーションの各種定義情報を開発環境300に送信する。
【0014】
開発環境300はネットワーク上(クラウド上、インターネット上)に構築された少なくとも1つのハードウェア資源を用いた環境である。開発環境300はマルチテナントの環境であり、複数の開発者ユーザーがログイン可能な環境である。開発環境300は、開発者情報301、実行エンジン302、ストレージ320を含む。開発環境300は、複数のWebサービス(クラウドサービス)を組み合わせて構築される。
【0015】
開発者情報301は、開発者のアカウントIDとなるメールアドレス(ユーザーID)、パスワードなどの、開発環境300にログイン可能な開発者のアカウントを記録した情報である。開発者情報301は開発環境300に含まれる少なくとも1つの記録媒体に記録されている。
【0016】
実行エンジン302は、開発環境300で実行すべき処理を実行するための少なくとも1つのハードウェア資源であり、プロセッサ303とメモリ304を含む。プロセッサ303は少なくとも1つのプロセッサからなり、クラウド上の1つのプロセッサでもよいし、複数のプロセッサを組み合わせたプロセッサ群としても良い。メモリ304は、プロセッサ303が実行すべきプログラムを記録した少なくとも1つの記録媒体である。後述する各種フローチャートのうち、開発環境300が実行するものとして説明するものは、実行エンジン302が実行する。すなわち、メモリ304に記録されたプログラムを、プロセッサ303が開発環境300のうちワークメモリとなる領域に展開して実行することにより実現する。
【0017】
配信エンジン305は、開発環境300にアクセスした開発者用端末100に対して、開発者用端末100において実行すべきクライアント用プログラム322(HTMLのソースコードやJavaScriptのソースコードなど)を送信する。クライアント用プログラム322は、開発環境300に含まれるストレージ320に予め記録されている。
【0018】
ストレージ320は、少なくとも1つの記録媒体の記憶領域であり、少なくとも、各開発者に共通であるクライアント用プログラム322を記憶している。また、開発者のアカウント毎の記憶領域である開発者用領域を有している。例えば、ログイン可能な開発者として開発者A、開発者B、開発者Cがいる場合には、開発者Aのための領域である開発者A領域323、開発者Bのための領域である開発者B領域324、開発者Cのための領域である開発者C領域325が含まれる。各開発者用領域には、各開発者が開発したアプリの定義情報を記憶している。例えば、既発者A領域323にはアプリ定義323aが記録されている。
【0019】
開発者は、開発者用端末100のブラウザソフトから、開発環境300にアクセスするためのURLにアクセスすることで開発環境300にアクセスし、開発環境にログインする。開発環境にログインすると、開発環境から、クライアント用プログラム322と、過去に開発作業を行って保存していた内容であるアプリ定義(UI定義情報)を受信する。そして、新規にアプリケーションを設計する操作、あるいは、既存の(作りかけの)アプリケーションの更新設計をする操作を行い、その結果であるアプリの定義情報(アプリ定義、UI定義情報)を開発環境300に送信する。開発環境300は受信したアプリ定義を、その開発者用領域に保存する。このように、本実施形態では、クラウド上の開発環境300にアクセスすることが可能な端末であればどのような端末であっても開発者用端末100として利用してアプリケーションの設計を行うことができる。従って、インターネットに接続することが可能な端末さえあれば、開発者は場所を選ばずにアプリケーションの開発を行うことができる。
【0020】
実行環境400は、ネットワーク上(クラウド上、インターネット上)に構築された少なくとも1つのハードウェア資源を用いた環境である。実行環境400はマルチテナント実行環境410と、複数のシングルテナント実行環境(例えば、シングルテナント実行環境450、460、470)を含む。実行環境400は、複数のWebサービス(クラウドサービス)を組み合わせて構築される。実行環境400には、開発者用端末100と開発環境300を用いて開発されたアプリケーションの定義情報(アプリ定義)がデプロイされるための環境である。そして、アプリケーションを使用するユーザーが用いるアプリユーザー用端末200、201は、アプリケーションの実行のためのURLにアクセスすることで、実行環境400にアクセスする。そして、アプリユーザー用端末200、201で行われた操作に応じた各種アクションを実行環境400が実行することで、開発されたアプリケーションが実行され、アプリユーザーにアプリケーションの機能が提供される。ネットワーク上にある実行環境400に構築されるアプリケーションはいわゆるWEBアプリケーションである。
【0021】
マルチテナント実行環境410は、複数の開発者に共用されるマルチテナント環境の実行環境であり、複数の開発者によって開発されたアプリケーションがデプロイされる。すなわち、複数の開発者によって共有される環境であり、複数の開発者の複数のアプリを構築可能な環境である。マルチテナント実行環境410には、ユーザー情報411、実行エンジン412、配信エンジン415、ストレージ420、DBセット433を含む。
【0022】
ユーザー情報411は、デプロイされたアプリケーション(構築されたアプリケーション)のユーザーアカウントIDとなるメールアドレス(ユーザーネーム)、パスワードなどの、アプリケーションにログイン可能なアプリユーザーのアカウントを記録した情報である。ユーザー情報411はマルチテナント実行環境410に含まれる少なくとも1つの記録媒体に記録されている。
【0023】
実行エンジン412は、マルチテナント実行環境410で実行すべき処理を実行するための少なくとも1つのハードウェア資源であり、プロセッサ413とメモリ414を含む。プロセッサ413は少なくとも1つのプロセッサからなり、クラウド上の1つのプロセッサでもよいし、複数のプロセッサを組み合わせたプロセッサ群としても良い。メモリ414は、プロセッサ413が実行すべきプログラムを記録した少なくとも1つの記録媒体である。後述する各種フローチャートのうち、マルチテナント実行環境410が実行するものとして説明するものは、実行エンジン412が実行する。すなわち、メモリ414に記録されたプログラムを、プロセッサ413がマルチテナント実行環境410のうちワークメモリとなる領域に展開して実行することにより実現する。ここで実行されるプログラムは、アプリケーションのアクションを実行するプログラムを含む。
【0024】
配信エンジン415は、マルチテナント実行環境410にアクセスしたアプリユーザー用端末200、201に対してアプリユーザー用端末200、201において実行すべきクライアント用プログラム422(HTMLのソースコードやJavaScriptのソースコードなど)を送信する。クライアント用プログラム422は、実行環境410に含まれるストレージ420に予め記録されている。
【0025】
ストレージ420は、少なくとも1つの記録媒体の記憶領域であり、少なくとも、複数のアプリケーションで共通であるクライアント用プログラム422を記憶している。また、ストレージ420の所定の領域(所定のフォルダ、所定のバケット、所定の階層下)には、当該実行環境(マルチテナント実行環境410)へアクセスするためのアクセス先情報421が記録されている。また、開発者のアカウント毎の記憶領域である開発者用領域を有している。例えば開発者Aのための領域である開発者A領域423、開発者Bのための領域である開発者B領域424、開発者Cのための領域である開発者C領域425が含まれる。各開発者用領域には、各開発者が開発して、開発環境300からデプロイされたアプリの定義情報を記憶している。例えば、既発者A領域423にはアプリ定義423aが記録されている。
【0026】
DBセット430は、実行環境410にデプロイされたアプリケーションが用いるデータベースに関する情報群である。DBセット430は、少なくとも1つの記録媒体の記憶領域に記憶される。
【0027】
シングルテナント実行環境1(450)、2(460)、3(470)は、それぞれ1人の開発者(1つの開発者アカウント)に専用の実行環境であり、所有者である開発者によって開発環境300を用いて開発されたアプリケーションがデプロイされる。本実施形態では例として、シングルテナント実行環境1(450)の所有者は開発者A、シングルテナント実行環境2(460)の所有者も開発者A、シングルテナント実行環境3(470)の所有者は開発者B、としている。このように、1人の開発者が複数のシングルテナント実行環境を所有することもできる。シングルテナント実行環境1(450)、2(460)、3(470)はそれぞれ、ユーザー情報451、461、471、実行エンジン452、462、472、配信エンジン455、465、475、ストレージ456、466、476、DBセット457、467、477を含む。これらは、1人の開発者に専用であることを除いては、前述したマルチテナント実行環境410の、ユーザー情報411、実行エンジン412、配信エンジン415、ストレージ420、DBセット433と同様の機能であるため、詳細な説明は省略する。シングルテナント実行環境は図示した3つだけでなく、更に数多く構築することが可能である。
【0028】
図1のシステムを用いて、例えば、運用者が、マルチテナント実行環境410を開発者に無償提供し、シングルテナント実行環境を有償提供するという運用とすることが考えられる。マルチテナント実行環境410も、各シングルテナント実行環境も、リソースとサービスの提供業者(クラウドサービス事業者)に対して本システムの運用者が維持費用を支払う必要がある。マルチテナント実行環境410の維持費用は、運用者が負担して複数の開発者に無償提供することにより、開発者が本システムの試用のために費用負担をする必要がないため、多くの開発者が利用しやすく、本システムの普及を促進することができる。運用者は、シングルテナント実行環境に対して開発者に課金することで費用回収する。
【0029】
1つの実行環境で単位時間あたりに処理できる処理リクエストの数に上限があり、数多くのアプリケーションがマルチテナント実行環境に構築され、多くのアプリユーザーが同時にアクセスした場合、リクエストが処理しきれず、アプリケーションの動作が遅くなるなどの状況になる可能性がある。他にも、マルチテナント実行環境に多くの開発者が開発した多くのアプリケーションがデプロイされて実行されることに対して、いくらかの制限があり、その制限のためにアプリケーションが十分なパフォーマンスを発揮できない場合がある。開発者が、有償で専用のシングルテナント実行環境を所有することで、このようなマルチテナント実行環境の制限による問題は回避(あるいは低減)することができる。すなわち、アプリケーションをシングルテナント実行環境に構築することで、十分なパフォーマンスを発揮するアプリケーションを構築することができる。
【0030】
このようなマルチテナント実行環境とシングルテナント実行環境の双方の特徴を踏まえ、開発者は、本システムを次のように活用できる。例えば、本システムを初めて使う場合にはマルチテナント実行環境410に本システムを用いて開発したアプリケーションを構築して試用を行った後に、本システムが開発者のソフトウェア開発に資すると判断したうえで、シングルテナント実行環境を有償で導入するといった使い方ができる。また、開発者が特定のアプリケーションXを開発する際に、一般ユーザーに公開する前に、人数の限られたテストユーザーに試用してもらうためのアプリケーションXのα版をマルチテナント実行環境410に構築する。そこでアプリケーションXのテスト行い、アプリケーションXの修正などを行い、更に開発を進める。そして、一般ユーザーへ公開しても問題ないレベルまで開発が完了した後に、アプリケーションXの本運用版をシングルテナント実行環境に構築して、一般ユーザーに公開する。このような使い方をすれば、開発者は、開発期間の開発費用を抑え、かつ、多数の一般ユーザーが利用しても問題の無いアプリケーションの運用を行うことができる。
【0031】
図2に、開発者用端末100、アプリユーザー用端末200、アプリユーザー用端末201として適用可能な装置(電子機器)の一例としての情報処理装置のハードウェアブロック図を示す。図2において、内部バス150に対してCPU101、メモリ102、不揮発性メモリ103、画像処理部104、ディスプレイ105、操作部106、記録媒体I/F107、外部I/F109、通信I/F110が接続されている。内部バス150に接続される各部は、内部バス150を介して互いにデータのやりとりを行うことができるようにされている。
【0032】
メモリ102は、例えばRAM(半導体素子を利用した揮発性のメモリなど)からなる。CPU101は、例えば不揮発性メモリ103に格納されるプログラムに従い、メモリ102をワークメモリとして用いて、情報処理装置の各部を制御する。不揮発性メモリ103には、画像データや音声データ、その他のデータ、CPU101が動作するための各種プログラムなどが格納される。不揮発性メモリ103は例えばハードディスク(HD)やROMなどで構成される。
【0033】
画像処理部104は、CPU101の制御に基づいて、不揮発性メモリ103や記録媒体108に格納された画像データや、外部I/F109を介して取得した映像信号、通信I/F110を介して取得した画像データ、撮像された画像などに対して各種画像処理を施す。画像処理部104が行う画像処理には、A/D変換処理、D/A変換処理、画像データの符号化処理、圧縮処理、デコード処理、拡大/縮小処理(リサイズ)、ノイズ低減処理、色変換処理などが含まれる。画像処理部104は特定の画像処理を施すための専用の回路ブロックで構成しても良い。また、画像処理の種別によっては画像処理部104を用いずにCPU101がプログラムに従って画像処理を施すことも可能である。
【0034】
ディスプレイ105は、CPU101の制御に基づいて、画像やGUI(Graphical User Interface)を構成するGUI画面などを表示する。CPU101は、プログラムに従い表示制御信号を生成し、ディスプレイ105に表示するための映像信号を生成してディスプレイ105に出力するように情報処理装置の各部を制御する。ディスプレイ105は出力された映像信号に基づいて映像を表示する。なお、情報処理装置自体が備える構成としてはディスプレイ105に表示させるための映像信号を出力するためのインターフェースまでとし、ディスプレイ105は外付けのモニタ(テレビなど)で構成してもよい。以下、開発者用端末100、アプリユーザー用端末200、アプリユーザー用端末201が実行する処理においての表示先は、特に断りが無い場合には、各動作主のディスプレイ105であるものとする。
【0035】
操作部106は、キーボードなどの文字情報入力デバイスや、マウスやタッチパネルといったポインティングデバイス、ボタン、ダイヤル、ジョイスティック、タッチセンサ、タッチパッドなどを含む、ユーザー操作を受け付けるための入力デバイスである。なお、タッチパネルは、ディスプレイ105に重ね合わせて平面的に構成され、接触された位置に応じた座標情報が出力されるようにした入力デバイスである。
【0036】
記録媒体I/F107は、メモリーカードやCD、DVDといった記録媒体108が装着可能とされ、CPU101の制御に基づき、装着された記録媒体108からのデータの読み出しや、当該記録媒体108に対するデータの書き込みを行う。外部I/F109は、外部機器と有線ケーブルや無線によって接続し、映像信号や音声信号の入出力を行うためのインターフェースである。通信I/F110は、外部機器やインターネット111などと通信して、ファイルやコマンドなどの各種データの送受信を行うためのインターフェースである。開発者用端末100は通信I/F110を用いて、インターネット111上にある開発環境300と通信可能(情報の送受信可能)である。アプリユーザー用端末200、201は通信I/F110を用いて、インターネット111上にある実行環境400と通信可能(情報の送受信可能)である。
【0037】
<ログイン処理>
図3(a)、(b)に、ログイン処理のフローチャートを示す。この処理は、開発者用端末100から開発環境300にログインしてUIエディタを表示するまでの処理である。開発者用端末100において、インターネットブラウザソフトを立ち上げ、本実施形態の開発システム(アプリケーション開発プラットフォーム)のURLを指定してアクセスする指示があると、図3(a)の処理を開始する。図3(a)の処理は、開発者用端末100のCPU101が、インターネットブラウザソフトを実行するための不揮発性メモリ103に記録されたプログラムと、開発環境300から受信したクライアント用プログラム322とを、メモリ102に展開して実行することにより実現する。以降、単に開発者用端末100が実行する処理として記載したものは、開発者用端末100のCPU101が、インターネットブラウザソフトを実行するための不揮発性メモリ103に記録されたプログラムと、開発環境300から受信したクライアント用プログラム322とを、メモリ102に展開して実行する処理であるものとする。
【0038】
開発者用端末100において、インターネットブラウザソフトを立ち上げ、本実施形態の開発システム(アプリケーション開発プラットフォーム)のURLを指定してアクセスすると、開発環境300の配信エンジン305がアクセスを検知し、アクセス元の開発者用端末100にクライアント用プログラム322を送信する。
【0039】
S301では、開発者用端末100は、開発環境300から送信されたクライアント用プログラム322を受信したか否かを判定する。受信していなければS301で受信を待ち、受信したらS302に進む。
【0040】
S302では、開発者用端末100は、開発環境300から受信したクライアント用プログラム322をメモリ102に記録する。
【0041】
S303では、開発者用端末100は、クライアント用プログラム322に従い、ログイン画面をディスプレイ105に表示する。ログイン画面には、本実施形態の開発システムへのログイン画面である旨と、開発者IDとパスワードの入力欄、新規登録ボタン(アイコン)、ログインボタン(アイコン)が表示される。
【0042】
S304では、開発者用端末100は、ログイン画面の開発者IDとパスワードの入力欄への入力操作を受け付ける。ユーザーの入力操作は操作部106を用いて行われる。開発者IDは開発者ユーザーを識別(特定)するためのユーザー識別情報である。本実施形態では開発者ID(ユーザーネーム)は、メールアドレスであるものとする。また、暗証情報として用いるパスワードは任意の文字列であるものとするが、生体認証情報(指紋認証は顔認証に用いる情報)や、パターン認証の情報(画面に入力された軌跡パターンの情報)など、他の暗証情報としてもよい。
【0043】
S305では、開発者用端末100は、ログイン画面の新規登録ボタンを指示する操作(例えばクリック)されたか否かを判定する。なお、以下、表示アイテム(ボタン、アイコンなどの表示物、表示項目)に対して、操作部106に含まれるマウスでクリックする、タッチパネルへタッチする、といった方法で指示する操作を、単に「押下」と記載する。新規登録ボタンが押下された場合にはS306に進み、そうでない場合にはS307に進む。
【0044】
S306では、開発者用端末100は、開発者アカウント登録処理を行う。開発者アカウント登録処理は、開発者情報301に新規のアカウントの情報を登録する処理である。
【0045】
S307では、開発者用端末100は、ログイン画面のログインボタンが押下されたか否かを判定する。ログインボタンが押下された場合にはS308に進み、そうでない場合にはS304に戻る。
【0046】
S308では、開発者用端末100は、ログイン情報として、ログイン画面の開発者IDとパスワードの入力欄へ入力された情報(入力された開発者IDとパスワード)を開発環境300に送信する。送信後、開発環境300において認証処理が行われるため、その結果を待つ。
【0047】
S309では、開発者用端末100は、開発環境300からログインエラーの旨の情報を受信したか否かを判定する。ログインエラーの旨の情報を受信した場合はS304に戻って再度ログイン情報の入力を受け付け、そうでない場合にはS310へ進む。
【0048】
S310では、開発者用端末100は、開発環境300から実行環境リストを受信したか否かを判定する。開発環境300はログイン認証が成功すれば実行環境リストを開発者用端末100に送信するため、実行環境リストを受信したということは、ログイン認証に成功した(ログインできた)ということである。実行環境リストを受信した場合にはS311に進み、そうでない場合にはS309に戻る。
【0049】
S311では、開発者用端末100は、ログイン後のアプリの開発画面として、S310で受信した実行環境リストをメモリ102に記録するとともに、受信した実行環境リストに基づいて実行環境の選択肢をディスプレイ105に表示する。実行環境リストはログインした開発者がアクセス可能な実行環境を示している。なお、S311以降に開発者用端末100で表示される画面であって、構築後のアプリの画面とは異なる画面を総称して開発画面と称するものとする。
【0050】
図5(a)に、S311での実行環境の選択肢の表示例を示す。図5(a)の表示例では、ログインした開発者がアクセス可能な実行環境として、マルチテナント実行環境410に対応する選択肢551と、シングルテナント実行環境に対応する選択肢552の2つの選択肢が表示されている。開発者ユ―ザーはこれらの選択肢のいずれかを押下することにより選択して、SAVEボタン553を押下することで選択を確定することができる。ここで選択されるのは、今回のログインにおいてこの後の作業で更新したアプリケーションをデプロイする先である。この時点で実行環境にアクセスするわけではない。また、ここで選択した実行環境は後述する操作によって変更可能である。
【0051】
S312では、開発者用端末100は、実行環境の選択が行われたか否かを判定する。実行環境の選択肢のいずれかが押下され、SAVEボタン553が押下された場合にはS313に進み、そうでない場合にはS312で実行環境の選択を待つ。
【0052】
S313では、開発者用端末100は、S312で選択された実行環境を特定する情報(実行環境IDなど)を「選択中実行環境」としてメモリ102に記録するとともに、開発環境300に送信する。開発環境300では、選択中実行環境(選択環境)を特定する情報を受信したことに応じて、アプリ情報として、ログイン開発者が所有する全てのアプリケーション(過去に生成され、ストレージ320に記録されているアプリケーション)を特定する情報(アプリIDやアプリ名など)を送信する。
【0053】
S314では、開発者用端末100は、開発環境300からアプリ情報を受信したか否かを判定する。アプリ情報を受信した場合にはS315に進み、そうでない場合にはS314でアプリ情報の受信を待つ。
【0054】
S315では、開発者用端末100は、受信したアプリ情報をメモリ102に記録するとともに、アプリ情報に基づき、ログインユーザーが所有する(開発中の)アプリケーションの一覧(アプリ一覧)をディスプレイ105に表示する。
【0055】
S316では、開発者用端末100は、アプリ一覧に表示されたアプリケーションの一覧のうち、いずれかのアプリケーションが選択されたか否かを判定する。いずれかのアプリが選択された場合にはS317に進み、そうでない場合はS320に進む。
【0056】
S317では、開発者用端末100は、アプリ一覧から選択されたアプリケーションを「選択中アプリ」として、選択中アプリを特定する情報(アプリIDやアプリ名など)をメモリ102に記録するとともに、開発環境300に送信する。開発環境300では、選択中アプリを特定する情報を受信すると、ストレージ320のうち、ログインしている開発者の領域から選択中アプリの定義情報(アプリ定義)を取得し、開発者用端末100に送信する。
【0057】
S318では、開発者用端末100は、開発環境300から選択中アプリの定義情報(UI定義情報)を受信したか否かを判定する。選択中アプリの定義情報を受信した場合には、受信した選択中アプリの定義情報をメモリ102に記録してS319に進み、そうでない場合にはS318で定義情報の受信を待つ。本実施形態では、この定義情報は、Json形式でアプリケーションに関する各種定義が記述されたJsonファイルであるものとする。以降、選択中アプリに関してディスプレイ105に表示を行う場合には、メモリ102に記録した定義情報に基づいて表示を行う。後述するUIエディタ処理などで選択中アプリについて更新する操作(例えば、UI部品の配置を変更するなど)が行われると、このメモリ102の定義情報を更新後の内容を定義するように更新する。そして保存の指示があった場合に、メモリ102に記録された最新の定義情報を開発環境300に送信し、ストレージ320のうちログイン開発者の領域に保存させる。このようにすることで、開発環境300との通信頻度の増大を抑え、通信のためにレスポンスが低下することを抑止して快適な更新作業を行うことができる。
【0058】
S319では、開発者用端末100は、ディスプレイ105にUIエディタ画面を表示するとともに、受信した定義情報に基づく表示を行う。例えば、選択中アプリがデスクトップ用であるか用であるかに応じた形状(すなわち、アプリを利用するデバイスの種別に応じた形状)のキャンバス(UI画面の編集領域)を表示する。テスクトップ用であれば16:9の矩形のキャンバスとし、モバイル用であればスマートフォンを模した縦長のアスペクト比のキャンバスとする。サブメニュー領域(後述)には選択中アプリが有する(選択中アプリに属する)UI画面の一覧を表示する(この処理は厳密には後述する図4のS401で行われる)。また、キャンバスには、デフォルトで選択されるUI画面(イニシャルUIや最後に保存した際に編集していたUI画面)に配置されるコンポーネント(UI画面に配置されるUI部品)を表示する。なお、編集対象のUI画面をデフォルトで選択することをせず、この時点ではキャンバスには何も表示しないようにしても良い。S319の処理でログイン処理を終了し、続いて、図4のS401へ進む。
【0059】
一方、S320では、開発者用端末100は、アプリ一覧を表示した画面に表示された、アプリケーションを新規に作成するためのアイコン(+マーク、不図示)が押下され、新規アプリケーションの作成が指示されたか否かを判定する。新規アプリケーションの作成が指示されたと判定した場合にはS321に進み、そうでない場合にはS316に戻る。
【0060】
S321では、開発者用端末100は、新規作成するアプリケーションを、デスクトップ用(PC用)とするかモバイル用とするかの選択画面を表示し、いずれかを選択する操作を受け付ける。デスクトップ用アプリケーションとは、デスクトップPC、ノートPCなどのアプリユーザー用端末200からアクセスされ、操作されることを想定したアプリケーションである。モバイル用アプリケーションとは、スマートフォンなどのアプリユーザー用端末201からアクセスされ、操作されることを想定したアプリケーションである。
【0061】
S322では、開発者用端末100は、新規作成するアプリケーションに関する基本となるアプリ情報(少なくともアプリ名、アプリID)の入力を受け付けるための画面を表示し、アプリ情報を設定する入力操作を受け付ける。アプリ情報の入力を受け付けると、S321で受け付けたデスクトップ用(PC用)かモバイル用かの情報と、S322で入力を受け付けたアプリ情報を開発環境300に送信する。こうして、新規作成されたアプリケーションの定義情報として、開発環境300のストレージ320に、新規のアプリケーションの定義情報が作成され、デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDが記録される。過去に作成済みのアプリケーションの定義情報にも、このようにして、デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDが記録されている。
【0062】
S323では、開発者用端末100は、新規作成されたアプリケーションの編集画面としてUIエディタ画面を表示する。この場合、キャンバスはS321で選択されたデスクトップ用であるかモバイル用であるかに応じた形状で表示される。また、キャンバスはコンポーネントが1つも配置されていない空白情報で表示される。S323の処理でログイン処理を終了し、続いて、図4のS401へ進む。
【0063】
図3(b)に、図3(a)の開発者用端末100側でのログイン処理と協働する開発環境300側のログイン処理を示す。図3(b)の処理は、開発環境300のプロセッサ303が、メモリ304に記録されたプログラムを、プロセッサ303が開発環境300のうちワークメモリとなる領域に展開して実行することにより実現する。以降、単に開発環境300が実行する処理として記載したものは、開発環境300の実行エンジン302が、より詳しくはプロセッサ303が実行する処理であるものとする。
【0064】
S331では、開発環境300は、S308で開発者用端末100から送信されたログイン情報を受信したか否かを判定する。ログイン情報を受信した場合にはS332に進み、そうでない場合にはログイン情報の受信を待つ。
【0065】
S332では、開発環境300は、受信したログイン情報と、開発者情報301を比較し、ログイン認証(ユーザー認証)を行う。より具体的には、受信したログイン情報に含まれる開発者IDとパスワードの組と一致する情報が、開発者情報301(ユーザー情報)に含まれているかを判定する。含まれていれば認証は成功する。
【0066】
S333では、開発環境300は、S332の認証処理の結果、ログインOKである(認証に成功した、認証された、認証OKである)か否かを判定する。ログインOKである場合にはS335に進み、ログインOKでない場合にはS334に進み、ログインエラーである旨の情報を開発者用端末100に送信する。
【0067】
S335では、開発環境300は、開発者情報301に含まれる、ログインOKとなった開発者(ログイン開発者)の実行環境リストを開発者用端末100に送信する。開発者情報301には、各開発者について、メールアドレス(ユーザーネーム、開発者ID)とパスワードに加えて、アクセス可能な実行環境IDが記録されている。各実行環境IDはクラウドサービス(Webサービス)におけるアカウントIDであり、本実施形態では12桁のIDであるものとする。複数の実行環境にアクセス可能な開発者の場合は、12桁の実行環境IDがカンマで区切られて記録されている。S335では、ログイン開発者についての、このアクセス可能な実行環境ID(カンマで区切られた1つ以上の実行環境ID)を開発者用端末100に送信する。すなわち、S335において、開発者情報301を参照することにより、ログイン開発者がアクセス可能な実行環境が特定される。このように、各開発者のアクセス可能な実行環境(各開発者が利用可能な実行環境)は、開発環境300に記録された開発者情報301に記録されている。そして、このログイン可能な実行環境は、ログインOKとなった開発者でなければ取得できない。また、ログインOKとなった開発者自身のアクセス可能実行環境しか取得できない。このようにすることで、開発者が、自身のアクセス可能な実行環境へアクセスするための情報を、開発環境300にログインするための情報と別途に管理する必要がない。また、他のユーザーが不正に実行環境へアクセスすることも抑止できる。
【0068】
S336では、開発環境300は、S313で開発者用端末100から送信された選択中実行環境を特定する情報(環境特定情報)を受信したか否かを判定する。選択中実行環境を特定する情報を受信した場合にはS337に進み、そうでない場合には選択中実行環境を特定する情報の受信を待つ。
【0069】
S337では、開発環境300は、S336で受信した選択中実行環境を特定する情報に基づいて、選択中実行環境を、ストレージ320のログイン開発者用の領域に保存されている、設定管理用のファイルに記録する。
【0070】
S338では、開発環境300は、ストレージ320のうち、ログイン開発者の領域から、ログイン開発者が所有する(ログイン開発者が作成した)全てのアプリケーションを示すアプリ情報を取得し、開発者用端末100に送信する。ここで送信するアプリ情報は、アプリの定義情報のうち、S315で前述したアプリ一覧を表示するために必要な情報までであり、各アプリに関する詳細な定義情報(コンポーネントの配置やアクションを示す情報など)は含まれない。
【0071】
S339では、開発環境300は、S322で開発者用端末100から送信された新規アプリに関する情報(デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDを含む情報)を受信したか否かを判定する。新規アプリに関する情報を受信した場合にはS340に進み、そうでない場合にはS341へ進む。
【0072】
S340では、開発環境300は、ストレージ320のうち、ログイン開発者の領域に、S339で受信した新規アプリに関する情報に基づき、新規のアプリケーションの定義情報を作成して記録する。ここで記録される定義情報には、デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDが含まれる。なお、開発環境300では、マルチテナント実行環境410において他のユーザーのアプリと区別するために、アプリIDとして、S322で開発者から入力されたIDの直前に、アプリを所有する開発者の開発者IDに一意に対応する開発者コード8桁を付して記録する。そして、ログイン処理を終了する。以降、内部処理を行う場合とアクションボードにプログラミング言語で表示する場合にはアプリIDを用いる場合にはログイン開発者の開発者コードを付したIDで処理を行う。また、UIエディタなどにアプリIDとして表示をする際には開発者コードを除く、S322で開発者から入力されたID部分だけを表示する。
【0073】
S341では、開発環境300は、S317で開発者用端末100から送信された選択中アプリを特定する情報を受信したか否かを判定する。選択中アプリを特定する情報を受信した場合にはS342に進み、そうでない場合はS339に戻る。
【0074】
S342では、開発環境300は、S341で受信した選択中アプリを特定する情報に基づき、ストレージ320のうち、ログイン開発者の領域から、選択中アプリの定義情報(アプリ定義)を取得し、開発者用端末100に送信する。ここで送信する定義情報は、選択中アプリに関する詳細な定義情報(コンポーネントの配置やアクションを示す情報など)を含む。そして、ログイン処理を終了する。
【0075】
<UIエディタ処理>
図4図5(b)を用いて、UIエディタ処理について説明する。UIエディタ処理は、UIエディタ画面(アプリケーション開発画面)に対する開発者(ユーザー)からの操作に応じて、構築するアプリケーションの各種定義(UI部品の定義、アクション定義)を行う処理である。
【0076】
図5(b)に、ディスプレイ105におけるUIエディタ処理で表示されるレイアウト編集画面の表示例を示す。図5(b)の画面には、ヘッダーメニュー領域500、メインメニュー領域510、サブメニュー領域520、キャンバス530(UI画面の編集受付領域)が含まれる。
【0077】
ヘッダーメニュー領域500には、選択中実行環境ボックス501、選択中アプリボックス502、選択中UI画面ボックス503、保存ボタン504、プレビューボタン505、デプロイボタン506が表示される。
【0078】
選択中実行環境ボックス501には、選択中実行環境を表す情報として、選択中実行環境IDが表示される。選択中実行環境ボックス501の右端にある矢印アイコンを押下することで、プルダウンメニューとしてS310で取得したログイン開発者がアクセス可能な実行環境の一覧が表示され、一覧から任意の実行環境を選択することで、選択中実行環境を変更することが可能である。選択中実行環境が変更されても、選択中アプリは変更されず、メインメニュー領域510、サブメニュー領域520、キャンバス530に表示される内容は変更されない。このように、同じアプリケーションに関してデプロイする先である選択中実行環境を変更することで、同じアプリケーションを任意の複数の実行環境にデプロイすることが可能である。
【0079】
選択中アプリボックス502には、選択中アプリを表す情報として、選択中アプリのアプリ名が表示される。選択中アプリボックス502の右端にある矢印アイコンを押下することで、プルダウンメニューとしてS314で取得したログイン開発者の所有するアプリ一覧が表示され、一覧から任意のアプリを選択することで、選択中アプリを変更することが可能である。選択中アプリが変更されると、サブメニュー領域520、キャンバス530に表示すべき内容が変わる。
【0080】
選択中UI画面ボックス503には、キャンバス530で編集中のUI画面を表す情報として、編集中のUI画面名が表示される。選択中UI画面ボックス504にある矢印アイコンを押下することで、プルダウンメニューとして、S318で取得した選択中アプリの定義情報に基づき、選択中アプリに属するUI画面の一覧が表示され、一覧から任意のUI画面を選択することで、キャンバス530に表示する編集対象のUI画面を変更することが可能である。
【0081】
メインメニュー領域510には、メインメニューのメニュー項目としての選択肢アイコンとして、アプリ一覧ボタン511、UI画面ボタン512、ワークフローボタン513、設定ボタン514、環境一覧ボタン515、データベースボタン516、ファイルマネージャーボタン517、ユーザー管理ボタン518、スナップショットボタン519が表示される。これらの選択肢の押下に応じた処理については図8(a)の画面切替処理で後述する。
【0082】
サブメニュー領域520には、メインメニューで選択された項目に応じたサブメニューが表示される。図5(b)の例では、UI画面ボタン512の下位階層メニューとしてUIコンポーネント一覧(UI部品一覧)が表示されている例である。
【0083】
キャンバス530は、選択中アプリの選択中のUI画面(選択中UI画面ボックス503に表示されているUI画面名のUI画面)のレイアウト編集領域である。図5(b)のキャンバス530は、デスクトップ用アプリケーションのキャンバスの表示例であり、デスクトップ用の形状で表示されている。ユーザーは、サブメニュー領域520に表示されたUI部品一覧の中から任意のUI部品(UIコンポーネント)を選び、キャンバス領域530にドラッグアンドドロップで配置することができる。キャンバス領域530に配置されたUI部品を選択してサイズや位置の調整ができる。また、キャンバス領域530に配置されたUI部品を選択して右クリックして表示される右クリックメニュー(コンテキストメニュー)に含まれるプロパティを選択することで、配色などのより詳細な設定を行える。さらに、同じくコンテキストメニューに含まれるアクションを選択することで、アクションボードが表示され、そのUI部品が操作された場合に実行すべきアクションを設定することができる。キャンバス530の空白領域にカーソルがある状態で右クリックを行うことで、キャンバスのコンテキストメニューを表示させることができ、そこに含まれるアクションを選択することにより、構築されたアプリケーションにおいてそのキャンバスのUI画面がロードされた場合に実行(そのUI画面を表示する際に実行)すべきアクションを設定することができる。
【0084】
図5(b)は、アプリ名「UI1」のアプリの、UI画面名「ui1」のキャンバス530に、UI部品として、パイチャート531(pie chart、円グラフ)、ボタン532、テキストフィールド533、534、アウトプットフィールド535、(Output Field)、タブ部品536を配置した例である。操作パス531aは、選択されているUI部品を示す選択枠かつ拡大縮小の指示を受け付ける操作パス(操作ハンドル)であり、パイチャート531が選択されていることを示している。
【0085】
図4に、UIエディタ処理のフローチャートを示す。この処理は、開発者用端末100が実行する処理であり、図3のS319またはS323の後に続けて行われる処理である。
【0086】
S401では、開発者用端末100は、選択中アプリの定義情報に基づき、サブメニュー領域520に選択中アプリのUI画面一覧を選択肢として表示する。このUI画面一覧に表示される各画面は、選択中アプリを実行環境にデプロイして構築し、アプリユーザー用端末200、201からアクセスしてアプリを実行した場合に表示する画面として設計している画面である。このUI画面一覧では、新規UI画面を追加する操作や、UI画面の削除操作も受付可能である。
【0087】
S402では、開発者用端末100は、S401で表示されたUI画面一覧のうちいずれかのUI画面を選択する操作があったか否かを判定する。いずれかのUI画面が選択された場合はS404に進み、そうでない場合にはS403に進む。
【0088】
S403では、メインメニュー領域510に表示されたいずれかの選択肢を選択する操作があったか否かを判定する。メインメニュー領域510に表示された選択肢が選択された場合にはUIエディタ処理を終了し、図8(a)で後述する画面切替処理へ進む。そうでない場合にはS402に戻る。
【0089】
S404では、開発者用端末100は、メモリ102に記録した選択中アプリの定義情報に基づいて、キャンバス530にS402で選択されたUI画面を表示する。過去にUI部品が配置済みのUI画面であれば、定義情報に従って過去に配置されたUI部品がキャンバス530に表示される。すなわち、過去に途中まで作成したUI画面であれば続きから開発できる。S402で選択されたUI画面が新規に作成されたUI画面であれば、キャンバス530はUI部品が配置されていない空白の状態で表示される。S402で選択されたUI画面が、テンプレ―トとして予め用意されているUI画面(テンプレート画面)である場合には、ユーザーがそのUI画面に過去にUI部品を配置していなくても、予め定められたアクションが定義された雛形コンポーネントがキャンバス530の予め決まった位置に表示される。
【0090】
S405では、開発者用端末100は、サブメニュー領域520に、UI部品の一覧を表示する。すなわち、選択中アプリのUI画面一覧から、UI部品一覧の表示に切り替える。キャンバス530に配置可能なUI部品としては、種別としてINPUT、Button(ボタン)、Display(情報表示用部品)、Navigation、Layout、Chartが含まれ、それぞれに種別に複数のUI部品が分類されている。UI部品一覧では、まず、図5(c)に図示するように、UI部品の種別の一覧が表示され、表示された種別のいずれかを選択する操作があったことに応じて、選択された種別に分類されるUI部品が展開表示される。前述した図5(b)は、INPUTに対応する種別の選択肢522が選択され、INPUTに分類されたUI部品の一覧が表示された例である。INPUTに分類されたUI部品には、例えばテキストフィールド523、テキストエリア524が含まれる。サブメニュー領域520はスクロール可能であり、表示しきれない選択肢(展開している種別のUI部品の選択肢や、他の種別の選択肢)はスクロールして表示させることができる。図5(b)のように展開している種別の選択肢522が操作されると、展開していた種別のUI部品一覧が折りたたまれ、UI部品の種別の一覧が表示される。
【0091】
S406では、開発者用端末100は、サブメニュー領域520に表示されたUI部品が選択されたか否かを判定する。より詳しくは、サブメニュー領域520に表示されたUI部品をドラッグする操作が行われたか否かを判定する。サブメニュー領域520に表示されたUI部品が選択された場合にはS407に進み、そうでない場合にはS411へ進む。
【0092】
S407では、開発者用端末100は、キャンバス530上の位置を指定する操作があったか否かを判定する。より詳しくは、ドラッグしていたUI部品をキャンバス530上にドロップする操作があったか否か判定する。キャンバス530上を指定する操作があった場合はS408へ進み、そうでない場合にはS407でキャンバス530上の位置の指定を待つ。なお、本実施形態ではドラッグアンドドロップの例を説明するが、サブメニュー領域520からUI部品を選択してキャンバス530上の指定位置に配置するための操作であれば操作方法はこれに限るものではない。
【0093】
S408では、開発者用端末100は、S407でドロップされたUI部品がAppBar(アプリケーションバー)であったか否を判定する。AppBarであった場合はS410に進み、そうでない場合にはS409に進む。
【0094】
S409では、開発者用端末100は、サブメニュー領域520からS406で選択されたUI部品を、キャンバス530上の指定位置にデフォルトのサイズで配置し、そのことを定義する情報をメモリ102に記録した定義情報に記録する。すなわち、定義情報において、配置先のUI画面(編集中のUI画面)のIDに、S410で配置したUI部品の種別、UI部品ID、配置座標、配置サイズなどを関連付けて記録する。
【0095】
S410では、開発者用端末100は、開発環境300から取得してメモリ102に保持している定義情報に含まれるアプリ設定を参照し、PWA(Progressive web apps)がオンに設定されているか否かを判定する。PWAがオンに設定されている場合にはS411に進み、そうでない場合にはS412に進む。
【0096】
S411では、開発者用端末100は、PWAインストールの項目のあるAppBarを、キャンバス530上のS407で指定された位置に関わらない所定の位置(本実施形態では、UI画面の最上部)にデフォルトのサイズで配置し、そのことを定義する情報をメモリ102に記録した定義情報に記録する。
【0097】
S412では、開発者用端末100は、PWAインストールの項目のないAppBarを、キャンバス530上のS407で指定された位置に関わらない所定の位置にデフォルトのサイズで配置し、そのことを定義する情報をメモリ102に記録した定義情報に記録する。
【0098】
図6(a)、図6(b)に、AppBarを配置した場合の表示例を示す。図6(a)は、キャンバス530に、それぞれUI部品であるAppBar650、TextField661、Button662を配置した場合の例である。AppBar650は1つのUI部品であり、AppBar650の中に要素アイコン651が含まれる。要素アイコン651は、構築されたアプリケーションにおいては、ドロワーメニューを表示させるための指示を受け付ける表示アイテムである。
【0099】
配置済みのAppBar650のうち、要素アイコン651の位置がクリックされた場合、AppBar650に対する操作パス650aを表示する(S414)とともに、要素画面としてのドロワーメニューを表示する。これによって、図6(a)の表示状態から図6(b)の表示状態へ遷移する。図6(b)において、AppBar650に対する操作パス650aが表示され、かつ、要素アイコン651に対応する要素画面であるドロワーメニュー651aが表示されている。ドロワーメニュー651aは、画面左端から右側に引き出すようにして表示される領域であり、1つ以上のメニュー項目が表示される。このドロワーメニュー651aに含まれるメニュー項目として、PWAの設定がオンである場合には、PWAインストールの項目652が表示され、PWAの設定がオフである場合には、PWAインストールの項目652は表示されない。構築後のアプリケーションにおいてPWAインストールの項目652が押下されると、構築後のアプリケーションの画面を表示しているアプリユーザー端末201が、対応するPWAをダウンロードしてインストールされるように制御される。AppBarは、アプリケーションの上部に配置されるUI部品であり、アプリケーションのよく使う機能へのショートカットや各種機能へのナビゲーションがドロワーメニューに表示される。従って、アプリケーションのユーザーは、アプリケーションに関する何らかの操作を行う場合には、まずはAppbarのドロワーメニューを開くという操作を行う可能性高い。従ってこのドロワーメニューに表示される選択肢であって、アプリケーションの複数の画面または複数の機能に対応する選択肢とともに、その1つとして、PWAインストールの項目652を表示することで、より確実にユーザーにPWAの利用が可能であることを認識させることができる。
【0100】
S413では、開発者用端末100は、キャンバス530に配置済みのUI部品がクリックなどで選択されたか否かを判定する。配置済みのUI部品がクリックされた(選択された)場合にはS414に進み、そうでない場合にはS415に進む。
【0101】
S414では、開発者用端末100は、S413でクリックされたUI部品に操作パスを表示する。操作パスの表示例が前述の操作パス531aや操作パス601aである。
【0102】
S415では、開発者用端末100は、キャンバス530上で配置済みのUI部品をドラッグする操作があったか否かを判定する。配置済みのUI部品をドラッグする操作があった場合にはS416に進み、そうでない場合にはS417へ進む。S416では、開発者用端末100は、ドラッグ操作に応じてドラッグされたUI部品(選択部品)の配置される位置を変更する。具体的には、ドロップされた位置に配置する。配置を変更すると、メモリ102に記録している定義情報も変更後の位置を表すように更新する。
【0103】
S417では、開発者用端末100は、キャンバス530上で配置済みのUI部品の操作パスに対する操作があったか否かを判定する。操作パスへの操作があった場合にはS418に進み、そうでない場合にはS419へ進む。S418では、開発者用端末100は、操作パスへの操作に応じて操作パスが付されたUI部品(選択部品)のサイズを変更する。サイズを変更すると、メモリ102に記録している定義情報も変更後のサイズを表すように更新する。
【0104】
S419では、開発者用端末100は、キャンバス530のいずれかの領域でコンテキストメニューを表示させる指示操作(本実施形態ではマウスの右クリック)があったか否かを判定する。右クリックがあった場合にはS420に進み、そうでない場合にはS421に進む。S420では、右クリックがあった際のマウスカーソルの位置に応じてコンテキストメニュー(右クリックメニュー)を表示し、コンテキストメニューに対する操作に応じた処理を行うコンテキストメニュー処理を行う。例えば、図5(b)のボタン532上にマウスカーソルがある状態で右クリックが行われた場合には、図5(d)に示すようなボタン532(指定UI部品)に関するコンテキストメニュー540を表示する。コンテキストメニュー540には、選択肢となるメニュー項目としてプロパティ541、アクション542、消去543が表示される。プロパティ541が選択されると、ボタン532に関するプロパティボックス(詳細設定ダイアログ)が表示され、ボタン532に表示するボタン名(ラベル)、ボタン532の色、数値指定でのサイズ、等の詳細な設定を行える。アクション542が選択されると、ボタン532に関するアクションボードが表示され、アクションボードに対してプログラミング言語であるJavaScriptでのアクションの入力が行える。ここで入力されるアクションは、構築されたアプリケーションにおいてボタン532(指定UI部品)が押下された場合に実行すべき処理である。消去543が選択されると、キャンバス530からボタン532を消去(削除)する。コンテキストメニュー処理の詳細については図7(a)を用いて後述する。
【0105】
S421では、開発者用端末100は、保存ボタン504が押下されたか否かを判定する。保存ボタン504が押下された場合にはS422に進み、そうでない場合にはS423へ進む。S422では、開発者用端末100は、メモリ102に記録している編集中のアプリケーションの定義情報を開発環境300に送信する。
【0106】
S423では、開発者用端末100は、プレビューボタン505が押下されたか否かを判定する。プレビューボタン505が押下されたと判定した場合にはS424へ進み、そうでない場合にはS425へ進む。S424では、開発者用端末100は、プレビュー処理を行う。プレビュー処理では、キャンバス503を非表示とし、メモリ102に記録している定義情報または開発環境300に記録されている定義情報に基づいて、キャンバス503で編集しているUI画面について、構築されたアプリケーションでそのUI画面を見た場合と同じ見た目となるようなプレビューを表示する。プレビューでは、UI部品を操作するための操作パスは表示されない。また、UIエディタ画面では実行されない(キャンバス530への操作では実行されない)一部の動作について、プレビューでは実行される。例えば、画面遷移用のUI部品やリンク部分を操作した場合に、画面遷移やリンク先への遷移が実行される。また、項目に対する選択枠の移動をキーボードのタブキーの操作によって行うといった動作も実行される。なお、アクションボートに開発者が入力したアクションやデータベースの参照といった動作は行われない。その分、プレビュー処理は実際にデプロイして確認する場合よりも高速に表示することができる。
【0107】
S425では、開発者用端末100は、デプロイボタン506が押下されたか否かを判定する。デプロイボタン506が押下された場合にはS426へ進み、そうでない場合にはS427へ進む。S426では、開発者用端末100は、開発環境300にデプロイを指示するデプロイ要求を送信する。
【0108】
S427では、開発者用端末100は、選択中実行環境を変更する操作があったか否かを判定する。具体的には、選択中実行環境ボックス501に対して、選択中実行環境を変更する操作があったか否かを判定する。選択中実行環境を変更する操作があった場合にはS428へ進み、そうでない場合にはS429へ進む。S428では、開発者用端末100は、選択された実行環境を特定する情報(実行環境IDなど)を「選択中実行環境」としてメモリ102に記録するとともに、開発環境300に送信する。また、選択中実行環境ボックス501の表示内容を、変更後の選択中実行環境を表すように更新する。開発環境300では、選択中実行環境を特定する情報を受信すると、それに基づき、選択中実行環境を、ストレージ320のログイン開発者用の領域に保存されている、設定管理用のファイルに記録する。
【0109】
S429では、開発者用端末100は、編集対象のアプリケーションを変更する操作があったか否かを判定する。具体的には、選択中アプリボックス502に対して選択中アプリを変更する操作があったか否かを判定する。選択中アプリを変更する操作があった場合には図3のS317に進み、変更後の選択中アプリに基づいてS317以降の処理を実行する。すなわち、サブメニュー領域520、キャンバス530の表示内容が更新される。選択中アプリを変更する操作がなかった場合には処理はS430へ進む。
【0110】
S430では、開発者用端末100は、編集対象のUI画面を変更する操作があったか否かを判定する。具体的には、選択中UI画面ボックス503に対して、選択中UI画面を変更する操作があったか否かを判定する。選択中UI画面を変更する操作があった場合にはS404に進み、変更後の選択中UI画面に基づいて処理を行う。すなわち、キャンバス530の表示内容は変更後の選択中UI画面の内容に更新される(切り替わる)。選択中UI画面を変更する操作がなかった場合には処理はS431へ進む。
【0111】
S431では、開発者用端末100は、メインメニュー領域510に表示されたいずれかの選択肢を選択する操作があったか否かを判定する。メインメニュー領域510に表示された選択肢が選択された場合にはUIエディタ処理を終了し、図8(a)で後述する画面切替処理へ進む。そうでない場合にはS406に戻る。
【0112】
<コンテキストメニュー処理>
図7(a)に、コンテキストメニュー処理のフローチャートを示す。この処理は、図5のS420の詳細フローチャートである。
【0113】
S701では、開発者用端末100は、表示すべきコンテキストメニューが、ボタン(Button)の種別のUI部品に関するものであるか否かを判定する。より詳しくは、S419で右クリックを受け付けた際にマウスで指定していたUI部品(指定UI部品)の種別がボタンであるか否かを判定する。ボタンである場合にはS710に進み、そうでない場合にはS702に進む。
【0114】
S702では、開発者用端末100は、表示すべきコンテキストメニューが、キャンバスに関するものであるか否かを判定する。より詳しくは、S419で右クリックを受け付けた際にマウスで指定していた位置が、キャンバス530のうちUI部品が配置されていない空白領域であったか否かを判定する。空白領域であった場合(表示すべきコンテキストメニューが、キャンバスに関するものである場合)はS703に進み、そうでない場合にはS704に進む。
【0115】
S703では、開発者用端末100は、キャンバスのコンテキストメニュー処理を行う。
【0116】
S704では、開発者用端末100は、表示すべきコンテキストメニューが、AppBarの種別のUI部品に関するものであるか否かを判定する。より詳しくは、S419で右クリックを受け付けた際にマウスで指定していたUI部品(指定UI部品)の種別がAppBarであるか否かを判定する。AppBarである場合にはS705に進み、そうでない場合にはS709に進む。
【0117】
S705では、開発者用端末100は、AppBarのコンテキストメニューを表示する。AppBarのコンテキトメニューにはプロパティの項目が含まれる。
【0118】
S706では、開発者用端末100は、AppBarのコンテキストメニューのうち、プロパティの項目を選択する操作があったか否かを判定する。プロパティの項目を選択する操作があった場合にはS707に進み、そうでない場合にはS708に進む。
【0119】
S707では、開発者用端末100は、AppBarのプロパティボックス(詳細設定ダイアログ)を表示し、プロパティボックスに対する各種設定操作(指定UI部品であるAppbarに関する設定操作)を受け付ける。
【0120】
図7(b)に、AppBarのプロパティボックス730の憑依事例を示す。AppBarのプロパティボックス730には、DRAWER ITEMSの設定項目が含まれ、DRAWER ITEMSの設定項目を選択したことに応じて、DRAWER ITEMSの設定を行うダイアログボックス740がポップアップして重畳表示される。ダイアログボックス740は、DRAWER ITEMS(ドロワーメニューに含まれるメニュー項目)に関する設定を行う画面であって、既にドロワーメニューに表示されるものとして設定されているメニュー項目が表形式で一覧表示される。図示の例では、Item1とItem2がAppBarのドロワーメニューに表示されるメニュー項目として表示されるものとして設定されている項目である。各項目に関して、ID741,ICON742,LABEL743(表示される名称)、クリックイベント744,NEXT UI745(クリックされたことに応じて遷移するUI画面)が設定可能である。PWAの設定がオンでり、PWAインストールの項目652が配置される設定となっている場合には、このダイアログボックス740にも、PWAインストールの項目652に対応する項目がリストアップされて表示される。なお、PWAインストールの項目652に関しては、IDは、PWAインストールの項目であることを特定するための接頭文字列が付され、接頭文字列は変更できないものとする。また、クリックイベント744、NEXT UI745も変更できないものとする。PWAインストールの項目652には、構築後のアプリケーションの画面を表示しているアプリユーザー端末201が、対応するPWAをダウンロードしてインストールするというクリックイベントが自動的に設定されるためである。PWAインストールの項目652に関して、ICON742とLABEL743は変更できるものとする。すなわち、PWAインストールの項目652の見た目(表示形態)は変更可能である。PWAの設定がオンであり、PWAインストールの項目652が配置される設定となっている場合に、PWAインストールの項目652を削除(AppBarドロワーメニューに表示しない)ように設定することも可能である。後述するとおり、イニシャルUIにインストール部品を配置する場合には、AppBarのドロワーメニューにはPWAインストールの項目は必ずしも必要ないからである。
【0121】
モバイル用のアプリという設定であり、PWAの設定がオフであり、PWAインストールの項目652が配置されない設定となっている場合に、ダイアログボックス740に含まれる項目追加ボタン746を押下し、PWAインストールの項目652を追加するとともに、PWAの設定をオンとするようにしてもよい。この際、PWAインストールの項目652を追加する操作を行った場合に、アプリ設定(後述する図8(a)のS810~S819の処理によって行う設定)においてPWAの設定がオンとなることを通知および確認する確認表示を行い、ユーザーから承認する操作があったことに応じて、PWAインストールの項目652を追加するとともに、PWAの設定をオンとするようにしてもよい。
【0122】
モバイル用のアプリという設定であり、PWAの設定がオフであり、PWAインストールの項目652が配置されない設定となっている場合に、ダイアログボックス740に含まれる項目追加ボタン746を押下し、PWAインストールの項目652を追加しようとする操作を行うと、アプリ設定でPWAをオンとする必要があることを警告する通知行い、ダイアログボックス740への操作ではPWAの設定をオンとできないように制御してもよい。この警告の際に、後述する図8(b)のアプリ設定画面(設定項目841~848を含む画面)を表示させるショートカットアイテムを表示し、ショートカットアイテムが操作されたことに応じて図8(b)のアプリ設定画面(設定項目841~848を含む画面)を表示し、後述する図8(a)のS811の処理へ進んでも良い。
【0123】
S708では、開発者用端末100は、AppBarのコンテキストメニューのうち、プロパティの項目以外の、その他の項目に関する処理を行う。詳細は省略する。
【0124】
S709では、開発者用端末100は、その他の処理として、指定された位置に対応する指定対象に関するコンテキストメニューを表示し、操作に応じた処理を行う。詳細は省略する。
【0125】
S710では、開発者用端末100は、編集対象のUI画面(選択中UI画面)がテンプレート画面であるか否かを判定する。テンプレート画面である場合にはS721に進み、そうでない場合にはS711に進む。
【0126】
S711では、開発者用端末100は、指定UI部品に関するコンテキストメニューとして、図5(d)に示したボタン用のコンテキストメニューを指定位置(マウスカーソル位置)の近傍に重畳表示する。
【0127】
S712では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、プロパティ(図5(d)のプロパティ541)が選択されたか否かを判定する。プロパティが選択された場合にはS713に進み、そうでない場合にはS714へ進む。
【0128】
S713では、開発者用端末100は、指定UI部品に関するプロパティボックス(詳細設定ダイアログ)として、ボタン用のプロパティボックスをキャンバス530に重畳して表示する。そして、プロパティボックスに対する各種設定操作を受け付ける。ここで、例えば、指定UI部品であるボタンに表示するボタン名(ラベル)、ボタンの色、数値指定でのサイズ、等の詳細な設定を行える。設定を行って反映操作を行うと、キャンバス530において、設定を反映した表示形態で指定UI部品が表示される。
【0129】
S714では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、アクション(図5(d)のプロパティ542)が選択されたか否かを判定する。アクションが選択された場合にはS715に進み、そうでない場合にはS716へ進む。
【0130】
S715では、開発者用端末100は、指定UI部品であるボタンに関するアクションボード処理を行う。すなわち、指定UI部品であるボタンに対応するアクションボードが表示され、アクションボードに対してプログラミング言語であるJavaScriptで文字列(アクションを定義する文字列)を記述する入力を受け付ける。ここで入力されるアクションは、構築されたアプリケーションにおいて指定UI部品が押下された場合に実行すべき処理である。
【0131】
S716では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、消去(図5(d)の消去543)が選択されたか否かを判定する。消去が選択された場合にはS717に進み、そうでない場合にはS718へ進む。
【0132】
S717では、開発者用端末100は、指定UI部品を消去し、メモリ102に記録した定義情報のうち、指定UI部品に関する情報(位置やサイズなどの定義、プロパティやアクションなど)を消去する。これによって、キャンバス530において指定UI部品は消去(削除)されて非表示となる。
【0133】
S718では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、他の選択肢が選択されたか否かを判定する。他の選択肢が選択された場合にはS719に進み、選択された選択肢に応じた処理を行う。そうでない場合にはS720へ進む。
【0134】
S720では、開発者用端末100は、コンテキストメニューを閉じる操作(例えば、コンテキストメニューが表示された領域外をクリックする操作)があったか否かを判定する。コンテキストメニューを閉じる操作があった場合には、コンテキストメニューを非表示とし、図7(a)の処理を終了する。閉じる操作がない場合にはS712に戻る。
【0135】
一方、S721では、開発者用端末100は、指定UI部品に関するコンテキストメニューとして、テンプレート画面用で、かつ、ボタン用のコンテキストメニューを指定位置(マウスカーソル位置)の近傍に重畳表示する。テンプレート画面用のコンテキストメニューには、通常のUI画面用のコンテキストメニュー(図5(d)に示したコンテキストメニュー540)と異なり、選択肢としてアクション、消去は表示されず、プロパティだけが表示される。すなわち、UI画面のうち、テンプレートの画面に配置されたUI部品に関しては、当該UI部品が操作された場合のアクションを開発者が設定できないようにしている。
【0136】
S722では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、プロパティが選択されたか否かを判定する。プロパティが選択された場合にはS723に進み、そうでない場合にはS724へ進む。S723の処理はS713と同様である。
【0137】
S724では、開発者用端末100は、コンテキストメニューを閉じる操作(例えば、コンテキストメニューが表示された領域外をクリックする操作)があったか否かを判定する。コンテキストメニューを閉じる操作があった場合には、コンテキストメニューを非表示とし、図7(a)の処理を終了する。閉じる操作がない場合にはS722に戻る。
【0138】
<画面切替処理>
図8(a)に、画面切替処理のフローチャートを示す。この処理は、図5(b)の表示例で前述したメインメニュー領域510に表示された選択肢の選択に応じた処理である。
【0139】
S801では、開発者用端末100は、アプリ一覧ボタン511が押下されたか否かを判定する。アプリ一覧ボタン511が押下された場合は図3のS315に進み、そうでない場合はS802に進む。
【0140】
S802では、開発者用端末100は、UI画面ボタン512が押下されたか否かを判定する。UI画面ボタン512が押下された場合はS803に進み、そうでない場合はS804へ進む。S803では、図4のUIエディタ処理を行う。
【0141】
S804では、開発者用端末100は、ワークフローボタン513が押下されたか否かを判定する。ワークフローボタン513が押下されたと判定した場合はS805に進み、そうでない場合はS806に進む。
【0142】
S805では、開発者用端末100は、ワークフロー作成処理を行う。詳細は省略する。
【0143】
S806では、開発者用端末100は、設定ボタン514が押下されたか否かを判定する。設定ボタン514が押下された場合にはS810に進み、そうでない場合はS820へ進む。
【0144】
S810では、開発者用端末100は、アプリ設定画面を表示する。アプリ設定画面は、選択中アプリに関する設定操作を受け付ける画面である。
【0145】
図8(b)に、アプリ設定画面の表示例を示す。アプリ設定画面は、設定の上位メニュー表示領域830と、上位メニュー表示領域830に表示されたメニュー項目のうち、選択されたメニュー項目に対応する各種設定項目の設定を受け付ける設定領域840を含む。また、前述した選択中アプリボックス502も共に表示されている。選択中アプリボックス502に表示された選択中アプリが、アプリ設定画面での設定対象となるアプリである。上位メニュー表示領域830には、設定項目の分類に対応する複数のメニュー項目が表示される。表示されるメニューには、一般設定831が含まれる。設定対象となるアプリがモバイル用である場合には、上位メニュー表示領域830にはPWAに関するメニュー項目832が含まれる(表示される)。設定対象となるアプリがモバイル用でない場合(PC用である場合)には、上位メニュー表示領域830にはPWAに関するメニュー項目832は含まれない(表示されない)。PWAに関するメニュー項目832が選択されている場合、設定領域840には、PWAに関する設定項目として設定項目841~848が表示される。
設定項目841は、PWAの設定のオン/オフを切り替える設定項目である。
設定項目842~848は、PWAのマニフェストに反映される設定項目である。
設定項目842は、PWAインストールした場合に、インストールされたアプリユーザー用端末201に表示されるアプリ名を設定する項目である
設定項目843は、PWAインストールした場合に、インストールされたアプリユーザー用端末201に表示される短いアプリ名を設定する項目である。
設定項目844は、アプリに関する説明文であるDescriptionを設定する項目である。
設定項目845~848は、ホーム画面におけるアプリのアイコンに使用する画像を設定する項目である。非マスカブルアイコン用とマスカブルアイコン用について、それぞれ複数のサイズの画像を設定可能である。
【0146】
S811では、開発者用端末100は、設定対象となるアプリがモバイル用であるか否かを判定する。モバイル用である場合にはS812へ進み、そうでない場合にはS818へ進む。
【0147】
S812では、開発者用端末100は、PWAの設定のオン/オフを切り替える操作があったか否かを判定する。具体的には、PWAに関するメニュー項目832を選択した上で、設定項目841に対する操作があったか否かを判定する。PWAの設定のオン/オフを切り替える操作があった場合にはS813に進み、そうでない場合にはS817に進む。
【0148】
S813では、開発者用端末100は、PWAの設定のオン/オフを切り替え、切り替えた結果に基づいてメモリ102に記録した定義情報を更新する。具体的には、PWAの設定のオン/オフを切り替える操作がある前にオンだった場合にはオフ(PWA無効)に設定し、PWAの設定のオン/オフを切り替える操作がある前にオフだった場合にはオン(PWA有効)に切り替える。
【0149】
S814では、開発者用端末100は、PWAの設定がオンであるか否かを判定する。オンである場合にはS815に進み、オフである場合にはS818に進む。S812でYesと判定されてからS814に進んだ場合には、S814の判定は、PWAの設定のオン/オフを切り替える操作の結果、オンになったかどうかの判定である。
【0150】
S815では、開発者用端末100は、アプリ設定でイニシャルUI(アプリの認証完了後に最初に表示するUI画面、トップ画面、トップページ)に設定されているUI画面の定義情報を参照し、PWAのインストールを指示するUI部品(インストール部品)が配置済みであるか否かを判定する。この判定は、イニシャルUIに配置すると定義されているUI部品に、インストール部品を示す特定のUI部品IDがあるかどうかで判定する。イニシャルUIにインストール部品を配置済みである場合にはS818に進み、そうでない場合(未配置の場合)にはS816に進む。この判定は、インストール部品がいくつも配置されてしまうことを防止するための判定である。
【0151】
S816では、開発者用端末100は、イニシャルUIに設定されているUI画面に、インストール部品を自動的に配置する。インストール部品はクリックイベントが予め定められたUI部品であり、対象のアプリのPWAをインストールするというイベントが予め定められている。インストール部品に設定されたクリックイベントは、アプリユーザー用端末201が実行する処理であり、他のUI部品のアクションボードに設定できる、実行環境400が実行すべき処理とは異なる。インストール部品のアクションは変更や削除不可能であり、インストール部品についてはアクションボードを開けないものとする。また、インストール部品はUI部品であるため、UIエディタでイニシャルUIを表示させ、インストール部品の配置される位置や大きさ、色など、プロパティボックスで変更可能な内容を変更することが可能である。なお、構築後のアプリにおいて、インストール部品は、イニシャルUIを表示しているアプリユーザー用端末201にPWAがインストール済みであれば表示されず、未インストールであれば表示されるようにアプリユーザー用端末201によって制御される。
【0152】
S817では、開発者用端末100は、イニシャルUIを変更する操作があったか否かを判定する。具体的には、一般設定831を選択した上で、設定領域840に表示されるイニシャルUIの設定項目(不図示)に対する設定変更操作があったか否かを判定する。イニシャルUIを変更する設定変更操作があった場合にはS813に進み、設定変更操作に応じてイニシャルUIの設定を変更し、定義情報を更新する。その後、S814でPWAの設定がオンであると判定し、S815で変更後のイニシャルUIにインストール部品を配置済みでないと判定した場合には、S816で、変更後のイニシャルUIにインストール部品を自動的に配置する。かを判定し、オンであったイニシャルUIを変更する設定変更操作がない場合にはS818へ進む。
【0153】
S818では、開発者用端末100は、開発者からの操作に応じてその他のアプリ設定を行う。例えば、言語設定(日本語表示にするか、英語表示にするか)などを設定可能である。
【0154】
S819では、開発者用端末100は、アプリ設定を終了してアプリ設定画面を閉じる操作があったか否かを判定する。アプリ設定を終了しない場合はS811に進んで処理を繰り返し、アプリ設定を終了する場合はS801に進む。
【0155】
S820では、開発者用端末100は、メインメニュー領域510に表示されたその他の選択肢が選択されたか否かを判定する。その他の選択肢が選択された場合はS821に進み、そうでない場合にはS822に進む。
【0156】
S821では、開発者用端末100は、S820で選択された選択肢に応じた処理を行う。詳細は省略する。
【0157】
S822では、開発者用端末100は、終了操作が行われたか否かを判定する。終了操作が行われていない場合にはS801に進んで処理を繰り返し、終了操作があった場合には画面切替処理を終了する。
【0158】
<保存処理>
図9(a)に、定義情報の記録先となる開発環境300が実行する保存処理(記録制御処理)のフローチャートを示す。この処理は、前述の図4のS422において、開発者用端末100から送信された、定義情報を受信したことに連動して実行する処理である。
【0159】
また、図10に、開発者用端末100、開発環境300、実行環境400、アプリユーザー用端末201に記録される情報の遷移を図示する。図10は、図9(a)、図9(b)のフローチャートの処理による情報の遷移の様子を模式的に表した図である。
【0160】
図9(a)のS901では、開発環境300は、開発者用端末100から選択中アプリの定義情報(UI定義情報)を受信したか否かを判定する。ここで受信する定義情報は、前述の図4のS422において、開発者用端末100から送信されたものである。UI定義を受信した場合にはS902に進み、そうでない場合にはS901で待機する。
【0161】
図10において、開発者用端末100のメモリ102に記録されているUI定義情報1001が、S901で受信する定義情報である。本実施形態では、UI定義情報は「uiDef.json」、及び「appDef.json」というファイル名の、JSONフォーマットで記述された、テキスト形式の複数のファイルであるものする。JsonはJavaScript Object Notificationの略であり、JavaScriptで値を取り扱うためのドキュメント規格であり、データ記述言語である。UI定義情報1001には、イニシャルUI等のアプリに関する各種設定内容や、UI画面毎のUIコンポーネント(UI部品)の情報(配置位置、サイズ、色など)を定義する情報が含まれる。特に、「appDef.json」には、S810~S819のアプリ設定処理で設定された内容が記録されており、PWAに関する設定内容(PWAのオン/オフの設定、オンの場合のマニフェストに関する設定内容)も記録されている。また、UI定義情報1001には、アクション記述部分1002が含まれている。このアクション記述部分1002は、各UI部品やキャンバスのアクションボードや関数の設定画面(創作関数の設定画面を含む)に入力された文字列である。アクション記述部分1002には、JavaScriptで記述されたアクションと、JavaScriptを入力することなく関数の設定画面で設定された内容を記述したJsonフォーマットの関数定義などが含まれる。このUI定義情報1001が開発者用端末100から開発環境300に送信され(アップロードされ)、S901で開発環境300によって受信される。
【0162】
S902では、開発環境300は、UI定義情報をストレージ320のうち、ログイン開発者用の領域に保存する。この結果、図10に示す通り、開発環境300にUI定義情報1011が記録される。この保存の直後においては、開発環境300に記録されたUI定義情報1011は、開発者用端末100に記録されたUI定義情報1001と同じ情報である。
【0163】
S903では、開発環境300は、S902で保存したUI定義情報からアクション情報を抽出する。すなわち、開発環境300は、図10のUI定義情報1011からアクション記述部分1012を抽出する。
【0164】
S904では、開発環境300は、S903で抽出したアクション記述部分1012から、実行環境用プログラムを生成して、ストレージ320のうちログイン開発者用の領域に保存する。すなわち、図10のUI定義情報1011から抽出したアクション記述部分1012に基づいて、実行環境用プログラム1013を生成して開発環境内に保存する。実行環境用プログラム1013はJavaScriptで記述されたテキストデータである。実行環境用プログラム1013は、アクション記述部分1012から取得したアクションボードに入力されていた文字列に加えて、実行環境の実行エンジンで実行するために必要な補充部分を追加したプログラムである。
【0165】
S905では、開発環境300は、S902で保存したUI定義情報のうち。PWAの設定を読み出し、PWAがオンであるか否かを判定する。オンである場合には、S907に進み、そうでない場合にはS906に進む。
【0166】
S906では、開発環境300は、クライアント用UI定義情報1015を生成する。クライアント用UI定義情報1015は例えば「ClientDef.json」というファイル名のJson形式のファイルであるものとする。クライアント用UI定義情報1015には、UI定義情報1011から取得した情報として、イニシャルUI等のアプリに関する各設定情報、UI画面毎のUI部品(コンポーネント)の情報(UI部品IDやプロパティで設定された内容、UI部品の配置位置やサイズなど)、キャンバスのアクショションの識別子、UI部品のアクションの識別子などが含まれる。また、クライアント用UI定義情報1015には、アクション毎の入出力項目定義(入力項目、出力項目にそれぞれどの部品があるかという定義)も記録される。アクションボードに記載されたJavaScript(プログラミング言語)で記述された文字列(アクションのソースコード)自体は記録されないものとする。すなわち、生成されるクライアント用UI定義情報1015は、アクションの識別子やアクション毎の入出力項目定義の情報を含むが、アクションの動作内容を示す情報は含まない。また、PWAがオフの設定である場合には、クライアント端末(アプリユーザー用端末201)におけるボタンクリック動作として、PWAインストールを指示する表示アイテムが操作されたことに応じてPWAをインストールする、という動作付けを行う情報は含まれない。
【0167】
S905では、開発環境300は、S902で保存したUI定義情報を読み込み、PWAインストール用のアイテム(AppBarのドロワーメニューに含まれるPWAインストールの項目または、イニシャルUIに配置されるインストール部品)を配置する設定となっているか否かを判定する。PWAインストール用のアイテムを配置する設定となっている場合はS908に進み、そうでない場合にはS909に進む。
【0168】
S908では、開発環境は300、S906と同様に、クライアント用UI定義情報1015を生成する。また、S908では、それに加えて、開発環境300は、クライアント用UI定義情報1015に、配置する設定となっているPWAインストール用のアイテム(AppBarのドロワーメニューに含まれるPWAインストールの項目と、イニシャルUIに配置されるインストール部品の少なくとも一方)に対して、インストールの動作情報1026を設定(記録)する。インストールの動作情報1026とは、クライアント端末(アプリユーザー用端末201)におけるボタンクリック動作として、PWAインストールを指示する表示アイテムが操作されたことに応じてPWAをインストールする、という動作付けを行う情報である。すなわち、アプリケーションの画面を表示するアプリユーザー用端末201においてPWAインストール用のアイテムが操作された場合に、アプリユーザー用端末201がPWAのインストールを行うように制御するための動作情報である。構築されたアプリケーションの実行時に、アプリユーザー用端末201は、この動作情報を参照することで、PWAインストール用のアイテムが操作されたことに応じてPWAをインストールするように制御される。
【0169】
S909では、開発環境は300、S906と同様に、クライアント用UI定義情報1015を生成する。また、S909では、それに加えて、開発環境300はクライアント用UI定義情報1015に、PWAのインストールを推奨するポップアップを表示するための定義情報を設定(記録)する。これは、図11(c)で後述するポップアップ1130を表示するためにクライアント端末(アプリユーザー用端末201)で必要となる情報である。さらに加えて、S909では、開発環境300は、クライアント用UI定義情報1015に配置する設定となっているPWAインストール用のアイテム(推奨ポップアップに含まれる後述するインストールボタン1133)に対して、インストールの動作情報1026を設定(記録)する。インストールの動作情報1026とは、クライアント端末(アプリユーザー用端末201)におけるボタンクリック動作として、PWAインストールを指示する表示アイテムが操作されたことに応じてPWAをインストールする、という動作付けを行う情報である。構築されたアプリケーションの実行時に、アプリユーザー用端末201は、この動作情報を参照することで、PWAインストール用のアイテムが操作されたことに応じてPWAをインストールするように制御される。
【0170】
この結果、図10に示す通り、開発環境300にUI定義情報1011、実行環境用プログラム1012,クライアント用UI定義情報1015が記録される。
【0171】
<デプロイ処理>
図9(b)に、デプロイ処理のフローチャートを示す。この処理は、開発環境300が実行する処理であり、図4のS426で開発者用端末100から送信されたデプロイ要求を開発環境300が受信すると開始される処理である。
【0172】
S911では、開発環境300は、開発環境300のストレージ320のうち、ログインしている開発者の開発者領域に保存されたアプリの定義情報のうち、デプロイ対象となる選択中アプリの定義情報を取得する。ここで取得する定義情報には、UI定義情報1011、実行環境用プログラム1013,クライアント用UI定義情報1015が含まれる。
【0173】
S912では、開発環境300は、UI定義情報1011を参照し、PWAがオンの設定になっているか否かを判定する。PWAがオンである場合にはS914に進み、そうでない場合にはS913に進む。
【0174】
S913では、開発環境300は、UI定義情報1011を参照し、クライアント用プログラム1027を生成し、デプロイ対象に含める。ここで生成するクライアント用プログラム1027は、選択中実行環境にデプロイされる、図1に示したクライアント用プログラム422、456c、466c、476c・・・のいずれかである。ここで生成するクライアント用プログラム1027は、実行環境400にアクセスしたアプリユーザー用端末200、201に対して送信される、アプリユーザー用端末200、201において実行すべきプログラム(HTMLのソースコードやJavaScriptのソースコードなど)である。S913で生成されるクライアント用プログラムには、PWAがオフなので、PWAのマニフェスト情報は含まれない。
【0175】
S914では、開発環境300は、UI定義情報1011を参照し、クライアント用プログラム1027を生成し、デプロイ対象に含める。ここで生成するクライアント用プログラム1027は、選択中実行環境にデプロイされる、図1に示したクライアント用プログラム422、456c、466c、476c・・・のいずれかである。ここで生成するクライアント用プログラムは、実行環境400にアクセスしたアプリユーザー用端末200、201に対して送信される、アプリユーザー用端末200、201において実行すべきプログラム(HTMLのソースコードやJavaScriptのソースコードなど)である。S914で生成されるクライアント用プログラム1027には、PWAがオンなので、PWAのマニフェスト情報(前述の設定項目842~848で設定された内容)が含まれる。
【0176】
S915では、開発環境300は、選択中実行環境がマルチテナント実行環境であるか否かを判定する。マルチテナント実行環境である場合にはS916に進み、そうでない場合(シングルテナント実行環境である場合)にはS917に進む。
【0177】
S916では、開発環境300は、マルチテナント実行環境410のストレージ420のうち、ログインしている開発者の開発者領域(専用フォルダ)に、選択中アプリに関するデプロイ対象の情報を記憶させる。より具体的には、デプロイ対象の情報をマルチテナント実行環境410に送信し、ログインしている開発者の開発者領域(開発者毎のフォルダ)に記録するようにマルチテナント実行環境410に指示する。この記録が問題なく完了するとデプロイ成功となる。
【0178】
S917では、開発環境300は、選択中実行環境であるシングルナント実行環境のストレージ(シングルテナント実行環境のバケットの直下のフォルダ)に、デプロイ対象の情報を記憶させる。より具体的には、デプロイ対象の情報を選択中実行環境であるシングルナント実行環境に送信し、バケットの直下のフォルダに記録するようにシングルテナント実行環境に指示する。この記録が問題なく完了するとデプロイ成功となる。
【0179】
S918では、開発環境300は、デプロイが失敗したか否かを判定する。デプロイが失敗した場合にはS919に進み、そうでない場合にはS920に進む。通信障害などで定義情報を実行環境に送信・記録できなかった場合にはデプロイ失敗となることがある。
【0180】
S919では、開発環境300は、デプロイが失敗した旨を示す失敗通知を開発者用端末100に送信する。
【0181】
S920では、開発環境300は、デプロイが完了(成功)したか否かを判定する。デプロイが完了した場合にはS921に進み、そうでない場合にはS918に進む。
【0182】
S921では、開発環境300は、デプロイ済みのアプリのURLの情報(実行環境にデプロイ済のアプリにアクセスするためのアクセス先の情報)を含むデプロイの成功通知を開発者用端末100に送信する。
【0183】
図10を用いて説明する。図9(a)で説明した保存処理によって開発環境300に保存されたUI定義情報1011、実行環境用プログラム1013、クライアント用UI定義情報1015が、デプロイ処理(S916またはS917の処理)によって実行環境400にデプロイ(配置、保存、記録、構築)される。これによって、図10に図示した通り、実行環境400にUI定義情報1021、実行環境用プログラム1023、クライアント用UI定義情報1025が記録される。実行環境400のUI定義情報1021と実行環境用プログラム1023はそれぞれ、UI定義情報1011と実行環境用プログラム1013と同じ情報である。また、S913またはS914の処理によって生成されたクライアント用プログラム1027が、デプロイ処理(S916またはS917の処理)によって実行環境400にデプロイ(配置、保存、記録、構築)される。この状態が、アプリ生成された状態である。
【0184】
アプリの実行時には、アプリユーザー用端末201が実行環境400にアクセスし、クライアント用UI定義情報1025とクライアント用プログラム1027をダウンロードし、アプリユーザー用端末201にクライアント用UI定義情報1035とクライアント用プログラム1037として記録する。アプリの実行時には、アプリユーザー用端末201は、クライアント用UI定義情報1035とクライアント用プログラム1037に基づき、図11で説明するPWAに関する制御を行う。
<アプリ実行時の処理例>
図11(a)~(c)に、PWAの設定をオンとして実行環境400に構築(デプロイ)したアプリを、アプリユーザー用端末201(モバイル端末)からアクセスして実行し、アプリユーザー用端末201のディスプレイにアプリの画面を表示した場合の表示例を示す。
【0185】
図11(a)は、PWAをオンとし、AppBarとインストール部品の双方を配置したUI画面をイニシャルUIとしたアプリの、イニシャルUI1100の表示例である。イニシャルUI1100には、前述したS816の処理によって自動的に配置されたUI部品であるインストール部品1110が表示されている。インストール部品1110が押下されると、アプリユーザー用端末201は、インストールの動作情報1036と、クライアント用プログラム1037に含まれるマニフェスト情報とに基づいて、PWAをインストールするように制御する。また、AppBar1120が表示されている。AppBar11120に含まれるアイコン1121が押下されると、要素画面としてのドロワーメニュ1122が表示される。
【0186】
図11(b)は、図11(a)の状態からアイコン1121が押下されてドロワーメニュー1122が表示された場合の表示例である。ドロワーメニュー1122には、S411の処理によって配置されたPWAインストールの項目1123が表示される。PWAインストールの項目1123には、「Recommend」と記載された強調アイコン1123aが付して表示され、ドロワーメニュー1122に含まれる他のメニューに比べて強調して表示される。なお、強調表示の仕方は強調アイコン1123aを付して表示する方法に限らず、項目1123の色を他のアイコンと異なる色(例えば赤)にする、太字にする、下線を付す、斜字にするなど、他の方法であっても良い。項目1123が押下されると、アプリユーザー用端末201は、インストールの動作情報1036と、クライアント用プログラム1037に含まれるマニフェスト情報とに基づいて、PWAをインストールするように制御する。なお、PWAのインストールはネイティブアプリのインストールとは異なる処理であり、マニフェスト情報を参照して行う処理であり、プッシュ通知の機能を利用可能とする処理、オフラインでも動作可能とする処理、ホーム画面へアイコンの表示を行うための処理のうち少なくとも1つを含む処理であるものとする。
【0187】
図11(c)は、PWAをオンとし、AppBarとインストール部品のいずれも配置されないUI画面をイニシャルUIとしたアプリの、イニシャルUI1101の表示例である。イニシャルUI1101を表示する際に、ポップアップ1130(ダイアログ)がイニシャルUI1101に重畳表示される。ポップアップ1130には、PWAが利用可能であることを示し、またインストールボタンを押下してインストールすることを促すメッセージ1131が表示される。また、次回イニシャルUI1101を表示する際にはポップアップ1130を表示させない設定とする指示を受け付けるチェックボックス1132が表示される。このチェックボックス1132にチェックが入れられた場合は、アプリユーザー用端末201は、次回からポップアップ1130を表示させないように制御する。また、ポップアップ1130には、PWAのインストールの指示を受け付けるインストールボタン1133が表示される。インストールボタン1133は、インストール部品1110と同様のアクションが設定されており、インストールボタン1133が押下されると、アプリユーザー用端末201は、インストールの動作情報1036と、クライアント用プログラム1037に含まれるマニフェスト情報とに基づいて、PWAをインストールするように制御する。
【0188】
なお、本実施形態では、イニシャルUIにインストール部品が配置されておらず、かつ、インストール項目の配置されたAppbarが配置されていない場合にポップアップ1130を表示させるようなアプリを生成する例を説明したが、これに限るものではない。イニシャルUIにインストール部品が配置されている場合、インストール項目の配置されたAppbarが配置されている場合の少なくとも一方の場合にも、ポップアップ1130を表示させるようなアプリを生成してもよい。
【0189】
以上説明した本実施形態によれば、アプリケーションソフトウェアのPWAを利用可能な場合に、ユーザーがPWAを利用可能であることを見落とす可能性を低減し、ユーザーがより容易にPWAを利用可能とするアプリケーションを構築することが可能となる。例えば、構築されたWebアプリケーションをブラウザで実行している際に、ブラウザの機能として、実行中のWebアプリケーションにマニフェスト情報がある場合に対応するPWAが利用可能である旨を通知する機能がなければ、アプリのユーザーはPWAが利用可能であることに気付かずに、PWAを利用する機会を損失してしまう場合がある。これに対し本実施形態によれば、ブラウザの機能によらず、アプリケーションの画面内に、PWAを利用可能であることを示す表示アイテムやポップアップを表示するため、ユーザーがPWAを利用可能であることを見落とす可能性を低減することができる。また、複雑な操作を行わなくとも、インストールの動作情報1036が設定されたアプリケーション内の表示アイテムを操作するだけで、簡単にPWAのインストールを行うことができる。
【0190】
なお、上述の各フローチャートで説明した各種制御は1つのハードウェアが行ってもよいし、複数のハードウェア(例えば、複数のプロセッサーや回路)が処理を分担することで、装置全体の制御を行ってもよい。
また、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能であ
【0191】
(他の実施形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【0192】
100:開発者用端末、200:アプリユーザー用端末、201:アプリユーザー用端末201、300:開発環境、400:実行環境
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11