结合领域驱动设计的SOA分布式软件架构,你还在为这些烦恼?( 七 )

八、系统总体架构1. 体现领域驱动设计的架构
到此总结一下领域驱动设计DDD的总体结构 , Repository层使用ORM映射或SQL命令等方式把持久化数据转化为领域对象 , 然后根据业务逻辑设计对应领域层服务Domain Service。 接着应用层进行操作上的协调 , 利用Repository、领域模型、领域层服务Domain Service 完成业务需要 , 再通过数据转换器把领域对象Domain Object转化为数据传输对象DTO 。 最后 , 利用远程通讯技术把应用层的服务(Application Service)对外开放 。
注意留意的是SOA系统中 , UI表现层与Application Service应用层服务是实现分离的 , 表现层可以同时调用多方的远程服务来完成工作 。
结合领域驱动设计的SOA分布式软件架构,你还在为这些烦恼?文章插图
2. 体现面向服务开发的架构
面向服务开发SOA的架构主要体现在表现层与应用层之间通过远程通讯实现分离 , 表现层可以引用多方的应用服务作为基础 。 由此系统实现业务上的分离 , 不同的功能模块可以独立开发 , 最后通过服务在表现层共同体现 。 长期的发展 , 使不少的企业针对单个功能模块开发出一套独立的系统 , 再通过强大的虚拟化技术为第三方提供服务 , 这就是云计算的前身 。
就像一个通讯购物的平台 , 其实就是综合了内部业务管理、银行转帐服务、呼叫中心、第三方接口等多方服务的综合性平台 。 如果你有过这方面的经验 , 就会知道其实银行转账、呼叫中心不过就是银行、电信、移动等公司提供的几个简单的接口 。 开发人员根本无需理会其实内部的结构 , 只要通过几个简单的远程方法就能调用 。 这正是应用层服务 Application Service 的最好体现 。
结合领域驱动设计的SOA分布式软件架构,你还在为这些烦恼?文章插图
3. 结束语
写这篇文章目的只是想与各位分享一下我在开发过程中的一些体会 , 欢迎各位点评 , 指出其中的不足 。
其实架构是死物 , 人才是有脑子的生物 。 每一个架构必然会有其优点 , 也会有不足之处 , 我们应该从开发之中一齐起来体验 , 而不是盲目地跟从 , 希望在下的拙见能够给大家带来帮助 。 可别忘了支持一下 , 挺一挺 。