JP2019175310A - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP2019175310A
JP2019175310A JP2018065247A JP2018065247A JP2019175310A JP 2019175310 A JP2019175310 A JP 2019175310A JP 2018065247 A JP2018065247 A JP 2018065247A JP 2018065247 A JP2018065247 A JP 2018065247A JP 2019175310 A JP2019175310 A JP 2019175310A
Authority
JP
Japan
Prior art keywords
information processing
code
processing apparatus
generated
program
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
JP2018065247A
Other languages
English (en)
Inventor
英樹 山形
Hideki Yamagata
英樹 山形
正 川原畑
Tadashi Kawarabata
正 川原畑
東和 石田
Towa Ishida
東和 石田
長谷川 大介
Daisuke Hasegawa
大介 長谷川
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.)
NEC Corp
NEC Solution Innovators Ltd
Original Assignee
NEC Corp
NEC Solution Innovators Ltd
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 NEC Corp, NEC Solution Innovators Ltd filed Critical NEC Corp
Priority to JP2018065247A priority Critical patent/JP2019175310A/ja
Publication of JP2019175310A publication Critical patent/JP2019175310A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】ユーザニーズに応じたサービスや性能を有する業務アプリケーションのプログラム作成作業の効率化を図るとともに、システムの信頼性を向上することができる。【解決手段】情報処理装置100は、予めコードが定義されている複数の部品の連携構造110を取得する取得部102と、複数の部品を連携構造110に従って連携したときのコード114を、予め定義されているコード、及び今回生成するコードの設計原則112として選択された項目に対応する処理手順を用いて生成するコード生成部104とを備える。【選択図】図1

Description

本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
近年、クラウド、IoT(Internet of Things)、AI(Artificial Intelligence)に代表されるICT(Information and Communication Technology)の進化により、SoR(Systems of Record)に加え、SoE(Systems of Engagement)という新しいICTモデルが登場してきている。SoRは計画主導型であり、システム要求が明確であり、安定性が重視される。
それに対し、SoEモデルは、システム要求が不明、不確実で、運用中の各種フィードバックに基づいて頻繁に変更されるため、変更への対応柔軟性、機敏性が求められる。このような不確実性の高いビジネスゴールに対して、仮説検証プロセスを高速に繰り返し行う開発手法の一つであるDevOps(Development and Operations)への取り組みが不可欠である。
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、ユーザニーズに応じたサービスや性能を有する業務アプリケーションのプログラム作成作業の効率化を図るとともに、システムの信頼性を向上させることにある。
本発明の各側面では、上述した課題を解決するために、それぞれ以下の構成を採用する。
第一の側面は、情報処理装置に関する。第一の側面に係る情報処理装置は、
予めコードが定義されている複数の部品の連携構造を取得する取得手段と、
複数の部品を連携構造に従って連携したときのコードを、予め定義されている前記コード、及び今回生成するコードの設計原則として選択された項目に対応する処理手順を用いて生成するコード生成手段と、を有する。
第二の側面は、少なくとも1つのコンピュータにより実行される情報処理方法に関する。第二の側面に係る情報処理方法は、
情報処理装置が、
予めコードが定義されている複数の部品の連携構造を取得し、
複数の部品を連携構造に従って連携したときのコードを、予め定義されている前記コード、及び今回生成するコードの設計原則として選択された項目に対応する処理手順を用いて生成する、ことを含む。
なお、本発明の他の側面としては、上記第二の側面の方法を少なくとも1つのコンピュータに実行させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
このコンピュータプログラムは、コンピュータにより実行されたとき、コンピュータに、情報処理装置上で、その制御方法を実施させるコンピュータプログラムコードを含む。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障のない範囲で変更することができる。
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
上記各側面によれば、ユーザニーズに応じたサービスや性能を有する業務アプリケーションのプログラム作成作業の効率化を図るとともに、システムの信頼性を向上することができる。
本実施形態の情報処理装置の構成を論理的に示す機能ブロック図である。 本実施形態の情報処理装置によって構築される業務アプリケーションを説明するための図である。 本発明の実施の形態に係る情報処理装置を実現するコンピュータのハードウェア構成を示すブロック図である。 本実施形態の情報処理装置の動作の一例を示すフローチャートである。 設計原則の一例を示す図である。 本実施形態の情報処理装置の構成を論理的に示す機能ブロック図である。 設計原則設定画面の一例を示す図である。 本実施形態の情報処理装置の構成を論理的に示す機能ブロック図である。 コード表示部の一例を示す図である。 本実施例の情報処理装置を含む情報処理システムのシステム構成例を概念的に示す図である。 本実施例の情報処理装置を用いたアプリケーションの作成手順の一例を示すフローチャートである。 フロー設計画面の一例を示す図である。 ノード編集画面の例を示している。 ノード編集画面の一例を示す図である。 ノード編集画面の一例を示す図である。 ノード編集画面の一例を示す図である。 テンプレートの一例を示す図である。 本実施例の情報処理システムの構成例の概要を概念的に示す図である。 本発明の情報処理システムによって構築される業務アプリケーションを説明するための図である。 比較例のシステムによって構築される業務アプリケーションを説明するための図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(第1の実施の形態)
図1は、本実施形態の情報処理装置100の構成を論理的に示す機能ブロック図である。
情報処理装置100は、取得部102と、コード生成部104と、を備える。
取得部102は、予めコードが定義されている複数の部品の連携構造110を取得する。
コード生成部104は、複数の部品を連携構造110に従って連携したときのコード114を、予め定義されているコード、及び今回生成するコードの設計原則112として選択された項目に対応する処理手順を用いて生成する。
情報処理装置100は、業務アプリケーションのプログラム設計および作成を支援する装置である。本実施形態の業務アプリケーションは、Webアプリケーションであり、ウェブサーバ上で動作する。情報処理装置100を用いて、小規模および軽量なサービスを実現するプログラムを複数組み合わせ、連携させることで業務アプリケーションは構築される(図2)。図2では、業務アプリケーション(図中、「業務アプリ」と示す)40は、複数のサービスを実現するプログラム(図中、「サービス」と示す)42が、REST(REpresentational State Transfer)44と呼ばれる設計原則によって連携されて構成されている。
各プログラム42は、少なくとも一つの部品からなる。部品は、REST(RESTful) API(Application Programming Interface)と呼ばれる、呼び出しインターフェース(以下、APIとも呼ぶ)である。部品は、外部の既存のインターフェースを指定して呼び出すこともできるし、当該プロジェクトで定義したインターフェースを指定して呼び出すこともできる。
取得部102は、設計用ツールによって実現される。
本実施形態では、プログラム開発者であるオペレータが、設計用ツールを用いて、新たな部品の定義を行い、定義済みの部品を含む複数の部品を組み合わせて、複数の部品の連携構造110の定義を行う。さらに、設計原則112の項目の選択も設計用ツールを用いて行う。
図3は、本発明の実施の形態に係る情報処理装置100を実現するコンピュータ60のハードウェア構成を示すブロック図である。
図1の情報処理装置100の各構成要素は、図3に示される任意のコンピュータ60のハードウェアとソフトウェアの任意の組合せによって実現される。コンピュータ60は、CPU(Central Processing Unit)62、メモリ64、メモリ64にロードされた本図の構成要素を実現するプログラム80、そのプログラム80を格納するハードディスクなどの記憶ユニット(ストレージ66:補助記憶装置)、I/O(Input/Output)68、ネットワーク3接続用インターフェース(通信I/F(InterFace:インターフェース)70)を備える。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下に説明する各図は、ハードウェア単位の構成ではなく、機能単位の論理的なブロックを示している。
また、本書の各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
本実施形態において、情報処理装置100は、たとえば、サーバコンピュータ、パーソナルコンピュータ、またはそれらに相当する少なくとも一つのコンピュータにより実現することができる。また、コンピュータは仮想サーバを組み合わせもよい。後述するように、情報処理装置100は、サーバ装置と、ウェブサーバと、クライアント端末とから構成されてもよい。
さらに、情報処理装置100を実現するコンピュータ60は、たとえば、キーボードやマウス等の入力装置72、ディスプレイ等の表示装置74、入力装置72と表示装置74が一体となったタッチパネル(不図示)、マイクやスピーカ等の音声入出力装置(不図示)、または、プリンタ等の出力装置(不図示)とI/O68を介して接続されてもよい。
コンピュータ60の各要素は、バス69を介して互いに接続され、CPU62により各要素とともに全体が制御される。CPU62が、ストレージ66に記憶されるプログラム80をメモリ64に読み出して実行することにより、情報処理装置100の図1の各ユニットの各機能を実現することができる。
本実施形態のコンピュータプログラム80は、情報処理装置100を実現させるためのコンピュータ60に、予めコードが定義されている複数の部品の連携構造110を取得する手順、複数の部品を連携構造110に従って連携したときのコード114を、予め定義されているコード、及び今回生成するコードの設計原則112として選択された項目に対応する処理手順を用いて生成する手順、を実行させるように記述されている。
本実施形態のコンピュータプログラム80は、コンピュータ60で読み取り可能な記録媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラム80は、記録媒体からコンピュータ60のメモリ64にロードされてもよいし、ネットワーク3を通じてコンピュータ60にダウンロードされ、メモリ64にロードされてもよい。または、プログラム80は、記録媒体からコンピュータ60のストレージ66に読み込まれて格納された後、メモリ64にロードされてもよい。
図4は、本実施形態の情報処理装置100の動作の一例を示すフローチャートである。
本実施形態の情報処理装置100の情報処理方法は、情報処理装置100が、予めコードが定義されている複数の部品の連携構造110を取得し(ステップS101)、複数の部品を連携構造110に従って連携したときのコード114を、予め定義されているコード、及び今回生成するコードの設計原則112として選択された項目に対応する処理手順を用いて生成する(ステップS105〜ステップS109)。
具体的には、複数の部品の連携構造110を、プログラム開発者であるオペレータが設計用ツールを用いて定義し、取得部102は、その複数の部品の連携構造110を取得する(ステップS101)。そして、取得部102は、オペレータが設計用ツールを用いて部品ごとに定義した設計原則112として選択された項目を取得する(ステップS103)。
そして、コード生成部104は、ステップ101で取得部102が取得した連携構造110に含まれている各部品の定義済みのコードを取得する(ステップS105)。さらに、ステップ103で取得部102が取得した設計原則112として選択された項目に対応する処理手順を取得する(ステップS107)。そして、コード生成部104は、ステップ10で取得したコードと、ステップ107で取得した項目に対応する処理手順を用いてコード114を生成する(ステップS109)。
設計原則112は、部品単体または複数の部品の組み合わせから生成されるコードを用いて生成される少なくとも一つのプログラムの保守保全に関する機能項目を含む。図5に、設計原則112の一例を示す。
機能項目は、下記の項目(a)〜(d)のうちの少なくとも一つを含む。
(a)部品単体に関する機能
(b)複数の部品間の相互作用に関する機能
(c)複数の部品について横断的に関係する機能
(d)プログラムによって実現されるシステムを構成する少なくとも一つのノードに関する機能(ここでは、ノードとはコンピュータ、又はサーバ装置を意味する。)
図5の設計原則112を例に説明すると、上記(a)は、単一サービスに関する原則であり、例えば、サービスをステートレスにする機能、機能拡張しやすい設計を行う機能、障害を隔離する機能、障害を回復する機能等を含む。上記(b)は、インタラクションに関する原則、つまり、サービス相互の相互作用で検討すべき原則(結果整合性への対応)であり、例えば、非同期処理で結果一貫性を実現する機能、過負荷を回避する機能、複雑な処理を再利用可能な個別要素に分割する機能、待ち合わせ時間を削減する機能、およびサービス呼び出し回数を削減する機能を含む。
上記(c)は、サービス横断的な原則、つまり、業務アプリケーション全体で検討すべき原則であり(分散アーキテクチャへの対応)、例えば、通信相手の物理的な絶対パスを意識させない機能、外部依存を動的に特定する仕組みを準備する機能、再デプロイや再起動をすることなく再構成可能にする機能、監視に優しい設計にする機能を含む。
上記(d)は、ドメイン分割の原則、つまり、サービスを適切に疎結合および高凝集に分割するために検討すべき原則であり、例えば、疎結合および高凝集指向のモデリングを実施する機能、シェアードナッシングにする機能、スケールアウトを行う(サーバの数を増やす)機能を含む。
設計原則112は、図5に示すように、各機能を実現する手段として、各機能を実現する処理手順(パターン)が定められている。例えば、図5の障害を隔離する機能は、Circuit BreakerとBulkheadと名付けられている処理手順(パターン)であり、コード生成部104は、それらの処理手順に沿ったテンプレート120に従ってコード114が生成される。
機能項目毎の処理手順に沿ったテンプレート120がそれぞれ準備されていて、選択された項目に対応する処理手順に沿ったテンプレート120を用いてコード114が生成される。
以上説明したように、本実施形態によれば、小規模および軽量な複数の部品を組み合わせ、設計原則112として選択された機能項目に沿ったパターン(処理手順)のテンプレート120を用いてソースコード114を作成することができるので、業務アプリケーションを低負荷で効率よく作成することができる。また、設計原則112には、プログラムの保守保全に関する機能項目が含まれるので、ユーザニーズに応じたサービスや性能を有する業務アプリケーションの動作の健全性の監視や障害修復を可能にする機能の埋め込みを簡単に実現することができる。よってセキュリティ上の信頼性が高い業務アプリケーションを構築できる。
(第2の実施の形態)
図6は、本実施形態の情報処理装置100の構成を論理的に示す機能ブロック図である。
本実施形態の情報処理装置100は、設計原則112を選択可能に表示する構成を有する点以外は上記実施形態と同じである。
図6の情報処理装置100は、図1の情報処理装置100の構成に加え、さらに、表示処理部130を備える。表示処理部130は、設計原則112を選択可能に表示部(表示装置74)に表示する。
図7は、設計原則設定画面230の一例を示す図である。表示処理部130は、設計原則設定画面230を、例えば、プログラム開発者のクライアント端末の表示部に表示する。
設計原則設定画面230は、設計原則112の各機能項目の説明とともに、機能項目を選択する選択部231が表示される。この例では、選択部231は、チェックボックスである。表示処理部130も設計用ツールによって実現される。
コード生成部104は、設計原則設定画面230で選択された機能項目に対応する処理手順に沿ったテンプレート120に従ってソースコード114の生成を行う。
以上説明したように、本実施形態によれば、表示処理部130が設計原則設定画面230を表示部に表示し、設計原則112の各機能の選択を受け付け、選択された機能項目に対応する処理手順を用いてソースコード114を生成できる。これにより、簡単な操作でアプリケーションの保守保全に関する機能を構築できる。よってプログラム開発の負荷を低減し、業務アプリケーションの信頼性を向上できる。
(第3の実施の形態)
図8は、本実施形態の情報処理装置100の構成を論理的に示す機能ブロック図である。
本実施形態の情報処理装置100は、生成されたコード114を新たな部品として登録する構成を有する点以外は上記実施形態と同じである。
図8の情報処理装置100は、図1の情報処理装置100の構成に加え、さらに、登録部140を備える。なお、本実施形態の構成は、図6の情報処理装置100の構成と組み合わせることもできる。登録部140は、生成されたコード114を新たな部品として登録する。また、取得部102は、新たな部品のインターフェースの定義を取得する。コード生成部104は、部品のインターフェースの定義をさらに用いる。上記したように、インターフェースとは上記したREST APIである。
また、コード生成部104は、ユーザが入力すべき項目を含んだ状態で、コード114を生成する。表示処理部130は、生成したコード114を表示し、入力すべき項目をユーザに入力させる。
表示処理部130は、図9(a)のコード表示部240をクライアント端末30の表示部に表示する。コード表示部240は、コード生成部104によって生成されたコード114を表示し、この例では、サーキットブレーカ設定部241と、エラー処理部242と、を含む。
サーキットブレーカ設定部241に、@HystrixCommandアノテーションを付与することで対象メソッドに対してサーキットブレーカ機能を付与することができる。エラー処理部242には、対象メソッドがエラーとなった場合の代替処理を実装したメソッドが指定される。
そして、サーキットブレーカ設定部241は、入力すべき項目をユーザに入力させるための代替処理名入力部243を含む。例えば、代替処理名入力部243に、図9(b)に示す、fallbackMethodプロパティに代替処理となるメソッドの名前「findFallback」を入力して設定できる。
コード生成部104は、代替処理名入力部243に入力された値を受け付けてコード114を書き換えることができる。
以上説明したように、本実施形態によれば、登録部140により生成したコード114を新たな部品として登録できるので、登録した部品を他のプロジェクトに流用することもできる。また、ユーザが入力すべき項目を含んだ状態でコード114を生成するので、ユーザ毎の要求に適宜対応したプログラムを柔軟に作成できる。また、入力すべき項目をユーザに分かりやすく提示するので、必要な項目の入力を間違えなく行えて作業効率も向上する。
本明細書において、「取得」とは、自装置が他の装置や記憶媒体に格納されているデータまたは情報を取りに行くこと(能動的な取得)、たとえば、他の装置にリクエストまたは問い合わせして受信すること、他の装置や記憶媒体にアクセスして読み出すこと等、および、自装置に他の装置から出力されるデータまたは情報を入力すること(受動的な取得)、たとえば、配信(または、送信、プッシュ通知等)されるデータまたは情報を受信すること等、の少なくともいずれか一方を含む。また、受信したデータまたは情報の中から選択して取得すること、または、配信されたデータまたは情報を選択して受信することも含む。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
(実施例1)
図10は、本実施例の情報処理装置100を含む情報処理システム1のシステム構成例を概念的に示す図である。
上述した実施形態の情報処理装置100は、本実施例では、サーバ装置10と、ウェブサーバ20と、クライアント端末30と、の組み合わせによって実現される。
サーバ装置10およびウェブサーバ20は、いずれもサーバコンピュータ、パーソナルコンピュータ、またはそれらに相当する少なくとも一つのコンピュータにより実現することができる。また、サーバ装置10およびウェブサーバ20は、仮想マシンと組み合わせて実現されてもよい。また、クライアント端末30は、パーソナルコンピュータ、携帯端末(例えば、スマートフォン、タブレット端末等)またはそれらに相当する少なくとも一つのコンピュータにより実現することができる。
サーバ装置10は、設計情報リポジトリ12、テンプレート記憶部14、およびプログラム格納部16を少なくとも含む記憶装置18を備える。記憶装置18は、複数の装置から構成されてもよいし、また、サーバ装置10の内部装置であってもよいし、外部装置であってもよい。サーバ装置10、ウェブサーバ20およびクライアント端末30は、図3のコンピュータ60によってそれぞれ実現される。
図11は、本実施例の情報処理装置100を用いたアプリケーションの作成手順の一例を示すフローチャートである。
まず、オペレータはクライアント端末30でブラウザ32を用いてウェブサーバ20にアクセスする。例えば、本情報処理システム1を利用するために予めユーザ登録された認識情報を用いて専用ウェブサイトにアクセスし、設計用のツールを起動する。
ウェブサーバ20上でWebアプリケーションの一つである設計用ツールを動作させて、設計用ツールの各種画面をクライアント端末30上に操作可能に表示するとともに、クライアント端末30におけるユーザ操作を受け付ける。受け付けた情報は、ウェブサーバ20経由でサーバ装置10の記憶装置18の設計情報リポジトリ12に格納される。
設計用ツールが起動されると、表示処理部130は、図12のフロー設計画面210をクライアント端末30の表示部に表示する(ステップS1)。フロー設計画面210で、雛形リスト211からノード212(サービスの部品に相当する)を配置する(ステップS1)。雛形リスト211aは、予め定義されている共有のノード212を含む。雛形リスト211bは、新たな部品を生成する空のノード212である。図12(a)は、4つのノード212が配置されている様子を示している。雛形リスト211からノード212を選択して配置エリア213にドラッグすることでノード212を配置することができる。そして、図12(b)のように、各ノード212間を接続ライン215で接続することで、サービス間の連携を設計する(ステップS2)。
図13は、ノード212のノード編集画面217の例を示している。配置エリア213内のノード212を選択し、例えば、右クリックでメニューリストを表示し、ノード編集画面217を開くメニューを選択する。ノード編集画面217は、ノード212の名前、および説明を表示し編集する入力部218を含む。完了ボタン219を受け付けるとノード編集画面217は閉じられる。ここでは、定義済みのノード212のプロパティが表示されている。
また、雛形リスト211bのノード212が選択された場合、表示処理部130は、図14のノード編集画面220を表示する。このノード編集画面220を用いて、オペレータは、部品(サービス)毎にインターフェースの定義と、そのサービスで利用する設計原則112を設計する(ステップS3)。このノード編集画面220は、例えば、部品を選択すると表示される。
図14のノード編集画面220は、ID情報表示部221と、ノード名入力部222と、説明入力部223と、アクション選択部224と、設計原則設定部225と、インターフェース定義部226と、完了ボタン227と、を含む。
ID情報表示部221には、作成中のフローの識別情報と、サービスの識別情報とが表示される。ノード名入力部222は、作成中のノードの名前の入力を受け付けるテキストボックスである。説明入力部223は、作成中のノードの説明の入力を受け付けるテキストボックスである。アクション選択部224は、作成中のノードが実現するサービスへのアクションを選択する項目リストである。アクション選択部224は、図15のアクションリスト228を表示する。この例では、アクションリスト228は、ツール起動、ソース生成、ダウンロード、ビルド、デプロイ、実行等が含まれている。図15では、アクションリスト228の中のダウンロードが選択されていて、その詳細内容が詳細表示部229に表示されている。
また、図14の設計原則設定部225を選択すると、図7の設計原則設定画面230が表示される。上記したように、設計原則設定画面230で、設計原則112の機能項目に対応する選択部231のチェックボックスをチェックすることで、機能項目を選択することができる。
また、図14のインターフェース定義部226を選択することで、図16のインターフェース選択リスト251が表示される。インターフェース選択リスト251には、定義済みのインターフェースが含まれている。選択したインターフェースの詳細内容を詳細ボタン252により参照することもできる。また、追加ボタン253を押下すると、参照インターフェース定義部254がさらに表示される。参照インターフェース定義部254に、外部公開されているインターフェースを指定することができる。これが、図11のステップS4であり、既存のAPI情報をインポートして、インターフェース設計に活用できる。
このようにして、設計用のツールを用いて設計された情報113は、サーバ装置10の設計情報リポジトリ12に格納される。そして、コード生成部104は、設計原則112で選択された項目に従って、図17のテンプレート120に組み込み、コード114を生成する(ステップS5)。
このように、本実施例によれば、ユーザニーズに応じたサービスや性能を有する業務アプリケーションのプログラム作成作業の効率化を図ることができる。
(実施例2)
図18は、本実施例の情報処理システム1の構成例の概要を概念的に示す図である。
この例では、クラウド300a上に本情報処理システム1で作成されたサービスアーキテクチャ310が構築されている。サービスアーキテクチャ310は、複数のサービス312(各機能を実現するプログラムに相当)がREST API320によって互いに連携している。これらは、本発明の情報処理装置100の設計用ツールで設計される。
また、公開APIのURI(Uniform Resource Identifier)であるAPIエンドポイント350を介して他のデバイス(例えば、パーソナルコンピュータやスマートフォン)352がサービスアーキテクチャ310を利用できる。
(実施例3)
図19は、本発明の情報処理システム1によって構築される業務アプリケーション400を説明するための図である。業務アプリケーション400は、機能が異なる複数のサービス410は、それぞれソース管理と、ビルド工程、テスト工程、リリース工程を独立して行うことができる。そのため、あるサービス410の機能変更が行われても、そのサービス410で局所的に変更すればよい。そして、サービス410は単独でデプロイ、実行が可能であるため、個々のサービス410で自由にサーバ数を増やすことができるので、拡張可能性が高い。また、独立したランタイムにより、1つのサービス410に障害が発生して停止しても、サービス全体は継続稼働が可能である。
このように、本実施例3では、変化に強く、柔軟性の高いアプリケーションを実現可能であり、各サービス410は個別にデプロイかのであり、不具合が発生してもシステム全体に影響する可能性は少ない。
(比較例1)
図20は、比較例のシステムによって構築される業務アプリケーション500を説明するための図である。業務アプリケーション500は、異なる機能を1つのアプリケーションで実現するため、1つのプログラムとしてソース管理を行うとともに、ビルド工程、テスト工程、リリース工程を行うので、小さな変更でもシステム全体のリビルドとデプロイが必要となる。アプリケーションが密結合になりやすいため、変更をモジュール内に限定しづらい。そのため、変更による影響調査と回帰テストに工数がかかってしまう。スケールアウトの単一が一つの大きなアプリケーションなので、スケールするためにリリースを必要とする部分だけでなく、アプリケーション全体のスケールが必要となる。また、ランタイムが1つであるため、ある障害がサービス全体に波及しやすい。
したがって、比較例では、システムが大きくなり複雑度が増すにつれ、ビジネス環境変化への俊敏な対応が難しくなる。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
なお、本発明において利用者に関する情報を取得、利用する場合は、これを適法に行うものとする。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下に限られない。
1. 予めコードが定義されている複数の部品の連携構造を取得する取得手段と、
複数の部品を連携構造に従って連携したときのコードを、予め定義されている前記コード、及び今回生成するコードの設計原則として選択された項目に対応する処理手順を用いて生成するコード生成手段と、を備える情報処理装置。
2. 1.に記載の情報処理装置において、
前記設計原則を選択可能に表示部に表示する表示手段をさらに備える情報処理装置。
3. 1.または2.に記載の情報処理装置において、
前記設計原則は、前記部品単体または複数の前記部品の組み合わせから生成されるコードを用いて生成される少なくとも一つのプログラムの保守保全に関する機能項目を含む、情報処理装置。
4. 3.に記載の情報処理装置において、
前記機能項目は、下記の項目(a)〜(d)のうちの少なくとも一つを含む、情報処理装置。
(a)前記部品単体に関する機能
(b)複数の前記部品間の相互作用に関する機能
(c)複数の前記部品について横断的に関係する機能
(d)前記プログラムによって実現されるシステムを構成する少なくとも一つのノードに関する機能
5. 1.から4.のいずれか一つに記載の情報処理装置において、
生成された前記コードを新たな部品として登録する登録手段をさらに備える情報処理装置。
6. 5.に記載の情報処理装置において、
前記取得手段は、さらに、前記新たな部品のインターフェースの定義を取得し、
前記コード生成手段は、前記インターフェースの定義をさらに用いる、情報処理装置。
7. 1.から6.のいずれか一つに記載の情報処理装置において、
前記コード生成手段は、ユーザが入力すべき項目を含んだ状態で、コードを生成し、
前記表示処理手段は、生成した前記コードを表示し、前記入力すべき項目を前記ユーザに入力させる、情報処理装置。
8. 情報処理装置が、
予めコードが定義されている複数の部品の連携構造を取得し、
複数の部品を連携構造に従って連携したときのコードを、予め定義されている前記コード、及び今回生成するコードの設計原則として選択された項目に対応する処理手順を用いて生成する、情報処理方法。
9. 8.に記載の情報処理方法において、
前記情報処理装置が、さらに、
前記設計原則を選択可能に表示部に表示する情報処理方法。
10. 8.または9.に記載の情報処理方法において、
前記設計原則は、前記部品単体または複数の前記部品の組み合わせから生成されるコードを用いて生成される少なくとも一つのプログラムの保守保全に関する機能項目を含む、情報処理方法。
11. 10.に記載の情報処理方法において、
前記機能項目は、下記の項目(a)〜(d)のうちの少なくとも一つを含む、情報処理方法。
(a)前記部品単体に関する機能
(b)複数の前記部品間の相互作用に関する機能
(c)複数の前記部品について横断的に関係する機能
(d)前記プログラムによって実現されるシステムを構成する少なくとも一つのノードに関する機能
12. 8.から11.のいずれか一つに記載の情報処理方法において、
前記情報処理装置が、さらに、
生成された前記コードを新たな部品として登録する情報処理方法。
13. 12.に記載の情報処理方法において、
前記情報処理装置が、さらに、
前記新たな部品のインターフェースの定義を取得し、
前記インターフェースの定義をさらに用いて前記コードを生成する、情報処理方法。
14. 8.から13.のいずれか一つに記載の情報処理方法において、
前記情報処理装置が、さらに、
ユーザが入力すべき項目を含んだ状態で、コードを生成し、
生成した前記コードを表示し、前記入力すべき項目を前記ユーザに入力させる、情報処理方法。
15. コンピュータに、
予めコードが定義されている複数の部品の連携構造を取得する手順、
複数の部品を連携構造に従って連携したときのコードを、予め定義されている前記コード、及び今回生成するコードの設計原則として選択された項目に対応する処理手順を用いて生成する手順、を実行させるためのプログラム。
16. 15.に記載のプログラムにおいて、
前記設計原則を選択可能に表示部に表示する手順をさらにコンピュータに実行させるためのプログラム。
17. 15.または16.に記載のプログラムにおいて、
前記設計原則は、前記部品単体または複数の前記部品の組み合わせから生成されるコードを用いて生成される少なくとも一つのプログラムの保守保全に関する機能項目を含む、プログラム。
18. 17.に記載のプログラムにおいて、
前記機能項目は、下記の項目(a)〜(d)のうちの少なくとも一つを含む、プログラム。
(a)前記部品単体に関する機能
(b)複数の前記部品間の相互作用に関する機能
(c)複数の前記部品について横断的に関係する機能
(d)前記プログラムによって実現されるシステムを構成する少なくとも一つのノードに関する機能
19. 15.から18.のいずれか一つに記載のプログラムにおいて、
生成された前記コードを新たな部品として登録する手順をさらにコンピュータに実行させるためのプログラム。
20. 19.に記載のプログラムにおいて、
前記新たな部品のインターフェースの定義を取得する手順、
前記インターフェースの定義をさらに用いて前記コードを生成する手順、をさらにコンピュータに実行させるためのプログラム。
21. 15.から20.のいずれか一つに記載のプログラムにおいて、
ユーザが入力すべき項目を含んだ状態で、コードを生成する手順、
生成した前記コードを表示し、前記入力すべき項目を前記ユーザに入力させる手順、をさらにコンピュータに実行させるためのプログラム。
1 情報処理システム
3 ネットワーク
10 サーバ装置
12 設計情報リポジトリ
14 テンプレート記憶部
16 プログラム格納部
18 記憶装置
20 ウェブサーバ
30 クライアント端末
32 ブラウザ
42 プログラム
60 コンピュータ
62 CPU
64 メモリ
66 ストレージ
68 I/O
69 バス
70 通信I/F
72 入力装置
74 表示装置
80 プログラム
100 情報処理装置
102 取得部
104 コード生成部
110 連携構造
112 設計原則
114 コード
120 テンプレート
130 表示処理部
140 登録部
210 フロー設計画面
211、211a、211b 雛形リスト
212 ノード
213 配置エリア
217 ノード編集画面
218 入力部
219 完了ボタン
220 ノード編集画面
221 ID情報表示部
222 ノード名入力部
223 説明入力部
224 アクション選択部
225 設計原則設定部
226 インターフェース定義部
227 完了ボタン
228 アクションリスト
229 詳細表示部
230 設計原則設定画面
231 選択部
240 コード表示部
241 サーキットブレーカ設定部
242 エラー処理部
243 代替処理名入力部
251 インターフェース選択リスト
252 詳細ボタン
253 追加ボタン
254 参照インターフェース定義部
300a、300b クラウド
310 サービスアーキテクチャ
312 サービス
320 REST API
400 業務アプリケーション
410 サービス
500 業務アプリケーション

Claims (9)

  1. 予めコードが定義されている複数の部品の連携構造を取得する取得手段と、
    複数の部品を連携構造に従って連携したときのコードを、予め定義されている前記コード、及び今回生成するコードの設計原則として選択された項目に対応する処理手順を用いて生成するコード生成手段と、を備える情報処理装置。
  2. 請求項1に記載の情報処理装置において、
    前記設計原則を選択可能に表示部に表示する表示手段をさらに備える情報処理装置。
  3. 請求項1または2に記載の情報処理装置において、
    前記設計原則は、前記部品単体または複数の前記部品の組み合わせから生成されるコードを用いて生成される少なくとも一つのプログラムの保守保全に関する機能項目を含む、情報処理装置。
  4. 請求項3に記載の情報処理装置において、
    前記機能項目は、下記の項目(a)〜(d)のうちの少なくとも一つを含む、情報処理装置。
    (a)前記部品単体に関する機能
    (b)複数の前記部品間の相互作用に関する機能
    (c)複数の前記部品について横断的に関係する機能
    (d)前記プログラムによって実現されるシステムを構成する少なくとも一つのノードに関する機能
  5. 請求項1から4のいずれか一項に記載の情報処理装置において、
    生成された前記コードを新たな部品として登録する登録手段をさらに備える情報処理装置。
  6. 請求項5に記載の情報処理装置において、
    前記取得手段は、さらに、前記新たな部品のインターフェースの定義を取得し、
    前記コード生成手段は、前記インターフェースの定義をさらに用いる、情報処理装置。
  7. 請求項1から6のいずれか一項に記載の情報処理装置において、
    前記コード生成手段は、ユーザが入力すべき項目を含んだ状態で、コードを生成し、
    前記表示処理手段は、生成した前記コードを表示し、前記入力すべき項目を前記ユーザに入力させる、情報処理装置。
  8. 情報処理装置が、
    予めコードが定義されている複数の部品の連携構造を取得し、
    複数の部品を連携構造に従って連携したときのコードを、予め定義されている前記コード、及び今回生成するコードの設計原則として選択された項目に対応する処理手順を用いて生成する、情報処理方法。
  9. コンピュータに、
    予めコードが定義されている複数の部品の連携構造を取得する手順、
    複数の部品を連携構造に従って連携したときのコードを、予め定義されている前記コード、及び今回生成するコードの設計原則として選択された項目に対応する処理手順を用いて生成する手順、を実行させるためのプログラム。
JP2018065247A 2018-03-29 2018-03-29 情報処理装置、情報処理方法、およびプログラム Pending JP2019175310A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018065247A JP2019175310A (ja) 2018-03-29 2018-03-29 情報処理装置、情報処理方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018065247A JP2019175310A (ja) 2018-03-29 2018-03-29 情報処理装置、情報処理方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2019175310A true JP2019175310A (ja) 2019-10-10

Family

ID=68169560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018065247A Pending JP2019175310A (ja) 2018-03-29 2018-03-29 情報処理装置、情報処理方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP2019175310A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021077189A (ja) * 2019-11-12 2021-05-20 三菱電機株式会社 Plcプログラム開発支援装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021077189A (ja) * 2019-11-12 2021-05-20 三菱電機株式会社 Plcプログラム開発支援装置
JP7186689B2 (ja) 2019-11-12 2022-12-09 三菱電機株式会社 Plcプログラム開発支援装置

Similar Documents

Publication Publication Date Title
US10705942B1 (en) Simulated testing of API
US11635974B2 (en) Providing a different configuration of added functionality for each of the stages of predeployment, deployment, and post deployment using a layer of abstraction
US11093232B2 (en) Microservice update system
US8296721B2 (en) Template-based software development
US20170277516A1 (en) Designer tool for managing cloud computing services
US20140237443A1 (en) System and method for supporting intelligent design pattern automation
US11327730B2 (en) Composable context menus
WO2012100750A1 (en) Business mashup
JP6796994B2 (ja) 情報処理システム
US20230409295A1 (en) Building base applications with user interface micro frontends
TWI492155B (zh) 利用雲端服務在行動裝置上執行應用的方法與系統
JP2019175310A (ja) 情報処理装置、情報処理方法、およびプログラム
US20170286192A1 (en) Interprogram communication messaging for program synchronization
US11775261B2 (en) Dynamic process model palette
US20180074799A1 (en) Integration for next-generation applications
Cimitile et al. Automatic Generation of Multi Platform Web Map Mobile Applications.
JP2015210639A (ja) アプリケーション開発システム、開発装置のデータ処理方法、およびプログラム
Jakóbczyk et al. Cloud-Native Architecture
Kurhinen Developing microservice-based distributed workflow engine.
US20240045724A1 (en) Framework for provisioning an application resource for an application in use with a controlled content repository
US20160078008A1 (en) Integrating user interface experiences from multiple applications
US9684588B1 (en) Interprogram communication messaging for application development event handling
Kovács et al. Cloud-based flowbster portal to design and deploy scientific workflows
WO2023036540A1 (en) Managing an app, especially developing an app comprising an event artifact, method and system
Jayakody et al. Cloud Native Efficient Solution for API Migration Across Environments For Agile Integration Enterprises