0

对不起,如果我没有清楚地表达自己。我需要: 使一个函数可以通过 HTTP(S) 通信访问,这意味着应该为我的函数分配一个网址。用户可以发送正确格式的输入来启动此功能。

目前,这些函数是用 FORTRAN 编写的,这意味着我无法将它们放到 Google App Engine 中。我的方法是:

  1. 将 FORTRAN 代码上传到此云服务器并编译成可执行文件。
  2. '发布'这个编译好的 FORTRAN 代码,它会给它一个网址。
  3. 允许用户向该地址发送输入并进行一些计算。
  4. 将计算结果保存到 AMAZON S3 并生成链接供用户下载。

所以我的问题是这个功能的名称是什么(我猜它是 REST)?有没有大的云服务器可以提供这个服务(比如AMAZON、GOOGLE)?

谢谢!

4

5 回答 5

3

此功能的名称是什么?它称为 Web 服务,也称为 Web API。

这里有一个很好的解释:http: //www.ibm.com/developerworks/webservices/library/ws-restful/

Web 服务或多或少与网站完全相同(在 Web 服务器上运行,使用 HTTP),但它只返回数据,通常是 XML 或 JSON,没有图形或格式。

至于托管,正如我所说,托管网络服务和托管网页之间基本上没有区别。在应用程序级别,Web 服务只返回数据,而网站返回 HTML 格式的网页。当您考虑 HTML (XHTML) 实际上是 XML 的一个子集时,网站和 Web 服务之间实际上根本没有区别 - 唯一的区别是消费者:一个旨在看起来不错并被阅读的人消费一个网页,另一个只返回数据,并打算被某种客户端应用程序使用。

== 编辑 ==

Fortran 的存在时间比互联网要长得多。它是第一个高级编程语言......我认为是在 1950 年代开发的,比互联网早了大约 20 年。您不会找到可以托管 Fortran Web 服务或应用程序的任何人。如果您需要 Web 交互,也许可以考虑用 Python 重写——它们非常相似。或者,大多数 Web 语言都支持调用控制台应用程序:

http://php.net/manual/en/function.shell-exec.php

从 ASP.NET MVC 调用控制台应用程序,但不想等待响应

于 2012-05-23T15:32:12.460 回答
1

听起来您想将计算机上的某些功能作为Web 服务公开。具体来说,如果您希望它的行为就像您实际调用计算机上的特定函数一样,它可能是一个远程过程调用

许多因素会导致选择使用哪个供应商,如果您正在寻找基于云的解决方案,我会确定您是否要使用特定的语言,并查看哪些解决方案可以支持它。除此之外,每个都有不同的支持和定价模式。

于 2012-05-23T15:31:39.873 回答
0

任何云提供商尝试“支持”Fortran 都没有商业意义。再说了,Fortran 太“牛”了,真的很难支持。

策略:

  1. 使用另一种语言/框架创建 Web 服务,然后通过 CLI 调用调用 Fortran 代码。
  2. 使用 Fortran 包装器和高级工具包(例如 Fortran for .NET)来创建 Web 服务。
  3. 将 Fortran 代码编译为本机代码(例如 .dll)并使用 JNA 从 Java 调用,然后使用 Java Web 服务为函数创建 REST/SOAP WS。这可以使用 Netbeans IDE 轻松实现。

就个人而言,我会考虑选择选项 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

Fortran for .NET 使用 Lahey/Fujitsu Fortran Enterprise:http ://www.lahey.com/lf71/lf71.htm

于 2014-01-07T23:52:50.270 回答
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 一样多,但更现代一些。

于 2012-05-23T23:27:55.477 回答
0

这是一个用 Fortran 编写的 Web 应用程序:https ://github.com/rlcarino/heeds 。Fortran 程序通过 FastCGI 与 nginx 网络服务器通信。程序的数据存储在文本文件中;没有使用“正式”数据库。

该程序的实时运行可以在http://heeds.csu.edu.ph/中找到。该应用程序在云中的服务器上运行。一些用户通过运行 Free Basics 的 Android 智能手机连接到它,而无需支付蜂窝数据费用,而 Free Basics 可在该地区使用。

于 2016-07-14T16:08:07.043 回答