PaaSソリューションdFrame

What is dFrame?

No Code
Low Code
複数アプリ共存
MVC/ソースコード公開
多言語対応
AI サポート?
dFrame構成図

No Codeトライ!

Youtubeで視る
機能一覧
試用してみる
ソースコードを見る

構築事例:

1.保育記録システム
概要
機能一覧
試用してみる
ソースコードを見る
2.タスク管理システム
概要
機能一覧
試用してみる
ソースコードを見る

 開発者

What is dFrame?

dFrame は オープンソースのPaaS(Platform as a Service)ソリューションとなることを目指しています。 今、プロトタイプをご評価していただくことができます。
オープンソースとして開発現場で実装・活用する、あるいは、 コミュニティでプロダクトバックログを共有し、改善改良の成果を共有したい有志の方々のご参画をお待ちしています。

No Codeープログラム作成を必要とせず、設計画面に必要情報を登録するだけで、アプリケーションを作成できます。

Low Codeーアプリケーション固有の機能を付加したい、あるいは、所定の書式の文書をPDFファイルにしたい、などの ニーズに対しては、MySQLのProcedure/View/Function/Triggerに少量のプリグラム・コードを付加することにより、手早く 実現できます。

Clearanceーカプセル化 保守性。

【No Code】

「設定」モード下で、「オブジェクト」「オブジェクト・フィールド」の設定をするだけで、データベース・スキーマの自動作成が完了します。

また、既存のデータベース・スキーマ(テーブル)が存在する場合は、dFrameの「オブジェクト」として(フィールド設定が不要で)取り込み 可能です。(注:2025年上期予定)

そして「設定」モードを終了して「アプリ」モードに移行すれば、データ入力、編集、検索などの処理が可能になります。
例えば、データのリスト表示(一覧表表示)⇒検索(データ・ビュー表示)⇒データ単票表示による編集 あるいは 新規データ入力 などの処理がプログラム・ コードを書くことなく、アプリを作成・実行できます。
リスト表示は、複数ページに亘って表示できます。1ページに表示する行数は、任意に設定できます。

PDFファイルあるいはCSVファイルへの出力は、出力対象の「オブジェクト」名を「レポート」テーブルに登録するだけで可能です。さらに、 データの抽出条件を設定したい、あるいは他の「オブジェクト」と結合したデータを出力したい、場合などは、MySQLのProcedure/Viewなどの 「Low Code」を作成するだけでこれらを実現できます。

【Low Code】

単票表示による1件づつのデータ入力でなく、複数行を一括入力したい場合、あるいは、PDF帳票出力、メール送信などを実行 したい場合には、データ表示の前に出力データの「抽出」や「成形」を行う必要があります。
この「抽出」「成形」は、MySQLのProcedure/Viewで行います。

さらに、画面表示の前、あるいは、データ編集後のデータ「保存」の際に、データ値に他データ項目値の参照などの演算を施したい場合などには、 MySQLのtrigger機能でそれを実現できます。

このように、実現したい処理の「固有機能」は、手続き型のプログラム・コードでなく、MySQLのProcedure, View あるいは Trigger内に個々の機能ごとに閉じて作成します。

したがって、完全に独立性が保て、かつ極めて強力でコード量が小さい、見通しのよいソースコード管理を実現できます、
繰り返しになりますが、dFrameでアプリケーションを作成する際には、手続き型のプログラム・コードは不要であること にご注目ください。 処理の流れを制御するようなプログラム・コードは作成する必要がありません。単に、どのような「オブジェクト」を どのような条件が満足されたときに実行するかを、所定のdFrameの「オブジェクト」に登録すればよいのです。
この思想が、Low Codeを実現しています。
(注)MySQLのProcedure, View あるいは TriggerのAIによる自動作成の可能性が見えてきます⇒AI サポート?

【複数アプリ共存】

作成されたアプリケーションは、互いに独立に走行でき、しかも、データを共有も可能です。 "各アプリケーションは、MySQLのデータベースに「カプセル化」され、着脱可能です。(注1)

【MVC・ソースコード公開】

MVC(Model-View-Controller)は、アプリケーションの論理構造(Model)、画面・帳票のレイアウト(View)とそれらの連携作動を制御す る機能を明確に区別し、整理することで、効率的な開発と維持をサポートするアーキテクチャパターンです。

ModelーdFrameでは、Modelは、MySQLのスキーマ(Table, View, Trigger, Procedure)で定義されます。
dFrameの「設計部」本体も1個のアプリケーションの論理構造(Model)として、MySQLの「dframe」というスキーマに格納されています。
つまり、dFrameの「実行」部としてのdFrameのModelが、自身をTarger Modelとして処理の対象とする、再帰構造になっています。

