WEB技术之四层架构

Web4.0身份革命:DID技术栈的架构解析与选型指南 在数字化浪潮席卷全球的今天,去中心化身份(Decentralized Identity, DID)技术正在重塑数字世界的信任基础。本文深入解析Web4.0时代DID技术栈的四层架构模型,对比分析W3C DID标准、Sovrin、Hyperledger Indy等主流协议的技术特性,从身份注册层、凭证交换层、验证协议层到应用接口层的完整技术链路进行系统化拆解。通过实际场景的选型维度分析,为开发者提供兼顾安全性、隐私性和扩展性的技术决策框架,揭示数字身份从"平台附属"向"用户主权"演进的技术实现路径。 阅读详情
 
如果你的系统是大型的软件开发,那你就要做好更多层的分解,但是原则和理论上,我认为,不用分得太细。我们都知道,MVC模式把系统,分成Model、View、Controller。这样的分法是把表示层同逻辑层分开,也就是说把页面设计师同软件设计师分开。系统分析师再把各个功能写成接口,软件设计师就可以通过业务逻辑来写程序。
我所说的四层架构的分法,就是想把软件设计师工作量降下来,减少重复性的代码,提高开发速度,使软件有相当好的可维护、易扩展,这种四层架构对多人开发同软件来说,可以有个清晰的思路。我把系统分成表示层(UI)、业务逻辑层(Bussiness)、数据访问层(DataAccess)、数据实体层(DataEnity)。如果你还考虑到数据库设计的话,就是五层架构。我的出发点是从软件设计师角度,所以说是四层。其中,最好把所有的存储过程和SQL语句都写在数据库里,可以便于数据库的改变的修改和维护,同时也可以减少程序中的不稳定性。接下来,就是讲到如果更合理、更有效地把复杂的系统分析成多层,以达到系统的结构清晰、提高速度。
数据实体层(DataEnity)就是把实际数据库里的映射到内存中,也称为OMapping。其中有数据框架(.XSD格式)、也有微软提供的方法:继承DataSet、DataTable等。这层也是对微软技术的熟悉程度,对.net FrameWork类库中ADO.NET的学习是很关键的。
表示层主要就是做好合理的、适合客户的页面,这主要是美工的工作,程序员只需把对应的数据传过去就行了。当然,这就是你对ASP.NET控件的熟悉程度了。也是对微软技术学习中慢慢积累起来的。如果客户有需求你做电子商务,那你就要考虑用到Web Server,还要用到XML。从系统分析来说,表示层就是输入操作与输出操作的平台,你要把要输入的数据转换到下面一层及业务逻辑层(Bussiness)要可以操作数据,和把下层业务逻辑层(Bussiness)传出的数据,转成客户想要的效果,格式有很多种:是Office的格式(.doc/.exel等),还是图形图像,还是报表等及其它格式。对WEB技术来说,我们要把页面设计的一些元素统一管理,可以创建一个图书馆(Lib):图片放入(Images)、脚本放入(Js)、CSS。其中还有上传图片、附件 可以新建一个文件夹(LoadFilder)。做成这些程序设计外的准备以方便设计阶段的有上清晰的认识。
数据访问层(DataAccess)是.NET的核心技术的运用,当从这层的表面意思,你应该知道,这是对数据进行底层和原始数据的操作,要把提高开发速度与质量就是做好数据访问层的分析的优化。当然,业务逻辑层的业务逻辑分析很重要的,我现在讨论的数据访问层只对SQL Server数据库的操作,不讨论对其他数据库的操作。对数据库操作,要做到事务处理及异常捕获,及各种不种数据库之间联系。比如:对单表的操作、对联系表的操作,对不同数据库间的操作,从SQL语句来说,就是做好Insert、Select、update、delete的应用,对数据库的操作就是可以返回不同的数据类型,可是DataSet、 DataTable、DataReader、Bool等,在.net架构里,可以把这一层基类写详细、写完善,把它生成DLL文件。只要通过组件的引用就可以现实数据访问的功能,所以你写好了,就可以把数据访问层的写代码量的时间省下来。数据访问层主要是能对数据进行四种常用操作,也就是数据读入输出的作用,可以用SQL语句,也可以用参数如:DataTable的变通方法。程序设计的开发,就是从数据库设计开始,这足以说明数据库设计的关键。
       现在来谈谈业务逻辑层(Bussiness),我在学习其他的多层架构时,在想这多层架构嘛,只要一个就够了,只要能提高开发速度,达到可易维护性、可扩展,就行了。有一种架构,把页面写类库完全分开,这就是用到CodeBehind技术,在开源的时代,我个人认为这种代码才是最好实现隐藏性把页面与程序的彻底的分开,使系统有很大的扩展空间,这种方案有待下次讨论,这里先做个标记。此层关系系统是否可用的关键层,越是关键就越觉得模式的重要性,一种做法是:同数据访问层相对应,把概要设计分出的角色类添加方法、属性、事件、索引、接口。真正代码的实现部分就在这里,这是一个智慧的地方。可是没有人注意到这一点,只认为这一些的代码无非是对数据访问层的一种重用。第二种做法是:定义接口把它的代码实现部分包装起来。在这种做法中,可以用到多种设计模式。
有的人把通用的基类及通用的函数到通用层,或是把通用的基类写到各个层类。这是种不可取的方法。如果有一个框架层(FrameWork),这一层做什么用的呢?就是要通用的类库集中在这层。也是一个通用的基类,可以把一些常用的基类换在这层。也可以动态引用动态类库。对软件技术开发来说,对已有技术的一种引用是一种聪明的做法、也最有效的做法。
分层分得太多可能会增加软件的复杂程度。如果是小型性软件,要的就是简单与易用,没有必要分太多,对于扩展性的问题,可以运用框架层来解决。

你终爱算法吗?你会对程序结构追求一种完美吗?我们的目标就是要把程序开发变成一种智慧的净土,而不是伤心地,我们要追求的是一种艺术美,不是一种痛苦。痛恨那些把程序天堂变成地狱的魔鬼。

Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=550566
 


WEB技术之四层架构浅谈 如果你的系统是大型的软件开发,那你就要做好更多层的分解,但是原则和理论上,我认为,不用分得太细。我们都知道,MVC模式把系统,分成Model、View、Controller。这样的分法是把表示层同逻辑层分开,也就是说把页面设计师同软件设计师分开。系统分析师再把各个功能写成接口,软件设计师就可以通过业务逻辑来写程序。我所说的四层架构的分法,就是想把软件设计师工作量降下来,减少重复性的代码,提高开发速 阅读详情

相关推荐

C#上位机分层架构设计:表现层→业务层→数据访问层(解耦+可维护性提升)

// PLC通信异常(数据层专用)解耦:各层职责单一,修改某一层不影响其他层(如替换Modbus为OPC UA仅需修改数据层);可维护性:故障定位到具体层/类,维护成本降低80%以上;复用性:业务层/数据层接口可复用到不同上位机项目;扩展性:新增设备/功能仅需实现接口,无需重构核心代码;可测试性:各层独立封装,支持单元测试,提升代码质量。工业落地时需注意:分层架构的核心是“适度分层”,简单项目无需过度设计(如小型上位机可合并业务层与数据层);

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 902

DDD领域驱动设计-经典四层架构划分 + DDD建模分析过程

DDD经典四层模型架构划分以及建模分析过程

lqs_user的博客 1万+

10、深入解析 Web 服务架构:三层与四层架构详解

本文深入解析了Web服务中的三层与四层架构,详细介绍了机器的局限性、负载均衡器的类型(DNS轮询、L3/L4/L7负载均衡器)及其算法,探讨了共享状态处理策略如粘性连接与共享存储,以及基于cookie的用户身份识别机制。文章还阐述了三层架构的扩展方式和四层架构在统一前端处理、安全性和协议兼容性方面的优势,强调了合理选择架构和技术对构建高效、安全、可扩展Web系统的重要性。

pca5navigator的博客 71

DDD-经典四层架构应用

DDD-经典四层架构解读DDD分层与传统三层区别DDD分层详解四层架构图分层作用领域对象DDD编码实践代码结构描述领域模型注入仓储类的问题 DDD分层与传统三层区别 根据DDD领域驱动设计原则,对应的软件架构也需要做出相应的调整。 我们常用的三层架构模型划分为表现层,业务逻辑层,数据访问层等,在DDD分层结构中既有联系又有区别, 个人认为主要有如下异同: 在架构设计上,在DDD分层结构中将传统...

最爱下雨天 4万+

FreeRTOS项目:智能手表(1);

从 “最底层启动”→“系统基础配置”→“硬件驱动”→“中间件能力封装”→“上层业务功能”,分层递进、从基础到应用,就能逐步把整个项目的逻辑串联起来~

weixin_46847454的博客 1446

【编号326】全国地灾数据全国25万多个地质灾害点空间分布数据

全国地质灾害点分布数据涵盖25万多个各类灾害点信息,为灾害防治提供重要依据。通过分析灾害分布规律,可识别高风险区,指导监测预警、应急避险和基础设施建设。多地成功案例(如湖北兴山崩塌避险、重庆长寿滑坡预警、湖南"挪床行动")证明,提前预警和科学防治能有效避免人员伤亡。云南省2024年通过预警体系成功避让31起灾害,保护1342人生命安全。这些实践表明,地质灾害防治需结合科技手段与群防体系,实现早预警、早处置。

