MANDALA.net 2005 に関するご質問と回答


 ここには、 以下のご質問とその回答が掲載してあります。

 ■ Visual Studio .NET のデザイナを使うのですね

 ■ 用意しているビジネスロジック部品は?

 ■ ビジネスロジック部品とは?


 この他のご質問にもお答えいたします。不明点や更なるご質問があれば、ご遠慮なくアプリテック社へどうぞ。

 なお、この回答の中には MANDALA.net だけでなく、 Java 版 MANDALA の話も少し含まれています。




■ ご質問1: Visual Studio .NET のデザイナを使うのですね

 そして、MANDALA.net が担当するのは、Visual Studio .NET (.NET IDE) を使用してデザインしたフォームとビジネスロジック部品とを結び付ける部分、という認識でよろしいでしょうか?

回答1:

 世の中には、画面レイアウトを支援するツールとして、幾つかの似かよったデザイナ (あるいはスクリーンペインタと呼ばれることもあります) が出回っていますが、アプリテック社は、そうした似たようなツールを開発するようなことは、しないようにしています。なぜなら、すでに存在するものの中から、適当なものを選べば済むことが多いからです。アプリテック社は、他社がサポートしていないところを目掛けて開拓する会社です。

 MANDALA.net の担当部分ですが、コード合成ツールに関して述べれば、正にご質問の通りです。なお、コード合成ツールの他に MANDALA.net 実動フレームワークも重要ですので、ご注目ください。

 誤解のないように付け加えると、MANDALA.net は、単なる GUI 構築ツールとフレームワークではありません。サーバ側の処理をするための機能がフレームワークに含まれていて、ビジネスロジック部品はセントラル側とローカル側においてうまく分担して動作するようになっているので、トータルな業務アプリケーション向けのフレームワークとツールだと捉えてください。

 私どもでは、画面の構成要素という位置付けの部品 (つまり GUI 部品と呼ぶべきもので、標準提供コントロール/コンポーネント、widget、VBX、OCX, ActiveX コントロール、JavaBeans、マネージドカスタムコントロールなどの名前で呼ばれているもの) とビジネスロジック部品画面に関する制御 (フレームワークの数ある機能の一つ) を明確に分けるべきという考えで、MANDALA を開発しました。

- (M) ビジネスロジック部品
- (V) 画面の構成要素部品
- (C) 画面の制御・操作 (フレームワークの数ある機能の一つ)
  なお、MANDALA.net フレームワークは、画面制御の他、部品呼び出し制御や、画面モード制御やローカルとセントラル間の通信制御などなどを含む業務アプリ向けの総合的な実動フレームワークです。

 正に、これらの3種類 (ビジネスロジック部品、画面の構成要素部品、フレームワーク) を糊付けするのが、MANDALA.net コード合成ツールです。

 画面レイアウトのデザインに関しては、世の中に何種類もツールが出回っているので、私どもで開発するには及ばないと考えて Java 版では JBuilder を選択しました。なお、Visual Cafe、Visual Age、Forte などもサポート対象として検討しましたが、結局のところ JBuilder だけしかサポートしておりません。
 パンフレットには、「JBuilder など」 の IDE を利用すると書きましたが、現状では Java 版に関しては JBuilder だけです。しかし、お客様がどうしても X という IDE をお使いになりたいということであれば、お抱えツール屋サービスによってそれをサポートいたしましょう、という意味です。ご存知のように、スクリーンペインタ上で WYSIWYG で設計した画面は、Java のコードに落ちるわけですが、IDE によって、そのコードの内容に若干の違いがあり、この違いを吸収するサポートが必要だということなのです。

 MANDALA.net の方は、迷わずに .NET IDE (Visual Studio .NET) のデザイナをサポートしております。そして、まさか .NET IDE の選択肢が登場するとは考えていなかったので、選択肢がない分だけ、気を使わなくてよいので楽だと考えていた次第です。しかし、ボーランド社が C# Builder を出したとは驚きました。統合開発環境 (IDE) に選択肢が出てきてもあまり “ありがたみ” が感じられないように思うのですが、どんなものでしょうか。私どものようなフレームワーク・ベンダにとっては、サポートしなければならない IDE が増えるだけで、面倒なことだともいえます。

 世の中では、GUI コントロールを拡張して (つまり VBX、OCX、ActiveX コントロール、JavaBeans、マネージドカスタムコントロールなど) が部品になると考えているようですが、GUI コントロールにビジネスロジックを組み込むことは、ほとんど成功していないといえます。あくまでも、画面の構成要素部品と捉えるのが無理のないところです。
 まあ、GUI コントロールを拡張することで、画面の制御のうちの一部、つまりコントロール内の制御は組み込めますが、画面が複数のコントロールから構成される通常のケースにおいて、コントロール間の制御を含む広い意味での画面の制御を行なわせることは困難です。ですから、GUI コントロールを拡張することで可能な範囲は限られているとの認識です。

 このような考えから、上記の三つ (ビジネスロジック部品、画面の構成要素部品、フレームワーク) を区別するのがよいとの結論に至ったのです。




■ ご質問2: 用意しているビジネスロジック部品は?

 MANDALA.net が用意しているビジネスロジック部品はどれくらいあるのでしょうか?

回答2:

 MANDALA.net が用意しているビジネスロジック部品はございません。
 あえて言えば、MANDALA.net のサンプルプログラムとしてご提供している中にビジネスロジック部品の例が 20 〜 30 個あるだけです。

 ビジネスロジック部品は、別の会社が開発して販売しております。 たとえば、ウッドランドどの (http://www.woodland.co.jp/erp/)、および 内田洋行どの (http://www.uchida.co.jp/jsyohin/cocktail/) は、 それぞれ RRR やスーパーカクテルという ERP パッケージを開発販売しておりますが、これらの ERP パッケージは、MANDALA 流のビジネスロジック部品から構成されています。

 部品の数については、たとえば、販売管理業務パッケージの場合は、2000 ほどのビジネスロジック部品から構成されています。
 なお、これらは ERP パッケージとして販売されているだけでなく、業務アプリを開発するネタ (部品群やツール) としても販売されております。つまり、カスタマイズ業者に、これらのネタを販売した場合、カスタマイズ業者は必要なカスタマイズ作業を行って最終ユーザ (企業) に業務アプリを販売することも行なっております。

 MANDALA.net は、業務アプリを数多くのビジネスロジック部品の塊に分割して開発するのに都合のよいフレームワークであり、それらの部品を糊付けするツールです。ですから、MANDALA.net の中にはビジネスロジック部品が含まれていないのです。

 ここで、ご注目していただきたいのは、業務アプリの開発者とは異なるカスタマイズ業者が、立派にカスタマイズができている点です。
 2000 も部品があって大変だとお考えになるかもしれませんが、データ項目部品なので、そうではありません。たとえば、お客様が商品のキャンペーンを行なうので、商品単価にある割引を適用したいとおっしゃった場合、商品単価に関するデータ項目部品を修正すればよい形になっております。部品数は多くてもデータ項目対応なのですぐに探し出せるのです。




■ ご質問3: ビジネスロジック部品とは?

 MANDALA.net のビジネスロジック部品はどのようなものなのでしょうか?

回答3:

 このご質問に簡潔にお答えするのは、簡単ではありませんが、ひとまずは次の点からご説明いたします。

 MANDALA.net のビジネスロジック部品は、以下のような条件を満たすものだとお考えください。

 - 目指す部品が簡単に捜し出せる (検索性)
 - 修正すべき部品の数が限定される (局所性)
 - 一つ一つの部品のサイズが手頃である (手頃な大きさ)
 - 一つ一つの部品が解読しやすい (読みやすさ)

 詳しくは、http://www.applitech.co.jp/compo/ をご覧いただけるとありがたいと思います。
 それから、ビジネスロジック部品の例もご覧ください。

 もしも、ご納得がいかなければ、さらに突っ込んで、ご質問ください。




Copyright (C) 1996-2005 By AppliTech, Inc. All Rights Reserved.
AppliTechMANDALA および workFrame=Browser は、アプリテック株式会社の登録商標です。
ここに掲載の社名、製品名には、各社の商標または登録商標があります。



アプリテック株式会社
http://www.applitech.co.jp/