ViewーdFrameでは、Pythonのflask/wtfを用いて、html画面を実行時に動的生成します。画面様式には、「一覧表」「単票」 「複数行一括編集」「タブ付単票」および「メール送受信」があります。

「PDFファイルは、dFrameの「設計」部の画面で、PDFのページ構成を定義し、実行時に、PDF画面を動的に生成します。

このような動的生成を可能にするのが[dFrame正規型データ]です。
 ⇒ dFrame構成図

ControllーPythonのflaskの制御の下で、
 画面表示ーModel情報から[dFrame正規型データ]に編集し、それをViewに供給します。
 入力データ処理ーViewから渡されたデータをスキーマ情報を手掛かりに、データベースへの反映を実行します。

【多言語対応】

dFrameには、語彙の変換表が用意されていて、画面表示に先だって、表示語彙が変換表に登録されていれば、システムの「設定言語」に変換して表示します。 システムの「設定言語」は、「設定」画面から選択できます。

dFrameの設計部で画面表示されるオブジェクト(テーブル)/オブジェクト・フィールド(データ項目)は、英語・日本語が変換表に予め登録されています。

アプリケーション画面の場合は、変換対象の言語とその翻訳語を変換表に登録する必要があります。

【AIサポート?】

アプリケーションの開発でLow Codeを必要とする場合がありますが、このLow CodeをAIを用いて自動作成することは、当然に視野に入ってきます。

MySQLのProcedure,View,あるいはTriggerの作成にあたっては、それらの機能仕様は、優れて詳細に「実体化」できることから手続き型言語のAI化に 比してはるかに、優位と考えます。AI専門チームとの連携を模索しています。"

【dFrame構成図】

No Code/Low Codeトライ!

【Youtubeで視る】

YouTube No Codeでアプリ作成(5分)
YouTube dFrame:NO CODE(プログラム不要)アプリを実行してみる(3分)
YouTube dFrame:機能紹介 設定機能:アカウント・セキュリティ、多言語(5分)
YouTube dFrame:Low Codeアプリー保育園(5分)

【機能一覧】

