Как сделать облачные вычисления с Python и Java? Последний год проекта - PullRequest
1 голос
/ 09 октября 2010

В своем последнем проекте я планирую написать облако на Python. Клиент будет написан на Java другим членом моей команды. У клиента будет интерфейс с вкладками, и он будет содержать текстовый редактор, медиаплеер, пару небольших игр на основе Java и, возможно, еще несколько сервисов.

Сервер будет работать так:

1) Подтвердить пользователя.

2) Отправьте пользователю файл с именем «dump». Дамп будет содержать все имена файлов и типы файлов, которые пользователь создал сам или файлы, которые пользователь может читать / записывать. Эта информация будет получена из базы данных.

3) На вкладках в клиенте будут отображаться типы файлов, связанные с приложением вкладок. Например, вкладка «Медиа» будет выбирать и отображать только медиафайлы из дампа, которые могут быть прочитаны пользователем. На вкладке текстового редактора будут отображаться только текстовые файлы из дампа, читаемые пользователем.

4) Запрос на открытие файла отправит файл обратно клиенту, который откроет соответствующее приложение.

5) Все изменения, внесенные в файлы и все действия (перезапись, сохранение, удаление и т. Д.) Будут отправлены обратно на сервер вместе с новым объектом. Нечто подобное будет сделано с вновь созданными объектами.

Мои вопросы:

Каковы наилучшие подходы для связи между клиентом и сервером. Для дампа я планирую использовать какой-то зашифрованный XML-файл. С другой стороны, я понятия не имею: /.

Для легкой интеграции с базой данных я планировал использовать Django (которую я начал несколько дней назад). Как я могу отправить свои запросы от клиента на сервер (без Django я бы использовал SQL-запросы) и файлы с сервера на клиент? Может быть, GET и POST будут работать для решения первой проблемы? Любые другие предложения?

Ответы [ 3 ]

1 голос
/ 10 октября 2010

Q1: как мне безопасно передавать данные между клиентом / сервером

A: HTTPS для поддержки шифрования и JSON для сериализации объектов между языками (Python / Java) представляется наиболее естественным. Вы можете поэкспериментировать с XML-RPC над SSL или TSL, если хотите быть креативным.

Q2: Как отправить запросы к базе данных сервера?

A: Мой первый ответ - поговорить с человеком, кодирующим сервер, и посмотреть, что проще всего с этой стороны. Тем не менее, я думаю, что ваш клиент должен придерживаться HTTP. Разработчик сервера должен убедиться, что сервер поддерживает RESTful URI. Тогда ваш клиент получит доступ только к URI и обработает результаты на сервере.

В наиболее сыром виде это можно реализовать следующим образом:

https://www.example.com/db?q="SELECT * FROM docs"

Есть более разумные способы сделать это, но вы поняли идею.

0 голосов
/ 09 октября 2010

Придерживайся Джанго. Это действительно продуктивно. Я бы использовал JSON вместо XML. Более удобный. import json. Это должно помочь вам в общении между клиент-сервером.

Кроме того, облачные вычисления - это всего лишь недавнее слово, которое просто используется (клиент + сервер + некоторые службы). Да, кстати, все, что вы хотите сделать, может быть полностью сделано в самом Django. Не нужно идти на JAVA.

Джанго это круто :) 1006 *

0 голосов
/ 09 октября 2010

Если вы собираетесь использовать веб-инфраструктуру на сервере, имеет смысл использовать протокол на основе HTTP. Недостатком является то, что только клиент может инициировать соединение (например, клиент должен сначала запросить файл «dump»), но простого GET-запроса будет достаточно (помните, что сервер может отправлять в ответе HTTP все, включая ваш XML-файл).

Что касается шифрования, то лучше использовать существующий протокол, такой как HTTPS. Существуют проверенные библиотеки, которые правильно установят безопасное соединение между вашим клиентом и сервером.

В целом, я защищаю протоколы самого высокого уровня, подходящие для вашего приложения. HTTP (S) идет рука об руку с вашей веб-архитектурой, так что используйте его.

...