@Dzmitry1985

Какие технологии используют для математич. обработки информации, получ. от пользователя на сервере?

Хочу написать сервис, который будет обрабатывать на сервере информацию, полученную от пользователя с мобильного приложения и передавать мобильному приложению результаты.

С мобильным приложением, которое будет обеспечивать ввод информации от пользователя и передачи ее на сервер, все понятно- я изучил основы java и сейчас изучаю программирование для андроида. Уже вижу что с этим проблем не будет. Ну и почитываю чуток sql.

Надо будет:
1) принимать отправленную информацию
2) обрабатывать эту информацию на сервере
3) передавать результаты пользователя обратно мобильному приложению

a) В обработке информации планируется много математических вычислений.
b) Надеюсь, что с течением времени в сервис придет много пользователей.
Из условий a) и b) вытекает, что сервер должен быстро работать.

Мой вопрос: какие языки программирования и технологии мне нужно изучить, что бы реализовать такой сервер?
  • Вопрос задан
  • 2319 просмотров
Пригласить эксперта
Ответы на вопрос 5
akubintsev
@akubintsev
Опытный backend разработчик
У вас обычная классическая задача, ничего особенного не вижу. Php может вполне подойти, если знаете его или нравится. Можно и другой язык типа python без проблем использовать. Главное, чтобы на каждый запрос генерировался свой тред, т.к. они будут задействовать все имеющиеся ядра в сервере и вам даже не придется думать об этом.
Поэтому однопоточный node.js не стал бы советовать.
Ответ написан
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Ну так яву и изучайте, или питон в качестве сервера. На мой взгляд питон даже более предпочтителен. У него много всяких хороших библиотек типа numpy и scipy (в качествте сильной математики). Правда ява в этом отношении не хуже, но "многословней".
В качестве приема/отправки используйте обыкновенный web-сервер на питоне или яве. Для правильного использования подойдет какая-нибудь реализация техники comet. Вот статья на тему - javascript.ru/ajax/comet/server-patterns

А ввобще-то для вашей задачи на стороне сервера подойдет практически всё, начиная от erlang и заканчивая go с nodejs. Даже php будет к месту (наверное).
Ответ написан
Комментировать
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Не очень понятно что именно Вы вкладываете в понятие "обрабатывать полученную информацию".
В общем случае Вам полезно прочитать про REST API - чисто как подход к построению интерфейса взаимодействия.
На каком именно языке это делать - в общем случае вторично.
В enterprise по статистике популярна java, в вебе php, ruby, python (пожалуй что именно в такой последовательности). Все остальные языки обладают заметно меньшим комьюнити.
Принципиальных отличий с точки зрения сложности разработки нет, поэтому если у вас проект одного человека - выбирайте тот язык что вам более знаком и вперед.
Ответ написан
Комментировать
AMar4enko
@AMar4enko
Не всякую математику можно обсчитать в "реальном" времени, тем более в условиях ограниченного железа, вы должны это понимать.
Смысла во фразе "Сервер должен быстро работать" чуть менее, чем ноль. У вас каждое вычисление константно в смысле ресурсоемкости? Или сложность линейная? Может, экспоненциальная?
Пока вы это не поймете - смысла говорить о "быстроте" нет никакого.
В любом случае для подобной задачи я бы воспользовался следующей схемой:
1. Клиент отправляет задачу на сервер
2. Сервер регистрирует задачу, отдает клиенту ее номер, саму задачу ставит в очередь
3. Клиент сохраняет данные задачи с полученным от сервера номером с пометкой "выполняется"
4. Воркеры (работающие отдельно от основного процесса веб-сервера) вытаскивают из очереди задания и выполняют непосредственно математические расчеты. Получив результат записывают его в базу, отправляют на устройство, с которого поступила задача, пуш уведомление.

На чем реализовывать - особого значения не имеет, с любым ЯП вам придется потратить примерно одинаковое количество времени.
Ответ написан
Комментировать
@Dzmitry1985 Автор вопроса
Все, всем спасибо, особенно Дмитрию Энтелису и Александру Марченко.
Решил остановиться на PHP и уже заказал книгу.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы