Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Обучение от Mail.Ru Group.
Онлайн-университет
для программистов с
гарантией трудоустройства.
Набор открыт!
2009 г.

Этика софтверных профессионалов

Сергей Кузнецов

Обзор январского, 2009 г. номера журнала Computer (IEEE Computer Society, V. 42, No 1, January 2009).

Авторская редакция.
Также обзор опубликован в журнале "Открытые системы"

По традиции январский номер журнала посвящен исследованиям, которые, как ожидается, окажут существенное влияние на будущую жизнь людей. В этом году подборка статей новогоднего выпуска связана (хотя и очень нестрого) с темой вычислений, в которых требуется обработка большого объема данных (data-intensive computing).

Ричард Кузес, Гордон Андерсон, Стефен Эльберт, Ян Гортон и Дебора Грацио (Richard T. Kouzes, Gordon A. Anderson, Stephen T. Elbert, Ian Gorton, Deborah K. Gracio, Pacifi c Northwest National Laboratory) представили статью «Изменение парадигмы вычислений с большими объемами данных» («The Changing Paradigm of Data-Intensive Computing»).

Продолжающийся экспоненциальный рост вычислительной мощности, объемов генерируемых данных и коммуникационных технологий приводит к становлению новой эры в области обработки информации: вычислениям над данными большого объема (data-intensive computing, DIC).

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

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

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

Авторами статьи «Организация инфраструктур Grid и управление ими» («The Organization and Management of Grid Infrastructures») являются Ян Берд, Боб Джонс и Керк Ки (Ian Bird, Bob Jones, Kerk F. Kee, CERN).

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

В конце 1990-х гг. физики, разрабатывающие модели экспериментов с использованием Большого андронного коллайдера (Large Hadron Collider, LHC), столкнулись распределения и использования широко распределенных ресурсов для решения задач хранения и обработки данных. После проведения ряда экспериментальных общеевропейских проектов в области «data grid», в которых участвовали физики, стало понятно, что для Церна этот подход является наиболее приемлемым.

Ученые Церна организовали проект LHC Computing Grid (LCG), направленный на создание вычислительной среды, отвечающей потребностям экспериментаторов на основе LHC. По оценкам, в результате этих экспериментов будет генерироваться около 15 петабайт данных в год. Эти данные должны сохраняться и распределяться по сотням научных лабораторий по всему миру, а для их обработки уже в первые годы функционирования LHC потребуется около 100000 процессоров.

Со временем проект LCG преобразовался в проект Worldwide LHC Computing Grid (WLCG), в котором в настоящее время участвует 150 вычислительных узлов из 35 стран. Вычислительные центры, участвующие в WLCG, подписывают Меморандум о намерениях (memorandum of understanding, MoU), в котором определяются уровни обеспечиваемых ресурсов, а также предоставляемые услуги и их уровень. Эти центры опираются на различные проекты по созданию инфраструктуры Grid для обеспечения инструментальных средств, служб и поддержки структур, требуемых для выполнения требований соответствующего MoU. В Европе это, прежде всего, проект Enabling Grids for E-sciencE (EGEE), а в США – Open Science Grid (OSG).

Статью «Вычисления с использованием белков» («Computing with Proteins») написали Нарен Рамакришнан, Джон Тайсон и Упиндер Бхалла (Naren Ramakrishnan, John J. Tyson, Virginia Tech., Upinder S. Bhalla, National Centre for Biological Sciences, India).

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

Многое известно о том, как в живых клетках и организмах кодируется и обрабатывается информация. Например, генетическая информация хранится в виде линейных последовательностей нуклеотидов в ДНК и РНК, и информация о гене транслируется в линейную цепочку аминокислот, которая сворачивается в белок. В нервной системе сенсорная информация кодируется в возбудительных паттернах (firing pattern) сенсорных нейронов, входные сигналы обрабатываются мозгом, который генерирует соответствующие ответные сигналы посредством моторных нейронов и нейросекреторных клеток. Нервная система динамически программируется путем непрерывного изменения интенсивности синаптических связей между нейронами, так что организм может учиться, чтобы справляться с жизненными ситуациями. Аналогично, в ходе развития организма динамически программируется геномный продукт путем включения или отключения целых наборов генов, за счет чего поддерживаются уникальные роли тканей многоклеточного организма.

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

В компьютерах на основе белков информация представляется и обрабатывается в аналоговой форме. «Состояния» кодируются во взаимодействующих концентрациях белков и непрерывно изменяются. Информация обрабатывается путем биохимических трансформаций, таких как связывание белков-лигандов, фосфорилирование и дефосфорилирование, а также регулируемые синтез и разрушение белка. Вычисления на основе белка обеспечивают межклеточные коммуникационные конвейеры и масштабируются на много порядков величин: от регулирования экспрессии генов до метаболического регулирования и сигнальных сетей (например, инициирующих иммунную реакцию на патогенную атаку). В действительности сами компьютеры на основе белка ответственны за то, как клетки считывают геномы при своем развитии, и за то, как синаптическая пластичность реконструирует нейронные сети.

Белковые регуляторные сети в клетке существенно отличаются от компьютерных архитектур. Например, их характеристики «сигнал-реакция» прямо связаны с самой молекулярной схемой. В узких временных рамках (от секунд до минут) эта схема фиксирована; в физиологическом масштабе времени (от минут до часов) сеть может менять свою схему за счет изменения экспрессии генов; в протяженной временной шкале (поколения) может эволюционировать вся логика сети путем мутации и селекции. Обработка информации в белковых регуляторных сетях является высокопараллельной (все реакции в клетке происходят одновременно) и очень неточной (молекулярный шум ограничивает точность вычислений 3-4 битами). По этим и другим причинам традиционные представления о компьютерах, такие как разделение аппаратуры и программного обеспечения, лишь незначительно помогают понять принципы организации и функционирования внутриклеточных сетей обработки сигналов.

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

Следующую статью – «Нательные сенсорные сети: проблемы и перспективы» («Body Area Sensor Networks: Challenges and Opportunities») – представили Марк Хэнсон, Хэрри Поуелл, Эдам Бат, Кайл Рингенберг, Бентон Кэлхоун, Джеймс Эйлор, Джон Лэч (Mark A. Hanson, mah6s@virginia.edu, Harry C. Powell Jr., Adam T. Barth, Kyle Ringgenberg, Benton H. Calhoun, James H. Aylor, John Lach, University of Virginia).

Современные достижения в области координированной, интеллектуальной обработки данных обеспечивают возможность создания сенсорных сетей, производящих мониторинг окружающей среды, систем и сложных взаимодействий в целом ряде приложений. Например, нательные сенсорные сети (Body area sensor network, BASN) перспективны в областях здравоохранения, фитнеса и развлечений. Каждая BASN состоит из нескольких взаимосвязанных узлов, размещаемых на поверхности или внутри человеческого тела и обеспечивающих возможности коммуникаций, сбора и обработки информации.

У направления BASN имеется огромный потенциал для более полного внедрения информационной технологии в повседневную жизнь людей, но для практического применения BASN необходимо решить ряд фундаментальных проблем, связанных с обеспечением надежности, безопасности, конфиденциальности информации, интероперабельности и т.д. Хотя во многом проблемы и перспективы BASN аналогичны проблемам и перспективам беспроводных сенсорных сетей (wireless sensor networks, WSN) в целом, имеется много исследовательских и конструкторских вопросов, для нахождения ответов на которые требуется глубокое проникновение в специфику BASN.

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

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

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

Для удовлетворения этих разнородных требований необходима возможность агрегирования иерархически организованной информации и интеграции систем BASN в существующую инфраструктуру информационной технологии.

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

Статья «Круглосуточная фабрика знаний: может ли она заменить ночную смену?» («The 24-Hour Knowledge Factory: Can It Replace the Graveyard Shift?») написана Амаром Гуптой (Amar Gupta, University of Arizona).

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

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

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

Последняя статья январского номера называется «Профессиональные и этические дилеммы в инженерии программного обеспечения» («Professional and Ethical Dilemmas in Software Engineering») и представлена Брайеном Беренбахом и Манфредом Броем (Brian Berenbach, Siemens Corporate Research, Manfred Broy, Technische Universität München, Germany).

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

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

Объединенная рабочая группа ACM и IEEE Computer Society создала этический кодекс, посвященный проблемам неэтичного поведения. Но слишком часто упор делается на сценарии поведения, почерпнутые из газетных заголовков, а не на реальные ситуации, которыми изобилует профессия специалиста по разработке программного обеспечения.

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

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

Новости мира IT:

Архив новостей

Последние комментарии:

Релиз ядра Linux 4.14  (7)
Среда 22.11, 11:59
Loading

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...