Распределенные системы в сети Internet

advertisement
Лекции по интернет технологиям
История развития Интернет ..................................................................................................................2
Руне́т и FIDOnet......................................................................................................................................5
Основные программные и аппаратные компоненты сети ..................................................................9
Каналы передачи данных по компьютерным сетям .........................................................................12
Язык HTML.............................................................................................................................................6
VRML ....................................................................................................................................................11
Классификация компьютерных сетей ................................................................................................16
Топология физических сетей ..............................................................................................................19
Службы Интернета: World Wide Web. Web-браузеры. Навигация. Работа с документом. Проксисервер.....................................................................................................................................................23
Распределенные системы в сети Internet ............................................................................................36
КОМПЬЮТЕРНОЕ ПРЕСТУПЛЕНИЕ .............................................................................................43
HTTPS, SSL, TLS – протоколы шифрования данных .......................................................................50
Язык программирования клиент–машин: Java–апплеты ..................................................................55
Обзор технологии Active Server Pages (ASP) ....................................................................................60
Скрипты (JavaScript, CGI) ...................................................................................................................63
IP-адресация. Система доменных имен. Унифицированный указатель ресурса. ..........................80
Технологии Macromedia Flash .............................................................................................................92
Adobe Flex .............................................................................................................................................95
Механизмы поиска информации в Интернете...................................................................................99
AJAX....................................................................................................................................................102
Одноранговая сеть P2P ......................................................................................................................107
История развития Интернет
В 1960-е годы, после Карибского кризиса, фирма RAND Corporation, один из мозговых
центров Соединенных Штатов, впервые предложила создать децентрализованную
компьютерную сеть, покрывающую всю страну. Проект включал в себя объединение
компьютеров военных, научных и образовательных учреждений в сеть, которая могла
бы сохранить работоспособность в условиях ядерной атаки. Это был ответ США на
запуск 4 октября 1957 года Советским Союзом первого искусственного спутника
Земли. Основной идеей проекта была децентрализация управления и подчинения. Это
требование дает ключ к пониманию принципов построения и структуры Internet. В
проектируемой модели сети всегда была связь между компьютером-источником и
компьютером-приемником (станцией назначения).
В первом варианте предложения, которое увидело свет в 1964 году благодаря усилиям
сотрудника RAND Пола Бэрана (Paul Baran), просто утверждалось, что все узлы
(компьютеры) сети должны иметь одинаковый статус. Каждый узел уполномочен
порождать, передавать и получать сообщения от любого другого. Сообщения для
передачи разбиваются на небольшие стандартизированные элементы, называемые
пакетами. Каждый пакет имеет адрес назначения, и доставка сообщения
обеспечивается тем, что каждый узел имеет возможность посылать (или
переадресовывать) пакеты по сети к месту назначения.
В конце 1960-х годов, корпорация RAND, Массачусетский технологический институт и
Калифорнийский университет Лос-Анджелеса начали экспериментировать с
концепцией децентрализованной сети с пересылкой пакетов. В Великобритании
подобные эксперименты уже проводились. В 1968 году подразделение Пентагона Агенство по работе с исследовательскими проектами в области перспективных
исследований открыло финансирование этого проекта в США.
К осени 1969 года появилась на свет сеть ARPANET, состоящая к тому времени из
четырех узлов, а именно:
• компьютер в Калифорнийском университете Лос-Анджелеса,
• компьютер в Стэндфордском исследовательском институте,
• компьютер в Калифорнийском университете Санта-Барбары,
• компьютер в университете штата Юта.
Первые
испытания
ARPANET
оказались
крайне
успешными.
Ученые
исследовательских учреждений, послуживших испытательными полигонами, получили
возможность передавать данные и совместно пользоваться удаленным доступом к
компьютерам.
К 1971 году ARPANET разрослась до 15 узлов.
К 1972 году сеть ARPANET насчитывала уже 37 узлов, а в 1973 году впервые были
подключены и зарубежные узлы – Университетский колледж в Лондоне и Королевская
лаборатория радиолокации в Норвегии. Ответственность за администрирование сети
взяло на себя Оборонное агенство по коммуникациям, в настоящее время называемое
Оборонное агенство по информационным системам.
Несмотря на то, что изначально ARPANET состояла из соединений между самыми
престижными исследовательскими институтами США, и что первые обоснования
создания ARPANET подчеркивали ее важность как средства удаленного доступа к
-2-
компьютерам, основной поток информации по сети не соответствовал своему
первоначальному предназначению. Первое время ученые действительно использовали
сеть только для координации своих исследований и обмена сообщениями со своими
коллегами. Однако весьма быстро сеть превратилась в высокоскоростную
компьютеризированную «веревочку», которую многие использовали для передачи
личных сообщений, сплетен и просто разговоров.
Несмотря на то, как в реальности использовались новые возможности, создание
ARPANET и концепции децентрализованной сети с пакетной передачей данных в
целом означали огромный успех. В течение 1970-х годов эта легко расширяемая
система претерпела гигантский рост. Её децентрализованная структура, существенно
отличающаяся от структур существовавших в то время корпоративных сетей,
позволяла подключать к сети компьютеры практически любого типа, - при одном лишь
условии, что эти компьютеры «понимали» протокол (соглашение о стандарте) пакетной
передачи данных NCP (Network Control Protocol, Протокол сетевого управления). Этот
протокол стал предшественником ныне используемого TCP/IP (Transmission Control
Protocol/Internet Protocol, Протокол управления передачей/Протокол Intenet, или
Межсетевой Протокол).
Уже в 1974 году сотрудники Государственного фонда научных исследований
опубликовали свои первые спецификации нового протокола управления передачей
данных TCP/IP, который до 1977 года использовался при подключении к ARPANET
других компьютерных сетей.
Протокол TCP/IP, открытый для общего использования, отличался от NCP тем, что
сообщение разбивались, и преобразовывались в пакеты на узле отправки, обратное
преобразование со сборкой сообщения из пакетов происходило на узле назначения.
Протокол IP устанавливал адресацию пакетов, которая позволяла пакетам достичь
места назначения, проходя через многочисленные узлы, или даже сети, стандарты
которых отличались от стандарта NCP для ARPANET.
Протокол TCP/IP послужил толчком для дальнейшего расширения ARPANET,
поскольку он легко устанавливался практически на любой компьютер и позволял сети с
легкостью развиваться вширь от любого существующего узла.
К 1983 году ARPANET, которая к тому времени уже получила общепринятое имя
Internet, отражающее ее структуру мощной совокупности связанных между собой
компьютеров и сетей, официально отказалась от использования протокола NCP в
пользу более развитого и распространенного протокола TCP/IP.
В этом же году из ARPANET выделилась MILNET, которая стала относиться к
оборонной сети обмена данными министерства обороны США. Термин Internet стал
использоваться для обозначения единой сети: MILNET и ARPANET. И хотя в 1991 году
ARPANET прекратила свое существование, название Internet продолжило
использоваться, так как Сеть стала объединять в себе уже и международные сети.
1980-е годы стали периодом бурного роста Internet.
В то время начали появляться Локальные Вычислительные Сети (LAN), например,
такие как Ethernet и др. Одновременно появились компьютеры, которые стали называть
рабочими станциями. На большинстве рабочих станций была установлена
операционная система UNIX. Эта ОС имела возможность работы в сети с Протоколом
Internet (IP). В связи с возникновением принципиально новых задач и методов их
решения появилась новая потребность: организации желали подключиться к ARPANET
своей локальной сетью. Примерно в то же время появились другие организации,
которые начали создавать свои собственные сети, использующие близкие к IP
-3-
коммуникационные протоколы. Стало ясно, что все только выиграли бы, если бы эти
сети могли общаться все вместе, ведь тогда пользователи из одной сети смогли бы
связываться с пользователями другой сети.
Схема соединения компьютеров в сеть с децентрализованным управлением
распространялась по всему миру, и организаторы многих зарубежных сетей пожелали
подключиться к американской сети.
Охват мирового сообщества Internet существенно расширился благодаря включению
следующих сетей:
• Европейская сеть UNIX-машин, год подключения - 1982
• Европейская сеть
подключения – 1983
учебных
и
научно-исследовательских
учреждений,
год
• Японская сеть UNIX-машин, год подключения – 1984
• Объединенная академическая сеть Великобритании, год подключения – 1984.
В конце 80-х годов наиболее влиятельные учереждения США основали пять
суперкомпьютерных центров в Принстоне, Питтсбурге, Калифорнийском университете
Санта-Барбары и университете Корнели. Сеть из этих пяти центров обычно называется
«магистральных хребтом Internet в США» (Internet Backbone). Однако было очевидно,
что не стоит даже и пытаться соединить все университеты и исследовательские
организации непосредственно с центрами, т.к. проложить такое количество кабеля - не
только очень дорого, но практически невозможно. Поэтому решено было создавать
сети по региональному принципу. В каждой части страны заинтересованные
учреждения должны были соединиться со своими ближайшими соседями.
Получившиеся цепочки подсоединялись к суперкомпьютеру в одной из своих точек,
таким образом суперкомпьютерные центры были соединены вместе. В такой топологии
любой компьютер мог связаться с любым другим, передавая сообщения через соседей.
Но настала пора, когда сеть уже более не справлялась с возросшими потребностями.
Неожиданно университеты, школы и другие организации осознали, что имеют под
рукой море данных и мир пользователей. Поток сообщений в сети (трафик) нарастал
все быстрее и быстрее пока, в конце концов, не перегрузил управляющие сетью
компьютеры и связывающие их телефонные линии.
Менее чем за два года, продолжающееся расширение Internet и растущие потребности в
вычислительных мощностях привели к модернизации в 1988 году магистрали до
скорости 1.544 мбит/сек. Сетевые управляющие машины были также заменены на
более быстрые.
В то время правительство способствовало всеобщей доступности Internet по линии
образования, вкладывая деньги в подсоединение учебного заведения к сети, только
если то, в свою очередь, имело планы распространять доступ далее по округе. Таким
образом, каждый студент четырехлетнего колледжа мог стать пользователем Internet. А
потребности продолжали расти. Большинство таких колледжей на Западе уже было
подсоединено к Internet, предпринимались попытки подключить к этому процессу
средние и начальные школы. Выпускники колледжей были прекрасно осведомлены о
преимуществах Internet и рассказывали о них своим работодателям. Вся эта
деятельность привела к непрерывному росту сети, к возникновению и решению
проблем этого роста, развитию технологий и системы безопасности сети.
В 1987 году число компьютеров, подключенных к Intenet, составило более 10 000. К
1989 году это число достигло 100 000.
-4-
1990-е годы послужили ареной продолжающейся экспансией Internet, а также создания
нескольких служб и программ для работы в Сети.
1992 год примечателен тем, что в этом году число компьютеров в Сети перевалило за
миллион.
Однако, без сомнения, наиболее серьезным развитием Internet в 1990-х годах стало
создание WWW (World Wide Web, Всемирная паутина).
В ноябре 1990 года создали первый прототип WWW-сервера, используя компьютер
NeXT.
В 1993 году предложили проект создания новой магистрали Internet в США. Она
должна была заменить старую магистраль. Новая структура начала свою работу в 1995
году, приняв на себя потоки информации.
Но Internet имел ряд недостатков, среди которых можно выделить следующие:
1. IP-адресов всего около 4 миллиардов
2. Низкая производительность узлов
3. Неподготовленность глобальной сети к передаче по ее каналам больших объемов
данных, особенно видео и аудио
4. Отсутствие механизмов безопасности
Для устранения этих недостатков был создан Internet-2. Годом основания принято
считать 1992 год. Он соединил более 100 самых крупных университетов США. Internet2 позволил проводить видеоконференции и поддерживал широковещательную
передачу данных, что важно для радио и телевещания. Изменился и формат пакетов.
Удалось избавиться от их фрагментации, для этого при соединении устанавливался
максимальный размер пакета.
В последующие годы развитие Internet и WWW происходило еще более быстрыми
темпами. Реальную статистику числа компьютеров в Сети и WWW-серверов получить
весьма трудно, так как эти данные изменяются практически ежедневно. Разумной
оценкой числа компьютеров в Internet (усредненной по данным нескольких
источников) на июнь 1995 года можно считать число 6.5 миллионов, причем
большинство их них находится в США.
Руне́т и FIDOnet
Руне́т — русскоязычный сегмент сети Интернет.
Возможна более узкая формулировка, гласящая, что Рунет — это часть Всемирной
паутины, принадлежащая к национальному российскому домену .ru, однако она не
отражает реальной ситуации, так как «относящиеся к Рунету» (то есть русскоязычные)
ресурсы могут располагаться в любых доменах (или не иметь домена), а
соответствующие серверы могут физически находиться в любой стране мира. К Рунету
обычно относят не только WWW-сайты, но и русскоязычные почтовые списки
рассылок, IRC-конференции, FTP-серверы, локальные сети разного масштаба и т. п.
Ими могут пользоваться русскоговорящие граждане любых стран. Вероятно, не следует
«относить или не относить к Рунету» ресурсы по каким-то другим критериям, кроме
языка. Технически Рунет можно распознать по русской кириллической кодировке.
-5-
На развитие Рунета повлияли и русскоязычные пользователи «параллельной»
«кустарной» компьютерной сети FidoNet.
Название «Рунет», составленное из доменного имени .ru (которое также можно
интерпретировать как первые две буквы слова «русский») и постфикса «нет», что поанглийски значит «сеть» (net), вошло в употребление стихийно в конце 1990-х годов.
Термин изобрёл весной 1997 года автор одной из первых регулярных русскоязычных
сетевых колонок Раффи Асланбеков и внедрил в тогдашний круг своего
русскоязычного интернет-культурного общения, где термин быстро прижился. В какойто период некоторая часть пользователей критиковала термин, считая его не очень
благозвучным. Тем не менее, в 2001 году слово с заглавной буквы с формулировкой
«Руне́т, -а (российский Интернет)» (некорректной из-за неоправданного
отождествления русского и российского, правильнее было бы «русскоязычный») вошло
в орфографический словарь РАН под редакцией В. В. Лопатина — основной словарь
государственного языкового портала Грамота.ру. В 2005 году оно вошло в
орфографический словарь Д. Э. Розенталя.
История
Логическим началом развития сетей передачи данных на русском языке можно считать
распространение по территории России почты, журналистики, затем телеграфа,
телефона, радиосвязи, телевидения и т.д. Начиная с телеграфа это потребовало
применения специальных технических устройств для конвертации информации в
электроимпульсы и радиоволны, не понимаемые напрямую человеком.
Советские учёные из ИТМиВТ АН СССР создавали сети компьютерной связи с 1952
года в рамках работ по созданию автоматизированной системы противоракетной
обороны (ПРО). Вначале специалисты под руководством Сергея Лебедева создали
серию ЭВМ («Диана-I», «Диана-II», М-40, М-20, М-50 и др.) и организовали обмен
данных между ними для вычисления траектории противоракеты. Разрабатывались
вычислительные системы и сети и гражданского применения. К примеру, в 1972 году
была введена в строй железнодорожная система «комплексной автоматизации билетнокассовых операций» АСУ «Экспресс», обеспечивавшая передачу и обработку больших
массивов информации.
Фидоне́т— международная некоммерческая компьютерная сеть, построенная по
технологиям «из точки в точку» и «коммутация с запоминанием». Изначально
программное обеспечение Fidonet разрабатывалось под MS-DOS, однако в скором
времени было портировано под все распространённые операционные системы, включая
UNIX, GNU/Linux, Microsoft Windows, OS/2 и Mac OS.
Была популярна в начале 1990 годов (в России — до конца 1990-х), после чего началось
сокращение числа узлов сети. Сеть продолжает функционировать, в мае 2009 года в ней
состояло более 5500 узлов. Особенностью Fidonet, определившей широкое
распространение этой сети в России, является фактическая бесплатность подключения
и использования ресурсов сети.
История
Сеть была создана в 1984 году американским программистом — Томом Дженнингсом
(Tom Jennings) для передачи сообщений с его BBS((Bulletin Board System —
электронная доска объявлений). Широко используемый во времена редкости кабельных
компьютерных сетей способ общения пользователей компьютеров через
коммутируемые телефонные сети.) на BBS его друга Джона Мэдила (John Madil).
-6-
Передача осуществлялась в ночные часы, когда стоимость телефонных звонков была
ниже. Для обмена почтой с другим узлом сети был выделен один час (в течение
которого доступ сторонних пользователей на BBS был закрыт), который позже получил
название «национального почтового часа». Требование организации выделенного часа
для обмена сообщениями сохраняется до настоящего времени, хотя контроль за его
соблюдением значительно ослаб.
Вскоре число узлов сети стало возрастать и достигло 200 в начале 1985 года. Список
узлов (нодлист, nodelist) распространялся в виде отдельного файла и первоначально
обновлялся самим Дженнингсом, а позже членами группы пользователей DEC (Digital
Equipment Corporation) из Сент-Луиса Кеном Капланом (Ken Kaplan) и Беном Бейкером
(http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA
%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA Ben Baker). Они же стали выпускать
первый «новостной листок» сети Fidonet.
Первоначально каждый узел связывался с другим узлом напрямую. С ростом числа
пользователей сети существенно возросло число телефонных звонков, в том числе
междугородних. В результате было решено сменить структуру сети с линейной на
древовидную, сгруппировав пользователей по сегментам по географическому признаку.
В результате адресация стала двухзвенной: вместо простого номера узла стала
использоваться нотация сеть/узел.
В конце 1986 года аналогичная проблема возникла на уровне континентов. Кроме того,
появилась мысль организовать для пользователей BBS возможность получать почту с
использованием форматов данных и протоколов Fidonet. На собрании Комитета по
техническим стандартам Fidonet в октябре 1986 года была введена четырёхуровневая
иерархия списка узлов. Верхним уровнем была зона (континент), далее шли сеть, узел и
точка
(поинт,
http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA
%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA
point) сети. Схема адресации
зона:сеть/узел.поинт продолжает использоваться и в настоящее время.
Максимума своей распространённости Сеть Фидонет достигла в 1996 году, когда она
насчитывала около 40 тысяч узлов. С тех пор популярность сети постепенно падает, и
количество её узлов сократилось в несколько раз.
В феврале 1986 года Джеффом Рашем (Jeff Rush) была разработана система сетевых
конференций, получившая название «эхопочта» (эхомейл, echomail). Первой
международной
эхоконференцией
стала
конференция
MODULA-2,
распространявшаяся в Европе, Австралии и Северной Америке.
Программное обеспечение Фидонета
Для функционирования узлов сети используется комплекс специфического
программного обеспечения. Набор программного обеспечения практически не
отличается для конечных пользователей и для крупных раздающих узлов. С одной
стороны, это создаёт некоторый барьер для новых членов: для вступления в Фидонет
нужно обладать определённой технической грамотностью, чтобы установить и
настроить фидошное программное обеспечение. С другой стороны, отсутствие
необходимости специфического оборудования, платформ, сложного и дорогого
программного обеспечения для организации раздающего узла делает сеть Фидо гибкой
и устойчивой: в случае падения хаба (крупного раздающего узла) его технические
функции вполне может взять на себя любой другой узел, согласный на это.
-7-
В настоящее время появилось множество самонастраивающихся пакетов программного
обеспечения, призванных облегчить установку и настройку комплекса программ для
новых пользователей.
Мейлер (mailer) — программа, обеспечивающая установку сеанса связи с другим узлом
и обмен почтовыми пакетами и файлами. Эхопроцессор или Тоссер
(http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA
%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA Tosser) — программа, осуществляющая
обработку эхопочты (так называемых «пакетов» или «бандлов», bundles). Трекер
(Tracker) — программа, обеспечивающая обработку netmail’а (личной почты).
Файлэхопроцессор — обеспечивает обработку файлов, проходящих
файлэхоконференциям (которые также кратко называют «фэхами»).
по
Редактор сообщений — позволяет просматривать пришедшие сообщения и создавать
новые.
Роботы — необязательные дополнительные программы, служащие в основном для
автоматической рассылки почты, как нетмейла, так и эхомейла.
Общие сведения по компьютерным сетям
Компьютерной сетью называется совокупность взаимосвязанных через каналы
передачи данных компьютеров, обеспечивающих пользователей средствами обмена
информацией и коллективного использования ресурсов сети: аппаратных,
программных и информационных.
Компьютерные сети делят на
 Локальные (ЛВС, Local Area Network, LAN). Представляют собой группу близко
расположенных компьютеров, которые связаны между собой. В локальных сетях
создаются общие базы данных для работы пользователей. Как правило, ЛВС
объединяют компьютеры одного или нескольких близлежащих зданий предприятия,
учреждения, офиса. Главная отличительная особенность локальных сетей – единый для
всех компьютеров высокоскоростной канал передачи данных и малая вероятность
возникновения ошибок в коммуникационном оборудовании.
 Распределенные (глобальные, Wide Area Networks, WAN). Представляют собой
телекоммуникационные структуры, объединяющие локальные информационные сети,
имеющие общий протокол связи, методы подключения и протоколы обмена данными.
Соединенные в сеть компьютеры обмениваются информацией и совместно используют
периферийное оборудование и устройства хранения информации.
Преимущества компьютерных сетей:
Компьютерная сеть позволяет совместно использовать периферийные устройства,
включая: принтеры, плоттеры, дисковые накопители, приводы CD-ROM, дисководы,
стримеры, сканеры, факс-модемы.
Компьютерная сеть позволяет совместно использовать информационные ресурсы:
каталоги, файлы, прикладные программы, Игры, базы данных, текстовые процессоры.
Компьютерная сеть позволяет человеку работать с многопользовательскими
программами, обеспечивающими одновременный доступ всех пользователей к общим
-8-
базам данных с блокировкой файлов и записей, обеспечивающей целостность данных.
Любые программы, разработанные для стандартных ЛВС, можно использовать в Вашей
сети.
Совместное использование ресурсов обеспечивает существенную экономию средств и
времени.
Организация сети позволяет упростить обслуживание заказчиков и повысить его
качество. При выписке счетов все менеджеры будут пользоваться единой базой данных
о пользователях или имеющихся на складе товарах. Для печати счетов или других
документов можно использовать один скоростной принтер.
Таким образом, основным назначением компьютерной сети является обеспечение
простого, удобного и надежного доступа пользователя к распределенным общесетевым
ресурсам и организация их коллективного использования при надежной защите от
несанкционированного доступа, а также обеспечение удобных и надежных средств
передачи данных между пользователями сети. С помощью сетей эти проблемы
решаются независимо от территориального расположения пользователей.
Основные программные и аппаратные компоненты сети
В основе любой сети лежит аппаратный слой, который включает компьютеры
различных классов. Набор компьютеров в сети должен соответствовать набору
разнообразных задач, решаемых сетью.
Второй слой составляет разнообразное сетевое оборудование, необходимое для
создания локально-вычислительных сетей, и коммуникационное оборудование для
связи с глобальными сетями. Коммуникационные устройства играют не менее важную
роль, чем компьютеры, которые являются основными элементами по обработке
данных.
Третьим слоем являются операционные системы, которые составляют программную
основу сети. При построении сетевой структуры важно учитывать насколько
эффективно данная операционная система может взаимодействовать с другими
операционными системами сети, насколько она способна обеспечить безопасность и
защиту данных и т. д.
Самым верхним слоем сетевых средств являются различные сетевые приложения, такие
как сетевые базы данных, почтовые системы, средства архивирования данных и др.
Важно знать совместимость различных сетевых приложений.
Сетевое программное обеспечение сети:
Функциональные возможности сети определяются теми услугами, которые она
предоставляет пользователю. Для реализации каждой из услуг сети доступа
пользователя к этой услуге разрабатывается программное обеспечение.
Программное обеспечение, предназначенное для работы в сети, должно быть
ориентировано на одновременное использование многими пользователями. В
настоящее время получили распространение две основные концепции построения
такого программного обеспечения. В первой концепции сетевое программное
обеспечение ориентировано на предоставление многим пользователям ресурсов
некоторого общедоступного главного компьютера сети, называемого файловым
сервером. Это название он получил потому, что основным ресурсом главное
компьютера являются файлы. Это могут быть файлы, содержащие программные
модули или данные. Файловый сервер – самый общий тип сервера. Очевидно, емкость
-9-
дисков файлового сервера должна быть больше, чем на обычном компьютере, так как
он используется многими компьютерами. В сети может быть несколько файловых
серверов. Можно назвать и другие ресурсы файлового сервера, предоставляемые в
совместное использование пользователям сети, например принтер, модем. Сетевое
программное обеспечение, управляющее ресурсами файлового сервера и
предоставляющее к ним доступ многим пользователям сети, называется сетевой
операционной системой. Ее основная часть размещается на файловом сервере; на
рабочих станциях устанавливается только небольшая оболочка, выполняющая роль
интерфейса между программами, обращающимися за ресурсом, и файловым сервером.
Программные системы, ориентированные на работу в рамках этой концепции,
позволяют пользователю использовать ресурсы файлового сервера. Как правило, сами
эти программные системы также могут храниться на файловом сервере и
использоваться всеми пользователями одновременно, но для выполнения модули этих
программ по мере необходимости переносятся на компьютер пользователя – рабочую
станцию и там выполняют работу, для которой они предназначены. При этом вся
обработка данных, даже если они являются общим ресурсом и хранятся на файловом
сервере, производится на компьютере пользователя. Очевидно, что для этого файлы, в
которых хранятся данные, должны быть перемещены на компьютер пользователя.
Во второй концепции, называемой архитектурой “клиент-сервер”, программное
обеспечение ориентировано не только на коллективное использование ресурсов, но и
на их обработку в месте размещения ресурса по запросам пользователей. Программные
системы архитектуры клиент-сервер состоят из двух частей: программного обеспечения
сервера и программного обеспечения пользователя-клиента. Работа этих систем
организуется следующим образом: программы-клиенты выполняются на компьютере
пользователя и посылают запросы к программе-серверу, которая работает на
компьютере общего доступа. Основная обработка данных производится мощным
сервером, а на компьютер пользователя посылаются только результаты выполнения
запроса.
Аппаратные компоненты сети:
Сетевые устройства:
 сетевой адаптер – это устройство, предназначенное для передачи и приема
сетевых сигналов. Адаптер воспринимает сигнал от операционной системы,
преобразует его и передает в сеть и обратно. Для его работы необходимо специальное
программное обеспечение, которым является драйверы.
 сетевой кабель – обеспечивает канал связи персонального компьютера с остальными
элементами сети. Для
организации сети применяется специальный кабель(компьютерный).
Виды сетевых кабелей:
1. Кабель на основе скрученной пары. Наиболее дешевым кабельным соединением
является витое двухжильное проводное соединение часто называемое "витой парой".
Она позволяет передавать информацию со скоростью до 10 Мбит/с, легко
наращивается, однако является помехонезащищенной. Длина кабеля не может
превышать 1000м при скорости передачи 1 Мбит/с. Преимуществами являются низкая
цена и безпроблемная установка. Для повышения помехозащищенности информации
часто используют экранированную витую пару, т.е. витую пару, помещенную в
экранирующую оболочку, подобно экрану коаксиального кабеля. Это увеличивает
стоимость витой пары и приближает ее цену к цене коаксиального кабеля.
- 10 -
2. Коаксиальный кабель. Коаксиальный кабель имеет среднюю цену, хорошо
помехозащитен и применяется для связи на большие расстояния (несколько
километров). Скорость передачи информации от 1 до 10 Мбит/с, а в некоторых случаях
может достигать 50 Мбит/с. Коаксиальный кабель используется для основной и
широкополосной передачи информации.
3. Широкополосный коаксиальный кабель. Широкополосный коаксиальный кабель
невосприимчив к помехам, легко наращивается, но цена его высокая. Скорость
передачи информации равна 500 Мбит/с.
4. Оптический (оптико-волоконный) кабель состоит из одной или нескольких
кварцевых или полимерных волокон, покрытых защитной оболочкой. Передача сигнала
осуществляется в оптическом диапазоне, а этот диапазон обладает широкой полосой
пропускания. Скорость распространения информации по ним достигает нескольких
гигабит в секунду. Допустимое удаление более 50км. Внешнее воздействие помех
практически отсутствует. На данный момент это наиболее дорогостоящее соединение
для ЛВС. Оптико-волоконные проводники объединяются в JIBC с помощью
звездообразного соединения.
 Повторитель – самый простой тип устройства для соединения однотипных ЛВС, он
усиливает и ретранслирует все принимаемые пакеты из одной ЛВС в другую.
 Мост – устройство связи, позволяющее соединять ЛВС с одинаковыми и разными
системами сигналов.
 Маршрутизатор – устройство связи, аналогичное мосту, которое выполняет передачу
пакетов соответствии с определенными протоколами и обеспечивает соединение ЛВС
на сетевом уровне.
 Шлюз – устройство соединения ЛВС с глобальной сетью.
 Концентратор – повторитель, имеющий несколько портов, позволяющий соединять
