UML软件工程组织

 

 

基于J2EE的市场需求预测支持系统模型的研究与实现
 
作者:李雪 于书举  来源:计算机与信息技术
 

摘 要 在对多种预测算法深入研究的基础上,文章引入组件技术对预测模型进行实现,并应用 到基于J2EE架构的市场需求预测支持系统中,通过误差分析法比较和测试各种预测模型的有效性和适用性,进而选出最优模型进行预测。文章对相关技术和系统设计框架及实现步骤进行了具体阐述。

 关键词 组件;J2EE;预测;模型

 1 引言

 在市场经济环境中,企业只有在对产品市场需求充分了解和掌握的前提下,才能作出正确的决策。市场需求预测在企业的生产经营决策活动中有着极其重要的现实意义[1]。文章提出一套基于J2EE的市场需求预测支持系统的设计方案。将组件技术引入预测模型的实现,不仅可以有效地实现预测模型的移植和重用,缩短系统的开发周期,而且有利于提高系统的可维护性、可靠性和可扩充性。J2EE是一个多层结构的分布式应用程序模型,它提供了一个基于组件的方法来设计、开发、装配和部署企业级应用程序。J2EE为我们提供了一个良好的系统框架。

 2 系统的总体结构

 文章提出的市场需求预测支持系统就是要实现市场需求预测的目标,通过从数据库中调入相关的历史数据,选择不同的预测算法模型进行预测计算和误差结果比较,把均方误差(MSE)最小的预测模型作为该种产品的市场需求预测模型,并通过该模型进行需求预测,得出预测值。系统采用的预测算法包括:移动平均法、指数平滑法、一元线性回归法等。

 2.1 市场需求预测支持系统的功能结构

 系统的主要功能结构包括人机会话子系统、预测数据管理子系统、预测模型管理子系统、综合分析预测子系统[1]等,如图1所示。
 

 2.1.1 人机会话子系统

 人机会话子系统是决策者与预测支持系统打交道的界面,属于系统表达层(客户层)。它负责接收决策者发出的各种命令,根据这些指令调用不同的子系统,并获得处理结果,最后再将这些结果输出给决策者。

 2.1.2预测数据管理子系统

 预测数据管理子系统即数据库管理系统,主要功能是存储、维护、查询及管理与市场相关的各种资料数据,提供给预测模型进行预测计算,属于系统数据层。

 2.1.3预测模型管理子系统


 预测模型管理子系统是预测支持系统的核心,用于存储和管理通用及专用预测算法模型,每个模型由一些常用的预测算法支持,用于实现特定的预测目标,属于系统的应用逻辑层。

 2.1.4综合分析预测子系统

 综合分析预测子系统根据不同的预测对象,从模型库中自动调用预测模型,并通过模型组件访问数据库中的相关数据对各模型进行测试,比较不同模型的预测效果,把均方误差(MSE)相对最小的模型作为最佳的预测模型,并由此计算出市场需求预测值,属于系统的流程控制层。

 2.2 市场需求预测支持系统的逻辑结构

 根据产品市场需求预测的一般过程和预测支持系统的功能结构,总结出系统的市场需求预测过程的逻辑结构,如图2所示。
  

 3 基于J2EE的系统总体设计

 系统基于J2EE的分布式多层应用体系架构进行构建,包括客户层、Web层、业务层和数据层。应用逻辑按照功能和既定的市场需求预测目标划分为不同的组件,包括分布在Web服务器上的实现界面显示和流程控制的Web组件和部署在应用服务器上的JavaBean及EJB组件等。下面对系统包含的四个层次进行分别介绍。系统的体系结构如图3所示。
 

 3.1 客户层

 客户层也即系统表达层,提供用户和系统交互的界面,包含面向客户的应用和applet,这些应用和applet在最终用户的计算机系统的Web浏览器中运行,Web服务器层会对Web用户(浏览器)发出的HTTP请求进行响应,文章的人机会话子系统在该层得到实现。

 3.2 Web服务器层

 Web服务器接收客户端发出的HTTP请求,并通过JSP/Servlet进行响应。利用JSP、Servlet可以方便的实现客户的各种个性化界面,对于页面结构中的通用部分可以抽象出来建立成Web 组件,提高页面开发的效率和可维护性。同时,Web层负责从业务层调用逻辑模型组件来实现用户提出的预测目标。如果算法模型分布在其他客户机上,Web服务器会通过EJB中RMI-IIOP实现远程方法调用。Web服务器层会根据用户指定的预测对象,调用业务层的JavaBean或EJB预测模型组件,并通过组件访问数据库中的相关数据对预测模型进行测试计算,Web层会根据各个模型的计算结果进行误差比较,把相对误差最小的模型确定为该预测对象的最优预测模型,并利用该模型进行预测,将预测结果输出到客户端。Web层是连接客户层和其他层的纽带,负责控制整个系统各个模块的运转。系统的综合分析预测子系统在该层得到实现。

 3.3业务层

 业务层也即应用服务器层,提供用于预测目标的各种算法模型组件,包括JavaBean和EJB组件。系统把几种通用的预测算法模型进行了组件化,包括移动平均法、指数平滑法、一元线性回归法等。模型组件生成后必须部署到相应的应用服务器上,才能对外提供服务。在进行模型调用时,应用服务器会自动查找模型所在的位置。使用应用服务器可以方便地实现模型管理。业务层的组件通过JDBC和数据层进行通讯,访问数据库中的相关数据。系统的预测模型管理子系统在该层得到实现。

 3.4 数据层

 数据层用来存储和管理系统所需的数据资源,包括数据库管理系统和其他形式的数据源,提供给模型进行预测计算等。系统的预测数据管理子系统在该层实现。

 系统基于J2EE的多层分布式应用架构和组件开发方法进行构建,大大提高了整个系统的开发效率[2]。

 1) J2EE基于组件的方法使应用功能以独立的的软件组件形式进行编码,系统开发人员可以专心于应用系统的业务逻辑的开发,编写特定功能的预测模型组件即可,不必考虑系统的整体结构。系统的设计人员也不必关心组件之间的协同和消息传递,只需编写相应的启动和调用代码即可。
 2) 组件是独立的程序功能单元,使系统的维护和升级更加容易。开发人员可以根据需求增加或升级组件,而不会对系统中的其他组件产生负面影响。
 3) 每个组件都映射到特定的应用功能上,大大提高代码的复用率,系统可以根据不同需求选择组件进行快速的搭建。

 4 技术实现及效果分析
 
 这里结合实例,简要介绍系统主要模型组件的实现及模型的预测效果分析。

 4.1预测模型组件化

 利用组件技术实现预测模型的步骤如下:

 1) 确定预测模型的表示形式即算法;
 2) 接口声明;
 3) 接口实现;
 4) 程序打包,放到CLASSPATH中。

 下面结合移动平均法预测模型叙述一下组件化的具体实现过程:
 1) 移动平均法是利用一组近期实际值取平均值,将这个平均值作为下期预测值,其计算公式如下[3]:
 
 2) 接口声明(只对主要函数进行说明)

Public interface Moving-average //该接口定义移动平均算法
{
Public double calculateMoving-average(int n, double [] SalesAmount);
}

其中参数定义如下:
 n: 为每次移动平均包含的数据个数,即期数;
 SalesAmount:一个double型的数组,长度是n,存放的是n个近期销售实际值;

 3) 接口实现

public class Moving-averageBean implements Moving-average
{
double temp;//累加器变量,初值赋为0
public double calculateMoving-average(int n, double [] SalesAmount)
{ //对算法的实现
For(int i=0;i<n; i++)// 循环n次,对n个销售值求和
{
temp=temp+SalsesAmount[i];

}
Return temp/n; //求平均,返回预测值
}
}

4) 打包,放到程序的CLASSPATH中。

 4.2预测结果分析:

 系统假定市场的销售量以月进行统计,运用移动平均法预测2006年1月份的市场需求量。期数n取为4,利用移动平均法模型组件对2005年12个月的市场需求量进行计算并和实际值进行比较,计算出均方误差MSE[1][3],可根据需要画出效果图。
 
 
 
 同理,对指数平滑法和一元线性回归法等预测模型进行组件化并计算出各自的MSE值,这里不再叙述。

最后,系统比较各个模型的MSE值,把MSE最小的预测模型作为预测对象的最优预测模型,并把该模型预测出的2006年1月的需求量最为最后预测结果进行输出。

 通过分析我们可以看到,文章利用历史数据对各个模型进行测试,通过误差比较进行最优预测模型的选择,从而减小了以前单凭决策者主观判断选择模型的非科学性,提高了系统预测的效率和准确性,进而对决策者的决策起到更好的辅助作用。

 5 结束语

 文章在对市场需求预测模型研究的基础上,对模型进行组件化采用当前先进的J2EE架构进行系统搭建。同时文章提出了采用误差分析法进行模型选择的决策策略。从理论分析到最后的实验证明,文章提出的这套设计方案在灵活高效方面具有一定的优越性。但系统只对一些简单的预测模型进行了实现,而且忽略了在预测中可能涉及到的不确定因素的影响,因此还有很多地方需要改进,这是我们进一步研究的方向。

 参考文献

 [1] 宋福根著. 现代企业决策支持系统原理与仿真[M]. 北京:科学出版社,2005
 [2] Aaron E.Walsh 著. J2EE 1.4 Essentials[M]. J2EE 1.4基础教程. 李化等译. 北京:清华大学出版社. 2003
 [3] David R.Anderson, Dennis J.Sweeney, Tomas A.Williams. Quantitative Approaches to Decision Making [M]  (10th Edition) 数据、模型与决策. 于淼等译. 北京:机械工业出版社. 2003
 [4] 刘特 著. J2EE EJB应用编程实例[M]. 北京:清华大学出版社. 2003
 [5] 陈松乔, 孙莹. 基于WEB与组件技术的决策支持系统设计模型. 有色金属设计与研究[J]. 2003.10,第24卷 增刊; 159-163

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号