Моя программа должна получить доступ к информации (ключ / значение) с моего сервера. Какая веб-архитектура будет лучше для этого? - PullRequest
1 голос
/ 03 декабря 2009

Моя программа должна загружать определения объектов (в основном, XML-файлы, возможно, двоичные файлы) по запросу через сеть. Программа будет запрашивать объекты с моего сервера во время выполнения. Единственная вещь, которую программа должна отправить серверу, это строка, которая идентифицирует объект, который ей нужен (например, RedCubeIn3DSpace23). Итак, основной ключ, система ценностей. Мое приложение также должно иметь некоторый базовый механизм аутентификации, чтобы гарантировать, что только законные программы получают доступ к информации моего сервера. Может быть, пришлите номер лицензии и пароль. Каков наилучший способ реализации этого? У меня 0 веб-знаний, поэтому я не уверен, какие именно технологии мне нужны. Я реализовал сокет-программы в колледже, так что, может быть, это то, что мне нужно? Существуют ли рамки для такого типа вещей? Там могут быть тысячи пользователей / клиентов одновременно; может больше, но я не знаю. Одним из важнейших требований является необходимость обеспечения безупречной безопасности на стороне сервера. То есть у меня не может быть хакера, который заменяет определения объектов на вредоносные, которые загружают клиенты. Это было бы катастрофично.

Мои первые мысли:

-Установите FTP-сервер, и каждый XML-файл будет назван по значению ключа. Программа входит в систему со своим product_id и фиксированным паролем и просто загружает файлы. Если я использую хороший ftp-сервер, это довольно непроницаемо для хакерских модификаций определений. Недостаток в том, что он не расширяемый и не гибкий.

-RESTful система типов. Я только что узнал об этом при поиске в стеке Я могу создавать категории объектов, используя URL, но как мне выполнять аутентификацию и другие действия. Может быть сложно программировать, но лучше ли это? Есть ли готовая библиотека для этого?

-Sockets с использованием Java / C #. Java / C # защитит меня от атак переполнения, и тогда это всего лишь вопрос создания потока для каждого соединения и настройки простого протокола обмена сообщениями и передачи файлов.

-SOAP. Просто узнал об этом во время поиска. Не знаю много

-EC2. Я думаю, что это (и другие?) Облачные сервисы добавляют слой db по этому.

Это то, что я могу придумать, как вы думаете, учитывая мои требования? Мне просто нужно немного руководства.

1 Ответ

1 голос
/ 03 декабря 2009

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

SOAP явно излишним для этого, и использование сырых сокетов будет заново изобретать колесо (то есть веб-сервер).

Я бы сделал защиту на уровне сокетов, используя HTTPS. Таким образом, клиент будет проверять подлинность сервера до установления соединения, и никто не сможет перехватить пароль, отправленный на сервер. Опять же, достойный веб-сервер будет поддерживать это из коробки, вам просто нужно правильно его настроить.

...