4Dを使用して、クライアントの自動更新をサポートするクロスプラットフォームなクライアント/サーバーアプリケーションをビルドできます。この設定はアプリケーションビルドダイアログのクライアント/サーバーページで行います。
クライアント/サーバーアプリケーションとはダブルクリックで起動可能なサーバーアプリケーションと、そのサーバーに接続可能な専用クライアントアプリケーションの組み合わせを意味します。
クライアント/サーバーアプリケーションをビルドするには以下の3つの項目が必要です:
- コンパイルされた4Dストラクチャー
- 4D Serverアプリケーション
- 4D Volume Desktopアプリケーション (Mac OS / Windows)
ビ ルドを行うと、クライアント/サーバーアプリケーションは2つのカスタマイズされたパーツ (サーバーと、各クライアントにインストールするクライアント) で構成されます。比較のために記載すると、ビルドされていない標準の展開時には4D Serverアプリケーション、ストラクチャーファイル、データファイル、リモートモードとして使用する4Dアプリケーションが必要です。
クライアント/サーバーアプリケーションは起動や接続処理が簡易になるようカスタマイズされています:
- サーバーを起動するには、サーバーアプリケーションをダブルクリックします。ストラクチャーを選択する必要はありません。
- ク ライアントを起動するには、クライアントアプリケーションをダブルクリックします。するとサーバーアプリケーションに直接接続します。接続ダイアログで サーバーを選択する必要はありません。接続に失敗した場合、ユーザーは標準の接続ダイアログでサーバーアドレスを入力できます。
クライアントアプリケーション起動時にOption (Mac OS) や Alt (Windows) キーを押しておくと、標準接続ダイアログを強制的に表示させられます。
サーバーに対応するクライアントのみが接続を行えます。標準の4Dアプリケーションを使用してサーバーに接続を試みると、接続は拒否されエラーが返されます。
さらにクライアント/サーバーアプリケーションではクライアント側をネットワーク越しに自動で更新できるよう設定を行うことができます。この点についてはサーバーアプリケーション内部のクライアントアプリケーションをコピーを参照してください。
また、ランゲージコマンドのシーケンスを使用することによって、サーバーパートのアップデートを自動化することも可能です(アプリケーションの仕上げと展開 を参照して下さい)。
実行可能クライアント/サーバーアプリケーションビルド中に、4Dは4D Serverフォルダーの内容をServerサブフォルダーに、4D Volume Desktopフォルダーの内容をClientサブフォルダーにコピーします。元の4D Serverと4D Volume Desktopの内容を必要に応じてカスタマイズできます。
例えば以下のようなことが可能です:
- 特定の言語に対応した4D Serverをインストールする
- PlugInsフォルダーにプラグインを追加する
注: Mac OSでは4D Serverがパッケージとして提供されます。内容を見るためにはまず (Control+clickしてメニューから選択し) パッケージを開かなくてはなりません。
このエリアのオプションを使用して、新しいバージョンのアプリケーションがビルドされた際の、ネットワーク越しのクライアント/サーバーアプリケーションのクライアント部分更新メカニズムを設定できます。
- Windows/Macintoshクライアントアプリケーションの自動更新を許可する: これらのオプションを選択すると、ネットワーク越しの自動クライアント更新を有効にすることができます。
クロスプラットフォームなクライアントアプリケーションを作成するには、ビルドを行うのとは別のプラットフォーム用の4D Volume Desktopアプリケーションを選択する必要があります。例えばWindows上で[...]ボタンをクリックし、Mac OS用の4D Volume Desktop.appフォルダーを選択します。
クライアントアプリケーションの更新は、新しいバージョンの4D Serverを使用する場合になどに必要となります。
ストラクチャーの更新は常に自動で各クライアントマシンに適用される点に留意してください。
自動更新機能を使用すれば、手作業で各クライアントマシンに新バージョンの4Dをインストールする手間を省くことができます。
この設定を有効にしたサーバーが更新されると、各クライアントマシン上に自動で通知が行われます。これは以下のように動作します: アプリケーションビルダーを使用して新しいバージョンのクライアント/サーバーアプリケーションをビルドする際、新しいクライアントはApplicationName Server内のUpgrade4DClientフォルダーに圧縮して格納されます (Mac OSでは、これらのフォルダーがサーバーパッケージ内に配置されます)。クロスプラットフォームクライアントアプリケーションを生成する処理を行った場合、各プラットフォーム用に .4darchive という更新ファイルが含められます:

注: 同時に生成されるarchive.mac と archive.win ファイルは、v13のアプリケーションをv14にアップグレードするために使用されます。BUILD APPLICATION コマンドに対してアプリケーションビルド設定ファイル XML キーを使用することで、これらのファイルの自動生成を無効化する事ができます。
クライアントアプリケーション更新通知を行うために、古いサーバーアプリケーションを新しいバージョンで置き換えて起動します。残りの処理は自動で行われます。
クライアント側では古いバージョンのクライアントが更新されたサーバーに接続を試みると、新しいバージョンが利用可能な旨を表示するダイアログがクライアントマシン上に表示されます。ユーザーはダイアログを受け入れるかキャンセルできます。
- ユーザーがOKをクリックすると、新バージョンがネットワーク越しにクライアントマシンにダウンロードされます。ダウンロードが完了すると古いクライアントアプリケーションが閉じられて、新しいバージョンが起動しサーバーに接続します。古いバージョンはゴミ箱に移動されます。
- ユーザーがキャンセルをクリックすると、更新はキャンセルされます。古いバージョンのクライアントの接続がプロジェクトXMLで許可された番号の範囲外である場合 (後述)、アプリケーションは閉じられて、接続を行うことはできません。そうでなければ接続が行われます。
更新のダウンロードをキャンセルさせたくない場合、例えば新しいメジャーバージョンの4D Serverを使用するような場合 (この場合古い4Dが4D Serverに接続するこてゃ不可能です)、新しいバージョンのクライアントアプリケーションを各クライアントマシンに必ずインストールしなければなりません。
更新を強制するためには、サーバーアプリケーションと互換性のあるバージョン番号の範囲からクライアントアプリケーションの現在のバージョン番号を除外します。このようにすれば更新メカニズムは更新されていないクライアントからの接続を拒否します。例えばクライアントサーバーアプリケーションの新しいバージョン番号がの6の場合、バージョン番号が5以下のクライアントアプリケーションを許可しないようにできます。
現在のバージョン番号はアプリケーションビルドダイアログのクライアント/サーバーページで設定できます (前述)。接続を許可するバージョン番号の範囲はプロジェクトXMLファイルで指定します。この点に関する詳細はパラメーターのXMLキーを参照してください。
クライアントアプリケーションの更新を実行できなかった場合、クライアントマシンには以下のメッセージが表示されます: "クライアントアプリケーションの更新に失敗しました。アプリケーションは終了します。"
このエラーが発生する原因は複数ありえます。このエラーが表示されるような場合はまずいかの点をチェックしてみてください:
- パス名: アプリケーションビルドダイアログやXMLキー (例えば ClientMacFolderToWin) で指定されたパス名の有効性をチェックしてください。特に4D Volume Desktopへのパスをチェックしてください。
- 読み書き権限: クライアントマシン上でカレントユーザーがクライアントアプリケーションを更新する書き込みアクセス権を持っているか確認してください。
クライアント/サーバーアプリケーションをビルドすると、保存先フォルダー内にClient Server executableという名前の新しいフォルダーが作成されているはずです。このフォルダーにはさらに2つのサブフォルダー、ApplicationName ClientとApplicationName Serverがあります:

注: エラーが発生した場合これらのフォルダーは作成されません。そのような場合はエラーの原因を特定するためにログファイル (ログファイル参照)の内容を調べてください。
ApplicationName Client フォルダーにはアプリケーションビルダーが実行されたプラットフォームに対応するクライアントアプリケーションがコピーされます。このフォルダーを各クライアントにインストールします。ApplicationName Serverフォルダーにはサーバーアプリケーションがコピーされます。
これらのフォルダーの内容はカレントのプラットフォームにより異なります:
- Windowsでは各フォルダーにApplicationName Client.exe (クライアント用) あるいはApplicationName Server.exe (サーバー用) という名前の実行可能ファイル、およびそれぞれに対応する.rsrファイルが作成されます。さらにこれらのフォルダーにはアプリケーション実行のために必要な様々なファイルやフォルダー、および元の4D Serverや4D Volume Desktopに追加されたカスタマイズ項目がコピーされます。
- Mac OSでは各フォルダーにApplicationName Client (クライアント用) とApplicationName Server (サーバー用) という名前のアプリケーションパッケージが作成されます。各パッケージには動作に必要なすべてのファイルが含まれます。Mac OSではアプリケーションを実行するためにパッケージをダブルクリックします。

注: ビルドされたMac OSパッケージの内容を表示するにはアイコンをControl+クリックして、"パッケージの内容を表示"を選択します。
"クライアントの自動更新を許可する"オプションを選択している場合、ApplicationName Serverフォルダー/パッケージには追加でUpgrade4DClientサブフォルダーが作成されます。このフォルダーにはクライアントアプリケーションが圧縮されて格納されます。このファイルは自動クライアントアプリケーション更新時に使用されます。
サーバーやクライアントをWebサーバーとして使用する場合、Webサーバーが使用するファイルを特定の場所に配置しなければなりません:
- cert.pem と key.pem ファイル (オプション): これらのファイルはSSL接続で使用されます。
- デフォルトWebルートフォルダー (WebFolder)
Windows
- サーバーアプリケーション: これらの項目はサーバーアプリケーションフォルダー内にインストールします: Client Server executable\ApplicationName Server\Server Database サブフォルダー
- クライアントアプリケーション: これらの項目はクライアントアプリケーションフォルダー内にインストールします: Client Server executable\ApplicationName Client サブフォルダー
Mac OS
- サーバーアプリケーション: これらの項目はApplicationName Serverソフトウェアパッケージと同階層にインストールします。
- クライアントアプリケーション: これらの項目はApplicationName Clientソフトウェアパッケージと同階層にインストールします。