JP6916843B2 - モジュール提供システム、モジュール提供方法、及びプログラム - Google Patents

モジュール提供システム、モジュール提供方法、及びプログラム Download PDF

Info

Publication number
JP6916843B2
JP6916843B2 JP2019132918A JP2019132918A JP6916843B2 JP 6916843 B2 JP6916843 B2 JP 6916843B2 JP 2019132918 A JP2019132918 A JP 2019132918A JP 2019132918 A JP2019132918 A JP 2019132918A JP 6916843 B2 JP6916843 B2 JP 6916843B2
Authority
JP
Japan
Prior art keywords
module
application development
application
selection
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.)
Active
Application number
JP2019132918A
Other languages
English (en)
Other versions
JP2021018527A (ja
Inventor
サデク ノバリ
サデク ノバリ
ケルビン カ シン チェング
ケルビン カ シン チェング
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.)
Rakuten Group Inc
Original Assignee
Rakuten Group 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 Rakuten Group Inc filed Critical Rakuten Group Inc
Priority to JP2019132918A priority Critical patent/JP6916843B2/ja
Publication of JP2021018527A publication Critical patent/JP2021018527A/ja
Application granted granted Critical
Publication of JP6916843B2 publication Critical patent/JP6916843B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、モジュール提供システム、モジュール提供方法、及びプログラムに関する。
従来、ソフトウェアベンダなどよって、アプリ開発用モジュールが開発者に提供されている。例えば、非特許文献1のウェブサイトでは、XR(Cross Reality)に関するアプリ開発用モジュールやAI(Artificial Intelligence)に関するアプリ開発用モジュールなどが多数用意されており、開発者は任意のアプリ開発用モジュールを選択してアプリを開発できるようになっている。非特許文献2−3のウェブサイトにおいても、種々のアプリ開発用モジュールが開発者に提供されている。
"Tools−GoogleAI",[online],[令和1年7月13日検索],インターネット,<URL:https://ai.google/tools/> "Amazon SageMaker" ,[online],[令和1年7月13日検索],インターネット,<URL:https://aws.amazon.com/jp/sagemaker/> "Built−In Plugins" ,[online],[令和1年7月13日検索],インターネット,<URL:https://docs.unrealengine.com/en-US/Engine/Plugins>
非特許文献1−3のようなウェブサイトでは、任意の組み合わせのアプリ開発用モジュールを選択可能としており、アプリ開発の自由度を高めている。しかしながら、開発者が複数のアプリ開発用モジュールを利用する場合、例えば、互いにサポートされているアプリ開発用モジュールを選択しなければアプリの動作に支障をきたすことがある。他にも例えば、互いに相性の良いアプリ開発用モジュールを選択しなければ、開発効率が悪くなることもある。この点、非特許文献1−3のウェブサイトでは、自由度が高い反面、適切なアプリ開発用モジュールの組み合わせを提供できないことがあった。
本発明は上記課題に鑑みてなされたものであって、その目的は、適切なアプリ開発用モジュールの組み合わせを提供することが可能なモジュール提供システム、モジュール提供方法、及びプログラムを提供することである。
上記課題を解決するために、本発明に係るモジュール提供システムは、複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発モジュールの選択を受け付けるモジュール選択受付手段と、選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定手段と、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を開発者に提供する提供手段と、を含むことを特徴とする。
本発明に係るモジュール提供方法は、複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発モジュールの選択を受け付けるモジュール選択受付ステップと、選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定ステップと、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を開発者に提供する提供ステップと、を含むことを特徴とする。
本発明に係るプログラムは、複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発モジュールの選択を受け付けるモジュール選択受付手段、選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定手段、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を開発者に提供する提供手段、としてコンピュータを機能させる。
本発明の一態様によれば、前記モジュール提供システムは、選択された前記アプリ開発用モジュールに関連付けられた複数の他のアプリ開発用モジュールを、開発者端末において選択可能に表示させる表示制御手段を更に含み、前記特定手段は、前記複数の他のアプリ開発用モジュールのうち、選択された少なくとも1つの他のアプリ開発用モジュールを特定する、ことを特徴とする。
本発明の一態様によれば、前記モジュール提供システムは、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、の間におけるライブラリの重複を排除する重複排除手段を更に含み、前記提供手段は、前記ライブラリの重複が排除された、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を前記開発者に提供する、ことを特徴とする。
本発明の一態様によれば、前記モジュール提供システムは、アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける環境選択受付手段を更に含み、前記重複排除手段は、選択された前記アプリ開発用モジュール、特定された前記他のアプリ開発用モジュール、及び選択された前記環境の間における前記ライブラリの重複を排除する、ことを特徴とする。
本発明の一態様によれば、前記モジュール提供システムは、アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける環境選択受付手段と、選択された前記環境における不要なライブラリを排除する不要排除手段と、を更に含み、前記提供手段は、不要な前記ライブラリが排除された、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を前記開発者に提供する、ことを特徴とする。
本発明の一態様によれば、前記モジュール提供システムは、アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける環境選択受付手段と、選択された前記環境に基づいて、選択された前記アプリ開発用モジュールと、特定された前記アプリ開発用モジュールと、の各々のコードを最適化するコード最適化手段と、を含み、前記提供手段は、前記コードが最適化された、前記選択されたアプリ開発用モジュールと、前記特定された他のアプリ開発用モジュールと、を前記開発者に提供する、ことを特徴とする。
本発明の一態様によれば、前記モジュール提供システムは、アプリで重視される複数の項目のうちの少なくとも1つの項目の選択を受け付ける項目選択受付手段を更に含み、前記提供手段は、選択された前記項目に応じたプロファイルを、前記開発者に提供する、ことを特徴とする。
本発明の一態様によれば、前記モジュール選択受付手段は、AI(Artificial Intelligence)に関するアプリ開発用モジュールの選択を受け付け、前記特定手段は、選択された前記AIに関するアプリ開発用モジュールに関連付けられた、XR(Cross Reality)に関する他のアプリ開発用モジュールを特定する、ことを特徴とする。
本発明の一態様によれば、前記モジュール選択受付手段は、XR(Cross Reality)に関するアプリ開発用モジュールの選択を受け付け、前記特定手段は、選択された前記XR(Cross Reality)に関するアプリ開発用モジュールに関連付けられた、AI(Artificial Intelligence)に関する他のアプリ開発用モジュールを特定する、ことを特徴とする。
本発明の一態様によれば、前記モジュール提供システムは、前記XRに関するアプリ開発用モジュールに基づいて、前記AIに関するアプリ開発用モジュールのパラメータを調整するパラメータ調整手段を更に含み、前記提供手段は、前記パラメータが調整された前記AIに関するアプリ開発用モジュールを提供する、ことを特徴とする。
本発明によれば、適切なアプリ開発用モジュールの組み合わせを提供することができる。
モジュール提供システムの全体構成の一例を示す図である。 設定画面の一例を示す図である。 モジュール設定画面の一例を示す図である。 開発者がアプリ開発用モジュールを示すボタンを選択した場合のモジュール設定画面の一例を示す図である。 展開設定画面の一例を示す図である。 プロファイル設定画面の一例を示す図である。 モジュール提供システムで実現される機能の一例を示す機能ブロック図である。 モジュールデータのデータ格納例を示す図である。 ライブラリデータのデータ格納例を示す図である。 プロファイルデータのデータ格納例を示す図である。 開発者データのデータ格納例を示す図である。 本実施形態において実行される処理の一例を示すフロー図である。 本実施形態において実行される処理の一例を示すフロー図である。
[1.モジュール提供システムの全体構成]
以下、本発明に係るモジュール提供システムの実施形態の例を説明する。図1は、モジュール提供システムの全体構成の一例を示す図である。図1に示すように、モジュール提供システムSは、サーバ10及び開発者端末20を含み、これらは、インターネットなどのネットワークNに接続可能である。なお、図1では、サーバ10及び開発者端末20の各々を1台ずつ示しているが、これらは複数台あってもよい。
サーバ10は、サーバコンピュータである。サーバ10は、制御部11、記憶部12、及び通信部13を含む。制御部11は、少なくとも1つのプロセッサを含む。制御部11は、記憶部12に記憶されたプログラムやデータに従って処理を実行する。記憶部12は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMなどの揮発性メモリであり、補助記憶部は、ROM、EEPROM、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。通信部13は、有線通信又は無線通信用の通信インタフェースであり、ネットワークNを介してデータ通信を行う。
開発者端末20は、アプリの開発者が操作するコンピュータである。例えば、開発者端末20は、携帯電話機(スマートフォンを含む)、携帯情報端末(タブレット型コンピュータ端末を含む)、又はパーソナルコンピュータ等である。例えば、開発者端末20は、制御部21、記憶部22、通信部23、操作部24、及び表示部25を含む。制御部21、記憶部22、及び通信部23の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
操作部24は、入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイス、キーボード、又はボタン等である。操作部24は、開発者による操作内容を制御部21に伝達する。表示部25は、例えば、液晶表示部又は有機EL表示部等である。表示部25は、制御部21の指示に従って画像を表示する。
なお、記憶部12,22に記憶されるものとして説明するプログラム及びデータは、ネットワークNを介して供給されるようにしてもよい。また、上記説明した各コンピュータのハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器とデータの入出力をするための入出力部(例えば、USBポート)が含まれていてもよい。例えば、情報記憶媒体に記憶されたプログラムやデータが読取部や入出力部を介して、各コンピュータに供給されるようにしてもよい。
[2.モジュール提供システムの概要]
本実施形態では、サーバ10は、アプリ開発用モジュールを開発者に提供する。アプリ開発用モジュールとは、開発者によるアプリの開発を支援するツールキットである。アプリ開発用モジュールは、SDK(Software Development Kit)そのものを意味してもよいし、SDKに含まれる一部分の構成要素(ソフトウェア開発キットよりも小さい単位)だけを意味してもよい。
アプリ開発用モジュールの構成要素は、開発対象となるアプリの用途等に応じて異なる。例えば、アプリが展開されるデバイスの電話機能やカメラ機能などの機能を操作する関数、画面を構成するボタンやテキストボックスなどのパーツ、当該パーツを表示するための関数、コンパイラやデバッガなどのツール、開発者が作成するプログラムにより使用されるクラスファイルやライブラリファイル、アプリ開発用モジュールの仕様などを記述した文書ファイル、及びサンプルコードのうちの少なくとも1つが、アプリ開発用モジュールに含まれる。
開発者は、アプリを作成する技術者であり、モジュール提供システムの利用者である。本実施形態におけるアプリは、アプリケーションプログラム又はアプリケーションソフトウェアの略称である。開発者は、アプリ開発用モジュールを利用してコードを入力し、コンパイラやデバッガなどを利用してアプリを作成する。アプリの開発言語は、任意の言語であってよく、例えば、Java(登録商標)などの一般的に知られた言語であってもよいし、アプリ開発用モジュール専用に開発された言語であってもよい。アプリは、サーバ上で実行されるものであってもよいし、ユーザの端末上で実行されるものであってもよい。なお、本実施形態で単にユーザと記載した箇所は、開発者が開発したアプリの利用者を意味する。
本実施形態では、開発者が、アプリ開発用モジュールを利用してXR(Cross Reality)のアプリを開発する場合を例に挙げて、モジュール提供システムSの処理を説明する。XRは、人工環境(例えば、映像を含む)をユーザに提供するものであり、例えば、VR(Virtual Reality)、AR(Augmented Reality)、及びMR(Mixed Reality)を含む概念である。例えば、VRは、仮想世界の映像をユーザに提供する。また例えば、AR及びMRは、現実世界と仮想世界が合成された映像をユーザに提供する。なお、XRにおいてユーザに提供されるのは、映像に限られず、ユーザが体感できるものであればよい。例えば、音声、匂い、味、振動などの触覚、又は気温などが提供されてもよい。
例えば、開発者は、一部の画像処理にAIを利用するXRのアプリを開発する。この場合、開発者は、XRのアプリ開発用モジュールと、AIのアプリ開発用モジュールと、を組み合わせてアプリ開発を行う。開発者は、開発者端末20を操作してサーバ10にアクセスし、アプリ開発の設定をするためのメニュー画面を表示部25に表示させる。
図2は、メニュー画面の一例を示す図である。本実施形態では、開発者はアプリ開発に関する3つの設定をすることができ、メニュー画面G1には、これら3つの設定の各々に対応するボタンB1〜B3が表示される。ボタンB1は、アプリ開発で利用するアプリ開発用モジュールを選択するためのボタンである。ボタンB2は、アプリを展開する環境に応じたライブラリの設定やコードの最適化をするためのボタンである。ボタンB3は、開発者が重視する項目に応じたプロファイルを設定するためのボタンである。なお、ボタンB4は、設定を完了するためのボタンである。
環境とは、アプリの展開先である。環境は、ソフトウェア的な環境を意味してもよいし、ハードウェア的な環境を意味してもよい。例えば、環境は、アプリを動作させるプラットフォーム(オペレーティングシステム又はファームウェア)の種類やバージョン、又は、アプリがインストールされるデバイスの種類や性能である。なお、デバイスは、アプリがインストールされるコンピュータである。また、環境は、デバイスに接続された機器(例えば、ヘッドマウントディスプレイ又はウェアラブル端末)の種類や性能などを意味してもよい。
開発者が重視する項目とは、アプリの動作で重視する項目であり、例えば、画質重視、処理速度重視、又は消費電力重視といった項目である。プロファイルは、アプリで用いられる技術についての仕様、規格、又はこれらの詳細な設定であり、例えば、画像圧縮技術の種類、画像における色表現、通信規格の種類、又は暗号化で用いる暗号方式や暗号キーなどである。
開発者は、モジュール提供システムSを初めて利用する場合、アプリ開発のプロジェクトを新規作成する。例えば、開発者は、アプリ開発で利用するアプリ開発用モジュールを選択するために、メニュー画面G1に表示されたボタンB1を選択する。開発者がボタンB1を選択すると、任意のアプリ開発用モジュールの組み合わせを選択するためのモジュール設定画面G2が表示部25に表示される。
図3は、モジュール設定画面G2の一例を示す図である。図3に示すように、モジュール設定画面G2には、モジュール提供システムSにおいて提供可能なアプリ開発用モジュールの一覧が表示される。モジュール設定画面G2が表示されたばかりの時点では、開発者がどのアプリ開発用モジュールを利用するか分からないので、モジュール提供システムSで提供可能な全てのアプリ開発用モジュールが選択可能に表示される。
例えば、モジュール設定画面G2には、XRのアプリ開発用モジュールである「モジュールXRn」(nは任意の自然数)を示すボタンB5と、AIのアプリ開発用モジュールである「モジュールAIk」(kは任意の自然数)を示すボタンB6と、が表示される。例えば、開発者が「モジュールXR1」を示すボタンB5選択すると、モジュール設定画面G2には、「モジュールXR1」に関連付けられたアプリ開発用モジュールが選択可能に表示される。
図4は、開発者がアプリ開発用モジュールを示すボタンB5を選択した場合のモジュール設定画面G2の一例を示す図である。図4に示すように、モジュール設定画面G2には、開発者が選択した「モジュールXR1」に関連付けられた「モジュールAI1」、「モジュールAI4」、及び「モジュールAI5」の各々のボタンB6が表示される。
「モジュールAI1」、「モジュールAI4」、及び「モジュールAI5」の各々は、開発者が選択した「モジュールXR1」でサポートされているAIのアプリ開発用モジュールである。開発者は、何れかのボタンB6選択し、「モジュールXR1」とともに利用するアプリ開発用モジュールを選択する。なお、「モジュールXR1」に関連付けられていない他のモジュールが選択可能であってもよい。
開発者は、アプリ開発で利用するアプリ開発用モジュールの選択を終えると、メニュー画面G1に戻り、アプリを展開する環境を設定するためのボタンB2を選択する。開発者がボタンB2を選択すると、任意の環境を選択するための展開設定画面G3が表示部25に表示される。
図5は、展開設定画面G3の一例を示す図である。図5に示すように、展開設定画面G3には、開発者が選択したアプリ開発用モジュールで開発したアプリを展開可能な環境が選択可能に表示される。例えば、展開設定画面G3には、アプリを展開するプラットフォームを選択するためのボタンB7と、アプリを展開するデバイスを選択するためのボタンB8と、が表示される。
例えば、開発者は、ボタンB7を選択し、アプリを展開するプラットフォームを選択する。また例えば、開発者は、ボタンB8を選択し、アプリを展開するデバイスを選択する。本実施形態では、開発者が、展開設定画面G3の中から、アプリを展開するプラットフォームとデバイスを1つずつ選択する場合を説明するが、開発者は、複数のプラットフォームとデバイスを選択してもよい。
本実施形態では、開発者が選択したアプリ開発用モジュール間で同じライブラリが用意されていることがあるので、ライブラリの重複が排除されるようになっている。また、開発者が選択した環境に用意されているライブラリには、開発者が選択したアプリ開発用モジュールにとって不要なライブラリが含まれていることがあるので、不要なライブラリが排除されるようもなっている。また、開発者が選択した環境に応じて、コードが最適化されるようにもなっている。これらの詳細については、後述する。
開発者は、アプリを展開する環境の選択を終えると、メニュー画面G1に戻り、アプリで重視する項目に応じたプロファイルを設定するためのボタンB3を選択する。開発者がボタンB3を選択すると、任意の項目を選択するためのプロファイル設定画面が表示部25に表示される。
図6は、プロファイル設定画面の一例を示す図である。図6に示すように、プロファイル設定画面G4には、開発者が重視する項目が選択可能に表示される。本実施形態では、開発者が何れかのボタンB9を選択する場合を説明するが、開発者は複数のボタンB9を選択してもよい。開発者がボタンB9を選択すると、選択されたボタンB9が示す項目に応じたプロファイルが設定される。
例えば、開発者が映像のクオリティを重視したXRアプリを開発する場合、画質を優先してプロファイルを作成する。この場合、例えば、高解像度でビットレートの高いプロファイルが作成される。また例えば、開発者がシームレスでリアルタイムな処理が必要なXRのアプリを開発する場合、処理速度を優先してプロファイルを作成する。この場合、データ量の小さい画像形式のプロファイルが作成される。また例えば、開発者が長時間起動するXRアプリを開発する場合、消費電力を優先してプロファイルを作成する。この場合、例えば、映像の表示の際の計算量が小さくなるようにプロファイルが作成される。
以上のように、モジュール提供システムSでは、アプリ開発用モジュールの選択、アプリを展開する環境に応じた設定、及びアプリで重視する項目に応じたプロファイルの設定といった3つの設定が行われることによって、開発者によるアプリ開発を支援するようにしている。以降、モジュール提供システムSの詳細を説明する。
[3.モジュール提供システムにおいて実現される機能]
図7は、モジュール提供システムSで実現される機能の一例を示す機能ブロック図である。図7に示すように、モジュール提供システムSでは、データ記憶部100、モジュール選択受付部101、環境選択受付部102、項目選択受付部103、表示制御部104、特定部105、重複排除部106、不要排除部107、コード最適化部108、パラメータ調整部109、及び提供部110が実現される。本実施形態では、これら各機能がサーバ10によって実現される場合を説明する。
[3−1.データ記憶部]
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、本実施形態で説明する処理を実行するために必要なデータを記憶する。ここでは、データ記憶部100が記憶するデータの一例として、モジュールデータDT1、ライブラリデータDT2、プロファイルデータDT3、及び開発者データDT4について説明する。
図8は、モジュールデータDT1のデータ格納例を示す図である。図8に示すように、モジュールデータDT1には、開発者に提供可能なアプリ開発用モジュールに関する各種情報が格納される。例えば、モジュールデータDT1には、開発者に提供可能な複数のアプリ開発用モジュールの各々を識別するモジュール識別情報に関連付けて、他のアプリ開発用モジュールを識別するモジュール識別情報と、環境を識別する環境識別情報と、が格納される。
モジュール識別情報は、アプリ開発用モジュールを識別可能な情報であればよく、例えば、アプリ開発用モジュールの名前であってもよいし、アプリ開発用モジュールに割り当てられたIDであってもよい。例えば、モジュールデータDT1には、アプリ開発用モジュールごとに、サポートされている他のアプリ開発用モジュールを識別する情報が格納される。なお、サポートとは、提供者による動作確認が得られていることである。また例えば、モジュールデータDT1には、アプリ開発用モジュールごとに、アプリ開発の際に必要な他のアプリ開発用モジュールを識別する情報が格納される。また例えば、モジュールデータDT1には、アプリ開発用モジュールごとに、一緒に利用することが好ましい他のアプリ開発用モジュールを識別する情報が格納される。他のアプリ開発用モジュールは、アプリ開発用モジュールの提供者によって決定されてもよいし、開発者の口コミ等によって決定されてもよい。
環境識別情報は、プラットフォーム又はデバイスといった展開先の環境を識別可能な情報であればよく、例えば、アプリが展開されるプラットフォームの名前又はバージョン情報であってもよいし、デバイスの名前又は型番であってもよいし、これらを示すIDであってもよい。例えば、モジュールデータDT1には、アプリ開発用モジュールごとに、サポートされている環境の環境識別情報が格納される。また例えば、モジュールデータDT1には、アプリ開発用モジュールごとに、開発したアプリを展開することが好ましい環境の環境識別情報が格納される。環境識別情報は、アプリ開発用モジュールの提供者によって決定されてもよいし、開発者の口コミ等によって決定されてもよい。
図9は、ライブラリデータDT2のデータ格納例を示す図である。図9に示すように、ライブラリデータDT2は、アプリ開発用モジュール及び環境の各々に関連付けられたライブラリを示すデータである。なお、本実施形態では、ライブラリデータDT2に、アプリ開発用モジュール及び環境の各々のライブラリが定義されている場合を説明するが、アプリ開発用モジュールにライブラリと、環境のライブラリと、が別々のデータに定義されていてもよい。
例えば、ライブラリデータDT2には、複数のアプリ開発用モジュールの各々のモジュール識別情報に関連付けて、当該アプリ開発用モジュールで用意されているライブラリを識別するライブラリ識別情報が格納される。
ライブラリ識別情報は、ライブラリを識別可能な情報であればよく、例えば、ライブラリのファイル名であってもよいし、ライブラリに割り当てられたIDであってもよい。例えば、各アプリ開発用モジュールのライブラリは、アプリ開発用モジュールの提供者により用意される。各アプリ開発用モジュールには、任意の種類のライブラリが用意されてよく、その数も任意であってよい。
本実施形態では、ライブラリデータDT2には、複数の環境の各々の環境識別情報に関連付けて、当該環境で用意されているライブラリを識別するライブラリ識別情報が格納される。例えば、各環境のライブラリは、アプリ開発用モジュールの提供者又は環境の提供者(例えば、プラットフォームを提供するソフトウェアベンダ、又は、デバイスを製造するメーカ)により用意される。各環境には、任意の種類のライブラリが用意されてよく、その数も任意であってよい。
図10は、プロファイルデータDT3のデータ格納例を示す図である。図10に示すように、プロファイルデータDT3には、複数の項目の各々を識別する項目識別情報に関連付けて、プロファイルの内容を示すプロファイル情報が格納される。項目識別情報は、項目を識別可能な情報であればよく、例えば、項目の名前であってもよいし、項目に割り当てられたIDであってもよい。
プロファイル情報は、アプリで使用される仕様、規格、又はこれらの詳細な設定を示す情報である。例えば、プロファイル情報には、画像圧縮技術の種類、フレームレート、解像度、又はビットレートが示される。また例えば、プロファイル情報には、画像のデータ形式又はビット数が示される。また例えば、プロファイル情報には、アプリで利用される通信規格の種類や通信速度が示される。また例えば、プロファイル情報には、暗号化で用いる暗号方式や暗号キーなどが示される。
図11は、開発者データDT4のデータ格納例を示す図である。図11に示すように、開発者データDT4は、複数の開発者の各々により開発されるアプリに関する各種情報が格納される。例えば、開発者データDT4には、開発者を一意に識別する開発者識別情報、開発者の名前、開発者が指定したプロジェクト名、アプリ開発で利用されるアプリ開発用モジュールのモジュール識別情報、アプリ開発で利用されるライブラリのライブラリ識別情報、アプリが展開される環境の環境識別情報、開発者が重視する項目に応じたプロファイルのプロファイル情報、及び開発中のコードが格納される。開発者データDT4は、開発者による設定作業や開発作業に応じて適宜更新される。
なお、データ記憶部100に記憶されるデータは、上記の例に限られない。データ記憶部100は、本実施形態で説明する処理を実行するために必要なデータを記憶すればよく、例えば、モジュール提供システムSが提供可能なアプリ開発用モジュールに含まれるライブラリファイルやサンプルコードなどの構成要素を記憶してもよい。
[3−2.モジュール選択受付部]
モジュール選択受付部101は、制御部11を主として実現される。モジュール選択受付部101は、複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発モジュールの選択を受け付ける。本実施形態では、開発者が自らアプリ開発用モジュールを選択する場合を説明するが、予め定められたアルゴリズムによって、例えば過去の開発実績や口コミなどを利用してアプリ開発用モジュールが自動的に選択されてもよい。なお、本実施形態で「選択されたアプリ開発用モジュール」と記載した箇所は、モジュール選択受付部101が選択を受け付けたアプリ開発用モジュールを意味する。
本実施形態では、モジュール選択受付部101がサーバ10において実現されるので、モジュール選択受付部101は、開発者端末20から、開発者が選択したアプリ開発用モジュールのモジュール識別情報を受信することによって、開発者によるアプリ開発用モジュールの選択を受け付ける。例えば、開発者端末20は、モジュール設定画面G2から開発者が選択したアプリ開発用モジュールのモジュール識別情報を、サーバ10に送信し、モジュール選択受付部101は、当該モジュール識別情報を受信する。
[3−3.環境選択受付部]
環境選択受付部102は、制御部11を主として実現される。環境選択受付部102は、アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける。本実施形態では、開発者が自ら環境を選択する場合を説明するが、予め定められたアルゴリズムによって、例えば過去の開発実績や口コミなどを利用して環境が自動的に選択されてもよい。なお、本実施形態で「選択された環境」と記載した箇所は、環境選択受付部102が選択を受け付けた環境を意味する。
本実施形態では、環境選択受付部102がサーバ10において実現されるので、環境選択受付部102は、開発者端末20から、開発者が選択した環境の環境識別情報を受信することによって、開発者による環境の選択を受け付ける。例えば、開発者端末20は、展開設定画面G3から開発者が選択した環境の環境識別情報を、サーバ10に送信し、環境選択受付部102は、当該環境識別情報を受信する。
[3−4.項目選択受付部]
項目選択受付部103は、制御部11を主として実現される。項目選択受付部103は、アプリで重視される複数の項目のうちの少なくとも1つの項目の選択を受け付ける。本実施形態では、開発者が自ら項目を選択する場合を説明するが、予め定められたアルゴリズムによって、例えば過去の開発実績や口コミなどを利用して項目が自動的に選択されてもよい。なお、本実施形態で「選択された項目」と記載した箇所は、項目選択受付部103が選択を受け付けた項目を意味する。
本実施形態では、項目選択受付部103がサーバ10において実現されるので、項目選択受付部103は、開発者端末20から、開発者が選択した項目の項目識別情報を受信することによって、開発者による項目の選択を受け付ける。例えば、開発者端末20は、プロファイル設定画面G4から開発者が選択した項目の項目識別情報を、サーバ10に送信し、項目選択受付部103は、当該項目識別情報を受信する。
[3−5.表示制御部]
表示制御部104は、制御部11を主として実現される。表示制御部104は、本実施形態で説明する各画面を開発者端末20に表示させる。本実施形態では、表示制御部104がサーバ10において実現されるので、表示制御部104は、各画面の表示データを開発者端末20に送信することによって、各画面を開発者端末20に表示させる。
例えば、表示制御部104は、複数のアプリ開発用モジュールの各々を、開発者端末において選択可能に表示させる。表示制御部104は、モジュールデータDT1に基づいて、開発者に提供可能な全てのアプリ開発用モジュールを特定し、特定した全てのアプリ開発用モジュールを選択可能なモジュール設定画面G2の表示データを生成し、開発者端末20に送信する。
なお、本実施形態では、モジュール設定画面G2が表示されたばかりの時点では、全てのアプリ開発用モジュールが選択可能に表示される場合を説明するが、一部のアプリ開発用モジュールだけが選択可能に表示されてもよい。この場合、表示制御部104は、一部のアプリ開発用モジュールを、ランダムに選択してもよいし、開発者の過去の行動などに基づいて選択してもよい。表示データは、任意の形式のデータであってよく、例えば、HTMLデータであってもよい。この点は、他の画面の表示データについても同様である。
モジュール設定画面G2からアプリ開発用モジュールが選択された場合、表示制御部104は、選択されたアプリ開発用モジュールに関連付けられた複数の他のアプリ開発用モジュールを、開発者端末において選択可能に表示させる。例えば、表示制御部104は、モジュールデータDT1に基づいて、開発者により選択されたアプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定し、特定した他のアプリ開発用モジュールを選択可能なモジュール設定画面G2の表示データを生成し、開発者端末20に送信する。
[3−6.特定部]
特定部105は、制御部11を主として実現される。特定部105は、選択されたアプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する。なお、本実施形態で「特定された他のアプリ開発用モジュール」と記載した箇所は、特定部105により特定された他のアプリ開発用モジュールを意味する。
本実施形態では、アプリ開発用モジュール同士の対応関係は、モジュールデータDT1に定義されているので、特定部105は、モジュールデータDT1に基づいて、開発者により選択されたアプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する。なお、アプリ開発用モジュール同士の対応関係は、図8のようなテーブル形式以外にも、数式形式、プログラムコードの一部、又は機械学習モデルの中に定義されていてもよい。
特定部105は、開発者に選択させることなく、他のアプリ開発用モジュールを自動的に特定してもよいが、本実施形態では、特定部105は、複数の他のアプリ開発用モジュールの中から、開発者により選択された他のアプリ開発用モジュールを特定する。例えば、開発者が選択したアプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールがモジュール設定画面G2に表示され、特定部105は、当該モジュール設定画面G2の中から、開発者により選択された他のアプリ開発用モジュールを特定する。
例えば、モジュール選択受付部101が、AIに関するアプリ開発用モジュールの選択を受け付けた場合に、特定部105は、選択されたAIに関するアプリ開発用モジュールに関連付けられた、XRに関する他のアプリ開発用モジュールを特定する。一方、モジュール選択受付部101が、XRに関するアプリ開発用モジュールの選択を受け付けた場合に、特定部105は、選択されたXRに関するアプリ開発用モジュールに関連付けられた、AIに関する他のアプリ開発用モジュールを特定する。
なお、AIに関するアプリ開発用モジュールは、AIを利用したアプリを開発するためのモジュールであり、例えば、機械学習モデル、教師データ、学習時に利用されるアルゴリズム、AIの仕様や利用方法などが記述された文書、及びサンプルコードなどが含まれる。また、XRに関するアプリ開発用モジュールは、XRを利用したアプリを開発するためのモジュールであり、例えば、3次元空間のレンダリング処理をするための関数、スマートフォンなどのカメラを起動するための関数、仮想画像と現実画像を合成するための関数、仮想の3次元モデルやテクスチャなどの情報、関数の説明が記述された文書、及びサンプルコードなどが含まれる。
[3−7.重複排除部]
重複排除部106は、制御部11を主として実現される。重複排除部106は、選択されたアプリ開発用モジュールと、特定された他のアプリ開発用モジュールと、の間におけるライブラリの重複を排除する。ライブラリの重複とは、同じライブラリファイルが2つ以上存在することである。
重複を排除するとは、同じライブラリファイルが複数個提供されないようにすることである。即ち、あるアプリ開発用モジュールと、他のアプリ開発用モジュールと、の間で同じライブラリファイルが存在した場合に、当該ライブラリファイルが1つだけ提供されるようにすることは、重複を排除することに相当する。
本実施形態では、アプリ開発用モジュールに用意されたライブラリは、ライブラリデータDT2に定義されているので、重複排除部106は、ライブラリデータDT2に基づいて、開発者により選択されたアプリ開発用モジュールと、特定部105により特定された他のアプリ開発用モジュールと、の各々のライブラリを特定し、重複したライブラリが存在するか否かを判定する。重複排除部106は、重複したライブラリが存在する場合、同じライブラリが複数個提供されないように、1つだけ提供する。なお、アプリ開発用モジュールに用意されたライブラリは、図9のようなテーブル形式以外にも、数式形式、プログラムコードの一部、又は機械学習モデルの中に定義されていてもよい。
例えば、画像の被写体を分類してARの映像を提供するアプリが開発される場合、ARのアプリ開発用モジュールと、画像の分類をするAIのアプリ開発用モジュールと、はライブラリが共通していることがある。この場合、重複排除部106は、ARのアプリ開発用モジュールと、分類学習器に関するAIのアプリ開発用モジュールと、の間におけるライブラリの重複を排除する。他にも例えば、ゲームアプリの開発において、複数のアプリ開発用モジュールが利用される場合、3Dレンダリングなどのグラフィック処理に関するライブラリが共通していることがある。この場合、重複排除部106は、複数のアプリ開発用モジュールの間におけるライブラリの重複を排除する。
また例えば、重複排除部106は、選択されたアプリ開発用モジュール、特定された他のアプリ開発用モジュール、及び選択された環境の間におけるライブラリの重複を排除する。本実施形態では、プラットフォームやデバイスなどの環境に用意されたライブラリは、ライブラリデータDT2に定義されているので、重複排除部106は、ライブラリデータDT2に基づいて、選択されたアプリ開発用モジュール、特定された他のアプリ開発用モジュール、及び選択された環境の各々のライブラリを特定し、重複したライブラリが存在するか否かを判定する。重複排除部106は、重複したライブラリが存在する場合、同じライブラリが複数個提供されないように、1つだけ提供する。
例えば、画像の被写体を分類してARの映像を提供するアプリが特定のオペレーティングシステムで展開される場合、アプリ開発用モジュールのライブラリと、オペレーティングシステムにもともと備わっている画像検出のライブラリと、が重複していることがある。この場合、重複排除部106は、アプリ開発用モジュールと、オペレーティングシステムと、の間におけるライブラリの重複を排除する。また例えば、MRのアプリ開発用モジュールが選択され、アプリがヘッドマウントディスプレイに展開される場合、アプリ開発モジュールのライブラリと、ヘッドマウントディスプレイのライブラリと、が重複していることがある。この場合、重複排除部106は、アプリ開発用モジュールと、ヘッドマウントディスプレイと、の間におけるライブラリの重複を排除する。
[3−8.不要排除部]
不要排除部107は、制御部11を主として実現される。不要排除部107は、選択された環境における不要なライブラリを排除する。不要なライブラリは、例えば、選択された環境で用意されたライブラリのうちアプリ開発用モジュールでは使用しないライブラリ、又は、アプリ開発用モジュールで用意されたライブラリのうち選択された環境で使用しないライブラリである。
不要なライブラリは、データ記憶部100に定義されているものとする。例えば、不要排除部107は、選択された環境で用意されたライブラリを特定し、アプリ開発用モジュールで不要か否かを判定する。また例えば、不要排除部107は、アプリ開発用モジュールで用意されたライブラリを特定し、選択された環境で不要か否かを判定する。不要排除部107は、不要なライブラリが存在する場合、当該ライブラリが提供されないようにする。なお、不要なライブラリは、テーブル形式、数式形式、プログラムコードの一部、又は機械学習モデルの中に定義されていてもよい。
[3−9.コード最適化部]
コード最適化部108は、制御部11を主として実現される。コード最適化部108は、選択された環境に基づいて、選択されたアプリ開発用モジュールと、特定されたアプリ開発用モジュールと、の各々のコードを最適化する。環境と最適なコードとの関係は、データ記憶部に予め記憶されているものとする。これらの関係は、任意の形式で記憶されてよく、例えば、テーブル形式、数式形式、プロフラムコードの一部、又は機械学習モデル内に定義されていてもよい。コード最適化部108は、選択された環境に関連付けられたコードとなるように、現状のコードを変更する。
例えば、アプリを展開するデバイスが特定のGPUを備えている場合、画面を表示させる際に所定のループ処理を実行する必要がないことがある。この場合、コード最適化部108は、選択された環境が特定のGPUを備えていれば、当該ループ処理を削除するようにコードを最適化する。また例えば、アプリを展開するデバイスが特定のヘッドマウントディスプレイであれば、ニューラルネットワークの処理に耐えうるプロセッサを有しているため、コード最適化部108は、ニューラルネットワークの処理を実行するためのコードを追加する。
[3−10.パラメータ調整部]
パラメータ調整部109は、制御部11を主として実現される。パラメータ調整部109は、XRに関するアプリ開発用モジュールに基づいて、AIに関するアプリ開発用モジュールのパラメータを調整する。パラメータは、アプリ開発用モジュールに含まれる機械学習モデルのハイパーパラメータである。XRに関するアプリ開発用モジュールと、AIに関するアプリ開発用モジュールのパラメータと、の関係は、データ記憶部100に予め記憶されているものとする。これらの関係は、任意の形式で記憶されてよく、例えば、テーブル形式、数式形式、プロフラムコードの一部、又は機械学習モデル内に定義されていてもよい。
[3−11.提供部]
提供部110は、制御部11を主として実現される。提供部110は、選択されたアプリ開発用モジュールと、特定された他のアプリ開発用モジュールと、を開発者に提供する。アプリ開発用モジュールを提供するとは、アプリ開発用モジュールを利用してアプリ開発をする環境を提供することである。本実施形態では、選択されたアプリ開発用モジュールと、特定された他のアプリ開発用モジュールと、がアプリ開発で利用されるアプリ開発用モジュールとして決定される。
提供部110は、アプリ開発で利用されるアプリ開発用モジュールの構成要素の少なくとも一部を開発者端末20に送信したり、オンライン上で開発者が利用可能な状態にしたりする。開発者は、開発者端末20にアプリ開発用モジュールをダウンロードしたうえでアプリ開発を行ってもよいし、サーバ10上に設けられた自身の記憶領域にアプリ開発モジュールを展開してアプリ開発を行ってもよい。
例えば、提供部110は、アプリ開発用モジュールに含まれる関数をアプリで利用可能とする。また例えば、提供部110は、アプリ開発用モジュールに含まれるボタンやテキストボックスなどのパーツ、又は、当該パーツを表示するための関数をアプリで利用可能とする。また例えば、提供部110は、アプリ開発用モジュールに含まれるコンパイラやデバッガなどのツールを、開発者の開発作業で利用可能とする。また例えば、提供部110は、アプリ開発用モジュールに含まれるクラスファイルやライブラリファイルを、アプリで利用可能とする。また例えば、提供部110は、アプリ開発用モジュールの仕様などを記述した文書ファイル及びサンプルコードを、開発者に閲覧可能とする。
例えば、提供部110は、重複排除部106によりライブラリの重複が排除された、選択されたアプリ開発用モジュールと、特定された他のアプリ開発用モジュールと、を開発者に提供する。即ち、提供部110は、開発者が利用する複数のアプリ開発用モジュールの各々の重複するライブラリを複数個提供するのではなく、1つだけ提供する。また、提供部110は、開発者が利用する複数のアプリ開発用モジュール及び選択された環境の間でライブラリが重複している場合には、これら重複するライブラリを複数個提供するのではなく、1つだけ提供する。
また例えば、提供部110は、不要排除部107により不要なライブラリが排除された、選択されたアプリ開発用モジュールと、特定された他のアプリ開発用モジュールと、を開発者に提供する。即ち、提供部110は、選択された環境に用意されたライブラリのうち、開発者が利用する複数のアプリ開発用モジュールにとって不要なライブラリを開発者に提供しないようにする。
また例えば、提供部110は、コード最適化部108によりコードが最適化された、選択されたアプリ開発用モジュールと、特定された他のアプリ開発用モジュールと、を開発者に提供する。例えば、コード最適化部108がアプリ開発用モジュールに含まれるサンプルコードを最適化する場合、提供部110は、当該最適化されたサンプルコードを開発者に提供する。また例えば、コード最適化部108が、開発者がアプリ開発用モジュールを利用して開発中のコードを最適化する場合、提供部110は、当該最適化されたコードを開発者に提供する。
また例えば、提供部110は、選択された項目に応じたプロファイルを、開発者に提供する。例えば、提供部110は、プロファイルデータDT3を参照し、選択された項目に関連付けられたプロファイルを開発者に提供する。開発者は、提供部110により提供されたプロファイルに基づいて、アプリ開発を行うことになる。
また例えば、提供部110は、パラメータ調整部109によりパラメータが調整されたAIに関するアプリ開発用モジュールを提供する。例えば、提供部110は、初期値のパラメータが設定されたAIに関するアプリ開発用モジュールではなく、初期値のパラメータが変更された後のAIに関するアプリ開発用モジュールを開発者に提供する。
[4.本実施形態において実行される処理]
図12及び図13は、本実施形態において実行される処理の一例を示すフロー図である。図12及び図13に示す処理は、制御部11,21がそれぞれ記憶部12,22に記憶されたプログラムに従って動作することによって実行される。以降説明する処理は、図7に示す機能ブロックにより実行される処理の一例である。
図12に示すように、まず、開発者端末20においては、制御部21は、サーバ10に、メニュー画面G1の表示要求を送信する(S1)。メニュー画面G1の表示要求は、サーバ10のURLが選択された場合などの任意のタイミングで送信されるようにすればよい。なお、開発者は、予めモジュール提供システムSの利用登録をしており、開発者識別情報などが発行済みであるものとする。
サーバ10においては、表示要求を受信すると、制御部11は、メニュー画面G1の表示データを生成し、開発者端末20に送信する(S2)。本実施形態では、開発者が新規のプロジェクトを作成する場合の処理について説明するが、開発者が作成済みのプロジェクトの設定変更がなされてもよい。
開発者端末20においては、表示データを受信すると、制御部21は、メニュー画面G1を表示部25に表示させる(S3)。S3においては、図2に示すメニュー画面G1が表示され、ボタンB1〜B4の何れかの選択が受け付けられる。制御部21は、操作部24の検出信号に基づいて、開発者の操作内容を送信する(S4)。S4においては、制御部21は、ボタンB1〜B4のうち、開発者が選択したボタンを識別する情報を送信する。
サーバ10においては、開発者の操作内容を受信すると、制御部11は、開発者の操作内容を参照する(S5)。S5においては、制御部11は、ボタンB1〜B4のうち開発者が選択したボタンを特定する。ボタンB1が選択された場合(S5;B1)、制御部11は、モジュールデータDT1に基づいて、モジュール設定画面G2の表示データを生成し、開発者端末20に送信する(S6)。S6においては、制御部11は、モジュール提供システムSが提供可能な全てのアプリ開発用モジュールを選択可能なモジュール設定画面G2の表示データを生成する。
開発者端末20においては、表示データを受信すると、制御部21は、モジュール設定画面G2を表示部25に表示させる(S7)。S7においては、図3に示すモジュール設定画面G2が表示され、ボタンB5,B6の選択が受け付けられる。開発者は、ボタンB5が示すXRのアプリ開発用モジュールを先に選択してもよいし、ボタンB6が示すAIのアプリ開発用モジュールを先に選択してもよい。なお、各ボタンB5,B6に対応するモジュール識別情報は、モジュール設定画面G2の表示データに含まれているものとする。
制御部21は、操作部24の検出信号に基づいて、開発者により選択されたアプリ開発用モジュールのモジュール識別情報を、サーバ10に送信する(S8)。S8においては、制御部21は、開発者が選択したボタンB5又はB6に対応するモジュール識別情報を、サーバ10に送信する。
サーバ10においては、モジュール識別情報を受信すると、制御部11は、モジュールデータDT1に基づいて、開発者により選択されたアプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する(S9)。S9においては、制御部11は、開発者により選択されたアプリ開発用モジュールのモジュール識別情報に関連付けられた他のモジュール識別情報を参照することによって、他のアプリ開発用モジュールを特定する。
制御部11は、S9で特定した他のアプリ開発用モジュールに基づいて、モジュール設定画面G2の更新データを生成し、開発者端末20に送信する(S10)。更新データには、S10で特定された他のアプリ開発用モジュールのモジュール識別情報が含まれているものとする。
開発者端末20においては、表示データを受信すると、制御部21は、モジュール設定画面の表示を更新する(S11)。S11においては、図4に示すモジュール設定画面G2の状態となり、開発者により選択されたアプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールが選択可能に表示される。例えば、開発者によりXRのアプリ開発用モジュールが選択された場合には、AIのアプリ開発用モジュールが選択可能に表示される。また例えば、開発者によりAIのアプリ開発用モジュールが選択された場合には、XRのアプリ開発用モジュールが選択可能に表示される。
制御部21は、操作部24の検出信号に基づいて、開発者により選択された他のアプリ開発用モジュールのモジュール識別情報を送信する(S12)。S12においては、制御部21は、開発者が選択したボタンB5又はB6に対応するモジュール識別情報を、サーバ10に送信する。
サーバ10においては、モジュール識別情報を受信すると、制御部11は、当該モジュール識別情報を参照し、選択された他のアプリ開発用モジュールを特定する(S13)。なお、開発者により選択されたアプリ開発用モジュールのモジュール識別情報は、サーバ10の記憶部12に一時的に記録される。また、S13の処理の際に、AIのアプリ開発用モジュールのパラメータが最適化されてもよい。その後、S2の処理に戻り、S3の処理が実行され、メニュー画面G1が開発者端末20に表示される。
一方、S5において、ボタンB2が選択された場合(S5;B2)、図13に移り、制御部11は、モジュールデータDT1に基づいて、展開設定画面G3の表示データを生成し、開発者端末20に送信する(S14)。S14においては、制御部11は、開発者データDT4を参照し、アプリ開発で利用される複数のアプリ開発用モジュールを特定する。制御部11は、モジュールデータDT1を参照し、当該複数のアプリ開発用モジュールの各々に関連付けられた環境を特定し、展開設定画面G3の表示データを生成する。
開発者端末20においては、表示データを受信すると、制御部21は、展開設定画面G3を表示部25に表示させる(S15)。S15においては、図5に示す展開設定画面G3が表示され、ボタンB7,B8の選択が受け付けられる。開発者は、ボタンB7及びボタンB8の少なくとも一方を選択する。なお、各ボタンB7,B8に対応する環境識別情報は、展開設定画面G3の表示データに含まれているものとする。
制御部21は、操作部24の検出信号に基づいて、開発者により選択された環境の環境識別情報を送信する(S16)。S16においては、制御部21は、開発者が選択したボタンB7,B8に対応する環境識別情報を、サーバ10に送信する。
サーバ10においては、環境識別情報を受信すると、制御部11は、開発者が選択した複数のアプリ開発用モジュールと、開発者が選択した環境と、の各々の間におけるライブラリの重複を排除する(S17)。S17においては、制御部11は、ライブラリデータDT2を参照し、開発者が選択した複数のアプリ開発用モジュールと、開発者が選択した環境と、の各々に関連付けられたライブラリ識別情報を取得する。制御部11は、これら取得したライブラリ識別情報に基づいて、重複するライブラリが存在するか否かを判定する。制御部11は、重複するライブラリが存在する場合には、同じライブラリファイルが重複して提供されないようにする。
制御部11は、ライブラリデータDT2に基づいて、開発者が選択した環境における不要なライブラリを排除する(S18)。S18においては、制御部11は、ライブラリデータDT2を参照し、開発者が選択した環境におけるライブラリを特定し、アプリ開発で利用されるアプリ開発用モジュールで不要なライブラリを排除する。なお、アプリ開発用モジュールで不要なライブラリは、ライブラリデータDT2又は別のデータに定義されているものとする。
制御部11は、開発者が選択した環境に基づいて、アプリ開発用モジュールのコードを最適化する(S19)。S19においては、制御部11は、開発者が選択した環境に基づいて、アプリ開発用モジュールのサンプルコードを編集する。その後、S2の処理に戻り、S3の処理が実行され、メニュー画面G1が開発者端末20に表示される。
一方、図12に示すS5において、ボタンB3が選択された場合(S5;B3)、図13に移り、制御部11は、プロファイルデータDT3に基づいて、プロファイル設定画面G4の表示データを生成し、開発者端末20に送信する(S20)。S20においては、制御部11は、プロファイルデータDT3を参照し、全ての項目を選択可能なプロファイル設定画面G4の表示データを生成する。
開発者端末20においては、表示データを受信すると、制御部21は、プロファイル設定画面G4を表示部25に表示させる(S21)。S21においては、図6に示すプロファイル設定画面G4が表示され、ボタンB9の選択が受け付けられる。なお、各ボタンB9に対応する項目識別情報は、プロファイル設定画面G4の表示データに含まれているものとする。
制御部21は、操作部24の検出信号に基づいて、開発者により選択された項目の項目識別情報を送信する(S22)。S22においては、制御部21は、開発者が選択したボタンB9に対応する項目識別情報を、サーバ10に送信する。
サーバ10においては、環境識別情報を受信すると、制御部11は、アプリ開発のプロジェクトを作成し(S23)、開発者が選択した項目に応じたプロファイルを追加する(S24)。S23においては、制御部11は、新規作成したプロジェクトに対応するレコードを開発者データDT4に作成し、S24において、開発者が選択したアプリ開発用モジュール、開発者に提供されるライブラリ、開発者が選択した環境、開発者が選択した項目に応じたプロファイルなどの情報を格納する。
一方、S5において、ボタンB4が選択された場合(S5;B4)、本処理は終了し、開発者によるアプリ開発が行われる。例えば、サーバ10は、開発者データDT4を参照し、開発者端末20に対し、ライブラリの重複等が行われたアプリ開発用モジュールを送信する。開発者は、開発者端末20にダウンロードされたアプリ開発用モジュールを利用してアプリ開発を行う。開発者は、開発したアプリを自身のデバイスに展開してテストを行い、十分な品質となるまで開発作業を行う。開発者は、十分な品質を担保できたと判断した場合に、アプリ開発を終了する。開発者は、十分な品質ではないと判断した場合には、再び図12及び図13の処理を実行し、アプリ開発用モジュールの設定をやり直してもよい。
以上説明したモジュール提供システムSによれば、アプリ開発用モジュールが選択された場合に、当該アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定し、選択されたアプリ開発用モジュールと、特定された当該他のアプリ開発用モジュールと、を開発者に提供することができる。例えば、あるアプリ開発用モジュールに対し、サポートされている他のアプリ開発用モジュールを関連付けておく場合には、開発者が開発するアプリを確実に動作させることができる。また例えば、あるアプリ開発用モジュールに対し、相性の良い他のアプリ開発用モジュールを関連付けておく場合には、開発効率を向上させることができる。
また、モジュール提供システムSは、開発者が選択したアプリ開発用モジュールに関連付けられた複数の他のアプリ開発用モジュールを、開発者端末20において選択可能に表示させ、開発者により選択された他のアプリ開発用モジュールを提供することができる。これにより、開発者が選択したアプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールが複数存在する場合であっても、開発者の好みのアプリ開発用モジュールを選択させることができ、開発効率を効果的に向上させることができる。
また、モジュール提供システムSは、開発者が選択したアプリ開発用モジュールと、特定された他のアプリ開発用モジュールと、の間におけるライブラリの重複を排除することによって、同じライブラリが重複して利用されるといった無駄を排除することができる。また、同じライブラリが重複して利用されると、開発者のアプリ開発で消費されるメモリ消費量が増大する可能性があるが、ライブラリの重複を排除することによって、メモリ消費量の増大を抑制することができる。また、重複したライブラリを排除することで、アプリの容量も減らすことができる。
また、モジュール提供システムSは、開発者により選択されたアプリ開発用モジュール、特定された他のアプリ開発用モジュール、及び開発者により選択された環境の間におけるライブラリの重複を排除することによって、同じライブラリが何重にも重複して利用されるといった無駄を排除することができる。また、同じライブラリが何重にも重複して利用されると、開発者のアプリ開発で消費されるメモリ消費量がその分だけ増大する可能性があるが、ライブラリの重複を排除することによって、メモリ消費量の増大を効果的に抑制することができる。また、重複したライブラリを排除することで、アプリの容量も減らすことができる。
また、モジュール提供システムSは、開発者により選択された環境における不要なライブラリを排除することによって、ライブラリが不要であるにも関わらず用意されるといった無駄を排除することができる。また、不要なライブラリが用意されると、開発者のアプリ開発で消費されるメモリ消費量が増大する可能性があるが、不要なライブラリを排除することによって、メモリ消費量の増大を抑制することができる。また、不要なライブラリを排除することで、アプリの容量も減らすことができる。
また、モジュール提供システムSは、開発者により選択されたアプリ開発用モジュールと、特定されたアプリ開発用モジュールと、の各々のコードを最適化することによって、アプリの質を高めることができる。また、開発者がコードを書きなおす手間を省くことができ、開発効率を向上させることができる。
また、モジュール提供システムSは、開発者により選択された項目に応じたプロファイルを開発者に提供することによって、開発中のアプリの質を適切に評価することができ、アプリの質を高めるとともに、開発効率を向上させることができる。
また、モジュール提供システムSは、開発者により選択されたAIに関するアプリ開発用モジュールに関連付けられた、XRに関する他のアプリ開発用モジュールを特定することができる。これにより、開発者がAIを利用したXRに関するアプリを開発する際の開発効率を向上させることができる。
また、モジュール提供システムSは、開発者により選択されたXRに関するアプリ開発用モジュールに関連付けられた、AIに関する他のアプリ開発用モジュールを特定することができる。これにより、開発者がAIを利用したXRに関するアプリを開発する際の開発効率を向上させることができる。
また、モジュール提供システムSは、XRに関するアプリ開発用モジュールに基づいて、AIに関するアプリ開発用モジュールのパラメータを調整することによって、開発者がAIを利用したXRに関するアプリの質を高めることができる。
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
例えば、実施形態では、AIを利用したXRアプリが開発される場合を説明したが、アプリは、任意の種類であってよく、XRのアプリに限られない。例えば、開発者は、アプリ開発用モジュールを利用して、カメラで撮影した画像の被写体を分類するアプリ、バーコードをスキャンするアプリ、文字認識や機械翻訳をするアプリ、顔認識をするアプリ、道案内のアプリ、オンラインショッピングモール又はインターネットオークションにおける商品を購入するアプリ、金融サービスを提供するアプリ、又はゲームアプリを開発してもよい。
また例えば、モジュールデータDT1には、アプリ開発用モジュールに関連付けて、奨励すべき項目又はプロファイルが関連付けられていてもよい。また例えば、モジュール設定画面G2において、開発者により選択されたアプリ開発用モジュールに関連付けられた他のアプリ開発用モジュール以外の他のモジュールが選択可能に表示されてもよい。また例えば、実施形態では、アプリを展開するプラットフォーム及びデバイスの各々が選択可能である場合を説明したが、これらの何れか一方のみが選択可能であってもよい。
また例えば、主な機能がサーバ10で実現される場合を説明したが、各機能は、複数のコンピュータで分担されてもよい。例えば、サーバ10及び開発者端末20の各々で機能が分担されてもよい。また例えば、モジュール提供システムSが複数のサーバコンピュータを含む場合には、これら複数のサーバコンピュータで機能が分担されてもよい。また例えば、データ記憶部100で記憶されるものとして説明したデータは、サーバ10以外のコンピュータによって記憶されてもよい。
S モジュール提供システム、N ネットワーク、10 サーバ、11,21 制御部、12,22 記憶部、13,23 通信部、20 開発者端末、24 操作部、25 表示部、B1,B2,B3,B4,B5,B6,B7,B8,B9 ボタン、G1 メニュー画面、G2 モジュール設定画面、G3 展開設定画面、G4 プロファイル設定画面、100 データ記憶部、101 モジュール選択受付部、102 環境選択受付部、103 項目選択受付部、104 表示制御部、105 特定部、106 重複排除部、107 不要排除部、108 コード最適化部、109 パラメータ調整部、110 提供部、DT1 モジュールデータ、DT2 ライブラリデータ、DT3 プロファイルデータ、DT4 開発者データ。

