CN109683875A - 分布式环境下mvc模式的应用框架及其方法 - Google Patents
分布式环境下mvc模式的应用框架及其方法 Download PDFInfo
- Publication number
- CN109683875A CN109683875A CN201811505968.4A CN201811505968A CN109683875A CN 109683875 A CN109683875 A CN 109683875A CN 201811505968 A CN201811505968 A CN 201811505968A CN 109683875 A CN109683875 A CN 109683875A
- Authority
- CN
- China
- Prior art keywords
- module
- layer model
- data
- model module
- display layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及软件架构领域,针对分布式环境下现有的MVC模式耦合过于紧密的问题,提出了一种分布式环境下MVC模式的应用框架,包括客户端和服务器端,所述客户端包括View模块、Controller模块和显示层Model模块,所述服务器端包括数据层Model模块和数据库;View模块用于显示用户交互界面并接收交互数据;Controller模块用于发送交互数据给显示层Model模块;显示层Model模块,用于判断交互数据是否为视图数据,如是则调用对应视图数据的处理方法得到处理结果返回给View模块显示,否则,发送交互数据给数据层Model模块;数据层Model模块,用于根据接收的交互数据调用对应业务逻辑数据的处理方法得到处理结果返回给显示层Model模块供View模块显示。本发明适用于分布式环境下MVC模式的软件开发。
Description
技术领域
本发明涉及软件架构领域,特别涉及一种分布式环境下MVC模式的应用框架及其方法。
背景技术
MVC是一种面向对象用于设计创建Web应用程序的框架模式。MVC模式将应用程序分为3个部分:Model(模型)、View(视图)和Controller(控制器),其中,Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,通常模型负责在数据库中存取数据;View(视图)是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的;Controller(控制器)是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
随着网络技术的发展,计算机软件已经进入了分布式应用的时代,分布式环境下一般是View和Controller位于客户端,Model位于服务器端,MVC模式在分布式条件下显示层和逻辑层会不可避免的出现紧耦合的连接,而紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,尤其表现在View和Model之间的联系太紧密,在当需要对部分或所有组件进行某种形式的更改时,整个系统就显得非常脆弱。且当MVC模式运用到实际工程中的时候,显示层的状态和操作在很多情况下和底层的业务逻辑的接口并不一致,服务器端需要额外处理显示层的数据逻辑,对服务器端的计算压力很大。
发明内容
本发明所要解决的技术问题是:克服分布式环境下现有的MVC模式耦合紧密带来的维护麻烦问题及MVC模式的应用框架的服务器计算压力过大带来的效率低问题,提出一种分布式环境下MVC模式的应用框架及其方法。
本发明解决上述技术问题,采用的技术方案是:
分布式环境下MVC模式的应用框架,包括客户端和服务器端,所述客户端包括View模块、Controller模块、显示层Model模块和订阅模块,所述服务器端包括数据层Model模块和数据库;
View模块,用于显示用户交互界面并接收用户的交互数据;
Controller模块,用于读取所述交互数据并发送给显示层Model模块;
显示层Model模块,用于封装视图数据的处理方法;判断交互数据是否为视图数据,如是,则调用对应视图数据的处理方法得到处理结果,记为处理结果一,将处理结果一返回给View模块进行显示,否则,发送交互数据给数据层Model模块;
数据层Model模块,用于封装处理业务逻辑数据并操作数据库的处理方法,根据显示层Model模块发送的交互数据调用对应业务逻辑数据的处理方法得到处理结果,记为处理结果二,将处理结果二返回给显示层Model模块供View模块显示。
优选的,所述显示层Model模块和数据层Model模块采用Web Service协议进行通信。
进一步的,所述服务器还包括消息中间件模块,所述数据层Model模块还用于作为发布方将处理结果二以对应的预定的发布主题向消息中间件模块发布消息;显示层Model模块还用于作为订阅方以预定的订阅主题向消息中间件模块订阅消息;消息中间件模块用于根据接收到的订阅主题和发布主题将发布方发布的消息转发给与其主题一致的订阅方。
可选的,所述客户端为多个。
应用于上述分布式环境下MVC模式的应用框架的方法,包括:
View模块显示用户交互界面并接收用户的交互数据;
Controller模块读取所述交互数据并发送给显示层Model模块;
显示层Model模块判断交互数据是否为视图数据,如是,则调用其内部封装的对应视图数据的处理方法得到处理结果,记为处理结果一,将处理结果一返回给View进行显示,否则,发送交互数据给数据层Model模块;
数据层Model模块根据显示层Model模块发送的交互数据调用其内部封装的对应业务逻辑数据的处理方法得到处理结果,记为处理结果二,将处理结果二返回给显示层Model模块供View模块显示。
优选的,所述显示层Model模块和数据层Model模块采用Web Service协议进行通信。
进一步的,所述发送交互数据给数据层Model模块还包括:显示层Model模块作为订阅方以预定的订阅主题向消息中间件模块订阅消息;
所述将处理结果二返回给显示层Model模块供View模块显示还包括:数据层Model模块作为发布方将处理结果二以对应的预定的发布主题向消息中间件模块发布消息;消息中间件模块根据接收到的订阅主题和发布主题将发布方发布的消息转发给与其主题一致的订阅方。
可选的,所述客户端为多个。
本发明的有益效果是:
本发明将客户端用户的交互数据进行分类为视图数据和业务逻辑数据,交互数据如为视图数据则直接在客户端的显示层Model模块进行处理,否则交给服务器端的数据层Model模块进行处理,也就是说数据层Model模块处理的是业务逻辑数据,实现了业务逻辑数据与视图数据的分开处理,减轻了服务器端的压力的同时,将Model模块进行了拆分,将视图数据的处理放在了客户端的显示层Model模块,将业务逻辑数据的处理放在了服务器的数据层Model模块,解开了View模块与Model模块的强耦合,当仅设置涉及到业务逻辑处理的修改时,仅需修改数据层Model模块的实现即可别的模块并不影响,如此大幅度的改善传统服务软件系统的工作流程,减轻复杂软件系统的扩展和维护工作强度。
附图说明
图1为本发明实施例的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及如下实施例对本发明进行进一步详细说明。
如图1所示,分布式环境下MVC模式的应用框架,包括客户端和服务器端,客户端包括View模块、Controller模块和显示层Model模块,服务器端包括数据层Model模块和数据库;
View模块,用于显示用户交互界面并接收用户的交互数据;
Controller模块,用于读取交互数据并发送给显示层Model模块;
显示层Model模块,用于封装视图数据的处理方法;判断交互数据是否为视图数据,如是,则调用对应视图数据的处理方法得到处理结果,记为处理结果一,将处理结果一返回给View模块进行显示,否则,发送交互数据给数据层Model模块;
数据层Model模块,用于封装处理业务逻辑数据并操作数据库的处理方法,根据显示层Model模块发送的交互数据调用对应业务逻辑数据的处理方法得到处理结果,记为处理结果二,将处理结果二返回给显示层Model模块供View模块显示。
其中,视图数据包括与渲染显示相关的数据;业务逻辑数据为与业务逻辑相关的数据。数据层Model模块可以提供对数据库增加、删除、修改和查询的接口。
为了使得客户端与服务器能跨平台通信,显示层Model模块和数据层Model模块可采用Web Service协议进行通信。其中,具体的实现方式可以是:数据层Model模块将自己的接口封装成符合Web Services协议的接口,显示层Model通过发送Web Services协议的数据访问数据层Model的功能接口,而Web Services协议的表现形式可以上XML协议等可跨平台使用的协议。
为了节省服务器的资源,可选的,客户端可为多个,也就是说同一个服务器端可以有多个客户端存在。
为了保证存在多个客户端时服务器中数据层Model模块数据的改变可以同步到需要对应改变的客户端,服务器还可包括消息中间件模块,数据层Model模块还可用于作为发布方将处理结果二以对应的预定的发布主题向消息中间件模块发布消息;显示层Model模块还可用于作为订阅方以预定的订阅主题向消息中间件模块订阅消息;消息中间件模块可用于根据接收到的订阅主题和发布主题将发布方发布的消息转发给与其主题一致的订阅方。
其中,主题一致,指的是发布主题和订阅主题是一致的,消息中间件模块提供了异构平台下的松耦合的信息交换机制,当数据层Model模块的状态改变之后可将状态变更的消息发布至注册的主题上;客户端可以从主题上接收到该同步协作消息,然后根据消息内容更新自己的显示。
作为本发明的一种实施方式,应用于上述分布式环境下MVC模式的应用框架的方法,包括:
View模块显示用户交互界面并接收用户的交互数据;
Controller模块读取交互数据并发送给显示层Model模块;
显示层Model模块判断交互数据是否为视图数据,如是,则调用其内部封装的对应视图数据的处理方法得到处理结果,记为处理结果一,将处理结果一返回给View进行显示,否则,发送交互数据给数据层Model模块;
数据层Model模块根据显示层Model模块发送的交互数据调用其内部封装的对应业务逻辑数据的处理方法得到处理结果,记为处理结果二,将处理结果二返回给显示层Model模块供View模块显示。
为了使得客户端与服务器能跨平台通信,显示层Model模块和数据层Model模块可采用Web Service进行通信。其中,具体的实现方式可以是:数据层Model模块将自己的接口封装成符合Web Services协议的接口,显示层Model通过发送Web Services协议的数据访问数据层Model的功能接口,而Web Services协议的表现形式可以上XML协议等可跨平台使用的协议。
为了节省服务器的资源,可选的,客户端可为多个,也就是说同一个服务器端可以有多个客户端存在。
进一步的,发送交互数据给数据层Model模块还包括:显示层Model模块作为订阅方以预定的订阅主题向消息中间件模块订阅消息;
为了保证存在多个客户端时服务器中数据层Model模块数据的改变可以同步到需要对应改变的客户端,服务器还可包括消息中间件模块将处理结果二返回给显示层Model模块供View模块显示还包括:数据层Model模块作为发布方将处理结果二以对应的预定的发布主题向消息中间件模块发布消息;消息中间件模块根据接收到的订阅主题和发布主题将发布方发布的消息转发给与其主题一致的订阅方。例如存在客户端A和客户端B,客户端A需要向客户端B进行业务逻辑相关的交互,客户端A中用户产生了交互对应的交互数据,该交互数据经由客户端A的Controller模块和显示层Model模块采用Web Services发送至服务器端的数据层Model模块,数据层Model模块调用对应业务逻辑数据的处理方法进行处理得到处理结果将相应的处理结果以处理结果相对应的预定的发布主题经由消息中间件发送给主题一致的订阅方客户端B的显示层Model模块进行客户端B的View模块的更新,客户端B的View模型接收用户的相关交互数据后经由客户端B的Controller模块和显示层Model模块采用Web Services发送至服务器端的数据层Model模块,数据层Model模块处理交易数据进行数据库的操作后将相应的处理结果以处理结果相对应的预定的发布主题经由消息中间件发送给主题一致的客户端A的显示侧Model模块和客户端B的View模型完成了信息的交互。
Claims (8)
1.分布式环境下MVC模式的应用框架,包括客户端和服务器端,其特征在于,所述客户端包括View模块、Controller模块和显示层Model模块,所述服务器端包括数据层Model模块和数据库;
View模块,用于显示用户交互界面并接收用户的交互数据;
Controller模块,用于读取所述交互数据并发送给显示层Model模块;
显示层Model模块,用于封装视图数据的处理方法;判断交互数据是否为视图数据,如是,则调用对应视图数据的处理方法得到处理结果,记为处理结果一,将处理结果一返回给View模块进行显示,否则,发送交互数据给数据层Model模块;
数据层Model模块,用于封装处理业务逻辑数据并操作数据库的处理方法,根据显示层Model模块发送的交互数据调用对应业务逻辑数据的处理方法得到处理结果,记为处理结果二,将处理结果二返回给显示层Model模块供View模块显示。
2.如权利要求1所述的分布式环境下MVC模式的应用框架,其特征在于,所述显示层Model模块和数据层Model模块采用Web Service协议进行通信。
3.如权利要求1或2所述的分布式环境下MVC模式的应用框架,其特征在于,所述服务器还包括消息中间件模块,所述数据层Model模块还用于作为发布方将处理结果二以对应的预定的发布主题向消息中间件模块发布消息;显示层Model模块还用于作为订阅方以预定的订阅主题向消息中间件模块订阅消息;消息中间件模块用于根据接收到的订阅主题和发布主题将发布方发布的消息转发给与其主题一致的订阅方。
4.如权利要求3所述的分布式环境下MVC模式的应用框架,其特征在于,所述客户端为多个。
5.应用于权利要求1所述的分布式环境下MVC模式的应用框架的方法,其特征在于,包括:
View模块显示用户交互界面并接收用户的交互数据;
Controller模块读取所述交互数据并发送给显示层Model模块;
显示层Model模块判断交互数据是否为视图数据,如是,则调用其内部封装的对应视图数据的处理方法得到处理结果,记为处理结果一,将处理结果一返回给View进行显示,否则,发送交互数据给数据层Model模块;
数据层Model模块根据显示层Model模块发送的交互数据调用其内部封装的对应业务逻辑数据的处理方法得到处理结果,记为处理结果二,将处理结果二返回给显示层Model模块供View模块显示。
6.如权利要求5所述的方法,其特征在于,所述显示层Model模块和数据层Model模块采用Web Service协议进行通信。
7.如权利要求5或6所述的方法,其特征在于,所述发送交互数据给数据层Model模块还包括:显示层Model模块作为订阅方以预定的订阅主题向消息中间件模块订阅消息;
所述将处理结果二返回给显示层Model模块供View模块显示还包括:数据层Model模块作为发布方将处理结果二以对应的预定的发布主题向消息中间件模块发布消息;消息中间件模块根据接收到的订阅主题和发布主题将发布方发布的消息转发给与其主题一致的订阅方。
8.如权利要求7所述的方法,其特征在于,所述客户端为多个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811505968.4A CN109683875B (zh) | 2018-12-10 | 2018-12-10 | 分布式环境下mvc模式的应用框架系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811505968.4A CN109683875B (zh) | 2018-12-10 | 2018-12-10 | 分布式环境下mvc模式的应用框架系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109683875A true CN109683875A (zh) | 2019-04-26 |
CN109683875B CN109683875B (zh) | 2022-04-19 |
Family
ID=66187245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811505968.4A Active CN109683875B (zh) | 2018-12-10 | 2018-12-10 | 分布式环境下mvc模式的应用框架系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109683875B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000407A (zh) * | 2020-08-13 | 2020-11-27 | 北京字节跳动网络技术有限公司 | 一种界面交互方法、装置、终端设备及存储介质 |
WO2023179140A1 (zh) * | 2022-03-21 | 2023-09-28 | Oppo广东移动通信有限公司 | 应用处理装置、控制方法、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080068633A1 (en) * | 2006-09-18 | 2008-03-20 | Xerox Corporation | Java 2 platform Enterprise Edition (J2EE) based web publishing |
CN101232505A (zh) * | 2008-01-17 | 2008-07-30 | 中山大学 | 基于mvc架构的ria分层框架的接口模型 |
CN101471846A (zh) * | 2007-12-29 | 2009-07-01 | 北京天融信网络安全技术有限公司 | 一种网络事件分析管理系统 |
CN108038009A (zh) * | 2017-12-22 | 2018-05-15 | 金蝶软件(中国)有限公司 | 基于Web应用的前后端交互方法、装置及计算机设备 |
-
2018
- 2018-12-10 CN CN201811505968.4A patent/CN109683875B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080068633A1 (en) * | 2006-09-18 | 2008-03-20 | Xerox Corporation | Java 2 platform Enterprise Edition (J2EE) based web publishing |
CN101471846A (zh) * | 2007-12-29 | 2009-07-01 | 北京天融信网络安全技术有限公司 | 一种网络事件分析管理系统 |
CN101232505A (zh) * | 2008-01-17 | 2008-07-30 | 中山大学 | 基于mvc架构的ria分层框架的接口模型 |
CN108038009A (zh) * | 2017-12-22 | 2018-05-15 | 金蝶软件(中国)有限公司 | 基于Web应用的前后端交互方法、装置及计算机设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000407A (zh) * | 2020-08-13 | 2020-11-27 | 北京字节跳动网络技术有限公司 | 一种界面交互方法、装置、终端设备及存储介质 |
WO2023179140A1 (zh) * | 2022-03-21 | 2023-09-28 | Oppo广东移动通信有限公司 | 应用处理装置、控制方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109683875B (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2947569B1 (en) | Hybrid applications operating between on-premise and cloud platforms | |
CN102255934B (zh) | 云服务发布方法及云服务中介 | |
CN102255935B (zh) | 云服务消费方法、云服务中介及云系统 | |
CN104486440B (zh) | 一种基于消息总线的云计算管理软件交互方法 | |
CN102710593B (zh) | 一种图形聚合中的消息分发方法及装置、系统 | |
CN110738454A (zh) | 一种企业管理平台系统 | |
CN107979635A (zh) | 基于微服务的系统、方法及存储介质 | |
CN109815025B (zh) | 一种业务模型调用方法、装置及存储介质 | |
CN105635283A (zh) | 一种云制造服务的组织管理和使用方法和系统 | |
CN102592198B (zh) | 一种支持组合业务的工作流引擎 | |
CN101808051B (zh) | 应用整合网关及其控制方法 | |
CN101739300A (zh) | 一种多媒体终端进程间通讯的方法和系统 | |
CN104967650A (zh) | 第三方电商平台统一发布方法 | |
CN104579792A (zh) | 多适配方式实现多种类型虚拟资源集中管理架构及方法 | |
CN105577446B (zh) | 一种轻量级嵌入式网络管理系统和方法 | |
CN107222530A (zh) | 服务异步交互方法、设备、系统和可读介质 | |
CN104618433A (zh) | 一种基于eca规则的服务组合方法 | |
CN102467411A (zh) | 一种工作流处理及工作流代理方法、装置和系统 | |
CN110851248A (zh) | 异步任务数据处理方法、装置及计算机可读存储介质 | |
CN109683875A (zh) | 分布式环境下mvc模式的应用框架及其方法 | |
CN112866421B (zh) | 基于分布式缓存以及nsq的智能合约运行方法及装置 | |
CN112363857B (zh) | 微前端架构的应用系统、同步方法、存储介质和设备 | |
CN103677975A (zh) | 一种访问应用系统内部对象的系统和方法 | |
CN101901163A (zh) | 分配消息的方法和装置 | |
CN112966833B (zh) | 基于Kubernetes集群的机器学习模型平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |