トップ 一覧 検索 ヘルプ RSS ログイン

Introduction to Conduit Development601/6の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{div_begin}}
[[← 5 章に戻る|Introduction to Conduit Development601/5]] [[↑トップへ|Introduction to Conduit Development601]] [[7 章に進む →|Introduction to Conduit Development601/7]]
{{div_end}}

{{div_begin style="margin-bottom:-10px"}}
!!!6 コンジットと通知機能の HotSync マネージャへの登録
{{div_end}}

{{div_begin "style='position:absolute;right:0px;font-size:70%;margin-right:15px;margin-top:15px;width:250px;'"}}
*{{goto Conventional Registration,通常の登録}}
**{{goto Conventional Registration,通常の登録}}
**{{goto Folder-based Conduit Registration,フォルダ-ベースのコンジット登録}}
**{{goto Comparison of Conduit Registration Methods,コンジットの登録手法の比較}}
*{{goto Folder-based Conduit Registration,フォルダ-ベースのコンジット登録}}
*{{goto Comparison of Conduit Registration Methods,コンジットの登録手法の比較}}
{{div_end}}

{{div_begin "style='position:relative;padding:0px;padding-right:5px;padding-left:10px;margin-right:250px;margin-top:20px;width:auto;border-right-style:dotted;border-right-width:2px;border-right-color:silver;'"}}
(訳者注: 通知機能の原文は Notifiers)

'''コンジットと通知機能の登録'''は、HotSync プロセスの外側で、コンジットまたは通知機能についての基本的な情報を持つ HotSync マネージャを提供するデスクトップ インストーラ アプリケーションによって実行される、1 度の操作です。この情報は HotSync マネージャが、コンジットと通知機能のエントリ ポイントのいずれかを呼び出す必要があるときに、一意にコンジットまたは通知機能を同定することを可能にします。

::NOTE
:::コンジットが適切に機能しない最も一般的な理由は、それが適切に登録されていないからです。

コンジットと通知機能は、HotSync プロセスが始まる前に、HotSync マネージャに登録されなくてはなりません。この章は以下の節を含みます。

*{{goto Methods of Registering a Conduit or Notifier,コンジットまたは通知機能の登録手法}}
*{{goto User- and System-registered Conduits and Notifiers,ユーザ登録コンジットと通知機能と、システム登録コンジットと通知機能}}
*{{goto Resolving Conduit Conflicts,コンジット衝突の解決}}


!!{{anchor Methods of Registering a Conduit or Notifier}}コンジットまたは通知機能の登録手法 {{goto top,^TOP^}}

Windows のための HotSync と同期するコンジットを登録するには 2 つの基本的な方法があります。そのことを以下で説明します。

*{{goto Conventional Registration,通常の登録}}
*{{goto Folder-based Conduit Registration,フォルダ-ベースのコンジット登録}}
*{{goto Comparison of Conduit Registration Methods,コンジットの登録手法の比較}}

これらの 2 つの手法は等価です; HotSync マネージャは異なる手法で登録された同期コンジットを違うように扱いません。

::NOTE
:::通知機能、インストール コンジット、それにバックアップ コンジットは、通常、登録されるのみです; それらをフォルダ-登録することはできません。


!{{anchor Conventional Registration}}通常の登録 {{goto top,^TOP^}}

'''通常の登録'''は、インストーラが、インストール時に、コンフィグレーション エントリの中に登録情報を書き込むことを要求します。この手法は、Windows のための HotSync のすべてのバージョンによって、以下で説明されるコンジットと通知機能を登録するために、サポートされます。

*{{goto Synchronization Conduits,同期コンジット}}
*{{goto Install Conduits,インストール コンジット}}
*{{goto Backup Conduit,バックアップ コンジット}}
*{{goto Notifiers,通知機能}}

::重要:
:::コンジット コンフィグレーション(CondCfg)ユーティリティは、開発とテストの間、コンジット マネージャを呼び出すためのコードを書くこと無しに、通常通りに同期コンジットまたは通知機能を登録することを可能にします。しかしながら、CondCfg はエンド-ユーザ ユーティリティではありませんので、PalmSource はこの開発者専用のユーティリティをコンジットまたは通知機能に付けて配布することを許可しません。

{{anchor Synchronization Conduits}}
'''同期コンジット'''

