4D v16.3

クライアント/サーバーページ

ホーム

 
4D v16.3
クライアント/サーバーページ

クライアント/サーバーページ  


 

 

4Dを使用して、クライアントの自動更新をサポートするクロスプラットフォームなクライアント/サーバーアプリケーションをビルドできます。この設定はアプリケーションビルドダイアログのクライアント/サーバーページで行います。

クライアント/サーバーアプリケーションとはダブルクリックで起動可能なサーバーアプリケーションと、そのサーバーに接続可能な専用クライアントアプリケーションの組み合わせを意味します。

クライアント/サーバーアプリケーションをビルドするには以下の3つの項目が必要です:

  • コンパイルされた4Dストラクチャー
  • 4D Serverアプリケーション
  • 4D Volume Desktopアプリケーション (Mac OS / Windows)

ビ ルドを行うと、クライアント/サーバーアプリケーションは2つのカスタマイズされたパーツ (サーバーと、各クライアントにインストールするクライアント) で構成されます。比較のために記載すると、ビルドされていない標準の展開時には4D Serverアプリケーション、ストラクチャーファイル、データファイル、リモートモードとして使用する4Dアプリケーションが必要です。

クライアント/サーバーアプリケーションは起動や接続処理が簡易になるようカスタマイズされています:

  • サーバーを起動するには、サーバーアプリケーションをダブルクリックします。ストラクチャーを選択する必要はありません。
  • クライアントを起動するには、クライアントアプリケーションをダブルクリックします。するとサーバーアプリケーションに直接接続します。接続ダイアログで サーバーを選択する必要はありません。クライアントとサーバーが同じサブネットワーク上に有る場合には、クライアントはサーバーをその名前で指定します。それ以外の場合にはIPアドレスを使用して指定します。IPアドレスの指定は buildapp.xml ファイル内のIPAddressXMLキーを使用して設定されます(以下の章を参照して下さい)。接続が失敗した場合、特定の代替機構を実装する事ができます。これについてはクライアントアプリケーションによる接続の管理の章で説明されています。
    クライアントアプリケーション起動時にOption (Mac OS) や Alt (Windows) キーを押しておくと、標準接続ダイアログを強制的に表示させられます。
    サーバーに対応するクライアントのみが接続を行えます。標準の4Dアプリケーションを使用してサーバーに接続を試みると、接続は拒否されエラーが返されます。

さらにクライアント/サーバーアプリケーションではクライアント側をネットワーク越しに自動で更新できるよう設定を行うことができます。この点についてはサーバーアプリケーション内部のクライアントアプリケーションをコピーを参照してください。

また、ランゲージコマンドのシーケンスを使用することによって、サーバーパートのアップデートを自動化することも可能です(サーバーまたはシングルユーザー向けアプリの自動アップデート を参照して下さい)。

  • サーバーアプリケーションをビルド: ビルドフェーズでサーバー部分をビルドするためにはこのオプションを選択します。使用する4D Serverアプリケーションの場所を選択しなければなりません。この4D Serverはビルドを行うプラットフォームに対応していなければなりません (つまり、例えばWindows用のサーバーをビルドするためにはWindows上でビルドを実行する必要があります)。
    4D Serverフォルダーを選択するには[...]ボタンをクリックします。Mac OSでは4D Serverパッケージを選択します。
  • 現在のバージョン: 生成されるアプリケーションのバージョン番号を指定するために使用されます。このバージョン番号をもとに、クライアントアプリケーションからの接続を受け 入れたり拒否したりできるようになります。クライアントとサーバーアプリケーションで互換性のある番号の範囲はXMLで設定します (パラメーターのXMLキー 参照)。
  • クライアントアプリケーションをビルド: ビルドフェーズでクライアント部分をビルドするためにはこのオプションを選択します。使用する 4D Volume Desktopアプリケーションの場所を選択しなければなりません。この 4D Volume Desktopはビルドを行うプラットフォームに対応していなければなりません。他方のプラットフォームのクライアントアプリケーションをビルドするため には、そのプラットフォームで実行する4Dアプリケーションを使用して追加のビルド処理を行わなければなりません。これはクライアントアプリケーションの 最初のバージョンにのみ必要なものです。それ以降のアップデートは同じプラットフォーム上であれば自動アップデート機構を使用すれば直接管理する事ができ るからです。この点については後述します。
    4D Volume Desktopフォルダーを選択するには[...]ボタンをクリックします。Mac OSでは4D Volume Desktopパッケージを選択します。

注: 4D v15以降、4D Serverと4D Volume Desktopのバージョン番号は、4D Developer Editionのバージョン番号と合致する必要があります。例えば、4D Developer v15.4を使用している場合、4D Server v15.4および4D Volume Desktop v15.4を選択する必要があります。

