Наверх

Open Graph: Третье поколение глобальной сети

Время чтения: 5 минут
2
Open Graph: Третье поколение глобальной сети

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

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

Идея этого сообщения родилась у меня пару дней назад, 14 февраля, на встрече клуба архитекторов. Обсуждали мы вторую версию языка моделирования архитектуры предприятия ArchiMate. Вероятно, несколько главных ИТ архитекторов, собравшихся в одно время и в одной комнате, создают некоторый магнетизм, что позволят обратить внимание на вещи, которые почему-то с первого взгляда от внимания ускользают. Дело в том, что у элементов, определенных в ArchiMate нет свойств(и методов), как например у классов языка UML. Свойства элементов определяются теми отношениями, в которых они участвуют. Кроме того, в ArchiMate нет аналога понятия стереотип, используемого в UML. Т.е. если мы хотим показать, что какой-то класс является частным случаем другого класса, то мы должны делать это явно. Но вернемся к теме.

Последние лет десять Тим Бернерс-Ли говорит не очень понятные слова про семантическую паутину (Semantic Web) и связные данные (Linked Data). Если перевести это на простой и доступный язык, то речь идет о третьем поколении глобальной информационной сети. (см. например Giant Global Graph)

Internet – это первое поколение сети. Технология, которая благодаря протоколу IP позволила связать между собой компьютеры. Долгое время, рабочая группа инженеров Интернет IETF, определяла его как глобальную сеть, допускающую свободное взаимодействие между двумя устройствами, достигаемое в результате четкого соблюдение интернет протоколов (стандартов, описывающих взаимодействие по сети). Собственно говоря, рабочая группа инженеров Интернет эти стандарты и издавала.

Второе поколение сети – это сеть документов World Wide Web. Элементами этой сети являются уже не компьютеры, а документы. Документы объединяются в сеть благодаря гиперссылкам. Всемирная паутина базируется на сети первого поколения и её стандартах и без них существовать не может.

Поверх WWW строится сеть третьего поколения. Кто-то называет её семантической паутиной, кто предпочитает говорить о Social Graph, суть не в названии. Принципиальным отличием этой сети от предыдущей является то, что её объектами являются не только документы, но и люди, события, группы, интересы и т.д. И все эти объекты связаны между собой. Попыток реализации это сети было несколько. Но на сегодняшний день наиболее удачной следует признать протокол Open Graph (см., например Facebook* Graph API). Социальные сети потянули за собой информационные технологии. И здесь я говорю даже не таких вещах как NoSQL базы данных или RESTful API. Изменилась парадигма информационных систем. Способ думать об алгоритмах и структурах данных.

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

Похожая ситуация складывается в понимании бизнес-процессов. Раньше мы считали, что бизнес-процесс задается его структурой, т.е. последовательностью связанных активностей по обработке документов сотрудниками, назначенными на ту или иную роль. Сотрудники, документы и активности сохранились, но теперь все активности (вместе с сотрудниками, документами и событиями) вплетены в единую сеть. И уже не всегда можно точно сказать в рамках какого именно процесса или экземпляра процесса осуществляется та или иная активность. Одна и так же активность может выполняться в двух и большем числе процессов. Документы, созданные в рамках одного процесса, меняются в рамках другого, а используются в рамках третьего. Это и называется adaptive case management. Сеть активностей, объединяющая документы, людей и события.

Одним словом, похоже, нам следует основательно пересмотреть наш подход к анализу данных и проектированию архитектуры ИТ-решений.

Источник: Блог Максима Смирнова. Архитектура информационных систем.

* - организация, признанна экстремистской на территории РФ

Чтобы прочитать эту статью до конца,
или зарегистрируйтесь

Комментарии 2

Объектно-ориентированный подход приучил нас думать об объектах как об экземплярах определенного класса, имеющего предопределенный набор свойств. Теперь свойства объекта в большей степени определяются не его атрибутами, а отношениями, в которых он участвует в той или иной роли.
Так оно. То в сфере бизнес-процессов декларировать такие правила трудно. Хотя бы потому, что они индивидуальные. Это только в сфере социальных сетей довольно легко формировать значения атрибутов, основываясь на отношениях.
Пример для социальной сети.
Дано:
  • все объекты предметной области -- люди
  • объект А имеет_мать Б

следовательно:

  • Б имеет_ребёнка А
  • возраст Б > возраста А (если А относится к классу "Взрослый", то Б тоже относится, ...)
  • Б относится к классу "Женщина" (следовательно пол женский, ...)
  • ...

достаточно просто, и становится удобным при большом количестве объектов и связей.

Слышал что при внедрении SAP (а с внедрением SAP внедряются и конкретные правила), система настраивается неким семантическим образом. Вида:

  • Объекты Сотрудник1, Сотрудник2, Сотрудник3 -- экземпляры класса Руководство (следовательно что-то настраивается)
  • Отдел1 связан с Отдел2 каким-то определённым отношением (следовательно ...)
  • ...

Если заранее продумать все способы взаимодействия всех допустимых отделов и их вероятных сотрудников. То можно будет что-то вычислить. При этом, если эти отношения будут очень жёсткими, вычислить получится больше (но конкретной компании придётся подстроиться под них). А если они будут слишком общими, то и вычислить ничего не получится. Со 100% вероятностью нельзя утверждать, например, что экземпляр класса "Человек" имеет две ноги (а это простое свойство), поэтому в области бизнес-процессов придётся активно использовать статистику, вероятностные онтологии (которые пока не особо развиты) и сильно ломать голову.
 

Одним словом, похоже, нам следует основательно пересмотреть наш подход к анализу данных и проектированию архитектуры ИТ-решений.
Очень сложно эффективно использовать семантический подход с большим упором на связи объектов. И при этом сделать его тиражируемым.
 
Гораздо проще связывать объекты по атрибутам (метаданным), но при этом использовать возможности сематических сетей.
 
Есть такой проект Nepomuk, где разрабатывается Semantic Desktop - http://www.semanticdesktop.org/ (всё что есть в компьютере связано между собой через метаданные, через online базы фильмов, книг, социальные сети), где всё покрыто связями. Но связи формируются на основе атрибутов, а не отношений (отношения тут несложные, и являются внутренней кухней онтологических баз знаний, на клиенте почти не задаются). В метаданные укутаны файлы, контакты, сообщения, календари, медиа-файлы (см. http://www.semanticdesktop.org/ontologies/).
 
Это позволяет (если перенести такой подход на бизнес процесс) сказать в какое сообщение (задачу) вкладывался данный файл (документ) и к какому контакту (исполнителю) отправлялся. Это уже что-то. И это тиражируемо. Можно реализовать такое без семантики вообще, но семантика даёт дополнительные возможности (при накоплении большой базы объектов).
По поводу успешности OpenGraph на примере Facebook.
Считаю что наибольший вклад в развитие семантических сетей вносит всё же wikipedia, free base и другие (энциклопедические) проекты. Потому как они смогут увязать (ссылками на свои объекты) всё что есть в сети (всё что было и есть в мире).
И поисковые системы уже движутся в этом направлении, внедряется семантическая разметка (shema.org) у Яндекс, Google, Yahoo, Bing, появляются специализированные поисковые системы (например, Wolfram alpha).

Допустил ошибки в комментарии. Вместо "shema.org" надо "sсhema.org" и так далее.

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

IBM, SAP и другие компании движутся в этом направлении. Во всяком случае, они являются участниками проекта Nepomuk несколько разработчиков участвуют в проекте. И SAP уже использует онтологии на практике.

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

Чтобы прокомментировать, или зарегистрируйтесь