OutSystems Developer Cloudを触ってみた

Pocket

1.はじめに

OutSystems Developer Cloud (以下「ODC」と記載)が日本で2023年4月にリリースされました。

OutSystems Developer Cloud 詳細ページ

ODCはKubernetes、Linuxコンテナ、マイクロサービスなどのアーキテクチャをベースに開発された、Amazon Web Services (AWS)上で動作する、クラウドネイティブのローコード開発プラットフォームです。通常、クラウドネイティブのアプリケーションプラットフォームを構築するには、技術の習得に時間もコストもかかりますが、ODCはこれらの技術をOutSystems側で処理させることで、簡単に導入・開発することが可能とされています。

2.ODCでアプリケーションを作ってみる

従来のOutSystemsとの違いを探しながら、実際にODCを使って画面を作成してみたいと思います。

ODCのアカウントを用意する

まず、管理者から送られた、メールの中の「Get started」のリンクをクリックします。

※従来のOutSystemsで使用可能な「無償のPrivate環境」は提供されていないため、利用についてはOutSystems社に問合せが必要です。 (2023年4月現在)


図1:管理者から送付されるメールイメージ

ODCポータルとODC Studioを準備する

以下の画面が開いたら、名前、パスワードを入力し、利用規約とプライバシーポリシーの同意にチェックを入れ「Create account」ボタンを押します。

図2:アカウント設定画面

ログインが成功すると、下図のようなODCポータル画面が表示されます。

図3:ODCポータル画面

続けてODC Studioをダウンロードします。

ODCポータルログイン時に、下図のようなポップアップ画面が出てきた場合は、ポップアップからODC Studioをダウンロードすることが可能です。

図4:ODC Studioダウンロードポップアップ画面

ODCポータルの中の、「Download ODC Studio」ボタンからもODC Studioのダウンロードが可能です。

図5:ODCポータル内のODC Studioダウンロード

ODC Studioをダウンロード後「ODC Studio」を起動し、Organizationとメールアドレスを入力し、「Log in」ボタンを押します。

※Organizationが不明な場合は管理者に確認が必要です。

図6:ODC Studioログイン画面

ログインできるとODC Studioが表示されます。これで開発準備は整いました。

図7:ODC Studioの表示

アプリの作成

それでは、『超高速開発基盤OutSystemsで従業員管理システムをつくってみた 』の記事内で作成した、従業員一覧画面と同じものをODCで作ってみたいと思います。

まず、新しいアプリを作成します。ODC Studio内の「Create」をクリックします。

図8:ODC Studioのアプリ作成

次に何を作るか選択します。ここでは「App」を選択し、「Continue」ボタンを押します。

※従来のOutSystemsでは「From Scratch/From an app」の選択でしたが、
 アプリまたはライブラリを選択するように変更されています。
 アプリとライブラリの説明は、後述の「3.ここが違うO11との比較」で記載します。

図9:ODCと従来のOutSystemsの作成内容の選択画面比較

続けて、アプリのタイプを選択します。ここでは「Web app」を選択して「Continue」ボタンを押します。

図10:アプリタイプの選択

今度はアプリ名と説明を入力し、テーマとなる色を選択します。入力後、「Create app」ボタンを押します。

図11:アプリの詳細設定

「Create app」ボタン押下後、新しく作成したアプリのタブが開き、キャンバスが表示されます。

図12:キャンバス表示

Entityの作成

準備が整ったところで、まずはEntityを作成します。

Entityは手動でも作成できますが、Excelからデータを取り込んで作ることも可能です。今回は以下のようなExcelデータを取り込み、Entityを作成していきます。

図13:Entity作成用Excelデータ

Dataレイヤ(右上の4つのタブの一番右)をクリックし、Entitiesフォルダ>Databaseを右クリックし、「Import new entities from Excel…」を選択します。

図14:ExcelインポートからEntity新規作成

確認用のウィザードが出ますので、取り込んだExcelからEntityを作成して良ければ「Import」ボタンを押します。

図15:Excelインポート

取り込んだデータをもとにEntityが作成されました。

