2009-09-21 6 views
1

Я занимаюсь разработкой простой веб-приложение, которое содержит эти 3 компонента:Какой веб-сервер java наиболее подходит здесь?

  1. клиент, который использует Ajax, JavaScript, HTML для отображения данных в браузере.
  2. Веб-сервер Java, который взаимодействует между клиентом и объектом обработки данных.
  3. объект обработки данных, реализованный на C++.

Мне нужно решить, какой Java-сервер использовать. Некоторые параметры:

a) Используйте класс httpserver в java (com.sun.net.httpserver) и создайте многопоточный процесс.

b) использовать сервер Glassfish и развернуть приложение на нем, которое создает веб-страницу, и т. Д.

c) использование Jetty.

d)?

Критерии отбора для веб-сервера является:

  1. стабильности (процесс (веб-сервер) должен работать в течение нескольких дней без перезагрузки)

  2. Максимальное количество одновременных запросов возможных около 200. а средний случай около 30.

  3. Кэширование выполняется на веб-сервере, и запросы подаются с самого веб-сервера, если данные доступны или не помечены грязным объектом обработки данных.

Ваши предложения очень ценятся.

Thank you. Рон.

+0

если компонент обработки данных находится на C++, зачем вы хотите использовать java-сервер? – skaffman

+0

спасибо скаффман. знаете ли вы о методе создания стабильного HTTP-сервера на C++? должен поддерживать Ajax – sbr

+0

Возможно, вы захотите исправить свои теги, так как на основе ваших ответов ключевые слова сейчас являются очень неправильными. –

ответ

5

Не используйте класс Http-сервера Java.

Glassfish - это хорошо, но, вероятно, больше, чем вам нужно.

Jetty будет работать только отлично.

Помните, что если вы используете C++ и используете JNI для взаимодействия с Java, любые seg-сбои будут убивать весь сервер (например, исключение в чистой Java, которое просто уничтожит запрос и контейнер может восстановить) ,

+0

Я намерен использовать java TCP-сокеты для IPC с объектом C++ через XML. объект обработки данных C++ является независимым и может работать на разных машинах. Не могли бы вы представить причины для исключения класса httpserver? – sbr

+0

JAX-WS при запуске от J2SE использует HTTP-сервер Sun, и мы обнаружили, что у него была довольно ужасная производительность. Принимая ту же услугу и развертывая ее в Tomcat или Glassfish вместо автономного приложения J2SE, был ночной и дневной опыт. Тем не менее, нет причин, по которым вы не могли бы «внедрить» Jetty и использовать его, как сервер Sun (подробности будут варьироваться, конечно). Это даст вам аналогичный «опыт» для использования классов Sun. И тот, что в Java 6, может быть лучше, чем тот, что в Java 5. –

1

Tomcat сможет это сделать, но вы должны указать требования к стороне java. Например, используете ли вы какие-либо функции J2EE?

Для кэширования вам понадобится что-то вроде кеша JBoss?

Используете ли вы JNI для взаимодействия Java с бэкэнд C++ или с использованием ESB или какого-либо другого подхода?

Какие типы данных кэшируются?

Обновление: Основываясь на вашей информации, я бы предложил не использовать Java, но использовать сервер C++ TCP для этого взаимодействия. Таким образом, у вас нет проблем с интерфейсом JNI/C++. Вы можете легко написать C++-сервер, и если вы используете библиотеки Boost, вы будете близки к новой спецификации C++. По темам вы можете посмотреть: http://www.boost.org/doc/libs/1_40_0/doc/html/thread.html

+0

Я намерен использовать java TCP-сокеты для IPC с объектом C++ через XML. объект обработки данных C++ является независимым и может работать на разных машинах. Кэширование: это данные, полученные от объекта C++. это данные ответа на запросы клиентов и обновляются, возможно, примерно раз в день. например список типов пользователей в системе .. он будет храниться как массив на веб-сервере – sbr

+0

Спасибо Джеймс. Я не использую какие-либо конкретные функции J2EE. Роль этого веб-сервера заключается в том, чтобы иметь возможность связываться по протоколу HTTP и предоставлять доступ в браузере. – sbr

+1

Затем используйте apache, который является очень стабильным и масштабируемым, и напишите ваши приложения cgi на C++. Так я начал заниматься веб-программированием. :) –

1

Я использовал Resin в течение нескольких лет, и он очень хорош и стабилен на 100%.