第185章 IndividualService统一编排
185.1 统一编排的提出
在前面的章节中,ICAI已经建立了大量独立Service。
例如:
IndividualService
ObjectService
StateService
RelationService
KnowledgeService
GoalService
CapabilityService
MethodService
DecisionService
BehaviorService
FeedbackService
MemoryExperienceService
RiskConflictService
DiagnosisRepairService
LearningService
这些Service分别负责不同领域的认知对象和业务过程。
但是,如果这些Service彼此独立运行,系统仍然存在一个重要问题:
谁负责把这些Service按照一个完整个体的实际运行过程组织起来?
例如,一个个体接收到一个需求之后,不能只调用GoalService。
完整过程实际上是:
Need
→ Goal
→ Capability
→ Method
→ Decision
→ Behavior
→ Action
→ Execution
→ Result
→ Feedback
→ Memory
→ Experience
→ Risk / Conflict
→ Diagnosis / Repair
→ Verification
→ Learning
→ Knowledge / Capability / Method Update
→ New Decision
这个完整过程需要一个统一的应用级协调者。
因此,本章建立:
IndividualService统一编排体系。
IndividualService不是新的认知对象,也不是新的推理算法。
它的职责是:
以Individual为核心,把多个Service按照完整认知流程进行组合、调用、状态协调、事务控制和结果汇总。
185.2 IndividualService的定义
IndividualService可以定义为:
IndividualService是ICAI中面向完整Individual生命周期的最高层应用编排服务,负责协调多个领域Service完成从需求输入到认知更新的完整过程。
其核心模型为:
IS=(C,S,T,R)IS=(C,S,T,R)
其中:
C:Service Composition,服务组合;S:Service Invocation,服务调用;T:Transaction,事务;R:Result,完整结果。
因此:
IndividualService=Composition+Invocation+Transaction+ResultIndividualService = Composition + Invocation + Transaction + Result
IndividualService本身不取代:
- GoalService;
- CapabilityService;
- MethodService;
- DecisionService;
- BehaviorService;
- FeedbackService;
- LearningService。
它负责:
调用
协调
排序
传递上下文
控制事务
处理异常
汇总结果
185.3 Service层的层级关系
前面已经建立了多个Service。
现在需要将它们组织成层级。
可以定义:
Controller
↓
IndividualService
↓
┌───────────────────────────────────────────────┐
│ Individual / Cognitive Application Services │
├───────────────────────────────────────────────┤
│ GoalService │
│ CapabilityService │
│ MethodService │
│ DecisionService │
│ BehaviorService │
│ FeedbackService │
│ MemoryExperienceService │
│ RiskConflictService │
│ DiagnosisRepairService │
│ LearningService │
└───────────────────────────────────────────────┘
↓
Domain Object / Engine
↓
Repository
↓
MySQL
因此IndividualService属于:
Application Orchestration Layer
而不是Domain Object层。
185.4 Service组合
Service组合是IndividualService的第一个核心职责。
单个Service解决单个领域问题。
例如:
GoalService
负责Goal
CapabilityService
负责Capability
MethodService
负责Method
DecisionService
负责Decision
BehaviorService
负责Behavior
IndividualService则负责把这些能力组合起来。
可以表示为:
ServiceComposition=S1+S2+S3+⋯+SnServiceComposition = S_1+S_2+S_3+\cdots+S_n
其中:
S1= GoalService;S2= CapabilityService;S3= MethodService;S4= DecisionService;S5= BehaviorService;Sn= 其他Service。
但是这里的“+”不是代码继承。
它表示:
多个独立Service在同一个业务流程中形成协作关系。
185.5 Service组合不是Service继承
必须区分:
Inheritance
与:
Composition
例如:
class Human extends Individual
{
}
属于继承。
而:
class IndividualService
{
protected $goalService;
protected $capabilityService;
protected $methodService;
protected $decisionService;
}
属于服务组合。
因此:
ServiceComposition≠ServiceInheritanceServiceComposition \neq ServiceInheritance
IndividualService不应该:
extends GoalService
extends CapabilityService
因为这些Service不是IndividualService的父类。
正确关系是:
IndividualService
├── has GoalService
├── has CapabilityService
├── has MethodService
├── has DecisionService
├── has BehaviorService
└── has LearningService
即:
IndividualService has Services。
185.6 Service调用
Service组合之后,需要解决第二个问题:
这些Service按照什么顺序调用?
IndividualService必须建立明确的调用链。
最基本的认知流程为:
Need
→ GoalService
→ CapabilityService
→ MethodService
→ DecisionService
→ BehaviorService
→ FeedbackService
→ MemoryExperienceService
→ RiskConflictService
→ DiagnosisRepairService
→ LearningService
但实际运行不是所有Service每次都必须执行。
例如:
没有风险
→ RiskConflictService只完成风险检查
如果出现异常:
Risk
→ DiagnosisRepairService
如果没有异常:
直接进入LearningService
因此IndividualService必须根据当前状态组织条件调用。
185.7 Service调用的基本模型
定义:
Invoke(S,C)→RInvoke(S,C) \rightarrow R
其中:
S:Service;C:当前Context;R:Service Result。
例如:
GoalService(Context)→GoalGoalService(Context)\rightarrow Goal
然后:
CapabilityService(Goal)→CapabilityCandidatesCapabilityService(Goal)\rightarrow CapabilityCandidates
然后:
MethodService(Goal,Capability)→MethodCandidatesMethodService(Goal,Capability)\rightarrow MethodCandidates
然后:
DecisionService(Candidates)→DecisionDecisionService(Candidates)\rightarrow Decision
因此形成:
Context
→ Goal
→ Capability
→ Method
→ Decision
每个Service的输出成为下一个Service的输入。
185.8 ServiceContext
为了避免多个Service之间通过大量独立参数传递数据,可以建立:
ServiceContext(服务上下文)
ServiceContext不是认知对象,而是一次完整Service调用过程中的共享运行上下文。
可以定义:
SC=(I,G,O,S,C,M,D,B,E,R,F,L,T)SC=(I,G,O,S,C,M,D,B,E,R,F,L,T)
其中:
I:Individual;G:Goal;O:Object;S:State;C:Capability;M:Method;D:Decision;B:Behavior;E:Execution;R:Result;F:Feedback;L:Learning;T:Time。
实际并不要求每次全部存在。
例如流程开始时:
Individual
Need
Context
执行后才出现:
Behavior
Execution
Result
Feedback
因此ServiceContext是一个:
随流程逐步填充的运行上下文。
185.9 ServiceContext的PHP结构
可以建立:
class ServiceContext
{
protected $data = array();
public function set($key, $value)
{
$this->data[$key] = $value;
}
public function get($key, $default = null)
{
if (isset($this->data[$key])) {
return $this->data[$key];
}
return $default;
}
public function has($key)
{
return isset($this->data[$key]);
}
public function all()
{
return $this->data;
}
}
例如:
$context->set('individual', $individual);
$context->set('goal', $goal);
$context->set('capabilities', $capabilities);
$context->set('methods', $methods);
这样后续Service可以读取统一上下文。
185.10 IndividualService的核心职责
IndividualService至少承担以下职责:
1. 初始化Individual上下文
2. 创建或加载Goal
3. 加载当前State
4. 匹配Capability
5. 匹配Method
6. 调用DecisionService
7. 创建Behavior
8. 执行Behavior
9. 接收Feedback
10. 保存History
11. 形成Memory / Experience
12. 检查Risk / Conflict
13. 处理Diagnosis / Repair
14. 执行Verification
15. 调用LearningService
16. 更新Knowledge / Capability / Method
17. 汇总最终结果
因此IndividualService不是简单的CRUD Service。
它属于:
完整认知流程编排Service。
185.11 IndividualService不应该承担领域计算
这是统一编排时最重要的工程原则之一。
错误方式:
class IndividualService
{
public function run()
{
// 自己判断Goal
// 自己计算Capability
// 自己选择Method
// 自己执行Action
// 自己计算Risk
}
}
这样会导致IndividualService变成一个巨大的“万能类”。
正确方式:
IndividualService
↓
GoalService
↓
CapabilityService
↓
MethodService
↓
DecisionService
↓
BehaviorService
IndividualService负责:
什么时候调用谁。
各个Service负责:
自己的领域应该怎么处理。
185.12 Service调用边界
可以建立如下边界:
| Service | 主要职责 |
|---|---|
| IndividualService | 统一编排 |
| ObjectService | 对象生命周期 |
| StateService | 状态管理 |
| RelationService | 关系管理 |
| KnowledgeService | 知识处理 |
| GoalService | 目标管理 |
| CapabilityService | 能力处理 |
| MethodService | 方法处理 |
| DecisionService | 决策 |
| BehaviorService | 行为 |
| FeedbackService | 反馈 |
| MemoryExperienceService | 记忆经验 |
| RiskConflictService | 风险冲突 |
| DiagnosisRepairService | 诊断修复 |
| LearningService | 学习更新 |
这样可以防止职责重叠。
185.13 事务的提出
当一个完整认知流程涉及多个Service时,会产生一个关键问题:
如果流程执行到一半失败,前面已经写入数据库的数据怎么办?
例如:
Goal创建成功
↓
Capability成功
↓
Method成功
↓
Decision成功
↓
Behavior创建成功
↓
Execution失败
此时系统不能简单认为整个过程成功。
因此需要事务机制。
185.14 Transaction定义
Transaction可以定义为:
Transaction是保证一次完整业务流程中相关持久化操作具有一致性、可提交性和可回滚性的工程机制。
基本模型:
Transaction=Begin→Process→CommitTransaction = Begin \rightarrow Process \rightarrow Commit
发生不可恢复错误:
Transaction=Begin→Process→RollbackTransaction = Begin \rightarrow Process \rightarrow Rollback
因此:
Begin
↓
Service Calls
↓
Validate
↓
Persist
↓
Commit
或者:
Begin
↓
Service Calls
↓
Failure
↓
Rollback
185.15 事务不是状态回滚的全部
必须注意:
数据库事务回滚 ≠ 认知状态完全回滚。
例如一个外部设备已经执行了真实动作:
Execution
→ External World Changed
即使MySQL事务Rollback:
Database
→ Previous State
外部世界可能已经改变。
因此ICAI需要区分:
Database Transaction
和:
Cognitive State Recovery
数据库事务负责:
数据库一致性。
DiagnosisRepairService负责:
实际状态恢复。
两者不能混淆。
185.16 事务范围
IndividualService不应该把所有系统运行过程无限制地放在一个巨大事务中。
应该根据操作类型划分。
例如:
事务A
Goal / Decision创建
事务B
Behavior / Execution记录
事务C
Feedback / History记录
事务D
Learning / Knowledge Update
对于纯数据库操作,可以使用事务。
对于外部实际执行,则应:
Database Transaction
+
Execution Record
+
Compensation / Repair
这样更符合真实工程环境。
185.17 事务边界模型
可以定义:
TransactionBoundary=DataConsistencyBoundaryTransactionBoundary = DataConsistencyBoundary
即:
事务边界应该围绕需要保持数据库一致性的操作建立。
例如:
Begin
↓
Create Decision
↓
Create Behavior
↓
Save Execution
↓
Commit
如果保存过程中出现数据库异常:
Rollback
但是如果:
Execution已经实际发生
则不能通过Rollback假装执行没有发生。
必须保留:
Execution History
并由后续Feedback、Diagnosis、Repair处理。
185.18 IndividualService事务流程
可以建立:
Begin Transaction
↓
Load Individual
↓
Load State
↓
Create / Load Goal
↓
Match Capability
↓
Match Method
↓
Decision
↓
Create Behavior
↓
Persist Process Data
↓
Commit
真正的外部执行:
Committed Process Data
↓
Execution
↓
Result
↓
Feedback
然后再次进入数据库事务:
Begin Transaction
↓
Save Result
↓
Save Feedback
↓
Update State
↓
Save History
↓
Learning
↓
Update Knowledge / Capability / Method
↓
Commit
这种设计比把整个世界运行过程塞进一个数据库事务更可靠。
185.19 IndividualService的PHP结构
可以建立:
class IndividualService
{
protected $individualRepository;
protected $stateService;
protected $goalService;
protected $capabilityService;
protected $methodService;
protected $decisionService;
protected $behaviorService;
protected $feedbackService;
protected $memoryExperienceService;
protected $riskConflictService;
protected $diagnosisRepairService;
protected $learningService;
protected $transactionManager;
public function __construct(
$individualRepository,
$stateService,
$goalService,
$capabilityService,
$methodService,
$decisionService,
$behaviorService,
$feedbackService,
$memoryExperienceService,
$riskConflictService,
$diagnosisRepairService,
$learningService,
$transactionManager
) {
$this->individualRepository = $individualRepository;
$this->stateService = $stateService;
$this->goalService = $goalService;
$this->capabilityService = $capabilityService;
$this->methodService = $methodService;
$this->decisionService = $decisionService;
$this->behaviorService = $behaviorService;
$this->feedbackService = $feedbackService;
$this->memoryExperienceService = $memoryExperienceService;
$this->riskConflictService = $riskConflictService;
$this->diagnosisRepairService = $diagnosisRepairService;
$this->learningService = $learningService;
$this->transactionManager = $transactionManager;
}
}
这种结构体现:
IndividualService=CompositionIndividualService = Composition
而不是继承。
185.20 完整个体流程方法
可以建立:
public function process($individualId, $need)
{
$context = new ServiceContext();
$this->transactionManager->begin();
try {
$individual = $this->individualRepository->find($individualId);
if (!$individual) {
throw new Exception('Individual not found');
}
$context->set('individual', $individual);
$context->set('need', $need);
$goal = $this->goalService->createFromNeed($need, $individual);
$context->set('goal', $goal);
$capabilities = $this->capabilityService->match(
$goal,
$individual
);
$context->set('capabilities', $capabilities);
$methods = $this->methodService->match(
$goal,
$capabilities,
$individual
);
$context->set('methods', $methods);
$decision = $this->decisionService->decide(
$goal,
$methods,
$individual
);
$context->set('decision', $decision);
$behavior = $this->behaviorService->build(
$decision,
$individual
);
$context->set('behavior', $behavior);
$this->transactionManager->commit();
return $context;
} catch (Exception $e) {
$this->transactionManager->rollback();
throw $e;
}
}
这里有一个重要原则:
IndividualService只负责流程组织,不直接实现Capability匹配、Method计算和Decision计算。
185.21 执行阶段的编排
Behavior创建成功后进入实际执行。
可以定义:
IndividualService
↓
BehaviorService
↓
ActionService
↓
ExecutionService
↓
Result
然后:
Result
↓
FeedbackService
IndividualService继续协调后续处理。
因此:
BehaviorService
负责行为层。
而:
IndividualService
负责整个个体流程。
185.22 反馈阶段的编排
执行完成后:
Execution
→ Result
→ FeedbackService
FeedbackService负责:
Receive
→ Validate
→ Compare
→ State Update
→ Save
IndividualService接收FeedbackService结果后,继续:
Feedback
→ MemoryExperienceService
形成:
History
→ Memory
→ Experience
然后:
Feedback
→ RiskConflictService
判断:
Risk
Conflict
如果发现异常:
Risk / Conflict
→ DiagnosisRepairService
185.23 正常流程与异常流程
IndividualService必须支持两条主要路径。
正常路径
Need
→ Goal
→ Capability
→ Method
→ Decision
→ Behavior
→ Execution
→ Result
→ Feedback
→ Verification
→ Learning
→ Update
→ Complete
异常路径
Need
→ Goal
→ Capability
→ Method
→ Decision
→ Behavior
→ Execution
→ Result
→ Feedback
→ Abnormality
→ Risk / Conflict
→ Diagnosis
→ Repair
→ Verification
→ Learning
→ Update
→ Re-decision
因此异常不是系统流程之外的特殊代码,而是完整认知流程的一部分。
185.24 修复后的重新编排
如果Repair成功:
Repair
→ Verification
→ Re-evaluation
IndividualService需要重新读取当前状态。
然后:
Current State
→ CapabilityService
→ MethodService
→ DecisionService
重新产生决策。
因此:
旧Decision
→ Failure
→ Diagnosis
→ Repair
→ New State
→ New Decision
而不能简单继续执行旧Decision。
因为:
修复之后,系统状态可能已经发生变化。
185.25 LearningService的统一调用
整个流程完成后:
Feedback
+
History
+
Memory
+
Experience
+
Verification
+
Diagnosis
+
Repair
进入:
LearningService
LearningService产生:
LearningResult
然后更新:
Knowledge
Capability
Method
最终:
Learning
→ Updated Cognitive State
IndividualService负责将这个结果加入当前Context。
185.26 完整个体流程
现在可以建立ICAI最完整的Individual运行流程:
Individual
↓
Need
↓
GoalService
↓
Goal
↓
StateService
↓
Current State
↓
CapabilityService
↓
Capability Candidates
↓
MethodService
↓
Method Candidates
↓
DecisionService
↓
Decision
↓
BehaviorService
↓
Behavior
↓
Action
↓
Execution
↓
Result
↓
FeedbackService
↓
Feedback
↓
MemoryExperienceService
↓
History / Memory / Experience
↓
RiskConflictService
↓
Risk / Conflict
↓
DiagnosisRepairService
↓
Diagnosis
↓
Repair
↓
Verification
↓
LearningService
↓
Knowledge Update
Capability Update
Method Update
↓
New Cognitive State
↓
Decision
这就是Individual级别的完整闭环。
185.27 IndividualService的返回结果
IndividualService不应该只返回:
true
因为完整认知流程包含大量结果。
可以返回:
IndividualProcessResult
定义:
IPR=(I,G,D,B,E,R,F,L,S,H)IPR=(I,G,D,B,E,R,F,L,S,H)
其中:
I:Individual;G:Goal;D:Decision;B:Behavior;E:Execution;R:Result;F:Feedback;L:Learning;S:Final State;H:History。
例如:
class IndividualProcessResult
{
protected $data = array();
public function set($key, $value)
{
$this->data[$key] = $value;
}
public function get($key)
{
if (isset($this->data[$key])) {
return $this->data[$key];
}
return null;
}
public function all()
{
return $this->data;
}
}
这样Controller可以获得完整流程结果。
185.28 MVC中的最终调用结构
最终MVC结构可以定义为:
HTTP Request
↓
Controller
↓
IndividualService
↓
ServiceContext
↓
┌─────────────────────────────────────────┐
│ GoalService │
│ CapabilityService │
│ MethodService │
│ DecisionService │
│ BehaviorService │
│ FeedbackService │
│ MemoryExperienceService │
│ RiskConflictService │
│ DiagnosisRepairService │
│ LearningService │
└─────────────────────────────────────────┘
↓
Domain Object / Engine
↓
Repository
↓
MySQL
因此Controller不应该自己完成:
Goal
Capability
Method
Decision
Behavior
Learning
Controller只负责:
Request
→ Validation
→ IndividualService
→ Response
185.29 Service层与Engine层的最终分工
随着系统继续发展,可以进一步明确:
Service
负责:
流程
协调
调用
事务
生命周期
结果
Engine
负责:
计算
判断
规则
匹配
推导
评分
状态转换
验证
例如:
IndividualService
↓
CapabilityService
↓
CapabilityEngine
而不是:
IndividualService
↓
自己计算Capability
最终:
Service=OrchestrationService=Orchestration Engine=ComputationEngine=Computation Repository=PersistenceRepository=Persistence DomainObject=State/DataDomainObject=State/Data
这是ICAI工程架构进一步稳定的重要基础。
185.30 Service调用依赖方向
Service之间不应该形成任意循环依赖。
推荐方向:
IndividualService
↓
Domain Services
↓
Engines
↓
Repositories
例如:
IndividualService
→ DecisionService
→ DecisionEngine
→ DecisionRepository
而不要:
DecisionService
→ IndividualService
否则会形成循环依赖:
IndividualService
↔ DecisionService
因此IndividualService应当位于较高的应用编排层。
185.31 事务失败处理
当某个Service发生数据库异常时:
Service Call
↓
Exception
↓
Transaction Rollback
↓
Error Result
但是如果已经产生真实执行:
Execution
→ External Effect
则不能删除执行事实。
必须保存:
Execution
Result
Failure
然后进入:
DiagnosisRepairService
因此:
事务失败处理解决数据一致性;诊断修复解决实际运行问题。
185.32 并非所有Service都必须串行执行
虽然核心认知链是有序的,但某些辅助Service可以在同一阶段进行独立处理。
例如:
Result
├── FeedbackService
├── RiskConflictService
└── History Recording
这些操作可以根据具体工程实现进行合理调度。
但存在依赖关系的Service仍然必须遵守顺序。
例如:
Goal
→ Capability
不能反过来。
因为Capability匹配需要知道Goal要求。
同样:
Decision
→ Behavior
不能反过来。
因为Behavior需要知道选择了哪个Method。
185.33 完整事务闭环
IndividualService最终形成两个主要事务阶段。
第一阶段:决策事务
Begin
↓
Individual Load
↓
State Load
↓
Goal
↓
Capability
↓
Method
↓
Decision
↓
Behavior Build
↓
Commit
第二阶段:结果与学习事务
Begin
↓
Execution Result
↓
Feedback
↓
State Update
↓
History
↓
Memory
↓
Experience
↓
Risk / Conflict
↓
Diagnosis / Repair
↓
Verification
↓
Learning
↓
Knowledge Update
↓
Capability Update
↓
Method Update
↓
Commit
如果第二阶段失败:
Rollback
但已经发生的真实Execution必须保留事实记录。
185.34 IndividualService统一编排原则
整个设计可以归纳为八条原则。
第一,单一编排入口
一个完整Individual认知流程应该存在统一应用入口:
IndividualService
第二,领域职责分离
IndividualService不替代其他Service。
第三,服务组合而不是继承
使用:
has-a
而不是:
is-a
第四,明确调用顺序
依赖关系决定Service调用顺序。
第五,统一上下文
使用:
ServiceContext
传递流程状态。
第六,明确事务边界
数据库一致性使用Transaction。
第七,真实执行不可伪回滚
外部执行必须保留Execution和Result事实。
第八,学习最终进入认知更新
完整流程最终必须能够形成:
Learning
→ Knowledge
→ Capability
→ Method
的更新。
185.35 ICAI完整个体架构
到第185章,可以把整个Individual级架构统一表示为:
Individual
│
↓
Need
│
↓
IndividualService
│
┌─────────────────┼─────────────────┐
↓ ↓ ↓
GoalService StateService ObjectService
│
↓
CapabilityService
│
↓
MethodService
│
↓
DecisionService
│
↓
BehaviorService
│
↓
Action
│
↓
Execution
│
↓
Result
│
↓
FeedbackService
│
↓
MemoryExperienceService
│
↓
RiskConflictService
│
↓
DiagnosisRepairService
│
↓
Verification
│
↓
LearningService
┌──┼──┐
↓ ↓ ↓
Knowledge Capability Method
└──┼──┘
↓
Updated Cognitive State
↓
Decision
这形成了一个真正意义上的:
Individual Cognitive CycleIndividual\ Cognitive\ Cycle
185.36 从对象到完整个体运行
ICAI前面的章节主要解决:
对象是什么?
状态是什么?
关系是什么?
知识是什么?
能力是什么?
方法是什么?
决策是什么?
行为是什么?
反馈是什么?
记忆是什么?
经验是什么?
风险是什么?
诊断是什么?
学习是什么?
第185章进一步解决:
这些对象和Service如何真正作为一个整体运行。
因此:
Individual
=
Objects
+
State
+
Knowledge
+
Capability
+
Method
+
Decision
+
Behavior
+
Memory
+
Experience
+
Risk
+
Diagnosis
+
Learning
而:
IndividualService
=
这些能力的统一应用编排
185.37 本章小结
IndividualService并不是ICAI中又增加一个普通Service,而是将前面已经建立的Service体系组织成完整应用流程的统一编排层。
其核心模型:
IS=(C,S,T,R)IS=(C,S,T,R)
即:
C:Service Composition;S:Service Invocation;T:Transaction;R:Result。
其核心工程结构:
Controller
→ IndividualService
→ Domain Services
→ Engines
→ Repositories
→ MySQL
其核心运行流程:
Need
→ Goal
→ State
→ Capability
→ Method
→ Decision
→ Behavior
→ Action
→ Execution
→ Result
→ Feedback
→ Memory
→ Experience
→ Risk / Conflict
→ Diagnosis
→ Repair
→ Verification
→ Learning
→ Knowledge Update
→ Capability Update
→ Method Update
→ New Decision
因此,第185章完成了一个重要的工程闭环:
Individual→Service Composition→Service Invocation→Transaction→Execution→Feedback→Learning→Cognitive Update→IndividualIndividual \rightarrow Service\ Composition \rightarrow Service\ Invocation \rightarrow Transaction \rightarrow Execution \rightarrow Feedback \rightarrow Learning \rightarrow Cognitive\ Update \rightarrow Individual
最终,ICAI的Service层不再是一组相互独立的功能类,而形成了以IndividualService为统一入口、以领域Service为职责单元、以Engine为计算核心、以Repository为持久化边界的完整应用架构。
其最终原则可以概括为:
IndividualService负责组织,Domain Service负责职责,Engine负责计算,Repository负责持久化,Transaction负责数据一致性,Feedback负责事实回流,Learning负责认知更新。
由此,ICAI从“对象和规则体系”进一步进入“完整个体可运行的软件工程体系”。