基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET - 系统架构

简介:

   本文是继AgileEAS.NET应用开发平台介绍AgileEAS.NET之敏捷并行开发方法所做的架构补充,用于阐释AgileEAS.NET平台的架构设计思路。

      说起了系统架构,我也无法给出系统架构的确切定义,我的理解也许也只是基于自己经验的一个片断,我是学习园林专业身的,学习过园林建筑学,也许对软件框架最早的理解来源于对建筑的理解,我们知道,一个好的建筑必须解决建筑及其附属物的荷载及其美观和居住的舒适性,而这个必须通过其建筑的骨架--承重体系来支撑,建筑最先进行的其他承重休息的浇筑。

软件之系统架构有如建筑的骨架,不同规模、不同地域、不同应用的建筑会使用不同的承重结构。软件系统架构的设计如同对建筑的框架设计一样,对于不同的应用应该应用与之相匹配不同的架构,也就是说,客户的应用决定着项目的架构及到技术选项。

      AgileEAS.NET平台所提出的系统架构适应于中小规律的管理信息系统。

      在AgileEAS.NET应用开发平台介绍中我画出了AgileEAS.NET的基本架构图,本文我从系统的横向扩展和纵向伸缩两个方面来讨论。

横向扩展:

      AgileEAS.NET平台是基于“并行开发”这种思想支持的应用平台,我们在在DotNET中用平台+插件实现了这么一种理念,其核心的机制既用插件横行扩展平台。

      采用这种思路构建和扩展业务系统,需要一个统一的机制允许业务插件注册到平台,基于这种思路,各个业务模块,都变成了可以自由组装、拆卸的插件。

image

      插件运行容器是一组能够实现插件业务调用的一组应用程序,可以是基于WinFrom的桌面应用程序、也可以是基于Web的网站应用,运行容器调用插件并由插件横向扩展运行容器的功能,这样一来,应用系统的开发就转成为对运行容器的功能扩展,也就是项目的重点转移于开发模块插件这个焦点。

      业务插件的开发者可以选择利用AgileEAS.NET所提供的快速开发技术实现,即依赖于平台所提供的基础组件,也可以选用开发者自己的技术去实现模块插件,这将涉及到系统的纵向伸缩的问题。 

 

纵向伸缩:

 

      不要是说搞软件的技术人员,就是某些客户机构人员,也跟你嚷嚷的要求软件弄成三层结构才行,我想这个三并不指特定的三层吧,应该是泛指三或者多层结构吧。

      目前,大家所指的三层结构应该是对系统进行的所谓界面(UI)、业务逻辑(BI)、数据访问(DA)三层吧,多层也是对这三层进行了详细的分解的结果,业界经验证明,这确实是解决系统复杂性的一种主流模式。但并不是说应用了三层架构就一定能解决系统的复杂性,他不是万能的。他提供给我们一种解决复杂问题的思路,那就是根据应用的复杂程度合理的去分层。

image

      对于这种分层设计,我建议根据项目的实际情况合理的选择合理的分层设计,如果对于很小的项目选择复杂的分层设计,就会演变成为分层而分层的一种漩涡。

      AgileEAS.NET支持不同层级的开发,对于很简单的项目,你可以选择把界面、业务、数据访问全部放在模块模块UI实现;对于较复杂的项目,可以选择使用模块UI+数据访问层,把业务逻辑并入UI实现,更为复杂的项目可以把界面、业务、数据三部分严格分解甚至可以把这三层中的任务一层再分解,比方,数据访问层可以分解为数据访问接口层、数据访问实现层等,AgileEAS.NET提供一个基于消息的分布式通信服务,应用系统可选的基于它实现分布式应用。

      总之,系统的架构取决于客户的应用、技术力量等诸多方面,优秀的架构在于系统扩展、伸缩性以及系统的抽像程度之间寻找一种平衡。


作者:魏琼东 
出处:http://www.cnblogs.com/eastjade
关于作者:有13年的软件从业经历,专注于中小软件企业软件开发过程研究,通过在技术与管理帮助中小软件企业实现技术层面开源节流的目的。熟悉需求分析、企业架构、项目管理。现主要从事基于AgileEAS.NET平台的技术咨询工作,主要服务于医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。如有问题或建议,请多多赐教! 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过mail.james@qq.com 联系我,也可以加入QQ群:113723486、199463175、116773358、116773358、212867943、147168308、59827496、193486983、15118502和大家共同讨论,非常感谢。


    本文转自魏琼东博客园博客,原文链接:http://www.cnblogs.com/eastjade/archive/2010/04/20/1715806.html,如需转载请自行联系原作者

相关文章
|
2月前
|
机器学习/深度学习 存储 人工智能
RAG系统文本检索优化:Cross-Encoder与Bi-Encoder架构技术对比与选择指南
本文将深入分析这两种编码架构的技术原理、数学基础、实现流程以及各自的优势与局限性,并探讨混合架构的应用策略。
154 10
RAG系统文本检索优化:Cross-Encoder与Bi-Encoder架构技术对比与选择指南
|
21天前
|
JSON 供应链 监控
1688商品详情API技术深度解析:从接口架构到数据融合实战
1688商品详情API(item_get接口)可通过商品ID获取标题、价格、库存、SKU等核心数据,适用于价格监控、供应链管理等场景。支持JSON格式返回,需企业认证。Python示例展示如何调用接口获取商品信息。
|
23天前
|
数据可视化 前端开发 数据管理
什么是低代码?一文看懂:低代码技术的发展历程及技术架构
低代码开发平台通过可视化界面与组件化设计,大幅降低编程门槛,使开发者无需大量编码即可快速构建应用。它具备可视化开发、预制组件、低技术门槛及全流程支持等核心特征,适用于业务流程自动化、数据管理、客户关系管理等多种场景。自萌芽期至今,低代码不断演进,成为企业数字化转型的重要工具,显著提升开发效率、降低成本,并推动全民开发者时代的到来。
236 0
什么是低代码?一文看懂:低代码技术的发展历程及技术架构
|
2月前
|
机器学习/深度学习 人工智能 Java
Java 技术支撑下 AI 与 ML 技术融合的架构设计与落地案例分析
摘要: Java与AI/ML技术的融合为智能化应用提供了强大支持。通过选用Deeplearning4j、DJL等框架解决技术适配问题,并结合Spring生态和JVM优化提升性能。在金融风控、智能制造、医疗影像等领域实现了显著效果,如审批效率提升3倍、设备停机减少41%、医疗诊断延迟降低80%。这种技术融合推动了多行业的智能化升级,展现了广阔的应用前景。
147 0
|
3月前
|
缓存 人工智能 监控
1688 平台商品详情接口技术揭秘:架构演进与实战优化
本文深入解析了1688商品详情接口的技术架构与核心实现,涵盖微服务拆分、多级缓存、数据聚合及高可用策略,展示了如何构建高性能电商接口系统,并展望AI技术在商品展示中的应用。
|
10月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
234 5
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
382 0
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
199 7