2011年,邯钢对冷轧MES项目进行了改造,改造后的系统采用面向服务的三层C/S架构。新的架构较原先的二层C/S架构无论是可用性、可靠性、安全性、可重用行都有了很大的提高。
1 三层C/S架构
邯钢冷轧MES系统采用时下流行的的三层C/S架构,即客户机/应用服务器/数据库服务器架构。在该系统平台中,客户端的前台系统是用微软公司最新的.NET 2008集成开发环境开发,中间层采用目前较为成熟,支持大量客户并发访问的BEA公司的事务处理型中间件Tuxedo7.0,后台数据库则采用适合大型事务处理系统的关系型数据库Oracle10g。
对应于三层架构,由.NET开发的客户端程序位于现场岗位PC机上,它负责根据用户的操作调用中间层的相应服务,并显示操作结果。而中间层的应用服务器位于单独的服务器上,它负责接收客户端的请求,并调用相应的服务,然后通过PRO*C来访问远程的Oracle数据库服务器。
在面向服务的三层C/S架构中,中间层是整个架构的核心。因为在该平台架构开发中,主要的工作量在业务逻辑的处理。而业务逻辑处理是作为服务运行在中间层的应用服务器上的。开发人员可根据不同的业务需求,把不同的业务做成不同的Service,然后交给Tuxedo自动处理。而Tuxedo中间件正是面向服务处理的一个系统软件。它处理的基本单位是一个个不同的服务元,即开发人员编写的不同Service,但是Tuxedo并不是对不同的Service分别进行管理,它需要集中管理,即把不同的Service绑定到一个Server中,然后对该Server进行高效的管理。例如前台调用中间层的Service,中间层的Tuxedo在收到前台的服务请求后,会运行与该Service绑定的Server。其中运行的进程就是前台调用的Service,当事务处理完成后,该Server实例自动结束,其中所包含的Service进程也随之消亡。由上可看出,Server相当于一个盛放Service的容器,Tuxedo中间件是对Server这个Service容器进行统一管理的。这非常类似于操作系统中进程与线程的概念,在操作系统中,进行资源拥有的单位是进程,但是进行资源调度和分配的单位却是进程中的各个线程。其实也可以这样说,Tuxedo就是一个网络操作系统,负责服务的调度和管理。
上图中的Service是用Pro*C语言开发的,这是一种通过在C语言中嵌入SQL语句,以便访问Oraele数据库的开发语言,它只能用于对Oracle数据库的访问。Tuxedo中间件作为前台与后台的联系纽带,负责处理数据的交换。在数据转换过程中,因为Tuxedo自带的数据访问函数比较复杂难懂,为了降低开发人员的工作量和难度,以便使开发人员集中精力处理业务逻辑,邯钢冷轧MES平台对Tuxedo复杂的底层数据交换进行了封装处理,只提供一套高效、便捷的数据访问接口,这样开发人员只需调用这些API接口就能处理与前后台的数据交换,大大提高了工作效率,缩短了开发周期。
2 Tuxedo7简介
Tuexdo7.0是在企业、因特网这样的分布式运算环境中管理三层结构的客户/服务器型关键任务应用系统的强有力工具,它能支持大量的客户进程对服务器的并发访问。它通过负载均衡技术把负载均匀地分布在集群中的不同服务器上,不会出现一个服务器负荷较重,而另一个服务器较闲的情况,大大提高了系统的运行速度,缩短了响应时间。在分布式计算环境下,Tuxedo支持两阶段提交,保证了数据的一致和完整性。除此之外,Tuxedo还具有很高的安全性和故障恢复能力。所有这些特性,使得Tuxedo中间件广泛的应用在银行、电信、金融等拥有大量客户的领域。
它位于三层C/S架构中的中间层,是三层C/S架构中的核心,Tuxedo采用三层结构的组件模型,如下图所示:
2.1 Service介绍
Service是tuxedo中的事务处理单元,相当于操作系统中的线程,是开发人员根据业务需要用PRO*C开发的,例如生产订单查询就可以做成一个Service供前台客户端调用。它是嵌入tuxedo中的,其编写方式必须符合tuxedo的标准。
2.2 Server介绍
由上文可知,Tuxedo对Service的管理是通过Server进行的,它相当于多个Service的容器。tuxedo对Service的编译、加载、卸载都是以Server为单位进行的。开发人员在开发完Service后,需要将Service绑定到一个Server中。Server是由开发人员自行指定的,它由一个ID号唯一确定。例如在邯钢冷轧MES系统中,开发人员可为生产订单指定一个Server号,生产订单的查询、修改、删除则可以做成不同的Service绑定到该Server中。
3 PRO*C简介
Pro*C是在C/C++开发语言中嵌入SQL语句,以访问ORACLE数据库。因为Pro*C程序相当于服务器端的存储过程,所以具有编译速度快,运行效率高,并能有效降低网络数据流量的优点。
在邯钢冷轧MES开发平台中,开发人员用Pro*C开发后台Service。在开发Pro*C程序时必须注意下列问题:
首先Pro*C程序必须包含SQL的标准头文件sqlca.h,该头文件中定义了一些程序中经常使用的SQL系统变量,如:sqlca.sqlcode等。对于直接和数据表交互的结构体开发平台将其自动生成头文件,并以EXEC SOL INCLUDE*.h的方式引用到应用程序中。这种结构体是为便于与数据表进行数据交互和与tuxedo进行数据传输而由开发平台专门定制的。
4 面向服务架构的优点
4.1 系统的安装与升级更容易
每个开发人员根据业务需要,可开发不同的Service,并嵌入不同的Server中,然后由Tuxedo统一管理。当一个Service需要更新时,可在不停机的情况下更新该Service,而不会影响其它的Service。
4.2 可并行开发,缩短了开发周期
每个开发人员根据业务需要,可同时开发不同的Service,最后再集成到一个系统中,大大提高了开发效率。
4.3 可重用服务
一个服务创建后能用于多个应用和业务流程。降低了开发成本,提高了开发效率。
4.4 松耦合
凭借其松耦合的特性,使得企业可以按照模块化的方式来添加薪服务或更新现有服务,以解决新的业务需要,并可以把企业现有的或已有的应用作为服务,从而保护了现有的IT基础建设投资。
5 结语
邯钢冷轧MES系统采用面向服务的三层架构后,能够快速灵活的适应业务流程的变化,提高系统运行速度和可用性,为邯钢的信息化建设打下坚实的基础。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:面向服务的三层软件架构设计
本文网址:http://www.toberp.com/html/consultation/1083932968.html