一、层次式架构设计1.1 定义层次式架构是最通用的架构也被叫做N层架构模式。在分层次架构中的组件被划分成几个层每个层代表应用的一个功能都有自己特定的角色和职能。层次式架构的一个特性是关注分离。该层中的组件只负责本层的逻辑组件的划分很容易明确组件的角色和职责也比较容易开发、测试、管理和维护。1.2 数据访问层五种数据访问模式在线访问DataAccess ObjectDAODAO工厂类DAO接口实现DAO接口的具体类数据传输对象Data Transfer Object离线数据模式对象/关系映射ORM1.3 物联网层次架构感知层底层是用来感知数据的感知层利用传感器、二维码、RFID等设备随时随地获取物理的信息。网络层数据传输处理的网络层将对象当前的信息实时准确地传递出去。应用层解决信息处理和人机交换问题。应用服务1.4 C/S和B/S架构二、面向服务架构设计SOA2.1 定义及特点SOA是一个组件模型它将应用程序的不同功能单元称为服务通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义它独立于实现服务的硬件平台、操作系统和编程语言。2.2 主要协议和规范2.3 SOA的作用系统集成打通异构系统打破信息孤岛业务敏捷通过服务编排快速响应业务流程变化服务重用避免功能重复开发松耦合服务间通过接口交互隐藏实现细节标准化治理以服务视角管理IT资产2.4 SOA的设计原则无状态单一实例避免功能冗余明确定义的接口自包含和模块化粗粒度服务数量不应该太大依靠消息交互而不是远程调用。通常消息数量比较大但是服务之间的交换频度较低服务之间松耦合复用能力强互操作、兼容和策略声明2.5 SOA的设计模式2.5.1 企业服务总线ESB2.5.2 微服务模式微服务架构将一个大型的单个应用或服务拆分成多个微服务可扩展单个组件而不是整个应用程序堆栈从而满足服务等级协议。微服务架构围绕业务领域将服务进行拆分每个服务可以独立进行开发、管理和迭代彼此之间使用统一接口进行交流实现了在分散组件中的部署、管理与服务功能使产品交付变得更加简单从而达到有效拆分应用实现敏捷开发与部署的目的。2.5.2.1 微服务的优缺点复杂应用解耦独立技术选型灵活容错松耦合易扩展2.6 SOA和微服务的区别微服务相比于SOA更加精细微服务更多地以独立的进程的方式存在互相之间并无影响微服务提供的接口方式更加通用化例如HTTP RESTful方式各种终端都可以调用无关语言、平台限制微服务更倾向于分布式去中心化的部署方式在互联网业务场景下更适合2.6 SOA的使用注意事项注意对原有系统架构中的集成需求进行细致的分析和整理服务粒度的控制无状态服务的设计三、云原生架构设计3.1 定义从技术的角度云原生架构是基于云原生技术的一组架构原则和设计模式的集合旨在将云应用中的非业务代码部分进行最大化的剥离从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、可观测性、灰度等),使业务不再有非功能性业务中断困扰的同时具备轻量、敏捷、高度自动化的特点。由于云原生是面向“云”而设计的应用因此技术部分依赖于传统云计算的3层概念即基础设施即服务(Iaa)、平台即服务(PaaS)和软件即服务(SaaS)。3.2 设计原则3.3 架构模式3.4 架构反模式四、大数据架构设计4.1 大数据架构特征鲁棒性和容错性低延迟读取和更新能力横向扩容通用性延展性即席查询能力最少维护能力可调试性4.2 大数据技术生态4.3 Lambda架构4.4 Kappa架构4.5 Lambda架构和Kappa架构比对五、安全架构设计5.1 安全模型分类BLPBiba5.2 信息安全整体架构设计5.2.1 WPDRRC 模型5.3 网络安全体系架构设计5.3.1 认证框架5.3.2 访问控制框架5.3.3 机密性框架5.3.4 完整性框架5.3.5 抗抵赖框架