Skip to main content

アーキテクチャ

OutSystems

OutSystemsのツールおよびコンポーネント

OutSystemsプラットフォームは、アプリケーションライフサイクル管理プロセス全体をカバーする環境、ツール、コンポーネントを提供します。

overview.png

OutSystemsの開発・デプロイ環境は以下のとおりです。

  • ビジュアル開発環境: データモデル、アプリケーションロジック、UI、ビジネスプロセスフロー、統合、セキュリティポリシーなど、アプリケーションスタックにおけるあらゆる要素を作成する環境です。

  • 統合環境: OutSystemsプラットフォームを拡張し、サードパーティのシステムやマイクロサービスと統合するためのコンポーネントを作成する環境です。

  • OutSystems Now: iOS、Android、WindowsのネイティブアプリケーションであるOutSystems Nowにより、ユーザーは一箇所からアプリにアクセスすることができます。アプリ内フィードバックをサポートしているため、デバッグやQAに最適です。

  • Platform Server: このサーバーコンポーネントはOutSystemsプラットフォームの中核をなすものです。標準のWebアプリケーションサーバーにアプリケーションを生成、最適化、コンパイル、デプロイします。また、スケジュール設定されたバッチジョブとアプリケーションログも管理します。

OutSystemsの運用管理コンソールは以下のとおりです。

  • 運用管理コンソール: このコンソールは、接続文字列、Webサービスのエンドポイント、アプリケーションのプロパティなど、環境における運用面を管理します。

  • デプロイおよび環境管理コンソール:  このコンソールでは、環境間でのアプリケーションのステージングやパフォーマンスの監視からITチームの権限管理に至るまで、開発環境、QA環境、本番環境の一元管理が可能です。

  • Forge: このリポジトリには、プロジェクトで活用できるオープンソースのモジュール、コネクタ、コンポーネントが集積されています。

開発およびデプロイ環境

OutSystemsの開発環境は、デザイン性に優れたアプリケーションの作成や統合などを簡単に行えるように設計されています。

ビジュアル開発環境

この環境でビジュアル要素をドラッグ&ドロップし、アプリケーションのUI、ビジネスプロセス、ビジネスロジック、データモデルを作成します。また、アプリケーションは、この環境でSOAP/REST Webサービスを利用して公開します。

すべてのアプリケーション層にはフックポイントがあるため、開発者は開発環境外で作業する必要がある場合に、独自のコードですべての層を拡張できます。

service-studio.png

この環境では、バックグラウンドで完全な参照チェックと自己修復を行うエンジンが動作し、アプリケーションにエラーが発生せず、変更が既存のアプリケーションに影響しないようにしています。軽量設計になっており、設計後の作業の多くはOutSystemsプラットフォームのサーバーコンポーネントであるPlatform Serverで処理されます。

統合環境

この環境では、コンポーネントを作成してサードパーティの既存のシステム、マイクロサービス、データベースと統合することができます。また、開発者は独自のコードでOutSystemsを拡張することもできます。

これらのコンポーネントはデプロイ後、OutSystemsで構築したすべてのアプリケーションで再利用できます。開発者はVisual Studioを使用して統合コンポーネントをコーディングし、既存の.NETライブラリを利用できます。

integration-studio.png

コンポーネントをパブリッシュすると、開発環境で標準の.NETコンパイラでコンパイルされます。生成されたDLLは、Platform Serverに送信されます。

OutSystems Now

iOS、Android、WindowsのネイティブアプリケーションであるOutSystems Nowにより、ユーザーは一箇所からアプリにアクセスすることができます。OutSystems Now内で実行されているアプリケーションは、連絡先、カレンダー、カメラ、GPSなどデバイスのネイティブ機能を利用するため、ネイティブアプリのように使用できます。

アプリケーションの変更は、OutSystems Nowにすぐに反映されます。アプリケーションストアの複雑な承認プロセスを経る必要はありません。

OutSystems Nowは、開発チームにアプリ内でフィードバックを行えるフィードバック機能を備えているため、デバッグやQAにも最適です。画面上に描画したり、音声メモを追加したり、コメントを入力するだけでフィードバックを送信することができます。注釈はすべて、デバイスの仕様とともに開発チームに送られます。

