сложных композиционных типах объектов должна содержаться в самих объектах. (Такой
подход был назван SODA, smart object, dumb archives - умный объект, глупый архив.)
Некоторые современные проекты разрабатывают архитектуры, использующие
компьютерную концепцию распределенных объектов (distributed objects). В этом контексте
слово "объект" имеет исключительно техническое значение, которое отличается от значения
этого слова в выражениях "электронный объект" и "библиотечный объект", широко
используемых в данной книге. В современной вычислительной технике под объектом
понимается независимый фрагмент компьютерного кода с ассоциированными данными,
который может быть по разному использован в разных контекстах. Данные и методы их
обработки скрыты внутри объекта, так что все внутренние детали спрятаны. Все, что
окружающий мир знает о классах объектов - это открытый интерфейс, состоящий из методов
(т.е. операций над объектами) и экземпляров данных (instance data). Результат каждого метода
может изменяться от класса к классу. Например, в ЭБ метод "render" может по-разному
интерпретироваться для различных классов объектов.
После десятилетий развития, такие языки объектно-ориентированного программирования,
как С++ и Java стали общепринятыми для построения самых эффективных компьютерных
систем. Движущей силой развития объектно-ориентированного программирования является
сложность области. Такое программирование позволяет разрабатывать и тестировать
компоненты программы независимо, при этом не требуется их адаптация под различные версии
компьютерных систем. Активным сторонником объектно-ориентированного
программирования является фирма Microsoft. Различные версии ее объектно-ориентированной
среды называются OLE, COM, DCOM, Active-X. Все это варианты одной ключевой концепции.
Распределенные объекты представляют идею объектов в сетевом окружении. Базовая
концепция заключается в том, что объект, исполняемый на одном компьютере должен иметь
возможность взаимодействовать с объектом, исполняемым на другом, через свой открытый
интерфейс, определенный в терминах методов и данных. Лидирующие компании-разработчики
по созданию программного обеспечения (исключение составляет Microsoft) разработали
стандарт для распределенных объектов, известный как CORBA. CORBA предоставляет
разработчикам распределенных компьютерных систем практически тоже самое разнообразие
возможностей программирования, которые объектно-ориентированные языки дают для
одиночного компьютера.
Врезка 13.3
HTTP
Метод доступа HTTP get (получить) является командой от клиента серверу вернуть в
качестве ответа информацию, обозначенную URL, приведенным в сообщении. Если URL
относится к процессу, который генерирует данные, именно эти данные подлежат передаче
клиенту.
Ответ на команду get начинается с трехзначного цифрового кода состояния. Некоторые из
этих кодов пользователи могут видеть в браузерах, когда встречают сообщения об ошибках -
например, 404, которое выдается, если ресурс, указанный в URL, не найден. Если ошибки нет,
код состояния сопровождается технической информацией (используемой главным образом в
кэш или прокси-сервером) и метаданными о теле ответа (body of the responce). Метаданные
указываю клиенту на длину типа данных, язык, кодировку, хэш и дату. Клиент использует эти
метаданные для обработки тела ответа (представлящее собой последнюю часть сообщения,
которое обычно является файлом, указанным в URL).
Два других метода HTTP тесно связаны с get. Метоод head запрашивает те же данные, что и
get, за исключением того, что собственно тело сообщения не пересылается. Это полезно при
проверке правильности гиперссылок, доступности, проверке после модификации, поскольку не
требует пересылки больших файлов. Метод post используется для расширения возможностей
увеличения объема информации, передаваемой от клиента к серверу. Метод post обычно
применяется клиентом при передаче блока данных, таких, например, как формы HTML,
которые затем могут обрабатываться CGI-скриптами или иными приложениями на сервере.