1 传统桌面CAPP系统网络化转型的必然
近几年,由于云计算、物联网、移动互联网等计算机技术的发展,带动了制造业信息系统的又一次发展浪潮,大多数厂商纷纷推出了全新技术架构,牺牲的代价不可谓不高.信息管理不再仅仅局限于局域网内,而必须与互联网结合,在互联网上协同管理异地信息,传统的C/S架构的CAPP系统承受了巨大冲击,与互联网融合成为不可扭转的趋势。
1.1 迫切支持协同化工艺管理
自从1965年Niebel首次提出CAPP思想以来,最早CAPP仅仅作为一个编制工艺卡片的工具软件替代来手工编制纸质工艺卡片;后来逐渐融入了工艺数据管理模块,具体包括工时管理、编码管理、自动汇总、卡片广播、典型工艺借用、工艺知识管理等模块。早期由于PDM、ERP等管理软件尚未要求管理产品全生命周期,致使CAPP的管理功能独立发展,从而形成独立的信息孤岛;随着计算机集成制造系统(CIMS)的发展,要求PDM、CAPP、ERP等管理软件协同工作,从而破除管理过程中产生的信息孤岛。
1.2 低端制造向高端制造转型的使然
现有多数CAPP系统是一个纯C/S架构的系统,C代表客户端,S代表数据库管理系统,对于局域网内的业务完全可以胜任,且功能成熟、稳定。但是,随着制造企业的转型,迫切要求信息管理系统实现从设计到制造全生命周期的管理,从而对工艺的设计源头CAPP提出了更高的要求:第一、要求支持集团企业多地远端应用,实现异地远端协同工作;第二、要求与B/S系统的深度集成,实现与B/S系统的无缝集成。分析发现,提出这些需求的公司业务普遍具有如下特点:
①集团化异地业务的系列应用,且应用系统涉及的数据量适中;
②数据库部署在一个地方,如:集团总部;
③有限带宽下应用.如:10M专网、20M专网;
④与B/S系统前端集成和后端集成。
借鉴近几年CAPP发展的经验,业内推出的一些基于Web的CAPP系统,由于系统在交互性、响应速度及数据传输速率等方面的天然缺陷,而制造企业的信息系统恰好对交互性及响应速度都有较高要求,致使这些基于Web的CAPP系统并没有得到广泛推广。本文试图结合内存数据中间件、WCF、SOA服务等技术,采用向现有架构中插入多层(即:内存数据处理层、数据通信层、应用服务层)的方式,将C/S架构,拓展为多层混合架构系统(即:C/S/S)。
2 混合架构系统的体系结构
传统的CAPP系统是基于典型的C/S架构的客户访问层和数据服务两层架构系统。文中提出的混合架构系统:借助内存数据库将访问局域网内本地数据库和互联网上远程数据库统一,形成客户访问层、内存数据处理层、数据通信层、应用服务层、数据库服务层等五层架构体系,如图1所示,其中,客户访问层基于现有CAPP已有的桌面系统改造,最大限度的降低工作量,缩短开发周期;内存数据处理层利用内存数据库技术将数据对象缓存到客户端来进行操作,提升了系统的性能;数据通信层借助于通用客户端代理完成非托管平台与托管平台的无缝集成,实现新老平台间的数据通信;开目应用服务层利用WCF技术提供数据查询服务,文卷浏览等服务,且借助于通用客户单代理能够轻松调用不同的应用服务。
系统能够通过简单的配置即能实现局域网内非Web工作方式和互联网上Web工作方式的自由切换。如此一来,从使用效果角度,无论是局域网内的非Web工作方式,还是Intemet网络的Web工作方式,同样具有交互优势;从使用安全角度,借鉴了新的安全架构思想,将数据库访问层,置于应用服务层之后,所有的数据访问都通过应用服务层实现,很大程度的加强了企业信息安全:从体系架构角度,既能避免C/S架构不能跨越异质异构网络访问等缺陷,又能避免Web架构系统界面交互性差等弱点。
图1 系统总体架构图
3 关键技术
3.1 内存数据处理层
内存数据库处理层肩负着两大功能:1)为智能客户端数据集的实时数据缓存,减少应用程序与数据库服务器的往返次数,提高频繁访问的响应速度,提升交互友好性;2)保护客户提供工作成果,解决网络状态不好时,自动本地化存储,网络恢复时自动同步客户端的数据。
通常内存数据库是指将数据库驻存到内存进行直接操作,而形成的高效访问数据库,但本文所指的内存数据库是作为一个中间件存在,为应用程序所服务,基于数据库中的数据表、视图、表关联建立起来的具有对象特征和丰富数据关联性的内存数据结构,其数据处理逻辑不限于SQL语法,其具体结构如图3所示。对于数据定义语言(DDL),内存数据库仅作为一个中转通道,SQL语句通过内存数据库中转后,到达应用服务器执行完成操作;对于数据操作语言(DML),内存数据库直接处理,首先在内存数据库中完成对数据对象的添删改,待操作全部完成后,将最终结果回存到应用数据库中。
图2 内存数据对象的类结构视图
CAPP系统根据具体业务访问内存数据对象,内存数据对象则会自动通过数据通信层组织远程数据到内存数据对象,如同物理表一样可以进行select、insert、update、delete等操作,直到业务全部完成后通知内存数据库将内存数据回存回远端数据库中。对于远端数据库的访问架构来说,源于Web架构的HTTP协议进行工作,存在如下问题:1)网络请求的不稳定性,2)网络传输受限等缺点.直接频繁访问则响应速度慢是最大的问题.本系统利用内存数据库缓存技术,首先可以大大减少CAPP与远端数据库的交互次数,减少网络上数据存取次数;其次将对数据的select、insert、update、delete等操作从远端网络操作变成了进程内操作,极大提高了数据操作的效率。
3.2 通用客户端代理组件
通用客户端代理是利用.net的com互操作、C#的反射、Web访问等技术开发的一个通用组件,不仅能够轻松实现非托管组件与托管组件的结合,完成非托管平台与托管平台的无缝集成;而且利用.net提供的WebRequest等网络通信对象,实现对不同的应用服务的服务接口的调用。该组件实现对.net程序集的动态调用,很好地降低了系统的耦合性,使得系统易于维护、升级,本系统借助该组件实现了现有的基于MFC工具开发的CAPP客户端与新近开发的基于.net的应用服务器平台的集成,并对应用服务器提供的服务组件实现动态调用,从而降低系统的耦合性。
通用客户端代理组件的主要算法流程如下:首先、利用C++中的variant t这个通用数据类型将函数的调用参数封装为CArray<-variant_t,_variant<_t类型的动态数组,与.net中的引用类型的数组object[]对应,实现对参数的传入传出;其次、利用反射技术获取.net程序集中相应方法的类型,参数信息;最后、通过调用的调用接口的Invoke实现cH组件对.net程序集的通用调用,实现对所有服务接口的封装。
4 应用实例
传统的CAPP通过客户机的ODBC标准API,直接操作局域网内数据库服务器。而本文对现有CAPP架构进行整合、改造,使CAPP客户端始终与内存数据库交互,业务所涉及的数据对象从应用数据库中加载到内存数据库,待业务完成后再从内存数据中回存到应用数据库,内存数据库通过配置可以直接访问本地数据库、或通过代理访问远程数据库。若开启局域网内非Web工作方式访问本地数据库,混合架构将以客户访问层、内存数据处理层和数据服务层等三层架构模式工作;若开启Web工作方式访问远程数据库,混合架构将以客户访问层、内存数据处理层、数据通信层、应用服务层和数据服务层等五层架构模式工作,如图3所示,是混合架构CAPP系统编制一个工艺卡片的流程图。图4所示为系统访问方式的配置文件样例。
图3 工艺卡片编制流程图
图4 数据库连接方式配置模板
5 结语
信息管理系统的网络化是必然的趋势.本文针对企业切实需求,开发的新架构下的CAPP系统实现了既可以在局域网内访问本地数据库,也可以在互联网上访问网络数据库,甚至同时访问,用户可以根据自己的需要在两种方式之间自由选择或切换,从而最大限度地发挥两种不同方式的优点、避免各自的劣势。内存数据库的使用提高了频繁插入、删除、更新数据等操作的效率,提高了系统的响应速度,很好地避免了远程访问系统响应慢的问题.所开发的基于新架构系统下的CAPP系统等新型桌面应用系统在企业实施,已获得良好的效果。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:基于内存数据对象的混合架构CAPP系统