ランタイムIDE

Workbench

稼働中のシステムの内部から、アプリケーションを構築、デバッグ、チューニング。ライブデータ、コンポーネント、ロジックに直接アクセスできるブラウザベースのIDEです。

ファブリックにおける役割

稼働中のシステムの内部で構築・デバッグ

外部のIDEは、構造化されたプロジェクトやソース管理に適しています。しかし、作業の多くは稼働中のシステムのより近くから始まります。

  • ストリームの確認やスキーマの探索
  • クエリのテストや変換処理のレビュー
  • イベントが期待どおりの結果を生まなかった原因の調査

Workbenchは、まさにこうした作業のために AmiCore に組み込まれたブラウザベースのIDEです。各ユーザーのエンタイトルメントの範囲内で、現在の環境のライブデータ、コンポーネント、ロジックに直接アクセスできます。

外部エディターでは見えないものが見えます。ライブの状態、進行中の実行、そして各プロシージャが周囲のアプリケーションとどう相互作用するかです。

AmiCore 内のブラウザベースIDEである Workbench。AmiScript、コラボレーション、トラブルシューティングを1つのウィンドウで
データの探索、AmiScript、アプリケーション自身のオブジェクトを、アプリケーションが動いているウィンドウの中で。

機能

ブラウザで完結するツール一式

Data Modeler

データへのアクセス、変換、アプリケーションへの受け渡しの方法を、視覚的に設計できます。

  • データベース、ファイル、リアルタイムフィードを接続
  • SQL と AmiScript でフィルタリング、結合、集計、ブレンドを行い、再利用可能なデータモデルを作成
  • リアルタイムのデータモデルを含め、あらゆるダッシュボードコンポーネントの背後にあるデータを編集

単なるデータベースの図ではありません。ソースデータを、ユーザーが目にするすべてのテーブル、チャート、フォームに変えるライブ処理を定義します。

各ダッシュボードコンポーネントの背後にあるデータモデルを扱う、ウィザード形式のインターフェースである Data Modeler
ソースデータを、アプリケーションが読み込むデータモデルに変える Data Modeler。

Debugger

AmiScript を、書いたその場所でデバッグ。

  • 任意の行にブレークポイントを設定し、停止のたびに変数とコールスタックを確認
  • 接続されたインスタンスでコールバックをテスト。再現環境ではなく、ライブデータやテストデータを使用
  • 試行的な変更は、明示的に保存するまで一時的なまま
AmiScript のブレークポイントで一時停止したインラインデバッガー。Debugger パネルに変数を表示
AmiScript の行にブレークポイントを設定したインラインデバッガー。

Database Shell

データベースとOSのコマンドを、ブラウザ上の1つのシェルで。

  • なじみのあるMySQLライクな AMI SQL で、Center を照会、設定、管理
  • SHOWで稼働中のオブジェクトを一覧表示、DESCRIBEで任意のオブジェクトを再構築するSQLを取得、DIAGNOSEでテーブルのメモリなどの運用情報を確認
  • SSH経由のシェルコマンド。stdout、stderr、終了コードを取得
アプリケーションと同じブラウザウィンドウ内の Database Shell とSSHコマンドインターフェース
アプリケーションが動くブラウザウィンドウから、データベースとシェルのコマンドを実行。

Merge Tool

複数の開発者によるレイアウトの変更を、安全に統合。

  • アプリケーションの構造に沿って変更を把握
  • 操作可能なツリーとして表示
  • 競合は、二重に変更された要素そのものまで特定
Merge Tool で統合された、複数の開発者によるレイアウトの変更
1つのレイアウトに対する複数の開発者の変更を調整する Merge Tool。

F1 Console

稼働中の AMI Web インスタンスを管理・診断。

  • アクティブなユーザー、セッション、レイアウトと、それぞれのリソース消費
  • セッションの終了とヘッドレスセッションの管理
  • 選択したセッション内での AmiScript の実行
稼働中の AMI Web インスタンスのユーザー、セッション、レイアウトを表示する F1 Console

活用の場

エンジニアリングプロセスを置き換えず、補完する

Workbench は、ソース管理やソフトウェア開発ライフサイクルを置き換えるのではなく、補完します。Workbench はプラットフォームを直接扱い、Visual Studio Code などのエディターは専用プラグインで接続します。その方法については、AmiScriptと3forge Pluginをご覧ください。

  • 既存のDevOpsワークフローに適合する継続的インテグレーション
  • すべてのモダンブラウザで一貫した機能と外観
  • デバイスを問わない:構築したものは、デスクトップ、タブレット、モバイルで完全にレスポンシブ

スケールを見据えた設計

Custom Methods

ロジックを一度定義すれば、コールバック、ボタン、フォーム、データモデル、ビジュアルコンポーネント、イベントハンドラーなど、レイアウトのどこからでも呼び出せます。

  • ビジネスルール、書式、検証、エンタイトルメントチェックごとに定義は1つ
  • 依存するすべてのパネルやスクリプトではなく、1か所で変更
  • より簡潔な AmiScriptと、よく構造化されたアプリケーションのように振る舞うレイアウト
Custom Methods の宣言例
1つのブロックに3つのメソッド:2つの整数を扱うsum()、2つのdoubleを扱うオーバーロードされたsum()、リストを扱うflatten()。

組み込みヘルプ

開発フローに組み込まれたコンテキストガイダンス

ガイダンスは別のリファレンスではなく入力中に表示され、同じセッション内でJava、Python、SQL、3forge の金融向けネイティブ構文をカバーします。

  • パラメーター、型、戻り値、使用パターンをその場で表示
  • ロジックを実行するのと同じモデルに基づくため、常に環境と正確に一致
  • 作業を止めてドキュメントを探す必要なし
3forge Workbench に組み込まれたコンテキストヘルプ
パフォーマンス管理

大規模環境のパフォーマンス管理

実行をリアルタイムに観察し、ボトルネックをすばやく特定して、ユーザーや下流のワークフローに影響が及ぶ前に解消します。パフォーマンスの可視化は第一級の機能であり、実際の運用条件の下で機能します。

ランタイムの詳細な計測

実行、データアクセス、レイテンシ、スループットを全体にわたって計測します。フレームグラフによるスレッド分析で時間の使われ方を正確に把握し、遅い処理経路を的確に特定して修正できます。

高度なログビューアー

専用のビジュアライゼーションが、アプリケーションログをJVMメモリの割り当て、消費量、余力の明確な全体像に変え、自動生成される所見が分析を導きます。

エンドツーエンドのレイテンシ分析

イベントのタイムスタンプからすべての処理段階までレイテンシを相関付け、傾向、外れ値、ドリフトを浮き彫りにするライブレイアウトで表示します。

セッション単位のリソース帰属

単一のJVM内のリソース使用量を、個々のユーザーやアプリケーションに帰属させます。偏りを見つけ、重要なユーザーを保護し、スケールに応じて何が負荷を生んでいるかを把握できます。

ログメッセージやスレッドから、トリガー、負荷分散、メモリまで、エンジンのほぼあらゆる側面を追跡できます。ここでは LogViewer を紹介します。

ログメッセージストリーム

ログメッセージストリーム

スレッドアクティビティ

スレッドアクティビティ

トリガーイベントのタイムライン

トリガーイベントのタイムライン

負荷分散

負荷分散

JVMメモリ割り当て

JVMメモリ割り当て

キュー処理メトリクス

キュー処理メトリクス

続きを読む

作業の場は Workbench、書かれるのは AmiScript です。

データ、ロジック、ワークフロー、プレゼンテーションを貫く1つの言語。