プラットフォームは、(ファイル、データベース、テーブル、およびコレクションの永続性要素の命名に関していくつかの制約を課します。プラットフォームの上で実行されるソリューションのデータモデルを設計する際には、そのような制約とさまざまなストレージでそれらを解決する方法を考慮する必要があります。
グローバル文字セットとサイズ制限¶
グローバルに、プラットフォームはデータモデルを定義する際に一定の規則を課します。これらのルールは、エンティティおよび属性名とその型に使用されるキャラクタセットに関する Orion Context Broker の制約から、直接得られます :
- 次の文字が禁止されています :
<,>,",',=,;,(,) - 次の文字も避けるべきです : 空白,
?,/,%,&
さらに、Orion Context Brokerには次の制限があります :
FIWARE-serviceは最大長が50文字で、アンダースコアを含む英数字の文字列でなければなりませんFIWARE-servicePathはスラッシュで始まり、最大10のレベルを有する Unixライクのパスを定義する文字列でなければなりません。各レベルは、最大長が50文字のアンダースコアを含む英数字の文字列です。それにもかかわらず、プラットフォームは現在、単一のレベルのみを許可しています
Orion Context Broker のこれらの制限は、HDFS, MySQL, CKAN, MongoDB/STHのCygnusコネクタを介してストレージに伝播されます。
HDFS文字セットとサイズ制限¶
HDFSのコンテキストデータを保持するということは、パス名が英数字とアンダースコアの64文字の文字列に制限されているフォルダとファイルの作成を意味します :
hdfs:///user/<FIWARE-service>/<FIWARE-servicePath>/<entityID>_<entityType>/<entityID>_<entityType>.txt
FIWARE-service, FIWARE-servicePath内の他の文字、英数字およびアンダースコア以外のエンティティIDおよび型は、アンダースコアで置き換えられます。
MySQLの文字セットとサイズの制限¶
MySQL でコンテキストデータを永続化することは、名前が英数字とアンダースコアの64文字の文字列に制限されているデータベースとテーブルを作成することを意味します :
- データベース :
<FIWARE-service> - テーブル :
<FIWARE-servicePath>_<entityID>_<entityType>.
FIWARE-service, FIWARE-servicePath内の他の文字、英数字およびアンダースコア以外のエンティティIDおよび型は、アンダースコアで置き換えられます。
CKANキャラクタセットとサイズ制限¶
CKAN のコンテキストデータを保持することは、名前、英数字とアンダースコアの64文字の文字列に制約された組織、パッケージ、およびリソースの作成を意味します :
- 組織 :
<FIWARE-service>. - パッケージ :
<FIWARE-service>_<FIWARE-servicePath>. - リソース :
<entityID>_<entityType>.
FIWARE-service, FIWARE-servicePath内の他の文字、英数字およびアンダースコア以外のエンティティIDおよび型は、アンダースコアで置き換えられます。
MongoDB/STH 文字セットとサイズ制限¶
MongoDB/STH のコンテキストデータを保持することは、データベースとコレクションの作成を意味します :
- データベース :
<FIWARE-service>. - コレクション :
<FIWARE-servicePath>.
MongoDB はこのように名前を制限しています:
/,\,.,",$はデータベース名では使用できません。データベース名は空にはできず、64文字未満でなければなりません$、空の文字列とヌル文字はコレクション名では使用できません。さらに、コレクションは.systemプレフィックスで開始できません。コレクション名空間の最大長は、データベース名、ドット区切り文字、およびコレクション名(つまり、<database>.<collection>)を含み、120バイトです
上記の制限は、FIWARE-service と FIWARE-servicePathに課せられた制限のためにプラットフォームに影響を与えません。