基于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,如需转载请自行联系原作者




相关文章
|
1月前
|
设计模式 架构师 前端开发
JavaEE企业级分布式高级架构师课程
本课程主要面向1-5年及以上工作经验的Java工程师,大纲由IT界知名大牛 — 廖雪峰老师亲自打造,由来自一线大型互联网公司架构师、技术总监授课,内容涵盖深入spring5设计模式/高级web MVC开发/高级数据库设计与开发/高级响应式web开发/分布式架构设计等主流核心技术。
22 1
JavaEE企业级分布式高级架构师课程
|
1月前
|
设计模式 前端开发 测试技术
Flutter 项目架构技术指南
探讨Flutter项目代码组织架构的关键方面和建议。了解设计原则SOLID、Clean Architecture,以及架构模式MVC、MVP、MVVM,如何有机结合使用,打造优秀的应用架构。
Flutter 项目架构技术指南
|
1月前
|
分布式计算 算法 调度
课3-详解隐私计算框架的架构和技术要点
隐语架构涵盖产品、算法、计算、资源和硬件五层,旨在实现互联互通和跨域管控。产品层包括SecretPad等,简化用户和集成商体验。算法层涉及PSI/PIR、SCQL和联邦学习,提供隐私保护的数据分析和学习。计算层如RayFed、SPU、HEU等,支持分布式计算和密态处理。资源层的KUSCIA用于跨机构任务编排,硬件层涉及FPGA等加速器。互联互通支持黑盒和白盒模式,确保不同平台协作。跨域管控则强调数据流转控制,保护数据权益。
|
28天前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
32 0
|
28天前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(二)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
15 0
|
28天前
|
存储 监控 安全
金石推荐 | 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式
金石推荐 | 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式
63 1
|
28天前
|
存储 Java 应用服务中间件
【分布式技术专题】「架构实践于案例分析」盘点互联网应用服务中常用分布式事务(刚性事务和柔性事务)的原理和方案
【分布式技术专题】「架构实践于案例分析」盘点互联网应用服务中常用分布式事务(刚性事务和柔性事务)的原理和方案
51 0
|
28天前
|
canal 消息中间件 关系型数据库
【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
78 0
|
30天前
|
数据采集 存储 监控
.NET智慧手术室管理平台源码
术前访视记录单、手术风险评估表、手术安全核查表、自费药品或耗材、麻醉知情同意书、麻醉记录单、分娩镇痛记录单、麻醉复苏单、术后镇痛记录单、术后访视记录单、压伤风险评估量表、手术清点记录单、护理记录单、输血护理记录单。
31 0