|
Last-modified: 2003-12-15 (月) 10:40:32 (7409d)
2000年上半期 技術検証論文 発表資料 (ppt)
XML週報ワークフローシステム プロトタイプ †2000.09.27
日進ソフトウエア株式会社 ネットビジネス推進室
定村 和彦
1. はじめに † ここ数年、日本でもインターネットが急速に普及し、企業もウェブを利用したサービスを積極的に利用しようとする動きが活発になっています。このような需要を受けて、ソフトウエアベンダー側も、ウェブを利用したB2B(business to business)、B2C(business to consumer)システムを次々と発表し、この新しい分野でのイニシアティブをめぐって激しい競争になっています。最近ではIBM、Microsoft、Aribaなど30社余りが「UDDI(Universal Description, Discovery and Integration)」というプロジェクトを共同で立ち上げ、企業間電子商取引の標準仕様を策定、取引環境の統合を目指しているようです。 今回は、B2Bシステムの一部であり、その原型であるB2E(business to employee)システムの構築に取り組みました。B2Eシステムとは従来形式の書簡、社員便、ファックス等での情報交換を電子的に行うことにより、印刷物コストの削減、総務担当者の削減、情報の迅速な配信を目的とするシステムの総称です。 2. XML †2.1. 概略 †XMLは「拡張可能マークアップ言語(eXtensible Merkup Language)」の略で、HTML(Hypertext Markup Language)がもつインターネットとの親和性、手軽さを保ちつつ、SGML(Standard Generalized Markup Language)がもつ柔軟性、応用のし易さを取り入れて開発された言語です。Webに関する規格のほとんどを制定、管理しているW3C(World Wide Web Consortium)によって開発、標準化されました。 2.2. XMLの必要性(HTMLの限界) † XMLが必要とされるようになった裏には、HTML規格の肥大化、複雑化があります。 2.3. XMLとHTMLの比較 †XMLはこれらの経緯を経て、主にHTMLの欠点を補うために開発されました。HTMLと比較した場合の本質的な変更点は、
ということです。これによって、
という効果があります。これによって、前述したHTMLの短所が補われています。 2.4. XMLの特徴 † HTMLにない性質としては、XMLファイルに一意性を持たせる「名前空間」という概念があります。XMLのタグセットにURI(Universal Resouce Identifier)を関連付けておくことで、同一名のタグを使ったXML文書をやり取りしても、タグの衝突が避けられます。これにより、複数の企業やグループで文書のやり取りをする場合、XMLを用いればより円滑にできると考えられます。 2.5. XMLをベースとした関連規格 †他にも、XMLを応用した言語、関連規格がいくつも開発されています。数式記述用の「MathML」、マルチメディア情報を同期させて表示する「SMIL(Synchronized Multimedia Integration Lnaguage)」、標準2次元ベクトルグラフフォーマット「SVG(Scalable Vector Graphics)」、XML文書に対するでデジタル署名規格「XML-Dsig」等がW3Cで検討されています。必要とされて開発されているこれら全ての規格のベースはXMLであり、XMLが今後重要度を更に増していくことは間違いありません。 3. XML利用技術 †次に、XMLを取り扱う技術について紐解いていきます。出版様式を決める「XSL(Extensible Stylesheet Language)」や「XSLFO(XSL Format Object)」、より進めて構造変換まで可能な「XSLT(XSL Transformations)」、XMLの構造を解析しアプリケーションに渡す「Parser」とそのインターフェースである「DOM(Document Object Model)」、イベントベースのインターフェースである「SAX(Simple API for XML)」についてです。 3.1. XSL、XSLT、XSLFO † XML文書は、同じ文書に異なるスタイルシートを適応することによって、異なる形式にレンダリングすることができます。ここで、HTMLと異なる点は、文書情報とスタイルシートが完全に別個のファイルとして分離していること、文書の「見た目」よりも文書の構造を整えることに重点を置いていることです。 3.2 DOMとParser † XMLをプログラムで扱えるようにする技術の一つには、DOMという概念があります。DOMはW3Cがブラウザ用に開発したもので、Netscape NavigatorとInternet Explorerのオブジェクトモデルを統一しようとして生み出されたものです。DOMはオブジェクトベースのインターフェースですから、利用する際にはオブジェクトの構造を知る必要があります。それを解析するのがParserです。ParserはアプリケーションとXMLファイルの間に位置し、開発者から複雑なXMLの構文を隠すことを目標としています。ParserがXMLのツリー構造をメモリ内に構築し、DOMはプログラム的にそのXMLツリーを走査します。 3.3. SAX † DOMのデメリットは、XML全体をメモリにロードするためにオーバーヘッドが大きいことです。また、ネットワーク経由でXMLデータを送信する場合、ファイル全体の送信が終わるまで待たなければファイルの処理を開始できません。 4. 検証システム(XML週報ワークフロー) †今回作成したXML週報ワークフローシステムのプロトタイプは非常にシンプルです。コードは「XML作成」部分と「XML閲覧」部分に分かれています。 4.1. XML作成 †まずは、「XML作成」部分をご説明します。まず、週報作成者はフォームに必要事項を記入していきます。ここで、自分のメールアドレスと、閲覧者のメールアドレスも記入します。今回のシステムではユーザ認証を省いたので、このメールアドレスでユーザを識別することになります。全ての入力が終了したら、ボタンを押すと、フォームの内容がASPファイルに送られます。そこで、JScriptによりXMLファイルが生成されます。ここでは、XMLジェネレーターとしてDOMが使われています。コードは、JScriptです。まず、 var xmldoc = new ActiveXObject("Microsoft.XMLDOM"); として、オブジェクトを生成します。これにXMLの要素であるノードを追加していきます。 emRepo_name = xmldoc.createElement("reporter"); emRepo_name.text = Request("repo-name"); topNode.appendChild(emRepo_name); 第一文で「reporter」という名前のノードを作成するために、要素オブジェクトを生成します。第2文で先に入力したフォームの内容のうちIDが「repo-name」であるものの内容をテキストとして要素オブジェクトに代入します。第3文で、その要素オブジェクトをXMLツリー構造に追加しています。これだけで、ノードの作成・追加ができます。 xmldoc.save(Server.MapPath (filename)); としてやれば、XMLファイルがサーバに保存されます。 <weekly_report> <reporter>定村</reporter> <date>00/10/11</date> </weekly_report> 4.2. XML閲覧 † 次に「XML閲覧」部分についてご説明します。週報閲覧者は受け取ったメールに記述されているURLを直接ブラウザに送るか、ブラウザ上で閲覧する週報を選択するかして週報ファイルを開きます。今回のシステムでは「閲覧者」は、週報作成者が指定した「第一閲覧者」「第2閲覧者」と「それ以外」の3種類に分類されます。この選択は閲覧者自身に任されます。作成者が指定した閲覧者は週報に対して、「承認」もしくは「変更を要求」できます。 var xmldoc=new ActiveXObject("Microsoft.XMLDom"); として、オブジェクトを生成した後、 xmldoc.load(Server.MapPath (XMLpath)); として、サーバ上にあるXMLファイルを読み込んでやります。これだけで、メモリ上にXMLツリー構造ができているので、ノードの操作が可能になります。例えば、mail01という名前のノードの中身を得たいなら、 var mail01Node = xmldoc.getElementsByTagName("mail01"); Response.Write(mail01Node(0).text); としてやれば、要素オブジェクトmail01Nodeにmail01というタグ名のノードが割り当てられ、その中で一番最初のノードの内容がテキスト表示されます。 var xmldoc = null; としてやる必要があります。 5. 考察 †5.1. DOMについて † 4章に説明したように、XMLファイルの操作はDOMを用いれば非常に簡単です。DOMを用いなくても同様の操作はできますが、その場合コードが何倍にも増えますし、見た目にもわかりにくくなります。 5.2. プロトタイプシステムについて †今回のシステムはXMLとDOMの検証という意味合いが強く、実用のためには残念ながら不備があります。例えば現行のままでは、ユーザー認証に問題がありますし、異なるプロジェクトチームでシステムを共有するのであれば、週報のスタイルを選択する機能も必要です。 5.3. サーバーサイドジョブについて †将来的には、クライアントにアプリケーションをインストールすることなく、「サーバー上に公開されたアプリケーションをウェブを介して端末から利用する」という方式がより一般的になるかもしれません。Web Application Serviceの普及やMicrosoftの.NET(ドットネット)構想も、目指す方向は同じと考えます。 6. 終わりに †XMLは様々な用途での利用が提案されており、異なるアプリケーションや異なるネットワークでデータの送受信を可能にすると考えられます。特にここ数年で飛躍的に発展したWeb Publishingの分野でXMLは広く用いられるでしょう。様々な関連規格をもつことで非常に利用しやすいXMLは今後必須の技術になることは間違いありません。 7. 参考文献・URL †
|