2015-11-27 1 views
0

Недавно я разрабатывал систему для запуска высокозащищенной базы данных (с использованием vb.net и SQL Server 2005). Я хочу повысить безопасность базы данных, поэтому соединение не будет напрямую связано с базой данных, но вместо этого HttpWebRequest отправляется на веб-службу, которая затем подключается к базе данных и возвращает запрошенную таблицу данных в формате XML.Использование веб-служб для извлечения данных из базы данных SQL Server

Моя забота о производительности, я не могу решить, чтобы позволить клиентам напрямую подключаться к базе данных или позволить подключению проходить через веб-службу.

я могу сделать соединение перейти непосредственно к базе данных по многим причинам, скажем, что соединение через службу:

  1. Будет ли он дать мне лучшую производительность?
  2. Будет ли размер полученных данных больше, чем регулярный ответ SQL Server?

Любые идеи об этом помогут много, спасибо заранее.

ответ

0

1) Благодаря WebService он не даст вам более высокой производительности, поскольку он добавляет слой кода между вашим клиентом и базой данных.

2) Поскольку веб-сервисы используют конверт и заголовок, я бы предпочел бы, чтобы данные были больше. Если у вас нет больших наборов данных, это не должно сильно повредить вашей работе.

Тем не менее, я все равно использую WebService, чтобы не подвергать мою базу данных непосредственно в Интернете, что ограничивает нарушения безопасности. Кроме того, использование веб-сервиса позволяет вам писать свои правила безопасности в нем и отбрасывать возможную инъекцию кода и другие угрозы безопасности, прежде чем он сможет достичь вашей базы данных.

+0

Это было полезно, спасибо –

0

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

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

+0

Спасибо за вашу заботу. В проекте может быть до 15 пользователей (не менее 5 онлайн одновременно), и база данных может содержать до (2000) в одной таблице и до (20 000) в другой таблице [эта таблица будет реляционной, поэтому только до 100 записей одновременно повторяются] Для каждой сессии в веб-службу может быть отправлено до 35 подключений. Любое предложение об этом? Спасибо в продвинутом –

+0

В этой ситуации достаточно простого веб-сервиса. Но все же я предлагаю вам добавить некоторые фильтры в веб-методы для ограничения данных. Ниже приведены некоторые варианты, которые можно использовать: - 1. DownloadData (Record ID) 2. DownloadData (FromDateTime, ToDateTime) 3. DownloadData (LastSyncDateTime) Я надеюсь, что это поможет вам, чтобы позволить клиентам получить доступ к данным без каких-либо производительности вопросы. Некоторые дополнительные вещи, которые вы можете сделать, это использовать ниже: - 1. Используйте JSON. Это уменьшит размер загруженных данных и поможет вам загрузить больше данных в один запрос. 2. Используйте индексы на таблицах, где вы извлекаете данные. –

+0

Спасибо за ответ. Клиентское программное обеспечение будет извлекать данные [запрос] различными способами, например, поисковые запросы будут содержать множество сменных конденсаций, таких как {запись, которая находится между двумя датами, а поле X не содержит поля «строка» И Y больше 7}, а также может иметь условия, связанные с другими таблицами. Что я пытаюсь сказать, что по одному запросу может содержать много разных параметров, поэтому скажите, что я должен создать веб-метод для каждого отдельного запроса? А о Json поддерживается в платформе .net? Как я могу преобразовать его в набор данных? –

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