MES项目简单总结(技术篇)
本文本来是写到Word文档里的个人总结,后来想想从06年接触博客园至今,基本每天都要上来学习一下的,却从来没写过什么东东,就贴一篇。
新项目马上要开始,本文先从技术角度对上一MES项目简单总结一下。
1 、程序
主要程序列表:MES 产品框架、客制化生产系统、客制化查询系统、测试设备( 2 种)集成程序、数据采集设备( 2 种)集成程序、报表数据统计 Job 框架、报表系统、异常报警信息查询系统、 SAP 接口、其它程序
1.1 、 MES 产品框架:使用 WCF 进行通信,使用 NHibernate 2.2 进行持久化,使用 AppDomain 动态加载 / 卸载程序集 dll 并缓存的方式及以 Key-Value 的属性方式提供客制化处理方案;
1.2 、测试设备集成程序:处理测试设备输出的数据(主要格式: txt 、 Excel 、 Access );
1.3 、数据采集设备集成程序: Socket 通信、结合 PLC 进行串口通信等;
1.4 、报表数据统计 Job 框架: Quartz ,动态加载 Job dll ;
1.5 、报表系统: SQL Server 自带的报表系统;
如图:
应用程序架构图示
2 、数据库
使用的数据库产品是 Microsoft SQL Server 2008 R2 英文版
系统数据库主要设计为:生产数据库( Production Database )、历史数据库( History Database )、报表数据库( Report Database )、集成平台数据库( Integration Database )、异常报警信息数据库( Exception Alarm Database )、 SAP 接口数据库;
2.1 、生产数据库( Production Database )
1 )生产数据库正常情况每周增长量为 15G ( Data File + Log File + Index File ),保存 6~12 个月内数据;每天 Log 备份,每周增量全备份(全备之后 Log File 会截断) ;
2 )生产数据库主要给生产系统和产线生产数据查询系统使用;
3 )生产数据库中的业务数据定期做归档,主要有 2 种方式: Purge 和 Archive , Purge 是数据可逆方案,主要对象是计算机:删除原始数据前按业务单元把数据以 Insert Sql 的形式保存到 txt 文件中,需要恢复时执行相应 Insert Sql ; Archive 是数据不可逆方案,主要对象是人:按业务单元把数据以 Key-Value 的形式保存到 txt 或 xml 文件中;
2.2 、历史数据库( History Database )
历史数据库数据由生产数据库数据同步过来, 3 种方案同时使用: SQL Server 的发布 / 订阅复制( Replication )方案、 SQL Server Job 方案、 SSIS ( SQL Server Integration Service )方案; 3 种方案同时使用的原因:发布 / 订阅的复制方案会因为各种原因中断,微软支持人员给出的答案:有些原因在方案重启后可以从中断点继续复制,有些原因必须重新做复制,从头复制(问题就在这里: 1 是复制需要一定的时间,会影响生产; 2 是有些数据在生产数据库已经被 Purge 掉了,无法找到原始数据),所以历史数据库就被拆分成几个小数据库:基础数据或变动比较小的数据采用 SQL Server 的发布 / 订阅复制方案,问题发生时就算重新做复制也会比较快恢复;一些逻辑性强的采用 SQL Server Job 的方式进行复制,可以设置起始点及回退; SSIS 不太了解,属于学习和尝试阶段;
2.3 、报表数据库( Report Database )
基于报表逻辑的复杂性以及客户对效率要求(所有常规报表在 30 秒内),通过 Job 将报表数据从历史数据库中统计出来保存到报表数据库来实现。
其它数据不做介绍了。
如图:
数据库架构图示
3 、服务器
根据以上程序及数据库设计,规划以下服务器,实际实施时有合并使用。
MES 产品框架应用程序服务器( Framework Application Server )、客制化系统应用程序服务器( Custom Application Server )、集成平台应用程序服务器( Integration Application Server )、缓存服务器( Cache Server )、报表查询服务器 (Report Query Server) 、生产数据库服务器( Production Database Server )、历史数据库服务器( History Database Server )、报表数据库服务器( Report Database Server )、文件服务器( File Server )
如图:
服务器架构图示
Application Server 一共 2 台,在服务器群集( Cluster )基础上结合缓存服务器( Cache Server ,主要是架设了 NCache ,保存 Session 和 Viewstate )建立网络负载平衡( NLB , Network Load Balancing ),主要运行程序: MES 产品框架、客制化生产系统、客制化查询系统;
Integration Server 主要运行程序:测试设备( 2 种)集成程序服务器端、数据采集设备( 2 种)集成程序服务器端;
4 、主要问题
技术上主要的问题在于数据库的同步方面,各种方案都有优点和缺点,搞得很疲惫,不知道是 SQL Server 太弱还是我们的设计方案有问题(使用 SQL Server 主要是项目开始之前,客户方已经购买了 SQL Server ,不愿意再换 Oracle )。
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息