SOAには、詳しくないんだけど、マクドナルドで思ったこと。その4。
(28日注:この時点で、SOAPでプログラムを組んでない時点で書いてます。
組んだ後は、ぜんぜん違う印象を持ってます。今度、機会があったら書きます)
マクドナルドって、制作の人と販売のバイトの人は、入り混じるんだけど、制作場所は、同じで、食材はきまったところのあるので、作業する場所は同じなんですよね。
つまり、
ある場所で行う業務・サービス(SOAだとwebサービス)は決まっていて、
その内容はマニュアルに記載されてる(SOAだとWSDLに記述されている)。
そして、バーガーの作成指示(作業指示書)に応じて、その業務を行っていく。
(SOAだと、クライアントで業務内容からSOAPのメッセージを
自動的に生成していって、起動していくことになるが、ここの発想はない)。
こうすると、マクドナルドの場合、柔軟なセットに対応できる
(SOAの世界で言うと、すでにやっている業務の組み合わせであれば、
SOAPメッセージの自動生成部分を切り替えることにより、
サーバー側のサービスを変えずに、柔軟に対応できるし、
新たな作業だとしても、その部分だけのサービスの入れ替えで済むということになる)。
SOAの世界だと、このやり方を社内でやることによって、全社的な業務の状況の内容の検索とか管理が、やろうとおもえばできる。
いままで、Webサービスというと、社外とのやりとりとか、公開されたものについての考えが中心だったけど、実は、クローズドな社内ベースで行ったとしても、効果があると思う。
さらに、今後、M&Aが盛んになった場合、WSDLによる、各業務記述があることによって、業務の比較、理解はよくなるし、合併企業における業務の乗り入れも、ネットワークの公開とクライアント側のSOAPメッセージ自動生成部分の変更で対応できるかもしれないというメリットがあるよね。
っていうことで、ある意味、EJBを利用したシステム構築より、社内システムでもWebサービスベースで作ってしまったほうが、いいのかもしれない。
(28日注:この時点では、そう思っていた)
(28日注:ここ以下、記述がおかしかったので、大幅に直しています)
しかし、この場合問題になるのは、WebサービスとUMLなんかの業務分析ででてくる、(受注とか発注とかの業務ごとに分けている)クラスとの関係はどうなるんだってこと。
ひとつの考え方としては、MVCのモデルの部分をWebサービスとし、モデルのクラスをProvider Class、メソッドは、そのProvider ClassのMethodsとする方法などがあるとおもう。
そうすると、先ほどの作業指示書の自動生成というのは、コントロールの自動化になる。
ただし、モデルの部分の単位を大きくとりすぎてしまうと、あまり公開している意味がなくなってしまう(共通利用できなくなるので)。
そこで、もっと、細かく考えて、Strutsの、Actionレベルと同じくらいにする方法もありだと思う。
Strutsの場合、ボタンを押されたときの処理1個が、1つのActionクラスになる。したがって、Actionクラスは、メソッド1個分くらいになっている。
webサービスでも、このぐらいの単位で公開したほうが、利用度が高いのかもしれない。
ただし、これは、論理レベルでありといっているのであって、実務上、速度的にどうなの?という問題はある。
こまった。内容を修正したら、「COBOLプログラムをいきなりJAVAへ書き換える方法試案」の要素技術を説明できなくなってしまった。しかたないので、その要素技術の説明は、「COBOLプログラムをいきなりJAVAへ書き換える方法試案」の第三ポイントで説明します。
次回、書きたかった内容、「COBOLプログラムをいきなりJAVAへ書き換える方法試案」につづく。
(実は、別に、マクドナルドについて、書きたかったんじゃないんです。っていうか、修正したら、本当にマクドナルドの話は、まったく必要なくなってしまった >_<!)
(28日注:この時点で、SOAPでプログラムを組んでない時点で書いてます。
組んだ後は、ぜんぜん違う印象を持ってます。今度、機会があったら書きます)
マクドナルドって、制作の人と販売のバイトの人は、入り混じるんだけど、制作場所は、同じで、食材はきまったところのあるので、作業する場所は同じなんですよね。
つまり、
ある場所で行う業務・サービス(SOAだとwebサービス)は決まっていて、
その内容はマニュアルに記載されてる(SOAだとWSDLに記述されている)。
そして、バーガーの作成指示(作業指示書)に応じて、その業務を行っていく。
(SOAだと、クライアントで業務内容からSOAPのメッセージを
自動的に生成していって、起動していくことになるが、ここの発想はない)。
こうすると、マクドナルドの場合、柔軟なセットに対応できる
(SOAの世界で言うと、すでにやっている業務の組み合わせであれば、
SOAPメッセージの自動生成部分を切り替えることにより、
サーバー側のサービスを変えずに、柔軟に対応できるし、
新たな作業だとしても、その部分だけのサービスの入れ替えで済むということになる)。
SOAの世界だと、このやり方を社内でやることによって、全社的な業務の状況の内容の検索とか管理が、やろうとおもえばできる。
いままで、Webサービスというと、社外とのやりとりとか、公開されたものについての考えが中心だったけど、実は、クローズドな社内ベースで行ったとしても、効果があると思う。
さらに、今後、M&Aが盛んになった場合、WSDLによる、各業務記述があることによって、業務の比較、理解はよくなるし、合併企業における業務の乗り入れも、ネットワークの公開とクライアント側のSOAPメッセージ自動生成部分の変更で対応できるかもしれないというメリットがあるよね。
っていうことで、ある意味、EJBを利用したシステム構築より、社内システムでもWebサービスベースで作ってしまったほうが、いいのかもしれない。
(28日注:この時点では、そう思っていた)
(28日注:ここ以下、記述がおかしかったので、大幅に直しています)
しかし、この場合問題になるのは、WebサービスとUMLなんかの業務分析ででてくる、(受注とか発注とかの業務ごとに分けている)クラスとの関係はどうなるんだってこと。
ひとつの考え方としては、MVCのモデルの部分をWebサービスとし、モデルのクラスをProvider Class、メソッドは、そのProvider ClassのMethodsとする方法などがあるとおもう。
そうすると、先ほどの作業指示書の自動生成というのは、コントロールの自動化になる。
ただし、モデルの部分の単位を大きくとりすぎてしまうと、あまり公開している意味がなくなってしまう(共通利用できなくなるので)。
そこで、もっと、細かく考えて、Strutsの、Actionレベルと同じくらいにする方法もありだと思う。
Strutsの場合、ボタンを押されたときの処理1個が、1つのActionクラスになる。したがって、Actionクラスは、メソッド1個分くらいになっている。
webサービスでも、このぐらいの単位で公開したほうが、利用度が高いのかもしれない。
ただし、これは、論理レベルでありといっているのであって、実務上、速度的にどうなの?という問題はある。
こまった。内容を修正したら、「COBOLプログラムをいきなりJAVAへ書き換える方法試案」の要素技術を説明できなくなってしまった。しかたないので、その要素技術の説明は、「COBOLプログラムをいきなりJAVAへ書き換える方法試案」の第三ポイントで説明します。
次回、書きたかった内容、「COBOLプログラムをいきなりJAVAへ書き換える方法試案」につづく。
(実は、別に、マクドナルドについて、書きたかったんじゃないんです。っていうか、修正したら、本当にマクドナルドの話は、まったく必要なくなってしまった >_<!)