Uniface
From Wikipedia, the free encyclopedia
Uniface(ユニフェイス)は、携帯、メインフレーム、Web、SOA、Windows、JEEとNETの環境で動作するエンタープライズアプリケーションを開発、実行するプラットホームである。Unifaceアプリケーションは、データベースとプラットホームに依存しない。Unifaceで作成されたアプリケーションは主なデータベース製品と統合を可能にする“インテグレーションフレームワーク”を提供する。
例えばメインフレームの製品(CICS、IMS)、Webサービス、SMTPやPOP電子メール、LDAPディレクトリ、.NET、C、C++プログラムとJavaとの統合を実現する。そして、Windows、Windows Mobile、Unixや(いろいろな)Linux、IBM iSeries/AS400、z/OSやVMSの下で稼動する。
Unifaceは、企業に不可欠なビジネスプロセスもサポートしており、重要な企業データを維持する複雑なシステムで利用が可能。
例えば、Webオンラインショッピング、金融取引、給与管理や在庫管理です。現在Unifaceは30カ国以上の数千社で使われている。そして、インストールベースでは数百万ライセンスにも上る。作成可能なUnifaceアプリケーションは、クライアント/サーバアプリケーションからWebアプリケーションの範囲に及ぶ。そして、データエントリー処理から、ワークフロー業務もカバーし、同様にイントラネット及び、インターネットを利用したポータルサイトからアクセスも可能。Unifaceは1984年Inside Automationによってオランダで誕生し、後にUniface B.V.へとなる。そして1994年 デトロイトに拠点を置くCompuware社によって買収される。2014年には Marlin Equity Partners の買収により、オランダ アムステルダムに本社を構え、ワールドワイドにオフィスを持ったUniface B.V.へと戻る。
Uniface基盤は開発環境と実行環境を提供し、大部分はUniface Application Platform Suite(APS)のパッケージで提供される。APSには以下の製品を含む。
- Uniface Development Environment(ユニフェイス開発環境) — アプリケーション開発時にモデル化、実装、コンパイル、デバッグ、配布を行う統合した開発環境
- Uniface Flow(ユニフェイスフロー) — ビジネスプロセスを開発、展開するための環境
- Uniface View(ユニフェイスビュー) — Webドキュメント、データベースレポート、エンタープライズアプリケーションをユーザに整理されたデスクトップとして提供する環境(アプリケーション統合ポータルの開発・実行環境)
Unifaceアプリケーション(開発環境、Uniface FlowとUniface Viewも含む)は、実行時に一般的なインフラ(システム環境)で稼動する。
- Uniface Runtime Engine(ランタイムエンジン) — コンパイルされたアプリケーション コンポーネントとライブラリを特定のプラットホームで実行する。
- Uniface Router(ルータ) — Unifaceアプリケーションのプロセス間通信を請け負うマルチスレッドのプロセス。Uniface Serverプロセスの開始、終了、ロードバランシングを行う。更にUnifaceプロセスの間のメッセージング処理も行う。
- Uniface Server(サーバ) — Unifaceクライアントからサーバ資源にアクセスを行ったり、サーバ上のコンポーネントを実行することができるサーバ上のプロセス。アプリケーションサーバ、データサーバとファイルサーバの働きをする。
- Uniface Repository(リポジトリ) — 開発時のプロパティ、プロセス、組織モデル、ポータル定義を保存する。
- Web server(Webサーバ) — UnifaceはWebアプリケーションを開発、テストする環境のためにApache Tomcat Serverをバンドルする。しかし、WebサーバはTomcatにとらわれず、全ての製品を利用することが可能。
- Servlets — Uniface Webアプリケーション(Webサービス)のためにWebServerとUniface Serverの間のコミュニケーションを行うJavaサーブレットを提供する。
- Database connectors — Unifaceがさまざまなデータベースとコミュニケーションを取るドライバを提供する。
- Integration tools — Unifaceとサードパーティ製アプリケーション(Java、CICS、IMS、LDAP、SMTP、POP、オペレーティングシステム命令、COM、その他)間のコミュニケーションを行うためのドライバ、コンポーネント及びAPIを提供する。
そのうえ、Uniface JTi(Java Thin Client Interface)は、Unifaceのクライアント/サーバアプリケーションをインターネットに接続している全てのコンピュータから実行させることができる。
Unifaceを記述するアプリケーションコードは手続き型言語であり、“PROCコード”と呼ばれる。Unifaceはカーネルとデフォルトコードによって、入出力ロジックの大部分を自動化する。ゆえにデフォルト機能の大部分はPROCコードを記述する必要はない。
Uniface applications(アプリケーション)
Unifaceアプリケーションは、一つ以上のデータベース(ファイルシステム)にデータの作成、更新、削除を行えるコンポーネントベースのアプリケーション。インフラから完全に独立した形でアプリケーションは作成される。開発者は他の開発ツールで作成された非Unifaceコンポーネントを含む複合アプリケーションの統合も可能。そして、利用時にはクライアント/サーバ環境、Web環境、モバイル環境、Webサービス及びメインフレーム環境に展開することが可能。
Unifaceは、マルチティアアプリケーション構築のために異なるレイヤの為にいろいろなコンポーネントを用意している。 プレゼンテーション層のためのユーザインタフェース用のコンポーネント。
- Forms(フォーム) — クライアント/サーバ環境でデータ更新を行うインタラクティブな画面構築用のコンポーネント。
- Server Pages(サーバページ) — Web環境でデータ更新を行う為のインタラクティブな画面構築用のコンポーネント。
- Reports(レポート) — 印刷処理でデータを印刷するためのレイアウトの構築用のコンポーネントです。
ビジネスロジック層のためのコンポーネント。ビジネスルールとタスクの特有の機能を取り扱う。ユーザインタフェースはない。
- Services(サービス) — ローカル環境やサーバサイドで他のコンポーネントから起動できる。一般的なロジックやビジネスロジックを実装する。
- Session Services(セッションサービス) — 複数のデータ エンティティに影響を与える複雑なビジネスロジックを実装する。例えば、仕事に特化したふるまい、また、業務と関連するロジックを実装する。
- Entity Services(エンティティサービス) — 一つのデータエンティティ(実体)に対する単純なビジネスロジックを実装する。
データアクセス層は、Unifaceアプリケーションモデルで作成する物理データベース構築を含む。Unifaceは、SQL自動生成をDBMSコネクタから行うことで、物理的なデータアクセスを確実に行う。ネットワークとミドルウェアアクセスは、ミドルウェアドライバとUniface ルータによって実装される。
ランタイムエンジンは、アプリケーションコンポーネントを実行する。それはユーザインタフェースコネクタを用いたプレゼンテーションコンポーネント(GUI またはキャラクタベースがあります)を表示し、DBMSコネクタによってデータを送受信する。
Application development(アプリケーション開発)
Uniface開発はモデルドリブンとコンポーネントベースを基本に構築される。データ構造、ビジネスルール及びアプリケーションのデフォルト動作は、アプリケーションモデルから反映される。モデル定義はコンポーネントによって受け継がれ、再利用することも可能。 そして、コンポーネントに固有の機能を追加して、テンプレートは生産性を向上させ、モデル定義を利用することで、システムの一貫性を実現する。
Application Model(アプリケーションモデル)
アプリケーションモデルは、参照一貫性と共にエンティティ(テーブル)、フィールド、キー(インデックス)とリレーションを定義する。モデル内のエンティティとフィールドは、一式のトリガーとプロパティを持っている。 ビジネスルールは事前にアプリケーションモデル上のプロパティの設定を行い、アプリケーションモデル上のトリガーにProcコード(Unifaceの手続き型言語)を記述する。
トリガーはコードにとっての格納場所。トリガーがユーザの行うシステムイベントを受け付ける。例えば、<Occurrence Gets Focus>や< Read>、< Leave Field>というトリガーが存在する。トリガーは他にチェック機能を記述したり、関連チェックを行うトリガーも存在する。
アプリケーションモデルレベルのトリガーの使用は、ビジネスオブジェクトを集約するのに利用される。故に物理データ構造から論理的にロジックを分離が可能になる。一箇所にシステム全体の標準の動作を記述することが可能になり、再利用性の高い、3層アーキテクチャのアプリケーションを迅速に作成することが可能になる。
Components (コンポーネント)
アプリケーションモデルで記述されたオブジェクトはコンポーネントで再利用される(継承される)。開発者は、アプリケーションモデルから、画面の部品をレイアウトキャンバス(画面レイアウト作成用の画面)に描画するか、コンポーネントストラクチャーのツリーにオブジェクトの挿入を行い、作成するコンポーネントにオブジェクトを配置する。アプリケーションモデルにないオブジェクト(例、制御部品、フィールド、メニュー、コンポーネント変数)を加えることもできる。
アプリケーションモデルに定義されたプロパティとトリガーはコンポーネントにコピーされることによって継承される。個別の機能を提供するために、コンポーネント単位に変更することは可能。これは、アプリケーションモデルとコンポーネントの継承を断つことになる(継承をアプリケーションモデルの内容に戻すことは可能)。 アプリケーションモデル上に記述したコードもしくは、プロパティをモデル上で変更した時は、各コンポーネントに保持しているすべてのオブジェクトの定義を更新するために再コンパイルが必要になる。
Uniface Repository(リポジトリ)
Unifaceは、アプリケーションモデルの再利用を目的として、データベースにメタデータ(コンポーネント定義、コンポーネントレイアウト、PROCコード、その他)を維持する。リポジトリはUniface 開発環境を経由しアクセスされ、リポジトリ整合性(機密性)を守る。しかしながら、リポジトリ構造についてドキュメント化されており、例えば(推薦されていないけれども)レポート作成の為に直接リポジトリとのインターフェースを可能にする。 集中化したリポジトリを利用することで、ソフトウェア開発チームで共有される。(チームビルディングが可能)Unifaceは、Microsoft Common Source Code Control Interfaceをサポートするソースコードコントロールシステム(SCCS)と連携が可能。
Application deployment(デプロイメント)
Unifaceアプリケーションは、コードを変更することなく、携帯からメインフレームまでのプラットホームで展開(運用)することが可能。コンポーネント(スタートアップシェル、メニュー、ツールバーパネル、グリフ、グローバルPROC、インクルードPROC)は圧縮ファイルにパッケージ化され、全てのプラットホームに配布が可能なランタイムオブジェクトにコンパイルされる。ランタイムオブジェクトは、バーチュアルマシンとプラットホーム固有のインタプリタを使用し実行される。(後に、Javaと他の言語は、この方法でUnifaceに続いた) Uniface Virtual Machineが存在している環境なら、1台のマシンの上でコンポーネントをコンパイルして、別の環境で実行可能。
Database Connectivity (データベース接続性)
Unifaceは、データベースコネクタ(ドライバ)を利用して、サポートするさまざまなデータベースとファイルシステムにアクセスを行う。DBMSコネクタは、Unifaceデータフォーマットを特定のデータベースに最も適当したフォーマットに変換しマッピングする。実行時にデータベース特有の拡張機能を利用するパラメータを設定することも可能(利用しなくすることも可能)。データベースコネクタが対応可能であれば、異なるデータベース間でデータを変換することも可能。UnifaceはAPI(Database Connector Interface)を提供します。これをカスタマイズすることで、データベースコネクタを作成することができる。
Licensing(使用許諾)
使用許諾はCompuware Distributed Licenseマネージャ(DLM)を利用して管理される。クライアント環境にライセンスを提供するサーバライセンス管理システム。この機能により、ローカル環境にライセンスを保持する必要をなくする。