`

实战多系统通用功能抽取的设计思路

阅读更多
1.产品按指定的顺序显示。

业务逻辑大致如下,当前产品推出了多个套餐。套餐ID是从别人的接口中获取的,返回的是无顺序的。但是不排序的话,JSP页面上显示会很乱,这样有了对套餐排序的需求。

原来是在程序中定义了一个数组,以数组中套餐ID的顺序来排序,初步实现了套餐排序的功能。由于新套餐的推出较频繁,这样每次增加新套餐,数组就得做相应地改动,也就是每次都需要修改程序,生产系统的server也要重新启动,感觉需要改进。

如果有新套餐推出,不用修改程序,不用重启server,就比较理想了。于是有了如下想法:
做一个配置文件,将套餐信息包含其中,程序中解析此xml文件,根据文件中套餐的顺序进行排序。每次添加新套餐时,只要修改此xml文件,然后上传到生产系统就可以了(具体的实现很简单,不写了)。

2.产品按指定规则变更。

用户选择了某个套餐A,使用了一段时间后,发现还是套餐B更实惠,这样会对当前使用的套餐进行变更。业务规则如下:对套餐变更来讲,例如:5+套餐可以变更为15+,25,35+,45+;一段时间后,5+套餐不能变更为45+套餐了,而且套餐变更的规则变化较快。

用户登陆应用后,可以在页面上进行套餐变更操作。可变更的套餐在一个下拉框中显示,可变更套餐的获取并不难,目前用一个方法进行过滤。关键是:以后每次套餐变更规则时,程序都要修改,很麻烦。

解决办法与套餐排序几乎一样。


3.多应用中的通用功能的抽取。

我们的多个应用部署在同一个jboss server下。例如:应用A和应用B部署在同一jboss server下(目前只能这样),每个应用中都有一个配置文件a.xml(就是解决上面1,2产生的配置文件),格式相同内容不同。

a.xml中有套餐的信息,对于不同的系统来说,套餐的信息是不同的,例如A应用中需要配置10+,20+,30+,40+,50+套餐,应用B中需要配置5+,15+,25+,35+,45+套餐。

我们目前有多个应用,每个应用都有套餐的变更和排序的功能需求,大家的实现都差不多。于是就有了把以上两个功能抽出来,做一个jar包,假定为suite.jar每个应用中包含一份。


实现:

多个应用部署在同一个jboss server下,每个应用中包含一个suite.jar,server启动时,各应用通过各自suite.jar中的Listener中获取当前应用的a.xml的路径,然后加载它。为了维护的方便,各应用中的a.xml都是相同的,每个应用只取自己需要的部分。

将来会有更多系统上线,并且几乎都要用到同样的几个功能,如果在多个系统中维护同一份代码,感觉不是较好办法。以下是我的思路,大家都来指点一下,先谢过!

1)将这几个通用的功能抽取出来,做成一个Jar,分别放在各子系统中。
优点:通用的功能代码在一处维护,功能升级时,修改一份源程序即可。
缺点:在多个应用中散布着相同的Jar,其实也是在多个地方维护着同一份代码。

2)将这几个通用的功能做成一个Jar,放到Jboss的lib下。
优点:多个应用使用同一份代码,通用的功能代码在一处维护。


不合理或者完善的地方还请大家批评指正,谢谢!


分享到:
评论
1 楼 charles751 2008-07-10  
没人发言,自己顶下

相关推荐

    django项目实战之开放领域事件抽取系统(源码+说明+演示视频).zip

    本项目“django项目实战之开放领域事件抽取系统”采用Python的Django框架结合MySQL数据库,构建了一个实用的事件抽取系统,适用于计算机毕业设计或课程设计的学习参考。 首先,我们要理解Django这一强大的Web开发...

    通用全量抽取.rar

    【通用全量抽取】是一种常见的数据处理操作,用于从源数据库获取所有数据并将其加载到目标数据库或数据存储系统中。在这个场景中,我们使用的工具是Kettle,它是一个强大的ETL(Extract, Transform, Load)平台,由...

    评标专家抽取系统

    "评标专家抽取系统"是一种专门用于招标过程中的专业软件工具,它旨在确保评标过程的公正、公平和透明。评标专家的选取是招标环节中的关键步骤,因为这些专家的决策直接影响到招标结果的公正性。传统的专家抽取方式...

    招标采购评审专家(机构)随机抽取系统_V2.25_标准版.rar

    系统可以方便地从专家、监督员库中的一组或几组中随机抽取指定数量的专家、监督员,支持一个项目中多个采购类别(如专业类、经济类、法律类、监督员、其他类别)的反复多次抽取。具有补抽专家等功能,因各种原因抽选...

    基于python+Django的《专家信息管理与抽取系统》.zip

    总的来说,《基于Python+Django的专家信息管理与抽取系统》是一个涵盖了Web开发核心知识的项目,涉及了Python编程、Django框架、数据库设计、信息抽取、安全策略等多个重要领域。对于计算机专业的学生来说,这是一个...

    通用ETL抽取加载程序

    根据个人在数据仓库中的实际经验,设计开发出的通用的ETL抽取加载软件,具有较高的性能与易用性。

    含七款评标专家随机抽取软件系统源码

    含七款评标专家随机抽取软件系统源码 源码及应用 大树评标专家抽取dashuzjcqtzxt 宏达评标专家抽取hdErdnms1.0 九鼎招标采购评审专家(机构)随机抽取系统_V2.59_标准版 闻道评标专家抽取pbcqSetup 源码 云智评标...

    BI系统从ERP系统抽取数据解决方案解析

    BI系统从系统从ERP系统抽取数据解决方案解析系统抽取数据解决方案解析摘要当BI系统从ERP系统中抽取数据时用户主要关心的是三个问题。一是数据抽取是否完全二是数据抽取是否准确三是数据抽取是否及时。三个

    使用kettle实现多表数据全量抽取.rar

    8. **调度与监控**:一旦工作流和转换设计完成,可以使用Kettle的内置调度器或集成到操作系统任务调度器中,定期执行数据抽取。同时,使用Kettle的监控功能跟踪和分析执行性能。 在提供的压缩包文件中,我们期望...

    基于python的开放领域事件抽取系统设计与实现.docx

    Python语言的发展让更多的事件抽取系统设计与实现成为可能。 事件抽取系统的设计与实现需要考虑到以下几个方面: 1. 事件抽取算法:事件抽取算法是事件抽取系统的核心,需要选择适合的算法来抽取事件信息。常见的...

    通用试题库管理系统的设计与实现

    系统设计上采用了树状管理结构,确保每一道试题都能够被精确地分类。此外,系统支持多种试题格式的录入,并能够自动生成排版完整的试卷。 #### 关键功能模块 1. **员工基本信息管理及权限设置** - 功能:系统首次...

    专家管理系统,政府采购专家抽取

    本文将深入探讨专家管理系统的功能、设计原则以及其在政府采购中的应用。 专家管理系统是针对政府项目评审、招标、评标等活动而建立的专业化管理平台。它的主要目标是收集、存储、管理和调用各类领域的专家信息,为...

    基于行块分布函数的通用网页正文抽取算法

    运用正则表达式能够精确的抽取某一固定格式的页面,但面对形形色色的HTML,运用规则处置难免捉襟见肘...能不能高效、精确的将一个页面的正文抽取出来,并做到在大范围网页范围内通用,这是一个直接关系上层应用的难题。

    通用抽取引擎框架_一种新的Web信息抽取方法的研究

    通用抽取引擎框架_一种新的Web信息抽取方法的研究

    Kettle实现多表数据全量抽取

    例如,`Multi-tableFullDataAcquisition.kjb`很可能是定义了一个定时作业,该作业定期执行多个数据抽取任务,从源系统中获取所有表的最新数据。 - **Kettle作业(Job)**:是Kettle中用于协调多个转换或者作业的...

    关键概念抽取系统

    关键概念抽取系统是一种重要的自然语言处理(NLP)技术,其主要目的是在海量文本数据中自动识别出最具代表性和核心意义的信息元素,如主题、实体、事件等。这个过程涉及多个层面的处理,包括预处理、特征提取和模式...

    随机抽取系统

    在系统设计中,可能包含以下关键组件: 1. **数据池**:存储待抽取对象的集合。可以是数组、列表或集合,取决于数据量和性能需求。 2. **抽样算法**:决定如何从数据池中选择不重复的元素。简单随机抽样可以直接用...

    评委选机抽取系统2012

    评委选机抽取系统2012是一款专为教育目的设计的软件应用,它利用了Microsoft的Visual C# 2010集成开发环境(IDE)以及.NET Framework作为基础平台。这个系统的主要功能是为各种竞赛或评选活动提供公正、随机的评委...

    delphi 抽奖系统 随机抽取 奖励

    本文将深入探讨如何使用Delphi这一强大的面向对象的编程语言来构建一个随机抽取奖励的抽奖系统。 Delphi是Embarcadero Technologies开发的一款集成开发环境(IDE),基于Object Pascal语言,以其高效、简洁的代码和...

Global site tag (gtag.js) - Google Analytics