Claims (17)

  1. 複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発用モジュールの選択を受け付けるモジュール選択受付手段と、
    選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定手段と、
    アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける環境選択受付手段と、
    選択された前記アプリ開発用モジュール、特定された前記他のアプリ開発用モジュール、及び選択された前記環境の間におけるライブラリの重複を排除する重複排除手段と、
    前記ライブラリの重複が排除された、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を開発者に提供する提供手段と、
    を含むことを特徴とするモジュール提供システム。
  2. 複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発用モジュールの選択を受け付けるモジュール選択受付手段と、
    選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定手段と、
    アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける環境選択受付手段と、
    選択された前記環境における不要なライブラリを排除する不要排除手段と、
    不要な前記ライブラリが排除された、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を開発者に提供する提供手段と、
    を含むことを特徴とするモジュール提供システム。
  3. 複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発用モジュールの選択を受け付けるモジュール選択受付手段と、
    選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定手段と、
    アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける環境選択受付手段と、
    選択された前記環境に基づいて、選択された前記アプリ開発用モジュールと、特定された前記アプリ開発用モジュールと、の各々のコードを最適化するコード最適化手段と、
    前記コードが最適化された、前記選択されたアプリ開発用モジュールと、前記特定された他のアプリ開発用モジュールと、を開発者に提供する提供手段と、
    を含むことを特徴とするモジュール提供システム。
  4. 複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発用モジュールの選択を受け付けるモジュール選択受付手段と、
    選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定手段と、
    アプリで重視される複数の項目のうちの少なくとも1つの項目の選択を受け付ける項目選択受付手段と、
    選択された前記アプリ開発用モジュール、特定された前記他のアプリ開発用モジュール、及び選択された前記項目に応じたプロファイルを、開発者に提供する提供手段と、
    を含むことを特徴とするモジュール提供システム。
  5. 複数のアプリ開発用モジュールのうち、AI(Artificial Intelligence)に関するアプリ開発用モジュールの選択、又は、XR(Cross Reality)に関するアプリ開発用モジュールの選択を受け付けるモジュール選択受付手段と、
    選択された前記AIに関するアプリ開発用モジュールに関連付けられた、XRに関する他のアプリ開発用モジュール、又は、選択された前記XRに関するアプリ開発用モジュールに関連付けられた、AIに関する他のアプリ開発用モジュールを特定する特定手段と、
    選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を開発者に提供する提供手段と、
    前記XRに関するアプリ開発用モジュールに基づいて、前記AIに関するアプリ開発用モジュールのパラメータを調整するパラメータ調整手段と、
    を含み、
    前記提供手段は、前記パラメータが調整された前記AIに関するアプリ開発用モジュールを提供する、
    ことを特徴とするモジュール提供システム。
  6. 前記環境選択受付手段は、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、の組み合わせに応じた複数の環境の中から、前記選択を受け付ける、
    ことを特徴とする請求項1〜3の何れかに記載のモジュール提供システム。
  7. 前記環境は、前記アプリの展開先のデバイスである、
    ことを特徴とする請求項1〜3,6の何れかに記載のモジュール提供システム。
  8. 複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発用モジュールの選択を受け付けるモジュール選択受付ステップと、
    選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定ステップと、
    アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける環境選択受付ステップと、
    選択された前記アプリ開発用モジュール、特定された前記他のアプリ開発用モジュール、及び選択された前記環境の間におけるライブラリの重複を排除する重複排除ステップと、
    前記ライブラリの重複が排除された、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を開発者に提供する提供ステップと、
    を含むことを特徴とするモジュール提供方法。
  9. 複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発用モジュールの選択を受け付けるモジュール選択受付ステップと、
    選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定ステップと、
    アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける環境選択受付ステップと、
    選択された前記環境における不要なライブラリを排除する不要排除ステップと、
    不要な前記ライブラリが排除された、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を開発者に提供する提供ステップと、
    を含むことを特徴とするモジュール提供方法。
  10. 複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発用モジュールの選択を受け付けるモジュール選択受付ステップと、
    選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定ステップと、
    アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける環境選択受付ステップと、
    選択された前記環境に基づいて、選択された前記アプリ開発用モジュールと、特定された前記アプリ開発用モジュールと、の各々のコードを最適化するコード最適化ステップと、
    前記コードが最適化された、前記選択されたアプリ開発用モジュールと、前記特定された他のアプリ開発用モジュールと、を開発者に提供する提供ステップと、
    を含むことを特徴とするモジュール提供方法。
  11. 複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発用モジュールの選択を受け付けるモジュール選択受付ステップと、
    選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定ステップと、
    アプリで重視される複数の項目のうちの少なくとも1つの項目の選択を受け付ける項目選択受付ステップと、
    選択された前記アプリ開発用モジュール、特定された前記他のアプリ開発用モジュール、及び選択された前記項目に応じたプロファイルを、開発者に提供する提供ステップと、
    を含むことを特徴とするモジュール提供方法。
  12. 複数のアプリ開発用モジュールのうち、AI(Artificial Intelligence)に関するアプリ開発用モジュールの選択、又は、XR(Cross Reality)に関するアプリ開発用モジュールの選択を受け付けるモジュール選択受付ステップと、
    選択された前記AIに関するアプリ開発用モジュールに関連付けられた、XRに関する他のアプリ開発用モジュール、又は、選択された前記XRに関するアプリ開発用モジュールに関連付けられた、AIに関する他のアプリ開発用モジュールを特定する特定ステップと、
    選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を開発者に提供する提供ステップと、
    前記XRに関するアプリ開発用モジュールに基づいて、前記AIに関するアプリ開発用モジュールのパラメータを調整するパラメータ調整ステップと、
    を含み、
    前記提供ステップは、前記パラメータが調整された前記AIに関するアプリ開発用モジュールを提供する、
    ことを特徴とするモジュール提供方法。
  13. 複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発用モジュールの選択を受け付けるモジュール選択受付手段、
    選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定手段、
    アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける環境選択受付手段、
    選択された前記アプリ開発用モジュール、特定された前記他のアプリ開発用モジュール、及び選択された前記環境の間におけるライブラリの重複を排除する重複排除手段、
    前記ライブラリの重複が排除された、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を開発者に提供する提供手段、
    としてコンピュータを機能させるためのプログラム。
  14. 複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発用モジュールの選択を受け付けるモジュール選択受付手段、
    選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定手段、
    アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける環境選択受付手段、
    選択された前記環境における不要なライブラリを排除する不要排除手段、
    不要な前記ライブラリが排除された、選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を開発者に提供する提供手段、
    としてコンピュータを機能させるためのプログラム。
  15. 複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発用モジュールの選択を受け付けるモジュール選択受付手段、
    選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定手段、
    アプリの展開先である複数の環境のうちの少なくとも1つの環境の選択を受け付ける環境選択受付手段、
    選択された前記環境に基づいて、選択された前記アプリ開発用モジュールと、特定された前記アプリ開発用モジュールと、の各々のコードを最適化するコード最適化手段、
    前記コードが最適化された、前記選択されたアプリ開発用モジュールと、前記特定された他のアプリ開発用モジュールと、を開発者に提供する提供手段、
    としてコンピュータを機能させるためのプログラム。
  16. 複数のアプリ開発用モジュールのうちの少なくとも1つのアプリ開発用モジュールの選択を受け付けるモジュール選択受付手段、
    選択された前記アプリ開発用モジュールに関連付けられた他のアプリ開発用モジュールを特定する特定手段、
    アプリで重視される複数の項目のうちの少なくとも1つの項目の選択を受け付ける項目選択受付手段、
    選択された前記アプリ開発用モジュール、特定された前記他のアプリ開発用モジュール、及び選択された前記項目に応じたプロファイルを、開発者に提供する提供手段、
    としてコンピュータを機能させるためのプログラム。
  17. 複数のアプリ開発用モジュールのうち、AI(Artificial Intelligence)に関するアプリ開発用モジュールの選択、又は、XR(Cross Reality)に関するアプリ開発用モジュールの選択を受け付けるモジュール選択受付手段、
    選択された前記AIに関するアプリ開発用モジュールに関連付けられた、XRに関する他のアプリ開発用モジュール、又は、選択された前記XRに関するアプリ開発用モジュールに関連付けられた、AIに関する他のアプリ開発用モジュールを特定する特定手段、
    選択された前記アプリ開発用モジュールと、特定された前記他のアプリ開発用モジュールと、を開発者に提供する提供手段、
    前記XRに関するアプリ開発用モジュールに基づいて、前記AIに関するアプリ開発用モジュールのパラメータを調整するパラメータ調整手段、
    としてコンピュータを機能させ、
    前記提供手段は、前記パラメータが調整された前記AIに関するアプリ開発用モジュールを提供する、
    プログラム。
