Обсуждаем Паблиш Сабскрайбер
Pubsub_v1_0_1.zip
Паблиш Сабскрайбер
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
У меня самого есть вопросы и самокритика. И так:
1. В голову каждого пакета надо добавлять шапку (Header) в виде стринга. Мне лично это не нравится, хотелось бы как то добавить систему Alias, т.е. при появлении новой темы (Topic) диспетчер должен дать этой теме номерок и раздавать этот номерок интерессующимся клиентам. Пока ещё не соображу как это реализовать. Я думаю перейти на объектно ориентированное программирование. Т.е. тема будет являтся объектом (кластером), состоящим из названия и его номерка, для начала. Как идея, правильное направление?
2. Так же хотелось бы сделать и клиента объектом, состоящим из названия клиента, референса на клиент, а так же его тип. На данный момент, клиент состоит из названия (находится в саой левой колонке таблицы в диспетчере), из референса (невидимый снаружи) и из типа клиента, находится в самой таблице.
3. Если какой то клиент попадет в какую то ошибочную ситуацию и начинает гнать и отсылает диспетчеру данные с очень большой частотой, то диспетчер занят только этим клиентом, а другие клиенты отсыхают. Надо бы создать какой то защитный механизм, пока не знаю какой. Ведь если дать доступ к диспетчеру какому нибудь удалённому клиенту, то стоит только отсылать диспетчеру сообщения в While Loop, и вся система затормозит, получается система никак не защищена от такой ситуации.
4. Кроме всего прочего, хотелось бы внедрить систему защиты паролем и/или передавать данные закодированно, пока я тоже не знаю как лучше всего это реализовать.
Подскажите что правильно, что неправильно и подкиньте может ещё пару идей и критики.
1. В голову каждого пакета надо добавлять шапку (Header) в виде стринга. Мне лично это не нравится, хотелось бы как то добавить систему Alias, т.е. при появлении новой темы (Topic) диспетчер должен дать этой теме номерок и раздавать этот номерок интерессующимся клиентам. Пока ещё не соображу как это реализовать. Я думаю перейти на объектно ориентированное программирование. Т.е. тема будет являтся объектом (кластером), состоящим из названия и его номерка, для начала. Как идея, правильное направление?
2. Так же хотелось бы сделать и клиента объектом, состоящим из названия клиента, референса на клиент, а так же его тип. На данный момент, клиент состоит из названия (находится в саой левой колонке таблицы в диспетчере), из референса (невидимый снаружи) и из типа клиента, находится в самой таблице.
3. Если какой то клиент попадет в какую то ошибочную ситуацию и начинает гнать и отсылает диспетчеру данные с очень большой частотой, то диспетчер занят только этим клиентом, а другие клиенты отсыхают. Надо бы создать какой то защитный механизм, пока не знаю какой. Ведь если дать доступ к диспетчеру какому нибудь удалённому клиенту, то стоит только отсылать диспетчеру сообщения в While Loop, и вся система затормозит, получается система никак не защищена от такой ситуации.
4. Кроме всего прочего, хотелось бы внедрить систему защиты паролем и/или передавать данные закодированно, пока я тоже не знаю как лучше всего это реализовать.
Подскажите что правильно, что неправильно и подкиньте может ещё пару идей и критики.
-
Jakob Brontfeyn
- expert
- Сообщения: 1729
- Зарегистрирован: 28 фев 2008, 11:01
- Награды: 6
- Благодарил (а): 1 раз
- Контактная информация:
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Паблишер Сабскрайбер
Ты имеешь ввиду shared variables? Естественно, но я не использую какие либо переменные в своих программах, будь то локальная, глобальная или shared variable. Но конечно спасибо за совет.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Паблишер Сабскрайбер
И так, на данный момент занимаюсь улучшением программы. Хочу кроме всего прочего добавить ещё и "рукопожатие", т.е. handshake. При получении какой либо команды будь то диспетчер или клиент, он обязан сообщить о получении команды.
Сейчас у меня около 10 команд, добавлю ещё одну, и назову её "acknowledge" или сокращённо "ack".
А вообще наверное надо бы обьяснить как происходит комуникация между параллельными потоками в моей программе.
Об этом я напишу в этой соседней теме
/viewtopic.php?f=59&t=153
а так же
/viewtopic.php?f=23&t=159
Сейчас у меня около 10 команд, добавлю ещё одну, и назову её "acknowledge" или сокращённо "ack".
А вообще наверное надо бы обьяснить как происходит комуникация между параллельными потоками в моей программе.
Об этом я напишу в этой соседней теме
/viewtopic.php?f=59&t=153
а так же
/viewtopic.php?f=23&t=159
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Паблиш Сабскрайбер
Начинаю программировать его на базе ООП, желающих помочь или присоединиться прошу откликнуться.
Тема довольно интересная. Тот, кто будет участвовать в разработке будет естесственно добавлен в Copyrights.
Тема довольно интересная. Тот, кто будет участвовать в разработке будет естесственно добавлен в Copyrights.