通常通りに同期コンジットを登録するために、インストーラは {{goto Conduit Manager,コンジット マネージャ|Introduction to Conduit Development601/Glossary}} API を呼び出していくつかのコンジット {{goto configuration entries,コンフィグレーション エントリ|Introduction to Conduit Development601/Glossary}} を書き込みます。要求されるエントリの最小セットは:

*{{span style='color:blue;font-family:monospace;',Conduit}}
**C API-ベース コンジット DLL のファイル名(またはフル パス)
*{{span style='color:blue;font-family:monospace;',Creator}}
**{{goto creator ID,作成者 ID|Introduction to Conduit Development601/Glossary}}。通常、コンジットに関連付けられるハンドヘルド上のアプリケーションに付けられます。これは HotSync マネージャが登録されたコンジットを一意に同定するためのキーです。いずれかの Sync Suite で作成されるコンジットのために要求されます。
*{{span style='color:blue;font-family:monospace;',COMClient}}
**COM-ベース コンジットの名前または ProgID。他のタイプのコンジットのためには要求されません。
*{{span style='color:blue;font-family:monospace;',ClassName}} と {{span style='color:blue;font-family:monospace;',ClassPath13}}
**Java-ベース コンジットによって使用されるすべてのクラスのクラス名とパス。他のタイプのコンジットのためには要求されません。

他の標準、オプションのコンジット コンフィグレーション エントリのための値を指定できます -- 例えば、{{span style='color:blue;font-family:monospace;',Priority}}、これの値は 0 から 4、は HotSync マネージャがコンジットを実行する相対的な順番を指定します。また、自分自身が使うための自分自身の追加エントリを作成、セットすることができます。コンジットを登録するためのこの手法をどのように使うかについてのより詳細な説明は、Sync Suite のための ''Sync Suite Companion'' 文書を参照してください。

::NOTE
:::HotSync マネージャ バージョン 6.0 より前のものは、コンジットの登録後に新たに登録されたコンジットを識別するために、リフレッシュまたは再開されなくては
なりません。しかしながら、バージョン 6.0 以降のものは自動的に登録されたコンジットのリストをリフレッシュするため、HotSync マネージャをリフレッシュまたは再開する必要はありません。


{{anchor Install Conduits}}
'''インストール コンジット'''

通常通りにインストール コンジットを登録するために、インストーラは {{goto Install Conduit Manager,インストール コンジット マネージャ|Introduction to Conduit Development601/Glossary}} API を呼び出していくつかのインストール コンジット コンフィグレーション エントリを書き込みます。要求されるエントリの最小セットは:

*{{span style='color:blue;font-family:monospace;',Mask}}
**現在のデスクトップ コンピュータ上のインストール コンジットを一意に同定するビット マスク値
*{{span style='color:blue;font-family:monospace;',CreatorID}}
**インストール コンジットに関連付けられる固有の ID
*{{span style='color:blue;font-family:monospace;',Extensions}}
**インストール コンジットがインストールできるファイルのファイル タイプ拡張子
*{{span style='color:blue;font-family:monospace;',Directory}}
**インストール ディレクトリの名前。ここから、ある特定のインストール コンジットがデスクトップからハンドヘルドへファイルを転送します。
*{{span style='color:blue;font-family:monospace;',Module}}
**インストール コンジットのファイル名


{{anchor Backup Conduit}}
'''バックアップ コンジット'''

通常通りにバックアップ コンジットを登録するために、インストーラはコンジット マネージャ API を呼び出して 1 つの HotSync マネージャ コンフィグレーション エントリを書き込みます:

*{{span style='color:blue;font-family:monospace;',HotSync Manager\BackupConduit}}
**HotSync マネージャが HotSync プロセスの終了近くでバックアップ コンジットとして呼び出すコンジットのファイル名


{{anchor Notifiers}}
'''通知機能'''

通常通りに通知機能を登録するために、インストーラは {{goto Notifier Install Manager,通知機能インストール マネージャ|Introduction to Conduit Development601/Glossary}} API を呼び出して 1 つの HotSync マネージャ コンフィグレーション エントリを書き込みます:

*{{span style='color:blue;font-family:monospace;',HotSync Manager\NotifierN}}
**HotSync マネージャが HotSync プロセスの開始時と終了時に呼び出す通知機能のファイル名


!{{anchor Folder-based Conduit Registration}}フォルダ-ベースのコンジット登録 {{goto top,^TOP^}}

'''フォルダ-ベースのコンジット登録'''が要求するのは:

