SOA和WCF在ODS淘汰能力管理信息系统中的应用与研究

2014-08-30 11:53崔艳春
关键词:臭氧层端点宿主

崔艳春

(南京信息职业技术学院 计算机与软件学院,江苏 南京 210023)

SOA和WCF在ODS淘汰能力管理信息系统中的应用与研究

崔艳春

(南京信息职业技术学院 计算机与软件学院,江苏 南京 210023)

文中以江苏省消耗臭氧层物质(ozone depleting substances,ODS)淘汰能力管理信息系统为研究背景,旨在论述如何使用SOA(service-oriented architecture)和WCF(windows communication foundation)技术实现ODS管理信息系统.系统部分功能以WCF服务应用程序实现,并采用自托管形式将服务宿主,融入SOA理念和WCF技术,给出了典型的运行实例.系统开发结果表明:SOA理念和WCF技术应用到ODS管理信息系统的设计与实现中,软件开发人员能够更好地分工协作,提高开发效率,降低后期维护难度.

WCF; SOA; ODS; 管理信息系统

冰箱、空调、电子产品、灭火器材、烟草、泡沫塑料、发胶、杀虫剂等产品的生产或使用过程中,大量使用人造化学物质,这些物质很多都具有破坏臭氧层的能力,科学家把这些破坏大气臭氧层、危害人类生存环境的化学物质称为消耗臭氧层物质(ozone depleting substances,ODS). 目前大量使用的ODS主要包括下列几类物质:全氯氟烃、哈龙、四氯化碳、甲基氯仿、甲基溴、含氢氯氟烃等.

中国在消耗臭氧层物质(ODS)淘汰领域所实施的政策法规建立在对国际公约所做的承诺基础之上,已形成了一个层次比较清晰的政策法规体系.我国制订的《中国逐步淘汰消耗臭氧层物质国家方案》及其修订稿是经国务院批准并得到蒙特利尔议定书多边基金执委会认可的国家行动计划,在ODS淘汰行动的整个政策法规体系中占有核心地位,是制订和实施各行业淘汰计划以及各种相关政策措施的首要依据.

数字化ODS淘汰能力管理信息系统不仅是监督管理部门掌握数据,也是地方上报数据的便利途径.本文重点论述了ODS淘汰能力管理信息系统(以下简称ODS管理信息系统)的整体架构、关键技术和实现方法,详细说明了SOA和WCF技术在系统中的应用方式.该系统的设计与实现在加大环保部门掌控ODS数据的力度,提高环保部门保护臭氧层工作的效率等方面具有良好的社会效益.

1 系统结构

ODS管理信息系统以省级管理平台为中心,各市县部署本地管理系统,采取界面统一、功能明确、录入规范、使用灵活的数据接口,是后期数据处理、统计工作的基础平台,同时也是系统统一管理、升级维护的重要保证.省级ODS管理信息系统架构如图1所示.

图1 ODS管理信息系统总体架构Fig.1 Architecture of ODS managementinformation system

2 关键技术

2.1 SOA

SOA(service-oriented architecture)既是一种编程模式,也是软件开发的一种架构方法.在这种架构方法中,应用程序是由具有一定服务行为的功能单元组成的,并通过这些服务之间定义的接口和契约联系起来.接口采取中立的方式进行定义,独立于硬件平台、操作系统、开发平台和编程语言[1-2].这使得客户端程序可以把这些服务中的操作方法当做黑盒子那样调用,客户端只要知道提供服务方法的名称,输入参数名称及类型、方法返回类型即可调用服务.

SOA的基本思想是构建一个松散耦合的系统,在这个系统中,服务使用者和服务提供者共同拥有公开的服务操作列表和参数的结构定义[1].因此,在SOA架构中,服务的创建要遵循以下5个原则:服务独立于平台和工作环境,服务相互隔离,服务对协议格式和传输中立,服务可以扩展,服务行为不受限制.

2.2 WCF

WCF(windows communication foundation)核心是为了通信,即通信和集成是WCF中两个最重要的方面.开发人员可以充分利用WCF中提供的丰富功能建立分布式应用程序,这些应用程序之间可以相互通信,交换消息.WCF客户端在通信过程中,先在本地进程中生成代理,由代理经端点与服务端对应的端点交互(图2).构成端点的3个组件有地址、绑定和契约[2].

图2 WCF通信示意Fig.2 WCF communication diagram

2.3 SOA和WCF在ODS管理信息系统中的应用

ODS管理信息系统以省级管理为统一平台,各市县环保部门在地域上分散,数据传输、查询、统计、分析等操作是一种分布式的应用.地方ODS淘汰能力建设项目需要实现生产、消费和销售信息汇总及数据库建设,实现对数据库的增、删、改、查等管理操作功能,实现对数据库系统的综合分析及汇总统计功能.不同部门有不同的操作系统、应用软件等,使得该信息系统的应用环境变得较为复杂.SOA是一种粗粒度、松耦合服务架构,服务之间通过定义接口进行通讯,不涉及底层编程接口和通讯模型.SOA可以帮助系统架构者更迅速、更可靠、更具重用性架构整个业务系统[3].

