基于Fortran组件的Web计算应用平台构建研究

时间:2022-10-27 02:42:08

基于Fortran组件的Web计算应用平台构建研究

摘要:基于组件的应用服务平台通过混合语言编程及松散数据耦合机制,能充分发挥数据存储、数据处理及数据展示的特性,具有良好的开放性能,也是Web应用服务平台构建发展的主流方向。本文结合项目开发实际,对基于Fortran核心计算组件的Web应用服务平台的体系结构、组件设计、数据耦合等方面设计思想进行了系统介绍,并对组件编译与数据耦合等关键技术实现思路进行详细论述,具有良好的实际应用价值,以期对同类开发具有一定的借鉴作用。

关键词: Web计算; 应用平台; 组件; 动态链接库

中图分类号: TP391

文献标志码: A

文章编号: 2095-2163(2016)06-0065-03

0引言

作为一种新兴的网络计算方式,基于网络浏览器的Web计算(Web Computing)是对分布式计算的一种延伸与拓展,而正因其划时代性的出现才使得分布式计算最终延展到Internet之上,由此则成为现代Web计算的发生与演变基础。成千上万的个人计算机通过该款技术模式达到互通互访,以提供高效且廉价的计算。然而,在大型软件的生命过程中,新需求必将不断涌现,甚至某些需求还会对原系统造成重大冲击。如何解决这些大型软件设计和开发过程的通用难题,长期以来就始终作为系统设计的重点与焦点而倍受各方瞩目。针对这些问题,在系统的设计中,研究表明可以采用软件分层设计策略,并且逐步实现从组件化过渡到服务化。具体地,组件服务就是软组件对象模型(COM)和事务服务器(MTS)的智能升级新进展。组件服务能够开发执行许多原来必须由开发人员通过编程处理的资源管理任务,例如,线程安全和分配,通过提供线程池、对象池和运行时对象激活,就可以自动地使应用程序具有更好的可伸缩性。COM+还通过提供对事务的支持,甚至是跨越网络中多个数据库的事务,来成功保证数据的完整性。

Fortran在由IBM公司设计规划之初,即是以科学计算为目的,同时也全面考虑到了针对科学计算而进行优化,也就是只要对于一个具体问题的数学求解过程构建形成了明晰的概念,再将其交由Fortran语言调制运行就已具备了高度现实可行性。大量的经验证明了,无论是运用经典的串行机还是并行矢量机,在执行同一个科学计算任务时,Fortran代码都表现出了最高的运行速度和运行效率,基于此,本文结合项目实际,研究拟将Fortran计算优势与现行Web服务平台结合,以提供更加广泛而快捷的Web计算,并在计算最优化与应用最大化间寻找最佳平衡,其研究成果必将具备可观应用价值与一定借鉴意义。

[JP3][BT4]1基于Fortran组件的Web计算服务体系构建流程[JP]

基于Fortran组件的Web计算服务应用体系结构采用了“三层两接口模式”,主要包括:计算数据层、计算组件层和Web计算应用层及数据访问接口、组件访问接口。整体结构设计如图1所示。

由图1可见,Web计算服务体系结构由下至上3个层级的对应实现功能可做如下阐释分析:

1)计算数据层。数据是计算服务的基础。通过引进数据库及文件方式进行数据的存储,一般在服务器上采用集中或群集模式设计存储;

2)计算组件层。采用组件技术,协同数据计算与处理功能进行封装,并形成组件库;

3)Web计算应用层。获取计算组件层的数据计算与处理结果,通过合适的方式进行描述表示,并提供用户与计算机间的交互,将用户的信息反馈给计算组件层实现交互处理。

在此基础上,探讨可得平台数据计算处理流程分述如下:

1)用户通过B/S模式向Web计算应用层的应用程序提交计算申请;

2)Web计算应用层将数据规范化,并通过组件访问接口传入到计算控件库;

3)计算组件层中的功能函数根据数据计算或处理的功能需求,通过数据访问接口,从计算数据层中提取数据,再利用本身的数据处理功能完成数据的计算与处理;

4)计算组件层再将计算的结果反馈给Web计算应用层,通过适合的方式展现给用户。

[BT4]2体系结构技术实现

[BT5]2.1模块流程设计

根据Web计算服务体系框架设计,将计算功能模块化,由Fortran计算模块在后台专业执行实现各个模块的数据计算与处理功能,并通过输入/输出接口与前台用户提供实时交互。模块化流程设计如图2所示。

[PS李建2.EPS;S*2;X*2,BP#]

[HT6H][ST6HZ][WT6HZ][JZ]图2预测模块的Web计算模型

[JZ]Fig. 2Web computing model of prediction module

[HT5”SS][ST5”BZ][WT5”BZ]

[BT5]2.2接口设计

在项目研l实践中,重点是通过接口函数来保证模块间的数据交互实现的。接口函数定义则依据Fortran2003的ISO_C_BANGDING 特性而定制编写。Fortran子过程的接口参数中,应将字符串声明为单个字符的数组,与C保持兼容,并传递字符数组长度(即字符串的长度)。设计中,关键代码如下:

FUNCTION mult(srcPath,srcLen, descPath,descLen,remark) BIND(C, name=’foomult’)

INTEGER,VALUE :: srcLen,descLen

character,dimension(srcLen):: srcPath

character,dimension(descLen)::descPath

integer::mult

mult = a * b

END FUNCTION

函数中,对接口参数的功能定义解析可分别作出如下论述:

1)接口为5个参数;

2)接口的第1、2个参数解决输入文件的问题。具体地,第1个参数传递的是一个含路径的文件名,如:/路径/in.txt;第2个参数为第1个参数的长度,在第1个参数文件/路径/in.txt中的内容组织如下:

