当前位置:编程学习 > JAVA >>

产品架构设计问题

目前单位产品的架构设计问题:

单位的产品目前主要是面向教育产业的软件产品。在开发的过程当中,遇到一些设计架构的瓶颈问题。

 

单位在办公类产品中有多个子产品:

人事管理系统:主要管理学校教育局的教师以及其他员工的管理系统

学籍管理系统:主要是对学生信息进行管理的系统。

教务系统:主要是对日常教学进行管理的系统。

考试系统:考试相关的系统

题库系统:需要学科年级信息


在各个系统当中有一些可能会公用的信息,比如教师和学生的信息再教务系统当中都需要。

学科,年级班级信息在不少系统当中也是都需要的信息。

 
要求各个系统可以形成单独的产品进行销售。也能整体协调工作。
架构设计 产品 --------------------编程问答-------------------- 重构吧。。。。。。。。。。。。。。 --------------------编程问答--------------------
引用 1 楼 zhetenga 的回复:
重构吧。。。。。。。。。。。。。。

嗯,现在的问题就是怎么重构?具体的功能划分,设计应该是啥样的。 --------------------编程问答-------------------- 1、可以将重要或公共功能的部分按模块及可扩展的方式重构,将需要使用这些模块的系统修改为调用此模块。
2、逐步调整其他系统。

1、初期可以考虑统一门户、身份认证;
2、后期整合业务,统一业务流程
3、构建服务,细分模块。 --------------------编程问答-------------------- 任何子系统必须包含其数据交互模块。

子系统自己独有,不需要和其它子系统交互的的功能就不用说了,自己做。
买全套,与其它子系统的功能/数据交互用WebService或者SessionBean实现。

因为你要拆开来卖,所以,肯定出现下面的情况,不买A,买了B,没有A的数据录入功能,但是B需要A里的数据,两种实现:
1 需要录入的A数据,用买B提供的lisence登录公司的产品平台,录入A的数据,返回一个storeKey,在本地输入storeKey就可以链接平台,使用平台上自己的A数据。

2 所有数据都可以用固定excel模板的方式导入,只要本地导入了excel模板数据,就可以在没有A数据录入模块的情况下使用A的数据 --------------------编程问答-------------------- 一个控制层(或者是webservice)的project(命名为A)
+一个所有项目都公用的project(命名为B)
+然后每一个子系统的project(作为业务层,命名为Cn,如C1,C2,C3...)。

A的主要任务:总系统人口,比如一些资源的初始化,web.xml的配置等..

B的主要任务:所有子项目需要用到的公共的地方。比如,C1需要用到C2里面的class,C2也需要用到C1里面的东西,这样你就可以把这些冲突的放进到B项目中。

Cn的作用:Cn里面写action,用annotation定义这个action的访问路径,这样就实现了系统分离。

这样设计,你以后想扩展多少就扩展多少,分开卖一起卖 都可以...

 如果你你只需要C1的功能,把C1打成jar包添加到A项目中,如果需要C2,就把C2打成jar包添加到A项目中。
如果你都需要,就全部添加到A项目中去。
 打包比较复杂,建议用ant来发布。

这种方案我参与过开发,和楼主的需求是一样的,可以详细考虑..
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,