JP2019132918A 2019-07-18 2019-07-18 モジュール提供システム、モジュール提供方法、及びプログラム Active JP6916843B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019132918A JP6916843B2 (ja) 2019-07-18 2019-07-18 モジュール提供システム、モジュール提供方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019132918A JP6916843B2 (ja) 2019-07-18 2019-07-18 モジュール提供システム、モジュール提供方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2021018527A JP2021018527A (ja) 2021-02-15
JP6916843B2 true JP6916843B2 (ja) 2021-08-11

Family

ID=74564258

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019132918A Active JP6916843B2 (ja) 2019-07-18 2019-07-18 モジュール提供システム、モジュール提供方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6916843B2 (ja)

Also Published As

Publication number Publication date
JP2021018527A (ja) 2021-02-15

Similar Documents

Publication Publication Date Title
JP4776626B2 (ja) フォントサービス提供方法及びこの方法を実行するシステム
US8504981B2 (en) Application development support device, program, and recording medium
US20130132471A1 (en) Application Development Support Device, Program and Storage Medium
JP2006285914A (ja) データ検索処理装置及びプログラム
JP2010092501A (ja) エラー通知方法およびエラー通知装置
JP6687878B2 (ja) 情報処理装置およびプログラム
CN112230909A (zh) 小程序的数据绑定方法、装置、设备及存储介质
CN111428170A (zh) web页面渲染方法及装置
KR101282254B1 (ko) 화상처리장치 및 화상처리방법과 그 화상처리방법을 수행할 수 있는 프로그램이 포함된 기록매체
JP6916843B2 (ja) モジュール提供システム、モジュール提供方法、及びプログラム
JP7014960B2 (ja) 情報処理装置、サーバ、その処理方法及びプログラム
US20200097271A1 (en) Method and system for operating a software application on a processor of a mobile device
CN110083284A (zh) 候选信息处理装置、候选信息显示方法、存储介质及电子设备
US20150317404A1 (en) Accessing Content in a Rich Internet Application
JP6635104B2 (ja) 情報処理装置、その処理方法及びプログラム
JP2021039624A (ja) 情報処理装置および情報処理システム
JP2008041002A (ja) 文書処理装置および文書処理プログラム
JP2004164541A (ja) オーディオプレーヤーパネル置換方法及び装置
JP6361770B2 (ja) 情報処理装置とその処理方法及びプログラム
JP7331917B2 (ja) 情報処理システム及び情報処理システムの制御方法
JP6736940B2 (ja) 操作支援装置、操作支援方法およびプログラム
JP6705993B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
KR100818978B1 (ko) 왑 페이지의 한글 표시 및 한글 입력을 수행하는 이동통신단말장치 및 한글 입출력 방법 및 그 방법을 제공하는서비스 서버
US20150095792A1 (en) System and method for integrating a mixed reality system
KR100478399B1 (ko) 폰트 서비스 제공 방법 및 상기 방법을 수행하는 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210330

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210716

R150 Certificate of patent or registration of utility model

Ref document number: 6916843

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150