小型项目总结之一

这个小型项目有点曲折,始于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: 该层次的各个模块是整个系统框架中最底层的,只会在运行时被更高层次的模块依赖和调用,同时该层次内部各个模块之间也存在依赖和运行时调用关系.

版权声明:本文为博主http://www.zuiniusn.com 原创文章,未经博主允许不得转载。

时间: 2024-10-03 04:35:44

小型项目总结之一的相关文章

使用 RUP 管理小型项目和团队

David Kohrell 在2005年2月的 Rational Edge 期刊上指出,Rational Unified Process,? 或者称 RUP,?为项目的推进提供了一个灵活的过程 -- 从先启阶段,经过细化阶段.构建阶段,以及产品化阶段 -- 给予指导和说明.本文特别关注RUP如何同样能为小项目和团队提供指导.另外,在用于敏捷开发环境的能力方面,我们也观察了RUP和其它指导(比如,项目管理协会的项目管理知识体系,或PMBOK?). 小型项目和团队的背景 通常看来,如果被安排来管理一

关于大小型项目如何最大限度提高WebAPi性能

前言 WebAPi作为接口请求的一种服务,当我们请求该服务时我们目标是需要快速获取该服务的数据响应,这种情况在大型项目中尤为常见,此时迫切需要提高WebAPi的响应机制,当然也少不了前端需要作出的努力,这里我们只讲述在大小型项目中如何利用后台逻辑尽可能最大限度提高WebAPi性能,我们从以下几个方面来进行阐述. 性能提升一:Jil(JSON序列化器) 在.NET里面默认的序列化器是JavaScriptSrializer,都懂的,性能实在是差,后来出现了Json.NET,以至于在目前创建项目时默认

公司小型项目总结

oa系统改版基本完成,都是些简单的功能,主要用到了些插件 一.项目常用插件列表 1.日历插件My97DatePicker ,只需引用js文件,在使用的input表单中加上onclick事件即可 2.统计用图http://www.hcharts.cn/index.php功能强大好用,注意jquery中使用不了php模板中的变量,可以在js中写好数组再引用 3.上传控件,之前用的swfupload 4.文本框 tp自带或者其它百度ueditor都可以 二.sql语句计算年龄 select name,

IO流的基础与小型项目

? IO流 对于流的描述,流是一种抽象的描述. 流的分类: 1.输入流(Input) 2.输出流(Output) 按类型分: 1.字节流(InputStream/OutputStream) public class ReadFileByLoop {? public static void main(String[] args) throws IOException { // TODO Auto-generated method stub? // 根据给定的文件路径构建一个字节输入流对象 File

BIN文件对象数据库,直接存储对象做数据库,小型项目用它准没错

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.IO; 6 using System.Runtime.Serialization.Formatters.Binary; 7 8 namespace MsChartHelp 9 { 10 static class FileSerialize 11 { 12 //获取文件时可以直接拿数

一小型项目中并行计算缓慢的问题排查(二)

昨日,借用的锐捷万兆交换机及Intel万兆网卡已到,所以把设备带到客户处准备把原有的千兆网络更换成万兆网络. 在去客户途中的车上,我就在想更换网络的步骤,不外乎就是停机,开机箱,断电源,加入新的万兆网卡,开机,安装驱动,接入万兆交换机等一系列步骤.但在实际操作时还是遇到了诸多问题. 平生第一次见万兆交换机及万兆网卡,拆开包装算是开了眼界,万兆网卡与HBA卡类似,都是卡与光模块组合成一块网卡,万兆交换机也算是一个大家伙,所用的光模块是这次向北京一公司借用的光模块,网卡也是这家公司借用的,光模块都是

一小型项目中并行计算缓慢的问题排查

一.整体系统及网络环境 本系统采用一台两路服务器做管理节点,两台四路服务器做并行的计算节点.服务器配置如下:          规格          配置          数量 2U服务器 CPU: E5-2620v2*2 硬盘:300G 热插拔SAS * 3 内存:64G 1                 4U服务器 CPU: XEONE7-4820*4 硬盘:300G 热插拔SAS * 3 内存:128G              2 整套系统由实施高性能部门工程师安装好并行环境及任务

一小型项目中并行计算缓慢的问题排查(三)

经过几天的测试,最终的测试结果于2015年1月6日出来了,这次的测试结果还令人满意,同样一个任务当调用32个核心时所花费的时间是61899秒,而当调用64个核心来计算同样一个任务时所花费的时间为32659秒,与使用千兆网络相比万兆网络有明显的优势. 两个计算节点,一个计算节点是32个核心,在之前的千兆网络中,采用32个核心与采用64个核心来计算同一个任务所花费的时间没有明显的区别,而这次采用万兆网络后,计算的时间几乎有一半的差别,这说明,此次并行计算系统中的瓶颈的确是网络造成的.在最开始给客户推

小型软件项目开发流程探讨

一.导言 国内很多项目都是小型项目, 参与人员少(两到五个人), 要快速交付(一两个月) . 要成功完成这种项目, 除了使用成熟且被团队成员熟练使用的技术之外, 有一个良好的开发流程, 也是很必要的. 二.小型软件项目开发流程 下图是我对小型软件项目开发流程的一个设想: 需求分析的重要性想必大家都应该清楚, 对于项目来说, 满足用户的需求是第一位的. 因为时间紧, 系统设计经常被忽略. 这会留下很大的隐患, 国内很多项目的需求通常是很简略的, 还需要在系统设计阶段把一些需求进一步的明确. 不然会