业务支撑架构设计文档
业务支撑系统
架构设计文档*
—
|
文档创建信息
产品项目名称业务支撑系统产品项目编号
~
项目经理
产品经理
创建日期总页数
《
附录页数
正文页数
文档修订记录
修改日期#
修改类型修改描述修改人审核人版本号修改的章节
'
(
!
修改类型分为A– ADDED(增加)M– MODIFIED(修改)D– DELETED(删除)~
)
:
目录
1引言 (4)
编写目的 (4)
背景 (4)
2系统架构设计 (4)
系统概述 (4)
设计约束 (9)
.
标准与规范 (9)
开发、运行环境 (9)
开发环境 (9)
运行环境 (9)
软件平台 (9)
硬件平台 (10)
体系架构 (10)
技术框架 (10)
'
代码组织结构 (12)
配置文件组织结构 (13)
开发原则:数据与功能分离原则: (13)
关键技术点 (13)
技术难点与风险、预研成果概述 (15)
子系统划分及说明 (15)
3附录 (15)
本系统用到的缩写词、定义和术语 (15)
、
参考资料 (15)
1引言
1.1编写目的
本文主要根据需求规格说明书,对业务支撑系统(以下简称BSS)进行的架构设计,并为bss的详细设计提供依据,同时为开发人员在开发过程中提供开发基础。
预期的读者:需求设计人员,产品相关负责人,详细设计人员,开发人员,质量管理人员,系统集成部署人员。
1.2背景
2系统架构设计
2.1系统概述
整个业务支撑系统由客户关系管理(CRM),计费(BILLING),商业智能(BI),合作伙伴管理(PRM),生产管理(IOM)五部分组成。采用统一的数据视图。
F403 异常流程管理 2 F404
流程时限管理
2
典型应用场景举例:新业务的快速配置
综合服务
产品管理产品及定价信息
EAI
服务定单服务开通
统一客户资料
客户资料
资源信息
服务定单资源信息
统一电子工单
开通指令
数商平台数管平台
域名
…
指令接口
指令接口
指令接口
计费
客户资料信息
销售品选取
号码选取预占定价审核订单审核订单分解发送
订单竣工
定单接收
匹配流程
同步自动开通
2.2 设计约束
系统采用组件化设计,程序设计和实现采用统一模式,提高重用性和可维护性。
2.2.1 标准与规范
见webx 开发规范
2.2.2 开发、运行环境 2.2.2.1 开发环境
语言:java
JDK :jdk1.6.0_10 开发工具:Eclipse
文档工具: Word 2003 Visio 2003 数据库:MySql5.1.38 WEB 服务器:Tomcat
2.2.2.2 运行环境
待定
2.2.2.3 软件平台
服务器端:(使用非商业软件) 应用服务器:或者
JDK:jdk1.6.0_10
数据库:MySQL
客户端操作系统
Windows
Windows XP
2.2.2.4硬件平台
最大服务器配置
处理器 2.4G×2双核CPU
内存8G
硬盘500G硬盘
监控客户端1000个客户端以上
网络情况
2.3体系架构
本子系统采用三层(表示层、业务层、集成层)的B/S体系架构。
2.3.1技术框架
开发框架:
依据公司要求,选择公司已有的框架
系统使用java语言,采用的是通常意义上的三层架构,就是将整个业务应用划分为:表现层(UI)、业务逻辑层/服务层(BLL)、数据访问层(DAL)。各层职责如下:
1.表现层(UI):通俗讲就是展现给用户的界面,该层负责页面的跳转和页面的展
示。
2.业务逻辑层/服务层(BLL):针对业务逻辑的操作,实现业务接口供表现层调用。
3.数据访问层(DAL):该层直接操作数据库,封装对数据库的操作细节。
另外,模型层的领域对象(Domain objects)作为参数在上述3层间传递数据。
后台部分采用webX框架。
分层开发的结构图如下:
分层结构
数据访问层
服务层
表现层
其中根据项目特点又将服务层拆分为业务代理层和服务层两部分,通过增加业务代理层避免向外部系统暴露系统内部调用逻辑,降低系统间的耦合度。
采用分层结构框架的目的即为了“高内聚,低耦合”的思想,具有如下优点: 1. 开发人员可以只关注整个结构中的其中某一层; 2. 可以很容易的用新的实现来替换原有层次的实现; 3. 可以降低层与层之间的依赖; 4. 有利于标准化;
5. 利于各层逻辑的复用。
采用多层架构设计模式,使用主流框架Struts+Spring+Hibernate (SSH)为基础。Struts 实现MVC ,Spring 负责架构的结合,Hibernate 进行数据的持久化。
架构是采用公司的webx进行开发,webx应该在公司众多项目中成功应用,webx在SSH基础上又进行了一定的封装,减少了开发工作量。Webx经过多个项目采用其功能实现相对稳定。
2.3.2代码组织结构
包名前缀:之下是各个子系统:billing,crm,prm,iom,bi和公共部分pub
每个字系统下划分功能模块,如计费账务billing下包括rating ,sett, acct三部分。
代码安装service,dao,model,action,vo放置。
其中service下直接放置接口,实现在,dao一样。
命名:
service接口命名:xxxxService
service实现命名:xxxxServiceImpl
dao接口命名:xxxxDao
dao实现命名:xxxxDaoImpl
model命名:表名去除前缀,首字母大写
vo命名: 表名去除前缀,首字母大写加vo标识,如xxxVo
2.3.3配置文件组织结构
配置文件统一放在文件夹下,以子系统和功能模块进行划分。
每个功能模块包括hibernate、spring、Struts配置文件。
2.3.4开发原则:数据与功能分离原则:
?业务数据与业务功能分离
?业务功能与业务处理流程分离
?业务流程的改变和业务功能的增删、修改、数据种类的改变不会影响系统其他部分。?业务功能、数据、业务流程控制能够在运行环境下灵活的部署、分布,使得系统能够在规模上扩展,从而不限制业务的发展。
?多层软件体系结构,使用中间件构造多层体系结构为系统提供分布计算环境的平台及对应用的通用服务,构成系统的框架;采用面向对象及构件技术在框架上灵活组成应用系统。?系统充分考虑未来业务量及业务种类增长的需求,同时也考虑与行政管理体制的配合和协调,新的软件模块即插即用
2.3.5关键技术点
1,计费部分采用引擎模式,COM的设计方式
2,工作流引擎:订单调度,集成定单管理部分使用。
工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。例如开发一个系统最关键的部分不是系统的界面,也不是和数据库之间的信息交换,而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性、易维护性和弹性。
3,数据挖掘技术:在BI部分使用。
数据挖掘是通过采用自动或半自动的手段,在海量数据中发现有意义的行为和规则的探测和分析活动。
数据挖掘方法有多种,其中比较典型的有关联分析、序列模式分析、分类分析、聚类分析等。
(1)关联分析
关联分析,即利用关联规则进行数据挖掘。在数据挖掘研究领域,对于关联分析的研究开展得比较深入,人们提出了多种关联规则的挖掘算法,如APRIORI、STEM、AIS、DHP等算法。关联分析的目的是挖掘隐藏在数据间的相互关系,它能发现数据库中形如“90%的顾客在一次购买活动中购买商品A的同时购买商品B”之类的知识。
(2)序列模式分析
序列模式分析和关联分析相似,其目的也是为了挖掘数据之间的联系,但序列模式分析的侧重点在于分析数据间的前后序列关系。它能发现数据库中形如“在某一段时间内,顾客购买商品A,接着购买商品B,而后购买商品C,即序列A→B→C出现的频度较高”之类的知识,序列模式分析描述的问题是:在给定交易序列数据库中,每个序列是按照交易时间排列的一组交易集,挖掘序列函数作用在这个交易序列数据库上,返回该数据库中出现的高频序列。在进行序列模式分析时,同样也需要由用户输入最小置信度C和最小支持度S。
(3)分类分析
分类分析就是通过分析示例数据库中的数据,为每个类别做出准确的描述或建立分析模型或挖掘出分类规则,然后用这个分类规则对数据库中的其它记录进行分类。分类分析就是分析该数据库的记录数据,对每个信誉等级做出准确描述或挖掘分类规则,如“信誉良好的客户是指那些年收入在5万元以上,年龄在40~50岁之间的客户”,然后根据分类规则对其它相同属性的数据库记录进行分类。
(4)聚类分析
与分类分析不同,聚类分析输入的是一组未分类记录,并且这些记录应分成几类事先也不知道。聚类分析就是通过分析数据库中的记录数据,根据一定的分类规则,合理地划分记录集合,确定每个记录所在类别。它所采用的分类规则是由聚类分析工具决定的。聚类分析的方法
很多,其中包括系统聚类法、分解法、加入法、动态聚类法、模糊聚类法、运筹方法等。采用不同的聚类方法,对于相同的记录集合可能有不同的划分结果。
2.3.6技术难点与风险、预研成果概述
1.应用高并发量问题
业务支撑系统(BSS)为中企目前的所有产品和未来可能出现的新产品提供业务支撑服务,众多产品的服务开通、计费、服务保障都要通过BSS进行,会形成很大的业务访问量,需要系统能够处理高并发的情况。
我们采用的是J2EE架构,J2EE是SUN公司提出的在分布式环境中的一种体系结构,它提供了一种基于组件的设计、开发、集成、部署企业应用系统的方法,J2EE平台提供了多层分布式的应用系统模型、重用组件的能力、统一的安全模型和灵活的事务控制。
BSS采用JBOSS作为J2EE中间件,JBOSS在处理高并发方面有很高的性能。
2.大数据量问题
BSS需要保留个产品系统计费数据和业务部门自身数据,数据量庞大。我们选用的是mysql5.1.38数据库,mysql是一个成熟的关系型数据库系统。mysql数据库具有很高的性能,适用于在线事务处理,同时具有客户端支持及应用模式;具有高可靠性和很好的并行性,把数据库管理扩充到了并行的、多节点的环境,操作简单,具有良好的可操作性。
已经在公司多个项目中成功运用。
3.开发工具的使用问题
BSS项目中使用到了数管提供的页面组件和工作流引擎功能,因为数管的产品是针对OA系统开发的,在BSS的实际使用中很有许多需要再调整的细节。需要加强同数管部门的沟通,获取更多的产品技术支持。
2.4子系统划分及说明
3附录
3.1本系统用到的缩写词、定义和术语
缩写词和名词、术语定义。
3.2参考资料
编写本说明所用到的各种资料,如需求报告、相关研发管理规范、背景资料、其它标准。: