构建使用多种编程语言(Python Java C#)开发web应用程序的基础架构
我在不同的地方寻找过这个,但我没有找到一个详尽的答案。假设我们用不同的语言编写了不同的模块,每个模块都实现了逻辑的某些部分。我们没有权限将它们重新编译为某种语言(例如使用JPython) 我在编程的这一部分是个真正的新手,所以很难找到描述这个问题的词汇。我似乎试图找到类似Maven的东西,但对于多语言和其他语言,模块可能是预编译的构建使用多种编程语言(Python Java C#)开发web应用程序的基础架构,java,python,architecture,Java,Python,Architecture,我在不同的地方寻找过这个,但我没有找到一个详尽的答案。假设我们用不同的语言编写了不同的模块,每个模块都实现了逻辑的某些部分。我们没有权限将它们重新编译为某种语言(例如使用JPython) 我在编程的这一部分是个真正的新手,所以很难找到描述这个问题的词汇。我似乎试图找到类似Maven的东西,但对于多语言和其他语言,模块可能是预编译的 这在理论上是可能的吗?我不确定我是否正确理解了这个问题,但我认为您希望在多种语言上构建web应用程序。我的第一个猜测是面向服务的编程。您可以在多种语言上构建服务,它们
这在理论上是可能的吗?我不确定我是否正确理解了这个问题,但我认为您希望在多种语言上构建web应用程序。我的第一个猜测是面向服务的编程。您可以在多种语言上构建服务,它们可以通过JSon或XML进行通信,这当然是可能的。例如,我使用以下组合开发了web应用程序:
- Java(用于后端接口、API和性能敏感代码)
- Clojure(用于服务器端的主web应用程序)
- JavaScript(用于浏览器中的客户端代码)
- 非常清楚您使用每种语言的原因。例如,JavaScript可能严格限于浏览器中的客户端代码
- 如果语言在同一个平台上运行,它会有很大帮助。例如,Clojure和Java都在JVM中运行,这使得互操作性更加容易,因为您不需要任何额外的代码来连接两者
- 使用支持您打算使用的所有语言的IDE(在我的例子中是Eclipse)
- 使用具有多语言支持的良好的构建系统。您希望能够执行包含所有语言的“一键构建”。IMHO Maven是实现这一点的最佳工具(特别是如果您使用Eclipse插件之类的工具与IDE集成)
- 开线
- 运行命令行应用程序(用java、C#或其他语言编写)
- 在等待结果时显示所需的视图李>
- 当您从命令行获得结果时,让用户重新加载或使用ajax使用结果刷新视图 B.同步方法。(工作相当简单)
- 运行命令行应用程序
- 等到你得到结果
- 显示来自2的结果的用户结果视图
- 我认为rocco337面向服务的编程确实是个好主意。
但这种方法有一个小小的缺点。
由于所有这些HTTP请求,服务之间的通信量。
我听说亚马逊为此遭受了痛苦,但我想他们成功了,因为他们是巨人
这也有它自己的缺点。
只要把这一个看成是又脏又快的选择
我最近构建的Web应用程序是基于python、php和大量C模块的
我混合它们的方式是使用简单的命令行和shell脚本。
python作为一种粘合语言非常有效
所以基本上你要做的是
A.异步方法。(当您的模块需要几秒钟以上才能完成其工作时)
祝你的项目好运 谢谢你的回答,这真的很有帮助。还有其他方法可以解决这个问题吗?@sedos我也会选择SOA。另一种方法是使用类似CORBA的东西来调解进程间的通信。谢谢您的回答。但在您编写的案例中,您使用的语言都是在JVM上运行的。正如我在我的案例中发现的,我可以使用Jython来将Python放置到java字节代码和SWIG中,将java与C++连接起来。但是这个模块需要重新编译。如果服务托管在局域网中的服务器上,那么我看不到任何流量问题。。我应该把它当作开销来补偿。rocco337我也认为解决这个问题最好的可能和优雅的方法就是用你的方式。我只是在展示另一个想法你解释得很好,谢谢你的回答。它工作正常,之前的说法是rocco337 SOA方式的本地变体。我尝试使用他的变体,现在在根层的bundle(Maven Spring AspectJ)和Oracle的ready工具(SOA套件、BPEL流程管理器)之间做出选择。是否有人使用过这些工具并能给出建议?