четверг, сентября 20, 2007

Великая тайна программистов

Сегодня утром, разыскивая кое-что нужное в необъятном почтовом архиве, я наткнулся на пару интересных документов двух годичной давности. Документы относились к начальной фазе двух проектов, которые на сегодняшний день успешно завершены (хочу отметить этот момент особо), и описывали они архитектуру будущих систем. Как и все подобные документы они написаны в стиле "Манифеста коммунистической партии" и дышат непоколебимой уверенностью в светлое будущее проектируемых систем.

В одном из них рассказывалось о "двунаправленной синхронизации каталогов Oracle Internet Directory и Microsoft Active Directory" для целей аутентификации, а также о Transparent Data Encryption (TDE) и Virtual Private Database (VPD) для обеспечения защиты хранимых данных, о построенном стенде и проведенных исследованиях. В другом речь шла о построении корпоративной системы на базе SOA, о публикации сервисов в реестре UDDI и о последующем поиске и подключении их заинтересованными системами-потребителями. Помню, оба документа произвели на меня в свое время сильное впечатление своим неукротимым полетом технологической мысли.

Имея возможность лицезреть готовые результаты по обоим проектам, я был поражен, насколько далеки оказались полученные результаты от запланированных архитектурных схем. В первом проекте вместо Oracle оказался MS SQL, а следовательно никакой "двунаправленной синхронизации каталогов" не понадобилось. Вместо TDE и VPD, используется симметричное шифрование общим ключом и обычное разграничение доступа к данным на уровне бизнес логики. Во втором проекте получилась обыкновенная трехзвенка, а единственный web сервис выдает неформатированный XML, и следовательно, для автоматического обнаружения и подключения никак не пригоден.

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

Так, а в чем же состоит "Великая тайна программистов"? Дело в том, что мы, программисты, любим всякие новые технологии и продвинутые архитектуры. Мы создаем их ежедневно в огромных количествах, подобно тому, как Мать Природа плодила биологические виды во времена Кембрийского эволюционного взрыва. Потом мы с большевистской напористостью продвигаем все эти новые фичи в наши проекты, руководствуясь порой одним лишь правилом: "Cool is a powerful reason to spend money" (Nathan Myhrvold). А тайна состоит в том, что за все это платит заказчик (пользователь). Но мы ему об этом никогда не скажем.

5 комментариев:

dimbo комментирует...

"...В одном из них рассказывалось о "двунаправленной синхронизации каталогов Oracle Internet Directory и Microsoft Active Directory" для целей аутентификации, а также о Transparent Data Encryption (TDE) и Virtual Private Database (VPD) для обеспечения защиты хранимых данных, о построенном стенде и проведенных исследованиях."

Помню-помню этот документ :) Меня тогда попросили проверить эту самую связку директорий - Oracle и Active. Не помню сейчас уже преамбулу, но, кажется мотивировалось все это дело тем, что в Oracle была встроенная поддержка шифрования данных, а SQL Server 2005 использовать было нельзя - только 2000. Эх, и "накушался" я тогда с этим OID - врагу бы не пожелал :)

CTpaHHoe комментирует...

емнип, авторство изречения “Cool is a powerful reason to spend money” принадлежит Nathan Myhrvold, Microsoft

Sergey Rozovik комментирует...

to CTpaHHoe
> авторство изречения “Cool is a powerful reason to spend money” принадлежит Nathan Myhrvold, Microsoft

Да, действительно. Писал по памяти... И чего оно у меня с Билом Гейтсом ассоциировалось?
Сейчас поправлю.

Yuriy Volkov комментирует...

больше всего улыбнуло: за все это платит заказчик (пользователь). Но мы ему об этом никогда не скажем. ;-)

Vyacheslav комментирует...

Сергей, как-то раз мне на глаза попалась хорошая метафора: "Программист который познакомился с новой технологией похож на маниака получившего в подарок новенькую бензопилу. Ему не терпится ее опробовать." К сожалению - это почти всегда правда.:)