Macintosh Developer Online (MDOnline)


2001年9月10日発行号 - WebObjectsのSOAP対応



またまた台風が直撃のようで、うちのあたりも朝から強風や大雨と思ったら晴れてきたり、また雨が降ってきたりと目まぐるしい天気の変わり方です。しかし、いちばん近付く明日の朝に、記者会見があるとは、ちょっとぐったりしそうです…。会場にたどりつけるのだろうか? ちなみに、私は武蔵野線沿線で、どこに行くにもたいがいは武蔵野線は乗ることになります。風が強いとすぐ武蔵野線は止まってしまうので、明日は作戦を考えないといけないかも。一方、その先で乗る京浜東北線は何があっても意地でも(笑)止まることはないみたいです。京浜東北線が止まると影響も大きいでしょうしね。
今日は、WebObjectsのSOAPのサンプルをじっくり見てみました。分散オブジェクトと言えば、5年前はCOLBAが本命…などと言われていますが、どうもSOAPに収斂しそうな感じですね。まさにシンプルだし、XMLなのでデータの交換という意味でも安全で楽ができます。また、COLBAやRMIなどと違って、スケルトンやスタブみたいな準備もなしでも使えるわけですから、その意味でも単純に使えるといったところでしょうか。それに、HTTPを使うわけでインフラもばっちりですし、Apacheとかそのあたりの素材を使えるというのも大きいでしょうね。もちろん、Microsoftも.NETでSOAP関連もばっちりサポートしますが、WebObjectsではXMLなどを標準のライブラリを使って処理できる点で、LinuxなどのUNIX系OSとの互換性も高いと言えるかと思います。もっとも、Mac OS XもCoreFoundationにXMLのライブラリはありますけど、Pure Java系のアプリケーションでは、JavaXMLというフレームワークを使うのがいちばん手軽だと思います。インターネットの世界に変化がなくなってきたなどと言われていますが、テクニカルな面ではまだまだ動きは出てきますし、それに乗るのもデベロッパーとして必要なことですよね。
(新居雅行 msyk@mdonline.jp


WebObjectsで構築するSOAPサーバとクライアントのサンプルを掲載

Sample Codeに、WebObjectsを利用したSOAPのサンプルが掲載されている。Webサービスの話題では必ず出てくるSOAP(Simple Object Access Protocol)であるが、分散オブジェクトを実現するもっともシンプルな手法として注目されている。たとえば、あるサーバでユーザのリクエストを受け付けた場合、その中に必要な処理を別のサーバに依頼して処理を行うとする。そうした場合に利用されるのSOAPである。大きな特徴は、一般にはHTTPを使って通信を行うという点と、送受信するデータがXMLで構築されるということである。リクエストでのパラメータや、あるいは送信先で呼び出されるオブジェクトなどの情報をXMLでパックしてやりとりができるため、XMLの枠組みでデータの処理ができるなどの利点を持つ。現在のWebは、ユーザが直接アクセスする方式であるが、コンピュータ間がWebの仕組みを用いてアクセスし、データの取り出しなどを行うといったサービスを構築することで、分散コンピュータ環境をインターネット上でつくり出すという枠組みなのである。こうしたSOAPの仕組みを、WebObjectsで実現できることを示すサンプルとして注目できるだろう。
公開されたサンプルは、SOAPのサーバと、SOAPのクライアントの2つに分かれていて、いずれもWebObjects 5のプロジェクトとして提供されている。SOAPのクライアント自体はWebアプリケーションになるので、ユーザから見ればWebサーバで動いているアプリケーションとなる。SOAPクライアントとなるWebアプリケーションを起動すると、WebブラウザでMacintoshの本体を注文するような画面が出てくる。そこで、注文内容を入力すれば、その内容がSOAPサーバに送信され、SOAPサーバ側ではデータベースへの保存を行うといった動作を行う。ただし、若干の準備が必要で、SOAPサーバ側のReadMe.txtファイルを参照しよう。OpenBase SQLにVendorという名前のデータベースを作っておき、稼動させておく(エンコードはISO LATIN 1でいい)。なお、OpenBase SQLでアカウントやパスワードの設定をしていない状況を想定しているため、adminにパスワードを設定したのなら、EOModelerで設定の変更等は必要になるだろう。そして、プロジェクトにあるeomodelファイルを開いて、SQLコマンドを発行し必要なテーブルを作る。そのとき、「Drop ____」のチェックボックスははずしておいた方がいいだろう。そして、コンパイルしてサーバーを稼動するが、サーバ側は稼動しても単にプロセスが起動するだけで何も見えない。一方、クライアント側をコンパイルして起動すると、Webブラウザも起動して、ユーザサイドの画面が出てくる。最初に、ユーザ名とパスワードを入力するところがあるが、認証関連は何も組み込まれていないので、そのままボタンをクリックすると、注文の入力ができる。適当に入力してもとりあえずうまく行くようだ。注文を行った後に、OpenBaseのデータベースに入った内容を、OpenBase Managerで確認すると良いだろう。なお、これらのアプリケーションは同一マシンで稼動させることになっている。

◇WebObjects: SOAPClient
 http://developer.apple.com/samplecode/Sample_Code/WebObjects/SOAPClient.htm

◇WebObjects: SOAPServer
 http://developer.apple.com/samplecode/Sample_Code/WebObjects/SOAPServer.htm

まず、SOAPクライアント側のアプリケーションでは、入力した結果をXMLに組み立てて、SOAPサーバへのリクエストを送信するという機能が組み込まれている。それなりに凝ったアプリケーションであるが、オーダの送信は、Web ComponentsグループにあるAdministrationというWOComponentからたどればいいだろう。Submit Orderボタンをクリックすると、Administration.javaにあるsubmitOrderメソッドを呼び出す。そこから、XMLの構築とSOAPサーバへのリクエスト送信が行われる。XMLデータの構築は、SOAPBuilder.javaのソースにあるクラスで定義されており、そこにはmakeOrderDocumentというメソッドがあるだけである。どういったパッケージやクラスをimportしているのかなどをチェックすると良いだろう。生成したXMLデータは、Project Builderのコンソールに出力される。そして、SOAPサーバの呼び出しは、SOAPTransport.javaというソースで記述されており、WOHTTPConnectionを生成し、作成したXMLデータを送信している。また、SOAPサーバからは、注文番号が発行されて戻されてくるが、SOAPParserを通じて情報を取り出し、その結果をWebページとして表示している。
一方の、SOAPサーバ側であるが、リクエストによりWeb ComponentsグループにあるMainというWOComponentが呼び出される。このMainはSOAPComponentクラスのサブクラスなので、そちらも参照する必要がある。これらを見ると、リクエストからDOMとしてドキュメントを取り出し、DOMオブジェクトより必要な情報を取り出して、データベースに書き込みを行うという流れを追うことができる。
WebObjectsでのXML利用やSOAPリクエストの送受信など、今後のアプリケーション作成において主要テーマとなるような情報が詰まったサンプルプログラムである。なお、このサンプルは、WWDC 2001のあるセッションで公開されたものだそうだ。

カテゴリ:アップルからの開発資料, XML, WebObjects


MOSAがプログラミング初心者向けの講座を半年に渡って開催、受講者を募集

MOSA(Macintosh OS Software Association)はプログラミングの初心者を対象にしたセミナー「硬派のためのプログラミング道場 ―入門編―」を開催する。2001年10月より半年間、月1回の講習とメーリングリストを中心としたオンライン講習を交えて、長期間に渡って講習を受ける。C言語でのプログラミングを学習するが、Cについての知識は不要となっている。講習会場は、渋谷ないしは表参道のこども城研修室で、受講料は全期間分として6万円となっている。受講にあたっては講習会への参加とメーリングリストへの参加、そしてMOSAへの入会となっている。募集は8名前後となっている。じっくりとプログラミングの勉強をしてみたいと考えている初心者にはうってつけのセミナーとなるだろう。ほぼ、マンツーマンに近い体制で講座を受けることができ、週に1〜2回のペースで課題が出され、提出を行うという流れになっている。また、目標を設定するのではなく、受講者のレベルや進度に応じて確実に理解することに力を注ぐ。そのため、最終的な目標も設定しない。
なお、これに先立って、準備講座が参加費無料で2001年10月4日(木)18:00〜21:00に、こども城研修室で開催される。講師は高橋真人氏である。準備講座が説明会を兼ねている。申し込みは10月1日までにMOSA事務局までメール(togami@mosa.gr.jp)で行う。

関連リンク:MOSA
カテゴリ:イベント


Mac OS XでのPPDファイルの作成方法を解説した文書が公開

PostScriptプリンタのドライバはMacintoshではシステムに標準で付属するが、プリンタの特性や機能に合わせた設定ファイルであるPPD(PostScript Printer Description)ファイルを供給する必要がある。このPPDファイルの作成方法を記述した文書が公開された。ターゲットとなるのはMac OS X向けのPPDファイルのである。従来のPPDファイルとの違いや、あるいはタブを使った印刷ダイアログの拡張などの機能、あるいはPPDのインストール方法やローカライズの方法について詳細に記載されている。また、印刷ダイアログボックスの解説もある。Mac OS X向けにPPDファイルを作成する必要がある人は必読のドキュメントだが、Mac OS Xの印刷関連機能や、印刷ダイアログボックスのカスタマイズ機能を知りたい人も有益な情報源となるだろう。HTMLでの参照に加えてPDFも用意されている。

関連リンク:Using PostScript Printer Descriptions Files
カテゴリ:アップルからの開発資料, 周辺機器, Mac OS X


WebObjects 5に対応したアプリケーションを稼動させる方法を解説した文書

WebObjectsアプリケーションのデプロイメント(稼動)についての文書「Deploying WebObjects Applications」が更新されて、WebObjects 5に対応した内容となった。デプロイメントの基礎から、インストールや管理について解説されている。HTML文書以外にPDF文書も掲載されている。

関連リンク:Deploying WebObjects Applications
カテゴリ:アップルからの開発資料, WebObjects


KBase》Mac OS 9.2でPro KeyboardがiTunesのボリュームだけを変更するのは正常

Mac OS 9.2以降でiTunes 1.1を使っている場合、Apple Pro Keyboardのボリュームキーに寄るボリュームコントロールは、iTunesのボリュームだけになり、システムのボリュームの変更はできない。これは正常な動作である。iTunesを終了させれば、システムのボリュームを変更できるようになる。

関連リンク:Mac OS 9.2: iTunes and Volume Control Using the Apple Pro Keyboard Volume Keys
カテゴリ:Knowledge Base(旧TIL), Mac OS 9


Mac OS、Windowsに対応したアプリケーションフレームワークがLinuxにも対応

ksoftは、C++のアプリケーションフレームワークで、Mac OSとWindowsの両方のアプリケーション作成が可能な「CPLAT」の新しいバージョンVer.3.5をリリースした。新しいバージョンでは、さらにLinux対応を行っているが、サンプルプログラムの90%がLinuxでも稼動しており位置付けはベータ版となっている。また、WASTEやMLTE、RichEdit2を使ったテキスト編集クラスが追加されている。Mac OSでの開発ではCodeWarrior Pro7にも対応し、Carbon対応のアプリケーションをMach-Oバイナリで生成することができる。Linux向けに生成したアプリケーションは、Gtk/Gdk Widgetセットを利用して稼動する。価格は$50で、ソースコードやデモ、ヘッダなどに加え、RADToolやリソースエディタも含んでいる。開発結果のアプリケーション配付などでのライセンス料は不要となっている。

関連リンク:ksoft
カテゴリ:ライブラリ, UNIX