*HotSync マネージャの、実行時の、登録情報の要求に応答するためのコンジットの {{span style='color:blue;font-family:monospace;',GetConduitInfo()}} エントリ ポイントの中のロジックの実装すること
*インストール時に、コンジットを現在の Windows ユーザ(またはシステム)の {{span style='color:blue;font-family:monospace;',Conduits}} フォルダにコピーすること

::NOTE
:::フォルダ-ベースのコンジット登録は、C API-ベース同期コンジットと Windows のための バージョン 6.0 以降の HotSync マネージャのためにのみ、サポートされます。

HotSync マネージャは、{{span style='color:blue;font-family:monospace;',Conduits}} フォルダ内を探索し、それから各コンジットの {{span style='color:blue;font-family:monospace;',GetConduitInfo()}} エントリ ポイントを呼び出すことによって、フォルダ-ベース コンジットを発見します。コンジット DLL が存在しない、または、HotSync マネージャがコンジット DLL を要求したときにコンジット DLL が登録情報を返さなかった場合、コンジットはフォルダ登録されたものではなく、HotSync マネージャによって呼び出すことはできません。

{{span style='color:blue;font-family:monospace;',Conduits}} フォルダは {{span style='color:blue;font-family:monospace;',Disabled}} サブフォルダを保持します。コンジット マネージャ API はフォルダ登録されたコンジットを使用不可にすることを可能にします。それは、単純にファイルを {{span style='color:blue;font-family:monospace;',Conduits}} フォルダから {{span style='color:blue;font-family:monospace;',Disabled}} サブフォルダに移動させるだけです。ユーザもまた、コンジット ファイルをあるフォルダから他のフォルダに移動させることによって、フォルダ登録されたコンジットを使用不可にすることも使用可能にすることもできます。

システム登録コンジットとユーザ登録コンジット両方のための {{span style='color:blue;font-family:monospace;',Conduits}} と {{span style='color:blue;font-family:monospace;',Disabled}} フォルダのパスについては、{{goto Figure 5.5,図 5.5|Introduction to Conduit Development601/5}} を参照してください。


!{{anchor Comparison of Conduit Registration Methods}}コンジットの登録手法の比較 {{goto top,^TOP^}}

フォルダ-ベース コンジット登録は、通常の手法と比べて以下の利点があります。

*コンジットの登録情報を'''コンパイル時'''にセットできます。そのため、インストーラは、登録情報をインストール時に書き込むために、複数のコンジット マネージャを作成する必要がありません。
*インストーラをより単純にすることができます。インストーラはフォルダを見つけ、そこにファイルをコピーすることだけを求められます。
*コンジットを開発、テストしている間、より短時間で HotSync マネージャにコンジットを実行させることができます。コンジットを登録するために、インストーラを書いたり、CondCfg ユーティリティを使用する必要はありません。

しかしながら、インストール時にインストーラにコンジットの登録情報をセットさせることを望む場合、通常のコンジット登録を使用することを望むかもしれません。この方法だと、登録情報をカスタマイズすることができ、また、その後にコンジット マネージャを呼び出すことによってそれを変更することができます。フォルダ登録コンジットでは、コンジットをコンパイルした後、登録情報は Read-only になります。

もちろん、両方の手法の利点をとることもできます: 開発とテスト期間中はコンジットをフォルダによって登録します。なぜなら、その方が簡単だからです。それから、インストール時にコンジットの登録情報をカスタマイズまたは変更する必要がある場合、コンジットを展開するときに通常通りにコンジットを登録するインストーラを書きます。


!!{{anchor User- and System-registered Conduits and Notifiers}}ユーザ登録コンジットと通知機能と、システム登録コンジットと通知機能 {{goto top,^TOP^}}

Windows のための HotSync マネージャのバージョン 6.0 以降のものは、現在の Windows ユーザのために登録されるコンジットと通知機能と、システムのために登録されるコンジットと通知機能を区別します。HotSync プロセスの開始時に、コンジット マネージャは、すべての衝突しあわない、登録されたコンジットの作成者 ID のリストをコンパイルします。コンジット マネージャはこのリストを HotSync マネージャに渡します。HotSync マネージャは、現在の Windows ユーザが HotSync 操作を実行するときに、実際にリストが呼び出すコンジットを決定するために、リストを使用します。コンジット マネージャはすべての登録されたコンジットを調べます。コンジット マネージャはコンジットがどのように登録されたのか(通常の登録またはフォルダ-ベース)を区別しませんが、コンジットが誰のために登録されたのかを調べます。システム登録コンジットとユーザ登録コンジットが同じ作成者 ID を持つ場合、コンジット マネージャはユーザ登録コンジットのみをコンジットのリストに載せます。

