3層分離。
マイクロエンジン。

安心し続けて使い続けられる、開かれた設計思想

愉快通快の技術基盤は、「データ基盤層・ロジック層・カスタマイズ層」の3層分離設計と、単一責任・疎結合・再利用性に基づくマイクロエンジン設計で構成されています。

メンテナンス性 他システムとの連携 セキュリティ境界 段階的な導入・拡張
Layer 2 / Top
カスタマイズ層
業種別設定UIダッシュボードAPI連携
Layer 1 / Core
ロジック層
DCOIPOTOC最適化
Layer 0 / Foundation
データ基盤層
Azure MLOR-Toolsデータパイプライン

データ基盤層・ロジック層・カスタマイズ層の
3層分離設計とする

各層が独立して機能する構造。ある層の変更が他の層に波及しない設計が、システムの安定性・セキュリティ・拡張性を同時に担保。

Layer 2 / 最上位

カスタマイズ層

Customer Interface

顧客ごとの業態・業種・固有要件をこの層で完全に吸収する。ロジック層のエンジンを一切変更せず、パラメータ設定とUIで全ての顧客差異に対応。

業種別パラメータ設定

製造業・商社・小売・D2Cの業態差異はすべてパラメータで表現。サービスレベル・リードタイム係数・コスト重み付けを顧客ごとに個別設定。

UIダッシュボード

React製統合ダッシュボード。GYR在庫状態・発注推奨・統合物流コストをリアルタイム可視化。ロールに合わせて表示を切り替え。

外部システム連携(ERP / WMS / EC)

既存システム(ERP / WMS / EC)とのAPI連携を担当。他層を変更することなく、新しい連携先の追加・変更が可能。

Layer 1 / コア

ロジック層

Optimization Engines

TOC×数理最適化×AI予測の実装層。3つのマイクロエンジン(DCO・IPO・O²)が独立して動作し、それぞれの最適化問題だけを専門的に解く。

DCO — 配送指示最適化エンジン

キャリア選定・CBM最適化・梱包計算を専任で担当。リードタイムと物流コストの2パラメータを受け取り、最適リストを出力。

IPO — 在庫配置最適化エンジン

倉庫への在庫配置最適化を専任。需要予測+機械学習モデルで需要を予測し、全倉庫への最適配分を出力。

O² — 発注量最適化エンジン

発注量・発注点の計算を専任。ROP = SS +(予測需要×LT)を日次更新し、GYR管理・アラート制御を実行。

Layer 0 / 基盤

データ基盤層

Data Infrastructure

全ての最適化計算の原料となるデータを収集・整備・提供する基盤。ここが正確でなければ、どれだけ優れたアルゴリズムも意味をなさない。

データパイプライン

売上・在庫・配送履歴データをリアルタイムで収集・クレンジング。上位層へはAPIを通じてのみ提供し、実装詳細を隠蔽。

MLモデル基盤

需要予測モデル(WAPE動的重み付け)等を管理。学習・推論・更新のライフサイクルをAzure ML上で自動化。

マルチテナント データ分離

顧客データを完全分離管理。カスタマイズ層からの直接アクセスを不可能にし、不正アクセスをアーキテクチャレベルで排除。

セキュリティ上の優位性

カスタマイズ層はデータ基盤層へ直接アクセス不可。顧客設定の変更がデータやアルゴリズムを汚染するリスクをアーキテクチャで排除している。

独立したアップデート

ロジック層のエンジンを更新しても、顧客設定もデータ基盤も変更不要。新アルゴリズムのリリースが既存顧客への影響ゼロで実現できる。

高速なスケールアップ

新顧客の追加はカスタマイズ層のパラメータ設定のみ。ロジック層・データ基盤層はそのまま再利用。SaaSとしての低コスト展開の根幹をなす。

マイクロエンジン設計思想——
4つの設計原則

「大きなモノリスシステム」ではなく「小さな専門エンジンの集合体」として設計する。各エンジンは以下の4原則に従い、複雑な最適化問題を独立・協調しながら解く。

01
Single Responsibility Principle

単一責任原則

各エンジンは特定の機能に特化する

一つのエンジンは一つの最適化問題だけを解く。「配送コストを最安にすること」だけに集中するエンジン、「在庫をどの倉庫に置くか」だけに集中するエンジン——専門化することで品質が上がり、バグの原因も特定しやすくなる。

DCOエンジン → 配送キャリア選定「だけ」を担当 IPOエンジン → 在庫配置最適化「だけ」を担当 O²エンジン → 発注量・発注点計算「だけ」を担当 予測エンジン → 需要予測「だけ」を担当
02
Loose Coupling

疎結合

エンジン間の依存関係を最小化する

あるエンジンを変更・更新したとき、他のエンジンに連鎖的な影響を与えない構造。エンジン同士は定義されたインターフェース(API)のみを通じて通信し、内部の実装には直接依存しない。障害が局所化され全体停止を防ぐ。

DCOを更新してもIPO・O²に影響なし エンジン障害が局所化され全体停止を防ぐ インターフェースを保てば内部実装を自由に改善 並列開発・並列デプロイが可能になる
03
Reusability

再利用性

複数の最適化エンジンで共通利用する

需要予測・LT計算・コスト計算など、複数エンジンが必要とする処理を「共有モジュール」として独立させる。各エンジンはこれを呼び出すだけでよく、同じロジックを複数箇所に書く必要がなくなる。修正が一か所で済み、品質が一貫して保たれる。

需要予測モジュール → O²・IPO両方が呼び出す LT計算モジュール → 全エンジンで共有利用 コスト計算 → DCO・O²が同一モジュールを使用 CBM算出ロジック → DCO・発注計算で共通利用
04
Extensibility

拡張性

新しい最適化要件に柔軟対応する

新しい最適化が必要になったとき、既存エンジンを改造するのではなく、新しいエンジンを「追加」する。既存の動いているシステムへの変更を最小化しながら、機能を拡張し続けられる。オープン/クローズド原則——変更に閉じ、拡張に開いた設計。

BOM展開エンジンを新規追加(Phase 2) 自己学習パラメータエンジンを追加(Phase 3) 為替対応エンジンを独立追加 既存エンジンへの変更ゼロで拡張実現

技術的な詳細を、
エンジニアと直接話しましょう。

3層分離の実装詳細・マイクロエンジンの設計思想について、技術的な深い議論を歓迎します。