4D Server はマルチユーザ、クロスプラットフォームデータに対応する4D用のアプリケーションサーバです。
4D Serverではクライアント/サーバアーキテクチャに基づいたマルチユーザデータベースおよびカスタムアプリケーションを作成し、使用することができま す。プラットフォームに依存しないクライアント/サーバアーキテクチャにより、Windows およびMacintosh 上の4Dからデータースをシームレスに管理できます。4D Server には大規模システムに向けて、プロフェッショナル仕様の開発用ツール、拡張性、データ保護機能、コネクティビティオプションが用意されています。
4D Server のアーキテクチャは完全に統合されており、クライアントとサーバの両方で1つの4Dプリケーションを使用します。4D Server により、開発者はフロントエンドアプリケーションとバックエンドアプリケーションを個別に設計する手間から解放されます。それだけではありません。4D Server は "管理不要" のサーバです。インストールや使用、管理が容易であり、非常にコスト効率の高いサーバです。
ローエンドのファイル共有ベースのシステムと複雑なSQL ベースのRDBMS との中間に位置するもの、それが4D Server です。4D Server アプリケーションは既存の大規模データベース (Oracle、Sybase、ODBC 対応サーバ等) とスムーズに連携させることができます。4D Server は、あらゆる規模の企業のワークグループから派生するニーズに対応します。
4D Server では、フロントエンドアプリケーションとバックエンドアプリケーションは同じものです。クライアントソフトウェアとサーバアプリケーションは、4Dという1 つの製品が2つの役割を果たしています。4D Server アプリケーション自体は、4D Server と4Dリモートモードという2 つの部分に分かれており、それぞれがクライアント/サーバアーキテクチャにおける構成要素となります。
4D Server 部分は、サーバマシンに常駐し、サーバ上のデータベースを保存し、管理します。エンドユーザは自分自身が使用しているマシン (クライアント) からこのデータベースを利用します。
各クライアントマシンには、4Dアプリケーションが常駐し、ローカルモードまたはリモートモードで使用します。ローカルモードでは、データベースまたはユーザのマシンのローカルに保存されている4D アプリケーションと連動します。リモートモードでは、ユーザはサーバ上のデータベースにアクセスし、データの追加、レポートの作成、データベースデザインの変更等のデータベース作業を行います。4D のローカルモードで行う作業はすべて、4D Server と4D リモートモードを使用して行うことができます。
クライアント/サーバ環境で操作するために、他のミドルウェアや開発は不要です。4Dと4D Server では、同一のインタフェースツール、言語、情報管理システムが使用されます。
1 つのプラットフォーム (Windows あるいはMacintosh) 用に作成されたローカルシングルユーザ用アプリケーションはすべて、ワークグループ対応のクライアント/サーバソリューションへと簡単に拡張できます。また逆に、4D Server で作成されたアプリケーションを自動的にローカルモードモードのスタンドアロンアプリケーションに変えることも可能です。
4D Server は、ユーザに重点を置いた4D の特長を受け継ぎました。この結果、4D Server は完全なプラグアンドプレイシステム(PnP)となっています。
4D Server の管理ウインドウ
- わかりやすくグラフィカルなオンライン一元管理情報 : 4D Server の管理ウインドウには、重要な情報が自動的に表示されます。4D Server に割り当てられているメモリ合計、データキャッシュ、接続中のユーザ数と名前、プロセス数とプロセスのステータス、バックアップとリクエストのモニターリ ング、すべてのサーバの稼働状況等の情報です。
- システム自動構成とスケーラビリティ: 4D Server は、システムの再構成や再設計を行わなくても、新しいプロトコル、クライアント、プラグインを追加できるように設計されています。
- クライアントワークステーションに対するダイナミックな自動更新とバージョン管理 : データベースの変更や、プラグインまたはコンポーネントの追加、削除、修正があった場合には、接続されているすべての4D マシンがダイナミックに自動更新されます。更に、カスタムクライアントサーバアプリケーションを構築した場合は、4D Server アプリケーションが更新される際、実行可能な4Dクライアントアプリケーションの新しいバージョンを自動的にダウンロードすることが可能です。
- 標準のTCP/IP プロトコルを使用した非同期自動接続: 4D Server と4D は、クライアントおよびサーバのプラットフォームに関わらず、TCP/IP プロトコルを使用して透過的に通信を行います。あらゆるオペレーティングシステムにおいて、TCP/IP プロトコルが導入されるようになったため、4D Server でこのプロトコルを使用する際にその他のインストール作業は必要ありません。
- 4D SQL と HTTP 接続の同時セッションおよび状況管理: 4D Server は、テーブル / プロセス / ユーザの組み合わせごとに現在の作業環境を自動的に作成し、管理します。このセッションベースのアーキテクチャにより、ユーザごとの各プロセスでは、デー タを個別かつ同時に操作することができます。設定を行えば、4D Server の SQL サーバは自動的に内部および外部のSQL クエリを処理します。4D Server のHTTP サーバは、HTTP リクエストおよびSOAP リクエストに応答します。
- 自動レコードロック機能: 4D Server では、レコードのロックや解放が自動的に行われ、"使用中" のレコードの変更に関わるトラブルを回避することができます。また、レコードロック機能により、ページロックやファイルロックに関連する問題も解消されます。
- 統合ユーザインタフェースメッセージシステム: デスクトップの領域から誕生した4D Server は、最新の統合開発環境で提供されているユーザインタフェースをすべて備えています。例えば、接続解除やバックアップ等をスケジュール管理するなど、管理側の作業をクライアントに通知することができます。
- 自動起動、自動終了メソッド: 4D Server では、特定のイベントに応じて5 つのサーバデータベースメソッドが自動的に起動されます。この5 つのメソッドとは、On Server Startup、On Server Shutdown、On Server Open Connection、On Server Close Connection、On Web Connection です。例えばOn Server Startupデータベースメソッドはセッション全般で必要となるオブジェクトを自動的に初期化し、ロードします。
4D Server には、4D の機能に加えて次の機能があります。
- マルチユーザデータ管理: 複数のユーザがデータベース作業を同時に実行できます。複数のユーザが同じファイルあるいは異なるファイルのレコードを追加、変更、削除、検索、ソート、印刷することが可能です。データの整合性は、内蔵のレコードロックシステムによって保持されます。
- マルチユーザ開発: 複数のユーザがデータベースの開発や設計を同時に行えます。例えば、同時に複数ユーザがファイル定義の編集、およびレイアウト、スクリプト、メソッドの作 成、変更することができます。データベースデザインの整合性は、内蔵のオブジェクトロックシステムによって保持されます。
- プラットフォームに依存しないクライアント / サーバアーキテクチャ: このアーキテクチャにより、Macintosh およびWindows 上の4Dクライアントに対するデータベースパフォーマンスはシームレスに管理されます。また、異なるプラットフォーム上での同時マルチ開発や、異種混合 ハードウェア環境で動作する4Dクライアントにより入力、変更されるすべてのデータのインタフェースも管理されます。
- Windows および Mac OS ベースの4D プラグインアーキテクチャ: Windows 版およびMac OS 4D Server では、サーバマシンにWindows ベースおよびMacintosh ベースの4D プラグインをインストールできます。このアーキテクチャにより、プラットフォームに依存しない4D プラグインの配布を簡単に行えます。クライアントのプラットフォームが何であれ、4D Server および4D によりプラグインはスムーズに処理されます。
- ビルトイン HTTP サーバ: 4D ローカルモードと同様に、4D Server および 4D リモートモードにはHTTP エンジンが組み込まれており、Web 上に4D データベースを公開することができます。データベースはWeb 上に直接公開されるので、データベースシステム、Web サイト、この両者の間のCGI インタフェースを開発する必要はありません。データベースがWeb サイトなのです。また、あらゆるリモート4D マシンをWebサーバへ変換することもできます。組み込みの4D Web サーバおよび4D の詳細については、4D Language ReferenceマニュアルのWebサーバ概要の項を参照してください。
- SSLによる接続保護 (Secured Socket Layer) : 4D Server の接続を暗号化することができます。実際、"クラシック"なクライアント/サーバアーキテクチャはSSLの暗号化サービスを使用できます。詳細はクライアント/サーバ接続の暗号化を参照してください。
- トリガ: トリガはテーブルに結び付けられたメソッドです。開発者はトリガを呼び出しません。トリガはレコードが操作 (追加、削除、更新) されるたびに、自動で4Dデータベースエンジンが起動します。4D Serverでは、トリガはサーバマシン上で実行されます。4DであろうとODBCで接続するアプリケーションであろうと、すべてのクライアントはトリガ によりデータベースルールが強制されます。4Dのトリガに関する詳細は、4D Language Referenceマニュアルのを参照してください。
- ストアドプロシージャ: 4Dメソッドを作成して、それがサーバマシン上あるいは複数の指定したクライアント上の独立したプロセスで実行されるよう設定できます。クライアント/ サーバの業界用語でいえばこの機能はストアドプロシージャと呼ばれます。にもかかわらず、4D Serverはストアドプロシージャのコンセプトの先を行くアーキテクチャを提供しています。4D Serverにおいて、ストアドプロシージャはカスタムサーバプロセス (またはクライアントプロセス、後述参照) であり、サーバあるいはクライアントの他の実行中のプロセスとは非同期かつ独立してコードを実行します。通常のクライアント/サーバアーキテクチャでは、 ストアドプロシージャは実行して結果を返します (同期的にあるいは非同期的に)。4D Serverでは、クライアント/サーバセッション中を通して実行されるストアドプロシージャを開始し、クライアントから送信されるメッセージに応答させ ることができます。同時にクライアントと協働しないストアドプロシージャを走らせて、4DコネクティビティプラグインやODBCを使用してSQLベースの サーバや他の4D Serverとデータの同期を行うこともできます。同時に起動できるストアドプロシージャの数に制限はありません (ハードウェアとメモリの制限を除く)。4D Serverのストアドプロシージャは独自のプロセス内で実行され、他のプロセスと同様個別のデータベースコンテキスト (カレントセレクションなど) を保守できます。さらに4Dランゲージは、ストアドプロシージャのプロセス変数 (BLOB変数を含む) をクライアントプロセスから読み書きするコマンドを提供します。これによりクライアントとストアドプロシージャ間の洗練された通信が可能になります。実際 ストアドプロシージャを使用して、新しいカスタムサービスを4D Serverに追加できます。詳細はストアドプロシージャを参照してください。
- クライアント上で実行されるストアドプロシージャ: 4D Serverでは、クライアントやサーバから、1つあるいは複数の他のクライアント上でストアドプロシージャを実行できます。これによりワークロードをクライアントやサーバ間で分散したり、クライアント間の通信を行うようなアプリケーションをビルドできます。詳細はストアドプロシージャを参照してください。
- サーバパス: ユーザのパスワードと一緒に、サーバデータベースのパスを保存できます。この機能を使用して、ユーザは.4DLinkドキュメントをダブルクリックしてサーバ上のデータベースに接続できます。詳細は4D Serverデータベースへの接続を参照してください。
- サービスとして登録: Windowsでは4D Serverをサービスとして起動できます。
- 組み込みのバックアップシステム: 4D Serverは完全なデータベースバックアップおよび復元モジュールを持っています。このモジュールを使用して、アプリケーションを終了しなくても、動作 中にデータベースをバックアップできます。バックアップは手動あるいは特定の間隔で自動で起動できます。問題が発生した場合、データベースの復元と再起動 も自動で開始できます。
- 物理ミラーによるバックアップ: 重要なアプリケーションでは、物理ミラーによるバックアップを設定できます。これにより動作中のデータベースに問題が発生した場合でも即座に再起動が可能です。
- コネクティビティプラグイン: 4D ODBC Proのような4Dコネクティビティプラグインを使用すれば、4D Serverや4Dから直接メインフレームやORACLEなど他のODBCデータソースに接続できます。これらのデータベースとインタラクティブに情報を 共有できます。さらに4Dは4D Server ODBC Driverを提供していて、ODBCクライアントから4D Serverに接続することができます。