Этот сайт предназначен, прежде всего, людям, ностальгирующим по ушедшим РУССКОМУ СЛОВУ, Windows 3.1, ФОТОНУ, процессорам 486SX и иже с ними.
Конечно, времена должны идти вперед, но почему они обязательно должны уходить?
StuhlbergR 2007-2008 ©
|
Туманные объекты наших устремлений
Ли Мантелман
Объектно-ориентированные языки программирования, операционные системы, сетевые среды и прикладные программы - это более мощные средства работы и более простой доступ к данным.
Большинство специалистов по компьютерам, вероятно, рассматривают объектно-ориентированные системы лишь как отдаленную перспективу. Но этой новой вычислительной модели, по-видимому, суждено в скором времени радикально изменить способы построения новых систем.
Кинг Уоллинг, администратор главной группы сопровождения фирмы Electronic Data System, рассматривает переход к объектно-ориентированной технологии как важный концептуальный сдвиг. "Это изменит организационные структуры, стратегию капиталовложений - одним словом, все. Перемены такого рода происходят не быстро и не безболезненно", - говорит он. Тем не менее, Уоллинг убежден: тот, кто хочет оставаться конкурентноспособным, должен переходитть к новой технологии.
По мнению Дэвида Тейлора, главы фирмы Taylor Consulting (Сан-Матео, шт. Калифорния) и автора книги "Object-Tehnology: A Manager's Guide", объектная технология ведет к появлению предприятий совершенно нового типа.
"Эта технология дает возможность создавать структуры, функционирующие в режиме реального времени, с полностью интегрированной рабочей средой, распределенные базы знаний и системы принятия решений, - утверждает Тейлор и продолжает, - такие полностью функциональные объектно-ориентированные программные структуры позволяют моделировать целые предприятия, что существенно ускоряет внешние и внутренние процессы коммуникации".
ОБЪЕКТЫ БУДУЩЕГО
Объектная технология появилась в последнем десятилетии. Лежащие в ее основе идеи просты и эффективны. В отличие от традиционных программ, которые пишутся вручную от начала до конца, объектно-ориентированные программы собираются из готовых компонентов - объектов. Эти объекты могут соответствовать объектам или процессам реального мира, а также абстрактным понятиям.
В традиционных программах данные отделены от процедур и методов, в объектных и те и другие объединяются. Например, если объект - клиент, то все, что пользователь знает про этого клиента, включается в объект, а невозможные действия с клиентом реализуются как методы данного объекта.
Основа объектно-ориентированного программирования - формирование из простых объектов, состоящих из данных и набора функций для их обработки, более сложных, способных смоделировать объекты реального мира.
НЕ ВСЕ ТО ЗОЛОТО...
Важно не путать объекты, существующие в программе, с теми, которые видны на экране. Некоторые пользователи воспринимают изображения на экране знакомых объектов, например, файлов или папок, как свидетельство объектной ориентации, однако в действительности ничто не мешает запрограммировать GUI - графический пользовательский интерфейс, - используя традиционные методы. "Пиктограмма" и "объект" - отнюдь не синонимы. Прикладная программа, использующая пиктограммы, еще не обязательно основана на объектно-ориентированной технологии.
Хотя GUI позволяет пользователям легко перемещать пиктограммы по экрану, в большинстве случаев переход к подлинному объектно-ориентированному пользовательскому интерфейсу - OOUI (Object-Oriented User Interface) - еще не сделан. В OOUI пиктограммы ведут себя как реальные объекты: например, технология фирмы Borland позволяет пользователю увидеть список возможных операций с данной пиктограммой.
В свои еще будущие пакеты для Windows компания Borland собирается включать новое средство Property inspector, предназначенное для просмотра характеристик объектов. Пользователь может выбрать объект - таблицу, поле, экранную кнопку или пиктограмму - и нажать правую кнопку "мыши". При этом на экране возникнет всплывающее меню, в котором отображаются доступные для редактирования характеристики объекта, - скажем, цвет или размер шрифта.
ПОЧЕМУ ОБЪЕКТЫ?
По сравнению с традиционными методами объектная технология обладает следующими преимуществами:
- дает возможность разработчикам собирать новые прикладные программы из готовых модулей, что намного быстрее, чем писать их вручную от начала до конца;
- позволяет пользователям и разработчикам оперировать в программе теми же самыми процессами, с которыми им приходится иметь дело на уровне обычных практических понятий и терминов. Представление данных для объекта, например, клиента, связано с прототипом этого объекта в реальном мире;
- поддерживает богатый набор форм представления информации для средств multimedia, например, речевые аннотации и видеоклипы, что совершенствует возможности взаимодействия между пользователями.
В объектных системах можно использовать имеющиеся данные; например, записи реляционной базы данных превращаются в раздел данных для объекта, а раздел методов заполняется позже. При этом сами данные не меняются, они просто включаются в более общую структуру, в которую входят также и методы.
Одни компании предлагают програмные продукты со строго объектной ориентацией, другие сторонятся новой технологии. Есть и такие, которые склоняются к гибридным системам, сочетающим объектные и традиционные методы.
Например, пишет Тейлор, вы можете сделать надстройку к реляционной СУБД, которая обеспечит некоторые объектные возможности, скажем, поддержку multimedia, или смоделирует наследование, однако такие системы никогда не будут столь же совершенны, сколь чисто объектные, и будут отставать от них по производительности.
ВСЕ НАЧАЛОСЬ С ЯЗЫКА SMALLTALK
Первым объектно-ориентированным языком (ООЯ) был Smalltalk, разработанный фирмой Xerox PARC в начале семидесятых годов. В дальнейшем, вплоть до создания высоко оцениваемой специалистами среды разработки NextStep фирмы Next, Inc, (Редвуд-Сити, шт. Калифорния), развитие объектно-ориентированной технологии стимулировалось в основном пожеланиями программистов.
ООЯ, такие, как Си++ и Smalltalk, характеризуются следующими общими свойствами:
- поддержка объектов, которые взаимодействуют друг с другом, обмениваясь сообщениями;
- определение объектов в контексте иерархии классов - древовидной структуры, образуемой шаблонами объектов;
- поддержка наследования - метода определения классов, при котором новый класс объектов описывается как модификация определенного ранее.
ООЯ специально предназначены для того, чтобы помочь программистам работать с объектами, точно так же, как Паскаль или Кобол ориентированы на процедурное программирование. Многие компании предлагают компиляторы и интерпретаторы, которые позволяют программистам писать и выполнять программы на таких языках. В изобилии имеются и пакеты утилит, подпрограмм и других полезных средств, призванных облегчить программирование на ООЯ.
Несколько фирм предлагают и полную среду разработки, объединяющую инструментарий с такими средствами, как библиотеки объектов - готовых модулей, которые разработчики могут использовать в собственных программах, или программистский интерфейс, призванный упростить и ускорить процесс написания программ. К таким средам относятся Object Center фирмы CenterLine Software, Objectworks фирмы ParcPlace Systems, Sparcworks фирмы SunPro и ObjectVision фирмы Borland.
В литературе, посвященной ООЯ, часто речь идет также об объектно-ориентированном проектировании (OOD - Object-Oriented Design) и объектно-ориентированном анализе (OOA - Object-Oriented Analyais). Эти методы, подобно их аналогам в структурном программировании, используются для планирования, разработки и анализа объектно-ориентированных программ.
Такие средства адресованы главным образом программистам. А что же пользователи? Существуют ли готовые объектно-ориентированные продукты , такие, как электронные таблицы или СУБД, которые пользователь мог бы приобрести и начать применять их в работе?
Пока нет. Хотя объектно-ориентированных прикладных пакетов, включающий СУБД, системы управления сетями и другие сетевые среды, и представлен на рынке, эти системы не готовы к немедленному использованию, а требуют от пользователя серьезной предварительной настройки (в основном, с применением языков Си++ и Smalltalk).
ОПЕРАЦИОННЫЕ СИСТЕМЫ, КОТОРЫХ ЕЩЕ НЕТ
Некоторые пользователи ошибочно полагают, что объектно-ориентированные прикладные программы требуют использования объектно-ориентированной операционной системы. В действительности такие пакеты, как объектно-ориентированные СУБД, рпботают под управлением обычных операционных систем.
Более того, хотя многие фирмы предлагают сегодня объектно-ориентированные программные продукты, ни одна еще не разработала обперационной системы, которая была бы основана на объектной технологии. Такой должна быть Pink - операционная система следующего поколения, создание которой запланировано в совместном рпоекте Taligent фирм IBM и Apple Computer, Inc.
Пресловутая операционная система Windows NT (Windows New Technology - новая технология для Windows) фирмы Microsoft также имеет репутацию объектно-ориентированной, однако это мнение базируется главным образом на отдельных высказываниях председателя правления фирмы Билла Гейтса и не очень обосновано. В своем 17-страничном обзоре по NT фирма Microsoft упоминает объектную ориентацию только однажды, утверждая, что операционная система "должна обеспечивать новые возможности, такие, как ... интеграция прикладных программ на основе объектно-ориентированной технологии".
NextStep также иногда упоминается в качестве объектной операционной системы, но она, хотя и позволяет работать с объектами, существенно уступает в этом отношении основанному на UNIX ядру операционной системы Mach, разработанному в университете Карнеги-Меллона.
По мнению Тейлора, более ценно создание объектно-ориентированных надстроек, работающих со многими операционными системами, таких, как NextStep или Cooperation фирмы NCR Corp. (Дейтон, шт. Огайо). По поводу объектных операционных систем он пишет: "В проектах NT и Taligent в системы включаются библиотеки готовых объектов, используемых в разных программах. Затруднение состоит в том, что эти объекты связаны с операционной системой, а значит, пользователь прикован к конкретной ОС".
Однако такие объектно-ориентированные системы будут иметь и определенные преимущества. Например, при установке нового текстового процессора пользователю не придется выбирать модель принтера из многостраничного списка. Он просто установит объект "текстовый процессор", который будет работать с ранее установленным объектом "принтер".
Если в дальнейшем понадобится установить другой принтер, нужно будет просто заменить существующий объект. После этого все уже инсталлированные прикладные пакеты автоматически начнут работать с новым принтером, и пользователю не придется заново перенастраивать каждый из них.
ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ СЕТЕВЫЕ СРЕДЫ
Если объектно-ориентированные операционные системы пребывают в туманной дали, объектно-ориентированные сети все-таки существуют, хотя тоже несколько призрачны.
Работая по принципу "от простого к сложному", языки типа Си++ позволяют объектам в пределах одной программы обмениваться между собой сообщениями. Объектно-ориентированные среды, такие, как Hewlwtt-Packard, обеспечивают обмен сообщениями между объектами, находящимися в разных программах.
Но что, если эти программы работают в различных системах? В таком случае вам необходима объектно-ориентированная сетевая среда (ООСС). Такие среды предлагаются различными поставщиками: фирма Digital Equipment Corp. (Мейнард, шт. Массачусетс), продает свою систему Architecture Services, фирма NCR - систему Cooperation, компания SunSoft - систему ToolTalk, фирма HyperDeck Corp. (Цэстборо, шт. Массачусетс) - HyperDesk DOM System. Компания Tivoli Systems, Inc. (Остин, шт. Техас) встраивает свою специально разработанную для управления сетями ООСС WizDom в пакет Distributed Managemend фирмы Open Software Foundation.
А если эти системы к тому же написаны разными разработчиками? В этом случает вам требуется открытая ООСС. Постащики ООСС должны включить в систему сетевой администратор объектов, который, как телефонистка на телефонной станции, обеспечивал бы передачу сообщений от одного объекта на одной машине к другому объекту на другой машине. Но пока нет соответствующих стандартов, такие администраторы объектов будут несовместимы друг с другом.
Поэтому Группа по управлению объектами (Object Management Group) - ассоциация поставщиков объектно-ориентированного программного обеспечения со штаб-квартирой в г. Фреймингем, шт. Массачусетс - разработала архитектуру стандартизованных сетевых администраторов объектов - Object Request Brokers (ORB).
В настоящее время основным механизмом для установления межпроцессовой связи в сетях является вызов удаленной процедуры. ORB предусматривают такие вызовы и выполняют при этом либо замену имеющегося механизма, либо его модификацию для приспособления к формату сообщений, передаваемых от одного объекта к другому. Таким образом, ORB - это некоторый, хотя и небольшой, шаг вперед по сравнению с вызовами удаленных процедур.
ООСС, и особенно ORB, видимо, приобретут заметную роль в будущих сетях.
ОБ АВТОРЕ Ли Мантелман - независимый автор (Риджфилд-Парк, шт. Нью-Джерси).
Еще об ООП можно почитать в статье "Объектно-ориентированное программирование для менеджеров" и врезке "Основные понятия ООП".
*** "Туманные объекты наших устремлений". Статья была опубликована в журнале "Мир ПК" №5/92
ПРОГРАММЫ
|
Большинство предоставленного здесь материала является цитированием со старых номеров компьютерных журналов, таких, как
"Мир ПК" или "Весь Компьютерный Мир". К сожалению, все мои попытки связаться с этими изданиями по поводу вопроса о цитировании были безуспешны.
Издания упорно хранили молчание. Что я разрешил себе расценивать как знак согласия, указывая, тем не менее, повсюду как выходные данные
издания (с работающей ссылкой на Интернет-представительство), так и автора публикации. Тем более, что, в силу срока давности этих публикаций, вряд ли материал можно рассматривать как коммерческий или рекламный,
пусть даже названия фирм здесь и присутствуют (уж без этого никуда).
Ежели появятся какие претензии по оному поводу, прошу
издания связаться со мной
Райво Штулберг |