フルマネージド
コンテキストブローカー
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版の執筆
自前運用のコストと手間をなくした
すべてのアプリケーションのバックエンドサービス
GeonicDB は FIWARE Orion 互換のコンテキストブローカー。刻々と変わるモノ・場所・人の状態を標準 API で登録・保持・問い合わせ・購読できる基盤を、フルマネージドサービスとして提供します。
GeonicDB を中心としたエコシステム
分野を越えてつなぐデータ連携基盤。データがサービスを生み、サービスがデータを育てるエコシステム。
データ連携のための国際標準 NGSI-LD
欧州電気通信標準化機構(ETSI)が策定した、都市・IoT のデータを表すための国際標準(ETSI GS CIM 009)です。
- オープンな仕様 — 欧州電気通信標準化機構(ETSI)が策定・公開する国際標準。仕様書は誰でも読める
- 統一されたデータ表現 — 「もの」を軸に、「値」「つながり」「場所」を必要な分だけ付けて表す
- 組織を越えた相互運用性 — つながりをたどれば、別部署・別システムのデータにも届く
- 後方互換性 — 項目や関係は後から足せる。既存の連携が読んでいる項目は変わらないので影響しない
主要製品を大きく上回る ETSI 適合度 84.2%
(870 / 1033 項目)
欧州電気通信標準化機構(ETSI)が策定する NGSI-LD の国際標準仕様「ETSI GS CIM 009」の適合性テストスイート(全 1033 項目)を、GeonicDB と主要 OSS コンテキストブローカー 3 製品に 同一条件で実行。GeonicDB が 4 製品中 1 位のスコアを記録しました。
出典: ETSI GS CIM 009 適合性テストスイートを用いた自社計測(4 ブローカーへ同一条件で実行)。
小さく始めて、必要になってからスケールアップ
GeonicDB は後からでも瞬時にスケールアップできるので、無駄なインフラ投資が必要ありません。
サーバーの性能をピークに合わせて用意するためコストが重く、それでいて想定を超えれば落ちてしまいます。
当面の利用規模に見合ったコスト負担で始められます。災害時の急増も自動で吸収するので、いざというときも落ちません。
※ スケールアップにはご契約プランのアップグレードが必要です。
※ GeonicDB のレート制限はソフトリミットです。災害等の理由で一時的に上限を超えた場合は無料でオートスケールします。
連携アプリケーションのコストを大幅削減
連携アプリケーションは HTML / CSS / JavaScript だけの静的な構造で開発できるようになり、付加価値を産まないインフラコストを全額カットできます。
連携アプリケーションをオープンソース化し共同利用を促進すれば、UI/UX の開発コストも大幅に削減することが可能になります。
※ 帯の幅は費目の大小を示すイメージであり、実測値ではありません。構成比は案件の性質により大きく変動します。
※ 自前のバックエンド・インフラは不要になりますが、GeonicDB のご利用料金は別途かかります。
データの作成やアプリ開発は AI におまかせ
MCP サーバーや CLI があるため、各種設定やデータの作成、アプリの開発を AI に自然言語で頼むことができます。
AI サービスは別途ご契約いただく必要があります。
マルチテナンシー: 1 つの基盤を分割してデータと権限を分離
テナントは、独立した基盤として使うことができ、データと権限を分離することが可能
条件がそろえば、あとは自動
GeonicDB 内蔵のルールエンジン。条件は CEL 式なので、気温と湿度から不快指数を算出するような複数属性の演算もそのまま書けます。外部のワークフロー基盤を別途構築せず、ブローカー内で完結。
変化を好きな方法で受け取る
NGSI サブスクリプションの変化通知は、アプリやシステムの構成に合わせて複数のプロトコルから選べます。
組織をまたがってデータを集約
フェデレーションは、テナントやドメインの異なる複数の GeonicDB を 1 つの窓口にまとめる仕組み。手元の GeonicDB が問い合わせを別テナント・別ドメインの GeonicDB へ並列に転送し、返ってきた結果をひとつに束ねて返します。データを 1 か所にコピー・集約する必要はありません。
Context Source Registration にもとづく分散クエリ/更新の転送・結果マージ。ループ検知(Via)・警告ヘッダ(NGSILD-Warning)に対応(ETSI GS CIM 009)。
セキュアなアプリケーション開発のための機能
GeonicDB は、認証情報を守る仕組みをブローカー本体と公式 SDK に寄せています。中心にあるのが DPoP(Demonstrating Proof-of-Possession / RFC 9449)— アクセストークンをそのクライアントだけが持つ秘密鍵に紐づけ、盗まれたトークンを使えなくします。
※ このデッキのライブデモも、origin 制限+ DPoP 必須の API キー 1 つで GeonicDB(ステージング)へ接続しています。
認証・認可
- 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
# 所有者のみがアクセス可能信頼性
- サーバーレスで自動スケール
- 冗長構成+マルチリージョン
- 自動フェイルオーバー 10–30 秒
- RTO < 5 分 / RPO < 1 分
Live Demo
実際に GeonicDB へ接続したデモをご覧ください
回答が「つながるデータ」になる
NGSI-LD(ETSI 国際標準)は、エンティティ同士が Relationship でつながるリンクトデータ。組織を越えても意味を保ったまま連携できます。
送信するとここに実エンティティが表示されます…
左のフォームから送信すると、この場で集計に反映されます。
Geo クエリーでデータを絞り込む
避難所の混雑度を時系列データで
指定避難所の位置に Temporal API の受入状況を重ね、1 日の混雑の移り変わりを再生。下のスライダーで時刻を動かすと各避難所が混雑度で色分けされ、クリックすると 24 時間の推移が見られます。
共同編集が可能な GIS
地図にポイント・ライン・ポリゴンを描くと NGSI-LD の地物として作成され、WebSocket で全員の画面にリアルタイム反映。現地調査・資産管理・エリア共有などを 1 つの地図で共同編集できます。
リアルタイムメッセージング
投稿(名前+メッセージ)は NGSI-LD エンティティとして作成され WebSocket で全員に配信。サーバの ReactiveCore Rules が投稿を検知してログを自動記録します。メッセージとログを並べてリアルタイムに確認できます。
geonicdb-livedeck-Message、ログは ReactiveCore Rules が生成する geonicdb-livedeck-MessageLog。WebSocket で全員に配信されます。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)
- Web Push(VAPID)サブスクリプション通知
- 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 プロダクトリファレンス「全機能カタログ(網羅的)」
NGSIv2 と NGSI-LD に対応
1 つのブローカーで NGSIv2 と NGSI-LD の両方の標準 API に対応。用途に合わせてどちらの形式でもエンティティを取得できます。下のボタンで実際の API レスポンスを取得します。
GET /v2/entities/{id}取得を待機中…
GET /ngsi-ld/v1/entities/{id}取得を待機中…
FIWARE Orion との比較
| 機能 | 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 スタック実績で優位。
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 設定管理
パスワードの保護
パスワードそのものを守る仕組みと、パスワードを当てにいく攻撃を止める仕組みの二段構えで守ります。
クエリで使えるパラメータ
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