_logo.svg/500px-JADE_(programming_language)_logo.svg.png)
JADEは、ニュージーランドに拠点を置くJade Software Corporationが1996年に初めてリリースした独自のオブジェクト指向ソフトウェア開発および展開プラットフォーム製品です。 [1] [2] JADEは、JADEプログラミング言語、統合開発環境およびデバッガー、統合アプリケーションサーバー、およびオブジェクトデータベース管理システムで構成されています。
データベースサーバーからクライアントに至るまでシステムを1つの言語でコーディングできるようにするエンドツーエンドの開発環境として設計されており、 .NET Framework、[3] Java、C / C++、Webサービスなどの他の言語用のAPIも提供しています。
開発には無料の限定ライセンスが利用可能ですが、JADE プラットフォームを使用するにはプロセスごとに料金を支払う必要があります。
言語
構文的には、JADEはPascalと非常によく似ています。その構文はPascalから派生した言語Modula-2に基づいています。PascalやModula-2にはない革新性が含まれていますが、C#やJavaなどの他の最新のオブジェクト指向言語が持つ特定の機能が欠けています。[4]
JADE はLINC 4GLプログラムをインポートして実行することができ、当初はその中心的な役割を担っていました。
プログラミングモデル
データベース駆動型ソフトウェアの作成に使用される他の一般的なプログラミング言語と同様に、JADEは完全にオブジェクト指向です。JADEはオブジェクト指向プログラミングの最も重要な機能をすべて備えたように設計されていますが、メソッドや演算子のオーバーロードをサポートしておらず、Jade 2018まではパラメーター化されたコンストラクターがありませんでした。[4]
JADE のクラスは、スキーマにまとめられています。スキーマは、 Java パッケージや.NET の名前空間と同じ目的を果たしますが、階層構造を持ち、スーパースキーマからクラスを継承します。これは、モデル クラスを 1 つのスキーマに配置し、サブスキーマのモデル クラスの上にコントローラ クラスとビュー クラスを構築できるため、モデル - ビュー - コントローラ方式を使用してプログラミングする場合に特に便利です。
プログラム構造
JADE プログラムは、プログラマーが視覚的にクラスを作成し、そのプロパティとメソッドを定義できるユーザー インターフェイスを使用して開発されます。プログラマーは、大きなファイル内でメソッドを探す代わりに、編集したいメソッドを選択すると、その特定のメソッドのコードだけが表示されます。また、JADE では、プログラムのすべてのコードを一度にコンパイルするのではなく、メソッドが完成するとすぐに各メソッドが個別にコンパイルされるため、コードをすぐにチェックできます。
JADE アプリケーションのすべてのコードは、オブジェクト指向データベースに保存されます。これにより、データベースが同時実行制御を維持し、コードの各部分がデータベース内の個別のオブジェクトとなるため、変更対象のシステムが使用されていない限り、システムが稼働中かつオンラインの状態でシステムを再コーディングできる場合が多くあります。
特徴
JADE の主な目標は、データベース サーバー、アプリケーション サーバー、プレゼンテーション クライアントの 3 つの個別のアプリケーションを作成してから、それらの相互通信用のコードを作成するのではなく、開発者がエンドツーエンドで 1 つのアプリケーションを作成できるようにする、シームレスに統合されたプログラミング言語を作成することでした。
オブジェクトデータベース
JADE と他のオブジェクト指向プログラミング言語との最も顕著な違いは、オブジェクト データベースが言語のネイティブな部分であることです。たとえば、JADE でオブジェクトを作成する場合、一時的または永続的として作成できます。一時的オブジェクトの作成は、他のオブジェクト指向プログラミング言語でのオブジェクトの作成に似ています。つまり、オブジェクトは単にメモリ内に作成され、プログラムが終了すると失われます。一方、オブジェクトが永続的として作成されると、プログラムが終了してもオブジェクトは存在し続け、次にプログラムを起動したときにもそこに存在します。したがって、オブジェクトが永続的である場合、 JADE はバックグラウンドで自動的に動作し、必要に応じてオブジェクトをデータベースに保存および取得します。永続オブジェクトは複数の連携サーバーに分散でき、JADE はオブジェクトのキャッシュとキャッシュの一貫性を自動的に処理します。
一時オブジェクトと永続オブジェクトの操作にはほとんど違いがないため、JADE では、データベース全体のすべてのオブジェクトがローカル メモリにあるかのようにプログラマーに表示されます。ほとんどの場合、JADE のオブジェクト指向データベースはマルチユーザー システムで使用されるため、JADE では、データベース内のすべてのオブジェクトが、システムに接続しているすべてのユーザーが、異なるコンピューターからでもアクセスできる共有メモリに格納されているかのようにプログラマーに表示されます。
すべてのプログラム コードとデータがデータベース サーバーに集中しているため、すべてのクライアント ノードはデータベース サーバー上で実行されているかのようにプログラムできます。
JADE のデータベースは本質的にオブジェクト指向であり、ACIDに準拠しており、アトミック トランザクション、ロック、ロールバック、クラッシュ リカバリなどの標準機能をすべて備えています。また、バックアップ、災害復旧、パフォーマンス上の理由から、1 つ以上のセカンダリ データベース サーバーをメイン データベースと同期させる機能も備えています。
レポート、ビジネス インテリジェンス、データ ウェアハウスの目的でリレーショナル データベースと相互運用するために、JADE は 2010 年から「リレーショナル ポピュレーション サービス」を提供してきました。これにより、ネイティブ オブジェクト指向データベースから 1 つ以上のリレーショナル データベースにオブジェクトを自動的に複製できます。この機能は、Microsoft SQL Server バージョン 2000、2005、2008 をサポートしています。
3層モデル
データベース駆動型ソフトウェアでは、多くの場合、3 層方式が使用され、アプリケーションは 3 層 (データ ストレージ、処理、プレゼンテーション) に分割されます。データ ストレージ層と処理層では、JADE システムはノードと呼ばれる連携サーバーの集合であり、各層には複数のノードが関与する場合があります。各タイプのノードには異なる名前があり、すべてがオブジェクトを操作し、ビジネス ロジックを実行できます。ノードの集合は、1 台または複数のマシンに展開できます。データベース サーバーはデータ ストレージを処理し、ビジネス ロジックも実行できます。一方、アプリケーション サーバーは処理を処理します。3 層モデルでは、プレゼンテーション クライアントがユーザー インターフェイスを提供します。JADE は、アプリケーション サーバーとプレゼンテーション クライアントの機能を組み合わせた 2 層クライアントも提供します。従来、これらの 3 層は、3 つのプログラムを組み合わせて通信させ、1 つのシステムを形成することで作成されていました。このように異なるプログラムを分離することには多くの利点がありますが、主な利点は、システムがスケーラブルになることです。つまり、システムのパワーを高めるには、単にノードを追加するだけです。
このようなシステムを設計すると、プログラマーは特定の機能をコーディングするたびに、検討すべき決定を下すことになります。機能がいずれかの層にコーディングされると、その決定を変更するのは困難になるため、コーディングを開始する前に、その機能がデータベース サーバー、アプリケーション サーバー、プレゼンテーション クライアントのどれで最適に実行されるかを決定する必要があります。
JADE アプリケーションの場合は異なります。JADE アプリケーションは、エンドツーエンドで 1 つのアプリケーションとしてコーディングされます。JADE アプリケーションを作成する場合、プログラマーは、データベース サーバーで実行されるプログラムを作成するかのように考えることができます。つまり、すべてのデータの保存、処理、およびプレゼンテーションが 1 台のコンピューターで行われているかのように考えることができます。プログラムが 3 層で実行される場合、JADE は、デフォルトですべてのコードをアプリケーション サーバーで実行し、データベース要求をデータベース サーバーに送信し、ユーザー インターフェイス情報をプレゼンテーション クライアントに送信することを自動的に認識します。ただし、プログラマーは、メソッド シグネチャを変更することで、特定のメソッドが実行される場所を切り替えて、別の層に移動することは非常に簡単です。このため、特定のコード部分を実行する場所の決定は開発サイクルの後半で行うことができます。また、JADE ではソフトウェアのエンドツーエンドの開発が可能であるため、システムのさまざまな部分で実行されるようにコードをリファクタリングすることが非常に簡単になります。
クライアントの種類
プログラマーは、3 種類のクライアントが JADE システムに接続できるようにする機能を持っています。これらの 3 種類のクライアントの名前は次のとおりです。
- JADEフォーム
- HTML ドキュメント
- ウェブサービス
JADE 開発者は、同じスキーマ内で、同じデータベースにアクセスするための異なるインターフェースを提供する、完全に独立したアプリケーションを多数作成できます。
JADEフォーム
JADE Forms アプリケーションは、その名前が示すようにフォームで構成されています。クライアントは、JADE Forms を使用するアプリケーションを実行するために、JADE Smartシン クライアントまたは標準クライアントを介して接続する必要があります。
スマート シン クライアントは、通常スマート シン クライアントに代わってすべての処理を実行するアプリケーション サーバーに接続することで機能します。つまり、シン クライアントはフォームの表示と入力の取得のみを担当すればよいということです。つまり、シン クライアントを実行するコンピューターは、非常に高性能である必要はなく、データベースからデータをロードしないため、高速ネットワーク接続も必要ありません。JADE シン クライアントは、多くの場合、ダイヤルアップ接続で実行されます。これらのクライアントを実行するために、計算能力がそれほど要求されないため、シン クライアントと呼ばれるのです。
標準クライアントは、スマート シン クライアントとアプリケーション サーバーを 1 台のマシンに統合したものです。この場合、クライアントを実行するノードがすべての処理とプレゼンテーションを実行します。標準クライアントは、データベースからデータをロードするだけでなく、独自の処理も実行する必要があるため、シン クライアントよりも高い計算能力が要求されます。
JADE Forms を使用する利点は次のとおりです。
- 3 種類のクライアントのうち、JADE Forms は JADE アプリケーションの開発時間が最も短くなります。
- 開発者がエンドツーエンドで同じテクノロジーを使用できるようにします。
- スマート シン クライアントはパッケージ化できるため、数回のクリックでクライアント コンピューターにインストールして実行できます。
欠点は次のとおりです。
- World Wide Web のように世界中のユーザーにリーチすることはできません。
しかし、JADE Forms には興味深い工夫があります。JADE Forms アプリケーションを Web 対応モードに変更することで、Web ブラウザー経由で実行することができます。これを行うと、JADE はコードを変更することなく、フォームやコントロールに似たページを作成するための HTML コードを自動的に生成します。これは、HTML やその他の Web テクノロジに精通していないプログラマーが Web 経由でプログラムを配信するための非常に簡単な方法です。
HTML ドキュメント
JADE は、HTML ドキュメント機能を通じて Web へのアプリケーションの展開をサポートします。これは ASP.NET と非常によく似ており、開発者は HTML ページのテンプレートを作成し、テンプレートにプログラムが埋め込む部分を残します。
HTML ドキュメントを使用する利点は次のとおりです。
- アプリケーションを世界中のユーザーに届けることができます。
欠点は次のとおりです。
- JADE アプリケーションが HTML ドキュメントを使用する場合、エンドツーエンドで同じテクノロジが使用されることはなくなります。システムのフロントエンドでのチェックは、たとえば JavaScript を通じて実行される場合があります。
- 処理の一部をフロントエンド クライアントにオフロードすることは、もはや簡単でも安全でもありません。
ウェブサービス
Web サービスは、異なるプログラムがオブジェクト指向形式でリモート ロケーションから相互に通信できるようにするために使用されます。Web サービスには、人間のユーザーが直接アクセスすることはできません。JADE での Web サービスの用途の 1 つは、.NET や Java などの他のテクノロジが JADE をバックエンドのオブジェクト指向データベースとして使用できるようにすることです。Web サービスを使用すると、JADE システムは、他の非 JADE システムによって提供されるサービスと相互運用することもできます。
相互運用性
JADE は、Web サービスに加えて、言語 API (.NET、Java、C/C++ を含む)、DLL 呼び出し、ActiveX/COM オブジェクト、および .NET アセンブリを介して他のプログラムとインターフェイスすることもできます。これにより、他のプログラムがオブジェクトにアクセスしてメソッドを実行できるようになり、JADE アプリケーションに異なるインターフェイスを提供するのに使用できます。JADE 6.2 は、Java API、.NET アセンブリ統合、および Windows Mobile デバイスでスマート シン クライアントを実行する機能を提供しました。JADE 6.3 は、.NET 言語用の API を提供します。
多言語能力
JADEは多言語プログラムをネイティブにサポートしています。[5]これはいくつかの方法で実現されています。
- 文字列は翻訳可能としてマークすることができ、これは現在の言語に応じて変更されることを意味します。
- 各言語に合わせて、同じフォームの多くのバージョンを作成できます。つまり、インターフェースは言語ごとにまったく異なる外観になることができます。
- 開発者はシステムの現在のロケールにアクセスするためのメソッドを利用できるため、独自の言語依存の機能を実装できます。
JADEは、開発者が言語を提供している場合、システム上で検出された言語に自動的に切り替えます。[5]
ポータビリティ
現在、JADE アプリケーションは Windows でのみ実行可能で、Linux のサポートは廃止されています。JADE 6.2 では、スマート シン クライアントと専用の標準クライアントを Windows Mobile デバイスで実行できます。
コード例
このセクションでは、JADE コードの短い例をいくつか紹介します。
「こんにちは世界」
これは JADE の「Hello World!」コードです:
こんにちは世界(); アプリの開始.msgBox( "Hello, World!" , "Hello, World!" , MsgBox_OK_Only + MsgBox_Information_Icon ); 終了;
または
こんにちは世界(); 「Hello, World!」の書き込み を開始します。; 終了します。;
歴史
JADEはもともとギルバート・シンプソン卿によって考案され、現在はジェイド・ソフトウェア・コーポレーションによって開発されています。[6]
JADE の最初のバージョンは、1996 年 9 月にリリースされた JADE 3 でした。
現在のバージョンはJADE 2020に代わるJADE 2022である[7]
参照
参考文献
- ^ 「Jade – 私たちについて」Jade Software Corporation。
- ^ 「Jade Software、Jade 7.1をリリース」ZDnet 。 2019年12月21日閲覧。
- ^ 「Scoop Independent News – JADE 6.3」 。 2019年12月21日閲覧。
- ^ ab Toady, Tim (2009年6月3日). 「JADE: 今月のあまり知られていないプログラミング言語」. DevTopics . 2021年3月12日閲覧。
- ^ ab Witten, Ian H.; Birtwistle, Graham M.; Cleary, John; Hill, David R.; Levinson, Danny; Lomow, Greg; Neal, Radford; Peterson, Murray; Unger, Brian W.; Wyvill, Brian (1983 年 7 月)。「Jade: 分散ソフトウェア プロトタイピング環境」。ACM SIGOPSオペレーティングシステム レビュー。17 (3): 10– 23。doi : 10.1145/ 850742.850744。ISSN 0163-5980。
- ^ ジェイドソフトウェア株式会社
- ^ 「最新バージョン」。
外部リンク
- 公式サイト
- JADE プログラマー向けの例とチュートリアル
- JADE 6.1はMicrosoft SQL Serverへのデータレプリケーションを実現します
