2015-07-16 2 views
0

Несмотря на то, что в настоящее время все еще находятся на этапах планирования для нашего веб-сайта компании, мы рассматриваем различные методы и технологии, которые успешно справляются с масштабируемостью, производительностью и безопасностью (как в людях нельзя воровать или легко перерабатывать наши финансовые алгоритмы).Производительность, масштабируемость и безопасность использования Java через Javascript (JSON)

По несколько постов здесь на переполнение стека, оказывается, что, так как мы уже завершили много алгоритмов с помощью Java для наших настольных приложений, имеющих доступ к данным алгоритмам через Java сервлеты и JSON запросов (как можно видеть here и here) онлайн может быть хорошим выбором, так как это сэкономит значительное время и деньги, не переписывая их на другом языке.

Прежде, чем двигаться вперед, я хотел бы знать, будет ли время и деньги, сэкономленные этим подходом, в конечном итоге стоить, и, в частности, это доступ (java-методы и данные массива) через JSON и Javascript как безопасные и масштабируемым, по сравнению с тем, чтобы переписать все их в прямом javascript? Кроме того, поддержка апплетов и сервлетов повсеместно, или же возможно, что хороший фрагмент нашей пользовательской базы не сможет получить доступ к нашему сайту, не загружая дополнительные плагины?

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

Является ли это хорошим вариантом с точки зрения скорости, совместимости и безопасности, или есть ли что-то, что мы упускаем из виду?

+0

Апплеты не поддерживаются повсюду (и также являются датированными). Сервлет работает на вашем сервере, поэтому ваш сервер - это единственное, что нужно для его запуска. Похоже, вы должны сделать HTTP (JSON - хороший способ передачи ваших данных через HTTP) api, который предоставляет ваши внутренние алгоритмы в Java и использует AJAX-запросы для вашего api из Javascript для доступа к ним. Другими словами, ваша клиентская сторона должна быть строго Javascript с абсолютно никакой Java, и ваша серверная сторона должна быть строго Java. – Paulpro

+0

http://javapapers.com/ajax/getting-started-with-ajax-using-java/ – Paulpro

+0

Благодарим за информацию. И следует предположить, что такой подход также масштабируется?Есть ли какой-либо верхний предел, о котором я должен знать, или, возможно, способы обеспечения безопасности потоков, которые вы знаете с головы? –

ответ

0

Похоже, вы описываете довольно распространенную архитектуру веб-приложений. Клиентская сторона находится в HTML/CSS/JS и отвечает за представление и логику, связанную с пользовательским интерфейсом, а бэкэнд делает тяжелую работу. Связь между ними выполняется через HTTP-запросы, возможно асинхронные (AJAX), к конечным точкам REST, предоставляемым вашим сервером.

Это проверенный метод с точки зрения скорости, совместимости и безопасности. Практически каждый веб-сайт использует что-то вроде этого.

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

Вот пример того, как выглядит конечная точка REST в Dropwizard.

@GET 
@Timed 
public Saying sayHello(@QueryParam("name") Optional<String> name) { 
    return new Saying("Hello " + Name); 
} 

имя переменной посылается на стороне клиента (JS/AJAX), а затем у вас есть стандартная функция Java, где вы можете делать все, что вы хотите. Наконец, вы возвращаете какой-то результат (Saying) и анализируете результат на своей стороне клиента.

+0

В идеале я хотел бы найти начальную структуру, которую легко реализовать, можно использовать с java и может сначала удовлетворять требованиям малого масштаба (<1000 пользователей в день), а затем обновляться позже после раунда финансирования VC для пример. Может быть, один или два вы могли бы порекомендовать? На ваш взгляд, является ли Rest более ограниченным, но простым в применении (низкоуровневая кривая) решением или более мощным, но болезненным, чтобы изучить вариант? –

+0

И это просто позволит мне (noob alert) написать Java-метод, например, а затем просто отправить ему некоторые данные, обработать и вернуть массив с результатом, который можно обработать с помощью HTML-холста? –

+0

@NateNeuhaus REST - это архитектура, а не продукт/структура, и звучит так, как будто это то, что вам нужно. Концепции довольно просты для понимания. Вы можете создать сервер RESTful с другими платформами, такими как Play! и весной. Я добавил пример того, как выглядит конечная точка REST – gidim

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