オブジェクト機能
Account(アカウント)システムにLOGINするためには、アカウントが必要です。 アカウントは、アカウント名、パスワードおよびメールアドレスなどの属性を餅ます。 アカウントは、必ず唯一の後述のRole(役割)を持ちます。
Admin(管理者)システムの初期起動時に1個のAdminアカウントとパスワードが操作者に与えられます。 Adminアカウントとは、後述のRole(役割)値1を持つアカウントです。 Adminアカウントは、他のAdminアカウントをいくつでも追加できます。
Role(役割)システムへのアクセス権の種別をRole(役割)と呼びます。 Role:の値は、1以上の整数値でなければなりません。 Role:1は、システムの全てにアクセスできる権限です。 AdminのみがRoleの編集の権限を持ちます。
Object(オブジェクト)システムおよびアプリケーションの機能に関する制御情報、 動作記録、および、アプリケーションそのもののデータなどは、MySQLのテーブルとして保持されますが、 これらをオブジェクトと呼びます。。
Object Security(オブジェクト機密指定)すべてのオブジェクトー役割の組み合わせに対して、セキュリティ・レベルを設定します。 セキュリティ・レベルには、「編集可」、「参照のみ、「アクセス不可」があります。
Object Field
(オブジェクトデータ項目)
オブジェクトは、1個のID項目と複数個のデータ項目を持つことができます。 次の項目は、オブジェクト正義時に自動的にデータ項目として定義され、MySQLのFiledとして設定されます:ID、Seq(表示順)、ModifiedBy(最終更更新者)、ModifedAt(最終更新日時)、CreatedAt(登録日時) ID項目とデータ項目はMySQLのテーブルのFiledとしてほじされます。
Object Field Security
(オブジェクトデータ項目機密指定)
すべてのオブジェクトのデータ項目(Field)ー役割の組み合わせに対して、セキュリティ・レベルを設定します。 セキュリティ・レベルには、「編集可」、「参照のみ、「アクセス不可」があります。
Object Relationships(オブジェクト関係定義)オブジェクト間のリレーション(Retationship)を定義できます。これにより、他のオブジェクトの項目値を参照し画面や帳票に表示することができます。 また、参照先のオブジェクトのエンティティ(データ行)に画面を遷移することもできます。
List Form(一覧表画面)オブジェクトを構成するエンティティ(データ行)は、一覧表画面で表示されます。表示されるデータの編集はできません。 一覧表画面上の各エンティティのデータ行にブラウザーの「リンク」がセットされているデータ項目は、そのリンク先のオブジェクトあるはオブジェクトのエンティティにブラウザーの表示を遷移できます。例えば、ID項目の「リンク」をクリックすると、そのエンティティのみの(単票の)表示画面に遷移します。 画面に表示できるデータ行数は、「システム設定」(後述)で指定できます。ページめくり(Pagenation)で任意のデータ表示画面に遷移できます。 表示の並び順は、オブジェクト項目の[seq](表示順)項目で指定できます。
View(リスト・ビュー)List表示に際して「データの絞り込み」(抽出条件設定)、と「表示データ項目の設定」が指定できます。 各ビューの設定は、「ビュー名」を持ち、それを呼び出すことで、Listの表示の視認性を高めることができます。
Single Form(単票)オブジェクトを構成する各エンティティ(データ行)の新規登録、データ編集、削除を実行する画面です。 画面には、操作者の役割(Role)のセキュリティ・レベルに応じて、表示の可否、編集の可否が制御されます。 画面には操作(編集、削除)の対象とする1件のエンティティのみが表示されます。 データ項目は画面上の1あるいは2列で、[seq](表示順)で指定された順に配置されます。列数は「システム設定」(後述)で指定できます。 新規登録の場合は、空白のデータ項目からなる画面が表示されます。
Bulk Form(一括画面)オブジェクトを構成するエンティティ(データ行)を一覧画面表示してさらにデータの編集ができます。 ただし、エンティティの削除、追加はできません。 この機能を実現するオブジェクトは、MySQLの「View」でなければなりません。すなわち、既存の1あるいは複数個のオブジェクトから成る Viewオブジェクトに対するデータ編集の機能を提供します。
PDF帳票(Report)オブジェクトのエンティティおよびそれから導出される値をPDFデータとして出力できます。 PDFデータは、MySQLのViewの集合として定義します。すなわち、帳票を構成するデータブロックをMySQLのViewによりデータ導出し、そのView名をシステムに登録します。 レポート出力の実行は、「レポート センター」あるいは、レポートが関連するオブジェクトの単票画面(Single Form)から行います。
Multi Lingal(多国語支援)次の画面表示に対して、多国語支援機能を提供します。 1.dFrame本体のScreen Frame(基本の画面フレーム) 2.設計モードの画面 3.アプリケーション実行時の「画面の表題(Caption)」 4.システムからのメッセージ 言語の切り替えの指定は「システム設定」(後述)で行います。 設計モードで使用する言語は、英語が既定値(Default)です。任意の言語をサポートする場合は、「変換辞書」(Caption Dictionary) に英語の語彙(Caption)に対応する 語彙を登録します。同様にシステムからのメッセージもメッセージ全体の「文」(Sentence)を登録します。
System Ini(システム設定)システムに対して次の設定値を指定できます。 1.単票(Single Form)のデータ項目の表示列の数(1列、2列) 2.一覧表(List Form)の画面表示行数 3.画面表示言語
Base Values(基底値表)オブジェクトのデータ項目で固定の値域を持つ場合に、その名称と値域を予め設定でき、 データ項目の入力時にコンボ選択項目として使用できます。 Admin役割をもつアカウントのみが基底値表への基底値の登録編集ができます。

【試用してみる】

(公開予定:2025年2月中旬)

【ソースコードを見る】

dFrameは、多くのバックログを抱えています。セキュリティ関連、ソースコード構成管理(GitHub)、 Code Refactering、Pytestの整備(特に、データの整合性チェック)、エンドユーザのアプリ開発支援などなど
有志の時間的リソースの許容範囲内での参画を国内・海外に求めたいです。
dFrameのソースコードは、次のような構成になっています。
Model:MySQL スキーマ名:dframe GIT登録ファイル:mysqldump
ControlPython/flask GIT登録ファイル:Python wtfファイル
VisualPython/flask Templates (上に含まれる)
 GIT-->

構築事例:

【1.保育記録システム】

【概要】

保育園の保育記録、成長の記録および保護者との日々の連絡の記録などを記帳し、保持します。
特に、登降園記録-->児童の個別の記録--->クラスの記録のデータ一貫性を保つことにより、保育者の 事務負担軽減が図れます。

【機能一覧】

台帳

オブジェクト名どんな時に使用する?操作の概要 備考
保育園基本台帳 システムを新規に使い始めるとき 名称、住所、電話番号、メールアドレス、ホームページURLなど基本情報を記載します。 画面・帳票などに必要に応じてこの情報が表示されます
職員(台帳) システムを新規に使い始めるとき、あるいは、職員の入職・退職、職種、資格などの異動が発生したとき。 職員の個人情報を登録します。システムの「アカウント」とは、連動しません。 権限のある職員のみ参照・編集ができます。
クラス システムを新規に使い始めるとき 0歳児~5歳児の各クラスの名称、学齢を設定します。また、午前、午後の標準的な活動(お散歩など)を設定します。 活動を設定すると、クラス日誌の「活動」欄にその内容が複写されます。
保護者 園児の入園・退園が発生したときなどに、保護者の情報を設定します。 連絡先(電話番号、メールアドレスなど)を設定します。「正」「副」2件登録します。また兄弟姉妹が在籍する場合は、保護者の登録は「正」「副」ともに1件づつです。 メールアドレスは、保護者自身が、スマホ、携帯電話などから本システムにメール送信することにより自動設定します。
園児 システムを新規に使い始めるとき、あるいは、園児の入園・退園が発生したとき。 園児の園籍番号、性別、生年月日、入園日、退園日(退園のとき)、アレルギー情報などを設定します。また、保護者のデータとの連結の設定をします。 園籍番号は、予め設定しておきます。自動発番はしません。所属するクラスは、生年月日から自動的に設定されます。
医薬品 保護者から与薬の依頼がなされたときに、薬品名を登録します。 システムに未登録の薬品があるときに登録します。 与薬の期間、時期、回数などは与薬依頼の画面からセットします。

