Общение


NQL: твои агенты в Сети


Арсений Чеботарев,

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

Идея автоматизации работы в Сети не нова. Если условно считать сеть состоящей из серверов и клиентов, то код, работающий на стороне сервера, изначально создавался для работы в автоматическом режиме. В последнее время, например, большинство контента веб-страниц генерируется динамически. Так что для того, чтобы действительно "вкалывали" роботы, а не человек, осталось автоматизировать клиентскую часть. Идея проста: пускай компьютеры общаются друг с другом - а человеку останется обналичивать кэш. (Программы, работающие на стороне и/или от имени клиента, будем называть сетевыми агентами, роботами или ботами.)

Исторически сложилось два подхода к программированию сетевых агентов. Первый заключается в реализации сетевых протоколов, таких как http и ftp. Обычно это уже не нужно делать вручную, поскольку современные языки, как правило, содержат необходимые библиотеки. К наиболее известным можно отнести сетевые библиотеки perl, Delphi, Java, а теперь еще и этот новомодный.NET.

Другой подход, специфичный для нескольких протоколов, связан с автоматизацией Internet Explorer'a и реализуется обычно на Бейсике. Хотя многие программисты могут посмеяться над этой техникой, но на самом деле использовать чужой код всегда выгодно. Internet Explorer реализует массу высокоуровневых вещей, которые тот же perl не сделает никогда - или, по крайней мере, это будет лишняя и ненужная работа. К таким вещам относится поддержка куков вообще и сессий в частности, выполнение скриптов, динамическая генерация контента, обработка встроенных объектов и так далее. То есть проблема сводится к одному: некоторый контент генерируется автоматически, и не всегда легко вычислить, что там в конце концов получится.

Расскажу вам о языке программирования NQL, сочетающем в себе лучшее из обоих миров,- это значит, что он может как работать на уровне GET-POST, так и автоматизировать IE. И дело не столько в том, что NQL может это делать (при определенной сноровке такие вещи можно проделать на любом языке) - суть в том, что для NQL это основное занятие: синтаксис доступа к Сети крайне прост, встроен в язык, хорошо документирован и доступен для понимания на уровне продвинутого пользователя (бывалый кодировщик может при случае вспомнить dbase2).



Содержание раздела