您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > Sophic国际版调研报告及方案论证
基于Unicode编码的EMS国际版开发姜彬(南瑞继保电气有限公司江苏南京市江宁区苏源大道69号211102)InternationalizationResearchOfEnergyManagementSystemJiangbin(NanjingNari-RelaysElectricCo.,LTD.69SuyuanAvenue,Jiangning,Nanjing211102)ABSTRACT:WiththedevelopmentofEMStechnologyandtherequirementofinternationalcompetition,energymanagermentsystemshouldbeusednotonlyindifferentlanguages,butalsoindifferentinputtechniques,characterencodingsandpresentationconventions.Baseofanalysisforframeworkofems,thispaperisattemptedtointroduceprincipleofinternationalizationanddescribethecompletedesignofarchitecture,components,modules,interfaces,anddataforemsinternationalization.KEYWORD:EnergymanagementSystemInternationalizationUnicodeEncoding摘要:随着我国电网调度自动化技术发展,开拓国际市场的要求也越来越迫切,这就需要能量管理系统能够适用各种字符集和语言环境,满足不同国家和地区用户的本地化使用需求。本文从能量管理系统的架构出发,分析了国际版开发的基础,提出了开发的目标、内容和总体思路,并通过国际工程项目的应用验证了设计思路是切实可行的。关键词:EMS系统国际化Unicode编码1引言目前,我国软件产业继续呈快速增长态势,产业规模继续扩大,软件出口平稳增长,产业结构与布局不断调整,成为信息产业增长的重要力量,并在促进信息化发展中发挥了积极作用。随着软件产业的快速发展,产业规模、产品结构、研发水平和人员构成都得到了进一步调整,市场不断向大企业集中,产品不断向服务型转化,技术不断向国际前沿推进。从电力系统二次自动化产品看,国内几大电力系统设备生产商实力雄厚、技术先进、产品实用可靠,有实力参加国际竞争,例如,南瑞继保电气有限公司的控制保护、变电站监控设备已经大量出口到国际市场,据权威统计看,南瑞继保已经成为全球销售额排名第三的控制保护生产商。作为二次自动化的高端产品能量管理系统(简称EMS),属于应用软件产品,所涉及的专业多,系统架构复杂,数据规模庞大,开发一套成熟的EMS系统需要几百人年。目前国际市场被ABB、西门子和GE等国际大公司所垄断。国内EMS厂家经历了消化吸收、仿制、创新等近30年的探索和奋斗,已经在技术创新、研发管理、市场营销和产品服务方面基本和世界接轨,具备了参与国际竞争的能力,2008年南瑞继保PCS-9000一举中标刚果布国调也证明了这一点。软件产品参与国际竞争,这与在本国使用有很大区别,除了具体应用功能、指标参数等不同外,有一个重要方面就是应用软件的本地化。不同地区的用户有不同的使用习惯和环境,如字符集,货币,时间日期,文本等。本文重点考虑能量管理系统的国际化开发,就是要让EMS软件能够适合多种字符集、语言环境,适用于多种不同地区的需求。1EMS系统的架构分析能量管理系统是电力系统监视和控制的硬件和软件的总和,包括数采和控制,自动发电与经济调度,系统状态估计与安全分析,调度培训系统等模块。国内几家EMS系统架构类似,以PCS-9000能量管理系统为例,整个系统从下至上分成五层,依次为硬件层、操作系统层、通用中间层、统一应用支撑平台层和基于该平台一体化设计开发的全系列电力系统应用。硬件层有基于RISC架构和X86架构的各类主机,如IBMP5系列、SUNSPARC序列、HP安腾序列和PC系列服务器或工作站。操作系统层有IBMAIX、SUNSolaris、HPUNIX、WindowsServer和WindowsXP。通用中间层屏蔽了各种操作系统的差异、实现了平台层和应用层对下统一的系统调用。从EMS的架构分析,操作系统层中涉及的各操作系统Tru64UNIX、IBMAIX、SUNSolaris、HPUNIX、LINUX和Windows等都有完善的国际版,通用中间件主要由Qt和ACE组成,ACE是屏蔽了各操作系统差异可供用户进行系统调用的动态函数库,Qt作为跨平台的图形开发环境,在国际版开发上有成熟的思路和工具,所以EMS国际版开发就是在统一支撑平台层和应用层上,根据应用需要,基于ACE和Qt的国际版的工具和函数库,设计整个能量管理系统的国际版功能。2国际版开发基础2.1常见字符集及编码方式ASCII最初的计算机字符集。定义了英文字母及符号,编码由一个字节组成,高位为零,可以有127个码位,范围为0x00-0x7F。Unicode由国际标准化组织和Unicode组织创立的世界单一字符集。可以称之为ISO10646或者Unicode标准,实际上两个标准是独立的。两者在多语言面是完全一致的,每个字符在两个标准中的编码位置是一致的,不同的是,Unicode为了印刷而额外定义了一些符号,并且含有一些文字处理算法,而ISO10646不过是一个简单的字符集。一般我们将其统称为Unicode。Unicode或ISO10646可以有多种编码方式,常见的有两种:UTF-16或UCS-2固定的2字节编码方式,ASCII字符被扩展为两个字节,增加了一个高位字节,其高位字节被编码为‘00’。常见于windows平台。存在高字节在前或者在后的问题及大小头问题。UTF-8可变字节编码方式,兼容ASCII,ASCII被编码为一个字节。汉字多被编码为3个字节。第一个字节高位的1的数量代表这个字符的字节数量,由于是单字符多字节流(multi-octetstream),因此不存在大小头问题,一定是高字节在前。GB2312国标中文字符集,编码方式兼容ASCII,双字节编码高位和地位的第一个bit均为1,这样可以和ASCII混合使用。2.2操作系统对字符集的支持Unix、Linux由于历史原因,对ucs-2或utf16支持不好,这些编码的字符串会包含一些特殊的字符,比如'\0'或'/',它们在文件名和其他C库函数参数里都有特别的含义。另外,大多数使用ASCII文件的UNIX下的工具,如果不进行重大修改是无法读取16位的字符的.基于这些原因,在文件名,文本文件,环境变量等地方,UCS-2不适合作为Unicode的外部编码。因此,在Unix操作系统上,一般采用uft-8来支持Unicode。Windows微软从windows2000开始在内核层增加了对于Unicode的支持,所有的系统调用和API都有两个版本,一个用于支持ASCII和多字节编码,一个用来支持双字节的ucs-2编码方式。需要注意的是,当微软提到Unicode的时候,就是指ucs-2编码。windows操作系统只支持对文件名采用ucs-2编码,不支持utf-8。Unix、Linux和Windows均支持多种字符集,但是对于Unicode即ISO10646字符集,采取了两种不同的编码方式进行支持。2.3Qt的国际化开发支持目前,许多EMS系统是基于Qt类库开发的,实现了跨平台功能,Qt本身提供了国际化支持,完全支持Unicode,一个国际标准的字符集。开发者可以自由地混合使用被Unicode字符集支持的语言,例如阿拉伯文,英文,中文,希伯来文,日文和俄文等。为了有助于将产品推向国际市场,Qt还提供了将应用翻译成支持多种语言环境的工具。主要通过以下方法完成:Qt提供了相应的工具和函数用于帮助开发者以本地语言推出应用。要使一个字符串可以被翻译,只需要把这个字符串作为一个参数放到tr()函数中调用。Qt提供了3种工具帮助人们建立译文存储文件(.qm文件),这3个工具是lupdate,QtLinguist和lrelease。Qt可以将程序中所用的字符串提取出来,生成一个ts文件,然后我们将ts文件中的字符串翻译后,发布为一个qm文件,在程序初始化时载入,就可以实现大部分文本的翻译和替换工作。开发者使用QtLinguist工具提供的良好的人机界面打开一个.ts文件(翻译源文件),然后开发者根据每一个sourcetext填写上相对应的译文,这样一个.ts文件(翻译源文件)就包含了完整的“Context”,“sourcetext”和译文信息。最后通过运行lrelease去把一个.ts文件(翻译源文件)压缩为一个.qm文件,生成的.qm文件可用在执行程序上。3国际版开发设计3.1开发目标国际版开发是为了让我们的能量管理系统更好地参与国际竞争,在满足客户性能指标的情况下,支持各国、各地区的用户用他们习惯的语言和方式使用我们的产品,为此,需要考虑如下需求:多平台的需求。windows与Unix对于编码方式及字符集支持的不同,而我们的系统会同时运行在多个操作系统上,需要解决windows和Unix的兼容问题。系统原有模块的兼容性。程序中大量使用了ANSI编码的字符串,应保证原先程序的兼容性与可重用性,以最小的修正代价达到最好的效果。翻译文件的管理。很多模块有公用的词汇与短语,如何提炼与维护这些词汇,减小工作量,并且将这些资料整理出来供其它项目组使用。应用无关性。应用不需要关心当前的locale和字符集,这对自动化系统的具体业务逻辑,应该是透明的,在切换语言环境时,对产品的具体业务逻辑应该没有任何影响。配置文件的归类关联。原配置文件是用写二进制的方法写入磁盘,如果系统环境变更,读出可能会有错误,并且最好可以将配置信息统一化,使得多种语言环境下,我们的配置信息可以通用。快速切换当前程序界面及locale设置,重新格式化输出。系统应该可以动态修改位置信息,切换语言环境,并按照当前位置格式化时间,日期等信息。系统的可扩展性。作为国际版应用程序,在未来会增加其它语言的支持,如何在不修改程序的情况下加入新的字符集和编码方式。支持混合语言集的模式。能量管理系统有多个节点构成,每个节点上需要支持不同的语言集,所以整个系统能支持混合的语言集模式。3.2开发内容根据系统运行和国际化的需求,我们将国际化分为三个相对独立的层次:界面层软件界面的语言,这里面包括界面上的文字字符串以及包含文字的图片,这个层次应该可以随时切换和修改,不受系统当前locale的影响。表示层不同的国家,不同的区域,由于文化和习惯的不同,对于信息的表示方法是不一样的。比如时间的顺序,货币的单位,数字是用逗号作小数点还是用点号做小数点,文本是从右到左还是从左到右,在不同语言下,同样的信息显示的宽度是不是一样甚至考虑将一些运行信息翻译为另一种语言呈现。数据层这一层是最终的运行数据和信息。包括系统的运行实时数据库,使用的商用库,系统本身的配置和设置信息,用户的输入等方面。在数据层我们需要考虑以下问题:实时数据库采取什么样的编码方式商用库采取什么样的字符集系统配置信息的存储如何转化用户的输入,例如,如何将当前输入的文本转化成数据并验证合法性等等。3.3国际化开发总体方案开发流程如下:通过在应用模块中增加语言环境初始化,设置国际化环境,读取该模块的语言文件配置,载入语言文件,设置字符集与编码方式,在本地语言集下运行。系统应用模块国际化接口启动语言环境初始化国际化API设置国际化环境返回选择载入语言文件设置字符集与编码方式设置程序运行locale读取该模块的语言文件配置设立国际化模块,用于提供国际化服务,封装和屏蔽各种字符集与编码方式的解析与转换,格式化各种数据。将与国际化相关的工作从应用中剥离出来。在新增一个新的语
本文标题:Sophic国际版调研报告及方案论证
链接地址:https://www.777doc.com/doc-2849974 .html