简介:在大伙房水库监测预警平台的开发过程中,为了节约开发时间并优化程序结构、提高运行效率,综合利用C#这种现代语言高效开发的特点和FORTRAN这种古老计算机语言描述工程算法准确、严谨的优势。本文讨论了FORTRAN和C#混合编程的特点,研究了C#与FORTRAN混合编程的实现方法。关键词FORTRAN;混合编程;工程计算;DLL中图分类号TP314文献标识码A文章编号1007-9599(2010)04-0000-01ImplementationofFORTRAN&C#MixingProgrammingagainstLargekitchenWarningPlatformDevelopmentShangTao,FuJinxiang,MaXingyuan,TangYulan(ShenyangArchitectureUniversity,Shenyang110168,China)AbstractDuringthedevelopmentoflargekitchenResMonitoringandWarningPlatform,inordertosavedevelopmenttimeandimproveoperationefficiency,usingC#LanguagewhichisthemoderncomputerlanguagealsohasthecharacteristicsofefficientdevelopmentandFORTRANLanguagewhichcanrigorousandaccuratedescriptionofengineeringalgorithmtogetherisnecessary.ThispaperhasdiscussedthecharacteristicsofmixingprogrammingwithC#andFORTRANlanguage.KeywordsFORTRAN;Mixingprogramming;Engineeringcalculation;DLL一、FORTRAN与C#语言的发展及优势以大伙房水库监测预警平台的开发为例。平台需要采用大量先进的计算机编程技术,应用大规模数据库,提供可靠的安全保障,优秀的网络访问能力。这就需要构建平台的编程语言能完整简洁地支持当今最新的编程技术。C#语言就是这样一种语言,作为微软首推的编程语言,C#几乎支持所有最新的编程技术提供了极高的开发效率5。但是该平台又有着显著的工程计算软件的特点,需要严谨的科学计算语言对算法进行描述,同时有许多经过多年工程实践积累的工程计算代码可以被重用。FORTRAN语言最早被应用在工程开发之中,同时在FORTRAN语言50多年的发展中,积累了大量的优秀正确的代码。所以研究C#语言与FORTRAN的混合编程在该项目中的开发中有着重要的意义。(一)FORTRAN语言的发展及优势FORTRAN在数值计算领域有其独有的优势,首先它是最早的高级语言,有大量优秀正确可靠的源代码可以使用,如果能充分利用FORTRAN源代码可以大量节约工程软件设计开发的时间。FORTRAN语言有更为严格的语法,支持直接对数组和复数进行计算,非常适合严谨的科学计算领域1-3。(二)C#语言的发展及优势微软在推出.NETFramework第一版时推出的新语言C#,派生于C的简洁语法,继承了C++语言的灵活性,并且支持快速开发,随着C#3.0版本的发布,C#作为微软公司建议的开发语言,已经受到越来越多的程序开发人员的青睐5。二、FORTRAN与C#混合编程的方法(一)命名约定的一致由于C#语言是严格区分大小写的,而FORTRAN在默认情况下不区分大小写,如果不解决命名一致问题就会导致链接失败。FORTRAN的缺省方式是使符号名在OBJ文件中变成大写,在C#中调用一个缺省的子例程时用一个纯大写的名称生成调用就可以成功publicstaticexternvoidDLLTEST;(二)参数传递一致因为C#默认是值传递,而FORTRAN默认是引用传递。我们在参数传递中必须保持传递的一致性。简单的方法是使用C#的关键字ref,将C#的参数传递类型定义为引用类型publicstaticexternvoidDLLTEST(refinta,refintb);(三)数组参数传递在传递数组参数时,需要周全地考虑行和列的储存位置对调的问题5。还应注意,C#的数组下标从0开始,而FORTRAN的数组下标默认从1开始。如在C#中定义数组A34,共20个元素;同样的定义A(3,4)在FORTRAN中共12个元素1-3。并且进行数组传递还要注意,只需要传递数组的首地址即可,DLL需要的是数组的起始位置。三、FORTRAN与C#混合编程的实现下面试写水库监测预警平台中一个模型计算程序来说明FORTRAN和C#在混合编程的实际应用。启动VisualStudio,选择IntelVisualFortranLibrary中的Dynamic-linkLibrary,并给项目命名。新建“FortranFile”项,并给文件命名。然后在该文件中书写算法代码。编译完成后,在该项目的debug子目录下找到生成的dll文件。新建VisualC#Windows窗体应用程序。并给项目命名,将生成的dll文件拷贝到新项目的debug目录下。在进行连接之前需要在C#中增加对动态链接库操作的类的引用usingSystem.Windows.Forms;usingSystem.Windows.InteropServices;声明外部函数的部分代码publicpartialclassForm1Form{DllImport("dlltest.dll")publicstaticexternvoidFORDLL(reffloatV,reffloatQIN,reffloatBOD,...);...之后就可以对FORTRAN编写的外部函数进行调用,得到正确的结果。四、结论经过本文的讨论,可以看到运用FORTRAN与C#混合编程可以容易地实现。平台的代码极大的缩短,并且可以方便地重用FORTRAN语言的优秀代码,大大缩短开发时间,并且提高程序的执行效率。参考文献1司岩,周福才.FORTRAN程序设计基础J.大连理工大学出版社,1996,52刘卫国,蔡旭辉.FORTRAN90程序设计教程J.人民邮电大学出版社,2003,23张晓霞,田秀萍.Fortran90程序设计教程J.兵器工业出版社,2005,104Nagel.C等著.黄静译.C#高级编程J.清华大学出版社,2008,105周涛,郭占元,郭向荣.Fortran与C#混合编程在土木工程计算中的应用J.中南大学,2009,3
简介:云计算是分布式计算技术的一种,通过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统经搜寻、计算分析之后将处理结果回传给用户。本文简要探讨在云计算时代存在的信息安全问题及解决这些问题的方法。关键词云计算;安全风险SecurityRisks&SolutionsinCloudComputingEraChenXin(JiangsuHighwayManagementCentre,Nanjing211300,China)AbstractCloudcomputingisadistributedcomputingtechnology,networkcomputingwillbeahugeprogramautomaticallysplitintonumeroussmallsubroutine,andthenhandedovertomultipleserversthroughanextensivesystemsearch,calculationandanalysisafterthetreatmentresultsbacktotheuser.Inthispaper,SecurityRisks&SolutionsinCloudComputingErawasInvestigated.KeywordsCloudcomputing;Securityrisk一、云计算的定义与现状云计算是并行计算、分布式计算和网格计算的发展实现。目前云计算的产业分三层云软件、云平台、云设备。上层分级云软件提供各式各样的软件服务。参与者世界各地的软件开发者;中层分级云平台程序开发平台与操作系统平台。参与者Google、微软、苹果;下层分级云设备集成基础设备。参与者IBM、戴尔、惠普、亚马逊。二、云计算的重要特点(一)超大规模。“云计算管理系统”具有相当的规模,Google的云计算已经拥有100多万台服务器,Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务器。“云”能赋予用户前所未有的计算能力。(二)虚拟化。云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。(三)高可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。(四)通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。(五)高可扩展性。“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。(六)廉价。由于“云”的特殊容错措施可以采用极其廉价的节点来构成云,因此用户可以充分享受“云”的低成本优势。三、云计算存在的信息安全作为一项可以大幅降低成本的新兴技术,云计算已受到众多企业的追捧。然而,云计算所带来的安全问题也应该引起我们足够的重视。云计算使公司可以把计算处理工作的一部分外包出去,公司可以通过互联网来访问计算基础设施。但同时,数据却是一个公司最重要的财富,云计算中的数据对于数据所有者以外的其他用户云计算用户是保密的,但是对于提供云计算的商业机构而言确实毫无秘密可言。随着基于云计算的服务日益发展,云计算服务存在由多家服务商共同承担的现象。这样一来,公司的机密文件将经过层层传递,安全风险巨大。总的说来,由云计算带来的信息安全问题有以下几个方面(一)特权用户的接入在公司外的场所处理敏感信息可能会带来风险,因为这将绕过企业IT部门对这些信息“物理、逻辑和人工的控制”。(二)可审查性用户对自己数据的完整性和安全性负有最终的责任。传统服务提供商需要通过外部审计和安全认证,但一些云计算提供商却拒绝接受这样的审查。(三)数据位置在使用云计算服务时,用户并不清楚自己的数据储存在哪里,用户甚至都不知道数据位于哪个国家。用户应当询问服务提供商数据是否存储在专门管辖的位置,以及他们是否遵循当地的隐私协议。(四)数据隔离用户应当了解云计算提供商是否将一些数据与另一些隔离开,以及加密服务是否是由专家设计并测试的。如果加密系统出现问题,那么所有数据都将不能再使用。(五)数据恢复就算用户不知道数据存储的位置,云计算提供商也应当告诉用户在发生灾难时,用户数据和服务将会面临什么样的情况。任何没有经过备份的数据和应用程序都将出现问题。用户需要询问服务提供商是否有能力恢复数据,以及需要多长时间。四、云计算中确保信息安全的具体方法(一)对保存文件进行加密加密技术可以对文件进行加密,那样只有密码才能解密。加密让你可以保护数据,哪怕是数据上传到别人在远处的数据中心时。PGP或者对应的开源产品TrueCrypt等程序都提供了足够强大的加密功能。(二)对电子邮件进行加密为了确保邮件安全,使用Hushmail或者Mutemail之类的程序,对收发的所有邮件进行加密。(三)使用信誉良好的服务建议使用名气大的服务商,它们不大可能拿自己的名牌来冒险,不会任由数据泄密事件发生,也不会与营销商共享数据。(四)考虑商业模式在设法确定哪些互联网应用值得信任时,应当考虑它们打算如何盈利。收取费用的互联网应用服务可能比得到广告资助的那些服务来得安全。广告给互联网应用提供商带来了经济上的刺激,从而收集详细的用户资料用于针对性的网上广告,因而用户资料有可能落入不法分子的手里。(五)使用过滤器Vontu、Websense和Vericept等公司提供一种系统,目的在于监视哪些数据离开了你的网络,从而自动阻止敏感数据。比方说,社会保障号码具有独特的数位排列方式。还可以对这类系统进行配置,以便一家公司里面的不同用户在导出数据方面享有不同程度的自由。参考文献1MICHAELMILLER.云计算,2009,72芬加.云计算新版,2009,113张为民,唐剑峰.云计算深刻改变未来,2009,10