Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции БЕЛИКОВОЙ Н.В..doc
Скачиваний:
75
Добавлен:
19.12.2018
Размер:
1.31 Mб
Скачать

Средства программирования

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

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

Нам нужно продолжать совершенствование средств программирования, потому что сегодня программирование слишком подвержено ошибкам. Однако существующие средства не обеспечивают адекватной поддержки, поскольку остается ряд уровней абстракции, требующих непосредственного управления. Другими словами, проектировщику приходится не только учитывать архитектуру системы и вопросы платформ и библиотек, но также и все остальное – от производительности, локализации и удобства сопровождения до структур данных, многопоточности и управления памятью. Слабо поддерживается параллельное программирование: большинство управляющих конструкций строятся последовательно, и весь процесс также носит последовательный характер. И это только на стадии разработки; на этапе развертывания становится все труднее проверять сложные взаимодействия систем, версий и широкого спектра операционных сред. Кроме того, все большее распространение получают инструменты, предлагающие усовершенствованные функции разработки более широким слоям пользователей, но не помогающие новичкам и неопытным пользователям писать хороший код. Есть также вопросы из области долгосрочного функционирования: например, инструменты не поддерживают выход технологий из употребления или изменение тенденций, касающихся возможностей устройств, объемов хранения, скорости и т.п. Подумайте о колоссальных усилиях, затраченных на Проблему-2000 из-за того, что программисты 60-х и 70-х годов не ожидали, что их код все еще будет использоваться на машинах, намного превосходящих возможности машин того времени.

Функциональная совместимость16

Рост Интернета продемонстрировал, что стандартные технологии – от TCP/IP до HTTP – необходимый элемент для создания крупномасштабных, многоцелевых компьютерных систем, способных приносить людям пользу и завоевывать их внимание. (Подобные же стандарты, введенные техническими средствами или посредством регулирования, или тем и другим способом одновременно, принесли успех и многим другим технологиям – от железных дорог до телевидения.) Очевидно и неизбежно, что функционально совместимые системы еще долгое время будут направлять развитие индустрии высоких технологий.

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

Функциональная совместимость также ставит определенную проблему с точки зрения ответственности и доверия, поскольку все труднее найти того, кто отвечает за недостатки. Если в сегодняшнем Интернете – построенном на принципах децентрализации и коллективного управления – произойдет какой-то массированный сбой, кто будет нести ответственность за это? Одна из важных причин, по которым люди не склонны доверять Интернету, состоит в том, что они не могут с легкостью определить, кто отвечает за его недостатки: кого вы будете винить за катастрофическое нарушение работы сети или за крах системы доменных имен? Если мы хотим создать и использовать полностью функционально совместимую (и взаимозависимую) систему, которой люди смогут доверять, мы должны ясно определиться, кто за что отвечает.