JP2019191931A - 情報処理システム、入力値検証支援プログラム、および入力値検証プログラム - Google Patents

情報処理システム、入力値検証支援プログラム、および入力値検証プログラム Download PDF

Info

Publication number
JP2019191931A
JP2019191931A JP2018084005A JP2018084005A JP2019191931A JP 2019191931 A JP2019191931 A JP 2019191931A JP 2018084005 A JP2018084005 A JP 2018084005A JP 2018084005 A JP2018084005 A JP 2018084005A JP 2019191931 A JP2019191931 A JP 2019191931A
Authority
JP
Japan
Prior art keywords
input
input value
storage
definition information
server
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
JP2018084005A
Other languages
English (en)
Inventor
浩希 木村
Hiroki Kimura
浩希 木村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018084005A priority Critical patent/JP2019191931A/ja
Priority to US16/287,434 priority patent/US20190332458A1/en
Priority to CN201910203551.0A priority patent/CN110399230A/zh
Publication of JP2019191931A publication Critical patent/JP2019191931A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Abstract

【課題】入力値チェックの信頼性を向上させる。【解決手段】サーバ1は、入力値の許容範囲を定義した定義情報4を記憶する。端末装置2は、サーバ1から定義情報4を受信する。次に端末装置2は、入力値の入力領域6を含む画面5を表示する。次に端末装置2は、入力領域6に入力値が入力されると、サーバ1から受信した定義情報4に基づいて、入力値が許容範囲内か否かを判断する。入力値が許容範囲内と判断した場合、端末装置2は、入力値を含む処理要求8をサーバ1に送信する。サーバ1は、入力値を含む処理の処理要求8に応じて、処理要求8に含まれる入力値を利用した処理を実行する。【選択図】図1

Description

