衡阳天气预报一周查询:异构管理软件系统集成浅谈1

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 02:48:03

1、前言

管理信息系统进入中国已经有20多年时间,由于企业不同部门对管理工具的需求存在层次性,信息化在中国企业的推广应用很多是从一些局部、简单应用做起来的,譬如财务系统在众多中国企业的率先应用推广就是一个很好的佐证。但是随着企业管理水平的提高,企业内部各个部门都逐渐产生了信息化的需求,由于企业管理的复杂性,很多企业需要用到多种不同性质的软件进行管理控制;同时由于各家软件公司在企业管理的不同领域各有擅长,企业在选型、应用时往往难以割舍,因此,在企业中就逐渐形成了多种管理软件在不同部门并存应用的局面。为了管理的需要,企业迫切需要对整个企业的数据和流程进行整合和处理。

因为信息集成无疑可以提高企业管理效率、降低企业运营成本以及加强企业竞争能力。因此,在这种情况下,企业往往只能有三种选择:一是放弃原有局部应用,导入整体解决方案(但这会导致重复投资,同时由于操作习惯的改变和数据准备的工作量,会使原有系统的使用者在实施过程中产生抵触心理);二是保留原有局部应用的同时,再引入新的应用,不做集成,集成部分的数据和流程在系统外流转(但这会导致信息孤岛的出现,增加人为错误和加大录入工作量);三是在保留原有局部应用的同时,引入新的系统,然后由其中一家或两家软件公司合作做集成实现。

无疑,前两种方法在技术层面都不会有太多问题,但是第三种方法在技术实现上会有一定难度和风险。尽管很多软件公司在售前阶段都会承诺可以做接口实现,但是究竟能够做到什么程度,是否能够做到真正、完整意义上的无缝联接却是一个很大的问题。在这里,本文对前两种选择不做具体的分析和阐述,只是就第三种选择,即异构管理软件系统的集成实现做一些简单的分析和论述,希望对企业的信息化选型以及软件公司进行异构管理软件系统集成的技术实现工作能够有所助益和启示。

2、异构系统集成分析

2.1异构系统集成原理

异构系统集成是指通过编写高级语言程序来实现不同软件系统之间数据传递、调用的重要方式。在管理软件异构系统集成开发过程中有以下两个方面的问题需要着重解决,一是异构软件系统间的数据传输问题;二是异构软件系统间管理流程和工作过程的重构和衔接。

异构软件集成方式如图1所示。由图可知,当采用数据接口来进行软件集成时,各系统间是通过前、后置处理器和具有标准交换格式的文件来联系的。

2.2 异构系统间数据传输

2.2.1异构管理软件系统数据查询

在异构系统间传输量最大的是数据。应该说,如果知道原有系统的库表结构和数据字典(即使原系统软件商不提供对应库表结构和数据字典,也可以通过对原有系统的数据库进行分析来得到相应信息),然后编制前置处理器去查询相应的数据供新系统使用是一个相对比较简单的问题,但即使是这样,也必须注意以下五个方面的问题:

(1)在数据字典中数据项的定义需要统一,不能统一的要有相应的对照表和处理方法。这是由于不同软件公司开发的产品,可能出于不同的工作习惯和对业务的不同理解,一些数据项的定义(包括数据项名,数据含义说明,别名,数据类型,长度,取值范围,数据含义,与其他数据项的逻辑关系,数据项之间的联系等)可能有一些差别,因此要进行统一和修正,以避免产生歧义,造成业务过程中不必要的混乱;

(2)在数据查询过程中,要了解不同数据的来源与状态,保证数据的独立性。譬如在原有系统中,某些数据项在不同状态时可能有不同的值,如果不加以分辨的查询引用很可能会造成数据错误;

(3)在数据查询过程中,要注意原有系统和新系统是否使用相同的数据库,如果使用的是不同的数据库,一定要注意SQL语句的写法,因为不同数据库对应的SQL语句有不同的标准。

(4)从原有系统中查询到的数据需要定期查询读入到新系统中,很难做到时时,这是因为一般新系统不对原有系统的库直接操作,以避免纠纷和增加不安全因素;

(5)新系统可能会读取到"脏数据"。譬如原有系统中某一事务T1修改了某一数据,这时新系统读取该数据,当新系统读取该数据并使用后,原系统事务T1由于某种原因被取消,这时T1已修改过的数据恢复原值,这时新系统读到的数据可能至少在某个时段内出现原系统数据库中数据不一致的情况。

2.2.2异构系统数据写入

