Все началось до банального просто - любимый директор сказал "Хочу!". Аргументация была следующей:
* Переводится много бумаги для печати и отправки по факсу (клиентов много, потому отправленные счета сразу выбрасываются: найти нужный документ даже через день - нереально)
* Электронная почта "есть в наши дни у всех и каждого" (то, что сам директор ею не пользуется - другой вопрос :-) )
* Тратится меньше времени персонала (не нужно сидеть и ждать перед факсом, стартовать, "прошло"/"не прошло", ...)
* Легче вести учет когда и что было отправлено.
Сначала ставился вопрос отправки документов вообще - что может быть проще? Сохранить таблицу как файл MS-Excel, вызвать внешнюю программу отправки с параметрами - и все. Потом возникли сомнения:
* А вот клиенты отредактируют файл - и будут доказывать что мы такой и отправили,
* В файле передается рисунок печати - они его смогут использовать с какой-нибудь темной целью.
Сразу же было предложено отправить как рисунок, благо я знал, что это можно сделать, но как - еще не представлял. Согласие получено, и вот начались поиски соответствующих программ...
Подбор нужного инструментария
Некоторое время я стараюсь использовать бесплатные программы, а не ломать те, за которые нужно платить деньги. Так что одним из условий (не главным, но в результате выполненным почти на 100%) была бесплатность инструментария.
Понятно, что для получения рисунка на выходе нужен виртуальный принтер, на который можно печатать любой документ. Выходным форматом был выбран tiff как достаточно распространенный, предполагая что его можно будет конвертировать в любой формат, если возникнет необходимость. Были испробованы многие принтеры, встреченные в просторах Internet`а, как бесплатные, так и нет. Большинство из них умеют печатать кроме искомого tiff еще и pdf документы, но не один не удовлетворял условиям передачи в них внешних параметров (важно было указать место сохранения и возможно имя файла для уменьшения коллизий, поскольку работа происходит на сервере терминалов). В конечном итоге выбор пал на AFPL Ghostscript 8.14 for Win32 и драйвер переадресации порта принтера RedMon.
Ghost Script умеет конвертировать данные из ps, eps, pdf в разные форматы (те же ps, eps, pdf, языки принтеров вроде PCL6 от HP, и рисунки). Получать данные он может как из файла, так и из входящего потока (stdin для посвященных). RedMon умеет данные, полученные от драйвера принтера, передавать как входной поток выбранной программе. Кроме того устанавливает несколько системных переменных, одну из которых (%REDMON_USER% - имя пользователя, печатающего документ) мы будем использовать.
Итак - используемый режим связки: установка PS принтера в системе, указание ему виртуального порта RedMon, пересылка исходящего PS потока от принтера на Ghost Script, формирование tif по указанным настройкам.
Настройки для режима работы Ghost Script хранятся в файле одном для всех, потому в схему добавим еще одно звено: RedMon передает данные не Ghost Script, а скрипту WSH, а уже он откорректировав настройки под пользователя, передает дальше поток для Ghost Script. Потому еще одна программа, которая нам нужна: Windows Script 5.6 for Windows. Нужна именно версия 5.6, поскольку во встроенной в Windows 2000 версии 5.1 отсутствует необходимый метод Exec().
Еще возможно нам понадобится компонент для вывода рисунков с прозрачным фоном. Пока приходится использовать Active_BMP, упоминаемый на безвременно почившем hare.ru. Этот компонент умеет отображать прозрачными только 2-х цветные bmp (по крайней мере только с ними у меня получилось добиться прозрачности), но за неимением лучшего... :-) (Если кто знает бесплатный ActiveX компонент для отображения gif с прозрачным слоем - скажите в форум или мыло)
Собственно для отправки почты из командной строки я уже полгода пользуюсь Postie, потому искать ничего нового не пришлось.
Приступим (установка и регистрация программ)
Установка WSH проблем не вызывает (конечно, если вы не попытаетесь установить версию для 9X/NT4 на 2000/XP, как я это сделал, причем осознал это только взявшись за статью - уже месяц сервер живет в этом режиме :-) ): запуск scripten.exe (scr56en.exe), ответы на все вопросы, перезагрузка.
Установка Ghost Script не требует даже перезагрузки. Единственный момент - от пытается по умолчанию установится в каталог %SystemDrive%\gs - я его устанавливал в %SystemDrive%\Tools\gs - так мне удобнее. (ниже в скобках я буду писать свои настройки, с которыми у меня работает живая система).
Для установки RedMon нужно его распаковать в некий каталог (%SystemDrive%\Tools\RedMon) и запустить setup.exe из него. В файлах readme.txt и redmon.hlp находится подробная информация по установке и стандартной настройке redmon.
Регистрация Active_BMP осуществляется распаковкой файлов в каталог (%SystemDrive%\Tools\OLE\ActiveBMP) и запуском из этого каталога "regsvr32 Bmp_1c.ocx".
В дальнейшем каталоги с RedMon и Active_BMP нам не понадобятся, так что про них смело можно забыть (но не удалять совсем с диска :-) ).
Postie устанавливается простым извлечение его в нужный каталог (%SystemDrive%\Tools\Postie).
Теперь нам необходимо настроить принтер. Для этого из папки принтеры выбираем "Добавить". Тип принтера - локальный, отказываемся от автоматического поиска и добавляем порт: тип порта: Redirect Port, имя: RPT1. На следующем шаге выбираем модель PS-принтера (в RedMon рекомендуется Apple LaserWriter II NT или Apple Color LaserWriter 12/600 если вы хотите цветное изображение). Я использовал Apple LaserWriter II NT, т.к. мне нужно было черно-белое изображение. Сразу после этого я переименовал принтер в более соответствующее его функциям название: "Send EMail". Теперь нам необходимо настроить порт. Для этого открываем настройки принтера, ищем страницу "Порты" и жмем кнопку "Конфигурировать порт".
Дальнейшие настройки отличаются от стандартных, описанных в redmon.hlp:
* "Redirect this port to the program:"="cscript.exe" (без кавычек, естественно),
* "Arguments for this programs are:"="Наш\Скрипт\С\Полным\Путем.js" (%SystemDrive%\Tools\gs\PrnUser.js) (в кавычках, если путь содержит пробелы),
* "Output:"="Program handles output"
* "Run:"="Hidden"
* "Run as user" снята (у меня вызывало ошибку, если установлено)
* "Shut down delay:"="300"
Кнопка "Log file" нужна во время отладки всей системы отправки почты, хотя можно оставить запись лога и в рабочем режиме - все равно он перезаписывается, а не накапливается.
Соглашения о настройках
Скрипт, который мы указали в настройках порта, принимает данные с принтера и согласно настройкам, сохраненным из внешней программы (1С или другой), отправляет его по почте как рисунок (в скрипте предусмотрены проверки на корректность значений). Поскольку единственное, что мы можем получить из печатного задания - это имя пользователя (%REDMON_USER%), то с каждым пользователем мы будем работать в его каталоге, при этом одновременная печать 2-х заданий от одного пользователя невозможна. (Если вам удастся передать в скрипт другую информацию из 1С, например: уникальный идентификатор задания или имя файла - сообщите мне). У меня используется самописный компонент SysTools для получения профиля пользователя по его имени. Поскольку он еще только в альфа-версии выкладывать не буду, если кому нужен - вышлю по почте. Итак, предположим, у нас есть каталог, в котором хранятся данные пользователей (%MyProfiles%\User1, %MyProfiles%\User2, ...). К личном каталоге пользователя мы будем создавать подкаталог SendMail для отправки почты.
Временные файлы для работы мы будем хранить во временном каталоге (переменная %TEMP% для системы, поскольку запускаться скрипт будет от имени Local service).
Все остальные настройки и пути к файлам заданы в переменных вначале скрипта - их можно (и нужно) изменить для себя.
Файл, в котором 1С сохраняет настройки называется %UserProfile%\SendMail\mail.ini и имеет следующую структуру: каждая строка - поле=значение, кроме поля BODY, которое обязательно идет последним и может быть растянуто на несколько строк.
Пишем программу
В этом разделе будут показаны и пояснены тексты нескольких модулей, входящих в демонстрационную конфигурацию. Скрипт на языке JavaScript здесь описан не будет, поскольку несоответствует тематике раздела. Надеюсь - комментариев внутри скрипта будет достаточно для пожелавших разобраться в его работе.
Поскольку в 1С не предусмотрена модульная организация программ, то сложные вещи я обычно строю по такой схеме: законченная функциональность - во внешней обработке, параметры в которую передаются через СписокЗначений, и вспомагательная процедура/функция в глобальном модуле, которая этот список заполняет из параметров. Так было сделано и здесь.
Функция запроса параметров отправки почты (кому, от кого, тема и пр.) в глобальном модуле выглядит так:
[pagebreak]
В этой функции переданные параметры записываются в список значений, который передается внешней обработке ПараметрыОтправкиПочты.ert в подкаталоге ExtForms каталога базы данных. Запрос параметров имеет вид:
Возвращенные значения записываются в файл, параметры которого (путь, имя, и т.п.) заданы в конце глобального модуля.
В самой обработке ничего интересного нет: чтение параметров из списка, отображение и проверка параметров при нажатии кнопки Отправить. Если не заданы необходимые параметры (ОтКого, Кому) или адреса E-Mail указаны не правильно - будет выдано сообщение и форма не закроется.
Рассмотрим параметры вызова даной функции:
* Заголовок - заголовок формы, на рисунке - синяя надпись "Тестовый документ №3 от 30.04.04";
* Кому, ОтКого, Копия - E-mail или список E-Mail`ов (через ",");
* Тема, Сообщение - соответствующие параметры письма;
* Запретить - какие поля запрещены для редактирования (на рисунке - поле Тема);
* БезФормы - если 1: форма не отображается и при правильных параметрах письмо отправится автоматически.
Следующая функция вызывает эту и если все прошло успешно - вызывает внешнюю обработку для небольшой предподготовки таблицы при печати и отправки ее:
Здесь уже большая функциональность перенесена на обработку. Она (обработка) вообще не открывается, только выполняет некоторые действия. Рассмортим параметры:
* Таб - Значение типа "Таблица", которую и будем печатать;
* Заголовок, Кому, ОтКого, Копия, Тема, Сообщение, Запретить, БезФормы - просто передаются в функцию глПараметрыОтправкиПочты и подробно рассмотрены в ней;
* Масштаб - масштаб печати таблицы. Если не задан - автомасштаб по ширине.
В обработке всего 2 процедуры: ПроверитьПараметр для проверки корректности переданных значений и ПриОткрытии, в которой подготавливается и печатается таблица. Выглядит весь модуль обработки так:
Код: (1c)
Вот практически и все, что касается программы в 1С. Некоторые сервисные функции, которые не были описаны здесь, можно посмотреть в примере конфигурации. Таким образом ничего сложного здесь нет. Больше сложностей вызывает настройка системы для правильной работы. Выглядит отправленный документ приблизительно так:
Замечания в процессе эксплуатации
Сразу скажу - в боевом режиме система работает недолго (с 15.04.2004), но даже за это время были замечены некоторые "особенности" работы:
* Формат tiff оказался не таким уж стандартным. Потому пришлось его заменить на png. Сделать это нужно в двух местах: в суффиксе исходящего файла в скрипте (чтобы Postie правильно поставил его Content-Type:) и в настройках GS (параметр -sDEVICE=pngmono собственно и задает выходной формат файла). Можно заменить и на еще более стандартный jpeg, но при этом сильно вырастет размер файла. К сожалению gif уже не поддерживается в текущей версии GS (как я понял из документации - из-за возможных проблем с лицензированием этого формата). Можно добится поддержки gif, выдрав ее из исходников предыдущих версий и перекомпилировав текущую, но я пока этого не делал. Возникла мысль передавать в настроечном файле (%UserProfile%\SendMail\mail.ini) параметры, как отправлять изображения (jpeg, tif, png; color/mono; ...) и в скрипте динамически менять.
* PostScript шрифты, идущие в поставке GS, не так хорошо "вылизаны", как TrueType. Потому русские буквы выглядят жирнее англиских. Пока жалоб на это не было :-)
* В новой версии Postie у меня почему-то не работает ключ -bcc (ошибки не выдает, но и не отправляет по указанным адресам). Так и не разобрался - пришлось откатится на старую версию (POSTIE Version 4)
* Хотя ломать ничего и не пришлось, но все-таки мы нарушаем лицензию Postie, который "free for personal use". Может кто знает другую программу отправки почты из коммандной строки?
Благодарности
Моему любимому директору - за неуемный ум и новые интересные задания.
Вадиму Ханасюку - за неопубликованную здесь, но полезную компоненту SysInfo (получение каталога профиля пользователя по имени) и помощь в поиске нужного софта.
Всем сотрудникам, которые не мешали работать.
Как-то мне пришлось писать скрипт, который сидит в кроне и запускается в какое-то определённое время, для чистки логов на сервере. Задача стояла так, что в момент запуска скрипта мне нужно было удалять какие-то логи, например, двухмесячной давности из одного каталога и годовой давности из другого каталога. И тут я столкнулся с тем, что каждый раз перед запуском в скрипт приходилось вписывать дату старости логов, исходя из сегодняшней даты. Немного порывшись в мануале, я нашел решение.
Для этого я использовал две функции языка:
и
Допустим, нам надо получить дату, меньшую, чем дата запуска, на два месяца. Пишем:
На год назад:
Также можно получить и дату вперёд:
Также можно задавать промежуток не только по дням, но и по часам, минутам и секундам:
Ещё мне как-то понадобилось определять разницу между двумя датами. И в итоге у меня вышло вот что:
Можно сказать, что современная корпорация буквально "пропитана" данными. Они повсюду и, более того, очень часто одни и те же данные могут находиться в нескольких местах. Корпорация должна иметь возможность идентифицировать источник, происхождение, семантику и пути доступа к данным. Метаданные или, как их обычно называют, "данные о данных", являются ключом для получения этой информации. Но, как это ни удивительно, у большинства корпораций нет отчетливой стратегии относительно метаданных. Различные подразделения организации используют разные наборы инструментов для поддержки своих данных.
Каждому такому набору соответствуют определенные метаданные. Поэтому картина, типичная для многих корпораций, - это так называемые "острова метаданных", т.е. некоторые объемы информации, которые невозможно связать друг с другом. Для решения этой проблемы некоторые организации начинают крупные проекты по интеграции метаданных, тратя на это значительные средства и время. Но, к сожалению, в большинстве проектов отсутствует структурный подход, поэтому временные и финансовые затраты не окупаются.
В предлагаемой статье обсуждаются подходы к управлению метаданными, в том числе то, какие метаданные необходимо собирать, как их можно моделировать, как создать требуемое архитектурное решение и как обеспечить простоту поддержки метаданных в долгосрочной перспективе. Большинство этих подходов уже существуют в той или иной форме в различных организациях. В данной статье сделана попытка собрать и обобщить имеющийся опыт.
Классификация метаданных
На самом высоком уровне метаданные могут быть разделены на две категории:
Элементы общих метаданных должны иметь совместные (непротиворечивые) определения и семантику в масштабах всей корпорации. Например, определение понятия "клиент" должно быть единым для всей компании.
Метаданные могут быть классифицированы и по другим параметрам:
Метаданные бизнеса включают определения объектов, относящихся к корпоративным пользователям, логическим картам данных и словарям Хранилищ данных. Технические метаданные включают данные о физических объектах: названия таблиц и столбцов, ограничения и правила физического преобразования между различными зонами. В метаданных процессов отражается статистическая информация о различных процессах: статистика загруженности, информация о календарном планировании и обработка исключений.
Создание решения для управления метаданными
Для создания успешного решения по управлению корпоративными метаданными автор рекомендует следовать определенной последовательности шагов:
1. собрать все требования, предъявляемые к метаданным;
2. выбрать соответствующую модель метаданных;
3. определить общие подходы к архитектуре;
4. внедрить выбранное решение и осуществлять его поддержку.
Сбор требований, предъявляемых к метаданным
Определение требований, предъявляемых к метаданным, может оказаться непростой задачей. Ключевые стороны, которым могут быть нужны метаданные, разнообразны и пространственно разобщены. Это могут быть как конечные пользователи или аналитики, так и приложения или наборы инструментов. Процесс сбора стандартных требований не должен слишком расплываться. Автор предлагает следующий подход, учитывающий специфическую природу метаданных:
* определение ключевых сторон для каждого элемента метаданных;
* отнесение каждого элемента метаданных к определенной категории: метаданным бизнеса, техническим или метаданным процессов;
* отнесение каждого элемента метаданных к категории общих или уникальных на основе их использования в тех или иных процессах.
Следующий шаг - идентификация источника элемента метаданных. Обычно они называются "официальными метаданными" или "метаданными записи"1. Метаданные записи указывают на официальную версию определенного элемента для какого-либо события, в котором может быть несколько источников одних и тех же данных. Для того чтобы назвать определенный элемент метаданных официальным, важно понимать различные процессы, которые могут привести к созданию этого элемента. Эта информация помогает определить официальный источник метаданных. Например, компания розничной торговли создает корпоративное Хранилище данных, при этом элементы, содержащие информацию о клиентах, появляются в нескольких местах, таких как Хранилище данных о потребителях, система управления отношениями с клиентами (Customer Relationship Management, сокр. CRM) и система сбыта. При этом важно проводить анализ надежности и полноты каждого источника и оценивать, какие именно определения могут использоваться в качестве официальной версии. В данном случае уже может существовать Хранилище данных о потребителях, определяющее соответствующее измерение, поэтому можно будет считать словарь данных этого Хранилища официальными метаданными записей. После того как этот процесс будет закончен для всех элементов метаданных, можно будет сказать, что организация требований к метаданным завершена.
Выбор метамодели
Следующий шаг после формализации требований к метаданным - создание модели. Моделирование метаданных важно, поскольку оно может стать элементом, который используется во всей корпорации. Существует несколько способов выбора модели метаданных:
* создание специальной модели данных для работы с метаданными;
* использование имеющихся стандартных моделей;
* оснащение доступного репозитория метаданных инструментами, позволяющими использовать его как источник интеграции.
Для создания специальной модели метаданных важно иметь корректные определения элементов, их атрибутов и связей с другими элементами. Такая модель может быть объектно-ориентированной или моделью типа объект-отношение. Что касается стандартных моделей, то тут существует два варианта: модель открытой информации (Open Information Model, сокр. OIM) и общая метамодель Хранилища данных (Common Warehouse Meta-Model, сокр. CWM). CWM описывает обмен метаданными между Хранилищами данных, средствами Business Intelligence и управления знаниями и портальными технологиями. Согласно компании Meta Data Coalition, OIM - это набор спецификаций метаданных для облегчения их совместного и многократного использования в области разработки приложений и Хранилищ данных. OIM описывается с помощью универсального языка моделирования (Unified Modeling Language, сокр. UML) и организуется по предметным областям, которые могут быть легко использованы и при необходимости расширены. Эта модель данных основана на отраслевых стандартах, таких как UML, XML и SQL.
Выбор подходящей метамодели является непростой задачей. Хотя специальные модели бывают гораздо более гибкими, создание надежной модели на корпоративном уровне и ее долгосрочная поддержка могут оказаться довольно обременительными. Для решения такой задачи нужен хорошо продуманный план. С другой стороны, стандартные модели довольно широкие: они охватывают большинство требований, предъявляемых на корпоративном уровне. Но настройка таких моделей под специфические нужды корпорации может оказаться проблематичной. Для тех корпораций, где существуют наборы инструментов и связанные с ними метаданные, хорошим решением будет использование метамоделей от любого поставщика. При этом, безусловно, понадобятся существенные интеграционные усилия. С другой стороны, если корпорация только начинает работать с метаданными и у нее нет несовместимых наборов инструментов, то хорошим решением может быть создание собственной специальной метамодели.
После завершения моделирования метаданных важно определить репозиторий для хранения данных. Это может быть реляционное или объектно-ориентированное Хранилище.
[pagebreak]
Определение архитектуры высокого уровня
Для внедрения решений по работе с метаданными существует целый ряд архитектурных возможностей. Одно из решений - централизованный репозиторий, где хранятся все метаданные.
Основные элементы метаданных, которые будут храниться в таком центральном репозитории, - это метаданные приложений, систем управления базами данных, бизнеса и метаданные, связанные с различными процессами. Создание и модификация элементов метаданных должны осуществляться с помощью общего интерфейса. Для такого решения можно разработать специальную метамодель или использовать одну из стандартных. Данная архитектура имеет несколько преимуществ:
* сравнительно простая поддержка метаданных;
* упрощенные процедуры взаимодействия между компонентами;
* простые процедуры подготовки отчетности.
Некоторые корпорации пытаются создавать очень небольшие решения для работы с метаданными. Это означает, что каждое подразделение организации конструирует свое собственное решение.
Для облегчения обмена метаданными в качестве основы для их передачи используется XML. Каждое приложение, система управления базами данных или инструмент вступает в контакт с репозиторием с помощью XML. Парсер репозитория преобразует формат XML в формат метамодели и обновляет содержимое репозитория.
Наконец, третье архитектурное решение известно под названием распределенной архитектуры. Это тот случай, когда корпорация уже потратила значительное количество ресурсов на создание локального решения для работы с метаданными, а интеграция в масштабах всей корпорации оказывается слишком дорогостоящей. В результате локальное решение продолжает существовать, а в тех случаях, когда это оправдано и выгодно, происходит совместное пользование метаданными из нескольких источников.
Внедрение и поддержка решения для работы с метаданными
После завершения разработки архитектуры и выбора метамоделей можно приступать к внедрению решения. При этом надо иметь в виду следующее:
1. природу репозитория метаданных (реляционная база данных, система файлов, объектно-ориентированная база данных или репозиторий XML);
2. вопросы безопасности репозитория метаданных (кто управляет репозиторием; кто имеет право читать информацию репозитория или обновлять ее);
3. механизмы создания, чтения и добавления компонентов метаданных;
4. инфраструктуру отчетности для метаданных.
После разработки плана и обеспечения соответствующих инструментальных средств можно приступать к внедрению решения для работы с метаданными.
Но собственно внедрение еще не обеспечивает решения всех проблем. Важно обеспечить достаточно продолжительное функционирование созданной системы и ее соответствующее обслуживание. Одно из основных требований при этом - правильное распределение ролей и ответственности в корпорации.
После распределения ролей и ответственности необходимо создать процесс, определяющий жизненный цикл метаданных. Этот цикл задает следующие параметры: кто создает метаданные, кто использует их компоненты и кто отвечает за поддержку этих компонентов. Один из главных критериев долгосрочного успеха решения для работы с метаданными - это его расширяемость. Архитектура должна позволять легко добавлять новые требования к метаданным. Для этого необходим специальный процесс, обеспечивающий добавление новой информации о метаданных. При этом необходимо получить ответы на следующие важные вопросы:
* нужно ли хранить новые метаданные в общем репозитории (если таковой имеется);
* каковы методы доступа к элементам этих метаданных (только чтение или чтение и запись);
* являются ли эти метаданные уникальными или будут использоваться несколькими приложениями.
На основе ответов на эти вопросы принимаются соответствующие решения о хранении компонентов новых метаданных.
Пример решения для работы с метаданными
В качестве примера автор приводит розничную компанию, имеющую несколько Хранилищ данных для обеспечения различных видов бизнес-отчетности. Компания имеет Хранилище для составления отчетов по каналам поставок, Хранилище для CRM, Хранилище для данных о продажах и отдельное Хранилище для финансовой информации. Компания хочет создать единое корпоративное Хранилище данных с помощью консолидации информации в масштабах всей организации. Это хранилище будет центральным репозиторием для всех корпоративных данных, а отдельные подразделения будут создавать себе витрины данных на его основе. В процессе реализации этого проекта пришло понимание того, что также необходимо выработать стратегию консолидации метаданных.
Для этого можно использовать подход, описанный выше, который включает четыре основных действия. Первое действие - определение требований к метаданным. Этот процесс включает идентификацию заинтересованных сторон и классификацию метаданных. Поскольку это проект консолидации Хранилища данных, то типы метаданных будут достаточно простыми. Основные элементы - это некоторые корпоративные измерения, которые должны быть определены, и корпоративные факты. Оба этих элемента связаны с одними и теми же метаданными бизнеса. Следующий набор метаданных - это список таблиц и граф, использующих данные измерения и факты, т.е. это технические метаданные. Наконец, для документирования процессов ETL (extraction, transformation, loading - извлечение, преобразование и загрузка) и создания витрин данных необходима информация о тех шагах, из которых они состоят, т.е. это метаданные о процессах.
Для этих метаданных заинтересованными сторонами являются те, кто занимаются моделированием данных, а также разработчики ETL, витрин данных и отчетов. Помимо этого, такие метаданные нужны для работы с инструментами ETL и отчетности. Для консолидации метаданных требуются все элементы метаданных, их классификация, а также информация о том, кто и какие именно данные использует.
Следующий шаг - моделирование решения для работы с метаданными. В организации было принято решение создать свою метамодель, которая бы учитывала требования к модели данных, процессу ETL, витринам данных и инструментам отчетности.
После создания метамодели необходимо определить общую архитектуру. Было решено создать единый репозиторий для метаданных и определить процесс, который обеспечит его наполнение из всех систем. Например, после определения измерений и фактов метаданные экспортируются из инструментов моделирования данных и сохраняются в репозитории. Информация о процессах ETL создается вручную и также сохраняется в репозитории. Репозиторий инструментов отчетности наполняется с помощью заранее определенной технологии. Для выполнения требований отчетности, предъявляемых к метаданным, была создана система отчетности на основе интернета, которая создает запросы к репозиторию для получения информации.
После создания такого решения консолидация метаданных может считаться практически законченной. Следующая проблема - обеспечение долговременной работы данного решения. Например, как должен обрабатываться новый элемент или измерение, созданные в модели данных? Как вносится информация о новом процессе ETL или новом отчете? Все это определяется процессом поддержки метаданных. Для моделей данных периодически используется процесс синхронизации репозиториев инструментов и метаданных. Для ETL и отчетности существуют аналогичные процессы.
Заключение
Важность метаданных для корпораций уже общепризнанна. При работе с метаданными очень важно предварительно выработать соответствующую стратегию. Также важно понимать, что метаданные не являются универсальным средством для управления данными. Это мощное средство, которое может существенно улучшить качество анализа данных в корпорации, тем самым способствуя росту эффективности ее работы. При этом важно не распыляться в поисках абсолютно совершенного решения, а создавать решение, наиболее оптимальное для конкретного бизнеса.
Каждый системный администратор знает, насколько важно регулярно проводить резервное копирование компьютерных систем и данных, а также иметь возможность восстанавливать любую или все из них в случае сбоя системы, аппаратной ошибки, стихийного бедствия или при потере данных в иной ситуации
В течение долгого времени ежедневное резервное копирование, как правило, предусматривало запись копий файлов на магнитную ленту. Обычно это происходило ночью в рамках пакетного задания, когда нет текущей работы. Периодически, возможно, раз в неделю, делалась полная копия всех данных и систем.
В рамках методики, получившей название резервного копирования со сжатием, файлы, как правило, сокращались за счет сжатия. При другом подходе, так называемом зеркальном копировании, этап сжатия пропускался, и информация просто записывалась на другой диск, благодаря чему резервные копии файлов могли читать и использовать обычные системные инструментальные средства.
Но объем данных, используемых и хранящихся в организациях, быстро растет. Кроме того, необходимо, чтобы системы работали непрерывно в течение более длительных периодов времени (в том числе и круглосуточно).
Учитывая, что период, в течение которого можно выполнять резервное копирование (так называемое окно резервного копирования) постоянно сокращается и увеличивается срок, необходимый для его выполнения, ИТ-специалисты оказались в тупиковой ситуации. Нельзя гарантировать постоянную готовность системы, если нет актуальных резервных копий, но и прерывать работу системы, даже на короткий период для того, чтобы сделать эти копии, тоже нельзя.
С целью решения этой задачи было разработано множество стратегий. Во-первых, частичное резервное копирование. Такой подход предусматривает создание полных резервных копий через регулярные интервалы, и позволяет сэкономить время на сохранении только тех файлов, которые изменились, при условии, что копии неизменившихся файлов уже есть.
Для того чтобы определить, какие файлы были модифицированы, программы резервного копирования анализируют дату и время модификации всех файлов в системе. Если оказывается, что файл менялся после того, как была сделана полная резервная копия, он будет включен в состав следующей частичной копии. Для восстановления файлов по отдельности или всей системы в целом необходимо сначала восстановить последнюю полную резервную копию, а затем последующую частичную копию. Очевидно, что операция восстановления такого типа сложнее, чем восстановление с полной копии.
По мере увеличения числа и размера меняющихся файлов создание таких частичных копий может занять почти столько же времени, сколько и полной копии, которую значительно проще восстанавливать. Поэтому иногда делают резервные копии только тех файлов, которые были изменены после даты создания последней частичной копии.
Такая трехэтапная схема получила название инкрементального резервного копирования, и она действительно позволяет сократить объем данных, резервные копии которых необходимо сделать. Такой подход кажется разумным до тех пор, пока вам не пришлось что-нибудь восстанавливать с таких копий. Сначала необходимо восстановить последнюю полную копию (и пока все хорошо), затем — последнюю частичную копию и, наконец, каждую из последовательно сделанных инкрементальных копий, созданных после даты последнего частичного сохранения.
Рассмотрим следующий пример. Предположим, что полная копия была сделана в субботу, а сбой в системе возник в следующую пятницу, причем частичные копии в течение этого времени делались каждый вечер. После восстановления полной резервной копии необходимо восстановить в хронологическом порядке резервные копии, созданные в субботу, понедельник, вторник, среду, четверг и в пятницу.
Помимо времени, которое потребуют все эти операции, не стоит забывать и о том, сколько времени займет установка и снятие всех соответствующих лент. Автоматическое аппаратное обеспечение, в том числе и библиотеки лент, и автоматы смены дисков, в определенной степени облегчают этот процесс, но восстановление частичной копии — занятие нетривиальное, особенно если ваши системы достаточно большие и их полная резервная копия делается реже, чем раз в неделю.
Инкрементальные и частичные резервные копии можно сочетать таким образом, чтобы первая включала в себя все изменения, сделанные с момента последней полной или частичной копии. Такой подход требует еще более тщательного контроля и регистрации магнитных лент, но позволяет быстрее восстановить систему.
Еще один недостаток этих схем резервного копирования состоит в том, что они не подходят для транзакционных систем и систем, опирающихся на базы данных реального времени, в которых крайне важно делать резервную копию каждой транзакции, изменения файла и всех операций записи на диск или ввода/вывода. Пока наилучшим решением для таких систем является непрерывная защита данных (CDP). С помощью CDP, которое также называют непрерывным или зависимым от времени резервным копированием, на диск или в другое место копируется каждая версия данных, которую сохраняет пользователь. При таком подходе вы можете восстановить данные в любой заданный момент, в том числе самую последнюю перед сбоем запись на диск или операцию ввода/вывода.
У CDP по сравнению с записью на RAID, тиражированием и зеркалированием есть важная отличительная особенность. Последние защищают данные только от аппаратной ошибки за счет сохранения самой свежей копии информации. Непрерывная защита данных к тому же помогает уберечь их от искажений, поскольку в этом случае можно точно определить момент, когда данные были повреждены. Единственный вопрос — это уровень детализации. Какой именно объем данных необходимо сохранять для каждого вида приложений? Весь файл или только изменения? Все почтовые ящики или только личные сообщения электронной почты? Файлы и индексы базы данных или журналы регистрации транзакций? Большинство продуктов категории CDP сохраняют только изменившиеся байты или блоки дисковой памяти, а не весь файл. Изменился один байт из 10-гигабайтного файла, и CDP сделает резервную копию только этого байта или соответствующего блока. Традиционные частичные и инкрементальные резервные копии сохраняют только все файлы целиком. В силу этого, для CDP зачастую требуется меньше места на носителе с резервной копией.
Несколько иной подход, который не считается полным CDP, опирается на методологию мгновенных снимков, предполагая запись полных состояний системы через регулярные интервалы. Мгновенные снимки включают в себя ссылки на исходный том, которые должны оставаться неизменными.
Как правило, эти снимки создаются очень быстро и их можно использовать для восстановления или воссоздания состояний данных, имевшихся в системе в некий момент. Но мгновенные снимки — это не резервные копии, и их необходимо сохранять отдельно, если они будут применяться для восстановления дисков после сбоев или других физических повреждений.
Все стратегии резервного копирования имеют как свои достоинства (простоту, экономию времени, экономичность), так и вытекающие из них недостатки
Говорить о важности сетевых технологий на страницах сетевого издания немного странно, однако мы считаем, что даже среди сетевой публики, многие с трудом знакомы с важностью, особенно в современных условиях, объединения компьютеров в сеть. Статья повествует о важнейших элементах локальной сети, настройки под Windows XP и о наиболее часто задаваемых вопросах, связанных с построением, конфигурированием и администрированием локальных сетей.
Итак, напомним, что сети бывают локальные и глобальные. Локальные сети объединяют некоторое количество компьютеров в пределах одного или нескольких зданий. Такие сети иногда называют интранет. Глобальные сети подразумевают соединение различных локальных сетей в одну общую сеть, называемую Интернет.
Существует мнение, что если ты хоть раз поработал в составе сети, то работа без подключения к сети становиться болезненно тяжело. Да действительно, так, например наши компьютеры объединены в локальную сеть, подключенную с Интернет. Стоит произойти какой-нибудь неприятности с Интернетом, как работать становиться значительно тяжелее. Казалось бы, почему? Ведь по большому счету в сети мы видим просто чужие диски, иногда пользуемся вычислительными ресурсами удаленного процессора. Почему бы ни воспользоваться собственными дисками и мощностью собственного процессора. Все дело в информации. Ведь сегодня сеть это огромная база знаний, созданная усилиями каждого имеющего желание поделиться с другими своими знаниями и умениями. С одной стороны, это превращает сеть в некую «помойку» где из огромного объема информации приходится извлекать полезную информацию, с другой стороны нет ни одного другого электронного или любого off-line источника, способного дать ответ на абсолютно любой вопрос.
Сеть – развращает!
После длительной работы в сети иногда пользователь частично теряет возможность решать многие, простые вопросы обычными средствами. Так, например, поиск какой-либо информации без сети становиться просто невозможной. Единственным, доступным и действенным средством общения является e-mail или Интернет-пейджеры. С одной стороны «жители» сети являются достаточно сильными людьми, однако это касается только сети. В реальной ситуации, «сетевой житель» может быть достаточно слабым и беззащитным существом. Именно поэтому потеря доступа в сеть хотя бы на несколько дней, является достаточно тяжелой потерей для таких людей.
О чем эта статья?
Без сомнения, с точки зрения организации сети Windows XP самая простая операционная система от Microsoft. Точнее сказать, эта операционная система позволяет быстро и эффективно создавать небольшие сети для дома или небольшого офиса.
В этой статье мы расскажем о трех главных составляющих небольшой сети: совместное подключение к Интернет, совместное использование принтера, файлов и каталогов. В первую очередь мы нацеливаем эту статью на людей, только начинающих вникать во все тонкости «жизни» компьютера в сети. Однако и подготовленные пользователи смогут найти для себя не мало интересного.
Несмотря на наличие русской версии Windows XP, мы решили, что все примеры, приведенные в статье, будут для англоязычной версии Windows XP. Это значительно упростит создание сети для неопытных пользователей, использующих англоязычную версию.
Немного истории
Для того, что бы лучше понять превосходство сетевых решений в Windows XP давайте совершим краткий экскурс в историю развития операционных систем Windows. Для некоторых из Вас это отступление может быть раздражающим, однако нам было даже приятно вспомнить, чему мы радовались еще несколько лет назад. Давайте начнем с Windows 3.1.
Операционная система Windows 3.1 имела очень ограниченный инструментарий для организации даже самой простой сети и требовала использование программного обеспечения сторонних разработчиков. Возможно для операционной системы, выпущенной 10-12 лет назад, это было нормально. Специально для рабочих групп Microsoft выпустила Windows 3.11 for Workgroups, которая имела только протокол совместного использования файлов. Позднее в августе 1995 года была выпущена операционная система Windows 95. Несмотря на свою “глючность”, эта операционная система имела более продвинутые сетевые средства, однако по современным меркам все было очень сложно и недостаточно для требований современного пользователя. Через год была выпущена операционная система Windows NT 4.0, с дополнительными патчами и сервис паками. Windows NT 4.0 использовала интерфейс и принципы Windows 95. Главным отличием являлись наличие расширенных особенностей защиты, лучшие средства многозадачности, администрирование пользователей и больший упор на сетевую организацию для бизнес пользователей. Однако реализация сетевых особенностей оказалась еще сложнее, и недоступной для неподготовленного пользователя.
Через 2-3 года после Windows 95 были выпущены операционные системы Windows 98 и Millennium. Windows 98, за исключением NT, была первой настоящей 32-bit версией Windows с полностью 32-bit кодом. В то время как Windows 98 имела некоторые усовершенствование сетевого инструментария и возможностей, они все еще были похожи на Windows 95. Дополнительно Microsoft выпустила “Special Edition” Windows 98, известную как Windows 98 SE, в которой исправлены ошибки в сетевых протоколах. В феврале 2000 Microsoft выпустила Windows 2000. Эта система основана на ядре Windows NT и поэтому ее иногда называют Windows NT 5.0. Windows 2000 имеет очень продвинутые сетевые возможности, однако их реализация пока не проста, и напоминает Windows NT.
И наконец, сегодня мы стали свидетелями выпуска и развития операционной системы Windows XP. Обе версии (Professional и Home) являются очень красивым сочетанием сетевых возможностей NT, 2000 и простого и понятного пользовательского интерфейса.
Теперь, когда мы вспомнили, как развивались сетевые возможности операционной системы Windows, давайте переходить к нашей главной теме.
Физическая установка сети
Для упрощения, предположим, что мы используем в сети три компьютера – два “клиентских компьютера” и один «сервера». Для организации, даже такой маленькой сети нам понадобятся сетевые карты, которые устанавливаются в каждый компьютер, свич или хаб, а так же специальный сетевой кабель, называемый витая пара.
Выбор сетевой карты
В прошлом сетевая карта представляла собой отдельную ISA (для тех, кто не знает это такой старый стандарт слота расширения) или PCI плату. Причем их цена превышала 100$, что несколько ограничивало развития сетей в небольших организациях. Сегодня сетевая карта стала настолько доступной, что частенько ее интегрируют на системную плату. В случае, если Ваша плата не имеет интегрированного сетевого контроллера, то Вам придется воспользоваться внешней PCI платой. Карта должна соответствовать стандарту Realtek 10/100. Она стоит около 10$. Более дорогие карточки имеют множество дополнительных функций, обеспечивающих большую стабильность при передаче данных. Ниже на фотографии показан внешний вид типичной сетевой карты.
При выборе сетевой карты, необходимо обратить внимание на максимальную поддерживаемую скорость передачи 10/100. Это означает, что карта может передавать данные на скорости 10mbps и 100mbps в зависимости от сетевой архитектуры. Дополнительно необходимо, что бы карточка имела разъем RJ-45 (современный стандарт CAT5), поддерживающий скорость передачи 100mbps и обратно совместимый с 10mbps стандартом (именно такой разъем показан на фотографии). Самый последний стандарт “CAT6”, (пока находится в разработке) будет поддерживать скорости от 300mbps до 1gbps. Это означает, что Вы сможете копировать файлы в сети со скоростью 125 мегабайт в секунду. Это быстрее скорости современных жестких дисков. CAT5-E или категория 5 UTP Enhanced так же обратно совместима с 10, 100 и 1000Mbit Ethernet. Использование RJ-45 предпочтительнее, чем RJ-58, или больше известные как BNC. Этот разъем предназначен для подключения на более низких скоростях (ограничена 10mbps) коаксиальным кабелем.
Хаб против свича
Для управления всеми транзакциями (передача блоков информации) в сети используется устройство называемой хаб или свич. В чем отличие между этими двумя устройствами?. Во время передачи пакета данных хаб отправляет их сразу на все компьютеры, что значительно уменьшает пропускную способность канала. Свич, имеет встроенную память, в которой храниться информация о том, к какому порту подключен какой компьютер. Поэтому во время передачи пакета, он отправляется на определенный порт. Кроме того, свич позволяет использовать в сети контроллеры с разной скоростью передачи, при этом общая пропускная способность не будет опускаться до уровня контроллера с минимальной скоростью. Учитывая незначительное ценовое отличие мы настоятельно рекомендуем приобрести именно свич. На сегодняшний день впускаются свичи с 5, 8, 16, 24 или 32 портами. Цена устройства напрямую зависит от количества портов.
802.11a и 802.11b
Говоря об организации сети мы считаем необходимым затронуть вопрос беспроводных сетей, т.е. передающих информацию по радиоканалу. Такие сети становятся все популярнее, т.к. позволяют сделать размещение компьютеров более гибким, а пользователям использующим карманные компьютеры или ноутбуки, получить доступ к сети в любой точке офиса и даже за пределами. На сегодняшний день существует два стандарта 802.11a и 802.11b. Для реализации такого подключения необходимо использовать специальные хабы и сетевые карточки.
Как выбрать свич?
В принципе, любой. Например, мы используем 8-портовый свич от CNET, но другие брэнды, такие как Kingmax, Netgear, Dlink, 3COM так же имеют очень хорошее качество. В общем, в этом вопросе можно довериться компании, которая будет проводить у Вас сеть. Они обычно ставят то, что хорошо работает.
Рекомендации по конфигурированию сервера
Если Ваш сервер не планируется использовать для игр, нет необходимости использовать самый последний процессор Pentium 4 или Athlon XP с большим объемом оперативной памяти и емким жестким диском, а так же с самой последней графической картой GeForce 4. Главное, чего необходимо добиться, это стабильной круглосуточной работой. Так. Как сервер будет использовать Windows XP, он должен быть оснащен минимум 128MB RAM.
В идеале, Вы можете использовать процессор Pentium 2, III или Athlon 500MHz, при этом система будет достаточно хорошо работать в нашей среде.
Конфигурация сети в Windows XP
Установить сетевые параметры в Windows XP Вы можете несколькими способами. Во-первых, вручную. Этот метода предпочтительнее, т.к. позволяет контролировать все настройки. Во-вторых, для тех, кто ничего не понимает в сетевых терминах Microsoft включила мастер установки сети (Network Setup Wizard). Для запуска мастера, необходимо войти в “My Network Places” и нажать на “set up a home or small office network”. Нажмите Next, на втором экране будут описаны некоторые рекомендации по правильной установке. Фактически здесь Вы найдете полное руководство к действию. Нажимаем Next. Теперь для всех клиентских компьютеров Вы должны выбрать вторую опцию (The computer connects to the Internet through another computer on my network or through a residential gateway) и нажмите Next. На следующем экране Вы можете ввести или изменить имя компьютера. Теперь переходим к следующему окну, где мы сможем изменить название рабочей группе. Следующий экран резюмирует сделанные изменения и применяет их. На следующем экране Вам будет предложено создать диск установки сети. Так как мы делаем меленькую домашнюю сеть этот диск можно не создавать. Просто нажмите «Wizard and then Finish».
Мы просим извинить нас за нескончаемые переходы к следующему экрану, однако по другому описать действия мастера невозможно. В дальнейшем мы будем использовать первый, ручной режим.
[pagebreak]
Мастер сетевой идентификации
Теперь необходимо установить имя Вашего компьютера в рабочей группе, к которой он принадлежит. Для этого нажмите Start -> Settings -> Control Panel -> System -> и выберите закладку Computer Name. Сначала нажмите “Network ID”, что позволит активизировать мастер сетевой идентификации (Network Identification Wizard). На первом экране просто нажмите Next. На следующем экране нужно выбрать первую опцию (This computer is part of a business network, and I use it to connect to other computers at work), на следующем экране выберете вторую опцию (My company uses a network without a domain), Это приведет Вас к экрану показанном ниже...
Здесь Вы должны установить название рабочей группы. Эти действия Вы должны повторить на всех компьютерах Вашей сети.
Обращаем Ваше внимание, что некоторые broadband провайдеры используют свою собственную рабочую группу. В этом случае они должны Вас проинструктировать об использовании имени рабочей группы.
IP адресация
Прежде всего вы должны идентифицировать каждый компьютер в сети. Для этого служит так называемая IP (Internet Protocol) адресация. IP адрес – это уникальный номер Вашего компьютера в Вашей сети. IP адрес может быть “статическим” или “динамическим”. В своей внутренней сети Вы можете использовать IP адреса класса C, т.е. в диапазоне 192.168.0.1 до 192.168.0.254. Другими словами в одной рабочей группе может работать до 254 компьютеров. Обычно серверу назначают адрес 192.168.0.1. Когда Вы активизируете совместный доступ к сети (Internet Connection Sharing) по умолчанию Вашему серверу будет автоматически назначен этот адрес.
Конфигурация сервера
Примечание: Под XP и Windows NT для установки сетевых параметров Вы должны войти с правами администратора. OK – установив на все компьютеры сетевые карты, Вам необходимо назначить каждому компьютеру IP адрес. Для этого нажмите Start -> Settings -> Network Connections. Теперь кликните правой кнопкой мышки на “Local Area Connection” и выберите меню Properties. Затем укажите на протокол TCP/IP и нажмите Properties. Перед Вами откроется окно, позволяющее установить все необходимые сетевые параметры...
На скриншоте выше мы показываем настройку IP адреса для сервера. Пока этого достаточно. Ниже мы покажем, как конфигурировать клиентские компьютеры. Для того, что бы Вы лучше понять, как работает сервер в сети, мы приводим примерную схему подключения компьютеров рабочей группы к Интернет, через один компьютер.
Конфигурирование клиентских машин
Выше на скриншоте мы видим, что одному из клиентских компьютеров установлен IP адрес 192.168.0.5. Маска подсети устанавливается автоматически, по этому поводу Вам волноваться не стоит. Обратите внимание, что IP адрес должен быть уникальным, и не может повторяться внутри одной сети. В случае повторного использования IP адреса, Windows сообщит о возникновении проблемы с повторяющимся IP адресом. Ниже на рисунке, показано, что такое клиентский компьютер и его роль в сети.
Совместное использование Интернет
Как мы сказали в начале статьи, современная сеть должна решать три основные задачи: Совместный доступ к Интернет, совместное использование принтера и совместное использование файлов и папок. В принципе, все три задачи уже, так или иначе, решены в некоторых предыдущих версиях Windows. Однако в Windows XP они решены лучше и проще. Итак, в первую очередь давайте рассмотрим реализацию совместного доступа в Интернет. В нашем примере настройки клиентского компьютера мы устанавливаем обращение к серверу с IP адресом 192.168.0.1. Этот адрес указан как адрес шлюза, т.е. компьютера, через который все остальные будут обращаться в Интернет. Тот же адрес мы указываем в качестве первичного DNS (DNS – это сервис который позволяет по символьному имени узла, определить его физический IP адрес). Теперь, зайдите нажмите OK, что вернет Вас в первоначальное меню свойств сетевого соединения. Здесь откройте закладку Advanced и проверьте опцию Internet Connection Firewall. На клиентских машинах эта опция должна быть отключена.
Включение совместного доступа к Интернет
После завершения настройки всех клиентских машин, Вам необходимо активизировать доступ в Интернет на серверной машине. Для этого нужно войти в меню сетевых соединений (Start -> Settings -> Network Connections), выбрать иконку, через которую подключаетесь к провайдеру (по модему или быстрому каналу). В меню свойств учетной записи необходимо выбрать закладку Advanced, где Вы найдете все опции, необходимые для организации совместного доступа …
В первую очередь обратите внимание на включение Internet Connection Firewall для Internet соединения. Firewall – это система защиты, которая работает как защитный щит между внутренней сетью и внешним миром. Internet Connection Firewall (ICF) – это программный продукт, который используется для установки ограничений передачи информации от и к вашей рабочее группе. Мы рекомендуем разрешить эту опцию. В то время как мощность такого программного «щита» не может сравниваться с подобными аппаратными межсетевыми экранами, это сможет в некоторой степени защитить Ваши данные от различных сетевых неприятностей. Теперь обратите внимание на включении опции “Allow other network users to connect through this computer’s Internet connection”, которая позволит другим пользователям входить в Интернет через сервер. Если Вы хотите управлять различными установками учетных записей Интернет с других, клиентских компьютеров, включите опцию “Allow other network users to control or disable the shared Internet connection”. И последняя опция - “Establish a dial-up connection whenever a computer on my network attempts to access the Internet”. Ее включение позволит серверу в случае получения запроса к Интернет с любого клиентского компьютера автоматически установить соединение. Теперь нажмите OK для применения всех сделанных изменений. В принципе, Windows XP не требует перезагрузки при изменении сетевых настроек, однако мы настоятельно рекомендуем это сделать не только на сервере, но и на всех клиентских компьютерах. Теперь, Вы можете попробовать войти в Интернет с любого компьютера в Вашей сети, причем в случае с Windows XP Вы можете спокойно, без необходимости делать дополнительные настройки, использовать программы, подобные ICQ.
В случае если доступа к сети нет, попробуйте сначала проветрить правильность подключения всех кабелей, и включение концентратора или свича. Если все сделано правильно то при подключении сетевого кабеля к Вашей сетевой карте, на экране в tray области (рядом с часами, появиться сообщение о подключении сетевого кабеля на скорости 100 или 10Mb). В случае если этого не происходит, необходимо проверить включение опции отображения индикатора в сетевых настройках и проверить правильность и целостность кабеля. Далее попробуйте в окне DOS набрать команду ping 192.168.0.1, которая проверит соединение с серверной машиной. Если пинг не прошел, необходимо проверить работоспособность и настройку сетевых карт и свича. Кроме того, одной из причин имеющихся проблем может быть установка Windows XP поверх другой операционной системы имеющей настроенную сеть, либо компьютер использовал собственное подключение к Интернет. После неоднократной установки различных, предлагаемых на рынке, версий и вариаций Windows XP, мы пришли к выводу, что для полной работоспособности необходимо устанавливать новую ОС на чистый диск, или раздел.
Статус Интернет соединения
Теперь необходимо коснуться вопроса контроля состояние подключения к Интернет. Особенно это касается случая использования операционных систем отличных от Windows XP. Для доступа к этой опции нажмите Start -> Network Connections. Как Вы можете видеть Windows XP достаточно подробно показывает параметры соединения, такие как скорость соединения и трафик на Вашей клиентской машине. Кроме того, здесь Вы можете отключить Интернет соединение.
Совместное использование принтера
Теперь, когда Вы установили ICS, пришло время настроить принтер для совместного использования в рабочей группе. Эта возможность очень полезна для небольших компаний или отделов. Установив совместный доступ к одному или нескольким принтерам, Вы сможете значительно сэкономить не только на принтерах, но и на времени. Если на Вашем сервере еще не установлен принтер, сделать это можно с помощью меню Printers and Faxes, открыть которое можно так: Start -> Settings -> Printers and Faxes. Как только принтер будет установлен, кликните по его иконке правой клавишей мышки и выберете пункт Sharing...
В открывшемся окне просто нажмите “Share this printer” и наберите имя, под которым принтер будет виден в сети.
Совместное использование и доступ к файлам
И наконец, мы переходим к последнему наиболее частому использованию сети – совместному использования файлов и папок. Эта особенность позволит создавать в компании библиотеку документов, шаблонов и т.д. Открывать и ограничивать доступ к документам различных сотрудников. В общем, полностью организовать документооборот в компании. Честно сказать, с полным документооборотом мы преувеличили. На самом деле для этого необходимо использовать специальные продукты, способные индексировать и архивировать документы, осуществлять быстрый поиск и т.д. Однако Windows XP частично позволяет решить эти задачи, и позволяет сэкономить на приобретении программ третьи разработчиков.
Для того, что бы разрешить сетевой доступ к файлам и папкам нужно в My Computer выбрать диск, к которому нужно открыть доступ, и правой кнопкой войти в свойства диска, где выберите закладку Sharing как показано ниже...
В целом здесь все понятно, однако необходимо обратить внимание, на то, что в случае включения опции “Allow network users to change my files” Вы даете им полный доступ к своим файлам, т.е. не только редактирование, но и удаление. В случае совместной работы с Windows 2000 и NT с точки зрения защиты Вы можете отключить простой режим совместного использования файлов через меню View->Folder Options->[X]Use Simple File Sharing.
Добавление сетевых дисков
Для упрощения доступа к часто используемым сетевым дискам, ВЫ можете добавить их в свое окно My Computer и использовать как обычный диск на Вашем компьютере. Для этого Вам необходимо правой кнопкой мышки кликнуть на сетевое окружение, и в открывшемся контекстном меню выбрать “Map Network Drive...” .
Здесь выберите букву для нового диска, и укажите путь к нему. Если Вы не знаете точного пути, то можете воспользоваться кнопкой “Brouse…”.
Заключение
Конечно же эта статья не может претендовать на звание энциклопедии сетевых возможностей Windows, однако она позволила решить две важные задачи. Те кто достаточно хорошо разбирается в сетях, наверное смогли найти для себя некоторые дополнительные особенности, которые было просто лень искать самостоятельно без особой надобности. Те, кто вообще не разбирается в сетях, смогли понять, что для реализации достаточно эффективной сети вполне достаточно использовать Windows XP.
Однако, для реализации сети в Вашем офисе мы настоятельно рекомендуем обратиться к специалистам. Поверьте нашему опыту, что как только «технический специалист» Вашей компании начинает делать сеть, это становиться в непрекращающийся ремонт в квартире. Постоянно, что-то доделывается, возникают различные «подводные камни» и т.д. Лучше всего обратиться к сетевым специалистам. Причем совсем необязательно обращаться к большим сетевым интеграторам, привыкшим работать в масштабе большого предприятия, использующего несколько сотен компьютеров с различными серверами. Вполне достаточно обратиться к компаниям, имеющим опыт создания небольших сетей, имеющих монтажников, программистов, настройщиков и, что самое главное, службу сервиса. Такая группа специалистов кроме установки сети, подключения к Интернет, сможет решить проблему с установками сетевых версий программ (например, бухгалтерских, дизайнерских, инженерных продуктов). В конце концов, каждый должен заниматься своим делом.
Если вы решили всерьез заняться продвижением вашего сайта в сети интернет, то без механизмов, которые бы отслеживали его посещаемость, вам не обойтись. Ведь именно благодаря им вы можете узнать, сколько к вам пришло посетителей, их географию (из какой страны), как много страниц они просмотрели, какие из этих страниц наиболее популярны.
Также есть очень важные параметры - заходы поисковых (индексирующих) ботов на ваш сайт и реферальные ссылки - откуда посетители зашли на ваш сайт - это может быть как поисковая машина, так и другой сайт.
В этой статье рассмотрим способы, как получить информацию о посетителях вашего сайта.
Тут есть три основных варианта:
1) самостоятельно анализировать log-файлы своего сайта (дает максимально точную информацию, но не все хостеры дают к ним доступ, про бесплатный хостинг и говорить не приходится). Отличной программой, которой сам давно пользуюсь и вам рекомендую, является WebLog Expert (http://www.weblogexpert.com/) Программа не бесплатная, а триал, но при желании всегда можно найти к ней "лекарство". Среди возможностей программы - строит цветные графики и диаграммы для отображения информации о всех данных статистики. Есть возможность вывода отчета об анализе в виде html, pdf или cvs (для импорта в Excel). Работать с программой очень просто - указал пусть к лог-файлу (можно и не распаковывать его, программа понимает архивы gz, zip, и tar.gz), потом нажимаем кнопку "analize" и смотрим отчет.
2) если у вас платный хостинг, то можно использовать встроенные в CPanel или DirectAdmin (у всех по-разному) скрипты типа Webalizer или AwStats. Как с ними работать - об этом должно быть написано в "Вопросах и ответах" (FAQ, ЧАВО) вашего хостинг-провайдера. Многие предпочитают использовать эти скрипты, чтобы не возиться с программами лог-анализаторами или не замусоривать свой сайт кнопками бесплатных сервисов статистики.
3) использовать специальные скрипты, как правило написанные на php, устанавливаются в директорию вашего сайта, используют для хранения информации базу данных MySQL. Самый известный представитель подобного рода скриптов - это CNStats (site). Больше чем уверен, что в мире существует немало его аналогов, но этот скрипт имеет русский интерфейс, что, согласитесь, немаловажно для нас. Среди недостатков - опять же платный, но есть и бесплатные версии с ограниченной функциональностью. БД быстро разрастается, особенно на посещаемом сайте - придется постоянно следить за размером и периодически чистить.
4) бесплатные сервисы статистики - их даже на просторах рунета огромное множество. Рассмотрим лишь самые известные и с качественным сервисом.
SpyLog - spylog.ru
После регистрации и установки счётчика мы получаем возможность анализировать следующие показатели сайта: хиты (сегодня, неделя, месяц), хосты, ссылающиеся страницы, популярные страницы ресурса, география посетителей по странам, хосты, операционные системы, браузеры, дисплеи. В этом списке отсутствует такой важный отчёт как «поисковые запросы» - это один из самых главных показателей эффективности оптимизации сайта и его индексации в поисковых машинах.
Top Mail.ru - top.mail.ru
Предоставляет достаточно полную статистику по сайту в т.ч. по поисковым машинам. Всего – 12 отчётов:
* Позиции в рейтинге
* Динамика визитов
* Время визитов
* Страницы
* Ссылки
* Поисковики
* Каталоги
* Браузеры
* Настройки
* География
* Сравнение аудиторий
* Мой top
Работает счётчик достаточно хорошо, иногда, даже лучше, чем вышеупомянутый SpyLog. Его хорошая работа во многом обуславливается тем, что имеется возможность разделить код счётчика на две части. Первую часть (которая считает посетителей) поставить в начало страницы, а вторую (отображающую сам счётчик) можно разместить в любом месте страницы.
Мой top позволяет определить некий круг сайтов и отслеживать их посещаемость, общих посетителей и рейтинг относительно друг друга, что очень приятно. С помощью данного топа можно отслеживать посещаемость ближайших конкурентов ресурса, причём, они об этом могут даже не знать. А вот для того, чтобы закрыть вашу статистику от других, можете поставить ее на пароль. Насчет стабильности работы Top Mail.ru ходят легенды - не знаю, как сейчас (в последнее время не использую этот сервис), но 2-3 месяца назад были у него частые глюки - статистика была недоступна, обнулялась (да, именно так - на счетчике было три нуля в столбик :)), один раз даже была обратная сортировка рейтинга - на первых местах оказались ресурсы с нулевой посещаемостью, а гранды - на последних.
Liveinternet.ru - liveinternet.ru
Пожалуй, самый качественный и информативный сервер сбора статистики (хотя больше известен своими online-дневниками). Дает любую нужную вам информацию - и посещаемость, и географию посетителей, источники трафика (поисковики, рефералы, букмарки). За небольшую плату (где-то 3$ в месяц) можно установить невидимый счетчик, т.е. кнопки liveinternet.ru не будет на вашем сайте, а статистика будет считаться. Также есть возможность закрыть статистику на пароль.
Catalog.i.ua - catalog.i.ua
Сравнительно новый сервер сбора статистики и каталог одновременно. Появился в ноябре 2006 года, но уже успел зарекомендовать себя как стабильный и точный сервис. Информацию о посетителях выдает как в виде графиков, таблиц, так и есть возможность импорта данных в cvs - для дальнейшего анализа в Excel. Отличительной чертой от подобных сервисов является возможность просмотра не только самой рефссылки, но и поисковой фразы, если был заход из поисковика.
Подведу итог вышесказанному. Какой вид анализа и сбора статистики вам выбрать - решайте сами. В чем могут быть ограничения - это бесплатный хостинг, на котором у вас не будет доступа к лог-файлам и возможность выполнения php-скпритов. Главное, если вы используете бесплатные сервисы сбора статистики, то не переусердствуйте - не нужно ставить их более 3-х штук - ведь это дополнительное время, которое потребуется на загрузку графического счетчика и ява-скрипта.
Поисковые механизмы продолжают эволюционировать, становятся все более изощренными и усложненными, в то же время упрощаются их пользовательские интерфейсы, и размеры накопленных баз данных экспоненциально увеличиваются. Впрочем, постоянное развитие в этой области и неудивительно спрос на поиск нужной информации в Сети будет только расти, причем с каждым годом как пользователей, так и данных будет становиться все больше.
Поисковая индустрия также выглядит лакомым кусочком пирога для многочисленных стартапов, которые не прочь попробовать себя в этой области. Лидером здесь можно стать если не за считанные сутки, то за несколько месяцев, о чем свидетельствует история успеха Google. Два года назад о компании знали только энтузиасты, и еще недавно ссылались на данный поисковик как на "разработку студентов Стэнфордского университета", отмечая, что Google "имеет реальные шансы стать одной из самых авторитетных служб в своем классе".
Сегодня за место лидера рынка постоянно соревнуются две компании американская Google и норвежская FAST, и поэтому неудивительно, что в данном материале речь в основном пойдет именно о нововведениях этих фирм.
Файловые форматы
Признавая тот факт, что Internet постоянно пополняется большим количеством информации, которая не всегда выкладывается в формате HTML, Google сообщил о поддержке файловых форматов Microsoft Office. Таким образом, сегодня команда "Поиск" в Google, кроме HTML-документов, выдаст файлы форматов PostScript, Rich text Format, Lotus1-2-3, Lotus WordPro, MacWrite, Microsoft Word, Microsoft Excel и MicrosoftPowerPoint. До этого поисковик также успешно находил и PDF-документы.
Поддержка новых форматов вызвала немало проблем и даже курьезов. Сисадмины и специалисты по компьютерной безопасности наверняка не обрадуются поддержке форматов Microsoft Office. Теперь, щелкнув по ссылке, которая ведет на документ Word, пользователь имеет все шансы запустить у себя на машине макрос, и нет никакой гарантии, что он не причинит вреда. Именно для таких случаев Google предоставляет возможность ознакомления с HTML-версией документа, однако поддержка новых форматов влечет за собой новые проблемы для домашних пользователей теперь компьютерные вирусы можно будет получать прямо из поисковика.
Для более грамотных пользователей новые файловые форматы, несомненно, представляют ценность, так как в слайдах PowerPoint в Internet часто выкладывается учебная и деловая информация, а Excel является общепринятым способом распространения прайс-листов.
Специализация поиска
Норвежские разработчики также предпочли не просто наблюдать за рынком, а развивать специализированные услуги своего поисковика.
FAST запустила поиск новостей, являющийся, как утверждают разработчики, обладателем "желтой майки лидера", если вести речь о скорости. Ежедневно FAST News Search обрабатывает около 3 тыс. ресурсов, которые обновляются в режиме реального времени, как и положено новостийно-информационным изданиям. "Паук" от FAST индексирует около 800 статей каждую минуту.
В данном направлении ведут разработки и отечественные компании. Как сообщил нашему изданию Алексей Чуксин, директор по маркетингу компании"МЕТА", в рамках украинского поисковика создан "динамический индекс", который позволяет вносить обновленные страницы в базу данных"на лету", не замедляя таким образом скорость работы поиска.
Потенциально данная технология может быть использована для организации поиска новостей и обновлений, а также в качестве внутреннего поисковика для крупных сайтов. Разработчики "META" сегодня переводят на динамический поиск сайты своих клиентов, среди которых финансовый сервер Finance.com.ua, банковский Ukrsibbank.com и портал Volia.com.
FAST также предложила весьма интересную концепцию кластеризации результатов поиска. За основу технологии FAST Topics взят открытый каталог Dmoz.org, на его базе сделаны тематические подборки сайтов, которые затем объединяются в кластеры с общей тематикой. Введите "ukraine" в поисковике FAST, и всписке папок будет представлено девять категорий для возможного сужения поиска.
Релевантность
Даже самые громогласные тирады о всемогуществе современных поисковиков зачастую прекращаются, когда их создатели говорят о релевантности. Алгоритмы определения релевантности для ранжирования документов постоянно находятся в стадии разработки. Спаммеры поисковиков, с одной стороны, и добросовестные маркетологи сайтов, с другой, ведут борьбу за право оказаться в списке первых на странице с результатами поиска.
С ноября 2001 г. "МЕТА" для определения релевантности украинских сайтов начала использовать алгоритмы PageRank, где место в списке результатов зависит и от количества ссылок на документ. Google, которая возникла фактически благодаря технологии PageRank, на этот раз решила еще более усложнить путь для недобросовестных "раскрутчиков".
Разработчики Google тестируют технологию, которая позволит пользователям самостоятельно определять релевантность сайта, таким образом голосуя за более информативные ресурсы и исключая из списка результатов поиска сайты, не имеющие никакого отношения к запросу. Теоретически это может даже развязать руки спаммерам, голосующим за свой сайт с различных компьютеров, однако Google рассчитывает на то, что многомиллионная аудитория, ежедневно пользующаяся поисковиком, в целом будет рационально относиться к "избираемым" сайтам.
Быстрее, выше, сильнее?
Как оказалось, олимпийские лозунги не всегда обеспечивают позитивное отношение к поисковикам со стороны пользователей. По мере расширения своей базы данных и увеличения кэша на жестких дисках компании Google пришлось столкнуться с противодействием со стороны Web-мастеров. Google индексирует документы, не предназначенные для публичного использования, Google сохраняет на своем жестком диске копии документов, которые по каким-то причинам должны быть уничтожены, Google ставит под удар платные сайты, требующие денежной мзды за доступ к архивам с более старыми статьями.
На все эти обвинения компания реагирует весьма корректно. Что касается индексирования документов, которые выкладываются на серверы, однако не предназначены для посторонних глаз, представители Google утверждают, что их робот никогда не проиндексирует информацию, доступ к которой запрещен. Не будучи взломщиком, робот, тем не менее, индексирует все, что находит, и тот факт, что конфиденциальные документы попали в око "паука",свидетельствует о том, что неправильно был оформлен файл robots.txt или же администратор не принял должные меры защиты.
Для желающих уничтожить копии своих файлов на дисках Google (а туда, напомним, сейчас попадают и документы PDF, и Microsoft Word), Google представляет такую возможность на сайте для Web-мастеров.
Что касается расширения баз данных поисковиков, то здесь решили не останавливаться на достигнутом и разработчики "МЕТА" робот, по словам Алексея Чуксина, теперь поддерживает настройку полей для поиска структурированной информации (а проще говоря, может получить доступ и проиндексировать базу данных).
С миру по нитке
Что еще произошло в мире поиска за последнее время? Портал Yahoo! согласился сотрудничать с платным поиском Overture (ранее известным как Goto.com), и таким образом на Yahoo! теперь будут появляться платные ссылки, которые будут четко обозначены как коммерческие результаты. Overture, готовясь выйти на прибыль уже в ближайшее время, сумела доказать большинству пользователей, что продажа ссылок за деньги не есть что-то неприличное, а наоборот весьма прибыльный бизнес при условии, что посетитель четко осознает ангажированность результатов.
FAST внедрила свои поисковые технологии в Lycos. Две компании издавна являются партнерами, однако долгое время поиск в Lycos занимал последние места по части объема базы данных и релевантности ссылок. Новая версия поискового ядра от FAST способствует укреплению имиджа Lycos как поисковой машины для Web. На обновленное ядро перешла и российская версия портала, расположенная по адресу www.lycos.ru. Как сообщил"Компьютерному Обозрению" генеральный продюсер российской Lycos Андрей Себрант, основной задачей для разработчиков компании в ближайшее время станет ускорение индексации русскоязычных новостей и интеграция данного сервиса в Lycos.ru. Также одной из ключевых задач сегодняшнего дня является наращивание мультимедийной базы для поисковой машины.
Немного странно не видеть в данном обзоре Inktomi, которая обычно шествовала в колонне лидеров данного рынка. Компания в последнее время направляет свои усилия на корпоративный сектор, хотя игнорировать такого крупного игрока на рынке Internet-услуг пока что нельзя вряд ли Inktomi согласится стать побежденной в гонке лидеров, и вполне возможно, что скоро FAST и Google получат в ее лице достойного конкурента.
Итак, вы создали список ключевых слов, которые будете использовать для поисковиков. Теперь пришло время узнать, как правильно разместить эти слова для того, чтобы получить максимальную оценку от поисковой системы. Эта статья посвящена всем вебмастерам, которые занимаются не только созданием сайтов, но и их продвижением в сети интернет.
Создайте "входные страницы" (дорвеи) для вашего сайта, используя всевозможные комбинации ключевых слов на странице. В идеале, необходимо создать каждую отдельную страницу для конкретного ключевого слова и для конкретной поисковой машины, так как каждая поисковая система использует свой алгоритм оценки релевантности. Сразу должен сказать, что дорвеи - это хорошая идея, но на практике их разработка может занять массу времени. С тех пор, как поисковые системы стали регулярно менять алгоритмы оценки страниц, вебмастерам приходится постоянно работать над созданием новых дорвеев, обеспечивающих высокий рейтинг в поисковой системе. Более того, если вы работаете над большим количеством ключевых слов, вам придется создавать сотни дорвеев! И вскоре, вы столкнетесь с тем, что их создание будет отнимать больше времени, чем обычная работа над сайтом.
Метод, который я хочу предложить работает. Изначально, не беспокойтесь о разных алгоритмах в поисковых системах. Создайте разные дорвеи, пропишите их в поисковые системы, и отслеживайте траффик. Регулярно создавайте дорвеи и проверяйте статистику посещений, до тех пор, пока не определите рейтинг ваших страниц в поисковиках (почти все поисковые системы дают эту возможность). Когда вы определили нахождение страниц в рейтинге, создайте новый дорвей - в котором неоднократно повторяется конкретное ключевое слово в смеси с другими ключевыми словами. Зарегистрируйте этот дорвей в поисковиках и следите за его рейтингом. Как только вы определили поисковики, которые низко оценивают этот дорвей, создайте новые дорвеи для конкретной поисковой системы, основываясь на рейтинге предыдущих дорвеев. Продолжайте оптимизировать его до тех пор, пока не достигните должного результата.
Пойдем дальше. Я надеюсь, вы вкурсе, что такое meta tags, tittle tags, meta-description tags, meta-keywordstags, the heading tags, и alt tags. Если вы не знаете, что это такое, бросайте читать эту статью и отправляйтесь в магазин за руководством по созданию HTML-страниц.
Предположим, у вас сайт туристической фирмы и вам необходимо использовать ключевые слова "Путешествие в Австралию". Приступим к созданию нашего дорвея.
Самый важный тэг в создании дорвея. Всегда вписывайте основное ключевое слово вначало, повторяя его в середине и в конце тэгов .Но НИКОГДА не вписывайте ключевое слово (или два ключевых слова) два раза подряд - поисковые системы воспримут это как спам. Также, содержимое тэгов является заголовком в результатах поиска поисковой системы, т.е.вы должны создать абсолютно читаемый заголовок. Вот пример: "Путешествие в Австралию - открой для себя как можно совершить путешествие в Австралию всего за ***$". Здесь мы создали заголовок, в котором ключевые слова используются в начале и повторяются в середине. Также, чередуйте заглавные и прописные буквы в слове "путешествие". Создайте подобные дорвеи, используя варианты: "путешествие в австралию", "Путешествие в Австралию", "путешествие в Австралию" и т.п.
Содержимое страницы. ALT-тэг Переходим к содержимому страницы. Начните свою страницу с изображения рисунка, имеющего прямое отношение к теме вашего сайта. Поместите его вверху страницы. В ALT тэге рисунка впишите "Путешествие в Австралию". Можете дополнить тэг другими словами, но начните обязательно с основных. Теперь создайте заголовок. Используйте размер H1 для заголовка. Снова, впишите основные ключевые слова в заголовок. Также как и в ALT-тэг, вы можете добавить другие слова, но после основных. Переходим к тексту страницы. От текста, расположенного в начале страницы зависит практически все. Содержанием текста вы должны направить посетителя к вашей основной странице сайта. Вставьте ссылку на основную страницу сайта на видном месте, чтобы посетитель мог не напрягаясь уйти по ней. Не вставляйте лишних ссылок и лишних баннеров - не давайте посетителю уйти.
Придерживайтесь следующих правил:
1) Первое, что необходимо помнить: некоторые поисковые системы не читают Meta-тэги, и используют первые слова на странице в качестве ключевых. Поэтому первые строки должны быть качественно составлены и удобочитаемы для посетителя.
2) Составьте предложения так, чтобы в них обязательно присутствовали ключевые слова - по одному разу в предложении. При этом ваши предложения должны иметь грамматический смысл, а не представлять из себя набор фраз. Посетитель должен получить приятное впечатление при чтении текста.
3) Не делайте ваши параграфы слишком длинными. Каждый должен быть от силы из 3-4 предложений. Посетители веб-страниц просто не будут читать большие громоздкие тексты.
4) Попытайтесь сделать так, чтобы текстовые ссылки включали в себя ключевые слова. Зачастую поисковики высоко ранжируют такие страницы.
5) Если это возможно, делайте ссылки на страницы которые имеют ключевое слово в имени файла. Поисковые системы учитывают это.
6) Нет конкретного ограничения на количество слов в странице - но постарайтесь создать ваш дорвей с 500-600 словами.
Созданную страницу назовите ключевыми словами, разделенными дефисом:travel-to-australia.html Это даст вам высокую оценку поисковиками (например Nothern Light), которые обращают внимание на присутствие ключевого слова в URL.
Теперь вам нужно правильно прописать дорвеи в поисковых системах. Многие вебмастера, загрузив дорвеи на сервер начинают регистрировать их один за другим в поисковых системах. Это распространенная ошибка. Поисковые системы низко оценивают страницу, с которой есть несколько ссылок, но нет ссылок на нее, а бывает так, что такие страницы оцениваются как дорвеи и тогда поисковая машина заносит URL в черный список - блэклист.
Что вам еще нужно сделать, так это сделать ссылку на дорвей с вашей основной страницы, но сделать это так, чтобы ссылка существовала только для поисковой машины - но не для посетителя. Однако не делайте текстовые ссылки под цвет фона - 99% поисковиков занесут вас в блэклист за такие проделки. Вот здесь я вам открою свой маленький секрет Создайте небольшую картинку под цвет вашего фона. Назовите рисунок именем дорвея - travel-to-australia.gif Вставьте рисунок в конец основной страницы и сделайте с него ссылку на дорвей. В ALT-тэг рисунка также вставьте ключевые слова . Не забудьте установить border=0 для рисунка.
Создайте подобные дорвеи для других ключевых слов, скопируйте тот же рисунок на основной странице еще раз, изменив его имя, ALT-тэг и ссылку. Повторяйте этот процесс для каждого ключевого слова или фразы. Таким образом, когда будет создано достаточное количество дорвеев, вы можете прописать вашу основную страницу сайта в поисковые системы. Не прописывайте все страницы сайта - пропишите только основную страницу. Несмотря на то, что на обнаружение всех страниц сайта уйдет больше времени, я настоятельно рекомендую поступить именно так: спайдер, пройдясь по ссылкам и обнаружив тем самым дорвеи и не узнав их, придаст более высокое ранжирование им!
В стеке протоколов TCP/IP протокол TCP (Transmission Control Protocol) работает так же, как и протокол UDP, на транспортном уровне. Он обеспечивает надежную транспортировку данных между прикладными процессами путем установления логического соединения.
Сегменты TCP
Единицей данных протокола TCP является сегмент. Информация, поступающая к протоколу TCP в рамках логического соединения от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный поток байт. Поступающие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера "вырезается" некоторая непрерывная часть данных, называемая сегментом.
В протоколе TCP предусмотрен случай, когда приложение обращается с запросом о срочной передаче данных (бит PSH в запросе установлен в 1). В этом случае протокол TCP, не ожидая заполнения буфера до уровня размера сегмента, немедленно передает указанные данные в сеть. О таких данных говорят, что они передаются вне потока - out of band.
Не все сегменты, посланные через соединение, будут одного и того же размера, однако оба участника соединения должны договориться о максимальном размере сегмента, который они будут использовать. Этот размер выбирается таким образом, чтобы при упаковке сегмента в IP-пакет он помещался туда целиком, то есть максимальный размер сегмента не должен превосходить максимального размера поля данных IP-пакета. В противном случае пришлось бы выполнять фрагментацию, то есть делить сегмент на несколько частей, для того, чтобы он вместился в IP-пакет.
Аналогичные проблемы решаются и на сетевом уровне. Для того, чтобы избежать фрагментации, должен быть выбран соответствующий максимальный размер IP-пакета. Однако при этом должны быть приняты во внимание максимальные размеры поля данных кадров (MTU) всех протоколов канального уровня, используемых в сети. Максимальный размер сегмента не должен превышать минимальное значение на множестве всех MTU составной сети.
Порты и установление TCP-соединений
В протоколе TCP также, как и в UDP, для связи с прикладными процессами используются порты. Номера портам присваиваются аналогичным образом: имеются стандартные, зарезервированные номера (например, номер 21 закреплен за сервисом FTP, 23 - за telnet), а менее известные приложения пользуются произвольно выбранными локальными номерами.
Однако в протоколе TCP порты используются несколько иным способом. Для организации надежной передачи данных предусматривается установление логического соединения между двумя прикладными процессами. В рамках соединения осуществляется обязательное подтверждение правильности приема для всех переданных сообщений, и при необходимости выполняется повторная передача. Соединение в TCP позволяет вести передачу данных одновременно в обе стороны, то есть полнодуплексную передачу.
Соединение в протоколе TCP идентифицируется парой полных адресов обоих взаимодействующих процессов (оконечных точек). Адрес каждой из оконечных точек включает IP-адрес (номер сети и номер компьютера) и номер порта. Одна оконечная точка может участвовать в нескольких соединениях.
Установление соединения выполняется в следующей последовательности:
* При установлении соединения одна из сторон является инициатором. Она посылает запрос к протоколу TCP на открытие порта для передачи (active open).
* После открытия порта протокол TCP на стороне процесса-инициатора посылает запрос процессу, с которым требуется установить соединение.
* Протокол TCP на приемной стороне открывает порт для приема данных (passive open) и возвращает квитанцию, подтверждающую прием запроса.
* Для того чтобы передача могла вестись в обе стороны, протокол на приемной стороне также открывает порт для передачи (active port) и также передает запрос к противоположной стороне.
* Сторона-инициатор открывает порт для приема и возвращает квитанцию. Соединение считается установленным. Далее происходит обмен данными в рамках данного соединения.
Концепция квитирования
В рамках соединения правильность передачи каждого сегмента должна подтверждаться квитанцией получателя. Квитирование - это один из традиционных методов обеспечения надежной связи. Идея квитирования состоит в следующем.
Для того, чтобы можно было организовать повторную передачу искаженных данных отправитель нумерует отправляемые единицы передаваемых данных (далее для простоты называемые кадрами). Для каждого кадра отправитель ожидает от приемника так называемую положительную квитанцию - служебное сообщение, извещающее о том, что исходный кадр был получен и данные в нем оказались корректными. Время этого ожидания ограничено - при отправке каждого кадра передатчик запускает таймер, и если по его истечению положительная квитанция на получена, то кадр считается утерянным. В некоторых протоколах приемник, в случае получения кадра с искаженными данными должен отправить отрицательную квитанцию - явное указание того, что данный кадр нужно передать повторно.
Существуют два подхода к организации процесса обмена положительными и отрицательными квитанциями: с простоями и с организацией "окна".
Метод с простоями требует, чтобы источник, пославший кадр, ожидал получения квитанции (положительной или отрицательной) от приемника и только после этого посылал следующий кадр (или повторял искаженный). В этом случае производительность обмена данными существенно снижается - хотя передатчик и мог бы послать следующий кадр сразу же после отправки предыдущего, он обязан ждать прихода квитанции. Снижение производительности для этого метода коррекции особенно заметно на низкоскоростных каналах связи, то есть в территориальных сетях.
Во втором методе для повышения коэффициента использования линии источнику разрешается передать некоторое количество кадров в непрерывном режиме, то есть в максимально возможном для источника темпе, без получения на эти кадры ответных квитанций. Количество кадров, которые разрешается передавать таким образом, называется размером окна. Обычно кадры при обмене нумеруются циклически, от 1 до W. При отправке кадра с номером 1 источнику разрешается передать еще W-1 кадров до получения квитанции на кадр 1. Если же за это время квитанция на кадр 1 так и не пришла, то процесс передачи приостанавливается, и по истечению некоторого тайм-аута кадр 1 считается утерянным (или квитанция на него утеряна) и он передается снова.
Если же поток квитанций поступает более-менее регулярно, в пределах допуска в W кадров, то скорость обмена достигает максимально возможной величины для данного канала и принятого протокола.
Этот алгоритм называют алгоритмом скользящего окна. Действительно, при каждом получении квитанции окно перемещается (скользит), захватывая новые данные, которые разрешается передавать без подтверждения.
[pagebreak]
Реализация скользящего окна в протоколе TCP
В протоколе TCP реализована разновидность алгоритма квитирования с использованием окна. Особенность этого алгоритма состоит в том, что, хотя единицей передаваемых данных является сегмент, окно определено на множестве нумерованных байт неструктурированного потока данных, поступающих с верхнего уровня и буферизуемых протоколом TCP.
Квитанция посылается только в случае правильного приема данных, отрицательные квитанции не посылаются. Таким образом, отсутствие квитанции означает либо прием искаженного сегмента, либо потерю сегмента, либо потерю квитанции.
В качестве квитанции получатель сегмента отсылает ответное сообщение (сегмент), в которое помещает число, на единицу превышающее максимальный номер байта в полученном сегменте. Если размер окна равен W, а последняя квитанция содержала значение N, то отправитель может посылать новые сегменты до тех пор, пока в очередной сегмент не попадет байт с номером N+W. Этот сегмент выходит за рамки окна, и передачу в таком случае необходимо приостановить до прихода следующей квитанции.
Выбор тайм-аута
Выбор времени ожидания (тайм-аута) очередной квитанции является важной задачей, результат решения которой влияет на производительность протокола TCP.
Тайм-аут не должен быть слишком коротким, чтобы по возможности исключить избыточные повторные передачи, которые снижают полезную пропускную способность системы. Но он не должен быть и слишком большим, чтобы избежать длительных простоев, связанных с ожиданием несуществующей или "заблудившейся" квитанции.
При выборе величины тайм-аута должны учитываться скорость и надежность физических линий связи, их протяженность и многие другие подобные факторы. В протоколе TCP тайм-аут определяется с помощью достаточно сложного адаптивного алгоритма, идея которого состоит в следующем. При каждой передаче засекается время от момента отправки сегмента до прихода квитанции о его приеме (время оборота).
Получаемые значения времен оборота усредняются с весовыми коэффициентами, возрастающими от предыдущего замера к последующему. Это делается с тем, чтобы усилить влияние последних замеров. В качестве тайм-аута выбирается среднее время оборота, умноженное на некоторый коэффициент. Практика показывает, что значение этого коэффициента должно превышать 2. В сетях с большим разбросом времени оборота при выборе тайм-аута учитывается и дисперсия этой величины.
Реакция на перегрузку сети
Варьируя величину окна, можно повлиять на загрузку сети. Чем больше окно, тем большую порцию неподтвержденных данных можно послать в сеть. Если сеть не справляется с нагрузкой, то возникают очереди в промежуточных узлах-маршрутизаторах и в конечных узлах-компьютерах.
При переполнении приемного буфера конечного узла "перегруженный" протокол TCP, отправляя квитанцию, помещает в нее новый, уменьшенный размер окна. Если он совсем отказывается от приема, то в квитанции указывается окно нулевого размера. Однако даже после этого приложение может послать сообщение на отказавшийся от приема порт. Для этого, сообщение должно сопровождаться пометкой "срочно" (бит URG в запросе установлен в 1). В такой ситуации порт обязан принять сегмент, даже если для этого придется вытеснить из буфера уже находящиеся там данные.
После приема квитанции с нулевым значением окна протокол-отправитель время от времени делает контрольные попытки продолжить обмен данными. Если протокол-приемник уже готов принимать информацию, то в ответ на контрольный запрос он посылает квитанцию с указанием ненулевого размера окна.
Другим проявлением перегрузки сети является переполнение буферов в маршрутизаторах. В таких случаях они могут централизовано изменить размер окна, посылая управляющие сообщения некоторым конечным узлам, что позволяет им дифференцировано управлять интенсивностью потока данных в разных частях сети.
Формат сообщений TCP
Сообщения протокола TCP называются сегментами и состоят из заголовка и блока данных. Заголовок сегмента имеет следующие поля:
* Порт источника (SOURS PORT) занимает 2 байта, идентифицирует процесс-отправитель;
* Порт назначения (DESTINATION PORT) занимает 2 байта, идентифицирует процесс-получатель;
* Последовательный номер (SEQUENCE NUMBER) занимает 4 байта, указывает номер байта, который определяет смещение сегмента относительно потока отправляемых данных;
* Подтвержденный номер (ACKNOWLEDGEMENT NUMBER) занимает 4 байта, содержит максимальный номер байта в полученном сегменте, увеличенный на единицу; именно это значение используется в качестве квитанции;
* Длина заголовка (HLEN) занимает 4 бита, указывает длину заголовка сегмента TCP, измеренную в 32-битовых словах. Длина заголовка не фиксирована и может изменяться в зависимости от значений, устанавливаемых в поле Опции;
* Резерв (RESERVED) занимает 6 битов, поле зарезервировано для последующего использования;
* Кодовые биты (CODE BITS) занимают 6 битов, содержат служебную информацию о типе данного сегмента, задаваемую установкой в единицу соответствующих бит этого поля:
* URG - срочное сообщение;
* ACK - квитанция на принятый сегмент;
* PSH - запрос на отправку сообщения без ожидания заполнения буфера;
* RST - запрос на восстановление соединения;
* SYN - сообщение используемое для синхронизации счетчиков переданных данных при установлении соединения;
* FIN - признак достижения передающей стороной последнего байта в потоке передаваемых данных.
* Окно (WINDOW) занимает 2 байта, содержит объявляемое значение размера окна в байтах;
* Контрольная сумма (CHECKSUM) занимает 2 байта, рассчитывается по сегменту;
* Указатель срочности (URGENT POINTER) занимает 2 байта, используется совместно с кодовым битом URG, указывает на конец данных, которые необходимо срочно принять, несмотря на переполнение буфера;
* Опции (OPTIONS) - это поле имеет переменную длину и может вообще отсутствовать, максимальная величина поля 3 байта; используется для решения вспомогательных задач, например, при выборе максимального размера сегмента;
* Заполнитель (PADDING) может иметь переменную длину, представляет собой фиктивное поле, используемое для доведения размера заголовка до целого числа 32-битовых слов.
Здесь я привожу примеры программ, которые я использую для копирования и удаления таблиц. Необходимые для работы модули: DB, DBTables, DbiProcs,DbiErrs, и DbiTypes.
Вам всего лишь необходимо указать каталог расположения, исходное имя таблицы, каталог назначения и имя таблицы, куда будет скопирована исходная таблица и BDE скопирует таблицу целиком со всеми индексами. Процедура удаления в качестве входных параметров использует каталог расположения и имя таблицы, при этом BDE удаляет как саму таблицу, так и все файлы, связанные с ней (индексы и т.п.).
Для тестирования данные процедуры были помещены в новое приложение и мне пришлось их немного отредактировать, чтобы удалить некоторые зависимости, которые были связаны с главной формой приложения. Теперь процедуры являются полностью автономными и могут быть помещены в отдельный модуль. (Не забудьте включить его в список используемых модулей).
Я представляю на Ваш суд утилиту быстрого поиска по базе данных. Данная технология производит поиск по полям, преобразуя их значения в строки (все значения преобразуются в верхний регистр, включая действительные числа).
Данное решение может быть не самым быстрым, однако на поверку оно оказывается быстрее остальных, обнаруженных мною в Интернете (может вам повезет больше). Более того, представьте, что действительное значение какого-либо поля равно 4.509375354, а значение поиска равно 7, в этом случае утилита засчитает "попадание". Утилита удобна также тем, что она за один проход производит поиск более, чем в одном поле.
Это удобно, если у Вас имеются, к примеру, два поля с адресами. Это моя первая "серьезная" разработка, так как первое, с чем я столкнулся, изучая Delphi, стала необходимость включения процедуры поиска в любое приложение, работающее с базой данных. А так как поиск - вещь тоже сугубо специфическая, как и любое приложение, то мне пришлось побороть свой страх перед "крутым программированием" и попробовать написать свой поисковый механизм, удовлетворивший меня (и, надеюсь, других) своей скоростью и возможностью "мульти"-поиска по нескольким полям.
Я надеюсь, что он поможет тем программистам, кто часто сталкивается с подобными задачами. Технология довольно легка для понимания, но если у Вас возникли какие-либо вопросы, пошлите мне письмо электронной почтой, я буду рад Вам помочь. Посмотрев код, можно легко узнать поддерживаемые типы полей (добавить новые не составит проблем).