在应用系统开发中,采用严格的、单一的、真正的的分层架构是可以的,但实际上我们已经采用了多种架构模式设计系统。当多种不同范式的架构混合在一起,你会不会出现“指鹿为马”的现象呢?
在研究分层架构时,常通过概念性的定义或 OSI 七层应用(架构)来说明或解释分层架构:
取自《 POSA , VolI , p22 》
作为一个在项目中引入分层架构的应用者,我们应该从更具体的规范来实现分层架构:
《 POSA , VolI 》 为我们提供了更多的实现规范,然而我要解决的是有关层的 单向依赖 问题。因为有一些人在使用分层架构时,尤其是将分层架构引入到项目的目录结构时,对于某些对象的划分(从属)存在一些混乱问题。
如果你有兴趣了解更多分层架构的实现规范,可参考:《 POSA , VolI 》第二十六页到第二十九页相关知识。
在领域驱动设计(DDD)中采用的是 松散分层架构 ,层间关系不那么严格。每层都可能使用它下面所有层的服务,而不仅仅是下一层的服务。每层都可能是半透明的,这意味着有些服务只对上一层可见,而有些服务对上面的所有层都可见。
注意:松散分层架构依然是单向依赖,表明上层只能调用下层的服务,下层不能调用上层的服务。
同时在领域驱动设计(DDD)中也采用了 继承分层架构 ,高层继承并实现低层接口。我们需要调整一下各层的顺序,并且将 基础设施层 移动到最高层。
注意:继承分层架构依然是单向依赖,这也意味着领域层、应用层、表现层将不能依赖基础设施层,相反基础设施层可以依赖它们。
领域层 UserRepository 接口:
基础设施层 JpaUserRepository 实现类:
我们确实使用包来划分层级,但是包名并不能真正表示分层。
我们通常将资源库的实现放置在基础设施层,这是因为我们采用了 继承分层架构 。如果你现在采用的是 松散分层架构 ,你需要将资源库的实现放置在领域层。这是层的单向依赖原则所致,你不应该破坏这个原则。没有任何理由需要破坏分层架构的单向依赖原则,除非你不采用分层架构。
我们应该从混乱到有序的这个历史过程去研究(分析)分层架构,尤其是我们现在处在前后端分离的环境下,应用系统使用分层架构又面临着什么样的划分变化。
应用系统使用分层架构在第三阶段基本已经成熟。因为我们要探讨的是有关领域驱动设计(DDD)的分层架构,所以我们依然需要做进一步补充。具体包括两方面的补充:
物联网的范围很大,一般来说,只要是 *** 作系统都可应用在物联网领域中。但是物联网的终端设备用的比较多的 *** 作系统有:
1、嵌入式linux系统
2、android系统
在物联网服务器端,使用比较多的 *** 作系统有:
1、windows系统
2、linux系统(前置服务器)
3、android系统物联网网关,作为一个新的名词,在未来的物联网时代将会扮演非常重要的角色,它将成为连接感知网络与传统通信网络的纽带。作为网关设备,物联网网关可以实现感知网络与通信网络,以及不同类型感知网络之间的协议转换既可以实现广域互联也可以实现局域互联。此外物联网网关还需要具备设备管理功能,运营商通过物联网网关设备可以管理底层的各感知节点,了解各节点的相关信息,并实现远程控制。图l示意性地给出了以物联网网关构建的物联网典型拓扑。
功能
广泛的接入能力
目前用于近程通信的技术标准很多,仅常见的WSNs技术就包括Lonworks、ZigBee、 6LowPAN、RUBEE等。各类技术主要针对某一应用展开,之间缺乏兼容性和体系规划。现在国内、外已经在展开针对物联网网关进行标准化工作,如3GPP、传感器工作组,实现各种通信技术标准的互联互通。
可管理能力
强大的管理能力,对于任何大型网络都是必不可少的。首先要对网关进行管理,如注册管理、权限管理、状态监管等。网关实现子网内的节点的管理,如获取节点的标识、状态、属性、能量等,以及远程实现唤醒、控制、诊断、升级和维护等。由于子网的技术标准不同,协议的复杂性不同,所以网关具有的管理性能力不同。提出基于模块化物联网网关方式来管理不同的感知网络、不同的应用,保证能够使用统一的管理接口技术对末梢网络节点进行统一管理。
协议转换能力
从不同的感知网络到接入网络的协议转换、将下层的标准格式的数据统一封装、保证不同的感知网络的协议能够变成统一的数据和信令;将上层下发的数据包解析成感知层协议可以识别的信令和控制指令。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)