2012-06-14 1 views
0

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

Компоненты заключаются в следующем:

  • Логическая часть, которая будет находиться на сервере
  • база данных,
  • Несколько настольных, мобильных и веб-клиенты

До сих пор, что я было получено следующее:

  1. Мне нужен сервер приложений, который будет управлять вызовами API из логики и доступа к БД.
  2. Веб-сервер, чтобы сидеть поверх него, который будет управлять входящими запросами.
  3. Логическая часть.
  4. Клиенты, которые будут соответствовать API, которые мы определим.

Так что я не уверен, как все это связывается ... Как «логика» взаимодействует с сервером приложений? Нужно ли писать «логику» как сервер?

что я вижу что-то вроде этого:

 req 
client ----> web server ----> app server -----> Logic 

           |-----> DB 

      response 
app server ---------> web server ----> client 

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

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

ответ

1

Вопрос вы очень общий. Решение, которое вы предложили, тоже является общим. Если вы не выберете какие-либо конкретные требования, вы создадите систему общего назначения со средней производительностью для средних пользователей. Предполагая, что у вас есть как мобильные, настольные, так и веб-клиенты, идея иметь веб-сервер в интерфейсе - это хороший момент. Но проблема в том, чтобы сохранить всю бизнес-логику на стороне AppServer. В случае массовых манипуляций с данными и требований к производительности вы можете иметь некоторую логику в базе данных, но это скорее исключение, чем правило. В любом случае, у вас должны быть какие-то особые требования, иначе процесс проектирования будет выглядеть как фэн-шуй. Также вам нужно выбрать технологии и построить стек.

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