2000 г

Знакомство с ASP: счетчик для IIS за 5 минут

ЕвгенийЕвгений (от др.-греч. , «благородный»)— мужское имя. Женская форма: Евгения. Разговорная форма: Женя. Кондратов (aka Udjin)

В данной статье будут рассмотрены вариантыВариант (фр.variante, от лат.varians, родительный падеж variantis — меняющий, изменяющийся) — одна из нескольких редакций какого-либо произведения (литературного, музыкального и т. п.) или официального документа; видоизменение какой-либо части произведения (разночтения отдельных слов, строк, строф, глав). создания счетчиков для сайтов построенных на базе IIS 3, 4, 5, PWS, GoAhead. Для некоторых счетчиков - любой сервер поддерживающий работу со скрипт - машинами Windows с помощью различных расширений и модулей.(Chili-ASP, ActivePerl). При написании статьи использованы материалы с сайтов:

Примечание: данный материал рассчитан на начинающих скриптеров, по сему код максимально упрощен с целью облегчения восприятия. Код размещен по принципу "от простого - к сложному"

Классификация.

По признаку своей функциональности счетчики можно подразделить на счетчики:

  • с накоплением;
  • в рамках сессии;
  • ементами персонификации;
  • с возможностью дальнейшего анализа информации о клиенте;

По способу хранения информации:

  • хранение в переменных сессии (приложения);
  • хранение в файле на стороне сервера;
  • хранение в файле на стороне клиента;
  • хранение в базе данных;
  • комбинированные;

По способу визуализации:

  • текстовые;
  • графические;
  • информеры ( как комбинация первых двух );

Cчетчик от MicrosoftMicrosoft (Microsoft Corporation, читается «майкрософт», NASDAQ: MSFT)— одна из крупнейших транснациональных компаний по производству программного обеспечения для различного рода вычислительной техники— персональных компьютеров, игровых приставок, КПК, мобильных телефонов и прочего, разработчик наиболее широко распространённой на данный момент в мире программной платформы— семейства операционных систем Windows..

Возможности: счетчик с накоплением, поддержка "виртуальных" сайтов, отдельных asp-страниц.

Для создания данного счетчика необходимо с сайта Microsoft скачать серверный компонент PageCounter и установить его. Весь код счетчика оформлен в виде ISAPI-dll (распространяется вместе с исходными текстами) и число обращений к конкретной странице или инициалиазация/сброс счетчика вызываются как метод серверного объекта PageCounter.

Для установки счетчика на сервер необходимо скопировать PageCnt.dll в каталог \InetPub\ASPSamp\Components\PageCnt\DLL\i386 и зарегистрировать его: regsvr32 PageCnt.dll В случае, если Вы планируете подсчитывать обращения к нескольким виртуальным сайтам, Вам необходимо конфигурировать их как приложения.

Счетчик поддерживает 2 метода HITS и RESET

Код инициализации счетчика для конкретного сайта:
Распологать его лучше всего в верхней части страницы, в первых строках.

<%
   Set MyPageCounter = Server.CreateObject("IISSample.PageCounter")
   HitMe = MyPageCounter.Hits
%>

Отображение количества заходов:
Данный фрагментФрагмент (лат.fragmentum— обломок, кусок, осколок)— какая-либо часть целого. размещайте сообразуясь с дизайном своего сайта.

<% =HitMe %> 

Для подсчета на конкретной странице сайта код несколько изменится:

<%
   Set MyPageCount = Server.CreateObject("IISSample.PageCounter")
   MyPageCount.PageHit
   HitMe = MyPageCount.Hits
%> <%    =HitMe %>
или
<%    Set MyPageCounter = Server.CreateObject("IISSample.PageCounter")
%>
This Web page has been viewed <%= MyPageCount.Hits %> times.
<P>
Page Myscript.asp has been viewed <%= MyPageCounter.Hits("/VirtualDir1/Myscript.asp") %> times.

Для того, чтобы запустить счетчик с какого-либо начального значения (12345) используйте следующий код:

<%
   =HitMe + 12345
%>

Сброс счетчика (RESET).

<%
   Set MyPageCounter = Server.CreateObject("IISSample.PageCounter")
   MyPageCounter.Reset
   MyPageCounter.Reset("/VirtualDir1/Mypage.asp")
 %>

Простейшиe счетчики.

Возможности: счетчик с накоплением. Хранит информацию о количестве обращений в текстовом файле.

Используется объект VBScript (WSH) FileSystemObject.