从新系统写入数据到原有系统无疑是一件令人非常头疼的事情。因为在写入时如果不是非常了解原有系统的库表结构和处理过程,则可能会有以下意外情况出现:

(1)没有充分了解原有系统中数据项的定义,写入错误的数据(数据类型、数据长度和取值范围错误)造成数据紊乱;

(2)原有系统中可能使用了触发器和存储过程,当没有充分了解原系统中触发器的触发条件和存储过程的处理过程时,盲目写入数据,可能会造成一些事务不能进行或遗漏某些处理,以至于原有系统正常的业务逻辑过程被打乱,导致系统紊乱;

(3)当新系统可以向原有系统中写入数据时,很有可能造成多个事务同时存取同一数据的情况,因为是两个系统,很难对并发操作进行控制,这样就可能存储不正确的数据,破坏数据库中数据的一致性;

(4)假如原有系统中对于某些数据的处理是通过代码实现的,并在代码中还改写了其它的数据或事务,而该数据恰恰是新系统可以写入的,这样直接写入数据库中的数据会导致系统出现异常;

(5)在数据写入过程中,也要注意原有系统和新系统是否使用相同的数据库,如果使用的是异构数据库,那么一定要注意SQL语句的写法,因为不同数据库对应的SQL语句有不同的标准。

2.3 异构管理软件系统管理流程、工作过程的重构和衔接

对于管理软件来说,仅仅解决数据共享是不够的,还需要对接口部分的业务流程进行重组,以保证业务流程的顺畅、高效、严密。同时,在业务流程中还会产生并传递一些相关的指令信息,而流程的顺畅进行和相关指令的传递都必须在异构管理软件系统进行集成时加以考虑。

在这里,我们首先定义某一业务流程或某一指令由新系统流向原有系统为顺向传输;反之则为逆向传输。

当原有系统软件商不提供源代码和所有设计文档,而只提供相应库表结构的前提下,顺向业务流程的简单传递是可以实现的,其实质是单据的单向传递,但即使在这种情况下也很难保证原有单据上的所有数据项信息能被顺利、完整地传递过去,譬如新系统中某个数据项可能在原有系统中并不存在;而复杂的业务流程和带有逆向反馈指令的业务流程则根本无法实现。

当原有系统软件商不提供源代码和所有设计文档,而只提供相应库表结构的前提下,通过在原系统数据库上创建存储过程和插入触发器来传递顺向指令可以实现,但由于不清楚原系统的逻辑控制,很难保证不出现系统紊乱。但逆向传递指令则比较容易实现,只要取得的用于触发指令的数据项就可以实现,基本可以保证逆向指令传输的顺利完成。

当原系统软件商可以提供源代码和所有设计文档时,从理论上讲,是可以实现业务流程或指令的顺向传输和逆向传输的,甚至一些更为复杂业务流程也可以实现。但是是否能够实现,跟原系统的开发过程是否规范、开发文档是否完备以及新系统的系统分析员的业务能力都有很大的关系。

在拥有原系统源代码和开发文档的前提下,实现异构管理软件系统业务流程或指令集成需要注意以下问题:

(1)需要对原系统的业务流程充分熟悉,要找出原系统中所有跟接口流程控制相关的源代码、触发器以及存储过程等;

(2)需要对新系统的业务流程充分熟悉,要找出新系统中所有跟接口流程控制相关的源代码、触发器以及存储过程等;

对两个系统的业务流程进行整合,重新设计接口部分的业务流程,然后按照整合过的业务流程修改相应的表结构、代码、触发器以及存储过程。

3、异构管理软件系统集成建议

从以上分析可以看出,进行异构管理软件系统集成在技术实现上有一定难度和风险,但并不是不能实现,如果企业要实现异构管理软件系统集成应该具备以下条件:

(1)承担集成任务的软件公司应该熟悉原有系统和新系统的业务流程、库表结构以及逻辑控制等;

(2)为了减少集成的风险,则要求原有系统和新系统的软件开发过程比较规范,应用软件的程序开发模式要基本一致;

(3)要求负责集成设计的系统分析员具有较高的水平。

(4)重新修正企业编码规范,统一编码原则,统一管理共享的基础数据,对于多个系统都要用到的数据,要明确界定谁生产、谁使用、谁维护。

(5)系统之间的数据传输要采用数据库的同步机制来实现。

同时,企业在进行异构管理软件系统集成时,应根据企业实际管理情况,采用灵活的集成策略,而不是一味追求所谓"无缝"联接,部分流程可以根据实际情况在系统外进行,以降低异构软件集成的难度和复杂性。