[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2024093620A - Information processing system, control method for information processing system, and program - Google Patents

Information processing system, control method for information processing system, and program Download PDF

Info

Publication number
JP2024093620A
JP2024093620A JP2022210128A JP2022210128A JP2024093620A JP 2024093620 A JP2024093620 A JP 2024093620A JP 2022210128 A JP2022210128 A JP 2022210128A JP 2022210128 A JP2022210128 A JP 2022210128A JP 2024093620 A JP2024093620 A JP 2024093620A
Authority
JP
Japan
Prior art keywords
application
information
pwa
screen
developer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022210128A
Other languages
Japanese (ja)
Inventor
文洋 柴本
Fumihiro Shibamoto
智子 鈴木
Tomoko Suzuki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Marketing Japan Inc
Canon IT Solutions Inc
Original Assignee
Canon Marketing Japan Inc
Canon IT Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Marketing Japan Inc, Canon IT Solutions Inc filed Critical Canon Marketing Japan Inc
Priority to JP2022210128A priority Critical patent/JP2024093620A/en
Publication of JP2024093620A publication Critical patent/JP2024093620A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

To reduce possibility of a user to overlook that a PWA of application software is available when the PWA is available.SOLUTION: A system includes: recording control means for controlling such that definition information relating to an application is recorded based on a user's operation; generation means for generating specific information to be used for installing a PWA corresponding to the application; and control means for controlling on a screen of the application such that an application to display a specific message prompting the installation of the PWA is constructed.SELECTED DRAWING: Figure 11

Description

情報処理システム、情報処理システムの制御方法、及びプログラム関し、特に、アプリケーションソフトウェアの構築のために用いて好適な技術に関する。 This relates to information processing systems, control methods for information processing systems, and programs, and in particular to technologies suitable for use in building application software.

従来、プログラミング言語によるコード記述が不要または少なくてよいノーコード開発ツール/ローコード開発ツールとして、定義に従ってアプリケーションソフトウェア(以下、アプリケーションと称する)を構築するアプリケーション構築ツールが存在する。特許文献1には、構築するWebアプリケーションの画面を編集するためのレイアウトエディタ画面に、ボタン、テキストボックス等の画面部品のいずれかをドラッグ&ドロップで配置でき、配置した画面部品を入出力定義テーブルに記憶することが提案されている。 Conventionally, there are no-code/low-code development tools that do not require or require little coding in a programming language, and are application construction tools that construct application software (hereinafter referred to as applications) according to definitions. Patent Document 1 proposes that screen components such as buttons and text boxes can be placed by drag and drop on a layout editor screen for editing the screen of the web application to be constructed, and that the placed screen components are stored in an input/output definition table.

また、ウェブとアプリの両方の利点を備えたアプリケーションであり、プッシュ通知の機能が利用可能、オフラインでも動作可能、ホーム画面へのアイコンの表示が可能といった利点をもつPWA(Progressive Web Apps)技術も知られている。特許文献2には、ネイティブアプリの代わりに、PWA(Progressive Web Apps)技術を利用し、インターネット上のクラウドサーバに構築したモバイル向けWebサイトを、端末装置60にインストールしたアプリのように使えるようにすることが提案されている。 Progressive Web Apps (PWA) technology is also known, which is an application that combines the advantages of both the web and apps, and has the advantages of being able to use push notification functions, being able to operate offline, and being able to display an icon on the home screen. Patent Document 2 proposes using Progressive Web Apps (PWA) technology instead of native apps to enable a mobile website built on a cloud server on the Internet to be used like an app installed on a terminal device 60.

特開2019-49858号公報JP 2019-49858 A 特開2022-57113号公報JP 2022-57113 A

特許文献1のようなノーコード開発ツール/ローコード開発ツールを用いて開発した構築済みアプリケーションと、構築済みアプリケーションに対応するPWAとを提供することが可能である。しかし、構築済みアプリケーションを利用するユーザーが、対応するPWAを利用可能であることに気付かずに、PWAを利用する機会を損失してしまう場合がある。 It is possible to provide a pre-built application developed using a no-code development tool/low-code development tool such as that described in Patent Document 1, and a PWA corresponding to the pre-built application. However, there are cases where a user who uses the pre-built application does not realize that a corresponding PWA is available and misses an opportunity to use the PWA.

そこで本発明は、アプリケーションソフトウェアのPWAを利用可能な場合に、ユーザーがPWAを利用可能であることを見落とす可能性を低減する仕組みを提供することを目的とする。 The present invention aims to provide a mechanism that reduces the likelihood that a user will overlook the fact that a PWA is available when the PWA of application software is available.

本発明の情報処理システムは、
ユーザーの操作に基づいてアプリケーションに関する定義情報を記録するように制御する記録制御手段と、
前記アプリケーションに対応するPWAのインストールに用いる特定の情報を生成する生成手段と、
前記アプリケーションの画面において、前記PWAのインストールを促す特定の表示を行うアプリケーションが構築されるように制御する制御手段と、
を有することを特徴とする。
The information processing system of the present invention comprises:
a recording control means for controlling recording of definition information relating to an application based on a user's operation;
A generating means for generating specific information used for installing a PWA corresponding to the application;
A control means for controlling the construction of an application that displays a specific message on a screen of the application to prompt the user to install the PWA;
The present invention is characterized by having the following.

本発明によれば、アプリケーションソフトウェアのPWAを利用可能な場合に、ユーザーがPWAを利用可能であることを見落とす可能性を低減することができる。 According to the present invention, when a PWA of application software is available, it is possible to reduce the possibility that a user will overlook the fact that a PWA is available.

情報処理システムのシステム構成図である。FIG. 1 is a system configuration diagram of an information processing system. 開発者用端末100、アプリユーザー用端末200、アプリユーザー用端末201のハードウェアブロック図である。FIG. 2 is a hardware block diagram of a developer terminal 100, an application user terminal 200, and an application user terminal 201. ログイン処理のフローチャートである。13 is a flowchart of a login process. UIエディタ処理のフローチャートである。13 is a flowchart of a UI editor process. ログイン処理とUIエディタ処理における表示例である。13 is a display example in login processing and UI editor processing. UIエディタ処理におけるAppBarの表示例である。13 is a display example of an AppBar in a UI editor process. (a)コンテキストメニュー処理のフローチャートである。(b)AppBarのプロパティボックスの表示例である。13A is a flowchart of a context menu process, and FIG. 13B is a display example of an AppBar property box. (a)画面切替処理のフローチャートである。(b)アプリ設定画面の表示例である。10A is a flowchart of a screen switching process, and FIG. 10B is a display example of an application setting screen. (a)開発環境300による保存処理のフローチャートである。(b)開発環境300によるデプロイ処理のフローチャートである。1A is a flowchart of a save process performed by the development environment 300. FIG. 1B is a flowchart of a deploy process performed by the development environment 300. UI定義情報の情報遷移図である。FIG. 11 is an information transition diagram of UI definition information. アプリユーザー用端末201におけるアプリケーション実行時の表示例である。13 is a display example when an application is executed on the application user terminal 201.

以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。 The following embodiments are described in detail with reference to the attached drawings. Note that the following embodiments do not limit the invention according to the claims, and not all combinations of features described in the embodiments are necessarily essential to the invention. Two or more of the features described in the embodiments may be combined in any desired manner. In addition, the same reference numbers are used for the same or similar configurations, and duplicate descriptions will be omitted.

以下に示す実施形態中で示した各種特徴事項は、互いに組み合わせ可能である。なお、以下において、「アプリケーション」、「アプリ」は、いずれも、アプリケーションソフトウェアを意味するものとする。 The various features shown in the following embodiments can be combined with each other. In the following, "application" and "app" both refer to application software.

<システム構成>
図1に、本発明の実施形態としての情報処理システムのシステム構成図を示す。図1には、ソフトウェア開発を行うためのシステムと、開発されたソフトウェアを使用するためのシステムとを示す。
<System Configuration>
A system configuration diagram of an information processing system according to an embodiment of the present invention is shown in Fig. 1. Fig. 1 shows a system for developing software and a system for using the developed software.

開発者用端末100は、パーソナルコンピュータ(以下、PC)やスマートフォンなどで構成可能な開発者ユーザーが操作する情報処理装置(情報処理端末)である。すなわち、開発者ユーザーのユーザー端末である。開発者用端末100は、開発するアプリケーションの設計操作を開発者から受け付け、設計された内容であるアプリケーションの各種定義情報を開発環境300に送信する。 The developer terminal 100 is an information processing device (information processing terminal) operated by a developer user that can be configured using a personal computer (hereinafter referred to as PC) or a smartphone. In other words, it is a user terminal of the developer user. The developer terminal 100 accepts design operations for an application to be developed from the developer, and transmits various definition information for the application, which is the designed content, to the development environment 300.

開発環境300はネットワーク上(クラウド上、インターネット上)に構築された少なくとも1つのハードウェア資源を用いた環境である。開発環境300はマルチテナントの環境であり、複数の開発者ユーザーがログイン可能な環境である。開発環境300は、開発者情報301、実行エンジン302、ストレージ320を含む。開発環境300は、複数のWebサービス(クラウドサービス)を組み合わせて構築される。 The development environment 300 is an environment that uses at least one hardware resource built on a network (on the cloud, on the Internet). The development environment 300 is a multi-tenant environment, into which multiple developer users can log in. The development environment 300 includes developer information 301, an execution engine 302, and storage 320. The development environment 300 is built by combining multiple web services (cloud services).

開発者情報301は、開発者のアカウントIDとなるメールアドレス(ユーザーID)、パスワードなどの、開発環境300にログイン可能な開発者のアカウントを記録した情報である。開発者情報301は開発環境300に含まれる少なくとも1つの記録媒体に記録されている。 Developer information 301 is information that records the developer's account that can log in to development environment 300, such as an email address (user ID) that serves as the developer's account ID, and a password. Developer information 301 is recorded on at least one recording medium included in development environment 300.

実行エンジン302は、開発環境300で実行すべき処理を実行するための少なくとも1つのハードウェア資源であり、プロセッサ303とメモリ304を含む。プロセッサ303は少なくとも1つのプロセッサからなり、クラウド上の1つのプロセッサでもよいし、複数のプロセッサを組み合わせたプロセッサ群としても良い。メモリ304は、プロセッサ303が実行すべきプログラムを記録した少なくとも1つの記録媒体である。後述する各種フローチャートのうち、開発環境300が実行するものとして説明するものは、実行エンジン302が実行する。すなわち、メモリ304に記録されたプログラムを、プロセッサ303が開発環境300のうちワークメモリとなる領域に展開して実行することにより実現する。 The execution engine 302 is at least one hardware resource for executing the processing to be executed in the development environment 300, and includes a processor 303 and a memory 304. The processor 303 is composed of at least one processor, and may be a single processor on the cloud, or may be a processor group combining multiple processors. The memory 304 is at least one recording medium on which a program to be executed by the processor 303 is recorded. Among the various flowcharts described below, those described as being executed by the development environment 300 are executed by the execution engine 302. In other words, the program recorded in the memory 304 is expanded by the processor 303 into an area of the development environment 300 that serves as a work memory, and executed.

配信エンジン305は、開発環境300にアクセスした開発者用端末100に対して、開発者用端末100において実行すべきクライアント用プログラム322(HTMLのソースコードやJavaScriptのソースコードなど)を送信する。クライアント用プログラム322は、開発環境300に含まれるストレージ320に予め記録されている。 The distribution engine 305 transmits a client program 322 (such as HTML source code or JavaScript source code) to be executed on the developer terminal 100 to the developer terminal 100 that has accessed the development environment 300. The client program 322 is pre-recorded in the storage 320 included in the development environment 300.

ストレージ320は、少なくとも1つの記録媒体の記憶領域であり、少なくとも、各開発者に共通であるクライアント用プログラム322を記憶している。また、開発者のアカウント毎の記憶領域である開発者用領域を有している。例えば、ログイン可能な開発者として開発者A、開発者B、開発者Cがいる場合には、開発者Aのための領域である開発者A領域323、開発者Bのための領域である開発者B領域324、開発者Cのための領域である開発者C領域325が含まれる。各開発者用領域には、各開発者が開発したアプリの定義情報を記憶している。例えば、既発者A領域323にはアプリ定義323aが記録されている。 Storage 320 is a memory area of at least one recording medium, and stores at least client programs 322 that are common to each developer. It also has a developer area, which is a memory area for each developer account. For example, if there are developer A, developer B, and developer C who can log in, it includes developer A area 323, which is an area for developer A, developer B area 324, which is an area for developer B, and developer C area 325, which is an area for developer C. Each developer area stores definition information for the apps developed by each developer. For example, app definition 323a is recorded in developer A area 323.

開発者は、開発者用端末100のブラウザソフトから、開発環境300にアクセスするためのURLにアクセスすることで開発環境300にアクセスし、開発環境にログインする。開発環境にログインすると、開発環境から、クライアント用プログラム322と、過去に開発作業を行って保存していた内容であるアプリ定義(UI定義情報)を受信する。そして、新規にアプリケーションを設計する操作、あるいは、既存の(作りかけの)アプリケーションの更新設計をする操作を行い、その結果であるアプリの定義情報(アプリ定義、UI定義情報)を開発環境300に送信する。開発環境300は受信したアプリ定義を、その開発者用領域に保存する。このように、本実施形態では、クラウド上の開発環境300にアクセスすることが可能な端末であればどのような端末であっても開発者用端末100として利用してアプリケーションの設計を行うことができる。従って、インターネットに接続することが可能な端末さえあれば、開発者は場所を選ばずにアプリケーションの開発を行うことができる。 The developer accesses the development environment 300 by accessing the URL for accessing the development environment 300 from the browser software of the developer terminal 100, and logs in to the development environment. When the developer logs in to the development environment, the developer receives the client program 322 and the application definition (UI definition information) that is the content of the past development work and saved from the development environment. Then, the developer performs an operation to design a new application or an operation to update and design an existing (in-progress) application, and sends the resulting application definition information (application definition, UI definition information) to the development environment 300. The development environment 300 saves the received application definition in its developer area. In this way, in this embodiment, any terminal that can access the development environment 300 on the cloud can be used as the developer terminal 100 to design an application. Therefore, as long as there is a terminal that can connect to the Internet, the developer can develop an application regardless of location.

実行環境400は、ネットワーク上(クラウド上、インターネット上)に構築された少なくとも1つのハードウェア資源を用いた環境である。実行環境400はマルチテナント実行環境410と、複数のシングルテナント実行環境(例えば、シングルテナント実行環境450、460、470)を含む。実行環境400は、複数のWebサービス(クラウドサービス)を組み合わせて構築される。実行環境400には、開発者用端末100と開発環境300を用いて開発されたアプリケーションの定義情報(アプリ定義)がデプロイされるための環境である。そして、アプリケーションを使用するユーザーが用いるアプリユーザー用端末200、201は、アプリケーションの実行のためのURLにアクセスすることで、実行環境400にアクセスする。そして、アプリユーザー用端末200、201で行われた操作に応じた各種アクションを実行環境400が実行することで、開発されたアプリケーションが実行され、アプリユーザーにアプリケーションの機能が提供される。ネットワーク上にある実行環境400に構築されるアプリケーションはいわゆるWEBアプリケーションである。 The execution environment 400 is an environment using at least one hardware resource constructed on a network (on a cloud or on the Internet). The execution environment 400 includes a multi-tenant execution environment 410 and multiple single-tenant execution environments (for example, single-tenant execution environments 450, 460, 470). The execution environment 400 is constructed by combining multiple Web services (cloud services). The execution environment 400 is an environment for deploying definition information (application definition) of an application developed using the developer terminal 100 and the development environment 300. The application user terminals 200 and 201 used by users who use the application access the execution environment 400 by accessing a URL for executing the application. The execution environment 400 executes various actions according to operations performed on the application user terminals 200 and 201, thereby executing the developed application and providing the application functions to the application user. The application constructed in the execution environment 400 on the network is a so-called WEB application.

マルチテナント実行環境410は、複数の開発者に共用されるマルチテナント環境の実行環境であり、複数の開発者によって開発されたアプリケーションがデプロイされる。すなわち、複数の開発者によって共有される環境であり、複数の開発者の複数のアプリを構築可能な環境である。マルチテナント実行環境410には、ユーザー情報411、実行エンジン412、配信エンジン415、ストレージ420、DBセット433を含む。 The multi-tenant execution environment 410 is a multi-tenant execution environment shared by multiple developers, and applications developed by multiple developers are deployed in the multi-tenant execution environment 410. In other words, it is an environment shared by multiple developers, and is an environment in which multiple apps by multiple developers can be built. The multi-tenant execution environment 410 includes user information 411, an execution engine 412, a distribution engine 415, storage 420, and a DB set 433.

ユーザー情報411は、デプロイされたアプリケーション(構築されたアプリケーション)のユーザーアカウントIDとなるメールアドレス(ユーザーネーム)、パスワードなどの、アプリケーションにログイン可能なアプリユーザーのアカウントを記録した情報である。ユーザー情報411はマルチテナント実行環境410に含まれる少なくとも1つの記録媒体に記録されている。 User information 411 is information that records the account of an app user who can log in to an application, such as an email address (username) that serves as the user account ID for the deployed application (constructed application) and a password. User information 411 is recorded in at least one recording medium included in the multi-tenant execution environment 410.

実行エンジン412は、マルチテナント実行環境410で実行すべき処理を実行するための少なくとも1つのハードウェア資源であり、プロセッサ413とメモリ414を含む。プロセッサ413は少なくとも1つのプロセッサからなり、クラウド上の1つのプロセッサでもよいし、複数のプロセッサを組み合わせたプロセッサ群としても良い。メモリ414は、プロセッサ413が実行すべきプログラムを記録した少なくとも1つの記録媒体である。後述する各種フローチャートのうち、マルチテナント実行環境410が実行するものとして説明するものは、実行エンジン412が実行する。すなわち、メモリ414に記録されたプログラムを、プロセッサ413がマルチテナント実行環境410のうちワークメモリとなる領域に展開して実行することにより実現する。ここで実行されるプログラムは、アプリケーションのアクションを実行するプログラムを含む。 The execution engine 412 is at least one hardware resource for executing processing to be executed in the multitenant execution environment 410, and includes a processor 413 and a memory 414. The processor 413 is composed of at least one processor, and may be a single processor on the cloud, or may be a processor group combining multiple processors. The memory 414 is at least one recording medium on which a program to be executed by the processor 413 is recorded. Among the various flowcharts described below, those described as being executed by the multitenant execution environment 410 are executed by the execution engine 412. In other words, the processor 413 deploys and executes the program recorded in the memory 414 in an area of the multitenant execution environment 410 that serves as a work memory. The program executed here includes a program that executes the action of an application.

配信エンジン415は、マルチテナント実行環境410にアクセスしたアプリユーザー用端末200、201に対してアプリユーザー用端末200、201において実行すべきクライアント用プログラム422(HTMLのソースコードやJavaScriptのソースコードなど)を送信する。クライアント用プログラム422は、実行環境410に含まれるストレージ420に予め記録されている。 The distribution engine 415 transmits a client program 422 (such as HTML source code or JavaScript source code) to be executed on the application user terminal 200, 201 to the application user terminal 200, 201 that has accessed the multi-tenant execution environment 410. The client program 422 is pre-recorded in the storage 420 included in the execution environment 410.

ストレージ420は、少なくとも1つの記録媒体の記憶領域であり、少なくとも、複数のアプリケーションで共通であるクライアント用プログラム422を記憶している。また、ストレージ420の所定の領域(所定のフォルダ、所定のバケット、所定の階層下)には、当該実行環境(マルチテナント実行環境410)へアクセスするためのアクセス先情報421が記録されている。また、開発者のアカウント毎の記憶領域である開発者用領域を有している。例えば開発者Aのための領域である開発者A領域423、開発者Bのための領域である開発者B領域424、開発者Cのための領域である開発者C領域425が含まれる。各開発者用領域には、各開発者が開発して、開発環境300からデプロイされたアプリの定義情報を記憶している。例えば、既発者A領域423にはアプリ定義423aが記録されている。 Storage 420 is a storage area of at least one recording medium, and stores at least a client program 422 that is common to multiple applications. In addition, in a specified area (specified folder, specified bucket, specified level) of storage 420, access destination information 421 for accessing the execution environment (multi-tenant execution environment 410) is recorded. In addition, there is a developer area which is a storage area for each developer account. For example, it includes developer A area 423 which is an area for developer A, developer B area 424 which is an area for developer B, and developer C area 425 which is an area for developer C. In each developer area, definition information of an app developed by each developer and deployed from development environment 300 is stored. For example, app definition 423a is recorded in developer A area 423.

DBセット430は、実行環境410にデプロイされたアプリケーションが用いるデータベースに関する情報群である。DBセット430は、少なくとも1つの記録媒体の記憶領域に記憶される。 DB set 430 is a group of information about databases used by applications deployed in execution environment 410. DB set 430 is stored in the memory area of at least one recording medium.

シングルテナント実行環境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つだけでなく、更に数多く構築することが可能である。 Single tenant execution environments 1 (450), 2 (460), and 3 (470) are each execution environments dedicated to one developer (one developer account), and applications developed by the developer who is the owner using the development environment 300 are deployed therein. In this embodiment, as an example, the owner of single tenant execution environment 1 (450) is Developer A, the owner of single tenant execution environment 2 (460) is also Developer A, and the owner of single tenant execution environment 3 (470) is Developer B. In this way, one developer can own multiple single tenant execution environments. Single tenant execution environments 1 (450), 2 (460), and 3 (470) each include user information 451, 461, and 471, execution engines 452, 462, and 472, distribution engines 455, 465, and 475, storage 456, 466, and 476, and DB sets 457, 467, and 477. These have the same functions as the user information 411, execution engine 412, delivery engine 415, storage 420, and DB set 433 of the multi-tenant execution environment 410 described above, except that they are dedicated to one developer, so detailed explanations will be omitted. It is possible to build many more single-tenant execution environments than the three shown in the figure.

図1のシステムを用いて、例えば、運用者が、マルチテナント実行環境410を開発者に無償提供し、シングルテナント実行環境を有償提供するという運用とすることが考えられる。マルチテナント実行環境410も、各シングルテナント実行環境も、リソースとサービスの提供業者(クラウドサービス事業者)に対して本システムの運用者が維持費用を支払う必要がある。マルチテナント実行環境410の維持費用は、運用者が負担して複数の開発者に無償提供することにより、開発者が本システムの試用のために費用負担をする必要がないため、多くの開発者が利用しやすく、本システムの普及を促進することができる。運用者は、シングルテナント実行環境に対して開発者に課金することで費用回収する。 Using the system of FIG. 1, for example, an operator could provide the multi-tenant execution environment 410 to developers free of charge and the single-tenant execution environment for a fee. The operator of this system must pay maintenance costs to the resource and service provider (cloud service operator) for both the multi-tenant execution environment 410 and each single-tenant execution environment. By having the operator bear the maintenance costs of the multi-tenant execution environment 410 and provide it free of charge to multiple developers, developers do not need to bear the costs for trialing the system, making it easy for many developers to use and promoting the spread of the system. The operator recovers costs by charging developers for the single-tenant execution environments.

1つの実行環境で単位時間あたりに処理できる処理リクエストの数に上限があり、数多くのアプリケーションがマルチテナント実行環境に構築され、多くのアプリユーザーが同時にアクセスした場合、リクエストが処理しきれず、アプリケーションの動作が遅くなるなどの状況になる可能性がある。他にも、マルチテナント実行環境に多くの開発者が開発した多くのアプリケーションがデプロイされて実行されることに対して、いくらかの制限があり、その制限のためにアプリケーションが十分なパフォーマンスを発揮できない場合がある。開発者が、有償で専用のシングルテナント実行環境を所有することで、このようなマルチテナント実行環境の制限による問題は回避(あるいは低減)することができる。すなわち、アプリケーションをシングルテナント実行環境に構築することで、十分なパフォーマンスを発揮するアプリケーションを構築することができる。 There is an upper limit to the number of processing requests that can be processed per unit time in one execution environment, and if many applications are built in a multi-tenant execution environment and many app users access it simultaneously, it is possible that the requests cannot be processed and the applications may run slowly. In addition, there are some restrictions on the deployment and execution of many applications developed by many developers in a multi-tenant execution environment, and these restrictions may prevent the applications from performing adequately. If developers pay to own a dedicated single-tenant execution environment, they can avoid (or reduce) problems caused by the restrictions of such multi-tenant execution environments. In other words, by building applications in a single-tenant execution environment, applications that perform adequately can be built.

このようなマルチテナント実行環境とシングルテナント実行環境の双方の特徴を踏まえ、開発者は、本システムを次のように活用できる。例えば、本システムを初めて使う場合にはマルチテナント実行環境410に本システムを用いて開発したアプリケーションを構築して試用を行った後に、本システムが開発者のソフトウェア開発に資すると判断したうえで、シングルテナント実行環境を有償で導入するといった使い方ができる。また、開発者が特定のアプリケーションXを開発する際に、一般ユーザーに公開する前に、人数の限られたテストユーザーに試用してもらうためのアプリケーションXのα版をマルチテナント実行環境410に構築する。そこでアプリケーションXのテスト行い、アプリケーションXの修正などを行い、更に開発を進める。そして、一般ユーザーへ公開しても問題ないレベルまで開発が完了した後に、アプリケーションXの本運用版をシングルテナント実行環境に構築して、一般ユーザーに公開する。このような使い方をすれば、開発者は、開発期間の開発費用を抑え、かつ、多数の一般ユーザーが利用しても問題の無いアプリケーションの運用を行うことができる。 Considering the characteristics of both the multi-tenant execution environment and the single-tenant execution environment, developers can use this system as follows. For example, when using this system for the first time, developers can build an application developed using this system in the multi-tenant execution environment 410 and test it, and then, if they determine that this system is useful for the developer's software development, they can introduce the single-tenant execution environment for a fee. Also, when a developer develops a specific application X, an alpha version of application X is built in the multi-tenant execution environment 410 for a limited number of test users to try out before releasing it to general users. There, application X is tested, and modifications are made to application X, and further development is carried out. Then, after the development is completed to a level where it can be released to general users without any problems, a production version of application X is built in the single-tenant execution environment and released to general users. By using it in this way, developers can reduce development costs during the development period and operate applications that can be used by a large number of general users without any problems.

図2に、開発者用端末100、アプリユーザー用端末200、アプリユーザー用端末201として適用可能な装置(電子機器)の一例としての情報処理装置のハードウェアブロック図を示す。図2において、内部バス150に対してCPU101、メモリ102、不揮発性メモリ103、画像処理部104、ディスプレイ105、操作部106、記録媒体I/F107、外部I/F109、通信I/F110が接続されている。内部バス150に接続される各部は、内部バス150を介して互いにデータのやりとりを行うことができるようにされている。 Figure 2 shows a hardware block diagram of an information processing device as an example of a device (electronic device) applicable as developer terminal 100, application user terminal 200, and application user terminal 201. In Figure 2, CPU 101, memory 102, non-volatile memory 103, image processing unit 104, display 105, operation unit 106, recording medium I/F 107, external I/F 109, and communication I/F 110 are connected to internal bus 150. Each unit connected to internal bus 150 is capable of exchanging data with each other via internal bus 150.

メモリ102は、例えばRAM(半導体素子を利用した揮発性のメモリなど)からなる。CPU101は、例えば不揮発性メモリ103に格納されるプログラムに従い、メモリ102をワークメモリとして用いて、情報処理装置の各部を制御する。不揮発性メモリ103には、画像データや音声データ、その他のデータ、CPU101が動作するための各種プログラムなどが格納される。不揮発性メモリ103は例えばハードディスク(HD)やROMなどで構成される。 The memory 102 is, for example, a RAM (such as a volatile memory using semiconductor elements). The CPU 101 uses the memory 102 as a work memory to control each part of the information processing device according to a program stored in, for example, the non-volatile memory 103. The non-volatile memory 103 stores image data, audio data, other data, various programs for the operation of the CPU 101, and the like. The non-volatile memory 103 is, for example, composed of a hard disk (HD) or ROM.

画像処理部104は、CPU101の制御に基づいて、不揮発性メモリ103や記録媒体108に格納された画像データや、外部I/F109を介して取得した映像信号、通信I/F110を介して取得した画像データ、撮像された画像などに対して各種画像処理を施す。画像処理部104が行う画像処理には、A/D変換処理、D/A変換処理、画像データの符号化処理、圧縮処理、デコード処理、拡大/縮小処理(リサイズ)、ノイズ低減処理、色変換処理などが含まれる。画像処理部104は特定の画像処理を施すための専用の回路ブロックで構成しても良い。また、画像処理の種別によっては画像処理部104を用いずにCPU101がプログラムに従って画像処理を施すことも可能である。 Based on the control of the CPU 101, the image processing unit 104 performs various image processing on image data stored in the non-volatile memory 103 or the recording medium 108, video signals acquired via the external I/F 109, image data acquired via the communication I/F 110, captured images, etc. The image processing performed by the image processing unit 104 includes A/D conversion processing, D/A conversion processing, image data encoding processing, compression processing, decoding processing, enlargement/reduction processing (resizing), noise reduction processing, color conversion processing, etc. The image processing unit 104 may be configured with a circuit block dedicated to performing specific image processing. Also, depending on the type of image processing, it is possible for the CPU 101 to perform image processing according to a program without using the image processing unit 104.

ディスプレイ105は、CPU101の制御に基づいて、画像やGUI(Graphical User Interface)を構成するGUI画面などを表示する。CPU101は、プログラムに従い表示制御信号を生成し、ディスプレイ105に表示するための映像信号を生成してディスプレイ105に出力するように情報処理装置の各部を制御する。ディスプレイ105は出力された映像信号に基づいて映像を表示する。なお、情報処理装置自体が備える構成としてはディスプレイ105に表示させるための映像信号を出力するためのインターフェースまでとし、ディスプレイ105は外付けのモニタ(テレビなど)で構成してもよい。以下、開発者用端末100、アプリユーザー用端末200、アプリユーザー用端末201が実行する処理においての表示先は、特に断りが無い場合には、各動作主のディスプレイ105であるものとする。 Under the control of CPU 101, display 105 displays images and GUI screens constituting a GUI (Graphical User Interface). CPU 101 generates a display control signal according to a program, and controls each part of the information processing device to generate a video signal for display on display 105 and output it to display 105. Display 105 displays an image based on the output video signal. Note that the configuration of the information processing device itself is limited to an interface for outputting a video signal for display on display 105, and display 105 may be configured as an external monitor (such as a television). Hereinafter, unless otherwise specified, the display destination in the processes executed by developer terminal 100, application user terminal 200, and application user terminal 201 is assumed to be the display 105 of each operator.

操作部106は、キーボードなどの文字情報入力デバイスや、マウスやタッチパネルといったポインティングデバイス、ボタン、ダイヤル、ジョイスティック、タッチセンサ、タッチパッドなどを含む、ユーザー操作を受け付けるための入力デバイスである。なお、タッチパネルは、ディスプレイ105に重ね合わせて平面的に構成され、接触された位置に応じた座標情報が出力されるようにした入力デバイスである。 The operation unit 106 is an input device for receiving user operations, including a character information input device such as a keyboard, a pointing device such as a mouse or a touch panel, a button, a dial, a joystick, a touch sensor, a touch pad, etc. The touch panel is an input device that is configured as a planar panel overlaid on the display 105 and outputs coordinate information according to the touched position.

記録媒体I/F107は、メモリーカードやCD、DVDといった記録媒体108が装着可能とされ、CPU101の制御に基づき、装着された記録媒体108からのデータの読み出しや、当該記録媒体108に対するデータの書き込みを行う。外部I/F109は、外部機器と有線ケーブルや無線によって接続し、映像信号や音声信号の入出力を行うためのインターフェースである。通信I/F110は、外部機器やインターネット111などと通信して、ファイルやコマンドなどの各種データの送受信を行うためのインターフェースである。開発者用端末100は通信I/F110を用いて、インターネット111上にある開発環境300と通信可能(情報の送受信可能)である。アプリユーザー用端末200、201は通信I/F110を用いて、インターネット111上にある実行環境400と通信可能(情報の送受信可能)である。 The recording medium I/F 107 allows a recording medium 108 such as a memory card, CD, or DVD to be attached, and reads data from the attached recording medium 108 and writes data to the recording medium 108 based on the control of the CPU 101. The external I/F 109 is an interface that connects to an external device via a wired cable or wirelessly, and inputs and outputs video signals and audio signals. The communication I/F 110 is an interface that communicates with an external device, the Internet 111, etc., and transmits and receives various data such as files and commands. The developer terminal 100 can communicate with the development environment 300 on the Internet 111 (can transmit and receive information) using the communication I/F 110. The application user terminals 200 and 201 can communicate with the execution environment 400 on the Internet 111 (can transmit and receive information) using the communication I/F 110.

<ログイン処理>
図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に展開して実行する処理であるものとする。
<Login process>
3A and 3B show flow charts of the login process. This process is a process from logging in to the development environment 300 from the developer terminal 100 to displaying a UI editor. When the developer terminal 100 starts the Internet browser software and receives an instruction to access the development system (application development platform) of this embodiment by specifying the URL, the process of FIG. 3A is started. The process of FIG. 3A is realized by the CPU 101 of the developer terminal 100 expanding a program recorded in the non-volatile memory 103 for executing the Internet browser software and a client program 322 received from the development environment 300 in the memory 102 and executing them. Hereinafter, what is simply described as a process executed by the developer terminal 100 is assumed to be a process in which the CPU 101 of the developer terminal 100 expands a program recorded in the non-volatile memory 103 for executing the Internet browser software and a client program 322 received from the development environment 300 in the memory 102 and executes them.

開発者用端末100において、インターネットブラウザソフトを立ち上げ、本実施形態の開発システム(アプリケーション開発プラットフォーム)のURLを指定してアクセスすると、開発環境300の配信エンジン305がアクセスを検知し、アクセス元の開発者用端末100にクライアント用プログラム322を送信する。 When an Internet browser software is launched on the developer terminal 100 and the URL of the development system (application development platform) of this embodiment is specified and accessed, the distribution engine 305 of the development environment 300 detects the access and transmits the client program 322 to the developer terminal 100 that is the source of the access.

S301では、開発者用端末100は、開発環境300から送信されたクライアント用プログラム322を受信したか否かを判定する。受信していなければS301で受信を待ち、受信したらS302に進む。 In S301, the developer terminal 100 determines whether or not it has received the client program 322 sent from the development environment 300. If it has not been received, it waits for reception in S301, and if it has been received, it proceeds to S302.

S302では、開発者用端末100は、開発環境300から受信したクライアント用プログラム322をメモリ102に記録する。 In S302, the developer terminal 100 records the client program 322 received from the development environment 300 in memory 102.

S303では、開発者用端末100は、クライアント用プログラム322に従い、ログイン画面をディスプレイ105に表示する。ログイン画面には、本実施形態の開発システムへのログイン画面である旨と、開発者IDとパスワードの入力欄、新規登録ボタン(アイコン)、ログインボタン(アイコン)が表示される。 In S303, the developer terminal 100 displays a login screen on the display 105 in accordance with the client program 322. The login screen displays a message indicating that this is a login screen for the development system of this embodiment, as well as fields for inputting a developer ID and password, a new registration button (icon), and a login button (icon).

S304では、開発者用端末100は、ログイン画面の開発者IDとパスワードの入力欄への入力操作を受け付ける。ユーザーの入力操作は操作部106を用いて行われる。開発者IDは開発者ユーザーを識別(特定)するためのユーザー識別情報である。本実施形態では開発者ID(ユーザーネーム)は、メールアドレスであるものとする。また、暗証情報として用いるパスワードは任意の文字列であるものとするが、生体認証情報(指紋認証は顔認証に用いる情報)や、パターン認証の情報(画面に入力された軌跡パターンの情報)など、他の暗証情報としてもよい。 In S304, the developer terminal 100 accepts input operations into the input fields of the login screen for the developer ID and password. The user's input operations are performed using the operation unit 106. The developer ID is user identification information for identifying (specifying) the developer user. In this embodiment, the developer ID (user name) is an email address. In addition, the password used as the secret information is an arbitrary character string, but it may be other secret information such as biometric authentication information (fingerprint authentication is information used for face authentication) or pattern authentication information (information of the trajectory pattern entered on the screen).

S305では、開発者用端末100は、ログイン画面の新規登録ボタンを指示する操作(例えばクリック)されたか否かを判定する。なお、以下、表示アイテム(ボタン、アイコンなどの表示物、表示項目)に対して、操作部106に含まれるマウスでクリックする、タッチパネルへタッチする、といった方法で指示する操作を、単に「押下」と記載する。新規登録ボタンが押下された場合にはS306に進み、そうでない場合にはS307に進む。 In S305, the developer terminal 100 determines whether an operation has been performed (e.g., a click) to instruct the New Registration button on the login screen. Note that hereinafter, an operation to instruct a display item (a display object such as a button or icon, a display item) by clicking with the mouse included in the operation unit 106 or by touching the touch panel will be referred to simply as "pressing". If the New Registration button has been pressed, proceed to S306; if not, proceed to S307.

S306では、開発者用端末100は、開発者アカウント登録処理を行う。開発者アカウント登録処理は、開発者情報301に新規のアカウントの情報を登録する処理である。 In S306, the developer terminal 100 performs a developer account registration process. The developer account registration process is a process for registering information about a new account in the developer information 301.

S307では、開発者用端末100は、ログイン画面のログインボタンが押下されたか否かを判定する。ログインボタンが押下された場合にはS308に進み、そうでない場合にはS304に戻る。 In S307, the developer terminal 100 determines whether the login button on the login screen has been pressed. If the login button has been pressed, the process proceeds to S308; if not, the process returns to S304.

S308では、開発者用端末100は、ログイン情報として、ログイン画面の開発者IDとパスワードの入力欄へ入力された情報(入力された開発者IDとパスワード)を開発環境300に送信する。送信後、開発環境300において認証処理が行われるため、その結果を待つ。 In S308, the developer terminal 100 transmits the information entered in the developer ID and password input fields on the login screen (the entered developer ID and password) as login information to the development environment 300. After transmission, an authentication process is performed in the development environment 300, and the result is awaited.

S309では、開発者用端末100は、開発環境300からログインエラーの旨の情報を受信したか否かを判定する。ログインエラーの旨の情報を受信した場合はS304に戻って再度ログイン情報の入力を受け付け、そうでない場合にはS310へ進む。 In S309, the developer terminal 100 determines whether or not it has received information about a login error from the development environment 300. If it has received information about a login error, it returns to S304 to accept the input of login information again, and if not, it proceeds to S310.

S310では、開発者用端末100は、開発環境300から実行環境リストを受信したか否かを判定する。開発環境300はログイン認証が成功すれば実行環境リストを開発者用端末100に送信するため、実行環境リストを受信したということは、ログイン認証に成功した(ログインできた)ということである。実行環境リストを受信した場合にはS311に進み、そうでない場合にはS309に戻る。 In S310, the developer terminal 100 determines whether or not it has received an execution environment list from the development environment 300. If the login authentication is successful, the development environment 300 sends the execution environment list to the developer terminal 100, so receiving the execution environment list means that the login authentication was successful (login was successful). If the execution environment list has been received, proceed to S311; if not, return to S309.

S311では、開発者用端末100は、ログイン後のアプリの開発画面として、S310で受信した実行環境リストをメモリ102に記録するとともに、受信した実行環境リストに基づいて実行環境の選択肢をディスプレイ105に表示する。実行環境リストはログインした開発者がアクセス可能な実行環境を示している。なお、S311以降に開発者用端末100で表示される画面であって、構築後のアプリの画面とは異なる画面を総称して開発画面と称するものとする。 In S311, the developer terminal 100 records the execution environment list received in S310 in memory 102 as the development screen for the app after login, and displays execution environment options based on the received execution environment list on the display 105. The execution environment list indicates the execution environments that the logged-in developer can access. Note that screens displayed on the developer terminal 100 after S311 that are different from the screen of the constructed app are collectively referred to as development screens.

図5(a)に、S311での実行環境の選択肢の表示例を示す。図5(a)の表示例では、ログインした開発者がアクセス可能な実行環境として、マルチテナント実行環境410に対応する選択肢551と、シングルテナント実行環境に対応する選択肢552の2つの選択肢が表示されている。開発者ユ―ザーはこれらの選択肢のいずれかを押下することにより選択して、SAVEボタン553を押下することで選択を確定することができる。ここで選択されるのは、今回のログインにおいてこの後の作業で更新したアプリケーションをデプロイする先である。この時点で実行環境にアクセスするわけではない。また、ここで選択した実行環境は後述する操作によって変更可能である。 Figure 5 (a) shows an example of the display of execution environment options in S311. In the display example of Figure 5 (a), two options are displayed as execution environments that the logged-in developer can access: option 551 corresponding to the multi-tenant execution environment 410, and option 552 corresponding to the single-tenant execution environment. The developer user can select one of these options by pressing it, and confirm the selection by pressing the SAVE button 553. What is selected here is the destination to which the application updated in the subsequent work during this login will be deployed. The execution environment is not accessed at this point. Furthermore, the execution environment selected here can be changed by the operation described below.

S312では、開発者用端末100は、実行環境の選択が行われたか否かを判定する。実行環境の選択肢のいずれかが押下され、SAVEボタン553が押下された場合にはS313に進み、そうでない場合にはS312で実行環境の選択を待つ。 In S312, the developer terminal 100 determines whether an execution environment has been selected. If one of the execution environment options has been pressed and the SAVE button 553 has been pressed, the process proceeds to S313; otherwise, the process waits for the selection of an execution environment in S312.

S313では、開発者用端末100は、S312で選択された実行環境を特定する情報(実行環境IDなど)を「選択中実行環境」としてメモリ102に記録するとともに、開発環境300に送信する。開発環境300では、選択中実行環境(選択環境)を特定する情報を受信したことに応じて、アプリ情報として、ログイン開発者が所有する全てのアプリケーション(過去に生成され、ストレージ320に記録されているアプリケーション)を特定する情報(アプリIDやアプリ名など)を送信する。 In S313, the developer terminal 100 records information (such as the execution environment ID) that identifies the execution environment selected in S312 in memory 102 as the "selected execution environment" and transmits it to the development environment 300. In response to receiving the information that identifies the selected execution environment (selected environment), the development environment 300 transmits, as app information, information (such as the app ID and app name) that identifies all applications owned by the logged-in developer (applications that have been generated in the past and recorded in storage 320).

S314では、開発者用端末100は、開発環境300からアプリ情報を受信したか否かを判定する。アプリ情報を受信した場合にはS315に進み、そうでない場合にはS314でアプリ情報の受信を待つ。 In S314, the developer terminal 100 determines whether or not app information has been received from the development environment 300. If app information has been received, the process proceeds to S315; if not, the process waits for reception of app information in S314.

S315では、開発者用端末100は、受信したアプリ情報をメモリ102に記録するとともに、アプリ情報に基づき、ログインユーザーが所有する(開発中の)アプリケーションの一覧(アプリ一覧)をディスプレイ105に表示する。 In S315, the developer terminal 100 records the received app information in memory 102 and displays a list of applications (app list) owned (under development) by the logged-in user on the display 105 based on the app information.

S316では、開発者用端末100は、アプリ一覧に表示されたアプリケーションの一覧のうち、いずれかのアプリケーションが選択されたか否かを判定する。いずれかのアプリが選択された場合にはS317に進み、そうでない場合はS320に進む。 In S316, the developer terminal 100 determines whether any application has been selected from the list of applications displayed in the app list. If any application has been selected, the process proceeds to S317; if not, the process proceeds to S320.

S317では、開発者用端末100は、アプリ一覧から選択されたアプリケーションを「選択中アプリ」として、選択中アプリを特定する情報(アプリIDやアプリ名など)をメモリ102に記録するとともに、開発環境300に送信する。開発環境300では、選択中アプリを特定する情報を受信すると、ストレージ320のうち、ログインしている開発者の領域から選択中アプリの定義情報(アプリ定義)を取得し、開発者用端末100に送信する。 At S317, the developer terminal 100 records information identifying the selected app (such as the app ID and app name) in memory 102 as the "selected app" for the application selected from the app list, and transmits the information to the development environment 300. When the development environment 300 receives the information identifying the selected app, it obtains definition information (app definition) for the selected app from the area of storage 320 for the logged-in developer, and transmits the information to the developer terminal 100.

S318では、開発者用端末100は、開発環境300から選択中アプリの定義情報(UI定義情報)を受信したか否かを判定する。選択中アプリの定義情報を受信した場合には、受信した選択中アプリの定義情報をメモリ102に記録してS319に進み、そうでない場合にはS318で定義情報の受信を待つ。本実施形態では、この定義情報は、Json形式でアプリケーションに関する各種定義が記述されたJsonファイルであるものとする。以降、選択中アプリに関してディスプレイ105に表示を行う場合には、メモリ102に記録した定義情報に基づいて表示を行う。後述するUIエディタ処理などで選択中アプリについて更新する操作(例えば、UI部品の配置を変更するなど)が行われると、このメモリ102の定義情報を更新後の内容を定義するように更新する。そして保存の指示があった場合に、メモリ102に記録された最新の定義情報を開発環境300に送信し、ストレージ320のうちログイン開発者の領域に保存させる。このようにすることで、開発環境300との通信頻度の増大を抑え、通信のためにレスポンスが低下することを抑止して快適な更新作業を行うことができる。 In S318, the developer terminal 100 determines whether or not it has received definition information (UI definition information) of the selected application from the development environment 300. If it has received definition information of the selected application, it records the received definition information of the selected application in memory 102 and proceeds to S319, otherwise, it waits for the reception of definition information in S318. In this embodiment, this definition information is a Json file in which various definitions related to the application are described in Json format. Thereafter, when the selected application is displayed on the display 105, it is displayed based on the definition information recorded in memory 102. When an operation to update the selected application (for example, changing the layout of UI parts) is performed in a UI editor process described later, the definition information in memory 102 is updated to define the updated content. Then, when a save instruction is given, the latest definition information recorded in memory 102 is sent to the development environment 300 and saved in the login developer's area of the storage 320. In this way, an increase in the frequency of communication with the development environment 300 is suppressed, and a decrease in response due to communication is suppressed, allowing for comfortable update work.

S319では、開発者用端末100は、ディスプレイ105にUIエディタ画面を表示するとともに、受信した定義情報に基づく表示を行う。例えば、選択中アプリがデスクトップ用であるか用であるかに応じた形状(すなわち、アプリを利用するデバイスの種別に応じた形状)のキャンバス(UI画面の編集領域)を表示する。テスクトップ用であれば16:9の矩形のキャンバスとし、モバイル用であればスマートフォンを模した縦長のアスペクト比のキャンバスとする。サブメニュー領域(後述)には選択中アプリが有する(選択中アプリに属する)UI画面の一覧を表示する(この処理は厳密には後述する図4のS401で行われる)。また、キャンバスには、デフォルトで選択されるUI画面(イニシャルUIや最後に保存した際に編集していたUI画面)に配置されるコンポーネント(UI画面に配置されるUI部品)を表示する。なお、編集対象のUI画面をデフォルトで選択することをせず、この時点ではキャンバスには何も表示しないようにしても良い。S319の処理でログイン処理を終了し、続いて、図4のS401へ進む。 In S319, the developer terminal 100 displays a UI editor screen on the display 105 and displays based on the received definition information. For example, a canvas (editing area of the UI screen) with a shape according to whether the selected application is for desktop or mobile (i.e., a shape according to the type of device using the application) is displayed. If it is for desktop, a rectangular canvas with a ratio of 16:9 is used, and if it is for mobile, a canvas with a vertical aspect ratio imitating a smartphone is used. In the submenu area (described later), a list of UI screens that the selected application has (belongs to the selected application) is displayed (this process is strictly performed in S401 in FIG. 4 described later). In addition, the canvas displays components (UI parts to be placed on the UI screen) that are placed on the UI screen selected by default (initial UI or the UI screen that was edited when last saved). Note that the UI screen to be edited may not be selected by default, and nothing may be displayed on the canvas at this point. The login process is terminated in the process of S319, and the process proceeds to S401 in FIG. 4.

一方、S320では、開発者用端末100は、アプリ一覧を表示した画面に表示された、アプリケーションを新規に作成するためのアイコン(+マーク、不図示)が押下され、新規アプリケーションの作成が指示されたか否かを判定する。新規アプリケーションの作成が指示されたと判定した場合にはS321に進み、そうでない場合にはS316に戻る。 On the other hand, in S320, the developer terminal 100 determines whether an icon (a + mark, not shown) for creating a new application displayed on the screen displaying the list of apps has been pressed, instructing the creation of a new application. If it determines that a command has been issued to create a new application, the process proceeds to S321, and if not, the process returns to S316.

S321では、開発者用端末100は、新規作成するアプリケーションを、デスクトップ用(PC用)とするかモバイル用とするかの選択画面を表示し、いずれかを選択する操作を受け付ける。デスクトップ用アプリケーションとは、デスクトップPC、ノートPCなどのアプリユーザー用端末200からアクセスされ、操作されることを想定したアプリケーションである。モバイル用アプリケーションとは、スマートフォンなどのアプリユーザー用端末201からアクセスされ、操作されることを想定したアプリケーションである。 In S321, the developer terminal 100 displays a selection screen for whether the newly created application is for desktop (PC) or mobile use, and accepts an operation to select one of them. A desktop application is an application that is intended to be accessed and operated from an app user terminal 200 such as a desktop PC or notebook PC. A mobile application is an application that is intended to be accessed and operated from an app user terminal 201 such as a smartphone.

S322では、開発者用端末100は、新規作成するアプリケーションに関する基本となるアプリ情報(少なくともアプリ名、アプリID)の入力を受け付けるための画面を表示し、アプリ情報を設定する入力操作を受け付ける。アプリ情報の入力を受け付けると、S321で受け付けたデスクトップ用(PC用)かモバイル用かの情報と、S322で入力を受け付けたアプリ情報を開発環境300に送信する。こうして、新規作成されたアプリケーションの定義情報として、開発環境300のストレージ320に、新規のアプリケーションの定義情報が作成され、デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDが記録される。過去に作成済みのアプリケーションの定義情報にも、このようにして、デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDが記録されている。 In S322, the developer terminal 100 displays a screen for accepting input of basic app information (at least the app name and app ID) for the newly created application, and accepts input operations to set the app information. When the input of the app information is accepted, the information on whether the application is for desktop (PC) or mobile, accepted in S321, and the app information accepted in S322 are sent to the development environment 300. In this way, definition information for the new application is created in the storage 320 of the development environment 300 as definition information for the newly created application, and the information on whether the application is for desktop (PC) or mobile, the app name, and the app ID are recorded. In this way, the information on whether the application is for desktop (PC) or mobile, the app name, and the app ID are also recorded in the definition information of applications that have already been created in the past.

S323では、開発者用端末100は、新規作成されたアプリケーションの編集画面としてUIエディタ画面を表示する。この場合、キャンバスはS321で選択されたデスクトップ用であるかモバイル用であるかに応じた形状で表示される。また、キャンバスはコンポーネントが1つも配置されていない空白情報で表示される。S323の処理でログイン処理を終了し、続いて、図4のS401へ進む。 In S323, the developer terminal 100 displays a UI editor screen as an editing screen for the newly created application. In this case, the canvas is displayed in a shape according to whether it is for desktop or mobile use, selected in S321. The canvas is also displayed as blank information with no components placed on it. The login process ends in the process of S323, and the process proceeds to S401 in FIG. 4.

図3(b)に、図3(a)の開発者用端末100側でのログイン処理と協働する開発環境300側のログイン処理を示す。図3(b)の処理は、開発環境300のプロセッサ303が、メモリ304に記録されたプログラムを、プロセッサ303が開発環境300のうちワークメモリとなる領域に展開して実行することにより実現する。以降、単に開発環境300が実行する処理として記載したものは、開発環境300の実行エンジン302が、より詳しくはプロセッサ303が実行する処理であるものとする。 Figure 3(b) shows the login process on the development environment 300 side, which cooperates with the login process on the developer terminal 100 side in Figure 3(a). The process in Figure 3(b) is realized by the processor 303 of the development environment 300 expanding and executing a program recorded in memory 304 in an area of the development environment 300 that serves as a work memory. Hereinafter, what is simply described as a process executed by the development environment 300 is assumed to be a process executed by the execution engine 302 of the development environment 300, or more specifically, by the processor 303.

S331では、開発環境300は、S308で開発者用端末100から送信されたログイン情報を受信したか否かを判定する。ログイン情報を受信した場合にはS332に進み、そうでない場合にはログイン情報の受信を待つ。 In S331, the development environment 300 determines whether or not the login information sent from the developer terminal 100 in S308 has been received. If the login information has been received, the process proceeds to S332; if not, the process waits for the login information to be received.

S332では、開発環境300は、受信したログイン情報と、開発者情報301を比較し、ログイン認証(ユーザー認証)を行う。より具体的には、受信したログイン情報に含まれる開発者IDとパスワードの組と一致する情報が、開発者情報301(ユーザー情報)に含まれているかを判定する。含まれていれば認証は成功する。 In S332, the development environment 300 compares the received login information with the developer information 301 and performs login authentication (user authentication). More specifically, it determines whether the developer information 301 (user information) contains information that matches the developer ID and password pair contained in the received login information. If so, authentication is successful.

S333では、開発環境300は、S332の認証処理の結果、ログインOKである(認証に成功した、認証された、認証OKである)か否かを判定する。ログインOKである場合にはS335に進み、ログインOKでない場合にはS334に進み、ログインエラーである旨の情報を開発者用端末100に送信する。 In S333, the development environment 300 determines whether the result of the authentication process in S332 is that login is OK (authentication was successful, was authenticated, authentication is OK). If login is OK, the process proceeds to S335, and if login is not OK, the process proceeds to S334 and sends information to the developer terminal 100 indicating that there is a login error.

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にログインするための情報と別途に管理する必要がない。また、他のユーザーが不正に実行環境へアクセスすることも抑止できる。 In S335, the development environment 300 transmits to the developer terminal 100 a list of execution environments of the developer (login developer) whose login has been approved and is included in the developer information 301. In addition to the email address (username, developer ID) and password, the developer information 301 records the accessible execution environment ID for each developer. Each execution environment ID is an account ID in a cloud service (Web service), and is a 12-digit ID in this embodiment. In the case of a developer who can access multiple execution environments, the 12-digit execution environment ID is recorded separated by a comma. In S335, the accessible execution environment ID (one or more execution environment IDs separated by a comma) for the login developer is transmitted to the developer terminal 100. That is, in S335, the execution environment that the login developer can access is specified by referring to the developer information 301. In this way, the accessible execution environment of each developer (the execution environment that each developer can use) is recorded in the developer information 301 recorded in the development environment 300. This execution environment that can be logged in can only be obtained by the developer who has been granted permission to log in. Furthermore, only the execution environment that can be accessed by the developer who has been granted permission to log in can be obtained. In this way, the developer does not need to manage information for accessing the execution environment that can be accessed by the developer separately from information for logging in to the development environment 300. It is also possible to prevent other users from illegally accessing the execution environment.

S336では、開発環境300は、S313で開発者用端末100から送信された選択中実行環境を特定する情報(環境特定情報)を受信したか否かを判定する。選択中実行環境を特定する情報を受信した場合にはS337に進み、そうでない場合には選択中実行環境を特定する情報の受信を待つ。 In S336, the development environment 300 determines whether or not it has received information (environment identification information) that identifies the selected execution environment transmitted from the developer terminal 100 in S313. If it has received information that identifies the selected execution environment, it proceeds to S337; if not, it waits for reception of information that identifies the selected execution environment.

S337では、開発環境300は、S336で受信した選択中実行環境を特定する情報に基づいて、選択中実行環境を、ストレージ320のログイン開発者用の領域に保存されている、設定管理用のファイルに記録する。 In S337, the development environment 300 records the selected execution environment in a settings management file stored in the logged-in developer area of storage 320 based on the information identifying the selected execution environment received in S336.

S338では、開発環境300は、ストレージ320のうち、ログイン開発者の領域から、ログイン開発者が所有する(ログイン開発者が作成した)全てのアプリケーションを示すアプリ情報を取得し、開発者用端末100に送信する。ここで送信するアプリ情報は、アプリの定義情報のうち、S315で前述したアプリ一覧を表示するために必要な情報までであり、各アプリに関する詳細な定義情報(コンポーネントの配置やアクションを示す情報など)は含まれない。 In S338, the development environment 300 retrieves app information indicating all applications owned by the logged-in developer (created by the logged-in developer) from the logged-in developer's area in storage 320, and transmits this information to the developer terminal 100. The app information transmitted here is only the app definition information necessary to display the list of apps mentioned above in S315, and does not include detailed definition information about each app (such as information indicating the placement and actions of components).

S339では、開発環境300は、S322で開発者用端末100から送信された新規アプリに関する情報(デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDを含む情報)を受信したか否かを判定する。新規アプリに関する情報を受信した場合にはS340に進み、そうでない場合にはS341へ進む。 In S339, the development environment 300 determines whether information about the new app (information including whether it is for desktop (PC) or mobile use, the app name, and the app ID) that was sent from the developer terminal 100 in S322 has been received. If information about the new app has been received, the process proceeds to S340; if not, the process proceeds to S341.

S340では、開発環境300は、ストレージ320のうち、ログイン開発者の領域に、S339で受信した新規アプリに関する情報に基づき、新規のアプリケーションの定義情報を作成して記録する。ここで記録される定義情報には、デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDが含まれる。なお、開発環境300では、マルチテナント実行環境410において他のユーザーのアプリと区別するために、アプリIDとして、S322で開発者から入力されたIDの直前に、アプリを所有する開発者の開発者IDに一意に対応する開発者コード8桁を付して記録する。そして、ログイン処理を終了する。以降、内部処理を行う場合とアクションボードにプログラミング言語で表示する場合にはアプリIDを用いる場合にはログイン開発者の開発者コードを付したIDで処理を行う。また、UIエディタなどにアプリIDとして表示をする際には開発者コードを除く、S322で開発者から入力されたID部分だけを表示する。 In S340, the development environment 300 creates and records definition information for a new application in the login developer's area of the storage 320 based on the information on the new application received in S339. The definition information recorded here includes information on whether the application is for desktop (PC) or mobile use, the application name, and the application ID. In the development environment 300, in order to distinguish the application from applications of other users in the multi-tenant execution environment 410, an eight-digit developer code that uniquely corresponds to the developer ID of the developer who owns the application is added immediately before the ID input by the developer in S322 as the application ID and recorded. Then, the login process ends. After this, when performing internal processing or when displaying in a programming language on the action board, if an application ID is used, the process is performed with the ID to which the developer code of the login developer is added. In addition, when displaying as an application ID in a UI editor, etc., only the ID part input by the developer in S322 is displayed, excluding the developer code.

S341では、開発環境300は、S317で開発者用端末100から送信された選択中アプリを特定する情報を受信したか否かを判定する。選択中アプリを特定する情報を受信した場合にはS342に進み、そうでない場合はS339に戻る。 In S341, the development environment 300 determines whether or not information identifying the selected app transmitted from the developer terminal 100 in S317 has been received. If information identifying the selected app has been received, the process proceeds to S342; otherwise, the process returns to S339.

S342では、開発環境300は、S341で受信した選択中アプリを特定する情報に基づき、ストレージ320のうち、ログイン開発者の領域から、選択中アプリの定義情報(アプリ定義)を取得し、開発者用端末100に送信する。ここで送信する定義情報は、選択中アプリに関する詳細な定義情報(コンポーネントの配置やアクションを示す情報など)を含む。そして、ログイン処理を終了する。 In S342, the development environment 300 retrieves definition information (app definition) for the selected app from the logged-in developer's area of storage 320 based on the information identifying the selected app received in S341, and transmits the information to the developer terminal 100. The definition information transmitted here includes detailed definition information about the selected app (such as information indicating the placement and actions of components). Then, the login process ends.

<UIエディタ処理>
図4、図5(b)を用いて、UIエディタ処理について説明する。UIエディタ処理は、UIエディタ画面(アプリケーション開発画面)に対する開発者(ユーザー)からの操作に応じて、構築するアプリケーションの各種定義(UI部品の定義、アクション定義)を行う処理である。
<UI Editor Processing>
The UI editor process is described below with reference to Fig. 4 and Fig. 5B. The UI editor process is a process for performing various definitions (UI part definitions, action definitions) of an application to be constructed in response to operations by a developer (user) on a UI editor screen (application development screen).

図5(b)に、ディスプレイ105におけるUIエディタ処理で表示されるレイアウト編集画面の表示例を示す。図5(b)の画面には、ヘッダーメニュー領域500、メインメニュー領域510、サブメニュー領域520、キャンバス530(UI画面の編集受付領域)が含まれる。 Figure 5(b) shows an example of a layout editing screen displayed by the UI editor process on the display 105. The screen in Figure 5(b) includes a header menu area 500, a main menu area 510, a sub-menu area 520, and a canvas 530 (an editing reception area of the UI screen).

ヘッダーメニュー領域500には、選択中実行環境ボックス501、選択中アプリボックス502、選択中UI画面ボックス503、保存ボタン504、プレビューボタン505、デプロイボタン506が表示される。 The header menu area 500 displays a selected execution environment box 501, a selected app box 502, a selected UI screen box 503, a save button 504, a preview button 505, and a deploy button 506.

選択中実行環境ボックス501には、選択中実行環境を表す情報として、選択中実行環境IDが表示される。選択中実行環境ボックス501の右端にある矢印アイコンを押下することで、プルダウンメニューとしてS310で取得したログイン開発者がアクセス可能な実行環境の一覧が表示され、一覧から任意の実行環境を選択することで、選択中実行環境を変更することが可能である。選択中実行環境が変更されても、選択中アプリは変更されず、メインメニュー領域510、サブメニュー領域520、キャンバス530に表示される内容は変更されない。このように、同じアプリケーションに関してデプロイする先である選択中実行環境を変更することで、同じアプリケーションを任意の複数の実行環境にデプロイすることが可能である。 The selected execution environment box 501 displays the selected execution environment ID as information representing the selected execution environment. By pressing the arrow icon on the right end of the selected execution environment box 501, a list of execution environments accessible to the logged-in developer obtained in S310 is displayed as a pull-down menu, and the selected execution environment can be changed by selecting any execution environment from the list. Even if the selected execution environment is changed, the selected app does not change, and the contents displayed in the main menu area 510, submenu area 520, and canvas 530 do not change. In this way, by changing the selected execution environment to which the same application is to be deployed, it is possible to deploy the same application to any number of execution environments.

選択中アプリボックス502には、選択中アプリを表す情報として、選択中アプリのアプリ名が表示される。選択中アプリボックス502の右端にある矢印アイコンを押下することで、プルダウンメニューとしてS314で取得したログイン開発者の所有するアプリ一覧が表示され、一覧から任意のアプリを選択することで、選択中アプリを変更することが可能である。選択中アプリが変更されると、サブメニュー領域520、キャンバス530に表示すべき内容が変わる。 The selected app box 502 displays the name of the selected app as information representing the selected app. By pressing the arrow icon on the right end of the selected app box 502, a list of apps owned by the logged-in developer obtained in S314 is displayed as a pull-down menu, and the selected app can be changed by selecting any app from the list. When the selected app is changed, the content to be displayed in the submenu area 520 and the canvas 530 changes.

選択中UI画面ボックス503には、キャンバス530で編集中のUI画面を表す情報として、編集中のUI画面名が表示される。選択中UI画面ボックス504にある矢印アイコンを押下することで、プルダウンメニューとして、S318で取得した選択中アプリの定義情報に基づき、選択中アプリに属するUI画面の一覧が表示され、一覧から任意のUI画面を選択することで、キャンバス530に表示する編集対象のUI画面を変更することが可能である。 The selected UI screen box 503 displays the name of the UI screen being edited as information representing the UI screen being edited in the canvas 530. By pressing the arrow icon in the selected UI screen box 504, a list of UI screens belonging to the selected app based on the definition information of the selected app acquired in S318 is displayed as a pull-down menu, and the UI screen to be edited and displayed on the canvas 530 can be changed by selecting any UI screen from the list.

メインメニュー領域510には、メインメニューのメニュー項目としての選択肢アイコンとして、アプリ一覧ボタン511、UI画面ボタン512、ワークフローボタン513、設定ボタン514、環境一覧ボタン515、データベースボタン516、ファイルマネージャーボタン517、ユーザー管理ボタン518、スナップショットボタン519が表示される。これらの選択肢の押下に応じた処理については図8(a)の画面切替処理で後述する。 In the main menu area 510, an app list button 511, a UI screen button 512, a workflow button 513, a settings button 514, an environment list button 515, a database button 516, a file manager button 517, a user management button 518, and a snapshot button 519 are displayed as option icons for the menu items of the main menu. The processing in response to pressing these options will be described later in the screen switching processing of FIG. 8(a).

サブメニュー領域520には、メインメニューで選択された項目に応じたサブメニューが表示される。図5(b)の例では、UI画面ボタン512の下位階層メニューとしてUIコンポーネント一覧(UI部品一覧)が表示されている例である。 The submenu area 520 displays a submenu corresponding to the item selected in the main menu. In the example of FIG. 5(b), a UI component list (UI part list) is displayed as a lower-level menu of the UI screen button 512.

キャンバス530は、選択中アプリの選択中のUI画面(選択中UI画面ボックス503に表示されているUI画面名のUI画面)のレイアウト編集領域である。図5(b)のキャンバス530は、デスクトップ用アプリケーションのキャンバスの表示例であり、デスクトップ用の形状で表示されている。ユーザーは、サブメニュー領域520に表示されたUI部品一覧の中から任意のUI部品(UIコンポーネント)を選び、キャンバス領域530にドラッグアンドドロップで配置することができる。キャンバス領域530に配置されたUI部品を選択してサイズや位置の調整ができる。また、キャンバス領域530に配置されたUI部品を選択して右クリックして表示される右クリックメニュー(コンテキストメニュー)に含まれるプロパティを選択することで、配色などのより詳細な設定を行える。さらに、同じくコンテキストメニューに含まれるアクションを選択することで、アクションボードが表示され、そのUI部品が操作された場合に実行すべきアクションを設定することができる。キャンバス530の空白領域にカーソルがある状態で右クリックを行うことで、キャンバスのコンテキストメニューを表示させることができ、そこに含まれるアクションを選択することにより、構築されたアプリケーションにおいてそのキャンバスのUI画面がロードされた場合に実行(そのUI画面を表示する際に実行)すべきアクションを設定することができる。 The canvas 530 is a layout editing area for the selected UI screen of the selected application (the UI screen of the UI screen name displayed in the selected UI screen box 503). The canvas 530 in FIG. 5B is an example of a canvas display for a desktop application, and is displayed in a desktop shape. The user can select any UI part (UI component) from the UI parts list displayed in the submenu area 520 and place it in the canvas area 530 by dragging and dropping it. The size and position of the UI part placed in the canvas area 530 can be adjusted by selecting it. In addition, by selecting a UI part placed in the canvas area 530 and right-clicking it to display a right-click menu (context menu), more detailed settings such as color scheme can be made. Furthermore, by selecting an action also included in the context menu, an action board is displayed, and an action to be executed when the UI part is operated can be set. By right-clicking with the cursor in a blank area of the canvas 530, the canvas's context menu can be displayed, and by selecting an action from the menu, it is possible to set the action to be executed when the UI screen of that canvas is loaded in the constructed application (to be executed when the UI screen is displayed).

図5(b)は、アプリ名「UI1」のアプリの、UI画面名「ui1」のキャンバス530に、UI部品として、パイチャート531(pie chart、円グラフ)、ボタン532、テキストフィールド533、534、アウトプットフィールド535、(Output Field)、タブ部品536を配置した例である。操作パス531aは、選択されているUI部品を示す選択枠かつ拡大縮小の指示を受け付ける操作パス(操作ハンドル)であり、パイチャート531が選択されていることを示している。 Figure 5 (b) shows an example in which a pie chart 531, a button 532, text fields 533 and 534, an output field 535, and a tab component 536 are arranged as UI components on a canvas 530 with a UI screen name "ui1" of an application with an application name "UI1". Operation path 531a is a selection frame indicating the selected UI component and an operation path (operation handle) that accepts zoom instructions, and indicates that pie chart 531 is selected.

図4に、UIエディタ処理のフローチャートを示す。この処理は、開発者用端末100が実行する処理であり、図3のS319またはS323の後に続けて行われる処理である。 Figure 4 shows a flowchart of the UI editor process. This process is executed by the developer terminal 100 and follows S319 or S323 in Figure 3.

S401では、開発者用端末100は、選択中アプリの定義情報に基づき、サブメニュー領域520に選択中アプリのUI画面一覧を選択肢として表示する。このUI画面一覧に表示される各画面は、選択中アプリを実行環境にデプロイして構築し、アプリユーザー用端末200、201からアクセスしてアプリを実行した場合に表示する画面として設計している画面である。このUI画面一覧では、新規UI画面を追加する操作や、UI画面の削除操作も受付可能である。 In S401, the developer terminal 100 displays a list of UI screens of the selected app as options in the submenu area 520 based on the definition information of the selected app. Each screen displayed in this UI screen list is designed as a screen to be displayed when the selected app is deployed and constructed in an execution environment, and is accessed from the app user terminal 200, 201 and executed. This UI screen list can also accept operations to add new UI screens and delete UI screens.

S402では、開発者用端末100は、S401で表示されたUI画面一覧のうちいずれかのUI画面を選択する操作があったか否かを判定する。いずれかのUI画面が選択された場合はS404に進み、そうでない場合にはS403に進む。 In S402, the developer terminal 100 determines whether an operation to select any of the UI screens from the list of UI screens displayed in S401 has been performed. If any of the UI screens has been selected, the process proceeds to S404; otherwise, the process proceeds to S403.

S403では、メインメニュー領域510に表示されたいずれかの選択肢を選択する操作があったか否かを判定する。メインメニュー領域510に表示された選択肢が選択された場合にはUIエディタ処理を終了し、図8(a)で後述する画面切替処理へ進む。そうでない場合にはS402に戻る。 In S403, it is determined whether or not an operation to select any of the options displayed in the main menu area 510 has been performed. If an option displayed in the main menu area 510 has been selected, the UI editor process ends and the process proceeds to the screen switching process described later with reference to FIG. 8(a). If not, the process returns to S402.

S404では、開発者用端末100は、メモリ102に記録した選択中アプリの定義情報に基づいて、キャンバス530にS402で選択されたUI画面を表示する。過去にUI部品が配置済みのUI画面であれば、定義情報に従って過去に配置されたUI部品がキャンバス530に表示される。すなわち、過去に途中まで作成したUI画面であれば続きから開発できる。S402で選択されたUI画面が新規に作成されたUI画面であれば、キャンバス530はUI部品が配置されていない空白の状態で表示される。S402で選択されたUI画面が、テンプレ―トとして予め用意されているUI画面(テンプレート画面)である場合には、ユーザーがそのUI画面に過去にUI部品を配置していなくても、予め定められたアクションが定義された雛形コンポーネントがキャンバス530の予め決まった位置に表示される。 In S404, the developer terminal 100 displays the UI screen selected in S402 on the canvas 530 based on the definition information of the selected application recorded in the memory 102. If the UI screen has UI parts previously placed on it, the UI parts previously placed according to the definition information are displayed on the canvas 530. In other words, if the UI screen was created only partially in the past, it is possible to continue development. If the UI screen selected in S402 is a newly created UI screen, the canvas 530 is displayed blank with no UI parts placed on it. If the UI screen selected in S402 is a UI screen (template screen) that has been prepared in advance as a template, a template component with a predetermined action defined is displayed in a predetermined position on the canvas 530, even if the user has not previously placed UI parts on that UI screen.

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部品の種別の一覧が表示される。 In S405, the developer terminal 100 displays a list of UI parts in the submenu area 520. That is, the display is switched from the UI screen list of the selected application to the UI parts list. UI parts that can be arranged on the canvas 530 include types INPUT, Button, Display (information display part), Navigation, Layout, and Chart, and multiple UI parts are classified into each type. In the UI parts list, first, as shown in FIG. 5(c), a list of UI part types is displayed, and in response to an operation to select one of the displayed types, UI parts classified into the selected type are expanded and displayed. The above-mentioned FIG. 5(b) is an example in which the option 522 of the type corresponding to INPUT is selected and a list of UI parts classified into INPUT is displayed. UI parts classified into INPUT include, for example, a text field 523 and a text area 524. The submenu area 520 is scrollable, and options that cannot be displayed (options for the UI part of the expanded type and options for other types) can be scrolled to display them. When an option 522 for an expanded type is operated as in FIG. 5(b), the list of UI parts of the expanded type is collapsed, and a list of UI part types is displayed.

S406では、開発者用端末100は、サブメニュー領域520に表示されたUI部品が選択されたか否かを判定する。より詳しくは、サブメニュー領域520に表示されたUI部品をドラッグする操作が行われたか否かを判定する。サブメニュー領域520に表示されたUI部品が選択された場合にはS407に進み、そうでない場合にはS411へ進む。 In S406, the developer terminal 100 determines whether or not a UI part displayed in the submenu area 520 has been selected. More specifically, it determines whether or not an operation to drag the UI part displayed in the submenu area 520 has been performed. If a UI part displayed in the submenu area 520 has been selected, the process proceeds to S407; if not, the process proceeds to S411.

S407では、開発者用端末100は、キャンバス530上の位置を指定する操作があったか否かを判定する。より詳しくは、ドラッグしていたUI部品をキャンバス530上にドロップする操作があったか否か判定する。キャンバス530上を指定する操作があった場合はS408へ進み、そうでない場合にはS407でキャンバス530上の位置の指定を待つ。なお、本実施形態ではドラッグアンドドロップの例を説明するが、サブメニュー領域520からUI部品を選択してキャンバス530上の指定位置に配置するための操作であれば操作方法はこれに限るものではない。 In S407, the developer terminal 100 determines whether an operation to specify a position on the canvas 530 has been performed. More specifically, it determines whether an operation to drop the dragged UI part onto the canvas 530 has been performed. If an operation to specify the canvas 530 has been performed, the process proceeds to S408, and if not, the process waits for the specification of a position on the canvas 530 in S407. Note that, although an example of drag and drop is described in this embodiment, the operation method is not limited to this as long as it is an operation to select a UI part from the submenu area 520 and place it at a specified position on the canvas 530.

S408では、開発者用端末100は、S407でドロップされたUI部品がAppBar(アプリケーションバー)であったか否を判定する。AppBarであった場合はS410に進み、そうでない場合にはS409に進む。 In S408, the developer terminal 100 determines whether the UI component dropped in S407 was an AppBar (application bar). If it was an AppBar, the process proceeds to S410; if not, the process proceeds to S409.

S409では、開発者用端末100は、サブメニュー領域520からS406で選択されたUI部品を、キャンバス530上の指定位置にデフォルトのサイズで配置し、そのことを定義する情報をメモリ102に記録した定義情報に記録する。すなわち、定義情報において、配置先のUI画面(編集中のUI画面)のIDに、S410で配置したUI部品の種別、UI部品ID、配置座標、配置サイズなどを関連付けて記録する。 In S409, the developer terminal 100 places the UI part selected in S406 from the submenu area 520 at the specified position on the canvas 530 at a default size, and records information defining this in the definition information recorded in memory 102. That is, in the definition information, the type of UI part placed in S410, the UI part ID, placement coordinates, placement size, etc. are associated with the ID of the destination UI screen (the UI screen being edited) and recorded.

S410では、開発者用端末100は、開発環境300から取得してメモリ102に保持している定義情報に含まれるアプリ設定を参照し、PWA(Progressive web apps)がオンに設定されているか否かを判定する。PWAがオンに設定されている場合にはS411に進み、そうでない場合にはS412に進む。 In S410, the developer terminal 100 refers to the application settings included in the definition information acquired from the development environment 300 and stored in the memory 102, and determines whether or not PWA (Progressive web apps) is set to on. If PWA is set to on, the process proceeds to S411, and if not, the process proceeds to S412.

S411では、開発者用端末100は、PWAインストールの項目のあるAppBarを、キャンバス530上のS407で指定された位置に関わらない所定の位置(本実施形態では、UI画面の最上部)にデフォルトのサイズで配置し、そのことを定義する情報をメモリ102に記録した定義情報に記録する。 In S411, the developer terminal 100 places the AppBar containing the PWA installation item in a predetermined position on the canvas 530 (in this embodiment, the top of the UI screen) regardless of the position specified in S407, at a default size, and records the information defining this in the definition information stored in memory 102.

S412では、開発者用端末100は、PWAインストールの項目のないAppBarを、キャンバス530上のS407で指定された位置に関わらない所定の位置にデフォルトのサイズで配置し、そのことを定義する情報をメモリ102に記録した定義情報に記録する。 In S412, the developer terminal 100 places an AppBar without a PWA installation item in a predetermined position on the canvas 530, regardless of the position specified in S407, at a default size, and records information defining this in the definition information stored in memory 102.

図6(a)、図6(b)に、AppBarを配置した場合の表示例を示す。図6(a)は、キャンバス530に、それぞれUI部品であるAppBar650、TextField661、Button662を配置した場合の例である。AppBar650は1つのUI部品であり、AppBar650の中に要素アイコン651が含まれる。要素アイコン651は、構築されたアプリケーションにおいては、ドロワーメニューを表示させるための指示を受け付ける表示アイテムである。 Figures 6(a) and 6(b) show display examples when an AppBar is placed. Figure 6(a) shows an example when UI components AppBar 650, TextField 661, and Button 662 are placed on canvas 530. AppBar 650 is a single UI component, and contains an element icon 651. In the constructed application, element icon 651 is a display item that accepts instructions for displaying a drawer menu.

配置済みの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の利用が可能であることを認識させることができる。 When the position of the element icon 651 of the placed AppBar 650 is clicked, the operation path 650a for the AppBar 650 is displayed (S414) and the drawer menu is displayed as an element screen. This causes a transition from the display state of FIG. 6(a) to the display state of FIG. 6(b). In FIG. 6(b), the operation path 650a for the AppBar 650 is displayed, and the drawer menu 651a, which is the element screen corresponding to the element icon 651, is displayed. The drawer menu 651a is an area that is displayed by pulling it out from the left edge of the screen to the right, and displays one or more menu items. As a menu item included in this drawer menu 651a, if the PWA setting is on, the PWA installation item 652 is displayed, and if the PWA setting is off, the PWA installation item 652 is not displayed. When the PWA installation item 652 is pressed in the constructed application, the application user terminal 201 displaying the constructed application screen is controlled to download and install the corresponding PWA. The AppBar is a UI part located at the top of the application, and shortcuts to frequently used functions of the application and navigation to various functions are displayed in a drawer menu. Therefore, when an application user performs some operation related to the application, the user is likely to first open the AppBar drawer menu. Therefore, by displaying the PWA installation item 652 as one of the options displayed in this drawer menu along with options corresponding to multiple screens or multiple functions of the application, the user can be made more reliably aware that a PWA is available for use.

S413では、開発者用端末100は、キャンバス530に配置済みのUI部品がクリックなどで選択されたか否かを判定する。配置済みのUI部品がクリックされた(選択された)場合にはS414に進み、そうでない場合にはS415に進む。 In S413, the developer terminal 100 determines whether a UI component already placed on the canvas 530 has been selected by clicking or the like. If a UI component already placed has been clicked (selected), the process proceeds to S414; if not, the process proceeds to S415.

S414では、開発者用端末100は、S413でクリックされたUI部品に操作パスを表示する。操作パスの表示例が前述の操作パス531aや操作パス601aである。 In S414, the developer terminal 100 displays an operation path for the UI component clicked in S413. Examples of operation path displays are the above-mentioned operation path 531a and operation path 601a.

S415では、開発者用端末100は、キャンバス530上で配置済みのUI部品をドラッグする操作があったか否かを判定する。配置済みのUI部品をドラッグする操作があった場合にはS416に進み、そうでない場合にはS417へ進む。S416では、開発者用端末100は、ドラッグ操作に応じてドラッグされたUI部品(選択部品)の配置される位置を変更する。具体的には、ドロップされた位置に配置する。配置を変更すると、メモリ102に記録している定義情報も変更後の位置を表すように更新する。 In S415, the developer terminal 100 determines whether or not an operation to drag an already placed UI component on the canvas 530 has been performed. If an operation to drag an already placed UI component has been performed, the process proceeds to S416; if not, the process proceeds to S417. In S416, the developer terminal 100 changes the position of the dragged UI component (selected component) in response to the drag operation. Specifically, it places it at the dropped position. When the position is changed, the definition information recorded in memory 102 is also updated to indicate the changed position.

S417では、開発者用端末100は、キャンバス530上で配置済みのUI部品の操作パスに対する操作があったか否かを判定する。操作パスへの操作があった場合にはS418に進み、そうでない場合にはS419へ進む。S418では、開発者用端末100は、操作パスへの操作に応じて操作パスが付されたUI部品(選択部品)のサイズを変更する。サイズを変更すると、メモリ102に記録している定義情報も変更後のサイズを表すように更新する。 In S417, the developer terminal 100 determines whether or not an operation has been performed on the operation path of a UI component already placed on the canvas 530. If an operation has been performed on the operation path, the process proceeds to S418; if not, the process proceeds to S419. In S418, the developer terminal 100 changes the size of the UI component (selected component) to which the operation path has been assigned in response to the operation on the operation path. When the size is changed, the definition information recorded in memory 102 is also updated to indicate the changed size.

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)を用いて後述する。 In S419, the developer terminal 100 determines whether or not an instruction operation (in this embodiment, a right click of the mouse) to display a context menu has been performed in any area of the canvas 530. If a right click has been performed, the process proceeds to S420, and if not, the process proceeds to S421. In S420, a context menu (right click menu) is displayed according to the position of the mouse cursor when the right click has been performed, and a context menu process is performed to perform a process according to the operation on the context menu. For example, if a right click is performed with the mouse cursor on the button 532 in FIG. 5(b), a context menu 540 related to the button 532 (designated UI part) as shown in FIG. 5(d) is displayed. The context menu 540 displays properties 541, actions 542, and delete 543 as menu items to be selected. When properties 541 is selected, a property box (detailed settings dialog) related to the button 532 is displayed, and detailed settings such as the button name (label) to be displayed on the button 532, the color of the button 532, and the size specified by a numerical value can be performed. When action 542 is selected, an action board related to button 532 is displayed, and an action can be input to the action board in JavaScript, a programming language. The action input here is the process to be executed when button 532 (designated UI component) is pressed in the constructed application. When delete 543 is selected, button 532 is deleted (removed) from canvas 530. Details of the context menu process will be described later with reference to FIG. 7(a).

S421では、開発者用端末100は、保存ボタン504が押下されたか否かを判定する。保存ボタン504が押下された場合にはS422に進み、そうでない場合にはS423へ進む。S422では、開発者用端末100は、メモリ102に記録している編集中のアプリケーションの定義情報を開発環境300に送信する。 In S421, the developer terminal 100 determines whether the Save button 504 has been pressed. If the Save button 504 has been pressed, the process proceeds to S422; if not, the process proceeds to S423. In S422, the developer terminal 100 transmits the definition information of the application being edited that is recorded in memory 102 to the development environment 300.

S423では、開発者用端末100は、プレビューボタン505が押下されたか否かを判定する。プレビューボタン505が押下されたと判定した場合にはS424へ進み、そうでない場合にはS425へ進む。S424では、開発者用端末100は、プレビュー処理を行う。プレビュー処理では、キャンバス503を非表示とし、メモリ102に記録している定義情報または開発環境300に記録されている定義情報に基づいて、キャンバス503で編集しているUI画面について、構築されたアプリケーションでそのUI画面を見た場合と同じ見た目となるようなプレビューを表示する。プレビューでは、UI部品を操作するための操作パスは表示されない。また、UIエディタ画面では実行されない(キャンバス530への操作では実行されない)一部の動作について、プレビューでは実行される。例えば、画面遷移用のUI部品やリンク部分を操作した場合に、画面遷移やリンク先への遷移が実行される。また、項目に対する選択枠の移動をキーボードのタブキーの操作によって行うといった動作も実行される。なお、アクションボートに開発者が入力したアクションやデータベースの参照といった動作は行われない。その分、プレビュー処理は実際にデプロイして確認する場合よりも高速に表示することができる。 In S423, the developer terminal 100 determines whether the preview button 505 has been pressed. If it is determined that the preview button 505 has been pressed, the process proceeds to S424, and if not, the process proceeds to S425. In S424, the developer terminal 100 performs a preview process. In the preview process, the canvas 503 is hidden, and a preview is displayed of the UI screen being edited in the canvas 503 based on the definition information recorded in the memory 102 or the definition information recorded in the development environment 300, so that the UI screen will look the same as if the UI screen were viewed in the constructed application. In the preview, the operation path for operating the UI parts is not displayed. In addition, some operations that are not performed on the UI editor screen (not performed by operations on the canvas 530) are performed in the preview. For example, when a UI part for screen transition or a link part is operated, a screen transition or a transition to a link destination is performed. In addition, an operation such as moving a selection frame for an item by operating the tab key on the keyboard is also performed. Note that actions entered by the developer in the action boat and database references will not be performed. Instead, the preview process can be displayed faster than if you were to actually deploy and check the results.