::NOTE
:::ユーザ登録コンジットは常に、同じ作成者 ID を持つシステム登録コンジットに対して優先されます。

{{goto Table 6.1,表 6.1}} は、コンジット マネージャがユーザ登録コンジットと通知機能のリストと、システム登録コンジットと通知機能のリストを調和させるとき、コンジット マネージャは何を比較するのかを示しています。

{{anchor Table 6.1}}
'''表 6.1 コンジットマネージャはどのようにユーザ登録コンジットと通知機能 対 システム登録コンジットと通知機能を調和させるか'''
,'''2 つは何のためのものか''','''ユーザ登録がシステム登録に対して優先されるのは、...'''
,同期コンジット,同じ作成者 ID を持つ
,インストール コンジット,"同じ登録されたファイル拡張子を持つ({{goto Running Install Conduit,「インストール コンジットの実行」|Introduction to Conduit Development601/7}}を参照してください。)"
,バックアップ コンジット,常に。Windows ユーザごとにただ 1 つのバックアップ コンジットのみを実行されることができるため。
,通知機能,同じパスとファイル名を持つ

{{goto Figure 6.1,図 6.1}} は、コンジット マネージャ({{goto 注1,注1}})がどのコンジットと通知機能をリストに載せるかをどのように決定するのかの例を示しています。

{{anchor Figure 6.1}}
'''図 6.1 例: ユーザ登録コンジットと通知機能をシステム登録コンジットと通知機能に対して優先させる'''

{{img intro_registeringa.gif,style='width:624px;height:260px;'}}

システムのためのコンジットまたは通知機能の登録は、それらに対応する登録されたコンジットまたは通知機能をまだ持っていないすべての Windows ユーザのために登録を行います。これは、システム上のすべての Windows ユーザのために、各 Windows ユーザがインストーラを実行することなしに、インストーラがコンジットまたは通知機能を登録することを可能にします。これはまた、各 Windows ユーザが異なるコンジットと通知機能のセットを登録することも可能にします。しかしながら、ある Windows ユーザ ログイン内で作成されたすべての HotSync ユーザは同じコンジットと通知機能のセットを共有します(各 HotSync ユーザはこれらのコンジットを異なるようにコンフィグレーションできますが)。HotSync ユーザと Windows ユーザの違いについての更なる情報は、{{goto Support for Multiple Users,「マルチ ユーザのサポート」|Introduction to Conduit Development601/5}} を参照してください。


!!{{anchor Resolving Conduit Conflicts}}コンジット衝突の解決 {{goto top,^TOP^}}

HotSync プロセスは、HotSync 操作の間にただ 1 つのコンジットのみがあるアプリケーションのデータと同期をとることができるという原則に基づきます; そうでなければ、同じ HotSync 操作の中の同じデータと同期をとる 2 番目のコンジットは、データベースとレコードの変更フラグの状態を信用することができません。コンジット登録はこのシチュエーションを防ごうと試みます。

通常のコンジット登録は、現在の Windows ユーザのために登録されているユーザ コンジットと同じ作成者 ID を持つ 2 番目のユーザ コンジットを登録することを許可しません; システムのために 2 つのシステム登録コンジットを登録しようとする場合も同様です。コンジット マネージャはそのような二重登録を防ぎ、2 番目のコンジットを同じ作成者 ID を使って通常通りの登録をしようとするとエラーを返します。コンジット マネージャは、1 つのコンジットは現在の Windows ユーザのために登録され、かつ、もう 1 つのコンジットはシステムのために登録される場合にのみ、同じ作成者 ID を持つ 2 つのコンジットを登録することを許可します。{{goto User- and System-registered Conduits and Notifiers,「ユーザ登録コンジットと通知機能と、システム登録コンジットと通知機能」}} で説明されているように、ユーザ登録コンジットは常に優先され、そのため、相互関係にあるユーザ登録コンジットとシステム登録コンジットは決して衝突しません。

しかしながら、あるフォルダ登録コンジットが、もう 1 つのフォルダ登録コンジットまたは通常通りに登録されたコンジットと同じ作成者 ID を持つことはあり得ます。その理由は、コンジット マネージャは、すべての登録されたコンジットのリストを作成するときにフォルダ登録コンジットが呼び出されるまで、フォルダ登録コンジットを検証しないからです。コンジット マネージャは、以下のことが起こるといつでも、このリストを作成します。

*ユーザが HotSync 操作を開始する。
*ユーザまたは HotSync マネージャ API が以下のいずれかを行う。
**HotSync マネージャを開始または再開するか、コンジットのリストのリフレッシュを引き起こす。
**HotSync マネージャの'''Custom''' メニュー項目を選択する。
*インストーラまたはアプリケーションがコンジット マネージャを呼び出して以下のことを行う。
**通常通りのコンジットの登録。
**使用不可のフォルダ登録コンジットを使用可能にする。
**登録されたコンジットのリストを返す。

これらのイベントのいずれも、コンジット マネージャが同じ作成者 ID を持つ 2 つ以上のコンジットを発見するという結果を引き起こす可能性があります。これが起こると、コンジット マネージャ API はエラーを返します。

HotSync マネージャが、与えられた HotSync ユーザとコンジット作成者 ID に対して、初めてコンジット マネージャからのエラーを受け取ると、HotSync マネージャは {{goto Figure 6.2,図 6.2}} のような '''Choose Conduit''' ダイアログ ボックスを表示します。

{{anchor Figure 6.2}}
'''図 6.2 HotSync マネージャが行うコンジット衝突を解決するためのユーザへの問い合わせ'''

{{img conflictingconduits.jpg,style='width:423px;height:308px;'}}

ユーザが実行するコンジットを選択して '''OK''' をクリックすると、HotSync マネージャは、この現在の HotSync ユーザのための設定を、デスクトップ上に保存されているユーザ データに保存します。これにより、HotSync マネージャは同じ衝突を解決するために再度ユーザに問い合わせをすることはありません。リスト上の他のすべてのコンジット衝突は結果的に登録されず、その結果、HotSync マネージャはそれらを実行したり、'''Custom''' ダイアログ ボックスの中に表示したりしません。

しかしながら、ユーザが '''Ignore''' をクリックした場合、衝突は未解決のままです。HotSync マネージャはすべてのコンジット衝突をコンジットを実行するためのコンジット リストから削除し({{goto 注2,注2}})、ユーザが HotSync マネージャの '''Custom''' メニュー項目を選択するときにそれらをリストに載せません。HotSync マネージャが、登録されたコンジットのリストを作成するために、コンジット マネージャに問い合わせをするたびに、前に説明したように HotSync マネージャはユーザに衝突を解決してもらうために再度 '''Choose Conduit''' ダイアログ ボックスを表示します。

HotSync マネージャは '''Choose Conduit''' ダイアログ ボックスを最後の手段として提供します。PalmSource は、作成したフォルダ-ベース コンジットを {{span style='color:blue;font-family:monospace;',Conduits}} フォルダにコピーする前に、同じ作成者 ID を持つコンジットがすでに登録されていないかをチェックすることを推奨します。登録されている場合、ユーザに存在しているコンジットの登録を解除するかどうか選択してもらうために問い合わせを行い、それにより、作成したコンジットを {{span style='color:blue;font-family:monospace;',Conduits}} フォルダに追加するか、追加せずに終了します。作成した製品に存在する潜在的なコンジット衝突を処理することは、HotSync マネージャの一般的な '''Choose Conduit''' ダイアログ ボックスを当てにするよりも、ユーザにとって意味があります。

----
{{anchor 注1}}
注1. ここでは、「コンジット マネージャ」はインストール コンジット マネージャと通知機能インストール マネージャを含みます。
{{anchor 注2}}
注2. 衝突しているコンジットは実行されないため、衝突している作成者 ID を持つバックアップ コンジットが通常通りハンドヘルド上のデータベースをバックアップすることができます。それゆえ、データベースは、衝突により同期されないにもかかわらず、少なくともバックアップはされます。
{{div_end}}

{{div_begin "style='border-top-style:solid;border-top-width:1px;border-top-color:silver;'"}}
[[← 5 章に戻る|Introduction to Conduit Development601/5]] [[↑トップへ|Introduction to Conduit Development601]] [[7 章に進む →|Introduction to Conduit Development601/7]]
{{div_end}}