はじめに
本Blogでは、SAP Cloud PlatformでのNode.js + SAP HANAアプリ開発について、FAQサイトの構築を例に下記のトピックで紹介します。
- 開発ツール: Web IDE, その他
- ロジック: Node.js
- UI: Bootstrap + jQuery
- データベース: SAP HANA
- 認証(Authentication)と権限(Authorization): XSUAA
前回の
概要編に続き、今回は開発ツール編です。(下図の①) ここでは、SAP Cloud Platformの統合開発環境のWeb IDEと任意の開発ツール(Visual Studio Code)の2つの観点で実際に使ってみた印象などを交えて述べていきます。
開発ツール
まず、アプリケーションを開発する際にどうしようか迷うのが開発ツールかと思います。このBlogのテーマはSAP Cloud Platformでの開発ですので、もちろん統合開発環境のWeb IDEも利用しますが、Node.jsアプリの開発ですので任意のお好きな開発ツールを利用することも可能です。その上で今回は下記のような使い分けで開発を進めています。
Web IDE:
- HANA DBモジュールの開発 (CDSのモデリングなど)
- Node.jsのコーディング (認証・権限実装以降)
任意の開発ツール (Visual Studio Code):
- Node.jsのコーディング (プロジェクトの作成から)
SAP Cloud PlatformのWeb IDEはSAP Fioriの拡張・開発ツールというイメージが強いですが、HANA DBのCDSのモデリング、Node.jsやJavaの開発もサポートしています。また、GIt連携やテスト自動化など、コーディングからディプロイまでを一貫して行うための機能群を備えています。今回はFioriアプリケーションの開発ではないので利用しませんが、SAPUI5ベースのテンプレートが豊富に提供されているのもポイントです。
1. HANA DBモジュールの開発
以前のHANA DBモジュールの開発はHANA Studioを利用してきましたが、SAP Cloud PlatformのHANA Serviceでは、Web IDEで行います。(オンプレのHANA 2.0でも付属のWeb IDEで行うのと同じです)
DBモジュールの開発では、主にCDSでテーブル定義を行いますが、Web IDEではCDSをコードベースで記述する方法の他に、グラフィカルエディターでGUIベースで作成することもできるためとても便利です。また、テーブルのデータにアクセスするためのデータベースエクスプローラーもあるため、HANA DBモジュールの開発ツールとしてはWeb IDE一択かと思います。
ちなみに、VS Code向けのCDS用プラグインもリリースされています。ただし、グラフィカルエディターなどの機能はありません。詳しくはこちらの
SAP Blogを参照してみてください。
2. Node.jsのコーディング
正直なところ、Node.jsのコーディングをWeb IDEで最初から行うかは判断の迷うところです。というのも、開発初期の段階ではある程度形になるまで、頻繁にビルドやNode.js自身を再起動することになるかと思いますが、Web IDEはクラウド上のツールですので、単にテスト実行する場合でも、テンポラリーのアプリとしてCloud Foundry上にディプロイされることになります。そのため、それなりに時間(数分)がかかってしまいます。一方で、ローカルPC上で任意の開発ツールで行う場合には、Node.jsの再起動は数秒ですので、個人での開発やプロトタイプ的な開発であれば、ローカル環境でまずは進めてみるのも有効かと思います。もちろん、Web IDEは開発者が意識しないで済むように、ビルド時に様々なタスクが裏で実行されている関係で時間がかかっていますので、高機能なツールであるという点は変わりません。
Cloud Foundryの特徴であるDBや認証などのサービスインスタンスは、ローカル環境上では利用できませんので、これらのサービスと連携するタイミングで、Web IDEに移行するというのも検討してみてください。認証機能などを実装してしまうと、ローカル環境ではテストができなくなるためです。ただし、詳しくはロジック編で触れますが、Cloud FoundryではVCAP_SERVICESというシステム変数から、アプリケーションにバインドされているサービスインスタンスの情報を取得できます。この変数を利用して実行環境の判断ロジックを含めることで、引き続きローカル環境で開発を進めることは可能です。
Web IDEでのNode.jsアプリケーションを開発する場合は、プロジェクト作成時に"Multi-Target Application" (
MTA) を選択して開始する必要がある点に注意してください。これはHANA DBモジュールの開発をする場合も同じです。MTAプロジェクトとして始めないと、Node.jsやHANA DBモジュール用のファイルを作成できません。(コンテキストメニューに表示されません)
あまりSAPアプリケーションに依存しない開発テーマのため、SAP Helpなどにある基本的なお作法にはこだわらず書いていますが、オープンソース系技術を採用している分、ツールもある程度は開発者が自由に選択できるようになっていますので、お好みの環境で実施頂ければと思います。
今回、Web IDE自体の細かい機能やDev&Ops周りには触れませんでしたが、クラウドツールの利点として機能が随時アップデートされていますので、オススメの使い方などありましたらコメント頂けますと幸いです。
次回はロジック編で、Node.jsアプリからHANA Clientを使ったアクセスを中心にご紹介したいと思います。