В вычислениях фрагментированные объекты действительно являются распределенными объектами . Это новый принцип дизайна, расширяющий традиционную концепцию распределения на основе заглушек.
В отличие от распределенных объектов , они физически распределены и инкапсулируют распределение в самом объекте. Части объекта - именованные фрагменты - могут существовать на разных узлах и обеспечивать интерфейс объекта. Каждый клиент, обращающийся к фрагментированному объекту по его уникальному идентификатору, предполагает наличие локального фрагмента. Фрагментированные объекты могут действовать как инфраструктура на основе RPC или (кэширующий) интеллектуальный прокси. Следовательно, клиенты не могут различить доступ к локальному объекту, локальной заглушке или локальному фрагменту. Полная прозрачность достигается следующими характеристиками фрагментированных объектов.
![](http://wikiimg.tojsiabtv.com/wikipedia/en/thumb/8/8d/Fragmented_object.png/220px-Fragmented_object.png)
Произвольное внутреннее общение
Для внутренней связи между фрагментами могут быть выбраны произвольные протоколы. Например, это позволяет скрыть протоколы реального времени (например, RTP для потоковой передачи мультимедиа) за стандартным интерфейсом CORBA .
Произвольная внутренняя структура
Внутренняя структура фрагментированного объекта определяется разработчиком / разработчиком объекта. Это может быть клиент-серверный, иерархический, одноранговый и другие. Таким образом обеспечивается обратная совместимость с распределением на основе заглушек.
Произвольная внутренняя конфигурация
Поскольку и распределение состояния, и функциональность скрыты за интерфейсом объекта, их соответствующее распределение по фрагментам также является произвольным. Кроме того, приложение, использующее фрагментированный объект, также может допускать изменение распределений, которое достигается путем обмена фрагментом на одном или нескольких хостах. Эта процедура может быть запущена либо пользователем, который изменяет свойства объекта, либо самим фрагментированным объектом (то есть совокупностью его фрагментов), например, когда считается, что какой-то фрагмент отказал. Конечно, запрос на обмен может вызвать одно или несколько других внутренних изменений. Разработчик объекта может переносить состояние и функциональность по фрагментам, предоставляя различные реализации фрагментов. Они динамически изменяют внутреннюю часть фрагментированных объектов. Достигается гибкое внутреннее разделение, обеспечивающее также прозрачную отказоустойчивую репликацию.
Проекты
- Aspectix - Группа Aspectix работает над несколькими проектами, которые сосредоточены на архитектуре промежуточного программного обеспечения , адаптивных и ориентированных на качество услуг приложениях, отказоустойчивости , аспектно-ориентированном программировании и автоматическом преобразовании исходного кода .
- FORMI - FORMI является расширением Java RMI .
- Globe - в этом проекте рассматривается мощная объединяющая парадигма для построения крупномасштабных распределенных систем на обширной территории: распределенные общие объекты.
- SOS - объектно-ориентированная операционная система SOMIW.
Рекомендации
- Структура и инкапсуляция в распределенных системах: принцип прокси
- Фрагментированные объекты для распределенных абстракций
- Globe: глобальная распределенная система
- Интеграция фрагментированных объектов в среду CORBA
- FORMI: расширение RMI для адаптивных приложений
- FORMI: интеграция адаптивных фрагментированных объектов в Java RMI