日次記録

オブジェクト名どんな時に使用する?操作の概要 備考
出席簿 児童が登園・降園するとき。あるいは、保護者から欠席、遅刻、早退などの連絡があったとき。 クラスの園児の名簿が表示される画面に登園・降園の時刻あるいは予定時刻、結成気届などの情報を入力します。 タイムレコーダーを接続したシステムでは、登園、降園の時間は自動的にシステムに記録されます。
乳児日誌 乳児が登園してお部屋に入室した後に、検温、身体所見を記録します。また、適宜に食事、睡眠、排便などを記録します。 午前と午後それぞれに記録します。 登園した児童のみが画面に表示されます。
園児日誌 園児の一日の園内生活から見えてきた成長の姿を「発達特性」ごとに記録します。 「発達特性」は、各学齢に応じた項目が自動的に表示されます。 登園した児童のみが画面に表示されます。
クラス日誌 一日のクラスの保育内容を記載します。 乳児クラスは、登園した児童ごとに「乳児日誌」のバイタル記録が自動転機されます。 乳児、園児、土曜保育のそれぞれで記載項目は異なります。
園日誌 園全体の行事、訓練、工事・検査などを記録します。 「天候」、職員の休暇、シフト、出張、出役、講習なども自動表示されされます。 「天候」は、各クラスの「クラス日誌」の「天候」欄に自動転記されます。職員のシフト表は、Excelから月次に読み込まれ、 システムに保持されます。

健康記録

オブジェクト名どんな時に使用する?操作の概要 備考
与薬依頼 保護者から園内での与薬を依頼されたとき 医薬品名、与薬の期間・1日の回数・数量などを記録します。
与薬 与薬を実施した都度、与薬の日時を入力し、与薬(予定)を与薬(実施)のデータに変更(消込)します。 「当日」与薬(予定)のデータのみを画面に「ビュー」表示することにより、与薬忘れを防ぎます。
保健メモ 園児の健康状態についての保護者との連絡事項を記録します。
身体測定記録 月ごとに身長・体重・胸囲・頭囲の計測値を入力します。 前回の測定値が下段に表示されます。それとの対比で今回の測定値の評価ができます。
健康診断記録 医師による定期健診の結果を記録します。 前回の所見が右側に表示されます。それとの対比で今回の所見の評価ができます。

連絡帳帳

(2025年夏リリース予定)
オブジェクト名どんな時に使用する?操作の概要 備考

【試用してみる】

保育園児童記録システム

ご自由にデータ入力、編集ができます。ただし、ご使用後(ログオフ後)に編集したデータは、初期状態に戻ります。

【ソースコードを見る】

保育記録システムは、dFame+Low Codeで作動します。dFrmeのソースコードはこちらから
保育記録システムのLow Codeは、GITからDownloadできます。

【2.タスク管理システム】

【概要】

【機能一覧】

【試用してみる】

【ソースコードを見る】

開発者

日本ユニシス(株)で基本ソフトの開発に従事。その後、独立して システム・コンサルティングとそれに付随してシステム開発を行う。
主として、中小企業の販売管理・会計業務に対して、DFD(Data Flow Diagram)解析 -->DBスキー設計-->実装(プログラミング)の一貫請負を行ってきた。
オブジェクト指向/データ中心設計(Datacentric)をライフワークとして、武蔵工業大学 (現、東京都市大学)にて非常勤講師を勤めた(1989年-1995年)
主張:ビジネス・アプリケーション開発に向けての(真の)情報技術教育は、プログラム言語、「手続き」としてのアルゴリズムの習得より、
 ①社会/ビジネス/森羅万象の「構造」を理解する力(教養)
 ②それを「オブジェクト」の「関連」としたデータ構造(「関係性」の”正規化アルゴリズム”)として表現する力
 ③さらに、システムとして実装する力
これらを主眼とすべきである。
ささやかながらdFrameのオープンソースはその一助になりたいと思います。
 技術士(情報処理部門)1984年 中小企業診断士1988年
mail to: dframe@u01.itscom.net