A177-1:
> ------------------------------ 構成 -------------------------------------
> 1.自由度の高い外部レンタルサーバーとして、さくらのVPSサービスを利用する。
> 2.ある程度のセキュリティを備えるため、データベースとのアクセスは、SSHトンネルを作ってJDBCでやりとりする。
> ------------------------------------------------------------------------
>
> Q1−1.このような構成でシステムを運用して、一般的に 問題となることがありますでしょうか?
ご提示の構成での運用で一般的に問題となるような事案は、こちらでは把握しておりません。現実的な選択と考えられます。
> Q1−2.SSHトンネルをMZPFで作成したいのですが、実現できるMZPFコンポートを提供して頂くことは可能でしょうか?
コンポーネント化につきましては、こちらで対応いたしたく存じます。ただし、今の時点では、ご提供の時期について明確なことは申し上げられません。どうぞご了承下さい。
> Q2.MZPF上でのフレームワーク構築について
> 開発を続けていく過程で、以下の課題が見えてきました。
> ・メンテナンス性を考慮して、各機能を疎結合にしたい。
> ・入力値の形式チェックを設定ファイル等に切り出して自動化したい。
> ・画面の入力値のクリア処理を自動的に行いたい。
> ・ウィンドウをどんどん開きたくない。
>
> これらの課題を解決できるように、フレームワーク的なものを作成したいと考えております。
>
> Q2−1.このような考え方を実際に採用されている事例はありますでしょうか?
具体的な事例を確認しているわけではありませんが、データベースを活用したシステムを開発されている場合には、データベースを中心として、互いに独立性の高い個々の機能を作成/追加するという形態で開発を行うのが自然であり、そのように開発を行うことが多いように思います。
多くのウィンドウを開きたくないということであれば、スクロールパネルなどを用いて必要なインタフェースを1画面に収めてしまうか、タブを使って機能毎に画面を切り替えるという方法が考えられます。
> Q2−2.このようなフレームワーク的なもののサンプル等を提供して頂けないでしょうか?
> 希望しているものは、これらの課題を個別に解決できるものではなく、統合された形のものとなります。
ご提示の課題を解決するための便利機能を備えた複合コンポーネントを用意し、作成するシステムにそれらの複合コンポーネントを取り込んで開発を進めていくのが効率的ではないかと思います。
ご参考までに、以下の機能を備えた3つの複合コンポーネントと、それらをタブで切り替えられるようにしたサンプルアプリケーションを用意しましたので、どうぞお試しください。
(1) クリア機能付GUI複合コンポーネント.mzcx
画面上に配置されているコンポーネントのデータを一括クリアする機能を備えた複合コンポーネントです。
まず、画面上に必要なコンポーネントを配置します。[全クリア]ボタンをクリックすると、画面上に配置されているフィールド類、テキストエリア、グラフ、テーブル、イメージビューワのデータがクリアされます(テーブルは行のみクリア)。ビルダー上には存在していても、画面上に配置されていないコンポーネントのデータはクリアされません。
(2) 書式チェック機能付GUI複合コンポーネント.mzcx
画面上に配置されているテキストフィールドの書式チェック機能を備えた複合コンポーネントです。
まず、画面上に必要なコンポーネントを配置します。[テキストフィールドの書式設定...]ボタンをクリックすると、書式設定用のダイアログが表示されます。書式指定を行いたいテキストフィールドをリストから選択し、リストの下の書式入力欄に書式指定文字列を記入します。[参照...]ボタンをクリックすると、登録済みの標準書式から書式指定文字列を選択することができます。(書式指定文字列は、Javaの正規表現です。正規表現の詳細は、MZ Platform付属のドキュメントインデックスから「9. Java SE Javadoc」を選択し、Patternの項をご覧ください。)
[書式登録]ボタンをクリックすると、書式指定登録情報が一覧表に追加されます。必要な登録を終えたら、ダイアログを閉じます。
[書式チェック]ボタンをクリックすると、登録された書式情報に基づいてチェックが行われ、書式に合致していないテキストフィールドに対して警告メッセージが表示されます。ビルダー上には存在していても、画面上に配置されていないテキストフィールドの書式はチェックされません。
標準書式一覧表、書式登録表のいずれも、CSVファイルへの入出力が可能です。
(3) テーブルとフィールドの関連付.mzcx
画面上に配置された各種フィールド(テキストフィールド、数値入力フィールド、日付入力フィールド)とテーブルのセルとを関連付け、フィールドの値を関連付けたセルに設定したり、逆にテーブルのセルの値をフィールドに設定する機能を備えた複合コンポーネントです。データベースへの入出力を行うのに便利かと存じます。
まず、画面上に必要なフィールドを配置します。次に、テーブルに列と行を追加します。テーブルのセルを選択して、[選択セルへのフィールドの関連付け...]ボタンをクリックします。その列型に応じて、セルへ関連付けられるフィールドの一覧が表示されます。関連付けたいフィールドを選択して[OK]ボタンをクリックします。(必要に応じてこの作業を繰り返し行います。)
[フィールドからテーブルセルへの値設定]ボタンをクリックすると、フィールドに入力された値が、テーブルの関連付けられたセルに設定されます。また、[テーブルセルからフィールドへの値設定]ボタンをクリックすると、テーブルセルの値が、関連付けられたフィールドに設定されます。
関連ファイル:クリア機能付GUI複合コンポーネント.mzcx、書式チェック機能付GUI複合コンポーネント.mzcx、テーブルとフィールドの関連付.mzcx、便利機能サンプル.mzax
Q177-2:
>>Q1−2.SSHトンネルをMZPFで作成したいのですが、実現できるMZPFコンポートを提供して頂くことは可能でしょうか?
>コンポーネント化につきましては、こちらで対応いたしたく存じます。ただし、今の時点では、ご提供の時期について明確なことは申し上げられません。どうぞご了承下さい。
コンポーネント化の件、了解しました。ありがとうございます。
>具体的な事例を確認しているわけではありませんが、データベースを活用したシステムを開発されている場合には、データベースを中心として、互いに独立性の高い個々の機能を作成/追加するという形態で開発を行うのが自然であり、そのように開発を行うことが多いように思います。
この点に関して、再度質問させてください。
まず、弊社の状況を説明します。
--------------------- 状況説明 ---------------------------
私どもの場合、メンバーのスキルやチーム編成上、どうしても、システムに対して手直しが入ります。
これが、データベースの構造(カラムの追加だけでなく、テーブル設計)にまで及ぶこともあります。
これは、従来Excelで業務を管理しており、Excelをデータベースとして使用せず、帳票描画ツール(エディタ)として使用してきたため、データベース的な考え方の理解が出来ていない点にあると思います。
また、別の原因として、MZPFシステム専任者である私が自社の業務を理解できていないこともあります。
このように限られたリソース(チーム編成、人)でシステムを作成するということで、データベースの変更まで行うトライ&エラーでのアプローチを採用しております。
このような状況の為、頻繁なメンテナンスに耐えうるMZPFアプリを構築できないものかと模索しているところです。
もちろん、MZPFアプリ側の対応だけでなく、人側の足りないスキルも向上させるべく勉強会を開いたりするなどの対応もしております。
----------------------------------------------------------
このような状況と、クラウド(レンタルサーバー)対応なども考えて、MZPF上にフレームワーク的な機能を作り、システムを構築した方が良いのではと考えました。
---------------- 前回質問引用(→が追記分) ------------------
・メンテナンス性を考慮して、各機能を疎結合にしたい。
→MZPFアプリ上でコンポーネントのネストが深くならないように、MVCパターンのコントローラ層的なものを導入。
コントローラ層内に各機能(画面毎に作成したMZPF複合コンポーネント)を全て配置しております。
・入力値の形式チェックを設定ファイル等に切り出して自動化したい。
→事前に設定したCSVファイル内容に基づき、入力値の形式チェック機能を導入。
・画面の入力値のクリア処理を自動的に行いたい。
→入力値をクリアしたいパネルを受け取り、パネル内の入力コンポーネント内容をクリアする機能を導入。
・ウィンドウをどんどん開きたくない。
→パネルを差し替えれば、実現できることはわかっておりますが、フレームワーク機能としては実現できておりません。
-----------------------------------------------------------
「→追記分」にありますように、前回質問に挙げました機能は、いくつか私どもでも、実現できておりますが、もしかしたら、フレームワークとしてまとまったものが、既に提供可能な形であるのではとの考えから、質問した次第でした。
私が、フレームワークと言っているものは、Java言語でいうところの、strutsのようなものをイメージして頂ければと思います。
>具体的な事例を確認しているわけではありませんが、データベースを活用したシステムを開発されている場合には、データベースを中心として、互いに独立性の高い個々の機能を作成/追加するという形態で開発を行うのが自然であり、そのように開発を行うことが多いように思います。
とありますが、
Q.MZPFを採用しアプリを開発した各企業がそれぞれフレームワークを独自に考えゼロから作成していると考えてよろしいでしょうか?