S425では、開発者用端末100は、デプロイボタン506が押下されたか否かを判定する。デプロイボタン506が押下された場合にはS426へ進み、そうでない場合にはS427へ進む。S426では、開発者用端末100は、開発環境300にデプロイを指示するデプロイ要求を送信する。 In S425, the developer terminal 100 determines whether the deploy button 506 has been pressed. If the deploy button 506 has been pressed, the process proceeds to S426; if not, the process proceeds to S427. In S426, the developer terminal 100 sends a deploy request to the development environment 300 to instruct the development environment 300 to deploy.

S427では、開発者用端末100は、選択中実行環境を変更する操作があったか否かを判定する。具体的には、選択中実行環境ボックス501に対して、選択中実行環境を変更する操作があったか否かを判定する。選択中実行環境を変更する操作があった場合にはS428へ進み、そうでない場合にはS429へ進む。S428では、開発者用端末100は、選択された実行環境を特定する情報(実行環境IDなど)を「選択中実行環境」としてメモリ102に記録するとともに、開発環境300に送信する。また、選択中実行環境ボックス501の表示内容を、変更後の選択中実行環境を表すように更新する。開発環境300では、選択中実行環境を特定する情報を受信すると、それに基づき、選択中実行環境を、ストレージ320のログイン開発者用の領域に保存されている、設定管理用のファイルに記録する。 In S427, the developer terminal 100 determines whether an operation to change the selected execution environment has been performed. Specifically, it determines whether an operation to change the selected execution environment has been performed on the selected execution environment box 501. If an operation to change the selected execution environment has been performed, the process proceeds to S428; if not, the process proceeds to S429. In S428, the developer terminal 100 records information identifying the selected execution environment (such as an execution environment ID) in memory 102 as the "selected execution environment" and transmits the information to the development environment 300. The developer terminal 100 also updates the display content of the selected execution environment box 501 to represent the changed selected execution environment. When the development environment 300 receives the information identifying the selected execution environment, the development environment 300 records the selected execution environment in a file for setting management stored in an area for the logged-in developer in storage 320 based on the information.

