フルマネージド
コンテキストブローカー
NGSIv2 + NGSI-LD デュアルプロトコル/AI・地理空間ネイティブ/エンタープライズ認証認可/運用レス
会社概要
| 商号 | 株式会社 Geolonia(Geolonia Inc.) |
|---|---|
| 親会社 | ジオテクノロジーズ株式会社(GeoTechnologies, Inc.) |
| 設立 | 2019年8月 |
| 資本金 | 67,022千円(資本準備金 45,010千円) |
| 本社所在地 | 〒113-0021 東京都文京区本駒込二丁目28番8号 |
| 役員 |
|
| 従業員数 | 27名 |
- デジタル庁
- 国土交通省
- 国土地理院
- NHK
- ソフトバンク株式会社
- 株式会社竹中工務店
- 高松市
- 焼津市
- 那須塩原市
- 延岡市
- 鳥取県
- 空間ID(経済産業省 / DADC)
ID 付与のための計算式の考案、共通ライブラリの無償提供 - スマートシティリファレンスアーキテクチャ(内閣府)
地理空間情報連携基盤の仕様策定、SCRA 第3版〜第5版の執筆
コンテキストブローカーとは?
IoT・都市・業務システムが生む「いま」の状態(コンテキスト)を一元管理する基盤。登録・更新の受け取り、最新状態の保持・問い合わせ・購読(Pub/Sub)を標準 API で提供し、データの生産者と利用者を疎結合につなぎます。
1 つの GeonicDB をテナント(組織・プロジェクト)ごとに完全分離して共有。NGSILD-Tenant / Fiware-Service ヘッダで切り替わり、データも権限もテナント境界で隔離されます。(詳細は次頁)
GeonicDB が実現する近未来のスマートシティ
街のいまを「状態の集合体」として束ねる、スマートシティのための都市 OS。
国際標準に準拠したコンテキストブローカー
スマートシティ・IoT のコンテキスト情報を、相互運用可能な形で表現・管理する国際標準。GeonicDB は NGSI-LD と FIWARE NGSIv2 を 1 エンジンで両対応します。
マルチテナンシー
1 つの GeonicDB をテナント(組織・プロジェクト)単位で完全分離して共有。リクエストの NGSILD-Tenant / Fiware-Service ヘッダでテナントが切り替わり、データも権限も混ざりません。エンティティ ID が同じでもテナントが違えば別物として扱われます。
むずかしいことや面倒なことはAIにおまかせ
MCP サーバーや CLI があるため、各種設定やデータの作成、アプリの開発を AI に自然言語で頼むことができます。
AI サービスは別途ご契約いただく必要があります。
NGSIv2 と NGSI-LD に対応
1 つのブローカーで NGSIv2 と NGSI-LD の両方の標準 API に対応。用途に合わせてどちらの形式でもエンティティを取得できます。下のボタンで実際の API レスポンスを取得します。
GET /v2/entities/{id}取得を待機中…
GET /ngsi-ld/v1/entities/{id}取得を待機中…
回答が「つながるデータ」になる
NGSI-LD(ETSI 国際標準)は、エンティティ同士が Relationship でつながるリンクトデータ。組織を越えても意味を保ったまま連携できます。
送信するとここに実エンティティが表示されます…
Geo クエリーでデータを絞り込む
あらゆる時系列データを過去にさかのぼって取得
GeonicDB はすべての変化を履歴として保持。Temporal API で「いつ・どの瞬間の状態だったか」を期間指定で問い合わせられます。下のスライダーで時刻をさかのぼれます。
条件がそろえば、あとは自動
ReactiveCore Rules は GeonicDB 内蔵のルールエンジン。エンティティの変化を監視し、条件に一致すると通知・Webhook・属性更新などのアクションを自動実行します。
外部のルールエンジンやワークフロー基盤を別途構築せず、ブローカー内で完結。
組織をまたがってデータを集約
フェデレーションは、テナントやドメインの異なる複数の GeonicDB を 1 つの窓口にまとめる仕組み。手元の GeonicDB が問い合わせを別テナント・別ドメインの GeonicDB へ並列に転送し、返ってきた結果をひとつに束ねて返します。データを 1 か所にコピー・集約する必要はありません。
Context Source Registration にもとづく分散クエリ/更新の転送・結果マージ。ループ検知(Via)・警告ヘッダ(NGSILD-Warning)に対応(ETSI GS CIM 009)。
避難所の混雑度を時系列データで
指定避難所の位置に Temporal API の受入状況を重ね、1 日の混雑の移り変わりを再生。下のスライダーで時刻を動かすと各避難所が混雑度で色分けされ、クリックすると 24 時間の推移が見られます。
共同編集が可能な GIS
地図にポイント・ライン・ポリゴンを描くと NGSI-LD の地物として作成され、WebSocket で全員の画面にリアルタイム反映。現地調査・資産管理・エリア共有などを 1 つの地図で共同編集できます。
リアルタイムメッセージング
投稿(名前+メッセージ)は NGSI-LD エンティティとして作成され WebSocket で全員に配信。サーバの ReactiveCore Rules が投稿を検知してログを自動記録します。メッセージとログを並べてリアルタイムに確認できます。
geonicdb-livedeck-Message、ログは ReactiveCore Rules が生成する geonicdb-livedeck-MessageLog。WebSocket で全員に配信されます。こんな現場にフィットする
スマートシティ / 自治体
交通・駐車・環境モニタリング。空間 ID・CADDE で日本市場に適合。
AI 駆動 IoT 分析
MCP 経由でエージェントが自律的にデータ投入・検索。自動バリデーション。
オープンデータ公開
DCAT-AP / CKAN ハーベスタ連携でポータルへ自動収集。
マルチテナント SaaS
XACML・IP 制限・JWT RBAC で PEP プロキシ不要。
地図・位置情報アプリ
ベクトルタイル直結でカスタム描画コード不要。
LLM アシスタント付き Web
SDK 型定義 + MCP で Claude / Cursor から開発。
機能の充実度で大きく差がつく
| 機能 | GeonicDB | FIWARE Orion |
|---|---|---|
| NGSIv2 / NGSI-LD | ◎ 両対応(1 エンジン) | ○ 製品が分離 |
| Temporal API | ◎ フル | △ 限定的 |
| WebSocket / ベクトルタイル / 空間 ID | ◎ | ✕ |
| 組込み JWT / RBAC / XACML | ◎ | ✕ プロキシ別途 |
| 外部 OIDC / IP 制限 / DPoP | ◎ | ✕ |
| DCAT-AP / CKAN / CADDE | ◎ | ✕ |
| スケーリング | オートスケール | 手動 |
出典: docs/FIWARE_ORION_COMPARISON.md。Orion はオンプレ/マルチクラウド/FIWARE スタック実績で優位。
Appendix
技術詳細・補足データ・参考情報
全機能カタログ ①
- エンティティ CRUD(一覧・ページング・フィルタ・ソート)
- バッチ操作
POST /v2/op/update(append/update/delete/replace) - 属性レベル操作(get/set/delete・値のみ)
- 型管理(型一覧・メタデータ)
- サブスクリプション(Webhook/MQTT・条件・スロットリング)
- レジストレーション/フェデレーション
- 作成/取得/置換(PUT)/マージ(PATCH)/属性追加
- マルチ属性(
datasetId) - バッチ create/upsert/update/merge/delete/purge
- サブスクリプション(cooldown・showChanges・指数バックオフ)
- Context Source Registration(CSR)
- 型・属性・JSON-LD コンテキスト管理
- 時系列データの作成・取得・バッチ操作
- 時間演算子
timerel(after/before/between)・lastN - 集約
aggrMethods(count/sum/avg/min/max/stddev…) temporalValues簡易表現- MongoDB Time Series 格納・プラン別上限
- Geo クエリ
georel(near/within/intersects/…) - 空間 ID(ZFXY)・
spatialIdDepth階層 - CRS 変換(EPSG:4326/3857・URN)
- GeoJSON 出力(
options=geojson) - ベクトルタイル(TileJSON 3.0・自動クラスタリング)
- Smart Data Models(8+ ドメイン/50+ 型)
- カスタムデータモデル(JSON Schema 自動生成・検証)
- データカタログ(DCAT/CKAN・全文検索)
- CADDE 連携(ブローカー間データ交換)
- WebSocket ストリーミング(JWT/APIKey/DPoP・フィルタ・自動再接続)
- MQTT サブスクリプション(3.1.1/5.0・QoS・TLS・retain)
- ReactiveCore Rules(CEL 条件・アクション・クールダウン)
全機能カタログ ②
- レジストレーション(外部プロバイダ登録・転送)
- CSR/Subscription(NGSI-LD・ループ検知・警告伝播)
- エンティティマップ(クエリ結果キャッシュ)
- AI Plugin Manifest(
/.well-known/ai-plugin.json) llms.txt/tools.json/ OpenAPI- MCP サーバ(
POST /mcp)・A2A(POST /a2a) - 統一 5 ツール(entities/batch/temporal/config/admin)
- JavaScript SDK(
@geolonia/geonicdb-sdk) - 公式 CLI(
geonic)— 管理・認証・JSON/YAML 出力 - OpenAPI/Swagger(
/openapi.json・/api.json)
- マルチテナンシー(Fiware-Service/NGSILD-Tenant)
- サービスパス階層・クォータ&レート制限
- High Availability/フェイルオーバー(マルチリージョン)
- ヘルスチェック・監視(Prometheus/X-Ray)
- スナップショット・バックアップ
- 文字列長(ID/型/属性名 256・クエリ 2000)
- 配列要素数(attrs/pick/omit 各 50・バッチ 100)
- 数値境界(throttling・timeout・lastN)
- ネスト深度 10・ReDoS 対策(正規表現 200 字)
- 全入力を Zod スキーマで検証
※ 出典: GeonicDB プロダクトリファレンス「全機能カタログ(網羅的)」
AI 連携の仕様
/.well-known/ai-plugin.jsonAI プラグインマニフェスト/llms.txtLLM 向け概要(llmstxt.org 準拠)/openapi.json・/api.json(OpenAPI 3.0)/tools.jsonTool Use / Function Calling スキーマ- いずれも未認証で取得可 → エージェントが自力で把握
POST /mcp(Model Context Protocol)- Streamable HTTP トランスポート(ステートレス)
- Claude / Cursor など MCP クライアントから直結
- 認証: Bearer(JWT)— ロールに応じた認可
POST /a2a(JSON-RPC 2.0・protocol 0.2.2)- Agent Card
/.well-known/agent-card.json - 同期リクエスト/レスポンス(タスク状態管理あり)
- 認証: Bearer / API Key / OAuth2 / DPoP
entities— CRUD・型・属性・geo 検索batch— 一括操作(最大 100 件)temporal— 時系列・履歴config— Rules・JSON-LD・Data Modelsadmin— ユーザー・テナント・ポリシー
- ツール実行はアクセス主体のロールに従う
config/adminは tenant_admin / super_admin のみ- XACML 3.0 ポリシーをそのまま適用
- エージェント経由でも権限は越えられない
- MCP 対応ツール(Claude Desktop / Code 等)
- A2A 対応エージェント基盤
tools.jsonで OpenAI Function Calling 互換- SDK / CLI と同じ API・同じ認可で動作
※ エンドポイント定数は本体 src/config/defaults.ts(MCP_PATH / A2A_PATH / AGENT_CARD_PATH ほか)に準拠
管理機能
- テナントの作成/更新/削除・有効化/無効化
- クォータ・使用量(取得/更新・履歴)
- per-tenant IP 制限(allowlist)
- ユーザー CRUD・有効化/無効化・ロック解除
- テナントへの所属追加/削除・所属一覧
- パスワードポリシー(最小 12 文字)
- API キー(作成/更新/失効/リフレッシュ)
- OAuth クライアント(作成/更新/Secret 再生成/削除)
- 本人用
/me配下のキー・クライアント・ポリシー
- ポリシー CRUD・有効化/無効化
- ポリシーセット・優先度・deny-fence
- XACML エクスポート/インポート
- 「いつ・誰が・何を」を構造化記録(
level=AUDIT) - 対象: エンティティ/バッチ・購読・管理操作・ログイン/トークン更新・特権読み取り
- 記録項目: actor(id/email/role)・tenant・servicePath・resourceId・statusCode・clientIp・correlator/traceId
LOG_LEVEL=SILENTでも必ず出力(コンプライアンス用途)
- メトリクス(
/admin/metrics・API 呼び出し)・Prometheus・OpenTelemetry/X-Ray - ヘルスチェック(
/health・/health/ready) - テナント削除+暗号消去(crypto-shred・KMS 鍵失効)+削除レポート
- CADDE 設定管理
信頼性
- サーバーレスで自動スケール
- 冗長構成+マルチリージョン
- 自動フェイルオーバー 10–30 秒
- RTO < 5 分 / RPO < 1 分
認証・認可
- 5 種の認証 — JWT・API Key・OAuth 2.0・OIDC 外部 IdP・DPoP(RFC 9449)
- XACML 3.0 単一レイヤ — 5 ロール × 属性ベースのきめ細かいポリシー
- per-tenant IP 制限・監査ログ・トークン失効
- PEP プロキシ(Wilma 等)を別途立てる必要がない
Policy: owner-only-access
target: entity.owner == ${subject.userId}
rules:
- Permit read if owner
- Permit write if owner
- Deny * otherwise
# 所有者のみがアクセス可能セキュリティ
クエリで使えるパラメータ
limit取得件数(既定 20・最大 1000)offsetオフセット(最大 10000)count総件数を返却optionskeyValues / sysAttrs 等のフラグ
type/idタイプ・ID(,区切り 各最大 100)idPatternID 正規表現(最大 200 字)q属性条件(例temp>20;hum<80)mqメタデータ条件(NGSIv2)attrs取得属性(最大 50)
pick/omit属性の選択・除外lang言語フィルタscopeQスコープ条件orderBy/orderDirection並び替え
georel関係(near;maxDistance==, within 等)geometry形状(Point / Polygon 等)coordinates(LD)/coords(v2)座標geoproperty対象プロパティ(既定 location)orderByDistance距離順
spatialId/spatialIdDepth空間 IDcrs座標参照系localOnlyフェデレーション除外join/joinLevel関連エンティティ結合
- バッチ最大 100 件 / 最大 Limit 1000(Admin 100)
- ID・型・属性名 最大 256 字
- クエリ文字列 最大 2000 字 / 正規表現 200 字
- 属性リスト(attrs/pick/omit)最大 50
用語集
本資料で用いた専門用語の説明
都市 OS を、
フルマネージドサービスで。
運用レス・自動スケール・高可用。スマートシティと IoT の次の基盤を、いますぐ。
Geolonia, Inc. · GeonicDB Context Broker