реклама на сайте
подробности

 
 
> Спецы по ООП, подскажите, где используется модель сети?, И как абстрагироваться от существования графа сети
Дон Амброзио
сообщение Jun 29 2008, 08:03
Сообщение #1


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Использовали ли Вы при программировании абстракцию сети кроме задач построения локальных сетей? Т.е. где удобно использовать абстракцию сети/графа при работе с программными объектами. Т.е. организовать программу как локальную сеть: передаём «пакет» одному объекту, тот анализирует «пакет» и если он предназначен не ему - передаёт другому, И так далее. Т.е. происходит определение «маршрута» и следование «пакета» по этому «маршруту», хотя объекты (т.е. экземпляры класса) находятся в ОЗУ единственного процессора и можно было бы передать «пакет» сразу напрямую нужному объекту. В каких случаях используется такая многоступенчатость вместо передачи «напрямую»?

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


Добавлю, чтобы в программе был код маршрутизатора, который определяет маршрут до "узла", а также динамическое подключение/отключение "узлов"(поввторю: где под "узлами сети" я понимаю экземпляры класса, находящиеся в памяти одного единственного процессора).

P.S. Хочу разработать сетевую RTOS, в которой реализовать прозрачность работы с потоками и экземплярами класса. Т.е. для юзверя было глубоко "фиолетово" где находится поток или экземпляр класса: на том же самом процессоре или вообще где-то на другом узле локальной сети на удалении 10-ти хопов. Чтобы он работал с ними однообразно




Добавлю, чтобы в программе был код маршрутизатора, который определяет маршрут до "узла", а также динамическое подключение/отключение "узлов"(поввторю: где под "узлами сети" я понимаю экземпляры класса, находящиеся в памяти одного единственного процессора).

P.S. Хочу разработать сетевую RTOS, в которой реализовать прозрачность работы с потоками и экземплярами класса. Т.е. для юзверя было глубоко "фиолетово" где находится поток или экземпляр класса: на том же самом процессоре или вообще где-то на другом узле локальной сети на удалении 10-ти хопов. Чтобы он работал с ними однообразно

Добавление от 29.06.2008 11:53:

А вообще задача состоит в том, чтобы абстрагироваться от существования отдельных процессоров, от существования графа связей, от того, что вообще говоря есть хопы, а писать код верхнего уровня абстракции так, как будто всё находится в памяти единственного процессор

Или наоборот. Абстрагироваться от существоания одного процессора, и решать задачу так, как будто есть целая сеть процессоров


Зачем это нужно? Да чтоб отлаживать сеть симулируя её на одном единственном процессоре. Т.е. софт верхнего уровня, чтоб даже не предполагал, что никакой сети нет, и всё "действо" происходит на одном единственном процессоре


И наоборот, чтобы использовать софт, который работает только с одним процессором, и чтобы он даже не предполагал, что его код выполняется параллельно на 155-ти процессорах


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vshemm
сообщение Jun 29 2008, 09:18
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 15-08-07
Пользователь №: 29 803



MPI (http://en.wikipedia.org/wiki/Message_Passing_Interface)?

Еще в qnx нечто подобное есть, через qnet обеспечивается прозрачная связь с удаленными процессами как с локальными.
Примерно так: http://qnxcs.unomaha.edu/help/product/neut..._arch/qnet.html
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Jun 29 2008, 10:01
Сообщение #3


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



А как быть с реализацией отладки распределёных сетевых приложений и стеков сетевых протоколов не имея всей сети, на которой они будут работать, а имея в распоряжении один единственный процессор?

Т.к. как софтово имитировать сеть для таких сетевых распределённых приложений? Чтобы части приложений даже предположить не смогли, что они работают не на разных узлах локальной сети, а в одном единственном процессоре.

Хотя у меня задача даже ещё сложней :
Не распределённое приложение СКРЫТЫМ для него образом будет параллельно работать на нескольких узлах сети (т.е.приложение не должно даже "догадываться" о том, что оно выполняется не на одном, а на нескольких процессорах сети). А сеть я хочу софтово имитировать на одном процессоре. Т.е. получается два уровня абстракции и 4 уровня отладки:
- отладка самого целевого не распределённого приложения
- отладка средств его распараллеливания и распределения по узлам сети
- отладка стеков сетевых протоколов сети на одном процессоре
- отладка средств скрытия от кода сетевых протоколов того, что они реально выполняются на одном процессоре, а не на нескольких

Сообщение отредактировал Дон Амброзио - Jun 29 2008, 10:02


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 07:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01409 секунд с 7
ELECTRONIX ©2004-2016