S429では、開発者用端末100は、編集対象のアプリケーションを変更する操作があったか否かを判定する。具体的には、選択中アプリボックス502に対して選択中アプリを変更する操作があったか否かを判定する。選択中アプリを変更する操作があった場合には図3のS317に進み、変更後の選択中アプリに基づいてS317以降の処理を実行する。すなわち、サブメニュー領域520、キャンバス530の表示内容が更新される。選択中アプリを変更する操作がなかった場合には処理はS430へ進む。 In S429, the developer terminal 100 determines whether an operation to change the application to be edited has been performed. Specifically, it determines whether an operation to change the selected app has been performed in the selected app box 502. If an operation to change the selected app has been performed, the process proceeds to S317 in FIG. 3, and the process from S317 onwards is executed based on the changed selected app. That is, the display contents of the submenu area 520 and the canvas 530 are updated. If an operation to change the selected app has not been performed, the process proceeds to S430.

S430では、開発者用端末100は、編集対象のUI画面を変更する操作があったか否かを判定する。具体的には、選択中UI画面ボックス503に対して、選択中UI画面を変更する操作があったか否かを判定する。選択中UI画面を変更する操作があった場合にはS404に進み、変更後の選択中UI画面に基づいて処理を行う。すなわち、キャンバス530の表示内容は変更後の選択中UI画面の内容に更新される(切り替わる)。選択中UI画面を変更する操作がなかった場合には処理はS431へ進む。 In S430, the developer terminal 100 determines whether or not an operation to change the UI screen to be edited has been performed. Specifically, it determines whether or not an operation to change the selected UI screen has been performed for the selected UI screen box 503. If an operation to change the selected UI screen has been performed, the process proceeds to S404, and processing is performed based on the changed selected UI screen. In other words, the display content of the canvas 530 is updated (switched) to the content of the changed selected UI screen. If no operation to change the selected UI screen has been performed, the process proceeds to S431.