千奇百怪无奇不有 1467

大数据概述

分类目录:《大数据与云计算》总目录 所谓“大数据”,指的是所涉及的数据量规模巨大到无法通过目前主流软件工具,在合理时间内达到截取、管理、处理、并整理成为帮助企业经营决策更积极目的的信息。大数据处理技术代表了新一代的技术架构,这种架构通过高速获取数据并对其进行分析和挖掘,从海量形式各异的数据源中更有效地抽取出富含价值的信息,而大数据主要被用于分析和决策,企业用以分析的数据越全面,分析的结果就越接近于...

冯·诺依曼 12万+

MTK metadata中AF模块的移除与配置调整

本文详细介绍了在MTK平台Camera开发中如何移除metadata中的AF(自动对焦)模块。通过系统清理MTK_CONTROL_AF_REGIONS、MTK_CONTROL_MAX_REGIONS等关键配置项,并调整对焦模式及硬件特性声明,确保定制化设备在禁用自动对焦功能后的稳定运行。

q1w3e5r7t9y的博客 570

Java Web开发技术概述

第1章 Java Web开发技术概述J2EE(Java 2 Platform,Enterprise Edition)平台建立在J2SE(Java 2 Platform,Standard Edition)的基础上,为企业级应用提供了完整,稳定,安全和快速的Java平台.J2EE平台提供的Web开发技术主要支持两类软件的开发和应用,一类是做高级信息系统框架的Web应用服务器(Web applicati

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 3332

1.安装EMQX服务器

阿里云;EMQX

hfh8130的博客 5311

Stable Diffusion 模型分享:Beautiful Realistic Asians(美丽真实的亚洲人)

Beautiful Realistic Asians(BRA)模型是由作者自己训练而成的一个独立模型,它是一个真实模型,并且是一个针对亚洲人训练的模型,可以生成非常漂亮的亚洲小姐姐。条目内容类型大模型基础模型SD 1.5来源CIVITAI作者文件名称文件大小1.99GB。

水滴的博客 2156

PPTist:现代Web演示文稿编辑器的架构革新与技术实现深度解析

在数字化转型浪潮中,演示文稿创作工具正面临前所未有的技术挑战。传统桌面软件虽然功能完备,但存在跨平台协作困难、环境依赖严重、版本控制复杂等问题。而现有的Web端解决方案往往在功能完整性、性能表现和用户体验方面存在明显短板。当前行业普遍面临三大核心挑战:实时协作的同步机制缺失、复杂布局的精准操作困难、离线环境下的全功能支持不足。 PPTist作为一款基于Vue 3.x + TypeScript构建

gitblog_00893的博客 127

S32K144 UDSdoCAN 升级刷写实现笔记

本篇旨在描述如何开发“车规级”的软件升级程序,通过在S32K144平台上实现基于UDSdoCAN的刷写升级功能,带你一步步建立安全升级的“工程思维”,在这里既能收获经验还能获得工程源码、测试脚本,助你起飞,避坑提速!

汽车电子软件领域知识分享 811

Sunshine游戏串流服务器深度解析:四层架构实现跨平台低延迟体验

Sunshine作为一款开源的自托管游戏串流服务器,为Moonlight客户端提供了强大的后端支持,让用户能够在各种设备上享受高品质的游戏串流体验。这款由LizardByte开发的项目采用了模块化的四层架构设计,实现了硬件编码加速、跨平台兼容和网络优化等核心功能,为游戏串流领域带来了专业级的解决方案。 ## 🏗️ 四层架构设计:理解Sunshine的技术核心 Sunshine的架构设计遵循了

gitblog_00711的博客 130

OData V2 消息在 SAP UI5 中的生成、传播与治理全解

SAP UI5 的 OData V2 消息机制通过自动解析服务端响应头(sap-message)或错误体,将消息推送到全局 MessageModel,实现数据质量保障。关键点包括:1)消息通过目标路径与控件绑定联动,触发高亮等反馈;2)生命周期管理需注意避免自动刷新导致消息丢失;3)常见陷阱如批处理错误重复、内外层消息冲突等可通过精准目标路径或自定义处理器解决。代码示例展示了如何配置模型、消息模型及 MessagePopover 实现端到端消息展示,同时支持控件通过 refreshDataState 自定义

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 231

语音识别:PyAudio、SoundDevice、Vosk、openai-whisper、Argos-Translate、FunASR(Python)

本文介绍了Python中常用的音频处理库PyAudio,详细解析了其核心功能、核心概念和典型工作流程。PyAudio是一个跨平台的音频I/O库,支持音频录制、播放、实时流处理和低延迟操作。核心概念包括PyAudio类(管理音频设备和流)和Stream类(代表音频流)。文章重点讲解了open()方法的关键参数、回调函数的使用方式以及典型的工作流程,包括设备查询、流配置和资源释放。PyAudio适用于需要实时音频处理的场景,如语音识别和音频效果处理。

