OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 23 Октябрь, 2017 01:39

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Серверное ПО SCADA-системы
СообщениеДобавлено: Понедельник, 15 Сентябрь, 2014 15:44 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 117
Откуда: Москва
Разработка на Обероне серверного ПО.
Сделана система "черный ящик" и внедрена на АЭС.
Презентация со встречи 14 сентября.

Будет продолжение, напишу.


Вложения:
черный ящик.pdf [432.35 КБ]
Скачиваний: 173
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Серверное ПО SCADA-системы
СообщениеДобавлено: Понедельник, 15 Сентябрь, 2014 20:30 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1157
Откуда: Tel-Aviv
А как вообще относятся к open-source проектам без поддержки со стороны организаций?
Вот, к примеру, кто сможет оказать поддержку по BlackBox (как ядру так и каркасу) в случае необходимости? Или всё своими силами?
Интересно каковы критерии выбора инструмента разработки при планировании ПО. Почему разработка не ведётся, скажем на C# или, скажем, на Форте?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Серверное ПО SCADA-системы
СообщениеДобавлено: Понедельник, 15 Сентябрь, 2014 20:44 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8823
Откуда: Россия, Орёл
Роман, кстати, посмотрите статью Дмитрия в Объектных системах:

viewtopic.php?f=31&t=4496
Там рассказано о сопоставлении с CORBA и о возросшей стабильности и производительности при уходе с CORBA на свой коммуникационный слой...

Жалко, что ещё не вышел последний выпуск, там тоже будет его очень интересная статья.

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

Дмитрий Викторович, наверное, неплохо было бы кратко и здесь раскрыть эту проблему? Пример симптоматичный...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Серверное ПО SCADA-системы
СообщениеДобавлено: Понедельник, 15 Сентябрь, 2014 21:15 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2178
Откуда: Нижний Новгород
Илья Ермаков писал(а):
А ещё на конференции Дмитрий приводил пример очень паршивой проблемы с CORBA и С++ (сочетание исключений, параллелизма в условиях нестабильной сети), которую в принципе не удалось побороть...

Проблема, вероятно, не в С++ или Корбе, проблема скорее всего где-то в ошибке при работе с вытесняющей многозадачкой. Точнее с многозадачкой в сочетании с разделяемой общей памятью.

От ЯП это не зависит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Серверное ПО SCADA-системы
СообщениеДобавлено: Понедельник, 15 Сентябрь, 2014 21:40 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 117
Откуда: Москва
Роман М. писал(а):
А как вообще относятся к open-source проектам без поддержки со стороны организаций?
Вот, к примеру, кто сможет оказать поддержку по BlackBox (как ядру так и каркасу) в случае необходимости? Или всё своими силами?
Интересно каковы критерии выбора инструмента разработки при планировании ПО. Почему разработка не ведётся, скажем на C# или, скажем, на Форте?

За атомную отрасль могу сказать. Есть стандарты МЭК, в них написано про использование ранее разработанного ПО. Два варианта:
1. Делаем систему безопасности - тогда каждая строчка кода, ось и весь инструментарий сертифицируется - требования, проект, план качества, ...
плюс требования защиты массивов, нет goto, см МЭК-60880
2. Для остального - можно использовать при наличии комплекса мер по верификации/валидации. Там есть место линуксам и др. Но все хотят избавиться от зависимостей - среды, конкретного компилятора, библиотек.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Серверное ПО SCADA-системы
СообщениеДобавлено: Понедельник, 15 Сентябрь, 2014 21:47 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7680
Откуда: Троицк, Москва
Alexey Veselovsky писал(а):
От ЯП это не зависит.
При прочих равных. Которых нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Серверное ПО SCADA-системы
СообщениеДобавлено: Понедельник, 15 Сентябрь, 2014 22:58 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8823
Откуда: Россия, Орёл
Alexey Veselovsky писал(а):
Проблема, вероятно, не в С++ или Корбе, проблема скорее всего где-то в ошибке при работе с вытесняющей многозадачкой. Точнее с многозадачкой в сочетании с разделяемой общей памятью.
От ЯП это не зависит.


Думаешь, что идёт разрушение памяти, ведущее к некорретной работе механики исключений?
Но любое разрушение памяти проявлялось бы не одинаковым образом...

Дело таки в какой-то ошибке в реализации рантайм-поддержки исключений в этом компиляторе С++, может быть?