S431では、開発者用端末100は、メインメニュー領域510に表示されたいずれかの選択肢を選択する操作があったか否かを判定する。メインメニュー領域510に表示された選択肢が選択された場合にはUIエディタ処理を終了し、図8(a)で後述する画面切替処理へ進む。そうでない場合にはS406に戻る。 In S431, the developer terminal 100 determines whether or not an operation has been performed to select any of the options displayed in the main menu area 510. If an option displayed in the main menu area 510 has been selected, the UI editor process ends and the process proceeds to the screen switching process described later in FIG. 8(a). If not, the process returns to S406.

<コンテキストメニュー処理>
図7(a)に、コンテキストメニュー処理のフローチャートを示す。この処理は、図5のS420の詳細フローチャートである。
<Context menu processing>
7A shows a flowchart of the context menu process, which is a detailed flowchart of S420 in FIG.

S701では、開発者用端末100は、表示すべきコンテキストメニューが、ボタン(Button)の種別のUI部品に関するものであるか否かを判定する。より詳しくは、S419で右クリックを受け付けた際にマウスで指定していたUI部品(指定UI部品)の種別がボタンであるか否かを判定する。ボタンである場合にはS710に進み、そうでない場合にはS702に進む。 In S701, the developer terminal 100 determines whether the context menu to be displayed is related to a UI part of the button type. More specifically, it determines whether the type of the UI part (specified UI part) specified with the mouse when the right-click was accepted in S419 is a button. If it is a button, the process proceeds to S710, and if not, the process proceeds to S702.

S702では、開発者用端末100は、表示すべきコンテキストメニューが、キャンバスに関するものであるか否かを判定する。より詳しくは、S419で右クリックを受け付けた際にマウスで指定していた位置が、キャンバス530のうちUI部品が配置されていない空白領域であったか否かを判定する。空白領域であった場合(表示すべきコンテキストメニューが、キャンバスに関するものである場合)はS703に進み、そうでない場合にはS704に進む。 In S702, the developer terminal 100 determines whether the context menu to be displayed is related to the canvas. More specifically, it determines whether the position designated by the mouse when the right-click was accepted in S419 was a blank area of the canvas 530 where no UI components were placed. If it is a blank area (if the context menu to be displayed is related to the canvas), the process proceeds to S703; otherwise, the process proceeds to S704.

S703では、開発者用端末100は、キャンバスのコンテキストメニュー処理を行う。 In S703, the developer terminal 100 performs canvas context menu processing.

S704では、開発者用端末100は、表示すべきコンテキストメニューが、AppBarの種別のUI部品に関するものであるか否かを判定する。より詳しくは、S419で右クリックを受け付けた際にマウスで指定していたUI部品(指定UI部品)の種別がAppBarであるか否かを判定する。AppBarである場合にはS705に進み、そうでない場合にはS709に進む。 In S704, the developer terminal 100 determines whether the context menu to be displayed is related to a UI part of the AppBar type. More specifically, it determines whether the type of the UI part (specified UI part) specified with the mouse when the right-click was accepted in S419 is an AppBar. If it is an AppBar, the process proceeds to S705, and if not, the process proceeds to S709.

S705では、開発者用端末100は、AppBarのコンテキストメニューを表示する。AppBarのコンテキトメニューにはプロパティの項目が含まれる。 In S705, the developer terminal 100 displays the AppBar context menu. The AppBar context menu includes a properties item.

S706では、開発者用端末100は、AppBarのコンテキストメニューのうち、プロパティの項目を選択する操作があったか否かを判定する。プロパティの項目を選択する操作があった場合にはS707に進み、そうでない場合にはS708に進む。 In S706, the developer terminal 100 determines whether an operation to select a property item has been performed in the context menu of the AppBar. If an operation to select a property item has been performed, the process proceeds to S707; if not, the process proceeds to S708.

S707では、開発者用端末100は、AppBarのプロパティボックス(詳細設定ダイアログ)を表示し、プロパティボックスに対する各種設定操作(指定UI部品であるAppbarに関する設定操作)を受け付ける。 In S707, the developer terminal 100 displays the AppBar property box (detailed settings dialog) and accepts various setting operations for the property box (setting operations related to the AppBar, which is the specified UI component).

図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インストールの項目は必ずしも必要ないからである。 Figure 7 (b) shows an example of the possession of the AppBar property box 730. The AppBar property box 730 includes a setting item for DRAWER ITEMS, and when a setting item for DRAWER ITEMS is selected, a dialog box 740 for setting the DRAWER ITEMS is popped up and displayed in a superimposed manner. The dialog box 740 is a screen for setting the DRAWER ITEMS (menu items included in the drawer menu), and displays a list of menu items that have already been set to be displayed in the drawer menu in a table format. In the illustrated example, Item1 and Item2 are items that have been set to be displayed as menu items in the AppBar drawer menu. For each item, ID 741, ICON 742, LABEL 743 (the name to be displayed), click event 744, and NEXT UI 745 (the UI screen to which the item transitions in response to being clicked) can be set. When the PWA setting is on and the PWA installation item 652 is set to be placed, the items corresponding to the PWA installation item 652 are listed and displayed in the dialog box 740. Note that, for the PWA installation item 652, a prefix character string is added to the ID to identify it as a PWA installation item, and the prefix character string cannot be changed. Also, the click event 744 and the NEXT UI 745 cannot be changed. This is because the PWA installation item 652 is automatically set with a click event in which the application user terminal 201 displaying the screen of the constructed application downloads and installs the corresponding PWA. For the PWA installation item 652, the ICON 742 and the LABEL 743 can be changed. That is, the appearance (display form) of the PWA installation item 652 can be changed. When the PWA setting is on and the PWA installation item 652 is set to be placed, it is also possible to set it to delete the PWA installation item 652 (not to display it in the AppBar drawer menu). As will be described later, if an installation component is placed in the initial UI, the PWA installation item is not necessarily required in the AppBar drawer menu.

