恩达

可爱的儿子--阳阳坨

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  43 随笔 :: 14 文章 :: 55 评论 :: 0 Trackbacks

在写这个专题时,心情很怪异,如果您是专业人土,应该对下面的看似简单的模式有所触动,对于本人来讲,这简短的几句话意味着的是上百万的项目成本与近两个月的项目延期的问题,因此,本人显然对所有经历过的大型项目中IT人员在此专题上的表现非常不满意,因此把个人的想法在此与您分享,希望对您有所帮助(下面场景以A系统上传数据到B系统,此方案不考虑中间件模式,主要从业务需求的角度上来分析):
1
、考虑从A系统重复上传数据至B系统的问题。
       1
)、通过上传数据时使用同一关键字可自然避免此问题。
       2
)、如果业务流程中难以使用同一关键字,则首先要明确AB系统中各自数据行的关键字,然后一定要在从A系统上传B系统时将A系统的关键字赋值到B系统数据行的某个字段,且这个字段一定要方便查询,如具有搜索帮助功能的字段。
       3
)数据上传是否成功需要反回值,并在A系统中有所记录,单独做日志记录或修改上传数据行状态需根据需要而定。
       4
)强调3),判断数据是否成功上传的方式严格意义上来说应该是在上传动作处理完后到B系统去抓对应的数据,除非B系统是非常标准可靠的大系统,接口为标准化可靠技术,才可以通过反回代码来判定是否成功上传数据。
       5
)区分第1次上传与第1+N次上传处理,如,当第2次按下了上传键,则首先要去查看数据行状态,如果为上传成功状态,则取消后续操作,如果为不成功,则要谨慎对待,这时严格做法是去B系统搜索是否上传成功,如果B系统已成功,但A系统状态没改过来,出现报警日志,需手工确定、处理,如果B系统的确没有该数据行+A系统中状态为未成功,则可执行第2次上传任务。注意这个“+”,少了它,您的逻辑就缺乏严谨性了,例如,上传B成功,但在返回值时出现异常,从而出现重复上传。
2
、考虑某些异常处理方法。
      1
)、如上所述,如果自动上传失败,您要有手动处理的方式。
      2
)、要具备既能自动批量上传,也可以手动批量上传的功能。例如在AB系统成功对接前,需要在AB系统中手工单独处理业务数据,一旦对接成功,这时需自动上传,那么在此之前的业务数据需要补充上传;或是在某种特殊情况下需要暂停A系统上传B系统,后续再补提,那么在程序开发时需要考虑到这种业务需求,建议是通过某种方便的来统一控制,如定制参数等。的优点是统一、同时、一个不漏的控制业务对象。
3
、定期的、规范的数据校对功能。
     
如果不是AB双向接口,缺了这一功能,是您的失误。由于A上传B,通常会要求AB两系统中的基础数据一致、业务数据同步一致,但往往很难从技术上去解决AB系统双向接口,这时我们需要考虑到当B系统单独更改了基础数据或是从A系统上传的数据行时造成的数据不一致的校正工作。
     
或许有人说我们在流程上已经规定了AB系统单独修改时必须同时更改,但是作为IT人员应该穷举所有的特殊情况处理,比如,操作人员没有按流程去做呢?
     
因此,建议按具体业务来定统一校对工作,注意,不同的业务校对的时间间隔可设为不同,且要具备错误后续处理功能。

其它相关原创文章:
        1.大型软件系统应该具备的一些细节功能
        2.专业专题点评:浅谈物料编码与技术实现
        3.专业专题点评:数据归档/删除处理逻辑简介
(特别说明:以上为个人观点,仅供参考,本人不对此方案负任何责任!—ERP Senior Consultant Vilion)

posted on 2006-05-31 09:21 恩达 阅读(1106) 评论(2)  编辑  收藏 所属分类: ERP

评论

# re: 专业专题点评:浅谈系统间数据传递与数据一致性的核心技术模式 2006-05-31 10:13 charon@xxx
这个做法比较原始,如果只有A,B两个系统还可以忍受。一旦分立系统数目增加,这种处理方式会产生网状依赖,其复杂性是不可接受的。
实际上有一些可靠的机制可以可靠的搞定这些东西,比如MQSI之类的消息中间件。  回复  更多评论
  

# re: 专业专题点评:浅谈系统间数据传递与数据一致性的核心技术模式 2006-05-31 10:31 恩达
谢谢您的提醒,我已经更改了文章适用前提的限制条件,使用中间件的确是最好的技术方案,但不是最经济的商业方案,涉及到中间件软件及技术专家成本问题,因此,在一些企业一期项目中通常不采用中间件来做技术实现,而是后期自已的IT队伍改进时用中间件来实现。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: