お得で便利なNTTネットワークサービス!クリックしてみて! お得で便利なNTTネットワークサービス!クリックしてみて!

OTZIPCarbonでアピールしたい点

 ◎
CarbonではAppleTalkマネージャのほとんどのAPIが廃止された
 

そのためMacOS 8.6〜9.xとMacOS Xの両方で動作するCarbonアプリケーションでは、AppleTalkの各プロトコルに対応するのが容易ではなくなりました。しかし、OTZIPCarbonは数々の障壁を乗り越えてZIP(ゾーン インフォメーション プロトコル)、NBP(ネーム バインディング プロトコル)、PAP(プリンタ アクセス プロトコル)を使っています。

 

 ◎
MacOS XではLaserWriterドライバが廃止された
 

MacOS  9.xまではLaserWriterドライバが、AppleTalkネットワーク上にあるPostScriptプリンタと通信するために必要なPAPの実行コードを持っていました。しかしOS XではLaserWriterドライバ自体が廃止されてしまいました。例えOS Xのクラシック環境にあるLaserWriterドライバからPAPコードをコピーしてきたとしても、68KのコードであるためOS Xのネイティブな環境では利用できません。

 

 ◎
Carbon仕様のOpenTransportでは機能が制限されている
 

クラシック仕様のOpenTransportにはATP(AppleTalk トランザクション プロトコル)に適したサービスがあるのですが、Carbon仕様のOpenTransportからは見事に削除されてしまいました。PostScriptプリンタ相手のユーティリティではPAPの他にZIPNBPも使います。
PAPZIPATPの上位レイヤーですので、ATP向きのサービスさえ残されていればたいして苦労せずに済んだのですが。結局、MacOS  9.x以下ではCarbon仕様でないOpenTransportのAPIを使うようにしました。もちろんCarbonプロジェクトですので在り来たりの方法ではコンパイル/ビルドできません。

 

 

 ◎
MacOS XではAppleTalk frameworkのAPIを使う
  OS XのAppleTalk frameworkにはAppleTalk関係のプロトコルで必要とされるAPIが一通り含まれているようです。ただしBSDカーネル内に(PAPを使う上で)深刻なバグがあって確実な回避方法は見つかりませんでした。PAPATPに関係するバグがカーネルにあるなんて嘘みたいですが本当です。最終的にはATPより上を自分で組むしかないでしょうね。
 

このバグの件ではAppleのネットワーク担当のエンジニアとも半月ばかりメールでやりとりしましたが、
「AppleTalk frameworkのAPIを直接使おうとしている奴はお前が初めてだ」などと言われた揚げ句、いつ直せるか分からないということで終わりました。Appleの別のエンジニアはAppleTalkなんて廃止して全部TCP/IPでやれば良いと言っていましたね。そのうちプリンタに名前が付けられなくなる時が来そうで嫌ですね。

 

 

有限会社 ユコス・ワールド

〒181-0001 東京都三鷹市井の頭 1-30-27
FAX: (0422) 44-0993
Email: info@yukosworld.com


Copyright (c) 2002-03 Yukos World Co., Ltd. All rights reserved.