《敏捷制造——敏捷集成基础结构设计》——2.3 集成基础结构数据访问模型

简介:

本节书摘来异步社区《敏捷制造——敏捷集成基础结构设计》一书中的第2章,第2.3节,作者:苏金泷,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.3 集成基础结构数据访问模型

2.3.1 集成基础结构数据存储结构建模分析

敏捷企业的集成基础结构中计算机系统的主要用途之一便是从数据存储检索数据并将信息显示给用户;在用户更改数据之后系统再将更新内容存入数据库。由于数据存储和用户界面之间的数据流是关键的信息流,因此以往更倾向于将这两部分功能程序捆绑在一起。这样虽然可以减少编码量,但用户界面需要频繁地更改,数据与界面的捆绑使用户界面的更改往往伴随着许多逻辑指令的更改,为此程序工作者平添了诸多不便。

Model-View-Controller(MVC)模式SM01SMI99[J05]实现功能模块和显示模块的分离,使得应用程序更加可维护,可扩展,可移植和可复用。Trygve Reenskaug在20世纪70年代末为Smalltalk平台开发了MVC框架,而发展到今天已经形成了一个非常成熟的模式,如图2-8所示。由于当数据和用户界面这两部分耦合在一起时,业务应用程序除数据传输功能外的大量逻辑指令,MVC模型让Web应用程序的用户界面功能实现模块化,以便可以单独修改各个部分。

Model-View-Controller的核心就是做到三层甚至多层的松散耦合,模式基于用户输入,将域的建模、显示和操作分为如图2-8所示的三个独立类:

1.模型:模型用于管理应用程序域的行为和数据,并响应视图为获取其状态信息而发出的请求,还会响应通常来自控制器的更改状态指令。

2.视图:视图用于管理信息的显示。

3.控制器:控制器用于解释用户的鼠标和键盘输入,以通知模型和/或视图进行相应的更改。

0c10f4d1a6a5c22e57e9841aa26b32eca2925cf3

Web设计中的MVC模式在浏览器和JSP或SERVLET之间插入一个控制组件。这个控制组件集中了处理浏览器发过来的HTTP请求的分发逻辑,根据HTTP请求的URL输入参数和目前应用的内部状态,把请求分发给相应的Web层的JSP或SERVLET。该控制组件同时也负责选择下一个视图,J2EE中通常由JSP生成返回的HTML从而形成视图给浏览器。集中的控制组件也有利于安全验证和日志纪录。

2.3.2 MVC Model 1结构

JSP改良了Servlet输出网页时,需要把HTML程序代码写在Java程序代码中,并且需要采用复杂的方式修改输出的网页。JSP提供在原始的HTML网页中插入Java程序代码的方式,大幅改善设计使用者接口的难度。

因而,可以完全舍弃Servlet而仅采用JSP,但是程序员必须要配合用户界面美工人员的HTML 程序代码,在适当的地方加上特殊的标记,这让网页画面嵌入了后端程序的逻辑。纯JSP的方法不但增加了配合要花的时间和难度,也增加了程序员熟悉JSP Custom Tag的难度,这种设计方式就是所谓的MVC Model 1[SM01] [SM99] [SMI99] [JNDI99] [J05]。

如图2-9所示,MVC Model 1其实不是一个稳定架构,模型1的基础是JSP文件。它从HTTP的请求中提取参数,调用相应的业务逻辑,处理HTTP会话,最后生成HTTP文档。一系列这样的JSP文件加上其他辅助类或文件形成一个完整的模型1应用。早期的ASP和PHP技术就属于这个情况。

f274d28b9364e03b5e6f1651283e23a8f9a39f8f

2.3.3 MVC Model 2结构

我们在集成基础结构建设中引入MVC Model 2体系结构[SM01] [SM99] [SMI99] [JNDI99] [J05]作为标准数据访问模型,程序设计中该结构采用了Servlet作为控制器,视图采用JSP(包括处理数据表现的Custom Tag)实现,而模型则由代表商业数据和逻辑的JavaBeans担任。当用户提出请求时,请求首先被控制器接收,控制器根据用户的请求选择适当的模型,由模型执行用户的请求处理。当处理完毕,控制器再选择适当的视图。然后视图执行模型数据的查询和显示,最后以HTML的形式作为请求的响应发送给客户[WSH02]。

如图2-10所示,Model2体系结构虽然借助了纯MVC体系结构的设计思想,但它们之间却存在一些区别[SM01] [SM99] [SMI99],这些区别来源于Web应用本身。首先,在Model 1体系结构中视图没有自动同步的功能,传统的MVC模型中model可以通知view,然后view就可以被更新,但是在Web中作为model的JavaBeans更新后,无法调用JSP。其次,由于Model 1中观察者/通知模式不能在Web环境内很好的工作,HTTP是一个“GET”的协议,即因客户请求而服务器响应,没有请求就没有响应。而观察者使用“POST”协议通知,这样服务器才能在模型变更瞬间及时将信息推送到客户端。虽然存在某些方法能模拟将数据推送到客户端,但这仅是权宜的修补。我们可以通过在JSP页面中嵌入脚本语言执行模型数据,来实现Model2体系结构中本不应该处理的模型数据的查询行为。这样虽然也能模拟将数据推送到客户端,不过这样的做法与JSP组件的角色不符,于是有了MVC Model 2 WSH02SY01BLX02[J05]。

敏捷企业的集成基础结构中,需要频繁地从数据库调用向用户显示,或从浏览器端(客户端)接收各种数据存储到数据库中,以便进行综合分析和处理。集成基础结构是一个面向多个行业的综合信息平台,几乎每一个行业甚至对于每一类用户都必须建立具有针对性的用户界面,但数据调用和存储逻辑却大体相同。倘若要对敏捷供应链中每一类用户都重新编写检索、运算……等程序逻辑的话,程序设计将会是一个浩大的工程,而且平台建设过程中往往会出现程序模块接口不一致的情况;再加上日常维护过程中用户界面的频繁改变,会使集成基础结构建设中程序编写的工作量翻几倍,系统建设与维护过程中所需熟练程序员的数量将会是令人无法承受的。因此,将用户界面与控制逻辑分离,对于敏捷企业的集成基础结构建设来说,具有极其重要的意义。

eb8e1f86c8f3a1eb1ad807223918e3c937f4dd7e
相关文章
|
5月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
简介:本文整理自阿里云高级技术专家李麟在Flink Forward Asia 2025新加坡站的分享,介绍了Flink 2.1 SQL在实时数据处理与AI融合方面的关键进展,包括AI函数集成、Join优化及未来发展方向,助力构建高效实时AI管道。
914 43
|
5月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
本文整理自阿里云的高级技术专家、Apache Flink PMC 成员李麟老师在 Flink Forward Asia 2025 新加坡[1]站 —— 实时 AI 专场中的分享。将带来关于 Flink 2.1 版本中 SQL 在实时数据处理和 AI 方面进展的话题。
373 0
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
|
5月前
|
SQL 关系型数据库 Apache
从 Flink 到 Doris 的实时数据写入实践 —— 基于 Flink CDC 构建更实时高效的数据集成链路
本文将深入解析 Flink-Doris-Connector 三大典型场景中的设计与实现,并结合 Flink CDC 详细介绍了整库同步的解决方案,助力构建更加高效、稳定的实时数据处理体系。
2384 0
从 Flink 到 Doris 的实时数据写入实践 —— 基于 Flink CDC 构建更实时高效的数据集成链路
|
5月前
|
机器学习/深度学习 SQL 大数据
什么是数据集成?和数据融合有什么区别?
在大数据领域,“数据集成”与“数据融合”常被混淆。数据集成关注数据的物理集中,解决“数据从哪来”的问题;数据融合则侧重逻辑协同,解决“数据怎么用”的问题。两者相辅相成,集成是基础,融合是价值提升的关键。理解其差异,有助于企业释放数据潜力,避免“数据堆积”或“盲目融合”的误区,实现数据从成本到生产力的转变。
什么是数据集成?和数据融合有什么区别?
|
9月前
|
人工智能 自然语言处理 DataWorks
DataWorks Copilot 集成Qwen3-235B-A22B混合推理模型,数据开发与分析效率再升级!
阿里云DataWorks平台正式接入Qwen3模型,支持最大235B参数量。用户可通过DataWorks Copilot智能助手调用该模型,以自然语言交互实现代码生成、优化、解释及纠错等功能,大幅提升数据开发与分析效率。Qwen3作为最新一代大语言模型,具备混合专家(MoE)和稠密(Dense)架构,适应多种应用场景,并支持MCP协议优化复杂任务处理。目前,用户可通过DataWorks Data Studio新版本体验此功能。
763 23
DataWorks Copilot 集成Qwen3-235B-A22B混合推理模型,数据开发与分析效率再升级!
|
6月前
|
人工智能 JavaScript 安全
一文教你高效集成Qwen Code与ModelGate千万免费Toknn模型网关平台
本文详解如何高效集成Qwen Code与ModelGate模型网关平台,涵盖环境搭建、API配置、代码生成等关键步骤,助你实现智能编程与多模型管理,大幅提升AI开发效率。
|
7月前
|
运维 安全 数据管理
Dataphin V5.1 企业级发布:全球数据无缝集成,指标管理全新升级!
企业数据管理难题?Dataphin 5.1版来解决!聚焦跨云数据、研发效率、指标管理和平台运维四大场景,助力数据团队轻松应对挑战。无论是统一指标标准、快速定位问题,还是提升管理安全性,Dataphin都能提供强大支持。3分钟了解新版本亮点,让数据治理更高效!
131 0
|
7月前
|
传感器 人工智能 搜索推荐
M3T联邦基础模型用于具身智能:边缘集成的潜力与挑战
随着具身智能系统日益变得多模态、个性化和交互式,它们必须能够从多样化的感官输入中有效学习,持续适应用户偏好,并在资源和隐私约束下安全运行。这些挑战凸显了对能够在模型泛化与个性化之间取得平衡的同时实现快速、情境感知自适应能力的机器学习模型的迫切需求。在此背景下,两种方法脱颖而出,各自提供了部分所需能力:FMs为跨任务和跨模态的泛化提供了一条路径,FL)则为分布式、隐私保护的模型更新和用户级模型个性化提供了基础设施。然而,单独使用时,这两种方法都无法满足现实世界中具身环境复杂且多样化的能力要求。
289 0
|
11月前
|
人工智能 IDE 测试技术
用户说 | 通义灵码2.0,跨语言编码+自动生成单元测试+集成DeepSeek模型且免费使用
用户说 | 通义灵码2.0,跨语言编码+自动生成单元测试+集成DeepSeek模型且免费使用

热门文章

最新文章