Textus Samples 01.a: 呼び出し元の違い
前提
本記事では、📄 Textus Samples: Launcherとインストール の手順で準備した環境を使います。
-
textus-tutorial-0.1.3を展開済み -
公開 channel の最新
cncf/cozy/textuslauncher を確認済み -
01-minimalのminimal.main.helloselector を確認済み
download 手順は前提記事で扱っているため、ここでは再掲しません。
学ぶこと
-
selector と Component の読み込み元は別の概念であること
-
development directory から読み込む時の意味
-
component repository から読み込む時の意味
-
読み込み元を変えても
minimal.main.helloの意味は変わらないこと
概念の焦点
-
selector は実行対象の論理名です。
-
invocation source は、その selector を解決するために runtime が Component を探す場所です。
-
同じ selector が同じ結果を返しても、読み込み元が同じとは限りません。
開発ディレクトリからの読み込み
development directory source では、現在の sample directory が active Component の読み込み元になります。これは、Component を編集しながら短い周期で確認する時の形です。
samples/01.a-invocation-source-lab
|
v
runtime loads local development classes
|
v
minimal.main.hello
この形では、source tree がそのまま開発中 Component として扱われます。package 済み artifact を確認しているわけではありません。
Component repositoryからの読み込み
component repository source では、sample を一度 package し、component directory に置いた artifact を runtime が読み込みます。
source tree
|
v
packaged artifact in component.d
|
v
runtime loads repository-style artifact
|
v
minimal.main.hello
この形は、source を直接読むのではなく、配布・配置された Component を読む感覚に近くなります。
比較
| 観点 | development directory | component repository |
|---|---|---|
|
Component source |
現在のsample directory |
component directory上のartifact |
|
Selector |
|
|
|
Main use |
編集しながら確認する |
package後の読み込みを確認する |
|
Learning point |
開発中Componentとして読む |
配置済みComponentとして読む |
どちらも同じ Operation を呼び出します。違いは、Operation の意味ではなく、runtime に渡される Component の供給経路です。
確認
確認する場合は、sample directory 内で2つの入口を実行します。ただし、ここでの目的は script の行を追うことではなく、同じ selector が異なる読み込み元で解決されることを確認することです。
$ cd samples/01.a-invocation-source-lab
$ ./run.sh
$ ./invoke.sh
結果の読み方
どちらも Hello CNCF を返します。この一致は、同じ selector が解決されていることを示します。
ただし、同じ結果であることだけを見て終わると、このlabの意味を取り逃します。見るべき点は、development directory source と component repository source が、同じ runtime surface を別の供給経路から作っていることです。
CNCFエンジン上の意味
CNCF (Cloud Native Component Framework) engine は selector を解決する時に、Component をどこから取得するかという読み込み経路を持ちます。
この分離により、開発中は source tree を使い、検証や配布に近い場面では artifact を使う、という切り替えができます。
次へ
次の記事 📄 Textus Samples 01.b: 起動形態では、同じ Component を command / server / client という異なる runtime role で見る方法を確認します。
参照
用語集
- コンポーネント (Component)
-
責務・契約・依存関係を明示的に定義し、再利用可能で交換可能な単位としてカプセル化されたソフトウェア構成要素。論理モデルでは抽象構造単位として、物理モデルでは実装・デプロイメント単位として扱われる。
- Cloud Native Component Framework (CNCF)
-
Cloud Native Component Framework(CNCF)は、クラウド・アプリケーションを構成するコンポーネントを、単一かつ一貫した実行モデルで実行するためのフレームワークです。 Component / Service / Operation という構造を中核とし、command、server(REST / OpenAPI)、client、script といった異なる実行形態から、同一の Operation を再利用できることを特徴とします。 ログ、エラー処理、設定、配備といったクラウド・アプリケーションに必要な品質属性をフレームワーク側に集約することで、コンポーネントはドメイン・ロジックの実装に集中できます。 CNCF は、文芸モデル駆動開発および AI 支援開発を前提に、「何を実行するか」と「どのように呼び出すか」を分離するための実行基盤として設計されています。
- 仕様確認 (verification)
-
Verification(仕様確認)とは、規定された設計仕様や要求仕様に対して、実装が一致しているかを確認する行為である。