Порядок действий.

  1. Создайте текстовый файл c:\mycount.txt
  2. Для инициализации счетчика укажите в текстовом файле начальное значение. На пример 0.
  3. В тело вашей страницы впишите следующий код:
  4. <%
    'Декларирование переменных
       Const ForReading = 1, ForWriting = 2, ForAppending = 8
       Dim fso, f, myCounter
    'Создаем объект
       Set fso = CreateObject("Scripting.FileSystemObject")
    'открываем файл на чтение, и считываем из него ВСЕ содержимое
    'если файл отсутствует, то создаем его (Trye).
       Set f = fso.OpenTextFile("c:\mycount.txt", ForReading, True)
    'отключаем обработку ошибок
       On error resume next
    'считываем содержимое, в случае пустого (Empty)значения
    'присваиваем значение 0 переменной myCounter
       myCounter = f.readAll
       If myCounter = Empty  Then
    myCounter = 0
    'если все в порядке, то увеличиваем значение переменной myCounter на 1
       Else
    myCounter = myCounter + 1
       End If
    'открываем файл на запись и обновляем значение счетчика
       Set f = fso.OpenTextFile("c:\mycount.txt", ForWriting, True)
       f.Write myCounter
    'закрываем файл
       f.Close
    'очищаем память
       Set f = nothing
       Set fso = nothing
    %>
  5. В соответствии с дизайном разместите счетчик.
  6. <%
       = myCounter
    %>

Счетчик с накоплением. Хранит данныеДанные (калька от лат.data) — это представление фактов и идей в формализованном виде, пригодном для передачи и обработки в некотором информационном процессе. в переменных сесии ( приложения ), отображает количество пользователей, находящихся в данный момент на сайте.

В рут - каталоге сайта создайте файл global.asa

Код:

<SCRIPT LANGUAGE=VBScriptVisual Basic Scripting Edition (обычно просто VBScript) — скриптовый язык программирования, интерпретируемый компонентом Windows Script Host. Он широко используется при создании скриптов в операционных системах семейства Microsoft Windows. RUNAT=Server>
SUB Session_OnStart
   Session.Timeout = 5
   Application.lock
   Application("myCounter") = Application("myCounter") + 1
   Application("visitors") = Application("visitors") + 1
   Application.unlock
END SUB
</script>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Session_OnEnd
   Application.lock
   Application("visitors") = Application("visitors") - 1
   Application.unlock
END SUB
</script>

В теле asp-страницы разместите код:

<%
   Dim vist, currentcount
   visit = Application("visitors")
   currentcount =   Application("myCounter")
%>

В соответствии с дизайном поместите счетчик общего числа обращений/текущего количества пользователей

<%
   = currentcount & "/" & visit
%>

В следующих статьях будут рассмотрены способы создания более сложных счетчиков с использованием баз данных и информеров.

Вперед >>>

 

Мы рекомендуем еще посмотреть:

ellspacing="0" cellpadding="0" border=0>

Результаты тестовых испытаний беспроводного оборудования

Radioethernet и коллизии

Компьютерные сети Ethernet – сети, использующие метод случайного доступа зарекомендовали себя как надежная и быстрая среда передачи данных, достигнув гигабайтных скоростей передачи, во многом благодаря использованию эффективного механизма множественного доступа Carrier Sense Multiple Access (CSMA). Однако, существует принципиальное ограничение пропускной способности сети при увеличении её нагруженности (увеличении числа абонентов), связанное с возрастанием вероятности возникновения коллизий – столкновении пакетов от разных абонентов.

Для уменьшения влияния этого эффекта (особенно заметного в сложных сетях с высоким трафиком), в протоколе IEEE LAN 802.3 определён механизм обнаружения коллизий – CSMA/CD (Carrier Sense Multiple Access protocol with Collision Detection). Если средой передачи информации является не кабельная сеть, а радиоэфир, то вероятность возникновения коллизий существенно возрастает, и протокол CSMA/CD становится неэффективен. Это связано, прежде всего, с тем, что работа устройства RadioEthernet возможна только в полудуплексном режиме, т.е. невозможно одновременно вести передачу и прослушивание несущей на одной и той же частоте. Таким образом, в беспроводной среде невозможно гарантировать разрешение коллизий (collision detection) и в полной мере реализовать работу протокола CSMA/CD. Поэтому для беспроводных сетей IEEE Std. 802.11 был предложен модифицированный механизм доступа к среде – CSMA/CA (Carrier Sense Multiple Access protocol with Collision Avoidance) - схема заменяющая обнаружение на предупреждение коллизий, то есть снижение вероятности их возникновения.

Кроме того, при передаче в радиоэфире мы сталкиваемся с новой проблемой: это ситуации, когда есть видимость точка-точка, но нет видимости "каждый видит всех". В этом случае нарушается основной принцип Ethernet – нет полной связности среды. Сеть работает "за рамками" сетевых протоколов, как 802.3 (нет возможности обнаруживать коллизии), так и 802.11 (не выполнено требование относительно взаимной видимости станций в рамках домена).

Как бороться с коллизиями в радиосетях?

Метод CSMA/CA предполагает следующие принципы организации связи:

  • прослушивание канала перед передачей,
  • алгоритма борьбы станций за канал,
  • фрагментации пакетов,
  • контроль доставки и перепосылку пакетов на MAC уровне для обеспечения полосой пропускания "спрятанного" узла,
  • включение механизма запросов на передачу (RTS-CTS-ACK) в случаях, когда абонент не может установить связь с сетью .

Доступ к среде по принципу Ethernet оказывается в ряде случаев малоэффективным или вообще неприемлемым. Иногда решением является применение механизма RTS/CTS , заключающегося в следующем: узел посылает на точку доступа запрос на передачу (RTS), затем доступа посылает ко всем абонентам сигнала CTS, после которого все узлы сети молчат до получения сигнала ACK (подтверждения приёма) от точки доступа, давая возможность передать информацию узлу, инициализировавшему RTS. Однако, в ряде "особо тяжёлых" случаев, когда нарушена связность среды и высок трафик, даже использование механизма RTS/CTS может оказаться недостаточным. В таких ситуациях устойчивой связи можно добиться применением технологии директивного опроса (polling), при котором центральная станция опрашивает последовательно все узлы.

Благодаря применению методов RTS/CTS/ACK и polling снижается вероятность возникновения коллизий около точки доступа между пакетами двух станций не видящих друг друга, сохранияется пропускная способность канала уменьшаются потери полосы пропускания от возникающих коллизий.

В качестве иллюстрации вышесказанного, можно привести следующий простой пример. Есть точка доступа А и две присоединённых к ней станции - В и С, которые разделены экранирующим препятствием или разнесены на такое расстояние, что находятся вне зоны видимости друг друга. В этом случае существует вероятность одновременной передачи с В и С на А, что приведёт к коллизии в точке доступа А (рис.1):

рис. 1

Ситуации, аналогичные описанным, могут встречаться в городской среде, на пересечённой местности, на крупных промышленных объектах. Однако, не все устройства реализуют механизм RTS-CTS-ACK и polling. Причиной этого явилось то, что RadioEthernet первоначально предполагалось использовать преимущественно для внутриофисных приложений, то есть в условиях полной связности среды, и лишь впоследствии оборудование для организации радиосетей стали использовать также для для outdoor- приложений.

В лаборатории компании s-networks были проведены сравнительные тесты в конфигурации, соответствующей Рис. 1 (см.описание), где моделируется столкновение параллельных работающих потоков данных с двух абонентов в процессе теста скорости передачи. Испытания проводились как с включённым протоколом polling, так и без него. Результаты приведены на рис. 2. Как видно из рисунка, включение директивного о проса позволяет поддерживать высокую пропускную способность сети при высокой загруженности в таких критичестих ситуациях.

Рис. 2

Есть решение!

Одним из устройств, поддерживающим протокол директивных запросов на передачу (polling), был радиомаршрутизатор "WaveCampus" (Lucent Technologies) – довольно дорогое устройство, включающее в себя процессор серии 486 и сетевой интерфейс WaveLan. Для работы в сложных кампусных сетях с высоким трафиком WaveCampus конфигурировался в виде вызывающей базовой станции (Polling BaseStation) и вызываемой абонентской станции (Satellite Station). Теперь аналогичное программное обеспечение появилось и в варианте ПО, загружаемого в прибор WavePoint-II, который в результате поддерживает как polling так и non-polling CSMA/CA базовую станцию, а так же маршрутизацию по протоколам RIP-1 и RIP-2.

Резюме

Появилось удобное решение проблемы создания эффективно работающей в условиях высоких помех и нагрузок, в том числе городской сети (outdoor), на базе устройств Lucent Technologies с использованием технологии передачи с запросом polling, позволяющем повысить пропускную способность сети в условиях сильно зашумленного эфира.

Базовым устройством нового семейства радиооборудования является радиокарта WaveLAN IEEE 802.11 PC card, которая также используется в составе радиомоста WavePoint II. На базе радиомоста WavePoint II создана базовая и абонентская станции. Устройства WavePoint II способны работать одновременно со старой и новой версиями радиокарт WaveLAN IEEE 802.11.

Для поддержки всех функций требуется обновленное программное обеспечение.

Итак, представляем Вам решение "point to multipoint", заменяющее ASK - WaveCAMPUS. Новое семейство Software состоит из трёх перечисленных ниже продуктов, работает так же, как и WaveCAMPUS.

  1. WP II Upgrade Kit - Campus Base / comcode: 747010001 / ERP ($695);
  2. WP II Upgrade Kit - Campus Satellite / comcode: 747010003 / ERP ($395);
  3. PC Upgrade Kit - Campus Satellite NDIS PC (PC running WIN/95 or WIN/98) / comcode: 747010004 / ERP: ($95).

WavePoint-II Software Details

2009 IT и оборудование для бизнеса, S-NETWORKS. Информационные технологии и Информационное оборудование