ウィジェットの作成を開始する前に、開発者はウィジェットの特定の設計原則に注意する必要があります :
- ウィジェットは小さく、再利用可能で、ユーザ中心の Web アプリケーションであると考えられています
- 一般的なウィジェットが望ましいですが、それらがすばやく安価なら、アドホックな解決策も許されます
- ウィジェットは実際の問題に適応する必要があります
- ウィジェットは主にフロントエンド層(View)の要素です。ウィジェットはバックエンド・サービスに直接アクセスすることが できますが、可能であればこれらのタスクのためにオペレータを作成することが望ましいです。これらのウィジェットと オペレータはワイヤーリング・エディタを使用して接続できます
- ウィジェットの開発中に、Webブラウザ (XHTML, JavaScript, SVG, Flash, アプレットなど) で受け入れられる技術を 使用できます
ウィジェットは、3つの異なるコンポーネントに分割できます :
- ディスクリプタ (
config.xml
) : ウィジェットの宣言的な記述です。このファイルには、とりわけ、ウィジェットの残りの リソースへのリファレンスが含まれています。この記述ファイルは、Mashable Application Component Description Language (別名 MACDL) を使用して記述されています - コード、HTML ファイル、JavaScript ファイル、CSS ファイル、SV Gファイル... : これらのファイルにはウィジェットの 実装が含まれており、標準の Web ページを作成していれば正確に動作します。考慮する必要があるのは、コードで新しい API : Widget API にアクセスできることだけです
- スタティック・リソース。イメージ、ドキュメント、その他の静的リソースなど
それらのファイルはすべて zip ファイルにパッケージ化する必要があります。通常、.wgt
拡張子を使用するように名前が
変更されています。次の図は、ウィジェットの可能なファイル構造を示しています :
.
+-- docs
| | ...
| +-- index.md
+-- css
| | ...
| +-- style.css
+-- images
| | ...
| +-- catalogue.png
+-- js
| | ...
| +-- main.js
+-- CHANGELOG.md
+-- config.xml
+-- index.html
+-- DESCRIPTION.md
この種の構造、または同様の構造を使用することをお勧めしますが、
config.xml
ファイルが zip ファイルのルートにある ことを除いて、任意のものを使用できます。
オペレータはウィジェットと同じ方法で作成されますが、唯一の違いは記述子ファイル (config.xml
) が最初の HTML
ドキュメントにリンクしないことです。オペレータはビジュアルコンポーネントを持たないためです。代わりに、使用した
JavaScriptファイルのリストを config.xml
ファイルからリンクする必要があります。
オペレータは、次の3つのタイプを使用して分類できます :
- Data source operators : 他のウィジェット/オペレータが利用できる情報を提供するオペレータ。たとえば、Web サービスから何らかのタイプの情報を取得するオペレータです
- Data target operators : 情報を提供され、それを使用していくつかのタスクを実行するオペレータ。 たとえば、いくつかの情報を受け取り、Web サービスにプッシュするオペレータです
- Data transformation operators : このタイプのオペレータは、データ構造がわずかに異なることを期待する ウィジェットまたはオペレータが使用できるようにデータを変換できるので、非常に便利です
ウィジェット/オペレータのプロジェクトの準備¶
ご覧のとおり、WireCloud ウィジェット/オペレータを作成することは、ファイルを編集して zip ファイルにパッケージ化 することであり、簡単なエディタと zip ツールを使用して簡単なウィジェット/オペレータを作成することができます。
ただし、単体テストを渡したり、ウィジェット/オペレータを自動的にデプロイしたりするには、より洗練されたスキーマが 必要です。
WireCloud には、このプロセスを容易にするために次のツールが用意されています :
- Widget APIのモック : WireCloud インスタンスにウィジェット/オペレータを配置することなく、ユニット・テストをパスすることできます
- grunt のためのツールのセット : 面倒なタスクを使用して、 ウィジェットやオペレータを展開することができます
- オペレータのプロジェクトのための grunt-init のテンプレート と ウィジェット・プロジェクトのための別のgrunt-init テンプレート 。これらのテンプレートを使用して作成されたプロジェクトは、Widget API モックと、ウィジェット/オペレータの単体テスト ための jasmine、それをビルドするための grunt、展開するための grunt-wirecloud を使用します。これらのテンプレートは、必要に応じてフォークしたり、テンプレート・リポジトリの 問題追跡ツールを使用して新しい機能やバグ修正などをリクエストすることができます
- 完全な IDE を好む人のための Eclipseプラグイン
次は何をするか?¶
FIWARE Academy で WireCloud コース を続行することをお勧めします。 例で学ぶ方が簡単だと思います。とにかく、以下のセクションでは、WireCloud のウィジェットとオペレータを開発するための リファレンスドキュメントを提供します。