несколько сегментов сети.
Наблюдается тенденция совмещения маршрутизаторов с функциями коммутации.
Многие фирмы предлагают аппаратуру для организации беспроводных компьютерных
сетей: беспроводные сетевые адаптеры, мосты и устройства доступа, антенны и
усилители.
- 11 -
Каналы передачи данных по компьютерным сетям
Системы передачи данных и их характеристики
Для оперативной передачи информации используют системы автоматизированной
передачи
информации.
Совокупность средств, служащих для передачи информации, будем называть системой
передачи информации (СП).
На рис. 15.1 представлена обобщенная блок-схема автоматизированной системы
передачи информации.
Источник и потребитель информации непосредственно в СП не входят — они являются
абонентами системы передачи. Абонентами могут быть компьютеры, маршрутизаторы
ЛВС, системы хранения информации, телефонные аппараты, пейджеры, различного
рода датчики и исполнительные устройства, а также люди. В составе структуры СП
можно выделить:
канал передачи (канал связи — КС);
передатчик информации;
приемник информации.
Передатчик служит для преобразования поступающего от абонента сообщения в
сигнал, передаваемый по каналу связи; приемник — для обратного преобразования
сигнала в сообщение, поступающее абоненту.
В идеальном случае при передаче должно быть однозначное соответствие между
передаваемым и получаемым сообщениями. Однако под действием помех, возникающих в канале связи, в приемнике и передатчике, это соответствие может быть
искажено, и тогда говорят о недостоверной передаче информации.
Основными качественными показателями системы передачи информации являются:
пропускная способность,
достоверность,
надежность работы.
Линии и каналы связи
Линия связи (ЛС) — это физическая среда, по которой передаются информационные
сигналы. В одной линии связи может быть организовано несколько каналов связи
- 12 -
путем временного, частотного кодового и других видов разделения — тогда говорят о
логических (виртуальных) каналах. Если канал полностью монополизирует линию
связи, то он может называться физическим каналом и в этом случае совпадает с линией
связи. Хотя можно, например, говорить об аналоговом или цифровом канале связи, но
абсурдно говорить об аналоговой или цифровой линии связи, ибо линия — лишь
физическая среда, в которой могут быть образованы каналы связи разного типа. Тем не
менее, даже говоря о физической многоканальной линии, ее часто называют каналом
связи. ЛС являются обязательным звеном любой системы передачи информации.
Каналы связи
Механические
Акустические
Физическая природа
Оптические
Электрические
Форма передаваемой информации
Аналоговые
Цифровые
Симплексные
Направление передаваемой информации Полудуплексные
Дуплексные
Низкоскоростные
Пропускная способность
Среднескоростные
Высокоскоростные
Коммутируемые
Наличие коммутации
Выделенные
Рис. 15.2. Классификация каналов связи
1.)По физической природе ЛС и КС на их основе делятся на:
механические — используются для передачи материальных носителей информации
акустические — передают звуковой сигнал;
оптические — передают световой сигнал;
электрические — передают электрический сигнал.
Электрические и оптические КС могут быть:
проводными, использующими для передачи сигналов проводниковые линии связи
(электрические провода, кабели, световоды и т. д.);
беспроводными (радиоканалы, инфракрасные каналы и т. д.), использующими для
передачи сигналов электромагнитные волны, распространяющиеся по эфиру.
2.)По форме представления передаваемой информации КС делятся на:
-2-
аналоговые — по аналоговым каналам передается информация, представленная в
непрерывной форме, то есть в виде непрерывного ряда значений какой-либо
физической величины;
цифровые — по цифровым каналам передается информация, представленная в виде
цифровых (дискретных, импульсных) сигналов той или иной физической природы.
3.)В зависимости от возможных направлений передачи информации различают:
симплексные КС, позволяющие передавать информацию только в одном направлении;
полудуплексные КС, обеспечивающие попеременную передачу информации в прямом
и обратном направлениях;
дуплексные КС, позволяющие вести передачу информации одновременно и в прямом, и
в обратном направлениях.
4.)Каналы связи могут быть:
коммутируемыми;
некоммутируемыми.
Коммутируемые каналы создаются из отдельных участков (сегментов) только на время
передачи по ним информации; по окончании передачи такой канал ликвидируется
(разъединяется).
Некоммутируемые (выделенные) каналы создаются на длительное время и имеют
постоянные характеристики по длине, пропускной способности, помехозащищенности.
5.)По пропускной способности их можно разделить на:
низкоскоростные КС, скорость передачи информации в которых от 50 до 200 бит/с; это
телеграфные КС, как коммутируемые (абонентский телеграф), так и некоммутируемые;
среднескоростные КС, например аналоговые (телефонные) КС; скорость передачи в
них от 300 до 9600 бит/с, а в новых стандартах V 90—У.92 Международного
консультативного комитета по телеграфии и телефонии (МККТТ) и до 56 000 бит/с;
-3-
высокоскоростные (широкополосные)
информации выше 56 000 бит/с.
КС,
обеспечивающие
скорость
передачи
Физической средой передачи информации в низкоскоростных и среднескоростных КС
обычно являются проводные линии связи: группы либо параллельных, либо скрученных
(«витая пара») проводов.
6.)Для организации широкополосных КС используются различные кабели, в частности:
неэкранированные с витыми парами из медных проводов (UТР);
экранированные с витыми парами из медных проводов (STP);
волоконно-оптические (FOC);
коаксиальные;
беспроводные радиоканалы.
Витая пара — это изолированные проводники, попарно свитые между собой для
уменьшения перекрестных наводок между проводниками. Такой кабель, состоящий
обычно из небольшого количества витых пар (иногда даже двух), характеризуется
меньшим затуханием сигнала при передаче на высоких частотах и меньшей
чувствительностью к электромагнитным наводкам, чем параллельная пара проводов.
UТР-кабели чаще других используются в системах передачи данных, в частности в
вычислительных сетях. При хороших технических характеристиках эти кабели
сравнительно недороги, они удобны в работе, не требуют заземления.
SТР-кабели обладают хорошими техническими характеристиками, но имеют высокую
стоимость, жестки и неудобны в работе, требуют заземления экрана.
Коаксиальный кабель представляет собой медный проводник, покрытый диэлектриком и
окруженный свитой из тонких медных проводников экранирующей защитной оболочкой.
Коаксиальные кабели для телекоммуникаций делятся на две группы:
толстые коаксиалы;
тонкие коаксиалы.
Основу волоконно-оптического кабеля составляют «внутренние подкабели» — стеклянные или пластиковые волокна, окруженные твердым заполнителем и помещенные в
защитную оболочку. В одном кабеле может содержаться от одного до нескольких сотен
таких «внутренних подкабелей». Кабель, в свою очередь, окружен заполнителем и покрыт
более толстой защитной оболочкой, внутри которой проложен один или несколько
силовых элементов, принимающих на себя обеспечение механической прочности кабеля.
Используются явления полного внутреннего отражения света, что позволяет передавать
потоки света внутри оптоволоконного канала на значительное расстояние без потерь. В
качестве источника света используются светоиспускающие диоды (LED – Light emitting
diode) или лазерные диоды, в качестве приемников фотоэлементы. Оптоволоконные
каналы связи, несмотря на их, более высокую стоимость по сравнению с другими
каналами связи получают все большее распространение, причем не только на малые
расстояния, но и на международные участки.
Радиоволны и спутниковые каналы связи. Использование в компьютерных сетях
радиоволн в качестве передающей среды является выгодным при установлении связи на
-4-
большие расстояния, либо связи с труднодоступными объектами, подвижными или
временно используемыми объектами. Спутники обычно содержат несколько усилителей,
каждый из которых принимает сигнал в заданном диапазоне частот и генерирует их в
другом частотном диапазоне. Для передачи данных обычно используются
биостационарные спутники, расположенные на высоте 36000 км. Такое расстояние дает
существенную задержку сигнала, для компенсации которой используют специальные
методы. Обмен данными по радиоканалам может вестись с помощью аналоговых или
цифровых методов передачи данных.
Bluetooth – это технология передачи данных по радиоканалам на короткие расстояния,
позволяющая осуществлять связь беспроводных телефонов, компьютеров и различной
периферии даже в тех случаях, когда нарушается требование прямой видимости.
Телефонные линии связи являются наиболее разветвленными и широко используемыми.
По телефонным линиям связи осуществляется передача звуковых (тональных) и
факсимильных сообщений, они являются основой построения информационносправочных систем, систем электронной почты и вычислительных сетей. По телефонным
линиям могут быть организованы и аналоговые, и цифровые каналы передачи
информации.
-5-
Язык HTML
HTML (от англ. Hypertext Markup Language — «язык разметки гипертекста») — это
стандартный язык разметки документов во Всемирной паутине. Практически все вебстраницы создаются при помощи языка HTML или его последователя — XHTML.
Формально, HTML является приложением SGML1 (стандартного обобщённого языка
разметки) и соответствует международному стандарту ISO2 8879.
Язык HTML был разработан британским учёным Тимом Бернерсом-Ли3 приблизительно в
1991—1992 годах в стенах Европейского совета по ядерным исследованиям в Женеве
(Швейцария). HTML создавался как язык для обмена научной и технической
документацией, пригодный для использования людьми, не являющимися специалистами в
области вёрстки. HTML успешно справлялся с проблемой сложности SGML путём
определения небольшого набора структурных и семантических элементов (размечаемых
«тегами4»), служащих для создания относительно простых, но красиво оформленных
документов. Помимо упрощения структуры документа, в HTML внесена поддержка
гипертекста. Мультимедийные5 возможности были добавлены позже. Изначально язык
HTML был задуман и создан как средство структурирования и форматирования
документов без их привязки к средствам воспроизведения (отображения). В идеале, текст
с разметкой HTML должен был без стилистических и структурных искажений
воспроизводиться на оборудовании с различной технической оснащенностью (цветной
экран современного компьютера, монохромный экран органайзера, ограниченный по
размерам экран мобильного телефона или устройства и программы голосового
воспроизведения текстов). Однако современное применение HTML очень далеко от его
изначальной задачи. С течением времени, основная идея платформонезависимости языка
HTML была отдана в своеобразную жертву современным потребностям в
мультимедийном и графическом оформлении.
Браузеры
Текстовые документы, содержащие код на языке HTML (такие документы традиционно
имеют расширение «html» или «htm»), обрабатываются специальными приложениями,
которые отображают документ в его форматированном виде. Такие приложения,
1
SGML (англ. Standard Generalized Markup Language — стандартный общий язык разметки;
произносится [эс-джи-эм-эль]) — метаязык, на котором можно определять язык разметки для
документов. SGML — наследник разработанного в 1960 году в IBM языка GML (Generalized Markup
Language), который не стоит путать с Geography Markup Language, разрабатываемым GIS
Consortium. Изначально SGML был разработан для совместного использования машинночитаемых документов в больших правительственных и аэрокосмических проектах. Он широко
использовался в печатной и издательской сфере, но его сложность затруднила его широкое
распространения для повседневного использования.
Международная организация по стандартизации (International Organization for Standardization, ISO) —
международная организация, занимающаяся выпуском стандартов.
3
Сэр Тимоти Джон Бернерс-Ли (англ. Sir Timothy John «Tim» Berners-Lee; род. 8 июня 1955) — знаменитый
британский учёный, изобретатель URI, URL, HTTP, HTML, изобретатель Всемирной паутины (совместно с
Робером Кайо) и действующий глава Консорциума Всемирной паутины. Автор концепции семантической
паутины. Автор множества других разработок в области информационных технологий.
4
Те́ги (англ. tag) в SGML (в HTML, WML, языках семейства XML) — набор специально оформленного
текста, который сообщает информацию о некотором куске текста в документе. Например с помощью тегов
HTML сообщается, какими свойствами должен обладать тот или иной фрагмент текста на странице.
5
Мультимедиа (лат. Multum + Medium) — одновременное использование различных форм представления
информации и ее обработки в едином носителе.
2
-6-
называемые браузерами или интернет-обозревателями, обычно предоставляют
пользователю удобный интерфейс для запроса веб-страниц, их просмотра (и вывода на
иные внешние устройства) и, возможно редактирования.
Возможности
Язык HTML позволяет размечать текст. Возможности HTML можно сравнить с
возможностями текстового редактора Word, то есть, Вы можете:
сделать текст жирным,
вставить специальные символы (выходящие за рамки ASCII6 символы пунктуации,
математические символы, греческие и готические буквы, стрелки и т. п.)
поменять гарнитуру, кегль, начертание, цвет шрифта,
выровнять текст по центру, левому/правому краю,
оформить какой-то текст как ссылку на что-то другое (другой HTML документ, музыка,
фотография и пр.)
нарисовать таблицу (таблица при этом записывается не в табличном виде, как мы
привыкли, а специальным - по строкам и столбцам)
То есть, сам по себе HTML в чистом виде не имеет ничего общего с языками
программирования (часто новички не могут понять основ HTML именно потому, что
пытаются осознать именно с позиции программирования).
Все перечисленные возможности HTML были свойственны ему в начале его творческого
пути. Позже, когда появилась необходимость интерактивности HTML-страниц, появились
формы для введения пользователем данных, которые позднее подвергаются обработке.
Формы и другую информацию можно обрабатывать с помощью специальных серверных
программ (например, на языках PHP или Perl). Открытие мультимедийных файлов,
выводимых как непосредственно браузером (например, изображения в форматах JPEG,
GIF или PNG; аудиофайлы MIDI и др.), так и внешними приложениями, «встраиваевыми»
в окно браузера (Flash-анимация, Java-апплеты и прочее).
Версии
RFC 1866 — HTML 2.0, одобренный как стандарт 22 сентября 1995;
HTML 3.2 — 14 января 1996;
HTML 4.0 — 18 декабря 1997;
HTML 4.01 (незначительные изменения) — 24 декабря 1999;
ISO/IEC 15445:2000 (так называемый «ISO HTML», основан на HTML 4.01 Strict) — 15
мая 2000.
ASCII (англ. American Standard Code for Information Interchange — американский стандартный код для
обмена информацией; по-американски произносится [э́ски], тогда как в Великобритании чаще произносится
[а́ски]; по-русски также произносится [а́ски], и слово ASCII чаще употребляется в женском роде) — 7битная компьютерная кодировка для представления латинского алфавита, десятичных цифр, некоторых
знаков препинания, арифметических операций и управляющих символов.
6
-7-
Официальной спецификации HTML 1.0 не существует. До 1995 года существовало
множество неофициальных стандартов HTML. Чтобы стандартная версия отличалась от
них, ей сразу присвоили второй номер.
Версия 3 была предложена Консорциумом Всемирной паутины (W3C7) в марте 1995, и
обеспечивала много новых возможностей вроде поддержки таблиц, «обтекания»
изображений текстом и отображения сложных математических формул. Даже при том, что
этот стандарт был совместим со второй версией, реализация его была сложна для
браузеров того времени. Версия 3.1 официально никогда не предлагалась, и следующей
версией стандарта HTML стала 3.2, в которой были опущены многие нововведения из
версии 3.0, зато добавлены нестандартные элементы, поддерживаемые браузерами
Netscape и Mosaic. Поддержка математических формул была выпущена дополнительным
стандартом MathML.
HTML версии 4.0 также содержит много элементов, специфичных для отдельных
браузеров, но в то же самое время произошла некоторая «очистка» стандарта. Многие
элементы были отмечены как устаревшие и не одобряемые (англ. deprecated). В частности,
элемент font, используемый для изменения свойств шрифта, был помечен как устаревший
(вместо него рекомендуется использовать таблицы стилей CSS).
Перспективы
Новых версий языка HTML не будет, однако существует дальнейшее развитие HTML под
названием XHTML (от англ. Extensible Hypertext Markup Language — «расширяемый язык
разметки гипертекста»). Пока XHTML по своим возможностям сопоставим с HTML,
однако предъявляет более строгие требования к синтаксису. Как и HTML, XHTML
является подмножеством языка SGML, однако XHTML, в отличие от предшественника,
основан на XML. Вариант XHTML 1.0 был одобрен в качестве Рекомендации
Консорциума Всемирной паутины (W3C) 26 января 2000 года.
Планируемая спецификация XHTML 2.0 разрывает совместимость со старыми версиями
HTML и XHTML, что не очень устраивает некоторых веб-разработчиков и
производителей браузеров. Группой WHATWG (англ. Web Hypertext Application
Technology Working Group) разрабатывается спецификация Web Applications 1.0, часто
неофициально называемая «HTML5», которая расширяет HTML (впрочем, имея и
совместимый с XHTML 1.0 XML-синтаксис) для лучшего представления семантики
различных типичных страниц, например форумов, сайтов аукционов, поисковых систем,
онлайн-магазинов и т.д., которые не очень удачно вписываются в модель XHTML 2.
Структура HTML докумета
Данные в формате HTML похожи на текстовой файл, за исключением того, что некоторые
из символов интерпретируются как разметка. Разметка придает документу некую
структуру. Данные представляют собой иерархию элементов, тегов. Тег HTML состоит из
следующих друг за другом в определенном порядке элементов:
левой угловой скобки < (такого же, как "меньше чем" символа)
необязательного слэша /, который означает, что тег является конечным тегом,
закрывающим некоторую структуру. Таким образом в этом контексте Вы можете читать
символ /, как конец...
7
Консо́рциум Всеми́рной паути́ны (англ. World Wide Web Consortium, W3C) — организация,
разрабатывающая и внедряющая технологические стандарты для Всемирной паутины.
-8-
имени тега, например TITLE или PRE
необязательных, если даже тег может иметь их, атрибутов. Тег может быть без атрибутов
или сопровождаться одним или несколькими атрибутами, например: ALIGN=CENTER
правой угловой скобки > (такой же, как символа "больше чем").
Примеры: <H1>; <H1 ALIGN=LEFT>
Большинство, но не все теги HTML спарены так, что за открывающим тегом следует
соответствующий закрывающий тег, а между ними содержится текст или другие теги,
например: <H1>Foreword</H1>. В таких случаях два тега и часть документа, отделенная
ими, образуют блок, называемый HTML элементом. Некоторые теги, например <HR>,
являются элементами HTML сами по себе, и для них соответствующий конечный тег
неверен.
Что касается имен тегов, атрибутов и большинства значений атрибутов, HTML является
case нечувствительным языком. Вы можете, например, написать TITLE, или Title, или title,
или даже tItLE, если Вам нравится. Но существуют и case чувствительные конструкции
языка, а именно:
escape последовательности. Escape последовательности или, точнее, символьные объекты,
представляют собой метод представления специальных символов. Например, escape
последовательность < обозначает символ "меньше чем" (<). Некоторые символы, такие
как <, используются в HTML в специальном значении, поэтому должен существовать
способ их выражения, как символьных данных внутри самого документа или в URL.
URL, так как он может содержать наименования файлов, которые являются case
чувствительными во многих операционных системах (например, в Unix).
Элементы HTML можно классифицировать на три основные категории:
Заголовочные элементы, т.е. элементы, используемые в элементе HEAD ("шапка",
заголовок) и содержащие информацию о документе в целом: TITLE, SCRIPT, STYLE
Блоковые элементы, включающие элементы, которые специфицируют структуру
документа, например, разделение на части и параграфы (абзацы): H1, H2, H3, H4, H5, H6,
ADDRESS, и элементы P, PRE, DIV, CENTER, HR, TABLE.
Текстовые элементы. Текстовыми элементами могут быть:
простой текст, возможно содержащий escape последовательности (например, &)
выражения разметки: STRONG, DFN, CODE, VAR, CITE
разметка шрифта: TT, BIG, SMALL, SUB, SUP
специальные элементы: A, IMG, APPLET, FONT , MAP
элементы формы: INPUT, SELECT, TEXTAREA
Примерная структура программы HTML:
<HTML>
<HEAD>
<TITLE>
(тег верхнего уровня, необязателен)
(описывает раздел заголовок документа, может быть опущен)
(описывает заголовок документа, обязателен)
-9-
…..
(как правило, строка – название документа)
</ TITLE>
…..
(здесь могут быть такие необязательные теги LINK – связь с
другими докумен-тами, STYLE – спецификация таблицы стилей, BASE – задание базового
URL)
</ HEAD>
<BODY>
в
(определяет раздел тела документа, всегда следует за разделом HEAD,
документе используется только один раз, также может опускаться)
(тело документа, содержит разные теги)
....
</ BODY>
</ HTML>
- 10 -
VRML
Что такое VRML
Язык VRML (Virtual Realty Modelling Languagy) предназначен для описания трехмерных
изображений и оперирует объектами, описывающими геометрические фигуры и их
расположение в пространстве.
VRML–файл представляет собой обычный текстовый файл, интерпретируемый браузером.
Поскольку большинство браузеров не имеет встроенных средств поддержки vrml, для
просмотра Vrml–документов необходимо подключить вспомогательную программу –
Vrml–браузер, например, Live3D или CosmoPlayer.
Как и в случае с HTML, один и тот же VRML-документ может выглядеть по-разному в
разных VRML–браузерах. Кроме того, многие разработчики VRML–браузеров добавляют
нестандартные расширения VRML в свой браузер.
Существует немало VRML–редакторов, делающих удобным и более быстрым процесс
создания VRML–документов, однако несложные модели, рассматриваемые в данной
статье, можно создать при помощи самого простого текстового редактора.
Единицы измерения
В VRML приняты следующие единицы измерения:
Расстояние и размер: метры
Углы: радианы
Остальные значения: выражаются, как часть от 1.
Координаты берутся в трехмерной декартовой системе координат (см. рис.)
Заголовок VRML-файла
Как уже говорилось, Vrml-документ представляет собой обычный тестовый файл. Для
того, чтобы VRML-браузер распознал файл с VRML-кодом, в начале файла ставится
специальный заголовок - file header:
#VRML V1.0 ascii
Такой заголовок обязательно должен находиться в первой строке файла, кроме того, перед
знаком диеза не должно быть пробелов.
Примитивы VRML
В VRML определены четыре базовые фигуры: куб (верней не куб, а прямоугольный
параллепипед), сфера, цилиндр и конус.
Эти фигуры называются примитивами (primitives). Набор примитивов невелик, однако,
комбинируя их, можно строить достаточно сложные трехмерные изображения. Например,
вот такие:
Рассмотрим каждый из примитивов.
Куб
- 11 -
Возможные параметры: width - ширина, height - высота, depth - глубина.
Cube {
width 2
# ширина
height 3
# высота
depth 1
# глубина
}
Сфера
Параметр у сферы только один, это radius.
Sphere {
radius 1
# радиус
}
Конус
Возможные параметры: bottomRadius - радиус основания, height - высота, parts определяет, какие части конуса будут видны. Параметр parts может принимать значения
ALL, SIDES или BOTTOM.
Cone {
parts
ALL
bottomRadius
height
1
2
#отображаемые поверхности
#радиус основания
#высота
}
Цилиндр
Для цилиндра можно задать параметры radius и height. Кроме того, с помощью параметра
parts для цилиндра можно определить будут ли отображаться основания цилиндра и его
боковая поверхность. Параметр parts может принимать значения ALL, SIDES, BOTTOM
или TOP.
Cylinder {
parts ALL
#видны все части цилиндра
radius 1
#радиус основания
height 2
#высота цилиндра
}
Цвет и текстура
Цвет фигуры, определяется с помощью объекта Material.
Material {
- 12 -
ambientColor
diffuseColor
0.2 0.2 0.2
0.8 0.8 0.8
specularColor 0 0 0
emissiveColor 0 0 0
transparency 0
}
Параметры ambientColor, diffuseColor, specularColor и emissiveColor управляют цветами и
указываются в палитре RGB (красный, зеленый и голубой), причем первая цифра
определяет интенсивность красного цвета, вторая - зеленого, а третья - синего.
К примеру, синий кубик, может быть описан следующим образом:
#VRML V1.0 ascii
Material {
diffuseColor 0 0 1
}
Cube {}
Положение объектов в пространстве
Изменение координат
По умолчанию любой описанный нами объект будет располагаться точно по центру окна
браузера. По этой причине, если мы опишем к примеру два одинаковых цилиндра, они
сольются друг с другом. Для того, чтобы изменить положение второго цилиндра,
применим узел Translation.
Узел Translation определяет координаты объекта:
Translation {
translation 1 2 3 #т.е. соответственно x=1 y=2 z=3
}
В VRML 1.0 принято следующее правило: узлы, модифицирующие свойства фигур
(Translation, Material и т.п.), действуют на все далее описанные фигуры.
Чтобы ограничить область действия модифицирующих узлов, фигуры необходимо
сгруппировать с помощью узла Separator.
Separator
{
другие узлы
}
- 13 -
Узел Separator работает как контейнер, он может содержать любые другие узлы, и
основным его предназначением является именно ограничение области действия узлов
типа Translation и Material.
Вращение
Для вращения фигур вокруг осей координат применяется узел Rotation.
Rotation {
rotation 0 1 0 1.57
}
Первые три цифры определяет будет ли осуществлен поворот вокруг соответственно осей
x, y и z, а четвертая задает угол вращения в радианах. В приведенном выше листинге
поворот осуществляется вокруг оси y на 90 градусов.
Определение собственных объектов
VRML предоставляет прекрасную возможность сократить и сделать более понятным
исходный код VRML-файла путем описания собственных объектов. Это значит, что если в
изображении несколько раз повторяется одна и та же фигура, то ее можно описать всего
лишь один раз и в дальнейшем только ссылаться на нее.
DEF name
Separator {
Сгруппированные узлы, описывающие фигуру и свойства материала
}
Браузеры сами по себе VRML не поддерживают, нужно ставить соответствующий
плагины: Flux, Octaga, CosmoPlayer, Cortona (ParallelGraphics) и blaxxunContact. Лучшие,
по мнению пользователей сайта [2], Blaxxun и Cortona. Blaxxun setup весит 5.47мб, а
Cortona кажется меньше.
Писать *.wrl можно и в блокноте, но в VRMLPad намного лучше - подсветка синтаксиса,
возможность компрессии при сохранении (иногда вес получается меньше в несколько
раз), проверка ошибок, подсказка возможных параметров для объектов.
На файлы *.wrl можно размещать ссылки, и тогда при переходе на них, они откроются на
всё окно браузера.
А можно разместить их прямо в теле страницы так же как и flash:
code:
<object
classid=CLSID:4B6E3013-6E45-11D0-9309-0020AFE05CC8
name=CC3D2
id=leftviewfield width=400 height=300 border=3> <param name=SRC value=region34.wrl>
<embed name=leftviewfield src=region34.wrl type=model/vrml width=400 height=300>
</object>
Применение VRML
Язык моделирования виртуальной реальности применяется в следующих проектах:
- 14 -
Для моделирования большинства музейных экспозиций.
В проекте GeoVRML – для описания и отображения геометрических объектов в
геодезических координатах.
В H–Anim для моделирования персонажей.
В под–языке CAD–VRML для применения в системах проектирования CAD и CAM.
- 15 -
Классификация компьютерных сетей
Компьютерная сеть- это совокупность компьютеров и терминалов, соединенных с
помощью каналов связи в единую систему, удовлетворяющую требованиям
распределенной обработки данных. Можно предложить следующую классификацию
компьютерных сетей:
1. по территориальному признаку.
1.1 Локальные вычислительные сети (Local Area Networks)
Представляют собой систему распределенных данных, охватывающую небольшую
территорию (диаметром 10 км) внутри учреждений, ВУЗов, банков, офисов и т.п., это
система взаимосвязанных и распределенных на фиксированной территории средств
передачи и обработки информации, ориентированных на коллективное использование
общественных ресурсов- аппаратных, информационных, программных. В качестве
передающей среды обычно используются коаксиальные кабели, сети на витой паре,
оптоволокно. Скорость обмена информацией от 1Мб/с до100Мб/ с.
1.2 Региональные вычислительные сети RAN.
Если сеть охватывает целый город, то она является региональной вычислительной сетью
(РВС). Это наиболее новый тип сетей. Имеет много общего с ЛВС, но они по многим
параметрам сложнее последних. Например, помимо обмена данными и голосового
обмена, РВС могут передавать видео и аудиоинформацию
1.3.Корпоративные сети(Intranet)
Это сеть на уровне компании. Данные сети используют организации, которые
заинтересованы в защите информации от несанкционированного доступа.
1.4 Глобальные вычислительные сети WAN (Wide Area Networks)
WAN Охватывают значительно большую территорию (страны, континенты, мир). В
качестве передающей среды используются аналоговые и цифровые проводные каналы, а
так же спутниковые каналы связи.
2.По организации передачи информации
2.1.Сети с селекцией информации. Строится на основе моноканала. Взаимодействие АС
производится выбором (селекцией) адресованных им блоков данных (кадров) . Всем АС
сети доступны все передаваемые в сети кадры, но копию кадра снимают только АС,
которым они предназначены.
2.2. Сети с маршрутизацией информации. Для передачи кадров от отправителя к
получателю может использоваться несколько
маршрутов. Поэтому с помощью
коммуникационных систем сети решается задача выбора оптимального маршрута.
3. По топологии сети (Вид общей схемы соединения компьютеров в локальной сети)
Широковещательные. В любой момент времени на передачу кадра может работать только
одна рабочая станция (абонентская система). Остальные рабочие станции сети могут
принимать этот кадр. (Шина, дерево)
- 16 -
Последовательные. Характерны для сетей с маршрутизацией информации, передача
данных осуществляется последовательно от одной рабочей станции к соседней. (Ячеистая,
иерархическая, кольцо, звезда, смешанные, полносвязная.)
3.1 Топология шина.
1
2
3
4
Все узлы сети подключены к одному незамкнутому каналу, который обычно называется
шиной. В данном случае одна из машин используется в качестве системного
обслуживающего устройства, которая обеспечивает централизованный доступ к общим
файлам, базам данных, печатающим устройствам и др. ресурсам сети.
3.2 Кольцевая топология
Все узлы подключаются к одному замкнутому кольцевому каналу. Эта
топология сети
характеризуется тем, что информация по каналу может предаваться только в одном
направлении, и все узлы сети могут участвовать в ее приеме и передаче. При этом
получатель (узел сети) должен пометить полученную информацию специальным
маркером, иначе могут появиться «заблудившиеся» данные, мешающие нормальной
работе сети.
3.3.Топология Звезда.
host
Все узлы сети подключены к одному центральному узлу, который называется хостом
(host) или хабом (hub)- сетевое устройство. В центре сети обычно располагается
коммутирующее устройство, обеспечивающее работу сети.
3.4 Смешанная топология (гибридные сети)
Отдельные части сети имеют разную топологию.
Ячеистая (сотовая)
Иерархическая (выделение иерархических уровней)
Полносвязная
По функциональным возможностям узлов различают:
4.1 Одноранговые сети (PEER-TO-PEER NETWORKS)
- 17 -
Когда узлы сети выполняют одинаковые коммуникационные функции, они называются
равными (PEER).Коммуникации между такими узлами обычно называются
одноранговыми.
4.2 Сети на основе сервера
Для увеличения продолжительности, а также для обеспечения большей надежности при
хранении информации в сети некоторые компьютеры некоторые компьютеры выделяют
для хранения файлов и рограммных приложений.
5 По каналам связи, используемым для передачи информации
5.1 Проводные каналы связи. В данном случае в качестве передающей среды выступает
проводной кабель, либо телефонный, либо коаксиальный (локальные сети). Также часто
используется провод «витая пара» и его более современная модификация –
«неэкранированная витая пара».
5.2 Оптоволоконные каналы связи. При оптико-волоконном соединении передающей
средой является специальная прозрачная пластмасса, по которой передается свет. Он
передается в результате отражения от границы двух сред. Поэтому скорость передачи
данных по таким каналам достигает 2-3 Гбит/с. Как правило, длинна оптико-волоконных
каналов не превышает 100 км. В качестве конечных устройств используют концентраторы
и адаптеры.
5.3 Радиорелейный канал связи. Передающей средой в данном случае является воздух по
которому распространяются радиоволны. Скорость передачи по таким каналам
колеблется от нескольких Кбит/с до нескольких Мбит/с. Преимуществом радиорелейных
каналов связи является то, что они не требуют вспомогательного оборудования, а
недостатком – необходимо получить разрешение на использование частот, кроме того,
оборудование для обслуживания данных каналов является достаточно дорогим.
4.4 Спутниковый канал связи. Такие каналы используют для передачи информации на
значительные расстояния. При этом используются специальные ретрансляционные
спутники (геостационарные или низколетные). Скорость передачи данных: от нескольких
Кбит/с до нескольких Гбит/с
6.По скорости передачи данных
6.1. С малой пропускной способностью (единицы мегабитов в секунду), в которых в
качестве физической передающей среды используется обычно витая пара или
коаксиальный кабель
6.2 .Со средней пропускной способностью (десятки мегабитов в секунду), в которых
используется также витая пара или коаксиальный кабель.
6.3. С большой пропускной способностью. (Сотни мегабитов в секунду), где применяются
оптоволоконные кабели.
7. По типу используемых в сети ЭВМ
- 18 -
7.1 Неоднородные. Используются различные классы (микро, мини, большие) модели
ЭВМ, а также различное абонентское оборудование.
7.2 Однородные. Используются одинаковые модели ЭВМ, а также однотипное
абонентское оборудование.
8. По сфере функционирования
8.1 Банковские сети;
8.2 Сети научных учреждений;
8.3 Коммерческие сети (сеть предприятия);
9. По форме функционирования
9.1Бесплатные и коммерческие;
9.2Корпоративные и сети общего пользования;
Топология физических сетей
В первую очередь необходимо выбрать способ организации физических связей, то есть
топологию. Топология - компьютерной сети отражает структуру связей между ее
основными функциональными элементами. Под топологией вычислительной сети
понимается конфигурация графа, вершинам которого соответствуют компьютеры сети
(иногда и другое оборудование, например концентраторы), а ребрам — физические связи
между ними. Компьютеры, подключенные к сети, часто называют станциями или узлами
сети.
Заметим, что конфигурация физических связей определяется электрическими
соединениями компьютеров между собой и может отличаться от конфигурации
логических связей между узлами сети. Логические связи представляют собой маршруты
передачи данных между узлами сети и образуются путем соответствующей настройки
коммуникационного оборудования.
Выбор топологии электрических связей существенно влияет на многие характеристики
сети. Например, наличие резервных связей повышает надежность сети и делает
возможным балансирование загрузки отдельных каналов. Простота присоединения новых
узлов, свойственная некоторым топологиям, делает сеть легко расширяемой.
Экономические соображения часто приводят к выбору топологий, для которых характерна
минимальная суммарная длина линий связи.
Рассмотрим некоторые, наиболее часто встречающиеся топологии.
Полносвязная топология.
- 19 -
Соответствует сети, в которой каждый компьютер сети связан со всеми остальными.
Несмотря на логическую простоту, этот вариант оказывается громоздким и
неэффективным. Действительно, каждый компьютер в сети должен иметь большое
количество коммуникационных портов, достаточное для связи с каждым из остальных
компьютеров сети. Для каждой пары компьютеров должна быть выделена отдельная
электрическая линия связи. Полносвязные топологии применяются редко, так как не
удовлетворяют ни одному из приведенных выше требований. Чаще этот вид топологии
используется в многомашинных комплексах или глобальных сетях при небольшом
количестве компьютеров.
Все другие варианты основаны на неполносвязных топологиях, когда для обмена данными
между двумя компьютерами может потребоваться промежуточная передача данных через
другие узлы сети.
Ячеистая топология.
Получается из полносвязной путем удаления некоторых возможных связей. В сети с
ячеистой топологией непосредственно связываются только те компьютеры, между
которыми происходит интенсивный обмен данными, а для обмена данными между
компьютерами, не соединенными прямыми связями, используются транзитные передачи
через промежуточные узлы. Ячеистая топология допускает соединение большого
количества компьютеров и характерна, как правило, для глобальных сетей.
- 20 -
Общая шина.
Рабочие станции с помощью сетевых адаптеров подключаются к общей магистрали
/шине/ (кабелю). Аналогичным образом к общей магистрали подключаются и другие
сетевые устройства. В процессе работы сети информация от передающей станции
поступает на адаптеры всех рабочих станций, однако, воспринимается только адаптером
той рабочей станции, которой она адресована. Является очень распространенной (а до
недавнего времени самой распространенной) топологией для локальных сетей.
Передаваемая информация может распространяться в обе стороны. Применение общей
шины снижает стоимость проводки, унифицирует подключение различных модулей,
обеспечивает возможность почти мгновенного широковещательного обращения ко всем
станциям сети. Таким образом, основными преимуществами такой схемы являются
дешевизна и простота разводки кабеля по помещениям. Самый серьезный недостаток
общей шины заключается в ее низкой надежности: любой дефект кабеля или какогонибудь из многочисленных разъемов полностью парализует всю сеть. К сожалению,
дефект коаксиального разъема редкостью не является. Другим недостатком общей шины
является ее невысокая производительность, так как при таком способе подключения в
каждый момент времени только один компьютер может передавать данные в сеть.
Поэтому пропускная способность канала связи всегда делится здесь между всеми узлами
сети.
Топология звезда.
Характеризуется наличием центрального узла коммутации – сетевого сервера, которому
или через который посылаются все сообщения. В этом случае каждый компьютер
подключается отдельным кабелем к общему устройству, называемому концентратором,
который находится в центре сети. В функции концентратора входит направление
передаваемой компьютером информации одному или всем остальным компьютерам сети.
Главное преимущество этой топологии перед общей шиной — существенно большая
надежность. Любые неприятности с кабелем касаются лишь того компьютера, к которому
этот кабель присоединен, и только неисправность концентратора может вывести из строя
всю сеть. Кроме того, концентратор может играть роль интеллектуального фильтра
- 21 -
информации, поступающей от узлов в сеть, и при необходимости блокировать
запрещенные администратором передачи.
К недостаткам топологии типа звезда относится более высокая стоимость сетевого
оборудования из-за необходимости приобретения концентратора. Кроме того,
возможности по наращиванию количества узлов в сети ограничиваются количеством
портов концентратора. Иногда имеет смысл строить сеть с использованием нескольких
концентраторов, иерархически соединенных между собой связями типа звезда.
В настоящее время иерархическая звезда является самым распространенным типом
топологии связей, как в локальных, так и глобальных сетях.
Кольцевая топология.
Характеризуется наличием замкнутого канала передачи данных в виде кольца или петли.
В этом случае информация передается последовательно между рабочими станциями до
тех пор, пока не будет принята получателем и затем удалена из сети. Недостатком
подобной топологии является ее чувствительность к повреждению канала. В сетях с
кольцевой конфигурацией данные передаются по кольцу от одного компьютера к
другому, как правило, в одном направлении. Если компьютер распознает данные как
«свои», то он копирует их себе во внутренний буфер. В сети с кольцевой топологией
необходимо принимать специальные меры, чтобы в случае выхода из строя или
отключения какой-либо станции не прервался канал связи между остальными станциями.
Кольцо представляет собой очень удобную конфигурацию для организации обратной
связи — данные, сделав полный оборот, возвращаются к узлу-источнику. Поэтому этот
узел может контролировать процесс доставки данных адресату. Часто это свойство кольца
используется для тестирования связности сети и поиска узла, работающего некорректно.
Для этого в сеть посылаются специальные тестовые сообщения.
- 22 -
В то время как небольшие сети, как правило, имеют типовую топологию — звезда, кольцо
или общая шина, для крупных сетей характерно наличие произвольных связей между
компьютерами. В таких сетях можно выделить отдельные произвольно связанные
фрагменты (подсети), имеющие типовую топологию, поэтому их называют сетями со
смешанной топологией
Службы Интернета: World Wide Web. Web-браузеры. Навигация. Работа с
документом. Прокси-сервер
Службы Интернета
Internet - это средство обмена информацией. В internet под службой понимается
программа.
Наиболее широко используются следующие службы Интернета:
telnet - позволяет вам соединиться с удаленным компьютером и работать с ним так, как
будто вы сидите перед ним, в текстовом режиме. Это то, для чего предназначался
Интернет в момент его зарождения.
e-mail (электронная почта) - в соответствии с названием, почта, только электронная.
Электронная почта считается самой старой из служб Интернета. Когда еще о WWW никто
и не слышал, служба e-mail уже вовсю функционировала и связывала множество людей.
В основе электронной почты лежат два основных протокола :
SMTP (Simple Mail Transfer Protocol) - простой протокол передачи почты. Служит для
отправки сообщений с компьютера клиента.
POP3 (Post Office Protocol 3) - протокол почтового отделения версии 3 - более сложный
протокол, так как служит для приема сообщений. Протокол требует установления
личности путем проверки логина и пароля.
По одному из следующих адресов вы можете зарегистрировать свой личный почтовый
ящик : mail.ru, gmail.ru, rambler.ru, yandex.ru.
- 23 -
Отправлять и принимать письма вы можете как введя свои данные на сайтах этих
компаний, так и при помощи почтовых клиентов. Преимущество почтовых клиентов
состоит в том, что не нужно постоянно находиться в Интернете, достаточно лишь
установить соединение во время приема и отправки писем.
Почтовым клиентом по умолчанию в Windows является программа Outlook Express, но
ввиду ее ограниченной функциональности и слабой безопасности пользователи все чаще
устанавливают альтернативные программы такие как TheBat!, Mozilla ThunderBird.
В последнее время приобрело популярность распространение по электронной почты
рекламы и вредоносных программ. Такие рассылки принято называть спамом.
ftp - также одна из старейших служб, используется для копирования файлов с компьютера
на компьютер.
В службе FTP используется одноименный протокол File Transfer Protocol (протокол
передачи файлов).
Для хранения файлов используют так называемые FTP - серверы. Доступ к такому серверу
осуществляется при помощи протокола FTP.
Для того чтобы получить доступ к файлам сервера, необходим:
- FTP-клиент,
- логин и пассворд на сервере.
Сейчас функцию FTP-клиента имеет большинство браузеров.
Логином в большинстве случаев может быть Anonymous, а паролем любой адрес
электронной почты.
FTP считается одним из сложнейших протоколов Интернета.
WWW (веб) - служба, которая совмещает в Интернете функции электронного
издательства и библиотеки. Все публикации в Интернете представляют собой один
постоянно дописываемый многими авторами гигантский документ, связанный паутиной
перекрестных ссылок, что и дало название этой службе (Всемирная Паутина).
Наиболее популярная в наше время служба WWW (World Wide Web) появилась
относительно недавно в 1989 году. Ее создателем считается Тим-Бернерс Ли, нынешний
президент консорциума w3c. С появлением WWW сам статус Интернета резко изменился.
Если ранее Интернет был уделом ученых, то уже в начале 90х Интернетом мог
пользоваться практически каждый. Именно благодаря этой службе Интернет стал таким,
каким мы видим его сегодня - доступным и популярным.
Действие службы основано на трех составляющих :
HTML (HyperText Markup Language) - язык разметки гипертекста.
HTTP (HyperText Transfer Protocol) - протокол передачи гипертекста. Главное отличие
гипертекста от обычного текста - это возможность помечать любой текст или другой
объект страницы как ссылку, то есть связывать его с другим документом. При щелчке по
- 24 -
ссылке протокол HTTP посылает запрос на сервер, на котором хранится документ,
указанный в ссылке. Документ находится, отображается на компьютере-клиенте и
соединение с сервером прерывается.
Гипертекстовые ссылки. Роль ссылок весьма значительна. Именно благодаря им
пользователи могут находить в Сети интересующие их документы. Представьте
поисковую систему без ссылок! Сейчас веб-страниц настолько много, что ни одна
поисковая система не может охватить весь объем Интернета.
HTTPS. HTTPS — расширение протокола HTTP, поддерживающее шифрование. Данные,
передаваемые по протоколу HTTP, «упаковываются» в криптографический протокол SSL
или TLS, тем самым обеспечивается защита этих данных. В отличие от HTTP, для HTTPS
по умолчанию используется TCP порт 443. Эта система была разработана компанией
Netscape Communications Corporation, чтобы обеспечть аутентификацию и защищенное
соединение. HTTPS широко используется в мире Веб для приложений, в которых важна
безопасность соединения, например, в платежных системах.
web – браузеры
Браузер (от англ. browse — просматривать, листать) — это специальная программа,
позволяющая просматривать содержимое сети Интернет. Она позволяет получить доступ
ко всем информационным ресурсам сети. С помощью браузера можно просматривать и
загружать картинки, звуковые и видеофайлы, различную текстовую информацию
(электронные книги, новости, журналы, анекдоты) и т.д.
Существует несколько видов браузеров:
браузер режима командной строки. К этому типу относятся самые ранние браузеры. Они
не дают возможности просматривать текст и графику. Такие браузеры поддерживают
перемещение только с использованием цифровых адресов (IP). В настоящее время
практически не используются.
полноэкранный браузер. Текстовый браузер без поддержки мультимедийных (картинки,
анимация и т.п.) ресурсов сети Интернет. С помощью него можно просматривать только
текст и ссылки.
браузер с поддержкой мультимедиа. Самые распространенные и популярные браузеры
сегодня. Позволяют работать практически со всеми видами информации, представленной
в Интернете.
браузеры-дополнения, которые являются надстройками над полнофункциональными
браузерами. Чаще всего разработчиками дополнений используется Internet Explorer.
Надстройки используют для отображения сайтов “движок” этого браузера. Поэтому их
возможности в этой области полностью идентичны с Internet Explorer. Дополнения всего
лишь изменяют интерфейс и добавляют некоторые функции, которые разработчики из
Microsoft обошли.
Полноэкранные браузеры
Один из самых популярных полноэкранных браузеров является Lynx, который входит в
состав операционной системы Lynix. Рассмотрим его более подробнее.
- 25 -
Несомненными преимуществами этого браузера является то, что он может работать на
очень старых компьютерах, а также значительное ускорение времени загрузки страниц изза отсутствия графических элементов и картинок.
Lynx очень удобный браузер, легок при настройке, полностью русифицированный.
Распространяется на диске в комплекте с операционной системой Lynix. Поэтому
подавляющее большинство пользвателей Lynx работают в среде Lynix.
Браузеры с поддержкой мультимедиа
Самым первым браузером с поддержкой графики был Mosaic, созданный в NCSA
(Национальный центр суперкомпьютерных приложений, США) группой студентов при
университете штата Индиана.
Один из студентов, Марк Андрисен (Mark Andreessen), позднее основал компанию Mosaic
Communications, компания создала браузер Mozilla. Он поддерживал основные форматы
графических файлов, позволял работать со звуком, и при его создании были использованы
новейшие технологии сети Интернет. Но под этим именем программа существовала
недолго, так как NCSA подала в суд на Mosaic Communications за использование торговой
марки Mosaic в названии компании. После этого браузер получает имя Navigator, а
компания в апреле 1984 года переименовывается в Netscape.
Microsoft Internet Explorer
Internet Explorer — самый популярный браузер в мире и бесспорный лидер. Специально
устанавливать его не нужно, так как он входит в стандартный комплект любого из
Windows.
- 26 -
Internet Explorer на сегодняшний день поддерживает абсолютно все технологии,
использующиеся при создании сайтов. Это всевозможные мультимедиа-ролики (видео и
аудио), шифрование данных в системах электронной коммерции, различные языки
разметки гипертекста (HTML, XML и т. д.). Остановимся на некоторых его недостатках.
Во-первых, у рассматриваемого браузера нет многооконного режима.
Во-вторых, данный браузер относительно медленно обрабатывает и выводит на экран
страницы сайтов. Однако, это тоже спорно. Для пользователей, у которых связь с
Интернетом очень быстрая (кабельный и спутниковый Интернет, выделенная линия)
подобный недостаток не играет никакой роли.
В-третьих, неудачно реализованы функции сохранения информации из Интернета.
И в-четвертых, очень неудобное отключение графики при просмотре сайтов — нужно
очень долго ходить по меню, чтобы поставить нужную галочку в настройках.
Opera
Opera — главный конкурент Internet Explorer.
Браузер Opera написан с чистого листа на языке С++ и не использует кода, основанного на
NCSA Mosaic.
Opera имеет очень большое количество достоинств, которых нет у конкурентов. Как
утверждают разработчики, это самый быстрый браузер в мире. Это подтверждается
отзывами пользователей. Выигрыш в скорости можно получить, если связь с Интернетом
достаточно медленная, хотя скорость загрузки страниц зависит и от персональных
настроек компьютера, а также от его мощности.
Кроме того, этот браузер, несмотря на неплохие функциональные возможности, занимает
очень мало места на диске и требует минимум системных ресурсов.
Еще одним преимуществом этого браузера является практически полностью
настраиваемый интерфейс. Пользователь может изменить по своему желанию любую его
часть. Стоит заметить, что Opera – многооконный браузер. Некоторым пользователем эта
функция очень даже нравиться и они с удовольствием пользуются ей.
В браузере Opera достаточно много полезных дополнительных функций. В частности, при
открытии страницы он определяет скорость передачи информации и процент уже
загруженных данных. Что очень важно, Opera позволяет быстро, нажатием на одну
- 27 -
кнопку, выключить и снова включить отображение графики на сайте. Еще у этого
браузера очень хорошо работает кэширование страниц, удобный список закладок, все
команды дублируются на клавиатуре, можно делать изменение масштаба документа от
20% и до 1000%... Этот список достоинств можно продолжать и продолжать.
Но есть у браузера Opera и серьезные недостатки.
Во-первых, он распространяется платно (39 $). Это значит, что в его главном окне
пользователю будет показываться большой баннер до тех пор, пока он не заплатит за
регистрацию программы.
Во-вторых, недостаточно надежная работа со скриптами (как Javascript, так и Vb-script).
Несмотря на заявленную поддержку Javascript, иногда бывают накладки.
Многие другие современные интернет-технологии недоступны для этого браузера.
Еще один существенный недостаток — это отсутствие поддежки некоторых русских
кодировок в английских версиях. Приходиться идти на всевозможные технические уловки
и загрузки дополнительных компонентов, чтобы полноценно работать. Все это может
отпугнуть обычного пользователя. Однако русификация программы уже сделана.
Mozilla
Этот браузер появился недавно — в конце 2001 года. Сходство Netscape Navigator и
Mozilla далеко не случайно. Исходный код Mozilla был опубликован в 1999 году. На сайте
http://www.mozilla.org все желающие получили доступ к исходным кодам, возможность
внесения изменений, участие в группах новостей разработчиков, возможность получения
и распространения информации, связанной с браузером.
Главным плюсом этого браузера считается его многооконность и скорость работы. Также
очень хорошо и удобно в нем реализована функция сохранения информации из
Интернета.
Кроме
того,
существует
множество
плагинов,
расширяющих
функциональность этого браузера.
К недостаткам стоит отнести нестандартный и непривычный для обычного пользователя,
по сравнению с Internet Explorer, интерфейс. Некоторые функции в нем работают подругому — совсем не так, как принято в Windows. Другой важный недостаток —
некорректность отображения некоторых динамических сайтов.
Netscape Navigator
Когда-то Netscape Navigator был действительно реальным конкурентом Internet Explorer.
- 28 -
Создатели Netscape Navigator в последнии версии встроили очень много дополнительных
утилит — почтовый клиент, утилита для общения по IRC-каналам и мультимедиа-плейер,
а также многое другое. Из-за этого дистрибутив браузера стал очень большим. Плюс к
этому, Netscape Navigator очень медленно запускается и занимает много системных
ресурсов, поскольку каждый раз он загружает все свои утилиты и компоненты.
Netscape Navigator частенько некорректно отображает многие сайты. И это касается не
только сложных динамических, но и простых текстовых страниц.
Альтернативные браузеры
Альтернативными браузерами обычно называют остальные браузеры, не вошедшие в
лидирующую «четверку» (Internet Explorer, Opera, Mozilla, Netscape Navigator), а также
браузеры-дополнения, являющиеся надстройками над полнофункциональными
программами просмотра содержимого Интернет (чаще всего «надстраивают» Internet
Explorer). Перечислим некоторые из них:
Netsurf — в этом браузере основной упор сделан не на визуальные эффекты, а на
функциональность и скорость работы; интерфейс достаточно прост и удобен, поэтому
привыкнуть к ней начинающему пользователю не составит труда.
Konqueror — это по сути файл-менеджер с функцией просмотра страниц в Интернете.
Полностью русифицирован и работает с множеством кодировок.
Neoplanet — особенностью этой надстройки является возможность менять внешний вид
браузера посредством использования скинов, которых сотни. Причем можно делать свои
собственные. Интерфейс английский.
MyIE2 — самое интересное, но эта надстройка превращает Internet Explorer в
многооконный браузер. И потом в ней есть функция, блокирующая отображение баннеров
на страницах и открытие всплывающих окон. MyIE2 позволяет пользователям включать и
отключать отображение графики на просматриваемых сайтах нажатием одной кнопки.
Internet Surfer — одна из самых популярных надстроек. Занимает очень мало места.
Удобный многооконный интерфейс.
Но есть у браузеров-дополнений и недостатки: они часто снижают устойчивость работы
системы и приводят к различным ошибкам. К тому же большинство действительно
удобных надстроек — платные (бесплатный MyIE2 является исключением из этого
правила).
- 29 -
Сравнительная таблица web – браузеров
Internet Mozilla KonqueKDr.
Opera Maxthon Netscape
Explorer Firefox ror
Meleon Orca
Sea
Monkey
Windows
+
+
-
+
+
+
+
+
+
Linux
-
+
+
+
-
-
-
-
+
Mac OS X
-
+
-
+
-
-
-
-
+
*BSD
-
+
+
+
-
-
-
-
+
Движок
Trident
Gecko
KHTML Presto Trident
Gecko,
Trident
Gecko Gecko Gecko
СSS
+
+
+
+
+
+
+
+
+
СSS2
-
+
+
+
-
+
+
+
+
CSS3
-
+
+
-
-
-
-
+
+
SVG
-
+
+
-
-
-
-
+
+
RSS
-
+
+
+
-
+
-
-
-
Вкладки
-
+
+
+
+
+
+
+
+
Скины
-
+
+
+
+
+
+
-
+
Расширения -
+
+
-
+
+
+
-
+
Поисковые
машины
-
+
+
+
+
+
+
+
+
Боковая
панель
-
+
+
+
+
+
-
+
+
Блокировка
рекламы
-
+
+
+
+
+
-
+
+
Время
первой
загрузки
2-3
5-10
3-4
3-4
3-4
6-12
3-4
3-4
6-12
Доля
на
мировом
80-85
рынке, %
10-15
0,8
0,5
Очень
мало
1,5
Очень Очень Очень
мало мало мало
Доля
на 80-85
российском
7-8
1-2
7-8
2-3
Очень
Очень Очень Очень
- 30 -
рынке, %
Материал,
используемый
Автор - Юрий Меркулов
мало
в
таблице
- 31 -
приведен
мало
с
мало
сайта
мало
ixbt.com
Обработка документов
При работе с WWW часто возникают разнообразные проблемы.
Если документ отображается неправильно или не полностью, и его перезагрузка (с
помощью кнопки Reload) не помогает, то один из возможных источников проблем несовместимость загружаемого вами документа с типом или версией браузера, которым
вы пользуетесь.
Различные браузеры поддерживают разный набор версий стандартов HTML и других вебтехнологий. До недавнего времени существовала эмпирическая закономерность, по
которой номер версии браузера соответствовал номеру последней поддерживаемой им
спецификации HTML.
Так, браузеры второго поколения не умеют работать с фреймами, поэтому сайты,
использующие эту технологию, могут оказаться для вас недоступны, если вы пользуетесь
такой старой версией браузера.
Иногда документ отображается неправильно из-за того, что его создатели использовали в
нем шрифты, отсутствующие на вашем компьютере. Другая возможная причина документ разрабатывался для другого разрешения экрана и другого размера шрифтов, чем
те, которое используете вы.
Настройка вашего браузера также может иметь значение. Например, некоторые сервера не
будут правильно работать, если вы используете прокси-сервер. В общем и целом следует
сказать, что использование последней версии выбранного вами браузера убережет вас от
некоторых проблем такого рода.
У пользователей российского сектора Сети при работе с документами на русском языке
возникают дополнительные проблемы. Слова "кодировка" и "кодовая страница" звучат
устрашающе для начинающего пользователя Сети, потому что в них таится причина
многих преследующих его бед.
Когда компьютеры стали взаимодействовать друг с другом в Интернете, начали возникать
проблемы, связанные с тем, что русский текст, набранный на компьютере под
управлением одной операционной системы, невозможно прочитать на компьютере под
управлением другой.
Традиционно в Интернете очень широко используются компьютеры под управлением
операционных систем семейства UNIX. Они и по сегодняшний день составляют большую
часть серверов Сети. В этих операционных системах используется русская кодировка
КОИ-8. Аббревиатура КОИ расшифровывается как "Код Обмена Информацией",
восьмерка обозначает, что для кодирования одного символа требуется восемь бит.
В операционных системах от корпорации Microsoft используются две разных кодировки.
В MS DOS применяется кодировка CP866 (CP - англ. от code page, кодовая страница),
также известная как "альтернативная" (ALT). В операционных системах семейства
Windows кириллические символы обычно кодируются в стандарте CP1251.
Кроме того, существует отдельная русская кодировка, применяемая в компьютерах
Macintosh фирмы Apple. Она обычно так и обозначается - MAC. Помимо перечисленных
выше кодировок, используемых в различных операционных системах, есть еще одна ISO-8859-5. Она никем никогда не применялась, зато первой была стандартизована.
Основные кодировки русской Сети - КОИ-8 и Windows CP1251. В соответствии со
стандартами Интернета, веб-сервер передает браузеру кодировку документа, и он
- 32 -
автоматически перекодирует его. Но этот порядок еще не вполне прижился в Сети,
поэтому иногда приходится осуществлять операцию смены кодировки вручную.
Если браузер выдает ошибку "Document not found", это означает, что запрашиваемый вами
документ отсутствует на указанном сервере (проверьте, правильно ли вы задали его
адрес). Ошибка "Access forbidden" означает, что доступ к запрашиваемому документу
запрещен.
Иногда браузер не находит сервер, на котором расположен запрашиваемый документ. В
этом случае сервер с таким именем либо действительно не существует (проверьте,
правильно ли вы набрали его имя в адресной строке), либо время запроса к серверу
службы доменных имен (DNS) истекло раньше, чем он возвратил цифровой адрес,
соответствующий данному имени. В последнем случае при повторном обращении к
серверу ошибка исчезнет.
Proxy - сервер
Прокси сервер - это промежуточный компьютер, который является посредником ("proxy" посредник) между Вашим компьютером и интернетом. Через него проходят все Ваши
обращения в Internet. Proxy их обрабатывает, и результаты (скаченные из Internet файлы)
передает Вам.
Классификация proxy
Существует несколько типов proxy серверов. Каждый тип proxy предназначен для
решения своего круга задач, однако у них есть много общего, их возможности во многом
совпадают.
HTTP proxy
Это наиболее распространенный тип proxy серверов и говоря просто "proxy", имеют в
виду именно его. Раньше с помощью этого типа proxy можно было только просматривать
web страницы и картинки, скачивать файлы. Теперь же новые версии программ (ICQ и
т.п.) умеют работать через HTTP proxy. С этим типом proxy умеют работать и браузеры
любых версий.
Socks proxy
Эти proxy сервера умеют работать практически с любым типом информации в Internet
(протокол TCP/IP), однако для их использования в программах должно быть явно указана
возможность работы с socks proxy. Для использования socks proxy в браузере нужны
дополнительные программы (браузеры не умеют сами работать через socks proxy). Однако
любые версии ICQ (и многих других популярных программ) отлично могут работать через
socks proxy. Напоследок обратите внимание: при работе с socks proxy нужно указывать его
версию: socks 4 или socks 5.
CGI proxy (анонимайзеры)
http://www.anonymizer.com/
Proxy сервер данного типа представляет собой (с точки зрения пользователя) обычную
web-страничку, очень похожую на страницы поисковых систем. Только вместо поисковых
фраз Вам необходимо в поле ввода набрать URL того сайта, на который Вы хотите
перейти. После чего, нажав кнопку "Submit" или "Go", Вы попадете на страницу, URL
которой указали CGI proxy.
- 33 -
FTP proxy
Этот тип proxy серверов отдельно от корпоративных сетей встречается довольно редко.
Обычно его использование связано с тем, что в организации имеется Firewall (система
защиты компьютеров от вторжения извне), препятствующий прямому доступу в Internet.
Использование proxy этого типа предусмотрено во многих популярных файловых
менеджерах (FAR, Windows Commander), download менеджерах (GetRight, ReGet, ...) и в
браузерах.
Этот тип proxy является узкоспециализированным и предназначен для работы только с
FTP серверами.
Proxy-сервер может многое. Он способен:
ускорить Вашу работу с Internet
сделать Ваше путешествие по Сети анониным;
позволить входить в чаты, даже если Вас заблокировали;
помочь посмотреть те сайты, к которым закрыл доступ Ваш системный администратор;
Ускорение работы в Интернет происходит за счет следующих факторов:
прокси сервер находится близко к Вам - т.е. ближе чем большинство других сайтов, с
которыми Вы работаете
у прокси сервера мощный канал связи (выделенная сеть или оптоволокно) и большой пул
(максимальная скорость обмена с Intenet);
ускорение связи с Internet происходит за счет кэширования информации.
Анонимное путешествие по Internet
Когда Вы заходите на какие-либо web-сайты, Ваш компьютер посылает запрос на
скачивание страничек, картинок, и т.д. с web-сервера. При этом компьютер передает webсерверу (на котором находится сайт) Ваш IP-адрес.
Чтобы найти анонимные прокси сервера, Вам необходимо воспользоваться программой
Proxy Checker (или аналогичной).
Прозрачные (transparent) proxy
Они не скрывают информацию о Вашем IP адресе.
Функцией таких proxy серверов не является повышение Вашей анонимности в Internet.
Они предназначены для кэширования информации, организации совместного доступа в
Internet нескольких компьютеров и т.д.
Анонимные прокси (anonymous proxy)
Все proxy серверы, тем или иным способом скрывающие IP адрес клиента, называют
анонимными. Существуют несколько вариантов анонимных proxy:
простые анонимные прокси (anonymous proxy)
- 34 -
Эти proxy серверы не скрывают того факта, что используется proxy, однако они
подменяют Ваш IP на свой.
Эти proxy наиболее распространены из всех видов анонимных proxy серверов.
искажающие proxy (distorting proxy)
Эти proxy не скрывают того факта, что используется proxy сервер. Однако IP адрес
клиента (Ваш) подменяется на другой (в общем случае произвольный, случайный) IP.
элитные анонимные proxy (high anonymous / elite proxy)
Элитные прокси скрывают даже сам факт использования прокси сервера.
Все возможности proxy основаны на том, что он является промежуточным звеном между
Вашим компьютером (или локальной сетью) и Internet. Поэтому как следствие, он также, в
принципе, может:
фильтровать содержимое просматриваемых Вами страниц, в частности, удалять рекламу;
"изменить" географическое расположение Вашего компьютера (актуально для сайтов,
показывающих разное содержимое в зависимости от того, из какого региона / страны идет
обращение);
если прокси сервер в одной локальной сети с Вами, то достаточно, чтобы только proxy
был подключен к Internet - используя одно подключение, в Internet сможет выходить вся
сеть.
- 35 -
Распределенные системы в сети Internet
В литературе можно найти различные определения распределенных систем, причем ни
одно из них не является удовлетворительным и не согласуется с остальными. Вот
несколько из них:
«Распределенная система это собрание независимых компьютеров соединенных сетью с
программным обеспечением, обеспечивающим их совместное функционирование.»
«Система, состоящая из набора двух или более независимых узлов, которые
координируют свою работу посредством синхронного или асинхронного обмена
сообщениями.»
«...система нескольких автономных вычислительных узлов, взаимодействующих для
выполнения общей цели.»
Есть и такое:
«…я не могу объяснить, что такое распределенная система, но узнаю ее, как только мне ее
покажут»
Мы же с Вами остановимся на следующем определении [1]:
Распределенная система — это набор независимых компьютеров, представляющийся их
пользователям единой объединенной системой.
В этом определении оговариваются два момента. Первый относится к аппаратуре: все
машины автономны. Второй касается программного обеспечения: пользователи думают,
что имеют дело с единой системой. Важны оба момента. Скорее всего, целесообразнее
говорить не о точном определении, а о тех качествах, которыми должна обладать
распределенная система [1].
2 важные качества распределенных систем
Прозрачность. Важная задача распределенных систем состоит в том, чтобы скрыть тот
факт, что процессы и ресурсы физически распределены по множеству компьютеров.
Распределенные системы, которые представляются пользователям и приложениям в виде
единой компьютерной системы, называются прозрачными. Выделяют несколько видов
прозрачности:
Прозрачность доступа призвана скрыть разницу в представлении данных и в способах
доступа пользователя к ресурсам. Так, при пересылке целого числа с рабочей станции на
базе процессора Intel на Sun SPARC необходимо принять во внимание, что процессоры
Intel оперируют с числами формата «младший — последним» (то есть первым передается
старший байт), а процессор SPARC использует формат «старший — последним» (то есть
первым передается младший байт). Также в данных могут присутствовать и другие
несоответствия. Например, распределенная система может содержать компьютеры с
различными операционными системами, каждая из которых имеет собственные
ограничения на способ представления имен файлов;
- 36 -
прозрачность местоположения призвана скрыть от пользователя, где именно физически
расположен в системе нужный ему ресурс. Она может быть достигнута путем присвоения
ресурсам только логических имен, то есть таких имен, в которых не содержится
закодированных сведений о реальном местоположении ресурса;
прозрачность переноса служит для инвариантности к смене местоположения ресурса;
прозрачность репликации позволяет скрыть тот факт, что существует несколько копий
ресурса;
прозрачностью параллельного доступа делает возможным одновременный доступ к
общим ресурсам нескольких пользователей, сохраняя целостность ресурса;
прозрачность отказов означает, что пользователя никогда не уведомляют о том, что ресурс
(о котором он мог никогда и не слышать) не в состоянии правильно работать и что
система восстановилась после повреждения. Происходит «маскировка сбоев»;
прозрачность сохранности маскирует реальную (диск) или виртуальную (оперативная
память) сохранность ресурсов. Так, например, многие объектно-ориентированные базы
данных предоставляют возможность непосредственного вызова методов для сохраненных
объектов. Происходит следующее: сервер баз данных сначала копирует состояние объекта
с диска в оперативную память, затем выполняет операцию и, наконец, записывает
состояние на устройство длительного хранения. Пользователь, однако, остается в
неведении о том, что сервер перемещает данные между оперативной памятью и диском.
Открытость. Открытая распределенная система — это система, предлагающая службы,
вызов которых требует стандартные синтаксис и семантику. Например, в компьютерных
сетях формат, содержимое и смысл посылаемых и принимаемых сообщений подчиняются
типовым правилам. Эти правила формализованы в протоколах. В распределенных
системах службы обычно определяются через интерфейсы, которые часто описываются
при помощи языка определения интерфейсов IDL. Открытость порождает следующие
свойства:
способность к взаимодействию. Характеризует, насколько две реализации систем или
компонентов от разных производителей в состоянии совместно работать, полагаясь только
на то, что службы каждой из них соответствуют общему стандарту;
переносимость характеризует то, насколько приложение, разработанное для
распределенной системы A, может без изменений выполняться в распределенной системе
В, реализуя те же, что и в A интерфейсы.
Масштабируемость. Масштабируемость системы может измеряться по трем различным
показателям. Во-первых, система может быть масштабируемой по отношению к ее
размеру, что означает легкость подключения к ней дополнительных пользователей и
ресурсов. Во-вторых, система может масштабироваться географически, то есть
пользователи и ресурсы могут быть разнесены в пространстве. В-третьих, система может
быть масштабируемой в административном смысле, то есть быть проста в управлении при
работе во множестве административно независимых организаций.
3 Параллельные и распределенные вычислительные системы
На сегодняшний день существуют различные типы распределенных вычислительных
систем. Рассмотрим классификацию такого рода систем, а также покажем разницу между
терминами
«распределенные
вычислительные
системы»
и
«параллельные
вычислительные системы».
- 37 -
Существует два термина: «распределенные вычислительные системы» и «параллельные
вычислительные системы», которые часто путают друг с другом.
Термин параллельные системы, как правило, применяется к суперкомпьютерам для того,
чтобы подчеркнуть использование многопроцессорной архитектуры. Основными
классами архитектур современных параллельных [2] компьютеров являются:
SMP - симметричные мультипроцессорные системы;
MPP - массивно-параллельные системы;
NUMA - системы с неоднородным доступом к памяти;
PVP - параллельные векторные системы;
Кластеры – используются в качестве дешевого варианта MPP. В качестве узлов могут
выступать серверы, рабочие станции и даже ПК. Для связи узлов используется одна из
стандартных сетевых технологий. Кластеризация может осуществляться на разных
уровнях компьютерной системы, включая аппаратное обеспечение, операционные
системы, программы-утилиты, системы управления и приложения.
Термин распределенная система [3] обозначает набор независимых компьютеров,
представляющийся пользователям единой системой. В этом определении подчеркиваются
два момента. Во-первых, все машины автономны. Во-вторых, распределенная система
скрывает сложность и гетерогенную природу аппаратного обеспечения, на базе которого
она построена. Организация распределенных систем включает в себя дополнительный
уровень ПО, находящийся между верхним уровнем, на котором находятся пользователи и
приложения, и нижним уровнем, состоящим из ОС. Такое ПО называется
промежуточным.
Таким образом, употребление терминов зависит от особенностей конкретных систем. При
использовании термина «параллельные вычислительные системы» делается акцент на
архитектурные особенности, такие как MPP, SMP, NUMA и т.д. Если необходимо описать
систему, состоящую из независимых компьютерных архитектур, работающих как единое
целое, и сделать акцент на программное обеспечение, благодаря которому эта работа
возможна, то следует употреблять термин «распределенная вычислительная система».
4 классификация распределенных систем
Распределенные системы создавались и создаются для решения конкретного вида задач.
Из-за различных требований к функциональности существует большое разнообразие
таких систем. Для упрощения рассмотрения распределенные системы условно
подразделяются на несколько типов.
На сегодняшний день можно выделить две основные классификации распределенных
систем. Во-первых, это классификация по размерам систем и способам
администрирования [2]:
Кластер - это несколько десятков компьютеров, объединенных с помощью локальной
сети. Администрирование осуществляется вручную;
- 38 -
Распределенная система корпоративного уровня – десятки и даже сотни компьютеров, при
работе которых необходимо устанавливать правила совместного использования ресурсов.
Масштаб таких систем, как правило, небольшой, и можно обходиться прямыми
административными мерами для организации работы ресурсов и пользователей;
Глобальная система (грид-система) – огромное количество компьютеров, число которых
может достигать нескольких миллионов, распределенных по миру и объединенных
глобальной сетью. Административное программное обеспечение, встроено в
промежуточное программное обеспечение.
Во-вторых, распределенные системы можно рассматривать с точки зрения их
функциональности, т.е. по типу предоставляемых ресурсов и видам прикладных задач,
под решение которых они оптимизированы. Таким образом, можно выделить [3]:
Вычислительные системы (Computational Grid) – это тип систем, в которых основным
компьютерным ресурсом является мощность процессора;
Информационные системы (Data Grid) – это тип систем, в которых основным
компьютерным ресурсом является объем памяти данных. Эти системы рассматриваются
как огромные хранилища данных.
Последователи классификации [3] выделяют еще и третий тип систем - так называемые
Передаточные грид (Network Grid или Delivery Grid). В этой системе узлы представляют
собой передатчики (router), повышающие производительность и отказоустойчивость сети
передачи данных между источником и приемником.
К сожалению, на сегодняшний день невозможно обозначить четкие границы между этими
типами систем. Сопоставляя две вышеописанные классификации, все распределенные
системы можно разбить на шесть типов (таблица 1).
Таблица 1. Классификация распределенных систем
Тип системы
Кластер
Распределенная
корпоративного уровня
Глобальная система
Вычислительная
Информационная
система
система
Кластер ИРЭ РАН, кластер
ВЦ РАН
система Системы на основе IBM
Lotus Notes
WAS
Системы на основе Globus, WWW,
gLite
eMule
eDonkey,
, где WWW - гигантская распределенная система для доступа к связанным документам;
Lotus Notes - распределенная система документов;
eDonkey, eMule – распределенные системы скачивания файлов;
Системы на основе IBM WAS («WebSphereApplication Server представляет собой сервер
приложений
J2EE®
и
Web-служб,
созданный
для
предоставления
высокопроизводительного и в высшей степени масштабируемого механизма транзакций
для динамических приложений электронного бизнеса») Например, Workplace Collaborative
- 39 -
Learning («гибкая и масштабируемая система управления обучением, позволяющая
организовать процесс корпоративного обучения и управлять им»). В сервер IBM WAS
встроена возможность распределения рабочей нагрузки и кэширования для
интеллектуальной оптимизации производительности.
Мы будем рассматривать глобальные распределенные системы.
5 глобальные распределенные системы
Доминирующими направлениями в создании телекоммуникационных и вычислительных
инфраструктур высокой производительности стали исследование, разработка и внедрение
систем, основу которых составляют:
многопроцессорные массово-параллельные комплексы, объединенные высокоскоростной
внутренней сетью (в том числе, высокопроизводительные вычислительные кластеры и
суперкомпьютеры);
сетевая инфраструктура общего пользования, которую представляют Internet и сети
нового поколения.
Если подходы в рамках первого из направлений относительно традиционны, хорошо
описаны и реализованы, то второе, обобщенно называемое метакомпьютингом,
достаточно ново, мало изучено.
Идея метакомпьютинга стала активно обсуждаться в начале 90-х годов в связи с
появлением высокоскоростной сетевой инфраструктуры. Ее суть состоит в объединении
информационно-вычислительных ресурсов сети для решения одной задачи. При этом
задача может быть как ведомственного или корпоративного масштаба, для решения
которой достаточно задействовать вычислительные ресурсы локальной сети организации
или корпоративной сети, так и глобального масштаба, требующая информационновычислительных ресурсов, которыми не располагает ни одна корпоративная сеть. В этом
случае для ее решения необходимо привлекать мощности сети более широкого масштаба
или более подходящие ресурсы, в том числе, может быть, высокопроизводительные
кластерные системы и суперкомпьютеры.
Таким образом, конечной, стратегической целью метакомпьютерного направления
является создание сверхвысокопроизводительной среды на основе вычислительных
ресурсов (процессорных, оперативной и внешней памяти, устройств ввода/вывода),
которые "де-факто" уже объединены современными локальными и глобальными сетями (в
первую очередь Интернет). Такая распределенная, гетерогенная и неоднородная по своей
природе вычислительная конструкция потенциально превышает возможности любого
суперкомпьютера.
В последние несколько лет появилось заметное число проектов разного уровня,
направленных на разработку способов интегрирования всякого вида ресурсов сети для
выполнения крупномасштабных задач анализа данных. При этом имеются в виду все виды
ресурсов: вычислительная мощность, каналы связи, внешние устройства для хранения
данных, а также интеллектуальные инструменты. В общем случае все эти ресурсы
принадлежат административно независимым организациям.
Под термином «интеллектуальные инструменты» понимаются сложные и дорогие
инструменты (электронные микроскопы, ускорители заряженных частиц, космические
аппараты и т.д.). Другими словами, это очень сложные установки, нетривиальное
- 40 -
функционирование которых определяется громадным количеством внутренних состояний,
возможно, превышающих количество внутренних состояний отдельного человека.
Естественно, подобные установки могут содержать многие сотни или тысячи
компьютеров, которые являются их неотъемлемой частью.
Распределенные глобальные вычислительные системы получили название Grid систем.
Несмотря на то, что каждая Grid система уникальна, все же удается выделить их общие
подсистемы, что привело к появлению «каркасов» (или «движков»), позволяющих
создавать широкий спектр специализированных Grid систем. На сегодняшний день
одними из самых успешных проектов в области «движков» Grid систем являются проекты
Globus и gLite. Продукты, созданные на их основе, относятся к классу промежуточного
ПО.
6 проект Globus
Globus ([4]) — совместный проект Аргонской национальной лаборатории и Института
информации Университета Южной Калифорнии. Цель проекта — разработка технологий,
которые могут быть использованы при создании вычислительных сетей. Следует
отметить, что Globus уже привлек внимание российских специалистов, которые
представили данный проект как элемент реализации общих идей метакомпьютинга. В
проекте предполагается, что вычислительные сети представляют собой долговременно
существующую вычислительную среду, которая позволяет программному приложению
объединить компьютеры, интеллектуальные инструменты, информационные ресурсы
независимо от их географического расположения. Важным моментом является то, что
Globus имеет конкретные результаты в виде комплекта разработанных программ.
Globus Resource Allocation Manager (GRAM) обеспечивает универсальный интерфейс к
широкому ряду локальных средств управления различными ресурсами: процессоры,
вторичная память, каналы связи и т.д. GRAM транслирует запросы на ресурсы в команды,
специфичные для локальных систем управления выполнением запросов. GRAM —
нижний уровень управления ресурсами, посему он непосредственно взаимодействует с
локальными планировщиками распределения ресурсов. Пользовательские запросы к
GRAM выполняются через шлюзы (или «привратники»). Задание, в рамках Globus,
направляется привратнику той вычислительной установки, на которой запрошены
ресурсы для выполнения данного задания. Привратник должен распознать сертификат и
полномочия пользователя (имеет ли пользователь учетную запись на данной локальной
машине, разрешено ли ему запускать задание на данной вычислительной установке);
пользователь должен быть зарегистрирован на всех машинах, где он запрашивает ресурсы
для выполнения своего задания. Естественно, программа-привратник должна быть
установлена на каждой вычислительной установке системы Globus. Запросы на ресурсы
формулируются с использованием специального расширяемого языка описания ресурсов
Globus Resource Specification Language (RSL).
Globus Security Infrastructure (GSI) — «Инфраструктура Сетевой Безопасности»,
обеспечивающая общий интерфейс для различных локальных систем безопасности.
Особенности этой системы включают однократную проверку пользователя за один сеанс
работы. Все последующие запросы на аутентификацию выполняются специальными
прокси-серверами. Безопасность в системе Globus реализована с использованием
протокола аутентификации X.509, который предполагает использование механизма
сертификатов. Безопасность обеспечивается центром сертификации, которому доверяют
все пользователи, получающие, в свою очередь, собственные сертификаты. В такой схеме
безопасности используется правило транзитивности доверия: если пользователь_2
показал, что центр доверяет ему, тогда пользователь_1, убедившись в верности подписи
центра,
доверяет
пользователю_2.
Каждый
пользователь
должен
быть
- 41 -
зарегистрированным и получить сертификат от центра. С другой стороны, поскольку в
процессе аутентификации производится обмен сертификатами, то и пользователь
убеждается, что он взаимодействует с верной системой.
Grid Information Service (GIS) — информационная служба, позволяющая получить
информацию о состоянии распределенных ресурсов сетевой инфраструктуры Globus.
Global Access to Secondary Storage (GASS) — средства глобального доступа к вторичной
памяти. С использованием GASS можно организовать доступ ко всему ряду удаленной
вторичной памяти. Таким образом, GASS представляет собой набор средств,
позволяющих управлять способами перемещения данных в соответствии с различными
стратегиями (сценариями) перемещения.
gLite продукт является аналогом Globus.
7 Grid проекты.
Задачи, решаемые системами Grid, как правило, характеризуются плохой
формализуемостью, необходимостью оперативной обработки больших массивов
распределенной разноструктурированной информации.
Проект SDSS (на основе системы Globus) призван составить трехмерную спектральную
карту галактики с помощью 120-мегапиксельного 2.5-метрового телескопа. Уже были
получены данные о 200 миллионах различных объектов в 675 000 галактиках. В проекте
участвуют 25 институтов по всему миру.
SETI@home (от англ. Search for Extra-Terrestrial Intelligence at Home — поиск внеземного
разума на дому́) ([5]) — научный некоммерческий проект распределённых вычислений на
платформе BOINC, использующий свободные вычислительные ресурсы на компьютерах
добровольцев для поиска радиосигналов внеземных цивилизаций. Суммарная
производительность компьютеров, вовлеченных в проект, оценивается в 20 TFLOPS.
Folding@home ([6]) — проект распределённых вычислений для проведения компьютерной
симуляции свёртывания молекул белка. Проект запущен 1 октября 2000 года учёными из
Стэнфордского университета. По состоянию на июнь 2007 года это крупнейший проект
распределённых вычислений, как по мощности так и по числу участников. Цель проекта
— с помощью моделирования процессов свёртывания/развёртывания молекул белка
получить лучшее понимание причин возникновения болезней, вызываемых дефектными
белками, таких как Альцгеймера, Паркинсона, диабет типа II, болезнь Крейтцфельдта —
Якоба (коровье бешенство) и склероз. К настоящему времени проект Folding@home
успешно смоделировал процесс свёртки белковых молекул на протяжении 5—10 мкс —
что в тысячи раз больше предыдущих попыток моделирования. К сентябрю 2006 года
более 1 млн процессоров успело поучаствовать в проекте, а участников
зарегистрированных на сайте более полумиллиона (один участник может вычислять на
многих компьютерах). Этого количества процессоров достаточно, чтобы сравнивать
проект Folding@home с наиболее мощными суперкомпьютерами мира, с вычислительным
уровнем порядка 850 Тфлопс, что 3 раза больше чем пиковая производительность самого
мощного суперкомпьютера. Система занимает всего 5% производственной мощности
компьютера и работает в фоновом режиме. Интересно отметить, что Folding@home
использует не только процессорные мощности, но и ресурсы видеокарты. Конечно, в
настоящее время графические процессоры имеют ограничения по выполняемым
вычислениям, связанные с их более узкой специализацией, поэтому полностью заменить
CPU в проекте они не в состоянии. Однако в тех расчётах, где они применимы,
организаторы проекта говорят о 40-кратном преимуществе GPU над «средним»
- 42 -
процессором Intel Pentium 4. Уже доступен для открытого использования клиент для
процессоров Cell от Sony (PlayStation 3). Несмотря на новизну клиента, на сегодня именно
эта платформа даёт самую большую вычислительную мощь. Уже появилась команда
российских владельцев консоли PlayStation 3, участвующих в проекте. В данный момент
она находится на 1231 месте из 83832.
Компьютерные
информации.
преступления.
Защита
информации.
Правовой
аспект
защиты
КОМПЬЮТЕРНОЕ ПРЕСТУПЛЕНИЕ
Компьютерное преступление как уголовно-правовое понятие – это предусмотренное
уголовным законом виновное нарушение чужих прав и интересов в отношении
автоматизированных систем обработки данных, совершенное во вред подлежащим
правовой охране правам и интересам физических и юридических лиц, общества и
государства.
КЛАССИФИКАЦИЯ КОМПЬЮТЕРНЫХ ПРЕСТУПЛЕНИЙ
Несанкционированный доступ осуществляется, как правило, с использованием чужого
имени и пароля, изменением физических адресов технических устройств, использованием
информации оставшейся после решения задач, модификации программного и
информационного обеспечения, хищением хранителя информации, установкой
записывающей
аппаратуры,
подключаемой
к
каналам
передачи
данных.
Несанкционированный доступ и перехват информации включает в себя следующие виды
компьютерных преступлений:
«Компьютерный абордаж» (хакинг – hacking): доступ в компьютер или сеть без права на
то. Тех, кто вламывается в компьютерные системы с преступными намерениями,
называют «взломщиками» (crackers). Термин «телефонные жулики» (phone phreaks)
используется для характеристики людей, детально разбирающихся в телефонных
системах и использующих свои знания и опыт для того, чтобы делать телефонные вызовы,
которые не поддаются прослеживанию и за которые телефонная компания не в состоянии
выставить счет.
Перехват (interception): перехват при помощи технических средств, без права на то.
Перехват информации осуществляется либо прямо через внешние коммуникационные
каналы системы, либо путем непосредственного подключения к линиям периферийных
устройств.
Кража времени: незаконное использование компьютерной системы или сети с намерением
неуплаты.
Изменение компьютерных данных включает в себя следующие виды преступлений:
Использование «логических бомб» в программном обеспечении. «Логические бомбы»
срабатывают при выполнении определенных условий и частично или полностью выводят
из строя компьютерную систему. Выделяют 3 разновидности «логических бомб»:
«временная бомба», которая срабатывает в определенный момент времени;
«троянский конь»- тайное введение в программы пользователя таких программ, которые
позволяют осуществлять новые не планируемые ранее пользователем функции. При этом
- 43 -
программа пользователя остается работоспособной. Примером «троянского коня»
является компьютерное преступление, состоящее в начислении на свой счет определенной
суммы денег с каждой банковской операции;
еще одна разновидность «троянского коня», которая заключается в том, что в программу
вставляются команды, собственно выполняющие грязную работу, а так же команды их
формирующие и удаляющие в процессе работы клиентской программы.
Вирус: изменение компьютерных данных или программ, без права на то, путем внедрения
или распространения компьютерного вируса.
Компьютерный вирус – это специально написанная программа, которая может
«приписать» себя к другим программам (т.е. «заражать» их), размножаться и порождать
новые вирусы для выполнения различных нежелательных действий на компьютере.
Червь: изменение компьютерных данных или программ, без права на то, путем передачи,
внедрения или распространения компьютерного червя в компьютерную сеть.
Компьютерные мошенничества объединяют в своем составе разнообразные способы
совершения компьютерных преступлений:
Компьютерные мошенничества, связанные с хищением наличных денег из банкоматов.
Компьютерные подделки: мошенничества и хищения из компьютерных систем путем
создания поддельных устройств (карточек и пр.).
Мошенничества и хищения, связанные с игровыми автоматами.
Манипуляции с программами ввода-вывода.
Компьютерные мошенничества и хищения, связанные с платежными средствами.
Телефонное мошенничество: доступ к телекоммуникационным услугам путем
посягательства на протоколы и процедуры компьютеров, обслуживающих телефонные
системы.
Компьютерный саботаж составляют следующие виды преступлений:
Саботаж с использованием аппаратного обеспечения: ввод, изменение, стирание,
подавление компьютерных данных или программ; вмешательство в работу компьютерных
систем
с
намерением
помешать
функционированию
компьютерной
или
телекоммуникационной системы.
Компьютерный саботаж с программным обеспечением: стирание, повреждение,
ухудшение или подавление компьютерных данных или программ без права на то.
Преступная небрежность в разработке, изготовлении и эксплуатации программных
комплексов, приведшая к тяжким последствиям.
Подделка компьютерной информации. В данном случае преступление состоит в подделке
выходной информации компьютера с целью имитации работоспособности большой
системы, частью которой является компьютер. Примером является подделка
- 44 -
программного обеспечения, заведомо содержащего неисправную продукцию. К подделке
информации можно отнести так же подтасовку результатов выборов, голосований,
референдумов.
К прочим видам компьютерных преступлений в классификаторе отнесены следующие:
Использование электронных досок объявлений для хранения, обмена и распространения
материалов, имеющих отношение к преступной деятельности;
Хищение информации, составляющей коммерческую тайну: приобретение незаконными
средствами или передача информации, представляющей коммерческую тайну без права на
то или другого законного обоснования, с намерением причинить экономический ущерб
или получить незаконные экономические преимущества;
Использование компьютерных систем или сетей для хранения, обмена, распространения
или перемещения информации конфиденциального характера.
Защита информации
Защита данных, защита информации – это совокупность мер, обеспечивающих защиту
прав собственности владельцев информационной продукции, в первую очередь программ
и баз данных от несанкционированного доступа, использования, нанесения ущерба.
Основными постулатами по защите информации являются:
Абсолютно надежную непреодолимую защиту информации обеспечить нельзя. Системы
защиты информации могут быть в лучшем случае адекватны потенциальным угрозам,
поэтому при планировании защиты необходимо установить, кого и какая именно
информация может интересовать, какова ее ценность для вас и на какие финансовые
жертвы способен пойти злоумышленник для преодоления защиты.
Защита информации, т.е. использующей не только технические средства, но так же
административные и правовые.
Система защиты информации должна быть гибкой и адаптируемой к изменяющимся
условиям. Главную роль в этом играют административные (организационные)
мероприятия, такие как регулярная смена паролей, строгий порядок их хранения, анализ
журналов регистрации событий в системе и правильное распределение полномочий
пользователей.
На сегодня существует множество мер, направленных на предупреждение преступлений в
области информационных технологий. Из них выделяют технические, правовые и
организационные
К техническим мерам можно отнести защиту от несанкционированного доступа к
системе, резервирование особо важных компьютерных подсистем, организацию
вычислительных сетей с возможностью перераспределения ресурсов в случае нарушения
работоспособности отдельных звеньев, установку оборудования обнаружения и тушения
пожара, оборудования обнаружения воды, принятие конструкционных мер защиты от
хищений, саботажа, диверсий, взрывов, установку резервных систем электропитания,
оснащение помещений замками, установку сигнализации и многое другое.
К организационным мерам отнесем охрану вычислительного центра, тщательный
подбор персонала, исключение случаев ведения особо важных работ только одним
человеком, наличие плана восстановления работоспособности центра после выхода его из
- 45 -
строя, организацию обслуживания вычислительного центра посторонней организацией
или лицами, незаинтересованными в сокрытии фактов нарушения работы центра,
универсальность средств защиты от всех пользователей (включая высшее руководство),
возложение ответственности на лиц, которые должны обеспечить безопасность центра,
выбор места расположения центра и т.п.
К правовым мерам следует отнести разработку норм, устанавливающих
ответственность за компьютерные преступления, защиту авторских прав программистов,
совершенствование уголовного и гражданского законодательства, а также
судопроизводства. К правовым мерам относятся также вопросы общественного контроля
за разработчиками компьютерных систем и принятие международных договоров об их
ограничениях, если они влияют или могут повлиять на военные, экономические и
социальные аспекты жизни стран, заключающих соглашение
Защита данных в компьютерных сетях.
В зависимости от возможных видов нарушений работы сети многочисленные виды
защиты информации объединяются в три основных класса :
средства физической защиты, включающие средства защиты кабельной системы, систем
электропитания, средства архивации, дисковые массивы и т.д.
Кабельная система
Кабельная система является уязвимым местом большинства компьютерных сетей.
Наилучшим является использование структурированных кабельных систем. При этом
кабельная система разделяется на несколько уровней в зависимости от местоположения и
назначения компонентов кабельной системы.
Системы электроснабжения
Наиболее надежным средством потери информации при кратковременном отключении
электроэнергии является установка бесперебойного источника питания, который может
обеспечить питание всей локальной сети или отдельных ее компонентов в течение
промежутка времени достаточного для восстановления напряжения в сети или сохранения
информации на магнитные носители. Большинство источников бесперебойного питания
выполняют также функции стабилизатора для дополнительной защиты от скачков
напряжения в сети. Кроме этого большинство современных сетевых устройств (серверы,
концентраторы, мосты) снабжены собственными автономными источниками
бесперебойного питания.
Системы архивирования и дублирования информации
Организация надежной и эффективной системы архивации данных является одной из
самых важных задач по обеспечению сохранности данных информационной системы.
Систему архивирования предпочтительно располагать на отдельном сервере, который
подключен к локальной сети и находится в охраняемом помещении.
Защита от стихийных бедствий
Основной и наиболее распространенный способ защиты информации и оборудования от
стихийных бедствий (пожаров, землятресений, наводнений и т. д.) состоит в хранении
копий информации или размещении аппаратуры (серверов) в специально защищенных
помещениях, как правило, в другом здании, в другом районе города или другом городе.
- 46 -
программные средства защиты, в том числе: антивирусные программы, системы
разграничения полномочий, программные средства контроля доступа.
административные меры защиты, включающие контроль доступа в помещения,
разработку стратегии безопасности фирмы, планов действий в чрезвычайных ситуациях и
т.д.
Следует отметить, что подобное деление достаточно условно, поскольку
современные технологии развиваются в направлении сочетания программных и
аппаратных средств защиты. Наибольшее распространение такие программно-аппаратные
средства получили, в частности, в области контроля доступа, защиты от вирусов и т.д.
Один из эффективных способов сохранения конфиденциальности информации является ее
кодирование (шифрование). Кодирование реализуется с помощью специальных
криптографических программ, которые выполняют шифрование и де шифрование данных
с использованием кода.
Шифрование данных может осуществляться в режимах On-line (в темпе поступления
информации) и Off-line (автономном). Остановимся подробнее на первом типе,
представляющем большой интерес. Наиболее распространены два алгоритма.
Стандарт шифрования данных DES (Data Encryption Standart) был разработан фирмой
IBM в начале 70-х годов и в настоящее время является правительственным стандартом
для шифрования цифровой информации. Он рекомендован Ассоциацией Американских
Банкиров. Сложный алгоритм DES использует ключ длиной 56 бит и 8 битов проверки на
четность и требует от злоумышленника перебора 72 квадрилионов возможных ключевых
комбинаций, обеспечивая высокую степень защиты при небольших расходах. При частой
смене ключей алгоритм удовлетворительно решает проблему превращения
конфиденциальной информации в недоступную.
Алгоритм RSA был изобретен Ривестом, Шамиром и Альдеманом в 1976 году и
представляет собой значительный шаг в криптографии. Этот алгоритм также был принят в
качестве стандарта Национальным Бюро Стандартов.
DES, технически является СИММЕТРИЧНЫМ алгоритмом, а RSA - АСИММЕТРИЧНЫМ, то есть он использует разные ключи при шифровании и
дешифровании. Пользователи имеют два ключа и могут широко распространять свой
открытый ключ. Открытый ключ используется для шифрования сообщения
пользователем, но только определенный получатель может дешифровать его своим
секретным ключом; открытый ключ бесполезен для
дешифрования. Это делает
ненужными секретные соглашения о передаче ключей между корреспондентами. DES
определяет длину данных и ключа в битах, а RSA может быть реализован при любой
длине ключа. Чем длиннее ключ, тем выше уровень безопасности (но становится
длительнее и процесс шифрования и дешифрования). Если ключи DES можно
сгенерировать за микросекунды, то примерное время генерации ключа RSA - десятки
секунд. Поэтому открытые ключи RSA предпочитают разработчики программных
средств, а секретные ключи DES - разработчики аппаратуры.
Правовые аспекты защиты информации
- 47 -
На сегодня защита информации обеспечивается законодательными актами на
международном и государственном уровнях. В Росси такими законодательными актами
служат закон «об информации, информатизации и защите информации» и закон «о
правовой охране программ для электронных вычислительных машин и баз данных»,
выпущенные соответственно в 95 и 92 годах. В настоящее время некоторые статьи
уголовного кодекса РФ направлены на защиту информации в частности глава 28
«преступления в сфере компьютерной информации», статья 272 «неправомерный доступ
к компьютерной информации», статья 273 «Создание, использование и распространение
вредоносных программ для ЭВМ», статья 274 «нарушение правил эксплуатации ЭВМ,
систем ЭВМ или их сетей».
Неправомерный доступ к компьютерной информации (ст. 272 УК) Статья 272 УК
предусматривает ответственность за неправомерный доступ к компьютерной информации
(информации на машинном носителе, в ЭВМ или сети ЭВМ), если это повлекло
уничтожение, блокирование, модификацию либо копирование информации, нарушение
работы вычислительных систем. Данная статья защищает право владельца на
неприкосновенность
информации
в
системе.
Владельцем
информационной
вычислительной системы может быть любое лицо, правомерно пользующееся услугами по
обработке информации. Преступное деяние, ответственность за которое предусмотрено
ст. 272 должно состоять в неправомерном доступе к охраняемой законом компьютерной
информации, так же может выражаться в проникновении в компьютерную систему путем
использования специальных технических или программных средств. Неправомерный
доступ к компьютерной информации должен осуществляться умышленно. Совершая это
преступление, лицо сознает, что неправомерно вторгается в компьютерную систему.
Создание, использование и распространение вредоносных программ для ЭВМ (ст. 273 УК)
Статья предусматривает уголовную ответственность за создание программ для ЭВМ или
их модификацию, заведомо приводящее к несанкционированному уничтожению,
блокированию и модификации, либо копированию информации, нарушению работы
информационных систем. Статья защищает права владельца компьютерной системы на
неприкосновенность находящейся в ней информации. Под созданием вредоносных
программам в смысле ст. 273 УК РФ понимаются программы, специально разработанные
для нарушения нормального функционирования компьютерных программ.
Уголовная ответственность по этой статье возникает уже в результате создания
программы, независимо от того использовалась эта программа или нет. По смыслу ст. 273
наличие исходных текстов вредоносных программ уже является основанием для
привлечения к ответственности. в ряде случаев использование подобных программ не
будет являться уголовно наказуемым. Это относится к деятельности организаций,
осуществляющих разработку антивирусных программ и имеющих соответствующую
лицензию.
Статья 274 УК устанавливает ответственность за нарушение правил эксплуатации ЭВМ,
системы ЭВМ или их сети лицом, имеющим доступ к ним, повлекшее уничтожение,
блокирование или модификацию охраняемой законом информации, если это деяние
причинило существенный вред.
- 48 -
Статья защищает интерес владельца вычислительной системы относительно ее
правильной эксплуатации.
Применение данной статьи невозможно для Интернет, ее действие распространяется
только на локальные сети организаций.
Преступник, нарушивший правило эксплуатации, - это лицо в силу должностных
обязанностей имеющее доступ к компьютерной системе и обязанное соблюдать
установленные для них технические правила.
Преступник должен совершать свое деяния умышленно, он сознает, что нарушает правила
эксплуатации, предвидит возможность или неизбежность неправомерного воздействия на
информацию и причинение существенного вреда, желает или сознательно допускает
причинение такого вреда или относится к его наступлению безразлично. Что наиболее
строго наказывается лишением права занимать определенные должности или заниматься
определенной деятельностью на срок до пяти лет.
- 49 -
HTTPS, SSL, TLS – протоколы шифрования данных
Протокол HTTPS – что это такое?
HTTPS — расширение протокола HTTP, поддерживающее шифрование. Данные,
передаваемые по протоколу HTTP, «упаковываются» в криптографический протокол SSL
или TLS, тем самым обеспечивается защита этих данных. В отличие от HTTP, для HTTPS
по умолчанию используется TCP порт 443. Эта система была разработана компанией
Netscape Communications Corporation, чтобы обеспечить аутентификацию и защищенное
соединение. HTTPS широко используется в мире Веб для приложений, в которых важна
безопасность соединения, например, в платежных системах.
HTTP (порт 8080)
Криптографические
Протоколы SSL, TLS
HTTPS (порт 443)
Рисунок 1 – протокол HTTPS как расширение протокола HTTP
TLS – потомок SSL, TLS handshake
SSL (англ. Secure Sockets Layer — протокол защищённых сокетов) — криптографический
протокол, обеспечивающий безопасную передачу данных по сети Интернет. При его
использовании создаётся защищённое соединение между клиентом и сервером. SSL
изначально разработан компанией Netscape Communications, в настоящее время принят
IETF как стандарт.
Использует шифрование с открытым ключом для подтверждения подлинности
передатчика и получателя. Поддерживает надёжность передачи данных за счёт
использования корректирующих кодов и безопасных хэш–функций.
SSL состоит из двух уровней. На нижнем уровне многоуровневого транспортного
протокола (например, TCP) он является протоколом записи и используется для
- 50 -
инкапсуляции (то есть формирования пакета) различных протоколов. Для каждого
инкапсулированного протокола он обеспечивает условия, при которых сервер и клиент
могут подтверждать друг другу свою подлинность, выполнять алгоритмы шифрования и
производить обмен криптографическими ключами, прежде чем протокол прикладной
программы начнёт передавать и получать данные.
Для доступа к страницам, защищённым протоколом SSL, в URL вместо обычного
префикса http, как правило, применяется префикс https (порт 443), указывающий на то, что
будет использоваться SSL–соединение.
Для работы SSL требуется, чтобы на сервере имелся SSL–сертификат.
TLS (англ. Transport Layer Security) — криптографический протокол, обеспечивающий
защищённую передачу данных между узлами в сети Интернет.
TLS–протокол основан на Netscape SSL–протоколе версии 3.0 и состоит из двух частей —
TLS Record Protocol и TLS Handshake Protocol. Различие между SSL 3.0 и TLS 1.0
незначительные. TLS Working Group, основанная в 1996 году, продолжает работать над
протоколом.
Алгоритм процедуры установления соединения по протоколу TLS handshake
Клиент и сервер, работающие по TLS устанавливают соединение, используя процедуру
handshake (с англ. handshake–рукопожатие). В течение этого handshake, клиент и сервер
принимают соглашение относительно параметров используемых для установления
защищенного соединения.
Последовательность действий при установлении TLS соединения:
Клиент посылает ClientHello сообщение, указывая наиболее последнюю версию,
поддерживаемого TLS протокола, случайное число и список поддерживаемых методов
шифрования и сжатия, подходящих для работы с TLS.
Сервер отвечает ServerHello сообщением, содержащим: выбранную сервером версию
протокола, случайное число, посланное клиентом, подходящий алгоритм шифрования и
сжатия из списка предоставленного клиентом.
Сервер посылает Certificate сообщение, которое содержит цифровой сертификат сервера
(в зависимости от алгоритма шифрования этот этап может быть пропущен)
Сервер может запросить сертификат у клиента, в таком случае соединение будет взаимно
аутентифицировано.
Сервер отсылает ServerHelloDone сообщение, идентифицирующее окончание handshake.
Клиент отвечает ClientKeyExchange сообщением, которое содержит PreMasterSecret
открытый ключ, или ничего (опять же зависит от алгоритма шифрования).
Клиент и сервер, используя PreMasterSecret ключ и случайно сгенерированные числа,
вычисляют общий секретный ключ. Вся остальная информация о ключе будет получена из
общего секретного ключа (и сгенерированных клиентом и сервером случайных значений).
Клиент посылает ChangeCipherSpec сообщение, которое указывает на то, что вся
последующая информация будет зашифрована установленным в процессе handshake
алгоритмом, используя общий секретный ключ.
- 51 -
Клиент посылает сообщение Finished, которое содержит хеш и MAC (код аутентификации
сообщения) сгенерированных на основе предыдущих сообщений handshake.
Сервер пытается расшифровать Finished–сообщение клиента и проверить хеш и МАС.
Если процесс расшифровки или проверки не удается, handshake считается неудавшимся и
соединение должно быть оборвано.
Сервер посылает ChangeCipherSpec и зашифрованное Finished сообщение и в свою
очередь клиент тоже выполняет расшифровку и проверку.
С этого момента handshake считается завершенным, протокол установленным. Все
последующее содержимое пакетов будет зашифровано.
Немного о шифровании
Криптографическая система с открытым ключом (или Асимметричное шифрование,
Асимметричный шифр) — система шифрования информации, при которой ключ, которым
зашифровывается сообщение и само зашифрованное сообщение передаётся по открытому
(то есть незащищённому, доступному для наблюдения) каналу. Для генерации открытого
ключа и для прочтения зашифрованного сообщения получатель использует секретный
ключ. Криптографические системы с открытым ключом в настоящее время широко
применяются в различных сетевых протоколах, в частности, в протоколе SSL и
основанных на нём протоколах прикладного уровня HTTPS, SSH и т. д.
Общая идея криптографической системы с открытым ключом заключается в
использовании при зашифровке сообщения такой функции от открытого ключа и
сообщения (хеш–функции), которую алгоритмически очень трудно обратить, то есть
вычислить по значению функции её аргумент, даже зная значение ключа.
Хеширование — преобразование входного массива данных произвольной длины в
выходную битовую строку фиксированной длины таким образом, чтобы изменение
входных данных приводило к непредсказуемому изменению выходных данных. Такие
преобразования также называются хеш–функциями или функциями свёртки, а их
результаты называют хешем, хеш–кодом или дайджестом сообщения.
Недостаток метода: хотя сообщение надежно шифруется, но «засвечиваются» получатель
и отправитель самим фактом пересылки шифрованного сообщения.
Где купить сертификат? Сертификат «Яртелеком»
Наиболее известные организации, имеющие центры сертификации – VeriSign и Baltimore.
В России также существуют центры сертификации – например, РБК (сертификаты
Thawte).
Сертификат Thawte SGC на два года стоит порядка 1200$.
- 52 -
Достоинства и недостатки SSL, TLS
Достоинства:
Один из самых больших плюсов протокола SSL состоит в том, что пользователь может
использовать для работы с ним стандартный Интернет–браузер, такой как Microsoft
Internet Explorer, Netscape Navigator или Opera. С помощью протокола SSL решаются
задачи обеспечения безопасного подключения к web–страницам.
SSL удовлетворяет потребности в защите любых операций, связанных с передачей
паспортных данных, PIN–кодов, паролей. Кроме того, протокол SSL становится все более
популярным за счет того, что при его использовании осуществляется строгая
аутентификация и клиента, и сервера, что делает практически невозможным перехват
информации.
- 53 -
Недостатки:
Из–за низкой скорости шифрования (около 30 кбит/с при 512 битном ключе на процессоре
2 ГГц), сообщения обычно шифруют с помощью более производительных симметричных
алгоритмов со случайным ключом (сеансовый ключ), а с помощью RSA шифруют лишь
этот ключ.
К сожалению, несмотря на всю стройность и надежность механизма защиты, в SSL есть
недостатки. Сам протокол не может использоваться отдельно от программных средств,
однако программы, так или иначе использующие протокол SSL, являются порой самым
уязвимым местом этой технологии. Ошибки в интернет–браузерах, например, способны
стать причиной серьезных информационных потерь. Но даже в этом случае «вина» за
потерю информации лежит не на самом протоколе, а на независимых от него ресурсах.
Два самых серьезных недостатка SSL, выделяемые специалистами, заключаются в
отсутствии мобильности пользователя и опасности хищения того самого закрытого ключа,
при помощи которого производится аутентификация. Этих проблем можно избежать,
применяя для хранения цифровых ключей и сертификатов аппаратные средства –
электронные ключи и смарт–карты. Примером может служить USB–ключ eToken,
разработанный компанией Aladdin.
Заключение
При подготовке веб–сервер для обработки https соединений, администратор должен
создать публичный ключ сертификата для этого веб–сервера. Такие сертификаты могут
быть созданы для серверов, работающих под Unix, с помощью таких утилит, как ssl–ca от
OpenSSL или gensslcert от SuSE. Сертификат должен быть подписан уполномоченной
стороной (Certificate authority), которая гарантирует, что держатель сертификата является
тем, за кого себя выдает. Веб–браузеры обычно распространяются с подписями основных
сертификационных организаций, поэтому они могут проверить сертификаты, выданные
этими организациями.
- 54 -
Язык программирования клиент–машин: Java–апплеты
Java-апплеты
Определение
Апплеты - это программы на Java, которые, как правило, предназначены для того, чтобы
загружаться посредством браузера, а затем работать в окне браузера. Они могут
использоваться для создания богатых графикой и интерактивными возможностями
пользовательских интерфейсов, которые не способны выразить средствами обычного
языка разметки HTML. Сервлеты - программы на Java, которые работают на Web-серверах
Java или серверах приложений Java. Как и программы CGI, сервлеты могут доставлять
Web-службы непосредственно в браузер или действовать как промежуточное ПО, которое
связывает браузер с серверными службами.
Когда появился язык Java, настоящими звездами этого шоу стали апплеты. И уже тогда
было ясно, что HTML-браузер представляет собой превосходную универсальную
прикладную платформу, хотя и не отличается богатством выразительных возможностей.
Апплеты обещали стать почти идеальным со всех точек зрения решением: не требуют
затрат на установку, соответствуют лозунгу сторонников чистого HTML («написано
однажды - работает везде») и отличаются богатым «родным» графическим
пользовательским интерфейсом.
Но до сих пор эти надежды не сбылись. Проведенный опрос, касающийся использования
апплетов Java, показал, что они применяются менее чем на 2% из 500 самых популярных
Web-сайтов. Почему? Некоторые разработчики неверно оценили накладные расходы при
интерпретации байт-кода в виртуальной машине Java. У других множество нареканий
вызывает защита, основанная на принципе «песочницы» (sandbox), который не позволяет
Java использовать в полной мере локальные и удаленные службы. Третьи отмечают
различия между виртуальными машинами основных браузеров, имеющихся на рынке. Так
или иначе по прошествии пяти лет апплеты не оправдали ожиданий, и Web-приложения
на базе HTML не были вытеснены Web-приложениями с равным уровнем переносимости
и мобильности, но функционально более мощным графическим пользовательским
интерфейсом.
Тем не менее, хотя апплеты не заслуживают той шумихи, которая была поднята при их
появлении, они делают немало полезного. Вот несколько ярких примеров.
AnywareOffice компании VistaSource (www.anywareoffice.com). VistaSource использует
апплет Java для реализации Applixware, своего популярного офисного пакета, в браузерах,
ориентированных на Java. Когда провайдер услуг доступа к приложениям использует
AnywareOffice, приложения (такие, как текстовый процессор) работают на сервере, но
отображаются в апплете.
QuestAgent компании JObjects (www.jobjects.com). Этот апплет представляет собой
кроссплатформенный механизм поиска, часто включаемый в состав компакт-диска с
публикациями на базе HTML. Браузер может отображать информационное наполнение
таких публикаций, но не может выполнять поиск в своем индексе. QuestAgent предлагает
мобильный поиск и позволяет отказаться от необходимости создавать и отображать
оригинальный механизм поиска.
- 55 -
MindTerm компании Mindbright Technologies (www.mindbright.com). Предположим, что
пользователь оказался вне офиса и при нем нет мобильного компьютера, а ему
необходимо передать файл на домашний сервер. MindTerm - реализация защищенной
версии интерпретатора команд Secure Shell (SSH) на базе Java позволяет преобразовать
любой ориентированный на Java браузер в клиент SSH, который можно применять для
шифрования сеансов передачи файла.
Апплеты Java еще могут оправдать надежды. Спрос на более богатый возможностями
графический пользовательский интерфейс Web растет, и ни одна из технологий пока не
готова предложить кроссплатформенные возможности, сравнимые с возможностями Java.
В то же время, однако, сервлеты Java, безусловно, имеют успех.
Почему именно Java-апплет?
Своим рождением язык Java обязан Интернет и создан именно для Интернет, учитывает
все его особенности.
Java-апплеты работают на любой платформе и под любой операционной системой, на
персональном компьютере, карманном компьютере и даже сотовом телефоне. Проблемы
совместимости для Java-апплетов практически не существует.
Апплеты легко встраиваются в HTML-документы, для их запуска не требуется никаких
специальных действий (их не требуется инсталлировать на компьютере), даже долее
того, пользователь может и не подозревать об их наличии в используемом приложении.
Апплеты выполняются на стороне пользователя, а не на сервере, что позволяет снизить
трафик Интернет, особенно в графических приложениях, повысить скорость работы (не
требуется загрузка новых страниц с сервера), снизить загрузку сервера.
В ядро языка Java и в структуру апплета встроена система безопасности, что исключает
возможность нанесения какого-либо ущерба системе даже при наличии в апплете
некорректного кода.
Java-апплеты не имеют прямого доступа к ресурсам компьютера, сетевой доступ из
апплета возможен только к тому компьютеру, с которого он был загружен, запуск других
приложений на компьютере пользователя из апплетов невозможен.
Применение Java-апплетов более безопасно, чем использование элементов ActiveX.
Для гарантии того, что полученному апплету можно доверять, Java предлагает цифровую
подпись для апплетов.
Требования безопасности являются наиболее критичными для корпоративных
приложений Интернет. При использовании Java-апплетов безопасность обеспечивается
следующими компонентами Java-технологии:
Виртуальный Java-процессор постоянно контролирует свое состояние.
Загрузчик аплетов и Java-программ контролирует загружаемые коды.
Диспетчер безопасности (SecurityManager) контролирует и блокирует опасные действия
аплетов.
Java-апплеты позволяют строить эффективные и безопасные приложения Интернет с
частичной обработкой информации на стороне пользователя. В простейшем случае это
проверка правильности заполнения форм на странице (без запроса к серверу), в сложных - 56 -
серьезные Гео-информационные системы (ГИС), которые благодаря Java-апплетам не
требуют постоянной передачи больших объемов графической информации от сервера к
пользователю: после загрузки компьютер пользователя работает практически автономно.
И, даже при начальной загрузке, исходные данные передаются не в графическом, а в
компактном векторном виде.
Апплет в HTML
Апплет java, как и программа на javascript, должен выполняться из гипертекстового
документа html. Именно с этим свойством апплетов связано происхождение термина
"выполняемое содержимое". Чтобы включать апплеты в файл html, используется html-тег
<applet>. Тег <applet> является контейнерным тегом. Это значит, что в тексте
гипертекстового документа за этим тегом обязательно должен быть указан закрывающий
тег </applet>. Ниже приводится синтаксис тега <applet>.
<applet
code="file.class"
codebase="classdirectory"
width=w
height=h
vspase=vs
hspace=hs
alt=text
name=appletname
align=left | right | top | middle | baseline | bottom |
<param name=paramname value=paramvalue>
htmlТекст...
</applet>
где атрибут code задает имя загружаемого файла с расширением .class, codebase – имя
каталога, в котором содержится данный файл (файлы) с расширением .class, width –
ширина области вывода апплета в пикселях, а height – ее высота. Использовать кавычки
(") в именах аргументов необязательно. Тег <param> предназначен для задания имен
(paramname) и значений (paramvalue) параметров, которые передаются апплету из файла
html. Допускается задание нескольких тегов <param>. htmltext – текст, предназначенный
для пользователей, которые применяют броузеры, не поддерживающие язык java. Этот
текст выводится на экран в том виде, в каком указан в донном теге. Он должен задаваться
в формате html, и его длина не ограничивается. Атрибут alt предназначен для вывода теста
в окнах браузеров, которые распознают тег <applet>, но не могут выполнить апплет.
Атрибут align, по своему действию аналогичен тегу <img align=... scr>. Атрибут align
предназначен для задания способа размещения области вывода апплета на странице.
Атрибутами vspace и hspace задаются размеры поля пустого пространства над и под
областью вывода апплета (значения обоих атрибутов указываются в пикселях).
Например можно задать следующий тег <applet>:
- 57 -
<applet code="myapplet.class" codebase="classes" width=150 height=150 <hr>to viev this
applet you will need a java-aware browser!<p> <img scr="scrndump.gif"><hr> </applet>
Этот тег осуществляет вызов апплета myapplet.class. Для пользователя,
просматривающего данную страницу с помощью браузера, который не поддерживает java,
на экране будет отображаться текст "to viev this applet you will need a java-aware browser!"
(Для просмотра этого апплета вам понадобится браузер, поддерживающий java), а также
графическое изображение (заданное в теге <img scr...>). Авторы некоторых приложений
предпочитают в таких случаях выводить вместо текста "картинку" - такую, какую увидел
бы на экране пользователь, располагающий поддерживающим java браузером. При
запуске область вывода апплета будет занимать квадратный участок экрана размерами
150х150 пикселей. Разработчик апплета должен позаботиться о том, чтобы выводимые
апплетом данные не попадали за пределы выделенной для них области. (В апплетах
можно задавать размеры области отображения, в которую будет выводится информация.
Если с помощью необязательных атрибутов width/heigh не задана область вывода апплета,
то данные будут выводиться и отображаться в области экрана, заданной в самом апплете.)
Включение апплета в страницу без соответствующего текста, предназначенного для тех
пользователей, у которых браузеры, не поддерживают java, принято считать невежливым.
Атрибутом codebase в этом примере задается, что файл myapplet.class находится в
подкаталоге classes каталога, в котором содержится html-файл.
Пример использования тегов <applet>.
Рассмотрим следующий пример:
<applet
Апплет
</applet>
code="myapplet.class"
распологался
бы
codebase="myclasses">
здесь
!
В этом фрагменте текста html атрибутом codebase задается каталог myclasses. Этот каталог
является подкаталогом каталога, из которого был загружен данный файл html. Например
если приведенные выше теги входят в состав html-файла c:appletsdemo_applet.html, то
браузер будет искать файл myapplet.class в каталоге С:appletsmyclasses.
Приведённый выше тег <applet> можно использовать для вызова локальных апплетов
(например, чтобы проверить апплет сначала на своём компьютере, а потом уже поместить
его на web-сервер). Примечание: Не все апплеты могут выполняться локально.
Конечно же, апплет может размещаться не только в том каталоге, где находится
вызывающий его файл html, а и в любом другом месте internet. В таких случаях в атрибуте
codebase необходимо указать url файла апплета с расширением .class, например:
<applet code="remoteapplet.class" codebase="http://www.somehost.com/appletdir/classes/">
Пример апплета. </applet>
В этом примере вызывается апплет remoteapplet.class, расположенный на хосте internet
www.somehost.com в каталоге /appletdir/classes/. Для того чтобы загрузить апплет в вашу
систему, браузер использует протокол передачи гипертекстовых документов (hypertext
transfer protocol - http), а выполнение апплета осуществляется под управлением
встроенного в браузер ядра java.
Если вы решили передать ваши апплеты на web-сервер (через ftp), убедитесь, что в htmlфайле, в котором они используются, правильно задан атрибут codebase. Если файл
апплета с расширением .class находится в том же каталоге, что и соответствующий htmlфайл, вызывающий данный апплет, т.е. содержащий тег <applet>, атрибут codebase можно
- 58 -
вообще опустить. Лучше, однако, если это возможно, хранить файлы с расширением .class
и исходные тексты программ на языке java в разных каталогах
Порядок инициализации апплета
Ниже приведен порядок, в котором вызываются методы класса Applet, с пояснениями,
нужно или нет переопределять данный метод.
init
Метод init вызывается первым. В нем вы должны инициализировать свои переменные.
start
Метод start вызывается сразу же после метода init. Он также используется в качестве
стартовой точки для возобновления работы после того, как апплет был остановлен. В то
время, как метод init вызывается только однажды — при загрузке апплета, start
вызывается каждый раз при выводе HTML-документа, содержащего апплет, на экран. Так,
например, если пользователь перейдет к новой WWW-странице, а затем вернется назад к
странице с апплетом, апплет продолжит работу с метода start.
paint
Метод paint вызывается каждый раз при повреждении апплета. AWT следит за состоянием
окон в системе и замечает такие случаи, как, например, перекрытие окна апплета другим
окном. В таких случаях, после того, как апплет снова оказывается видимым, для
восстановления его изображения вызывается метод paint.
update
Используемый по умолчанию метод update класса Applet сначала закрашивает апплет
цветом фона по умолчанию, после чего вызывает метод paint. Если вы в методе paint
заполняете фон другим цветом, пользователь будет видеть вспышку цвета по умолчанию
при каждом вызове метода update – то есть, всякий раз, когда вы перерисовываете апплет.
Чтобы избежать этого, нужно заместить метод update. В общем случае нужно выполнять
операции рисования в методе update, а в методе paint, к которому будет обращаться AWT,
просто вызвать update.
stop
Метод stop вызывается в тот момент, когда браузер покидает HTML-документ,
содержащий апплет. При вызове метода stop апплет еще работает. Вы должны
использовать этот метод для приостановки тех подпроцессов, работа которых
необязательна при невидимом апплете. После того, как пользователь снова обратится к
этой странице, вы должны будете возобновить их работу в методе start.
destroy
Метод destroy вызывается тогда, когда среда (например, браузер Netscape) решает, что
апплет нужно полностью удалить из памяти. В этом методе нужно освободить все
ресурсы, которые использовал апплет.
Разница между апплетом и приложением
Java можно использовать, чтобы создавать два типа программ - приложения и апплеты.
Приложения - это самостоятельные Java-программы, а программы, работающие под
- 59 -
управлением других программ (Web-браузеров), называются апплетами. Изюминкой Java
является способность создавать апплеты.
Для чего предназначены апплеты
Существует множество способов создать красивую web-страницу, но сделать ее по
настоящему функциональной и удобной для пользователя достаточно трудно с помощью
стандартных средств, таких как HTML, JavaScript, Flash и др. Например, языки сценариев,
такие как JavaScript, не могут обеспечивать связи типа клиент/сервер. А Flash является
узкоспециализированным средством (его основная цель – создание анимации), и
встроенный в него язык ActionScript имеет ограниченные возможности.
Важное отличие апплета в том, что это интеллектуальная программа, а не просто
мультипликация. Другими словами, апплет – это программа, способная обрабатывать
действия пользователя и динамически менять свое поведение.
Жесткая модель защиты
При работе с программами, полученными из сети, пользователь может столкнуться с
неприятными последствиями их работы. Существует множество вирусов, "троянских
коней" или просто некачественных программ, которые могут просто напакостить вам и
отформатировать диск C:, например.
Апплет автоматически запускается, при загрузке web-страницы, поэтому апплеты требуют
повышенного режима безопасности. Для обеспечения защиты, создателями Java был
разработан механизм, получивший название "песочницы". Он ограничивает доступ
"ненадежных" апплетов к компьютеру пользователя. Если разработчику апплета
понадобилось расширить возможности апплета - ему необходимо поставить цифровую
подпис, тогда апплет воспринимается броузером как "надежный", и вы сами решаете:
доверять апплету или нет. Хотя цифровая подпись не обеспечивает вашей безопасности,
вы можете установить происхождение апплета, при возникновении проблем.
Обзор технологии Active Server Pages (ASP)
Active Server Pages — это среда программирования, которая обеспечивает возможность
комбинирования HTML, скриптов и компонент для создания динамических Webприложений. Возможность встраивания в Web-страницы скриптов (кода, написанного на
языке программирования, например, VBScript или JScript) позволяет логичным образом
объединить оформление с данными, полученными из различных источников, например, из
БД.
Идеология создания современных Web-приложений заключается в инкапсуляции бизнеслогики в отдельные компоненты, написанные по технологии COM. Технология ASP в
данном случае является связующим звеном между этими компонентами и интерфейсом
Web-приложения.
Принципы функционирования
Использование Active Server Pages не требует специфичных браузеров. Все ASP-скрипты
запускаются и выполняются на Web-сервере, причем брaузер получает только
результирующие HTML-файлы. Microsoft Internet Information Server, начиная с версии 3.0,
поддерживает Active Server Pages.
- 60 -
Рассмотрим последовательность функционирования ASP. Клиент запрашивает ASPстраницу на Web-сервере. Сервер принимает запрос и начинает его обрабатывать. По
расширению файла (.asp) определяет, что данный файл содержит ASP-скрипт, и начинает
анализировать его содержимое, последовательно интерпретируя и выполняя вставки ASPкода. ASP-код, в свою очередь, может содержать обращения к различным источникам
данных, осуществлять обработку полученных данных и добавлять содержимое
генерируемой страницы. В результате формируется «обычная» HTML-страница (уже не
содержащая ASP-кода), которая и отправляется обратно клиенту.
Внешне ASP функционирует также, как CGI. Аналогичным образом передаются
параметры (формат-строки запроса) и осуществляется вывод результатов. Однако
производительность ASP оказывается гораздо выше, т. к. при каждом запросе не
происходит отдельной загрузки ASP-интерпретатора. Использование компонент ActiveX
также значительно повышает производительность Web-сервера.
Описание синтаксиса
ASP-код, который нужно выполнить на сервере, размещается внутри специальных тегов
<% %>. Так как данный код обрабатывается на сервере, он не доступен пользователю.
Сам код может быть написан с использованием Visual Basic Scripting Edition (VBScript)
или JScript (JavaScript). Технология ASP позволяет использовать и другие языки
программирования. По сути, нужно говорить не о синтаксисе ASP, а о том языке, который
используется для написания ASP-кода. Синтаксис VBScript намного проще других
языков, поэтому новичку будет легко в нем разобраться.
Объекты и компоненты
VBScript не является полнофункциональным языком программирования и использования
встроенных в него средств явно недостаточно. Поэтому в ASP-страницах используются
специальные объекты и компоненты ActiveX.
Существует
набор
«встроенных» объектов, которые инициализируются и
предоставляются ASP-скрипту автоматически при начале обработки. Эти объекты
обеспечивают доступ к основным «жизненно важным» функциям:
Объект Application позволяет создавать переменные, доступные всем пользователям Webприложения.
Объект Session позволяет сохранять данные, связанные с отдельным пользователем.
Объект Request предоставляет параметры CGI-запроса, отправленные методом POST
99или GET.
Объект Response предоставляет методы для добавления информации, а также для
формирования заголовков страницы ответа Web-сервера.
Объект Server содержит множество различных методов, одним из которых является метод
CreateObject, позволяющий создавать экземпляры компонент ActiveX.
В отличие от встроенных ASP-объектов, ASP-компоненты явно необходимо создавать в
коде скрипта. Существует огромное количество ActiveX-компонент, которые можно
использовать в ASP-страницах, причем большинство из них распространяются бесплатно.
Более того, разработчик может сам создавать ActiveX-компоненты в любой среде
программирования, поддерживающей COM-технологию, например, Visual C++ или Visual
Basic.
- 61 -
Следует уделить особое внимание объектам ADO (ActiveX Data Objects), которые
представляют собой мощные интегрированные средства для создания приложений для
работы с БД. Компоненты ADO обеспечивают быстрый и удобный интерфейс к БД на
самом высоком уровне, при этом сохраняется переносимость разрабатываемых
приложений для работы с другими БД. Использование компонент ADO значительно
упрощает работу программиста, ему остается лишь правильно составить SQL-запросы к
БД и позаботиться о выводе результатов.
В рамках функционирования Web-приложения существует возможность создания
обработчиков основных событий, таких как запуск и остановка Web-приложения, а также
открытие и закрытие пользовательской сессии. Эти события описываются в специальном
ASP-файле global.asa. Обработчики данных событий можно использовать для
инициализации объектов или установки значений глобальных переменных.
Средства разработки
Создавать ASP-страницы можно в любом текстовом редакторе, но это далеко не всегда
удобно. Помимо написания кода на VBScript, необходимо осуществлять его отладку, что
возможно только на функционирующем Web-сервере (IIS) и при наличии специальных
средств.
Microsoft Visual InterDev 6.0 (входящий в состав Microsoft Visual Studio) является одним
из лучших средств, которое позволяет не только быстро и эффективно создавать ASP-код,
но и осуществлять расширенную отладку кода. Основные особенности этого продукта:
Просмотр списка используемых объектов, и возможность быстрого написания кода.
Подсветка синтаксиса кода (VBScript и JScript).
Автоматическое формирование содержимого global.asa.
При запуске в режиме отладки InterDev автоматически настраивает Web-сервер (IIS) в
нужный режим, а по окончании отладки восстанавливает настройки.
Возможность установки точек прерывания (breakpoints).
Просмотр значений переменных (watches) и списка вызванных процедур (call stack).
Существуют также и другие специализированные редакторы, позволяющие разрабатывать
ASP-приложения, например, Home Site 4.5, Macromedia UltraDev 4.0 или ASP Express.
Однако эти средства не полностью охватывают возможности Visual InterDev.
- 62 -
Скрипты (JavaScript, CGI)
1. Что такое скрипты ?
Существует две основых категории скриптов - серверные скрипты (CGI и PHP скрипты) и
пользовательские скрипты (java и DHTML скрипты).
Серверные скрипты. Это программы, которые выполняются на стороне сервера.
Основным отличием серверных скриптов является то, что они могут записывать в файл,
находящийся на сервере. Наиболее распространенные примеры серверных скриптов гостевые книги, голосования, счетчики посещений и др. CGI (Common Gateway Interface,
общий шлюзовый интерфейс) представляет собой часть веб-сервера, способную
взаимодействовать с другими программами, и в этом смысле является шлюзом для
передачи данных, полученных от клиента, программам-обработчикам информации - базам
данных, электронным таблицам и пр. Обычно CGI скрипты пишут на языке Perl, поэтому
их называют Perl скриптами.
Пользовательские скрипты. Выполняются такие скрипты на компьютере пользователя
посредством вызова определенных команд, которые обозначены в фрагментах кода
обыкновенной веб-страницы. Для того чтобы они могли быть выполнены, браузер должен
уметь поддерживать язык, на котором скрипты написаны. Пользовательские скрипты это
Java и DHTML скрипты. Java скрипты - это программы, написанные на языке JavaScript,
они встраиваются в обычные HTML страницы. Каждый JavaScript размещается между
тегами <script language= JavaScript >...</script>. DHTML скрипты - скрипты написанные на
языке DHTML (Dynamic HTML) также вставляется в HTML страницу. Разделение на Java
и DHTML весьма условное, т.к. в большинстве из них используются и JavaScript и
DHTML. Выполнение пользовательских скриптов зависит только от браузера
пользователя.
2. JavaScript
Сегодня Всемирная сеть - это среда информационного обмена для миллионов людей. Они
размещают текст, видео, звук, и информацию, и все более и более, они усложняют свои
страницы, делая их интерактивными в сети. JavaScript - это язык программирования,
используемый в составе страниц HTML для увеличения функциональности и
возможностей взаимодействия с пользователями. Он был разработан фирмой Netscape в
сотруднечестве с Sun Microsystems на базе языка Sun's Java .С помощью JavaScript на
Web-странице можно сделать то, что невозможно сделать стандартными тегами HTML.
Скрипты выполняются в результате наступления каких-либо событий, инициированных
действиями пользователя. Создание Web- документов, вклучающих программы на
JavaScript, требует наличее текстового редактора и подходящего браузера. Несмотря на
отсутствие прямой связи с языком Java, JavaScript может обращаться к внешним
свойствам и методам Java- апплетов, встроенных в страницу HTML. Разница сводится к
тому, что апплеты существуют вне браузера, в то время как программы JavaScript могут
работать только внутри браузера.
Следующая таблица сравнивает JavaScript и Java
.
- 63 -
JavaScript
Java
Не компилируемый клиентом.
Компилируемая клиентом перед запуском
программы.
Объектный язык.
Объектно-ориентированный.
Внедренный в HTML - страницу.
Небольшие приложения, отделенные от
HTML - страниц.
Переменные типы данных, не объявляются.
Переменные типы данных должны быть
объявленны (строгий контроль типов).
Динамическое
закрепление.
Ссылки Статическое закрепление. Ссылки объекта,
объекта, поверяются во время выполнения. проверяются во время компиляции.
2.1. Общие сведения
Определимся, что из себя представляет язык JavaScript. JS - интерпретатор с элементами
объектно-ориентированной модели. Хотя он и лишен возможностей создания
собственных классов, но он оперирует стандартными объектами. Так как обработчик
находится на компьютере пользователя, JS, будучи интерпретатором, использует методы
и свойства объектов обозревателя на пользовательском компьютере.
JS имеет
возможность написания пользовательских функций, имеет ряд операторов, но работает с
объектами, их методами, свойствами и событиями. Также имеется иерархия наследования
свойств объектов. Сложность составляет и то, что JS встраивается в HTML документ и
взаимодействует с ним.
Скрипты могут находиться в любом месте HTML-документа. Однако теги HTML нельзя
помещать внутри JS-программы. JS программа помещается между тегами
<script> ... </script>. Встретив тег <script>, браузер построчно анализирует содержимое
документа до тех пор, пока не будет достигнут тег </script>. После этого производится
проверка скрипта на наличие ошибок и компилция JS программы в формат, пригодный
для выполнения на компьютере пользователя. Главная часть JS программы может быть
помещена в контейнер <head>... </head>, поскольку он считывается при загрузке HTMLдокумента одним из первых. Теоретически скрипт можно помещать в любом месте
HTML-документа, хотя лучше это делать перед контейнером <body>... </body>, т.е. в
заголовке документа.
Синтаксис тега: <script language="JavaScript"> [текст программы] </script>. Следует иметь
в виду, что слово "JavaScript" записывается с соблюдением регистра символов.
В языке JS имеется несколько вариантов присваивания:
=
Прямое присваивание значения левому операнду
+=
Складывает значения левого и правого операндов
и присваивает результат левому операнду
+
Складывает значения левого и правого операндов
и присваивает результат левому операнду
- 64 -
++
Увеличивает значение левого операнда (правый
может отсутствовать)
-=
Вычитает значения левого и правого операндов и
присваивает результат левому операнду
-
Вычитает значения левого и правого операндов и
присваивает результат левому операнду
--
Уменьшает значение левого операнда (правый
может отсутствовать)
*
Умножает значения левого и правого операндов и
присваивает результат левому операнду
*=
Умножает значения левого и правого операндов и
присваивает результат левому операнду
/
Делит значения левого на правого операндов и
присваивает результат левому операнду
/=
Делит значения левого на правого операндов и
присваивает результат левому операнду
Возможны следующие операции сравнения:
== Равенство (равно)
!=
Не равно
!
Логическое отрицание
>= Больше или равно
<= Меньше или равно
>
Больше
<
Меньше (по возможности желательно воздержаться
- 65 -
от применения этого типа)
От выражений, имеющих знак "<" следует отказываться по возможности, так, как данный
символ может интерпретироваться как открытие тега HTML.
Для обозначения логической операции И в языке JS используют два символа амперсанта (
&& ), а для обозначения логической операции ИЛИ - два символа прямой черты ( || ). Эти
операции применимы только к булевым значеним.
Программы на языке JS обычно состоят из программных блоков или единичных
операторов. Программные блоки - это группы операторов, которые заключаются в
фигурные скобки ({ и }). Каждый оператор, если он занимает единственную строку, имеет
разграничивающую точку с запятой (;), обозначающую окончание оператора.
Как и во всех языках в JS существует оператор ветвления if . . . else
Синтаксис:
if (condition);
{
программный
блок1
}
[
else
{
программный
блок2
}]
А также возможен его сокращённый вариант - оператор ?
Синтаксис:
(expression) ? trueStatements ? falseStatements;
где expression - выражение на языке JS, результат выполнения которого равен либо true,
либо false. Вместо trueStatements и falseStatements подставляются один или несколько
операторов JS, которые выполняются в зависимости от результата вычисления выражения
expression. Операторы trueStatements выполняются, если выражение истинно, а
falseStatements - если оно ложно.
В языке JS имеются операторы для выполнения итераций.
Цикл
For
Синтаксис:
for ([инициализация начального значения;] [условие;] [шаг])
{
программный блок
}
- 66 -
Пример:
for (var size = 5; size <= 50; size+=5)
document.writeln ('бе");
Цикл
while
Синтаксис:
while (условие)
{
программный
}
блок
Пример:
while (iloop <= 10)
{
document.writeln(iloop
iloop ++;
+
"
");
}
Определение
функции
Синтаксис:
function functionname (arg, . . .)
{
блок операторов
}
Функция - это блок из одного или нескольких операторов. Блок выполняет определенные
действия, а затем, возможно, возвращает значение. В языке JS процедуры - подпрограммы
не возвращающие значений, не различаются. Все подпрограммы описываются
функциями, а если в функцию или из нее не передаются параметры - то после имени
функции ставятся круглые скобки без параметров. Если функция имеет несколько
аргументов, они отделяются запятой. Нужно также помнить, что в языке JS внутри одной
функции не может существовать другой функции. Фигурные скобки определяют тело
функции. Функция не может быть выполнена до тех пор, пока не будет явного обращения
- 67 -
к
ней.
Если необходимо, чтобы функция возвращала определенное значение, следует
использовать необязательный оператор return, при этом указав в нем выражение, значение
которого требуется возвратить.
2.2. Объектная модель языка
При создании HTML-документов и JavaScript-программ необходимо учитывать структуру
объектов. Все объекты можно разделить на три группы:
Объекты браузера
Внутренние, или встроенные, объекты языка JavaScript
Объекты, связанные с тегами языка HTML
С объектами связаны методы, которые позволяют управлять этими объектами, а также в
некоторых случаях менять их содержимое. Кроме того в языке JavaScript имеется
возможность создавать свои методы объектов. При использовании метода объекта, нужно
перед именем метода указать имя объекта к которому он принадлежит. Например,
правильным обращением к методу document является выражение document.write(), а
просто выражение write() приведет к ошибке.
Также все стандартные объекты языка JS имеют свойства. Для обращения к свойству
необходимо указать имена объекта и свойства, разделив их точкой. Каждый объект имеет
собственный набор свойств. Набор свойств нового объекта можно задать при определении
объекта. Однако, некоторые свойства объктов существуют только для чтения.
Объекты браузеров
Объекты верхнего уровня, или объекты браузера, - это объекты, поддерживаемые в среде
браузера: window, location, history, document, navigator. Объекты, перечисленные в
таблице, создаются автоматически при загрузке документа в браузер.
Имя
объекта
Описание
window
Объект верхнего уровня в иерархии объектов языка
Фреймосодержащий документ также имеет объект window.
JavaScript.
Содержит свойства, которые относятся к текущему HTML-документу,
например имя каждой формы, цвета, используемые для отображения
document
документа, и др. В языке JS большинству HTML-тегов соответствуют свойства
объекта document.
- 68 -
location
Содержит свойства, описывающие местонахождение текущего документа,
например адрес URL.
Содержит информацию о версии браузера. Свойства данного объекта обычно
navigator только для чтения. Например свойство: navigator.appname содержит строковое
значение имени браузера.
history
Содержит информацию обо всех ресурсах, к которым пользователь обращался
во время текущего сеанса работы с браузером.
Рассмотрим более подробно window и document.
Объект
window
Объект window обычно соответствует главному окну браузера и является объектом
верхнего уровня в языке JavaScript, поскольку документы, собственно, и открываются в
окне.
Свойства
Объект window имеет свойства:
defaultStatus - текстовое сообщение, которое по умолчанию выводится в строке состояния
(status bar) окна браузера;
frames - массив фреймов во фреймосодержащем документе;
length - количество фреймов во фреймосодержащем документе;
name - заголовок окна;
parent - синоним, используемый для обращения к родительскому окну;
self - синоним, используемый для обращения к текущему окну;
status - текст временного сообщения в строке состояния окна браузера;
top - синоним, используемый для обращения к главному окну браузера;
window - синоним, используемый для обращения к текущему окну.
Методы
Метод alert() применяется для того, чтобы вывести на экран текстовое сообщение. Для
открытия окна используется метод open(), а для закрытия - метод close(). С помощью
метода confirm() происходит вывод на экран окна сообщения с кнопками Yes и No, и
возвращает булевое значение true или false, в зависимости от нажатой кнопки.
Посредством метода prompt() на экран выводится диалоговое окно с полем ввода.
Пример:
- 69 -
Мы хотим загрузить, например, страницу http://my.site.ru в окно размером в 640х480
пикселов: myWin = open ("http://my.site.ru","myWin","width=640, height=480");
Закрыть это окно можно из любого другого окна используя myWin.close();
Объект document
Объект document соответствует всему гипертекстовому документ, вернее, той его части,
которая заключена в контейнер <body> . . . </body>. Документы отображаются в окнах
браузера, поэтому каждый из них связан с определенным окном. Все HTML-объекты
являются свойствами объекта document, поэтому они находятся в самом документе.
Свойства
Объект document имеет достаточно много свойств, каждое из которых соответствует
определенному HTML-тегу в текущем документе:
alinkColor- соответствует атрибуту alink тега <body>;
anchors- массив, который соответствует всем меткам в документе;
bgColor- соответствует атрибуту bgColor (цвет фона) тега <body>;
cookie- представляет собой фрагмент информации, записанный на локальный диск
("ключик");
fgColor- соответствует атрибуту fgColor (цвет текста) тега <body>;
forms- массив, содержащий все теги <form> в текущем документе;
images- масив изображений, ссылки на которые заданы в текущем документе;
lastModified- дата последнего изменения текущего документа;
linkColor- соответствует атрибуту linkColor (цвет гиперсвязи по умолчанию);
links- масив, содержащий все гипервязи в текущем документе;
location- соответствует адресу URL текущего документа;
referrer- соответсствует адреу URL документа, из которого пользователь перешел к
текущему документу;
title- соответствует содержимому контейнера <title> . . . </title>;
vlinkColorсоответствует
атрибуту
vlinkColor
COLOR="#800080">посещенной связи) тега <body>.
(цвет
<FONT
Методы
Метод clear() предназначен для очистки текущего документа. Лучше использовать для
очистки методы open() и close(). Для записи информации в браузер применяют методы
write() и writeln(). Покольку эти методы записывают текст в браузер в HTML-формате, вы
- 70 -
можете создавать любой HTML-документ
приложения на языке JavaScript.
динамически,
включая
готовые
Примеры:
document.open();
document.writeln("<img
document.close();
sr='myimage.gif'>");
Внутренние объекты
Внутренние объекты не относятся к браузеру или загруженному в настоящее время
HTML-документу. Эти объекты могут создаваться и обрабатываться в любой JavaScriptпрограмме. Они включают в себя простые типы, такие как строки, а также более сложные
объекты, в частности даты.
Имя
объекта
Описание
Array
Массив. Не поддерживается в браузерах старых версий
Date
Дата и время
Math
Поддержка математических функций
Object
Обобщенный объект. Не поддерживается в старых версиях IE - до 4, NN - до
3.
String
Текстовая строка. Не поддерживается в старых версиях
Объекты, соответствующие тегам HTML
Имя объекта
Краткое описание
Множество тегов <a name> в текущем документе. Посредством массива
anchor (anchors[]) anchors программа на языке JavaScript может обращаться к метке
текущего гипертекстового документа.
button
Кнопка, создаваемая при помощи тега <input type=button>
checkbox
Контрольный переключатель, создаваемый при помощи тега <input
- 71 -
type=checkbox>
elements[]
Все элементы тега <form>
form (forms[])
Множество объектов тега <form> языка HTML
frame (frames[])
Фреймосодержащий документ
hidden
Скрытое текстовое поле, создаваемое при помощи тега <input
type=hidden>
images (images[]) Множество изображений (тегов <img>) в текущем документе
link (links[])
Множество гиперсвязей в текущем документе
navigator
Объект, содержащий информацию о браузере, загрузившем документ
password
Поле ввода пароля, создаваемое при помощи тега <input type=password>
radio
Селекторная кнопка (radio button), создаваемая при помощи тега <input
type=radio>
reset
Кнопка перегрузки, создаваемая при помощи тега <input type=reset>
select (options[])
Элементы <option> объекта <select>
submit
Кнопка передачи данных, создаваемая при помощи тега <input
type=submit>
text
Поле ввода, сооздаваемое при помощи тега <input type=text>
textarea
Поле текста, создаваемое при помощи тега <textarea>
2.3. Переменные языка JavaScript
Переменные языка JavaScript могут хранить значения различных типов:
Строки - последовательность символов;
Числовые значения - целые и действительные числа;
Булевы значения - только два значения true или false;
Массивы - множества однотипных переменных;
Даты - значения даты и времени.
- 72 -
В языке JavaScript создать переменную гораздо проще, чем в других языках
программирования. Например, при создании переменной нет необходимости указывать ее
тип. Переменные определяют как с начальными значениями, так и без них. В процессе
выполнения программы уже созданные переменные можно даже приводить к различным
типам данных. Имена переменных могут начинаться с любой буквы (от a до z, или A-Z )
либо с символа подчеркивания (_), оставшаяся часть может содержать цифры, символы
подчеркивания и буквы. Помните то, что в именах переменных различаются символы
верхнего и нижнего регистра: например MyVariable - это не то же что myvariable.
Переменную можно создать одним из способов:
при помощи оператора var и операции присваивания (=);
при помощи операции присваивания (=).
Например: var MyVariable = 35.
Переменная может
var MyVariable;
быть
задана
и
без
начальных
значений,
например:
создана переменная с именем MyVariable, не имеющая определенного типа данных и
начального значения. Переменные, создаваемые при помощи таких описаний, известны
как неопределенные (null variable).
Тип переменной может быть установлен в любом месте JS-программы в отличие от
других языков программирования, что дает дополнительную гибкость, но и возможность
запутаться. К переменной, которая не создана, обратиться невозможно. Если нужно
создать временную переменную, например счетчик цикла, нужно записать перед ней
префикс
var:
for (var i=0; i<= document.links.length; i++)
{
.
}
.
.
.
.
3. CGI
Вы когда-нибудь просматривали заголовки новостей в WWW? Вы когда-нибудь
пользовались услугами Web-магазинов? Приходилось ли вам заполнять форму на Webузле? Если хотя бы на один из этих вопросов вы ответили утвердительно, значит, вы не
просто рассматривает Web-страницы, а имеете дело с Web-приложениями.
Разработчикам программного обеспечения понадобилось не очень много времени, чтобы
понять, что в WWW можно не только демонстрировать статические картинки.
Действительно в наше время можно говорить, что Web-приложения постепенно
вытесняют простой HTML- текст. Если вам нужно принять и обработать информацию от
посетителя вашей Web-страницы, или получить доступ к некоторой базе данных, или
воспользоваться некоторой внешней по отношению к Web-серверу программой - во всех
этих случаях вам придётся иметь дело с Web-приложением. На сегодняшний день одной
- 73 -
из платформ для создания интерактивных Web-приложений является технология Common
Gateway Interface (CGI).
CGI-программа - это обычная программа которая разработанна специально для интернета.
CGI-программа выполняется не Web-сервере в ответ на запрос, сделанный браузером.
Сервер в этом случае является как бы посредником между браузером и CGI-программой он передаёт программе запрос браузера и возвращает браузеру информацию, выданную
программой. Например, программа может получить от браузера название некоторого
товара, посмотреть в таблице цену этого товара и вернуть полученную цену пользователю
(браузеру). Или программа может принять от пользователя некоторый текст комментария
и переслать его в виде почтового сообщения создателю Web-узла. Для написания такой
программы можно использовать почти любой язык программирования - CGI определяет
только стандарт интерфейса между Web-сервером и программой, которую вы пишите.
Программа может возвращать данные любого типа, например HTML-текст, рисунки в
формате GIF, простой текст, документы Microsoft Word, аудиофайлы и т.д. Заголовок типа
возвращаемых данных сообщает броузеру о типе данных, для того чтобы обеспечивать их
правильную обработку.
Общий шлюзовой интерфейс (Common Gateway Interface, или CGI ) - это стандарт,
который позволяет внешним программам взаимодействовать с серверами, например,
серверами HTTP, баз данных электронной почты и т.д. Когда Web-сервер получает
документ HTML, этот документ статичен. Это означает, что HTML находится в
постоянном, неизменном состоянии. С другой стороны, программа CGI выполняется в
реальном времени и поэтому может выводить динамическую информацию. Способность
создавать документы в реальном времени позволяет получать информацию из нескольких
источников, обрабатывать ее и показывать конечному пользователю.
Слово "общий" в термене CGI относится к возможности создавать скрипты для этого
интерфейса на разнообразных языках и для работы в разнообразных системах.
"Шлюзовый" означает, что скрипт CGI выполняет функцию шлюза между различными
приложениями для передачи информации в реальном времени. "Интерфейс" означает
способность соединятся по протоколу CGI.
Сам по себе CGI не является таинственым или неосязаемым. Это протокол, который
позволяет программистам использовать различные языки для сообщения с разными
системами в реальном времени с целью создания динамического содержимого для Web.
Допустим, что на сервере баз данных находится база данных контактов. Мы хотим иметь
возможность обращаться к этой информации через Web при помощи Web-сервера.
Очевидно, статичный документ HTML не может выполнить этой задачи, нельзя при
помощи HTML обратиться к серверу баз данных. Для этого нужен скрипт CGI, который
можно будет вызывать через Web. Такой скрипт будет запускаться Web-сервером и
устанавливать подключение к серверу базы данных. После чего скрипт должен отыскать
нужные данные и возвратить результаты Web-клиенту. Данный скрипт будет играть роль
шлюза между Web-сервером и сервером базы данных.
Это простой пример использования CGI. По сути, нет никакого предела в применении
скриптов CGI. CGI служит для сопряжения с базами данных, графическими генераторами,
патентованными программами, программами с открытым кодом, функциями
операционной системы и т.д.
3.1. Язык для приложений CGI
Сегодня в мире наблюдается возрастающая тенденция к преобразованию старых
приложений в Web-версии и созданию новых приложений на базе Web, в
- 74 -
противоположность прежним программам, которые для применения должны были
устанавливаться на компьютере пользователя. Возможность иметь доступ к приложению
через Web - простой способ гарантировать, что заказчики и служащие могут обращаться к
нему отовсюду, где только есть подключение к Интернет и Web-броузер. Это желание
иметь доступ к приложению вызывает необходимость CGI. Принять решение о языке, на
котором будут написаны эти приложения CGI, иногда бывает очень трудно.
Существует неправильное представление, что Perl и CGI - это одно и то же. Perl - не CGI,
а популярный и простой способ написания скриптов CGI. Perl не в коем случае не
является "первым и единственным" языком для создания скриптов CGI, но это жизненно
важный инструмент, который необходимо иметь в запасе, когда встает задача написания
скриптов. Другие языки, такие как PHP, ASP, Tcl и Cold Fusion, также могут применяться
для создания скриптов CGI. Однако у Perl есть преимущества над ними, когда речь идет
об использовании как для CGI, так и для общих задач.
Во-первых, Perl поддерживается на разных платформах. Можно писать скрипты на Perl
для Win32, нескольких платформ Unix, MacOS, BeOS, VMS и различных других
платформ. Поскольку программы на Perl не компелируются, нет необходимости заново
компилировать их для каждой платформы, на которой они должны работать.
Perl, в отличие от некоторых других языков, обладает такими возможностями, как
внутренний отладчик, средства для работы с базами данных, сетевые функции и,
возможно лучший механизм обработки регулярных выражений. Эти и другие особенности
делают Perl оптимальным языком для разработки скриптов CGI.
Срок разработки при использовании Perl очень уменьшается. В некоторых языках
требуется множество строк кода, чтобы выполнить то, для чего Perl достаточно лишь
нескольких строк. Это означает увеличение доступного времени для разработки новых
скриптов и уменьшение объема кода, который придется сопровождать и отлаживать.
Perl хорош и тогда, когда проект включает не только скрипты CGI, но и отдельные
программы обработки данных. Это относится к наиболее крупномасштабным проектам.
Предположим, что в проекте требуется обновлять через регулярные интервалы
определенное количество баз данных, выкладывать информацию из баз данных в Web и
создавать настраиваемые пользователем отчеты на основе этих данных. Perl может решить
все эти задачи, тогда как, например, PHP может обработать лишь ту часть, в которой
данные отображаются в Web-клиенте. Это означает, что для выполнения проекта
потребуется несколько языков. Если использовать для всех задач один язык, разработчики
смогут работать совместно, время разработки уменьшится, и каждый, кто знает Perl,
сможет сопровождать любую часть кода (при условии, что код хорошо написан).
3.2. Как работает CGI-программа
Сеанс HTTP (процесс передачи данных по протоколу HTTP) начинается с того, что клиент
(обычно это Web-браузер) запрашивает некоторый ресурс у Web-сервера. Предположим,
что URL выглядит так: http://w-wb.com/cgi/cgi_01_02.php. Этот URL соответствует файлу
cgi_01_02.php расположеному в папке cgi корневого каталога Web-сервера. Если Webсерверу удалось найти и прочитать этот файл, содержимое файла передается
запросившему его браузеру. Если же URL указывает на CGI-программу, все обстоит
немного сложнее. Давайте для примера рассмотрим следующий URL: http://w-wb.com/cgibin/example.cgi. В данном случае запрошенным ресурсом является программа с именем
example.cgi. Что именно делает эта программа не важно, важно то, что когда сервер видит,
- 75 -
что затребована программа, он запускает ее на выполнение и передает возвращенные ей
данные браузеру.
Этот процесс существенно отличается от обмена статичными HTML-файлами. Прежде
всего, возникает гораздо больше поводов для ошибочной ситуации. Когда запрошена CGIпрограмма, сервер должен проверить следущее.
Существует ли запрошенный файл?
Действительно ли запрошенный файл является CGI-программой?
Есть ли разрешение на выполнение этой программы?
Выполнилась ли программа без ошибок?
Соответствуют ли выходные данные программы запросу браузера? (Эту проверку мы
рассмотрим чуть ниже.)
Только в случае положительного ответа на все эти вопросы сервер может успешно
обслужить запрос. Если хотя бы на один из вопросов получен отрицательный ответ,
возникает сообщение об ошибке или просто происходит не то, что ожидалось.
Как говорилось выше, CGI-программа должна генерировать заголовок типа возвращаемых
данных, для того чтобы браузер знал, что возвращает программа. Типы возвращаемых
данных определяются стандартом MIME. Обычно стандарт MIME ассоциируется с
почтовыми сообщениями, но в случае с типом данных работает та же самая система, что и
с типом данных, вложенных в сообщение электронной почты. В следующей таблице
перечислены типы данных, которые может возвращать CGI-программа.
Типы данных, возвращаемых CGI-программой
Идентификатор
Тип данных
text/html
Документы HTML
text/plain
Простой текст
image/gif
Рисунок GIF
image/jpeg
Рисунок JPEG
video/quicktime
Анимация QuickTime
application/octet-stream
Бинарный файл
Если программа возвращает текст HTML, она должна генерировать такой заголовок типа
данных: Content-type: text/html
Эта информация передаётся серверу, который вместе с другими заголовками передает ее
броузеру. Протокол HTTP требует, чтобы заголовок отделялся от содержания двумя
символами перевода строки. Когда броузер встречает два последовательных символа
перевода строки, он понимает, что заголовок закончился и начинается блок данных,
которые должны быть обработаны. Таким образом, проболжая наш пример, если
- 76 -
программа example.cgi возвращает HTML-текст, ее полный вывод должен выглядеть
приблизительно так:
Content-type:
<html>
<head><title>Простой
<body>Это
</html>
text/html
простой
пример</title></head>
пример</body>
2.4. Среда для CGI-программирования
Как вы уже знаете CGI-программы это не совсем обычные программы. Хотя их можно
выполнять просто из командной строки, все-таки они предназначены для того, чтобы их
выполнял Web-сервер в ответ на запрос браузера. Для успешного создания CGI-программ
вам понадобиться специальное программное обеспечение. Ниже приведен список
необходимых и просто полезных программ.
Собственно Web-сервер. Для того чтобы выполнить программу и передать её результат
браузеру, вам необходим Web-сервер.
Интерпретатор или компилятор языка. Если вы пишете программы на языке Perl, вам
понадобиться интерпретатор языка Perl. Если же вы решили писать на языке
компилирующего типа, вам необходим соответствующий компилятор.
Библиотеки или программы для автоматического преобразования данных, введеных в
форму в структуру данных, присущую выбранному языку. Конечно, вы можете заняться
этим вручныю, но наличие такой библиотеки сэкономит вам много времени и убережет от
ошибок.
2.5. Структура CGI-программы
Работу CGI-программы можно условно разбить на три этапа: прием входных данных,
выполнение инструкций, составляющих собственно алгоритм программы, и
генерирование выходных данных. Алгоритм, составляющий саму программу называется
алгоритм обработки данных.
Рассмотрим для примера программу которая должна посылать данные, введенные в
форму на Web-странице, по определенному адресу электронной почты. В этом случае
программа должна получить и обработать данные переданные ей браузером из формы,
составить из них почтовое сообщение, отправить его и вывести уведомление о том, что
сообщение отправлено.
После того как вы выяснили, что должна делать ваша программа, вы можете решить, что
эта программа должна получать на входе и что формировать на выходе. Как правило,
входные и выходные данные программы полностью определяются ее назначением.
Разделение программы на такие логические части облегчает создание программы и
позволяет другим понять ее работу.
- 77 -
2.6. Простая CGI-программа
Рассмотрим пример программы. Пусть наша программа должна принять возраст
пользователя и ответить ему, имеет ли он право голосовать. Код этой программы
приведен ниже:
#!/usr/local/bin/perl
# импортируем модуль CGI и создаем объект
# запроса для доступа к данным формы
use CGI;
$query = new CGI;
# определяем возраст пользователя
if ( $query->param('age') >= 18 ) { $voter = 'yes'; }
else { $voter = 'no'; }
# выводим сообщение о том, является
# ли пользователь избирателем.
print $query->header(-charset => "Windows-1251");
print "<html><head><title>Вы имеете право голосовать?</title></head><body>\n";
print "<h1>Вы имеете право голосовать?</h1>\n";
if ( $voter eq 'yes' )
{ print "<p>Вы имеете право голосовать!</p>\n"; }
else { print "<p>Вы еще не имеете право голосовать!</p>\n"; }
print "</body></html>\n";
В самой первой строке указан путь к интерпритатору Perl. При запуске программы Webсервер ищет интерпритатор Perl по этому пути и, если не находит его, выдает сообщения
об ошибке. Перед тем как выполнять алгоритм программы, нужно получить и обработать
данные, введенные пользователем. В случае использования языка Perl этот шаг очень
прост. Просто импортируется CGI-модуль (библиотека) с помощью команды use CGI.
После импортирования модуля и создания объекта запроса (его значение записано в
переменной $query), автоматически преобразуются данные формы в структуру данных
языка Perl. После того как данные пользователя приняты начинается их обработка.
Оператор if состоит из единственного условия: $query->param('age') >= 18
- 78 -
Здесь проверяется значение параметра age. Если пользователь ввел значение большее или
равное 18, то программа возвращает сообщение: "Вы имеете право голосовать!", а если
значение меньше 18, то возвращается сообщение: "Вы еще не имеете право голосовать!".
После этого выводится текст страницы, которая будет передана пользователю. Сначала с
помощью метода header объекта query печатается заголовок типа возвращаемых данных, а
затем открывающие тэги и заголовок (<TITLE>) страницы. Для того чтобы напечатать
тело страницы, проверяется с помощью оперетора if, является ли пользователь законным
избирателем, и печатается соответствующие сообщение. Форма, которая может вызывать
эту программу выгляди, например, так (в этой форме есть поле с именем age):
<html><head><title>Вы имеете право голосовать?</title></head>
<body>
<h1>Вы имеете право голосовать?</h1>
<p>
<form action="/cgi-bin/cgi-example/voter.pl">
Возраст: <input type="text" name="age">
<input type="submit" value="Проверить">
</form>
</p>
</body></html>
4. Проблемы обеспечения безопасности при использовании скриптов
Скрипты обеспечивают интерактивность, но существует проблема: они могут содержать
ошибки, которые можно использовать. Так скрипты CGI должны быть написаны с той же
осторожностью и вниманием, что и программы самого сервера, поскольку на самом деле
они и есть маленькие серверы.
Скрипты CGI могут открывать лазейки двумя путями:
Они могут, случайно или преднамеренно, предоставлять информацию о системе, которая
может быть использована хакером.
Скрипты, которые обрабатывают данные, вводимые удаленным пользователем через
формы ввода, могут подвергаться атакам, при которых пользователь заставляет их
выполнять произвольные команды.
Как было сказано ранее при написании скриптов возможно использование как
интерпретируемых языков, так и компилируемых. Использовании компилируемых языков
является более безопасным. Так, чем больше хакер знает о том, как работает скрипт, тем
легче ему найти и использовать ошибки в нем. При использовании компилируемых
языков вы можете создать двоичный выполняемый файл, поместить его на сервер и не
беспокоиться о том, что хакер может получить доступ к исходному тексту программы.
Напортив, в случае интерпретируемых языков исходный текст всегда потенциально
доступен. Хотя правильно настроенный сервер не должен передавать текст скрипта,
существуют различные пути обхода этого ограничения. Но нет гарантии того, что
программа, например, на C будет безопасной. Программы на C могут содержать
множество опасных ошибок. В свою очередь, программы на интерпретируемых языках
- 79 -
как правило имеют меньший объем текста и легче могут быть поняты лицами, не
участвовавшими в разработке, с целью контроля. Кроме того, язык Perl содержит ряд
встроенных функций, предназначенных для перехвата возможных лазеек в безопасности.
Поэтому, однозначно нельзя ответить какой язык выбрать: интерпретируемый или
компилируемый.
IP-адресация. Система доменных имен. Унифицированный указатель ресурса.
Типы адресации в IP-сетях.
В протоколе TCP/IP используются три типа адресов: локальные (называемые также
аппаратными), IP-адреса и символьные доменные имена.
В терминологии TCP/IP под локальным адресом понимается такой тип адреса, который
используется для доставки данных в пределах подсети, являющейся элементом составной
интерсети. В разных подсетях допустимы разные сетевые технологии, разные стеки
протоколов, поэтому при создании стека TCP/IP предполагалось наличие разных типов
локальных адресов. Если подсетью интерсети является локальная сеть, то локальный
адрес — это МАС-адрес. МАС-адрес назначается сетевым адаптерам и сетевым
интерфейсам маршрутизаторов. МАС-адреса назначаются производителями оборудования
и являются уникальными, так как управляются централизованно. Для всех существующих
технологий локальных сетей МАС-адрес имеет формат 6 байт, например 11-A0-17-3D-BC01. Однако протокол IP может работать и над протоколами более высокого уровня,
например над протоколом IPX или Х.25. В этом случае локальными адресами для
протокола IP соответственно будут адреса IPX и Х.25. Следует учесть, что компьютер в
локальной сети может иметь несколько локальных адресов даже при одном сетевом
адаптере. Некоторые сетевые устройства не имеют локальных адресов. Например, к таким
устройствам относятся глобальные порты маршрутизаторов, предназначенные для
соединений типа «точка-точка».
IP-адреса представляют собой основной тип адресов, на основании которых сетевой
уровень передает пакеты между сетями. Эти адреса состоят из 4 байт, например
109.26.17.100. IP-адрес назначается администратором во время конфигурирования
компьютеров и маршрутизаторов. IP-адрес состоит из двух частей: номера сети и номера
узла. Номер сети может быть выбран администратором произвольно, либо назначен по
рекомендации специального подразделения Internet (Internet Network Information Center,
InterNIC), если сеть должна работать как составная часть Internet. Обычно поставщики
услуг Internet получают диапазоны адресов у подразделений InterNIC, а затем
распределяют их между своими абонентами. Номер узла в протоколе IP назначается
независимо от локального адреса узла. Маршрутизатор по определению входит сразу в
несколько сетей. Поэтому каждый порт маршрутизатора имеет собственный IP-адрес.
Конечный узел также может входить в несколько IP-сетей. В этом случае компьютер
должен иметь несколько IP-адресов, по числу сетевых связей. Таким образом, IP-адрес
характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение.
- 80 -
Символьные доменные имена. Символьные имена в IP-сетях называются доменными и
строятся по иерархическому признаку. Составляющие полного символьного имени в IPсетях разделяются точкой и перечисляются в следующем порядке: сначала простое имя
конечного узла, затем имя группы узлов (например, имя организации), затем имя более
крупной группы (поддомена) и так до имени домена самого высокого уровня (например,
домена объединяющего организации по географическому принципу: RU — Россия, UK —
Великобритания, SU — США). Примеров доменного имени может служить имя
base2.sales.zil.ru. Между доменным именем и IP-адресом узла нет никакого
алгоритмического соответствия, поэтому необходимо использовать какие-то
дополнительные таблицы или службы, чтобы узел сети однозначно определялся как по
доменному имени, так и по IP-адресу. В сетях TCP/IP используется специальная
распределенная служба Domain Name System (DNS), которая устанавливает это
соответствие на основании создаваемых администраторами сети таблиц соответствия.
Поэтому доменные имена называют также DNS-именами.
Классы IP-адресов.
IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел,
представляющих значения каждого байта в десятичной форме и разделенных точками,
например, 128.10.2.30 — традиционная десятичная форма представления адреса, а
10000000 00001010 00000010 00011110 - двоичная форма представления этого же адреса.
Адрес состоит из двух логических частей — номера сети и номера узла в сети. Какая часть
адреса относится к номеру сети, а какая — к номеру узла, определяется значениями
первых бит адреса. Значения этих бит являются также признаками того, к какому классу
относится тот или иной IP-адрес.
Если адрес начинается с 0, то сеть относят к классу А и номер сети занимает один байт,
остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера
в диапазоне от 1 до 126. (Номер 0 не используется, а номер 127 зарезервирован для
специальных целей, о чем будет сказано ниже.) Сетей класса А немного, зато количество
узлов в них может достигать 224, то есть 16 777 216 узлов.
Если первые два бита адреса равны 10, то сеть относится к классу В. В сетях класса В под
номер сети и под номер узла отводится по 16 бит, то есть по 2 байта. Таким образом, сеть
класса В является сетью средних размеров с максимальным числом узлов 216, что
составляет 65 536 узлов.
Если адрес начинается с последовательности 110, то это сеть класса С. В этом случае под
номер сети отводится 24 бита, а под номер узла — 8 бит. Сети этого класса наиболее
распространены, число узлов в них ограничено 28, то есть 256 узлами.
- 81 -
Если адрес начинается с последовательности 1110, то он является адресом класса D и
обозначает особый, групповой адрес — multicast. Если в пакете в качестве адреса
назначения указан адрес класса D, то такой пакет должны получить все узлы, которым
присвоен данный адрес.
Если адрес начинается с последовательности 11110, то это значит, что данный адрес
относится к классу Е. Адреса этого класса зарезервированы для будущих применений.
Большие сети получают адреса класса А, средние — класса В, а маленькие — класса С.
Особые IP-адреса.
В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов.
Если весь IP-адрес состоит только из двоичных нулей, то он обозначает адрес того узла,
который сгенерировал этот пакет; этот режим используется только в некоторых
сообщениях ICMP.
Если в поле номера сети стоят только нули, то по умолчанию считается, что узел
назначения принадлежит той же самой сети, что и узел, который отправил пакет.
Если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения
должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета.
Такая рассылка называется ограниченным широковещательным сообщением (limited
broadcast).
Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой
адрес, рассылается всем узлам сети с заданным номером сети. Например, пакет с адресом
192.190.21.255 доставляется всем узлам сети 192.190.21.0. Такая рассылка называется
широковещательным сообщением (broadcast).
При адресации необходимо учитывать те ограничения, которые вносятся особым
назначением некоторых IP-адресов. Так, ни номер сети, ни номер узла не может состоять
только из одних двоичных единиц или только из одних двоичных нулей. Отсюда следует,
что максимальное количество узлов, приведенное в таблице для сетей каждого класса, на
практике должно быть уменьшено на 2. Например, в сетях класса С под номер узла
отводится 8 бит, которые позволяют задавать 256 номеров: от 0 до 255. Однако на
практике максимальное число узлов в сети класса С не может превышать 254, так как
адреса 0 и 255 имеют специальное назначение. Из этих же соображений следует, что
конечный узел не может иметь адрес типа 98.255.255.255, поскольку номер узла в этом
адресе класса А состоит из одних двоичных единиц.
Особый смысл имеет IP-адрес, первый октет которого равен 127. Он используется для
тестирования программ и взаимодействия процессов в пределах одной машины. Когда
программа посылает данные по IP-адресу 127.0.0.1, то образуется как бы «петля». Данные
не передаются по сети, а возвращаются модулям верхнего уровня как только что
принятые. Поэтому в IP-сети запрещается присваивать машинам IP-адреса, начинающиеся
- 82 -
со 127. Этот адрес имеет название loopback. Можно отнести адрес 127.0.0.0 ко внутренней
сети модуля маршрутизации узла, а адрес 127.0.0.1 — к адресу этого модуля на
внутренней сети. На самом деле любой адрес сети 127.0.0.0 служит для обозначения
своего модуля маршрутизации, а не только 127.0.0.1, например 127.0.0.3.
В протоколе IP нет понятия широковещательности в том смысле, в котором оно
используется в протоколах канального уровня локальных сетей, когда данные должны
быть доставлены абсолютно всем узлам. Как ограниченный широковещательный IP-адрес,
так и широковещательный IP-адрес имеют пределы распространения в интерсети — они
ограничены либо сетью, к которой принадлежит узел-источник пакета, либо сетью, номер
которой указан в адресе назначения. Поэтому деление сети с помощью маршрутизаторов
на части локализует широковещательный шторм пределами одной из составляющих
общую сеть частей просто потому, что нет способа адресовать пакет одновременно всем
узлам всех сетей составной сети.
Особая форма группового IP-адреса — multicast — означает, что данный пакет должен
быть доставлен сразу нескольким узлам, которые образуют группу с номером, указанным
в поле адреса. Узлы сами идентифицируют себя, то есть определяют, к какой из групп они
относятся. Один и тот же узел может входить в несколько групп. Члены какой-либо
группы multicast не обязательно должны принадлежать одной сети. В общем случае они
могут распределяться по совершенно различным сетям. Групповой адрес не делится на
поля номера сети и узла и обрабатывается маршрутизатором особым образом.
Основное назначение multicast-адресов — распространение информации по схеме «одинко-многим». Хост, который хочет передавать одну и ту же информацию многим
абонентам, с помощью специального протокола IGMP (Internet Group Management
Protocol) сообщает о создании в сети новой мультивещательной группы с определенным
адресом. Маршрутизаторы, поддерживающие мультивещательность, распространяют
информацию о создании новой группы в сетях, подключенных к портам этого
маршрутизатора. Хосты, которые хотят присоединиться к вновь создаваемой
мультивещательной группе, сообщают об этом своим локальным маршрутизаторам и те
передают эту информацию хосту, инициатору создания новой группы.
Чтобы маршрутизаторы могли автоматически распространять пакеты с адресом multicast
по составной сети, необходимо использовать в конечных маршрутизаторах
модифицированные протоколы обмена маршрутной информацией, такие как, например,
MOSPF (Multicast OSPF, аналог OSPF).
Групповая адресация предназначена для экономичного распространения в Internet или
большой корпоративной сети аудио- или видеопрограмм, предназначенных сразу большой
аудитории слушателей или зрителей. Если такие средства найдут широкое применение
(сейчас они представляют в основном небольшие экспериментальные островки в общем
Internet), то Internet сможет создать серьезную конкуренцию радио и телевидению.
- 83 -
Использование масок в IP-адресации.
Традиционная схема деления IP-адреса на номер сети и номер узла основана на понятии
класса, который определяется значениями нескольких первых бит адреса. Именно потому,
что первый байт адреса 185.23.44.206 попадает в диапазон 128-191, мы можем сказать, что
этот адрес относится к классу В, а значит, номером сети являются первые два байта,
дополненные двумя нулевыми байтами — 185.23.0.0, а номером узла — 0.0.44.206.
А что если использовать какой-либо другой признак, с помощью которого можно было бы
более гибко устанавливать границу между номером сети и номером узла? В качестве
такого признака сейчас получили широкое распространение маски. Маска — это число,
которое используется в паре с IP-адресом; двоичная запись маски содержит единицы в тех
разрядах, которые должны в IP-адресе интерпретироваться как номер сети. Поскольку
номер сети является цельной частью адреса, единицы в маске также должны представлять
непрерывную последовательность. Для стандартных классов сетей маски имеют
следующие значения:
класс А - 11111111. 00000000. 00000000. 00000000 (255.0.0.0);
класс В - 11111111. 11111111. 00000000. 00000000 (255.255.0.0);
класс С-11111111.11111111.11111111.00000000(255.255.255.0).
Для записи масок используются и другие форматы, например, удобно интерпретировать
значение маски, записанной в шеанадцатеричном коде: FF.FF.00.00 - маска для адресов
класса В. Часто встречается и такое обозначение 185.23.44,206/16 - эта запись говорит о
том, что маска для этого адреса содержит 16 единиц или что в указанном IP-адресе под
номер сети отведено 16 двоичных разрядов.
Снабжая каждый IP-адрес маской, можно отказаться от понятий классов адресов и сделать
более гибкой систему адресации. Например, если рассмотренный выше адрес
185.23.44.206 ассоциировать с маской 255.255.255.0, то номером сети будет 185.23.44.0, а
не 185.23.0.0, как это определено системой классов.
В масках количество единиц в последовательности, определяющей границу номера сети,
не обязательно должно быть кратным 8, чтобы повторять деление адреса на байты. Пусть,
например, для IP-адреса 129.64.134.5 указана маска 255.255.128.0, то есть в двоичном
виде:
IP-адрес 129.64.134.5 - 10000001. 01000000.10000110. 00000101
Маска 255.255.128.0- 11111111.11111111.10000000.00000000
- 84 -
Если игнорировать маску, то в соответствии с системой классов адрес 129.64.134.5
относится к классу В, а значит, номером сети являются первые 2 байта — 129.64.0.0, а
номером узла — 0.0.134.5.
Если же использовать для определения границы номера сети маску, то 17
последовательных единиц в маске, «наложенные» на IP-адрес, определяют в качестве
номера сети в двоичном выражении число:
10000001. 01000000. 10000000. 00000000 или в десятичной форме записи — номер сети
129.64.128.0, а номер узла 0.0.6.5.
Механизм масок широко распространен в IP-маршрутизации, причем маски могут
использоваться для самых разных целей. С их помощью администратор может
структурировать свою сеть, не требуя от поставщика услуг дополнительных номеров
сетей. На основе этого же механизма поставщики услуг могут объединять адресные
пространства нескольких сетей путем введения так называемых «префиксов» с целью
уменьшения объема таблиц маршрутизации и повышения за счет этого
производительности маршрутизаторов.
Порядок распределения IP-адресов.
Номера сетей назначаются либо централизованно, если сеть является частью Internet, либо
произвольно, если сеть работает автономно. Номера узлов и в том и в другом случае
администратор волен назначать по своему усмотрению, не выходя, разумеется, из
разрешенного для этого класса сети диапазона.
Координирующую роль в централизованном распределении IP-адресов до некоторого
времени играла организация InterNIC, однако с ростом сети задача распределения адресов
стала слишком сложной, и InterNIC делегировала часть своих функций другим
организациям и крупным поставщикам услуг Internet.
Уже сравнительно давно наблюдается дефицит IP-адресов. Очень трудно получить адрес
класса В и практически невозможно стать обладателем адреса класса А. При этом надо
отметить, что дефицит обусловлен не только ростом сетей, но и тем, что имеющееся
множество IP-адресов используется нерационально. Очень часто владельцы сети класса С
расходуют лишь небольшую часть из имеющихся у них 254 адресов. Рассмотрим пример,
когда две сети необходимо соединить глобальной связью. В таких случаях в качестве
канала связи используют два маршрутизатора, соединенных по схеме «точка-точка» (рис.
5.10). Для вырожденной сети, образованной каналом, связывающим порты двух смежных
- 85 -
маршрутизаторов, приходится выделять отдельный номер сети, хотя в этой сети имеются
всего 2 узла.
Если же некоторая IP-сеть создана для работы в «автономном режиме», без связи с
Internet, тогда администратор этой сети волен назначить ей произвольно выбранный
номер. Но и в этой ситуации для того, чтобы избежать каких-либо коллизий, в стандартах
Internet определено несколько диапазонов адресов, рекомендуемых для локального
использования. Эти адреса не обрабатываются маршрутизаторами Internet ни при каких
условиях. Адреса, зарезервированные для локальных целей, выбраны из разных классов: в
классе А — это сеть 10.0.0.0, в классе В — это диапазон из 16 номеров сетей 172.16.0.0172.31.0.0, в классе С — это диапазон из 255 сетей -192.168.0.0-192.168.255.0.
Для смягчения проблемы дефицита адресов разработчики стека TCP/IP предлагают
разные подходы. Принципиальным решением является переход на новую версию IPv6, в
которой резко расширяется адресное пространство за счет использования 16-байтных
адресов. Однако и текущая версия IPv4 поддерживает некоторые технологии,
направленные на более экономное расходование IP-адресов. Одной из таких технологий
является технология масок и ее развитие — технология бесклассовой междоменной
маршрутизации (Classless Inter-Domain Routing, CIDR). Технология CIDR отказывается от
традиционной концепции разделения адресов протокола IP на классы, что позволяет
получать в пользование столько адресов, сколько реально необходимо. Благодаря CIDR
поставщик услуг получает возможность «нарезать» блоки из выделенного ему адресного
пространства в точном соответствии с требованиями каждого клиента, при этом у него
остается пространство для маневра на случай его будущего роста.
Другая технология, которая может быть использована для снятия дефицита адресов, это
трансляция адресов (Network Address Translator, NAT). Узлам внутренней сети адреса
назначаются произвольно (естественно, в соответствии с общими правилами,
определенными в стандарте), так, как будто эта сеть работает автономно. Внутренняя сеть
соединяется с Internet через некоторое промежуточное устройство (маршрутизатор,
межсетевой экран). Это промежуточное устройство получает в свое распоряжение
некоторое количество внешних «нормальных» IP-адресов, согласованных с поставщиком
услуг или другой организацией, распределяющей IP-адреса. Промежуточное устройство
способно преобразовывать внутренние адреса во внешние, используя для этого некие
таблицы соответствия. Для внешних пользователей все многочисленные узлы внутренней
сети выступают под несколькими внешними IP-адресами. При получении внешнего
запроса это устройство анализирует его содержимое и при необходимости пересылает его
во внутреннюю сеть, заменяя IP-адрес на внутренний адрес этого узла. Процедура
трансляции адресов определена в RFC 1631.
Автоматизация процесса назначения IP-адресов
Назначение IP-адресов узлам сети даже при не очень большом размере сети может
представлять для администратора утомительную процедуру. Протокол Dynamic Host
- 86 -
Configuration Protocol (DHCP) освобождает
автоматизируя процесс назначения IP-адресов.
администратора
от
этих
проблем,
DHCP может поддерживать способ автоматического динамического распределения
адресов, а также более простые способы ручного и автоматического статического
назначения адресов. Протокол DHCP работает в соответствии с моделью клиент-сервер.
Во время старта системы компьютер, являющийся DHCP-клиентом, посылает в сеть
широковещательный запрос на получение IP-адреса. DHCP-cepвер откликается и
посылает сообщение-ответ, содержащее IP-адрес. Предполагается, что DHCP-клиент и
DHCP-сервер находятся в одной IP-сети.
При динамическом распределении адресов DHCP-сервер выдает адрес клиенту на
ограниченное время, называемое временем аренды (lease duration), что дает возможность
впоследствии повторно использовать этот IP-адрес для назначения другому компьютеру.
Основное преимущество DHCP — автоматизация рутинной работы администратора по
конфигурированию стека TCP/IP на каждом компьютере. Иногда динамическое
разделение адресов позволяет строить IP-сеть, количество узлов в которой превышает
количество имеющихся в распоряжении администратора IP-адресов.
В ручной процедуре назначения статических адресов активное участие принимает
администратор, который предоставляет DHCP-серверу информацию о соответствии IPадресов физическим адресам или другим идентификаторам клиентов. DHCP-сервер,
пользуясь этой информацией, всегда выдает определенному клиенту назначенный
администратором адрес.
При автоматическом статическом способе DHCP-сервер присваивает IP-адрес из пула
наличных IP-адресов без вмешательства оператора. Границы пула назначаемых адресов
задает администратор при конфигурировании DHCP-сервера. Адрес дается клиенту из
пула в постоянное пользование, то есть с неограниченным сроком аренды. Между
идентификатором клиента и его IP-адресом по-прежнему, как и при ручном назначении,
существует постоянное соответствие. Оно устанавливается в момент первого назначения
DHCP-сервером IP-адреса клиенту. При всех последующих запросах сервер возвращает
тот же самый IP-адрес.
DHCP обеспечивает надежный и простой способ конфигурации сети TCP/IP, гарантируя
отсутствие дублирования адресов за счет централизованного управления их
распределением. Администратор управляет процессом назначения адресов с помощью
параметра «продолжительность аренды», которая определяет, как долго компьютер может
использовать назначенный IP-адрес, перед тем как снова запросить его от DHCP-сервера в
аренду.
Примером работы протокола DHCP может служить ситуация, когда компьютер,
являющийся DHCP-клиентом, удаляется из подсети. При этом назначенный ему IP-адрес
автоматически освобождается. Когда компьютер подключается к другой подсети, то ему
- 87 -
автоматически назначается новый адрес. Ни пользователь, ни сетевой администратор не
вмешиваются в этот процесс. Это свойство очень важно для мобильных пользователей.
DHCP-сервер может назначить клиенту не только IP-адрес клиента, но и другие
параметры стека TCP/IP, необходимые для его эффективной работы, например, маску, IPадрес маршрутизатора по умолчанию, IP-адрес сервера DNS, доменное имя компьютера и
т. п.
Отображение доменных имен на IP-адреса.
Для идентификации компьютеров аппаратное и программное обеспечение в сетях TCP/IP
полагается на IP-адреса, поэтому для доступа к сетевому ресурсу в параметрах программы
вполне достаточно указать IP-адрес, чтобы программа правильно поняла, к какому хосту
ей нужно обратиться. Например, команда ftp://192.45.66.17 будет устанавливать сеанс
связи с нужным ftp-сервером, а команда http://203.23.106.33 откроет начальную страницу
на корпоративном Web-сервере. Однако пользователи обычно предпочитают работать с
символьными именами компьютеров, и операционные системы локальных сетей
приучили их к этому удобному способу. Следовательно, в сетях TCP/IP должны
существовать символьные имена хостов и механизм для установления соответствия
между символьными именами и IP-адресами.
Для эффективной организации именования компьютеров в больших сетях естественным
является применение иерархических составных имен. В стеке TCP/IP применяется
доменная система имен, которая имеет иерархическую древовидную структуру,
допускающую использование в имени произвольного количества составных частей (рис.
5.11).
Пространство доменных имен.
Иерархия доменных имен аналогична иерархии имен файлов, принятой во многих
популярных файловых системах. Дерево имен начинается с корня, обозначаемого здесь
точкой (.). Затем следует старшая символьная часть имени, вторая по старшинству
символьная часть имени и т. д. Младшая часть имени соответствует конечному узлу сети.
В отличие от имен файлов, при записи которых сначала указывается самая старшая
составляющая, затем составляющая более низкого уровня и т. д., запись доменного имени
начинается с самой младшей составляющей, а заканчивается самой старшей. Составные
части доменного имени отделяется друг от друга точкой. Например, в имени
partnering.microsoft.com составляющая partnering является именем одного из компьютеров
в домене microsoft.com.
- 88 -
Разделение административной ответственности позволяет решить проблему образования
уникальных имен без взаимных консультаций между организациями, отвечающими за
имена одного уровня иерархии. Очевидно, что должна существовать одна организация,
отвечающая за назначение имен верхнего уровня иерархии.
Совокупность имен, у которых несколько старших составных частей совпадают, образуют
домен имен (domain). Например, имена wwwl.zil.mmt.ru, ftp.zil.mmt.ru, yandex.ru и
sl.mgu.ru входят в домен ru, так как все эти имена имеют одну общую старшую часть —
имя ru. Другим примером является домен mgu.ru. В него входят имена sl.mgu.ru, s2.mgu.ru
и rn.mgu.ru. Этот домен образуют имена, у которых две старшие части всегда равны
mgu.ru. Имя www.mmt.ru в домен mgu.ru не входит, так как имеет отличающуюся
составляющую mmt.
Термин «домен» очень многозначен, поэтому его нужно трактовать в рамках
определенного контекста. Кроме доменов имен стека TCP/IP в компьютерной литературе
также часто упоминаются домены Windows NT, домены коллизий и некоторые другие.
Общим у всех этих терминов является то, что они описывают некоторое множеаво
компьютеров, обладающее каким-либо определенным свойством.
Если один домен входит в другой домен как его составная часть, то такой домен могут
называть поддоменом (subdomain), хотя название домен за ним также остается. Обычно
поддомен называют по имени той его старшей составляющей, которая отличает его от
других поддрменов. Например, поддомен mmt.ru обычно называют поддоменом (или
доменом) mmt. Имя поддомену назначает администратор вышестоящего домена. Хорошей
аналогией домена является каталог файловой системы.
Если в каждом домене и поддомене обеспечивается уникальность имен следующего
уровня иерархии, то и вся система имен будет состоять из уникальных имен.
По аналогии с файловой системой, в доменной системе имен различают краткие имена,
относительные имена и полные доменные имена. Краткое имя — это имя конечного узла
сети: хоста или порта маршрутизатора. Краткое имя — это лист дерева имен.
Относительное имя — это составное имя, начинающееся с некоторого уровня иерархии,
но не самого верхнего. Например, wwwl.zil — это относительное имя. Полное доменное
имя (fully qualified domain name, FQDN) включает составляющие всех уровней иерархии,
начиная от краткого имени и кончая корневой точкой: wwwl.zu.mmt.ru.
Необходимо подчеркнуть, что компьютеры входят в домен в соответствии со своими
составными именами, при этом они могут иметь совершенно различные IP-адреса,
принадлежащие к различным сетям и подсетям. Например, в домен mgu.ru могут входить
хосты с адресами 132.13.34.15, 201.22.100.33,14.0.0.6. Доменная система имен реализована
в сети Internet, но она может работать и как автономная система имен в крупной
корпоративной сети, использующей стек TCP/IP, но не связанной с Internet.
- 89 -
В Internet корневой домен управляется центром InterNIC. Домены верхнего уровня
назначаются для каждой страны, а также на организационной основе. Имена этих доменов
должны следовать международному стандарту ISO 3166. Для обозначения стран
используются трехбуквенные и двухбуквенные аббревиатуры, а для различных типов
организаций — следующие обозначения:
com — коммерческие организации (например, microsoft.com);
edu — образовательные (например, mit.edu);
gov — правительственные организации (например, nsf.gov);
org — некоммерческие организации (например, fidonet.org);
net — организации, поддерживающие сети (например, nsf.net).
Каждый домен администрируется отдельной организацией, которая обычно разбивает
свой домен на поддомены и передает функции администрирования этих поддоменов
другим организациям. Чтобы получить доменное имя, необходимо зарегистрироваться в
какой-либо организации, которой InterNIC делегировал свои полномочия по
распределению имен доменов. В России такой организацией является РосНИИРОС,
которая отвечает за делегирование имен поддоменов в домене.
Система доменных имен DNS.
Соответствие между доменными именами и IP-адресами может устанавливаться как
средствами локального хоста, так и средствами централизованной службы. На раннем
этапе развития Internet на каждом хосте вручную создавался текстовый файл с известным
именем hosts. Этот файл состоял из некоторого количества строк, каждая из которых
содержала одну пару «IP-адрес — доменное имя», например 102.54.94.97 —
rhino.acme.com.
По мере роста Internet файлы hosts также росли, и создание масштабируемого решения для
разрешения имен стало необходимостью.
Таким решением стала специальная служба — система доменных имен (Domain Name
System, DNS). DNS — это централизованная служба, основанная на распределенной базе
отображений «доменное имя — IP-адрес». Служба DNS использует в своей работе
протокол типа «клиент-сервер». В нем определены DNS-серверы и DNS-клиенты. DNSсерверы поддерживают распределенную базу отображений, а DNS-клиенты обращаются к
серверам с запросами о разрешении доменного имени в IP-адрес.
- 90 -
Служба DNS использует текстовые файлы почти такого формата, как и файл hosts, и эти
файлы администратор также подготавливает вручную. Однако служба DNS опирается на
иерархию доменов, и каждый сервер службы DNS хранит только часть имен сети, а не все
имена, как это происходит при использовании файлов hosts. При росте количества узлов в
сети проблема масштабирования решается созданием новых доменов и поддоменов имен
и добавлением в службу DNS новых серверов.
Для каждого домена имен создается свой DNS-сервер. Этот сервер может хранить
отображения «доменное имя — IP-адрес» для всего домена, включая все его поддомены.
Однако при этом решение оказывается плохо масштабируемым, так как при добавлении
новых поддоменов нагрузка на этот сервер может превысить его возможности. Чаще
сервер домена хранит только имена, которые заканчиваются на следующем ниже уровне
иерархии по сравнению с именем домена. (Аналогично каталогу файловой системы,
который содержит записи о файлах и подкаталогах, непосредственно в него «входящих».)
Именно при такой организации службы DNS нагрузка по разрешению имен
распределяется более-менее равномерно между всеми DNS-серверами сети. Например, в
первом случае DNS-сервер домена mmt.ru будет хранить отображения для всех имен,
заканчивающихся на mmt.ru: wwwl.zil.mmt.ru, ftp.zil.mmt.ru, mau.mmt.ru и т. д. Во втором
случае этот сервер хранит отображения только имен типа mail.mmt.ru, www.mmt.ru, а все
остальные отображения должны храниться на DNS-сервере поддомена zil.
Каждый DNS-сервер кроме таблицы отображений имен содержит ссылки на DNS-серверы
своих поддоменов. Эти ссылки связывают отдельные DNS-серверы в единую службу
DNS. Ссылки представляют собой IP-адреса соответствующих серверов. Для
обслуживания корневого домена выделено несколько дублирующих друг друга DNSсерверов, IP-адреса которых являются широко известными (их можно узнать, например, в
InterNIC).
Унифицированный указатель информационного ресурса.
("URL" - Uniform Resource Locator). В WWW все документы, файлы и программы имеют
свое собственное "место" со своим собственным адресом, так называемым URL. URL
состоит из следующих элементов:
протокол :// полное доменное имя ЭВМ / (папка(и)) / имя ресурса (файла)
http:// home. microsoft. com /
intl/ ru/
www_tour.html
Имя ЭВМ может быть стандартным машинным именем, или это может быть IP-адрес,
тогда как имя каталога и файла являются, несомненно, именами (даже если имя
представлено числом). По умолчанию в качестве имени ресурса указывается файл
index.htm.
- 91 -
Технологии Macromedia Flash
Flash баннеры.
Для создания насыщенных анимацией и графикой баннеров, как нельзя лучше подходит
Flash и тут я думаю все со мной согласятся. Конечно встречаются и флеш-баннеры весом
в 100-200 килобайт, но это уже зависит от недобросовестных разработчиков не
владеющих технологией на должном уровне. Умелое создание баннеров в swf во многом
превосходит gif, как по зрелищности и оригинальности, так и по весу.
Flash сайты.
Мы должны определиться с целями сайта и от них в первую очередь будет зависеть выбор
технологии для создания сайта. Если ваш сайт предназначен для продажи какого то товара
или услуги, особенно при высокой конкуренции, то делать сайт на флеше не является
рентабельным, потому как flash не индексируется в полной мере поисковиками и вывести
этот сайт на первые позиции по определённым ключевым словам будет просто не
возможно или же будет стоить огромных денег, по сравнению с тем же сайтом только на
html.
Есть ещё один вид сайтов, которые предлагают пользователям определённый товар – это
промо-сайты (сайты предназначенные для представления какого то конкретного товара
или услуги). Тут можно использовать как flash так и html, опять таки тут всё зависит от
целей, если мы, допустим, хотим прорекламировать новую марку сотового телефона и
хотим сделать это предельно красиво, то нужно делать на флеш, но в том случае, что на
наш промо-сайт будет идти посетитель, а идти он будет явно не с поисковиков. Поэтому
на промо-сайт посетители обычно привлекаются с сайтов производителей либо же с
помощью рекламы. Данный вид сайтов отличается очень маленькой “жизнью” потому как
чаще всего создаётся для демонстрации новых возможностей определённого товара, а так
как постоянно выпускаются новые модели, то старые промо-сайты перестают быть
актуальными, поэтому сайт должен по максиму заинтересовать посетителя, а сделать это
более эффектно можно с помощью flash.
Следующий вид сайтов – это форумы. Ситуация с форумами очень сильно похожа на
ситуацию с магазинами и если форум не принадлежит компании производящий
определённый продукт (а таких форумов очень мало) или же не создаётся для узкого
круга лиц, а, на против, создаётся с целью привлечения как можно большего количества
людей, то не имеет никакого смысла делать форум на флеш. В эту категорию можно
отнести и блоги.
Галереи, если это галерея какого то отдельного художника и имеет небольшой объём
текстовой информации и направлена на узкий круг посетителей.
Сайт визитка обычно содержит минимальный объём информации, чаще всего это адрес
фирмы, телефоны и общая информация о деятельности компании, поэтому его вполне
можно приукрасить и сделать что нибудь оригинальное во flash.
Онлайн - портфолио, потому как можно достаточно ярко его оформить и сделать его более
динамичным и интересным.
Гостевые книги тоже вполне можно делать с помощью flash.
- 92 -
Мифы о Flash
Flash пожирает трафик.
Тут всё как раз совсем наоборот, эта технология призвана облегчить создаваемые
приложения. Теже самые баннеры сделанные в swf весят в разы меньше чем их собратья в
gif. Грамотно сделанные сайты во флеш имеют оболочку, которая позволяет без
перезагрузки страницы брать нужную информацию извне и предоставлять её
пользователю, при этом сильно экономя трафик.
Проблемы с последующим обновлением сайта.
Безусловно, если сайт сделан одним swf, в котором вся информация находится внутри
одного файла (все тексты, картинки, музыка, видео и т.д.), то обновить его порой не
представляется возможным не имея исходных файлов. Тут опять всё зависит от
разработчика и грамотно сделанный сайт всю информацию берёт из вне и её легко может
поменять любой самостоятельно, в плоть до добавления новых типовых разделов на сайт с
совершенно новым контентом.
Проблемы не установленного FlashPlayer`a у пользователя.
Эта проблема уже давно сошла на нет, сейчас плеер не стоит у очень не существенно
количества пользователей. Это можно наглядно увидеть в статистике от adobe, безусловно
статистика для руНета другая, но она отличается не сильно.
Flash презентации.
Flash как нельзя лучше подходит для создания мультимедийных презентаций, потому как
позволяет добавить в презентацию интерактивности, видео, интуитивно понятную
навигацию, различные еффекты, звук и многое другое, что собственно сильно отличает
динамические flash-презентации от статических презентаций PowerPoint`a.
Flash игры.
Безусловно для навороченных игр Flash пока ещё очень слаб, но для небольших онлайн
игр он вполне сгодится, в том числе и для создания игр под мобильные устройства
Десктопные приложения на Flash.
К сожалению, флеш не может полноценно работать с операционными системами, не
может ничего сохранять, искать и т.д. в общем работать с системой он толком не умеет.
Но уже достаточно давно появились программы (MDM Zinc, Apollo, SWF Studio, SWFKit
и т.д.), которые позволяют дополнить флеш файлы нужными функциями, так что обладая
определённым опытом можно делать неплохие приложения как под Windows так и под
Mac.
В этом разделе я расскажу немного о истории происхождения замечательной технологии
Adobe (Macromedia) Flash.
Всё началось в далёком 1993 году, Джонатан Гай (Jonathan Gay) разработал программное
обеспечение, которое позволяло вводить информацию в компьютер, используя
электронное перо вместо клавиатуры (SmartSketch). Для тех лет это было огромным
достижением, однако программа не получила желаемой популярности и в связи с этим в
- 93 -
1995 году SmartSketch был переделан в программу для анимации. В то время рынок
анимации был мизерным, анимационные ролики могли распространяться только на
видеокассетах или компакт-дисках. В тоже время Джонатан заинтересовался интернетом
и веб-дизайном и сделал ставку на то, что в скором времени интернет станет популярным
и с его помощью люди начнут обмениваться анимацией и графикой.
И так новорождённую программу назвали «FutureSplash Animator» и попытались продать
её очень известной компании Adobe, но сделка так и не состоялась. К FutureSplash был
проявлен интерес только тогда, когда он был использован такими компаниями как
Microsoft и Disney Online. После чего в ноябре 1996 года команда Джонатана Гай`я
присоединилась к компании Macromedia, в результате чего FutureSplash получил новое
название «Macromedia Flash 1.0».
С выпуском 4 версии программы, во Flash появляется более-менее приемлемый
скриптовый язык (ActionScript) и начинают появлятся первые сайты сделанные целиком
во Flash. С появлением 5 и 6 версий ActionScript становится всё мощнее и именно в это
время начинается повсеместное применение flash в веб-дизайне. С появлением в свет 7
версии Macromedia Flash, ActionScript переростает во вторую версию и теперь становится
Объектно-ориентированным. В 2005 году выходит долгожданная 8 версия Flash.
Появляются новые возможности, такие как: создание фильтров (подобных фильтрам
Photoshop), которые можно применять даже программно, что очень важно, появляются
новые возможности работы со шрифтами и многое другое. Тогда же в 2005 компанию
Macromedia покупает Adobe за 3.5 млрд. долларов и с этого момента программа
называется Adobe Flash.
Потом появляется Flash Professional 9 ActionScript 3.0 с принципиально новым AS 3.0.
- 94 -
Adobe Flex
Adobe Flex — технология для создания Rich Internet Applications. Flex — это родственная
Flash технология, основанная на описании интерфейса приложения с помощью диалекта
XML — MXML. Flex приложение может компилироваться на сервере (для этого
потребуется mod_flex.so или mod_flex.dll в зависимости от ОС и вебсервера), а может —
из IDE или непосредственно из командной строки с помощью компилятора mxmlc
(начиная с Flex 2), как и во Flash, результатом является файл swf, исполняемый Flash
Player.
Версия Flex 1.0 была выпущена в марте 2004 года фирмой Macromedia. Как вы знаете,
фирма Macromedia в декабре 2005 года была куплена Adobe. Теперь это Adobe Flex.
Сейчас доступна версия Flex 2.5.4. Предыдущие версии Flex обладали своими
достоинствами и недостатками. Среди недостатков можно отметить следующие моменты.
Версии Flex 1.0 и Flex 1.5 обладали jsp идеологией, то есть все, что создавалось,
компилировалось только на сервере. Соответственно, это был серверный продукт. Он был
рассчитан на Entreprise сектор, а это соответствующая стоимость лицензий, около 15
тысяч долларов. В связи с этим технология не получила широкого распространения.
Вдобавок, непонятным было позиционирование технологии. С одной стороны, flashразработчики не очень жаловали Flex по причине того, что это совершенно другая вещь:
для медиа-дизайнера, или медиа-разработчика первичных вещей не было ничего
привычного. С другой стороны, Java-разработчики тоже не могли сразу перейти на эту
технологию, потому что объектная модель ActionScript 2, которая использовалась во Flex
1.0, была компромиссной и не объектно-ориентированной.
Семейство продуктов Flex состоит из трех основных частей: упомянутый SDK, Flex
Builder, среда разработки на базе eclipse, и Flex Data Services.
Это клиентская часть, это среда разработки, это серверная часть, которая тоже доступна и
интегрирована с SDK. Серверная среда не бесплатная.
Как уже отмечалось во Flex используется полноценная поддержка CSS1 с наследованием,
не объектным, а по цепочке родителей. CSS можно записывать большим количеством
способов. В итоге, CSS файлы берутся и компилируются внутрь SWF. Это не CSS файлы,
которые загружаются налету. Но есть возможность делать Runtime CSS. Flex 2.01
позволяет создавать специальные SWF файлы, которые содержат в себе только CSS,
которые специальными средствами легко и просто подгружаются внутрь приложений,
позволяют налету полностью менять визуальный вид приложений и делать много
полезных вещей.
С помощью CSS мы можем осуществлять скинизацию. Это делается в очень широких
пределах, потому что Framework очень гибкий, расширяемый и настраиваемый. Мы
можем использовать как программную скинизацию и описывать ею все CSS, так и
скинизацию с помощью графических элементов
Основа всех возможностей Flex – это новый Flash Player. В нём реализована совершенно
новая
виртуальная машина AVM2, поддерживающая новую версию языка ActionScript – 3.0, а
также новый реструктурированный и расширенный API. AVM2 несовместима с
- 95 -
виртуальной машиной AVM1, на которой базировались все предыдущие версии Flash
Player. Flash Player 9 реализует обе виртуальные машины, и способен выполнять .swfфайлы любой версии. Однако имеется ограничение на взаимодействие .swf-файлов,
обусловленное несовместимостью виртуальных машин. Например, вы можете загрузить
Flash8-приложение внутрь Flash9-приложения, но эти два приложения будут работать в
разных экземплярах VM. Как следствие, вы не сможете обращаться к данным и методам
дочернего ролика из родительского приложения.
Кроме того, AVM2 оптимизирована по скорости. Заявлено, что скорость работы AVM2 в
десять раз выше скорости AVM1.
MXML — основанный на XML декларативный язык описания интерфейсов,
используемый платформой Adobe Flex, применяемой для создания RIA (Rich Internet
Applications, насыщенных Интернет-приложений). При создании насыщенных интернетприложений MXML используется для описания и настройки свойств визуальных
элементов интерфейса, например кнопок, панелей, таблиц и т.д. (хотя с помощью MXML
можно описывать и невизуальные элементы, например веб-сервисы, бихейвиоры,
переходы и т.д.). Для обработки событий описанных с помощью MXML компонентов
используется язык ActionScript 3. По сути MXML является декларативной надстройкой
над ActionScript, так как при компиляции по MXML-файлам создаются эквивалентные asфайлы, которые в дальнейшем уже переводятся в бинарный код.
ActionScript как язык появился с выходом 5 версии Macromedia Flash, которая стала
первой программируемой на ActionScript средой. Первый релиз языка назывался
ActionScript 1.0. Flash 6 (MX). В 2004 году Macromedia представила новую версию
ActionScript 2.0 вместе с выходом Flash 7 (MX 2004), в которой было введено строгое
определение типов, основанное на классах программирование. То есть появились новые
ключевые слова:
class (класс),
interface (интерфейс),
extends (установка наследования)
модификаторы доступа: private, public;
и прочие.
Также Macromedia была выпущена модификация языка Flash Lite для программирования
под мобильные телефоны.
ActionScript 1.0 является прототипным ООП (prototype-based). То есть он вполне
реализует все три принципа объектно-ориентированного программирования.
ActionScript 2.0 является не более чем надстройкой над ActionScript 1.0, то есть на этапе
компиляции компилятор осуществляет некую проверку и превращает классы, методы
ActionScript 2.0 в прежние прототипы, "функции-классы" с их свойствами-методами и пр.
ActionScript 1.0.
В 2006 году вышел ActionScript 3.0 в среде программирования Adobe Flex, а позже в
Adobe Flash 9.
ActionScript 3.0 представляет, по сравнению с ActionScript 2.0 качественное изменение, он
использует новую виртуальную машину AVM 2.0 и даёт взамен прежнего формального
синтаксиса классов настоящее классовое (class-based) Объектно-ориентированное
- 96 -
программирование. ActionScript 3.0 обеспечивает возрастание производительности, по
сравнению с ActionScript 1.0/2.0, до 700 раз (это лишь обработка инструкций, не
затрагивая графику). ActionScript 3.0 позволяет работать с бинарными данными, с BitMap
(что обеспечивает значительный прирост производительности: до 10000 раз). ActionScript
3.0 по скорости приблизился к таким языкам программирования, как Java и C#.
Насыщенные Интернет-приложения, или Rich Internet Applications (RIA). Идея
насыщенных Интернет-приложений не новая. Существовали различные названия для этой
области Веб-приложений, например Remote Scripting от Microsoft, Rich Client и т.д.
В марте 2002 года Macromedia ввела название Rich Internet Applications. Эта концепция
отражает развитие программного обеспечения, начиная от текстовых интерфейсов на
древних компьютерах, заканчивая переходом на Desktop в виде полноценных приложений
с интегрированным медиа и т.д. При переходе в веб, который изначально задумывался как
документоориентированная среда, в нем были представлены документы. Все приложение
было на сервере. Оно представляло пользователю документы в ответ на его запросы. Для
Веб-приложений виток развития продолжается в том же направлении. Rich Internet
Applications — это полноценные приложения, которые доступны в Internet.
Macromedia перечислила ряд признаков насыщенных Интернет-приложений. Это наличие
производительного Runtime, который позволяет интегрировать в себе коммуникацию,
медиа, язык программирования, объектную модель. Предполагается, что это должна быть
кросс-платформенная технология, потому что Интернет не привязан ни к какой
платформе. Пользователь может быть как Linux'оидом, так и пользователем Macintosh.
Технология Adobe Flex — технология, позволяющая разрабатывать насыщенные
Интернет-приложения. Есть и другие, например, AJAX, WPF, F3, технология от Sun,
которая сейчас тоже развивается, и т.д.
Ценовая политика
Бесплатный инструментарий Adobe Flex SDK предлагается с июня 2006 г. Он содержит
всё необходимое для построения эффективных Flex-программ, включая компилятор
MXML и библиотеки ActionScript 3.0.
Kомпания Adobe открыла исходный код среды Flex к концу 2007 года и начала
распространение этого продукта на условиях Mozilla Public License (MPL). Известно, что в
открытую версию Flex входит программное обеспечение для создания соответствующих
приложений, набор библиотек и компиляторов, средство для разработки, интегрируемое в
среду Eclipse IDE, а также система Flex Data Services, предназначенная для работы с
базами данных.
Достоинства
Интегрированная среда разработки Flex Builder 2, которая обеспечивает более высокую
производительность, создана на свободно распространяемой платформе разработки
Eclipse. Поскольку многие разработчики уже используют Eclipse при программировании
на Java, Flex Builder 2 предоставляет им знакомую среду для создания и Java-приложений,
и полнофункциональных клиентов.
Кроме того, возможна разработка Flex (ActionScript 3) проектов с помощью средств
OpenSource — в частности, FlashDevelop (Windows), axdt, flex2ant (оба последних средства
- 97 -
являются плагинами Eclipse и кроссплатформенны, однако по удобству работы с ними
значительно уступают FlashDevelop).
Flex 2, помимо скорости разработки, предоставляет полные мультимедийные
возможности Flash Platform: включая потоковое видео, звук (в том числе и программный),
бинарные сокеты и большое число прочих новых возможностей ActionScript 3.
Благодаря Flex 2, веб-сервисы могут использоваться для связи с сервером при частом
обращении к данным при небольшой полезной нагрузке. Для более ресурсоемких
приложений Adobe предлагает программное обеспечение Flex Data Services 2 Express,
которое может поддерживать связь между источником данных и уровнем представления.
Ещё одно неоспоримое достоинство технологии Flex, тесно связанное с достоинствами
ActionScript 3 — это возможность OpenSource разработки Flash-проектов без
использования Adobe Flash IDE, с помощью «чистого» программирования. При этом
Flash-разработка становится принципиально доступна в том числе и на платформе
Линукс.
Чем Flex отличается от Flash?
Достоинства Flex тесно связаны с его спецификой, MXML. Без загрузки внешних роликов
(а постоянно пользоваться ими или внедренными в виде поля класса объектами, как ни
крути, не особо приятно) мы не можем создать настолько эффектного интерфейса, как это
позволяет сделать Flash, но для многих задач присутствующего функцоинала как раз
хватает. В случае со строгими интерфейсами бизнес-приложений скорость разработки
просто потрясающая. Также Flex славен своими графиками, компоненты для построения
которых сделаны не только удобными для использования, но и в 99% случаев выглядят
очень приемлемо для использования as is.
Копнув глубже, мы понимаем, что сила Flex-GUI в его фрэймворке (библиотека
компонент), которая очень удачно спроектирована, вобрав в себя весь опыт предыдущих
компонент (v1 components, v2 components, компоненты для Flex 1/1.5). Другая
составляющая - это компилятор mxmlc, который превращает mxml-код в обычный AS3код, который, в свою очередь, компилируется в swf. Таким образом, Flex-GUI
представляет собой связку удачно спроектированного фреймворка, заточенного под mxml,
и компилятора mxmlc.
Приложения Flash и Flex выполняются как в обозревателе (при использовании Flash
Player), так и в качестве отдельного приложения ПК (при использовании среды Adobe
AIR).
Flash является продвинутым инструментом создания интерактивного контента для вебразработчиков, специалистов в области мультимедиа, анимации и видеографики.
Создание приложений с помощью Flash может представлять для разработчиков
определенные трудности. Flex предоставляет разработчикам, владеющим навыками
работы с традиционными технологиями программирования, например Java, PHP, Ajax и
.NET, простую в использовании среду разработки приложений RIA. Более того,
разработчики могут использовать элементы Flash в приложениях Flex. При использовании
пакета компонентов Flex Component Kit для Flash, разработчики Flash могут создавать
пользовательские компоненты Flex.
- 98 -
Механизмы поиска информации в Интернете.
Структура поисковых систем
Поисковые cистемы обычно состоят из трех компонентов:
агент (паук или кроулер), который перемещается по Сети и собирает информацию;
база данных, которая содержит всю информацию, собираемую пауками;
поисковый механизм, который люди используют как интерфейс для взаимодействия с
базой данных.
Cредства поиска типа агентов, пауков, кроулеров и роботов используются для сбора
информации о документах, находящихся в Сети Интернет. Это специальные программы,
которые занимаются поиском страниц в Сети, извлекают гипертекстовые ссылки на этих
страницах и автоматически индексируют информацию, которую они находят для
построения базы данных.
Каждый поисковый механизм имеет собственный набор правил, определяющих, как
cобирать документы. Некоторые следуют за каждой ссылкой на каждой найденной
странице и затем, в свою очередь, исследуют каждую ссылку на каждой из новых страниц,
и так далее. Некоторые игнорируют ссылки, которые ведут к графическим и звуковым
файлам, файлам мультипликации; другие игнорируют cсылки к ресурсам типа баз данных
WAIS; другие проинструктированны, что нужно просматривать прежде всего наиболее
популярные страницы.
Агенты - самые «интеллектуальные» из поисковых средств. Они могут делать больше, чем
просто искать: они могут выполнять даже транзакции от Вашего имени. они могут искать
cайты специфической тематики и возвращать списки cайтов, отсортированных по их
посещаемости. Агенты могут обрабатывать содержание документов, находить и
индексировать другие виды ресурсов, не только страницы. Независимо от информации,
которую агенты индексируют, они передают ее обратно базе данных поискового
механизма. Агенты извлекают и индексируют различные виды информации.
Общий поиск информации в Сети осуществляют программы, известные как пауки. Пауки
сообщают о содержании найденного документа, индексируют его и извлекают итоговую
информацию. Также они просматривают заголовки, некоторые ссылки и посылают
проиндексированную информацию базе данных поискового механизма.
Кроулеры просматривают заголовки и возвращают только первую ссылку.
Роботы могут быть запрограммированы так, чтобы переходить по различным cсылкам
различной глубины вложенности, выполнять индексацию и даже проверять ссылки в
документе. Из-за их природы они могут застревать в циклах, поэтому, проходя по
ссылкам, им нужны значительные ресурсы Сети.
Когда идет обслуживание конкретного запроса, ПС сравнивает ключевые слова,
введенные пользователем, с ключевыми словами, полученными в процессе индексации и
хранящимися в базе данных.
При совпадении этих слов пользователю выдается адрес данного документа.
- 99 -
Чтобы определить порядок, в котором список документов будет показан, база данных
применяет алгоритм ранжирования. В идеальном случае, документы, наиболее
релевантные пользовательскому запросу будут помещены первыми в списке.
Различные поисковые системы используют различные алгоритмы ранжирования, однако,
основные принципы определения релевантности следующие:
1. Количество слов запроса в текстовом содержимом документа.
2. Тэги, в которых эти слова располагаются.
3. Местоположение искомых слов в документе.
4. Удельный вес слов, относительно которых определяется релевантность, в общем
количестве слов документа.
Глубокая паутина
Глубокая паутина (иногда упоминается как невидимая паутина и скрытая паутина) —
часть веб-страниц Всемирной паутины, не индексированная поисковыми системами. В
глубокой паутине находятся веб-страницы, которые никак не связаны с другими —
например, страницы, динамически создаваемые по запросам к базам данных. Поисковые
системы используют роботы, которые не направляют запросы к базам данных (за
исключением случаев, когда запрос помещается в отдельную гиперссылку на странице).
Вот почему огромная часть Всемирной паутины оказывается «на глубине», скрытой от
взоров поисковых систем.
Поисковая оптимизация
Поиско́вая оптимиза́ция (англ. search engine optimization, SEO) — оптимизация HTMLкода, текста, структуры и внешних факторов сайта с целью поднятия его в выдаче
поисковой системы.
Основные направления работы
1) частота ключевых слов; сложные алгоритмы современных поисковиков позволяют
производить семантический анализ текста, чтобы отсеять поисковый спам, когда
ключевое слово встречается слишком часто (более 7-8 процентов от всего содержимого)
на странице;
2) индекс цитирования сайта, или количество ресурсов, ссылающихся на данный сайт;
многими поисковиками не учитываются обратные ссылки (друг на друга), также важно,
чтобы ссылки были с сайтов той же тематики, что и раскручиваемый сайт.
Методы оптимизации можно разделить на три класса:
«Белая» оптимизация – работа над ресурсом без применения официально запрещённых
поисковиками методов раскрутки ресурса, без прямых попыток влияния на поисковые
алгоритмы сайтов, или проще говоря естественным путем. Это включает в себя работу над
самим сайтом, а именно над внутренней навигацией и контентом, и работу с внешней
средой сайта, т.е. продвижением оптимизируемого сайта путем обзоров, регистрации в
социальных закладках, партнерских программ и т.п. с указанием ссылок на сайт.
«Серая» оптимизация – продвижение ресурса с помощью методов так или иначе,
запрещенных поисковыми системами, например, используются линкаторы, взаимный
обмен ссылками, покупаются ссылки с других ресурсов, и т.п. Также к серым методам
- 100 -
относится перенасыщение текста ключевыми словами в ущерб его читабельности,
агрегация стороннего контента.
«Чёрная» оптимизация
Чёрная оптимизация обычно представляется как использование дорвеев — страниц и
ресурсов, созданных (зачастую автоматически) специально для роботов поисковых
систем. В теории человек не должен читать текст, который размещен на дорвее, так как он
представляет собой бессмысленный набор из ключевых слов и популярных запросов.
Также к чёрным методам SEO можно отнести использование так называемого скрытого
текста на страницах сайта. Для пользователей данный текст не виден, однако поисковые
роботы легко его индексируют. Обычно в скрытом тексте содержатся ключевые слова для
придания «веса» оптимизируемой странице.
«Оранжевая» оптимизация – оптимизация, отличная от трех классических методов.
Основной смысл состоит в том, что к сайту прикрепляются некоторые интересные
материалы, не имеющие прямого отношения к тематике сайта, и проводится привлечение
публики с упором на эти материалы. Часто используются методы, такие, как хамбаги и
прочие. Применяется в условиях ограниченности материальных ресурсов. Относительно
трудоемка. Основной недостаток - небольшой процент посетителей, заинтересованных в
основной тематике сайта.
Поисковой спам
Поиско́вый спам (спамдексинг) — сайты и страницы в интернете, созданные с целью
манипуляций результатами поиска в поисковых машинах — в конечном счете, для обмана
пользователя.
Виды поискового спама:
Не имеющие отношения к содержимому страницы, но популярные в поисковых запросах
слова в тегах meta keywords, description.
«Невидимый текст» – текст, невидимый для посетителя страницы, но индексируемый
поисковой машиной. Применяется цвет текста, соответствующий цвету фона, текст
размером в 1 пиксель, блоки текста, со стилем «display:none».
3) Ссылочный спам — ссылки, «накручивающие» link popularity и PageRank сайта.
Поисковые машины борются с этим, создавая фильтры, в которые добавляют сайты,
ссылки с которых не учитываются при ранжировании.
- 101 -
AJAX
AJAX (ˈeɪdʒæks, от англ. Asynchronous Javascript and XML — «асинхронный JavaScript и
XML») — подход к построению интерактивных пользовательских интерфейсов
веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером.
В результате, при обновлении данных веб-страница не перезагружается полностью и вебприложения становятся более быстрыми и удобными.
По-английски AJAX произносится как эй-джэкс, по-русски довольно распространено ая́кс.
AJAX — не самостоятельная технология, а концепция использования нескольких
смежных технологий. AJAX базируется на двух основных принципах:
использование технологии динамического обращения к серверу «на лету», без
перезагрузки всей страницы полностью, например:
с использованием XMLHttpRequest (основной объект);
через динамическое создание дочерних фреймов;
через динамическое создание тега <script>.
использование DHTML для динамического изменения содержания страницы;
В качестве формата передачи данных обычно используются JSON или XML.
Впервые термин AJAX был публично использован 18 февраля 2005 года в статье Джесси
Джеймса Гарретта (Jesse James Garrett) «Новый подход к веб-приложениям». Гарретт
придумал термин, когда ему пришлось как-то назвать новый набор технологий,
предлагаемый им клиенту.
Однако в той или иной форме многие технологии были доступны и использовались
гораздо раньше, например в подходе «Remote Scripting», предложенным
компанией Microsoft в 1998 году, или с использованием HTML элемента IFRAME,
появившегося в Internet Explorer 3 в 1996 году.
AJAX стал особенно популярен после использования
сервисах Gmail, Google Maps и Google Suggest.
его
компанией Google в
Преимущества
Экономия трафика
Использование AJAX позволяет значительно сократить трафик при работе с вебприложением благодаря тому, что часто вместо загрузки всей страницы достаточно
загрузить только изменившуюся часть, часто довольно небольшую.
Уменьшение нагрузки на сервер
AJAX позволяет несколько снизить нагрузку на сервер. К примеру, на странице работы с
почтой, когда вы отмечаете прочитанные письма, серверу достаточно внести изменения в
базу данных и отправить клиентскому скрипту сообщение об успешном выполнении
операции без необходимости повторно создавать страницу и передавать её клиенту.
- 102 -
Ускорение реакции интерфейса
Поскольку нужно загрузить только изменившуюся часть, то пользователь видит результат
своих действий быстрее.
Недостатки
Отсутствие интеграции со стандартными инструментами браузера
Динамически создаваемые страницы не регистрируются браузером в истории посещения
страниц, поэтому не работает кнопка «Назад», предоставляющая пользователям
возможность вернуться к просмотренным ранее страницам, но существуют скрипты,
которые могут решить эту проблему.
Другой недостаток изменения содержимого страницы при постоянном URL заключается в
невозможности сохранения закладки на желаемый материал. Частично решить эти
проблемы
можно
с
помощью
динамического
изменения
идентификатора
фрагмента (части URL после #), что позволяют многие браузеры.
Динамически загружаемое содержимое недоступно поисковикам (если не проверять
запрос, обычный он или XMLHttpRequest)
Поисковые машины не могут выполнять JavaScript, поэтому разработчики должны
позаботиться об альтернативных способах доступа к содержимому сайта.
Старые методы учёта статистики сайтов становятся неактуальными
Многие сервисы статистики ведут учёт просмотров новых страниц сайта. Для сайтов,
страницы которых широко используют AJAX, такая статистика теряет актуальность.
XMLHTTP (XMLHttpRequest,
XHR)
—
набор API,
используемый
в
языках JavaScript, JScript, VBScript и им подобных для пересылки различных данных
(XML, XHTML, JSON и т.д.) по HTTP-протоколу между браузером и веб-сервером.
Позволяет осуществлять HTTP-запросы к удаленному серверу без необходимости
перезагружать страницу.
Методы класса XMLHttpRequest
Метод
Описание
abort()
Отменяет текущий запрос, удаляет все заголовки,
ставит текст ответа сервера в null.
getAllResponseHeaders()
Возвращает полный список HTTP-заголовков в виде
строки. Заголовки разделяются знаками переноса
(CR+LF).
Если флаг ошибки равен true, возвращает пустую
строку.
Если статус 0 или 1, вызывает ошибку
INVALID_STATE_ERR.
getResponseHeader(headerName)
Возвращает
значение
указанного
заголовка.
Если флаг ошибки равен true, возвращает null.
Если заголовок не найден, возвращает null.
Если статус 0 или 1, вызывает ошибку
- 103 -
INVALID_STATE_ERR.
Определяет метод, URL и другие опциональные
параметры
запроса;
open(method, URL, async, userName,
параметр async определяет, происходит ли работа в
password)
асинхронном
режиме.
Последние три параметра необязательны.
send(content)
Отправляет запрос на сервер.
setRequestHeader(label, value)
Добавляет HTTP-заголовок к запросу.
overrideMimeType(mimeType)
Позволяет указать mime-type документа, если сервер
его не передал или передал неправильно.
Внимание: метод отсутствует в Internet Explorer!
Свойства класса XMLHttpRequest
Свойство
Тип
Описание
Обработчик события, которое происходит при каждой
onreadystatechange EventListener смене состояния объекта. Имя должно быть записано в
нижнем регистре.
readyState
unsigned
short
Текущее состояние объекта (0 — не инициализирован, 1
— открыт, 2 — отправка данных, 3 — получение данных
и 4 — данные загружены)
responseText
DOMString
Текст
ответа
на
запрос.
Если статус не 3 или 4, возвращает пустую строку.
responseXML
Document
Текст ответа на запрос в виде XML, который затем
может
быть
обработан
посредством DOM.
Если статус не 4, возвращает null.
status
unsigned
short
HTTP-статус в виде числа (404 — «Not Found», 200 —
«OK» и т. д.)
statusText
DOMString
Статус в виде строки («Not Found», «OK» и т. д.).
Если статус не распознан, браузер пользователя должен
вызвать ошибку INVALID_STATE_ERR.
Ошибки, вызываемые классом XMLHttpRequest
Название
Код Описание
SECURITY_ERR 18
Вызывается при попытке совершить запрос, запрещённый
настройками безопасности в браузере пользователя.
NETWORK_ERR 101 Вызывается при ошибке сети (во время синхронного запроса).
ABORT_ERR
102
Вызывается при прерывании пользователем запроса (во время
синхронного запроса).
- 104 -
Создание экземпляра объекта XMLHttpRequest.
function createRequestObject()
{
if (XMLHttpRequest == undefined) {
XMLHttpRequest = function() {
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP"); }
catch(e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); }
catch(e) {}
throw new Error("This browser does not support XMLHttpRequest.");
};
}
return null;
}
Установка обработчика событий, открытие соединения и отправка запросов
Эти вызовы выглядят так:
req.open(<"GET"|"POST"|...>, <url>, <asyncFlag>);
req.onreadystatechange = processReqChange;
После определения всех параметров запроса его остается только отправить. Делается это
функцией send(). Если необходимо передать на сервер POST-данные, их надо подставить в
качестве параметра для этой функции. POST-данные должны быть свернуты в URLescaped строку (кодировка UTF-8) и добавлен заголовок req.setRequestHeader ("ContentType", "application/x-www-form-urlencoded");. Другими словами эта строка будет иметь
вид, который мы привыкли видеть в командной строке браузера, при передаче данных
методом GET. При отправке GET-запроса для версии без ActiveX необходимо указать
параметр null, в остальных случаях можно не указывать никаких параметров. Не будет
ошибкой, если для GET всегда будет указан параметр null:
req.send(null);
После этого начинает работать вышеуказанный обработчик событий. Он — фактически
основная часть программы. В обработчике обычно происходит перехват всех возможных
- 105 -
кодов состояния запроса и вызов соответствующих действий, а также перехват
возможных ошибок.
function processReqChange()
{
try { // Важно!
// только при состоянии "complete"
if (req.readyState == 4) {
// для статуса "OK"
if (req.status == 200) {
// обработка ответа
} else {
alert("Не удалось получить данные:\n" +
req.statusText);
}
}
}
catch( e ) {
// alert('Caught Exception: ' + e.description);
}
}
- 106 -
Одноранговая сеть P2P
Однора́нговые, децентрализо́ванные или пи́ринговые (от англ. peer-to-peer, P2P — точкаточка) сети — это компьютерные сети, основанные на равноправии участников. В таких
сетях отсутствуют выделенные серверы, а каждый узел (peer) является как клиентом, так и
сервером. В отличие от архитектуры клиент-сервера, такая организация позволяет
сохранять работоспособность сети при любом количестве и любом сочетании доступных
узлов. Так сказать «С глазу на глаз».
Впервые фраза «peer-to-peer» была использована в 1984 году Парбауэллом
Йохнухуйтсманом (Parbawell Yohnuhuitsman) при разработке архитектуры Advanced Peer
to Peer Networking фирмы IBM.
Устройство одноранговой сети
Например, в сети есть 12 машин, при этом любая может связаться с любой. В качестве
клиента (потребителя ресурсов) каждая из этих машин может посылать запросы на
предоставление каких-либо ресурсов другим машинам в пределах этой сети и получать
их. Как сервер, каждая машина должна обрабатывать запросы от других машин в сети,
отсылать то, что было запрошено, а также выполнять некоторые вспомогательные и
административные функции.
Любой член данной сети не гарантирует никому своего присутствия на постоянной
основе. Он может появляться и исчезать в любой момент времени. Но при достижении
определённого критического размера сети наступает такой момент, что в сети
одновременно существует множество серверов с одинаковыми функциями.
Частично децентрализованные (гибридные) сети
Помимо чистых P2P-сетей, существуют так называемые гибридные сети, в которых
существуют сервера, используемые для координации работы, поиска или предоставления
информации о существующих машинах сети и их статусе (on-line, off-line и т. д.).
Гибридные сети сочетают скорость централизованных сетей и надёжность
децентрализованных благодаря гибридным схемам с независимыми индексационными
серверами, синхронизирующими информацию между собой. При выходе из строя одного
или нескольких серверов, сеть продолжает функционировать. К частично
децентрализованным файлообменным сетям относятся например EDonkey, BitTorrent.
Пиринговая файлообменная сеть
Одна из областей применения технологии одноранговых сетей — это обмен файлами.
Пользователи файлообменной сети выкладывают какие-либо файлы в т. н.
«расшаренную» (англ. share — делиться) директорию, содержимое которой доступно для
скачивания другим пользователям. Какой-нибудь другой пользователь сети посылает
запрос на поиск какого-либо файла. Программа ищет у клиентов сети файлы,
соответствующие запросу, и показывает результат. После этого пользователь может
скачать файлы у найденных источников. В современных файлообменных сетях
информация загружается сразу с нескольких источников. Ее целостность проверяется по
контрольным суммам.
Обычно в таких сетях обмениваются фильмами и музыкой, что является извечной
головной болью видеоиздательских и звукозаписывающих компаний, которым такое
- 107 -
положение дел очень не по душе. Проблем им добавляет тот факт, что пресечь
распространение файла в децентрализованной пиринговой сети технически
невозможно — для этого потребуется физически отключить от сети все машины, на
которых лежит этот файл, а таких машин (см. выше) может быть очень и очень много — в
зависимости от популярности файла их число может достигать сотен тысяч. В последнее
время видеоиздатели и звукозаписывающие компании начали подавать в суд на
отдельных пользователей таких сетей, обвиняя их в незаконном распространении музыки
и видео.
Такие организации, как RIAA, дискредитируют пиринговые сети, публикуя в них
фальшивые файлы (содержание которых не соответствует названию, часто носит
порнографический характер). Это привело к потере популярности сети KaZaA в пользу
eDonkey, имеющей более совершенную архитектуру.
Несмотря на то, что в феврале 2006 прекратил работу самый популярный сервер сети
eD2k — Razorback, и была прекращена разработка коммерческого клиента EDonkey2000,
сама сеть ED2K продолжает функционировать, т. к. не завязана на конкретные сервера и
существует большое количество свободно распространяемых клиентских программ типа
eMule и mlDonkey.
Пиринговые сети распределенных вычислений
Технология пиринговых сетей (не подвергающихся квазисинхронному исчислению)
применяется также для распределённых вычислений. Они позволяют в сравнительно
очень короткие сроки выполнять поистине огромный объём вычислений, который даже на
суперкомпьютерах потребовал бы, в зависимости от сложности задачи, многих лет и даже
столетий работы. Такая производительность достигается благодаря тому, что некоторая
глобальная задача разбивается на большое количество блоков, которые одновременно
выполняются сотнями тысяч компьютеров, принимающими участие в проекте.
- 108 -
Индустрия развлечений против файлообменных сетей
Пародийная реклама Американской ассоциации звукозаписывающих компаний
голливудские студии уже много лет ведут борьбу против свободного обмена файлами.
Если судить по количеству возбужденных дел, они ее выигрывают. Рост же популярности
файлообменников говорит о том, что битва будет проиграна.
Знаете, кто враг № 1 индустрии развлечений? Правильно, пираты. Но не те мрачные
персонажи за лотками, продающие болванки с четырьмя, а то и с восемью фильмами на
одной. Главные враги развлекательной индустрии — мы с вами. Те, кто смотрят кино,
слушают музыку, играют в компьютерные игры.
То, что мы скачиваем, — это еще полбеды. Самое ужасное, что мы этим делимся и
обмениваемся. В принципе в этом нет ничего нового. Помните, как в начале 1990-х дети
менялись картриджами для «денди»? И переписывали друг другу аудиокассеты? Просто
сегодня все происходит в невиданных доселе планетарных масштабах. Надо заметить,
впрочем, что индустрия развлечений впадает в истерику после каждого технологического
витка: те же аудио- и видеомагнитофоны с функцией записи в 1980-х совершенно
безуспешно пытались запретить, как и сегодня пытаются запретить файлообмен. Тот
ужас, который испытывают голливудские студии перед интернет-пиратством, не идет ни в
какое сравнение с опасениями конца XX века.
Все началось с Napster. Эта небольшая программка стала первой популярной
файлообменной системой. И внезапно у людей появился доступ ко всей музыке в мире —
от популярных в то время Бритни Спирс и Рики Мартина до полузабытых записей 1970-х
годов и народных песен. Следует уточнить — доступ ко всему, что уже выложено кем-то
для обмена. В любом случае это была революция. Несмотря на то что ребят, делавших
Napster, в конце концов засудили по самое не балуйся за предоставление доступа к
защищенному копирайтом контенту (в США для тюрьмы и ссылки достаточно) и
вынудили прикрыть проект (перейдя несколько раз из рук в руки, Napster теперь
предлагает тот же файлообмен, но за деньги и с выплатой отчислений студиям), сама идея
файлообменных сетей взбудоражила массы интернет-пользователей. Пусть в США были
приняты забавные законы, ограничивающие свободу распространения информации в
Сети, а компании-разработчики этих проектов закрывались, но на их место приходили
новые энтузиасты, а сами файлообменные сети, оставшись без внешней поддержки,
продолжали жить своей собственной жизнью. Вслед за Napster пришла WinMX, а потом
Gnutella, которую закрыть оказалось уже невозможно, потому что в ее основу был
положен принцип децентрализации.
Самой опасной с точки зрения нарушения копирайта технологией файлового обмена
можно считать протокол BitTorrent. Правообладатели исходят слюной, даже
правительство США посылает гневные запросы в Швецию, где разместился самый
большой и «наглый» торрент-трекер в мире Pirate Bay. Что мешает шведам просто взять и
закрыть этот «пиратский сайт»? Мешает, как ни странно, именно закон. Все дело в
архитектуре системы. Файлы, которые вы качаете по торрент-протоколу из Интернета, не
лежат на каком-то конкретном сервере, который может быть легко закрыт по первому
письму от правообладателя. Файлы располагаются на компьютерах других пользователей.
На сайте-трекере в торрент-файлах хранится информация о местоположении этих файлов.
По сути, на трекере нет никакой защищенной копирайтом информации, есть только
ссылка на место хранения этой информации, а по закону большинства стран (США в
число этих стран не входят) за одну только ссылку никого засудить нельзя.
- 109 -
Поскольку прикрыть рассадники пиратства оказалось невозможно, кинокомпании решили
действовать на средневековый манер. Взять парочку-другую пользователей-нарушителей
и показательно отрубить им головы, выставив их на обозрение всей деревни, то есть
засудить на астрономические суммы и распиарить в СМИ. В результате под карающий
меч блюстителей интеллектуальной собственности попали совсем уж нелепые категории
граждан вроде бедных студентов, матерей-одиночек и 12-летних школьниц.
Неудивительно, что подобные прецеденты не добавили симпатий сторонникам копирайта,
но лишь обозлили общественность. Очевидно, что подобные меры неэффективны.
Торрентам все возрасты покорны. Кроме того, кроме публичных трекеров, есть еще и
приватные, куда вы не попадете без приглашения его членов. Как однажды заметил
крупнейший исследователь Интернета профессор Мануэль Кастельс, «треть населения
страны не может быть преступниками». Впрочем, уже сейчас есть разработки анонимных
файлообменных сетей вроде I2P или Mute, пользователям которых вообще ничего не
угрожает. Что будут делать правообладатели после того, как эти файлообменники наберут
популярность, совершенно непонятно. Мир меняется, и вместе с ним меняются
привычные модели бизнеса, так что рано или поздно издателям придется или измениться,
или отойти в сторону и остаться в истории.
- 110 -
Download