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

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

▶ 株式会社オービックの特許一覧

特開2022-132054アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム
<>
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図1
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図2
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図3
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図4
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図5
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図6
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図7
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図8
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図9
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図10
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図11
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図12
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図13
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図14
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図15
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図16
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図17
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図18
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図19
  • 特開-アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022132054
(43)【公開日】2022-09-07
(54)【発明の名称】アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラム
(51)【国際特許分類】
   G06F 8/33 20180101AFI20220831BHJP
   G06Q 10/10 20120101ALI20220831BHJP
【FI】
G06F8/33
G06Q10/10 310
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021175710
(22)【出願日】2021-10-27
(31)【優先権主張番号】P 2021031249
(32)【優先日】2021-02-26
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】398040527
【氏名又は名称】株式会社オービック
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】山下 紘平
(72)【発明者】
【氏名】馬場 健人
(72)【発明者】
【氏名】上野 剛光
【テーマコード(参考)】
5B376
5L049
【Fターム(参考)】
5B376BC50
5L049AA12
(57)【要約】
【課題】開発者が実際のアプリケーションにどのような権限制御が行われるかを適切に判断・管理することが可能なアプリ開発支援システムを提供すること。
【解決手段】本実施の形態に係るアプリ開発支援システムは、マスタページについてのロジックとその権限の一覧をマトリックス状に表示したセキュリティ設定画面を表示させる画面表示制御手段と、前記セキュリティ設定画面上での開発者の操作に応じて、マスタページの各ロジックのセキュリティを設定する設定手段と、を備えている。
【選択図】図2
【特許請求の範囲】
【請求項1】
制御部を備えたアプリ開発支援システムであって、
前記制御部は、
マスタページについてのロジックとその権限の一覧をマトリックス状に表示したセキュリティ設定画面を表示させる画面表示制御手段と、
前記セキュリティ設定画面上での開発者の操作に応じて、マスタページの各ロジックのセキュリティを設定する設定手段と、
を備えたことを特徴とするアプリ開発支援システム。
【請求項2】
前記マスタページに設定されたセキュリティは、当該マスタページに従属する子画面に継承されることを特徴とする請求項1に記載のアプリ開発支援システム。
【請求項3】
画面表示制御手段は、前記マスタページ及び当該マスタページに従属する子画面について、設定されたマスタページのセキュリティを、一覧で照会可能に構成されていることを
特徴とする請求項1又は請求項2に記載のアプリ開発支援システム。
【請求項4】
前記設定手段は、前記ロジックに含まれる処理フローから別のロジックを呼び出すためのサブフローに割り当てられたロジック情報がある場合、前記セキュリティ設定画面上での開発者の操作に応じて、当該サブフローに割り当てられたロジック情報を一覧で設定可能に構成されており、前記表示制御手段は、当該サブフローに割り当てられたロジックを、当該サブフローを含む呼び出し元のロジック配下にツリー形式で再帰的に照会可能に構成されていることを特徴とする請求項1~3のいずれか1つに記載のアプリ開発支援システム。
【請求項5】
前記画面表示制御手段は、前記サブフローに割り当てられたロジックに対して、前記セキュリティ設定画面上での開発者の操作に応じて設定されたセキュリティに連動して、当該サブフローを含む呼び出し元のロジック配下にツリー表示された対応するロジックに当該設定されたセキュリティと同一内容を照会可能に構成されていることを特徴とする請求項4に記載のアプリ開発支援システム。
【請求項6】
前記ロジックは、新規登録ロジック、修正ロジック、削除ロジック、照会ロジック、起動時ロジックの少なくとも1つを含むことを特徴とする請求項1~5のいずれか1つに記載のアプリ開発支援システム。
【請求項7】
前記アプリ開発支援システムは、GUI操作の定義でアプリケーションを開発可能なシステムであることを特徴とする請求項1~6のいずれか1つに記載のアプリ開発支援システム。
【請求項8】
制御部を備えた情報処理装置に実行させるためのアプリ開発支援方法であって、
前記制御部で実行される、
マスタページについてのロジックとその権限の一覧をマトリックス状に表示したセキュリティ設定画面を表示させる画面表示制御ステップと、
前記セキュリティ設定画面上での開発者の操作に応じて、マスタページの各ロジックのセキュリティを設定する設定ステップと、
を含むことを特徴とするアプリ開発支援方法。
【請求項9】
制御部を備えた情報処理装置に実行させるためのアプリ開発支援プログラムであって、
前記制御部において、
マスタページについてのロジックとその権限の一覧をマトリックス状に表示したセキュリティ設定画面を表示させる画面表示制御ステップと、
前記セキュリティ設定画面上での開発者の操作に応じて、マスタページの各ロジックのセキュリティを設定する設定ステップと、
を実行させるためのアプリ開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラムに関する。
【背景技術】
【0002】
従来、アプリ開発支援システムとして、例えば、特許文献1がある。かかる特許文献1のシステムは、開発環境に接続された端末からの入力に基づいてアプリケーションプログラムを生成し、生成されたアプリケーションプログラムを視覚的に表示するプログラム開発部と、開発環境を利用する複数のユーザ間におけるコミュニケーション機能を提供するコミュニケーション部であって、第1のユーザが利用する開発環境のプログラム開発部によって生成されたアプリケーションプログラムの一部または全部を、第2のユーザが利用する開発環境において利用可能に複製させ、視覚的に表示させるコミュニケーション部と、を有する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018-55588号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1では、開発者が実際のアプリケーションにどのような権限制御が行われるかを適切に判断・管理することに関して何等記載されていない。
【0005】
本発明は、上記に鑑みてなされたものであり、開発者が実際のアプリケーションにどのような権限制御が行われるかを適切に判断・管理することが可能なアプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明は、制御部を備えたアプリ開発支援システムであって、前記制御部は、マスタページについてのロジックとその権限の一覧をマトリックス状に表示したセキュリティ設定画面を表示させる画面表示制御手段と、前記セキュリティ設定画面上での開発者の操作に応じて、マスタページの各ロジックのセキュリティを設定する設定手段と、を備えたことを特徴とする。
【0007】
また、本発明の一態様によれば、前記マスタページに設定されたセキュリティは、当該マスタページに従属する子画面に継承されることにしてもよい。
【0008】
また、本発明の一態様によれば、画面表示制御手段は、前記マスタページ及び当該マスタページに従属する子画面について、設定されたマスタページのセキュリティを、一覧で照会可能に構成されていることにしてもよい。
【0009】
また、本発明の一態様によれば、前記設定手段は、前記ロジックに含まれる処理フローから別のロジックを呼び出すためのサブフローに割り当てられたロジック情報がある場合、前記セキュリティ設定画面上での開発者の操作に応じて、当該サブフローに割り当てられたロジック情報を一覧で設定可能に構成されており、前記表示制御手段は、当該サブフローに割り当てられたロジックを、当該サブフローを含む呼び出し元のロジック配下にツリー形式で再帰的に照会可能に構成されていることにしてもよい。
【0010】
また、本発明の一態様によれば、前記画面表示制御手段は、前記サブフローに割り当てられたロジックに対して前記セキュリティ設定画面上での開発者の操作に応じて設定されたセキュリティに連動して、当該サブフローを含む呼び出し元のロジック配下にツリー表示された対応するロジックに当該設定されたセキュリティと同一内容を照会可能に構成されていてもよい。
【0011】
また、本発明の一態様によれば、前記ロジックは、新規登録ロジック、修正ロジック、削除ロジック、照会ロジック、起動時ロジックの少なくとも1つを含むこともしてもよい。
【0012】
また、本発明の一態様によれば、前記アプリ開発支援システムは、GUI操作の定義でアプリケーションを開発可能なシステムであることにしてもよい。
【0013】
また、上述した課題を解決し、目的を達成するために、本発明は、制御部を備えた情報処理装置に実行させるためのアプリ開発支援方法であって、前記制御部で実行される、マスタページについてのロジックとその権限の一覧をマトリックス状に表示したセキュリティ設定画面を表示させる画面表示制御ステップと、前記セキュリティ設定画面上での開発者の操作に応じて、マスタページの各ロジックのセキュリティを設定する設定ステップと、を含むことを特徴とする。
【0014】
また、上述した課題を解決し、目的を達成するために、本発明は、制御部を備えた情報処理装置に実行させるためのアプリ開発支援プログラムであって、前記制御部において、
マスタページについてのロジックとその権限の一覧をマトリックス状に表示したセキュリティ設定画面を表示させる画面表示制御ステップと、前記セキュリティ設定画面上での開発者の操作に応じて、マスタページの各ロジックのセキュリティを設定する設定ステップと、を実行させるためのアプリ開発支援プログラムであることを特徴とする。
【発明の効果】
【0015】
本発明によれば、開発者が実際のアプリケーションにどのような権限制御が行われるかを適切に判断・管理することが可能になるという効果を奏する。
【図面の簡単な説明】
【0016】
図1図1は、実施の形態のシステム全体の構成の概略を示す図である。
図2図2は、アプリ開発支援システムの構成の一例を示すブロック図である。
図3図3は、業務支援システムの構成の一例を示すブロック図である。
図4図4は、アプリ開発支援システムの制御部の処理の具体例を説明するための図である。
図5図5は、アプリ開発支援システムの制御部の処理の具体例を説明するための図である。
図6図6は、アプリ開発支援システムの制御部の処理の具体例を説明するための図である。
図7図7は、アプリ開発支援システムの制御部の処理の具体例を説明するための図である。
図8図8は、アプリ開発支援システムの制御部の処理の具体例を説明するための図である。
図9図9は、アプリ開発支援システムの制御部の処理の具体例を説明するための図である。
図10図10は、アプリ開発支援システムの制御部の処理の具体例を説明するための図である。
図11図11は、アプリ開発支援システムの制御部の処理の具体例を説明するための図である。
図12図12は、アプリ開発支援システムの制御部の処理の具体例を説明するための図である。
図13図13は、アプリ開発支援システムの制御部の処理の具体例を説明するための図である。
図14図14は、業務支援システムの制御部の処理の具体例を説明するための図である。
図15図15は、業務支援システムの制御部の処理の具体例を説明するための図である。
図16図16は、業務支援システムの制御部の処理の具体例を説明するための図である。
図17図17は、業務支援システムの制御部の処理の具体例を説明するための図である。
図18図18は、業務支援システムの制御部の処理の具体例を説明するための図である。
図19図19は、業務支援システムの制御部の処理の具体例を説明するための図である。
図20図20は、アプリ開発支援システムの制御部の処理の具体例を説明するための図である。
【発明を実施するための形態】
【0017】
以下に、本発明に係るアプリ開発支援システム、アプリ開発支援方法、及びアプリ開発支援プログラムの実施の形態を、図面に基づいて詳細に説明する。なお、本実施形態によりこの発明が限定されるものではない。
【0018】
[1.概要]
本発明のアプリ開発支援システムは、ノーコード系/ローコード系、その他を問わず、少なくともアプリケーションの画面レイアウト・イベント・処理フロー及びセキュリティ設定の範囲をGUI操作の定義のみでプログラムソースのコーディングを行わなくてもアプリケーションを開発可能なシステムである。
【0019】
ここで、「ノーコード系」とは、ノーコード、コーディングレス、ノンコーディング等をいい、アプリケーション開発者がプログラムのソースコードを一切作成・修正することなくGUI操作等で既存機能・部品等の配置・組合せにより、簡易・定型的なアプリケーションを作成できる仕組みをいう。「ローコード系」とは、ローコード等をいい、基本的にはノーコードと同様であるが、アプリケーションの柔軟性に欠けるため、必要に応じて部分的にプログラムのコーディングや外部APIの利用等を行い、柔軟なカスタマイズまで可能とする仕組みをいう。また、アプリケーション開発支援を行う機能群全般を「基盤、プラットフォーム、又は開発ツール」といい、ここでは、「基盤」の用語を使用する。
【0020】
以下の説明では、アプリ開発支援システムとして、ローコード基盤を一例として説明するが、本発明はこれに限られるものではなく、GUI操作の定義でアプリケーションを開発可能な全てのシステムに適用可能である。
【0021】
例えば、企業がERPシステム等の情報システムに求めるセキュリティ要件の重要性は、近年ますます高まっている。例えば、監査における統制要件では、情報システム内でユーザの権限を適切に管理されているかどうかがチェックの対象となる。また、マイナンバーの管理においては、閲覧/編集などの権限を持つユーザを適切に管理することが法的にも必要とされる。企業が適切に情報を管理し業務を行うためにも、ERPシステム等の情報システムには、ユーザ毎にセキュリティをチェックし、適切なユーザのみが情報にアクセス、編集できるような仕組みが求められる。
【0022】
経産省のDXレポートの中で、数十年以上にわたり稼働し続け老朽化したシステムが、日本の国際競争力の低下や経済停滞をもたらすという問題が指摘されている(「2025年の崖」問題)。老朽化を引き起こす背景の一つに、情報システムが企業の業務運用と強く結びついていることから、一度完成したシステムを刷新するコストが大きすぎる、ということが挙げられる。
【0023】
こういった問題の一つの解決策として、ローコード基盤(ツール)を用いて、コストを抑えてシステム開発を行う手法が近年注目されている。出願人は、長年にわたり企業に求められるセキュリティ要件を満たすシステム基盤を構築しており、この強みとローコード基盤の特性を生かしてセキュリティ設定を簡易的に行えるような仕組みを考案した。
【0024】
ローコード基盤では、ユーザがドラッグ&ドロップでボタンなどのコントロール(以下、UI)を配置し、別で用意したクリックイベント等(以下、ロジック)をUIに割り付けていく。このため、必然的にUIとロジックがそれぞれ独立した構成になっていなければならない。従来のプログラミングによるシステム開発では、UIとロジックが一体化しており、ここを分離するというのはあまり一般的ではなかった。
【0025】
ここで、システムの例として、削除ボタン(UI)をクリックすると、削除処理(ロジック)が実行されるようなケースを想定する。セキュリティを担保するためには、削除権限のないユーザが削除処理を実行できないようにしなければならない。
【0026】
上述したように、従来型システムではUIとロジックの2つが独立していなかったため、セキュリティの設定も削除ボタン(UI)に依存せざるを得なかった。セキュリティ設定がUIに依存してしまうと、システムの各画面のUI毎にセキュリティの設定が必要となり、システムが大規模化すると、セキュリティ設定やそれに伴うテストにも大きなコストがかかる。具体的には、削除ボタンの例で言えば、部門マスタメンテ、事業所マスタメンテの削除ボタンそれぞれ(画面毎)にセキュリティ設定が必要となる。
【0027】
また、システム変更時にも常にセキュリティを考慮しなければならないため、システム変更を行うことができるのは高度なスキルを持った人材に限定される。結果として、システム構築後の継続的なシステム改善が難しくなる(システムが硬直化しやすい)という問題がある。こういったシステム設定の複雑化も、前述の「2025年の崖」問題の一因に挙げられる。
【0028】
本発明では、ローコード基盤によってUIとロジックが分離している状態が実現したことで、ロジックに対してセキュリティをかけることが可能になった。これにより、先ほどの削除ボタンと削除処理の関係でいえば、削除処理だけにセキュリティをかけられるようになった。
【0029】
このUIとロジックの分離と、マスタページからのロジック継承の仕組みを組み合わせることで、ローコード基盤を使って開発を行う際に、セキュリティを極力意識せずにシステム構築を行うことができるようになった。なお、ローコード基盤で作成されるシステム(アプリケーション)のことを、本明細書では、説明上、「実行環境」と呼称する。
【0030】
より具体的には、本発明では、以下のことを実現する。従来型のシステムでは、個々のジョブをプログラミングにより開発する手法が一般的であった。そのため、システム全体でセキュリティ設定が正しく行われているかどうかを確認するには、一つ一つのジョブに対して設定の漏れやミスがないかを確認する必要があった。
【0031】
このように、従来型の開発手法では、セキュリティ設定を簡単に確認する仕組みが存在せず、システム全体でセキュリティ設定が正しく行われていることを担保するためには、プログラムの完成後に大規模なテスト作業を実施することが一般的だった。その結果、一度システムが完成してしまうと、その後の柔軟なシステム変更が難しく、システムの老朽化を引き起こしやすいという課題があった。
【0032】
ローコード開発基盤では、ユーザが使用する通常のジョブとは異なり、複数のジョブで共通して使用するような処理を集約したマスタページが存在する。マスタページでは、実行する処理の設定に加えて、実行に必要なユーザ権限のセキュリティを設定することができる。
【0033】
本発明では、これらのセキュリティ情報を可視化するため、縦軸に処理、横軸にユーザ権限を表示して、処理にかかるセキュリティ設定全体を一覧表形式で確認できるようにすることにより、開発者が実際のアプリケーションにどのような権限制御が行われるかを適切に判断・管理することが可能となる。
【0034】
[2.構成]
[2-1.システム全体の構成]
図1は、実施の形態のシステム全体の構成の概略を示す図である。図1において、アプリ開発支援システム(例えば、Webサーバ)100、業務支援システム(例えば、Webサーバ)200、開発ユーザ端末300、業務ユーザ端末400は、ネットワーク500に接続されており、互いにデータ通信可能に構成されている。
【0035】
アプリ開発支援システム100は、開発ユーザ端末300・・・に、例えば、ローコード基盤プラットフォーム(ツール)を提供するものであり、業務用アプリの定義データ(ロジック情報、セキュリティ情報を含む)を生成するための設定画面(例えば、Webページ)を提供する。定義データは、業務用アプリの元となるデータであり、「オブジェクト」、「パッケージ」、「ソース」ともいう。以下の説明では、アプリ開発支援システム100を「ローコード基盤」と称する場合がある。
【0036】
開発ユーザ端末300・・・は、業務用アプリの作成担当である開発ユーザ(「開発者」ともいう)がアプリ開発支援システム100にアクセスして、業務用アプリの定義データを作成させるためのものである。開発ユーザ端末300・・・は、例えば、ブラウザを使用して、アプリ開発支援システム100から提供される設定画面で操作を行う。
【0037】
業務支援システム200は、アプリ開発支援システム100のデータベースから業務用アプリの定義データを取得して、取得した定義データをデータ変換して業務用アプリ206aを生成する。業務支援システム200は、生成した業務用アプリ206aを実行し、業務ユーザ端末400・・・に業務実行画面(例えば、Webページ)を提供する。以下の説明では、アプリ開発支援システム100で作成した定義データに基づく業務用アプリを実行する業務支援システム200を単に「実行環境」と称する場合がある。
【0038】
業務ユーザ端末400・・・は、業務担当者である業務ユーザ(「ユーザ」ともいう)が業務支援システム200にアクセスして、業務を実行するためのものである。業務ユーザ端末400・・・は、例えば、ブラウザを使用して、業務支援システム200から提供される業務実行画面で操作を行う。
【0039】
[2-2.アプリ開発支援システムの構成]
図1のアプリ開発支援システム(ローコード基盤)100の構成について、図2を参照して説明する。図2は、図1のアプリ開発支援システム100の構成の一例を示すブロック図である。
【0040】
アプリ開発支援システム100は、ワークステーションや市販のデスクトップ型やノート型のパーソナルコンピュータ等である。
【0041】
アプリ開発支援システム100は、図2に示すように、制御部102と通信インターフェース部104と記憶部106と入出力インターフェース部108と、を備えている。アプリ開発支援システム100が備えている各部は、任意の通信路を介して通信可能に接続されている。
【0042】
通信インターフェース部104は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、アプリ開発支援システム100をネットワーク500に通信可能に接続する。通信インターフェース部104は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク500は、アプリ開発支援システム100と、開発ユーザ端末300・・・、業務支援システム200、サーバ600等とを相互に通信可能に接続する機能を有し、例えばインターネットやLAN(Local Area Network)等である。
【0043】
入出力インターフェース部108には、入力装置112および出力装置114が接続されている。出力装置114には、モニタ(家庭用テレビを含む)の他、スピーカやプリンタを用いることができる。入力装置112には、キーボード、マウス、およびマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置114をモニタ114とし、入力装置112をキーボード112またはマウス112として記載する場合がある。また、ユーザが出力装置(モニタ)114の画面に対して入力装置112で操作することを、単に「ユーザ操作」と記載する場合がある。
【0044】
記憶部106には、各種のデータベース、テーブル、およびファイルなどが格納される。記憶部106には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部206として、例えば、RAM(Random Access Memory)・ROM(Read Only Memory)等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、および光ディスク等を用いることができる。
【0045】
記憶部106は、データベース106aと、セキュリティ設定可能マスタ106bと、を備えている。
【0046】
データベース106aは、業務用アプリの定義データ(ロジック情報、セキュリティ情報等)等のデータを格納するためのものである。データベース106aは外部に設けられていてもよく、例えば、サーバ600に設けられていてもよい。
【0047】
セキュリティ設定可能マスタ106bは、コントロール、アクション、セキュリティ設定可能か否かを示す設定可否フラグを関連づけて登録したテーブル等で構成することができる(図20参照)。セキュリティ設定可能マスタ106bは、設定画面でコントロールのアクションについてセキュリティが設定される場合に参照される。
【0048】
制御部102は、アプリ開発支援システム100を統括的に制御するCPU等である。制御部102は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。制御部102は、機能概念的に、画面制御部102aと、設定部102bと、登録部102cと、検知部102dと、マスタメンテ部102eと、を備えている。
【0049】
画面制御部102aは、開発ユーザ端末300・・・からのアクセスに応じて、開発ユーザ端末300にロジック情報やロジック毎のセキュリティ情報を設定するための各種設定画面を提供する。また、画面制御部102aは、開発ユーザ端末300・・・からのアクセスに応じて、開発ユーザ端末300にマスタページについてのロジック(処理)と権限の一覧をマトリックス状に表示したセキュリティ設定画面を提供してもよい。また、画面制御部102aは、マスタページ及び当該マスタページに従属する子画面について、設定されたマスタページのセキュリティを一覧で照会(表示)してもよい。画面制御部102aは、サブフローに割り当てられたロジックを、当該サブフローを含む呼び出し元のロジック配下にツリー形式で再帰的に照会(表示)してもよい。画面制御部102aは、サブフローに割り当てられたロジックに対してセキュリティ設定画面上での開発者の操作に応じて設定されたセキュリティに連動して、当該サブフローを含む呼び出し元のロジック配下にツリー表示された対応するロジックに当該設定されたセキュリティと同一内容を照会(表示)してもよい。画面制御部102aは、開発ユーザ端末300・・・からのアクセスに応じて、開発ユーザ端末300にコントロールのアクションのセキュリティを設定するための設定画面を提供してもよい。
【0050】
設定部102bは、設定画面上での開発ユーザ端末300の開発者の操作に応じて、マスタページ(親画面)と当該マスタページに従属する子画面のロジック情報及びロジック毎のセキュリティ情報を設定し、その際、マスタページで設定されたロジック情報及びセキュリティ情報を子画面で継承させる。子画面では、マスタページで設定されたセキュリティの変更が不可に構成されていてもよい。設定部102bは、ロジック情報に含まれる処理フローから別のロジック情報を呼び出すためのサブフローに割り当てられたロジック情報に対してセキュリティ情報を設定し、当該サブフローに割り当てられたロジック情報に設定されたセキュリティ情報を、当該サブフローを含む呼び出し元のロジック情報に継承させることにしてもよい。設定部102bは、上述のセキュリティ設定画面上での開発ユーザ端末300の開発者の操作に応じて、マスタページの各ロジックのセキュリティ情報を設定してもよい。設定部102bは、ロジックに含まれる処理フローから別のロジックを呼び出すためのサブフローに割り当てられたロジック情報がある場合、セキュリティ画面上での開発ユーザ端末300の開発者の操作に応じて、当該サブフローに割り当てられたロジック情報を一覧で設定してもよい。
【0051】
なお、業務支援システム200(実行環境)のセキュリティ種別の設定の対象はユーザとジョブの組合せで、この結果として、ジョブ(画面)に含まれるロジックのセキュリティがユーザ毎の操作権限として反映される(図14及び図15参照)。
【0052】
登録部102cは、設定されたマスタページ及び当該親画面に従属する子画面のロジック情報及びセキュリティ情報を所定のフォーマットのデータ形式に変換して、業務用アプリの定義データとしてデータベース106aに登録する。
【0053】
検知部102dは、設定画面において、開発者がコントロールのアクションについてセキュリティを設定する場合に、セキュリティ設定可能マスタ106bを参照して、当該コントロールのアクションの設定が可能か否かを検知する。この場合、検知部102dは、
セキュリティ設定可能マスタ106bを参照して、当該コントロールのアクションの可否フラグが設定可能である場合には、設定を許可し、当該コントロールのアクションの可否フラグが設定不可である場合には、エラーを通知することにしてもよい。
【0054】
マスタメンテ部102eは、セキュリティ設定可能マスタ106bに対して、データの登録・追加・編集等を行って設定する。
【0055】
[2-3.業務支援システムの構成例]
図1の業務支援システム(実行環境)200の構成について、図3を参照して説明する。図3は、図1の業務支援システム200の構成の一例を示すブロック図である。
【0056】
業務支援システム200は、ワークステーションや市販のデスクトップ型やノート型のパーソナルコンピュータ等である。
【0057】
業務支援システム200は、図3に示すように、制御部103と通信インターフェース部204と記憶部206と入出力インターフェース部208と、を備えている。業務支援システム200が備えている各部は、任意の通信路を介して通信可能に接続されている。
【0058】
通信インターフェース部204は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、業務支援システム200をネットワーク500に通信可能に接続する。通信インターフェース部204は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク500は、業務支援システム200と、業務ユーザ端末400・・・、アプリ開発支援システム100、サーバ700等とを相互に通信可能に接続する機能を有し、例えばインターネットやLAN(Local Area Network)等である。
【0059】
入出力インターフェース部208には、入力装置212および出力装置214が接続されている。出力装置214には、モニタ(家庭用テレビを含む)の他、スピーカやプリンタを用いることができる。入力装置212には、キーボード、マウス、およびマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置214をモニタ214とし、入力装置212をキーボード212またはマウス212として記載する場合がある。また、ユーザが出力装置(モニタ)214の画面に対して入力装置212で操作することを、単に「ユーザ操作」と記載する場合がある。
【0060】
記憶部206には、各種のデータベース、テーブル、およびファイルなどが格納される。記憶部206には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部206として、例えば、RAM(Random Access Memory)・ROM(Read Only Memory)等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、および光ディスク等を用いることができる。
【0061】
記憶部206は、業務用アプリ206aを格納する。業務用アプリ206aは、上述したように、アプリ開発支援システム100で作成された業務用アプリの定義データをデータ変換したものである。
【0062】
制御部202は、アプリ開発支援システム100を統括的に制御するCPU等である。制御部202は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。制御部202は、機能概念的に、実行部202aを備えている。
【0063】
実行部202aは、業務ユーザ端末400・・・からのアクセスに応じて、業務用アプリ206aを実行する。具体的には、実行部201aは、業務ユーザ端末400・・・からのアクセスに応じて、業務実行画面を提供して、業務実行画面上での業務ユーザ端末400のユーザ操作に応じて処理を行う。ユーザは、業務支援システム200にアクセスすることで、所定の業務を実行することができる。
【0064】
[3.処理の具体例]
図1図20を参照して、本実施の形態におけるアプリ開発支援システム100の制御部102及び業務支援システム200の制御部201の処理の具体例を説明する。図4~20は、本実施の形態におけるアプリ開発支援システム100の制御部102及び業務支援システム200の制御部201の処理の具体例を説明するための図である。
【0065】
(具体例1:ローコード基盤でのマスタページと子画面の関係性と処理のアドオン方法について)
図4を参照して、ローコード基盤でのマスタページと子画面の関係性と処理のアドオン方法を説明する。アプリ開発支援システム100の設定部102bは、設定画面上での開発ユーザ端末300の開発者の操作に応じて、マスタページ(親画面)と当該マスタページに従属する子画面のロジック情報及びロジック毎のセキュリティ情報を設定し、その際、マスタページで設定されたロジック情報及びセキュリティ情報を子画面で継承させる。子画面では、マスタページから継承したロジックのロジックフロー内の一部(プレースホルダー内)の変更のみが可能となっている。
【0066】
システムにおける各画面のテンプレートの役割を果たす画面をマスタページと呼ぶ。登録処理や、帳票の出力処理など、各画面の特性に合うマスタページを利用することで、各画面での開発コストを下げることができる。マスタページは、各子画面のテンプレート機能に相当する。マスタページ(親画面)と各画面(子画面)は、いわば親子関係になっている。マスタページ(親)側には、「プレースホルダー」と呼ばれる一つ又は複数のエリアが配置されており、子画面側は、そのエリアにのみコントロールを配置可能となっている。
【0067】
具体例1では、マスタページとそれを継承する画面(以下、子画面と呼称)との関係を利用して、セキュリティの設定を行う。
【0068】
図4は、マスタページと子画面の関係性と処理のアドオン方法を説明するための図である。図4(A)は、フロー設定画面、図4(B)は、フロー設定画面で設定される実行環境を示している。以下では、登録画面マスタページ(登録画面全般から参照されるマスタページ)を一例に挙げて説明する。
【0069】
登録画面マスタページには、登録系の画面(部門マスタメンテなど)で必要とされる新規登録、修正、削除、照会などの共通的な処理が予め設定されている。図4では、簡略化のため、削除処理のみを表示している。
【0070】
ローコード基盤の特性により、削除ボタン(UI)と削除処理(ロジック)は分離している。ローコード基盤側でマスタページの削除処理の設定を行う画面では、メッセージ表示などの各処理(以下、「アクション」と呼称する)を繋げることで、一連の業務処理をまとめたフローチャート(ロジックフロー)として設定できる。
【0071】
この中でプレースホルダーと書かれたアクションは、マスタページを継承した子画面側で具体的な処理を設定するための特殊なアクションとなる。マスタページを継承する子画面側では、マスタページにある削除処理を呼び出して利用する。
【0072】
子画面上で設定できるのは、(1)親画面(マスタページ)から継承したロジックフローについては、親画面側で設定されたプレースホルダーのアクションのみ、(2)子画面側で新たなロジックフローが作成可能で、それについては、子画面毎に自由に設定可能である。子画面では、フローチャート自体や、セキュリティ設定を行う必要がない。このため、同一のマスタページから継承するページ間ではセキュリティの一貫性が担保される。
【0073】
よって、マスタページを継承して子画面を作成する場合、各子画面の作成者(開発者)はセキュリティについて意識することなく、各画面処理のアドオンのみに専念することができる。セキュリティの詳しい設定方法に関しては、具体例3で説明する。
【0074】
図4(A)において、マスタページの権限設定が子画面に継承される。マスタページ及びその子画面では、実行時、削除権限が必要となる。図4(A)に示す例では、マスタページ削除処理設定画面でフローチャートを設定する。この例では、開始、アクション「メッセージを表示し(削除処理を実行します。よろしいですか?)」、「Yes」の場合のアクション「プレースホルダー:子画面削除処理」、「No」の場合のアクション「処理終了」が設定されている。
【0075】
このフローチャートは、子画面(部門マスタ削除処理設定画面や取引先マスタ削除処理設定画面)に引き継がれる。
【0076】
(具体例2:従来型システム開発とローコード基盤での開発でのセキュリティ設定の違い)
図5及び図6を参照して、従来型システム開発とローコード基盤での開発でのセキュリティ設定の違いを説明する。
【0077】
図5は、従来型システムのセキュリティ設定を説明するための図である。例えば、登録画面A、Bでは、新規登録ボタン、修正ボタン、削除ボタン、照会ボタンそれぞれにセキュリティが割りついていること(権限が設定されている)が一般的である。直感的ではあるものの、画面毎にUIは異なるため、画面毎に専門の技術者による設定作業が必要となる。すなわち、画面数×権限数の設定作業が必要となる。このように、従来型システムのセキュリティ設定は、システム構築における大きな負担となっていた。
【0078】
図6は、ローコード基盤でのセキュリティ設定を説明するための図である。ローコード基盤でのセキュリティ設定では、マスタページ(親画面)で各ロジックに対してセキュリティ設定を行い、マスタページ(親画面)で設定したロジックを子画面で継承させることで、各画面毎にセキュリティ設定を行う必要がなくなる。
【0079】
すなわち、全ての子画面でマスタページの同一ロジックを使用することができる。さらに、新たに登録画面を新規追加する場合にも、同じ登録画面のマスタページを継承しさえすれば、開発者は各画面固有の処理をアドオンするだけでよいため、セキュリティを意識することなくシステムの開発が可能になる(具体例1参照)。
【0080】
開発者の技術レベルにばらつきがあったとしても、この仕組みを用いることで、セキュリティを担保した開発を行うことができる。図6の例では各ボタン(新規登録ボタン、修正ボタン、削除ボタン、照会ボタン)のクリックイベントにセキュリティの付与されたロジックを割り付けているが、セキュリティの観点から割付先のコントロールは制限される必要がある(具体例5参照)。コントロールの制限については、具体例5で詳細に説明する。
【0081】
(具体例3:ローコード基盤におけるセキュリティの設定方法)
図7図11を参照して、ローコード基盤におけるセキュリティの設定方法を説明する。設定部102bは、マスタページについてのロジック(処理)とユーザ権限の一覧をマトリックス状に表示したセキュリティ設定画面上での開発ユーザ端末300の開発者の操作に応じて、マスタページの各ロジックのセキュリティ情報を設定する。
【0082】
ローコード基盤では、複数の処理をフローチャートとして設定することができる(具体例1参照)。上述したように、このフローチャートで実行される処理内容に応じて、権限を持ったユーザのみが処理を実行できるようにすることが必要とされる。
【0083】
ローコード基盤では、この設定したフローチャートを一つの単位としてセキュリティの設定を行うことができる(以降、一連のフローチャートを「ロジック」と呼称する)。
【0084】
図7は、セキュリティ設定画面の一例を示す図である。セキュリティ設定画面では、ロジック(新規登録ロジック、修正ロジック、削除ロジック、照会ロジック、起動時ロジック)を縦軸、ロジック実行に必要なユーザ権限(なし、起動、新規、修正、削除、照会、実行、出力)を横軸とした一覧形式となっており、ボックスをチェックすることで権限を設定することができる。
【0085】
図7に示す例では、新規登録ロジックに「新規」、修正ロジックに「修正」、削除ロジックに「削除」、照会ロジックに「照会」、起動時ロジックに「起動」の権限が設定されている。
【0086】
このように、一覧形式で表示することで、全てのロジックに対してセキュリティを一度に設定することができ、セキュリティの付与忘れを未然に防ぐことができる。
【0087】
設定されたセキュリティ設定画面は、照会が可能となっており、マスタページ及びその子画面から照会することができる。
【0088】
またロジック及びセキュリティ権限はマスタ上で管理されているため、開発者が自由にデータをカスタマイズすることができる。
【0089】
図8を参照して、図4と同様に登録画面マスタページの例を説明する。図8の左側は、フロー設定画面(図4(A)と同じ)、右側はセキュリティ設定画面の例を示している。図8では、説明の簡単のために、削除処理のみを示している。
【0090】
図8において、マスタページで設定されたロジックはマスタページ上でのみセキュリティ設定が可能となっている。マスタページのロジックを継承した子画面側では、セキュリティ設定を変更することができない。子画面では、セキュリティ設定画面の照会のみ可能のため、セキュリティの一貫性が担保される。
【0091】
図9及び図10を参照して、登録されるロジック情報を説明する。設定されたロジックはシリアライズ化されてJson形式でデータベース106aに保存される。1つの画面が1行のレコードとして登録され、その中に複数のロジックが1:Nの関係で紐づいて登録される。
【0092】
ロジック情報の中で、太字で示した部分がセキュリティに関連する情報となる。セキュリティ種別マスタの種別情報がJsonに埋め込まれ、実行環境側でこの情報を元にセキュリティ制御を行う。
【0093】
図9は、データベース106aに登録されるロジック情報(図7の一覧表の縦軸部分)の例を示している。図9に示すロジック情報の例では、画面情報、(画面ID、画面名称)、ロジックデータを含んでいる。
【0094】
図9に示す例では、画面ID「1」は、画面名称「登録画面マスタページ」、画面ID「2」は、画面名称「部門登録画面」、画面ID「3」は、画面名称「取引先登録画面」となっている。また、図9では、ロジックデータの一例を示しており、各画面のロジックデータはJson形式で保存される。
【0095】
図9は、セキュリティ種別マスタ(図7の一覧表の横軸部分)の例を示す図である。セキュリティ種別マスタメンテは、セキュリティ種別とセキュリティ名称を関連づけて登録している。図9に示す例では、セキュリティ種別「0」は、セキュリティ名称「起動」、セキュリティ種別「1」は、セキュリティ名称「新規追加」、セキュリティ種別「2」は、セキュリティ名称「修正」、セキュリティ種別「3」は、セキュリティ名称「削除」、セキュリティ種別「4」は、セキュリティ名称「照会」、セキュリティ種別「5」は、セキュリティ名称「帳票出力」となっている。このセキュリティ種別マスタを使用することで、簡易にセキュリティを設定することができる。
【0096】
マスタページのロジック内でセットされたプレースホルダーアクション(具体例1参照)は、子画面上で具体的なロジックとして再定義できる。
【0097】
図11は、データベース106aに登録される情報の例を説明するための図であり、左側がフロー設定画面の例、右側がデータベースに登録される情報(Json形式)の例を示している。フロー設定画面は、図4(A)と同様である。図11では、説明の簡単のために、削除処理のみを示している。
【0098】
(具体例3-2:ローコード基盤におけるセキュリティ設定方法(サブフロー使用時))
図12及び図13を参照して、ローコード基盤における、サブフロー使用時のセキュリティ設定方法を説明する。設定部102bは、ロジック情報に含まれる処理フローから別のロジック情報を呼び出すためのサブフローに割り当てられたロジック情報に対してセキュリティ情報を設定し、当該サブフローに割り当てられたロジック情報に設定されたセキュリティ情報を、当該サブフローを含む呼び出し元のロジック情報に継承させる。
【0099】
設定部102bは、ロジックに含まれる処理フローから別のロジックを呼び出すためのサブフローに割り当てられたロジック情報がある場合、セキュリティ設定画面上での開発者の操作に応じて、当該サブフローに割り当てられたロジック情報を一覧で設定してもよい。
【0100】
画面制御部102aは、サブフローに割り当てられたロジックを、当該サブフローを含む呼び出し元のロジック配下にツリー形式で再帰的に照会(表示)してもよい。
【0101】
画面制御部102aは、サブフローに割り当てられたロジックに対して、セキュリティ設定画面上での開発者の操作に応じて設定されたセキュリティに連動して、当該サブフローを含む呼び出し元のロジック配下にツリー表示された対応するロジックに当該設定されたセキュリティと同一内容を照会(表示)してもよい。
【0102】
ロジックの設定フロー(具体例1参照)の中で使用できるアクションの中にはサブフロー呼出アクションという、別のフローチャート自体を呼び出すことができる機能が存在する。これにより、共通部分となるロジックを複数のロジック間で共有することができる。ロジック内でこのサブフローが使用されている場合、セキュリティの設定方法(具体例3参照)が少し変化する。
【0103】
図12は、ローコード基盤におけるセキュリティ設定方法(サブフロー使用時)を説明するための図である。図12に示す例では、メイン処理A1では、サブ処理Bを呼び出し、サブ処理Bでは、サブ処理Cを呼び出す。また、メイン処理A2では、サブ処理Bとサブ処理Dを呼び出す。
【0104】
図13は、図12のサブフロー使用時のセキュリティ設定を説明するための図である。ロジック内でサブフローを設定している場合、セキュリティに関しては、メイン処理だけでなくサブ処理にもセキュリティを設定することができる。複雑なフローになると、処理が何重にも入れ子になることが考えられるため、セキュリティ設定画面上では、図13に示すように、サブで呼び出される処理を呼び出し側のメイン処理の配下(メイン処理の下位層)に表示する。
【0105】
サブ処理のセキュリティ設定を変更すれば、メイン処理配下(メイン処理の下位層)の情報も自動的に変更される。図13に示す例では、サブ処理Bの設定を変更した場合を表記している。処理実行時は、メイン処理とサブ処理に必要な権限を合算し、必要な全ての権限をユーザが持つ場合のみ処理が実行可能となる(それ以外の場合は権限チェックでエラーにする。)。
【0106】
(具体例4:セキュリティ設定に基づく処理実行時の権限チェックフローについて)
図14図18を参照して、セキュリティ設定に基づく処理実行時の権限チェックフローを説明する。
【0107】
業務支援システム200の実行部201aは、業務ユーザ端末400・・・からのアクセスに応じて、業務用アプリ206aを実行して、以下のような権限チェックを行う。
【0108】
セキュリティ設定にて登録されたセキュリティ情報を元に、実行環境ではセキュリティの制御を行う(データベース106aに登録される情報に関しては具体例3参照)。
【0109】
図15に示す情報は、アプリ開発支援システム(ローコード基盤)100により設定されている情報である。図14は、業務支援システム200(実行環境)の設定状況を示す情報であり、アプリ開発支援システム100とは異なる設定情報である。
【0110】
図14は、セキュリティ情報の設定例を示す図である。ユーザ権限割り当てマスタは、ユーザ毎にシステム上割り当てられた値(Guid値)と、ジョブ毎にシステム上割り当てられた値(Guid値)と、セキュリティ種別と、権限フラグ(True又はFalse)を関連づけて登録したテーブル等で構成することができる。セキュリティ種別には、セキュリティ種別マスタのデータが適用される。
【0111】
図15は、ロジック情報の設定例を示す図である。ロジック情報は、画面ID、画面名称、ロジックデータ、ジョブID、ジョブ名を含んでいる。各画面(例:部門マスタメンテ)で使用されているロジックデータは、以下のようにJson形式で保存されている(具体例3参照)。ここからデータを取りだし、セキュリティチェックに使用している。図15の例では、マスタページから継承したマスタページ削除処理→マスタページ修正処理→…の順でセキュリティチェックを行う。ローコード基盤で作成した画面とジョブの情報を紐付けることで、図14のユーザ権限割り当てマスタの情報を取得し、操作オペレータ(ユーザ)に権限があるか否かを判定することができる。すなわち、ロジック情報の対象の画面のジョブIDをキーとして、ユーザ権限割り当てマスタを参照して、操作オペレータ(ユーザ)に対象のセキュリティ種別(起動、削除等)の権限があるか否かを判定する。
【0112】
図14及び図15に示す例では、ユーザ「1111-aaaa-aaaa-aaaa-aaaaaaaaaaaa」については、部門マスタメンテ画面のジョブ「2222-bbbb-bbbb-bbbb-bbbbbbbbbbbb」について、起動、新規追加、修正、照会、帳票出力の権限有り、削除の権限無しが設定されている。
【0113】
業務支援システム200の実行部201aにより実行される権限チェック処理を説明する。画面起動時と処理実行時の2段階に分けて権限チェックを行う。画面起動時には、以下の2種類の点からチェック処理を行い、(1)ユーザにジョブ起動権限があるかどうかのチェックと、(2)画面内のコントロールに割り付けられているロジックを実行する権限があるかどうかをチェックする。
【0114】
業務支援システム200の実行部201aは、業務用アプリ206aを実行して、例えば、以下のような処理を実行する。ここでは、部門マスタメンテ画面の起動処理の一例を説明する。図16は、部門マスタメンテ登録画面の一例を示している。同図に示す例では、部門マスタの内容が、部門「1」が部門名「営業部」、部門「2」が部門名「経理部」、部門「3」が部門名「総務部」となっており、新規ボタン、修正ボタン、削除ボタン、照会ボタンを表示される。
【0115】
図17は、業務支援システムの実行部により実行される部門マスタメンテ画面の起動処理の一例を示すフロー図である。
【0116】
図17の処理では、(1)起動権限のチェックで権限なしと判定された場合には、ジョブ起動ができず処理を終了する。(2)権限チェックで、各コントロールで実行できないロジックが割りついていると判定された場合には、当該のコントロールがボタンかどうか判定し、ボタンであれば非表示にする。ボタンを非表示にすることによって、権限を持たないユーザにはその画面で削除処理が実行できることを認識できないため、さらに強固なセキュリティを実現できる。ユーザ権限に関しては、図14に示すセキュリティ情報を元にして、ジョブ起動時、処理実行時に権限のチェックを行う。図14の例では、ユーザはあるジョブに対して、削除権限を持たないような設定となっている。起動権限は存在するため、ジョブの起動は可能だが、削除権限が必要なロジックが紐づいたボタンは非表示状態で起動する。
【0117】
具体的には、図17において、まず、部門マスタメンテ登録画面を起動させる(ステップS1)。通常の業務チェックによるコントロールの制御を行う(ステップS2)。例えば、業務チェックによるコントロールの制御例としては、伝票の締日を過ぎている場合、締日以前の伝票を修正できないようにボタンにロックをかける制御である。
【0118】
ロジック情報及びセキュリティ情報を参照して、ユーザに部門マスタメンテ画面のジョブ起動権限があるかをチェックし(ステップS3)、ユーザに起動権限がない場合には(ステップS3の「No」)、ジョブを起動しないで処理を終了し(ステップS7)、権限がないというエラーを通知する。なお、図14及び図15に示す例では、ユーザ「1111-aaaa-aaaa-aaaa-aaaaaaaaaaaa」については、部門マスタメンテ画面のジョブ「2222-bbbb-bbbb-bbbb-bbbbbbbbbbbb」について、起動権限が有りに設定されている。
【0119】
起動権限がある場合には(ステップS3の「Yes」)、セキュリティ情報を参照して、マスタページ削除処理に実行権限は存在するか否かをチェックする(ステップS4)。マスタページ削除処理に実行権限が存在する場合には(ステップS4の「Yes」)、ステップS5に移行する。なお、図14及び図15に示す例では、ユーザ「1111-aaaa-aaaa-aaaa-aaaaaaaaaaaa」については、部門マスタメンテ画面のジョブ「2222-bbbb-bbbb-bbbb-bbbbbbbbbbbb」について、削除権限が無しに設定されている。
【0120】
マスタページ削除処理に実行権限が存在しない場合は(ステップS4の「No」)、マスタページ削除処理にボタンが割り付いているか否かを判断する(ステップS8)。マスタページ削除処理にボタンが割り付いていない場合は(ステップS8の「No」)、ステップS5に移行する。マスタページ削除処理にボタンが割り付いている場合は(ステップS8の「Yes」)、マスタページ削除処理に割り付けた削除ボタンを非表示として(ステップS9)、ステップS5に移行する。上記図14の例では、削除についての権限フラグが「false」のため、図16の部門マスタメンテ画面の削除ボタンを非表示とする。
【0121】
このように、ボタンを非表示にすることによって、権限を持たないユーザにはその画面で削除処理が実行できることを認識できないため、強固なセキュリティを実現できる。
【0122】
ステップS5では、以下、画面内のロジックを全てチェックし、ジョブを起動する(ステップS6)。
【0123】
ボタン以外のコントロールは起動時チェックで権限がなくても非表示にならないため、処理がリクエストされた後に、業務支援システム200側で処理の実行権限のチェックを行う必要がある。図18は、この場合の実行時ロジックフローの一例を示す図である。具体的には、非表示のボタンであっても、ユーザが直接、業務支援システム200側に処理をPOSTする可能性はあるため、業務支援システム200側でも処理の実行権限チェックを行う必要がある。そのため、業務支援システム200側にポストされた処理については再度チェックを行い、権限チェックを堅牢に行っている。
【0124】
図18において、開発ユーザ端末300・・・から処理イベントを発火し(ステップS11)、業務支援システム200側へ処理をPOSTする。業務支援システム200は、マスタページ削除処理に実行権限が存在するか否かをチェックする(ステップS12)。実行権限がない場合には(ステップS12の「No」)、処理を中断し(ステップS13)、エラーを業務支援システム200からクライアントに送信する。実行権限がある場合には(ステップS12の「Yes」)、処理を実行する(ステップS14)。
【0125】
(具体例4-2:サブフロー使用時のセキュリティの設定・判定方法について)
上記図12及び図19を参照して、サブフロー使用時のセキュリティの設定・判定方法を説明する。
【0126】
上記図12に示すように、ロジックの設定フロー(具体例1参照)の中で使用できるアクションの中にはサブフロー呼出アクションという、別のフローチャート自体を呼び出すことができる機能が存在する。これにより、共通部分となるロジックを複数のロジック間で共有することができる。
【0127】
ロジック内でこのサブフローが使用されている場合、セキュリティの判定方法(具体例4参照)が少し変化するため説明する。サブフローを使用するロジックの場合、各ロジック内のサブフローに実行権限があるかどうかのチェックが必要となる。そのため、セキュリティの判定方法も以下のような制御を行う。
【0128】
図19は、サブフロー使用時のジョブ起動時制御の一例を説明するためのフローを示す図である。図19において、まず、ユーザにジョブ起動権限があるかをチェックし(ステップS21)、ユーザに起動権限がない場合には(ステップS21の「No」)、ジョブを終了し、権限がないというエラーを通知する(ステップS28)。
【0129】
起動権限がある場合には(ステップS21の「Yes」)、ロジックAに実行権限は存在するか否かをチェックする(ステップS22)。ロジックAに実行権限が存在する場合には(ステップS22の「Yes」)、ステップS23に移行する。ロジックAに実行権限が存在しない場合は(ステップS22の「No」)、図17と同様な処理を実行する。
【0130】
ステップS23では、ロジックAにサブフローが存在するか否かをチェックする(ステップS23)。ロジックAにサブフローが存在しない場合は(ステップS23の「No」)、ステップS26に移行する。ロジックAにサブフローが存在する場合には(ステップS23の「Yes」)、当該サブフローに実行権限が存在するか否かをチェックする(ステップS24)。当該サブフローの実行権限がある場合には(ステップS24の「Yes」)、ステップS25に移行する。他方、当該サブフローの実行権限がない場合には(ステップS24の「No」)、ロジックAにボタンが割り付いているかをチェックする(ステップS30)。割り付いていない場合には(ステップS30の「No」)、ステップS25に移行し、割付いている場合には(ステップS30の「Yes」)、ロジックAに割り付いたボタンを非表示として(ステップS31)、ステップS25に移行する。
【0131】
ステップS25では、以下、ロジック内のサブフローを全てチェックし、画面内のロジックを全てチェックした後(ステップS26)、ジョブを起動する(ステップS27)。
【0132】
(具体例5:セキュリティの割付先コントロールの制御について)
図20を参照して、セキュリティの割付先コントロールの制御を説明する。アプリ開発支援システム100の検知部102dは、設定画面において、開発者がコントロールのアクションについてセキュリティを設定する場合に、セキュリティ設定可能マスタ106bを参照して、当該コントロールのアクションの設定が可能か否かを検知する。この場合、検知部102dは、セキュリティ設定可能マスタ106bを参照して、当該コントロールのアクションの可否フラグが設定可能である場合には、設定を許可し、当該コントロールのアクションの可否フラグが設定不可である場合には、エラーを通知することにしてもよい。
【0133】
図20は、セキュリティの割付先コントロールの制御を説明するための図である。マスタの削除処理や帳票の出力処理など、一般的なシステムにおいてはセキュリティ設定が付与されるようなロジックを紐づけるUIはボタンのクリックイベントが大部分であると考えられる。セキュリティの観点からすると、あらゆるコントロールに対してセキュリティ設定を付与できてしまうことは、意図せずにセキュリティホールを生み出してしまう可能性があり好ましくない。
【0134】
特にローコード基盤においては、システム構築時のセキュリティに知見のない開発者が設定を行う場合がある。極端な例では、そういった専門知識のない開発者が、ラジオボタンのチェック処理に削除処理を割り付けてしまう、などの異常な設定を行う事も考えられることから、セキュリティの割付先はローコード基盤側が極力制限する必要がある。
【0135】
一方で、全てのセキュリティ付ロジックをボタンのクリックイベントのみに割り付けるような強い制限をかけてしまうと、システムの拡張性やユーザビリティを損なうことが懸念される。
【0136】
そこで、セキュリティ付ロジックを割り付けられるコントロールの種類を開発者がマスタに登録することにより、任意で制限することができる仕組みを考案した。これにより、複数の開発者がシステム開発を行うような大規模開発においても、各開発者が特に意識することなく、セキュリティ設定に対する一貫性をシステム全体に持たせることができる。
【0137】
このような例外的なセキュリティ設定をローコード基盤側で制御することはユーザビリティの向上にもつながる。仮に、設定を制限している種類のコントロール(例えば、ラジオボタン)に、セキュリティ付ロジックを付与しようとすると、ローコード基盤でエラーを通知して、開発者が設定を即座に修正することができる。
【0138】
図20(A)は、セキュリティ設定可能マスタ106bの一例を示している。セキュリティ設定可能マスタ106bは、コントロール、アクション、設定可能か否かを示す設定可否フラグを関連づけて登録したテーブル等で構成することができる。同図に示す例では、1行目は、コントロール「ボタン」、アクション「クリック」、設定可否フラグ「1(設定可能)」、2行目は、コントロール「ラジオボタン」、アクション「チェック」、設定可否フラグ「0(設定不可)」、3行目は、コントロール「テーブル」、アクション「クリック」、設定可否フラグ「0(設定不可)」となっている。
【0139】
例えば、図20(B)に示す設定画面で、開発ユーザがラジオボタンの実行時に修正権限が必要なセキュリティを設定しようとすると、セキュリティ設定可能マスタ106bの例では、コントロール「ラジオボタン」は、設定可否フラグ「0(設定不可)」に設定されているので、検知部102dは、エラーを通知する。
【0140】
また、ローコード基盤上でエラーが発生している場合には、図20(C)に示すように、実行環境への変換はできない。このため、セキュリティの堅牢性が担保される。
【0141】
以上説明したように、本実施の形態のアプリ開発支援システムによれば、マスタページについてのロジックとその権限の一覧をマトリックス状に表示したセキュリティ設定画面を表示させる画面制御部102aと、セキュリティ設定画面上での開発者の操作に応じて、マスタページの各ロジックのセキュリティを設定する設定部102bと、を備えているので、開発者が実際のアプリケーションにどのような権限制御が行われるかを適切に判断・管理することが可能となる。
【0142】
[4.国連が主導する持続可能な開発目標(SDGs)への貢献]
本実施形態により、業務効率化や企業の適切な経営判断を推進することに寄与することができるので、SDGsの目標8及び9に貢献することが可能となる。
【0143】
また、本実施形態により、廃棄ロス削減や、ペーパレス・電子化を推進することに寄与することができるので、SDGsの目標12、13及び15に貢献することが可能となる。
【0144】
また、本実施形態により、統制、ガバナンス強化に寄与することができるので、SDGsの目標16に貢献することが可能となる。
【0145】
[5.他の実施形態]
本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【0146】
例えば、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0147】
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【0148】
また、アプリ開発支援システム100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【0149】
例えば、アプリ開発支援システム100が備える処理機能、特に制御部102にて行われる各処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じてアプリ開発支援システム100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部106などには、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部102を構成する。
【0150】
また、このコンピュータプログラムは、アプリ開発支援システム100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【0151】
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、フレキシブルディスク、光磁気ディスク、ROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable and Programmable Read Only Memory)、CD-ROM(Compact Disk Read Only Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、および、Blu-ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。
【0152】
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成および読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【0153】
記憶部106に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
【0154】
また、アプリ開発支援システム100は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、アプリ開発支援システム100は、当該情報処理装置に本実施形態で説明した処理を実現させるソフトウェア(プログラムまたはデータ等を含む)を実装することにより実現してもよい。
【0155】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能付加に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
【符号の説明】
【0156】
100 アプリ開発支援システム
102 制御部
102a 画面制御部
102b 設定部
102c 登録部
102d 検知部
102e マスタメンテ部
104 通信インターフェース部
106 記憶部
106a データベース
106b セキュリティ設定可能マスタ
108 入出力インターフェース部
112 入力装置
114 出力装置
200 業務支援システム
202 制御部
202a 実行部
204 通信インターフェース部
206 記憶部
206a 業務用アプリ
208 入出力インターフェース部
212 入力装置
214 出力装置
300 開発ユーザ端末
400 業務ユーザ端末
500 ネットワーク
600 サーバ
700 サーバ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20