很抱歉,如果我没有表达清楚。我需要:通过HTTP(S)通信创建一个函数,这意味着应该为我的函数分配一个Web地址。用户可以以适当的格式发送输入以启动此功能。
目前,这些功能是用FORTRAN编写的,这意味着我无法将它们放到Google App Engine中。我的方法是:
所以我的问题是这个功能的名称是什么(我猜是REST)?是否有任何大型云服务器可以提供此服务(如AMAZON,GOOGLE)?
谢谢!
答案 0 :(得分:3)
此功能的名称是什么?它被称为Web服务,也称为Web API。
这里有一个非常好的解释:http://www.ibm.com/developerworks/webservices/library/ws-restful/
Web服务或多或少与网站完全相同(在Web服务器上运行,使用HTTP)但它只返回数据,通常是XML或JSON,没有图形或格式。
至于托管,正如我所说,托管网页服务和托管网页之间基本没有区别。在应用程序级别,Web服务仅返回数据,而网站返回HTML格式的Web页面。当你认为HTML(XHTML)实际上是XML的一个子集时,网站和网络服务之间实际上没有任何区别 - 唯一的区别是消费者:一个是看起来很好并且被阅读的人消费一个网页,另一个只返回数据,并打算由某种客户端应用程序使用。
==编辑==
Fortran比互联网要长很多。这是第一个高级编程语言....我认为是在1950年代开发的,所以在互联网出现之前大约20年。您不会找到任何可以托管Fortran Web服务或应用程序的人。如果你需要网络互动,也许可以考虑用Python重写 - 它们非常相似。或者,大多数Web语言都支持调用控制台应用程序:
http://php.net/manual/en/function.shell-exec.php
Call a Console App from ASP.NET MVC, but don't want to wait for the response
答案 1 :(得分:1)
听起来您希望将某些功能作为 Web服务公开在计算机上。具体来说,如果您希望它的行为就像您实际调用计算机上的特定功能一样,那么它可能是远程过程调用。
许多因素会导致选择使用哪个供应商,如果您正在寻找云基础解决方案,我会确定您是否要使用某种特定语言,并查看哪些解决方案可以支持这种解决方案。除此之外,每个都有不同的支持和定价模式。
答案 2 :(得分:0)
我建议使用VPS类型的服务。我删除了Google App Engine,因为它目前无法运行Fortran代码。您将看到Amazon EC2,或者只是从GoDaddy,BlueHost,HostGator等网络托管公司获取VPS,具体取决于您的使用情况。
根据您的经验,您可以使用Python,Ruby或PHP执行此操作。它们都具有强大的Web框架,可以调用本地系统上的可执行文件,例如Fortran编译器。因此,您可以在Django或Rails等框架中编写Web代码,然后调用本地cgi来执行Fortran代码并通过框架返回结果。
其他建议: 您可能希望使用Pypy和python进行计算,它几乎和Fortran一样可以做,但是更现代。
答案 3 :(得分:0)
任何云提供商尝试“支持”Fortran都没有任何商业意义。此外,Fortran是如此“令人敬畏”,它真的很难支持。
策略:
就个人而言,我会考虑选择3。
这些是我将其归类为“特技”的一些内容,因此我会自动将AppEngine排除在外。 我会在一个盒子(或虚拟盒子)上这样做,我可以获得root访问权限并做任何我想做的事情(有很多这些)。
以下是一些资源。
使用Java Native Access从Java调用Fortran:http://oms.javaforge.com/wiki/66061
使用JNI从Java调用Fortran:http://www.math.ucla.edu/~anderson/JAVAclass/JavaInterface/JavaInterface.html
使用Lahey / Fujitsu Fortran Enterprise的Fortran for .NET:http://www.lahey.com/lf71/lf71.htm
答案 4 :(得分:0)
这是一个用Fortran编写的Web应用程序:https://github.com/rlcarino/heeds。 Fortran程序通过FastCGI与nginx Web服务器通信。程序的数据存储在文本文件中;不正式'使用数据库。
可以在http://heeds.csu.edu.ph/中找到该程序的实时运行。该应用程序正在云中的服务器上运行。一些用户通过运行Free Basics的Android智能手机连接到它,而不需要单元数据,该智能手机可以在世界上的这个地方使用。