クライアントアプリに、特定のアドレスを使用して(サブネットワーク上にサーバー名が公開されていない)サーバーに接続したい場合、 buildapp.xmlファイル内のWP Import documentXMLキーを使用する必要があります。この点についてのより詳細な情報については、BUILD APPLICATIONコマンドの詳細を参照して下さい。接続失敗時の特定の機構を実装することもできます。提案される別のシナリオについては、クライアントアプリケーションによる接続の管理の章で説明されています。

実行可能クライアント/サーバーアプリケーションビルド中に、4Dは4D Serverフォルダーの内容をServerサブフォルダーに、4D Volume Desktopフォルダーの内容をClientサブフォルダーにコピーします。元の4D Serverと4D Volume Desktopの内容を必要に応じてカスタマイズできます。

例えば以下のようなことが可能です:

  • 特定の言語に対応した4D Serverをインストールする
  • PlugInsフォルダーにプラグインを追加する

: Mac OSでは4D Serverがパッケージとして提供されます。内容を見るためにはまず (Control+clickしてメニューから選択し) パッケージを開かなくてはなりません。

このオプションでは、組み込みアプリとローカルなデータファイルとのリンクモードを選択する事ができます。二種類のリンクモードが選択可能です。どちらも一長一短なので、必要に応じて適切なモードを選択して下さい。

注: このオプションはアプリケーション配布では新しいアーキテクチャーを使用互換性オプションがチェックされている場合にのみ選択可能です(互換性ページの章を参照して下さい)。

  • アプリケーション名を使用(デフォルト)
    このモードでは、4Dアプリケーションはストラクチャーファイルに対応する、最近開かれたデータファイルを開きます。この柔軟で直感的なモードではアプリ ケーションパッケージをディスク上で自由に移動させる事ができます。このモードはアプリケーションを複製したい場合を除き、一般的には組み込みアプリに対して使用されるべきです。
  • アプリケーションパスを使用
    このモードでは、組み込み4Dアプリケーションはアプリケーションの lastDataPath.xml ファイルを解析し、アプリケーションのフルパスに合致する、"executablePath"属性を持ったデータファイルを開こうとします。そのようなエントリーが見つかった場合、それに対応する("dataFilePath"属性で定義される)データファイルが開かれます。それ以外の場合、最後に開かれたデータファイルが開かれます(デフォルトモード)。
    このモードでは、データファイルへのリンクを保ったまま組み込みアプリを複製する事ができま す。しかしながら、このオプションを使用している場合、アプリケーションパッケージをディスクに移動すると、アプリケーションパスは"executablePath"属性と合致しなくなるため、ユーザーはデータファイルの場所を指定を求められます(ユーザーがデータファイルを選択すると、lastDataPath.xmlファイルはそれに基づいて更新されます)。

データリンクモードについての詳細な情報については、データリンクモードを設定するの章を参照して下さい。

このエリアのオプションを使用して、新しいバージョンのアプリケーションがビルドされた際の、ネットワーク越しのクライアント/サーバーアプリケーションのクライアント部分更新メカニズムを設定できます。

  • Windows/Macintoshクライアントアプリケーションの自動更新を許可する: これらのオプションを選択すると、ネットワーク越しの自動クライアント更新を有効にすることができます。
    クロスプラットフォームなクライアントアプリケーションを作成するには、ビルドを行うのとは別のプラットフォーム用の4D Volume Desktopアプリケーションを選択する必要があります。例えばWindows上で[...]ボタンをクリックし、Mac OS用の4D Volume Desktop.appフォルダーを選択します。

クライアントアプリケーションの更新は、新しいバージョンの4D Serverを使用する場合になどに必要となります。

ストラクチャーの更新は常に自動で各クライアントマシンに適用される点に留意してください。

自動更新機能を使用すれば、手作業で各クライアントマシンに新バージョンの4Dをインストールする手間を省くことができます。

この設定を有効にしたサーバーが更新されると、各クライアントマシン上に自動で通知が行われます。これは以下のように動作します: アプリケーションビルダーを使用して新しいバージョンのクライアント/サーバーアプリケーションをビルドする際、新しいクライアントはApplicationName Server内のUpgrade4DClientフォルダーに圧縮して格納されます (Mac OSでは、これらのフォルダーがサーバーパッケージ内に配置されます)。クロスプラットフォームクライアントアプリケーションを生成する処理を行った場合、各プラットフォーム用に .4darchive という更新ファイルが含められます:

注: 同時に生成されるarchive.macarchive.win ファイルは、v13のアプリケーションをv14にアップグレードするために使用されます。BUILD APPLICATION コマンドに対してBuildV13ClientUpgrades 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ソフトウェアパッケージと同階層にインストールします。

 
プロパティ 

プロダクト: 4D
テーマ: アプリケーションの仕上げと展開

 
履歴 

変更: 4D v15 R4

 
タグ 

4darchive, .4darchive

 
ARTICLE USAGE

デザインリファレンス ( 4D v16)
デザインリファレンス ( 4D v16.1)
デザインリファレンス ( 4D v16.3)