В простых словах tabindex
используется для фокусировки на элементах. Синтаксис: tabindex="numeric_value"
Этот numeric_value
- вес элемента. Вначале будет доступно более низкое значение.
Все, что быть сказанным, я могу, конечно, видеть разумные случаи, что ни одна из тех точек действительно не имеет значения.
Операционная система является другим соображением. В то время как Ваша база данных может потребовать больших пространств памяти и поэтому UNIX, Вашего веб-сервера - или более конкретно Вашего сервера приложений, так как Вы упоминаете, только два уровня - могут быть основанным на.NET, и поэтому потребовать Windows.
Дополнительное беспокойство - то, что базам данных нравится поднимать всю доступную память и содержать ее в резерве для того, когда она хочет использовать его. Можно вынудить это ограничить память, но это может значительно замедлить доступ к данным.
Я слушал тот подкаст, и это было забавно, но аргумент безопасности не имел никакого смысла мне. Если Вы поставили под угрозу сервер A, и тот сервер может получить доступ к данным по серверу B, то у Вас немедленно есть доступ к данным по серверу B.
Я думаю, потому что эти две машины обычно должны были бы быть оптимизированы по-разному. Кроме этого я понятия не имею, мы запускаем все наши приложения с базой данных сервера по той же машине - допустил, что мы не общедоступны - но у нас не было проблем.
я не могу предположить, что слишком много людей заботятся об одной машине, поставленной под угрозу по обоим, так как веб-приложение будет обычно иметь почти неограниченный доступ к по крайней мере данным если не схема в базе данных.
Интересующийся тем, что могли бы сказать другие.
Это зависит от приложения и цели. Когда высокая доступность и производительность не очень важны, это не плохо к не разделить DB и веб-сервер. Особенно рассматривая увеличение производительности - если appliation делает большую сумму запросов базы данных, значительная сумма сетевой нагрузки может быть удалена путем хранения всего этого в той же системе, поддержания времени отклика на низком уровне.
Я могу говорить из собственного опыта, что это часто - хорошая идея поместить веб-сервер и базу данных по различным машинам. Если у Вас есть приложение, которое является интенсивно использующим ресурсы, оно может легко заставить циклы ЦП на машине достигать максимума, по существу остановив машину. Однако, если бы Ваше приложение ограничило использование базы данных, это, вероятно, не было бы никакое грандиозное предприятие сделать, чтобы они совместно использовали сервер.
Одним фактором, который не был упомянут еще, является выравнивание нагрузки. Если Вы начинаетесь, думая о веб-сервере и базе данных как отдельные машины, Вы оптимизируете для меньшего количества сетевых распространений в прямом и обратном направлениях, и также становится легче добавить второй веб-сервер или второй механизм базы данных, когда потребности увеличиваются.
Безопасность является главным беспокойством. Идеально Ваш сервер базы данных должен находиться позади брандмауэра только с портами, требуемыми выполнить открытый доступ к данным. Ваше веб-приложение должно соединяться с сервером базы данных с учетной записью SQL, которая имеет как раз достаточно прав для приложения функционировать и не больше. Например, необходимо удалить права, которые разрешают отбрасывать объектов, и несомненно Вы не должны соединять учетные записи использования, такие как 'sa'.
, Если Вы теряете веб-сервер налету (т.е. полноценное расширение полномочий к правам администратора), худший вариант развития событий - то, что база данных Вашего приложения может быть поставлена под угрозу, но не целый сервер базы данных (как имел бы место, если бы сервер базы данных и веб-сервер были той же машиной). Если Вы зашифровали свои строки соединения с базой данных, и хакер не является достаточно здравым смыслом для дешифрования их тогда все, что Вы потеряли, веб-сервер.
Это не делает действительно вопрос (можно вполне счастливо выполнить сайт с сетью/базой данных на той же машине), это - просто самый легкий шаг в масштабировании..
Это точно, что StackOverflow сделал - запускающийся с единственной машины, выполняющей IIS/SQL Server, тогда когда это начало в большой степени загружаться, второй сервер был куплен, и SQL-сервер перешелся на это.
, Если производительность не является проблемой, не тратьте впустую деньги, покупая/поддерживая два сервера.
Я думал бы, что большим фактором будет производительность. И веб-сервер / код приложения и SQL Server кэшировали бы обычно запрашиваемые данные в памяти, и Вы уничтожаете свою производительность кэша путем выполнения их в том же пространстве памяти.
С другой стороны, отсылая к другому блоггингу Scott (Watermasyck, Telligent) - они нашли, что большинство пользователей могло ускорить веб-сайты (использующий Общественный Сервер Telligent) путем помещения базы данных по той же машине как веб-сайт. Однако в случае их клиента, обычно дб & веб-сервер является единственными приложениями на той машине, и веб-сайт не напрягает машину так очень. Затем эффективность не необходимости отправить данные по сети больше, которые восполнили увеличенную деформацию.
Ничего себе, Никто не поднимает то, что при фактической покупке SQL-сервера в маркерах 5k Вы могли бы хотеть использовать его для больше, чем своего веб-приложения. Если Ваш экспресс использования, возможно, Вы не заботитесь. Я вижу SQL-серверы, выполненные Базы данных для 20 - 30 applicaitions, так помещая его на веб-сервер не были бы умны.
, Во-вторых, зависит от того, для кого сервер. Я действительно работаю на финансовые компании и правительство, Таким образом, мы используем сумасшедшую боль в подходе задницы использования только sprocs и ограничения портов от веб-сервера до SQL. Таким образом, если веб-приложение взламывается. Единственная вещь, которую может сделать хакер, назвать sprocs, поскольку учетная запись пользователя на веб-сервере заблокирована вниз, чтобы только видеть/называть sprocs на DB. Таким образом, теперь хакер должен выяснить, как войти в DB. Если на веб-сервере хорошо его довольно легкое для получения до.
Tom корректен на этом. Некоторые другие причины состоят в том, что это не экономически эффективно и что существуют дополнительные угрозы безопасности.
веб-серверы имеют различные требования к аппаратным средствам, чем серверы баз данных. Тариф серверов баз данных лучше с большой памятью и действительно быстрым дисковым массивом, в то время как веб-серверы только требуют достаточной памяти к файлам кэша и частым запросам DB (в зависимости от Вашей установки). Относительно эффективности затрат эти два сервера не обязательно будут менее дорогими, однако отношение производительности/стоимости должно быть выше, так как Вы не имеете к различным приложениям, конкурирующим за ресурсы. Поэтому Вы, вероятно, оказываетесь перед необходимостью тратить намного больше для одного сервера, который угождает обоим и предлагает эквивалентную производительность 2 специализированным.
проблема безопасности - то, что, если единственная машина поставлена под угрозу, и веб-сервер и база данных уязвимы. С двумя серверами у Вас есть некоторая комната дыхания, поскольку 2-й сервер все еще будет защищенным (некоторое время, по крайней мере).
кроме того, существуют некоторые преимущества масштабируемости, так как Вам, вероятно, только придется поддержать несколько серверов баз данных, которые используются набором различных веб-приложений. Таким образом, у Вас есть меньше работы, чтобы сделать применение обновлений или патчей и выполнения настройки производительности. Я полагаю, что существуют инструменты управления сервером для того, чтобы сделать эти задачи легче хотя (в единственном случае машины).
Лицензии на базы данных недешевые и часто взимаются за процессор, поэтому, разделив свои веб-серверы, вы можете снизить стоимость лицензий на базы данных.
Например, если у вас есть 1 сервер, который выполняет и веб-сайт, и база данных, содержащая 8 ЦП, вам придется заплатить за лицензию на 8 ЦП. Однако, если у вас есть два сервера с 4 процессорами каждый и база данных работает на одном сервере, вам нужно будет заплатить только за 4 лицензии на ЦП