在ODS管理信息系统中大量运用了SOA和WCF中的服务契约和数据契约及端点等概念,包含业务逻辑层的数据传输、数据访问层的数据获取、服务层的数据交换和各类信息的管理.WCF同时提供了相当多数量的应用程序的基础功能模块,提高研发者的研发效率.基于WCF的ODS管理信息系统层次结构如图3所示.用户表示层通过访问WCF服务来获取所需要的数据,WCF服务层中设计服务契约、数据契约、安全控制等内容,用于转换来自业务逻辑层的数据,业务逻辑层包含了与核心业务相关的逻辑,负责处理来自数据访问层或发送给数据访问层的数据,数据访问层主要完成从数据库中获得数据操作[4-7].

图3 基于WCF的ODS管理信息系统层次结构Fig.3 Hierarchical diagram of ODS managementinformation system based on WCF

3 基于SOA和WCF的ODS系统实现

系统实现采用Visual Studio 2008及Microsoft SQL Server2005开发工具.基于SOA和WCF架构的系统开发内容一般分为服务器端发布服务和客户端调用服务两部分.具体开发流程如下:

1)服务端:创建WCF服务应用程序,定义服务契约、数据契约,以及实现服务契约.

2)服务宿主:建立应用程序,对WCF服务进行宿主,具体操作是在宿主程序中创建ServiceHost实例,向外发布端点,等待客户端通过端点访问服务.

3)客户端:客户端通过管理代理类与服务进行通信,通信通过通道进行,一旦代理程序被创建完成,客户端就可以访问端点上提供的服务操作.

3.1 项目结构

如图4所示,ODS_WCFService项目是WCF服务应用程序,作为服务端.ConsoleHost项目是控制台应用程序,用来宿主WCF服务.ODS_WebSite项目是ASP.NET网站,作为客户端.

图4 项目结构Fig.4 Program structure diagram

3.2 服务端设计

定义服务契约:

[ServiceContract]//声明服务契约

public interface IService1

{

[OperationContract]//声明操作契约

bool login(User user1);

[OperationContract]

DataSet Search(string sql,string tableName);

……

}

定义数据契约:

[DataContract]

public class User

{

string _ID; string _Name; string _Pwd; [DataMember] public string ID { get {return _ID;} set {_ID=value;} } [DataMember] public string Name { get {return _Name;} set {_Name=value;} } [DataMember] public string Pwd { get {return _Pwd;} set {_Pwd=value;} }

}

实现服务契约的类:

public class Service1: IService1

{

public bool login(User user1)

{

……

sql="select * from userinfo where username=′″+user1.Name+″′ and pwd=′″+user1.Pwd+′″;

OleDbDataReader dr=mycon.GetDataReader(sql);

dr.Read();

if (dr.HasRows)

{

return true;

}

else

{

return false;

}

}

public DataSet Search(string sql, string tableName)

{

……

sql="select displayid,businame,person,phone,city,hcfc141b,tca,cfc113,replacement,year,remark from cfcbusi where "+condition;

mycon.ExecuteProcedure(sql);

ds=mycon.GetDataSet(sql, "cleaningsresearch");

return ds;

}

}

3.3 服务宿主应用程序设计

在系统中使用控制台应用程序宿主WCF服务,宿主程序运行即发布服务.

static void Main(string[] args)

{

ServiceHost sh=null;

Uri tcpa=new Uri("net.tcp://localhost/tcpbinding");

sh=new ServiceHost(typeof(ODS_WCFService.Service1), tcpa);

NetTcpBinding tcpb=new NetTcpBinding();

ServiceMetadataBehavior mBehave=new ServiceMetadataBehavior();

sh.Description.Behaviors.Add(mBehave);

sh.AddServiceEndpoint(typeof(IMetadataExchange),

MetadataExchangeBindings.CreateMexTcpBinding(), "mex");

sh.AddServiceEndpoint(typeof(ODS_WCFService.IService1), tcpb, tcpa);

sh.Open();

Console.WriteLine("Service Running");

Console.Read();

}

3.4 客户端设计

本系统客户端采用ASP.NET网站开发.在客户端创建服务代理类,同时代理实例访问已发布的服务操作.具体方法:客户端检索WCF服务中的元数据,并使用这些元数据创建可以访问该服务的WCF代理.客户端应用程序会使用生成的代理创建WCF客户端对象.

配置WCF客户端包括指定客户端用于访问服务的端点,每个端点包含1个地址、1个绑定和1个契约.