本発明は、情報処理システム、入力値検証支援プログラム、および入力値検証プログラムに関する。
情報処理システムでは、ユーザが使用する端末装置とサーバとで連携した処理が行われる。例えば端末装置では、Webブラウザを用いて画面制御を行い、サーバでは、Webブラウザが表示した画面への入力内容に基づくデータの管理や操作を行う。
端末装置とサーバとの連携処理を情報処理システムに実装する場合、端末装置とサーバそれぞれ用のソフトウェアコンポーネント(以下、「コンポーネント」と呼ぶ)が作成される。端末装置とサーバとの連携処理用のコンポーネントは、例えば、REST(REpresentational State Transfer)−API(Application Programming Interface)を用いて作成することができる。
端末装置とサーバとの連携処理には、ユーザが入力した入力値(例えば文字列)を端末装置からサーバに送信し、その入力値に応じた処理をサーバが実行する連携処理がある。このような連携処理において、サーバで処理可能な入力値に制限がある場合、サーバでは入力値チェック(バリデーション:validation)が行われる。入力値チェックにおいて、サーバは、入力値が、入力が許容された値の範囲内かどうかをチェックする。
端末装置とサーバとの連携処理に関する技術としては、例えば、トラフィックディレクタまたは他のタイプのサーバ環境におけるサーバ構成を管理するためのシステムがある。また既存システムのREST−API化手法として、各種プロトコルに汎用的に対応可能な変換処理技術も考えられている。
特開2017−062840号公報 特開2017−054411号公報
入力値チェックは、端末装置で行うことも可能である。例えば端末装置とサーバとの両方で入力値チェックを適切に行えば、信頼性の高い入力値チェックとなる。端末装置においても入力値チェックを行う場合、サーバ側の入力値チェック用のコンポーネントとは別に、端末装置側の入力値チェック用のコンポーネントが作成される。そのため、端末装置側で行う入力値チェックの内容が、サーバにおける入力値チェックの内容と統一されていない場合が有り得る。チェック内容が統一されていないと、例えば、ユーザがサーバ側の仕様に適合した入力を行ったにもかかわらず、端末装置において、入力値が不適切であると誤判定される可能性がある。そのため、入力値のチェックの内容と不統一の場合は、システムを用いて提供されるサービスの品質の低下を招く。
1つの側面では、本件は、入力値チェックの信頼性を向上させることを目的とする。
1つの案では、以下に示すサーバと端末装置とを有する情報処理システムが提供される。
サーバは、記憶部と第1処理部とを有する。記憶部は、入力値の許容範囲を定義した定義情報を記憶する。第1処理部は、取得要求に応じて定義情報を応答出力する。また第1処理部は、入力値を含む処理要求に応じて、処理要求に含まれる入力値を利用した処理を実行する。
端末装置は、第2処理部を有する。第2処理部は、サーバに取得要求を送信することで、サーバから定義情報を受信する。次に第2処理部は、入力値の入力領域を含む画面を表示する。さらに第2処理部は、入力領域に入力値が入力されると、サーバから受信した定義情報に基づいて、入力値が許容範囲内か否かを判断する。そして第2処理部は、入力値が許容範囲内と判断した場合、入力値を含む処理要求をサーバに送信する。
1態様によれば、入力値チェックの信頼性が向上する。
第1の実施の形態に係る入力値チェック方法の一例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 ストレージ運用管理サーバのハードウェアの一構成例を示す図である。 各装置の機能を示すブロック図である。 静的定義ファイルの一例を示す図である。 動的定義DBの一例を示す図である。 アカウント作成画面の表示例を示す図である。 ログイン画面の一例を示す図である。 ストレージ管理画面の一例を示す図である。 プール作成画面の一例を示す図である。 入力値チェック処理の一例を示す図である。 ストレージ運用管理サーバにおける定義情報の生成例を示す図である。 端末装置における入力値チェック例を示す図である。 端末装置における入力値チェック例を示す図である。 ストレージ運用管理サーバにおける入力値チェック例を示す図である。 画面表示に伴う定義情報の取得処理の手順の一例を示すシーケンス図である。 ストレージ運用管理サーバにおける定義情報提供処理の手順の一例を示すフローチャートである。 端末装置における入力値チェック処理の手順の一例を示すシーケンス図である。 1文字ずつの入力値チェック処理の手順の一例を示すフローチャートである。 ストレージ装置の操作手順の一例を示すシーケンス図である。 動的定義DB更新処理の手順の一例を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。第1の実施の形態は、サーバと端末装置との両方で入力値チェックを行う情報処理システムである。
図1は、第1の実施の形態に係る入力値チェック方法の一例を示す図である。情報処理システムには、サーバ1と端末装置2とが含まれる。
サーバ1は、第1記憶部1aと第1処理部1bとを有する。サーバ1は、第1記憶部1aと第1処理部1bを用いて、自身が入力値チェックを実行するとともに、端末装置2による入力値チェックを支援する。例えばサーバ1は、入力値チェック支援処理が記述された入力値検証支援プログラムを第1処理部1bに実行させることにより、端末装置2に対する入力値検証支援方法を実現する。第1記憶部1aは、例えばサーバ1が有するメモリまたはストレージ装置である。第1処理部1bは、例えばサーバ1が有するプロセッサまたは演算回路である。
端末装置2は、第2記憶部2aと第2処理部2bとを有する。端末装置2は、第2記憶部2aと第2処理部2bを用いて、入力値チェックを実行する。例えば端末装置2は、入力値チェック処理が記述された入力値検証プログラムを第2処理部2bに実行させることにより、入力値検証方法を実現する。第2記憶部2aは、例えば端末装置2が有するメモリまたはストレージ装置である。第2処理部2bは、例えば端末装置2が有するプロセッサまたは演算回路である。
このようなサーバ1と端末装置2との連携処理により、入力値チェックが行われる。具体的には以下の通りである。
サーバ1の第1記憶部1aは、入力値の許容範囲を定義した定義情報4を、予め記憶している。定義情報4には、例えば処理要求8に含めることが許容される許容文字が定義されている。端末装置2の第2処理部2bは、サーバ1との連携処理を行う際に、サーバ1から定義情報4を取得する。例えば端末装置2の第2処理部2bは、サーバ1に、定義情報4の取得要求3を送信する。サーバ1の第1処理部1bは、取得要求3に応じて定義情報4を応答送信する。例えば第1処理部1bは、第1記憶部1aから定義情報4を読み出し、読み出した定義情報4を端末装置2に送信する。端末装置2の第2処理部2bは、サーバ1から送信された定義情報4を受信する。端末装置2の第2処理部2bは、受信した定義情報4を第2記憶部2aに格納する。
その後、端末装置2の第2処理部2bは、入力値の入力領域6を含む画面5を、表示装置に表示する。ユーザにより、入力領域6に文字列などの入力値が入力されると、第2処理部2bは、サーバ1から受信した定義情報4に基づいて、入力値が許容範囲内か否かを判断する。例えば第2処理部2bは、入力領域6に1文字入力されるごとに、入力された1文字が、処理要求8に含めることが許容される許容文字に該当するか否かを判断する。第2処理部2bは、入力された1文字が許容文字に該当しない場合、例えば入力が不適切であることを説明するメッセージ7を画面5に表示させる。
例えば図1の例では、定義情報4において、半角の英数字と記号「#$%&」が許容文字であることが示されている。このとき入力領域6に記号「-」が入力されると、第2処理部2bは、入力された文字が許容文字に該当しないと判断する。そして第2処理部2bは、入力が許される文字種を説明するメッセージ7を表示させる。これにより、ユーザは、記号「-」の入力が誤りであることを認識できる。その後、ユーザは、例えば記号「-」の削除操作を行い、別の文字を入力する。
そして第2処理部2bは、入力値が許容範囲内と判断した場合、入力値を含む処理要求8をサーバ1に送信する。すると、サーバ1の第1処理部1bは、入力値を含む処理要求8に応じて、処理要求8に含まれる入力値を利用した処理を実行する。
なお第1処理部1bは、処理要求8に応じた処理を実行する前に、入力値チェック(妥当性検証)を行ってもよい。例えば、第1処理部1bは、処理要求8を受信すると、定義情報4に基づいて、処理要求8に含まれる入力値が許容範囲内か否かを判断する。そして第1処理部1bは、入力値が許容範囲内と判断した場合、文字列を利用して処理を実行する。
このようにして、端末装置2において、サーバ1と共通の定義情報4を用いて、入力値チェックを行うことができる。その結果、端末装置2とサーバ1との入力値チェックの内容に齟齬が生じることが抑止され、入力値チェックの信頼性が向上する。
なお、サーバ1で管理する定義情報4の内容は、システム管理者などによって変更される場合がある。端末装置2は定義情報4をサーバ1から取得するため、定義情報4の内容が変更された場合であっても、端末装置2側で実行するソフトウェアに変更を加えずに済む。そのため、端末装置2で入力値チェックを行うためのソフトウェアの開発が容易となる。
なお、図1の例では、第1記憶部1aに1つの定義情報4のみが格納されているが、サーバ1は、複数の定義情報を第1記憶部1aに格納しておくこともできる。この場合、サーバ1の第1処理部1bは、端末装置2からの取得要求3に応じて、適切な定義情報を選択し、選択した定義情報を端末装置2に提供する。
例えば、サーバ1が複数のストレージ装置を管理している場合、第1記憶部1aは、複数のストレージ装置それぞれに対応する装置別の定義情報を記憶する。この場合、端末装置2の第2処理部2bは、操作対象のストレージ装置の選択入力に応じて、操作対象のストレージ装置を指定した取得要求3をサーバ1に送信する。サーバ1の第1処理部1bは、操作対象のストレージ装置を指定した取得要求3に応じて、操作対象のストレージ装置に対応する装置別の定義情報を端末装置2に送信する。端末装置2は、サーバ1から送信された、操作対象のストレージ装置に対応する装置別の定義情報を受信する。
このようにストレージ装置ごとに用意された装置別の定義情報を用いることで、端末装置2とサーバ1では、操作対象のストレージ装置に対応する定義情報により、入力値チェックを行うことができる。これにより、例えば設定操作において設定可能な文字がストレージ装置ごとに異なる場合であっても、操作対象のストレージ装置に応じた適切な入力値チェックを行うことができる。
また、サーバ1の第1記憶部1aが複数のストレージ装置それぞれに対応する装置別の定義情報を記憶しているとき、第1処理部1bは、ストレージ装置の状態の変化に応じて、装置別の定義情報を自動で更新することもできる。例えば第1処理部1bは、複数のストレージ装置の状態を監視し、状態が変化した一ストレージ装置を検出した場合、一ストレージ装置から、一ストレージ装置に対する操作において使用可能な文字を定義する装置別の定義情報を取得する。状態の変化としては、例えばストレージ装置内の環境設定ファイルの更新である。第1処理部1bは、取得した装置別の定義情報を、一ストレージ装置に対応付けて第1記憶部1aに格納する。
このように、定義情報を動的に更新することにより、定義情報4を最新の状態に維持することができる。その結果、入力値チェックの信頼性が向上する。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、ストレージ装置の利用管理を、サーバと端末装置とで連携して行うシステムにおいて、入力値チェックの信頼性を向上させるものである。
図2は、第2の実施の形態のシステム構成例を示す図である。ネットワーク20を介して、ストレージ運用管理サーバ100、端末装置200、および複数のストレージ装置300,400,500が接続されている。ストレージ運用管理サーバ100は、端末装置200からの要求に応じてストレージ装置300,400,500を管理する。例えばストレージ運用管理サーバ100は、端末装置200からの要求に応じて、ストレージ装置300,400,500を用いたストレージプールを作成する。ストレージプールは、1以上の物理的な記憶装置の集まりを、仮想的に1台のディスクとして扱えるようにしたものである。
図3は、ストレージ運用管理サーバのハードウェアの一構成例を示す図である。ストレージ運用管理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、ストレージ運用管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、ストレージ運用管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
ストレージ運用管理サーバ100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。端末装置200も、図3に示したストレージ運用管理サーバ100と同様のハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。さらに、第1の実施の形態に示したサーバ1および端末装置2も、図3に示したストレージ運用管理サーバ100と同様のハードウェアにより実現することができる。
ストレージ運用管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。ストレージ運用管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、ストレージ運用管理サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またストレージ運用管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次にストレージ運用管理サーバ100、端末装置200、およびストレージ装置300,400,500それぞれが有する機能について説明する。
図4は、各装置の機能を示すブロック図である。端末装置200は、ブラウザ210を有する。ブラウザ210は、HTML(HyperText Markup Language)などで記述された文書データを解釈し、その文書データに示される情報を端末装置200のモニタに表示する。ブラウザ210は、プラグインなどの技術を用いて、機能を追加することができる。例えばブラウザ210は、ストレージ運用管理サーバ100と連携した処理を実行するために、GUI(Graphical User Interface)211と入力支援部212との機能が追加されている。
GUI211は、ストレージ運用管理サーバ100に対してユーザが入力を行うためのインタフェースである。GUI211は、例えばストレージ運用管理サーバ100に対する操作の入力画面を、ブラウザ210に表示させる。
入力支援部212は、GUI211に対するユーザからの入力の支援を行う。例えば入力支援部212は、ユーザが文字を入力するごとに、入力された文字が、ストレージ運用管理サーバ100において許容されている文字かどうかのチェック(入力値チェック)を行う。また入力支援部212は、GUI211を介して入力された文字列などのデータを、ストレージ運用管理サーバ100に送信する。入力支援部212は、例えばGUI211用のフレームワーク(FW)として用意されたコンポーネントによって実現される。
ストレージ運用管理サーバ100は、記憶部110、Webサーバ部120、要求処理部130、要求処理支援部140、およびストレージ管理部150を有する。
記憶部110は、静的定義ファイル111と動的定義データベース(DB)112とを記憶する。静的定義ファイル111は、ユーザによる入力項目と、該当項目についての入力値チェック用の定義が示されたレコードとの対応関係を示すデータファイルである。動的定義DB112は、ストレージ装置300,400,500を操作するための入力値チェックの内容を具体的に示す情報が、レコード単位で格納されたデータベースである。
Webサーバ部120は、端末装置200のブラウザ210に、HTML形式の文書など、各種のコンテンツを提供する。例えばWebサーバ部120は、ブラウザ210に対して、GUI211および入力支援部212を実現するためのコンポーネント(プログラムを含むファイル)を送信する。またWebサーバ部120は、端末装置200から処理要求を受信すると、その処理要求を要求処理部130に転送する。端末装置200からの処理要求には、定義情報の取得を要求する定義情報取得要求や、入力された文字列に応じたデータ操作を要求する操作要求が含まれる。
要求処理部130は、Webサーバ部120から受信した処理要求に応じて、ストレージ装置300,400,500の運用に関する処理を実行する。要求処理部130は、実行する処理のうち、要求処理支援部140で提供されている汎用的な処理については、要求処理支援部140に処理を依頼する。要求処理部130は、例えばREST−APIによって実現される。
要求処理支援部140は、要求処理部130からの依頼に従って、ストレージ装置300,400,500の運用に関する汎用的な処理を行う。例えば要求処理支援部140は、定義情報取得要求に応じて、静的定義ファイル111と動的定義DB112とに基づいて、静的定義と動的定義とを統合した定義情報を生成する。また要求処理支援部140は、操作内容が文字列で指定された操作要求に応じて、静的定義ファイル111と動的定義DB112とに基づいて、文字列に含まれる各文字の入力値チェックを行う。要求処理支援部140は、入力値チェックにおいてすべての文字のチェックが完了すると、操作要求に応じたストレージ装置300,400,500の操作を、ストレージ管理部150に指示する。要求処理支援部140は、例えばREST−APIフレームワークを用いて実現される。
ストレージ管理部150は、要求処理支援部140からの指示に従って、ストレージ装置300,400,500に対する操作を行う。ストレージ管理部150は、例えば、RESTに従った処理要求をストレージ装置300,400,500に送信することにより、ストレージ装置300,400,500を操作する。
ストレージ装置300は、要求処理部310、要求処理支援部320、記憶装置管理部330、および複数の記憶装置341,342,・・・を有している。
要求処理部310は、ストレージ運用管理サーバ100から受信した処理要求に応じて、記憶装置341,342,・・・に対する操作を行う。要求処理部310は、実行する処理のうち、要求処理支援部320で提供されている汎用的な処理については、要求処理支援部320に処理を依頼する。要求処理部310は、例えばREST−APIによって実現される。
要求処理支援部320は、要求処理部310からの依頼に従って、記憶装置341,342,・・・の操作に関する汎用的な処理を行う。要求処理支援部320は、例えばREST−APIフレームワークを用いて実現される。
記憶装置管理部330は、記憶装置341,342,・・・を管理する。例えば記憶装置管理部330は、記憶装置341,342,・・・を用いたストレージプールの作成、記憶装置341,342,・・・へのデータの入出力などを行う。
記憶装置341,342,・・・は、HDDまたはSSDである。
ストレージ装置400,500も、ストレージ装置300と同様の処理機能および記憶装置を有する。
なお、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に図5、図6を参照し、静的定義ファイル111と動的定義DB112とについて詳細に説明する。
図5は、静的定義ファイルの一例を示す図である。静的定義ファイル111には、API識別子に対応付けて、パラメタ名とパラメタ値との1以上の組が設定されている。図5の例では、静的定義ファイル111内にAPI識別子「v1/auth/tokens」、「v1/mail/server」が設定されている。例えば、API識別子「v1/auth/tokens」には、パラメタ名「user_name」、パラメタ値「token_user_name」との組が設定されている。
図6は、動的定義DBの一例を示す図である。動的定義DB112には、API識別子に対応付けて、静的定義のパラメタ値に関する定義情報を示すレコードが設定されている。例えば、API識別子「v1/auth/tokens」のパラメタ値「token_user_name」の定義情報に関するレコードにおいて、「validate_type => "format", :value => "ascii"」と定義されている。これは、入力文字のコード体系が「ASCII」であることを定めたものである。なお1つのパラメタ値に対して、定義情報に関するレコードを複数登録することもできる。
このような静的定義ファイル111と動的定義DB112とを用いて、ストレージ運用管理サーバ100と端末装置200とにおいて、統一した入力値チェックが行われる。
端末装置200は、入力値チェックの最新の定義情報を、適宜、ストレージ運用管理サーバ100から取得する。例えば端末装置200は、GUI211に基づいて入力フィールドを含む画面を表示したときに、その画面に設けられた入力フィールドへの入力値に関する入力値チェック用の定義情報を取得する。そして入力支援部212が、取得した定義情報に基づいて、入力値チェックを行う。例えばアカウント作成画面が表示された場合、入力支援部212は、ユーザ名に入力された文字が、ユーザ名に使用可能な文字かどうかをチェックする。
図7は、アカウント作成画面の表示例を示す図である。アカウント作成画面40には、ユーザ名とパスワードとの入力フィールド41,42が設けられている。アカウント作成画面40の内容は、入力支援部212内に記述されている。例えば入力支援部内記述212aにおいてアカウント作成画面40の内容が定義されている。例えば入力支援部内記述212aには、入力フィールド41のパラメタnameのAPI識別子が「v1/pools」であることが示されている。また入力支援部内記述212aには、入力フィールド41への入力値のパラメタ名が「name」であることが示されている。
このように入力支援部212のプログラムモジュールでは、パラメタのAPI識別子とパラメタ名のみを指定すれば入力値チェックが可能となる。なお、図7には、比較例として、入力値チェック内容をGUI211で定義した場合の記述例を示している。入力値チェック内容をGUI211で定義した場合、入力値チェックの内容(どのような文字の入力を許容するのか)を、入力支援部212内で記述することとなる。このように、入力値チェックの内容を入力支援部212内で記述すると、ストレージ運用管理サーバ100における入力値チェック内容との齟齬が生じる可能性がある。それに対して、第2の実施の形態では、入力支援部内記述212aのように、入力支援部212では、パラメタのAPI識別子とパラメタ名のみを指定すればよい。そのため、入力値チェック内容の齟齬が生じることを抑止できるとともに、入力支援部212のプログラムモジュールの開発が容易となる。
端末装置200の入力支援部212は、このようなアカウント作成画面40を表示する際に、入力支援部内記述212aに基づいて、各入力フィールド41,42への入力値に関する入力値チェック用の定義情報を、ストレージ運用管理サーバ100から取得する。そして入力支援部212は、取得した定義情報に基づいて、入力値チェックを行う。
アカウントが作成されると、端末装置200にログイン画面が表示される。
図8は、ログイン画面の一例を示す図である。ログイン画面50には、ユーザ名とパスワードとの入力フィールド51,52が設けられている。ユーザが、入力フィールド51,52それぞれにユーザ名とパスワードとを正しく入力すると、ストレージ運用管理サーバ100によりユーザ認証が行われ、ストレージ管理画面が表示される。
図9は、ストレージ管理画面の一例を示す図である。ストレージ管理画面60には、ストレージ選択ボタン61〜64、プール一覧65、およびアクションボタン66が設定されている。ストレージ選択ボタン61〜64は、ストレージプールを作成するストレージ装置を指定するためのボタンである。ストレージ選択ボタン61は、ストレージプールの作成対象を限定しない場合に押下するボタンである。ストレージ選択ボタン62〜64は、それぞれには、そのボタンが選択されたときにストレージプールを作成するストレージ装置が対応付けられている。
プール一覧65には、既に作成されているストレージプールのリストが表示されている。ストレージプールを作成する場合、ユーザは、アクションボタン66を押下する。アクションボタンが押下されると、プルダウンメニューが表示される。プルダウンメニューには作成コマンド67が含まれている。ユーザがプルダウンメニューから作成コマンド67を選択すると、ストレージ選択ボタン61〜64によって選択されたストレージ装置によりストレージプールが作成される。ストレージ選択ボタン61がユーザにより選択されている場合、ストレージ運用管理サーバ100が、各ストレージ装置の空き容量などを考慮して、適切なストレージ装置を用いてストレージプールを作成する。ストレージ選択ボタン62〜64のいずれかがユーザにより選択されている場合、ストレージ運用管理サーバ100は、選択されたストレージ選択ボタンに対応するストレージ装置を用いてストレージプールを作成する。
ストレージプールの作成コマンド67が選択された場合、端末装置200にはプール作成画面が表示される。
図10は、プール作成画面の一例を示す図である。プール作成画面70には、プール名入力用の入力フィールド71が設けられている。ユーザがこの入力フィールド71にストレージプールの名称を入力すると、端末装置200とストレージ運用管理サーバ100との両方で、入力値チェックが行われる。
図11は、入力値チェック処理の一例を示す図である。例えばユーザが端末装置200を用いてストレージ運用管理サーバ100にアクセスすると、ブラウザ210によりGUI211と入力支援部212が起動される。ストレージ運用管理用に起動されたGUI211には、例えばストレージ運用に関する設定画面(例えばプール作成画面70)が表示される。
入力支援部212は、設定画面内の入力フィールド(例えばプール作成画面70の入力フィールド71)に入力可能な文字に関する定義情報31を、ストレージ運用管理サーバ100から取得する。例えば入力支援部212は、ストレージ運用管理サーバ100に定義情報取得要求30を送信する。定義情報取得要求30には、例えばAPI識別子「v1/pools」とパラメタ名「name」とが含まれる。またユーザが、操作対象のストレージ装置を選択した場合、選択されたストレージ装置の識別子が定義情報取得要求に含まれる。
定義情報取得要求30はWebサーバ部120で受け取られる。Webサーバ部120は、取得した定義情報31を要求処理部130に転送する。要求処理部130は、要求処理支援部140に定義情報31の取得要求を転送する。要求処理支援部140は、静的定義ファイル111と動的定義DB112とに基づいて、設定画面内の入力フィールド41,42に入力された文字列の入力値チェックに関する定義情報31を生成する。
要求処理支援部140は、生成した定義情報31を、要求処理部130に送信する。要求処理部130は、取得した定義情報31を、Webサーバ部120に転送する。Webサーバ部120は、取得した定義情報31を、定義情報取得要求に対する応答として、端末装置200に送信する。
端末装置200の入力支援部212は、定義情報31を取得すると、取得した定義情報31をメモリに格納する。その後、入力支援部212は、ユーザが設定画面内の入力用のフィールドに文字を1文字入力するごとに、入力された文字が、定義情報31に適合するか否か(妥当性)を検証する。入力された文字が定義情報31に不適合な場合、入力支援部212は、文字が不適合である旨をGUI211に通知する。GUI211は、入力された文字が不適合な場合、その旨をブラウザ210の画面で表示する。
入力された文字がすべて定義情報31に適合した状態で、ユーザが入力文字列を確定する操作を行うと、GUI211から入力支援部212へ操作実行依頼が送信される。入力支援部212は、操作実行依頼に応じた処理要求をストレージ運用管理サーバ100に送信する。
ストレージ運用管理サーバ100ではWebサーバ部120が操作要求を受信する。Webサーバ部120は、受信した操作要求を要求処理部130に転送する。要求処理部130は、操作要求を要求処理支援部140に転送する。要求処理支援部140は、静的定義ファイル111と動的定義DB112とに基づいて操作要求に示される文字列の入力値チェック(妥当性の検証)を行う。
図12は、ストレージ運用管理サーバにおける定義情報の生成例を示す図である。図12の例では、定義情報取得要求30には、API識別子「v1/pools」、パラメタ名「name」、ストレージ装置識別子「1」の情報が含まれている。この場合、要求処理支援部140は、静的定義ファイル111を参照し、API識別子「v1/pools」のパラメタ名「name」に対応するパラメタ値「pool_name」を取得する。次に要求処理支援部140は、動的定義DB112内のレコード112a,112b,・・・のうち、パラメタ値「pool_name」に対応するレコード112aから、タイプ「permit_symbol」、値「#$%&」を取得する。なおレコード112aには、ストレージ装置ごとのパラメタ値「pool_name」に関するレコードの検索キー(m_info)として「pool_name_sym」と設定されている。そこで、要求処理支援部140は、「pool_name_sym」をキーとして含むレコードを検索する。要求処理支援部140は、検索でヒットしたレコード112b〜112dのうちの、定義情報取得要求30に示されるストレージ装置識別子「1」のレコード112bから、タイプ「permit_symbol」、値「=~|-^」を取得する。
そして要求処理支援部140は、取得したデータに基づいて、端末装置200に送信する定義情報31を生成する。例えば図12の例では、定義情報31には、操作対象のストレージ装置を指定していない操作に関する入力値については、許容される記号が「#$%&」であることが示されている。また定義情報31には、操作対象がストレージ識別番号「1」のストレージ装置に対する操作に関する入力値については、許容される記号が「=~|-^」であることが示されている。
図13は、端末装置における入力値チェック例を示す図である。図13の例では、ストレージ識別番号「1」のストレージ装置を用いたストレージプールの名前入力用の入力フィールド71に「pool-01」と入力されている。GUI211は、入力フィールド71に1文字入力されるごとに、入力された文字の入力値チェック依頼を、入力支援部212に送信する。入力支援部212は、定義情報31を参照し、入力値チェックを行う。図13の例では、定義情報31において、ストレージ識別番号「1」のストレージ装置に対する操作では、アルファベットや数字の半角文字と記号「=~|-^」とが入力可能であることが定義されている。そこで、入力支援部212は、入力されたいずれの文字も適切な文字であると判断する。
なお、プール作成画面70での入力項目としては、ストレージプールのサイズのように、数字の入力が行われる場合もある。数字が入力される場合、1桁ごとの数ではなく、入力フィールドに入力された数値について、入力値チェックが行われる。例えばストレージプールのサイズ入力用の入力フィールドに「1024」(TB)と入力されたものとする。GUI211は、その入力フィールドに1文字入力されるごとに、入力された文字の入力値チェック依頼を、入力支援部212に送信する。入力支援部212は、定義情報31を参照し、その時点で入力フィールドに設定されている数値についての入力値チェックを行う。例えば定義情報31において、設定可能なストレージプールのサイズの上限として、1024TBより大きい値が示されているものとする。この場合、入力支援部212は、入力されたサイズが妥当であると判断する。
その後、ユーザが設定ボタン44を押下すると、GUI211は、設定実行依頼を入力支援部212に送信する。すると入力支援部212は、操作要求81をストレージ運用管理サーバ100に送信する。操作要求81には、API識別子「v1/pools」、パラメタ名「name」の入力文字列「pool-01」、ストレージ装置識別子「1」などが含まれる。
なお図13の例では、設定可能な文字が入力された場合を示しているが、設定が許容されていない文字が入力される場合もある。その場合、端末装置200では、エラーメッセージが表示される。
図14は、端末装置における入力値チェック例を示す図である。例えばユーザが、入力フィールド71に記号「!」を入力したものとする。この記号は、ストレージ装置識別子「1」のストレージ装置を操作する場合に入力が許される記号「=~|-^」に含まれていない。そこで入力支援部212により、不適合と判定される。そして入力支援部212は、不適合の判定結果をGUI211に通知する。不適合の判定結果には、例えば、不適合となった理由を示すエラーメッセージが含まれる。GUI211は、エラーメッセージを、例えばポップアップメニュー72でプール作成画面70に表示する。
ユーザは、ポップアップメニュー72で表示されたエラーメッセージを参照し、入力した文字が不適切であったことを認識する。そしてユーザは、不適切な文字を削除後、設定値として許容される文字を、入力フィールド71に再入力する。
ここで、図13に示したように正しい値が入力されると、操作要求81がストレージ運用管理サーバ100に送信される。ストレージ運用管理サーバ100では、操作要求81に応じたストレージ装置300,400,500の操作を行う前に、入力値チェックを行う。
図15は、ストレージ運用管理サーバにおける入力値チェック例を示す図である。端末装置200からの操作要求81を受信したストレージ運用管理サーバ100では、要求処理部130が、操作要求81を解読する。そして要求処理部130は、操作要求81から、例えばAPI識別子、パラメタ名、入力文字列を抽出する。要求処理部130は、抽出した情報を、要求処理支援部140に送信する。
要求処理支援部140は、まず静的定義ファイル111を参照する。そして要求処理支援部140は、パラメタ名を検索キーとして、静的定義ファイル111内の情報を検索する。図15の例では、要求処理支援部140がパラメタ名「name」で検索し、そのパラメタ名に対応する定義名「pool_name」を取得する。
次に、要求処理支援部140は、定義名「pool_name」を検索キーとして、動的定義DB112を検索する。すると、レコード112aがヒットする。要求処理支援部140は、レコード112aから、許可記号「permit_symbol」の値「#$%&」を取得する。操作要求にストレージ装置識別子が含まれていなければ、要求処理支援部140は、取得した値「#$%&」以外の記号が、操作要求81においてパラメタ値として入力された文字列「pool-01」に含まれるか否かの判断処理(入力値チェック)を行うこととなる。
図15の例では操作要求にストレージ装置識別子「1」が含まれている。そこで要求処理支援部140は、最初の検索でヒットしたレコード112aに検索キー(m_info)として設定された「pool_name_sym」をキーに含む、ストレージ装置識別子「1」のレコード112bを、動的定義DB112から取得する。レコード112bには、使用可能な記号が「=~|-^」であることが示されている。入力値「pool-01」には、使用可能な記号「=~|-^」以外の記号は含まれないため、要求処理支援部140は、入力値が正しいと判断する。
このように、端末装置200とストレージ運用管理サーバ100との両方で、共通の定義情報を用いて入力値チェックを行うことができる。以下、図16〜図21を参照して、入力値チェックを伴うストレージ装置300,400,500の操作手順を詳細に説明する。
図16は、画面表示に伴う定義情報の取得処理の手順の一例を示すシーケンス図である。例えばユーザ82は、端末装置200に対して、ストレージ運用管理サーバ100へのアクセス指示を入力する(ステップS11)。端末装置200のブラウザ210は、ストレージ運用管理サーバ100に対して、GUI211と入力支援部212とを実行するためのファイルの取得要求を送信する(ステップS12)。ストレージ運用管理サーバ100のWebサーバ部120は、ファイル取得要求に従って、例えば内部のストレージ装置103からGUI211と入力支援部212用の実行ファイルを読み出し、端末装置200に送信する(ステップS13)。
端末装置200のブラウザ210は、入力支援部212の初期化処理を行う(ステップS14)。例えばブラウザ210は、入力支援部用の実行ファイルを実行することで、入力支援部212を起動する。すると入力支援部212が、自身の初期化処理を開始する。入力支援部212は、初期化処理において、定義情報取得要求をストレージ運用管理サーバ100に送信する(ステップS15)。この時点では、ユーザ82によるストレージ装置の選択は行われていないため、ストレージ装置に依存しない共通の定義情報についての定義情報取得要求が行われる。
定義情報取得要求を受信したストレージ運用管理サーバ100のWebサーバ部120は、定義情報取得要求を受信すると、その定義情報取得要求を要求処理部130に転送する(ステップS16)。要求処理部130は、受信した定義情報取得要求を、要求処理支援部140に転送する(ステップS17)。要求処理支援部140は、記憶部110内の静的定義ファイル111から、静的定義情報を取得する(ステップS18)。さらに要求処理支援部140は、記憶部110内の動的定義DB112から、動的定義情報を取得する(ステップS19)。要求処理支援部140は、取得した静的定義情報と動的定義情報とを統合した定義情報を生成し、生成した定義情報を要求処理部130に送信する(ステップS20)。要求処理部130は、受信した定義情報をWebサーバ部120に送信する(ステップS21)。Webサーバ部120は、受信した定義情報を、端末装置200に送信する(ステップS22)。
端末装置200では、定義情報を入力支援部212が受信する。そして入力支援部212は、受信した定義情報を、メモリなどの記憶装置に格納する(ステップS23)。その後、入力支援部212は、初期化終了をブラウザに通知する(ステップS24)。ブラウザ210は、入力支援部212の初期化が終了すると、GUI211の初期化処理を行う(ステップS25)。例えばブラウザ210は、GUI用の実行ファイルを実行することで、GUI211を起動する。するとGUI211が、自身の初期化処理を開始する。GUI211は、初期化処理によって初期の操作画面を生成する。ブラウザ210は、GUI211の初期化が終了すると、GUI211が生成した操作画面をモニタに表示する(ステップS26)。ユーザ82は、表示された操作画面に対して、文字入力などの操作を行う。
なお、図9、図10に示したように、ユーザ82は、操作対象のストレージ装置を指定した操作を行うことができる。この場合、ユーザ82が操作対象のストレージ装置を選択すると、端末装置200は、ストレージ運用管理サーバ100から、操作対象のストレージ装置に対応する動的定義情報を取得する。この際の動的定義情報の取得の手順は、図16のステップS15〜S23の処理と同様である。ただし、要求処理支援部140による動的定義情報の取得処理(ステップS19)では、操作対象のストレージ装置に対応するレコードから、動的定義情報を取得する。
図17は、ストレージ運用管理サーバにおける定義情報提供処理の手順の一例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS101]ストレージ運用管理サーバ100は、定義情報取得要求を受信する。定義情報取得要求は、Webサーバ部120と要求処理部130とを介して、要求処理支援部140に転送される。
[ステップS102]要求処理支援部140は、静的定義ファイル111内の、定義情報取得要求に示されるAPI識別子に対応する静的定義から、動的定義の検索キーを取得する。
[ステップS103]要求処理支援部140は、定義情報取得要求において、操作対象のストレージ装置が指定されているか否かを判断する。要求処理支援部140は、ストレージ装置が指定されていない場合、処理をステップS104に進める。また要求処理支援部140は、ストレージ装置が指定されている場合、処理をステップS105に進める。
[ステップS104]要求処理支援部140は、動的定義DB112内のストレージ装置識別子を含まないレコード群の中から、取得した検索キー(例えば「pool_name」)を含むレコードを検索する。
[ステップS105]要求処理支援部140は、操作対象の指定されたストレージ装置の識別子を含む、動的定義DB112内のレコード群の中からレコードを検索する。例えば要求処理支援部140は、まず、動的定義DB112内のストレージ装置識別子を含まないレコード群の中から、取得した検索キー(例えば「pool_name」)を含むレコードを検索する。次に要求処理支援部140は、該当するレコードに示されるストレージ装置ごとの定義の検索キー(例えば「pool_name_sym」)を含むレコードのうち、操作対象を示すストレージ装置識別子(例えば「stg_id: 1」)を含むレコードを検索する。
[ステップS106]要求処理支援部140は、取得した静的定義と動的定義とから、定義情報を生成する。
[ステップS107]要求処理支援部140は、生成した定義情報を、要求処理部130へ送信する。要求処理部130は、受信した定義情報をWebサーバ部120へ転送する。そしてWebサーバ部120が、定義情報を端末装置200に送信する。
このようにして送信された定義情報は、端末装置200において保持される。そして端末装置200では、GUI211によって表示された設定画面に文字が1文字入力されるごとに、入力された文字の入力値チェックを実行する。
図18は、端末装置における入力値チェック処理の手順の一例を示すシーケンス図である。ユーザ82が端末装置200へ文字入力を行う(ステップS41)。端末装置200では、ブラウザ210が入力された文字を認識し、その文字をGUI211に設定する(ステップS42)。GUI211は、入力された文字の入力値チェックを、入力支援部212に依頼する(ステップS43)。入力支援部212は、予め取得してある定義情報に基づいて、入力値チェックを行う(ステップS44)。そして、入力支援部212は、入力値チェックの結果をGUI211に応答する(ステップS45)。GUI211は、入力値チェック結果に応じて表示するメッセージ(例えばエラーメッセージ)がある場合、その表示をブラウザ210に指示する(ステップS46)。ブラウザ210は、モニタにメッセージを表示する(ステップS47)。
図18に示すような処理が、1文字入力されるごとに繰り返される。入力支援部212は、例えば定義情報に合致しない文字が入力された場合にはエラーメッセージを表示し、その文字の修正を促す。そして入力支援部212は、定義情報に適合する文字の文字入力が確定すると、操作要求をストレージ運用管理サーバ100へ操作要求を送信する。
図19は、1文字ずつの入力値チェック処理の手順の一例を示すフローチャートである。以下、図19に示す処理を、ステップ番号に沿って説明する。
[ステップS111]入力支援部212は、入力フィールドへの文字入力が行われたか否かを判断する。入力支援部212は、入力フィールドに文字が1文字入力された場合、処理をステップS112に進める。また入力支援部212は、入力フィールドへ文字が入力されていなければ、処理をステップS116に進める。
[ステップS112]入力支援部212は、定義情報に基づいて、入力された文字が妥当か否かを判断する。入力支援部212は、入力された文字が妥当な場合、処理をステップS116に進める。また入力支援部212は、入力された文字が妥当ではない場合、処理をステップS113に進める。
[ステップS113]入力支援部212は、ブラウザ210にエラーメッセージを表示させる。例えば入力支援部212は、入力された文字が不適当であることを示すエラーメッセージを、GUI211に送信する。GUI211は、受信したエラーメッセージを含むポップアップメニューの表示をブラウザ210に指示する。するとブラウザ210が、エラーメッセージを示すポップアップメニューを画面表示する。
[ステップS114]入力支援部212は、不適当な文字が、入力フィールドから消去されたか否かを判断する。入力支援部212は、該当文字が消去された場合、処理をステップS115に進める。また入力支援部212は、該当文字が消去されていなければ、消去されるまでステップS114の処理を繰り返す。
[ステップS115]入力支援部212は、エラーメッセージの表示を停止する。例えば入力支援部212は、エラーメッセージの表示停止指示をGUI211に指示する。GUI211は、エラーメッセージのポップアップメニューの表示の停止を、ブラウザ210に指示する。ブラウザ210は、画面からポップアップメニューを消去する。その後、入力支援部212は、処理をステップS111に進める。
[ステップS116]入力支援部212は、ユーザにより、操作実行を依頼する操作入力が行われたか否かを判断する。入力支援部212は、操作実行依頼が入力された場合、入力フィールドの文字列を確定して、処理をステップS117に進める。また入力支援部212は、操作実行依頼が入力されていなければ、処理をステップS111に進める。
[ステップS117]入力支援部212は、入力フィールドの文字列に応じた操作要求を、ストレージ運用管理サーバ100に送信する。
このようにして、定義情報に従った適切な文字のみを含む文字列を含む操作要求が、端末装置200からストレージ運用管理サーバ100に送信される。ストレージ運用管理サーバ100においても入力値チェックを行った上で、操作要求に応じたストレージ装置への操作が実行される。
図20は、ストレージ装置の操作手順の一例を示すシーケンス図である。ユーザ82が、操作実行を依頼する操作入力を行う(ステップS61)。すると端末装置200のブラウザ210は、操作実行依頼をGUI211に送信する(ステップS62)。GUI211は、入力支援部212に操作実行依頼を転送する(ステップS63)。入力支援部212は、操作実行依頼に応じて、操作要求をストレージ運用管理サーバ100に送信する(ステップS64)。
ストレージ運用管理サーバ100では、Webサーバ部120が操作要求を受信する。そしてWebサーバ部120は、操作要求に応じた操作実行指示を要求処理部130に送信する(ステップS65)。要求処理部130は、操作実行指示を要求処理支援部140に送信する(ステップS66)。
要求処理支援部140は、操作実行指示を受信すると、入力値チェック処理を開始する(ステップS67)。要求処理支援部140は、入力値チェック処理において、まず、静的定義ファイル111から静的定義情報を取得する(ステップS68)。次に要求処理支援部140は、動的定義DB112から動的定義情報を取得する(ステップS69)。そして要求処理支援部140は、静的定義情報と動的定義情報とに基づいて、入力された文字の妥当性をチェックする(ステップS70)。入力された文字が妥当な場合、要求処理支援部140は、操作対象のストレージ装置に対して、操作実行指示に従った操作を実行する(ステップS71)。例えば要求処理支援部140は、ストレージ装置を用いたストレージプール作成をストレージ管理部150に指示する。ストレージ管理部150は、ストレージプールに利用するストレージ装置に対して、ストレージプールの設定を行う。
操作実行が完了すると、要求処理支援部140は、操作実行の完了応答を要求処理部130に送信する(ステップS72)。要求処理部130は、操作実行の完了応答をWebサーバ部120に送信する(ステップS73)。Webサーバ部120は、操作要求に応じた操作の実行結果を、端末装置200に送信する(ステップS74)。端末装置200では、実行結果を入力支援部212が受信する。そして入力支援部212は、操作実行結果をGUI211に送信する(ステップS75)。GUI211は、操作実行結果の表示をブラウザ210に指示する(ステップS76)。ブラウザ210は、操作実行結果を画面に表示する(ステップS77)。
このようにして、ストレージ運用管理サーバ100においても、端末装置200と統一した定義情報に基づいて、入力値チェックが行われる。
なお動的定義DB112内のデータは、システム内のストレージ装置300,400,500の構成の変更に伴って、動的に更新される。動的定義DB112内のデータの更新は、例えば要求処理支援部140によって実行される。
図21は、動的定義DB更新処理の手順の一例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。なお、動的定義DB更新処理は、要求処理支援部140により定期的に実行される。
[ステップS131]要求処理支援部140は、ストレージ装置が新たにシステムに登録されたか否かを判断する。例えば、ストレージ管理部150が、システム内のストレージ装置の構成を示す構成情報を管理する。ストレージ管理部150は、定期的にシステムの構成をチェックする。システムに新たなストレージ装置が接続されると、ストレージ管理部150は、接続されたストレージ装置から情報を取得し、取得した情報に基づいて、管理している構成情報を更新する。要求処理支援部140は、ストレージ管理部150が新たなストレージ装置を検知して、構成情報にそのストレージ装置の情報を登録した場合、ストレージ装置が登録されたと判断する。
要求処理支援部140は、ストレージ装置が登録された場合、処理をステップS132に進める。また要求処理支援部140は、ストレージ装置が登録されていなければ、処理をステップS133に進める。
[ステップS132]要求処理支援部140は、新たに登録されたストレージ装置から、動的定義情報を取得する。例えば要求処理支援部140は、ストレージ管理部150に対して、新たに登録されたストレージ装置からの動的定義情報の取得を指示する。ストレージ管理部150は、指示に従って、ストレージ装置から動的定義情報を取得し、取得した動的定義情報を要求処理支援部140に送信する。要求処理支援部140は、取得した動的定義情報を示すレコードを、動的定義DB112に追加登録する。
[ステップS133]要求処理支援部140は、ストレージ装置の状態に変化があったか否かを判断する。例えば、ストレージ管理部150が、登録されているストレージ装置の状態(動的定義情報を含む)を定期的にチェックする。ストレージ管理部150は、ストレージ装置の状態に変化があると、このことを検知し、その旨を要求処理支援部140に通知する。要求処理支援部140は、ストレージ装置の状態が変化した旨の通知を受け取った場合、ステップS133において、ストレージ装置の状態に変化ありと判断する。
要求処理支援部140は、いずれかのストレージ装置の状態が変化した場合、処理をステップS134に進める。また要求処理支援部140は、いずれのストレージ装置の状態も変化していなければ、動的定義更新処理を終了する。
[ステップS134]要求処理支援部140は、ストレージ管理部150を介して、状態が変化したストレージ装置の動的定義情報を、そのストレージ装置から取得する。そして要求処理支援部140は、動的定義DB112内の該当ストレージ装置の動的定義情報を示すレコードを、取得した動的定義情報に基づいて更新する。
動的定義DB情報を適宜更新することにより、動的定義DB112内のデータが、常に最新の状態に維持される。
このように第2の実施の形態によれば、端末装置200とストレージ運用管理サーバ100とにおいて、統一した定義情報に基づいて、入力値チェックを行うことができる。その結果、端末装置200での入力値チェックの内容と、ストレージ運用管理サーバ100での入力値チェックの内容とで不整合(仕様の齟齬)が生じることを抑止できる。その結果、システムのサービスの品質が向上する。
しかも端末装置200では、GUI211や入力支援部212を実現するためのファイルをストレージ運用管理サーバ100から取得しており、これらのコンポーネントの開発を、端末装置200側で個別に行わずに済む。そのため、端末装置200とストレージ運用管理サーバ100との双方での入力値チェック処理用のソフトウェアコンポーネントの重複した開発(2重開発)による無駄な作業の発生を抑止できる。
〔その他の実施の形態〕
第2の実施の形態では、アカウント作成時またはストレージプールの作成時に入力された文字の入力値チェックを行う例を示したが、他の用途で入力された文字についても、同様に、統一した定義情報による入力値チェックが可能である。
またストレージ運用管理サーバ100の記憶部110、Webサーバ部120、要求処理部130、および要求処理支援部140を、各ストレージ装置300,400,500内に設けることもできる。この場合、端末装置200は、ストレージプールの作成などのストレージ装置に関する操作を、ストレージ運用管理サーバ100を介さずに、ストレージ装置300,400,500に対して直接行うことが可能となる。そして、ストレージ装置300,400,500を端末装置200から直接操作する場合であっても、端末装置200と操作対象のストレージ装置との間で統一した入力値チェックが行われる。
第2の実施の形態では、入力値チェックの例として、入力が許容される文字の種別の妥当性を判断する例を示したが、他の入力値チェックも可能である。例えば端末装置200とストレージ運用管理サーバ100とは、ストレージ運用管理サーバ100と端末装置200との両方で、入力された数値が、予め設定された許容数値範囲内に入っているか否かをチェックすることができる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 サーバ
1a 第1記憶部
1b 第1処理部
2 端末装置
2a 第2記憶部
2b 第2処理部
3 取得要求
4 定義情報
5 画面
6 入力領域
7 メッセージ
8 処理要求

