stringtranslate.com

Объект (информатика)

В информатике объект — это сущность с четко определенным поведением. [1] : 38 

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

В реляционной модели управления базами данных такие аспекты, как таблица и столбец, могут действовать как объекты. [2]

Информационные системы можно моделировать с помощью объектов, представляющих их компоненты и интерфейсы. [1] : 39  [ необходима ссылка ]

Объектно-ориентированные языки

Важное различие в языках программирования — это разница между объектно-ориентированным языком и объектно-ориентированным языком. Язык обычно считается объектно-ориентированным, если он включает в себя основные возможности объекта: идентичность, свойства и атрибуты. Язык считается объектно-ориентированным, если он объектно-ориентированный и также имеет возможность полиморфизма , наследования , инкапсуляции и, возможно, композиции . [1] : 41  [ требуется цитата ]

Не все объектно-ориентированные (или объектно-ориентированные) языки основаны на классах. Одной из известных альтернативных парадигм является прототипно-ориентированное программирование , используемое , среди прочего, JavaScript и Lua .

Распределенные объекты

Объектно-ориентированный подход — это не просто модель программирования. Он может быть использован в равной степени как язык определения интерфейса для распределенных систем. Объекты в модели распределенных вычислений, как правило, более зернистые, более долговечные и более сервисно-ориентированные, чем объекты программирования.

Стандартный метод упаковки распределенных объектов — через язык определения интерфейса (IDL). IDL скрывает от клиента все детали распределенного серверного объекта. Такие детали, как то, на каком компьютере находится объект, какой язык программирования он использует, какую операционную систему и другие вопросы, связанные с платформой. IDL также обычно является частью распределенной среды, которая предоставляет такие услуги, как транзакции и сохранение для всех объектов единообразно. Два самых популярных стандарта для распределенных объектов — это стандарт CORBA от Object Management Group и DCOM от Microsoft . [3]

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

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

Семантическая паутина

Semantic Web по сути является фреймворком распределенных объектов. Две ключевые технологии в Semantic Web — это Web Ontology Language (OWL) и Resource Description Framework (RDF). RDF предоставляет возможность определять базовые объекты — имена, свойства, атрибуты, отношения, — которые доступны через Интернет. OWL добавляет более богатую модель объектов, основанную на теории множеств, которая обеспечивает дополнительные возможности моделирования, такие как множественное наследование .

Объекты OWL не похожи на стандартные крупнозернистые распределенные объекты, к которым осуществляется доступ через язык определения интерфейсов. Такой подход не подходит для Интернета, поскольку Интернет постоянно развивается, и стандартизация на одном наборе интерфейсов труднодостижима. Объекты OWL, как правило, похожи на типы объектов, используемых для определения моделей предметной области приложения в таких языках программирования, как Java и C++ .

Однако существуют важные различия между объектами OWL и традиционными объектно-ориентированными объектами программирования. Традиционные объекты обычно компилируются в статические иерархии с одиночным наследованием, но объекты OWL являются динамическими. Объект OWL может изменять свою структуру во время выполнения и может стать экземпляром новых или других классов.

Другим важным отличием является способ, которым модель обрабатывает информацию, которая в данный момент отсутствует в системе. Программные объекты и большинство систем баз данных используют « предположение о закрытом мире ». Если факт неизвестен системе, этот факт считается ложным. Объекты семантической паутины используют предположение об открытом мире : утверждение считается ложным только в том случае, если есть реальная соответствующая информация о том, что оно ложно, в противном случае оно считается неизвестным, ни истинным, ни ложным.

Объекты OWL на самом деле больше всего похожи на объекты в языках фреймов искусственного интеллекта, таких как KL-ONE и Loom.

В следующей таблице традиционные объекты из объектно-ориентированных языков программирования, таких как Java или C++, сравниваются с объектами семантической паутины: [5] [6]

Смотрите также

Ссылки

  1. ^ abc Грэди Буч; Роберт Максимчук; Майкл Энгл; Бобби Янг; Джим Коналлен; Келли Хьюстон (30 апреля 2007 г.). Объектно-ориентированный анализ и проектирование с приложениями (3-е изд.). Addison-Wesley Professional. ISBN 020189551X.
  2. ^ Оппель, Энди (2005). SQL Demystified . McGraw Hill. стр. 7. ISBN 0-07-226224-9.
  3. ^ Орфали, Роберт (1996). The Essential Client/Server Survival Guide. Нью-Йорк: Wiley Computer Publishing. С. 399–403. ISBN 0-471-15325-7.
  4. ^ Островски, К., Бирман, К., Долев, Д. и Анн, Дж. (2008). «Программирование с живыми распределенными объектами», Труды 22-й Европейской конференции по объектно-ориентированному программированию , Пафос, Кипр, 7–11 июля 2008 г., редактор Дж. Витек, Lecture Notes in Computer Science , т. 5142, Springer-Verlag, Берлин, Гейдельберг, 463–489, http://portal.acm.org/citation.cfm?id=1428508.1428536.
  5. ^ Бернерс-Ли, Тим; Джеймс Хендлер; Ора Лассила (17 мая 2001 г.). «Семантическая паутина. Новая форма веб-контента, значимая для компьютеров, откроет революцию новых возможностей». Scientific American . 284 : 34–43. doi :10.1038/scientificamerican0501-34. Архивировано из оригинала 24 апреля 2013 г.
  6. ^ Кнублаух, Хольгер; Оберле, Дэниел; Тетлоу, Фил; Уоллес, Эван (2006-03-09). «Учебник семантической паутины для разработчиков объектно-ориентированного программного обеспечения». W3C . Получено 2008-07-30 .
  7. ^ Таблица взята из таблиц в: http://www.w3.org/2001/sw/BestPractices/SE/ODSD/

Внешние ссылки