这个小型项目有点曲折,始于2006年,当时由于没有总结经验,所以后来又做了N个类似的项目,鉴于此,记下总结。
系统软件架构概括
系统采用了B/S结构, 多层运行模式,同时适用于Intranet/Internet。浏览器为第一层,作为系统的应用界面;中间层为以WCF为载体的SOA;应用逻辑服务为第三层;数据链接为第四层,作为系统的数据存取服务。此架构无须安装客户端软件,便于软件的分发和维护升级,适应了众多应用客户端分散环境下的运行和维护需求。
系统包含如下各层:
Web 层 - Presentation
Web 层为客户端提供对应用程序的访问。Web 层由 ASP.NET Web 窗体和代码隐藏文件组成。Web 窗体只是用 HTML 提供用户操作,而代码隐藏文件实现各种控件的事件处理。
中间层为通过WCF做中间服务,使应用隔离开来,这样有利于扩展和维护,同事提高了整个应用程序的伸缩性。
业务外观层 - Business Facade
业务外观层为 Web 层提供处理书目检索、用户帐户管理、订单生成、购物车等功能的界面。业务外观层用作隔离层,它将用户界面与各种业务功能的实现隔离开来。除了低级系统和支持功能之外,对数据库服务器的所有调用都是通过此程序集进行的。
业务规则层 - Business Rules
业务规则层包含各种业务规则和逻辑的实现。业务规则完成如用户账户和用户安全性的核查这样的任务。
数据访问层 - Data Access
数据访问层为业务规则层提供数据服务。
共享函数项目 - Common
各个逻辑层之间的关系图如下所示:
由开始的逻辑图进化到现在的安全分布式逻辑图:

那么具体技术实现也将如下:

进一步确定整个网站的运行序列:


根据前面我们的分析,那么我们就可以进行如下的设计:
接口设计
a.内部接口
用户接口包含所有的操作界面,即目前市面主流的浏览器。
数据验证上,从客户端脚本和服务器端,进行用户输入数据的验证,防止无效数据造成的错误操作。
UI相应速度上,使用 AJAX 实现无刷新,提高UI相应速度和性能.
b.外部接口
原有方案是本系统与其他软件系统共用一个数据库系统,统一的数据库服务器作为与其他系统的外部接口,这样耦合性很大,同时造成数据和结构不可控,所以现在所有架构都建立在service上,系统之间都通过SOA的集中来交互。
运行设计
运行模块组合
UI: 功能模块使用时候(包括用户登录),都会首先通过UI层次Security模块的安全验证(验证是通过Components模块里面的自定义的用于页面功能以及功能点验证的控件触发), Security模块会通过服务层获取用户身份数据,用于页面验证.
功能模块的实际功能实现,如果需要数据库支持,那么依然会通过服务层进行数据操作.
Service:通过WCF做中间服务,使应用隔离开来,这样有利于扩展和维护,同事提高了整个应用程序的伸缩性。
Business Logic: 服务层内部之间的组合关系,主要体现再依赖和调用,由上往下调用,逐级依赖,最后Service底层边界Data Access模块将调用Framework中的Data模块,Data模块将调用MS.EntLib3中的Data,向数据服务器发送数据操作命令和数据.
Framework: 该层次提供许多基础的功能模块,分别提供给UI,Service层里面的模块直接或者间接的调用,同时也可以看到Framework层次内部各模块之间再运行时也有互相依赖调用的关系存在.该层次的部分模块会依赖和调用Ms.EntLib3中的模块,一般是按照两个层次里面的模块名称,产生关系的.
MS.EntLib3: 该层次的各个模块是整个系统框架中最底层的,只会在运行时被更高层次的模块依赖和调用,同时该层次内部各个模块之间也存在依赖和运行时调用关系.
分享到:
相关推荐
在IT行业中,自动化测试是提升效率、确保软件质量的关键手段之一。本项目“小型项目测试.rar”就是一个关于web自动化测试的实例,它采用Python语言,结合Selenium 2和unittest框架,来对BBS魅族社区网站进行模块化的...
这个小项目总结将深入探讨PySide6的基础知识、关键特性以及如何利用它来构建小型应用程序。 首先,PySide6提供了丰富的控件集合,如按钮、文本框、列表视图等,这些控件可以用于构建用户界面。例如,`QPushButton`...
- **背景**: 小型项目通常被视为较为简单,因此在项目启动之初往往低估了项目的实际工作量及技术难度。 - **影响**: 这种低估可能导致项目延期、成本超出预算,甚至导致项目失败。 - **解决方案**: 在项目初期进行...
菜单设计是该系统的核心之一,它使得用户能够直观地看到可选的功能并进行相应的操作。例如,在`menu_1`函数中,定义了四个主要功能选项:小区用户管理、物业收费管理、生成小区住户收费报表和退出。 ```c void menu...
在IT行业中,编程是一项核心技能,而C语言作为基础的编程语言之一,是许多程序员学习的起点。本项目“小型计算器程序编写”就是一个基于C语言的实践案例,它旨在教授如何构建一个简单的图形用户界面(GUI)计算器。...
【计算机网络课程设计之组建小型企业局域网】 在当今信息化时代,企业网络系统的构建对于提升工作效率、实现资源共享和信息的高效传递至关重要。本课程设计旨在让学生深入理解并掌握网络组建的过程,特别是针对小型...
商业计划书编制优势部分总结了三胜咨询在服务上的独特之处,包括一流专家团队、丰富成功案例、诚实可靠的品牌形象、畅通的数据采集渠道、精准的行业数据分析、精选的市场资料、先进的投资分析工具、创新的商业模式...
它以其高效性能和易用性,成为了Web开发中的首选数据库之一。 为了简化数据库操作,项目采用了Hibernate,这是一个强大的对象关系映射(ORM)框架。Hibernate允许开发者使用Java对象来操作数据库,而无需编写大量的...
该文档将从需求分析、网络总体设计、网络设备配置清单、项目总结等方面对中小型企业网络规划设计进行了详细的介绍和分析。 在需求分析部分,该文档首先对中小型企业的网络需求进行了分析,包括实施背景、网络应用...
- **共发射极放大电路**:用于电压信号的放大,是电路的核心部分之一。 - **射极跟随器**:构成推挽电路的一部分,主要用于电流放大,提高整个电路的功率输出能力。 - **电压补偿电路**:通过Q2/RP1/R5等元件构成,...
在这个名为"Spring_MiniProject2021"的小型项目中,我们将深入探讨如何使用Spring框架来创建一个功能完善的网站。 【项目结构与Spring MVC】 Spring框架的核心组件之一是Spring MVC(Model-View-Controller),它...
《猫狗分类小型学习数据集:开启机器学习的探索之旅》 在当今信息化时代,人工智能(AI)领域的发展日新月异,其中机器学习作为其重要分支,正在逐步渗透到我们的生活中。对于初学者而言,掌握机器学习的基本原理并...
总结,Python小型飞机大战是一个很好的学习项目,它涵盖了Python基础、Pygame库的使用、面向对象编程、碰撞检测、动画制作等多个方面。通过实际操作,你可以深入理解游戏开发的流程,并提升编程技能。无论是对Python...
在设计中小型公司的物流管理系统数据库时,首先需要理解业务的核心实体及其相互关系。在这个案例中,主要涉及四个核心实体:操作员、发货人、货物和收货人(顾客)。以下是这些实体的具体描述和它们之间的关系: 1....
内存管理是小型录像工具的核心技术之一。为了确保在有限的系统资源下高效运行,这类工具通常采用优化的算法来降低内存占用。例如,它们可能使用流式处理,只在内存中保留当前正在录制的部分,而将已完成的片段实时...
电子商务网站的核心功能之一是商品展示与管理。在这款网上商务书城中,系统需要实现商品的分类、搜索、详情展示等功能。商品信息存储在数据库中,包括名称、作者、出版社、价格、库存等关键字段。通过数据库查询语言...
在设计中小型公司的物流管理系统数据库时,首先需要理解物流管理的核心业务流程和涉及的实体。根据题目描述,系统主要关注以下几个核心实体:操作员、发货城市、发货站、费用、接洽时间、收货站、收货城市、收货人...
- **技术竞争**:21世纪的超市不再仅靠规模取胜,技术成为核心竞争力之一。 - **管理升级**:优秀的管理模式能够显著提升运营效率,降低成本。 - **业态多样化**:面对不同类型的竞争对手(如便利店、专卖店等),需...
再次,报表生成是财务系统的关键功能之一。VFP的报表向导可以帮助设计各种复杂的财务报表,如资产负债表、利润表等。通过设置计算公式、过滤条件,报表可以实时反映出企业的财务状况,为决策提供依据。同时,VFP还...