Claims (7)

  1. 入力値の許容範囲を定義した定義情報を記憶する記憶部と、取得要求に応じて前記定義情報を応答出力し、前記入力値を含む処理要求に応じて、前記処理要求に含まれる前記入力値を利用した処理を実行する第1処理部とを有するサーバと、
    前記サーバに前記取得要求を送信することで、前記サーバから前記定義情報を受信し、前記入力値の入力領域を含む画面を表示し、前記入力領域に前記入力値が入力されると、前記サーバから受信した前記定義情報に基づいて、前記入力値が前記許容範囲内か否かを判断し、前記入力値が前記許容範囲内と判断した場合、前記入力値を含む前記処理要求を前記サーバに送信する第2処理部を有する端末装置と、
    を有する情報処理システム。
  2. 前記サーバの前記第1処理部は、前記処理要求を受信すると、前記定義情報に基づいて、前記処理要求に含まれる前記入力値が前記許容範囲内か否かを判断し、前記入力値が前記許容範囲内と判断した場合、前記入力値を利用して前記処理を実行する、
    請求項1記載の情報処理システム。
  3. 前記端末装置の前記第2処理部は、前記入力領域に1文字入力されるごとに、入力された前記1文字が前記許容範囲内か否かを判断する、
    請求項1または2に記載の情報処理システム。
  4. 前記サーバの前記記憶部は、複数のストレージ装置それぞれに対応する装置別の定義情報を記憶しており、前記サーバの前記第1処理部は、操作対象のストレージ装置を指定した前記取得要求に応じて、前記操作対象のストレージ装置に対応する前記装置別の定義情報を応答出力し、
    前記端末装置の前記第2処理部は、前記操作対象のストレージ装置の選択入力に応じて、前記操作対象のストレージ装置を指定した前記取得要求を前記サーバに送信し、前記サーバから、前記操作対象のストレージ装置に対応する前記装置別の定義情報を受信する、
    請求項1ないし3のいずれかに記載の情報処理システム。
  5. 前記サーバの前記第1処理部は、前記複数のストレージ装置の状態を監視し、状態が変化した一ストレージ装置を検出した場合、前記一ストレージ装置から、前記一ストレージ装置に対する前記入力値の前記許容範囲を定義する前記装置別の定義情報を取得し、取得した前記装置別の定義情報を、前記一ストレージ装置に対応付けて前記記憶部に格納する、
    請求項4記載の情報処理システム。
  6. コンピュータに、
    入力値の許容範囲を定義した定義情報を記憶部に記憶し、
    取得要求に応じて前記定義情報を要求元装置に応答出力し、
    前記入力値を含む処理要求の受信に応じて、前記処理要求に含まれる前記入力値を利用した処理を実行する、
    処理を実行させる入力値検証支援プログラム。
  7. コンピュータに、
    入力値の許容範囲を定義した定義情報を記憶するサーバから前記定義情報を受信し、
    前記入力値の入力領域を含む画面を表示し、
    前記入力領域に前記入力値が入力されると、前記サーバからの前記定義情報に基づいて、前記入力値が前記許容範囲内か否かを判断し、
    前記入力値が前記許容範囲内と判断した場合、前記入力値を含む処理要求を前記サーバに送信する、
    処理を実行させる入力値検証プログラム。
JP2018084005A 2018-04-25 2018-04-25 情報処理システム、入力値検証支援プログラム、および入力値検証プログラム Pending JP2019191931A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018084005A JP2019191931A (ja) 2018-04-25 2018-04-25 情報処理システム、入力値検証支援プログラム、および入力値検証プログラム
US16/287,434 US20190332458A1 (en) 2018-04-25 2019-02-27 Information processing system, input value verification support program, and input value verification program
CN201910203551.0A CN110399230A (zh) 2018-04-25 2019-03-18 信息处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018084005A JP2019191931A (ja) 2018-04-25 2018-04-25 情報処理システム、入力値検証支援プログラム、および入力値検証プログラム

Publications (1)

Publication Number Publication Date
JP2019191931A true JP2019191931A (ja) 2019-10-31

Family

ID=68292533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018084005A Pending JP2019191931A (ja) 2018-04-25 2018-04-25 情報処理システム、入力値検証支援プログラム、および入力値検証プログラム

Country Status (3)

Country Link
US (1) US20190332458A1 (ja)
JP (1) JP2019191931A (ja)
CN (1) CN110399230A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11048549B2 (en) * 2019-04-04 2021-06-29 Google Llc Transferral of process state and/or components in computing environments

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318916A (ja) * 2000-07-14 2002-10-31 Tokyo Stock Exchange Inc 配信可能通知ネットワークシステム及び情報処理装置,配信可能通知方法,配信可能情報受信方法,プログラム並びに記憶媒体
US7099724B2 (en) * 2001-04-11 2006-08-29 Sony Corporation Information processing system
JP2003223449A (ja) * 2001-10-26 2003-08-08 Yasuhiro Tanaka 端末情報の登録およびその活用方法。
AR042995A1 (es) * 2003-02-01 2005-07-13 Baxter Int Sistema y metodo para verificar los parametros operativos de un dispositivo medico
US20050102371A1 (en) * 2003-11-07 2005-05-12 Emre Aksu Streaming from a server to a client
JP2007141187A (ja) * 2005-11-22 2007-06-07 Fujitsu Ltd 情報登録用端末装置、作業情報登録方法、およびコンピュータプログラム
JP4285658B2 (ja) * 2006-10-17 2009-06-24 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブ・サービスを提供する装置およびその方法
US20090019313A1 (en) * 2007-07-10 2009-01-15 Ramesh Pokala System and method for performing client-side input validation
WO2012042509A1 (en) * 2010-10-01 2012-04-05 Peter Chacko A distributed virtual storage cloud architecture and a method thereof
JP6085957B2 (ja) * 2012-03-14 2017-03-01 株式会社リコー 情報処理装置、プログラム、情報処理システム及び情報共有方法
JP6079183B2 (ja) * 2012-12-05 2017-02-15 富士通株式会社 情報処理装置、通信端末、アプリケーション提供方法、アプリケーション実行方法、アプリケーション提供プログラム、及びアプリケーション実行プログラム
US10075500B2 (en) * 2013-08-22 2018-09-11 Korea Advanced Institute Of Science And Technology Service method and system using instance interface of virtualization object in internet of things environment
JP2016051287A (ja) * 2014-08-29 2016-04-11 キヤノンマーケティングジャパン株式会社 情報処理装置、Webブラウザの制御方法、プログラムおよび記録媒体。
US9998434B2 (en) * 2015-01-26 2018-06-12 Listat Ltd. Secure dynamic communication network and protocol
JP2017010246A (ja) * 2015-06-22 2017-01-12 株式会社 ゆうちょ銀行 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
CN110399230A (zh) 2019-11-01
US20190332458A1 (en) 2019-10-31

Similar Documents

Publication Publication Date Title
AU2014348826B2 (en) User support experience with automatically generated virtual environment
JP6291826B2 (ja) 情報処理システム及びライセンス管理方法
US8307058B2 (en) Apparatus, method, and computer program product for processing information
JP6291825B2 (ja) 情報処理システム、情報処理装置、ライセンス管理方法及びプログラム
JP6335945B2 (ja) 多機能周辺デバイスに外部ウェブサービスへのアクセスを提供するコンピュータプログラム、装置及び方法
US20140122349A1 (en) System, information management method, and information processing apparatus
JP2015122058A (ja) 情報共有システムおよび情報共有方法
JP6582841B2 (ja) サービス提供システム、情報処理装置、プログラム及び情報処理システム
US11451446B2 (en) Device management system, network device, device management method, and computer-readable medium
JP5544029B1 (ja) 環境構築装置および環境構築プログラム
JP6075011B2 (ja) 情報処理装置、システム及び情報提供方法
JP2019191931A (ja) 情報処理システム、入力値検証支援プログラム、および入力値検証プログラム
JP2010128593A (ja) 通信システム、情報記録装置、提供装置及び通信方法
JP5703352B2 (ja) アプリケーションシステム、携帯端末、サーバコンピュータおよびコンピュータプログラム
JPWO2015019398A1 (ja) 画面表示プログラム
KR101673439B1 (ko) 세무회계자료 자동 수집을 위한 정보제공 모듈 및 그 방법
JP6451888B2 (ja) 情報処理装置、システム及びプログラム
JP2017041151A (ja) 情報処理システム、情報処理装置、情報処理方法および情報処理プログラム
JP6016831B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP2023117927A (ja) サーバ装置、通信装置およびそれらの制御方法、プログラム
JP5712314B2 (ja) 環境構築装置および環境構築プログラム
JP2023140829A (ja) サービス提供システム、サービス提供方法及びプログラム
JP2023034929A (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
CN117312334A (zh) 一种数据字典管理方法、系统、设备及存储介质
CN117478476A (zh) 信息处理装置、存储介质及信息处理方法