/路径/参数文件1.txt

/路径/参数文件2.txt

.。。。。。(根据各自的需要自行定义)

输入数据的路径1

输入数据的路径2

.。。。。。(根据各自的需要自行定义)

输出数据的路径

3)第3、4个参数为输出数据的文件。相应地,第3个参数传递的是一个含路径的文件名,文件的命名规则为:用户名日期时间.txt,第4个参数则为第3个参数的长度。例如:第3个参数为: /路径/zhangsan20101020121120.txt,所在的文件为空文件,不写入具体内容,对模块编程者写入要输出的数据文件路径和名字。调用时设定写入的输出数据文件名的方法为:从第1个参数文件in.txt中取出输出数据的路径,从第3个参数取出文件名zhangsan20101020121120,再根据各自的文件性质添加后缀,构成含路径的输出文件。此时,在前例基础上可得(以输出数据的后缀是.grd为例):

/输出数据的路径/ zhangsan20101020121120.grd

算法中如果有数据输出,则写入该文件“/输出数据的路径/ zhangsan20101020121120.grd”,同时将“/输出数据的路径/ zhangsan20101020121120.grd”字符串信息内容写入第3个参数的文件中。如果在输出数据的结果中有多个文件生成,则采用的文件命名方法是:

/输出数据的路径/ zhangsan20101020121120_001.grd

/输出数据的路径/ zhangsan20101020121120_002.grd

……(根据各自的需要依次往下定义)

将生成的数据依次写入以上文件,同时将以上字符串写入第3个参数对应的文件中。

4)接口返回参数类型为integer;

5)BIND(C, name=’foomult’) 是其他语言调用动态链接库的算法名称(只改变foomult 这个算法名称,其他不变)。

[BT5]2.3计算模块调用

在java/c中,通过接口程序实现对Fortran计算模块dll的调用。

#include

#include

int main(int argc,char **argv)

{

char infile\[200\]=" fszhq_parameter.txt";//输入参数文件

intinlen,outlen,remark;

char outfile\[200\]=" guest20110324.txt";//输出参数文件

remark=0;

fszhqpredict(infile,strlen(infile),outfile,strlen(outfile),remark); //调用的计算模块

return 0;

}

[BT5]2.4体系实现及展望

数据的分布性、开发平台的异构性、Web后台技术的多样性及业务逻辑定义和数据属性描述的不一致性阻碍了电子商务的效果规模的优化完善。电子商务不仅仅是解决在线支付eCommerce的理想策略,对企业而言则更是实现企业在线采购、计划、生产、储运、分销和客户服务为主的eBusiness有效技术手段及首选方案。随着企业越来越多的应用向网上转移,服务整合将革新下一代电子商务的模式。而面向服务体系结构已然设计规划了建立基于服务的动态绑定、松散耦合系统的基本准则。

随着Internet和Web 技术的不断发展,不同组织之间数据的交互越来越多,业务互联互通的需求也越来越多。但是目前各个组织所使用的系统往往是采用不同的平台和技术构建的,在这些异构的系统之间很难实现资源的共享。

通过模块化,分层结构体系构建,该平台可以实现异构系统之间的资源共享。该平台由一个资源共享中心和若干个资源共享组成。其中的资源共享中心负责资源的集中管理。

3结束语

Fortran作为一种功能强大的计算语言在科学计算领域具有广泛的应用,但该语言在数据接口方面的欠缺不足却严重制约了其在更大范围内的研究实现。通过基于分层组件设计的方法,可以充分利用Fortran本身的优势,并通过松散耦合方式较好地处理了与其它语言间的关系。本文作为Fortran组件式多语言混合应用编程的阶段性成果,对基于Fortran的Web计算应用平台的构建体系及流程给出了设计描述,并对此组件平台中的动态链接库生成机制、CGI接口处理机制、分层接口处理等方面进行了阐述分析 ,重在支持解决Fortran多语言编程中需处理的关键问题,以期对同类开发能够提供有益的借鉴作用。

参考文献:毕苏萍,张军,周振红. CVF对创建Fortran COM组件的支持[J]. 郑州大学学报(工学版), 2009,30(2):88-90,94.

[2] 顾有林,易维宁,乔延利. 基于组件的VC与Fortran混合编程[J]. 微计算机信息, 2008(15):217-218.

[3] 周振红,任慧,杜丽平. Fortran DLL组件集成到.NET平台(一)[J]. 武汉大学学报(工学版), 2005,38(4):100-103.

[4] 周振t,周洞汝,杨国录. 基于COM的软件组件[J]. 计算机应用, 2001,21(3):6-8.

[5] 刘翔. 面向移动计算的WEB中间件关键技术研究[D]. 成都:电子科技大学, 2013.

[6] 姜峰,李忠献. 基于Web计算的密码破解系统的设计与实现[C]//2012年全国网络与数字内容安全学术年会论文集. 北京:人工智能学会智能数字内容安全专业委员会, 2012:62-66.

[7] 王会娴,康大伟,王晓飞. FORTRAN语言和Origin软件与计算物理教学[J]. 新乡学院学报(自然科学版), 2012,29(1):87-89.

[8] 李兴田. 基于Fortran语言的工程计算及可视化研究[J]. 兰州交通大学学报, 2011,30(1):97-100.

[9] 倪红军,曾平. 面向移动计算的WEB中间件关键技术研究[J]. 信息系统工程, 2014(7):17.[ZK)]

上一篇:日语中男性用语与女性用语区别之研究 下一篇:SQL注入攻击及其检测防御技术研究