一种集成web技术的CFD程序开发方法
【技术领域】
[0001]本发明涉及计算机软件应用和计算流体力学领域,具体地说是一种集成web技术的CFD程序开发方法。
【背景技术】
[0002]计算流体力学(Computat1nal Fluid Dynamics, CFD)早期发展源于航空航天领域的需求。随着计算机技术的迅猛发展和CFD技术的日益成熟,CFD在航空航天、船舶舰艇、气象、石油勘探、汽车外形设计等工业应用领域发挥着越来越重要的作用。
[0003]CFD技术可以配合或者取代部分实验(如风洞实验、发动机测试),以减少实验次数和测试时间,达到节省实验经费的目的。
[0004]同时CFD在流体的流动细节分析、流场机理研宄、扩大流动参数范围等许多方面能够弥补物理实验的不足,为工业制造提供直接可用的信息,从而提高工业设计的精细化水平。
[0005]为了发挥CFD的优势并使其在实际应用中起到应有的效果,高性能高可靠的CFD程序是必不可少的前提条件。
[0006]出于性能考虑,CFD程序主要使用C/C++/FORTRAN等高性能的编译型编程语言开发。使用这些编程语言开发的程序执行高效,但开发和调试周期长。许多CFD研宄人员开发的程序只实现了核心功能,并且是通过命令行(Command Line Interface, CLI)方式运行的程序。CLI程序性能较好,却对用户不够友好:用户需要熟练掌握其命令用法才能顺利运行程序。而开发出对用户友好的用户界面(Graphical User Interface,⑶I) 一般不是CFD研宄人员擅长的技能。
[0007]开发出集成传统GUI界面的CFD程序需要大量额外的工作和代码,并且开发GUI一般还依赖于操作系统,存在移植性的问题。
[0008]随着互联网的兴起,其互通互联和移动便捷的特性不仅深刻地影响了人们生活和工作等方面,还使得编程领域的思维和方向发生了重大变化:跨平台的编程语言和web开发语言蓬勃发展。例如Java,C#等跨平台编程语言,PHP, JavaScript,Python等web开发脚本语言越来越受到开发人员的青睐。虽然牺牲了一些性能,但这些语言基本上有着“一次编写,随处运行”的特性,能够快速上手,并且开发和调试十分便利。
[0009]结合HTML、CSS、JavaScript等web前端技术和PHP等web后端技术开发的应用有着天然跨平台和自带图形用户界面(GUI)的特点:web技术的展现基于浏览器,跨平台问题由浏览器负责,减轻了开发人员的负担;并且浏览器界面上元素都是可视的,用户可以通过鼠标点击或者触摸完成操作;
[0010]互联网随处可访问的特点加上使用相关技术开发的web平台,用户通过浏览器即可完成对后台服务程序管理,无需再通过传统终端连到服务器。
[0011]为了让CFD程序开发充分利用如今蓬勃发展的web技术上的优势和开发上的便捷性,亟需一种集成web技术的CFD程序开发方法。
【发明内容】
[0012]为了解决上述技术问题,本发明提出了一种集成web技术的CFD程序开发方法。该方法的技术任务是解决开发集成GUI界面的CFD程序缓慢和困难的问题,提供一种集成web技术的CFD程序快速开发方法。
[0013]本发明的技术方案实施过程如下:
[0014]步骤一:开发人员依据算法理论和功能需求,开发CFD程序的核心功能。这里核心功能主要指CFD程序的计算功能,而无需开发用于图形操作的用户界面;
[0015]步骤二:将CFD程序部署到服务器,确保其能在服务器上正常运行。由于开发机的软硬件环境和部署的服务器可能存在差异,所以采取从源代码编译的方式部署,使编译的程序更适应服务器的软硬件,以提高程序性能和计算效率;
[0016]步骤三:根据业务需求开发web界面,将CFD程序的接口以页面元素的形式向用户展示,用户能够通过可视化的web界面元素明白操作及其意义;
[0017]步骤四:开发web后台响应用户的操作请求。与CFD程序执行相关的操作,需要根据CFD接口与之对接,并将处理结果反馈给用户;
[0018]步骤五:部署web服务器。部署web服务器包括:
[0019]I)根据web开发平台技术,选择合适的web端服务程序。例如用PHP作为web后端的开发语言,可以使用nginx+php-fpm的组合;
[0020]2)根据安全性和访问控制要求,配置web服务端口、防火墙以及可信请求来源等安全设置;
[0021]3)配置web服务进程的权限,使其能正常调用部署好的CFD程序;确保程序执行所需的资源都能够正常获取;
[0022]4)完善web平台的授权和安全机制,确保用户的操作均在授权下完成,避免服务器资源被恶意用户窃取或者恶意用户绕开安全机制威胁服务器的安全稳定运行;
[0023]5)与CFD程序进行联调测试,确保功能正常可用、程序按照开发预期运行。
[0024]步骤六:部署系统上线,向授权用户开放;用户经过授权后可在web端查看和管理CFD任务,并通过web端下载执行结果。
[0025]本发明与现有技术手段相比所产生的有益效果是:
[0026]1.本发明将CFD核心功能的开发与GUI界面的开发剥离,让开发人员专注于各自擅长的领域,提高程序的性能;
[0027]2.本发明充分利用web技术带来的开发和调试便捷性,能够迅速开发出对用户友好的GUI界面,提尚用户体验;
[0028]3.本发明提供的集成web技术的CFD程序开发方法开发所得到的界面具有天然的跨平台特性:用户只需要浏览器即可访问,与操作系统无关;
[0029]4.本发明缩短了 CFD程序的GUI开发周期和bug调试时间,降低开发难度和成本,减轻了程序开发人员的负担;
[0030]5.本发明提供的方法充分利用互联网的优势,让用户对CFD的管理和操作不再局限于PC平台,也可以在移动端使用和操作;
[0031]6.本发明提供的一种集成web技术的CFD程序开发方法实用性强,易于推广。
【附图说明】
[0032]图1是本发明的集成web技术的CFD程序开发流程图;
[0033]图2是用户新建CFD程序任务的web界面图;
[0034]图3是用户管理和查看CFD任务的web界面图。
【具体实施方式】
[0035]下面将结合本发明实施例中的附图,对本发明实施例中的方法进行清楚、完整的描述。所描述的实施例仅是本发明的一部分实施例,而不是全部。基于本发明中的实施例,本领域技术人员在没有做出创造性工作的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036]如附图1所示,本发明提供的一种集成web技术的CFD程序开发方法首先让CFD开发人员开发CFD程序的核心功能和模块,然后将CFD程序部署到服务器端使其正常提供服务。与此同时,开发人员根据设计和需求开发web用户界面,之后
开发web后台对接CFD程序。web后台开发过程中需要根据CFD程序的接口与之对接和调用。开发完成后进行系统联调测试,以保证web程序和CFD程序功能正常,耦合系统按照设计预期执行。联调测试完成后,部署系统上线,向授权的用户开放,提供基于web的CFD执行和管理等服务。本发明充分利用了 web技术的跨平台和开发便捷性,能够快速高效地开发出集成对用户友好GUI界面的CR)程序。
[0037]—种集成web技术的CFD程序开发方法的具体操作过程为:
[0038]1、CFD开发人员开发CFD程序的核心功能。在本实施例中,CFD程序的功能是使用波前法(Advancing Front Technique,AFT)生成二维非结构网格。开发的程序为CLI应用,用户可在命令行下输入参数,然后程序读取初始数据,产生非结构网格并输出到文件等。
[0039]2、将CFD程序部署到服务器。为了提高CFD程序性能,先将源代码的方式部署到服务器,针对服务器的软硬件进行优化编译然后部署CFD程序的可执行文件。
[0040]3、开发web界面。为了让用户有良好的使用体验,开发出的web界面元素其配色以柔和色调为主。web用户界面上的元素直观易懂,用户无需专业培训即可明白其含义。本实施例开发出的web界面如附图2、附图3所示。
[0041]4、开发web后台,监听和响应用户的操作请求并予以反馈。涉及到CFD程序管理的功能需要参照CFD程序的接口与其对接。在本实施例中,我们采用PHP开发web后台,并结合MySQL数据库和shell脚本对用户的CFD任务进行维护和管理。
[0042]5、部署web服务器。本步骤主要是配置服务的可用性和访问性,同时加强安全防范。本实施例中,我们采用开源的nginx作为web平台的服务器,同时开启iptables、SELinux以及配置https等,做好安全访问控制。
[0043]6、向用户发布服务,授权用户访问web平台并对CFD程序进行管理和调用。通过web平台,用户可以查看和执行CFD任务,无需再使用shell终端连接到服务器。
[0044]由本发明的技术方案可见,本发明充分利用web技术,结合为CFD程序开发GUI界面的需求,给出了一种集成web技术的CFD程序开发方法。该方法学习成本低,执行效率高,在开发过程中能够做到快速开发。
[0045]以上所述仅为本发明的实施例,凡在本发明及所附权利要求的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种集成Web技术的CFD程序开发方法,其特征在于,所述方法具体包括以下步骤: 步骤一:开发人员根据算法和需求,开发CFD程序的核心功能; 步骤二:将CFD程序部署到服务器,确保其能正常运行; 步骤三:根据需求开发web用户界面; 步骤四:开发web后台,基于接口调用CFD程序; 步骤五:部署web服务器,与CFD程序进行联调测试,保证耦合系统的正确运行; 步骤六:系统上线,向授权用户开放;用户在web端查看和管理CFD任务,并通过web端下载执行结果等。2.根据权利要求1所述的一种集成web技术的CFD程序开发方法,其特征在于:所述步骤一的详细过程为:CFD程序开发人员依据算法理论和需求,开发CFD程序的核心功能和核心模块;此过程中无需开发⑶I界面,程序可通过CLI方式正确运行即可。3.根据权利要求1所述的一种集成web技术的CFD程序开发方法,其特征在于:所述步骤二的详细过程为:将CFD程序代码部署到服务器,针对服务器的软硬件环境进行优化编译并部署,保证其可用性。4.根据权利要求1所述的一种集成web技术的CFD程序开发方法,其特征在于:所述步骤三中,需要采用web技术来开发界面。常用的web前端开发编程语言包括HTML,CSS和JavaScript等;web后端开发需要根据CFD程序的接口实现对CFD程序的调用和管理。后端开发编程语言包括PHP和shell等。5.根据权利要求1所述的一种集成web技术的CFD程序开发方法,其特征在于:所述步骤五的详细过程为:选择合适的软件作为web端的CGI程序,例如流行的开源软件apachehttpd或者nginx ;配置服务器的防火墙和网关,对系统进行访问安全控制;配置程序相应的权限,确保运行所需的资源均能正常获取。6.根据权利要求1所述的一种集成web技术的CFD程序开发方法,其特征在于:所述步骤六中,用户在web界面上可以进行以下操作: A)查看和删除历史任务记录; B)新增CFD程序运行任务; C)终止正在运行的任务或者删除尚未启动的任务; D)查看任务运行日志,下载任务的运行结果。 E)查看系统发送的CFD运行消息,设置提醒的方式(如程序运行完毕后邮件提醒)。7.根据权利要求1所述的一种集成web技术的CFD程序开发方法,其特征在于:所述方法将CFD开发与界面开发的职责清晰地剥离,并采用web技术开发⑶I界面。该方法将CFD程序作为服务端应用,结合互联网技术大幅减少开发传统GUI界面的工作量。所述方法采用了 C/S的思想,将传统的⑶I界面移到了可敏捷开发的web端。8.根据权利要求1所述的一种集成web技术的CFD程序开发方法,其特征在于:将web技术引入到了 CFD程序的开发和使用环节,提高了开发效率和用户使用体验。9.根据权利要求1所述的一种集成web技术的CFD程序开发方法,其特征在于:CFD程序应部署在web服务进程所能访问和调用的服务器上;由于web的随处可访问性,暴露给用户的web端需加强授权管理和安全访问控制,防止未授权用户窃取计算资源,或者绕过系统安全机制威胁系统的正常运行。10.根据权利要求1所述的一种集成web技术的CFD程序开发方法,其特征在于:用户通过web平台授权认证后,使用浏览器实现对CFD程序的管理,并执行新建、查看CFD任务或者下载运行结果等操作。
【专利摘要】本发明提供一种集成web技术的CFD程序开发方法,涉及CFD程序的开发部署以及web技术的集成:CFD开发人员根据算法和需求开发核心功能,然后部署CFD程序到服务器;web开发人员开发web前端用户界面,并在后台与CFD程序对接。CFD程序与web平台联调测试完毕后部署上线,开放给授权用户使用。与现有的技术相比,本发明的优势在于:1).将CFD核心功能开发与GUI界面开发剥离,使开发人员专注于擅长的领域;2).引入web技术开发前端用户界面,极大加快GUI界面的开发,同时具有跨平台的特性;3).极大的扩充了CFD程序的可访问性,用户可通过互联网执行和管理CFD程序,并获取执行结果。本发明能够充分利用web技术带来的开发便捷性,快速开发出对用户友好的界面,实用性强,易于推广。
【IPC分类】G06F9/44
【公开号】CN104899020
【申请号】CN201510223696
【发明人】刘铁钢, 何晓峰, 赵越, 唐绍婷
【申请人】北京航空航天大学
【公开日】2015年9月9日
【申请日】2015年5月5日