OutSystems Nowはオープンソースであるため、ユーザーはブランドに合わせてカスタマイズしたり、新しい機能を追加することもできます。

Platform Server

このサーバーコンポーネントはOutSystemsプラットフォームの中核をなすものです。アプリケーションの生成、ビルド、パッケージ化、デプロイに必要なすべての手順を処理します。

Platform Serverは、下記のような特殊なサービスを提供します。

  • コードジェネレータ: IDEでモデル化されたアプリケーションを受け取り、ネイティブの.NETコードを生成します。これにより、アプリケーションがパフォーマンスのために最適化され、標準テクノロジーでセキュアに実行されます。

  • デプロイサービス: 生成された.NETアプリケーションを標準のWebアプリケーションサーバーにデプロイします。これにより、アプリケーションはサーバーファームの各フロントエンドに常にインストールされます。

  • アプリケーションサービス: スケジュール設定されたバッチジョブの実行を管理し、エラーや監査、パフォーマンスメトリックなどのイベントを保存する非同期ロギングサービスを提供します。

そのため、アプリケーションをデプロイすると、作成されたアプリケーションモデルが環境で検証され、Platform Serverに送信されます。サーバー内では、アプリケーションモデルは以下のように動作します。

  1. 内蔵のバージョン管理システムを使用してバージョン管理

  2. ネイティブ.NETにコンパイルされ、パフォーマンスとセキュリティのために最適化されます。

  3. サーバーファーム内のすべてのフロントエンドサーバーにデプロイされます。

また、デプロイ中にPlatform Serverは依存関係の分析を行い、他のアプリケーションが変更の影響を受けたかどうかをチームに通知します。

管理コンソール

こうしたOutSystemsコンソールによって、環境の一元管理とアプリケーションモジュールの再利用が容易になります。

運用管理コンソール

このWebコンソールを使用して環境の運用面を管理できます。

service-center.png

このコンソールでは、データベース接続のような環境全体の構成を、以下のようなアプリケーション固有の構成とともに管理します。

  • アプリケーションをオフライン/オンラインにする

  • アプリケーションを前のバージョンに戻す

  • アプリケーションのプロパティ、Webサービスのエンドポイント、バッチジョブのスケジューリング構成する

ここで挙げている例は一部です。

デプロイおよび環境管理コンソール

このWebコンソールはDevOpsプロセスを自動化するため、開発環境から本番環境に至るまでアプリケーションをステージングすることができます。クラウド、オンプレミス、またはハイブリッド構成におけるすべての環境を管理できます。

lifetime.png

この運用管理コンソールは以下の点をサポートします。

  • 環境間のアプリケーションのステージング: アプリケーションをステージングする際、LifeTimeは、環境間で依存分析を行い、ターゲット環境で実行されているアプリケーションに影響を与えることなくステージングを実行できるようにします。デプロイ後、変更の影響を受けたすべてのアプリケーションは、自動的に更新され、最新のコードやバージョンなどが適用されます。

  • アプリケーションパフォーマンスの監視: OutSystemsで構築されたすべてのアプリケーションは、ランタイム監視情報を収集するように自動的に構成されます。LifeTimeを使用すると、アプリケーションのパフォーマンスを監視し、ユーザーがアプリケーションが遅いことに気付く前にアクションをとることができます。

  • ITチームの権限の管理: 組織の優先認証を設定し、IT部門の各ユーザーが各環境およびアプリケーション上で持つ権限レベルを管理します。

Forge

UIコンポーネント、ライブラリ、コネクタのリポジトリです。アプリケーションで再利用できる既存のモジュールを提供し、デリバリーを高速化します。OutSystemsのビジュアル開発環境はForgeと高度に統合されており、開発者はコミュニティからコンポーネントをすばやく入手し、適用することができます。

Forgeでソフトウェアのライセンスを取得する方法については、「Forgeでのソフトウェアライセンス」の記事をご覧ください。

Forgeで利用可能なコネクタ:

Forgeで利用可能なUIウィジェット: