Нужна помощь, чтобы начать с 3tier design - PullRequest
0 голосов
/ 07 августа 2011

Это будет довольно открытый вопрос;но с этого момента это все, с чего я должен начать.В настоящее время у нас есть двухуровневый дизайн приложения.Это означает, что у нас есть C ++ API, который подключается к нашему SQL Server и выполняет типичные операции с базой данных, такие как вставка / обновление / запрос.Мы стремимся сделать это трехуровневым проектом с каким-то сервером приложений, расположенным посередине.Цель состоит в том, чтобы по мере увеличения нагрузки;нам не нужно иметь дело с БД, являющейся горлышком бутылки.Проект состоит в том, чтобы все общение с пользователями происходило со «средним уровнем», а затем переходило в БД.Это избавит нас от необходимости помещать наши сложные бизнес-правила в триггеры БД, а средний уровень обрабатывает их.
Что мне до сих пор неясно, как выглядит этот средний уровень.Должен ли это быть какой-то веб-сервис?Все клиенты устанавливают соединение с промежуточным уровнем через HTTP, а затем мы передаем это в БД?Как вы можете сказать;от API C ++ до веб-сервиса;это довольно большой сдвиг.Будем весьма благодарны за любые ресурсы, которые помогут мне развить мою мысль по этой теме.Спасибо!

1 Ответ

0 голосов
/ 07 августа 2011

Поскольку у вас уже есть C ++ API, который подключается к нашему SQL Server и выполняет операции непосредственно над ним, это, кажется, уже подходящий кандидат для рефакторинга на средний уровень вашего проекта.Этот код уже манипулирует базой данных в соответствии с некоторыми правилами, что и должен делать ваш средний уровень.

Остальная часть работы, которую еще предстоит сделать, - отделить логику представления от этого API и позволить емунаходятся в своих собственных приложениях, которые подключаются к C ++ API среднего уровня, чтобы их данные обрабатывались ими, сохранялись в базе данных и возвращались результаты для отображения пользователю.

Что касается соединениямежду уровнем представления и C ++ API, в зависимости от ваших требований, вы можете использовать собственный протокол связи (реализованный, например, через TCP / IP или RPC), или HTTP, имея посредническую «ретрансляционную» веб-сеть.сервис, который вызывает ваш C ++ API с сервера и возвращает результаты вызывающей стороне.Выбор HTTP, хотя и более быстрый для первоначальной реализации, имеет некоторые аспекты, такие как тот факт, что по умолчанию он не имеет состояния (вам нужно будет реализовывать пользовательские сеансы самостоятельно) и что его нужно будет синхронизировать с кодомкогда публичные методы меняются в процессе разработки.

...