Дело, конечно, не в самом ЯП (т.е. не в особенностях его синтаксиса и семантики), но в толщине непрозрачности того, как его механизм исключений реализован и работает...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Серверное ПО SCADA-системы
СообщениеДобавлено: Понедельник, 15 Сентябрь, 2014 23:00 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8823
Откуда: Россия, Орёл
Дмитрий Дагаев писал(а):
За атомную отрасль могу сказать. Есть стандарты МЭК, в них написано про использование ранее разработанного ПО. Два варианта:
1. Делаем систему безопасности - тогда каждая строчка кода, ось и весь инструментарий сертифицируется - требования, проект, план качества, ...
плюс требования защиты массивов, нет goto, см МЭК-60880


И реально какие применяются инструменты, соответствующие этому стандарту? Ada?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Серверное ПО SCADA-системы
СообщениеДобавлено: Вторник, 16 Сентябрь, 2014 09:40 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 117
Откуда: Москва
Илья Ермаков писал(а):
А ещё на конференции Дмитрий приводил пример очень паршивой проблемы с CORBA и С++ (сочетание исключений, параллелизма в условиях нестабильной сети), которую в принципе не удалось побороть...

Дмитрий Викторович, наверное, неплохо было бы кратко и здесь раскрыть эту проблему? Пример симптоматичный...


Конфигурация
Есть многопоточное серверное ПО (C++, linux, CORBA), которое периодически, 1 раз в 2 месяца сбоит на объекте (там не идеальная сеть). На полигоне не сбоит. Путем долгих экспериментов (более месяца удалось придумать конфигурацию, в которой возникают сбои:
58 потоков, 15 локальных и 15 удаленных клиентов с учетверенной скоростью опроса, периодически обрывающих TCP-соединение, программа, которая в cron, которая периодически, раз в полчаса загружает ЦПУ.

Симптомы
Вызываем, скажем из пользовательской клиентской программы получение удаленного объекта
Код:
        try {
                vxch = Xch::_narrow(obj);
        }
        catch (...) {
        }

пересобрали корбу, отследили внутри
Код:
    if(policies_ -> retry.max != 0)
        throw CORBA::UNKNOWN;


Эксперименты
Методом тыка нашли, что перестает падать в данной конфигурации, если изменить код на
Код:
    if(policies_ -> retry.max != 0)
        throw ;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Серверное ПО SCADA-системы
СообщениеДобавлено: Вторник, 16 Сентябрь, 2014 09:57 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 117
Откуда: Москва
Alexey Veselovsky писал(а):
Проблема, вероятно, не в С++ или Корбе, проблема скорее всего где-то в ошибке при работе с вытесняющей многозадачкой. Точнее с многозадачкой в сочетании с разделяемой общей памятью.

От ЯП это не зависит.


Выводы
1. Безусловно, многозадачка влияет

2. Корба - это лишних 150тыс строк в библиотеке и лишних пять потоков и интенсивная работа с динамической памятью. Учитывая, что Xch::_narrow использует удаленный блокирующий вызов с переключением на эти пять потоков, не соглашусь - Корба влияет. Кстати, на локальных соединениях эффекта нет.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Серверное ПО SCADA-системы
СообщениеДобавлено: Вторник, 16 Сентябрь, 2014 10:41 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 117
Откуда: Москва
Илья Ермаков писал(а):
Дмитрий Дагаев писал(а):
За атомную отрасль могу сказать. Есть стандарты МЭК, в них написано про использование ранее разработанного ПО. Два варианта:
1. Делаем систему безопасности - тогда каждая строчка кода, ось и весь инструментарий сертифицируется - требования, проект, план качества, ...
плюс требования защиты массивов, нет goto, см МЭК-60880


И реально какие применяются инструменты, соответствующие этому стандарту? Ada?


Для систем безопасности - графический САПР (не Дракон), который сертифицируется. И крутится по прерыванию, либо с Микро Осью. Варианты с Адой у нас не знаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Серверное ПО SCADA-системы
СообщениеДобавлено: Вторник, 16 Сентябрь, 2014 16:01 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7680
Откуда: Троицк, Москва
Ситуация типологически сходная с научным софтом:

На Обероне может не быть библиотек,
но обмен (С++ + готовая монструозная библиотека) на (Оберон + своя контролируемая библиотека) оказывается сильно в пользу второго варианта -- уж точно по качеству результата.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2017, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB