開発における懸念事項
目次
当社のビジュアルアプリケーション開発モデルを体験したりデモを見たりして、独自に作成したコードを利用できるかどうか懸念を抱いた開発者から質問を受けることがあります。開発プロセス後半でプラットフォームの限界に直面し、エンタープライスレベルのアプリケーションの構築、機能が豊富で複雑なモバイルおよびWebユーザーインターフェイスの作成、環境の様々な既存システムやデータベースとの連携ができなくなるのではないかと、不安を覚えるのでしょう。
OutSystemsの仕様は極めてオープンで、フロントエンド、バックエンド、データベース、他のシステムとの連携といったアプリケーションの全レイヤーをお客様独自のコードで拡張できます。さらにOutSystemsでは、わかりやすいビジュアル言語を使用してアプリケーションを開発でき、高速アプリケーション開発にありがちなリスクを回避できます。
´独自のコードを使用した全レイヤーの拡張
全レイヤーにおけるOutSystemsの拡張性を以下の図に示します。
- ユーザーインターフェイスの拡張: OutSystems UIという応答性の高いOutSystemsのUIフレームワークを使用して、コードを記述せずに複雑なモバイル向けユーザーインターフェイスやレスポンシブなWeb用ユーザーインターフェイスを作成できます。開発チームやUX/UIチームは、数多くの画面テンプレート、ウィジェット、UIパターンを使用することもできます。ドラッグ&ドロップが可能なビジュアルエディタでこれらを組み合わせたり編集したりすることで、アプリケーションを簡単に構築できます。デフォルトのルックアンドフィールは、WYSIWYG開発環境でCSSを用いてカスタマイズできます。また、再利用可能なテンプレート、ウィジェット、UIパターンをHTML、JavaScript、CSSで新たに作成し、メインのライブラリを拡張することも可能です。
- バックエンドの拡張: Libライブラリや連携コンポーネント、そしてすべてのカスタムコードは、OutSystemsでパブリッシュして管理できます。カスタムコードで公開したメソッドは、OutSystems IDE内でビジュアル化された要素として使用できるようになり、いったんデプロイして実行すると、アプリケーションに一体化されます。
- 既存のデータベースとの連携: OutSystemsは、 追加設定を行うことなくSQL Server、Oracle、MySQL、DB2に接続できます。さらに、データベースSDKを使用してデータベースコネクタを実装し、あらゆるデータベースに接続できます。PostgreSQL向けに構築されたコネクタのサンプルを GitHubでご覧いただけます。
- 既存のシステムとの連携: OutSystemsは、追加設定を行うことなくSAPと連携できます。また、RESTやSOAPを使用して、他のミッションクリティカルなシステムとも連携できます。既存の連携コンポーネントの再利用や、お客様独自のコンポーネントの構築も可能です。
OutSystems Forgeには、オープンソースで(ただし一部有料)公開されているライブラリやプラグインのラッパーなど、オープンソースの拡張機能を集めたリポジトリがあり、OutSystems自体に備わっている機能と同様に再利用することができます。 OutSystemsを使用している開発者のコミュニティが連携し、再利用可能な新規要素でOutSystemsを拡張し続けることこそ、すべてのお客様をサポートすることにつながると、当社は考えています。
OutSystemsのビジュアル言語の表現力
OutSystemsでは、視覚的なドメイン固有言語を使用して、ビジネスロジックを設計(手続き型コードを記述)します。ページのUI要素のスコープにフルアクセス権を与えてページレベルで行うことも、ページやワークフローで再利用できるように一連のメソッドや関数を定義することもできます。
この作業はコードを記述せずに視覚的に行い、抽象化レベルの高いアクションもあります(主にドメイン駆動型)。しかし、ビジュアルDSLは3GL(第3世代言語)プログラミングの基本要素(代入、条件、ループ、例外など)をベースとして構築されています。そのため、あらゆる複雑なロジックを視覚的に記述できます。ビジュアル化されたインタラクティブなデバッガや、視覚的なマージ機能など、IDEの幅広いサポート機能も利用できます。
エンタープライズアプリケーションは高度なデータ駆動型であるため、DSLにはデータ関連の要素も備わっています。このため、外部データベースモデルを組み込んだり、個々に定義を行ったりすることによって、データ関連のアクションを追加することもできます。
また、コードの記述では、ビジネス固有の要件の構成に使用されるコードのフレームワークやコードスニペットを再利用します。そのため、OutSystemsのプラットフォームでは、ビジュアルDSLレベルで複数の拡張ポイントを使用できます。
高速アプリケーション開発に潜むリスクの回避
OutSystemsアーキテクチャを使用することで、4GL(第4世代言語)の古いテクノロジーに潜むリスクを回避することができます。ビジュアルDSLは非常に表現力が高く、複雑なエンタープライズアプリケーションに必要な幅広いロジックに十分に対応できます。また、オープンで拡張性が高く、独自のカスタムコードやビルド済みの拡張機能をプラグインとして組み込むことができます。
OutSystemsのビジュアル言語は、コードの記述をなくすのではなく、すでにコード作成スキルがあることを前提として使用する言語として設計されました。そして実際に、妥当であれば、C#、JavaScript、SQL、CSSといった標準の3GL言語に戻ることを奨励しています。目的は、開発からコーディングを排除することではありません。開発者がすでに有する知識を生かしつつ生産性を大幅に向上させ、全体を把握しながら限界に阻まれることなく開発を行えるようにすることなのです。