该框架致力于创建为一套DDD的分布式框架
首先,这是一套DDD的框架,包含了其中的要素
其次,这是一套分布式框架,即,DDD的运做须要创建在分布式的基础之上。
另外,咱们但愿该框架足够开发,灵活,稳定,高效,可伸缩
该框架的总体架构暂定以下图:
该框架的基本设想以下:
咱们将处理应用业务的部分称为内部,与之相对的,对应用外部提供的接口称之为外部接口,与客户端的地位等同,客户端也可创建在对外接口之上。
话说,通常来讲,客户端应该只能创建在对外接口之上,我是赞同此观点的。可是,我为何不这么作呢,由于不肯定,我不肯定个人对外接口可以知足一切服务总线提供的功能提供给客户端,
在这个不肯定之上,我保留这个对外的口子,不过仍是推荐奖客户端创建在对外接口之上。
内部的服务则是为了支撑起整个应用体系,为此,这里引入了企业服务总线(ESB)这个东西,以接触子系统之间的深度耦合,以指望该结构能够总体应用的可伸缩性上起到做用。
而搭载在总线上的内容,咱们称之为节点。总线,和节点相互交织成网状结构,对外提供应用功能。
每一个节点老是会被一层咱们称之为防腐层的层次包围,该层次,咱们但愿它能够尽可能的薄,它的做用为对外通信,内容转换,使外部的数据结构不会腐蚀领域中的模型。
防腐层内部包裹的则为领域,领域这里则是经典的ddd中所提到的内容了,咱们这里假设其主要有聚合跟,实体,值对象,领域事件,领域服务构成,另外极可能还须要仓储及查询的支持。
节点和节点之间的通信,咱们仅假设了两种方式,即命令与事件,值得注意的是,这里的事件和领域事件并不能够划等号,由于他们所在工做的层次不一样。
接下来就是大量的基础设施了,他们是为了支撑这个架构而存在的,或许还会提供些许便利的功能。
对了,该框架目前依赖于这样两个框架:
structuremap 2.6.1.0
该框架提供IoC的功能,没有封装,与框架深度耦合,在短期内也没有对该模块进行封装的打算
Shuttle 该框架的总线支持,由其提供。
log4net
该框架提供了日志基础功能。