算法工程师 705

基于 Web3 + RWA 的品牌门店数字化范式

每家门店都像一个 Web3 节点,既服务用户,也贡献数据与资产,形成分布式品牌网络。用户的消费行为与数据转化为可流通的积分或代币,成为门店与品牌长期增长的资产池。:储值卡以 NFT 形式发行,用户既是消费者,也是品牌资产的持有人。:把商品、积分、权益、消费记录映射为可确权、可交易的链上资产。:用户点餐数据沉淀为资产,AI 分析饮食偏好,推荐个性化套餐。:通过推荐、预测、运营助手,提升经营效率和用户体验。:每一次消费不再是终点,而是可沉淀、可积累的资产。:消费沉淀为资产,权益可流通,体验更个性化。

leijiwen的博客 786

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WEB项目的分层结构(转)

大部分的WEB应用在职责上至少被分成四层:表示层、持久层、业务层和域模块层。 [b]一、 表示层[/b] 一般来讲,一个典型的WEB应用的前端应该是表示层,可以使用Struts框架。 下面是Struts所负责的: 1、 管理用户的请求,做出相应的响应。 2、 提供一个流程控制,委派调用业务逻辑和其他上层处理。 3、 处理异常。 ...

Depth 571

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

避坑指南:Teamcenter 13四层架构安装中最容易出错的5个环节(附解决方案)

本文详细解析了Teamcenter 13四层架构安装过程中最容易出错的5个关键环节,包括数据库监听配置、License服务启动、Weblogic域创建、部署文件路径和服务启动顺序。针对每个问题提供了精准的解决方案和实用技巧,帮助工程师高效完成安装并避免常见陷阱。特别适用于PLM系统管理员和实施顾问。

weixin_30693683的博客 535

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JavaEE 分层模型:Web 服务器 + 核心框架 + 交互逻辑全解析

JavaEE 分层模型:Web 服务器 + 核心框架 + 交互逻辑全解析

weixin_46619605的博客 1320

taipy核心架构揭秘:从数据管道到Web界面的无缝衔接

还在为数据科学项目难以转化为生产级应用而烦恼?面对复杂的Web开发、数据管道管理和用户界面设计,你是否感到力不从心?taipy作为革命性的Python框架,彻底解决了这一痛点,让数据科学家能够专注于算法本身,而将复杂的工程问题交给框架处理。 读完本文,你将掌握: - taipy四层架构的核心设计理念 - 数据管道与Web界面的无缝集成机制 - 实时数据同步与状态管理的实现原理 - 生产环境部署的...

gitblog_00029的博客 1068

基于java的安全web电子邮件系统_基于JAVA的安全WEB电子邮件系统

重庆大学硕士学位论文 中文摘要 I 摘 要 电子邮件技术诞生至今,安全问题一直是开发者和使用者关心的问题之一。 本文在研究了电子邮件实现平台的基础上,围绕电子邮件的安全技术问题展开讨 论,把问题解决的重点放在两个方面:加密和过滤。终把研究的成果赋予实践,开发了一个基于JAVA的安全WEB电子邮件系统。 本文研究的主要内容包括: JAVA① 技术安全性,JAVA对MVC模式的实现,以及JAVA技术解...

weixin_32374723的博客 537

使用open source产品组装你的web应用架构(struts+spring+hibernate)

其实,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情。 在构架的一开始就有很多事情要考虑。 从高处看,摆在开发者面前有很多问题:要考虑是怎样建立用户接口?在哪里处理业务逻辑? 怎样持久化的数据。 而这三层构架中,每一层都有他们要仔细考虑的。 各个层该使用什么技术? 怎样的设计能松散耦合还能灵活改变? 怎样替换某个层而不影响整体构架?应用程序如何做各种级别的业务处理(比如事务处理)

@@@ 1113

写在前面|0. 阅读本专栏你能获得什么?

作者老邋遢(笔名)优快云非著名作者前世界500强技术架构师,有十余年的架构设计经验主导或参与过众多中大型项目的架构演进和技术方案设计精通基于Java的微服务和云原生架构设计尤其对于复杂业务和架构以及海量数据下的分析处理、技术架构改造和演进有深刻的实践和理解现AI创业公司技术合伙人主攻方向为传统IT公司降本增效基于自研的AI编程四层架构方法论为公司打造了一支AI数字员工团队且现在的AI员工极少或者几乎无需人工监督和干预极大减少了开发成本和周期。

老邋遢的菜园子 42
上一篇: NUnit2.0详细使用方法
下一篇: 用户认证管理设计方案
SmartJavaer
博客等级 码龄21年 13粉丝 37原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值