领域驱动设计Rest研究与实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
领域驱动设计Rest研究与实现

领域驱动设计Rest研究与实现   摘要:分析了现代企业级的Web应用软件的开发现状,并列举了传统的数据库建模存在的问题,从而引入领域驱动设计(DDD)思想,该思想可以快速对用户需求的变化做出快速反应,能够使领域专家和软件开发工程师有着共同的交流语言,在此思想上给出了一个应用方案,即DDD+REST,并结合ESMISApp应用实例,通过例子中一个简单的功能清晰描述了该方案的思想并完成了领域建模中的分层架构,很好满足了现代企业级应用软件开发需求。   关键词:DDD;REST;HTTP;领域模型;面向对象   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)01-0092-04   目前,Web互联网应用得到了广泛的关注,出现越来越多的应用软件特别是企业级的都在从传统的C/S模式转向B/S模式。基于 Web 的多层架构体系,例如J2EE、ASP.NET、Struts等已经成为解决应用的开发体系。然而以传统的数据库建模为核心的软件开发Web多层架构已经遇到了瓶颈。导致这个瓶颈的根本原因是当时语言本身的缺陷及体系本身需要完善等等,造成ASP.NET(J2EE)等域模型的开发结构一直为贫血模型。   1 数据库建模方法存在的问题   1.1 过程化编程   今天大部分应用层软件都是用面向对象过程开发,但这并不代表使用面向对象语言就可以做到面向对象(OO)开发。实际上以数据库驱动软件开发很容易导致面向过程化设计。因为传统的编程都遵循MVC三层模式的开发,首先确立数据结构,编写大量的存储过程、事物、结构查询语句等都导致无法面向对象,大量的业务逻辑都写在模型层中,而对数据对象并没有任何行为,它只是一种容器,至包含set和get方法,最终导致了面向过程的思想,并没有降低遵循高内聚、低耦合的开发。   1.2 需求分析的反应不够全面   在软件开发的设计中之所以运用到面向对象的思想,是因为它符合人类思考问题的方式,因此采用面向对象数据库是明智的选择,它能使用面向对象的分析方法(OOA)进行需求分析使软件的问题域和解决域在一定层面保持一致。但目前的技术采用面向对象数据库设计还不够很成熟且不是很普及,大部分都是主流的关系型数据库。因此就会导致需??与实现出现脱节的现象,从而延缓了项目开发进度。   1.3 过分依赖数据库   很多开发的软件都过分对数据库的依赖,每次的对业务逻辑操作都是直接调用DAO(Data Access Object)来完成,无形中给数据库造成了相当大的压力,而项目的需求也会不断的在变化,数据库结构则也会一直在改变。过分依赖数据库最终就造成整个系统的不协调,随着系统负载的不断增加,数据库压力越来越大,最终数据库因不堪重负而奔溃。   2 领域驱动设计的方法   自从 2003 年建模专家 Eric Evans 发表文献之后,人们才开始探讨领域驱动设计,它是建立在领域模型驱动设计的基础上的开发模式[1]。不仅仅能表现模型对象,还包括例如服务等在领域模型驱动设计所没有涉及的元素。DDD摒弃了割裂建模与设计的做法,使用通用的领域模型来满足这领域专家和软件设计人员双方的要求。它指导我们从混乱和复杂的领域中找出秩序和规律,抽象出一套通用语言,这种语言是领域专家、系统分析师、软件架构工程师、集成开发工程师、开发人员共同交流的平台。   根据Evans提出的领域驱动设计开发理念(如图1所示),领域建模过程大致分为两个步骤:首先是领域模型描述,模型中的领域对象分为实体、工厂、值对象、关联、仓库、聚合、服务类[2];然后对这7类领域分别进行封装和访问权限的管理。   3 基于领域驱动设计的web   3.1 应用软件开发框架REST   为了运用该思想快捷的开发Web应用软件,该文提出一种最新应用方案,即DDD+REST开发,用实际的案例及具体的代码的分析来描述该应用方案是如何运转,从而解决传统架构结构复杂、开发繁琐的缺点。   REST是由Roy Thomas Fielding在其博士学位论文中提出的一种新的基于网络的软件架构风格。针对Web应用的设计和开发方式,可以简化开发的复杂性,增强系统的可伸缩性[3]。REST的统一接口由4个部分组成:资源的标识、通过表述对资源执行的操作、自描述的消息、以及作为应用状态引擎的超媒体[4]。它具有客户端会话无状态、支持多级缓存、客户端和服务器及其中间组件之间使用统一接口、清晰的分层系统、按客户的需求他们可以从服务器下载可执行的代码在客户端运行等优点。   对比REST和HTTP,不难发现两者在诸多方面都十分相似,这也很容易理解,因为大部分B/S架构的web应用软件都是基于HTTP作为传输协议且Roy博士也是HTTP协议的主要创作者之一

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档