Домой Овощи Lifehack: Используем поиск Google по полной для эффективного крауд-маркетинга. Просмотр выдачи Google в других странах

Lifehack: Используем поиск Google по полной для эффективного крауд-маркетинга. Просмотр выдачи Google в других странах

Компоненты Indy, применяемые в Delphi 6.

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

Допустим, требуется реализовать специализированную серверную логику, которая не заложена в стандартные Web-серверы. Для решения такого класса задач в состав Delphi включена библиотека Internet Direct (Indy) компании Nevrona Designs (http://www.nevrona.com/Indy/). Данная библиотека, разработанная специально для Borland Delphi, насчитывает уже восемь версий, последняя из которых вошла в состав новой версии Delphi. Набор компонентов разделен на три группы: клиентские (Indy Client), серверные (Indy Servers) и вспомогательные (Indy Misc).

Indy Clients и Indy Server s

Большинство компонентов Indy Client и Indy Servers представляют собой пары, соответствующие клиентским и серверным частям протоколов и служб (за исключением отдельных, в основном серверных, компонентов типа TunnelMaster и TunnelSlave), и позволяют использовать такие протоколы, как TCP/IP, UDP, NNTP, SMTP, FTP, HTTP, а также службы ECHO, FINGER, WHOIS и т.д.

Клиентские компоненты Indy написаны с использованием сокетов. Сокет со стороны клиента требует соединения с сервером. Если связь установлена, клиент и сервер могут начинать обмен сообщениями. Эти сообщения носят различный характер, но обычно обмен происходит по определенному протоколу (например, НТТР)

TIdTCPClient и TIdTCPServer

Эти компоненты используются для поддержки одного из основных сетевых протоколов - ТСР (Transmission Control Protocol), а также являются базовыми классами для компонентов TIdSMTP и TIdFTP. Класс TIdTCPServer обладает свойством ThreadMgr, по умолчанию равным nil. Если ThreadMgr равно nil, когда TIdTCPServer активизирован, класс TIdThreadMgrDeafault будет создан неявно. В противном случае используется установленный менеджер процессов.

TIdUDPClient и TIdUDPServer

Эти компоненты используются для поддержки сетевого протокола UDP (User Datagram Protocol), а также являются базовыми классами для ряда других компонентов Indy.

TIdChargenServer

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

TIdDayTime и TIdDayTimeServer

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

TIdDNSResolver

Это клиентский компонент, обслуживающий запросы от сервера DNS (Domain Name Service). Запросы DNS-сервера предназначены для замены имени компьютера на его IP-адрес. TIdDNSResolver является наследником класса TIdUDPClient.

TIdDICTServer

Серверный компонент, поддерживающий протокол Dictionary Server Protocol (DICT) - серверный словарь на базе TCP-протокола, который позволяет клиенту получать доступ к словарю естественного языка.

TIdDISCARDServer

Серверный компонент, поддерживающий сервер записей. Записи могут быть использованы как инструмент отладки и проведения измерений. Служба записей просто передает любые данные тому, кто их готов принимать.

TI dEcho и TI dECHOServer

Компоненты предназначены для обеспечения службы отклика, используемой, как правило, для проверки работоспособности сети. Клиент посылает текстовое сообщение серверу, сервер возвращает сообщение клиенту. Если сообщение искажено, сеть работает с ошибками.

TIdFinger и TIdFingerServer

Компоненты предназначены для обеспечения протокола, дающего пользователю возможность запрашивать данные относительно присутствия в системе других пользователей. Некоторые серверы обрабатывают такие клиентские запросы. Использование этой пары компонентов позволит выполнить обслуживание клиентских запросов, выясняющих наличие в системе других пользователей.

TIdFTP

Компонент включает полную поддержку протокола передачи файлов - FTP (File Transfer Protocol). Поддерживается пассивная и активная передача данных, а также такие операции, как GET и PUT, удаление директорий, получение квот, размеров файлов и каталогов. В своей работе TI dFTP использует класс TIdSimpleServer. Когда выполняется передача файла по протоколу FTP, вторичное соединение по протоколу TCP открыто для передачи данных и закрывается, когда данные были переданы. Такое соединение называется «канал передачи данных», уникальный для каждого передаваемого файла.

TIdGopher и TIdGopherServer

Эти компоненты предназначены для обеспечения сетевого протокола, вытесненного в последнее время из WWW (World Wide Web) протоколом HTTP. Сервер, реализующий этот протокол, обеспечивает иерархическую распределенную систему поддержки документооборота. Пример использования этой пары компонентов, находящийся в директории \demos\indy\GopherClient и \demos\indy \GopherServer, демонстрирует, как при помощи этого протокола можно предоставлять в локальной сети информацию о файлах, находящихся на вашем компьютере, в том числе и о закрытых.

TIdHostNameServer

Серверный компонент, предназначенный для передачи клиентам локального имени сервера.

TIdHTTP и TIdHTTPServer

Компоненты используются для обеспечения сетевого протокола HTTP (поддерживаются версии 1.0 и 1.1, включая операции GET, POST и HEAD). Кроме того, обеспечивается поддержка аутентификации и применения proxy-серверов. Серверный компонент используется для предоставления услуг другому Web-серверу, поддерживающему данный протокол. TIdHTTPServer облегчает реализацию таких функций, как cookies, управление состояниями и др.

TIdIcmpClient

Клиентский компонент, предназначенный для обеспечения протокола ICMP (Internet Control Message Protocol), с помощью которого осуществляется выполнение операции ping и трассировка сети.

TIdPOP3

Клиентский компонент, предназначенный для обеспечения протокола POP (Post Office Protocol), включая поддержку MIME-кодирования и декодирования, а также передачу многобайтных символов.

TIdIMAP4Server

Серверный компонент, предназначенный для поддержки операций по протоколу IMAP (Internet Message Access Protocol) на сервере. Протокол позволяет производить поиск сообщений электронной почты на сервере. Различие протоколов IMAP и РОР заключается в том, что протоколу РОР требуется дополнительная память для хранения данных, а протокол IMAP обращается к серверу вместо клиентской машины. IMAP4 создавался для замены POP3, однако до сих пор протокол POP3 остается широко используемым стандартом.

TIdIRCServer

Серверный компонент, предназначенный для поддержки наиболее часто используемых в Интернете сервисных операций, обычно называемых chat (для дружеских бесед). Компонент обеспечивает базовые конструктивные блоки для IRC (Internet Relay Chat) сервера.

TIdMappedPortTCP

Серверный компонент, предназначенный для создания отображаемых портов, которые часто используются в proxy-серверах. Методы этого компонента позволяют отобразить один порт на другой. Например, порт 80 может быть отображен к порту 3000, и все запросы к первому порту (порт 80) будут переадресованы на второй порт (порт 3000).

TIdNNTP и TIdNNTPServer

Эти компоненты необходимы для обеспечения сетевого протокола NNTP (Network News Transfer Protocol), используемого в службах новостей. Клиентский компонент включает поддержку MIME-кодирования и декодирования, а также поддержку многобайтных символов и альтернативных кодировок. Серверный компонент позволяет создавать серверы новостей. Важно отметить, что TIdNNTPServer является не полнофункциональным сервером новостей, а компонентом, обеспечивающим базовые возможности для такого сервера.

TIdQOTD и TIdQOTDServer

Компоненты используются для обеспечения службы «цитат дня» (Quote of the Day). С помощью клиентского компонента осуществляется соединение с экземпляром серверного компонента для получения ежедневной цитаты. Каждый экземпляр сервера содержит уникальную базу данных цитат.

TIdSMTP

Клиентский компонент, предназначенный для применения в приложениях протокола SMTP (Simple Mail Transfer Protocol), обеспечения поддержки аутентификации, MIME-кодирования и декодирования, а также для поддержки многобайтных символов.

TIdSNTP

Клиентский компонент, предназначенный для обеспечения протокола SNTP (Simple Network Time Protocol) - службы времени. Может использоваться для соединения с любой службой времени с целью определения текущих даты и времени.

TIdSimpleServer

Серверный компонент, обеспечивающий облегченный ТСР-сервер. Позволяет организовывать соединение «точка-точка». Используется для создания серверов с единственным пользователем, то есть может единовременно обслуживать только одно подключение. В отличие от компонента TIdTCPServer не порождает вторичные процессы при ожидании запросов от клиентов и при обработке этих запросов. Другими словами, если сервер обслуживает запрос от какого-то клиента, а в это время к нему обращается для подключения другой клиент, то он будет блокирован до конца обработки первого запроса.

TIdTelnet и TIdTelnetServer

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

TIdTime и TIdTimeServer

Клиентский компонент является альтернативой компонента TIdSNTP для определения времени. Важно отметить, что форматы этих двух протоколов различны. TIdTime основан на формате RFC 868 (возвращает время во внутреннем стандарте ОС UNIX, выполняя все необходимые преобразования). Серверный компонент подобен по функционированию DayTime-серверу. Может использоваться для реализации службы времени на локальном компьютере. Дополнительного кода не требуется, достаточно создать экземпляр TIdTimeServer, который будет возвращать время внутренних часов серверного компьютера.

TIdTrivialFTP и TIdTrivialFTPServer

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

TIdTunnelMaster и TIdTunnelSlave

Серверные туннельные компоненты используются в proxy-серверах для организации множественных логических соединений поверх одного физического (туннеля). Эти классы можно применять для различных целей, например для организации секретного соединения по несекретным каналам.

TIdWhois и TIdWhoIsServer

Этот клиентский компонент осуществляет соединение с любым стандартным Whois-сервером, позволяющим получить информацию о доменах. Серверный компонент обеспечивает базовую функциональность NIC сервера.

Indy Misc

Страница палитры компонентов Indy Misc (Indy Miscellaneous Components) включает кодеки BASE64, UUE, Quoted Printable и другие распространенные форматы обмена данными через e-mail, кодеры (MD2, MD4 и MD5) для стандартов криптографии, используемые для хранения паролей и электронных подписей в необратимом (трудно поддающемся дешифрованию) виде, а также многие другие полезные компоненты и утилиты, часто применяемые при разработке Интернет-приложений.

TIdAntiFreeze

Вследствие блочной организации алгоритмов компонентов Indy зачастую создается впечатление, что приложение «зависло», в то время как соединение работает. Чтобы исключить использование вторичных процессов (threads) при организации коммуникаций для предотвращения замораживания (freeze) приложения, достаточно поместить на форму указанный компонент.

Компонент работает, анализируя запросы из стека протокола TCP/IP и посылая сообщения приложению во время задержки при возникновении блокировки внешних соединений, что создает иллюзию работающего кода. Поскольку воздействие компонента осуществляется на блокированные соединения только для главного процесса, использование TIdAntiFreeze во вторичных процессах приложения не требуется. Необходимо помнить, что компонент TIdAntiFreeze замедляет работу соединений, поскольку работа главного процесса периодически прерывается для обработки сообщений. Отсюда следует, что надо заботиться о том, чтобы разрабатываемое приложение не тратило слишком много времени на обработку сообщений, включая OnClick, OnPaint, OnResize и др. В какой-то степени этим можно управлять через свойства класса TIdAntiFreeze. Использование данного компонента не является обязательным, но позволяет решить проблему синхронизации соединений с визуальным интерфейсом приложения.

TIdDateTimeStamp

Класс для выполнения математических действий с датой и временем, связанных с тем, что Интернет-протоколы используют различные форматы даты и времени; кроме того, клиенты и серверы могут находиться в различных часовых поясах.

TIdIPWatch

Это компонент, основанный на таймере, который постоянно контролирует изменения в IP-адресе компьютера. События компонента возникают, когда выявлено изменение. Указанный компонент обычно используют для обнаружения факта появления связи компьютера с Интернетом или любой другой сетью. Изменение в IP-адресе в этой ситуации может произойти из-за назначения IP-адреса DHCP-сервером (Dynamic Host Configuration Protocol) при соединении с новой сетью.

TIdLogDebug

Назначение данного компонента - перехватывать события любого клиентского или серверного компонента и помещать запись о событии в указанный файл. Этот компонент очень полезен для отладки компонентов Indy.

TIdMessage

Компонент используется в комбинации с другими компонентами, чтобы должным образом расшифровать или кодировать сообщения. Это могут быть POP-, SMTP- и NNTP-компоненты. Класс поддерживает MIME-шифрование и расшифровку, многобайтные символы и кодировку ISO.

TIdNetworkCalculator

Один из немногих компонентов Indy, который можно использовать при конструировании приложений. Сетевой калькулятор может служить для вычислений, производимых над IP-адресами, включая сетевые маски, подсеть, классы сети и т.д.

TIdThreadMgrDefault

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

TIdThreadMgrPool

Более продвинутый компонент управления процессами, чем TIdThreadMgrDefault, потому что он объединяет процессы, а не создает или уничтожает их по требованию.

TIdVCard

VСard - электронный эквивалент визитной карточки, может содержать персональную информацию владельца, графические данные.

TIdIMFDecoder

Предназначен для декодирования Интернет-сообщений. Является наследником класса TIdCoder, так же как и все остальные компоненты-кодировщики. Класс TIdCoder осуществляет декодирование в соответствии со стандартом формата текстовых Интернет-сообщений ARPA RFS-822, предложенным в августе 1982 года, и стандартом для обмена USENET-сообщениями RFC 1036, предложенным в декабре 1987 года.

Компонент расширяет возможности класса TIdCoder, позволяя обнаруживать формат RFS-822 по контексту заголовков, обеспечивая режим расшифровки при приеме и MIME-шифрование и расшифровку. Компонент TIdIMFDecoder используется в классе TIdMessageClient для декодирования получаемых и передаваемых сообщений.

TIdQuotedPrintableEncoder

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

TIdBase64Encoder

Реализует еще один алгоритм шифрования, который дает возможность передавать непечатаемые символы.

TIdUUEncoder

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

TIdXXEncoder

Этот метод шифрования едва ли когда-либо будет использоваться. По сути, это то же самое UU-кодирование, но с другой таблицей шифрования.

TIdCoderMD2

Компоненты с различными разновидностями алгоритма шифрования MD (Message Digest). Все они основаны на перемешивании, являются односторонними и не имеют алгоритмов расшифровывания.

Компоненты протокольных клиентов и серверов могут быть использованы для разработки серверных и клиентских Интернет-приложений, совместно или взамен базовых (ClientSocket, ServerSocket) и других компонентов из состава палитры Internet и Fastnet. Компоненты Indy не используют архитектуру WebBroker, реализуя поддержку Интернет-протоколов и служб на нижнем уровне непосредственно в своем исходном коде (исходные коды прилагаются).

TIdConnectionInterceptOpenSSL и TIdServerInterceptOpenSSL

Протокол SSL - Secure Sockets Layer (Секретный Уровень Сокетов), обеспечивающий секретность и надежность связи между двумя приложениями, имеет два уровня. На низком уровне многоуровневого транспортного протокола (например, TCP) SSL является протоколом записи и используется для инкапсуляции различных протоколов более высокого уровня. Преимущество SSL состоит в том, что он является независимым протоколом прикладной программы, при этом протокол более высокого уровня может быть использован поверх SSL.

SSL осуществляет защиту связи, которая имеет три основные функции: обеспечение конфиденциального соединения; шифрование с открытым ключом (используется для подтверждения подлинности адресата); поддержка надежности передачи данных.

  • Симметричная криптография используется для шифрования данных (например, DES, RC4 и т.д.).
  • Цифровая подпись обеспечивается при помощи асимметричного шифрования с открытым ключом (например, RSA, DSS и т.п.).
  • Надежность связи, транспортировка сообщения включает проверку целостности сообщения посредством корректирующих кодов MAC, безопасных хеш-функций (например, SHA, MD5, и т.д.) с использованием MAC-вычислений.

В сочетании с протоколом HTTP и аутентификацией сервера протокол SSL обеспечивает необходимые функции шифрования и в дальнейшем поддерживает установленное соединение, перепроверяя подлинность Web-сервера и т.п. Важно понять, что SSL только защищает связь в процессе передачи данных, а не заменяет другие защитные механизмы.

Компоненты TIdConnectionInterceptOpenSSL и TIdServerInterceptOpenSSL обеспечивают соединение как со стороны клиента, так и со стороны сервера в соответствии с протоколом SSL. Необходимо отметить, что компоненты TIdConnectionInterceptOpenSSL и TIdServerInterceptOpenSSL есть только в Delphi 6, а в Kylix отсутствуют. Это связано со сложностью протокола, который в случае реализации Windows основан на функциях операционной системы.

Примеры использования компонентов Indy можно найти в каталогах /Delphi6/Demos/Indy. Всего библиотека Indy в версии 8.0 содержит 69 компонентов. Заявлено, что в версии 9.0 указанная библиотека будет содержать 86 компонентов. Все компоненты унифицированы и включены как в Delphi 6, так и в Kylix, что позволяет использовать их для разработки кросс-платформенных приложений. Все компоненты Indy поддерживают многопоточность.

В компонентах Indy реализована почти вся функциональность, имеющаяся в компонентах Internet и Fastnet, что наглядно показано в таблице.

Компоненты Fastn et Компоненты Indy Назначение компонентов
1 TserverSocket, TClientSocket TIdTCPserverSocket, TIdTCPClientSocket Взаимодействие двух компьютеров (клиента и сервера) с помощью протокола TCP/IP
2 TNMDayTime TIdDayTime, TIdDayTimeServer Запрос сервера о текущем времени
3 TNMEcho TIdEcho, TIdEchoServer Используются для связи с сервером отклика
4 TNMFinger TIdFinger, TIdFingerServer Используются для получения информации о пользователе с поискового Интернет-сервера
5 TNMFTP TIdFTP, TIdTrivialFTP, TIdTrivialFTPServer Обеспечивают передачу файлов с помощью протокола FTP
6 TNMHTTP TIdHTTP, TIdHTTPServer Используют протокол HTTP для обмена данными
7 TNMMsgServ, TNMMsg Используются для передачи простых текстовых сообщений от клиента к серверу
8 TNMNNTP TIdNNTP, TIdNNTPServer Поддерживают обмен данными с сервером новостей
9 TNMPOP3 TIdPOP3 Используются для получения электронной почты с почтового сервера с помощью протокола POP3
10 TNMSMTP TIdSMTP Используются для отправки электронной почты через почтовый сервер Интернет
11 TNMStrm, TNMStrmServ Передают двоичные данные, записанные в поток, с помощью протокола TCP/IP
12 TNMUDP TIdUDP, TIdUDPServer Осуществляют пересылку данных с использованием протокола UDP
13 TpowerSock, TNMGeneralServer Инкапсулированные в виде компонентов классы, которые являются базовыми для написания собственных клиентов (Powersock) и серверов (NMGeneralServer)
14 TNMUUProcessor TIdUUEncoder, TIdUUDecoder Осуществляют перекодировку двоичных файлов в формат MIME или UUENCODE
15 TNMURL Перекодирует строки в формат HTML и осуществляет обратную перекодировку

Исключение составляют такие классы, как TNMMsgServ, TNMMsg, TNMStrm, TNMStrmServ, TpowerSock, TNMGeneralServer, TNMURL, которые либо реализуют морально устаревшие протоколы, либо обладают функциональностью, реализованной в большой группе альтернативных классов.

Однако в отличие от своих предшественников - компонентов Internet и Fastnet, в Indy богаче представлены серверные компоненты и компоненты перекодирования и шифрования данных, а также поддержка аутентификации (палитра Indy Misc). Как видно из приведенной выше таблицы, основные протоколы и службы обеспечиваются не только клиентскими, но и серверными компонентами. Это службы времени, отклика, получения информации о пользователе, а также протоколы HTTP, NNTP, UDP и даже простейший вариант FTP.

Некоторые примеры применения компонентов Indy

В компонентах Indy, которые содержатся в Delphi, IP-адрес определяется в свойстве Host, как правило, только в клиентских приложениях. Компоненты, размещаемые на сервере, имеют методы, позволяющие начать или прекратить опрос соответствующего порта, - например изменение свойства Active компонента IdTCPServer начинает или прекращает опрос соответствующего порта. После установки связи между клиентом и сервером можно начинать передачу данных.

В компонентах Indy большое внимание уделяется безопасности и надежности при работе с данными. Например, в компоненте IdTCPClient есть методы Connect и Disconnect. Применяя технику программирования, как в приведенном ниже коде со стороны клиента:

with TCPClient do begin Connect; try lstMain.Items.Add(ReadLn); finally Disconnect; end; end;

и используя свойство Connection, передаваемое в качестве параметра экземпляра AThread класса TIdPeerThread, со стороны сервера:

with AThread.Connection do begin WriteLn("Hello from Basic Indy Server server."); Disconnect; end;

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

Обратите внимание на методы ReadLn и WriteLn соответствующих классов - они напоминают стандартные операторы ввода-вывода Pascal. Это дань технике программирования в UNIX, где большинство системных операций выполняются благодаря чтению и записи в соответствующие файлы.

Так же как у компонентов Fastnet, у классов компонентов Indy имеются события, при помощи которых можно организовывать событийное управление. Например, можно организовать вывод сообщения на форму при соединении с клиентом:

procedure TForm1.IdECHOServer1Connect(AThread: TIdPeerThread); begin lblStatus.caption:= "[ Serving client ]"; end;

В Indy представлены компоненты, реализующие протоколы с клиентскими и серверными частями, присущие только этой библиотеке. Компоненты TIdGopherServer и TIdGopher, благодаря методам GetExtendedMenu, GetFile, GetMenu, GetTextFile на клиентской стороне и ReturnGopherItem, SendDirectoryEntry - на стороне сервера, помогают осуществить просмотр файлов различного типа, в том числе помеченных как скрытые, а также директорий на удаленном компьютере (подобно тому, как это делает команда dir *.* в операционной системе MS-DOS).

При помощи компонентов IdSMTP и IdMessage можно легко создать свое Web-приложение, способное отправлять почту по протоколу SMTP.

При этом класс IdMessage (один из 23 компонентов со страницы Indy Misc) отвечает за формирование сообщения, что вытекает из его названия, а IdSMTP - за организацию соединения с почтовым сервером.

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

  • запросить соединение с сервером;
  • осуществить запросы к серверу на чтение и запись (в зависимости от типа сервера шаг выполняется единожды или повторяется много раз);
  • закончить соединение с сервером и разъединиться.

Компоненты Indy разрабатывались так, чтобы обеспечить сверхвысокий уровень абстракции. Запутанность и подробности стека TCP/IP скрыты от программиста, с тем чтобы он мог сосредоточиться на текущих задачах.

Следующий небольшой пример показывает типичную сессию клиентского компонента:

with IndyClient do begin Host:= "zip.pbe.com"; // Host to call Port:= 6000; // Port to call the server on Connect; try // Your code goes here finally Disconnect; end; end;

В примере, даже если соединение с сервером не будет установлено, связь корректно разорвется благодаря использованию оператора try-finally.

Серверные компоненты Indy описывают разнообразные модели серверов, которые можно использовать в зависимости от потребностей и применяемого протокола.

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

Иными словами, для каждого клиентского подключения класс TIdTCPServer использует уникальный вторичный поток, вызывая обработчик события OnExecute этого потока. Формальным параметром метода OnExecute является ссылка на экземпляр класса Athread, соответствующего созданному потоку. Свойство Connection этого класса - ссылка на класс TIdTCPConnection, экземпляр которого создается для обработки клиентского запроса. TIdTCPConnection поддерживает чтение и запись через соединение, а также установление и завершение сеанса связи.

Протокол UDP работает без предварительной установки соединения с сервером (каждый посланный пакет является самостоятельным набором данных, а не частью большой сессии или соединения). В то время как TIdTCPServer порождает отдельные потоки для каждого соединения, TIdUDPServer использует или главный поток, или единственный вторичный поток, который обрабатывает все запросы протокола UDP. Когда TIdUDPServer активен, создается поток для прослушивания входящих UDP-пакетов. Для каждого полученного пакета возникает событие OnUDPRead или в основном потоке, или в контексте прослушивающего потока - в зависимости от значения свойства ThreadedEvent. Когда ThreadedEvent принимает значение False, событие возникает в основном потоке, в противном случае - в прослушивающем потоке. Пока происходит обработка события, другие операции сервера блокируются. Поэтому важно следить, чтобы процедуры OnUDPRead выполнялись как можно быстрее.

Если нужно создать клиентское приложение нового клиента для существующего сервера с использованием существующего протокола, ваша задача состоит исключительно в разработке и отладке клиентского приложения. Однако, когда приходится разрабатывать и клиентское, и серверное приложения с применением существующего или нового протокола, мы сталкиваемся с классической проблемой «яйца и курицы». С чего начинать программирование - с клиента или с сервера?

Очевидно, в итоге должны быть созданы и клиент, и сервер. Для многих приложений, особенно использующих текстовый протокол (например, HTTP), проще начать создание приложения с проектирования сервера. А для его отладки имеется удобный клиент, который уже существует. Это - консольное приложение Telnet, которое имеется и на Windows, и на UNIX.

Если набрать консольную команду telnet 127.0.0.1 80 с IP-адресом локального компьютера и номером порта 80, используемым по умолчанию Web-серверами, то приложение откликнется текстом, представленным на рис. 6, в случае ОС Windows 2000 и IIS 5.0.

Для создания самого простого сервера с использованием компонентов Indy необходимо:

Если необходимо спроектировать сервер, который будет не только корректно информировать своих клиентов о разрыве соединения, но и выдавать для них информацию о возникших ошибочных ситуациях, применяйте оператор try-except вместо try-finally - например, как показано в следующем примере:

procedure TDataModule1.IdTCPServer1Execute(AThread: IdPeerThread); var s: String; begin with AThread.Connection do try try s:= ReadLn; // Perform the task of the server here // if no exception is raised, // write out the server"s response WriteLn(s); except on e: Exception do begin WriteLn(e.Message); end; //on end; //try except finally Disconnect; end; end;

Этот небольшой пример демонстрирует этапы создания простого текстового сервера, а также способы его отладки.

Вышеописанный сервер является типичным примером организации современного распределенного вычисления.

Особенности создания многозвенных приложений

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

Далее мы займемся созданием сервера доступа к данным, назначение которого состоит в том, чтобы возвращать данные из базы данных. Этот сервер, однако, не осуществляет чтения и записи в файлы базы данных непосредственно. Вместо этого он связывается с сервером базы данных в поисках данных, требуемых клиентом.

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

  1. Создать новый проект.
  2. Поместить на главную форму проекта экземпляр компонента TIdTCPServer с палитры Indy Servers.
  3. Присвоить свойству DefaultPort экземпляра класса TIdTCPServer1 значение 6001 (рекомендуется присваивать большие значения, чтобы избежать дублирования номеров портов у различных приложений), а свойству Active - значение true.
  4. Добавить в проект новый модуль, выбрав команду File | New | Data Module, и поместить на него экземпляры компонентов SQLConnection и SQLDataSet с закладки dbExpress на палитре компонентов.
  5. Установить свойство ConnectionName класса SQLConnection в IBLocal и LoginPrompt в False. Если вы не конфигурировали IBLocal на базу данных employee.gdb, сначала проделайте эту процедуру.
  6. Установить свойство SQLConnection класса SQLDataSet в SQLConnection1 и присвоить свойству CommandText оператор SQL: select CUSTOMER, CONTACT_FIRST, CONTACT_LAST from CUSTOMER where CUST_NO = :cust.

Часто одно новшество, становится причиной конца другого. До недавнего времени на Blogger работала система поиска основанного на персональном поиске Google. Нам был, и до сих пор доступен, виджет «Окно поиска », но он не работает . Вместо этого Google незаметно ввёл простенький поиск по блогу для Blogger. С одной стороны, это упрощение и потеря ajax решения, а с другой - понятный и отслеживаемый в том же Google Analytics механизм.

  • Как создать форму поиска по блогу для Blogger

Виджет поиска по блогу для Blogger

Начнём с того, что в списке виджетов на Blogger до сих пор есть «Окно поиска», которое позволяет выполнять поиск по блогу, блогроллу и другому указанному вами содержанию на основе системы пользовательского поиска Google.


Виджет «Окно поиска» не работает

Вот только даже на официальном блоге Google, в браузере Chrome, с отключенным AdBlock, по точному ключевому слову, он ничего не выдаёт и непонятно будет ли это исправлено в будущем или нет. Проблема появилась уже давно, а результатов её решения не видно.

Здесь следует отметить и то, что пользовательский поиск Google работает в защищенном режиме, по протоколу HTTPS, для обеспечения конфиденциальности данных пользователя. С одной стороны, это хорошо, но с другой - невозможно узнать, что пользователи искали на блоге, а ведь это действительно интересно.

Поиск по сайту от Google для Blogger

На самом деле в Google поступили хитро. Что-то исправлять не стали, но написал JavaScript-код, с использованием билиотеки jQuery, который делает редирект на Google поиск.

$(".searchBox input").on("keypress", function(ev) { if (ev.which == 13) { window.location.href = "https://www.google.com/search?q=site%3A" + window.location.hostname + "%20" + encodeURIComponent ($(this).val()); } });

При этом HTML-код формы поиска для вставки в обычный HTML/JavaScript виджет может выглядеть так:

Таким образом, пользователь вводит поисковый запрос в форму поиска, кликает кнопку Enter и скрипт перенаправляет его на страницу результата Google поиска по запросу:

site:[доменное имя] [поисковый запрос]

Решение вполне универсально, но не забывайте, что для него нужен jQuery!

Как работает поиск по блогу для Blogger?

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

Http://www.?updated-max=2013-11-21T08:00:00%2B02:00&max-results=7

Следует отметить, что в дефолтном (по умолчанию) файле robots.txt папка /search запрещена к индексации, вот такой строкой:

Disallow: /search

Это правильно. В противном случае вы получите очень много дублей страниц, что может привести к не самым приятным последствиям.

Главное, что поиск по блогу теперь осуществляется через этот адрес, с указанием параметра q в котором передается запрос, представляющий поисковую фразу, например:

Http://www.?q=php

В данном случае будет произведен поиск сообщений, в которых присутствует фраза «php». Примечательно, что здесь отсутствует морфология, т.е. ведётся поиск по точному совпадению с указанной фразой .

Как создать форму поиска по блогу для Blogger?

Нужный нам механизм есть. Дело за малым — вставить на блог форму поиска. Для этого мы будем использовать виджет HTML/JavaScript, который позволяет добавлять в свой блог приложения или другие коды независимых производителей, т.е. нас любимых.


Виджет html/javascript для Blogger

Просто зайдите в раздел «Дизайн » своего блога и кликните ссылку «Добавить гаджет » в нужном вам разделе. В открывшемся окне, найдите и кликните «плюсик » у гаджета HTML/JavaScript. В открывшееся окне, в поле «Название» укажите заголовок формы, например: Поиск по блогу, - а в поле «Содержание» пропишите следующий HTML-код:

Очевидно, что вместо www.сайт вам нужно будет прописать доменное имя своего блога. Следует также отметить, что я привёл самый простой и рабочий вариант, который вы можете изменить и оформить так, как вам будет угодно. Нажмите кнопку «Сохранить ».

Результат работы поиска выглядит на моём блоге следующим образом:


Результат поиска по блогу для Blogger

Следует отметить, что запрос не остаётся в поле формы поиска, да и подсветка ключевых слов отсутствует. Тем не менее, это лучше чем ничего. Ну и при желании эти проблемы можно устранить, используя тот же JavaScript.

Подведём итоги

Создание же самой формы поиска и добавление её на блог через гаджет HTML/JavaScript не представляет собой что-то сложное. В статье я привёл простейший, но вполне рабочий вариант, который использую и сам. На этом у меня всё. Спасибо за внимание. Удачи!

в 8:00 Изменить сообщение 5 комментариев

Популярность сети Интернет продолжает расти. Сегодня ее услугами, по оценкам экспертов, пользуются порядка 14% населения в возрасте старше пятнадцати лет (то есть около 694 млн человек). Причем при оценке аудитории Глобальной сети не учитываются пользователи, имеющие мобильный доступ в Интернет и посещающие интернет-кафе, клубы и учебные классы. Лидирующие позиции по количеству пользователей Интернета по-прежнему занимают США (152 млн человек), затем следует Китай (72 млн) и замыкает эту тройку Япония (52 млн).

Cледует отметить опережающую динамику третьего мира. В настоящий момент только четверть всех пользователей Интернета проживают в США, в то время как десять лет назад их доля составляла более двух третей. Тем не менее нельзя утверждать, что Интернет стал одинаково популярным по всему миру. Пока он наиболее распространен в США, странах Европы и Азии. Если же говорить о странах Латинской Америки, то там он не столь популярен. Например, занимающая лидирующие позиции по количеству пользователей Интернета в Латинской Америке Бразилия имеет всего 13,1 млн подключений к Сети. А такой континент, как Австралия, находится лишь на 15-м месте (9,7 млн пользователей).

Если же говорить о Европе, то там лидерами по количеству пользователей сети Интернет являются Германия и Великобритания, которые занимают соответственно пятое и четвертое места в мировом рейтинге (32 и 30 млн пользователей). Что касается самых популярных интернет-ресурсов, то тут первые три места отданы сайтам таких компаний, как Microsoft (538,6 млн посещений), Google (495,8 млн) и Yahoo! (480,2 млн). Далее следует популярная американская интернет-биржа eBay, которая занимает четвертую позицию (269 млн посещений).

Если же говорить о типе контента, который привлекает сегодня пользователей Интернета, то в первую очередь следует назвать блоги, популярность которых растет как на дрожжах. Напомним, что блог, или веб-лог (от англ. blog, web log - виртуальный сетевой журнал либо дневник событий), - это веб-сайт, основным содержимым которого являются регулярно добавляемые записи, изображения или другое мультимедийное наполнение. По авторскому составу блоги могут быть личными, групповыми (корпоративными, клубными и пр.) или общественными (открытыми); по содержанию - личными (открытыми или закрытыми), тематическими или общими. Блоги могут объединяться в сети по тематическим признакам или по другим критериям. Популярность блогов в качестве среды сетевого общения в настоящий момент гораздо выше, чем у электронной почты, новостных групп, веб-форумов и чатов. Причем веб-логи порой настолько тесно переплетены между собой, что некоторые пользователи уже считают их своего рода коллективным разумом сетевого сообщества. В России наибольшую известность получили такие блоггерские системы, как LiveJournal.com, Liveinternet.ru и Diary.ru. Но лидером по популярности среди блог-хостингов в Рунете остается Livejournal.com - по статистике «Яндекса», он значительно опережает российские аналоги Liveinternet.ru и Diary.ru.

Как известно, современный пользователь Интернета обычно ищет информацию в Сети при помощи поисковых сервисов. Но, поскольку поиск в блогах стандартными поисковыми средствами, в силу специфики их создания, форматов и поддерживающего софта, несколько затруднен, возникла необходимость в специализированных поисковых сервисах, которые выполняли бы поиск исключительно по блогам.

Например, специалисты Амстердамского университета провели тщательный анализ логов поисковика Blogdigger.com за май 2005 года (это 1,2 млн запросов), изучив его с разных сторон: цель поисковых запросов, их тематика, а также поведение пользователей. Оказалось, что поиск по блогам значительно отличается от обычного поиска в Интернете. Здесь 52% всех поисковых запросов (а после фильтрации «мусора» - и все 78%) являются именами собственными - это имена людей, марки товаров, названия фирм, названия городов и т.д. Кроме того, очень популярны общие тематические запросы (лингвистика, юмор, ислам), с помощью которых люди ищут блоги специфической тематики. Впрочем, пользователи при поиске в блогах ведут себя примерно так же, как и на обычных поисковиках: короткие сессии, при которых внимание уделяется в основном первым результатам поиска.

(http://www.technorati.com/ )

До последнего времени наиболее популярным поисковым сервисом по блогам во всем мире был сайт Technorati, который предоставлял возможность поиска по 17 млн дневников. В конце июля текущего года этот крупнейший поисковик по блогам обновил интерфейс, а также произвел некоторые изменения в ядре для ускорения обработки запросов.

Среди основных нововведений можно отметить появление навигационных панелей Discover, Most Popular и Favourite. Discover является тематическим каталогом блогов, Most Popular - рейтингом, а в Favourite посетитель может добавлять избранные блоги и по желанию производить выборку только из них.

Что касается изменений в ядре поиска, то в своем блоге руководство Technorati сообщает о более оперативной обработке запросов и более корректном определении ссылок в блогах. В ближайшем будущем планируется реализовать языковую локализацию, более быструю индексацию, а также подробную статистику по всей мировой блогосфере.

По мнению руководства поисковика, изменения в работе были необходимы, так как сайт уже не мог в полной мере обеспечивать удобство использования. По данным Technorati, размер блогосферы возрастает по экспоненте и уже приближается к 50 млн блогов, что, несомненно, также было одним из основных поводов для изменений в сервисе.

Поиск по блогам от Google ( )

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

В данный момент сервис существует в бета-версии и поиск можно осуществлять лишь по блогам, опубликованным начиная с июня 2005 года. Однако, по словам представителей компании, сейчас ведутся работы по включению и тех дневников, которые были опубликованы в Интернете ранее. При помощи новой поисковой системы можно будет находить блоги по автору или по опубликованному тексту сообщения. Причем Google будет активно индексировать все блоги, имеющие автоматическую систему слежения за изменениями веб-страницы.

Создатель Technorati после появления blogsearch у Google опубликовал на блоге своей компании письмо, в котором приветствует появление Google в блог-сообществе. Он пишет, что решение поискового портала включить в свои архивы блоги показало, что Google всерьез воспринимает этот сравнительно новый интернет-феномен.

Отметим также, что недавно система Google начала вести корпоративный блог на русском языке. Первый пост, появившийся в этом блоге, написал глава российского подразделения Google Владимир Долгов. Российский блог ведут русскоговорящие сотрудники Google для русскоязычной аудитории. Блог находится по адресу: GoogleRussiaBlog.blogspot.com. Российское подразделение компании надеется, что блоггеры поддержат корпоративный блог Google, присылая свои пожелания о том, какую информацию они хотели бы в нем видеть.

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

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

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

Работают с блогами и другие международные поисковики. Так, в разделе новостей на портале Yahoo! появилась новая опция поиска - в новостях и блогах. Список блогов, в которых встретится заданная ключевая фраза, будет отображаться в отдельном окне, рядом с новостными лентами крупнейших информационных агентств. Ведь несмотря на то, что блоггеры не профессиональные журналисты, они порой превосходят средства массовой информации и по скорости, и по подробности описания. Кроме того, журналисты физически не в состоянии осветить все события. Вместе с тем блоги все-таки не гарантируют достоверности, поэтому Yahoo! не стала смешивать информацию из них и из 6,5 тыс. ответственных новостных источников.

Кроме сообщений из блогов, пользователи поисковой системы могут посмотреть любительские фотографии событий на сайте обмена снимками Flickr, принадлежащем Yahoo!. Снимки последствий взрывов в Лондоне или урагана «Катрина» в США привлекли особенно много посетителей.

Известный поисковый ресурс Ask.com (http://www.ask.com/), принадлежащий компании IAC/InterActiveCorp, также недавно обзавелся опцией поиска информации в блогах. Новый сервис получил название Bloglines. При этом представители ресурса отмечают, что их детище существенно отличается от других аналогичных сервисов, которые работают как традиционные поисковые движки, и отфильтровывает спам, который в последнее время начал приобретать просто угрожающие масштабы и в блогах.

Пользователи смогут сохранять поиски и обмениваться их результатами с другими. Они также получат возможность размещать собственные поиски на таких сайтах, как Bloglines и Digg. Компания также не намерена ограничиваться внедрением нового сервиса лишь на своем поисковом ресурсе, который недавно был полностью переработан, и собирается интегрировать новые технологии в Bloglines.

Поиск по блогам на Яndex ( )

Поиск по блогам в российской части Интернета реализован ничуть не хуже международного. Наилучший поиск по блогам в Рунете организовал поисковый портал Яndex. Причем на Яндексе уже давно есть поиск по всем RSS-форматам (RSS - семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей и изменений в блогах), да еще и новостная лента в придачу. И вряд ли Google будет успевать индексировать блоги так, как это делает сегодня Яндекс.

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

Поиск по блогам, как своеобразный инструмент навигации по общественному мнению в Интернете, теперь позволяет исследовать настроения пользователей и российской Сети. По запросу находятся не только записи, но и потоки, а релевантность поиска значительно улучшена. Кроме того, благодаря появлению сохраненной копии пользователь может смотреть полный текст записей прямо на Яндексе, не переходя для этого по ссылкам. Расширенный поиск дает возможность искать отдельно в блогах и форумах по категориям, а также находить записи по упомянутым в них ссылкам.

Сегодня в поисковой базе сервиса поиска по блогам, запущенного Яндексом в декабре 2004 года, содержится более 800 тыс. русскоязычных онлайновых дневников, и каждый день эта служба обрабатывает 100-160 тыс. новых записей. Всего Яндексу известно более 45 млн записей в блогах и форумах.

Пытаются работать с блогами и другие российские поисковики. Например, в конце 2005 года стартовал коммуникативный сервис «Рамблер Планета» (http://planeta.rambler.ru) - единый блок коммуникативных сервисов портала. Новый проект Рамблера позиционируется как средство создания пользователем Интернета собственного представительства в Сети, ядром которого становится мультимедийный дневник. В этом дневнике можно публиковать и просматривать не только текстовые сообщения и фотографии, но и видеоролики. Причем «Планета» интегрирована с другими ресурсами портала - «Рамблер Фото», «Рамблер Группы» и «Рамблер Vision». А в начале текущего года в системе мультимедийных дневников «Рамблер Планеты» появилась новая возможность - пользователи теперь могут организовывать тематические сообщества. Радует и еще одна новая функция - возможность SMS-публикации. Теперь вносить записи в свой онлайновый дневник можно при помощи мобильного телефона. В скором времени можно будет подключать RSS и дневники из других систем и организовывать рейтинги. Все существующие сегодня сообщества собраны в тематический каталог Рамблера.

Российский «Блогус» ( )

Помимо Яндекса поиск в российских блогах осуществляется также на сайте отечественного проекта «Блогус». Конечно, данному проекту далеко до той полноты охвата блогосферы, которая есть у Technorati или Яндекса, однако найти интересную информацию можно и там. Сервис пока существует в бета-версии, его интерфейс постоянно совершенствуется, и в скором будущем он обещает стать довольно простым, функциональным и удобным средством поиска, ориентированным именно на блоггеров. На данном этапе разработчики «Блогуса» планируют держать и индексировать не более 10 тыс. самых популярных блогов. Таким образом, если Яндекс позволяет осуществлять самый широкий поиск, то «Блогус» станет его более узким тематическим дополнением с учетом авторитетности того или иного блога.

Специально для сайта

Владимир Губайловский

Компания Google запустила поиск по онлайновым дневникам или блогам. Поиск осуществляется не только по сервису, предоставляемому самим Google – службой Blogger, но по всем другим блогам, которые предоставляют информацию об изменениях в виде обновлений. На сегодня поисковый индекс Google включает записи в блогах, начиная с июня 2005 года, но Google намерен проиндексировать и более старые записи. С помощью сервиса можно найти нужный онлайновый дневник, автора или отдельную запись, причем в выделенном хронологическом интервале.

Поиск в блогосфере

Неудивительно, что Google выпустила поиск по блогам. Удивительно, что компания, известная своим острым чутьем на инновации, и выпускающая в последнее время новые сервисы и инструменты почти каждую неделю, так долго не предлагала пользователям именно этот сервис – поиск по блогам.

У блогов есть своя специфика, которая выделяет этот тип сайтов среди всех остальных, и потому поиск по блогам отличается от традиционного поиска. Для сравнения: компания Яндекс выпустила свой поиск по блогам еще в декабре 2004 года. А Google попросту не увидела той специфики, которую несет в себе блогосфера (этот термин уже утвердился в качестве определения всех блогов, существующих в Сети).

По оценке компании Technorati, общее количество блогов в Сети уже достигло 16,1 миллионов, их число удваивается каждые пять месяцев – новый блог создается каждые 5-7 секунд. Блоги – онлайновые дневники – пишут и публикуют сегодня и частные лица, и крупнейшие компании . Причем главный интерес представляют именно самые последние по хронологии записи в блоге. А большие поисковые системы, даже такие быстрые как Google, обновляют свои индексы достаточно медленно – они просто не замечают специфики блога и индексируют все подряд. Традиционные поисковики, такие как Google или Yahoo, для веб-поиска строят свои индексы, "обегая" Сеть с помощью автоматических поисковых роботов, которые собирают все что попадется, со всех веб-страниц которые они встретят. Не редкостью является ситуация, когда на первой странице поиска возникают новости прошлогодние или даже более старые – поисковая система далеко не всегда хорошо ориентируется во времени. Это вполне естественно – ей приходиться работать с датой обновления страницы, а страница могла быть обновлена безо всякого изменения содержания. Поисковая система не может гарантированно датировать любую страницу интернета.

"Выскочки" на рынке поиска

Временные задержки и нарушения хронологии при работе с блогами, которые постоянно встречаются в традиционных поисковиках, дали шанс небольшим поисковым системам. Эти сервисы сосредоточились на максимально быстром индексирование блогов. Они стараются отследить обновление в блоге в течение нескольких минут, чтобы сделать эти изменения доступными для поиска. Новые сервисы, некоторым из которых нет и года, конечно, сталкиваются с множеством проблем. Технология пока развивается, и компании только нащупывают оптимальные пути отслеживания и сортировки блогов. Одни сервисы теряют множество блогов, другие – подбирают сайты, оказавшиеся случайно похожими на блоги. На DayPop. представлен небольшой объем блогов – около 60 тысяч, но эти блоги отобрали редакторы сайта, как самые интересные с их точки зрения. Сайты, подобные Technorati , Feedster , IceRocket (эта служба на сегодня лучше всех проиндексировала русские блоги) и BlogPulse , собрали намного больше блогов – от 15 до 20 миллионов. Поисковая выдача этих систем дает намного больше результатов, часто из довольно неприметных, но очень интересных источников. Если Technorati и BlogPulse сосредоточены исключительно на блогах, то Feedster и IceRocket, кроме того, предлагают опцию, которая позволяет осуществлять поиск новостей из традиционных источников – лент информационных агентств, онлайновых газет и других официальных поставщиков новостного контента.

В то время когда Google, Yahoo and Microsoft обрабатывают миллиарды страниц, поиск по блогам сосредоточен на 10 - 20 миллионах сайтах. Здесь поисковые системы используют методы, которые применимы только к блогам и непригодны для индексирования произвольных сайтов. Как пишет The Wall Street Journal Online , Technorati, например, чаще всего для мониторинга блогов опирается на механизм "pinging". Большинство блоггеров организуют свои журналы через такие сервисы, как Blogger или LiveJournal, которые автоматически посылают ping-сообщение поисковому серверу в момент изменения блога. Исполнительный директор Technorati Дэвид Сифри (David Sifry), говорит что его компания имеет соглашение со многими компаниями, которые предоставляют блог-хостинг (то есть сервис для размещения и ведения блогов) – Technorati получает ping раньше других поисковых систем. Получив такое сообщение, Technorati немедленно обновляет свой поисковый индекс. Feedster также использует ping-мониторинг, но кроме этого, собирает обновления с помощью RSS-ленты (как и только что стартовавший поиск Google по блогам), в которые с определенной периодичностью выдаются все накопленные обновления. Но, используя только RSS-выдачу и ping-сообщение от крупных блог-сервисов, можно потерять те важные блоги, которые существуют самостоятельно. Поэтому IceRocket кроме того пользуется собственным поисковым роботом, который обходит Сеть и самостоятельно индексирует блоги. Поисковый робот может отличить блог от любого другого сайта – поскольку у блогов есть свои характерные отличия. Любой блога имеет хронологическую последовательность записей, каждая запись содержит явно указанную дату и заголовок.

Время в гиперпространстве

Научный обозреватель Радио "Свобода" Александр Сергеев так охарактеризовал специфику блогов: "Вместе с блогами в Интернет пришло время или даже Время. До блогов Интернет представлял собой гипер-Пространство, в котором время отсутствовало. Создавались сайты, выкладывались обновления, но время явно присутствовало только в новостных лентах, а новостных лент сравнительно со всем объемом Сети очень мало. То, что блог обязательно связан с хронологией записей, задает совершенно определенную структуру, которой до блога не было".

Google пропустила поиск по блогам, не стала здесь первой и ей приходится теперь догонять. В Google, вероятно, посчитали, что если у компании лучшая поисковая система, то она и блоги проиндексирует столь же хорошо, как и все остальное. Но оказалось, что это не совсем так. Положение дел в Сети меняется настолько быстро, что даже Google при всей ее чуткости и подвижности уже недостаточно оперативна, чтобы быть всюду первой – и самое болезненное для компании, то, что она пропустила сегмент именно поискового рынка. Если бы Google запустила поиск по блогам год назад, многие компании, которые поднялись сегодня на этом сегменте рынка, просто не возникли бы.

В последнее время все больше набирает популярность так называемый “партизанский маркетинг”, “крауд-маркетинг”, который направлен на увеличение ссылочной массы с блогов, форумов, сайтов вопросов и ответов, комментариев. Если у вас нет времени на проведение данных работ, сразу готов порекомендовать ребят из сервиса Referr (их примеры работ).

Сегодня я кратко расскажу об основах эффективного использования фильтрации результатов поиска в Google для эффективного крауд-маркетинга. Данная тема актуальна также потому, что Гугл скрывает часть фильтров поиска, которые были доступны ранее.

Просмотр выдачи Google в других странах

В век персонализации выдачи стало практически невозможно быстро просмотреть результаты поиска в другой стране, как ее видят местные пользователи. Однако, еще остаются варианты.

Алгоритм просмотра выдачи в других странах

  • заходим в режим “Инкогнито” в Chrome (Ctrl+Shift+N);
  • в адресную строку вводим домен Google соответствующего региона и /ncr (метод устарел и не работает) — данный способ применим ко всем регионам;
  • желательно переключить язык интерфейса браузера на английский
  • вводим необходимый запрос и получаем результат;

Вышеописанный метод более не работоспособен.

Для проверки выдачи из выбранной страны используйте VPN. Например, встроенный бесплатный в браузере Opera.

Для просмотра выдачи в Google USA есть еще один способ — это использование сайта aol.com, который агрегирует на выдачу Google.com. Главное — не забывать выполнять поиск в режиме “Инкогнито”.

Поиск Google по форумам

Что же делает данный фильтр? Он фильтрует результаты поиска и выводит только те, которые относятся к форумам и листингам вопросов и ответов. Данный фильтр очень полезен тем, кто хочет поднять узнаваемость бренда или товара в обсуждениях. Это очень легко сделать, поискав темы на информационных ресурсах, где люди нуждаются в вашем товаре или услуге. Главное — не рекламировать, а помогать людям. Ссылка — это только дополнение или один из возможных вариантов решения проблемы пользователя.

https://www.google.com.ua/webhp?tbm=dsc — поиск обсуждений (метод устарел, Google удалил функциональность)

Также у данного фильтра имеются более тонкие настройки, которые помогут найти только свежие темы на форумах (день, неделя, месяц) или оставить результаты только из страны, в которой вы находитесь.

Дополнение: любой поисковой запрос можно переделать в поиск по обсуждениям, добавив в конец адресной строки &tbm=dsc

Поиск Google по блогам

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

Новое на сайте

>

Самое популярное