Visual LANSA 15+ 便利なルーティング機能

2021年5月19日

ルーティングとは?

Webアプリケーションにおけるルーティングとは一体何なのか、疑問に思われる方もいらっしゃるでしょう。ルーティングとは、簡単に言うと、エンドユーザーがアプリケーションの異なるページやビューにナビゲートするプロセスのことです。ナビゲーションされたページは、そのUIコンポーネントを表示するためにレンダリングされます。Webサイト利用時のやり取りで考えてみると、こうなります。あるページを開いてリンクをクリックします。すると、その “クリック"に先立ってURLが変更され、新しいデータやアプリケーションの新しいページが表示されるのです。

クライアント側ルーティングにおけるキーポイント

  • ユーザーがリンクをクリックすると、URLは変更され、サーバーへの要求が禁止されます。
  • このURLでアプリケーションの状態が変更され、別のウェブページのビューが提供されます。
  • クライアント側でルーティングを使用すると、ページ全体が更新されるのではなく、アプリケーション内部のエレメントのみが変更されます。

サーバー側ルーティング

サーバー側のルーティングは、アプリケーションのページ全体が更新されます。これは、リンクのクリックにより、サーバーから新規のページが要求されるからです。つまり、ユーザーにはまったく新しいドキュメントが提供されます。この時、古いページは完全に破棄されます。サーバー側ルーティングの利点は、ルートが必要とするデータのみを要求する点です。これが長年にわたって標準となっているため、サーバーから送られてくるWebページに対する検索エンジンの最適化が高度なものとなっています。ただし、ページ全体を更新するよう新規に要求が出されるたびに、不必要なデータも要求されてしまします。例えば、多くのサイトでは、各ページのヘッダーやフッター部分は変わらないため、このデータを再度サーバーに要求することは不必要であり、パフォーマンスにも影響を与えます。

クライアント側ルーティング

クライアント側ルーティング方式を利用する場合、URLが変更されても、ページ全体のリロードはありません。RDMLXによりURLが更新され、新しいコンテンツが取得され表示されることになります。つまり、ページ全体が更新されるのではなく、アプリケーション内部の一部のエレメントのみが変更されます。このため、データ処理が少なくて済み、ビュー間のルーティングがより迅速に行われ、ビュー間の移行も全体を通してスムーズになります。例えば、顧客プロファイルのルートと顧客分析のルートの間のパスが変更された場合、変更された情報を正しく表示するために、RDMLXコードがルートのツリーを巧みに操作して新しいビューが表示されます。

Visual LANSAで構築されたWebアプリケーションは、最新のVisual LANSA 15+のリリースまではサーバー側ルーティングのみがサポートされていました。新しいVisual LANSAのルーティング・フレームワークを利用することで、アプリケーション開発者は、空白のページ、またはテンプレートから開始して、親子ルートの作成からルーティングのネスト化、ビュー間のナビゲーションやネスティング実現まで、ルーティングの動作を完全に網羅することができます。

以下は、技術用語の簡単な説明です。

  • ルーター:ルーターとは、複数のルートからなるツリーのルートです。
  • ルート:ルートとは、アプリケーションのポイントAからポイントBまでのパス(経路)のことです。アプリケーション開発者はパス文字列をVisual LANSAビュー・コンポーネントに関連付け、このパス文字列が現在のURLパス・コンポーネントと一致した時、ビュー・コンポーネントが表示されます。
  • リンク:リンクを使って、イベント・ドリブンでクリック可能なコンポーネントはURLのパス変更を起動させることができます。例:メインページの連絡先ボタンをクリックすると、一覧表示された連絡先のビューが表示される。
  • 親 (Parent):routeクラスのparentプロパティを使用することで、アプリケーション開発者は、複数ルートからなる1つのツリーを形成することができます。このツリー内のルートのフルパスは、親のフルパスとルート独自のパス文字列から派生されたものです。
  • 一致:一致とは、ルーターが複数ルートからなるツリーを検索して、完全または部分的に一致するものを見つけたときに発生します。
  • アクセス:accessプロパティを使って、アプリケーション開発者は保護するルートにフラグを立てることができます。この例として、認証後にのみアクセスできる特定のビューなどがあります。
  • ワイルドカード:ワイルドカードを利用して、完全一致や部分一致で見つからない場合に、ルートのパス文字列が一致するようにできます。例えば、ユーザーが /Customers と言うラベルのページに移動する代わりに、誤って  /customerz と入力した場合、アプリケーション開発者はワイルドカードを使って/Customer と一致させるか、 /Home パスに戻るように設定することが可能です。

LANSAはルーティング機能を簡素化

Visual LANSAを利用することで、アプリケーション開発者はハイブリッドなローコード・アプローチが可能です。このアプローチにより、開発者はシンプルなウィザードや表示タブを利用して、ルーティング付きのビューを素早く作成でき、パワフルな開発言語RDMLXを使って、それまでの限界を超える機能が実現できます。それでは、実際の例を見てみましょう。

テンプレートContactsを使うと、モバイル・アプリケーションを素早く構築でき、新しいオプション [ルーティング付きビュー] が選択できるようになっています。

以下の画像で分かるように、各ビューには1つのルートが関連付けられており、このルートに1つのルーターが関連付けられています。

[ルーティング付きビュー] オプションを選択すると、1つのルーターと、そのルーターに属するルートが自動生成されます。次は、ルーター、デフォルトのルート、ホーム・ルートを生成するRDMLXのコードです。

ルートの詳細を手作業でコーディングする時間を省くために、[詳細] タブにはすべての基本オプションが追加されています。このルートの詳細に具体的な情報を入力すると、開発者が選択したオプションに基づき、バックグラウンドでコードが生成されていきます。

ただし、商品在庫の追跡アプリケーションなど、様々なルートのネスト化が必要な場合もあるでしょう。Visual LANSA 15+では、複数のルートをネスト化して、1つのルートを1つのビューコンテナに関連付けることができます。つまり、ネスト化されたルーティングを有効にした状態で新規にビューを追加することで、ビューコンテナのネスト化が可能です。

この新しいビューには、ネストされたビューコンテナ(赤い丸で示されたビュー)だけでなく、サンプルのルートとボタンのリンクも最初から用意されています。

今後の新機能

ここで紹介した内容は、LANSAのルーティング・フレームワークで可能な機能のほんの一部です。今後もルーティング・フレームワークやデザイナー・ビュー、その他さらに強化される機能にご期待ください。ルーティング・フレームワークの詳細や、RDMLXを使った機能拡張に興味を持っていただきましたでしょうか?次回のLearn LANSAでは、ルート変更のシグナリング、参照ルート、pathパラメータへのアクセスが紹介されます。

LANSAのハイブリッド・ローコード・ソリューションにより、導入を迅速に、メンテナンスも簡素化でき、あらゆるアプリケーション開発プロジェクトに対し、優れた価値をもたらします。LANSAの利用を開始する準備はできましたか?
Visual LANSA 15+の無料体験をご利用になりたい方は専用フォームよりご連絡ください。

LANSAコミュニティに登録する

IBMi(AS/400)をご利用の企業様必読!
LANSAを利用したIBM iの活用方法・成功事例をお届け致します。