Ваше соглашение с ООО «Синдикат 13» вступает в силу после того, как вы получаете доступ к
информации, содержащейся в новом номере журнала «Системный Администратор»,
предварительно приняв условия Соглашения.
Все материалы в журнале или его электронной версии в формате PDF, передаваемые подписчикам
с помощью электронных почтовых систем, являются авторскими и охраняются Законом.
Все права на торговые марки, торговые знаки, знаки обслуживания и другие элементы
индивидуализации, упоминаемые в информации, указанной в журнале, принадлежат их
правообладателям.
№3(136)
март 2014
Ускоряем запуск 1С
В помощь разработчику
Ruby и многозадачность
Потоки и процессы
Мобильная торговля
Автоматизация работы
10 формул
для эффективного сисадмина
От Москвы до самых
до окраин. И даже дальше
Конкурс «СА» – ПрофИТ, 2013» завершен, итоги
подведены. Мы сделали это! Нам удалось привлечь
в свои ряды ИТ-специалистов со всей России, а также
из‑за рубежа. Ближнего и дальнего
Нам очень хотелось, чтобы наш конкурс помог выявить мо- Неожиданно, но заслуженно первый приз получила Еле-
лодых, перспективных и талантливых ИТ-специалистов, при- на Мезенцева – инженер-программист из города Асбест
влечь к ним внимание работодателей и открыть перед ребя- (Свердловская область). Мы лишний раз убедились в том,
тами новые возможности в карьере и образовании. что представление о том, что айтишник – мужская профес-
Потому и придуман был такой девиз: «Есть призвание? сия, не вполне верное.
Будет признание!» Огромное спасибо нашим экспертам и членам жюри. Они
Мы объявили об открытии «СА» – ПрофИТ, 2013» 2 сен- создали всю «подводную» часть айсберга – придумали и на-
тября 2013 года. Завершение конкурса планировалось в де- писали задания, а потом перелопатили все ответы.
кабре, но по просьбам участников мы продлили его еще Сердечно благодарим наших партнеров. Компании
на месяц, до 13 января 2014 года. «ИнфоТекс», SuperJob, «Лаборатория Касперского»,
Когда мы подводили итоги, то были приятно удивлены PentestIT , РАЭК поверили в нас и поддержали наш кон-
масштабами географии территорий, где читают «Систем- курс. Мы надеемся на продолжение сотрудничества и на то,
ный администратор». Наши читатели и участники конкурса что к победителям нашего конкурса уважаемые компании
живут не только в самых разных городах и селах России, проявят профессиональный интерес.
но и в странах зарубежья, как близкого, так и далекого. Бело- И самые добрые слова – нашим конкурсантам. Пусть
руссия, Украина, Киргизия, Казахстан, Таджикистан, Латвия, далеко не каждый из вас смог одолеть мудреные зада-
Испания, Америка, Израиль, Норвегия – вот далеко не полный ния, но вы старались, и вам было интересно, значит, в ИТ-
перечень государств, где живут и работают наши читатели. профессии вы – не случайно. А мастерство и опыт – дело
Над заданиями трудились и будущие ИТ-специалисты, наживное.
и специалисты состоявшиеся, и студенты, и люди уже не- Мы окончательно убедились в том, что конкурсы для ИТ-
молодые, и, что интересно, немало представительниц пре- специалистов нужны и важны.
красного пола. И мы обязательно будем проводить их еще не раз.
08 14 19
КОНКУРС Автоматизация
01 От Москвы до самых до окраин. И даже дальше. 26 Мобильная торговля. Рассмотрим как можно автоматизиро-
Конкурс «СА» – ПрофИТ, 2013» завершен, итоги подведены. вать работу торговых представителей.
Дмитрий Андриенко
СОБЫТИЕ
БЕЗОПАСНОСТЬ
04 FOSDEM 2014. Впечатления о крупнейшей Open
Source-конференции в Европе. Что представляет собой европей- Угрозы
ское сообщество Open Source, чем живет, и велико ли оно?
Денис Силаков 30 Кому уходят СМС? Угрозы для мобильных устройств гораздо
опаснее своих собратьев, созданных для обычных компьютеров.
Администрирование Вячеслав Медведев
08 ZEN Load Balancer. Построение отказоустойчивых 34 BYOD и безопасность: мифы и реальность. Активное
сервисов. Рассмотрим основы балансировки сетевой нагрузки, а также распространение стратегии Bring Your Own Device во всех секторах экономики
практическую ее часть на примере ZEN Load Balancer – продукта с открытым существенно ускоряет темпы «мобилизации» бизнес-процессов.
исходным кодом. Сергей Вахонин
Александр Руденко
базы данных
Управление
Изучаем «1С»
14 Сладкая парочка, или Как настроить работу SCCM
с WSUS. Рассмотрим основные настройки, возможности, достоинства 36 Ускоряем запуск 1С (для разработчика). Несколько
и недостатки SCCM 2012 SP1 по управлению обновлениями. приемов, которые позволяют в десятки раз ускорить время запуска 1С,
Сергей Болдин особенно после обновления конфигурации.
Олег Филиппов
Новый дистрибутив
39 РАУЗ в 1С – друг или враг? Часть 1. Развенчание
19 Microsoft Excel 2013. Работаем быстро и создаем мифов и поиск правды. Взглянем на новый режим учета затрат в 1С
отчеты наглядно. Поговорим о тех преимуществах, которые получили беспристрастно, основываясь на реальной практике.
пользователи, применяющие программу Microsoft Excel из пакета Microsoft Игорь Чуфаров
Office 2013 или Office 365, по сравнению с предшественником – Excel 2010. Разработка
Ольга Кулешова
Проектирование
Бэкап
46 Концепции моделирования MongoDb на примере
22 Резервное копирование для больших и маленьких. разработки социальных игр. Подходы к проектированию данных
Сравним различные типы архитектуры систем резервного копирования. в документно-ориентированных БД и в традиционных СУБД отличаются.
Алексей Бережной Александр Календарев
22 74 80
Визитка
FOSDEM 2014
Впечатления о крупнейшей Open Source-конференции в Европе
Что представляет собой европейское сообщество Open Source, чем живет, и велико
ли оно? Мне выпала возможность оценить все это, побывав в феврале в Брюсселе
на FOSDEM 2014
История движения свободного программного обеспече- Финансовую поддержку оказали Elasticsearch, Google,
ния (СПО) насчитывает уже три десятилетия – возраст HP, InnoGames, Oracle, O'Reilly, Qualcomm и Samsung. Раз-
по меркам ИТ очень солидный. За это время сторонники меры помощи не раскрываются, но вряд ли она была очень
СПО сумели создать и развивают достаточно много из- уж велика – запросы организаторов FOSDEM скромны,
вестных продуктов – ядро ОС Linux и системные компо- здесь нет никаких бесплатных фуршетов/банкетов, куль-
ненты от проекта GNU, браузер Firefox, офисный пакет турных мероприятий или хотя бы сувениров. Даже наобо-
LibreOffice и многое другое. Несмотря на поддержку ком- рот – всем желающим предлагается лично поучаствовать
мерческих компаний, эти проекты никогда не состоялись в спонсировании конференции, получив за это футбол-
бы без участия огромного числа энтузиастов, занимаю- ку с соответствующей надписью, если вы пожертвова-
щихся их развитием на досуге, в свободное от основной ли 25 евро. Если раскошелились на 50 евро, то вдобавок
работы время. к футболке можно было получить одну из книг O'Reilly в мяг-
Немаловажную роль в развитии СПО играет Интернет, кой обложке, а 100 евро давали право на книгу в твердой
позволяющий объединить усилия разработчиков со всего обложке. Продажей сувениров и атрибутики занимались
света. Однако никакая сеть полностью не заменит лично- на своих стендах и другие открытые проекты и некоммер-
го общения. Для разработчиков СПО из Европы отличным ческие организации – KDE, Gnome, Debian, Free Software
шансом встретиться сразу с большим количеством коллег Foundation, Mozilla и т.д.
является FOSDEM – крупная конференция, посвященная Главным же нефинансовым помощником вот уже кото-
исключительно СПО, ежегодно проводимая в Брюсселе. рый год является Брюссельский свободный университет
Возможность посетить FOSDEM в этом году выпала (Universite Libre de Bruxelles, ULB), на выходные практически
и мне – вместе с коллегами из дистрибутива OpenMandriva, полностью отдающий свои учебные помещения под нуж-
в разработке которого принимают участие и многие сотруд- ды FOSDEM. Университет немаленький (насчитывает бо-
ники РОСЫ, используя его в качестве своеобразной тесто- лее 20 тысяч студентов), и больших лекционных аудиторий
вой площадки для обкатки различных новшеств. у него хватает. А поскольку университет еще и современ-
ный, то в каждой аудитории имеются экран и прочие при-
Организация конференции надлежности для показа презентаций (правда, кроме ком-
В отличие от крупных индустриальных конференций пьютера, докладчикам все-таки приходилось использовать
FOSDEM организуется преимущественно силами добро- свои ноутбуки, и не всегда их системы хорошо дружили
вольцев из рядов сторонников свободного ПО. Посильную с проекторами).
помощь оказывают организации, так или иначе причастные Масштабность университета обусловливает и размах
к миру открытых и свободных продуктов. Основным спон- конференции – доклады шли параллельно в 23 аудиториях,
сором в этом году выступила компания Red Hat, немалую и всего за два дня выступили более 500 докладчиков. Сколь-
техническую помощь оказали Cisco (благодаря которой ко всего человек посетили конференцию, сказать сложно,
все участники были обеспечены Wi-Fi) и Google (видеотран- поскольку вход был абсолютно свободный и не требовал ни-
сляция выступлений). Кстати, организаторы решили прове- какой регистрации. На сайте FOSDEM организаторы скром-
сти небольшой эксперимент и сделали основную Wi-Fi-сеть но пишут «5000+». Но по моим наблюдениям в некоторых
(точнее, ее DHCP-сервер) доступной только по IPv6. Судя аудиториях присутствовали по крайней мере несколько де-
по упорной борьбе, которую вели многие участники при под- сятков человек, а кое-где – и более двух сотен. Так что чис-
ключении к Интернету, далеко не все настольные ОС оказа- ло 5000 может оказаться и заниженным – в кулуарах говори-
лись готовы к такому повороту событий. ли о 7000 посетителей.
Самое главное – практически все посетители действи- Тот факт, что новые продукты полностью открыты
тельно имели определенное отношение к свободному и не завязаны на закрытые компоненты типа СУБД Oracle,
ПО, являясь либо участниками разработки, либо пользо- делает их привлекательными и для других разработчиков.
вателями. Конечно, встречались и просто любопытствую- Более того, сотрудники компании на FOSDEM выражали
щие, желающие посмотреть, как выглядят Linux и другие активную заинтересованность в реализации поддержки си-
свободные приложения. Однако доклады были все-таки стем, отличных от Red Hat. В частности, они с энтузиазмом
рассчитаны на разработчиков и людей, участвующих в соз- восприняли предложение попробовать добавить поддерж-
дании и развитии открытых проектов (дизайнеров, популя- ку систем на основе Mandriva – в частности, десктопной
ризаторов и прочих нетехнических специалистов, состав- версии РОСЫ и OpenMandriva (которые также используют
ляющих немаловажную часть сообщества). пакеты формата RPM, но при этом имеют свой собствен-
В итоге конференция получилась крупной, очень на- ный формат метаданных для репозиториев). Собственно,
сыщенной и без «лишних» людей, зашедших просто по- для РОСЫ мы уже сделали пробную поддержку десктопных
глазеть. Зато стоящих докладов хватало – было что послу- версий в Katello и Pulp (для серверной версии доработок
шать. Давайте к ним и перейдем. не требуется, поскольку она основана на Red Hat). И могу
сказать, что особых проблем это не вызвало – компонен-
Red Hat ты нового стека RHN следуют духу открытого ПО, и дора-
Являясь основным спонсором, Red Hat представила доста- батывать их под свои нужды достаточно реально. С точки
точно много презентаций по своим продуктам и процессам зрения функционала все они уже вполне работоспособны,
разработки. Доклады, посвященные развитию существую- хотя еще есть над чем поработать, – например, заявленная
щих и созданию новых продуктов для корпоративного сек- на FOSDEM интеграция Katello и Foreman на данный мо-
тора, вызвали большой интерес системных администрато- мент сводится к наличию ссылки в веб-интерфейсе одного
ров и всех тех, кто имеет отношение к использованию Linux на веб-интерфейс другого.
на предприятиях. В частности, инженеры компании расска- Популярной темой являлись облачные технологии
зывали о будущих направлениях развития Red Hat Network и средства виртуализации – и на стенде, и в презентациях
(RHN) – набора инструментальных средств для управления можно было узнать немало интересного об oVirt, OpenStack,
компьютерным парком компании. Сейчас для развертыва- Xen и сопутствующих продуктах. Интересно, что на стенде
ния полноценной среды управления жизненным циклом Xen демонстрировалась машина с Qubes OS – операцион-
большого набора машин (включая развертывание и обнов-
ление на них ОС, инвентаризацию, мониторинг и прочее)
Рисунок 1. Логотип конференции FOSDEM
используется RHN Satellite Server, который можно развер-
нуть на предприятии и локально. Одним из спорных мо-
ментов во внутреннем устройстве Satellite Server является
использование Oracle в качестве СУБД, что не в лучшую
сторону сказывается на его стоимости.
Назвать Satellite Server полностью открытым решением
сложно, но компания последние годы движется в сторону
сообщества. Код компонентов Satellite Server был открыт
еще в 2008 году; открытая версия, развиваемая с помощью
сообщества, получила имя Spacewalk. В 2012-м в Spacewalk
появилась возможность избавиться от Oracle и использо-
вать PostgreSQL в качестве альтернативы. Однако в обо-
зримом будущем в RHN возможны более радикальные
Рисунок 2. Открытие FOSDEM – и это далеко не все участники! (Фото из галереи FOSDEM
изменения, а именно переход от Satellite/Spacewalk к со- в Google+)
вершенно новым продуктам, изначально открытым и ори-
ентированным на свободные технологии.
Одним из таких продуктов должен стать Foreman [1].
Он сейчас позиционируется как инструментарий для управ-
ления пулом реальных или облачных серверов, поддержива-
ющий все стадии их жизненного цикла. Foreman предостав-
ляет средства развертывания ОС на множество серверов
и интегрируется с системами управления конфигурацией –
такими, как Puppet и Chef, он уже сейчас вполне работоспо-
собен и может быть использован в реальной жизни.
Наряду с Foreman в новую линейку RHN должны во-
йти система управления репозитариями Pulp [2], инстру-
ментарий управления подписками Candlepin [3], а также
Katello [4], интегрирующий все эти компоненты в приятный
унифицированный веб-интерфейс и предоставляющий ряд
дополнительных возможностей по управлению и монито-
рингу большого парка машин.
ной системой, позволяющей запускать приложения раз- шанс, что мейнтейнер при исправлении одной ошибки
личных типов в изолированных доменах. Домен – факти- может случайно внести в пакет ряд непреднамеренных из-
чески виртуальная машина Xen, так что крах приложения менений (по сравнению с предыдущей версией), обуслов-
из одного домена не приведет к проблемам в остальных. ленных изменением сборочного окружения. Или потра-
Впрочем, пользователю о ВМ знать не обязательно – при- тит некоторое время, разбираясь, как этот пакет вообще
надлежность конкретного приложения тому или иному до- должен собираться. Как следствие, подготовка обновле-
мену можно определить только по цвету его окна. Конечно, ний может немного затянуться, а вместе с обновлениями
для запуска Qubes OS желательно иметь машину помощ- дистрибутива можно получить изменения, не описанные
нее, да и скорость запуска временами оставляет желать ни в каких комментариях. Справедливости ради отметим,
лучшего. Но если вы готовы пойти на такие жертвы ради что вероятность натолкнуться на подобную проблему до-
увеличения безопасности и стабильности, то эта ОС впол- статочно мала, но лучше бы ее не было совсем. В конце
не может быть вам полезна. концов почти все более-менее крупные команды давно пе-
Помимо информации о продуктах для конечных поль- решли на использование специализированных сред сбо-
зователей, сотрудники Red Hat делились некоторыми рок – Open Build Service, Koji, Launchpad или ABF (про ис-
подробностями внутренней кухни компании – рассказы- пользование которой для сборки ARM-порта OpenMandriva
вали о процессах разработки, процедурах тестирования мы рассказывали на FOSDEM вместе с коллегами из этого
и обеспечения качества. Так что разработчики могли по- дистрибутива).
заимствовать что-то для себя – как процессы, так и гото- В завершение рассказа о представленных на FOSDEM
вые технологии для их воплощения в жизнь. Например, дистрибутивах нельзя не отметить предназначенный
инструментарий Nitrate для управления тестами, Dogtail для детей DoudouLinux – ОС с простым интерфейсом, соот-
для автоматизации тестирования приложений с графиче- ветствующим набором приложений и основным разработ-
ским интерфейсом, cwrap для автономного тестирования чиком, который явно знает о нуждах детей не понаслышке
клиент-серверных программ. и сам временами был похож на большого ребенка.
Все рассматривавшиеся инструменты открыты
и бесплатны. К тому же инженеры компании и сами лю- Офисные пакеты…
бят использовать свободные инструменты от других ко- Интересной и разнообразной оказалась секция, посвящен-
манд – например, для инспекции исходного кода они приме- ная свободным текстовым редакторам. На ней рассказыва-
няют Gerrit, а при автоматизации тестирования приложений лось не только о возможностях соответствующих приложе-
с графическим интерфейсом – наработки проекта AT-SPI ний (прежде всего Libre- и OpenOffice), но и особенностях
(Assistive Technology Service Provider Interface), изначально их разработки. Не секрет, что Libre- и OpenOffice являются
предназначенного для обеспечения комфортного взаимо- одними из самых крупных и сложных открытых приложе-
действия людей с ограниченными возможностями и графи- ний. И не удивительно, что создатели средств разработки
ческой среды ОС. под Linux ориентируются именно на эти проекты.
На FOSDEM можно было услышать рассказ одного
Другие дистростроители из разработчиков, отладчика GDB, об улучшениях, реа-
Представительство других производителей дистрибу- лизованных в этом инструменте по запросу участников
тивов Linux выглядело скромно. А жаль, ведь наверняка LibreOffice, а команда Eclipse поведала, как они изменяют
SUSE и Ubuntu тоже могут рассказать немало интересно- свой продукт по аналогичным запросам из OpenOffice. Надо
го об опыте промышленного использования и внедрения сказать, что специфика проектов заключается не только
Linux. Однако Ubuntu своего стенда не имела, а из пре- в размере кода, но и в любви разработчиков к различным
зентаций были только общий рассказ об Unity и пове- новшествам и редко используемым возможностям языков
ствование о взаимодействии с сообществом и обычными и библиотек. В частности, оба проекта активно используют
пользователями. OpenSUSE, наоборот, была представлена C++, включая новшества C++11. Для упрощения отладки
только стендом, а о коммерческой версии дистрибутива такого кода разработчикам GDB пришлось немало потру-
и ее корпоративных функциях даже не у кого было поин- диться; впрочем, судя по активным дискуссиям в кулуарах,
тересоваться. у GDB есть еще много направлений для развития в этой
Debian также был представлен стендом и несколькими области.
докладами. Один из них, посвященный воспроизводимости Что касается новшеств для конечных пользовате-
сборки пакетов под эту систему, на мой взгляд, должен лей, то их тоже хватает – помимо традиционных работ
дать повод задуматься администраторам, использующим по улучшению поддержки различных форматов файлов
Debian в промышленных масштабах. Проблема дистрибу- от Microsoft, разработчики LibreOffice предлагают и неко-
тива и его мейнтейнеров заключается в отсутствии центра- торые изюминки, например, возможность использовать
лизованной сборочной инфраструктуры, которая бы слу- графический сопроцессор при вычислениях в электрон-
жила единственным источником пакетов в официальных ных таблицах LibreOffice Calc. Не забыты и корпоративные
репозиториях. клиенты – современный LibreOffice может использовать
В ситуации, когда каждый мейнтейнер собирает пакеты реестр Windows для хранения пользовательских настро-
на своей машине, на основе одного и того же исходного ек (коих насчитывается несколько тысяч) и предоставля-
кода у разных разработчиков могут получиться несколь- ет администраторам возможность управлять настройками
ко различные результаты. Штатные инструменты Debian свободного офисного пакета на машинах пользователей
решают эту проблему лишь частично. И есть ненулевой посредством групповых политик.
Для управления конфигурациями LibreOffice на Linux- Но главное – это общий позитивный настрой всех участ-
машинах докладчики рекомендуют использовать пакеты ников конференции и заряженность на работу, а также
с конфигурационными файлами, а для управления пакета- очень доброжелательная атмосфера и вежливое отноше-
ми на множестве машин рекламировали открытую утилиту ние друг к другу, что, к сожалению, не всегда встречается
Remote Root [5]. Теоретически Remote Root представляет в мире СПО, особенно при удаленном общении.
собой удобный веб-интерфейс, взаимодействующий с кли-
ентскими машинами по SSH. Однако на момент написания ***
статьи (равно как и на момент доклада) скачать инструмент Тот факт, что на организуемое преимущественно энтузи-
с сайта все еще было нельзя. Видимо, авторы еще не соч- астами мероприятие уже не первый год съезжаются не-
ли свое творение достаточно работоспособным, чтобы вы- сколько тысяч человек, активно увлеченных разработкой
ложить его на всеобщее обозрение. Что же, подождем. свободного ПО, наглядно демонстрирует большой интерес
к этой сфере в Европе (подчеркну, что конференция прежде
…и прочее, прочее, прочее всего европейская, участников из других частей света было
Существенный минус наличия большого количества парал- немного). Поражает и количество докладов: более 500 вы-
лельно идущих секций – это физическая невозможность ступлений – очень серьезная цифра, а ведь организаторы
посетить все интересные презентации. Впрочем, большин- одобряли далеко не все поступавшие заявки.
ство презентаций и видеозаписи выступлений можно найти Достаточно контрастно FOSDEM смотрится на фоне
на сайте fosdem.org. отечественного мира СПО, да и ИТ в целом. По масшта-
Помимо рассмотренных выше докладов проходили сек- бу до FOSDEM сильно не дотягивают даже крупнейшие
ции «по интересам»: для разработчиков Java, Ada, Perl российские ИТ-мероприятия, такие как «Форум Тех-
и Smalltalk, для администраторов и пользователей MySQL, нологий» от Mail.ru, Yet another Conference от Yandex
PostgreSQL и BSD. Обсуждалась очередная серия попыток или CEE-SECR. Что уж там говорить о конференциях
решить вопросы междистрибутивного взаимодействия – для сторонников СПО – о сотнях докладов и тысячах по-
например, предоставить вендорам способ собрать прило- сетителей нам пока можно только мечтать. Будем надеять-
жение, пригодное для работы сразу во многих дистрибути- ся, что в будущем движение СПО в нашей стране станет
вах (в принципе ничего нового – основные рекомендации только набирать обороты. А пока что приятно отметить,
сводятся к помещению всех имеющихся зависимостей что в аудиториях Брюссельского университета можно было
внутрь приложения). встретить и представителей нашей страны, пусть и немно-
Много внимания уделили нетехническим обсуждени- гочисленных. EOF
ям – рассмотрению юридических вопросов, различных
аспектов взаимодействия с сообществом и т.п. Немало до- 1. Проект Foreman – http://theforeman.org.
кладов имело научный уклон и рассматривало алгоритмы 2. Проект Pulp – http://www.pulpproject.org.
и инструменты для решения вполне практических задач – 3. Проект Candlepin – http://candlepinproject.org.
например, целая секция была посвящена обработке гра- 4. Проект Katello – http://www.katello.org.
фов. Наконец, был стенд Google Summer of Code, активно 5. Сайт Remote Root – http://remoteroot.org.
агитировавший студентов и разработчиков участвовать
в этой программе. Ключевые слова: FOSDEM, СПО, форум.
Рисунок 3. Qubes OS: для каждого рода задач – свой домен Рисунок 4. Сторонники СПО – совсем не обяза-
тельно суровые бородатые админы
Визитка
Также к примитивным методам можно отнести баланси- Балансировка на прикладном уровне (L7)
рование вручную. Суть метода в разделении всех пользо- Динамично развивающийся вид распределения нагрузки
вателей на несколько групп и подключение их к различным на уровне приложений. Такие балансировщики еще назы-
серверам. вают контроллерами доставки приложений. Ориентированы
Например, в организации работает два терминальных на работу с высокоуровневыми протоколами. В основном
сервера одинаковой производительности. Половине поль- HTTP/HTTPS.
зователей на рабочем столе создается ярлык для подключе- Здесь, как и в случае с предыдущим видом, описывают-
ния к первому серверу, а оставшимся – ко второму. Допол- ся правила. При установке соединения на некотором порту
нительно, на случай отказа текущего узла, создается ярлык пакеты перенаправляются на указанные адреса и порты вы-
для подключения к другому серверу, который будет являться числительных узлов. Но при выборе конкретного сервера
резервным. для ретрансляции на него трафика учитываются тип клиен-
Пожалуй, подобный метод применим лишь в неболь- та, URL, содержимое cookie, запрашиваемый контент и не-
ших организациях, причем целью такого распределения которые другие параметры.
является именно отказоустойчивость, а не балансировка. Кроме этого, проверка доступности сервиса на вычисли-
При этом нет необходимости в дополнительном оборудова- тельных узлах выполняется значительно интеллектуальнее.
нии и программном обеспечении, но придется немного по- Например, может запрашиваться некоторый URL и прове-
работать руками. ряться его содержимое.
Еще одной отличительной чертой этого типа от L4 явля-
Балансировка на транспортном уровне (L4) ется то, что серверы в кластере могут быть не идентичными.
Это самый универсальный и распространенный механизм. Например, одни узлы могут поставлять статические данные
Одинаково применим для TCP и UDP-протоколов, соответ- типа фото и видео, а другие серверы доставляют контент
ственно им можно распределять трафик практически любо- с помощью скриптов, HTML и CSS. В таком случае могут
го сервиса. быть созданы правила для каждого типа контента с особы-
На этом уровне во входящих пакетах проверяется лишь ми алгоритмами перенаправления трафика на различные
IP-адрес и номер порта назначения. В случае совпадения группы серверов.
с одним из правил трафик будет попросту перенаправлен В этой категории также существует еще один класс
на указанные серверы с помощью механизма sNAT в уста- профильных балансировщиков типа Citrix NetScaler [2].
новленном порядке. Содержимое пакетов не проверяется. Это решение специализируется на распределении нагрузки
Также нет никаких особых техник проверки доступности и повышении производительности продуктов Citrix (XenApp,
вычислительных узлов. Выполняется простая проверка до- XenDesktop), а также веб-приложений. Кроме продвинутой
ступности адреса и порта. В случае если порт открыт, сер- балансировки, он умеет выполнять компрессию контента,
вер считается доступным и к нему продолжают отправлять- мощное кэширование, обеспечивает шифрование, а также
ся запросы. анализ трафика и его фильтрацию. Это лишь небольшая
По такому механизму работает большинство популярных часть его возможностей, которые заслуживают отдельной
программных и аппаратных балансировщиков, в том чис- статьи.
ле Network Load Balancing (NLB), используемый в Windows
Server. Также к этой категории можно отнести популяр- Почему ZEN
ные нынче облачные сервисы типа Elastic Load Balancing Прежде чем мой выбор остановился на ZEN Load Balancer,
от Amazon, упомянутого выше. я опробовал еще несколько кандидатов, среди которых
были классический HAProxy и не менее известный Linux Конкретно в моем случае пользователей почты и терми-
Virtual Server. нального сервера было немного меньше. Но главной за-
Все трое являются проектами с открытым исходным ко- дачей являлось прозрачное переключение на резервный
дом. Касательно функционала они практически равны. Ос- сервер в случае выхода из строя основного, и с ней Zen LB
новными требованиями были легкость настройки и удобство справляется отлично.
управления.
Во время установки и в процессе настройки дистрибути- Основные возможности Zen LB
ва Zen LB присутствует чувство целостности, все работает >> Классическая балансировка на транспортном (L4)
слаженно и предсказуемо. Именно благодаря этому пункту уровне для протоколов TCP, UDP. Несколько алгорит-
выбор был сделан в его пользу. мов распределения: по кругу, по весу (Weight), по при-
оритету (Priority) или по хешу.
Что собой представляет Zen LB >> Продвинутая балансировка на прикладном (L7) уровне
Это дистрибутив Linux, в его основе лежит переработанный для HTTP/HTTPS.
Debian 6, от которого, по сути, оставлена лишь базовая сис- На обоих уровнях (L4, L7) возможен возврат пользовате-
тема. Добавлены собственный балансировщик и средства ля в открытую сессию.
управления им. Идентификация уникальной сессии клиента возможна
Первая версия была выпущена в 2011 году, текущий по нескольким алгоритмам:
стабильный релиз 3.03. Обновления дистрибутива выходят >> по IP-адресу клиента;
по нескольку раз в год. >> по данным cookie;
Данный продукт представлен в двух редакциях: >> по основному заголовку при базовой аутентификации;
>> Бесплатная версия существует, к сожалению, только >> по запрашиваемому URL;
в 32-битном варианте, не имеет технической поддерж- >> по настраиваемому полю заголовка HTTP.
ки. Возможна SSL-акселерация. В этом режиме Zen LB будет
>> Платная 64-битная версия, стоит порядка 850 долла- выполнять роль SSL-прокси. Это означает, что канал станет
ров. В стоимость также включается техническая под- шифроваться от клиента и до балансировщика, а взаимо-
держка. действие самого Zen LB с реальными серверами фермы бу-
Получается, что единственным техническим ограничени- дет проходить без шифрования.
ем бесплатной версии является предел по производитель- >> Поддерживаются VLAN.
ности и пропускной способности. >> Допускается работа нескольких балансировщиков
У меня не было возможности произвести нагрузочное те- в кластерном режиме.
стирование, но по тем данным, что я нашел в сети, 32-битный >> Есть встроенная система резервного копирования
Zen LB с легкостью справляется с тысячей пользователей и восстановления конфигурации.
Exchange, а также с несколькими сотнями терминальных >> Присутствует система мониторинга и отображения на-
сессий. грузки в виде графиков.
вой интерфейс, как в примерах выше. Это интерфейс уп- стройки и параметры, включая созданные ранее фермы,
равления кластером. По этому адресу всегда будет досту- будут воссозданы на втором хосте.
пен текущий мастер. Управлять кластером в дальнейшем необходимо через
Далее в разделе Setings → Cluster из выпадающего созданный для этого виртуальный интерфейс. При отказе
списка выбираем созданный ранее виртуальный интер- мастера переключение на резервный хост будет выполнено
фейс. Жмем Save VIP, и становятся доступными поля Local в течение одной-двух секунд.
hostname и Remote hostname.
Во втором поле указываем имя второго хоста Zen LB ***
и его IP-адрес. Подробно изучив существующие сегодня механизмы ба-
Далее вводим на втором хосте пароль суперпользо- лансировки сетевой нагрузки, а также способы обеспече-
вателя (root). После указания пароля необходимо выпол- ния беспрерывной доступности сервисов, протестировав
нить Сonfigure RSA Connection between nodes для установ- на практике возможности программного продукта Zen Load
ки соединения между хостами. Balancer и оценив его работоспособность, могу сказать,
И последним действием выбираем из выпадающего спи- что этот продукт является достойнейшим представителем
ска тип кластера (Cluster type): своего класса. Его бесплатной версии с головой хватит
node1 master and node2 backup automatic failback – многим предприятиям для обеспечения доступности корпо-
это режим, в котором текущий хост будет являться ма- ративных сервисов.
стером, и все подключения будут проходить через него. Удобное и простое управление, а также штатные сред-
Второй же хост будет находиться в резерве и станет ства кластеризации и резервного копирования делают ра-
мастером только при отказе первого, при возвращении боту с этим продуктом приятной и практически беззабот-
в строй которого, он вновь станет резервным. ной. EOF
node1 or node2 can be masters – все так же, как и в пер-
вом варианте. Единственное отличие в том, что резерв- 1. Домашняя страница Amazon Route 53 – http://aws.amazon.com/
ный хост, став мастером, им и останется, даже если route53.
первый хост вернется в строй. Этот вариант подходит 2. Обзор возможностей Citrix NetScaler – http://habrahabr.ru/
в случае, если оба хоста равны по производительности, post/177329.
и кто из них будет мастером в тот или иной момент, не- 3. Балансировка up-линков с помощью Zen LB – http://michael.
важно. bizow.com/zen-load-balancer.
Жмем Configure cluster type, и менее чем через минуту
в поле Cluster status появятся сообщения об успешной сбор- Ключевые слова: отказоустойчивость, балансировка нагрузки,
ке кластера и о доступности его членов. После этого все на- кластер.
Визитка
Сладкая парочка,
или Как настроить работу SCCM с WSUS
Рассмотрим основные настройки, возможности, достоинства и недостатки
SCCM 2012 SP1 по управлению обновлениями
Обновление ПО парка компьютеров предприятия играет >> обновления могут устанавливаться стороннему софту
важную роль в стабильности и безопасности работы ИТ-ин- совместно с SCUP (System Center Update Publisher) [2].
фраструктуры. Здесь основным помощником является роль Выбрав работу с SCCM, мы отказываемся от управления
WSUS в Windows Server, но такая возможность реализова- контентом с помощью WSUS. Так как Configuration Manager
на и в SCCM, которая хотя полностью и не заменяет WSUS, умеет скачивать обновления и предоставлять их клиентским
но расширяет его возможности дополнительным функцио- ПК, эти обязанности он берет на себя. И тут всплывает один
налом. WSUS находится уже в долгой эксплуатации на пред- важный недостаток – в SCCM отсутствует возможность по-
приятиях, поэтому не будем заострять на нем внимание, лучения метаданных. Поэтому полностью о WSUS забыть
а рассмотрим его совместную работу с SCCM. нельзя, и Configuration Manager «сотрудничает» с ним в этом
направлении. Несмотря на имеющиеся минусы, возможнос-
SCCM vs WSUS. Достоинства и недостатки ти SCCM дают более эффективное управление обновлени-
Основная задача WSUS заключается в подмене сервера ями, нежели WSUS, поэтому разберемся с основными прин-
Microsoft Update. Процесс обновления можно разделить ципами работы и настройками некоторых функций.
на два этапа: получение необходимых данных c Microsoft
Update и предоставление «добытого» материала клиент- Требования к SCCM
ским компьютерам. Однако не все так гладко, как хотелось Для управления обновлениями с помощью Configuration
бы. Например, в данной роли отсутствуют функция поиска Manager необходимо выполнить некоторые условия:
по скачанному контенту (для подробного анализа), а также >> сервер WSUS должен быть версии 3.0 SP2 или выше [3].
установка обновлений без ведома пользователя с примене- Например, для Windows Server 2008 и выше с ролью
нием функции пробуждения компьютера (Wake on Lan). устанавливается версия 3.0 SP1;
В свою очередь SCCM получил немалый функционал, >> необходима консоль администратора WSUS, которая
который расширяет возможности и устраняет слабые сто- является указателем его местонахождения;
роны WSUS. Но, чтобы понять, насколько Configuration >> должна быть включена служба автоматического обнов-
Manager превосходит своего «младшего брата», рассмот- ления;
рим его преимущества: >> наличие двух ролей: SUP (Software Update Point), запу-
>> сотрудники компании имеют возможность принимать скающей WSUS и разрешающей использовать его ка-
участие в обновлениях системы или ПО, при этом про- талог SCCM для сканирования клиентов, а также RSP
стой и удобный пользовательский интерфейс не вызы- (Reporting Service Point), которая отвечает за отчет-
вает у них каких-либо сложностей; ность;
>> поддерживается NAP (Network Access Protection) [1] – >> на сервере должно быть достаточно свободного диско-
набор правил для дополнительной безопасности кор- вого пространства под файлы обновлений. Также нуж-
поративной сети, компьютеры, не прошедшие провер- но учитывать рост папки winsxs [4] на системном диске.
ку NAP, могут направляться на обновление;
>> предоставление загруженных файлов пользователь- Принцип работы
скому ПК в нерабочее время; Сразу отметим, что, отказавшись от управления с помощью
>> функция сохранности устаревших обновлений, чтобы WSUS, ранее созданные GPO использоваться не будут, и не-
в дальнейшем по каким-либо причинам возвратиться которые настройки переопределятся новыми. Итак, для по-
к ним; лучения метаданных первым делом Configuration Manager
>> реализован удобный поиск по скачанному контенту; обращается к WSUS. Каждый сервер имеет свою базу дан-
ных, поэтому для актуальности контента между ними проис- и требуемых обновлений. По одобрению системного адми-
ходит синхронизация. А чтобы о новинках узнал и клиент- нистратора SCCM скачивает их (ответственность на роли
ский ПК, SCCM (роль Management Point) предоставляет ему SUP) и подготавливает для дальнейшего распространения
информацию о месте расположения WSUS. Между пользо- (занимается роль Distribution Point), а клиенту сообщает-
вательским компьютером и WSUS происходит сверка вер- ся о необходимости «обновиться». После установки нуж-
сий обновлений. Информация о недостающих данных по- ных файлов клиент снова отсылает отчет в Configuration
мещается в репозиторий WMI, и формируется отчет. Далее Manager. И только теперь системному администратору мож-
он отсылается в SCCM (в Management Point), где и попадает но понять новое состояние софта и операционной системы
в базу. После этого консоль отображает список доступных пользовательского ПК.
В SCCM реализовано два типа раздачи скачанных дан- Обновления скачиваются не сразу, чтобы не загружать
ных. Первый происходит в ручном режиме, который при- ненужные файлы, первоначально «добываются» метадан-
меняется в случае небольшого количества обновлений ные, которые представляют собой «ссылку» (их характери-
или при необходимости тщательного контроля каждого стику).
из них. При этом время работы требуется гораздо большее, Получение метаданных происходит при синхрониза-
нежели со следующим типом распространения. Ко второ- ции баз между серверами SCCM и WSUS. Данный процесс
му относится автоматический режим, который не требует происходит автоматически по расписанию либо вручную,
к себе особого внимания и времени. по нажатию кнопки Synchronize Software Updates, кото-
Теперь перейдем от теории к практике. Будем считать, рая находится на панели меню Software Library→ Software
что WSUS уже функционирует, и разберемся с основными Updates→All Software Updates.
настройками Configuration Manager. После этого в списке появятся метаданные с разным цве-
товым оформлением иконок. Зеленые относятся к новым
Подготовка рабочей среды актуальным обновлениям. Оранжевый цвет означает начало
Сначало инсталлируем роль SUP: заходим в Administration → процесса старения. Происходит перекрытие более «свежи-
Sites → Add Site System Role, заполняем необходимые поля ми» файлами, устаревающие удаляются не сразу, а имеют
и активируем Software Update Point. Далее следует настрой- небольшой цикл жизни. Это реализовано для того, чтобы
ка параметров роли, что делается в разделе Configure Site была возможность их сохранить. Черный говорит о полной
Components. На вкладке Sync Settings определяем сервер неактуальности существующих данных (см. рис. 1).
синхронизации (WSUS или Microsoft). В Classification нужно По каждому обновлению, выделив его, можно просмо-
указать все или только необходимые типы обновлений (кри- треть краткую информацию (ID, описание, дату релиза
тические и накопительные, драйверы и сервис-паки и дру- и другое), а по второму щелчку мыши в появившемся окне
гие). Products содержит перечень программных продуктов о нем отобразится исчерпывающая информация.
(Windows 7, Office 2010, Skype и прочие). Затем во вклад-
ке Sync Schedule устанавливаем расписание для синхро- Об удобствах управления скачанным контентом
низации, а в Languages – языковые версии обновлений. Что делать, когда имеется огромное количество записей
Supersedence Rules позволяет переопределить старые об- и требуется среди них найти необходимые? В этом случае
новления новыми, при этом первые будут вычищаться. удобно воспользоваться:
Чтобы пользовательский компьютер узнал и в дальней- >> поиском по одному или нескольким критериям (по дате,
шем получил самые «свежие» файлы, нужно произвести типу, производителю, продукту, языковой версии, мо-
настройку клиентской части. Она включает в себя актива- дели и многим другим), выбор которых появляется
цию агента (значение True) и установку расписания скани- при нажатии на кнопку Add Criteria. А чтобы каждый раз
рования обновлений. Для этого заходим в раздел Software не создавать один и тот же критерий поиска, его мож-
Update, пройдя путь Administration → Client Settings → Default но сохранить (на панели инструментов кнопка Saved
Client Settings. Searches) и в дальнейшем только вызывать;
Рисунок 2. Отчет
>> параметрами отображения, которые несут дополни- можно оставить нетронутыми, а при необходимости внести
тельную и полезную информацию. Например, скача- в них изменения.
ны файлы или нет, установлены ли дата релиза, тип, Заполнив все необходимые данные,мы с помощью цве-
группировка, имя модели и так далее (см. рис. 1). Вклю- товой индикации (статус в виде кружка) можем наблюдать
чение их происходит просто: нужно нажать правой за состоянием процесса раздачи контента: желтый цвет оз-
кнопкой мыши, наведя курсор на панель отображения, начает распространение, зеленый – удачное завершение,
и в списке выбрать нужный параметр. а красный свидетельствует о сбое.
>> группировкой контента для работы только с требуемым
объемом данных. Для этого выделяем найденные мета- Автоматическое распространение
данные и в контекстном меню выбираем пункт Create Устранения ручной работы при раздаче обновлений можно
Software Update Group. добиться с помощью автоматического режима. Создание
Теперь нужно получить обновления. Для этого необходи- такого правила происходит в разделе Software Library →
мо нажать правой кнопкой мыши на группе и выбрать пункт Software Updates → Automatic Deployment Rules вызовом
Download. По окончании процесса скачивания они будут контекстного меню и выбором пункта Create Automatic
иметь статус Yes. На этом подготовка завершена, перейдем Deployment Rule. В появившемся окне выполняется ряд
к следующему этапу – распространение. тех же настроек, которые производились для ручного режи-
ма, только «все в одном». Таким образом, создается группа
Управление обновлениями вручную для обновлений, пакет и правило их раздачи.
В контекстном меню группы обновлений выбираем пункт
Deploy. Появляется окно, где нужно ввести большое коли- Troubleshooting
чество данных. Рассмотрим самые необходимые парамет- После всех проделанных настроек на сервере SCCM убе-
ры. В разделе General вписываем понятное имя распростра- диться в правильности их работы позволяют отчеты и жур-
нения и выбираем коллекцию компьютеров. В Deployment налы. Отчет создается в разделе Monitoring → Reporting →
Settings особое внимание нужно уделить типу раздачи. Reports → Software Updates. Задав необходимые парамет-
При выборе параметра Required обновления будут уста- ры, получаем исчерпывающую информацию (см. рис. 2)
навливаться по требованию системы или ПО, а Available об инсталляции как по всем, так и по каждому обновлению
означает доступность и инсталляцию по необходимости. в отдельности. Количество отчетов гораздо больше, нежели
После этого настраиваем расписание (раздел Scheduling). в WSUS, и они более наглядны. В журналах Windows Server
Тут нужно иметь в виду такое понятие, как крайний срок можно увидеть только поверхностную (общую) информа-
(deadline time), на основании которого содержимое группы цию серверов WSUS и/или SCCM. Поэтому, пройдя путь
инсталлируется принудительно. Так, в SCCM обновления C:\Program Files → Microsoft Configuration Manager → Logs,
распространяться в открытом виде не могут, они «заворачи- файлы SUPSetup.log, WCM.log, wsyncmgr.log, WSUSCtrl.
ваются» в пакет, создание которого происходит в разделе log помогут увидеть полную картину работы Configuration
Deployment Package, присвоив ему имя и указав путь к ска- Manager относительно обновлений.
чанным файлам. Далее выбираем точку распространения
в Distribution Point и языковые версии в Language Selection. Полномочия пользователя
Некоторые разделы (User Experience, Alerts, Download Сотруднику компании доступна консоль SCCM («Пуск →
Settings, Download Location) с настройками по умолчанию Microsoft System Center 2012 → Software Center»), в кото-
рой виден перечень необходимых обновлений (см. рис. 3), но сделать, чтобы операция обновления происходила еже-
что позволяет устанавливать их самостоятельно. Весь про- дневно в обеденный перерыв (см. рис. 4).
цесс заключается в фиксации и нажатии кнопки Install Функция Wake On Lan [7] позволяет произвести «про-
при ранее выбранном параметре Available. Если был выбран буждение» компьютера, находящегося в режиме сна
тип Required, то в консоли для пользователя дополнительно или в выключенном состоянии. Данной функцией полезно
появится кнопка Scheduling, которая позволяет составить воспользоваться при необходимости инсталлировать фай-
расписание инсталляции файлов на любое удобное время. лы в нерабочее время. Активация ее происходит в разделе
При этом отсутствуют лишние окна с вопросами и настрой- Deployment Settings фиксацией галочки Use Wake-on-Lan to
ками, что позволяет пользователю быть более уверенным wake up clients for required deployment при настройке рас-
в своих действиях. Если сотрудник не будет устанавливать пространения обновлений для типа Required.
обновления, то они применятся сами на основании крайнего
срока. По завершении работы чаще всего требуется пере- ***
загрузка компьютера, которую можно принять сразу либо Возможности Configuration Manager 2012 SP1 предоставля-
отложить на более подходящий момент. Если установка сис- ют новый уровень управления системными и программными
темных и программных обновлений не требует временных обновлениями, более гибкую и комфортную работу, нежели
рамок, то на этом этапе основные настройки сервера SCCM только развернутый WSUS. А системному администрато-
можно считать завершенными. Однако такие действия могут ру будет удобно воспользоваться данным преимуществом.
привести к замедлению работы компьютеров в течение тру- В результате он получит не только защищенность корпора-
дового дня. Но, подобрав удобное время инсталляции фай- тивной сети, но и повысит свою квалификацию ИТ-специа-
лов, можно предотвратить эту проблему. листа. EOF
Визитка
Microsoft Office 2013 доступен с февраля 2013 года, однако Диаграммы – быстрый способ построения диаграмм
и сегодня не так часто можно встретить пользователя, ра- по выделенному диапазону ячеек.
ботающего в этой версии программного обеспечения. В ос- Итоги – по выделенным данным произвести различные
новном встречается Office 2010 или Office 2007. Возможно, вычисления как по строкам, так и по столбцам: сумма, сред-
это связано и с тем, что Office 2013 требователен к версии нее количество (счетчик), процент от итога, нарастающий
операционной системы Windows и может работать только итог. При необходимости для данных одной таблицы можно
в Windows 7 или Windows 8, а может, и с низкой информиро- делать вычисления как по строкам, так и по столбцам, при-
ванностью о возможностях новой версии, так как многим ка- меняя нужные средства анализа поочередно (см. рис. 1).
жется, что и старые неплохо справляются с поставленными
задачами. Но следует помнить, что нет предела совершенству!
Рисунок 1. Расчет процента от итогов с помощью быстрого анализа
Мгновенное заполнение
Для обработки данных по принципу текстовых функций, таких
как объединение, разбиение, извлечение, можно применять
«Мгновенное заполнение». Пользователем задается образец
дальнейшего заполнения путем ввода данных с клавиатуры
в одну ячейку, и после применения мгновенного заполнения
будут получены результаты в остальных ячейках.
Например, если есть три ячейки, в которых располагают-
ся Фамилия Имя и Отчество, то, задавая в четвертой ячейке
образец «Фамилия И.О.», применим команду «Мгновенное
заполнение», и программа все строчки заполнит аналогич-
но. В большинстве случаев такое заполнение позволяет
Рисунок 2. Фильтр значений рядов и категорий
получить результат быстро и без применения каких-либо
формул. Однако не всегда программа может правильно по-
нять задаваемый образец, тогда придется, как и прежде, ис-
пользовать текстовые функции.
Мгновенный анализ
Быстрый анализ таблиц (экспресс-анализ) – это новая
возможность Excel 2013, которая позволяет с легкостью
увидеть, как будут выглядеть данные, если к ним приме-
нить условное форматирование, спарклайны, диаграммы
или расчет итогов.
Форматирование – возможность применения к выделен-
ным ячейкам элементов форматирования, таких как гисто-
грамма, набор значков, цветовая шкала. Быстро выделять
значения больше указанного, а также первых (наиболь-
ших) 10% от количества данных.
Новинки в таблицах
Преобразуя обычный диапазон ячеек в «Таблицу», можно
получить новый вид фильтра – «Срезы». Это интерактивные
Рисунок 4. Отчет PowerView по данным одной таблицы
фильтры для полей таблицы, которые размещаются на ли-
сте и позволяют быстро и наглядно выполнять фильтрацию
данных, а также показывать связь данных одного поля
(столбца) с другими. Срезы ускоряют и упрощают филь-
трацию данных, но полностью ее не заменяют. Впервые
их можно было встретить при работе со сводными таблица-
ми в Excel 2010-й версии, теперь же их можно использовать
и при работе с таблицами.
рать одно значение или смежные значения, произвольный PowerPivot сначала появился в Excel 2010 как надстрой-
выбор значений невозможен. ка, которую было необходимо дополнительно скачивать
Появился анализ табличных данных с использованием и устанавливать. В 2013-й версии он уже является над-
«Модели данных». Источником может быть любой диапазон стройкой в программе, поэтому его нужно будет всего
данных, но лучше применять именованный диапазон или таб- лишь подключить. PowerPivot позволяет обрабатывать дан-
лицу. Модель данных расширяет возможности анализа. ные из внешних источников, в которых количество записей
Получив результат расчета, порой необходимо его проа- в таблицах значительно превышает возможности по коли-
нализировать по составляющим. В этом случае можно изме- честву строк в Excel. Источников может быть множество,
нить макет отчета самостоятельно или при использовании между ними можно создавать связи, а также выполнять
модели данных применить новый инструмент – «Экспресс- различные вычисления. Сама обработка может показаться
просмотр» (экспресс-тенденции) с детализацией данных. пользователю более сложной на фоне работы с таблицами
Например, получив отчет с суммами продаж по каждому Excel, ибо используется множество подходов, как и при ра-
наименованию, можно быстро выбрать интересующее поле боте с базами данных.
для детализации до региона, дилера и т.д. PowerView – это отчеты (см. рис. 4), которые можно по-
Добавилась операция при обработке с применением мо- строить по данным одной или нескольких таблиц с созда-
дели данных – «Число различных элементов». С ее помощью нием связи; также он дает информацию как в табличном,
подсчитывается, сколько уникальных значений есть в исход- так и в графическом виде. В одном отчете можно построить
ной таблице при каких-нибудь критериях. Например, можно множество вариаций, причем при фильтрации получается
рассчитать по каждому товару, сколько всего единиц было прекрасная визуализация данных. Например, выбирая
поставлено, сколько всего было поставок, а также узнать на линейчатой диаграмме название «набор «Прелесть»,
количество уникальных поставок (заказов) – т.е. заказов можно сразу увидеть в таблицах, сколько каждый клиент
с различным количеством единиц по каждому товару. потратил денег на этот товар, а также суммы продаж в каж-
Использование моделей данных позволяет строить отчеты дом представленном городе. При этом круговая диаграм-
по нескольким моделям (таблицам) с созданием связей в про- ма показывает общие суммы продаж всех наименований
цессе работы в отчете. Нет необходимости предварительно (фон) в каждом городе, и яркий фрагмент в центре – значе-
«связывать» несколько таблиц между собой с применением ния для выбранного товара.
формул, увеличивая как размер самих таблиц, так и размер Такую прекрасную визуализацию данных можно по-
файла. В самой программе Excel при построении отчетов ре- строить в считанные мгновения! Это не может не радовать
ализованы принципы реляционных баз данных – информация пользователя, постоянно тонущего в огромных массивах
хранится в плоских таблицах, которые между собой могут данных, которые требуют наглядности и легкости пони-
быть связаны. Однако в отчетах с использованием моделей мания.
есть и ряд ограничений: нельзя будет применять группировку
полей и создавать вычисляемое поле. ***
Я выбрала Office 2013 сразу, поскольку новые возможно-
PowerView и PowerPivot сти позволяют сделать работу в программе более удобной
В Excel 2013 можно выделить несколько инструментов по сравнению с предыдущей версией, и чем больше ты ра-
для бизнес-аналитики – это PowerPivot и PowerView, кото- ботаешь, тем лучше это понимаешь. EOF
рые позволяют хранить, обрабатывать и наглядно представ-
лять огромные массивы данных. Ключевые слова: Office 2013, Excel 2013, офисный пакет.
Визитка
Резервное копирование
для больших и маленьких
Сравним различные типы архитектуры систем резервного копирования
для предприятий разного масштаба и выдадим рекомендации для построения
и модернизации систем сохранения данных
Рисунок 1. Децентрализованная топология резервного копирования Рисунок 2. Централизованная топология резервного копирования
гут использоваться и файловый сервер, и сетевое храни- серверу напрямую. Кроме того, необходимость избегать
лище. Если ИТ-инфраструктура строится на базе решений одновременной работы большого числа заданий приводит
от Microsoft, то очень хорошим выбором будет файл-сер- к тому, что расчет времени и выявление таких «наложений»
вер на бесплатной UNIX-like ОС, например, Linux или BSD, в расписании заданий вручную при большом количестве
с установленным Samba или FTP-сервером. В этом случае объектов практически невозможно. В этом случае потре-
различие в платформах может послужить дополнительной буется использование некоей единой консоли управления,
гарантией безопасности в случае вирусного заражения что означает переход на централизованную топологию.
или инсайдерской атаки.
Также применяется смешанная топология, когда исполь- Архитектура системы резервного копирования
зуются элементы централизованной и децентрализованной крупного предприятия
составляющей. Обычно это происходит, когда специали- Сейчас мы вместо того, чтобы рассматривать так называе-
зированные агенты не в состоянии обеспечить резервное мый средний или «middle» уровень, сразу перейдем к рас-
копирование данных всех сервисов и приходится использо- смотрению системы резервного копирования уровня боль-
вать некоторые ухищрения. Классическим примером явля- шого предприятия (Enterprise). Будет легче зайти с другого
ются предварительная выгрузка данных базы SQL-сервера полюса, чтобы показать принципиальное различие между
в промежуточный файл и его последующее копирование начальной и конечной ступенью.
обычными средствами резервирования файл-сервера. Естественно, решения масштаба крупного предприятия
принципиально отличаются от начального уровня. Поэтому,
Архитектура для небольших инфраструктур если на малых инфраструктурах часто применяется децен-
У небольших ИТ-инфраструктур малого и среднего бизне- трализованная топология, то на уровне Enterprise – обяза-
са как раз и применяется децентрализованная схема. Чаще тельно централизованная. Нет смысла экономить на лицен-
всего применяют схему с единой точкой сбора данных, на-
пример, некое сетевое хранилище, куда программы резерв-
Рисунок 3. Схема резервного копирования небольшого предприятия
ного копирования, установленные на серверах, складывают
копии (см. рис. 3). Функции администратора резервного ко-
пирования, как правило, ограничиваются установкой и на-
стройкой специализированного программного обеспечения
на серверах, подготовкой сетевого хранилища, вниматель-
ным составлением расписания, чтобы задания по возмож-
ности не пересекались между собой по времени.
У этой схемы есть единственное преимущество: деше-
визна и возможность создания подобной системы резерв-
ного копирования из подручных средств. При этом суще-
ствует немало минусов, таких как трудности организации
транспортировки резервной копии для хранения за терри-
торию предприятия (off-site), а также сложности управления
и масштабирования. Когда объектов станет слишком мно-
го, администратор резервного копирования уже не сможет
управлять данной системой, просто подключаясь к каждому
зиях программ-агентов резервного копирования, потому «окно бэкапа» (предпочтительное время для запуска зада-
что потеря данных обойдется колоссальными убытками. ний резервного копирования). В рамках Enterprise-решения
Изменяется и сама идеология построения системы. управление резервными копиями, временными носителями
Обычно применяется трехуровневая схема. На самом верх- производится через консоль управляющего сервера. Под-
нем уровне находятся объекты управления системой ре- черкну: все операции, включая такие задания, как форма-
зервного копирования: выделенный сервер со специализи- тирование носителей, извлечение ленточных картриджей
рованным ПО и консолью управления. Копия консоли может из считывающих механизмов и так далее. При этом даже
быть установлена на компьютер администратора резервно- если используемое оборудование позволяет самостоятель-
го копирования для удобства работы. Именно с этого уровня но управлять носителями, делать это не рекомендуется,
обычно начинается установка системы резервного копиро- за исключением аварийных ситуаций. Проблема заключает-
вания по принципу сверху вниз (см. рис. 4). ся в том, что программа управления резервным копирова-
Следующий «слой» – это уровень хранения резервных ние может «не знать» о производимых действиях непосред-
копий. На нем находятся так называемые медиасерверы, ственно на оборудовании и выдавать ошибку или выполнит
или серверы хранения данных. Они используются для трех нежелательные действия, например, сотрет ценную резерв-
целей: подключение внешних накопителей и управление ную копию.
ими, непосредственное хранение резервных копий в режи- На самом нижнем – третьем – уровне находятся програм-
ме файл-сервера, а также в качестве промежуточного, или, мы-агенты резервного копирования. Именно они собирают
как его еще называют, кэш-сервера для временного хране- данные, которые мы хотим сохранить, и заботливо склады-
ния копии перед ее постоянной записью на ленту. Исполь- вают их на системах хранения медиауровня. А само управ-
зование такого сервера ускоряет процесс записи и восста- ление агентами производится опять же из системы управле-
новления данных и позволяет более экономно использовать ния системой резервного копирования, то есть из консоли
предприятия.
Для чего нужен весь этот «огород»? Дело в том,
Рисунок 4. Система резервного копирования крупного предприятия
что при разрастании инфраструктуры администратор ре-
зервного копирования не в состоянии вручную отследить
все задачи, политики, номера носителей и другую информа-
цию касательно всей системы резервного копирования. Вся
эта рутина перекладывается на управляющую часть backup-
системы. В ведении администратора остаются только функ-
ции настройки заданий и мониторинг событий. Все осталь-
ные задачи, включая управление носителями, оповещение
о результатах выполнения заданий или восстановления,
проверки целостности копии (и даже антивирусной провер-
ки для некоторых систем) и так далее, возлагаются на ав-
томатизированный центр управления системой резервного
копирования уровня предприятия.
При такой организации можно легко делегировать полно-
мочия, например, назначив роль оператора резервного ко-
пирования, который может поменять записанные носители
на подлежащие перезаписи, запустить-остановить задание,
восстановить данные из копии, но не имеет прав на полное
управление системой. Таким образом, можно решить мас-
су проблем начиная с тех, что связаны с уходом в отпуск
Рисунок 5. Система резервного копирования среднего предприятия
или на больничный администратора резервного копирова-
ния, и заканчивая освобождением квалифицированных спе-
циалистов для более эффективного использования челове-
ческих ресурсов.
Иногда используются некоторые дополнительные эле-
менты, например, специализированные серверы для раз-
вертывания программ-агентов под ту или иную платформу,
сетевые хранилища, серверы для мониторинга и построе-
ния отчетов, но их присутствие просто расширяет данную
архитектуру в плане удобства использования и повышения
эффективности. В основе так или иначе все равно остается
трехуровневая схема и централизованная топология.
На очень крупных предприятиях встречается распреде-
ленная система резервного копирования, при которой от-
дельные трехуровневые структуры объединены между собой
в одну сеть взаимодействия. При этом один из управляющих
серверов может стать центральным узлом, через который
администратор контролирует всю распределенную инфра- плывчатой границы между этими уровнями. Если уход от ре-
структуру. Такая схема применяется при наличии у пред- шений начального уровня происходит, когда администратор
приятия филиалов, а также при использовании резервного резервного копирования начнет терять управление своей
центра обработки данных (ЦОД). В этом случае можно даже системой, то пограничную дату жизненно необходимо-
говорить о некоей четырехуровневой модели управления. го перехода от среднего уровня до крупного предприятия
Но такие «монстры» встречаются нечасто в первую очередь определить довольно трудно. Чаще всего администраторы
из-за высоких затрат на подобную архитектуру. резервного копирования и руководство ИТ-инфраструкту-
рой руководствуются принципами «работает – не трогай»
Архитектура для среднего уровня и «пока вроде все устраивает». К сожалению, ждать, когда
Архитектура среднего уровня предполагает двухуровневую решение само себя исчерпает, чревато переходом систе-
структуру. В отличие от крупных предприятий здесь управ- мы в нерабочее состояние. Чем дольше затягивается ожи-
ление совмещено с медиасервером, а программы-агенты дание, тем вероятнее, что ИТ-ифраструктура останется
так и остаются на своем нижнем уровне (см. рис. 5). без рабочей резервной копии в момент аварии.
На среднем уровне предполагается использовать цен- Помимо всего прочего, такие переходы обходятся не-
трализованную топологию, но часто из-за неполноты дешево и в финансовом плане. В итоге все происходит
или недоработки программных продуктов приходится вы- по принципу «скупой платит дважды».
кручиваться, организуя смешанный вариант. Эти системы В то же время при покупке Enterprise-решения обычно
получили довольно широкое распространение в первую не требуется производить некую массовую закупку лицен-
очередь из-за ошибочной оценки их возможностей в бо- зий для программ-агентов «на вырост», большого количе-
лее отдаленной перспективе. Получается, что на стартовом ства медиасерверов и так далее. Можно вначале купить
уровне внедрение такой архитектуры вводит предприятие ядро системы резервного копирования из управляющей
в ощутимые затраты, что побуждает его держаться до по- части, одного медиасервера и небольшого числа программ-
следнего за уже внедренное решение, даже в ущерб акту- агентов для критичных сервисов, а уже потом постепенно
альности и эффективности. расширять архитектуру по мере роста ИТ-инфраструктуры
На мой взгляд, применение систем резервного копирова- в целом.
ния среднего уровня уместно, когда есть некая уверенность, В этом случае стоимость полноценного Enterprise-
что бизнес не вырастет больше определенного «потолка». решения будет ненамного выше, чем системы среднего
Например, отдельный самостоятельный филиал крупной уровня. Мало того, на данном этапе можно, скрепя сердце,
компании со своим штатом управления и специфичными пойти на компромисс и организовать вначале смешанную
бизнес-процессами. Или торговая сеть в небольшом горо- топологию, при которой копирование критичных сервисов
де вдали от транспортных артерий и крупных населенных выполняли бы специализированные агенты, а некритич-
пунктов. ных – встроенные средства резервного копирования. Глав-
Рассмотрим наиболее перспективный вариант для посте- ное – заложить нормальную масштабируемую архитектуру
пенного развития системы резервного копирования по прин- с учетом дальнейшего развития бизнеса.
ципу «от простого к сложному». Поэтому лучше не искушать судьбу и внедрять систему
уровня крупного предприятия сразу, как только бизнес по-
Проблема выбора при организации системы казал устойчивый рост и вышел из состояния стартапа.
резервного копирования
Разумеется, идеальный вариант – с самого начала приобре- ***
сти специализированное решение резервного копирования В этой статье мы рассмотрели классификацию систем ре-
от известного производителя, с централизованной тополо- зервного копирования по уровням. Очевидно, что рассма-
гией, возможностью делегирования полномочий бэкап-опе- тривать организацию сохранения данных можно только
ратору и так далее. в привязке к нуждам бизнеса и специфике предприятия.
К сожалению, бизнес, находящийся в стадии первона- В то же время нельзя идти на поводу «экономии на спичках».
чального развития, может не располагать необходимыми Своевременная модернизация способна предотвратить бу-
финансовыми средствами для приобретения такой серьез- дущие проблемы, а бесконечное откладывание принятия
ной и дорогой системы. решения о переходе на систему, адекватную растущему
Поэтому чаще всего используют некую систему началь- предприятию, может стать причиной ситуации, когда бизнес
ного уровня с децентрализованной или смешанной тополо- остался без резервных копий и потерял крупные суммы де-
гией, построенную на бесплатном решении. Впоследствии нег из-за необходимости проводить миграцию уже разрос-
планируется переход на систему более высокого уровня шейся инфраструктуры. EOF
развития уже с централизованной топологией.
Если же говорить о выборе системы на момент такой 1. Бережной А. Резервное копирование. Теория и практика. Кра-
модернизации, то я настоятельно рекомендую сразу пред- ткое изложение. //«Системный администратор», №2, 2010 г.,
почесть Enterprise-решение. Да, вот так сразу: от систе- приложение «БИТ» –http://bit.samag.ru/archive/article/1074.
мы резервного копирования начального уровня до уровня 2. Бережной А. Учебный фильм «Некоторые вопросы резервно-
Enterprise. Дело в том, что переход от решения среднего го копирования» – http://www.youtube.com/watch?v=KciuKreyM
уровня до уровня крупного предприятия не менее сложен, 3w&feature=youtu.be.
чем любой другой. При этом нахождение на данном этапе
может затянуться на непростительно долгий срок из-за рас- Ключевые слова: резервное копирование, архитектура.
Визитка
Мобильная торговля
Рассмотрим на примере компании, занимающейся оптовой торговлей соками,
как можно автоматизировать работу торговых представителей
Компании, занимающейся оптовой торговлей, необходимо Давайте кратко рассмотрим причины, по которым мо-
реализовывать закупленную у производителей продукцию, бильная торговля стала доступна оптовым компаниям:
иначе залежавшийся на складах товар будет приносить за- >> Появление на рынке относительно недорогих смарт-
траты. фонов и планшетов, которыми можно «вооружить»
Классическая схема оптовой торговли подразумевает каждого торгового представителя.
найм менеджером торговых представителей, которые обхо- >> Унификация мобильных ОС и появление доступных ин-
дят розничные торговые точки и предлагают товары в соот- струментов разработки приложения под такие ОС, сей-
ветствии с прайсом. Если клиента удалось уговорить кпить час на рынке имеются три мобильные ОС – это Google
товар, торговый представитель делает заявку, которую при- Android, Apple iOS и в меньшей доле Microsoft Windows
носит оператору, вносящему данные в информационную Mobile.
систему. >> Удешевление доступа в сеть Интернет операторами се-
тей GSM, что дает возможность выходить в Интернет
Обзор рынка и конкурентных преимуществ с мобильного устройства без больших денежных зат-
С развитием информационных технологий некоторые оп- рат.
товые компании начали прибегать к автоматизации, заку- >> Развитие поддержки технологии глобального позицио-
пая программное и аппаратное обеспечение и интегрируя нирования GPS в мобильных устройствах.
их в свою ИТ-инфраструктуру. Совокупность же технологий, >> Повышение общей компьютерной грамотности руково-
программ и аппаратного обеспечения для автоматизации дителей и работников торговли.
называется мобильной торговлей или реже мобильными Рассмотрим преимущества, которые дает мобильная тор-
продажами. говля оптовой компании.
Рисунок 1. Мобильное приложение Рисунок 2. Мобильное приложение Рисунок 3. Мобильное приложение Рисунок 4. Служба обмена данными
>> Просмотр списка цен на товары – экономия на печати Разработчик также заявляет о скорой доступности при-
прайсов, необходимости поддержки их актуальном со- ложения под iOS, но на момент написания статьи у него
стоянии. были проблемы по добавлению приложения в App Store,
>> Просмотр свободных остатков товаров на складе – так что приложение работает только под ОС Android.
нет необходимости уточнять это по телефону. После установки запускаем приложение, вводим лицен-
>> Возможность просмотра задолженности конкретного зионный код.
розничного покупателя. Видим «вкладочный» интерфейс, мы находимся
>> Руководитель продаж может отслеживать на карте пе- на вкладке «заказы», переключения осуществляются
ремещение торговых представителей. сверху на панели вкладок. Состав вкладок можно выбирать,
>> Возможность сократить расходы на операторов, вво- как в настройках мобильного устройства, так и расширения,
дящих заявки клиентов в вашу информационную сис- интегрированного в 1С (см. рис. 1- 3).
тему.
Сегодня мобильная торговля образовала свой неболь-
Рисунок 5. Конфигурация с префиксами
шой рынок, на котором действует несколько компаний, под-
держивающих определенные технологии и схемы. Наибо-
лее популярные:
>> Ассистент торговли от antirius.org.
>> Мобильный менеджер от компании «Автоматизация
бизнеса».
>> TopLine Мобильная торговля.
>> Smartup.
>> Агент Плюс.
>> Агентоид.
>> Айагент.
>> АСУМТ ОПТИМУМ CDC (группа компаний).
>> АСМТ Наполеон.
>> Меркурий.
>> Моби-С.
>> Пан Агент.
>> Флюгер-Продажи.
>> AkiTorg.
>> SalesWorks.
>> ST-Мобильная Торговля (ГК Системные Технологии).
>> PalmOrder.
>> Remote Sales Agent (RSA).
>> «Мобильный Агент» на Android и Windows Mobile от ком-
пании «9Бит».
>> I-MARKT на Android и Windows Mobile от компании
«АЙМАРКТ».
>> Assistex. Облачный сервис мобильной торговли.
Сегодня мы будем рассматривать вариант с внедрением
от «Агент Плюс» [1].
Подробные скриншоты мобильного приложения можно Служба прослушивает порт 5555, так что напоминаю вам
посмотреть на сайте «Агент Плюс» [2], разработчик также еще раз, необходимо создать соответствующие правила
предоставляет демоверсию мобильного приложения с огра- для брандмауэра.
ниченным функционалом, ее также можно скачать с сай- Настройка правил производится через панель управ-
та [3]. ления (см. рис. 4), в пункте «Папка обмена» указываем от-
На серверную часть устанавливается специальное при- дельную папку, в нее будет происходить выгрузка и загрузка
ложение «Агент Плюс: Служба обмена данными», которое файлов обмена для каждого мобильного устройства в фор-
можно скачать с [4], после установки у нас появляется уста- мате xml.
новленная служба, которая будет отвечать за обмен данны- Интеграция с информационной системой, в нашем слу-
ми с мобильными устройствами. чае – «1С:Предприятие 7.7 конфигурация. Комплексная вер-
сия 4.5», происходит путем установки расширения в теку- Для обмена запускаем обработку «Обмен данными
щую конфигурацию. с мобильным устройством», которая находится в пункте
Чтобы выполнить процесс установки, необходимо с сай- «Меню → Агент Плюс → Обработки → Обмен данными»
та разработчика [4] скачать тестовую конфигурацию, взять (см. рис. 9).
*.md-файл (для 1С 8 *.cf) и через функцию «Сравнить/ Нажимаем на кнопку «Выгрузить», и начинается выгруз-
Объединить» в режиме конфигурации добавить объекты ка данных в формате xml, файлы попадают в папку обмена
от «Агент Плюс», в моем случае они имеют префикс кпк в подпапку агента.
(см. рис. 5). Для загрузки данных от мобильных приложений необхо-
Разработчик готовит расширение под конфигурацию димо нажать на кнопку «Загрузить», после окончания про-
«Управление торговлей для платформы 8.2» и «Торгов- цесса в мобильном приложении произвести настройки об-
ля и склад для платформы 7.7», но данные модули можно мена данными.
успешно интегрировать и с другими, например, комплекс- Для этого вызываем контекстное меню, переходим в пункт
ной для 7.7, как в нашем случае, сделав небольшие дора- настройки, настройки обмена данными, вводим внешний ре-
ботки. альный IP-адрес, порт и сохраняем.
После интеграции запускаем 1С в режиме предприя- Далее загружаем данные в мобильное устройство пунк-
тия и видим новый пункт меню в интерфейсе (см. рис. 6), том «Загрузить» (в мобильном приложении), процесс может
для платформы 8.1 и «Управления торговлей версии 10» продолжаться до 10 минут в зависимости от скорости кана-
меню будет выглядеть примерно так же, для «Управления ла и размера базы данных, для выгрузки данных нажимаем
торговлей 11 на платформе 8.2» с управляемыми формами пункт меню «Выгрузить».
это будет отдельная плитка.
Настройка расширения мобильной торговли начинается ***
с пункта «Настройка параметров для мобильного приложе- Технологии автоматизации в большинстве решений
ния» (см. рис. 7). Пристальное внимание нужно обратить по мобильной торговле не отличаются от приведенной
на настройки обмена, где требуется указываем порт и IP- выше, как и, собственно, процесс настройки.
адрес приложения обмена данными, которое мы устанавли- Развертывание системы трудоемкое, и требует от специ-
вали ранее. алиста знаний в области системного администрирования,
Остальные настройки не так важны для работоспособно- программирования, а также принципов торговли для кон-
сти системы, они уточняют, какие данные выгружать из ин- сультации заказчика и обучения работе с системой торго-
формационной системы, а какие нет. вых представителей. EOF
При изменении настроек необходимо каждый раз гене-
рировать файл для службы обмена, это делается с помо- 1. Компания Агент Плюс – http://www.agentplus.ru.
щью обработки «Генерация файла настроек для «Агент 2. Скриншоты мобильного приложения – http://www.agentplus.ru/
Плюс СОД», чтобы открыть ее, переходим в «Меню → agentplus/android/screens.
Агент Плюс → Обработки → Генерация настроек для Агент 3. Демоверсия мобильного приложения – http://www.agentplus.ru/
Плюс СОД». downloads/apmtdemo.
После этого в папку обмена добавляется требуемый нам 4. Агент Плюс: Служба обмена данными – http://www.agentplus.ru/
xml-файл с настройками. downloads/#ms.
Теперь необходимо ввести в систему все мобильные уст-
ройства, на которые мы установили приложения от «Агент Ключевые слова: мобильная торговля, обмен данными, мобильные
Плюс» и которые закрепили за торговыми представите- приложения.
лями. Для этого переходим в пункт «Меню → Справочни-
ки → Агенты» и добавляем всех торговых представителей
Рисунок 9. Обработка – обмен данными
(см. рис. 8).
Со всех мобильных устройств вам нужно собрать иден-
тификаторы, без них обмена данными не будет, чтобы
это сделать, переходим в настройки мобильного прило-
жения и выбираем пункт «Информация», там выписываем
идентификатор.
Выглядит он примерно так: 1C9B5F71-2E9D-0976-3836-
353530393031, далее все просто: в настройках переходим
в пункт «Мобильное устройство» и создаем для каждого
агента мобильное устройство с соответствующим иденти-
фикатором.
Теперь для обмена необходимо произвести настрой-
ку-выгрузку по «Фирмам», «Типам цен», «Номенклатуре»
и «Складам», для этого переходим в «Меню → Справочни-
ки → Настройки фирм», указываем в поле таблицы «Вы-
гружать» галочку для нужных позиций. На этом базовые на-
стройки закончены, можно переходить к процессу обмена
данными.
Визитка
Вячеслав Медведев,
старший аналитик отдела развития компании «Доктор Веб»
Возможность получения нужной информации, легкость об- не представляют себе масштаб проблемы – но это особый
щения, покупки в один клик, управление своими финанса- разговор) и игнорируют даже элементарные требования
ми – никто не будет отрицать, что все это не только удобно, безопасности и осторожности при работе с веб-ресурсами,
но и приятно. Но вот беда: не все, что продается под видом позволяющие избежать серьезных проблем при действиях
меда, действительно им является. Рост удобства не сопро- в Интернете или в процессе обмена данными со своими
вождается ростом безопасности. Статистика безжалостна: знакомыми. В итоге мы получаем большой интерес крими-
большинство сайтов и приложений так или иначе содержит нальных структур (именно структур, а не только отдельных
уязвимости. хакеров) к мобильным устройствам.
Вредоносные программы для платформы Android – Согласно статистике основное внимание вирусописа-
это не миф. При этом можно утверждать, что угрозы для мо- телей направлено на Android – число вредоносных про-
бильных устройств по целому ряду причин гораздо опаснее грамм для других мобильных ОС исчисляется единицами.
своих собратьев, созданных для обычных компьютеров. В 2013 году количество вредоносных программ для Android
>> Операционные системы для мобильных устройств, увеличилось на 122%. А по сравнению с уровнем распро-
создававшиеся изначально исключительно для мак- странения мобильных угроз в 2010-м, когда первые вре-
симально удобного личного пользования и работы доносные приложения для Android только появились, рост
на достаточно слабых аппаратных конфигурациях, составил 9280% (см. рис. 1).
не имеют в своем составе развитых средств без- На графике можно увидеть любимую всеми состави-
опасности – возможности разделения прав доступа телями отчетов параболу – так что велика вероятность,
к различным объектам, ограничения по установке при- что в 2014-м количество вредоносных программ увеличит-
ложений, иных ограничений из обязательного для без- ся более чем в два раза: период поиска, когда вирусопи-
опасности списка родительского контроля. сатели нащупывали возможности для внедрения троян-
>> Смартфоны (да и многие планшеты) снабжены виде- цев в мобильные устройства, давно миновал, и наработки
окамерой, микрофоном, средствами позиционирова- прежних лет сейчас активно используются на практике.
ния. Это позволяет злоумышленникам контролировать При этом злоумышленники не только воспроизводят
каждый шаг жертвы и следить за ее личной жизнью – старые идеи: идет активный поиск новых путей отъема де-
большинство домашних компьютеров не дают таких нег. Число семейств вредоносных программ достигло 331 –
возможностей для слежки. Более того, опасность мо- за прошедший год их рост составил 185%. Выше мы уже
жет предоставлять даже аккумулятор: еще в 2011 году говорили, что мобильные телефоны дают хакерам много
исследователь Чарли Миллер сообщал о возможно- возможностей, но большая часть троянцев покушается
сти перепрограммирования аккумуляторного микро- исключительно на денежные средства – случаи использо-
контроллера в целях перегрева батареи. вания вредоносных программ в террористических целях
>> Как правило, смартфоны подключаются к сети Ин- или ради шантажа если и есть, то исчисляются единица-
тернет (а для чего они еще нужны?), не имея даже ми. И самым популярным семейством троянцев является
средств защиты, которые считаются необходимыми Android.SmsSend (он же Trojan-SMS.AndroidOS в термино-
для обычных компьютеров, и это тоже не усиливает логии другого отечественного разработчика антивирусных
их безопасность. решений), занявший без малого половину рынка мобиль-
Добавим к списку проблем и то, что пользователи ных угроз (см. рис. 2).
устройств, как правило, не являются специалистами по без- Троянцы появившегося еще в 2010 году семейства
опасности (а специалисты по безопасности, к сожалению, Android.SmsSend предназначены для скрытой отправки
дорогостоящих СМС-сообщений на короткие номера, рас- Заметным событием, связанным с троянцами Android.
сылки сообщений по адресной книге и подписки пользо- SmsSend в прошлом году, стало обнаружение в сентябре
вателей на платные контент-услуги. В отдельных случаях самого крупного за последнее время мобильного ботнета,
троянцы SmsSend могут проторить дорогу иным угрозам, состоящего из Android-устройств. По оценкам специалис-
перенаправляя пользователя на зараженные веб-страницы тов компании «Доктор Веб», в состав бот-сети входило
или внедряя в устройство другие вредоносные программы, более 200 тысяч смартфонов и планшетных компьюте-
в том числе утилиты скрытого удаленного управления. Сей- ров. Для заражения мобильных устройств использовалось
час в семейство входит 1377 модификаций. сразу несколько СМС-троянцев, которые маскировались
Троянцы могут распространяться как в виде самостоя- под инсталляторы легитимного программного обеспече-
тельных приложений (.apk), например, под видом обновле- ния, такого как веб-браузеры и клиенты для работы с со-
ний (как правило, браузера или флеш-плеера) или инстал- циальными сетями (см. рис. 3).
ляторов известных приложений, так и внутри бесплатных Основным предназначением Android.SmsBot является
легитимных программ, модифицированных злоумышлен- все та же несанкционированная отправка премиум-сооб-
никами. После запуска зараженных приложений пользо- щений в целях получения злоумышленниками незаконного
ватель получает ожидаемый функционал, поэтому неже- заработка. Однако в данном случае параметры работы тро-
лательные действия, такие как отправка СМС-сообщений, янца не указываются заранее в конфигурационных файлах
обычно остаются незамеченными. или в самом коде – SmsBot получает указания к действию
В качестве примера обертки, в которую заворачивались непосредственно с принадлежащего киберпреступникам
для маскировки Android.SmsSend, можно привести попу- управляющего сайта, что в значительной мере расширяет
лярные мультимедийные проигрыватели, сборники изобра- их возможности. Многие версии троянцев Android.SmsBot
жений (в этом случае число загрузок превысило 12 тысяч!), способны по команде выполнять и другие действия, на-
а также приложения для составления диет и гороскопов. пример, загрузку прочих вредоносных программ, удале-
При запуске вредоносные приложения предлагали пользо- ние определенных СМС, сбор и отправку информации
вателям получить доступ к запрошенному контенту, после о мобильном устройстве на удаленный сервер, соверше-
чего извлекали скрытых внутри самой программы троян- ние звонков. Отдельные модификации могут запрашивать
цев и начинали процесс их установки. состояние баланса мобильного счета с помощью USSD-
На развитие семейства Android.SmsSend (как и иных или СМС-запросов и в зависимости от результата получать
вредоносных программ) сильно повлияла коммерциали- от управляющего сервера указание отправить на номер
зация рынка киберпреступности. Зачастую вредоносные сообщения определенной стоимости.
файлы создаются с учетом конкретных интересов зло- Возможность перехвата СМС-сообщений роднит SmsBot
умышленников – например, они могут собирать данные с более опасными программами, например, Android.Spy.
жителей определенного региона. Так, маскировка под ле- Такие приложения либо имитируют интерфейс настоящих
гитимные программы все еще остается наиболее популяр- мобильных банковских клиентов и обманным способом за-
ным методом на территории Китая, о чем свидетельствует ставляют пользователей предоставить свои персональные
появление в 2013 году целого ряда модификаций троянцев, данные, либо устанавливаются под видом важных про-
угрожавших китайским пользователям и, по сообщениям граммных обновлений или сертификатов и в дальнейшем
в сети Интернет, попавших и в Россию. позволяют злоумышленникам перехватывать все входящие
Рисунок 1. Динамика роста количества описаний Android-угроз в вирусной базе Dr.Web Рисунок 2. Наиболее многочисленные Android-угрозы согласно объему записей вирусной
в период с 2010 по 2013 год базы компании «Доктор Веб»
СМС-сообщения, в которых может содержаться различная запуска вредоносного приложения пользователю демон-
секретная информация, например, одноразовые mTAN- стрируется лицензионное соглашение, в конце которого
коды систем «Банк-Клиент», что в свою очередь дает воз- расположена незаметная гиперссылка на правила, где
можность сокрытия или модификации СМС-подтверждений говорится о том, что при согласии с предложенными ус-
о совершении платежа или перевода. ловиями с устройства будут отосланы СМС на короткие но-
В известных случаях вредоносная программа распро- мера и с баланса пользователя будут списаны денежные
странялась по следующей схеме: потенциальная жертва, средства.
пытавшаяся воспользоваться услугами банка через веб- Троянец Android.SmsSend мог проникать к жертве с по-
браузер на уже зараженной машине, получала уведомле- мощью Android.Androways.1.origin, обнаруженного в ми-
ние о необходимости авторизации по номеру мобильного нувшем апреле. Данный вредоносный модуль был создан
телефона, для чего на мобильное устройство предлага- злоумышленниками под видом вполне обычной рекламной
лось установить специальное приложение, размещенное системы, демонстрирующей разнообразные информаци-
в официальном каталоге Google Play. Это приложение онные сообщения и позволяющей создателям игр и при-
представляло собой банковского троянца для мобильной ложений зарабатывать на своих программных продуктах,
платформы Android. интегрируя в них данный модуль. Как и многие легальные
Мало просто создать вредоносную программу, ее нужно рекламные платформы, Android.Androways.1.origin был
внедрить на мобильное устройство жертвы. В случае с мо- способен демонстрировать push-уведомления, выводи-
бильными приложениями еще совсем недавно для этой мые в панель состояния операционной системы, однако
цели жертве нужно было разлочить устройство, теперь в этих сообщениях нередко отображались заведомо лож-
в этом нет необходимости: вредоносные программы про- ные предупреждения о необходимости загрузки обновле-
никают и в официальный каталог приложений ОС Android – ний для тех или иных программ. Согласившись на загрузку
Google Play. Более того, при этом зачастую даже отсутству- такого «обновления», пользователи подвергались риску
ет необходимость получения на инфицируемом смартфоне стать жертвой мошенников (см. рис. 4).
или планшете администраторских привилегий – современ- Общее число пострадавших пользователей могло пре-
ным троянцам для успешной работы достаточно стандарт- высить 5,3 млн человек, что стало одним из крупнейших
ных пользовательских прав. Злоумышленники, загрузив- случаев заражения Android-устройств вредоносными при-
шие такие приложения в систему Google Play, составляют ложениями, которые распространялись с использованием
описания с учетом содержания самых популярных запро- каталога Google Play за все время его существования.
сов, что облегчает их попадание в результаты выдачи по- Особо опасным нужно признать распространение тро-
исковой системы Google Play. янцев через QR-код, который содержит ссылку, ведущую
Регистрация аккаунта разработчика обходится кибер- на вредоносную программу.
преступникам всего в 25 долларов. Эти скромные затра- Опасность заключается в том, что содержимое QR-
ты окупаются с лихвой, поскольку до изъятия программы кода может быть никак не связано с описанием его на-
из Google Play ее успевают скачать десятки тысяч пользо- значения – пользователи и не подозревают, что последует
вателей. за попыткой отсканировать код. Это увеличивает потенци-
Нужно отметить, что в случае загрузки троянца с Google ал распространения, так как такой код можно разместить
Play заражение как таковое может и не произойти. После на любом сайте, а содержащаяся в нем ссылка все равно
Рисунок 3. Географическое распределение зараженных устройств по оценкам специалистов компании «Доктор Веб» Рисунок 4. Ложное предупреждение, выдавае-
мое Android.Androways.1.origin
будет вести на вредоносный объект. С использованием А как всему этому безобразию могут противостоять
данного способа распространялся, например, троянец антивирусные программы? К сожалению, на ситуацию
Android.SmsSend.15. с антивирусной защитой сложно смотреть с оптимизмом.
Если вредоносная программа была установлена Да, количество загрузок самого популярного антивируса –
без разрешения пользователя, злоумышленникам нужно Dr.Web для Android – превысило 30 миллионов. Но если
скрыть ее на инфицируемом устройстве либо максималь- даже среди стационарных компьютеров, необходимость
но усложнить ее удаление. И в 2013 году значительно уве- антивирусной защиты которых признается всеми, число
личилось число случаев применения вирусописателями незащищенных машин по некоторым оценкам достига-
специальных приемов, затрудняющих проведение анализа ет 30%, то что говорить о мобильных устройствах, если
вредоносных Android-приложений, а также усложняющих большинство пользователей считают мифом существова-
процесс их обнаружения и удаления на мобильных устрой- ние вредоносных программ для них.
ствах. Техника обфускации может существенно затруднить Не облегчает ситуацию и фрагментация рынка мобиль-
обнаружение вредоносной программы не только антивиру- ных устройств – производители антивирусных средств
сами, но и системой входного контроля Bouncer, предна- не могут ориентироваться только на мощные устройства
значенной для предотвращения попадания таких программ с топовой конфигурацией: необходимо обеспечить защиту
в Google Play. всех устройств, в то время как знания обо всех известных
Одной из наиболее распространенных методик самоза- вредоносных программах реализуются десятками мега-
щиты в Android-троянцах стало использование стандарт- байт антивирусных баз.
ной системной функции администратора устройства, ког- Усугубляет проблему и то, что для мобильных устройств
да приложению даются расширенные полномочия, такие антивирус зачастую является единственным средством за-
как возможность управления блокировкой экрана, запроса щиты, обязанным взять на себя оборону от всех угроз.
пароля при выходе из ждущего режима и даже выполне- Единственным выходом из сложившейся ситуации яв-
ние сброса параметров к заводским установкам с потерей ляется опора на продукты, создаваемые на основе инно-
всех имеющихся данных – при использовании преступни- вационных разработок – ПО, сочетающее традиционную
ками этой возможности попытка стандартным способом устойчивость к воздействию вредоносных программ с при-
удалить входящую в список администраторов вредоносную менением технологий, открывающих возможность исполь-
программу приводит к ошибке. зования компактных вирусных баз. Например, технология
И если в общем случае такая ситуация не является Origins Tracing™ for Android позволяет определять новые
проблемой для опытных пользователей (троянца всего семейства вирусов или перекомпилированные варианты
лишь необходимо лишить соответствующих полномочий), уже известных семейств на основе базы знаний о преды-
то большинство обычных владельцев мобильных устройств дущих угрозах и, безусловно, может сделать пользование
с этой проблемой справиться не могут. мобильным телефоном, смартфоном и планшетом гораздо
Но в ряде случаев для того, чтобы обезопасить свое более безопасным. ADV
мобильное устройство, простого отключения полномочий
администратора может быть недостаточно. Создатели вре-
Рисунок 5. Пример киберкриминальных услуг
доносных приложений идут дальше и вносят в их функци-
онал контроль активности данного режима, и, если поль-
зователь пытается его отключить, троянцы предпринимают
попытки не допустить этого. Например, они могут препят-
ствовать открытию системных настроек или выводить за-
прос на получение нужных прав до тех пор, пока пользова-
тель не согласится это сделать.
Не облегчает жизнь пользователей и наличие ошибок
в системе, позволяющих вредоносным программам (на-
пример, Android.Obad) скрывать свое присутствие в соот-
ветствующих списках, а также распространение на рынке
коммерческих систем для защиты Android-приложений
от декомпиляции, взлома и модификации (например, об-
фускации), поскольку подобные механизмы могут быть
использованы не только разработчиками легитимных про-
грамм, но и злоумышленниками (Android.Spy.67 и Android.
Tempur.5.origin).
Семейства Android.SmsSend и Android.SmsBot активно
продаются на нелегальном рынке. Их авторы зачастую
предлагают своим клиентам не только сами вредоносные
приложения, но и сопутствующие им готовые решения
в виде удаленных панелей управления, а также программ-
ных средств для построения вредоносных сетей и партнер-
ских программ. Цены на данные услуги варьируются от нес-
кольких сотен до нескольких тысяч долларов (см. рис. 5).
Визитка
Это значит, что многие компании поставлены перед необхо- го обеспечения и данных с мобильного устройства в слу-
димостью искать баланс между мобильностью сотрудников чае злонамеренного неавторизованного удаления с него
и информационной безопасностью бизнеса, решая ряд но- MDM-приложения. Однако до того момента, пока на BYOD-
вых задач, связанных с эффективностью управления пер- устройствах не появятся полностью независимые операци-
сональными устройствами и обеспечением безопасности онные среды (бизнес, персональная, среда производителя
их применения и т.п.), сегментированные на физическом уровне и снаб-
Для решения ряда задач безопасности BYOD-устройств женные низкоуровневыми интерфейсами для доступа СЗИ
рынку было предложено множество самых разных BYOD- независимых производителей, ограниченность возможно-
стратегий, но вследствие ложного маркетингового «шума», стей MDM-решений по контролю исходящих потоков данных
генерируемого конкурирующими производителями, многие на мобильных устройствах останется принципиальной про-
BYOD-стратегии, представляемые рынку как наиболее эф- блемой, обсуждения которой MDM-вендоры старательно
фективные, таковыми не являются. В частности, в области избегают. А для имитации решения проблемы они исполь-
BYOD-управления был популяризован целый ряд мифов зуют «заплатки» типа вышеупомянутых встроенных «мин».
и заблуждений относительно того, что делает программу Сильными сторонами MDM-систем являются такие функ-
внедрения BYOD-устройств в бизнес-практику предприятия ции, как надежная парольная защита устройства, шифро-
безопасной и успешной. вание встроенной памяти и карт хранения данных, либо
Перечислим наиболее распространенные мифы «контейнеризация» данных приложений, управляемое унич-
в стратегиях BYOD: тожение данных с устройства в случае потери или кражи.
>> Системы класса Mobile Device Management (MDM) Однако же на практике по крайней мере функцию удален-
предоставляют полное решение проблем безопас- ного уничтожения данных можно реализовать только при ус-
ности в BYOD. ловии, что устройство появится в Сети и будет обнаружено
>> Важные корпоративные данные могут безопасно управляющей частью MDM-системы. То есть приходится по-
храниться и создаваться непосредственно на пер- лагаться на удачу – низкую техническую квалификацию вора
сональных устройствах. или человека, нашедшего такое «защищенное» мобильное
>> Решения класса Mobile Device Management (MDM) устройство, и на то, что сработают функции шифрования
равноценны решениям класса Data Leak Prevention и парольной защиты.
(DLP). Рассматривая миф о безопасности хранения и создания
Действительно, системы класса Mobile Device данных на BYOD-устройствах, стоит помнить, что задача
Management (MDM) позволяют удаленно (централизованно) обеспечения безопасности корпоративной информации
управлять множеством мобильных устройств, будь то устрой- на персональных устройствах стоит не только в связи с ком-
ства, предоставленные сотрудникам компанией, или соб- мерческой необходимостью защиты корпоративных нара-
ственные устройства сотрудников. Это управление обычно боток, сведений, персональных данных сотрудников и т.п.,
включает в себя такие функции, как удаленное обновление но и в силу требований законодательных и нормативных
политик безопасности (без подключения к корпоративной актов. В реальности уже сама практика хранения данных
сети), распространение приложений и данных, управление на BYOD-устройствах порождает риск утечки данных не-
конфигурацией для обеспечения всех устройств необходи- зависимо от наличия на устройстве агента MDM-системы.
мыми ресурсами. Данные ограниченного доступа могут быть отправлены не-
Некоторые MDM-решения содержат встроенную посредственно с устройства по сетевым каналам или на под-
«мину» – способность самоуничтожения всего программно- ключаемые внешние устройства печати и хранения.
Визитка
Альтернативный стартер
По умолчанию 1С создает ярлыки, которые запускают про-
грамму 1СEStart.exe. В первых версиях платформы 8.2 коли-
чество ошибок в этом небольшом стартере едва ли не пре-
восходило их количество в остальной части платформы.
Теперь ситуация, конечно, лучше, но вряд ли можно назвать
данную программу удачным решением 1С. Поэтому я насто-
ятельно рекомендую выбирать альтернативные методы за-
пуска.
Для пользователей самым оптимальным будет «батник»
с картинкой 1С или заданная в самом ярлыке командная
строка. Возможные параметры командной строки можно
посмотреть в документации, или, к примеру, на infostart.ru
есть описание [1].
Но для разработчика лучше использовать другой вари-
ант – сторонний стартер для 1С [2] (см. рис. 1).
Чем он полезен для скорости запуска:
>> Стартер сворачивается в трей, оттуда его можно выз-
вать одним кликом. При этом не происходит его по-
вторного запуска, анализа файлов и прочих затратных
процедур.
>> В приложении можно указать пользователя и пароль
для каждой базы, с которыми он будет их запускать
по умолчанию.
>> Исполняемый файл для запуска можно указывать
не 1CEStart.exe, а уже 1Cv8c.exe, ну или 1сv8.exe.
Первый указывается, если нужен только клиентский
доступ, при этом в режиме тонкого клиента. Второй –
в остальных случаях.
>> Ну и наконец, если в списке баз так 50 (как я писал
ранее в одной из статей, разработчику лучше иметь
под рукой бОльшую часть типовых конфигураций, что-
бы при необходимости переносить нужный функцио-
нал в разрабатываемое прикладное решение), то воз-
можность «последние запущенные ИБ» будет очень
полезна.
Можно вместо RAM-диска использовать SSD, но спец- Уменьшение количества ролей в конфигурации
ифика состоит в том, что половина обращений – на запись, Новая концепция разработки прикладных решений на плат-
а потеря этих данных ничего не уничтожит. Это всего лишь форме «1С:Предприятие» предполагает использование
временные файлы. отдельных групп ролей на каждый объект метаданных. Та-
В случае большого количества ролей в конфигурации кая архитектура очень удобна с точки зрения функционала
от скорости работы кэша время запуска будет существенно и гибкости настройки прикладных решений. Но с произ-
варьироваться. водительностью, к сожалению, у нее пока некоторые про-
Для создания RamDisk можно использовать программу блемы.
Superspeed RamDisk+ [3] (см. рис. 2). Рекомендация тут может быть одна: если вы планируе-
Из преимуществ данной программы я бы отметил следу- те переработку своего прикладного решения под данную
ющее: схему или разработку нового под конкретного заказчика,
>> Популярность оцените необходимость такой гибкости в управлении права-
>> Сохранение данных RAM-дисков при выключении ПК ми доступа. За нее, к сожалению, придется «платить» уве-
и восстановление их при включении личением объема потребляемой памяти, кэша метаданных
>> Простота использования и временем запуска 1С, особенно после обновления конфи-
>> Большое количество поддерживаемых архитектур гурации базы.
Главный недостаток состоит в том, что эта программа
все-таки платная. Но $60-80 может позволить себе даже Размещение всей информационной базы
рядовой пользователь, если, конечно, лицензия уже не ку- на RAM-диске
плена на организацию (около 22 000 руб.), ведь быстрый Основным режимом работы платформы «1С:Предприятие»
запуск 1С – это не единственная сфера применения ПО сейчас уже является клиент-серверный. Несмотря на за-
класса RamDisk. Конечно, существуют и бесплатные ана- явление компании 1С об одинаковой работе приложения
логи. в клиент-серверном и файловом режимах, технологические
Создать RAM-диск – это одно, а заставить 1С записывать различия все-таки существуют, но связаны они в основ-
на него кэш метаданных – это другая задача. Самое простое ном со скоростью работы прикладного решения. Поэтому
решение – использовать «батник» для запуска 1С примерно на этапе разработки основной функциональности допусти-
следующего содержания: мо использовать файловый вариант. Конечно, при условии,
что после окончания разработки тестирование и нагрузоч-
SET Temp=G:\Temp ные испытания будут производиться в клиент-серверном
SET Tmp=G:\Temp режиме.
При разработке в файловом варианте исключаются
start C:\Snegopat\core\starter.exe временные затраты на клиент-серверное взаимодействие,
за счет чего скорость запуска 1С возрастает. При старте
Этот «батник» устанавливает временные каталоги основная нагрузка приходится на файловую систему, по-
для конкретного приложения (1С) в папку Temp, располо- тому что необходимо прочитать определенный объем дан-
женную на диске G. ных для работы системы. Для разработчика к этому объему
Диск G соответственно создан в оперативной памяти. данных добавляется еще и конфигурация (около 100 Мб),
В качестве исполняемого файла указан файл «Снегопата». которую платформа считывает заново при запуске после
Для использования стороннего стартера или классического обновления БД, чтобы обновить кэш имеющихся у нее ме-
стартера 1С можно просто заменить путь к файлу. таданных.
Тут ничего нового придумать не получится – только раз-
местить базу данных на RAM-диске или на диске SSD.
Рисунок 2. Программа создания RAM-дисков
***
В результате этих действий можно уменьшить время запу-
ска в 10-15 раз. В моей практике конфигуратор, который за-
пускался две минуты, начинал запускаться за пять секунд.
На первый взгляд это незначительная экономия времени,
но двухминутные затраты на запуск отладки делают прак-
тически невозможной разработку решений в нормальном
режиме. EOF
Визитка
зователи программы, фигурируют отдельные аналитики. трической прогрессии относительно общего количества
И это правильно. Те, кому доводилось анализировать струк- документов. Типичные примеры: бумажные документы
туру регистров «Учет затрат (бухгалтерский и налоговый на поступающие материалы были переданы с опозданием,
учет)» и «Учет затрат (управленческий учет)», поймут, о чем и в результате поступление оформлено после того, как ма-
я, – непосредственный анализ ключей аналитики весьма за- териалы уже ушли в производство. Конечно, это не дело,
труднителен. и должно решаться другими способами, но, повторюсь,
Казалось бы, к чему такие усложнения? Однако сделано в российских условиях может получиться так, что времен-
все это не зря, так как обратной стороной использования ные затраты на исправление всех подобных моментов будут
ключей является упрощение добавления собственных ана- совершенно несоизмеримы с экономической эффективно-
литик, которых изначально не было в УПП. Поскольку се- стью и возникающими рисками.
бестоимость рассчитывается для ключей, а не отдельных Например, не единожды сталкивался с тем, что орга-
аналитик, при этом не будет необходимости переписывать низации ведут учет ручными проводками просто потому,
алгоритмы проведения по регистрам первичных документов что не могут оперативно восстанавливать последователь-
и расчета себестоимости. ность документов, а значит, закрывать месяц с помощью
Одна из основных задач, которую РАУЗ призван был регламентных операций. Это, конечно, ужасно. При таком
решить, – обеспечение корректности учета при наруше- раскладе РАУЗ реально поможет «цивилизовать» ситуацию
нии хронологии ввода первичных документов. Дело в том, относительно малой кровью. Более подробную информа-
что окончательная картина в данном случае складывается цию об этом и других парадоксах учета в 1С вы можете по-
по завершении месяца, и неважно, в каком порядке вво- черпнуть из [2].
дились документы изначально. Например, требование-на- Другая цель, которую должен был преследовать РАУЗ, –
кладная о передаче материала в производство может быть сокращение времени на расчет себестоимости. Надо ска-
оформлено раньше, чем его поступление на склад. Главное, зать, что людей, пытающихся оспорить этот факт, практиче-
чтобы все это было внутри одного месяца. ски нет. Действительно, прогрессивная методика решения
С одной стороны, непосвященным не понятно, для чего системы линейных уравнений сделала свое дело, значи-
это собственно нужно. Ведь документы вводятся строго по- тельно увеличив скорость расчета.
следовательно, и не бывает расхода раньше, чем приход. Следующий момент, который был заявлен как серьезное
Но, как говорится, «гладко было на бумаге, да забыли про улучшение, – автоматический расчет встречного выпуска.
овраги». На практике в российских реалиях восстановле- Если на производстве практикуется циклическое исполь-
ние правильной последовательности может отнимать про- зование выпущенной продукции в качестве сырья (напри-
сто грандиозное количество времени, растущее в геоме- мер, брак выпуска кирпича перемалывается до состояния
Рисунок 2. Первая партия, поступившая по цене 100 рублей за штуку, сразу же передается в производство документом «Требование-накладная»
глины и используется при формовке новых изделий), если Если последние два пункта во многом субъективны и свя-
распространено взаимное оказание услуг подразделения- заны скорее с нежеланием менять сложившиеся привычки
ми (транспортный цех подвозит уголь в котельную, которая (ведь, к примеру, никто не мешает использовать новые от-
отапливает транспортный цех), то РАУЗ будет просто спаса- четы вместо старых), то остальные три требуют к себе повы-
тельным кругом. Одним словом, достоинств режима предо- шенного внимания и осмысления.
статочно, для некоторых организаций он просто незаменим. Основным камнем преткновения стоит считать все же
отсутствие в режиме РАУЗ партионного учета. Вокруг этой
Цена вопроса особенности было развернуто большое обсуждение. Более
Поскольку любые недостатки есть продолжения достоинств того, весь негатив, который впоследствии проявился, чаще
(а любые достоинства суть продолжения недостатков), всего преподносился под вывеской «РАУЗ vs Партионный
за все приходится платить. Сразу же после появления РАУЗ учет». На самом деле такое противопоставление не совсем
развернулись очень активные обсуждения того, чем придет- корректно, так как отсутствие партионного учета – всего
ся пожертвовать, и так ли существенны его преимущества лишь одна из особенностей РАУЗ.
в сравнении с недостатками. Сами разработчики компании «1С» не раз говорили,
Основными претензиями стали: что правильным можно считать разделение на традици-
>> Отсутствие поддержки партионного учета товарно-ма- онную и расширенную аналитику. Но поскольку термин
териальных ценностей. «партионный учет» уже прочно укоренился именно в плане
>> Себестоимость выбытия материально-производствен- противопоставления РАУЗ, не станем занудствовать и до-
ных запасов по всем направлениям считается одина- говоримся, что и то и другое название имеет свое право
ковой и рассчитывается (корректируется) в конце ме- на жизнь.
сяца.
>> Метод ФИФО использует другой алгоритм, нежели Война миров
при партионном учете. Есть ли принципиальные отличия между режимом расши-
>> Снижение прозрачности учета. ренной аналитики и партионным учетом? Безусловно, есть.
>> Не работают привычные отчеты. Если быть кратким, то резюме таково: да, РАУЗ, как и любой
На самом деле каждый пункт из приведенного списка до- другой алгоритм, имеет свои особенности. Нужно ли их на-
статочно тесно переплетен со всеми остальными. Об этих зывать именно недостатками? Очень сомневаюсь. Я даже
и других особенностях РАУЗ я рассказывал в [2] и [3], а так- думаю, что, если бы был способ развернуть историю вспять
же в цикле статей [4-12], который, к слову сказать, еще (то есть если бы изначально в программах был РАУЗ, а за-
не окончен – ждите продолжения. тем вдруг перешли на партионный учет, мотивируя это повы-
Рисунок 3. Материалы вошли в состав готовой продукции 3 февраля, до второго поступления по новой цене
шением детализации складского учета, например), споров И тем не менее все сказанное выше не более чем миф,
было бы не меньше. который я сегодня собираюсь опровергнуть. Для этого мне
Как я уже говорил выше, многие до сих пор считают РАУЗ потребуется ответить на два вопроса:
некой вещью в себе, «черным ящиком», который выдает >> Так ли нужен партионный учет для корректного расчета
результат по одному ему известным формулам. В противо- себестоимости изделий, выпускаемых производствен-
вес партионному учету, где все четко и ясно с точностью ным предприятием?
до партии, РАУЗ что-то там постоянно усредняет, решает >> Насколько расходятся результаты расчета себестои-
какие-то уравнения, и в результате получается что-то при- мости при использовании РАУЗ и партионного учета?
мерное, далекое от правды (рис. 1). Главный довод против-
ников РАУЗ: «Да вы посчитайте на бумажке – у вас сойдется А что на деле?
с партионным учетом, а не с расширенной аналитикой». Как и в ранее опубликованных статьях [1-10], договорим-
Квинтэссенцией этого отношения к РАУЗ как к некоторой ся, что используется конфигурация «Управление про-
шайтан-машине можно считать высказывание на профиль- изводственным предприятием 1.3» на базе платформы
ном форуме infostart.ru [13]: «1С:Предприятие 8.2» (далее по тексту УПП). Однако если
«Да, РАУЗ устраивает торгово-шарашечные конторы, ранее всегда режим РАУЗ был включен, то сейчас будет сде-
которым плюс минус лапоть, а то и сапог – не страшно, лано сравнение одинаковых операций в партионном учете
хотя бы знать примерно (и представители которых и кри- и в режиме расширенной аналитики. Также стоит добавить,
чат о «такой же примерности» результатов у них в партион- что как при включенном РАУЗ, так и в режиме партионно-
ном учете). Если у вас реальное производство, и вы хотите го учета будет использоваться ФИФО (от аббревиатуры
знать, сколько чего затрачено и как вписалось в стоимость FIFO – First-In-First-Out – вариант, при котором со склада пар-
конечного товара, то РАУЗ даст такую среднюю темпера- тии списываются в том же порядке, в котором поступали).
туру, что будет, как в советское время, на бумаге одно, Если в партионном учете реализовать подобный меха-
а в цеху прямо противоположное, не говоря уже о каком- низм проще простого, то в случае с расширенной аналити-
либо актуальном планировании материалов, только вот кой, где отсутствует понятие «партиобразующий документ»,
финансовых вливаний для закрытия дыр, как в советское расчет делается в несколько этапов.
время, уже не будет». Сначала определяется, какие именно партии остались
Обращаю внимание, что это форум профессионального на складе после всех выбытий. Затем рассчитывается
сообщества специалистов 1С, данное мнение поддержали их стоимость. После этого вычисляется стоимость выбы-
другие специалисты, как мне представляется, не первый год тия всех остальных партий, причем она устанавливается
работающие с учетными системами. одинаковой (усредненной) для всех направлений выбытия.
Рисунок 4. Вторая партия пришла по цене 200 рублей за штуку и была израсходована только наполовину
Несмотря на ряд критических замечаний по поводу тако- В чем смысл рассматриваемой последовательности дей-
го алгоритма на различных форумах, он не противоречит ствий? Один и тот же материал приходит в разное время
требованиям законодательства и вполне может называться (1 и 10 февраля) по разной стоимости. На следующий день
именно ФИФО, а не как-либо иначе. Подробнее об особен- после поступления на склад материал забирают в произ-
ностях, в том числе с наглядными примерами, вы можете водство, и еще через день он входит в состав готовой про-
прочитать в [4]. дукции.
Сейчас же перейдем от складского учета (к которому от- Во второй раз со склада забирают не весь поступивший
носится алгоритм ФИФО) к рассмотрению простейшей це- материал, а только половину. Соответственно он должен
почки, характерной для учета производственного процесса остаться на складе в количестве 5 штук. При использова-
в целом. нии партионного учета в методике ФИФО по идее со склада
>> 1 февраля на склад поступил материал «Материал сначала должны списаться партии стоимостью 100 рублей
№1» в количестве 10 штук по цене 100 рублей за шту- за штуку и только потом по 200 рублей.
ку, на общую сумму 1000 рублей (см. рис. 2, сверху). Разумеется, такое значительное различие в цене сдела-
>> 2 февраля 10 штук материала «Материал №1» пере- но намеренно для примера, чтобы показать, как работает
даны в производство документом «Требование-наклад- расчет себестоимости при производстве из разных посту-
ная» (см. рис. 2, снизу). плений.
>> 3 февраля выпущено 10 штук готовой продукции «Про- Согласно этой логике первый выпуск готовой продукции
дукт №1», на которую затрачено 10 штук материала должен быть в два раза дешевле, чем второй (так как он сде-
«Материал №1» (оформлен документ «Отчет произ- лан из первой партии материала). Ожидаемая себесто-
водства за смену», как показано на рис. 3). имость первого выпуска при партионном учете – 100 руб-
>> 10 февраля на склад поступил тот же материал «Мате- лей за штуку, второго – 200 рублей. В то же время, если
риал №1» в количестве 10 штук, но уже по цене 200 руб- верить тому, что говорят о РАУЗ, в этом режиме мы должны
лей за штуку на общую сумму 2000 рублей (см. рис. 4, получить некий усредненный результат. Посмотрим, так ли
сверху). это на самом деле. Кроме того, интересно будет увидеть
>> 12 февраля 5 штук материала «Материал №1» пере- суммовую оценку материала, оставшегося на складе.
даны в производство документом «Требование-наклад- Проведем расчет себестоимости выпуска и сформи-
ная» (см. рис. 4, снизу). руем отчет «Ведомость по партиям товаров на складах»
>> 13 февраля выпущено 5 штук готовой продукции «Про- (см. рис. 6).
дукт №1», на которую затрачено 5 штук материала Что же мы видим? Как это ни странно, но себестоимость
«Материал №1» (см. рис. 5). выпущенной продукции оказалась усредненной по отно-
Рисунок 5. 13 февраля оформлен выпуск продукции, для которой использовалась только вторая партия материала
шению к партиям материла. Может быть, при передаче Что сразу бросается в глаза? РАУЗ, который, по мнению
в производство получилась неправильная суммовая оцен- многих, должен был показать менее точную картину, на са-
ка? Но ведь из этого же отчета видно, что расход материала мом деле позволил получить абсолютно идентичный резуль-
был 1 февраля в количестве 10 штук стоимостью 1000 ру- тат: выпущенная продукция в количестве 15 штук оценена
блей и 10 февраля в количестве 5 штук стоимостью 1000 ру- в 2000 рублей, на складе остаток материала имеет суммо-
блей. вую оценку 1000 рублей за 5 штук.
В то же время продукция, выпущенная 3 февраля цели-
ком и полностью из первого поступления материала, рас- Беспартийное производство
ценена так, как будто для ее производства использовались Почему получены такие странные на первый взгляд резуль-
обе партии. таты? Все дело в том, что независимо от того, какой режим
Действительно, если сложить общую стоимость всех учета выбран (партионный или РАУЗ), он относится лишь
переданных в производство материалов (1000 рублей к складскому учету и никак не затрагивает производствен-
+ 1000 рублей = 2000 рублей) и разделить на их коли- ный.
чество (10 штук + 5 штук = 15 штук), получится средняя Что это значит? Это значит, что все партии, пришедшие
цена 133 рубля 33 копейки. Умножив полученное значение в производство в течение месяца, рассматриваются доку-
на 10 и на 5 штук, получим себестоимость первого и второго ментом «Расчет себестоимости» исключительно совокупно.
выпуска соответственно (1333 рубля 33 копейки и 666 руб- Иными словами, если в течение месяца было несколько по-
лей 67 копеек). ступлений одного и того же материала с разной стоимост-
Нетрудно видеть, что именно такие результаты выводятся ной оценкой, в результате будет рассчитана их средняя
в ведомости по партиям товаров на складах. И это, обращаю суммовая, и именно она войдет в конечную себестоимость
ваше внимание, при партионном учете в режиме ФИФО. готовой продукции.
Но хоть остаток-то на складе получил ту суммовую оцен- А теперь самое интересное: если в производстве затра-
ку, которую мы ожидали? Да, поскольку на складе остались ты все равно будут усреднены, нужно ли убиваться и вос-
только материалы из второй партии, то и оценка у них соот- станавливать последовательность для поддержания парти-
ветствующая (по 200 рублей за штуку, в итоге 5 штук общей онного учета?
стоимостью 1000 рублей). То есть по складу механизм сра- Еще один важный вопрос, который следует себе задать:
ботал ровно так, как и ожидалось. а соответствует ли партионный учет на складе по методи-
Что же касается производства, то здесь мы видим яв- ке ФИФО реальному положению вещей в принципе? Дей-
ное усреднение суммовых оценок. Еще раз подчеркну: вы- ствительно ли фактически первым передается на склад ма-
пуск 3 февраля был осуществлен в тот момент, когда на- териал, поступивший раньше? Если ответ отрицательный,
личествовало только одно поступление по цене 100 рублей не стоит и раздумывать, при учете по средней результат
за штуку. И при этом он оценен как 133 рубля 33 копейки будет одинаков для обоих режимов даже в складском учете.
за единицу выпущенной продукции. Возвращаясь к вопросам, заданным в начале статьи,
Теперь рассмотрим результат выполнения аналогичной можно заключить:
последовательности действий с включенным РАУЗ. По- >> На вопрос, так ли нужен партионный учет для коррект-
скольку в режиме расширенной аналитики не применяется ного расчета себестоимости изделий, выпускаемых
партионный учет, использовать отчет «Ведомость по парти- производственным предприятием, ответ таков: нет,
ям товаров на складах» нельзя. Вместо него используется значимость партионного учета сильно переоценена,
ведомость по учету МПЗ, в которой показываются все дви- так как в производстве все равно стоимостная оценка
жения материально-производственных запасов (см. рис. 7). будет усреднена.
Рисунок 6. Из ведомости по партиям товаров на складах видно, что суммовая оценка выпущенной продукции является усредненной
>> На вопрос, насколько расходятся результаты расчета 1. Абрашина Е.В., Емельянов И.М. Использование механизма рас-
себестоимости при использовании РАУЗ и партионного ширенной аналитики в «1С:Управление производственным пред-
учета, можно ответить: в большинстве случаев резуль- приятием». – М.: Издательство «1С-Паблишинг», 2011. – 177 с.
таты расчета себестоимости абсолютно идентичны, 2. Чуфаров И. Парадоксы учета в 1С. //«Системный администра-
что было явно продемонстрировано на примере.*** тор», №11, 2012 г. – С. 68-71.
Говорить о менее точном или неправильном расчете се- 3. Чуфаров И. Особенности учета бракованной продукции в 1С.
бестоимости в режиме расширенной аналитики учета запа- //«Системный администратор», №12, 2012 г. – С. 72-76.
сов и затрат по меньшей мере некорректно. Отсутствие точ- 4. Чуфаров И. Как избежать ошибок учета в 1С. Часть 1. Выбы-
ной суммовой оценки по каждому документу, конечно, ведет тие запасов. //«Системный администратор», №1-2, 2013 г. –
к некоторым ограничениям детализации учета, но не несет С. 72-76.
в себе настолько далеко идущих последствий, чтобы ста- 5. Чуфаров И. Как избежать ошибок учета в 1С. Часть 2. Учет
вить под сомнение результат производственных операций. прямых материальных затрат. //«Системный администратор»,
На самом деле в большинстве случаев отрицательные от- №3, 2013 г. – С. 62-66.
зывы относительно РАУЗ продиктованы в большей степени 6. Чуфаров И. Как избежать ошибок учета в 1С. Часть 3. Рас-
страхами, нежели реальным негативным опытом. пределение косвенных материальных затрат. //«Системный
Как было показано в статье, и РАУЗ, и партионный учет администратор», №5, 2013 г. – С. 46-53.
на корректных входных данных дают идентичные результа- 7. Чуфаров И. Как избежать ошибок учета в 1С. Часть 4. Нема-
ты. Основная причина этого в том, что сам производствен- териальные затраты: услуги. //«Системный администратор»,
ный учет в УПП не является партионным вне зависимости №6, 2013 г. – С. 52-59.
от выбранного режима. Не столь важно, каким образом 8. Чуфаров И. Как избежать ошибок учета в 1С. Часть 5. Зацикли-
были рассчитаны суммовые оценки при передаче материа- вание затрат. //«Системный администратор», №7-8, 2013 г. –
лов со склада в производство. При расчете себестоимости С. 46-52.
выпуска все равно будет осуществлено усреднение суммо- 9. Чуфаров И. Как избежать ошибок учета в 1С. Часть 6. Спец-
вых оценок. одежда, спецоснастка и инвентарь. //«Системный администра-
Хотя данный факт не является секретом и указывается тор», №10, 2013 г. – С. 46-53.
в документации, думаю, для многих он станет откровением 10. Чуфаров И. Как избежать ошибок учета в 1С. Часть 7. Учет
именно после публикации данной статьи. В противном слу- оборудования. //«Системный администратор», №11, 2013 г. –
чае не было бы столько обсуждений и ошибочных выска- С. 73-79.
зываний, утверждающих, будто бы РАУЗ дает менее точные 11. Чуфаров И. Как избежать ошибок учета в 1С. Часть 8. Объекты
результаты, чем партионный учет. строительства. //«Системный администратор», №12, 2013 г. –
Может быть, у кого-то возникнет вопрос: а возможно ли С. 38-43.
в приведенном примере обеспечить детализацию, при кото- 12. Чуфаров И. Как избежать ошибок учета в 1С. Часть 9. Аморти-
рой суммовая оценка выпущенной продукции будет опреде- зация основных средств. //«Системный администратор», №1-
ляться реальной, а не усредненной стоимостью материала, 2, 2014 г. – С. 76-82.
из которого фактически она сделана? 13. Что лучше: РАУЗ или партионный учет? // Обсуждение на фо-
Да, это возможно. И именно этому будет посвящена вто- руме infostart.ru – http://forum.infostart.ru/forum36/topic46669.
рая часть статьи, которую вы сможете прочитать в одном
из следующих номеров. EOF Ключевые слова: 1C, партионный учет, РАУЗ, себестоимость.
Рисунок 7. В режиме РАУЗ получилась ровно такая же картина, как и в партионном учете
Визитка
Имена БД могут использовать префикс, по аналогии мером о наградах. Поэтому используются так называемые
с именами БД MySQL. Если используется коллекция users вложенные объекты. Пусть награды имеют некоторый рей-
в БД test, то можно написать: test.users. тинг, который определяет их «ценность», например, орде-
на ("type" = 1) и медали ("type" = 2) имеют разную ценность
Паттерны моделирования («rating»). Существуют медали «боевые», а есть медали
Если связанность данных небольшая, то можно использо- «юбилейные». Тогда данные по наградам можно предста-
вать их денормализацию – процесс, обратный процессу вить как массив вложенных объектов: {award: {name, rating,
нормализации. То есть развертывание структуры данных type}}:
в одну плоскую таблицу за счет увеличения избыточности.
Пример простой денормализации – это схема хране- {"nick": "Василий Теркин", "level":23, "pvp_level" : 659, ↵
"awards": [ "award": {"name":"Gold star", ↵
ния данных о наградах или наличии оружия. Пусть у нас "rating": 10, "type": 1} , ↵
есть игровая учетная запись – Пользователь (user). Каж- "award": {"name":"Victory", ↵
"rating": 7, "type": 1} }] }
дый пользователь (user) может быть в ходе игры награжден
и иметь одну или несколько наград (awards).
Мы имеем отношение многие ко многим между множе- В данном примере вложенным объектом выступает под-
ством пользователей (users) и множеством наград (awards). документ «award», состоящий из полей: {"name", "rating",
Такое отношение в РСУБД обычно реализуют через проме- "type"}.
жуточную таблицу: userAwards (награды пользователя). Такое применение оправдано в случае, если количество
Но в нестрогой системе мы можем использовать масси- пользователей большое (миллионы), а количество разных
вы. Ниже представлен пример представления отношения типов наград невелико (десятки или сотни).
множества многие ко многим: Другой паттерн представления данных в MongoDb – ис-
пользование ссылочных типов. Ссылочные типы – это ана-
>db.users.insert({"nick": "Иван Бровкин", ↵ лог внешних ключей РСУБД. Однако надо всегда помнить,
"level":20, "pvp_level" : 621, ↵
"awards": ["Silver star","Hero"] }) что MongoDb никаких объединений и пересечений не про-
изводит. Все операции по пересечению данных и объеди-
>db.users.insert({"nick": "Иван Чёлкин", ↵
нению таблиц производятся исключительно на клиентской
"level":25, "pvp_level" : 749, ↵
"awards": ["Silver star","Victory "] }) стороне.
Пусть нам для отображения на игровом поле предстоит
>db.users.insert({"nick": "Швейк", ↵
"level":25, "pvp_level" : 794, ↵
использовать список друзей friendList. Ниже на рис. 2 пред-
"awards": ["Gold star","Hero"] }) ставлено классическое отношение один ко многим при реа-
лизации для СУБД.
> db.users.insert({"nick": "Василий Теркин", ↵
"level":23, "pvp_level" : 659, ↵
«Друзья» имеют то же логическое отношение, что и «дру-
"awards": ["Gold star","Victory"] }) зья» в социальных сетях. Это те же пользователи (игроки),
с которыми у тебя есть «отношение дружбы», пользователи,
>db.users.find();
с которыми можно строить «коалиции» против врага при ор-
"_id" : ObjectId("530bb68d0af670a3356dfa02"), ганизации групповых боев.
"nick" : "Иван Бровкин", "level": 20, "pvp_level" : 621, Мы можем денормализовать данные и поместить в поле
"awards" : [ "Silver star", "Hero" ] }
«friendList» как массив вложенных объектов user со всеми
"_id" : ObjectId("530bb68d0af670a3356dfa03"), данными этого пользователя. Однако в этом случае у нас
"nick" : "Иван Чёлкин", "level":25, "pvp_level" : 749, встает проблема актуализации, то есть в случае любого из-
"awards" : [ "Silver star", "Victory " ] }
менения у пользователя необходимо сразу произвести ана-
"_id" : ObjectId("530bb68d0af670a3356dfa04"), логичные действия у всех его друзей, что очень накладно.
"nick" : "Швейк", "level" : 25, pvp_level" : 794,
Как вариант, используется объект friend, который име-
"awards" : [ "Gold star", "Hero" ] }
ет основные «не изменяемые» поля объекта user, такие
"_id" : ObjectId("530bb68d0af670a3356dfa05"), как «nick», «avatar» и ссылочное поле id = ObjectId("52cc24
"nick" : "Василий Теркин", "level" : 23, "pvp_level" : 659,
"awards" : [ "Gold star", "Victory" ] }
62d47566cbb0e20ff6") и ссылается на объект пользователя-
друга:
Но чаще всего объекты имеют более сложную структуру,
а не только одно поле «наименование», как в случае с при- friend: {"nick":"Василий Теркин", ↵
Рисунок 1. Пример простой денормализации Рисунок 2. Классическое соотношение один ко многим при реализации для СУБД
Как мы видим, в документе пользователя присутствуют 1. Календарев А. Индексы в MongoDb. //«Системный админист-
составные объекты: weapon, position. ратор», №1-2, 2014 г. – С. 94- 97.
Еще один паттерн – это использование ссылочных данных 2. Официальный сайт MongoDB – http://www.mongodb.org.
на коллекции документов. Например, каждый пользователь 3. Документация (русский) MongoDb – http://ru.wiki.mongodb.org/
имеет некое сложное оружие, к примеру, танки. Как один display/DOCS/Home.
из вариантов, можно использовать массив сложных объек- 4. Интерактивное обучение от 10Gen (англ.) – http://
тов tanks. Каждый из танков характеризуется параметрами: www.10gen.com/what-is-mongodb.
>> подвижность; 5. Karl Seguin. The little MongoDb book. – http://openmymind.net/
>> мощность двигателя; mongodb.pdf.
>> максимальная скорость; 6. Karl Seguin. The little MongoDb book. Перевод на русский –
>> скорость поворота; http://jsman.ru/mongo-book.
>> скорость поворота башни; 7. Kristina Chodorow, Michael Dirolf. MongoDb: The Definitive
>> бронирование/защищенность корпуса; Guide – http://books.google.com.
>> бронирование/защищенность башни; 8. Кайл Бэнкер. MongoDb в действии. – ДМК «Пресс», 2012 г.
>> оружие;
>> боекомплект; Ключевые слова: MongoDb, СУБД, денормализация.
Визитка
public String getAvatarFileName() Также методы Hibernate требуют, чтобы первичный ключ
{ был сериализуемым, поэтому я добавил ограничения на TId
return avatarFileName;
} в виде extends Serializable.
public void setAvatarFileName(String avatarFileName) Ключевым для работы Hibernate является понятие фабри-
{
ки сессий. Для использования Hibernate в Java-приложении
this.avatarFileName = avatarFileName;
} потребуется создать собственную фабрику сессий из кон-
private int id; фигурации Hibernate, однако в контексте Tapestry фабрика
private String login;
private String firstName;
сессий уже создана, и попытка повторного создания будет
private String lastName; приводить к вбрасыванию исключений.
private String city; За создание сессий в Tapestry отвечает интерфейс
private String email;
private String passwordHash;
HibernateSessionManager. Для использования этого встро-
private int groupMembershipMask; енного сервиса Tapestry можно сконструировать объект
private Date registrationDate; типа HibernateSessionManagerImpl (с набором специфичных
private boolean activated;
private Byte[] avatar = new Byte[0]; параметров в конструкторе) или воспользовавшись IoC:
private String avatarFileName;
} @InjectService("HibernateSessionManager")
private HibernateSessionManager sessionManager;
в методе public static void bind(ServiceBinder binder) необхо- Поскольку в Tapestry все переменные класса при каждой
димо добавить следующую строку: перезагрузке страницы очищаются, а при загрузке вызыва-
ется метод onActivate(), то именно в нем мы получаем спи-
binder.bind(IDatabaseManager.class, DatabaseManager.class); сок пользователей, применяя databaseManager, помеченный
аннотацией @Inject. Tapestry генерирует Java-код по взаимо-
Теперь с помощью аннотации Inject мы можем добавлять действию компонента gtid на основе значений свойств дан-
наш сервис на страницы. ного компонента (следует отметить, что grid может быть раз-
Для тестирования сервиса создадим простую страницу мещен в Java-классе), и можно работать с компонентом Grid
с CRUD (Create-Read-Update-Delete) компонентом, постро- через его интерфейс, но для компактности Java-кода стра-
енным на базе Tapestry Grid, назовем страницу Users. Users. ницы я вынес все значения свойств Grid в разметку Users.tml:
java выглядит следующим образом:
<html t:type="layout" title="Users management tool"
public class Users xmlns:t="http://tapestry.apache.org/schema/ ↵
{ tapestry_5_3.xsd"
public void onActivate() xmlns:p="tapestry:parameter">
{ <p> Users management tools with CRUD! </p>
databaseManager.open();
currentUser = new User(); <table t:type="grid" t:source="servicesUsers" ↵
servicesUsers = databaseManager.↵ t:row="currentUser" rowsPerPage="5"
getEntityObjectsList(currentUser.getClass()); include="id, firstName, lastName, login, ↵
if(servicesUsers != null && ↵ city, email, groupMembershipMask,
servicesUsers.size() > 0) registrationDate, activated" ↵
currentUser = servicesUsers.get(0); t:add="action">
databaseManager.close(); <p:actionCell>
} <a t:type="pageLink" t:page="management/ ↵
public void onActionFromDeleteUser(int id) ViewUser" t:context="currentUser.id"
{ href="#">View user</a><br/>
databaseManager.open(); <a t:type="pageLink" t:page="management/ ↵
databaseManager.deleteEntityObject( ↵ EditUser" t:context="currentUser.id"
currentUser.getClass(), id); href="#">Update</a><br/>
databaseManager.close(); <a t:type="actionLink" t:id="deleteUser" ↵
} t:context="currentUser.id">Delete</a><br/>
@Inject </p:actionCell>
private IDatabaseManager databaseManager; </table>
@Property </html>
private List<User> servicesUsers = new ↵
ArrayList<User>();
@Property В Grid есть свойство t:source, указано имя коллекции эле-
private User currentUser; ментов из Java-класса (но данная коллекция должна быть
}
помечена аннотацией @Property или должен быть метод
Визитка
Ruby и многозадачность
В статье рассматриваются основные средства работы с потоками (threads)
и процессами в языке и стандартной библиотеке Ruby
Прежде чем перейти к описанию инструментария отмечу, ресурсов – нам остается вполне доступен, таким образом,
что Ruby создавался не как специальный язык параллель- польза от использования потоков в Ruby, безусловно, есть.
ного программирования, хотя в это время многозадачность Работа с потоками в Ruby в основном сосредоточена
уже стала привычной и необходимой. Из этих двух посылок, в классе Thread – в самом простом случае мы создаем объ-
в общем-то, можно вывести текущую картину: никаких спец- ект этого класса из блока (или множество объектов) и ждем
ифических концепций мы в нем не увидим, только поддерж- завершения [1].
ку привычной для всех языков общего назначения модели
с некоторыми нюансами реализации. puts 'begin'
th = Thread.new do
Немного о терминологии: англоязычный термин «thread» (1..3).each { |i| puts i }
на русский переводится в двух вариантах – как «поток» end
# sleep 0
и как «нить». Второй вариант точнее и не вызывает неод-
puts '---'
нозначности с потоками данных (streams), однако первый th.join
уже прижился в качестве основного. Кроме того, есть еще puts 'end'
производные термины и варианты вроде «многонитевость»
(или «многонитность»), но они мне не встречались и, честно Результат будет такой:
говоря, режут глаз. Поэтому я буду использовать «поток».
begin
---
Многопоточность 1
Потоки позволяют программисту распараллелить выполне- 2
3
ние задачи в рамках одного процесса. Это дает заметный
end
выигрыш в двух основных случаях: во-первых, когда есть ап-
паратные ресурсы для параллельных вычислений, т.е. мно- Если же мы раскомментируем строчку «sleep 0», то по-
гоядерная или многопроцессорная архитектура. Во‑вторых, ложение строки с дефисами относительно цифр станет не-
когда какие-то подзадачи вынуждены тратить время на ожи- предсказуемым, а если вместо ноля напишем «1» или даже
дание внешних ресурсов, будь то дисковая подсистема, «0.1», то дефисы будут стабильно выводиться после тройки,
сеть или действия пользователя. поскольку поток полностью отработает раньше.
Плохая новость в том, что в действительности потоки Что еще можно сделать с потоком, кроме как запустить
Ruby не параллельны, и выигрыша от многоядерности нам его и дожидаться завершения (именно это делает метод
получить не удастся. Несмотря на то что актуальные версии join)? Можно его приостановить (метод класса Thread.stop,
интерпретатора используют потоки операционной системы, вызываемый внутри потока), «разбудить», т.е. продолжить
управление ими построено так, что в определенный момент выполнение с момента остановки (wakeup), прекратить,
времени выполняется только один поток. В старых версиях не дожидаясь окончания работы (terminate)... Такой пример:
(по 1.8.7 включительно) использовались так называемые зе-
леные потоки, исполняющиеся в рамках одного системного, th = Thread.new do
puts 'started'
в новых действует механизм GIL (global interpreter lock). Thread.stop
Хорошая новость то, что этот механизм защищает от не- puts 'continued'
sleep 100
которых (но не всех) потенциальных конфликтов между по-
puts 'finished'
токами. Ниже о синхронизации еще поговорим, а пока от- end
метим, что второй выигрыш – в случае ожидания внешних sleep 0.1
Во-вторых, в Ruby любой код возвращает какое-то значе- Thread.exclusive делает то же самое, но при этом исполь-
ние, и результат выполнения блока мы вполне можем полу- зует один и тот же объект класса Mutex на все случаи.
чить – для этого нужно использовать метод value вместо join. Кроме такой безусловной синхронизации, объекты Mutex
В-третьих, блок, из которого создается поток, как и лю- позволяют и более гибко работать с блокировками – в каких-
бой другой, образует замыкание, т.е. в нем можно обращать- то случаях не дожидаться освобождения заблокированного
ся к любым данным, доступным в месте его объявления [2]. объекта, а выполнить другие действия (например, вывести
Однако нужно помнить о том, что разные потоки могут об- сообщение об ошибке). А еще ручное блокирование/раз-
ращаться к одним и тем же данным в произвольном порядке. блокирование дает простор для глупых ошибок по невнима-
От одновременного обращения двух потоков к одной тельности, поэтому я бы не рекомендовал им пользоваться
переменной нас защищает GIL, о котором было сказано без особой на то необходимости.
выше, он же делает многие (но не все) стандартные методы В-четвертых, мы можем получать и устанавливать так на-
стандартных классов атомарными, но этого недостаточно. зываемые переменные потока посредством методов thread_
Сколько раз выведет «true» следующий код? variable_get/set.
В приведенных примерах использовалась передача дан- Ключевые слова: Ruby, потоки, сокеты, параллельное выполнение
ных только в одну сторону, что, конечно, необязательно. заданий.
Визитка
К слову о бережливом производстве Тестировщик в ходе своей работы находит тот или иной
Есть два пути развития технологии: дефект в исследуемой программе. Добавляет в багтрекер
Первый – экстенсивный. Он характеризуется миниму- новый тикет, где детально описывает проблему, настройки
мом затрат, помноженным на максимум ручного труда. и шаги по воспроизведению, при необходимости снабжая
Но так или иначе неизбежны затраты на зарплату, ком- тикет поясняющими скриншотами.
пьютерный ресурс, длительность процесса. Далее тикет обрабатывается менеджерами проекта
Второй – интенсивный. Здесь ручной труд сокращается и передается в разработку программистам. Результаты ис-
за счет привлечения вспомогательных программных ин- правлений попадают в новую сборку проекта, и менеджеры
струментов. Часть затрат идет на их приобретение, часть возвращают тикет в тестирование. В соответствии с планом
на повышение зарплаты более квалифицированным со- работ, ориентируясь на описание тикета, а также на при-
трудникам. Выигрыш такого подхода в сокращении чис- мечания программистов по исправлениям, тестировщик
ла ошибок и времени работы над проектом. Называется спокойно выполняет свою работу по проверке устранения
это «бережливое производство» (Lean Manufacturing) [1]. дефекта.
В «правильных» ИТ-компаниях, разрабатывающих прог- Теоретически до этого момента от тестировщика ника-
раммное обеспечение, руководство сосредотачивает силы ких действий по данной конкретной проблеме не требует-
на том, чтобы на выходе получить продукцию наиболее вы- ся. В ожидании устранения дефекта он благополучно о нем
сокого качества, насколько это возможно и целесообразно, забывает и переключается на решение совершенно других
с наименьшими затратами времени, финансов и труда на- задач.
емных работников. Поэтому автоматизации процессов про-
изводства уделяется все больше внимания. А что же на практике?
При этом автоматизация бывает разная: С момента создания тикета проходит время – в зависимости
>> новостные корпоративные рассылки о запланирован- от планирования проекта от пары дней до нескольких не-
ных мероприятиях и совещаниях; дель, а иногда и того дольше.
>> оповещение работников о назначенных задачах и сро- Тестировщик уже давно сосредоточенно трудится
ках исполнения; над очередной задачей или расслабленно отдыхает от вы-
>> составление автоматических отчетов о проделанной полнения своего титанического самоотверженного труда,
работе. и тут... И тут к нему приходит программист, которого менед-
Разумеется, затрагиваются и сами процессы выполнения жер проекта щедро назначил добровольцем по устранению
рабочих задач программистов, технических писателей, те- того самого дефекта, о котором у нас велась речь ранее.
стировщиков, релиз-инженеров и далее по списку. И программист просит тестировщика наглядно воспро-
Все это призвано не только повысить качество готового извести дефект еще раз, по шагам, показать, что и как тот
программного продукта, но и в значительной мере облег- делал, какие диалоги вызывал, какие кнопки нажимал и т.д.
чить ежедневный труд команды специалистов, а также улуч- Возможно, описание проблемы в тикете было несовер-
шить их взаимодействие. Однако практика зачастую имеет шенным, или последовательность шагов описана не полно-
тенденцию расходиться с теорией. стью, или в не достаточно доходчивой форме, или этот про-
граммист – новичок в данном проекте. Мало ли что.
Взгляд изнутри Вот и получается, что тестировщик вынужден терять кучу
Достаточно много лет я занимаюсь тестированием и часто времени, приостановив решение той задачи, над которой
сталкиваюсь с такой ситуацией. он в настоящий момент трудится, вспомнить и понять, о чем
конкретно его просит программист. Ну и воспроизвести, Затем Интернет стал общедоступным и наполнился мас-
разумеется... сой руководств в электронном виде. Все, что требовалось,
Частично этих проволочек можно избежать, если к тикету это запросить у поисковой системы описание нужной про-
добавить скриншот с ошибкой, снабдив его поясняющими граммы и выбрать наиболее подходящий текст: от беглых
надписями и выделив проблемный блок. Или если макси- обзоров для «чайников» до подробных технических доку-
мально формализовано описать шаги по воспроизведению. ментов для специалистов.
Но случается, что первого бывает недостаточно, второе же Теперь же активно развивается новая тенденция.
отнимает неоправданно много сил и времени. Все больше и больше поставщиков программ размещает
Разумеется, это актуально не для всех дефектов пого- в глобальной сети видеоинструкции и презентации своей
ловно, однако для описания наиболее проблемных из них продукции.
и в целях экономии времени можно записать последова- Вот, например, на сетевом ресурсе [2] размещена бога-
тельность действий с программой, приводящих к ошибке, тая коллекция демонстрационных видеозаписей по всевоз-
с помощью видеоролика. А затем при описании проблемы можным тематикам, связанным с ИТ: безопасность, сетевые
прикрепить его к создаваемому тикету. технологии, хранение данных, использование мобильных
Это помогает программистам понять суть ошибки, за- устройств и т.д. Их легко найти, удобно просматривать,
меняет печать текста на полстраницы и сокращает время и в сравнении с текстом они значительно выигрывают с точ-
работы, избавляет от необходимости бегать за разъяснени- ки зрения подачи материала и его восприятия.
ями, а тестировщикам не придется лишний раз отвлекаться Разумеется, современный пользователь, ограниченный
от текущих дел. И вот именно здесь возникает переломный во времени и достаточно ленивый, охотнее потратит пару
момент. Ибо, имея такую технологию, можно шагнуть гораз- минут на просмотр видео, нежели часами будет напряжен-
до дальше. Перейти на качественно новый уровень работы но листать скучный «талмуд», отчаянно пытаясь в нем ра-
над всем проектом. зобраться. Почему бы запись видеоинструкций не начать
Поясним, в чем тут дело. гораздо раньше, например, на этапе разработки и тестиро-
вания продукта?
Видеоинструкции как замена текстовой И если прежде документом, фиксирующим ошибки про-
документации граммы, был текстовый файл, то теперь эти функции будут
Это раньше в комплекте с выпускаемыми программами шли переданы видеофайлу. А сопровождающий его текст боль-
многотомные печатные инструкции. Их изучение было дол- ше не придется снабжать детальным описанием ошибки,
гим, муторным и неудобным. Да и к тому же, что скрывать, а лишь указывать в основном только ключевые моменты,
мало кому интересным. время возникновения и «симптомы» ошибки.
CamStudio
Программа CamStudio [6] (см. рис. 3) записывает все про-
исходящее на экране монитора в видеоролик формата AVI,
MP4 или SWF (флеш).
Основным ее достоинством является то, что для работы
совсем не нужно обладать какими-либо специальными про-
фессиональными знаниями по компьютерной анимации,
видеомонтажу и так далее. Человек, в нашем случае – те-
стировщик, совершенно далекий от мира компьютерной ки-
ноиндустрии, в состоянии быстро и успешно начать с ней как правило, нет возможности снабжать записывае-
работать. мое видео голосовыми комментариями, поэтому оп-
Тем более это существенно, поскольку для тестировщи- цию стоит отключить.
ка само создание ролика является вовсе не прямой целью, »» Autopan. В этом режиме область захвата следует
а лишь удобным и быстрым вспомогательным средством, за указателем мыши, скорость следования также
которое должно существенно сэкономить его силы и время настраивается.
в определенные моменты рабочего дня. »» Automatically Stop Recording. Автоматическая
Перечислим предоставляемые возможности. остановка записи ролика по таймеру. Удобно для за-
File. Главные кнопки рекордера: запись, пауза, стоп. писи серии нескольких коротких однотипных роли-
Region. Выбор области экрана для записи: фиксирован- ков.
ная часть экрана, конкретное окно какого-либо приложе- »» Program Options. Настройки программы. Здесь
ния (подходит для записи работы различных визардов, можно задать характер поведения окна программы
небольших диалогов, окон настройки), полноэкранный во время и после записи; изменить формат имен,
режим. создаваемых готовых и временных файлов, и ка-
Options. Опции для записи и настройки программы. талог их размещения; настроить горячие клавиши
»» Video Options. Опции записи видео: выбор коде- на какие-либо действия с программой и т.д. Так, на-
ка и параметров сжатия, частота кадров, привязка пример, опция Minimize program on start recording
аудио. (минимизировать программу при старте записи)
»» Cursor Options. Опции курсора: выбор его типа удобна при записи полноэкранного видео, а также
и подсветки на записи, а также возможность скрыть если монитор не отличается большим разрешением.
курсор. Play AVI file when recording stops позволяет воспро-
»» Audio Options. Настройка параметров динамиков извести ролик сразу после его записи, с выбором
и микрофона для записи звука, настройка синхро- из перечня доступных проигрывателей: системный
низации аудио и видеокадров. или встроенный CamStudio PlayerPlus.
»» Record audio from... Группа опций для выбора ис- »» Record To Flash Options. Опции, связанные с пре-
точника записи аудио: от микрофона, от динамиков, образованием записи из формата AVI в SWF.
без аудио. В стандартной ситуации работы в офисе, »» Language. Выбор языка интерфейса программы.
Tools. Набор инструментов для работы над видеороликом. »» CamStudio Movie Player. Вызов встроенного про-
Screen Annotations. Возможность добавления при- игрывателя видеороликов.
мечаний на экран непосредственно во время записи »» SWF Producer. Вызов встроенной утилиты для пре-
(см. рис. 4). Примечания отображаются в виде цветных образования видеозаписи из формата AVI в SWF.
картинок с редактируемым текстом. Шаблоны этих кар- Окно настройки параметров преобразования при-
тинок загружаются из библиотек, поставляемых вместе ведено на рис. 5. Как правило, в результате полу-
с CamStudio. При желании можно изменять их размер чается файл меньшего размера, который удобно
и прозрачность и даже сохранять в виде пользователь- передавать через Интернет и хранить на сервере.
ских библиотек шаблонов. Готовое изображение с тек- Разработчики CamStudio заявляют, что в среднем
стом остается только расположить в нужной части экра- для файлов AVI небольшого разрешения размер
на и снять на видеоролик. Здесь удобно использовать файла SWF составит около 30%, а для файла AVI
горячие клавиши. большого разрешения размер SWF будет около 5%.
Video Annotations. Возможность добавления видеопри- Также есть возможность преобразования в флеш
мечаний. Их источником служит изображение с веб-ка- без потерь (без снижения качества изображения
меры компьютера. Величина разрешения видео настра- или частоты кадров).
ивается. Effects. Настройки эффектов для ролика: временных ме-
ток, водяных знаков и заголовков.
View. Выбор внешнего вида окна программы CamStudio.
Рисунок 4. Текстовые примечания на видео улучшают восприятие
На мой взгляд, удобен компактный режим (Compact), ког-
да отображаются только набор кнопок и главное меню
программы.
Help. Подробная помощь и информация о программе.
***
Использование видеорекордеров в ходе проектов разра-
ботки программного обеспечения решает сразу несколько
задач.
Во-первых, облегчается труд тестировщиков при опи-
сании обнаруженных дефектов. Также это помогает про-
граммистам вникнуть в суть ошибки, которую им требуется
исправить. В более широком смысле решается задача взаи-
модействия между подразделениями проекта: нет необхо-
димости в их непосредственном визуальном и вербальном
контакте, нет потерь по тайм-менеджменту.
Во-вторых, проект получает большой набор исходных
Рисунок 5. Настройка опций конвертации AVI/SWF
материалов для создания разноплановых видеоинструк-
ций, презентаций и обучающих курсов по продукту на бо-
лее ранних этапах работы над проектом (на стадии раз-
работки и тестирования) и от технически осведомленных
работников.
Грамотно составленные видеоинструкции весьма инфор-
мативны, полезны и удобны для восприятия. Размещение
таких роликов на специализированных или общих сетевых
ресурсах привлекает необходимую дополнительную целе-
вую аудиторию и положительно сказывается на рейтинге
проекта. EOF
Программная реализация
редуцированной вычислительной схемы
численного интегрирования системы линейных
дифференциальных уравнений на основе методов Эйлера
В работе рассмотрена реализация основных алгоритмов построения редуцированной
вычислительной схемы численного интегрирования системы линейных
дифференциальных уравнений на основе методов Эйлера. Приведены временные затраты
на построение и расчет по редуцированной схеме по сравнению с традиционными
численными методами. Расчет по вычислительной схеме больших математических
моделей происходит на два-три порядка быстрее используемых в специализированном
программном обеспечении методов
Одними из важнейших проблем длительной эксплуатации между собой. Ячейка сетки представляется прямоугольником или
космических аппаратов (КА) являются электризация и связанные треугольником. Количество узлов СЭМ крупногабаритного КА
с этим процессом электростатические разряды (ЭСР). В 30% будет равняться (1…2)х105. Каждая связь (ветвь) представляется
случаев потеря КА происходит из-за электризации. ЭСР порождают в виде элементов электрической цепи (R, L, C), в целом образующих
токи на поверхности КА, которые наводят в бортовой кабельной эквивалентную электрическую схему поверхности КА. При этом
сети наводки величиной до 10 В. Помехи такой величины способны номиналы элементов одного типа одинаковы.
привести к отказам бортовой радиоэлектронной аппаратуры. С помощью ПО «Satellite-MIEM», зная место электрического
Для сведения: к минимуму возможных сбоев электроники КА разряда, можно получить картину растекания тока. Для расчета
необходимо смоделировать картину растекания тока по поверхности переходных токов используется наиболее производительная
КА. Далее проводится расчет наводок в кабелях и даются программа расчета электрических схем LTSpice, однако для анализа
рекомендации по их экранированию или оптимальному маршруту схемы из 150 000 узлов требуется 83 часа (эксперимент проводился
прокладки. С этой целью в МИЭМ были разработаны структурная на ЭВМ с двуядерным процессором с тактовой частотой 1,8 ГГц
электрофизическая модель (СЭМ) КА [1] и программное на каждом ядре, объем оперативной памяти равняется 2 Гб) [2],
обеспечение ПО «Satellite-MIEM» для ее реализации. что неприемлемо для предприятий космической отрасли.
ПО «Satellite-MIEM» синтезирует структурную Используемые в ПО численные методы хорошо показывают себя
электрофизическую модель (СЭМ) на базе заданной полигональной только при расчете небольших моделей [3]. Поэтому возникает
3D-модели КА (см. рис. 1). Полигональная модель состоит необходимость в создании новых методов расчета больших
из совокупности элементарных фигур – треугольников электрических схем. Ранее в [4-6] был предложен новый подход
или прямоугольников, преобразуемых средствами программы редукции модели линейной схемы, основанный на исключении
в поверхностную сетку: совокупность связанных узлов. Сетка из модели подвекторов, содержащих в себе фазовые переменные,
является равномерной, то есть шаги по всем координатам равны значения которых не превышают 1-2% от величины приложенного
к месту разряда тока. В данной работе авторы разрабатывают
программу для реализации редуцированной вычислительной схемы
Рисунок 1. Преобразование полигональной модели в СЭМ
и проверяют теоретические оценки эффективности вычислительной
схемы на практике.
, , (1)
и токов, протекающих через индуктивные элементы), – вектор Будем считать, что исходная задача имеет следующий вид:
входных сигналов.
Отметим специфику модели схемы. , . (11)
1) Матрица C является диагональной и вырожденной. Диагональ
состоит из двух групп коэффициентов и коэффициенты внутри При использовании численных методов процесс решения (11)
каждой группы одинаковы. заключается в вычислении вектора решения в моменты времени
2) Матрица G – невырожденная, симметричная и разреженная , т.е. , ,…, .
матрица. Рассмотрим одношаговый метод Эйлера для решения
3) Вектор содержит только один или два ненулевых задачи (11). Явный метод Эйлера решения системы уравнений
коэффициента вида , где i может быть любым числом от 1 до n. с учетом конкретного вида системы уравнений (11):
Необходимо с минимальными временными затратами выполнить
решение системы уравнений в момент времени t*, т.е. вычислить . (12)
числовой вектор .
Рассмотрим неявный метод Эйлера. С учетом конкретного вида
2. Редукция вычислительной схемы методов Эйлера системы уравнений (11) получим следующую формулу метода
Для решения задачи (1) формируется модель схемы в РОКБ Эйлера:
следующим образом:
. (13)
, (3) где , .
, (4)
, (5) Пусть подвекторы и содержат по искомых
коэффициентов решения. Получим на базе выражений (14) и (15)
Исключаем из модели подвектор . Из (5) получим: редуцированную вычислительную схему, из которой исключим
подвекторы и .
, (6)
(7) или
(8)
или
.
(9),
Рисунок 2. Иерархическая структура разработанной программы Иерархическую структуру разработанной программы покажем
на рис. 2.
Разработанное ПО для получения требуемого результата
выполняет ряд этапов:
1. Конвертирование ЭЭС КА из программы LTSpice в удобный
для дальнейших преобразований матричный вид.
2. Преобразование матриц для ускорения скорости расчета
по редуцированной вычислительной схеме.
3. Расчет ЭЭС с помощью вычислительной схемы.
4. Трансляция файла полученных результатов и построение
модели КА с учетом картины растекания токов.
Рассмотрим алгоритм конвертирования файла LTSpice в удобный
для дальнейших преобразований матричный вид и результат его
выполнения (см. рис. 3):
1. Объявление и обнуление переменных и массивов, выделение
памяти.
2. Открытие файлов ввода данных и вывода результата (вывод
ошибки при невозможности открытия).
3. Построчное чтение файла и запись его в символьный массив.
4. Поиск в файле величины и узла включения источника
возмущающего воздействия.
5. Проход по всему массиву, нахождение в нем C-переменных
и запись их номиналов в массив С в порядке возрастания по
диагонали, подсчет количества С, фиксирование новых позиций
для С-переменных, поставить источник возмущающего воздействия
Рисунок 3. Пример результата конвертирования файла LTSpice в удобный для дальней- в узел включения первого из элементов С.
ших преобразований матричный вид согласно (2) 6. Проход по всему массиву, нахождение в нем L-переменных
и запись их номиналов с отрицательным знаком в массив С
в порядке возрастания по диагонали, после позиций элементов С.
7. Проход по всему массиву, нахождение в нем R-переменных
и узлов их включения. Если узел связан с фиксированной позицией
С, заменить его на номер этой позиции, иначе присвоить номер:
сумма всех элементов С + сумма всех элементов L + порядок
вставки. Порядок вставки увеличить на 1.
8. Заполнение массива G: считываем номиналы текущих
R и по данным из шестого шага узлам включения ставим их
и той же задачи разные админы могут выбрать разные ин- тоже используются (например, тот же Chef), но очень мно-
струменты. го инструментов написано внутри компании – для установки
Визитка
От каждого – по труду,
или Каким сисадминам больше платят
Исследовательский центр рекрутингового портала Superjob.ru изучил предложения
работодателей и ожидания претендентов на позицию «Системный администратор
UNIX» в Москве и Санкт-Петербурге
Компетенции системных администраторов включают администраторов UNIX превышает доходы их коллег, адми-
в себя конфигурацию, настройку и администрирование нистрирующих Windows.
серверов под управлением операционной системой UNIX/ Одними из самых щедрых работодателей для сис-
Linux, а также персональных компьютеров и периферий- темных администраторов являются компании сферы ИТ
ных устройств. и телекоммуникаций: средние рыночные зарплатные пред-
Системные администраторы отвечают за установку, на- ложения в Москве составляют 83 000 руб., в Санкт-
стройку и обновление операционной системы и программ- Петербурге – 66 000 руб. в месяц.
ного обеспечения, поддержку локальной (LAN), глобальной Пробовать силы в качестве системного администратора
(WAN) и телефонной сетей. UNIX могут выпускники и студенты вузов (профильных либо
Они осуществляют резервное копирование и восстанов- технических). Соискатели, впервые претендующие на эту
ление данных, обеспечивают сохранность служебной ин- позицию, должны иметь хорошую теоретическую подготовку
формации, ведут техническую документацию и консультиру- в области защиты информации, знать серверное и сетевое
ют пользователей. оборудование, принципы организации сетей и сетевых про-
Операционная система UNIX распространена не так ши- токолов. Пригодится и знание «технического» английского.
роко, как Windows. Работодателям сложнее найти соответ- ИТ и телекоммуникационные компании обещают на-
ствующих специалистов. Поэтому заработок системных чинающим системным администраторам ОС UNIX
зарплату от 40 000 до 50 000 руб. в месяц в Москве, ния и серверного обеспечения в аналогичных компаниях.
от 32 000 до 40 000 руб. – в Санкт-Петербурге. Стаж работы системным администратором UNIX должен
Рассчитывать на прибавку к окладу или рассматривать составлять не менее трех лет. Максимальная величина
вакансии с более высокими зарплатными предложениями зарплатных предложений по данной вакансии составляет
могут специалисты с опытом администрирования ОС UNIX/ в Москве 150 000 руб., в Санкт-Петербурге – 120 000 руб.
Linux не менее года. Их доход достигает 60 000 руб. (Мо- Чаще всего на должность системного администратора
сква) и 48 000 руб. (Санкт-Петербург). UNIX претендуют молодые мужчины с высшим образовани-
Наличие профессиональных сертификатов, стаж работы ем. Женщин среди соискателей не набралось и 1%.
более двух лет – таковы основные требования следующего Средний возраст – 33 года.
зарплатного диапазона. 73% специалистов имеют профильное либо техническое
Соискатели также должны быть компетентны в области высшее образование.
защиты информации, знать методы противодействия сете- Системные администраторы – достаточно мобильные
вым атакам, иметь опыт администрирования веб-серверов специалисты: каждый пятый (22%) готов к переезду ради
и MySQL/PostgreSQL, навыки программирования. работы в компании своей мечты.
Кандидатам, соответствующим этим требованиям, ИТ- Средний срок работы системных администраторов на по-
отрасль предлагает зарплату до 100 000 руб. в Москве следнем месте составляет 2,6 года.
и до 80 000 руб. в Санкт-Петербурге. Менее половины соискателей являются безработными
Наиболее высоки зарплатные предложения крупных на момент размещения резюме (44%), остальные ищут под-
предприятий. Такие работодатели требуют от кандидатов работку либо новую работу на полную занятость, не уволь-
наличия опыта администрирования серверного оборудова- няясь со старого места. EOF
Строительство
Город / ИТ Промышленность
З/п диапазон Управление Услуги B2B Продажи В2В Продажи В2C
Отрасль Телекоммуникации Производство
недвижимостью
I Москва 40 000 – 50 000 40 000 – 50 000 35 000 – 45 000 35 000 – 50 000 35 000 – 50 000 40 000 – 50 000
СПб 32 000 – 40 000 32 000 – 40 000 28 000 – 36 000 28 000 – 40 000 28 000 – 40 000 32 000 – 40 000
II Москва 50 000 – 60 000 50 000 – 58 000 45 000 – 55 000 50 000 – 60 000 50 000 – 65 000 50 000 – 68 000
СПб 40 000 – 48 000 40 000 – 46 000 36 000 – 44 000 40 000 – 48 000 40 000 – 52 000 40 000 – 54 000
III Москва 60 000 – 100 000 58 000 – 95 000 55 000 – 90 000 60 000 – 100 000 65 000 – 100 000 68 000 – 95 000
СПб 48 000 – 80 000 46 000 – 76 000 44 000 – 72 000 48 000 – 80 000 52 000 – 80 000 54 000 – 76 000
IV Москва 100 000 – 150 000 95 000 – 150 000 90 000 – 130 000 100 000 – 140 000 100 000 – 140 000 95 000 – 130 000
СПб 80 000 – 120 000 76 000 – 120 000 72 000 – 105 000 80 000 – 110 000 80 000 – 110 000 76 000 – 105 000
Каждый зарплатный диапазон характеризуется определенным типичным набором требований и пожеланий к кандидату. Каждый последующий включает
в себя требования, сформулированные для предыдущих.
Визитка
С чего все началось атором задачи, то сначала отправляю письмо, даю «вменя-
Материал для статьи я начал собирать чуть больше месяца емое» время ознакомиться с ним, после чего обязательно
назад. Каждая формула была отловлена и сформулирована звоню или прихожу для личного обсуждения проблемы.
в ежедневной сутолоке дел, специально, потому что за этот И обязательно начинаю с вопроса, все ли понятно в моем
промежуток времени я ей воспользовался. Надо сказать, запросе. Это помогает осуществлять «санитарный кон-
они (формулы) так естественно вжились в мой повседнев- троль» моих писем, узнать какую информацию я упустил,
ный уклад, что я как-то и не задумываюсь, просто пользу- где возникли сложности с пониманием.
юсь… В разговоре я использую следующий алгоритм. Возник-
Их оказалось чуть больше десятка, но я выбрал свои са- ший вопрос сразу же устно обсуждается после получения
мые любимые, заслуженные и полезные. Они работают! письменного запроса. Далее – четкие устные договорен-
ности, затем они переносятся на бумагу или в электронный
Первая формула. Личное общение эффективнее вид и идут по маршруту на юридически значимое согласо-
почтовой переписки вание.
Эта формула помогает мне быть эффективнее коллег, ко- Системные администраторы, которые избегают разго-
торые решают абсолютно все рабочие вопросы, общаясь воров с коллегами, пользователями, на самом деле много
через почту или СЭД. Время, которое потребуется для до- теряют. Теряют коммуникативные навыки, возможность сло-
стижения результата, при живом общении будет гораздо вами «на лету» изложить свое видение вопроса, доказать
меньшим. Если возникает проблема, решение которой мо- свою правоту или выдвинуть план действий.
жет затянуться, я беру трубку или встаю и иду к человеку Если личное общение не помогает достигнуть цели, я ис-
для того, чтобы ее обсудить. Это всегда сокращает путь пользую вторую формулу.
к достижению цели.
Конечно, для того, чтобы остались «следы» и докумен- Вторая формула. Говорите языком документов
ты, никто не отменял проверенные механизмы, но количест- Иногда мне приходится включать «режим юриста», дотошно
во «транзакций» по согласованию вопросов уменьшается следуя буквам регламентов, инструкций, приказов и других
в разы. Стиль изложения коллег зачастую оставляет желать документов. Конечно, обязательно их внимательно изучить
лучшего, порой письмо трактуется по-разному, и, если без- и уметь цитировать. Такое бывает не только в случаях, когда
думно приступить к выполнению просьбы, можно сделать не удалось найти общий язык с коллегами. По неизведан-
ненужную работу или пойти неправильным путем. ному пути порой лучше идти именно согласно требованиям
Проговорить и согласовать производственные моменты документов, по правилам.
проще, чем писать письмо и каждый раз нажимать кнопки Вероятность допустить ошибку, таким образом, меньше,
клавиатуры, изображая кипучую деятельность. При непо- а если что-то пошло не так, то вас нельзя будет упрекнуть
средственном общении разговор приобретает личност- в непрофессионализме. В горячих спорах я тоже переклю-
ную окраску, и, используя ее, можно склонить чашу весов чаюсь в такой режим, стараясь максимально следовать
в свою сторону. требованиям приказов и положений. Тогда почва для кон-
Ведь главное – получить результат, который устраивал фликта улетучивается, и удается строить диалог конструк-
бы все заинтересованные стороны, занял минимум времени тивно.
и принес максимум пользы. Еще такой подход может оказаться полезным для выявле-
Эта формула имеет небольшое дополнение: сначала ния нестыковок и ошибок в документах, они могут устареть
письмо, потом звонок «в голову». Если я являюсь иници- или быть неактуальными. После того как обнаружены недо-
статки, обязательно надо приложить усилия, чтобы все ис- а значит, необходимо, чтобы такие «слова-паразиты» по-
править и актуализировать. кинули ваш лексикон. Если хотим быть профессионалами
и эффективно работать, то придется брать на себя ответ-
Третья формула. Все телепаты в отпуске, ственность. А еще придется уметь отстоять свои слова, на-
вечном и не оплачиваемом учиться их ценить.
Там, где запрос вырван из контекста, не понятен и порож- Итог: отвечаем четко, последовательно и следуем фак-
дает море вопросов, я применяю эту формулу и требую там.
разъяснений. Так уж устроен человек, что считает; если
все понятно и известно ему, то и соседи по цеху в курсе Пятая формула. Делай вид, что у тебя
всех мелочей. Но это отнюдь не так. есть добродетель, даже если у тебя ее нет
Общаясь с коллегами, я стараюсь повторить несколько Этот постулат вошел в список моих формул уже давно.
раз одни и те же тезисы обсуждаемой проблемы. В конце Слова принадлежат Шекспиру, и я часто озвучиваю их себе
диалога обязательно произношу фразу «А теперь подыто- и подчиненным. Формула на самом деле универсальна,
жим» и повторяю главное. Мне просто хочется быть уверен- всегда можно убрать слово «добродетель» и заменить
ным, что меня поняли правильно, что я не упустил из виду на любое другое. В ней скрывается очень мощный инстру-
какие-то мелочи или важный пункт в алгоритме. мент качественного решения новых задач и мотивирования
А прежде чем отправить письмо, думаю, как меня поймут самого себя. «Делай вид, что ты высококлассный систем-
и хватает ли в нем информации. Если вставить ссылку на до- ный администратор, мыслящий о будущем, знающий от-
кумент или страницу портала, откуда следует начать поиски, веты на все сложные вопросы, даже если ты не такой».
передать максимальное количество необходимой инфор- Примерив на себя такой образ, уже не захочется с ним
мации, то будет минимум вопросов ко мне за уточнениями, расставаться, уже не будет дороги назад. Это очень сти-
получится двойная экономия. Я не буду отвлекаться, мой мулирует не расслабляться, двигаться вперед, всегда быть
коллега сможет максимально правильно и четко выполнить в тонусе.
поставленную задачу. «Делай вид, что ты знаешь Linux, даже если ты его ни разу
не видел». «Делай вид, что ты умеешь программировать
Четвертая формула. Никаких «вроде», на PowerShell, даже если никогда ничего не писал». Каждый
«возможно», «может быть», только проверенные день жизнь подкидывает нам различные задачки, большие
факты. Все свои «вроде бы» оставляем при себе! и маленькие. ИТ достаточно сложно, и всего знать невоз-
Настоящий профессионал редко произносит подобные можно.
слова. У него за спиной опыт, прежде чем дать ответ, все бу- А формула «Делай вид...» помогает нам стать и быть зна-
дет проверено, посчитано, несколько раз обдумано. Наши ющим и профессиональным системным администратором.
знания и умения – это набор фактов, четкого понимания Это стимул думать, учиться, искать и побеждать, не отсту-
сути явления. Тут незачем колебаться, это неэффективно пать перед трудностями. Бороться с самим собой, со своим
и наносит вред нашей репутации. Услышав подобные сло- неумением, слабостями в форме такой «театральной игры»
ва от своих коллег, я воспринимаю их как способ избежать легче.
ответственности, нежелание думать и лишний раз все про- Сегодня вы примеряете такую успешную маску, но со вре-
верить. менем маска вам уже не понадобится. Тут главное – иметь
Общение с подобной неуверенностью в профессиональ- здравый смысл, вовремя остановиться и не переиграть са-
ных вопросах – признание собственной некомпетентности, мого себя.
Шестая формула. Успехи никто не оценит, ние. Достаточно только проявить интерес, договориться
зато ошибку будут долго еще вспоминать и написать гарантийное письмо. И пару недель у вас будет
при удобном случае возможность все внимательно изучить и даже попробовать
Таков наш несправедливый мир. Надо просто с достоин- использовать в боевой обстановке.
ством принять это. Если постоянно себя грызть за ошибки Обязательно, хотя бы раз в месяц, я выбираюсь на очные
прошлого, то будет страх делать что-то новое, бороться. мероприятия, где кратко и емко расскажут о новинках в об-
Всегда проще тихонько отсидеться в уголке с 9 до 6 и ниче- ласти ИТ.
го нигде не сломать. Таким образом, я внутри себя поддерживаю некий уро-
ИТ позволяет остановиться в развитии и существовать вень «современности и актуальности» окружающих техно-
в некотором стабильном состоянии, когда ничего нигде логий.
не меняется и не происходит. А вот для того, чтобы разви-
ваться и двигаться вперед, необходимы мужество и опреде- Девятая формула. Материализация мысли –
ленная смелость. Через шрамы ошибок и лежит путь из па- первый шаг к достижению результата
даванов к гуру. Все идеи и мысли, которые мне показались правильными
и полезными, я стараюсь занести на материальный носи-
Седьмая формула. Обновляйте договоренности. тель. Бумажка, заметка в сотовом, схема на доске – где угод-
Забывчивость – стандартный диагноз каждого но, только не просто в памяти.
сотрудника Я заметил за собой, что если оставить пришедшее в го-
Так уж устроена наша память, что старается не перегру- лову только в мыслях, то со временем яркие и правильные
жаться. Вот и установленные когда-то среди коллег догово- идеи гаснут, мысль становится не столь четкой. Вокруг
ренности по качественному взаимодействию друг с другом, нас столько способов сохранить наши идеи, главное – по-
если они не выполняются по несколько раз за день, доста- вторить себе формулу и не рассчитывать на свою память.
точно быстро стираются из памяти. Если хорошая мысль пришла про сложную задачу, которой
Поэтому регулярно, раз в два-три месяца, я подстегиваю не захочется заниматься, но сделать надо, сразу необходи-
и свою память, и память коллег, рассылая одно и то же пись- мо отрезать мосты к отступлению. Лучше всего подойдет
мо с договоренностями, которое я бережно храню для таких «материализация» в виде почты руководителю. Теперь уже
случаев. Благодаря ему я сам вспоминаю, что же необхо- не сослаться на свою забывчивость, а значит, первый шаг
димо соблюдать. Пример таких договоренностей вы може- к достижению результата будет сделан.
те прочитать в №7-8 журнала «Системный аминистратор» А еще я где-то прочитал поговорку: «Тупой карандаш луч-
за прошлый год [1]. Ну и, конечно же, у меня не будет мо- ше острой памяти», и стараюсь не лениться и материализо-
рального права требовать от коллег пунктуальности, если вывать свои мысли.
я сам ничего не помню.
Я пересматриваю, не устарели ли положения данного Десятая формула. Помни о своих пользователях.
письма, не нужно ли что-либо подправить. Так я поддер- Сделай для них больше, чем они ждут
живаю его актуальность, проводя «санитарный контроль». Пользователи – это не назойливые мухи, отвлекающие
В конце письма я обязательно добавляю: «Есть ли предло- своим жужжанием нас от важных проектов. Пользовате-
жения или дополнения?» Вдруг кто-нибудь увидел то, чего ли – это наши клиенты, из их мнения о нашей работе скла-
не заметил я, или предложит новый пункт. дывается общее впечатление о нас как сотрудниках. Ча-
Ну и достраивать новое и вычеркивать устаревшее легче, сто и премиальный фонд и лояльность руководства очень
чем коллективно вспоминать, как мы договаривались, и кто сильно зависят от оценки нашей деятельности. Да и само-
виноват, что все оказалось забыто. му приятно работать, понимая, что в нашей памяти ничего
не теряется и пользователи довольны. Это даст возмож-
Восьмая формула. Живой айтишник – это всегда ность сосредоточиться на сложных рабочих проектах. Уме-
движение. Остановка смерти подобна ние строить с пользователями деловые отношения поможет
Не устаю повторять, что изменения в ИТ происходят на- им более лояльно относиться к нашим промахам и невоз-
столько быстро, что нужно просто бежать, чтобы оста- можности быстро удовлетворить запросы всех. А это край-
ваться в тренде и быть квалифицированным сотрудником, не полезно.
а не пыльным мешком устаревших знаний. Такой «драйв»
подстегивает к изучению самых современных технологий, ***
тестированию и выбору наиболее новых приложений и ап- Каковы мысли в душе человека, таков и он (Библия, Прит-
паратных платформ. чи 23:7). Как мы думаем, как оцениваем себя и окружающий
А еще новейшие ИТ-технологии требуют наличия несла- мир, в такой реальности и живем. Если пытаться в кругово-
бых коммуникативных навыков и знаний эффективных прин- роте рутинных событий выискивать пути лучше и качествен-
ципов работы в команде. Поэтому часть свободного и даже нее делать свою работу, это обязательно скажется на по-
рабочего времени я обязательно бюджетирую для чтения следующих событиях нашей жизни.
книг, ИТ-новостей и обзоров, ознакомления с новыми техно- Ищите себя, свои формулы, совершенствуйтесь –
логиями. Новые дорогие железки нет нужды покупать, чтобы это ведь так интересно. EOF
пощупать.
Производители и вендоры регулярно дают возможность 1. Барамба С. Ты-я-он-она. Вместе – целое ИТ-подразделение!
бесплатно взять на тестирование почти любое оборудова- //«Системный администратор», №7-8, 2013 г. – С.110-113.
Визитка
Студент, как оказалось, не понимал основополагающих (полного) общего, начального профессионального, средне-
принципов хранения информации в памяти компьютера и, го профессионального и высшего профессионального об-
как следствие, смысла адресации. На вопрос: «А что же разования образовательными учреждениями, имеющими
вы на информатике в школе проходили?» – ответом было: государственную аккредитацию [1].
«Да учитель по географии вел информатику». Принципы построения Федерального базисного учебно-
И вот чуть больше года назад мне довелось окунуть- го плана для 10-х-11-х классов основаны на идее двухуров-
ся в школьную жизнь. Вначале помогал в обслуживании невого (базового и профильного) федерального компонен-
школьных компьютеров, а с 1 сентября 2013 года меня та государственного стандарта общего образования. Таким
представили коллективу как преподавателя информати- образом, предметы, в том числе и информатика, в школе
ки и информационно-коммуникационных технологий (ИКТ) согласно стандарту изучаются на базовом и профильном
старших классов. уровне. Также для учащегося есть возможность пройти
Не буду расписывать, почему и как я оказался у школь- так называемый элективный курс, который тоже позволяет
ной доски. Проработав 15 лет на государственном пред- изучать предмет углубленно.
приятии программистом/системным администратором Позволю себе процитировать Федеральный государ-
(как хотите, но на нашем предприятии приходилось делать ственный образовательный стандарт среднего (полного)
и то и другое), я познакомился с применением информаци- общего образования (10-11 кл.) касательно углубленного
онных технологий на практике, приобрел некоторый опыт, изучения предмета [2]:
однако никогда не пытался работать преподавателем. Но та- «Информатика» (углубленный уровень) – требования
кой эксперимент мне показался интересным. к предметным результатам освоения углубленного курса
Итак, вашему вниманию предлагаются заметки о том, информатики должны включать требования к результатам
что же увидел человек, поработавший достаточное вре- освоения базового курса и дополнительно отражать:
мя айтишником, в преподавании нашего с вами предме- 1) владение системой базовых знаний, отражающих
та в школе. Оговорюсь, что это чисто мое мнение, совсем вклад информатики в формирование современной научной
не претендующее на непререкаемую истину. картины мира;
2) овладение понятием сложности алгоритма, знание ос-
Заинтересованность государства новных алгоритмов обработки числовой и текстовой инфор-
в ИТ‑грамотности школьников мации, алгоритмов поиска и сортировки;
Да, да. Она есть. Всем понятно, что нашей стране не хочется 3) владение универсальным языком программирования
быть сырьевым придатком. Еще 5 сентября 2005 года Пре- высокого уровня (по выбору), представлениями о базовых
зидент Российской Федерации Владимир Путин объявил типах данных и структурах данных; умение использовать ос-
о старте четырех приоритетных национальных проектов, од- новные управляющие конструкции;
ним из которых является проект «Образование». 4) владение навыками и опытом разработки программ
Для тех, кто, может быть, еще не знает, – в России в выбранной среде программирования, включая тестирова-
с 2007 года в образовании действуют Федеральные государ- ние и отладку программ; владение элементарными навыка-
ственные образовательные стандарты (ФГОСы). Как разъ- ми формализации прикладной задачи и документирования
ясняется на сайте Министерства образования и науки, об- программ;
разовательные стандарты – это совокупность требований, 5) сформированность представлений о важнейших видах
обязательных при реализации основных образовательных дискретных объектов и об их простейших свойствах, алго-
программ начального общего, основного общего, среднего ритмах анализа этих объектов, о кодировании и декодиро-
вании данных и причинах искажения данных при передаче; достаточно обширны. Таким образом, согласно ФГОС в на-
систематизацию знаний, относящихся к математическим шем государстве молодой человек, изучивший информатику
объектам информатики; умение строить математические в средней школе, должен обладать неплохим начальным ба-
объекты информатики, в том числе логические формулы; гажом знаний для применения информационных технологий
6) сформированность представлений об устройстве со- в своей будущей деятельности и для продолжения изучения
временных компьютеров, о тенденциях развития компью- ИТ в их широком спектре в высшем учебном заведении.
терных технологий; о понятии «операционная система» Итак, заинтересованность государства, подкрепленная
и основных функциях операционных систем; об общих законодательно, есть, и все выглядит хорошо на бумаге.
принципах разработки и функционирования интернет-при- А что на практике?
ложений;
Учебники и методическая литература
Понятно, что в процессе образования без дидактического
Государство заинтересовано материала никак не обойтись. Преподавателю мало знать
самому предмет, надо еще и объяснить школьникам тот
в ИТ-грамотности, или иной вопрос, да и без самостоятельного обучения вряд
это подкреплено законодательно ли можно говорить о глубоком изучении предмета.
Учебников по информатике для школы в России – масса.
и выглядит хорошо на бумаге. Стоит лишь зайти в книжный магазин или посмотреть в Ин-
А что на практике? тернет. Между тем для того, чтобы выбрать учебник и мето-
дический материал к нему для конкретного курса (базового,
профильного или элективного), мне пришлось приложить
некоторые усилия. Однако с уверенностью скажу, что даже
7) сформированность представлений о компьютерных се- при отсутствии опыта подобрать подходящий учебник, соот-
тях и их роли в современном мире; знаний базовых принци- ветствующий ФГОС, сложно, но не невозможно.
пов организации и функционирования компьютерных сетей, Есть отличные примеры творческого и ответственного
норм информационной этики и права, принципов обеспе- подхода к своему делу. Можно отметить учебники для 8-го
чения информационной безопасности, способов и средств и 9-го классов «Информатика и ИКТ» Л.Л. Босовой и А.Ю.
обеспечения надежного функционирования средств ИКТ; Босовой – прекрасно изложенный материал с использова-
8) владение основными сведениями о базах данных, нием различных, в том числе и свободных, программ, кото-
их структуре, средствах создания и работы с ними; рый обильно снабжен тестами и контрольными вопросами,
9) владение опытом построения и использования компью- да еще и презентациями для изложения материала на уро-
терно-математических моделей, проведения экспериментов ках и самостоятельного изучения, выложенными в Интер-
и статистической обработки данных с помощью компьюте- нет [3].
ра, интерпретации результатов, получаемых в ходе модели- Отдельного внимания и благодарности заслуживают учи-
рования реальных процессов; умение оценивать числовые теля, которые выкладывают свои наработки в свободный
параметры моделируемых объектов и процессов, пользо- доступ. При подготовке к занятиям много интересного мате-
ваться базами данных и справочными системами; риала нашлось на персональных страничках К.Ю. Поляко-
10) сформированность умения работать с библиотека- ва [4] и А.И. Козлова [5].
ми программ; наличие опыта использования компьютерных Говоря о методике преподавания, нельзя не отметить Ку-
средств представления и анализа данных». Мир («Комплект Учебных Миров»), созданный для обучения
Впечатляет, не правда ли? Требования к изучению пред- школьников программированию [6]. В учебной литературе
мета на базовом уровне, конечно, не столь глубоки, но тоже также активно продвигается так называемый школьный
алгоритмический язык, составляющий основу КуМира, ко-
торый является русскоязычным алгоритмическим языком,
На экскурсии в гостях у разработчиков промышленной электроники
ООО «Тулапромприбор» очень похожим на Паскаль. Вообще нужно отметить, что вся
система обучения информатике в школе сильно ориенти-
рована на Паскаль, от учебников до заданий на экзаменах,
что, может быть, совсем неплохо для обучения на базовом
уровне. На профильном уровне и занятиях по выбору необ-
ходимо все-таки хотя бы начинать знакомить учеников с дру-
гими языками программирования, например, с Си или Java,
а может быть, и Python.
Хотелось бы также отметить учебно-методический жур-
нал для учителей «Информатика» издательского дома
«Первое сентября», в котором постоянно ведется обмен
методическими разработками, обсуждаются различные во-
просы преподавания информатики в школе.
Таким образом, можно с уверенностью сказать,
что в настоящее время в российской школе есть все сред-
ства в плане обучающих программ и методических разра-
Визитка
В предыдущей статье [1], посвященной качеству кода, >> мертвый код (неиспользуемые переменные, приватные
мы рассмотрели ряд инструментов, помогающих разра- методы и параметры функций);
ботчикам улучшить читаемость исходных текстов программ >> пустые тела циклов и условий;
и облегчить тем самым их поддержку и развитие. Досто- >> излишне усложненные циклы;
инством подобных утилит является простота и легкость >> некорректное или неэффективное использование
использования – достаточно указать, какие правила необ- стандартных классов Java и так далее.
ходимо проверять, и запустить инструмент. Этот фактор Достойной альтернативой является FindBugs, который
обусловил большую популярность таких средств анализа содержит более четырехсот правил для проверки, относя-
кода, особенно при использовании систем CI. щихся преимущественно к семантике программы и исполь-
В то же время рассмотренные инструменты способны зованию тех или иных конструкций в коде.
выявить очень ограниченный класс ошибок. Безусловно, В мире .NET аналогичные возможности предоставляет
проблемы плохого форматирования кода или неговорящих FxCop, анализирующий промежуточный код на языке CLI
названий переменных неприятны, но на функциональность (в который компилируются все .NET-приложения, неза-
программы напрямую они не влияют. висимо от конкретного языка программирования). Наряду
Однако не стоит думать, что это все, на что способны с проверкой следования правилам именования и другим
автоматизированные средства анализа программ. Рынок аспектам, влияющим на простоту поддержки кода, FxCop
таких инструментов постоянно развивается и предлагает позволяет выявлять проблемы с надежностью, переноси-
все более совершенные и изощренные способы прове- мостью и безопасностью приложений. Анализ на основе
рить ваши приложения на корректность, позволяя находить FxCop встроен в некоторые редакции Visual Studio.
все большее количество потенциальных проблем, не затра- Другие языки тоже не обделены вниманием – для C++
чивая на это особых усилий. существует мощный cppcheck (интегрирующийся с Visual
В этой статье я предлагаю вам обзор наиболее популяр- Studio, Eclipse, Code::Blocks и другими популярными IDE),
ных и функциональных средств автоматического анализа для Python – PyChecker и Frosted, для Groovy – CodeNarc
приложений, которые активно используются как в промыш- и так далее.
ленных проектах, так и разработчиками небольших про-
грамм. Детекторы уязвимостей
Среди различных видов проблем, выявляемых семанти-
Анализаторы семантической корректности кода ческими анализаторами, необходимо отдельно отметить
Начнем с простого. Многие утилиты, проверяющие соот- ошибки работы с оперативной памятью, которые уже долгие
ветствие кода определенным правилам, не ограничивают- годы являются головной болью большого количества при-
ся требованиями к структуре и оформлению. Часто такие ложений.
структурные проверки дополняются семантическим анали- Традиционные языки программирования (прежде всего
зом, в рамках которого инструменты пытаются определить, C и C++) оставляют задачи по управлению памятью про-
нет ли в программе конструкций, потенциально ведущих граммистам. И, как показывает практика, даже в небольших
к проблемам с производительностью, безопасностью, логи- программах часто встречаются опасные ошибки, связанные
кой работы и прочими аспектами, непосредственно влияю- с обращением к памяти по некорректным адресам – напри-
щими на функционал приложения. мер, выход за границы массива или присвоения указателю
Типичным представителем таких инструментов в мире на функцию неверного значения, указывающего совсем
Java является PMD (см. рис. 1), позволяющий выявлять: не туда, куда хотелось бы разработчикам.
Опасными такие ошибки являются не только потому, тью достаточно сложно. Для более полного анализа необ-
что приводят к «падению» программы и возможной потере ходимо так или иначе проэмулировать работу программы
результатов труда пользователя, но и потому, что представ- или ее конкретного участка и посмотреть, как код ведет
ляют собой потенциальные бреши в безопасности системы. себя в реальной жизни.
Зная о наличии в программе некорректного обращения к па- Подобный подход используют инструменты от Coverity –
мяти, злоумышленник с помощью специально сформиро- в частности, Static Analysis Verification Engine (Coverity SAVE),
ванных входных данных может заставить программу сделать использующий абстрактную интерпретацию для частичного
то, что нужно ему для вторжения в ОС, – например, открыть исполнения различных участков программы и позволяющий
сессию удаленного доступа. Впрочем, это большая тема, находить утечки памяти, обращение к неинициализирован-
и она освещалась на страницах Open Source [2]. ным областям и ряд других потенциальных ошибок, которые
Частично проблемы были решены созданием языков могут привести к серьезным последствиям. При этом весь
и фреймворков с автоматическим управлением памятью – анализ происходит статически – то есть Coverity работает
таких, как Java, .NET, Perl, Python и другие. Однако полного исключительно с кодом и не требует запуска приложения.
перехода всех приложений на такие языки пока не пред- Инструменты Coverity не бесплатные, но для ознакомле-
видится. Традиционные подходы с ручным управлением ния компания предлагает пробную версию. Открытые про-
памятью по-прежнему остаются на ведущих позициях, и по- екты могут воспользоваться сервисом Coverity SCAN, по-
иск потенциальных ошибок в них остается актуальной за- зволяющим загружать на сайт компании свои приложения
дачей. и получать результаты анализа. Есть у Coverity и достойные
За десятилетия борьбы с некорректным использованием аналоги – например, Klockwork и отечественные PVS-Studio
памяти появилось немало инструментов, помогающих раз-
работчикам в решении этой нелегкой задачи. Во-первых,
Рисунок 1. Отчет плагина PMD в Eclipse (изображение с eclipsezone.com)
современные ОС и средства разработки предоставляют
ряд возможностей для определения некорректной рабо-
ты с памятью, предотвращая использование таких ошибок
злоумышленниками – об этом также подробнее рассказано
в статье [2].
Имеются и инструментальные средства для анализа при-
ложений на предмет возможных нарушений. Часть таких
инструментов использует статический анализ кода – так,
уже упоминавшийся cppcheck способен выявлять утечки
памяти и некоторые другие ошибки (например, с помощью
этой утилиты не так давно была обнаружена потенциальная
уязвимость в библиотеке libXfont, входящей в состав исполь-
зуемой в Linux и многих UNIX-системах графической систе-
мы X.Org).
Статические анализаторы
Посредством исключительно синтаксического разбора
и анализа кода обнаружить многие ошибки работы с памя-
и CppCat, позволяющие выявлять нетривиальные пробле- зрения разработчика, пользоваться им очень просто – до-
мы. Реальный пример анализа исходного кода программы статочно всего лишь запустить программу с его помощью,
Crypto++ от разработчиков CppCat – для следующего участ- указав необходимые опции (например, что именно нужно
ка кода: отслеживать/профилировать).
Вот так, например, выглядит небольшой кусок результата
void CAST256::Base::UncheckedSetKey() работы Valgrind при запуске через него IM-клиента Kopete
{
word32 kappa[8]; из командной строки:
...
memset(kappa, 0, sizeof(kappa)); $ valgrind kopete
}
<...>
34,370 bytes are definitely lost
=at 0x4029CFA: operator new(unsigned int)
CppCat выдаст предупреждение о том, что большинство
=by 0x5E93A40: KEmoticons::theme() (in /usr/lib/
оптимизирующих компиляторов удалят завершающий вы- libkemoticons.so.4.11.4)
зов memset, поскольку переменная kappa локальная и пос- =by 0x805D343: ??? (in /usr/bin/kopete)
и инструменты проекта Linux Driver Verification (LDV), прово- Казалось бы, вот оно, счастье! Конечно, надо еще сфор-
дящие статическую верификацию. Эти средства объектив- мулировать требования в формальном виде, но это не очень
но являются одними из лидеров в области автоматического большая проблема. Но есть более существенная слож-
тестирования модулей ядра Linux; мы активно использу- ность, с которой сталкиваются автоматизированные инстру-
ем их при разработке дистрибутивов РОСЫ и исправили менты, использующие формальную верификацию, – это по-
с их помощью ряд достаточно хитрых проблем. требность в огромном количестве ресурсов. Более точно:
В заключение констатируем, что ошибки работы с памя- используемые в этих инструментах алгоритмы страдают
тью остаются одной из насущных проблем современного от эффекта комбинаторного взрыва, и победить эти про-
ПО. Выявлять их непросто, но и цена таких ошибок велика. блемы в общем случае пока не представляется возможным.
Как следствие, нацеленные на их обнаружение инструмен-
ты достаточно нетривиальны и по сложности существенно
превосходят инструменты форматирования кода и прочие
косметические анализаторы.
Зная о наличии в программе
Однако в плане сложности Valgrind, Coverity и компания – некорректного обращения
далеко не все средства для тестирования кода. Пора пере-
йти к самому наукоемкому классу таких инструментов, осно-
к памяти, злоумышленник
ванному на строгой математике. с помощью специально
Формальная верификация кода
сформированных
Программирование исконно очень близко математике, входных данных может
и развитый математический аппарат активно использует-
ся в разных областях, имеющих отношение к разработке
заставить программу
ПО, например, в теории алгоритмов и теории компилято- сделать то, что нужно
ров. Вполне ожидаемо, что уже несколько десятилетий ему для вторжения в ОС
в воздухе витают идеи применить математические методы
и к тестированию программ, то есть подойти к вопросу про-
верки качества приложений как к математической задаче. Как следствие, применять формальную верификацию полу-
Такой подход получил общее название формальной вери- чается либо для небольших программ, либо для проверки
фикации. достаточно узких и специфических требований. Либо про-
Классическое тестирование может только находить водить тестирование на мощных кластерах, но и это спаса-
ошибки, но не способно гарантировать их полное отсут- ет ненадолго.
ствие – ведь для этого необходимо было бы перебрать По этой причине использование инструментов формаль-
все возможные входные данные и сочетания внешних ус- ной верификации в промышленности довольно ограничено,
ловий. Формальная же верификация как раз позволяет несмотря на большой интерес многих вендоров к строгим
доказать, что программа обладает или не обладает теми математическим подходам. Тем не менее есть и вполне по-
или иными свойствами – в частности, что в ней отсутствуют лезные инструменты формальной верификации, используе-
те или иные ошибки. мые для реальных проектов.
Например, можно проверить, что та или иная перемен- Так, уже упомянутый ранее мною LDV, который мы ис-
ная не обнуляется в ходе работы, что переменная инициа- пользуем в РОСЕ, основывается на статических анализа-
лизируется до ее использования или что выходное значение торах BLAST и CPAchecker (более того, в последние годы
функции sqrt() действительно возвращает квадратный ко- BLAST и развивается в основном разработчиками LDV).
рень своего аргумента. Правда, нельзя проверить, что оши- Также достаточно известным является инструмент Java
бок нет вообще, ведь вряд ли такое требование можно опи- Path Finder, позволяющий находить в многопоточных Java-
сать математически. программах тупики, необработанные исключения и некото-
Часто используемым видом формальной верификации рые другие ошибки.
является Model Checking («проверка моделей»). Он под- В целом интерес к формальной верификации не угасает,
разумевает построение математической модели программы и исследования в этой области ведутся как научными цен-
(возможно, абстрактной модели, отражающей не все харак- трами, так и крупными корпорациями. При этом инструменты
теристики программы, а только те, которые важны для про- формальной верификации сейчас применяются не только
верки того или иного свойства). Такая модель может быть к программам, но и к аппаратным средствам – в частности,
построена с использованием конечных автоматов, сетей к процессорам.
Петри и аналогичных математических объектов. Немаловажен и тот факт, что год от года растет произ-
Далее необходимо сформулировать требования для про- водительность компьютеров и увеличиваются вычисли-
верки на модели; обычно для этого используются времен- тельные мощности, доступные для проведения статической
ные (или темпоральные) логики, добавляющие к «обычной» верификации. Хотя и приложения не отстают в своем раз-
логике понятия времени и причинно-следственных связей. витии, все более усложняясь и разрастаясь.
Проверка выполнения требования на модели – занятие
очень трудоемкое, но рутинное, и для него существуют Программы-комбайны
соответствующие автоматические инструменты – такие, Как вы уже наверняка подметили, многие рассмотренные
как BLAST, CPAchecker или SPIN. в этой статье (а также в предыдущей статье про качество
кода) инструменты зависят от языка программирования. в этой статье инструментов скорее дают пищу для размыш-
Если вы работаете над крупным проектом или репозитори- лений – нет ли в тех или иных местах программы потенци-
ем из нескольких проектов, использующих разные языки альной ошибки, которая может проявиться в самый непод-
и технологии, то вам могут помочь фреймворки, поддержи- ходящий момент. Иными словами, для продвинутых средств
вающие сразу множество платформ и языков. автоматизированного тестирования и анализа велика веро-
Кроме того, даже в рамках одного небольшого проекта ятность ложного срабатывания.
не всегда удобно применять много разрозненных инстру- Определить, является ли срабатывание ложным, не всег-
ментов – хочется каким-то образом их интегрировать. Безус- да легко. По этой причине не все упомянутые выше инстру-
ловно, здесь могут помочь инструменты Continuos Integration менты используются на регулярной основе в рамках не-
(CI) – например, Hudson и Jenkins предлагают плагины прерывной интеграции. А если и используются, то далеко
для многих рассмотренных выше утилит. не всегда результатам их работы уделяется должное вни-
Однако некоторые вендоры предлагают комбинирован- мание. Ведь если вы из раза в раз получаете одни и те же
ные решения, сразу покрывающие несколько направлений. предупреждения и уверены, что все они являются ложными
Так, тот же Coverity предоставляет целый набор продуктов срабатываниями, то вскоре вы просто перестанете обра-
под общим названием Coverity Platform, включающий разно- щать внимание на отчеты этих инструментов и можете не за-
образные инструменты проверки качества кода и обеспе- метить появления реальных проблем.
чения контроля качества программного продукта в целом. Конечно, многие программы позволяют составлять спи-
Имеются у Coverity и инструментальные средства, которые сок известных ложных срабатываний, которые будут игно-
очень пригодятся в крупных проектах – например, Coverity рироваться при последующих запусках, а многие средства
Connect предоставляет средства обработки ошибок, най- CI предоставляют плагины, позволяющие отслеживать по-
денных инструментами Coverity Platform, и поддерживает явление новых ошибок в отчете тех или иных инструментов
базу знаний о возможных ошибках. тестирования, так что после очередной сборки вы можете
Есть у Coverity и аналоги – например, достаточно извест- сконцентрироваться только на ошибках, которые привнесли
ны статические анализаторы кода QA-C и QA-C++ от PRQA, последние изменения кода. Это несколько облегчает жизнь,
позволяющие выявлять широкий класс проблем и недоче- но в условиях часто изменяющегося кода список известных
тов и при этом представлять результаты в удобной и понят- ошибок необходимо постоянно обновлять, а, занимаясь
ной форме. только новыми ошибками, можно забыть исправить старые,
Из свободных инструментов хорошим выбором будет но отнюдь не ложные.
SonarQube (см. рис. 2), поддерживающий более 20 языков Помножьте эти проблемы на ресурсоемкость многих ин-
программирования и способный проверять соответствие струментов и на немаленькую стоимость некоторых из них,
кода имеющимся требованиям, находить дублирующие- и вы придете к выводу, что для небольших проектов, тре-
ся участки программ, потенциальные ошибки, а также за- бования к качеству которых относительно невелики, вполне
пускать все ваши тесты для приложений. Для SonarQube хватит и простых утилит. Когда же сложность кода возрас-
существует более полусотни плагинов, еще больше рас- тает настолько, что держать его весь в голове не пред-
ширяющих его функциональность, а сам он может быть ин- ставляется возможным, а требования к качеству при этом
тегрирован в инструменты CI. становятся все более серьезными, пора вспомнить и о про-
двинутых автоматизированных средствах. Но главное – что-
Сложные инструменты – для сложных проектов! бы было, что вспомнить, ведь на срочное изучение новых
Итак, качество кода отнюдь не сводится к его оформлению, технологий времени, как всегда, не окажется.
а автоматизированные инструменты проверки качества по-
зволяют исправлять более серьезные ошибки, чем некра- ***
сивые отступы. Однако в отличие от lint и ему подобных, К сожалению, в процессе обучения в вузах подобным авто-
дающих однозначный ответ, соответствует ли программа матизированным инструментам редко уделяется много вни-
заданным требованиям или нет, многие из рассмотренных мания; однако ничто не мешает любознательным студентам
проявить инициативу и самостоятельно попробовать неко-
торые из них, благо здесь имеется и богатый выбор свобод-
Рисунок 2. Sonar умеет анализировать даже программы на Коболе
(пример с sonarsource.com) ных программ.
Такая инициатива наверняка будет по достоинству оце-
нена не только преподавателями, но и работодателями,
а оценка последних ничуть не менее важна. EOF
Визитка
Лабораторная работа
Представление текстовой информации в ЭВМ. Часть 1
Теоретические сведения о способах представления текстовой информации
в памяти ЭВМ, в том числе и кириллицы
В теоретической части работы рассматриваются вопросы мации, существующих стандартов и методов, несомненно,
кодирования текстовой информации и некоторые полезные может быть расширен в будущем.
свойства кодировок. Вопросы упаковки, сжатия и оценки Если вопросы представления чисел в памяти ЭВМ были
количества информации не затрагиваются. рассмотрены в [1], то данная работа посвящена пробле-
В последующей, практической, части предлагается са- мам хранения текстовой информации. Понимание принци-
мостоятельно выполнить несколько заданий посредством пов кодирования и знание основных кодовых таблиц важно
общения с компьютером через интерфейс командной стро- не только системным администраторам, но и пользователям
ки (CLI), что поможет закреплению теоретических знаний для правильного чтения как информации, добытой из Интер-
и получению соответствующих навыков работы в консоли. нета, электронной почты, так и файлов, полученных через
внешние носители и др.
Описание лабораторного стенда
Для работы требуется ОС Linux, имеющая в своём составе Зарождение кодировок
командный интерпретатор bash, утилиты и команды iconv Чтобы лучше понять принципы кодирования текстов, перене-
(обычно пакет glibc-common), cat, od, echo, cp, mv, rm, dd сёмся во времена, когда ЭВМ только появлялись, а их базо-
(пакет coreutils), dos2unix и unix2dos (пакет dos2unix). Для до- вые принципы ещё не были чётко сформулированы. А если
полнительного задания повышенной сложности понадобит- их нет, то давайте их и придумаем вместе. Итак, исходные
ся утилита strings (пакет binutils). Фактически это может быть условия: мы имеем несколько букв (алфавит) и желание
любой Linux, UNIX или совместимая с ними ОС. представить его в виде цифр, так как цифры [2] «хранить»
в памяти ЭВМ мы уже научились. Первое, что обычно при-
Краткие теоретические сведения ходит на ум, – закрепить за каждым символом алфавита
Так как большинство современных ЭВМ (если не сказать, числовой номер – код. Например, 1 для буквы «а», 2 пусть
что почти все) удовлетворяет принципам вычислительной обозначает букву «б», 3 – букву «в» и т.д. Наверняка среди
машины фон Неймана, то логично предположить, что ин- читателей найдутся те, кто в детстве играл подобным обра-
формация, которую они хранят, обрабатывают и передают зом.
по сетям, удовлетворяет принципу двоичного кодирования, Хоть мы великая страна с наибольшим числом часовых
а именно представима в виде двоичных чисел. поясов, и нам есть, чем гордиться, всё же мы не были первы-
Существуют международные стандарты и методы коди- ми, кто использовал ЭВМ и придумывал способы представ-
рования текстовой, числовой, изобразительной, звуковой ления текстов, поэтому первично кодированию подверглись
и видеоинформации. Сегодняшний список видов инфор- латинские символы, цифры и различные знаки препинания,
0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F
а не кириллица. Так, в англоязычных странах используют- В таблице 1а для преобразования прописных букв в строч-
ся 26 прописных и 26 строчных букв (A… Z, a… z), девять ные достаточно к коду буквы прибавить 3210 (1000002)
знаков препинания (. , : ! " ; ? ( ) ), пробел, 10 цифр, пять зна- и, наоборот, для преобразования строчных в пропис-
ков арифметических действий (+, -, *, /, ^) и ряд специаль- ные из кода буквы вычесть 3210. На практике чаще ис-
ных символов (№, %, _, #, $, &, >, <, |, \); все они и были за- пользуют не сложение и вычитание, а «побитовое
кодированы – в итоге набралось чуть больше 100 символов. ИЛИ» с числом 001000002 или «побитовое И» с чис-
(Дефис, тире, длинное тире и минус были закодированы лом 110111112 соответственно. Повторное применение
как «чёрточка» одного вида.) Для кодирования такого числа побитовых операций не оказывает никакого влияния
вариантов можно ограничиться семиразрядным двоичным на результат, чего не скажешь об операциях сложения
числом (от 0000000 до 1111111, в десятичной системе счис- и вычитания. Наглядно это можно увидеть, если сделать
ления – от 0 до 127), что и было сделано. таблицы с символами в 32 колонки. Тогда вышестоящие
символы от нижестоящих будут отличаться ровно на 32 по-
Кодовые таблицы зиции (см. таблицу 1а).
Для кодирования букв и других символов, используемых Однако на практике использовать такую таблицу для пре-
в печатных документах, необходимо закрепить за каждым образований шестнадцатеричных значений в вид символа
символом числовой номер – код. и обратно не очень удобно, поэтому чаще можно увидеть
Первой семиразрядной кодовой таблицей была ASCII таблицу с 16 колонками (таблица 1б).
(American Standard Code for Information Interchange), опу- В последующем данная ASCII таблица была принята
бликованная как стандарт ASA X3.4-1963 в июне 1963 года как стандарт ведущими международными организациями
американской организацией по стандартизации American по стандартизации [1]:
Standards Association (ASA), которая позднее стала име- >> ISO/IEC 646:1991 [8];
новаться ANSI [3]. (Поэтому данную семибитную кодовую >> ITU-T Recommendation T.50 (09/92) [9], ECMA-
таблицу по появлении называли также ANSI, однако на се- 6 (European Computer Manufacturers Association).
годня термин «кодировка ANSI» не устоялся, в ряде случаев
под ним могут пониматься совсем другие кодировки, вплоть Русификация
до ISO/IEC 8859-1.) Таблица содержала 32 кода команд Однако для нашей страны и многих других стран необходи-
или управляющих символов (от 0 до 31), большая часть ко- мо было добавить в кодовую таблицу символы националь-
торых сегодня не применяется пользователями, и 95 кодов ных алфавитов. Для этого было предложено использовать
(от 33 до 127) для различных знаков, достаточных для рабо- восьмибитную кодовую таблицу, которая могла содержать
ты с английскими текстами, как показано в таблице 1 (а,б). дополнительно ещё 128 символов (с 128 по 255).
Там же (таблица 1а) символы построчно имеют следую- В дальнейшем был принят стандарт на восьмибитную та-
щие коды в шестнадцатеричной системе счисления (в скоб- блицу ASCII – ISO/IEC 8859, в которой первые 128 символов
ках – в десятичной): оставались теми же, что и в семибитной таблице, а символы
>> 1-я строка с 00 по 0F и далее (правая колонка) с 10 по 1F с 128 по 255 отводились для неанглийских символов [1].
(0–15, 16–31); Существует несколько частей этого стандарта:
>> 2-я строка с 20 по 2F и 30 – 3F (32–47, 48–63); >> ISO/IEC 8859-1:1998 – Part 1: Latin alphabet № 1;
>> 3-я строка с 40 по 4F и 50 – 5F (64–79, 80–95); >> SO/IEC 8859-5:1999 – Part 5: Latin/Cyrillic alphabet;
>> 4-я строка с 60 по 6F и 70 – 7F (96–111, 112–127). >> ISO/IEC 8859-6:1999 – Part 6: Latin/Arabic alphabet;
>> ISO/IEC 8859-7:2003 – Part 7: Latin/Greek alphabet;
>> ISO/IEC 8859-8:1999 – Part 8: Latin/Hebrew alphabet и т.д.
Интересное свойство В таблице 2 представлена вторая половина кодовой та-
блицы (коды 128–255) для стандарта ISO 8859-5.
a + 3210 = A, b + 3210 = B, … , z + 3210 = Z Первые русские ЭВМ использовали семибитную коди-
A - 3210 = A, b - 3210 = B, … , z - 3210 = Z
ровку символов КОИ-7 (Код Обмена Информацией семибит-
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x
1x
2x
3x
4x
5x
6x
7x
пробельный символ
ный, см. таблицу 3), в которой присутствовали прописные понятие «кодовая страница» (code page, CP). Полная та-
латинские буквы, а на месте строчных латинских были рус- блица кодовых страниц Microsoft Windows велика, поэтому
ские прописные буквы (кириллица). в таблице 6 приведено лишь несколько наиболее важных
Позднее на первых отечественных персональных ком- кодировок.
пьютерах использовалась так называемая «Основная коди- Кодировка русских букв в операционной системе
ровка ВЦ Академии наук СССР», в руководствах к старым Microsoft Windows – CP1251 – показана в таблице 7.
матричным принтерам обозначаемая просто как «ГОСТ» – В операционной системе Linux (как и в большинстве
восьмибитная кодовая таблица, вторая половина которой UNIX) для представления русских букв исторически ис-
содержала символы псевдографики, русские прописные пользовалась кодировка КОИ-8R (таблица 8), зарегистри-
и строчные буквы (коды с 128 по 255 – см. таблицу 4). рованная в IANA как KOI8-R и описанная в RFC 1489 (см.
В дальнейшем основной кодировкой русских букв дополнительную информацию [10]), однако на сегодня
для первой операционной системы ПК – MS DOS стала большинство дистрибутивов Linux по умолчанию использу-
«Альтернативная кодировка ВЦ Академии наук СССР» ют кодировку UTF8, о которой будет рассказано ниже.
(вторая половина таблицы для кодов 128–255 приведена Стандартизован и зарегистрирован также украин-
в таблице 5). Содержит псевдографику (позволяющую ский клон КОИ-8 – KOI8-U (таблица 9), имеющий отличия
в текстовом режиме рисовать рамки из одинарных и двой- от KOI8-R во второй строке символов псевдографики.
ных линий). Существует несколько модификаций, отличаю- О том, как его утверждали осенью 1997 года, можно узнать
щихся символами в последних 14 позициях. Зарегистриро- из фотографий Тараса Гейченко [11].
вана в IANA [5] как IBM 866 или CP866. Кириллица Macintosh (компьютеров фирмы Apple),
С широким распространением операционной системы она же CP10007, довольно близка к CP1251. Не зареги-
Microsoft Windows и появлением её национальных локали- стрирована в IANA, но часто обозначается как x-mac-cyrillic
заций для второй половины таблицы ASCII было введено (таблица 10).
волов также идентичны таблице ASCII. В таблице 11 пока- План 1. Дополнительный многоязычный план (SMP –
зан русский блок Unicode (коды от 040016 до 04FF16). Supplementary Multilingual Plane), главным образом исполь-
Кодовое пространство стандарта Unicode разделено зуется для исторических символов, а также для музыкаль-
на 17 планов («planes») от 0 до 16, и каждый план име- ных и математических символов.
ет 65 536 (= 216) точек кода. Также планы ещё называют пло- План 2. Дополнительный иероглифический план (SIP –
скостями. Supplementary Ideographic Plane), используется для прибли-
Первый план (план 0), Основной многоязычный план зительно 40 000 редких китайских иероглифов.
(BMP – Basic Multilingual Plane) – тот, в котором описано План 3. Третичный иероглифический план (TIP – Tertiary
большинство символов. BMP содержит символы почти Ideographic Plane), используется (зарезервирован) для ар-
для всех современных языков и большое количество специ- хаичных китайских иероглифов.
альных символов. Планы 4 – 13, временно не используются.
Ещё три плана (1, 2, 3) используются для «графических» План 14. Дополнительный план особого назначения
символов. (SSP – Supplementary Special-purpose Plane), отведён
040 041 042 043 044 045 046 047 048 049 04A 04B 04C 04D 04E 04F
для символов, используемых по особому назначению (теги, Естественно, обе не являются специфически «русски-
селекторы написания и др.). ми», а пригодны для написания «сколько угодно»-язычного
Планы 15 и 16 открыты для любого частного использо- письма.
вания.
UTF-8
Однобайтное и многобайтное кодирование, В UTF-8 [4] все символы разделены на несколько групп
кодировки переменной длины по значению первых битов. Символы с кодами ме-
Для кодирования одного символа может использовать- нее 12810 кодируются одним байтом, первый бит которого
ся один или несколько байтов. Если для любого символа равен нулю, а последующие 7 бит в точности соответству-
достаточного одного байта – кодировка считается одно- ют 128 символам седьмой таблицы ASCII (см. таблицу 12),
байтовой, если требуется несколько – многобайтовой. следующие 1920 символов – двумя байтами (Greek, Cyrillic,
Все существующие текстовые кодировки могут быть клас- Coptic, Armenian, Hebrew и Arabic-символы). Последующие
сифицированы по данному признаку. символы кодируются тремя и четырьмя байтами.
Кодировки переменной длины используют для разных Наиболее наглядно правила записи кода одного симво-
групп символов разную длину. В них одни символы могут ла в UTF-8 сформулированы в [6]:
быть однобайтовыми, а другие двух-, трёх- и даже четырёх- 1. Если размер символа в кодировке UTF-8 = 1 байт,
байтовыми. то его код имеет вид (0aaa aaaa), где «0» – просто ноль,
остальные биты «a» – это код символа в кодировке ASCII.
Недостатки многобайтовых кодировок 2. Если размер символа в кодировке в UTF-8 > 1 байт
К недостаткам многобайтовых кодировок можно отнести (то есть от 2 до 6):
следующее: 2.1. Первый байт содержит количество байтов символа,
1. Излишнюю избыточность (один символ кодируется б закодированное в единичной системе счисления:
льшим числом битов). 2 — 11
2. Низкую помехоустойчивость (в случае потери одно- 3 — 111
го байта из многобайтового кода все последующие байты 4 — 1111
смещаются, и весь последующий текст перестаёт правиль- 5 — 1111 1
но читаться). 6 — 1111 11
3. Использование байтов с кодами 0-31 (служебные 2.2. Затем следует «0» – бит-терминатор, означающий
коды). Подобно двоичным файлам, например, кодировка завершение кода размера.
Unicode мало подходит для непосредственной передачи 2.3. Затем идут значащие биты до конца текущего байта.
по сети – байты в тексте вполне могут приходиться на об- 2.4. Далее идёт один или несколько значащих байтов,
ласть управляющих символов. которые имеют вид (10xx xxxx), где «10» – биты признака
4. Может использоваться разный порядок байт: LITTLE_ продолжения, а x – значащие биты.
ENDIAN и BIG_ENDIAN. В общем случае варианты представления одного симво-
Для нивелирования указанных недостатков обычно ла в кодировке UTF-8 выглядят так:
применяются две другие основанные на Unicode кодиров- (1 байт) 0aaa aaaa
ки переменной длины, обозначаемые как UTF (Unicode (2 байта) 110x xxxx 10xx xxxx
Transformation Format): семибитная UTF-7 (последний (3 байта) 1110 xxxx 10xx xxxx 10xx xxxx
пересмотр – RFC2152, 1997 г., зарегистрирована в IANA (4 байта) 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx
как UTF-7) и восьмибитная UTF-8 (RFC 2279, 1998 г., заре- (5 байт) 1111 10xx 10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx
гистрирована в IANA как UTF-8). (6 байт) 1111 110x 10xx xxxx 10xx xxxx 10xx xxxx 10xx
Замечание. UTF-7 и UTF-8 в каком-то смысле уже не яв- xxxx 10xx xxxx
ляются языковыми кодировками, а являются программно- Рассмотрим на примере как закодировать русскую бук-
распознаваемым кодом относительно исходного Unicode, ву «а» в UTF-8.
но зарегистрированы они именно как кодировки, наравне 1. Смотрим в таблицу 11 и определяем Unicode код бук-
с ISO 8859-5 или KOI8-R. вы «a» – 043016.
***
На данный момент вы получили первичное представление за административное управление в Интернете – http://www.
о способах кодирования текстовой информации. iana.org.
Некоторое количество дополнительной информации 6. Примеры ошибок (абракадабра, крякозябры) – http://
и практические задания для самостоятельного выполнения ru.wikipedia.org/wiki/UTF-8.
читатели найдут в следующем номере. EOF 7. Конвертируем русские буквы из UTF8/UTF16 в CP1251 и об-
ратно – http://cax.livejournal.com/59592.html.
1. Грошев А. С. Информатика: учеб. для вузов/А. С. Грошев. – Ар- 8. ISO – http://www.iso.org/ – International Organization for
хангельск: Арханг. гос. техн. ун-т, 2010. – 470 с. ISBN 978-5- Standardization; IEC – http://www.iec.ch/ – International
261-00480-6. Electrotechnical Commission – ведущие международные орга-
2. Закляков П. Представление чисел в памяти ЭВМ. Ча- низации по стандартизации, в области электротехники – со-
сти 1 и 2.//«Cистемный администратор», 2012 г.: №3, с.90-96; вместные стандарты.
№5, с.88-91; №6, с.84-89; №7-8, с.112-121. 9. The International Telecommunication Union http://www.itu.int.
3. American National Standards Institute http://www.ansi.org. 10. Дополнительная информация по кодировке KOI8-R – http://koi8.
4. UTF-8, a transformation format of ISO 10646 http://tools.ietf.org/ pp.ru.
html/rfc2279. 11. Как утверждали кодировку KOI8-U, фотографии с места собы-
5. Internet Assigned Numbers Authority – организация, отвечающая тия – http://www.net.ua/index.php/ru/koi8umenu/12-lavra, 1997 г.
Визитка
Владимир Гаков, журналист, писатель-фантаст, лектор. Окончил физфак МГУ. Работал в НИИ.
С 1984 г. на творческой работе. В 1990-1991 гг. – Associate Professor, Central Michigan University.
С 2003 г. преподает в Академии народного хозяйства. Автор 8 книг и более 1000 публикаций
Заслуженная «пионерка» молодой науки информати- Хоппер – фамилия мужа, с которым Грейс (урожденная
ки, американка Грейс Марри Хоппер прославилась тем, Марри), прожила в браке полтора десятилетия. Зато геро-
что была одним из первых программистов для одно- иня азимовского цикла не совершила такого карьерного
го из первых компьютеров – Harvard Mark I (см. заметку взлета в сфере, казалось бы, столь далекой от киберне-
в «Зале Славы СА»). И разработала первый компилятор тики, – на флоте!
для компьютерного языка программирования. И пустила Грейс Брюстер Марри родилась в 1906 году в Нью-
в широкий оборот термины «bug» и «debugging» (у нас Йорке и с раннего детства обнаружила редкий для девоч-
прижились, соответственно, «глюк» и «разглючивание»). ки интерес ко всему механическому. Больше радости, чем
И – что самое удивительное – первой в Штатах дослужи- куклы, маленькой Грейс доставляли разборки домашних
лась до адмиральских погон! будильников («чтобы посмотреть, как там все устроено»).
Собрать их обратно, к сожалению, получалось не всегда –
Прообраз Сьюзен Келвин за что родители устраивали дочери выволочку. Однако за-
Кто такая Сьюзен Келвин, для читателей – любителей на- тем, поняв, что это, видимо, призвание Грейс, специально
учной фантастики – долго объяснять не надо. Вспомнят эту покупали ей дешевые часы – пусть себе возится с ними
фамилию и те, кто этих книжек не читал, но хотя бы смо- на здоровье! В общем, чем бы дитя ни тешилось…
трел недавний фильм «Я, робот». Сьюзен Келвин – главная После окончания средней школы в штате Нью-
героиня знаменитого цикла рассказов (а затем и романов) Джерси 16-летняя Грейс попыталась поступить в престиж-
Айзека Азимова о роботах, специалист-робопсихолог, ный колледж Вассар, но не прошла конкурс (помешали
много сделавшая для того, что свести к минимуму недопо- низкие оценки по латыни). Пришлось повторять попытку
нимания и конфликты, связанные годом позже – и на сей раз
с появлением в человеческом мире удачно. В 1928 году талантли-
искусственных разумных существ. вая девушка закончила этот
Умная и талантливая – но одино- колледж с отличием и сразу
кая, суховатая и внешне непри- двумя дипломами – математи-
влекательная женщина, полностью ка и физика. А двумя годами
посвятившая жизнь своей науке. позже защитила магистер-
И своим роботам. скую диссертацию в еще
Выдающийся американский пи- более престижном высшем
сатель-фантаст признавался (в том учебном заведении – зна-
числе лично – автору этих строк), менитом Йельском уни-
что свою Сьюзен Келвин он частич- верситете. За докторской
но «списал» с Грейс Хоппер, о кото- дело также не задержа-
рой к началу 1950-х годов знали все, лось – в том же университе-
кто интересовался наукой. Особенно те в 1934 году Грейс защи-
передним ее краем – в частности, тила диссертацию на тему
кибернетикой. Хотя реальная «Сью- «Новые типы критериев
зен Келвин» в жизни, может быть, неприводимости». К тому
и не блистала красотой, но и ученым- времени она уже носила
шины карьеры еще впереди
«сухарем», и «синим чулком» не была: Вер фамилию мужа – профес-
ру деятельности. На сей раз это был бизнес. Причем, ции по языкам систем обработки данных – CODASYL
не обычный – молодой, компьютерный. Хоппер устроилась (Conference on Data Systems Languages).
на работу в Eckert-Mauchly Computer Corporation (назва- Главным достоинством нового языка была его макси-
ние которой много говорит тем, кто хотя бы в общих чер- мальная приближенность к разговорному английскому –
тах знаком с историей компьютерной техники: ну, конечно, в отличие от тех, что были ближе к машинному коду (на-
Экерт и Мокли – создатели легендарного ENIAC!), где вме- пример, ассемблеров). На этом всегда настаивала Хоппер,
сте с другими создавала первый американский (и третий и COBOL стал венцом творения ее философии програм-
в мире) коммерческий компьютер – UNIVAC I. Эта работа мирования. А его создательница удостоилась прозвища
была завершена в 1951 году – спустя год, как фирма Экер- Grandma COBOL, что можно – с достаточной степенью
та и Мокли была куплена корпорацией Remington Rand, вольности – перевести, как «бабушка-домовая» (добро-
продавшей первый UNIVAC американскому Бюро по пере- душных домовых в северной мифологии звали кобольдами,
писи населения. что созвучно названию данного языка).
Уже будучи сотрудницей Remington Rand, Грейс Хоппер Параллельно продолжался и карьерный рост «морячки»
создала первый в истории компилятор – то есть средство Хоппер. В период с 1967 по 1977 годы она занимала пост
перевода компьютерной программы с «проблемно-ориен- директора группы программирования в департаменте ин-
тированного» языка на «машинно-ориентированный». Пер- формационных систем ВМФ США, дослужившись до чина
вый компилятор носил лаконичное название A, а его первая капитана. Тогда же она разработала валидационное про-
версия, вопреки ожидаемому, – A-0. Тогда это была своего граммное обеспечение для COBOL и его компилятора.
рода маленькая революция. «Никто не верил, – вспомина- А затем «пробила» в Пентагоне свой план децентрали-
ла Хоппер, – что у меня есть такой «переводчик» с одного зации всей оборонной компьютерной техники – переход
машинного языка на другой. Все убеждали меня, что этого от громоздких централизованных систем на базе «боль-
просто не может быть – компьютеры способны произво- ших» машин к децентрализованным сетям распределен-
дить лишь арифметические операции и ничего сверх того». ных компьютеров. Хоппер разработала также первые
стандарты тестирования компьютерных систем и отдель-
Бабушка-домовая – и водяная ных компонентов, а также ранних языков программирова-
Не прошло и двух лет, как – поверили. Выражением «до- ния – того же COBOL, к примеру, или FORTRAN). Позже
верия широких руководящих масс» стало назначение эта система стандартизация была принята на вооружение
Хоппер в 1954 году первым в истории компании начальни- Национальным бюро стандартов США (ныне – Националь-
ком отдела автоматизации и программирования. Из недр ный институт стандартов и технологий).
этого отдела вышли одни из первых т.н. компилируемых А бабушке было уже немало лет, и она все никак не мог-
языков программирова- ла расстаться с полюбившейся
ния – такие, как MATH- ей морской формой! В отставку
MATIC и FLOW-MATIC. По- морской офицер в юбке (пусть
следний, к слову, уже был и форменной) отправлялась
способен «понимать» два не раз. Впервые это произо-
десятка фраз, написанных шло по достижении положен-
на английском – не машин- ного шестидесятилетнего воз-
ном! – языке. раста – то есть, в 1966 году.
А еще спустя пять лет Однако не прошло и года,
под руководством Хоппер как флоту снова понадобилась
был создан новый язык дама-командор (соответствует
программирования – один нашему капитану второго ран-
из первых т.н. «высокоуров- га) с талантами математика,
невых»: COBOL (аббревиа- и Грейс Хоппер вновь призва-
тура от Common Business- ли на службу. Сначала вроде
Oriented Language – Общий бы на полгода, которые в итоге
бизнес-ориентированный обернулись без малого двумя
язык). При разработке десятилетиями…
COBOL были использова- Второй выход в отставку со-
ны как идеи FLOW-MATIC, стоялся в 1972 году – и снова
так и достоинства другого краткосрочный. Уже в сле-
языка – COMTRAN, разра- дующем году Грейс Хоппер
ботанного специалистами снова носила форму, на сей
IBM. Презентация ново- раз – капитанскую (соответ-
го языка, который обещал ствует нашему капитану пер-
стать универсальным «язы- вого ранга).
ком общения» бизнесме- И наконец, в 1983 году тог-
нов с компьютерами, со- дашний президент Рональд
стоялась весной 1959 года Рейган специальным ука-
детище Грейс Хоппер
на двухдневной конферен- COBOL – зом произвел Грейс Хоппер
Гарвардская
Издается с 2002 года
марка
научного цитирования www.elibrary.ru
Генеральный директор
Владимир Положевец
Главный редактор
Галина Положевец, chief@samag.ru
Очередной экспонат создаваемого на страницах
Исполнительный директор
журнала виртуального музея компьютеров и ИТ Владимир Лукин, maker@samag.ru
стоит в ряду претендентов на звание первого ком- Заместитель главного редактора
Ирина Ложкина, lozhkina@samag.ru
пьютера в истории. Ответ на вопрос, почему разные источники называют «первым компьюте- Заместитель главного редактора,
ром» разные вычислительные машины (с некоторыми читатели уже смогли познакомиться), пря- официальный представитель редакции в Украине
Сергей Яремчук, grinder@samag.ru
мо вытекает из точного наблюдения кого-то из великих: «Все споры начинаются либо потому, Обозреватель
что одну и ту же вещь называют разными именами, либо потому, что разные вещи называют Aндрей Степанов, stepanov@samag.ru
одним и тем же именем». Иначе говоря, корень всех этих приоритетных споров – в определении, Главный бухгалтер
что же считать компьютером. Надежда Кан, buch@samag.ru
Громоздкая вычислительная машина, созданная во время Второй мировой войны (в первый
Главный редактор приложения «Open Source»
год войны для Штатов – 1941-й) специалистами Гарвардского университета и корпорации IBM, Дмитрий Шурупов, osa@samag.ru
весила около четырех с половиной тонн и занимала в указанном университете несколько поме-
Реклама
щений. Первоначально этот компьютерный «динозавр» назывался скучно, но точно: Automatic Лариса Говорченко, govorchenko@samag.ru
Sequence Controlled Calculator (ASCC) – Автоматический вычислитель, управляемый после-
Распространение
довательностями, но позже получил краткое название Harvard Mark I. Под каковым и вошел Олег Иванов, subscribe@samag.ru
в историю. По сути, это был увеличенный до невообразимых размеров и усовершенствованный
Юридический отдел
до пределов, которые ставила тогдашняя техника, арифмометр. Но – и это самое важное! –
Владимир Столяров, stolyarov@samag.ru
программируемый. А отсюда и претензии на право называться первым компьютером. Причем
Дизайн обложки Дизайн-макет
первым американским, так как двумя годами ранее аналогичная машина была создана в стра- Михаил Лебедев Марина Рязанцева,
не-противнице – Германии (о ней и о ее создателе Конраде Цузе – разговор особый). Иллюстрация Дмитрий Бессонов
Виктор Чумачев
В Гарварде работы по созданию этой махины возглавил сорокалетний инженер Говард Хата-
уэй Эйкен, к тому времени работавший в IBM. За два года до того он защитил в Гарварде доктор- Редакционная коллегия
Д. Ю. Гудзенко, кандидат технических наук, директор Центра
скую диссертацию, во время работы над которой столкнулся со всем знакомой (в «докомпьютер- компьютерного обучения «Специалист» при МГТУ
им. Н.Э.Баумана
ную» эру) проблемой – численными решениями дифференциальных уравнений. Эта проблема Д. Ю. Динцис, доктор технических наук, ведущий
и послужила своего рода «триггером» для рождения вычислительной техники – сначала элек- преподаватель Центра компьютерного обучения «Специалист»
при МГТУ им. Н.Э.Баумана
тромеханической, а затем уже и электронной. Одной из первых работающих моделей (электро- А. С. Крюковский, доктор физико-математических наук,
профессор, лауреат Государственной премии СССР, декан
механической) и стал ASCC. факультета информационных систем и компьютерных
технологий Российского нового университета
Помощь в решении поставленной задачи была оказана Эйкену как интеллектуальная (чет- Э. С. Клышинский, кандидат технических наук, доцент,
зам. декана по научной работе факультета информационных
веро коллег, включая Грейс Хоппер – см. о ней статью в этом номере журнала), так и материаль- технологий и вычислительной техники МИЭМ НИУ «Высшая
ная (полмиллиона долларов, выделенных лично президентом IBM Томасом Уотсоном-старшим). школа экономики»
В. Е. Синицын, кандидат физико-математических наук, доцент
По утверждению самого Эйкена, за основу он взял идеи нереализованной «дифференциальной Уральского федерального университета
Д. В. Силаков, кандидат физико-математических наук, старший
машины» английского «компьютерного предтечи» – математика и изобретателя Чарлза Бэббид- архитектор российского Центра разработки решений на основе
СПО «РОСА»
жа. К февралю 1944 года прошедшая первые тесты машина переехала в корпуса Гарвардского С. Р. Тумковский, доктор технических наук, профессор,
университета, где в августе состоялась ее официальная презентация. зав. кафедрой факультета информационных технологий
и вычислительной техники МИЭМ НИУ «Высшая школа
По тем временам компьютерное чудо – первая полностью автоматическая вычислительная экономики»
А. В. Тетюшев, кандидат технических наук, доцент
машина, работавшая без вмешательства человека в рабочий процесс, – казалось чем-то не- Вологодского государственного технического университета
виданным. И великим – во всех смыслах. Корпус из стекла и нержавеющей стали скрывал бо-
Экспертный совет
лее 700 тысяч деталей и около 800 километров проводов. Что касается работоспособности Рашид Ачилов, администратор телекоммуникационных систем
Сергей Барамба, эксперт по системным решениям
лампового «монстра», то ASCC мог оперировать 72 числами (каждое из 23 десятичных раз- Алексей Бережной, эксперт по администрированию и ИБ
Андрей Бирюков, ведущий системный инженер по ИБ
рядов) с быстродействием 3 операции сложения или вычитания в секунду. Операция умножения Алексей Вторников, эксперт по вопросам разработки ПО
занимала 6 секунд, деления – чуть более 15 секунд. А вычисление логарифма или тригономе- Константин Кондаков, старший директор по ИТ
Иван Коробко, эксперт по автоматизации процессов в Windows-
трической функции – вообще целую вечность: более минуты. Все инструкции последователь- доменах
Кирилл Сухов, ведущий специалист направления интернет-
но считывались и выполнялись с перфорированной бумажной ленты, а петли из нее служи- разработки
Леонид Шапиро, эксперт по ИБ и инфраструктурным проектам
ли для выполнения циклических вычислений (по-английски loops – это и «циклы», и «петли»). Сергей Яремчук, эксперт по ИБ
А Mark компьютер был окрещен самим Эйкеном после того, как между создателем и руко-
Издатель
водством IBM возник конфликт. Дело в том, что на церемонии передачи машины в собственность ООО «Синдикат 13»
Гарвардского университета Эйкен в своей речи совсем «забыл» о вкладе IBM. Главу компании Адрес редакции
129075, г. Москва, Шереметьевская ул., д. 85, стр. 2, офис 405,
это сильно покоробило, и Уотсон сразу же прекратил сотрудничество с Эйкеном. И следующую тел.: (499) 277-12-41, факс: (499) 277-12-45
Сайт журнала: www.samag.ru
модель SSEC компания разрабатывала уже без него.
Но и Эйкен не остался без работы. Окрестив свое детище Harvard Mark I, он уже в качестве Отпечатано в типографии
ООО «Периодика» Тираж 17000 экз.
сотрудника вышеозначенного университета разработал собственные «апгрейды» – модели Mark
II, III и IV. В третьей модели уже имелась кое-какая электронная начинка, а «четверка» была Все права на материалы принадлежат журналу «Системный
администратор». Перепечатка и использование материалов в любой
полностью электронной вычислительной машиной (в которой наряду с магнитными бобинами форме, в том числе и в электронных СМИ, без разрешения запре-
щена. При использовании материалов ссылка на журнал «Системный
были и новомодные элементы памяти на магнитных сердечниках). Дело пошло! EOF администратор» обязательна. Материалы отмеченные знаком Adv
публикуются на коммерческой основе. Редакция не несет ответствен-
Собрал Владимир Гаков ности за достоверность информации в материалах, опубликованных
на правах рекламы.