モバイル用のアプリという設定であり、PWAの設定がオフであり、PWAインストールの項目652が配置されない設定となっている場合に、ダイアログボックス740に含まれる項目追加ボタン746を押下し、PWAインストールの項目652を追加するとともに、PWAの設定をオンとするようにしてもよい。この際、PWAインストールの項目652を追加する操作を行った場合に、アプリ設定(後述する図8(a)のS810~S819の処理によって行う設定)においてPWAの設定がオンとなることを通知および確認する確認表示を行い、ユーザーから承認する操作があったことに応じて、PWAインストールの項目652を追加するとともに、PWAの設定をオンとするようにしてもよい。 When the setting is for a mobile app, the PWA setting is off, and the PWA installation item 652 is not arranged, the item addition button 746 included in the dialog box 740 may be pressed to add the PWA installation item 652 and turn on the PWA setting. In this case, when the operation to add the PWA installation item 652 is performed, a confirmation display may be displayed to notify and confirm that the PWA setting will be turned on in the app settings (the setting is performed by the processing of S810 to S819 in FIG. 8(a) described later), and in response to an operation to approve from the user, the PWA installation item 652 may be added and the PWA setting may be turned on.

モバイル用のアプリという設定であり、PWAの設定がオフであり、PWAインストールの項目652が配置されない設定となっている場合に、ダイアログボックス740に含まれる項目追加ボタン746を押下し、PWAインストールの項目652を追加しようとする操作を行うと、アプリ設定でPWAをオンとする必要があることを警告する通知行い、ダイアログボックス740への操作ではPWAの設定をオンとできないように制御してもよい。この警告の際に、後述する図8(b)のアプリ設定画面(設定項目841~848を含む画面)を表示させるショートカットアイテムを表示し、ショートカットアイテムが操作されたことに応じて図8(b)のアプリ設定画面(設定項目841~848を含む画面)を表示し、後述する図8(a)のS811の処理へ進んでも良い。 In the case where the setting is for a mobile app, the PWA setting is off, and the PWA installation item 652 is not arranged, when an operation to add the PWA installation item 652 is performed by pressing the item addition button 746 included in the dialog box 740, a warning is issued that PWA needs to be turned on in the app settings, and the PWA setting cannot be turned on by operating the dialog box 740. When this warning is issued, a shortcut item that displays the app setting screen (a screen including setting items 841 to 848) in FIG. 8(b) described later may be displayed, and in response to the shortcut item being operated, the app setting screen (a screen including setting items 841 to 848) in FIG. 8(b) may be displayed, and the process may proceed to S811 in FIG. 8(a) described later.

S708では、開発者用端末100は、AppBarのコンテキストメニューのうち、プロパティの項目以外の、その他の項目に関する処理を行う。詳細は省略する。 In S708, the developer terminal 100 performs processing related to items other than the property item in the AppBar context menu. Details are omitted.

S709では、開発者用端末100は、その他の処理として、指定された位置に対応する指定対象に関するコンテキストメニューを表示し、操作に応じた処理を行う。詳細は省略する。 In S709, as other processing, the developer terminal 100 displays a context menu related to the specified target corresponding to the specified position and performs processing according to the operation. Details are omitted.

S710では、開発者用端末100は、編集対象のUI画面(選択中UI画面)がテンプレート画面であるか否かを判定する。テンプレート画面である場合にはS721に進み、そうでない場合にはS711に進む。 In S710, the developer terminal 100 determines whether the UI screen to be edited (selected UI screen) is a template screen. If it is a template screen, the process proceeds to S721; if not, the process proceeds to S711.

S711では、開発者用端末100は、指定UI部品に関するコンテキストメニューとして、図5(d)に示したボタン用のコンテキストメニューを指定位置(マウスカーソル位置)の近傍に重畳表示する。 In S711, the developer terminal 100 displays the button context menu shown in FIG. 5(d) superimposed near the specified position (mouse cursor position) as a context menu for the specified UI component.

S712では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、プロパティ(図5(d)のプロパティ541)が選択されたか否かを判定する。プロパティが選択された場合にはS713に進み、そうでない場合にはS714へ進む。 In S712, the developer terminal 100 determines whether or not a property (property 541 in FIG. 5(d)) has been selected from the options included in the context menu. If a property has been selected, the process proceeds to S713; if not, the process proceeds to S714.

S713では、開発者用端末100は、指定UI部品に関するプロパティボックス(詳細設定ダイアログ)として、ボタン用のプロパティボックスをキャンバス530に重畳して表示する。そして、プロパティボックスに対する各種設定操作を受け付ける。ここで、例えば、指定UI部品であるボタンに表示するボタン名(ラベル)、ボタンの色、数値指定でのサイズ、等の詳細な設定を行える。設定を行って反映操作を行うと、キャンバス530において、設定を反映した表示形態で指定UI部品が表示される。 In S713, the developer terminal 100 displays a property box for the button superimposed on the canvas 530 as a property box (detailed settings dialog) for the specified UI part. Then, various setting operations for the property box are accepted. Here, detailed settings can be made, for example, such as the button name (label) to be displayed for the button, which is the specified UI part, the button color, and the size specified by a numerical value. When the settings are made and an operation to reflect them is performed, the specified UI part is displayed on the canvas 530 in a display form that reflects the settings.

S714では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、アクション(図5(d)のプロパティ542)が選択されたか否かを判定する。アクションが選択された場合にはS715に進み、そうでない場合にはS716へ進む。 In S714, the developer terminal 100 determines whether an action (property 542 in FIG. 5(d)) has been selected from the options included in the context menu. If an action has been selected, the process proceeds to S715; if not, the process proceeds to S716.

S715では、開発者用端末100は、指定UI部品であるボタンに関するアクションボード処理を行う。すなわち、指定UI部品であるボタンに対応するアクションボードが表示され、アクションボードに対してプログラミング言語であるJavaScriptで文字列(アクションを定義する文字列)を記述する入力を受け付ける。ここで入力されるアクションは、構築されたアプリケーションにおいて指定UI部品が押下された場合に実行すべき処理である。 At S715, the developer terminal 100 performs action board processing for the button, which is the specified UI part. That is, an action board corresponding to the button, which is the specified UI part, is displayed, and input is accepted for describing a string (a string that defines an action) in JavaScript, a programming language, for the action board. The action entered here is the process to be executed when the specified UI part is pressed in the constructed application.

S716では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、消去(図5(d)の消去543)が選択されたか否かを判定する。消去が選択された場合にはS717に進み、そうでない場合にはS718へ進む。 In S716, the developer terminal 100 determines whether or not "Delete" (Delete 543 in FIG. 5(d)) has been selected from the options included in the context menu. If "Delete" has been selected, the process proceeds to S717; if not, the process proceeds to S718.

S717では、開発者用端末100は、指定UI部品を消去し、メモリ102に記録した定義情報のうち、指定UI部品に関する情報(位置やサイズなどの定義、プロパティやアクションなど)を消去する。これによって、キャンバス530において指定UI部品は消去(削除)されて非表示となる。 In S717, the developer terminal 100 erases the specified UI component, and erases information about the specified UI component (definitions such as position and size, properties and actions, etc.) from the definition information recorded in memory 102. As a result, the specified UI component is erased (deleted) and hidden from the canvas 530.

S718では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、他の選択肢が選択されたか否かを判定する。他の選択肢が選択された場合にはS719に進み、選択された選択肢に応じた処理を行う。そうでない場合にはS720へ進む。 In S718, the developer terminal 100 determines whether another option has been selected from the options included in the context menu. If another option has been selected, the process proceeds to S719, where processing according to the selected option is performed. If not, the process proceeds to S720.

S720では、開発者用端末100は、コンテキストメニューを閉じる操作(例えば、コンテキストメニューが表示された領域外をクリックする操作)があったか否かを判定する。コンテキストメニューを閉じる操作があった場合には、コンテキストメニューを非表示とし、図7(a)の処理を終了する。閉じる操作がない場合にはS712に戻る。 In S720, the developer terminal 100 determines whether an operation to close the context menu has been performed (for example, an operation of clicking outside the area in which the context menu is displayed). If an operation to close the context menu has been performed, the context menu is hidden and the processing of FIG. 7(a) ends. If no operation to close the context menu has been performed, the processing returns to S712.

一方、S721では、開発者用端末100は、指定UI部品に関するコンテキストメニューとして、テンプレート画面用で、かつ、ボタン用のコンテキストメニューを指定位置(マウスカーソル位置)の近傍に重畳表示する。テンプレート画面用のコンテキストメニューには、通常のUI画面用のコンテキストメニュー(図5(d)に示したコンテキストメニュー540)と異なり、選択肢としてアクション、消去は表示されず、プロパティだけが表示される。すなわち、UI画面のうち、テンプレートの画面に配置されたUI部品に関しては、当該UI部品が操作された場合のアクションを開発者が設定できないようにしている。 Meanwhile, in S721, the developer terminal 100 displays a context menu for the template screen and for the button as a context menu for the specified UI part, superimposed near the specified position (mouse cursor position). Unlike the context menu for a normal UI screen (context menu 540 shown in FIG. 5(d)), the context menu for the template screen does not display options such as action or delete, but only properties. In other words, for UI parts placed on the template screen among the UI screens, the developer is not allowed to set the action to be taken when the UI part is operated.

S722では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、プロパティが選択されたか否かを判定する。プロパティが選択された場合にはS723に進み、そうでない場合にはS724へ進む。S723の処理はS713と同様である。 In S722, the developer terminal 100 determines whether or not Properties has been selected from the options included in the context menu. If Properties has been selected, the process proceeds to S723; if not, the process proceeds to S724. The process of S723 is the same as S713.

S724では、開発者用端末100は、コンテキストメニューを閉じる操作(例えば、コンテキストメニューが表示された領域外をクリックする操作)があったか否かを判定する。コンテキストメニューを閉じる操作があった場合には、コンテキストメニューを非表示とし、図7(a)の処理を終了する。閉じる操作がない場合にはS722に戻る。 In S724, the developer terminal 100 determines whether an operation to close the context menu has been performed (for example, an operation of clicking outside the area in which the context menu is displayed). If an operation to close the context menu has been performed, the context menu is hidden and the processing of FIG. 7(a) ends. If no operation to close the context menu has been performed, the processing returns to S722.

<画面切替処理>
図8(a)に、画面切替処理のフローチャートを示す。この処理は、図5(b)の表示例で前述したメインメニュー領域510に表示された選択肢の選択に応じた処理である。
<Screen switching process>
Fig. 8A shows a flowchart of the screen switching process, which is performed in response to the selection of an option displayed in the main menu area 510 described above in the display example of Fig. 5B.

S801では、開発者用端末100は、アプリ一覧ボタン511が押下されたか否かを判定する。アプリ一覧ボタン511が押下された場合は図3のS315に進み、そうでない場合はS802に進む。 In S801, the developer terminal 100 determines whether the application list button 511 has been pressed. If the application list button 511 has been pressed, the process proceeds to S315 in FIG. 3; if not, the process proceeds to S802.

S802では、開発者用端末100は、UI画面ボタン512が押下されたか否かを判定する。UI画面ボタン512が押下された場合はS803に進み、そうでない場合はS804へ進む。S803では、図4のUIエディタ処理を行う。 In S802, the developer terminal 100 determines whether the UI screen button 512 has been pressed. If the UI screen button 512 has been pressed, the process proceeds to S803; if not, the process proceeds to S804. In S803, the UI editor process of FIG. 4 is performed.

S804では、開発者用端末100は、ワークフローボタン513が押下されたか否かを判定する。ワークフローボタン513が押下されたと判定した場合はS805に進み、そうでない場合はS806に進む。 In S804, the developer terminal 100 determines whether or not the workflow button 513 has been pressed. If it is determined that the workflow button 513 has been pressed, the process proceeds to S805; otherwise, the process proceeds to S806.

S805では、開発者用端末100は、ワークフロー作成処理を行う。詳細は省略する。 In S805, the developer terminal 100 performs a workflow creation process. Details are omitted.

S806では、開発者用端末100は、設定ボタン514が押下されたか否かを判定する。設定ボタン514が押下された場合にはS810に進み、そうでない場合はS820へ進む。 In S806, the developer terminal 100 determines whether the setting button 514 has been pressed. If the setting button 514 has been pressed, the process proceeds to S810; if not, the process proceeds to S820.

S810では、開発者用端末100は、アプリ設定画面を表示する。アプリ設定画面は、選択中アプリに関する設定操作を受け付ける画面である。 At S810, the developer terminal 100 displays an application setting screen. The application setting screen is a screen that accepts setting operations related to the selected application.

図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は、ホーム画面におけるアプリのアイコンに使用する画像を設定する項目である。非マスカブルアイコン用とマスカブルアイコン用について、それぞれ複数のサイズの画像を設定可能である。
FIG. 8B shows a display example of the application setting screen. The application setting screen includes a setting upper menu display area 830 and a setting area 840 that accepts the setting of various setting items corresponding to a selected menu item among the menu items displayed in the upper menu display area 830. The selected application box 502 described above is also displayed. The selected application displayed in the selected application box 502 is the application to be set on the application setting screen. The upper menu display area 830 displays a plurality of menu items corresponding to the classification of setting items. The displayed menu includes a general setting 831. If the application to be set is for mobile use, the upper menu display area 830 includes (displays) a menu item 832 related to PWA. If the application to be set is not for mobile use (for PC use), the upper menu display area 830 does not include (does not display) the menu item 832 related to PWA. If the menu item 832 related to PWA is selected, the setting area 840 displays setting items 841 to 848 as setting items related to PWA.
A setting item 841 is a setting item for switching the PWA setting on/off.
Setting items 842 to 848 are setting items reflected in the PWA manifest.
Setting item 842 is an item for setting the name of the application to be displayed on the application user terminal 201 when the PWA is installed. Setting item 843 is an item for setting a short name of the application to be displayed on the application user terminal 201 when the PWA is installed.
The setting item 844 is an item for setting a Description, which is a description of the application.
Setting items 845 to 848 are items for setting images to be used for application icons on the home screen. Images of multiple sizes can be set for non-maskable icons and maskable icons, respectively.

S811では、開発者用端末100は、設定対象となるアプリがモバイル用であるか否かを判定する。モバイル用である場合にはS812へ進み、そうでない場合にはS818へ進む。 In S811, the developer terminal 100 determines whether the application to be configured is for mobile use. If it is for mobile use, the process proceeds to S812; if not, the process proceeds to S818.

S812では、開発者用端末100は、PWAの設定のオン/オフを切り替える操作があったか否かを判定する。具体的には、PWAに関するメニュー項目832を選択した上で、設定項目841に対する操作があったか否かを判定する。PWAの設定のオン/オフを切り替える操作があった場合にはS813に進み、そうでない場合にはS817に進む。 In S812, the developer terminal 100 determines whether or not an operation to switch the PWA setting on/off has been performed. Specifically, after selecting the menu item 832 related to the PWA, it determines whether or not an operation has been performed on the setting item 841. If an operation to switch the PWA setting on/off has been performed, the process proceeds to S813; if not, the process proceeds to S817.

S813では、開発者用端末100は、PWAの設定のオン/オフを切り替え、切り替えた結果に基づいてメモリ102に記録した定義情報を更新する。具体的には、PWAの設定のオン/オフを切り替える操作がある前にオンだった場合にはオフ(PWA無効)に設定し、PWAの設定のオン/オフを切り替える操作がある前にオフだった場合にはオン(PWA有効)に切り替える。 In S813, the developer terminal 100 switches the PWA setting on/off, and updates the definition information recorded in memory 102 based on the result of the switch. Specifically, if it was on before the operation to switch the PWA setting on/off was performed, it is set to off (PWA disabled), and if it was off before the operation to switch the PWA setting on/off was performed, it is switched to on (PWA enabled).

S814では、開発者用端末100は、PWAの設定がオンであるか否かを判定する。オンである場合にはS815に進み、オフである場合にはS818に進む。S812でYesと判定されてからS814に進んだ場合には、S814の判定は、PWAの設定のオン/オフを切り替える操作の結果、オンになったかどうかの判定である。 In S814, the developer terminal 100 determines whether the PWA setting is on or not. If it is on, the process proceeds to S815, and if it is off, the process proceeds to S818. If S812 is determined as Yes and then S814 is proceeded to, the determination in S814 is whether the PWA setting has been turned on as a result of an operation to switch the PWA setting on/off.

S815では、開発者用端末100は、アプリ設定でイニシャルUI(アプリの認証完了後に最初に表示するUI画面、トップ画面、トップページ)に設定されているUI画面の定義情報を参照し、PWAのインストールを指示するUI部品(インストール部品)が配置済みであるか否かを判定する。この判定は、イニシャルUIに配置すると定義されているUI部品に、インストール部品を示す特定のUI部品IDがあるかどうかで判定する。イニシャルUIにインストール部品を配置済みである場合にはS818に進み、そうでない場合(未配置の場合)にはS816に進む。この判定は、インストール部品がいくつも配置されてしまうことを防止するための判定である。 In S815, the developer terminal 100 references the definition information of the UI screen set in the initial UI (the UI screen, top screen, top page, that is the first UI screen to be displayed after the completion of application authentication) in the application settings, and determines whether or not a UI component (installation component) that instructs the installation of the PWA has been placed. This determination is made based on whether or not a specific UI component ID indicating an installation component is present in the UI component defined to be placed in the initial UI. If an installation component has been placed in the initial UI, the process proceeds to S818, and if not (if not yet placed), the process proceeds to S816. This determination is made to prevent multiple installation components from being placed.

S816では、開発者用端末100は、イニシャルUIに設定されているUI画面に、インストール部品を自動的に配置する。インストール部品はクリックイベントが予め定められたUI部品であり、対象のアプリのPWAをインストールするというイベントが予め定められている。インストール部品に設定されたクリックイベントは、アプリユーザー用端末201が実行する処理であり、他のUI部品のアクションボードに設定できる、実行環境400が実行すべき処理とは異なる。インストール部品のアクションは変更や削除不可能であり、インストール部品についてはアクションボードを開けないものとする。また、インストール部品はUI部品であるため、UIエディタでイニシャルUIを表示させ、インストール部品の配置される位置や大きさ、色など、プロパティボックスで変更可能な内容を変更することが可能である。なお、構築後のアプリにおいて、インストール部品は、イニシャルUIを表示しているアプリユーザー用端末201にPWAがインストール済みであれば表示されず、未インストールであれば表示されるようにアプリユーザー用端末201によって制御される。 In S816, the developer terminal 100 automatically places the installation component on the UI screen set as the initial UI. The installation component is a UI component with a predefined click event, and an event of installing the PWA of the target application is predefined. The click event set in the installation component is a process executed by the application user terminal 201, and is different from the process that can be set in the action board of other UI components and should be executed by the execution environment 400. The action of the installation component cannot be changed or deleted, and the action board cannot be opened for the installation component. In addition, since the installation component is a UI component, it is possible to display the initial UI in a UI editor and change the contents that can be changed in the property box, such as the position, size, and color of the installation component. In addition, in the constructed application, the installation component is controlled by the application user terminal 201 so that if a PWA has already been installed in the application user terminal 201 displaying the initial UI, it is not displayed, and if it has not been installed, it is displayed.

