О банкоматах

Никто наверное не будет спорить, что стандартизация и интеграция – это хорошо.

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

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

Очень удобно: есть единый карт центр и всем это нравится.

Теперь посмотрим в сторону банкоматов. Ведь банкомат – это очень дорогое устройство и требует значительных вложений.

Зайдём в крупный торговый центр, сколько мы видим там банкоматов – штук пять не меньше. Что это забота о клиенте, чтобы не было очередей? Ан никак нет. Просто каждый банк поставил свой банкомат.

И вот тут постигает разочарование – именно банкомата вашего банка там не оказалось и вы, скрипя сердцем, идёте в первый попавшийся и отдаёте там 2% со снятой суммы денег.

Теперь представьте, как бы было лучше, и дешевле (дешевле всем), если бы там стояло не 5 банкоматов а один или два. Но в каждом, вставив карточку, вы обнаружили бы, что ваш банк „имеет долю“ в этом банкомате.

Да. Именно. Почему бы банкам не купить банкомат вскладчину и не позволить клиентам нескольких банков быть обслуженными в одном банкомате по одной ставке?

Мне кажется это логично. А вам?

история успеха

Началось всё, в далёком теперь уже, 2001 году. К тому времени я пол года работал в Центральном диспетчерском управлении Республики Казахстан, рядовым программистом и ни как не ожидал такого развития событий, которые произошли в дальнейшем. Энергетика всегда требовала наличия самых передовых информационных систем и, так исторически сложилось, что к 2001 году практически всё программное обеспечение было разработано и разрабатывалось своими силами. Одно из направлений – это система сбора и передачи данных, с помощью которой осуществляется диспетчерское управление. Первая такая система для персональных компьютеров была разработана нашими специалистами в начале 90-х годов и работала под управлением операционной системы MS DOS. К моменту описываемых событий верхний уровень уже был переписан для Windows NT, а приёмная часть так и работала под управлением MS DOS. Надо ли говорить что MS DOS не слишком стабильная ОС и приёмные машины (их было две – основная и резервная) «зависали» практически каждый день. У операторов даже была специальная инструкция, по которой они должны были каждое утро переводить приём с одной машины на другую, первую перезагружать.

Вот тогда-то мой тогдашний начальник и предложил мне разработать новую версию приёмной программы под Windows.

Честно скажу, я никогда не любил программное обеспечение производства Microsoft. Это сейчас Windows 2000 с 4-тым сервиспаком работает более или менее стабильно. Тогда же он работал неудовлетворительно. Я высказал начальнику свои сомнения, и тогда он предложил попробовать Линукс. На тот момент я слышал это слово всего один раз и до сих пор вспоминаю с улыбкой при каких обстоятельствах: один из наших работников связи как-то спросил меня мимоходом, не видел ли я новую операционную систему, выпущенную Microsoft под названием Линукс. Вот так вот, ни больше не меньше.

Так что даже не зная о чём идёт речь, я сразу же согласился, после чего мне был вручён диск с Red Hat версии 6.2 и компьютер. На установку первого в нашей жизни дистрибутива Линукс мы потратили несколько дней. В распоряжении у нас был компьютер HP Vectra с Celeron 266 МГц и 32 Мбайта памяти. Подумать только, меньше чем сейчас на моём Zaurus. Но это было одним из условий. Софт должен работать на «слабой машине». Именно на такой машине, с немного увеличенным ОЗУ работала первая версия линукс версии нашего ПО. А затем началось изучение и разработка ПО. На изучение ушло около 3 месяцев. Для начала надо было выбрать и найти с помощью чего вести разработку. С языком программирования никаких раздумий быть не могло. Уже тогда я бесповоротно был влюблён в С++. С копмилятором тоже всё было просто и ясно – gcc. Мы говорим линукс, подразумеваем gcc. Мы говорим gcc, подразумеваем… не пожалуй в обратную сторону выражение не работает. В дальнейшем я никогда не видел и не вижу другой альтернативы gcc, для разработки на Линукс. Сложнее было со средой разработки. Попробовали практически всё что смогли найти. Vim, Midnight commander, Emacs, Kedit, Kylix, Kdevelop, Code-Forge, Anjuta. Текстовые Редакторы – это текстовые редакторы, они не позволяют автоматизировать сборку, вручную же писать Make файлы не слишком интересное занятие. Kdevelop заточен под KDE и autoconf, тоже Anjuta – Gnome плюс autoconf. В результате был выбран Code-Forge. Code-Forge мог генерировать Make файлы и имел сносный редактор. Продержался он не очень долго, потому как появилась прекрасная альтернатива. Спасибо IBM. Я уже точно не помню когда она появилась, мне кажется я всегда её использовал. Конечно же речь об Eclipse.

Кроме того надо было найти библиотеки. Мы было ринулись изобретать велосипед и разрабатывать свои классы, но я вовремя спохватился. Лучше день провести в поиске, затем за 5 минут написать. И так, нам были нужны потоки, работа с разделяемой памятью, набор простых классов, сокеты, очереди сообщений. Выбор пал на ACE_wrappers. Моя жизнь перевернулась дважды. Первый раз её перевернул Линус Торвальдс. Второй раз Дуглас Шмидт. Без этих двух людей моя работа была бы скучная и серая. Ну конечно же – это само собой разумеется std и boost.

И так, на изучение ушло 3 месяца, и значительно больше на разработку. Примерно год была готова первая промышленная версия приёмной машины под Линукс.

Что собственно представляет собой наш софт. Изначально это чтение последовательных портов и запись в них. Чтение большого кол-ва портов. Порядка 15-ти, 25-ти. Для этого нужен мультиплексор . Нам повезло, у нас было оборудование фирмы Cyclades. Они прекрасно поддерживают Линукс. Кроме того мы работали с расширителем Digi и чудным китайским 8-ми портовым расширителем под названием Cronos (На самом деле там используется процессор Oxford Semiconductor). и наконец, сейчас мы используем Moxa, но уже не старый добрый расширитель, а мультипортовый Ethernet сервер. Освоение и подключение каждого из них – это настоящее приключение, по крайней было приключением 5 лет назад. Приключение достойное того чтобы о нём написать, но это тема отдельной статьи. Сейчас стало немного проще, появился udev, но всё равно документации, особенно русскоязычной очень мало.

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

Для визуального отображения информации мы использовали Web браузер и php, запускаемый на apache в сотрудничестве с JavaScript и плагинов для отображения Flash/Svg. Потом перешли на Java, а затем на Qt.

О стабильности Линукс знают все. Помню какой восторг у нас тогда вызывал вывод команды w. Дни, недели, месяцы, а потом и годы бесперебойной работы, без единой перезагрузки. Я понял чего мне не хватало в моей работе. Дружественная, удобная для работы операционная система. Сделанная программистами для программистов. Очень качественное базовое ПО подстёгивает и заставляет писать качественные программы. Удовлетворение от того что система, разработанная твоим коллективом работает.

Вместе с первым успехом пришли и первые проблемы. О нашей инициативе узнало руководство. И если наши непосредственные руководители нас поддержали, то остальные выступили с резкой критикой. Каких только эпитетов мы не слышали в свой адрес и детский сад и зоопарк и обвинения в нарушении корпоративной политики. Началась долгая и упорная борьба за Линукс. Но его было уже не остановить. Он шагал семимильными шагами. К 2003 году, приёмная машина превратилась в полноценную систему сбора и отображения данных. Появилась ретрансляция данных. Наш софт и, соответственно Линукс, был установлен ещё в 2-х филиалах нашей компании и на одной подстанции, где работает до сих пор. В 2005 году, в связи с внедрением нового большого программного продукта для диспетчерского управления, закупленного у иностранной компании (работает он кстати под управлением Solaris), руководство приняло решение избавиться от всех «самоделок» в компании, работающих на Линуксе. С тех пор прошло 2 с лишним года, но наш софт тихо и незаметно продолжает работать. Причина этого – невозможная и невероятная скорость, с которой удалось разработать сложное программное обеспечение, которое прекрасно работает и его не так просто выключить или заменить. И большая заслуга этого принадлежит Линуксу.

