Provaは、ミドルウェアに使用されるルールベースのスクリプトシステムです。この言語は、 Java関数を呼び出すことができるProlog構文を使用することで、命令型プログラミングと宣言型プログラミングを組み合わせています。このようにして、強力なJavaコードベースと、バックトラッキングなどのPrologの機能が融合されています。
Provaは、 Jens Dietrich氏が開発したJavaベースの推論システムであるMandaraxから派生したものです。Provaは、適切な言語構文、Javaとのネイティブ構文統合、エージェントメッセージング、および反応ルールを提供することでMandaraxを拡張しています。この言語の開発は、EUプロジェクトGeneStreamおよびBioGRID内で提供された助成金によって支援されました。このプロジェクトでは、この言語は、生物医学データ統合における分散型Webアプリケーション、特にGoPubMedシステムのルールベースの基盤として使用されています。
Provaの設計目標:
Provaは、以下の点が重要な場合にデータ統合タスクのサポートを提供することを目指しています。
Provaは、 Xcalia製品において主要なサービス統合エンジンとして採用されており、Webサービス、 CICSやIMSなどのTPモニタートランザクション、 MQ-SeriesなどのMOMメッセージ、 JCAコネクタを備えたパッケージアプリケーション、JCAコネクタを備えたメインフレーム上のレガシーデータソース、データプロバイダとして扱われるリモートEJB Javaオブジェクト、さらにはローカルJavaオブジェクトなど、複数のデータソースにわたる効率的なグローバル実行プランの計算に使用されています。Provaは、サービス指向アーキテクチャの実装に向けた革新的なソフトウェアプラットフォームの提供を可能にします。