Связь между Python и приложением Jython (JAVA) через Nework - PullRequest
4 голосов
/ 22 августа 2011

Я собираюсь разработать приложение на основе Saas (Программное обеспечение как услуга), которое использует приложение python, которое будет работать на сервере, и клиентский графический интерфейс, который будет работать как приложение jython.Изначально я планировал, что клиент будет разрабатываться в Jython для создания прототипов, но позже, если сложность приложения возрастет и в зависимости от ухудшения производительности jython, я полностью перенесу клиента на JAVA.

Теперь я хотел найти способ эффективного взаимодействия TCP / IP между сервером и клиентскими приложениями с использованием некоторых известных инструментов, таких как Twisted.Я также думал о других вариантах, таких как corba и pyro.

Итак, на основании этого у меня возникли следующие вопросы.

Какой будет наиболее эффективный способ связи через сокет TCP / IP между клиентом python и jython.Могу ли я использовать витой в конце Python и Java сокета API в конце Jython (они совместимы)?Или есть какой-нибудь другой лучший способ (для прототипирования и RAD)?

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Я рекомендую использовать RPC вместо чистой связи TCP / IP через сокеты.

Если клиентов мало, и вы не хотите использовать сложные технологии, используйте что-то вроде JsonRPC или XMLRPC. (Обратите внимание, что Pyro может использоваться только тогда, когда сервер и клиент написаны на Python. Если вы планируете перейти на Java позже, вам следует учесть это.)

Если здесь важны производительность и безопасность (например, множество клиентов отправляет запросы одновременно или вам требуется SSL-соединение), используйте что-то вроде Ice . Я предпочитаю Ice над Corba, потому что он более простой, более современный и в то же время такой же хороший, как Corba (возможно, даже лучше).

Обновление : После прочтения ваших комментариев я очень рекомендую вам использовать Ice. Ice и Corba и подобные им технологии называют ORB (Object Request Broker). Они не используют традиционную модель сервер / клиент. Таким образом, все объекты в приложении могут связываться друг с другом. Неважно, где они. В этом случае у вас будет реальное распределенное приложение.

0 голосов
/ 22 августа 2011

Вы можете использовать скрученный, ничего страшного, я бы порекомендовал zeromq . Это действительно быстро и делает написание сетевых приложений очень простым.

...