А пример тем временем оказался заразительным, Линукс проник на веб сервера. Язык разработки asp был полностью вытеснен php. Затем были взяты базы данных, в частности Oracle переехал на Линукс, MSSQL был заменён на mysql под Линукс. Потом был взят прокси сервер (надо заметить что работал он не на Windows, а на Solaris). Сейчас в каждом из наших филиалов хотя бы одна из машин работает под управлением Линукс.

Но наибольший успех обрела коммерческая версия нашего ПО. Начиная с 2004-го года мы внедрили его на 3-х энергетических объектах. И это тем более замечательно, что это единственная разработка подобного рода в нашей стране, работающая на Линуксе. Клиентская часть нашей системы изначально ориентировалась, в основном, на Internet Explorer. Тогда мы не слишком верили в Линукс на Десктопе. Но, по иронии судьбы, первое внедрение доказало обратное. Из-за супербюджетности проекта нам выделели всего один компьютер, на котором необходимо было запустить и серверную и клиентскую часть. В качестве браузера был использован веб браузер Mozilla. Прошло уже 3 года с момента первого внедрения. Компьютер под управлением Линукса (Там установлена Fedora Core 1) успешно работает. Операторы пользуются не только нашим ПО, но также пакетом Open Office и другими программами.

P.S. Сейчас мы разрабатываем другую систему. По ряду причин на серверах нашей компании она работает под управлением Windows, но разрабатываю и тестирую я её в Линуксе. Но коммерческая версия конечно же будет на Линуксе.

линукс в КЗ

Не так давно Фондом Самрук-Казына было введено новое правило осуществления закупок программных продуктов: отныне нельзя оплачивать лицензии за купленной ПО, пока не будет твердой уверенности, что оно будет полезным.

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

Слишком часто доверившись нерадивым установщикам мы оплачивали стоимость ПО, а получали пшик – мертвый продукт.

Однако кроме больших инвестиционных проектов, которые у всех на виду, есть еще и другие затраты, о которых многие ещё не научились задумываться.

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

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

Задайте себе вопрос, используете ли вы в реальности установленную на нём операционную систему или нет.

Выходит, что вы заплатили за софт, который не используете.

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

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

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

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

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

Ответ похоже лежит не в плоскости каких то там совместимостей, квалификаций и привычек и даже не в плоскости компьютеров вообще.

А лежит он в плоскости бухгалтерии.

Что делает рядовой сотрудник рядового государственного, национального или просто крупного отечественного предприятия, которых у нас большинство, если ему поручили купить какое-то программное обеспечение? Он конечно же планирует. И планирует он инвестиции.

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

Почему? А потому что бухгалтерам так удобнее, понятнее и привычнее. Им надо что-то материальное, которое можно пощупать. Вот и программное обеспечение – это некий кусок пластмассы, со сроком амортизации 15 лет. А то, что это ПО, в большинстве случаев, через пару лет устареет без должной поддержки или будет служить для управления очень дорогим нагревательным прибором, это мало кому по ту сторону бухгалтерии понятно. Но зато все строго понятно и по правилам.

А что, если вы хотите купить ПО как услугу. Т.е. никакой капитализации, а только расходы. Причём само ПО ничего не стоит, да ещё и тиражируется как угодно без всякого учёта, т.е. становится аморфной инстанцией, которую нельзя потрогать и ощутить. А ещё и это непонятное сопровождение, которое местами называется тех. поддержкой. Сразу возникает подозрение, что этот склизкий “программист” в купе со своим начальником, хотят чего-нибудь украсть чего доброго.

А кроме этого надо доказывать ещё кучу вещей, вплоть до развенчивания предрассудков.

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

Как справиться со сложившейся ситуацией?

Виднеется два решения. Первое – это коробочные решения, второе – предоставление линукса в комплекте с другими программными продуктами.

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

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

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

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