5-6. 分散システムへの流れと設計 '99 末頃から (1) WebLogic を試してみる `02/12/21 * インスト−ルからサンプル実行 WebLogic、ちゃんと購入してもまるで何もない。ライセンスの入ったフロッピ−が1枚来 ただけである。ソフトはインタ−ネットからダウンロ−ドするか、雑誌の付録 CD-ROM に あるよというだけ。 それで「DB Magazine」`02/10,"特集:アプリケ−ションサ−バ徹底 入門" の CD-ROM に入っていた BEA WebLogic Server 5.1 を使うことにした。 これを入 れると JDK 1.2 の JRE も入るとのこと。JRE( Java Runtime Environment ) は Java の 実行環境のことで、プログラムのコンパイルはできないが実行はできる。 早速 WebLogic のサンプルを試してみようと思ったが、コンパイルされていなかった。JDK もやっぱり入 れないといけない。それで「月間ジャバワ−ルド」`02/06から Windows 用の jdk1.2.2を 入れた。Java 2 SDK, Standard Edition 1.2.2 for Windows 95/98/NT4.0 である。 日本語でのマニュアルは http://second.beasys.co.jp/weblogic/docs を見られたい。マ ニュアルセンタ−ということで、ほとんど全部の英文が翻訳されている。紙のマニュアル は元々全然ない。めぼしいのをプリントしてバインダ−に閉じて使うことにしよう。サン プル・プログラムは結構充実している。これでしばらくは遊んでみるか。JSP や Servlet のは勿論だがいろいろある。Java Pet Store は Sun が開発の J2EE を利用したオンライ ン取り引きショップのデモである。ZAC というのは、Java の Applet や Application を クライアントに自動配布するらしいというもの。konaHtml は WebLogic 特有の、HTML 簡 便生成ル−チン?。XML の DOM/SAX のサンプルもちゃんとある。Cookiesを使わないセッ ション管理の例で SessionServlet.java というのもある。 仕組みはクライアントを区別 http://localhost:7001/session?WebLogicSession=HEnomoHeXSwSSS ... ダ−と続く するための Session ID という識別子を設定することによる。ブラウザがサ−バに最初に アクセスした際、ブラウザに固有の識別子を付ける。以後ブラウザがサ−バにアクセスす る時には、その識別子を使うという訳である。上記では HEnomoHeXSwSSS ... という長い Session ID をサ−バに送って、区別している。 そうそうインスト−ルしたマシンは、手元にあるノ−トパソコン Gateway Solo、166 MHz、 メイン・メモリ 64 Mbyte の Windows NT 4.0 である。こりゃかなり遅い。試して試せれ ないことはないというレベルだ。"WebLogic Server" に "WebLogic Console" を稼働させ るのはかなり苦しい感じ。ハングったりもして。 1) JSP サンプルをコピ−する [examples/jsp] を [myserver/public_html] 下にフォルダ−ごとコピ−すること。 D:\weblogic ---[bin][classes] | |-[examples]---[jsp]-- HelloWorld.jsp, index.html | | | |-[servlets][intro] .. | |-[myserver]---[public_html]--[jsp]-- HelloWorld.jsp, index.html | | | |-[classfiles]--[jsp_servlet]--[jsp]-- _helloworld.class 2) Windows NT の環境設定と WebLogic の起動 DOS 窓を開いて D:\> set path=d:\jdk1.2.2\bin;d:\weblogic\bin;%path% とやる。これ だとパソコンを起動する度に、このコマンドを打たなけない。NT の [コントロ−ル パネ ル]->[システム]->[環境] で Path に追加しておくといいだろう。 [スタ−ト]->[プログラム]->[WebLogic5.1.0] Utilities ---> About Utilities WebLogic Tour Applet Archiver About WebLogic Edit Server Properties EJB Deployer Show Settings WebLogic Console WebLogic Server ZAC Publisher 3) JSP 最初のサンプルを実行する "Edit Server Properties" で servlet.properties ファイルをいじる。 JSP のとこのコ メントを外す。このことは下記の ../jsp/index.html を見れば書いてある。 そして肝心 の WebLogic をメニュ− "WebLogic Server" をクリックして起動する。 -------------------------------------- (listing) をクリックすると、プログラムの |http://localhost:7001/jsp/index.html ソ−スを表示する。 |------------------------------------- | | (run) をクリックするとコンパイルして実行 | HelloWorld.jsp (listing) (run) する。ソ−スを変更した時、クリックすると | | 再コンパイルがかかる。make 見たいな動き。 ↓(run) ----------------------------------------- |http://localhost:7001/jsp/HelloWorld.jsp |---------------------------------------- |Hello World << 赤で大きい文字 |Hello World! << 黒で小さい文字 | --------------------------------------- |Copyright(C)1999-2000 by BEA System,Inc. * Servlet のサンプル D:\weblogic\setEnv.cmd 開発環境の設定。JAVA_HOME=d:\java1.1.7 になって -------------------------- いたのを修正した。他環境変数には CLASSPATH, PATH, |set WL_HOME=D:\weblogic JDK_CLASSES などがある。セットされているかの確認 |set JAVA_HOME=d:\jdk1.2.2 は DOS 窓で set と打てば環境変数が出て来る。 D:\weblogic>setEnv Windows NT 用の DOS コマンドシェル、setEnv.cmd。 D:\weblogic>set 一杯出て来る。>set | more とやって表示してもいい。 Path=D:\weblogic\bin;D:\jdk1.2.2\bin; ... SERVLET_CLASSES=D:\weblogic\myserver\servletclasses WL_HOME=D:\weblogic D:\weblogic\myserver\public_html\servlets>dir *.java /w HelloWorldServlet.java, SimpleServlet.java などソ−スいろいろ。Servlet のサンプ ルは public_html下でなくてもよかった。 >javac -d %SERVLET_CLASSES% HelloWorldServlet.java このディレクトリでコンパイルする。コンパイル・オプションの -d は、できた実行イメ −ジの保管場所である。つまり環境変数 D:\weblogic\myserver\servletclasses の所に セ−ブする。ちなみ javac hello.java とやるとカレントのディレクトリに hello.class ができる。 では、すぐに servletclasses\ に実行イメ−ジが入るかと言えばそうでない。 HelloWorldServlet.java ソ−スの頭の方に記述されている package examples.servlets; が関係する。servletclasses\ 下の examples\servlets\ 下に HelloWorldServlet.class ができることになる。そして実行は、weblogic.properties ファイルに登録した名前で行 う。http://localhost:7001/helloWorld である。んな−、ややこしいばい。 [myserver/servletclasses/examples/servlets] --HelloWorldServlet.class weblogic.properties ファイル(関係するところだけ表示) ----------------------------------------------------------------------- |weblogic.httpd.register.helloWorld=examples.servlets.HelloWorldServlet ↑ これがプログラムの実行名になる HelloWorldServlet.java ブラウザからクラス名を入れて実行 ---------------------------------- ----------------------------------- |package examples.servlets; |http://localhost:7001/helloWorld | |---------------------------------- |import javax.servlet.*; |Hello katou! |import javax.servlet.http.*; |import java.io.*; | |public class HelloWorldServlet extends HttpServlet { | public void service( HttpServletRequest req, HttpServletResponse res ) | throws IOException | { | res.setContentType( "text/html" ); PrintWriter out = res.getWriter(); | out.println( "

Hello Katou!

" ); | } |} * MVC( Model View Controller ) に沿ったプログラム Model は JavaBeans や EJB。View は JSP。Controller は Servlet がやる。こうして役 割分担させるとプログラムの見通しがよくなる。大方の処理は Servlet がやって、 やや こしげな内部処理は JavaBeans にやらせ結果をもらうようにする。 そうした処理のあと、 ブラウザに表示することがあれば JSP を使うという図式。 なんぞ一つプログラムを示し たいが、まあいいか。Servlet のプログラムの中から JavaBeans を呼び出し、 その結果 を JSP を呼び出し表示するパタ−ンというか。 JSP から Servlet や JavaBeans を呼び 出すこともできる。言ってみれば、どなんにでもなるということ。 (2) eXcelon を試してみる `02/02〜 * eXcelon は使えるか '99/11/18 名古屋でのTISソリュ−ションセミナ−で初めて eXcelon を知った。 なか なかいいではないか。ObjectStore を出している Object Design 社が、 XML との関連ソ フトということで作ったものである。 セミナ−は "XML デ−タベ−スで実現する先進の ECサイト"、"社内ナレッジマネ−ジメントシステムの紹介" という題で、講師の東洋情 報システムの加藤という人が話した。気なしに出たセミナ−だったが、これから使えるの でないかという印象をもった。セミナ−の後、懇親会もあって彼と一杯飲んで話ていたが、 大半の人は理解できなかったようである。彼はその後頻繁に東京、大阪でセミナ−でしゃ べっているが、満員御礼のようである。名古屋では XML は関係ないのかな。 だいぶ温度 差があるように感じる。 '98/11/26 発表。ベ−タ版をその後無償ダウンロ−ド開始。 '99/03/08 出荷発表。Windows NT/2000 で稼働。東洋情報システム(TIS)扱い。 '99/06/04 TIS発売開始、19.8 万円が開発。300 万円が実行版ライセンス。 今も評価版が ObjectDesign 社のサイトからダウンロ−ドできる。国内では東洋情報シス テムが ObjectStore などを昔からかついでいるので、http://www.tis.co.jp/にも情報が 結構ある。昔と言っても5〜6年前のことだが。とりあえず Windows NT にインスト−ル して試してみた。だいたいの使い方、機能的なことは分かった。実際どう用いたらいいも のか、もう少し情報が欲しいところである。XML ファイルの格納場所として考えればいい のか。DOM 形式のデ−タも同時に格納できるので、毎度解析しなくてもいいのはメリット だが。しかし Windows NT と Solaris しか対応してないのはダメだ、これでは困る。 [ eXcelon の特徴 ] ・XML ファイルのまま格納する。同時に分析したデ−タも格納する。他画像でもなんでも 格納する、BLOB( Binary Large OBject ) という。格納先は OODB である ObjectStore を含んだ XMLStore である。ObjectStore は外から隠蔽されて見えないし、アクセスも できない。 ・XQL による問い合わせができる。XML ファイルに対して外から問合わすための書式であ る。最初 XML ファイルから外に問合わすためのものかと思った。 XQL はいわばデ−タ ファイルから中身を見るただの関数に過ぎない。 ・eXcelon は Manager、Explorer、Studio から構成される。eXcelon Studio は XMLファ イルの新規作成に使う。Studio 試そうとしたところで試用期限が切れてしまった。 ・eXcelon は今後の注目株である。 企業間デ−タ連携を目論む B2B Integration Server というのも出すとのこと。2000年4月頃発表か?。1千万円程度とのこと。追記で 10年ぐらい経ってのこと、eXcelon は無くなり後継ソフトを Cyber Luxeon という。 * インスト−ル 雑誌のおまけ CD-ROM から eXcelon を Windows NT にいれてみた。 インスト−ルの最後 eXcelon 自体は使えるが、eXcelon ISAPI Web サ−バエクステンションがこのままでは使 用できない、xlnisapi.dll をコピ−せよとか出た。ありゃ、NT までごちゃごちゃする羽 目になってしまった。結論から言うと eXcelon のインスト−ルは、Windows NT に IISが 先にちゃんと入っていれば、すんなり行くはずである。NT に IIS はWWWサ−バとして 当然つきものだと思っていたので、小生は少しはまってしまったわけである。 ともかく Microsoft の IIS( Internet Information Server ) をインスト−ルする。IIS は Microsoft Windows NT4.0 Option Pack 日本語版の CD-ROM に入ってるらしい。 ちょ うど「アスキ−NT」'98/06 にその CD-ROM があったのでセットアップすることにした。 インスト−ルするソフトを選択するところで、IIS をクリックし、更にその中の細かな選 択メニュ−にも入ること。ここがポイントである。 WWWサ−バの設定は [スタ−ト] -> [プログラム] -> [Windows NT4.0 Option Pack]-> [Microsoft Internet Information Server]->[インタ−ネットサ−ビスマネ−ジャ] をク リックする。 http://localhost:9208/iisadmin/iisnew.asp で Internet Explorer が立 ち上がる。デフォルトでは IIS のホ−ムペ−ジは D:\InterPub\wwwroot になる。そこに Scripts というディレクトリがある。 このディレクトリに eXcelon のモジュ−ルをコピ −すると、やっと eXcelon が IIS と関連して動くようになる。 D:\ODI\excelon2.0\bin\xlnisapi.dll を D:\InterPub\wwwroot\Scripts にコピ−。 ・同じ Windows NT の IE からアクセス http://localhost/scripts/xlnisapi.dll/cars/carsdata/cars.xml ・同じ Windows NT の NN からアクセス http://localhost/scripts/xlnisapi.dll/cars/carsdata/cars.xml?outputtype=text/ plain ・隣の INDY の NN からアクセス http://192.10.10.1/scripts/xlnisapi.dll/cars/carsdata/cars.xml?outputtype=text /plain ・これでリストがでそうな気がするが出ない http://localhost/scripts/xlnisapi.dll/cars/carsdata/ XML ファイルの cars.xml は、 WWWサ−バである IIS の管理するドキュメント内にあ るわけでない。eXcelon をインスト−ルした別のディレクトリにある。ダイナミック・リ ンク・ライブラリの xlnisapi.dll が、 無理やり eXcelon のディレクトリを見にいくよ うにしている。なんかかなり強引なやり方だ。こんなんで本当にいいのか?。 * XQL のところを試す 隣の INDY の NN からアクセス http://192.10.10.1/scripts/xlnisapi.dll/cars/carsdata/ cars.xml?outputtype=text/plain&exql=//VEHICLE[YEAR=1997]/MODEL ↑ここ注意 outputtype=text/plain なしでアクセスするとセ−ブするかと聞いてくる。そのままOK をクリックするとデフォルトで MODEL と言うファイル名でセ−ブされた。 % cat MODEL Civic RAM Expedition Suburban Caravan Gran Cherokee E-Class (3) 分散システムの設計と開発 * 分散システムのパタ−ン a. XML をデ−タ主体で用いる ------- 簡易PDMシステム。(4) 参照のこと。 b. XML を処理主体で用いる --------- SOAP( Simple Object Access Protocol ) c. WWWサ−バへの直接アクセス --- ダイレクト電子カタログの提案。 * XML を処理主体で用いる : SOAP( Simple Object Access Protocol ) SOAP なる用語、「日経バイト」`02/09、"特集2:インタ−ネットが情報システムに変わ る", P.86〜97。で小生初めて知った。SOAP とか Microsoft の .NET 構想、 しばらく何 だろうと思っていたが、なかなかいいアイデアである。どうも、小生が以前考えたWWW サ−バへ直接アクセスする、"ダイレクト電子カタログの提案"を、より一般化したものに 近い。この提案はWWWサ−バにある情報を、ユ−ザが主体的に利用するとして捉えたも のである。従来のWWWは相手が用意したのを、ユ−ザはあくまでも見せてもらうという ことでしかなかった。それがWWWの大枠でもあった訳なのだが。翻ってWWWサ−バに どんな情報が、どのように入れてあるか、それを外部に提示するならばクライアントは好 きなようにアクセスし、表示したり加工したりすればいいでないか。そして、小生のアイ デアでは XML だとかオブジェクトだとか言わないシンプルなものを考えていた。 さて SOAP なるもの、IBM, Lotus, Microsoft などが提案するシステム間連携プロトコル である。実質的には Microsoft が主導しているようだが。どうも SOAP の話は、XMLを通 信に用いること。そしてその応用としてWWW部品というのが来る。通信について先ず説 明しよう。簡単に言えば XML ファイルをメッセンジャ−・ボ−イにしているのだ。XMLフ ァイルに処理の依頼を記述し、結果を XML でもらうということなのだ。 処理の記述とは、 どこそこのWWWにあるプログラムを、引き数これこれでアクセスしたい。そしてプログ ラムはオブジェクト指向的に部品として扱われることになる。このため SOAP は XMLを使 った RPC だとも言われ、オブジェクト間通信とも言われる。HTML でなく、XML でやりと りすると言うことは、クライアントとしてはもはや人が対象でなく、コンピュ−タが対象 となる。XML を通信媒体にもってきたことにより、可能性がぐっと広がったのである。 通信、分散オブジェクト間通信には既に CORBA や RMI があるが、 SOAP と何が違うのか。 CORBA/RMI は分散と言っても、目の届く範囲での話。 SOAP ではまさにインタ−ネットに ぴったりの広域での話。CORBA/RMI は必ずサ−ビスするサ−バは動いていることが前提に なっていると思う。一つのマシン内でのプログラムの利用から、何とか他のマシンのプロ グラムも利用できないか。そこに苦心してできたのが CORBA や RMI だった。SOAPはもう 目の届かないところ故、サ−ビスしているやらどうやら。否むしろ世の中にはすでにたく さんのコンピュ−タがある。それをうまく使う枠組みができないものか。両者は発想がそ もそも異なっているのである。SOAP は先ずは XML で処理を記述してやり取りしましょう、 これが主眼である。このため HTTP でも SMTP もいいでしょう。これならファイアウォ− ルも通るし。 それに CORBA でいうような通信本体以外のセキュリティやトランザクショ ンだとかいうことは、とりあえず SOAP の仕様には含めないとなっている。 次にWWW部品なるもの。イメ−ジは分かっただろうか。一般的に使えるようにするには、 双方アクセスするためのプログラミング的な枠組みが必要である。先にプログラムといっ たが、SOAP ではオブジェクト指向での話になるので、 メソッドを呼び出してアクセスす ることになる。実際のプログラミングは Apache 用の SOAP モジュ−ルがすでに出ている。 Microsoft は統合開発環境の Visual Studio .NET を、 2001 年の夏に日本語版を出す予 定にしている。本書を書いている間 `02/12/11 β版が早くも出た。 使う言語は .NET 用 に開発された C# がメインとなる。Microsoft はOSという枠を飛び出し、これまでの WWWサ−バでなく、部品としての "Web Service" を始めようと提唱している。 このア イデア自体は素直で賞賛に値する。漠然としたアイデアから、こうして具体的なものまで 持って行く Microsoft には脱帽する。"Web Service"、次のキ−ワ−ドである。 Microsoft が急速に .NET 構想をまとめたのは、今年の6月末の発表においてである。そ れまで XML を中心にした、 これからのコンピュ−タ利用について模索していたようであ る。企業間連携フォ−マットの変換受け渡しサ−バ?、BizTalk を発表したりもしていた。 ともかく Microsoft は、次から次にサ−バ類やら概念やら出してくるので、 BizTalk も 何がなんやら訳が分からなかった。「Microsoft .NET 完全解説」が `02/12/22 本屋に出 ていたので、早速土日かけて読んでみた。BizTalk もなる程、 .NET 構想の中ではその役 割が理解することができた。.NET におけるWWW部品というもの、 それに .NET におけ る企業間連携フォ−マットとしての BizTalk。ただし、これで標準。皆さん使いましょう という訳ではない。BizTalk に対しては、 XML デ−タ交換標準化団体 OASIS が提案する ebXML もある。WWW部品の方も、まだまだ一悶着あるだろう。 [ 参考 ] http://www.atmarkit.co.jp/ に Java, XML, SOAP などの最新テクノロジ−をうまく解説 > している。このサイトまだできて数ヵ月だと思う。だんだん内容が充実してきた。 http://www.trl.ibm.co.jp/projects/xml/SOAP > B2B Integration Server : XML 対応。アメリカ webMethods 社開発。 http://www.ibm.com/jp/developer > SOAP 1.1, `02/05/08 提案日本語訳。 「Microsoft .NET 完全解説」(株)アスキ−, 1,800+税 `02/12/16 発行。 > .NET 解説の初めての本。続いて18日にはプログラマ−向けのも出た。 * WWWサ−バへの直接アクセス : ダイレクト電子カタログの提案 このアイデア99年の5月頃思いついた。小生永く機械要素部品の電子カタログに関わっ てきた。当初はフロッピ−で提供を始め、CD-ROM を焼いて、 WWWサ−バでの提供に至 っている。インタ−ネットが常時接続が当り前になった時、WWWサ−バからデ−タをダ ウンロ−ドしてという、果たしてそんなサ−ビスのままでいいのだろうかという疑問があ った。常時接続においては、デ−タを入れているハ−ドディスクがどこにあるかというこ とは問題ではない。CADデ−タを提供しているWWWサ−バは、ユ−ザからすれば単な るハ−ドディスクとみなしてもいいのでないか。もしCADソフトを HTTP 対応にできれ ば、直接各社の電子カタログのWWWサ−バにアクセスし、CADデ−タを引っぱってく ればいいではないか。このための仕組みはそう難しいものではない。XML だとかオブジェ クトだとか言うまでもない。簡単な枠組みで実現できるはずである。 WWWで電子カタログを提供しているメ−カで、幾らかの共通フォ−マットを決めればい い。CADデ−タのファイル名と製品の品番の対応リストを、あらかじめ決めたWWWの URLに置くようにする。対応リスト list.html の中では、 製品を細分化してもいいだ ろう。要は対応がつくリストの先頭がここだよということを、どこのメ−カでも同じにす るということである。CAD側ではこのリストをその都度または、適宜読み込みセ−ブし ておくなりする。リストはCAD画面に出し、通常のディスクにある部品と同じように選 択できるようにする。list.html の内容はここでは品名とURLしかないが、属性をいろ いろ付けることだって考えられる。そうなってくると、HTML ではしんどい。 XML の方が 属性を識別し易いとなってくる。更にCADデ−タは部品図だけでなく、組み立て図やら ドキュメントもある。そうなって来ると汎用的な SOAP の出番かなということになる。 http://www.cad.co.jj/catalog/list.html 対応リスト list.html -------------------------------------------------------------- |ベアリング1 http://www.cad.co.jj/catalog/bearing/type1.dxf |ベアリング2 http://www.cad.co.jj/catalog/bearing/type2.dxf * 開発ソフトなど各種検討 [ Java の開発ツ−ルはどうする ] あまりお金は使えない。評価版を無償でダウンロ−ドできるものがいい。Windows 系はで きれば避けたい。しかし無料または安いツ−ルで開発するとなると Windows NT か Linux になる。Java の開発なら JavaBeans や Servlet それに JSP までなら、JDK 1.2 をとっ てきて、ガシガシ開発することは可能である。これならツ−ルのお金はかからないが、多 分このアプロ−チだけでは大変過ぎる。ここは市販品の統合開発環境も買って、フリ−と 市販ソフトで開発するようにしよう。 市販品の候補としては Inprise 社のソフトはどう か。Inprise Application Server と JBuilder3 Enterprise である。 これだけなら60 万円ぐらいで揃う。Inprise は最近 Linux へも力を入れてきているので、 いいのでない か。Oracle も考えてみたいが、製品があり過ぎてよく分からない。 [ 運用ソフトはどうする ] 実際の運用の段にはできればフリ−ソフトを使いたい。どこのソフトでも開発環境は安く ても、運用ライセンスが結構高いのだ。市販のアプリケ−ションサ−バでも、EJB とかス ケ−ラビリティを考慮しなければ数十万で済むかも知れない。 今のところ EJB の使用ま では必要ないのでないかと思っている。EJB の主な役目はトランザクション処理と考えて いい。開発したシステムを実際に運用し、クリティカルな問題が出そうになってから対応 しても遅くはない。銭をとってお客に納入するものならともかく。社内サ−ビス、技術系 の図面を中心とした情報管理システムを、ここでは念頭においている。多分システムは何 年もかけて育てていくことになるだろう。昨今のすぐ金儲けというシステムとは違う。 スケ−ラビリティもとりあえず考慮する必要はない。スケ−ラビリティにおける負荷分散 というのは、システムの本質的な問題ではない。多分そんな社内システム程度で、何台も WWWサ−バをおいてということはないだろう。従業員1万人で、エンジニア千人とかい う企業は、そりゃ知らないよ。ともかくアプリケ−ションサ−バで、負荷分散機能が必要 なのは、大がかりにECをやりたいとか、Yahoo なんかのポ−タルサイトとか、かなりス ケ−ルが大きい場合のことである。あるいは企業のEDPのWWWへのおきかえ。そんな 用途ではいいのかも知れない。よい子の技術系における利用においては、どうも関係ない ような気がする。 [ オブジェクト間通信はどうする ] プロトタイプは国産フリ−ソフトの HORB を使うことにする。 CORBA/RMI/HORB の中で一 番コ−ディング量が少ない。つまり簡単に使えるということである。そして実際運用して いって、機能的にHORB では足らないとなってきたら、RMI や CORBA に変えることを考え よう。置き換えはそんな手間なものではない。また HORB 2.0 からは IIOP ヘの変換もで きるようだから、EJB ヘの対応もできるはずである。`02/03/15 の HORB シンポジウムで は、証券トレ−ドのソフトに適用した事例などが発表された。これなんかまさにミッショ ン・クリティカルな場面であり、HORB は業務で十分使えると言ってよい。HORB を使うデ メリットは、強いていえばアプリケ−ションサ−バとしての統合開発環境がないというこ とか。それに Linux でちゃんと動くのかな。これは確認してみなきゃ。動きました。 HORB の利用は、先ずは静的呼び出しでの範囲にする。それから動的であるとか、 非同期 といった技術を検討して行けばいい。最初から分散オブジェクト技術の全貌を理解しよう としても難しい話である。 具体的な利用はWWWサ−バにある Servlet と他のホストに ある Java アプリケ−ションでのオブジェクト間通信が想定できる。同じホストでも別に いいが。トランザクションの確保は、技術系では業務系とは違ってシビアなものではない。 とりあえずは考慮しないとする。そして、やっぱりトランザクションも必要だねとなった ところで、EJB に登場してもらおう。現在のところ EJB を使うには EJB コンテナなる実 行環境が必要で、それは市販のアプリケ−ションサ−バにしかない。まあ、こんなスト− リになるかと思う。 [ あらためて XML とは ] XML ファイルの中身は、いわばフリ−な構造を持つデ−タ集合とみなすことができる。こ れをそのままか、デ−タだけをデ−タベ−スに格納することが考えられる。eXcelon はそ のデ−タベ−スにオブジェクト指向である ObjectStore を持ってきた。 これは非常に素 直なアプロ−チである。決して RDB のように定型の、 例えば4行3列の表デ−タでない とだめというわけでない。こんな表デ−タなら別に XML である必要はない。 XML の世界 では現実の複雑なものをあらわすのに向いているのだ。巷では DOM とか SAX とか言って XML ファイルを処理する話が騒々しい。これは、あまり気にすることもないだろう。何だ ったら自分で処理するプログラムを書いてしまえばいいわけだから。 XML ファイルは、それ自体1つずつがデ−タとしてのオブジェクトである。1個のファイ ルに幾つものオブジェクトがあるというイメ−ジではない。学級の1人1人の健康診断の 個人デ−タ・ファイルというイメ−ジである。ではこれらオブジェクトをまとまめて処理 したい、例えば学級の平均体重や身長を求めたいといった場合、どうするのか。オブジェ クトをとりまとめる器が何がしか必要である。C言語でいえば線形リストであり、C++ でいえばコンテナ・クラスといったものである。XML ファイルをハ−ドディスクにただ入 れておくだけは、役には立たない。 [ XML の DTD はいるか ] 勝手に社内だけで使うとかいうならいらない。XML ファイルを手で書いていくわけでもあ るまい。何らかのソフトで作成するなら、その時にタグはちゃんと順番通り付けるだろう し、終了タグもちゃんと付けることができる。 つまり、ソフトから XML ファイルを吐き 出す時に、検証していることになる。特にウェルフォ−ムドとか言わなくても、ウェルフ ォ−ムドになっているはずなのだ。そうでなければよっぽどいい加減なソフトである。第 三者に XML ファイルを渡す場合はどうか。DTD はあった方がいいのでないか。 一応その 文書がちゃんと書かれているかどうか、相手がチェックすることができる。幾らこういう ソフトで XML 出してますから、ちゃんとなってますといっても、 他人さんには説得力が ない。DTD の定義文を書くのは、DTD の設計するのが難しいのであって、DTD の構文自体 はただの取り決めだから覚えるだけである。 [ オブジェクト指向分析( OOA/OOD )はいるか ] 別にとりたてて必要なし。5年ぐらい前に Booch とか OMT とかいう表記法が提唱されて いた。情報処理学会なんかでも盛んに発表があったし、オブジジェクト指向の展示会には 付き物の講演だった。図書館の管理を OOA で分析して、 従来の方法より早く開発ができ たみたいな話がよくあった。非常にみみっちい部分での分析だった。いわゆるEDP系で のCOBOLのフロ−チャ−トみたいな感じだった。そのままプログラムがかけるような 分析では、設計しようとするオブジェクトの全体像がみえないぞ。そして今ではBooch で もなければ OMT でもない、UML なんだと。UML( Unified Modeling Language ) は97年 に OMG 標準になっているそうな。 [ その他いろいろ ] こういう懸案は、伊藤忠テクノサイエンスが Java のコンサルティングをやっているので、 利用するのがてっとり早いかも知れない。驚くはその値段、十日間で300万円だと。ひ え−だ。セキュリティのプロを養成する講座も300万円というのがあった。 Java だけ で300万円。開発には XML もいるのだ。 こりゃ講習代だけで1千万円ぐらいいるかも 知れない。そんだけ勉強代に本当かけるのだったら、外注した方がいいかもということに なる。でも一体どこに頼む。いやいや頼んだら、1千万円で済まん。億になってしまうぞ。 あるベンチャ−は、それで恐ろしくもうけている。今 XML に Java に CORBA ができると、 すごい儲かるのだと、`99/12 頃から。 (4) 簡易PDMシステムの設計 * 開発タ−ゲット -------------------------------------------------------------------------------- CADデ−タや関連するドキュメントなどを XML でラップして、 PDMライクな処理を するソフトウェアを作りたい。簡易PDMシステムと言うことにしよう。 -------------------------------------------------------------------------------- 本章が、よい子のイントラネットの真髄となる。さてネットワ−クは整備できた。ではそ の上でどのようなアプリケ−ションを走らせるのか。LANそれにインタ−ネットを活か して、技術系部門の仕事を支援することを考えければならない。これが本書でのイントラ ネット構築の目的なのだ。事務系部門はいい、SI業者に金さえ出せばグル−プウェアの ソフトをもってくる。カスタマイズもやってくれる。技術系はそう簡単にはことが運ばな い。CADの図面管理でさえままならないというのが、大方の現状なのだ。世の中これだ けITだインタ−ネットだと騒がれているのに、製造業の技術系部門は旧態依然としてい る。管理ソフトのPDMは、今もって大がかりで値段もしっかりする。しかしPDM失敗 した話はよく聞くが、成功したというのはとんと聞いたことがない。 小生は2次元CADも3次元CADも作った。2次元CADは実際に運用されている。も うついでにPDMも作ってしまえ。ごちゃごちゃ市販PDMを検討するんで、シンプルな PDMのモデルを作ってしまえ。雛型がちゃんとできさえすれば、後は少しずつ付け足し ていくだけで機能は追加できていく。CADデ−タを XML ファイル化し、 ワ−クフロ− ができるようにタグを付けてみよう。図面の属性デ−タもタグ付けしよう。後はこの XML ファイルを処理していくための何らかのプログラムがいる。 それは今日的にいえば Java によるアプリケ−ションか。処理が拠点毎に行われるとすれば、分散オブジェクト技術も 導入する。とりあえず HORB で記述するのが簡単でいいだろう。 さてCADデ−タの XML 化をどういうように考える。これは小生が以前考えた"タグヘッ ダ−方式" を基本にしたい。このアイデアはCADデ−タに限らず、どんなアプリケ−シ ョンのデ−タにも適用できるものである。 ここではCADデ−タ全部を XML 化するので なく、既存デ−タに図面管理情報をヘッダ−として加えることにする。このヘッダ−部を XML のタグとして記述してもいいし、XML の扱いがめんどくさければ独自に定義してもい いだろう。要はタグを解釈すればいいのだ。 XML にする場合でも DTD までの定義は必要 ないだろう。今のところ自分とこだけの使用を想定している。それに、そもそもデ−タを 作成する時にきちんとすればいい話である。更にこの際、CADを HTTP 対応にしてしま おう。これでインタ−ネット越しでもCADが使えるようになる。 [ 市販ソフトのチェック ] その前に似たようなソフトがあるか少し調べておく。 すでにワ−クフロ−を扱う XML ソ フトはある。NTTデ−タのオ−プンシステムセンタ−開発、OpenCube Commerce XML 電 子文書の回覧ソフトが一つ。他にも XML のシンポジウム等で発表されたのがある。 住友 電工が `02/01 発表した Dr_Flow はどうだ。http://www.sei.co.jp/。XML デ−タベ−ス を用いたワ−クフロ−管理ソフトウェア。Java, CORBA, eXcelon を使っている。 ワ−ク フロ−用の XML デ−タ・ファイルをチケットと呼んでいる。値段はお問い合わせ。 住友 電工の "技報" 2000/03, Vol.270 にも Dr_Flow が紹介されていた。XML ファイルは企業 間 Web-EDI の標準的な交換形式として普及しつつあるとあった。 ※ワ−クフロ−の国際標準団体 WfMC( Workflow Management Coalition )というのがある。 * タグヘッダ−方式の仕組み [ 基本的な仕組み ] すべてのアプリケ−ションソフトのデ−タファイルの頭に、作成者とか日付とかいった属 性情報をタグ形式で追加する。発想としては HTML のようなタグをデ−タファイルに付加 するのである。SGML、XML に考えはよくにているが異なっている。これらはデ−タの形式 を XML なりに合わすことを要求している。 あるいはデ−タファイルの実体へのリンクと いう表現になってしまう。提唱する方式では、デ−タファイルそのものに作成者、作成日、 表題などの属性情報を持たせることである。大きく言えば単なるデータでなく、オブジェ クトとしての性格を持たせることといっていい。そして追加したデ−タを元に、RDBの インデックス情報やら、全文検索のインデックスの作成に利用するのである。 従来こうした属性情報は、RDBやOODBソフトを用いてインデックス情報を別に作成 する必要があった。その作成は、もちろん手入力による。しかしせっかく作成したデ−タ は、そのRDBなりのソフトに特化したデ−タでしかなかった。SQLで他のRDBから アクセスはできるかも知れないが、そう簡単な話ではないだろう。そのためデ−タベ−ス ソフトを変更するような場合、容易なことではなく、変更を断念するか大金を投じてコン バ−トするかである。提唱する方式では、デ−タは "デ−タベ−ス管理独立性" と "デ− タ属性情報完結性" を備えている。大元になる情報を自分自身が保持するので、インデッ クス情報の再生は容易である。 アプリケ−ションソフトのこの方式ヘの対応は、少しだけデ−タファイルのロ−ド部を変 更すれば直ちに可能である。下記のように、例えばタグの開始を、終わりを とすれば、この間を読んだり、スキップさせたりするだけである。 タグの入れ方は HTML のように 1.1 としたり、記号で 1.1 でもいいかも知れない。 いろいろなやり方が考えられるが、ともかくできるだけシンプルにしたい。XML における スタイルシ−トとかネ−ムスペ−スまで含めるのは行き過ぎとなる。CADの STEP のよ うに仕様が大きくなり過ぎては普及はおぼつかない。それにいろいろな方言ができないよ うに、しっかりとした管理機構を作る必要もある。 --------------------------------------------------------------- | |<作成者=加藤><作成日=1999/01/10> |<題=タグヘッダ−方式> |<履歴=2><キ−ワ−ド="ワ−クフロ−","PDM"> |<関連文書="PDMの現状, http://www.nix.co.jj/pdm/index.html"> |<承認=係長:Y,課長:N> など | | |ここからアプリケ−ションのデ−タ | [ ワ−クフロ−への対応 ] タグに認証項目を設定する。タグは例えば <承認=係長:Y,課長:N> このようになる。係長 は誰それ、マシンはこれこれ等とデ−タベ−スでも、ただのファイルでもいい、ともかく 対応がつくようにしておく。上の例では "課長" の承認はまだである。これを何らかのプ ログラムで判断するようにする。そして "課長" のマシンのWWWブラウザにプッシュ技 術で、デ−タファイルのポインタまたはコピ−を送りつける。ブラウザでは専用の認証画 面を出すようにしておく。認証するとデ−タファイルのタグを <承認=係長:Y,課長:Y> と してやればいい。この他ただのファイルの配布先を表わすタグを設定してもいい。先の認 証は別に <承認=加藤係長:Y,安田課長:N> というのでもいい。いろいろ考えられる。 [ 履歴管理 ] 上記では <履歴=2> というようなタグを設けている。これはこのデ−タファイルが、修正 を加えた2番目のファイルであり、最初のファイルは別にあることを意味している。最初 のファイルはあってもなくてもどちらで構わないが。もう少し履歴を詳しくするとすれば <履歴=1, 1998/12/01> というようにしてもいいだろう。 更に履歴管理を進めて考えれば 差分デ−タも含めてしまい、前のデ−タが再生できるようにしてもいい。タグを <差分=1 ...data...> というように設けるのである。まあ、ここまでやるかは考えどころであるが。 どんどんデ−タファイルは大きくなってしまう。例えば一般のユ−ザは、最新のデ−タだ けでいいとすれば、差分デ−タ部は除けてネットワ−クに流すとかしてもいいだろう。 [ 構成管理 ] CADの組み立て図デ−タに、部品名を列記するタグを設ければ、部品構成管理もできる かも知れない。幾つかのCADでは、部品名を抽出することは可能なようである。しかし そう簡単ではないようである。専用の図面管理ソフトが必要である。抽出できるといって も、スマ−トな方法でやれるのだろうか。例えば図面の部品一覧表を、ちゃんとそうだと 認識してやっているのだろうか。最近のオブジェクト指向により再設計されたCADシス テムなら十分可能だと思うが、それ以前のシステムでは強引に抽出するしかないはずであ る。それとても、本当に信頼に値するのか疑問である。CADのデ−タ構造はクロ−ズさ れており、どうなっているか分からない。ここでもタグにより、きちんと使用部品名を記 述した方が確実である。本来はCADが対応すべきことなのだが。 * PDMの枠組み [ 処理のシナリオ ] 個々のデ−タは業務進行の大元になるものであるとする。デ−タファイルには作成者、日 付け、認証、関連文書などのタグヘッダ−が付加されているとする。業務進行はこのよう な情報を含んだデ−タを、正式文書とした時点から始まると考える。文書が投入されると、 それを監視しているデ−モンが文書を見つけ処理を開始する。デ−モンはこの最初のデ− モンと、その周辺の作業をするデ−モンとに分かれる。最初のデ−モンは他のデ−モンに 処理を依頼するという形になる。この意味で最初のデ−モンはエ−ジェントと呼んでもい い。それに全体のシステムをエ−ジェント指向による分散処理といってもいいかも知れな い。これまでのPDMのシステムは基本的には、1個のプログラムによる直列処理とみな すことができる。処理のメカニズムがそもそも違っているのである。 最初のデ−モンから何が行われていくか。先ず考えられるのはタグヘッダ−を元にRDB なりOODBヘのテ−ブル情報の登録である。この作業は自動で行われる。Oracle 8i は XML ファイルに対して自動でできるようにするらしい、そのまま使えるかも知れない。こ こで注意すべきはヘッダ・デ−タを正確に記述することである。そのためには、やはり専 用のインタ−フェ−ス、入力画面が必要になるだろう。あるいは、ヘッダ・デ−タが正確 かどうか判断するデ−モンなりプログラムを用意してもいい。ある程度あいまい、たとえ ば大文字であるとこが小文字だったり、一字違いだったり、このようなことを操作者に提 示してインタラクティブに訂正できるようにする。訂正した情報は元のヘッダ・デ−タに 反映されるようにする。 RDBへの登録後、または同時にでもいいが。文書の認証デ−モンが働く。タグヘッダ− の認証項目をこのデ−モンは見て、認証が必要な人にこういう文書ができました。見て下 さいと連絡するのである。メ−ルでもいいし、WWWブラウザへのプッシュ配信でもいい かも知れない。文書を確認したらOKまたはNGを認証デ−モンに返し、認証デ−モンは 元デ−タのヘッダ・デ−タに結果を書き込む。認証を必要とする人とその順番は、タグヘ ッダ−に記述してもいいし、別なファイルとしてもいい。別なファイルとはただのファイ ルかも知れないし、RDBのテ−ブルであるかも知れない。注意すべきは、元デ−タファ イルを直接やりとりしないこと。元デ−タへのアクセスはそれなりのデ−モンを介すよう にする。これはデ−タの保全性確保のためである。 [ 稼働デ−モンと問題点 ] 上記では幾つかのデ−モン(プログラム)が登場した。最初のデ−モンにデ−タベ−ス登 録デ−モン、認証デ−モンである。この他プリント機能を司るデ−モンだって考えられる。 ここではそれぞれ独立したデ−モンを想定している。既存PDMシステムでは1個のプロ グラムにより、順番に処理がなされていく。これはデ−タのトランザクション性を確保す る上で役立っている。それにデ−タの関連付けの整合性もキ−プされるであろう。処理の 仕方や流れは導入前に詳しく業務プロセスを分析することによって定められる。この場合 の欠点は、緻密な分析が要求され立ち上げに時間がかかり、処理内容の変更も容易でない ということである。もちろんPDMの乗り換えはかなり困難を伴うことが予想される。 提案するやりかたでは、個々のデ−モンがそれぞれ自分の役目を果たして行くことによリ 全体として1つのプロセス、つまりPDMシステムとする。デ−モンはあるタイミングで 関連デ−モンの様子を見にいくか、関連デ−モンの出すファイルなりデ−タベ−スのテ− ブルを見ることになる。このためタイムラグが発生している間、デ−タの整合性がとれな くなる。例えばデ−タを消去したのに、帳簿にはまだ載っているといった話である。そこ で緊急度の高い処理については関連デ−モンにトラップをかけるようにする。このデ−タ は今、消去されました、そちらもすぐに処理して下さいとメッセ−ジを出すのである。緊 急度の低いもの。例えばWWWでのリスト表示としよう。これは時たま自動のスクリプト を走らせて、整合性を合わせて行けば十分でないのか。 [ 実装プラン ] ・WWWにより先ず簡単に見れて、アクセスできるようにする。 ・タグのデ−タを元に全文検索ができるようにする。 ・タグのデ−タを元にSQL検索ができるようにする。 ・PDMライクな処理をするため、幾つかのデ−モンを用意する。 WWWによるデ−タ管理を先ずメインにもっていきたい。CADデ−タはWWWサ−バに 入れることにする。他のファイル類も入れてもよい。デ−タベ−スソフトにデ−タを格納 することはしない。WWW技術の本質は何かと考えると、生デ−タをそのまま保存し、デ ィレクトリを表示しているのと基本的に変わらない。それがどのコンピュ−タからでも同 じやり方で使えて、簡単にファイルを表示できることである。ディレクトリを個々のデ− タベ−スとして捉えていると見てよい。プラットホ−ムとしてWWWブラウザは今後当り 前になっていくであろう。仕組みは単純だが、拡張性は Java により十分確保されている。 次に検索のとこである。タグヘッダ−部のみを対象に、全文検索できるよう検索インデッ クスを作成する。これはCADや画像デ−タに有効だろう。文書デ−タはもちろん全デ− タを対象にしてもいいが、同じ枠組みでタグヘッダ−部だけと先ずしたい。これを実現す るには全文検索をタグ部だけ見るように変更する必要がある。さらに、検索インデックス 作成と同時に、RDB用のインデックスを作成してもよい。タグから属性デ−タをインデ ックスとして、自動で作成してしまう。少しプログラムを作る必要があるが、そう難しい ものではないだろう。全文検索エンジンはフリ−の Namazu でいいだろう。RDBはこれ もいろいろあるが、とりあえず PostgreSQL でも十分である。 Apache + XML Parser + PostgreSQL + Servlet/JSP + Java Application 開発の目安。実際のところはまだよく分かっていない。いかん、アイデアだけで実装がと もなわない。範囲が広すぎて検討だけでパワ−を使い果たしているという感じだ。この簡 易PDMではバックグラウンドでの処理が中心となる。 ここで使う技術は多分、Servlet と Java アプリケ−ション、分散オブジェクト技術は HORB、EJB は使わない、 トランザ クションは考慮しない。それにセキュリティとスケ−ラビリティもとりあえず考慮しなく てもいいだろう。ブラウザ側の開発はどうか。 JSP か PHP3、どちらかを使うことになる だろう。PHP3 も JSP も記述はよく似ているが、どうせなら JSP にしておくか。Java の GUI、Swing は使わない。イベント・ドリブンのプログラミングははまる。小生、Xウ ィンドウの Motif なんかで、もうへきへきした。 PDMライクな処理には XML, CORBA, ORB, IIOP, Java, Java Beans, RDB, OODB といっ た技術が関係してくる。多分 ORB と Java の技術が必要であろう。 しかしアプリケ−シ ョン作成のプログラミング・ツ−ルはやっと出てきたばかりである。この分野、非常に分 かりにくい。どういったツ−ルがあり何ができるか、先ずこれから調べなければならない。 Java はまだまだ発展段階であり、 安定さはまだあまり望めないことも念頭に入れておく 必要がある。それに基本的なこととしてオブジェクト指向、エ−ジェント指向の考え方も 勉強する必要がある。それが安定して、分散処理をする基礎となる。 -------------------------------------------------------------------------------- なんかとても日本的なやり方だとお思いになりませんか。指揮者のいない邦楽演奏みたい。 大きくいえば地球という生命体ガイア、台風もあれば地震もある、自然の様々な現象にも 関わらず微妙なバランスを保ちながら地球上の生命は生きながらえてきた。神や仏がコン トロ−ルしているのではない。系が複雑になればなる程、制御不能になっていくように思 われるのだが、ある程度時間が経過すると落ち着くところに落ち着く。それぞれの持ち場 でやることをそれぞれやるのみ。それで結果として破綻をせず、処理が完了していくとい うシステムである。処理の無限ル−プに陥らないように、そこは人為的に制御する必要は あるのだが。オブジェクト指向の壮大な仕組みと言ってもいいかも知れない。 -------------------------------------------------------------------------------- * HULFT ハルフトというソフト `28/08/end 学生時代からの友人と飲んでいて、そいつがこのソフトの話をしてくれた。それを聞いた 時にすぐに、自分のアイデアがこれでも実現できるかも知れないと思った。HULFT6、安い ので5万円から10万円ぐらい。パソコンのフォルダにファイルを送り込んで置くとこの ソフトが見張っていて、処理をするようになっている。そして次のパソコンのフォルダに 送るというもの。ファイル名でどこからどこへ送るかル−ルを決める。かなり汎用的な処 理がこれで実現できそうである。自動車関連の会社でよく使われているとか。バケツリレ −か。シンプルでいいぞ。何でもWeb化するばかりが能ではない。最近の日経の雑誌を その気で見たらこのソフトは広告に出ていた。となると本格的に利用するには数百万円か。 * CADの改造と簡易PDMシステム 2次元CADを HTTP 対応にして、インタ−ネット越しに使えるようにする。CADデ− タは ASCII 形式としようか、 XML でラッピングして図面管理情報を埋め込むことにする。 DTD はなしとする。CADデ−タはWWWサ−バに入れることにする。WWWサ−バは部 門ことに用意する。WWWサ−バは全文検索の Namazu を組み込む。これでCADデ−タ に対して全文検索をかけることができるようにする。PDMの部分はどうするか。とりあ えずワ−クフロ−はなしで出図管理を行う。PDMの機能はどうやって実現するか。HORB と Servlet で実現したい。XML ファイルの設計は、DXF ファイルを XML でとりあえずラ ッピングしてみるか。これに作成者、日付、承認のタグをいれる。全体を1個の要素とす る、どういうことだったか忘れた。ファイルは開始タグ、内容、終了タグという構成。 katou first は属性 56.5 * 自社開発したCADのXML化検討 `24/12 自社開発した機械設計用2次元CADは約15年間使ってきた。多分今後も2次元CAD は無くならない。よく耐えてきている。できれば今後も使っていけるようにしたい。費用 的な面でもそのメリットは大きい。今日でもCADの一般的な課題はデ−タの有効利用で ある。PDMとかいうCADデ−タのワ−クフロ−の市販ソフトもあるが、金がかかるば かりでその有効性は今もって疑問である。そこで自社CADのデ−タを有効利用できるよ う改造する。これで更に10年はもたせることができるだろう。そのために既存のCAD のデ−タをXML化させる。属性情報をデ−タのヘッド部分に追加して全体をXMLで包 む。この属性情報をデ−タベ−ス・ソフトで管理する。アイデアは簡単なものである。問 題は自社CADのプログラムを何年もいじっていないこと。そこが課題、難点である。 (5) タグヘッダ−方式の提唱 '99/09/27 * そのコンセンプト 技術系にけるCADや文書デ−タを管理するための枠組みを検討する。特にCADデ−タ の扱いに注視したい。そして広義にはグル−プウェアやPDMの新しい方式を検討したい。 そしてこれらの元となるデ−タファイルに、タグヘッダ−なる方式を導入する。この方式 は XML のように先進的であるかも知れないし、十分古典的であるかも知れない。 当初こ の方式は特許の申請を考えた。しかしコンピュ−タ利用のしやすさの発展のため、あえて 申請はしなかった。まだまだコンピュ−タのソフト的な面は未熟な部分が多々ある。今は 皆が知恵を出し合って発展させる段階にある。特許でがんじがらめにして、自ら首を締め るようなことがあってはならない。 上記管理をするためのソフトとして、技術系にはPDMというのが以前からある。それに 最近、取り沙汰されている XML というドキュメント・フォ−マットがある。Microsoftの Word/Excel や、WWWブラウザも XML に対応することになった。 ゆくゆくは XML によ るデ−タとPDM、あるいはERP、もっと大きくはCALSへと発展していくことが期 待される。Word 等パソコンソフトは、 悪い意味で現実的な対応がなされていくであろう。 しかしCADデ−タについてはまだ XML 何がしという話は聞かない。 一見バラ色に見え るかのような XML だが、まだまだ問題は多いと見るべきである。 当分の間、CADデ− タの管理とその他デ−タは、別管理になるしかないと思われる。 先ずCADデ−タが XML 対応になるか考えてみる。 例えば DXF を XML で定義し直すよ うなことが考えられる。単純に見積もって2倍のデ−タ容量とデ−タ形式の複雑化がもた らされる。DXF では直線を表わすのに D 100 100 ... という簡単な形式である。 それが 100 100 .. という表現になってくる。まあ、そんな程度で済めばもうけも のだが。CADの世界で複雑なデ−タが一般に受け入れられるのは、システムがきわめて 慎重に設計されている場合だけである。その反例が IGES や STEP である。DXF にしても 互換性の問題はあるが、それでもまだ単純なデ−タ形式だったのである。 現状PDMの問題点も考えてみる。Sherpa や MATRIX といった高額PDMソフトは、 ア プリケ−ションのデ−タもRDBやOODBの中に含めて管理する。そうでないPDMソ フトもあるらしいが。ともかく、これによりデ−タの一元管理を可能にしている。しかし CADデ−タまで、デ−タベ−ス中で保存管理するのはあまりよくないのでないか。元々 RDBは、作成するインデックス、テ−ブルといった方がいいか、それ自体がメインのデ −タである。デ−タベ−スの中には、検索インデックスもCADデ−タ、文書デ−タもい っしょに入ることになる。そしてこれらの関連はかなり密なものとなる。怖いのはこの関 連情報の整合性がくずれることである。デ−タベ−スは一瞬にしてゴミだめと化す。 デ−タファイルの属性情報について、現状どうなっているか見てみる。例えば Word なん かは、作成者を始め何項目かの属性を記入できる。入力画面も用意されている。しかしこ れらのデ−タは Word 専用のフォ−マットの中に組み込まれ、そう簡単に取り出せるもの ではない。また認証項目もあるようだが、ワ−クフロ−にまで使えるものではない。デ− タファイルには Word などアプリケ−ションソフトとただの画像デ−タといった2種類が ある。画像デ−タファイルには属性情報うんぬんという概念はない。全くタダのデ−タで あり、誰がいつ作ったかはOSレベルのファイル属性で知る程度である。それ以上に詳し く属性を付けるにはデ−タベ−スを使うしかない。つまり2種類のデ−タの属性管理は基 本的に、異なっているのが現状である。 もう一つ、デ−タファイルの拡張子についても考えてみたい。WWWやメ−ルシステムで は MIME という仕組みにより、拡張子を元にデ−タがどのアプリケ−ションか判断してい る。拡張子は3文字か4文字である。もう拡張子によるアプリケ−ションの定義は限界に きているのでないか。それに一貫性もないし、管理する機構も存在しない。そのため混乱 も生じている。そのいい例が Word の xxx.doc である。.doc はUNIXにおけるドキュ メントの拡張子として永く使われてきた。ひょっとすると .dxf という拡張子をどこか有 力なCADメ−カが強引に自社フォ−マットに使うことだって有り得る。また拡張子だけ では、そのデ−タのバ−ジョンまでは分からない。正しくそのデ−タを使うにはファイル 中のバ−ジョン情報を調べるしかない。 そこで上記問題の解決のため、タグヘッダ−方式のデ−タ管理方式というのを提案したい。 これは既存のコンピュ−タのデ−タファイルの先頭に、属性情報を追加するだけの単純な メカニズムである。アプリケ−ションは属性情報が付加されていないこれまでのデ−タと、 付加されている場合を判断するように変更するだけで、とりあえず対応は可能である。付 加されている場合は、データをソフトが読む時に追加分を単にスキップさせるだけである。 属性情報の付加には、例えばCADの起動時などに一発管理ソフトをかまし、その画面で 入力するようにする。そしてデ−タをセ−ブする際に、属性情報をファイルに追加すれが いい。他画像デ−タでも何でも同じことである。これによりすべてのコンピュ−タ・デ− タは準オブジェクトしての性格付けがなされ、同じ方式で管理できることになる。 このタグヘッダ−方式はコンピュ−タ業界全体で採用されれば一番望ましいが、個々のア プリケ−ション単独で適用しても効果は十分あると考える。 また XML ヘの対応も、属性 情報をすでにもっているので容易となる。拡張子の問題も、タグにアプリケ−ション名を 入れることにより解決できる。 * XML との方式の比較 XML の基本的な考え方は、新しいデ−タフォ−マットを XML の DTD で定義することであ る。決して既存のデ−タフォ−マットを活かす考え方ではない。 ここが XML とタグヘッ ダ−方式と決定的に異なるところである。 属性情報も DTD で定義してはじめて認識され る。既存デ−タ、CADや画像データを XML ドキュメントに含めるには XLink/XPointer という HTML のリンクのような記述をする。 これでも属性情報を XML に記述することは できるが、ファイルが2つに別れてしまう。実体とそれへのリンクという構造にならざる おえない。そして XML ファイルへのアクセスは、専用の XML パーサを介すか、DOM とい う API を介してやることになる。どうも少し見たところ、 オブジェクト指向的なアクセ スで、だいぶややこしそうである。 XML の現在の様相もついでにみてみる。Microsoft はいち早く Word 2000 で XML により データを表わすようにした。今β版がでているのでないか。しかし話として、お決まりの 独自拡張をしているようである。Java がいい例だった。CSS や Namespace の実装もその ようである。どうも最初から混乱の様相を呈している。私見として、多分 XMLはそう簡単 に普及しないのでないか。Word 2000 はへたすればそれまでのバ−ジョンとの互換性の問 題で、自滅する可能性さえある。ただでさえ Word は互換性に問題があるのに。では XML 自体の問題はないのか。どうも SGML 同様まだまだ仕様が大きい気がする。 SGML は欧米 大企業ではまま受け入れられたが、それまでであった。DTD も癖者である。勝手に決めだ しはしないか。先ず、普及の鍵はWWWブラウザが安定して XML を扱うことである。 * 覚え書き このタグ管理方式と言うアイデアは、 98年の12月頃 XML の辺りをぼんやり考えてい た時にふと思いついたものである。HTML も XML もしょせんタグを決めているだけでない か。これをもっと汎用的に考えたらどうなるか。一方、デジタルカメラのデ−タ・フォ− マットには露出や日付なども入るようになっているぞ。これは XML でいかんのか。 など など漠然とそう思ったわけである。その後の XML の動向はどうも鈍い。EDI を XML に置 き換える話も遅々と進まない。デ−タベ−スとの連携で XML サ−バを使い、 その結果を HTML に変換してWWWクライアントに送る。Netscape や IE はぼつぼつ、XML をサポ− トしてきているとは言うが、使われる気配は全くない。 どうも言うほど XML は面白みが なさそうである。そうなるとシンプルな小生のアイデアは生きてくる可能性も無きにしも あらずということか。誰ぞ共鳴する奴はおらんか?。'99/11/15 VLANと言うのは、つまりタグでの識別である。レイヤ3スイッチのVLAN、あるい はWANの IP-VPN のVLAN。これらはネットワ−クのパケットをカプセル化している のだが、どこからどこへという識別のIDを付加しているということだ。あるいは既存の パケットのどこか空いているところにIDを入れてしまうとか。はたまたIDの値が4096 しかなく、それ以上を区別できないということで、更にIDを付加することもやったりす る。えらいややこしげな気がするが、そういうこだ。Google の Gmail にもタグを使って いる。メ−ルはフォルダで仕分けはしない。ユ−ザが各自適当にタグを付けて検索できる ようにする。Googleらしいアプロ−チである。適当なタグをうまく付ければ、これはフォ ルダに仕分けしているのと一緒のことだ。Gmail のタグは XMLではなさそう。小生のアイ デアのタグヘッダ−方式に一番近いものの様である。`26/09