论文部分内容阅读
摘 要: 为进一步提高电信资费的查询速度和准确性,设计基于C/S模式下电信计费系统。该系统实现后台的数据采集、数据整合和数据模拟以及前台的账单管理、账务管理、用户管理、管理员管理,具有一定的实际应用价值。
关键词: C/S模式;电信计费系统;设计
中图分类号:F62 文献标识码:A 文章编号:1671-7597(2011)0810182-02
0 引言
我国电信业由于电信运营企业各大阵营的建立,竞争变得越来越激烈。电信业务个性化、多样化的发展方向对计费系统提出了更高的要求。作为一名成熟的消费者希望了解每一项电信业务的资费的消费细节,因此,电信运营企业只有确保计费的准确性、实时性,才能提高本企业的服务质量和企业的效益。现在,计费系统已经成为各个电信运营企业提升自身核心竞争力的重要砝码。准确、实时的计费系统不但能提高电信运营企业工作效率,降低其运营成本,而且还能有效支撑电信业各项业务的及时开展。
1 C/S模式简介
C/S(Client/Server,客户机/服务器)模式是基于企业内部网络的应用系统,C/S模式具有有以下响应速度快、操作界面漂亮,形式多样、具有较强的事务处理能力,能实现复杂的业务流程等优点。另外C/S模式的应用系统最大的好处是不依赖企业外网环境。典型的C/S模式应用系统网络结构如图1所示。
2 电信计费系统功能模块设计
根据电信业务的需求分析,该系统的功能模块划分为前台模块和后台两大块。其中前台模块分为数据采集、数据整合、数据模拟三个子模块,本系统是一个计费的系统,先从服务器上截取的8000多条记录,经过数据的采集也就是除去管理员和正在通话中的记录,剩下7851条记录可以使用。我们再经过数据的整合,分别整合成日月年表,然后再进行业务上的处理。后台模块分为账单管理模块,账务管理模块,用户管理模块,管理员管理模块四个子模块。系统总体用例图如图2所示。
1)用户管理模块:管理员可以对该模块进行增改查操作,但是不可以删除,因为用户的信息对企业还说是一种资源。
2)资费管理模块:管理员可以对资费进行增删改查操作。
3)账单管理模块:可以针对某个帐号提供的总费用的查询,还提供对某个帐号上的每个业务帐号上产生的费用进行明细查询。
4)账务管理模块:由于账务是有数据库自动生成的日月年表,所以管理员只能对账务进行查询操作;此子系统可以提供以月为周期的查询,也可以提供以年为周期的查询。
5)管理员管理模块:管理员又分为超级管理员和普通管理员,超级管理员可以管理普通管理员,对管理员可以进行增删改查操作。
3 电信计费系统的实现
由于本系统的功能模块比较多,仅以资费模块为例介绍电信计费系统的实现,资费查询界面如图3所示。管理员对资费进行增删改查操作的部分代码如下:
public class MEA extends MDA{
private EB biz;
/查询所有的资费/
public AF qA (AM map,AF form,HSR request,HSR response){
try{
Request.getSession(true).setAttribute("expenses",biz.qA ());
return mapping.findForward("qA");
}catch(Exception e){
e.printStackTrace();
return mapping.findForward("error");
}
}
/分页查询/
public AF fen(AM mapping,AF form,HSR request,HSR response){
try{
int expenseNumber=biz.qA().size();//总记录条数
int maxNumber=2;//maxNumber一页显示多少条记录
//总共有几页
int pageSize=(expenseNumber+maxNumber-1)/maxNumber;
//第几页
int pageNo=Integer.parseInt(request.getParameter
("pageNo"));
List list=biz.fen(pageNo,maxNumber );
request.getSession(true).setAb ("pageSize", pageSize);
request.getSession(true).setAb ("expenses", list);
request.getSession(true).setAb ("pageNo", pageNo);
return mapping.findForward("qA");
}catch(Exception e){
e.printStackTrace();
return mapping.findForward("error");
}
}
/更改资费/
public AF updateExpense(AM mapping,AF form,HSR request,HSR response)
throws Exception{
try{
DynaAF daf=(DynaAF)form;
Expense ex=biz. Name(daf.get ("name"));
BU.copyP (ex, daf.getMap());
biz.updateExpense(ex);
return mapping.findForward("updateExpense");
}catch(Exception e){
Request.getSession(true).setAb ("e", e.getMessage());
return mapping.findForward("error");
}
}
/根据名字查找资费/
public AF queryByName(AM mapping,AF form,HSR request,HSR response){
try{
String name=request.getParameter("name");
request.getSession(true).setAb ("expense",biz.querName(name));
return mapping.findForward("queryName");
}catch(Exception e){
e.printStackTrace();
return mapping.findForward("error");
}
}
/添加资费/
public AF addExpense(AM mapping,AF form,HSR request,HSR response){
DynaAF daf=(DynaAF)form;
Expense ex=new Expense();
try{
//把map里面的数据放到ex里面
BU.copyProperties(ex, daf.getMap());
biz.insertExpense(ex);
return mapping.findForward("addExpense");
}catch(Exception e){
e.printStackTrace();
return mapping.findForward("error");
}
}
/删除资费/
public AF deleteExpense(AM mapping,AF form,HSR request,HSR response){
Try{
Integer id=Integer.valueof(request.getParameter("id"));
biz.deleteById(id);
return mapping.findForward("ok");
}catch(Exception e){
Request.getSession().setAb ("e", e.getMessage());
return mapping.findForward("error");
}
}
}
4 结束语
本文主要完描述了小型的电信系统的设计与部分模块的实现。该系统的功能能够满足电信计费的基本需求,具有一定的使用价值。但是该系统由于采用的是C/S结构,因此在安全性比较差,这一点也是今后我们工作当中需要的解决问题,进而使该系统能够实现更高的要求。
参考文献:
[1]http://050347zhu.blog.163.com/blog/static/212679682009220100
13981/.
[2]张友生、王勇,系统架构设计教程,北京:电子出版社,2009年6月.
[3]斯马特,Java开发超级工具集,清华大学出版社,2009年11月.
关键词: C/S模式;电信计费系统;设计
中图分类号:F62 文献标识码:A 文章编号:1671-7597(2011)0810182-02
0 引言
我国电信业由于电信运营企业各大阵营的建立,竞争变得越来越激烈。电信业务个性化、多样化的发展方向对计费系统提出了更高的要求。作为一名成熟的消费者希望了解每一项电信业务的资费的消费细节,因此,电信运营企业只有确保计费的准确性、实时性,才能提高本企业的服务质量和企业的效益。现在,计费系统已经成为各个电信运营企业提升自身核心竞争力的重要砝码。准确、实时的计费系统不但能提高电信运营企业工作效率,降低其运营成本,而且还能有效支撑电信业各项业务的及时开展。
1 C/S模式简介
C/S(Client/Server,客户机/服务器)模式是基于企业内部网络的应用系统,C/S模式具有有以下响应速度快、操作界面漂亮,形式多样、具有较强的事务处理能力,能实现复杂的业务流程等优点。另外C/S模式的应用系统最大的好处是不依赖企业外网环境。典型的C/S模式应用系统网络结构如图1所示。
2 电信计费系统功能模块设计
根据电信业务的需求分析,该系统的功能模块划分为前台模块和后台两大块。其中前台模块分为数据采集、数据整合、数据模拟三个子模块,本系统是一个计费的系统,先从服务器上截取的8000多条记录,经过数据的采集也就是除去管理员和正在通话中的记录,剩下7851条记录可以使用。我们再经过数据的整合,分别整合成日月年表,然后再进行业务上的处理。后台模块分为账单管理模块,账务管理模块,用户管理模块,管理员管理模块四个子模块。系统总体用例图如图2所示。
1)用户管理模块:管理员可以对该模块进行增改查操作,但是不可以删除,因为用户的信息对企业还说是一种资源。
2)资费管理模块:管理员可以对资费进行增删改查操作。
3)账单管理模块:可以针对某个帐号提供的总费用的查询,还提供对某个帐号上的每个业务帐号上产生的费用进行明细查询。
4)账务管理模块:由于账务是有数据库自动生成的日月年表,所以管理员只能对账务进行查询操作;此子系统可以提供以月为周期的查询,也可以提供以年为周期的查询。
5)管理员管理模块:管理员又分为超级管理员和普通管理员,超级管理员可以管理普通管理员,对管理员可以进行增删改查操作。
3 电信计费系统的实现
由于本系统的功能模块比较多,仅以资费模块为例介绍电信计费系统的实现,资费查询界面如图3所示。管理员对资费进行增删改查操作的部分代码如下:
public class MEA extends MDA{
private EB biz;
/查询所有的资费/
public AF qA (AM map,AF form,HSR request,HSR response){
try{
Request.getSession(true).setAttribute("expenses",biz.qA ());
return mapping.findForward("qA");
}catch(Exception e){
e.printStackTrace();
return mapping.findForward("error");
}
}
/分页查询/
public AF fen(AM mapping,AF form,HSR request,HSR response){
try{
int expenseNumber=biz.qA().size();//总记录条数
int maxNumber=2;//maxNumber一页显示多少条记录
//总共有几页
int pageSize=(expenseNumber+maxNumber-1)/maxNumber;
//第几页
int pageNo=Integer.parseInt(request.getParameter
("pageNo"));
List
request.getSession(true).setAb ("pageSize", pageSize);
request.getSession(true).setAb ("expenses", list);
request.getSession(true).setAb ("pageNo", pageNo);
return mapping.findForward("qA");
}catch(Exception e){
e.printStackTrace();
return mapping.findForward("error");
}
}
/更改资费/
public AF updateExpense(AM mapping,AF form,HSR request,HSR response)
throws Exception{
try{
DynaAF daf=(DynaAF)form;
Expense ex=biz. Name(daf.get ("name"));
BU.copyP (ex, daf.getMap());
biz.updateExpense(ex);
return mapping.findForward("updateExpense");
}catch(Exception e){
Request.getSession(true).setAb ("e", e.getMessage());
return mapping.findForward("error");
}
}
/根据名字查找资费/
public AF queryByName(AM mapping,AF form,HSR request,HSR response){
try{
String name=request.getParameter("name");
request.getSession(true).setAb ("expense",biz.querName(name));
return mapping.findForward("queryName");
}catch(Exception e){
e.printStackTrace();
return mapping.findForward("error");
}
}
/添加资费/
public AF addExpense(AM mapping,AF form,HSR request,HSR response){
DynaAF daf=(DynaAF)form;
Expense ex=new Expense();
try{
//把map里面的数据放到ex里面
BU.copyProperties(ex, daf.getMap());
biz.insertExpense(ex);
return mapping.findForward("addExpense");
}catch(Exception e){
e.printStackTrace();
return mapping.findForward("error");
}
}
/删除资费/
public AF deleteExpense(AM mapping,AF form,HSR request,HSR response){
Try{
Integer id=Integer.valueof(request.getParameter("id"));
biz.deleteById(id);
return mapping.findForward("ok");
}catch(Exception e){
Request.getSession().setAb ("e", e.getMessage());
return mapping.findForward("error");
}
}
}
4 结束语
本文主要完描述了小型的电信系统的设计与部分模块的实现。该系统的功能能够满足电信计费的基本需求,具有一定的使用价值。但是该系统由于采用的是C/S结构,因此在安全性比较差,这一点也是今后我们工作当中需要的解决问题,进而使该系统能够实现更高的要求。
参考文献:
[1]http://050347zhu.blog.163.com/blog/static/212679682009220100
13981/.
[2]张友生、王勇,系统架构设计教程,北京:电子出版社,2009年6月.
[3]斯马特,Java开发超级工具集,清华大学出版社,2009年11月.