bindingConfiguration="NetTcpBinding_IService1"

contract="TCP.IService1"

name="NetTcpBinding_IService1">

在创建并配置了代理类后,就可以创建客户端实例,并与WCF服务进行通信.

Service1Client client=new Service1Client();

DataSet ds=new DataSet();

ds=client.Search(sql,tableName);

ResultGridView.DataSource=ds;

ResultGridView.DataBind();

client.Close();

3.5 运行实例

ODS管理信息系统运行后,即可进入界面(图5),录入用户名、密码、验证码等关键信息登录系统.

登录之后,进入“泡沫生产和施工企业”检索页面(图6),该页面的列表信息是由各地区环保部门录入的,在该页面中进行数据整合,显示在列表中.

图5 系统登录窗口Fig.5 System login Window

图6 数据显示页面Fig.6 Data presentation window

4 结 论

SOA理念和WCF技术为系统设计提供了一种新的开发模式,开发人员可以根据需求,通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用,因此WCF成为分布式编程领域的一个里程碑式的技术.

ODS淘汰能力管理信息系统在构建异地上报、统计、分析ODS数据等业务需求上提供了技术支持,进一步加大了环保部门的监控力度,提高了ODS数据的透明性.本系统还将进一步巩固安全访问机制,向全社会发布ODS数据,使全民了解环保,支持环保,参与环保.

References)

[1] Cibraro P, Claeys K, Cozzolino F,et al. Professional WCF 4:Windows communication foundation with.NET 4[M].Wiley,2010.

[2] Klein S.Professional WCF programming:NET development with the Windows communication foundation[M].Wiley,2007.

[3] 毛晓岚. 基于SOA和WCF的远程审判系统设计与实现[J].科技通报,2011,27(1):114-119. Mao Xiaolan. Design and realization of remote trial system based on SOA and WCF[J].BulletinofScienceandTechnology, 2011,27(1):114-119.(in Chinese)

[4] 汤新昌,任志鹏,崔广才.基于WCF的公寓信息管理系统设计与实现[J].长春理工大学学报:自然科学版,2012,35(3):138-140. Tang Xinchang,Ren Zhipeng,Cui Guangcai. Design and realization of the dormitory information management system based on WCF model[J].JournalofChangchunUniversityofScienceandTechnology:NaturalScienceEdition,2012,35(3):138-140.(in Chinese)

[5] 严商,黄樟灿.WCF:Windows平台新一代通讯基础研究与分析[J].计算机与数字工程,2008,36(4):86-90. Yan Shang,Huang Zhangcan.WCF: new fundament of communication technology based on Windows platform[J].Computer&DigitalEngineering,2008,36(4):86-90(in Chinese)

[6] 周斌,茅维华.WCF在数字化校园建设中的应用[J].中山大学学报:自然科学版,2009,48(s1):335-337. Zhou Bin,Mao Weihua. Application of WCF in digital campus construction[J].ActaScientiarumNaturaliumUniversitatisSunyatseni,2009,48(s1):335-337.(in Chinese)

[7] 李文滔.基于WCF架构的应用开发研究[J].计算机时代,2011(2):19-21. Li Wentao. Research of application development based on WCF framework[J].ComputerEra,2011(2):19-21.(in Chinese)

(责任编辑:童天添)

ResearchofODSeliminationabilitymanagementinformationsystemsbasedonSOAandWCF

Cui Yanchun

(Institute of Computing & Software,Nanjing College of Information Technology, Nanjing Jiangsu 210023,China)

This paper is based on the research background of ozone-depleting substances (ODS) elimination ability management information systems for Jiangsu Province, discusses how to use SOA and WCF technology to realize ODS management information system. Partial function of the system is realized with WCF service application, and self-hosting adopted. Examples of typical operation are proposed with SOA concepts and WCF techniques.The result shows that,SOA concepts and WCF techniques are introduced to the design and implementation of ODS management information systems, software developers can distribute the task and cooperate better, development efficiency is improved, and difficulty of post-maintenance is decreased.

WCF;SOA;ODS; management information system

10.3969/j.issn.1673-4807.2014.04.014

2014-06-06

崔艳春(1981—),女,讲师,研究方向为软件工程.E-mail:284816337@qq.com

TP311.11

A

1673-4807(2014)04-0375-05

猜你喜欢
臭氧层端点宿主
非特征端点条件下PM函数的迭代根
病原体与自然宿主和人的生态关系
龟鳖类不可能是新冠病毒的中间宿主
不等式求解过程中端点的确定
臭氧层破洞每10年恢复1%到3%
参数型Marcinkiewicz积分算子及其交换子的加权端点估计
为什么要保护臭氧层
基丁能虽匹配延拓法LMD端点效应处理
表现为扁平苔藓样的慢性移植物抗宿主病一例
人乳头瘤病毒感染与宿主免疫机制