S817では、開発者用端末100は、イニシャルUIを変更する操作があったか否かを判定する。具体的には、一般設定831を選択した上で、設定領域840に表示されるイニシャルUIの設定項目(不図示)に対する設定変更操作があったか否かを判定する。イニシャルUIを変更する設定変更操作があった場合にはS813に進み、設定変更操作に応じてイニシャルUIの設定を変更し、定義情報を更新する。その後、S814でPWAの設定がオンであると判定し、S815で変更後のイニシャルUIにインストール部品を配置済みでないと判定した場合には、S816で、変更後のイニシャルUIにインストール部品を自動的に配置する。かを判定し、オンであったイニシャルUIを変更する設定変更操作がない場合にはS818へ進む。 In S817, the developer terminal 100 determines whether or not an operation to change the initial UI has been performed. Specifically, after selecting general settings 831, it determines whether or not a setting change operation has been performed on the setting item (not shown) of the initial UI displayed in the setting area 840. If a setting change operation to change the initial UI has been performed, the process proceeds to S813, where the initial UI setting is changed according to the setting change operation, and the definition information is updated. Thereafter, in S814, it is determined that the PWA setting is on, and if in S815, it is determined that an installation component has not been placed in the changed initial UI, in S816, an installation component is automatically placed in the changed initial UI. It is determined whether or not an operation to change the initial UI has been performed, and if there has been no setting change operation to change the initial UI that was on, the process proceeds to S818.

S818では、開発者用端末100は、開発者からの操作に応じてその他のアプリ設定を行う。例えば、言語設定(日本語表示にするか、英語表示にするか)などを設定可能である。 In S818, the developer terminal 100 performs other application settings in response to operations by the developer. For example, language settings (whether to display in Japanese or English) can be set.

S819では、開発者用端末100は、アプリ設定を終了してアプリ設定画面を閉じる操作があったか否かを判定する。アプリ設定を終了しない場合はS811に進んで処理を繰り返し、アプリ設定を終了する場合はS801に進む。 In S819, the developer terminal 100 determines whether or not an operation has been performed to end the application settings and close the application settings screen. If the application settings are not to be ended, the process proceeds to S811 and the process is repeated, and if the application settings are to be ended, the process proceeds to S801.

S820では、開発者用端末100は、メインメニュー領域510に表示されたその他の選択肢が選択されたか否かを判定する。その他の選択肢が選択された場合はS821に進み、そうでない場合にはS822に進む。 In S820, the developer terminal 100 determines whether or not another option displayed in the main menu area 510 has been selected. If another option has been selected, the process proceeds to S821; if not, the process proceeds to S822.

S821では、開発者用端末100は、S820で選択された選択肢に応じた処理を行う。詳細は省略する。 In S821, the developer terminal 100 performs processing according to the option selected in S820. Details are omitted.

S822では、開発者用端末100は、終了操作が行われたか否かを判定する。終了操作が行われていない場合にはS801に進んで処理を繰り返し、終了操作があった場合には画面切替処理を終了する。 In S822, the developer terminal 100 determines whether or not an end operation has been performed. If an end operation has not been performed, the process proceeds to S801 and the process is repeated, and if an end operation has been performed, the screen switching process ends.

<保存処理>
図9(a)に、定義情報の記録先となる開発環境300が実行する保存処理(記録制御処理)のフローチャートを示す。この処理は、前述の図4のS422において、開発者用端末100から送信された、定義情報を受信したことに連動して実行する処理である。
<Preservation treatment>
9A shows a flowchart of the save process (record control process) executed by the development environment 300, which is the recording destination of the definition information. This process is executed in conjunction with receiving the definition information transmitted from the developer terminal 100 in S422 of FIG. 4 described above.

また、図10に、開発者用端末100、開発環境300、実行環境400、アプリユーザー用端末201に記録される情報の遷移を図示する。図10は、図9(a)、図9(b)のフローチャートの処理による情報の遷移の様子を模式的に表した図である。 Figure 10 also illustrates the transition of information recorded in the developer terminal 100, development environment 300, execution environment 400, and application user terminal 201. Figure 10 is a schematic diagram showing the transition of information due to the processing of the flowcharts in Figures 9(a) and 9(b).

図9(a)のS901では、開発環境300は、開発者用端末100から選択中アプリの定義情報(UI定義情報)を受信したか否かを判定する。ここで受信する定義情報は、前述の図4のS422において、開発者用端末100から送信されたものである。UI定義を受信した場合にはS902に進み、そうでない場合にはS901で待機する。 In S901 of FIG. 9(a), the development environment 300 determines whether or not it has received definition information (UI definition information) of the selected app from the developer terminal 100. The definition information received here is the information sent from the developer terminal 100 in S422 of FIG. 4 described above. If a UI definition has been received, the process proceeds to S902; if not, the process waits in S901.

図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によって受信される。 In FIG. 10, the UI definition information 1001 recorded in the memory 102 of the developer terminal 100 is the definition information received in S901. In this embodiment, the UI definition information is a plurality of text files written in JSON format with the file names "uiDef.json" and "appDef.json". Json is an abbreviation for JavaScript Object Notification, and is a document standard for handling values in JavaScript, and is a data description language. The UI definition information 1001 includes various settings related to the application, such as the initial UI, and information defining the information (position, size, color, etc.) of the UI components (UI parts) for each UI screen. In particular, "appDef.json" records the contents set in the application setting process of S810 to S819, and also records the settings related to PWA (PWA on/off setting, and settings related to the manifest when PWA is on). In addition, the UI definition information 1001 includes an action description portion 1002. This action description portion 1002 is a character string entered into the action board of each UI part or canvas, or into the function setting screen (including the creation function setting screen). The action description portion 1002 includes an action described in JavaScript, and a function definition in Json format that describes the contents set in the function setting screen without entering JavaScript. This UI definition information 1001 is sent (uploaded) from the developer terminal 100 to the development environment 300, and is received by the development environment 300 in S901.

S902では、開発環境300は、UI定義情報をストレージ320のうち、ログイン開発者用の領域に保存する。この結果、図10に示す通り、開発環境300にUI定義情報1011が記録される。この保存の直後においては、開発環境300に記録されたUI定義情報1011は、開発者用端末100に記録されたUI定義情報1001と同じ情報である。 In S902, the development environment 300 saves the UI definition information in an area of the storage 320 for the logged-in developer. As a result, as shown in FIG. 10, the UI definition information 1011 is recorded in the development environment 300. Immediately after this saving, the UI definition information 1011 recorded in the development environment 300 is the same information as the UI definition information 1001 recorded in the developer terminal 100.

S903では、開発環境300は、S902で保存したUI定義情報からアクション情報を抽出する。すなわち、開発環境300は、図10のUI定義情報1011からアクション記述部分1012を抽出する。 In S903, the development environment 300 extracts action information from the UI definition information saved in S902. That is, the development environment 300 extracts the action description portion 1012 from the UI definition information 1011 in FIG. 10.

S904では、開発環境300は、S903で抽出したアクション記述部分1012から、実行環境用プログラムを生成して、ストレージ320のうちログイン開発者用の領域に保存する。すなわち、図10のUI定義情報1011から抽出したアクション記述部分1012に基づいて、実行環境用プログラム1013を生成して開発環境内に保存する。実行環境用プログラム1013はJavaScriptで記述されたテキストデータである。実行環境用プログラム1013は、アクション記述部分1012から取得したアクションボードに入力されていた文字列に加えて、実行環境の実行エンジンで実行するために必要な補充部分を追加したプログラムである。 In S904, the development environment 300 generates an execution environment program from the action description portion 1012 extracted in S903 and saves it in an area of the storage 320 for the logged-in developer. That is, based on the action description portion 1012 extracted from the UI definition information 1011 in FIG. 10, an execution environment program 1013 is generated and saved in the development environment. The execution environment program 1013 is text data written in JavaScript. The execution environment program 1013 is a program that adds supplementary parts necessary for execution by the execution engine of the execution environment to the character strings entered in the action board obtained from the action description portion 1012.

S905では、開発環境300は、S902で保存したUI定義情報のうち。PWAの設定を読み出し、PWAがオンであるか否かを判定する。オンである場合には、S907に進み、そうでない場合にはS906に進む。 In S905, the development environment 300 reads the PWA settings from the UI definition information saved in S902, and determines whether the PWA is on. If it is on, the process proceeds to S907, and if it is not, the process proceeds to S906.

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をインストールする、という動作付けを行う情報は含まれない。 In S906, the development environment 300 generates the client UI definition information 1015. The client UI definition information 1015 is assumed to be a Json format file with the file name "ClientDef.json", for example. The client UI definition information 1015 includes, as information acquired from the UI definition information 1011, various setting information related to the application, such as the initial UI, information on the UI parts (components) for each UI screen (such as the contents set by the UI part ID and properties, the layout position and size of the UI parts), the canvas action identifier, and the UI part action identifier. The client UI definition information 1015 also records the input/output item definition for each action (definition of which parts are in each input item and output item). The character string (the source code of the action) written in JavaScript (programming language) written on the action board itself is not recorded. That is, the generated client UI definition information 1015 includes the action identifier and information on the input/output item definition for each action, but does not include information indicating the action content. Also, when the PWA is set to off, it does not include information for performing an action such as installing the PWA in response to the operation of a display item that instructs the installation of the PWA as a button click action on the client terminal (application user terminal 201).

S905では、開発環境300は、S902で保存したUI定義情報を読み込み、PWAインストール用のアイテム(AppBarのドロワーメニューに含まれるPWAインストールの項目または、イニシャルUIに配置されるインストール部品)を配置する設定となっているか否かを判定する。PWAインストール用のアイテムを配置する設定となっている場合はS908に進み、そうでない場合にはS909に進む。 In S905, the development environment 300 reads the UI definition information saved in S902 and determines whether or not the setting is set to place an item for PWA installation (a PWA installation item included in the AppBar drawer menu or an installation component placed in the initial UI). If the setting is set to place an item for PWA installation, the process proceeds to S908; if not, the process proceeds to S909.

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をインストールするように制御される。 In S908, the development environment 300 generates the client UI definition information 1015 in the same manner as in S906. In addition, in S908, the development environment 300 sets (records) the installation operation information 1026 for the PWA installation item (at least one of the PWA installation item included in the AppBar drawer menu and the installation component placed in the initial UI) that is set to be placed in the client UI definition information 1015. The installation operation information 1026 is information that performs an operation of installing the PWA in response to the operation of a display item that instructs the PWA installation as a button click operation in the client terminal (app user terminal 201). In other words, it is operation information for controlling the app user terminal 201 to install the PWA when the PWA installation item is operated in the app user terminal 201 that displays the application screen. When the constructed application is executed, the application user terminal 201 refers to this operation information and is controlled to install the PWA in response to the operation of the item for installing the PWA.

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をインストールするように制御される。 In S909, the development environment 300 generates the client UI definition information 1015 in the same manner as in S906. In addition, in S909, the development environment 300 sets (records) definition information for displaying a pop-up recommending the installation of the PWA in the client UI definition information 1015. This is information required by the client terminal (app user terminal 201) to display a pop-up 1130 described later in FIG. 11(c). In addition, in S909, the development environment 300 sets (records) installation operation information 1026 for an item for PWA installation (an install button 1133 described later included in the recommended pop-up) that is set to be placed in the client UI definition information 1015. The installation operation information 1026 is information that performs an operation of installing the PWA in response to the operation of a display item that instructs the installation of the PWA as a button click operation in the client terminal (app user terminal 201). When the constructed application is executed, the application user terminal 201 refers to this operation information and is controlled to install the PWA in response to the operation of the item for installing the PWA.

この結果、図10に示す通り、開発環境300にUI定義情報1011、実行環境用プログラム1012,クライアント用UI定義情報1015が記録される。 As a result, as shown in FIG. 10, UI definition information 1011, execution environment program 1012, and client UI definition information 1015 are recorded in the development environment 300.

<デプロイ処理>
図9(b)に、デプロイ処理のフローチャートを示す。この処理は、開発環境300が実行する処理であり、図4のS426で開発者用端末100から送信されたデプロイ要求を開発環境300が受信すると開始される処理である。
<Deployment process>
9B shows a flowchart of the deployment process. This process is executed by the development environment 300 and starts when the development environment 300 receives the deployment request sent from the developer terminal 100 in S426 of FIG.

S911では、開発環境300は、開発環境300のストレージ320のうち、ログインしている開発者の開発者領域に保存されたアプリの定義情報のうち、デプロイ対象となる選択中アプリの定義情報を取得する。ここで取得する定義情報には、UI定義情報1011、実行環境用プログラム1013,クライアント用UI定義情報1015が含まれる。 In S911, the development environment 300 acquires the definition information of the selected application to be deployed from the definition information of the application stored in the developer area of the logged-in developer in the storage 320 of the development environment 300. The definition information acquired here includes the UI definition information 1011, the program for execution environment 1013, and the UI definition information for client 1015.

S912では、開発環境300は、UI定義情報1011を参照し、PWAがオンの設定になっているか否かを判定する。PWAがオンである場合にはS914に進み、そうでない場合にはS913に進む。 In S912, the development environment 300 refers to the UI definition information 1011 and determines whether the PWA is set to on. If the PWA is on, the process proceeds to S914; if not, the process proceeds to S913.

S913では、開発環境300は、UI定義情報1011を参照し、クライアント用プログラム1027を生成し、デプロイ対象に含める。ここで生成するクライアント用プログラム1027は、選択中実行環境にデプロイされる、図1に示したクライアント用プログラム422、456c、466c、476c・・・のいずれかである。ここで生成するクライアント用プログラム1027は、実行環境400にアクセスしたアプリユーザー用端末200、201に対して送信される、アプリユーザー用端末200、201において実行すべきプログラム(HTMLのソースコードやJavaScriptのソースコードなど)である。S913で生成されるクライアント用プログラムには、PWAがオフなので、PWAのマニフェスト情報は含まれない。 In S913, the development environment 300 references the UI definition information 1011, generates a client program 1027, and includes it in the deployment target. The client program 1027 generated here is any one of the client programs 422, 456c, 466c, 476c, ... shown in FIG. 1, which is deployed to the selected execution environment. The client program 1027 generated here is a program (such as HTML source code or JavaScript source code) to be executed on the application user terminal 200, 201, which is sent to the application user terminal 200, 201 that has accessed the execution environment 400. The client program generated in S913 does not include PWA manifest information because PWA is off.

S914では、開発環境300は、UI定義情報1011を参照し、クライアント用プログラム1027を生成し、デプロイ対象に含める。ここで生成するクライアント用プログラム1027は、選択中実行環境にデプロイされる、図1に示したクライアント用プログラム422、456c、466c、476c・・・のいずれかである。ここで生成するクライアント用プログラムは、実行環境400にアクセスしたアプリユーザー用端末200、201に対して送信される、アプリユーザー用端末200、201において実行すべきプログラム(HTMLのソースコードやJavaScriptのソースコードなど)である。S914で生成されるクライアント用プログラム1027には、PWAがオンなので、PWAのマニフェスト情報(前述の設定項目842~848で設定された内容)が含まれる。 In S914, the development environment 300 references the UI definition information 1011, generates a client program 1027, and includes it in the deployment target. The client program 1027 generated here is any one of the client programs 422, 456c, 466c, 476c, ... shown in FIG. 1, which is deployed to the selected execution environment. The client program generated here is a program (such as HTML source code or JavaScript source code) to be executed on the application user terminal 200, 201, which is sent to the application user terminal 200, 201 that has accessed the execution environment 400. Since the PWA is on, the client program 1027 generated in S914 includes PWA manifest information (contents set in the above-mentioned setting items 842 to 848).

S915では、開発環境300は、選択中実行環境がマルチテナント実行環境であるか否かを判定する。マルチテナント実行環境である場合にはS916に進み、そうでない場合(シングルテナント実行環境である場合)にはS917に進む。 In S915, the development environment 300 determines whether the selected execution environment is a multi-tenant execution environment. If it is a multi-tenant execution environment, the process proceeds to S916. If it is not (if it is a single-tenant execution environment), the process proceeds to S917.

S916では、開発環境300は、マルチテナント実行環境410のストレージ420のうち、ログインしている開発者の開発者領域(専用フォルダ)に、選択中アプリに関するデプロイ対象の情報を記憶させる。より具体的には、デプロイ対象の情報をマルチテナント実行環境410に送信し、ログインしている開発者の開発者領域(開発者毎のフォルダ)に記録するようにマルチテナント実行環境410に指示する。この記録が問題なく完了するとデプロイ成功となる。 At S916, the development environment 300 stores information on the deployment target related to the selected app in the developer area (dedicated folder) of the logged-in developer in the storage 420 of the multitenant execution environment 410. More specifically, the development environment 300 transmits information on the deployment target to the multitenant execution environment 410 and instructs the multitenant execution environment 410 to record it in the developer area (folder for each developer) of the logged-in developer. If this recording is completed without any problems, the deployment is successful.

S917では、開発環境300は、選択中実行環境であるシングルナント実行環境のストレージ(シングルテナント実行環境のバケットの直下のフォルダ)に、デプロイ対象の情報を記憶させる。より具体的には、デプロイ対象の情報を選択中実行環境であるシングルナント実行環境に送信し、バケットの直下のフォルダに記録するようにシングルテナント実行環境に指示する。この記録が問題なく完了するとデプロイ成功となる。 In S917, the development environment 300 stores the information to be deployed in the storage of the single-tenant execution environment, which is the currently selected execution environment (a folder directly under the bucket of the single-tenant execution environment). More specifically, the development environment 300 sends the information to be deployed to the single-tenant execution environment, which is the currently selected execution environment, and instructs the single-tenant execution environment to record it in a folder directly under the bucket. If this recording is completed without any problems, the deployment is successful.

S918では、開発環境300は、デプロイが失敗したか否かを判定する。デプロイが失敗した場合にはS919に進み、そうでない場合にはS920に進む。通信障害などで定義情報を実行環境に送信・記録できなかった場合にはデプロイ失敗となることがある。 In S918, the development environment 300 determines whether the deployment has failed. If the deployment has failed, the process proceeds to S919, otherwise the process proceeds to S920. The deployment may fail if the definition information cannot be sent or recorded in the execution environment due to a communication failure or other reason.

S919では、開発環境300は、デプロイが失敗した旨を示す失敗通知を開発者用端末100に送信する。 In S919, the development environment 300 sends a failure notification to the developer terminal 100 indicating that the deployment has failed.

S920では、開発環境300は、デプロイが完了(成功)したか否かを判定する。デプロイが完了した場合にはS921に進み、そうでない場合にはS918に進む。 In S920, the development environment 300 determines whether the deployment has been completed (successful). If the deployment has been completed, the process proceeds to S921; if not, the process proceeds to S918.

S921では、開発環境300は、デプロイ済みのアプリのURLの情報(実行環境にデプロイ済のアプリにアクセスするためのアクセス先の情報)を含むデプロイの成功通知を開発者用端末100に送信する。 At S921, the development environment 300 sends a deployment success notification to the developer terminal 100, including information on the URL of the deployed app (information on the access destination for accessing the app deployed to the execution environment).

図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にデプロイ(配置、保存、記録、構築)される。この状態が、アプリ生成された状態である。 The description will be given with reference to FIG. 10. The UI definition information 1011, the program for execution environment 1013, and the UI definition information for client 1015 saved in the development environment 300 by the save process described in FIG. 9A are deployed (placed, saved, recorded, constructed) in the execution environment 400 by the deploy process (processing of S916 or S917). As a result, as shown in FIG. 10, the UI definition information 1021, the program for execution environment 1023, and the UI definition information for client 1025 are recorded in the execution environment 400. The UI definition information 1021 and the program for execution environment 1023 in the execution environment 400 are the same information as the UI definition information 1011 and the program for execution environment 1013, respectively. In addition, the program for client 1027 generated by the process of S913 or S914 is deployed (placed, saved, recorded, constructed) in the execution environment 400 by the deploy process (processing of S916 or S917). This is the state after the app has been generated.

アプリの実行時には、アプリユーザー用端末201が実行環境400にアクセスし、クライアント用UI定義情報1025とクライアント用プログラム1027をダウンロードし、アプリユーザー用端末201にクライアント用UI定義情報1035とクライアント用プログラム1037として記録する。アプリの実行時には、アプリユーザー用端末201は、クライアント用UI定義情報1035とクライアント用プログラム1037に基づき、図11で説明するPWAに関する制御を行う。
<アプリ実行時の処理例>
図11(a)~(c)に、PWAの設定をオンとして実行環境400に構築(デプロイ)したアプリを、アプリユーザー用端末201(モバイル端末)からアクセスして実行し、アプリユーザー用端末201のディスプレイにアプリの画面を表示した場合の表示例を示す。
When an application is executed, application user terminal 201 accesses execution environment 400, downloads client UI definition information 1025 and client program 1027, and records them in application user terminal 201 as client UI definition information 1035 and client program 1037. When an application is executed, application user terminal 201 performs control related to the PWA described in FIG. 11 based on client UI definition information 1035 and client program 1037.
<Example of processing when the app is running>
Figures 11 (a) to (c) show examples of the display when an app that has been built (deployed) in execution environment 400 with the PWA setting turned on is accessed and executed from app user terminal 201 (mobile terminal), and the app screen is displayed on the display of app user terminal 201.

図11(a)は、PWAをオンとし、AppBarとインストール部品の双方を配置したUI画面をイニシャルUIとしたアプリの、イニシャルUI1100の表示例である。イニシャルUI1100には、前述したS816の処理によって自動的に配置されたUI部品であるインストール部品1110が表示されている。インストール部品1110が押下されると、アプリユーザー用端末201は、インストールの動作情報1036と、クライアント用プログラム1037に含まれるマニフェスト情報とに基づいて、PWAをインストールするように制御する。また、AppBar1120が表示されている。AppBar11120に含まれるアイコン1121が押下されると、要素画面としてのドロワーメニュ1122が表示される。 Figure 11 (a) is a display example of the initial UI 1100 of an application in which the PWA is turned on and the initial UI is a UI screen on which both the AppBar and the installation component are arranged. The initial UI 1100 displays the installation component 1110, which is a UI component that is automatically arranged by the processing of S816 described above. When the installation component 1110 is pressed, the application user terminal 201 performs control to install the PWA based on the installation operation information 1036 and the manifest information included in the client program 1037. Also, the AppBar 1120 is displayed. When the icon 1121 included in the AppBar 11120 is pressed, a drawer menu 1122 is displayed as an element screen.

図11(b)は、図11(a)の状態からアイコン1121が押下されてドロワーメニュー1122が表示された場合の表示例である。ドロワーメニュー1122には、S411の処理によって配置されたPWAインストールの項目1123が表示される。PWAインストールの項目1123には、「Recommend」と記載された強調アイコン1123aが付して表示され、ドロワーメニュー1122に含まれる他のメニューに比べて強調して表示される。なお、強調表示の仕方は強調アイコン1123aを付して表示する方法に限らず、項目1123の色を他のアイコンと異なる色(例えば赤)にする、太字にする、下線を付す、斜字にするなど、他の方法であっても良い。項目1123が押下されると、アプリユーザー用端末201は、インストールの動作情報1036と、クライアント用プログラム1037に含まれるマニフェスト情報とに基づいて、PWAをインストールするように制御する。なお、PWAのインストールはネイティブアプリのインストールとは異なる処理であり、マニフェスト情報を参照して行う処理であり、プッシュ通知の機能を利用可能とする処理、オフラインでも動作可能とする処理、ホーム画面へアイコンの表示を行うための処理のうち少なくとも1つを含む処理であるものとする。 11B is a display example in which the icon 1121 is pressed from the state of FIG. 11A to display the drawer menu 1122. The PWA installation item 1123 arranged by the processing of S411 is displayed in the drawer menu 1122. The PWA installation item 1123 is displayed with an emphasis icon 1123a with "Recommend" written on it, and is displayed with emphasis compared to other menus included in the drawer menu 1122. Note that the method of highlighting is not limited to the method of displaying with the emphasis icon 1123a, and other methods such as making the color of the item 1123 different from other icons (e.g., red), making it bold, underlining, or italicizing it may be used. When the item 1123 is pressed, the application user terminal 201 controls to install the PWA based on the installation operation information 1036 and the manifest information included in the client program 1037. Note that installing a PWA is a process that differs from installing a native app, and is performed by referencing manifest information, and includes at least one of the following processes: a process that enables the push notification function to be used, a process that enables offline operation, and a process for displaying an icon on the home screen.

図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をインストールするように制御する。 Figure 11 (c) is a display example of the initial UI 1101 of an application in which the PWA is turned on and a UI screen on which neither the AppBar nor the installation component is placed is set as the initial UI. When the initial UI 1101 is displayed, a pop-up 1130 (dialog) is superimposed on the initial UI 1101. The pop-up 1130 displays a message 1131 indicating that the PWA is available and prompting the user to press an install button to install it. In addition, a check box 1132 is displayed to accept an instruction to set the pop-up 1130 not to be displayed the next time the initial UI 1101 is displayed. If this check box 1132 is checked, the application user terminal 201 controls so that the pop-up 1130 is not displayed from the next time. In addition, the pop-up 1130 displays an install button 1133 to accept an instruction to install the PWA. The install button 1133 is set to the same action as the install component 1110, and when the install button 1133 is pressed, the application user terminal 201 performs control to install the PWA based on the installation operation information 1036 and the manifest information included in the client program 1037.

なお、本実施形態では、イニシャルUIにインストール部品が配置されておらず、かつ、インストール項目の配置されたAppbarが配置されていない場合にポップアップ1130を表示させるようなアプリを生成する例を説明したが、これに限るものではない。イニシャルUIにインストール部品が配置されている場合、インストール項目の配置されたAppbarが配置されている場合の少なくとも一方の場合にも、ポップアップ1130を表示させるようなアプリを生成してもよい。 In the present embodiment, an example has been described in which an app is generated that displays the pop-up 1130 when no installation component is placed in the initial UI and no appbar containing installation items is placed, but this is not limiting. An app may be generated that displays the pop-up 1130 when at least one of the following cases is present: when an installation component is placed in the initial UI and when an appbar containing installation items is placed.

以上説明した本実施形態によれば、アプリケーションソフトウェアのPWAを利用可能な場合に、ユーザーがPWAを利用可能であることを見落とす可能性を低減し、ユーザーがより容易にPWAを利用可能とするアプリケーションを構築することが可能となる。例えば、構築されたWebアプリケーションをブラウザで実行している際に、ブラウザの機能として、実行中のWebアプリケーションにマニフェスト情報がある場合に対応するPWAが利用可能である旨を通知する機能がなければ、アプリのユーザーはPWAが利用可能であることに気付かずに、PWAを利用する機会を損失してしまう場合がある。これに対し本実施形態によれば、ブラウザの機能によらず、アプリケーションの画面内に、PWAを利用可能であることを示す表示アイテムやポップアップを表示するため、ユーザーがPWAを利用可能であることを見落とす可能性を低減することができる。また、複雑な操作を行わなくとも、インストールの動作情報1036が設定されたアプリケーション内の表示アイテムを操作するだけで、簡単にPWAのインストールを行うことができる。 According to the present embodiment described above, when the PWA of the application software is available, it is possible to build an application that reduces the possibility that the user will overlook that the PWA is available, and allows the user to use the PWA more easily. For example, when the built Web application is executed in a browser, if the browser does not have a function to notify that the corresponding PWA is available when the manifest information is present in the executed Web application, the user of the application may miss the opportunity to use the PWA without realizing that the PWA is available. In contrast, according to the present embodiment, a display item or a pop-up indicating that the PWA is available is displayed on the application screen regardless of the browser's function, so that the possibility that the user will overlook that the PWA is available can be reduced. In addition, the PWA can be easily installed without performing complicated operations, simply by operating a display item in the application in which the installation operation information 1036 is set.

なお、上述の各フローチャートで説明した各種制御は1つのハードウェアが行ってもよいし、複数のハードウェア(例えば、複数のプロセッサーや回路)が処理を分担することで、装置全体の制御を行ってもよい。
また、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能であ
The various controls described in each of the above flowcharts may be performed by a single piece of hardware, or the entire device may be controlled by multiple pieces of hardware (e.g., multiple processors or circuits) sharing the processing.
In addition, although the present invention has been described in detail based on the preferred embodiments, the present invention is not limited to these specific embodiments, and various forms within the scope of the gist of the present invention are also included in the present invention. Furthermore, each of the above-mentioned embodiments merely shows one embodiment of the present invention, and each embodiment can be appropriately combined.

(他の実施形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
Other Embodiments
The present invention can also be realized by executing the following process. That is, software (programs) that realize the functions of the above-described embodiments are supplied to a system or device via a network or various storage media, and the computer (or CPU, MPU, etc.) of the system or device reads and executes the program code. In this case, the program and the storage medium on which the program is stored constitute the present invention.

100:開発者用端末、200:アプリユーザー用端末、201:アプリユーザー用端末201、300:開発環境、400:実行環境 100: Developer terminal, 200: App user terminal, 201: App user terminal 201, 300: Development environment, 400: Execution environment

Claims (19)

ユーザーの操作に基づいてアプリケーションに関する定義情報を記録するように制御する記録制御手段と、
前記アプリケーションに対応するPWAのインストールに用いる特定の情報を生成する生成手段と、
前記アプリケーションの画面において、前記PWAのインストールを促す特定の表示を行うアプリケーションが構築されるように制御する制御手段と、
を有することを特徴とする情報処理システム。
a recording control means for controlling recording of definition information relating to an application based on a user's operation;
A generating means for generating specific information used for installing a PWA corresponding to the application;
A control means for controlling the construction of an application that displays a specific message on a screen of the application to prompt the user to install the PWA;
An information processing system comprising:
前記制御手段は、前記アプリケーションの画面に、前記特定の表示として、前記PWAのインストールを指示する表示アイテムが表示されるアプリケーションが構築されるように制御することを特徴とする請求項1に記載の情報処理システム。 The information processing system according to claim 1, characterized in that the control means controls the construction of an application in which a display item instructing the installation of the PWA is displayed on the screen of the application as the specific display. 前記記録制御手段は、前記アプリケーションの開発の際にPWAを有効とする設定に変更されたことに応じて、前記表示アイテムを表示する設定となるように前記定義情報に記録するように制御することを特徴とする請求項2に記載の情報処理システム。 The information processing system according to claim 2, characterized in that the recording control means controls the definition information to record a setting that displays the display item in response to a change to a setting that enables PWA during development of the application. 前記PWAのインストールは、前記アプリケーションの画面を表示するクライアント装置において、前記特定の情報に基づき、プッシュ通知の機能を利用可能とする処理、オフラインでも動作可能とする処理、ホーム画面へアイコンの表示を行うための処理のうち少なくとも1つを含む処理であることを特徴とする請求項2に記載の情報処理システム。 The information processing system according to claim 2, characterized in that the installation of the PWA includes at least one of the following processes: a process for enabling the use of a push notification function based on the specific information on a client device that displays the screen of the application; a process for enabling the application to operate offline; and a process for displaying an icon on a home screen. 前記制御手段は、前記アプリケーションで表示されるトップ画面に、前記表示アイテムが表示されるアプリケーションが構築されるように制御することを特徴とする請求項2に記載の情報処理システム。 The information processing system according to claim 2, characterized in that the control means controls the construction of an application in which the display items are displayed on a top screen displayed by the application. 前記トップ画面は、前記アプリケーションに関する認証完了後に最初に表示される画面であることを特徴とする請求項5に記載の情報処理システム。 The information processing system according to claim 5, characterized in that the top screen is the first screen displayed after authentication for the application is completed. 前記記録制御手段は、前記トップ画面が変更されたことに応じて、前記表示アイテムを表示する設定となるように前記定義情報に記録するように制御することを特徴とする請求項5に記載の情報処理システム。 The information processing system according to claim 5, characterized in that the recording control means controls the definition information to record a setting to display the display item in response to a change to the top screen. 前記制御手段は、前記アプリケーションの複数の画面または複数の機能に対応する選択肢とともに、前記表示アイテムが表示されるアプリケーションが構築されるように制御することを特徴とする請求項2に記載の情報処理システム。 The information processing system according to claim 2, characterized in that the control means controls the construction of an application in which the display items are displayed together with options corresponding to multiple screens or multiple functions of the application. 前記制御手段は、前記アプリケーションのトップ画面に重畳して前記表示アイテムが表示されるアプリケーションが構築されるように制御することを特徴とする請求項2に記載の情報処理システム。 The information processing system according to claim 2, characterized in that the control means controls to construct an application in which the display items are displayed superimposed on the top screen of the application. 前記制御手段は、前記定義情報に基づき、前記アプリケーションの画面を表示するクライアント装置に送信される情報であって、前記クライアント装置において前記表示アイテムが操作された場合に、前記クライアント装置がPWAのインストールを行うように制御するための動作情報を生成するように制御することを特徴とする請求項2に記載の情報処理システム。 The information processing system according to claim 2, characterized in that the control means controls the generation of operation information, which is information to be transmitted to a client device that displays a screen of the application based on the definition information, and is used to control the client device to install a PWA when the display item is operated on the client device. 前記制御手段は、前記定義情報に基づき、PWAを有効とする設定となっている場合に前記特定の表示を行うアプリケーションが構築されるように制御し、PWAを有効とする設定となっていない場合には前記特定の表示を行わないアプリケーションが構築されるように制御することを特徴とする請求項1に記載の情報処理システム。 The information processing system according to claim 1, characterized in that the control means controls the construction of an application that displays the specific display when the PWA is set to be enabled based on the definition information, and controls the construction of an application that does not display the specific display when the PWA is not set to be enabled. 前記特定の情報は、PWAのマニフェストの情報を含むことを特徴とする請求項1に記載の情報処理システム。 The information processing system according to claim 1, characterized in that the specific information includes PWA manifest information. 前記マニフェストの情報は、前記アプリケーションに関する説明文、ホーム画面における前記アプリケーションのアイコンに使用する画像の設定の少なくとも1つを含むことを特徴とする請求項12に記載の情報処理システム。 The information processing system according to claim 12, characterized in that the manifest information includes at least one of a description of the application and an image setting to be used for the application's icon on the home screen. 前記生成手段は、前記定義情報に基づいて前記特定の情報を生成することを特徴とする請求項1に記載の情報処理システム。 The information processing system according to claim 1, characterized in that the generating means generates the specific information based on the definition information. 前記生成手段は、前記定義情報において、PWAを有効とする定義情報が含まれている場合に、前記特定の情報を含む、前記アプリケーションの画面を表示するクライアント装置で利用するためのクライアント用プログラムを生成し、PWAを有効とする定義情報が含まれていない場合には、前記特定の情報を含まない、前記クライアント装置で利用するためのクライアント用プログラムを生成することを特徴とする請求項1に記載の情報処理システム。 The information processing system according to claim 1, characterized in that the generating means generates a client program for use on a client device that displays a screen of the application, including the specific information, when the definition information includes definition information that enables PWA, and generates a client program for use on the client device that does not include the specific information, when the definition information does not include definition information that enables PWA. 前記記録制御手段は、前記アプリケーションの開発画面におけるユーザー操作に基づいて、構築される前記アプリケーションで表示される画面に配置するコンポーネントの定義を記録するように制御することを特徴とする請求項1に記載の情報処理システム。 The information processing system according to claim 1, characterized in that the recording control means controls to record definitions of components to be placed on a screen displayed by the application being constructed based on user operations on the development screen of the application. 前記アプリケーションはWebアプリケーションであることを特徴とする請求項1に記載の情報処理システム。 The information processing system according to claim 1, characterized in that the application is a web application. ユーザーの操作に基づいてアプリケーションに関する定義情報を記録するように制御する記録制御ステップと、
前記アプリケーションに対応するPWAのインストールに用いる特定の情報を生成する生成ステップと、
前記アプリケーションの画面において、前記PWAのインストールを促す特定の表示を行うアプリケーションが構築されるように制御する制御ステップと、
ことを特徴とする情報処理システムの制御方法。
a recording control step of controlling so as to record definition information relating to an application based on a user operation;
A generating step of generating specific information used for installing a PWA corresponding to the application;
a control step of controlling to construct an application that displays a specific message on a screen of the application to prompt the user to install the PWA;
23. A method for controlling an information processing system comprising:
少なくとも1つのコンピュータを、請求項1乃至17のいずれか1項に記載された情報処理システムの各手段として機能させるためのプログラム。 A program for causing at least one computer to function as each of the means of the information processing system described in any one of claims 1 to 17.
JP2022210128A 2022-12-27 2022-12-27 Information processing system, control method for information processing system, and program Pending JP2024093620A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022210128A JP2024093620A (en) 2022-12-27 2022-12-27 Information processing system, control method for information processing system, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022210128A JP2024093620A (en) 2022-12-27 2022-12-27 Information processing system, control method for information processing system, and program

Publications (1)

Publication Number Publication Date
JP2024093620A true JP2024093620A (en) 2024-07-09

Family

ID=91805128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022210128A Pending JP2024093620A (en) 2022-12-27 2022-12-27 Information processing system, control method for information processing system, and program

Country Status (1)

Country Link
JP (1) JP2024093620A (en)

Similar Documents

Publication Publication Date Title
JP5169174B2 (en) Image forming apparatus, display control method, and display control program
WO2019146047A1 (en) Information processing system, information processing method, and information processing device
JP6044400B2 (en) TERMINAL DEVICE, TERMINAL DEVICE PROGRAM, SYSTEM, AND SYSTEM CONTROL METHOD
CN102595013B (en) Image processing system, information processing system and information processing method
JP2008147961A (en) Image forming apparatus, screen managing method and screen management program
WO2019146045A1 (en) Information processing system, information processing method, and information processing device
WO2019146048A1 (en) Information processing system, information processing method, and information processing device
JP2024093620A (en) Information processing system, control method for information processing system, and program
JP6565894B2 (en) Server, information processing apparatus, processing method, and program
WO2019146049A1 (en) Information processing system, information processing method, and information processing device
JP2024075981A (en) Information processing system, control method for information processing system, and program
JP2024094552A (en) Information processing system, method for controlling information processing system, and program
US11665299B2 (en) Communication system, information processing method, and non-transitory recording medium
CN113821202B (en) Method, device and equipment for generating management software file and readable storage medium
JP2024076012A (en) Information processing system, control method of information processing system, and program
JP2024076013A (en) Information processing system, method for controlling information processing system, and program
JP2024076014A (en) Information processing system, control method for information processing system, and program
JP2024076005A (en) Information processing system, control method for information processing system, and program
JP2024076009A (en) Information processing system, control method of information processing system, and program
JP2024149184A (en) Information processing system, information processing method, and program
JP2024076016A (en) Information processing system, control method for information processing system, and program
JP2024076010A (en) Information processing system, control method for information processing system, and program
JP2024076007A (en) Information processing system and control method thereof, and program
JP2024076008A (en) Information processing system and control method thereof, and program
JP2024076011A (en) Information processing system, control method for information processing system, and program