図16:Entity作成

この時点ではデータは取り込まれていないため、パブリッシュを行いデータを取り込みます。パブリッシュは画面上部の緑色のボタンを押します。

図17:パブリッシュボタン

パブリッシュ後、作成されたEmployeeエンティティを右クリックし、「View Data」をクリックすると、Entityの中身が確認できます。

図18:Entity内容確認

画面の作成

次は、画⾯を作成します。Interfaceレイヤ(右上の4つのタブの左から2つ目)をクリックし、UI Flowsフォルダ > MainFlowをダブルクリックして開いた後、左側のアイコン群から、Screenを真ん中のエリアにドラッグ&ドロップします。

※MainFlowを右クリック > Add Screenを選択しても画面が作成できます。

図19:画面作成

画面作成ウィザードが表示されるので、Emptyが選択されている状態で「Create Screen」ボタンを押します。

図20:画面詳細設定

これで新しい画面が作成されます。先ほどの画面作成ウィザードで設定しなかったScreen nameは自動で「Screen1」と設定されています。「Screen1」を選択し、画面の名前を「EmployeeList」に変更します。

図21:画面名変更前

図22:画面名変更後

画面のタイトルを設定します。

画面中央のエリアにマウスオーバーすると、TitleやAction、Contentのプレースホルダーが表示されるので、Titleプレースホルダーをクリックし、「従業員一覧」と入力します。

図23:画面タイトル設定

画面に従業員の一覧表を表示します。先ほど作成したEmployeeエンティティを、画面のContentのプレースホルダーにドラッグ&ドロップします。

図24:従業員一覧作成

一覧画面はこれで完成です。画面上部の中央にある緑色のボタンを押して、パブリッシュします。

図25:パブリッシュ前表示

パブリッシュが終わると青色のボタンになります。

図26:パブリッシュ後表示

続けて画面のアクセス権限を設定します。

ここまで従来のOutSystemsの画面作成手順とあまり変わらず画面を作ることができましたが、アクセス権限の設定については若干の変更があるようです。従来のOutSystemsの画面のRoleの設定部分が変更されており、ODCでは、Authorizationの「Accessible By」の中から選択できるようになっています。

※Authorizationの説明は、後述の「3.ここが違う従来のOutSystemsとの比較」で記載します。

図27:ODCと従来のOutSystemsの画面のアクセス制御比較

今回は「Everyone」を選択して、再度パブリッシュを行います。

図28:画面のアクセス制御設定

パブリッシュ後に画面を開くと、ユーザーログインなしで画面を表示することができました。

図29:従業員一覧画面表示確認

3.ここが違う従来のOutSystemsとの比較

ODCで従業員一覧画面を作ってみたところ、画面やロジックを作成するうえでの操作性は従来のOutSystemsとほぼ変わりませんでしたが、アーキテクチャや権限設定などで大きな変更点があるようです。
「2.ODCでアプリケーションを作ってみる」の流れで見えてきた、ODCと従来のOutSystemsとの違いについて3点記載していきます。(2023年4月現在の内容です)
本章は従来のOutSystemsの知識がある人向けとなっています。OutSystems初心者の方はこちらを参照ください。

 

①モジュールという概念がなくなり、作成できるのはアプリとライブラリの2種類のみ

冒頭でも触れましたが、ODCはアプリ、ライブラリのみ作成が可能です。アプリは、タイマー、UI 関連要素、アクション、ロール、エンティティなど様々な要素を作成します。ライブラリは、ビジネスに依存しない、連携用のラッパーアクション、スタイルとテーマ、再利用可能なUIブロックのような再利用性の高い要素を作成します。従来のモジュール構成はUI、コア、ライブラリの構造となっていましたが、ODCでは機能単位でアプリを分割する必要があります。

 

図30:従来のOutSystemsとODCのアーキテクチャ構成の比較

ODCでアプリをパブリッシュすると、アプリは疎結合のコンテナにパッケージ化されます。

2つのアプリがある場合は、2つの異なるコンテナにパッケージ化され、アプリ間の参照はすべて疎結合(弱い参照)になります。


図31:ODCのパブリッシュの仕組み(アプリのみ)

アプリがライブラリの要素を使用する場合は強い参照になります。そのため、ライブラリは独立したコンテナに格納されるのではなく、各コンシューマアプリのコンテナにまとめてパッケージ化されます。例えば、ライブラリを2つのアプリで使用する場合、各アプリのコンテナにまとめてパッケージ化されます。

図32:ODCのパブリッシュの仕組み(ライブラリあり)

適切に機能分割を行うことが前提となりますが、ODCで開発することで、意識することなくマイクロサービスの構成で作成することができるようになっています。

 

②画面のロールのAnonymous、Registeredは廃止

OutSystemsの画面のロールの設定は、Authorization(認可)という表現に変更されています。従来のOutSystemsのビルトインロールの「Anonymous」「Registered」は廃止され「Accessible by」の選択肢により、アクセス制御の有無を選択することが可能となっています。

 

「Accessible By」の選択肢としては2つ、「Authenticated users」と「Everyone」です。「Authenticated users」を選択した場合は、アプリ内で作成されたロールが選択肢として表示され、選択されたロールを持つユーザーのみ画面にアクセスできるようになります。

図33:Authenticated users選択時のODC Studioの表示

「Everyone」を選択した場合は、従来のOutSystemsにあった「Anonymous」と同様のアクセスが可能です。「Authenticated users」で表示されていたロールは表示されなくなります。

図34:Everyone選択時のODC Studioの表示

 

 

③ServiceCenterやLifeTime、User管理やロール管理はODCポータルに移行

従来のLifetime、ServiceCenter、ユーザーアプリケーションで行っていた機能がODCポータルに集約されました。

 

ODCポータルでは、アプリの監視、管理やデプロイ、ユーザーやアクセスの管理ができます。ユーザーについては、エンドユーザーとITユーザーは廃止になり、ODCでは組織ユーザーのみ作成され、ODCポータルで管理されるようになりました。

また、ServiceCenterで変更が可能となっていたサイトプロパティは、Settingsという名称に変更され、ODCポータルでの変更が可能になっています。

図35:Settingsの表示

Settingsには「Is secret」が新しく追加されており、「Yes」に設定するとODCポータルでのみValue値を設定できるようになり、ODCポータル上はマスキングされて表示されます。

 

 

 

 

 

 

 

 

 

図36:EmployeeManagementにSettings「Test」を作成した図

 


図37:EmployeeManagementに作成したSettings「Test」をODCポータルで確認した図

 

従来のOutSystemsとODCの違いについて、当記事で触れた内容を少し掘り下げてご紹介しました。変更点は他にもありますが、その他の変更点や詳細は、こちらを参照ください。

4.最後に

今回作成した従業員一覧画面は、画面とEntityが1つずつのシンプルな構成となっていることもありますが、従来のOutSystemsとODCの違いはあまり見られず、開発自体は、比較的簡単に行える結果となりました。とはいえ、「3.ここが違う従来のOutSystemsとの比較」の中で記載したように、従来のOutSystemsとアーキテクチャの構成が大きく異なるため、特に従来のOutSystems経験者は、プロジェクトでシステム構築する際に難しさを感じることがあるかもしれません。ですが、ODCであれば、システムの機能改善や改修もシステム全体を止めることなく実施することが可能で、新機能の導入も柔軟に対応することができます。

本記事をご覧いただき、「これならできるかも」、「これならやってみよう」と思っていただければ幸いです。新しいOutSystemsであるODCを、ぜひ試してみてはいかがでしょうか?

tdiはローコード開発に力を入れていますので、こちらにお気軽にお問い合わせ下さい。

お問い合わせ先

執筆者プロフィール

Hamaguchi Yukiko
Hamaguchi Yukikotdi OutSystems推進室
Java、COBOL開発、マイグレーションなどの経験を経て、現在は主にOutSystemsの技術支援、教育支援等を担当しています。
なせば成るの精神で日々精進しています。
Pocket

関連記事