2014-11-21 2 views
1

Прежде всего, я инженер-электрик, но я хочу создать следующую систему; Я хочу, чтобы приложения на многих распределенных компьютерах (клиентах) могли отправлять данные в среду расчета python через сервер.Может ли сервер и клиент быть запрограммированы на разных платформах?

Время от времени я писал клиентскую/серверную программу в JAVA, и это было более или менее прямолинейно, но теперь мне нужно вычислительное ядро, где учащиеся могут программировать свои модули вычислений, а python кажется достаточно простым, чтобы не заставить людей ненавидеть программирование.

enter image description here

Вопрос заключается в том, сервер может быть запрограммирован в питона, смешивая вычисления ядра питона с сервером данных, в то время как клиенты сделаны в Java или .Net или что?

Надеюсь, это достаточно ясно, так как у меня очень мало опыта в программировании веб-сервисов. Хороший учебник или отправная точка были бы хороши.

ответ

1

При создании веб приложение ограничено возможностями для клиентской технологии: главным образом JavaScript (или виртуальная машина, такая как Flash или Java). Изобретатели node.js рекламируют это как важный пункт продажи. Теперь вы можете полностью создать свой веб-сервер и веб-клиент в Javascript.

Но остальная часть сети работает нормально, не используя node.js, например. используя фреймворки, такие как Ruby on Rails или Python, или Java или .NET. Связь с клиентом обычно выполняется с использованием данных JSON и обслуживает чистый API (Application Programming Interface), с помощью которого клиент может получать/получать данные.

Помимо веб-клиентов, есть много примеров коммуникационных протоколов, которые решают проблему, которую вы описываете, что позволяет компоненты различных языков/платформ для совместной работы:

+1

Спасибо, я получил пример (http://twistedmatrix.com/documents/current/web/howto/xmlrpc.html), работающий на python. –

1

Конечно, это возможно, и на самом деле довольно распространено.

Примеры:

  • Web-браузер (общий клиент) запрограммирован на C++ (Firefox, Chrome), а веб-приложения программируются в pleathora языков программирования.
  • Мобильные приложения запрограммированы в Objective-C (iOS) или Java (Android), тогда как серверные службы запрограммированы в Java, .NET, Python, Ruby, JavaScript, Go и gazillion.
0

Нет причин, по которым это не должно работать. В настоящее время Интернет - это сборка компьютеров, использующих все различные типы программ, создаваемые многочисленными языками программирования.

1

Да, вы можете создавать разные языки общения через сокеты! У вас есть другой способ сделать это:

  • Используйте такой формат, как библиотеки XML, JSON или протокольные буферы, поддерживаемые обоими языками.
  • Отправка необработанных данных или текста и создание собственного протокола.

По существу, то, что проходит через сокет, является байтовыми данными, а байты одинаковы на любом языке. Основная проблема заключается в том, что вам придется повторно реализовать логику для каждой стороны и для каждого используемого вами языка.

В вашем случае я думаю, что лучший способ сделать это состоит в использовании буфера протокола Google, который поддерживается Python Java и C#: посмотрите: Protocol buffer tutorial in python и Protocol buffer tutorial in Java и даже в C# Protocol buffer tutorial in C#

Смежные вопросы