Использовали ли Вы при программировании абстракцию сети кроме задач построения локальных сетей? Т.е. где удобно использовать абстракцию сети/графа при работе с программными объектами. Т.е. организовать программу как локальную сеть: передаём «пакет» одному объекту, тот анализирует «пакет» и если он предназначен не ему - передаёт другому, И так далее. Т.е. происходит определение «маршрута» и следование «пакета» по этому «маршруту», хотя объекты (т.е. экземпляры класса) находятся в ОЗУ единственного процессора и можно было бы передать «пакет» сразу напрямую нужному объекту. В каких случаях используется такая многоступенчатость вместо передачи «напрямую»?
Ведь по сути, объект (экземпляр класса, существующий в памяти) можно рассматривать как узел локальной сети, и наоборот, узел локальной сети можно рассматривать как некий программный объект если абстрагироваться от несущественных различий.
Добавлю, чтобы в программе был код маршрутизатора, который определяет маршрут до "узла", а также динамическое подключение/отключение "узлов"(поввторю: где под "узлами сети" я понимаю экземпляры класса, находящиеся в памяти одного единственного процессора).
P.S. Хочу разработать сетевую RTOS, в которой реализовать прозрачность работы с потоками и экземплярами класса. Т.е. для юзверя было глубоко "фиолетово" где находится поток или экземпляр класса: на том же самом процессоре или вообще где-то на другом узле локальной сети на удалении 10-ти хопов. Чтобы он работал с ними однообразно
Добавлю, чтобы в программе был код маршрутизатора, который определяет маршрут до "узла", а также динамическое подключение/отключение "узлов"(поввторю: где под "узлами сети" я понимаю экземпляры класса, находящиеся в памяти одного единственного процессора).
P.S. Хочу разработать сетевую RTOS, в которой реализовать прозрачность работы с потоками и экземплярами класса. Т.е. для юзверя было глубоко "фиолетово" где находится поток или экземпляр класса: на том же самом процессоре или вообще где-то на другом узле локальной сети на удалении 10-ти хопов. Чтобы он работал с ними однообразно
Добавление от 29.06.2008 11:53:
А вообще задача состоит в том, чтобы абстрагироваться от существования отдельных процессоров, от существования графа связей, от того, что вообще говоря есть хопы, а писать код верхнего уровня абстракции так, как будто всё находится в памяти единственного процессор
Или наоборот. Абстрагироваться от существоания одного процессора, и решать задачу так, как будто есть целая сеть процессоров
Зачем это нужно? Да чтоб отлаживать сеть симулируя её на одном единственном процессоре. Т.е. софт верхнего уровня, чтоб даже не предполагал, что никакой сети нет, и всё "действо" происходит на одном единственном процессоре
И наоборот, чтобы использовать софт, который работает только с одним процессором, и чтобы он даже не предполагал, что его код выполняется параллельно на 155-ти процессорах