『openGion』の哲学

『openGion』を使って、Webアプリケーションを構築する場合に 重要になるのが、『openGion』の哲学です。

『openGion』は、元々PDMシステムのWebアプリケーションフレームワーク として、構築しましたが、現在では、Webアプリケーション全般に適用する方向で、 開発が続けられています。

特に、社内業務システムでは、業務効率を優先的に考えます。これは、過剰な 装飾や必要以上の多機能化は、必要ないということです。 逆に、日々、使用するため、操作性は重要視されます。また、システム開発自身も 効率的でなければなりませんし、カスタマイズ性は、強く求められます。

実は、もっと深刻な問題があります。それは、開発者のスキルの確保です。 高度な技術が求められる開発ツールを利用すると、そのための教育に時間が かかったり成果物の品質が低下します。社内システムの開発に、高度な技術を 利用する必要はありません。必要なときに、必要な技術を用いるだけです。

『openGion』の特長

『openGion』の特長を挙げるとすれば、以下の3つに集約できます。
(1).短納期指向
(2).効果的な開発
(3).RDBMSが中心

(1)短納期指向
	短納期指向とは、開発の初めから実稼動までのリードタイムの短縮を目指すというものです。
	エクストリーム・プログラミング (XP) などのアジャイルな方法論が注目を集めていますが、
	考え方としましては、TOC(Theory of Constraints:制約条件理論)によるシステム開発の
	変革による、スループット向上を中心に、XP的な考え方を取り込んでいます。

(2)効果的な開発
	効果的な開発とは、『効率の追求から効果の追求』に考え方をシフトし、
	『今、必要な機能のみを実装する』という開発手法です。
	『効率の追求から効果の追求』では、設計ー開発ー顧客の分業による一律開発から脱却し、
	設計ー開発ー顧客が一体となって効果を追求することにより、顧客満足度を向上させる狙いがあります。

	

	現在のシステム開発手法では、システム設計時に「将来に対する投資」と称して、
	不要な設計や機能を組み込んでいます。
	技術進歩が早く、業務方法や市場環境の変化が激しい現代では、将来使われるかどうか
	判らない機能は大きなリスクであり、キャッシュフローや、スループットの観点からも、
	好ましいものではありません。 『今、必要な機能のみを実装する』事が非常に重要です。

	

(3)RDBMSが中心
	この中で、3番目のRDBMSが中心 というキーワードが、最もこのエンジンを特徴付けている
	のかもしれません。
	現在のWebアプリケーションの中心はJ2EEです。EJBだ、MVCだと騒がしのですが、
	RDBMSで扱う表形式というのは、人が最も理解しやすい形式であり、かつ、非常に強力で
	柔軟だと思います。
	これを最大限活用する為、RDBMS中心の設計としました。

	

上へ

システム構成

システムを構成する4つのロジック(業務ロジックA,B,リソース, エンジン)は、 下記方針を実現する為に、最適に配置されています。

(1).リソース情報の分離
(2).多機能カラム情報
(3).画面/機能のモジュール化
(4).汎用オブジェクトによる拡張性

(1)リソース情報の分離
	ラベル、メッセージなどの国際化対応の項目や、カラム定義、画面定義、ユーザー定義、
	システム定義など、定義情報をリソースとして画面開発と分離しています。

	これにより、基本設計時にデータベース定義情報を利用して基本的な画面を短期間で
	作成することが可能です。しかも、全画面において基本情報はすべて考慮されている
	状態になります。(『短納期志向』)

	その後、必要な画面を必要なだけ、機能アップしていけば、『効果的な開発』が、可能になります。

(2)多機能カラム情報
	データベースのカラム名をオブジェクト化し、多機能情報を与えることにより、 
	select文を記述する(『業務ロジックA』 )だけで、基本的な画面を作成することが出来ます。

	カラム情報は、先のリソース情報で与える為、画面設計時には、詳細指示を出す必要が
	ありません。また、開発途中で、機能強化を行う場合も、リソース情報を書き換えるだけで、
	全画面に対してその機能を有効にする事が可能になります。

	簡易的なカラムチェックは、多機能カラム情報を利用している為、業務ロジックAやBには、
	本流の流れのみを記述できます。

	多機能カラム情報は、SQL文(SELECT PN,CDK,NM FROM RK08 ) や、ColumnTag の
	name属性の『CDK』 というカラム名より、カラム情報が自動的に集められて、
	多機能カラムオブジェクトを構築します。

	

(3)画面/機能のモジュール化
	画面(『業務ロジックA』)は、画面IDと、実フォルダが仮想的に対応しています。
	そのため、フォルダ毎に画面を開発していくことで、フォルダのコピーによる機能追加や、
	他の画面を修正せずに、顧客対応のカスタマイズが可能になります。

	また、画面系のロジック(『業務ロジックA』)と、業務系のロジック(『業務ロジックB』)
	も分かれているため、各々の機能をモジュール化しておくことで、カスタマイズが容易になり、
	基幹業務を流用することが可能になります。

(4) 汎用オブジェクトによる拡張性
	Webエンジンは、汎用オブジェクトインターフェース( Query、View、DBTableModel、
	Renderer、Editor、DBType など)を用いて開発しています。そのため、各インターフェースを
	継承したサブクラスを作成するだけで、容易に新機能を実装することが可能です。

	

上へ

データフロー例(検索系)

検索系のデータフロー例を示します。
上へ