OberonCore
https://forum.oberoncore.ru/

Обновление ПО, написанного на ББ
https://forum.oberoncore.ru/viewtopic.php?f=81&t=3945
Страница 1 из 1

Автор:  bl.beard [ Вторник, 17 Апрель, 2012 14:15 ]
Заголовок сообщения:  Обновление ПО, написанного на ББ

Я правильно понимаю что в этой ветке идет обсуждение документа "Учебник по BlackBox"?
читал переведенный вариант и наткнулся на такое утверждение в п3,2:
Цитата:
Единственно подходящим для компонентно-ориентированного ПО является вариант,
когда добавление и удаление компонентов может выполняться по нарастающей,
добавлением или удалением папки. Все виды механизмов централизованной
инсталляции или регистрации, которые распространяют составляющие компонента,
должны быть исключены, поскольку они неизбежно ведут к (ненужным) проблемам управления.


Кто то в курсе какие именно "проблемы управления" имелись ввиду?
п.с. если тема обсуждалась - дайте, пжст, ссылку.

(модератор) выделено: viewtopic.php?f=4&t=908

Автор:  Иван Кузьмицкий [ Вторник, 17 Апрель, 2012 15:49 ]
Заголовок сообщения:  Re: Учебник по BlackBox/BlackBox Tutorial, непонятные места

bl.beard писал(а):
Кто то в курсе какие именно "проблемы управления" имелись ввиду?
Я так думаю, что нужно рассматривать в контексте. Проблемы автоматического управления компонентами, скорее всего.

Например, очевидная проблема - контроль удаления. Централизованная система накатила пакет, зарегистрировала его связи где-то у себя в реестре, а потом юзер возьми да удали папку. Компонента нет, а записи в реестре есть.

Или, скажем, проблема версионности. Накатить пакет нельзя просто так, надо обязательно следить за тем, есть ли там такой пакет и что делать в таком случае.

Чтобы не заниматься подобными вещами, решение этих проблем возлагается на пользователя, вот и всё.

Автор:  bl.beard [ Четверг, 19 Апрель, 2012 14:58 ]
Заголовок сообщения:  Re: Учебник по BlackBox/BlackBox Tutorial, непонятные места

Иван Кузьмицкий писал(а):
Чтобы не заниматься подобными вещами, решение этих проблем возлагается на пользователя, вот и всё.


Иван, это ваши мысли по поводу понимания того что в тексте учебника или это ваш взгляд на проблемы обновления ПО?

Автор:  Иван Кузьмицкий [ Четверг, 19 Апрель, 2012 22:38 ]
Заголовок сообщения:  Re: Учебник по BlackBox/BlackBox Tutorial, непонятные места

Мои мысли, обильно удобренные опытом.

Автор:  bl.beard [ Пятница, 20 Апрель, 2012 12:08 ]
Заголовок сообщения:  Re: Учебник по BlackBox/BlackBox Tutorial, непонятные места

Иван Кузьмицкий писал(а):
Мои мысли, обильно удобренные опытом.

Как по мне звучит это несколько странно.

Это ваша позиция в отношении всего софта вообще или каких-то определенных категорий?
потому как я мало себе представляю как, например, кассир в банке утром обновляет себе АБС.

если это тема не для этой ветки, то можно вынести в отдельную.

Автор:  Иван Кузьмицкий [ Пятница, 20 Апрель, 2012 12:12 ]
Заголовок сообщения:  Re: Учебник по BlackBox/BlackBox Tutorial, непонятные места

bl.beard писал(а):
Это ваша позиция в отношении всего софта вообще или каких-то определенных категорий?
потому как я мало себе представляю как, например, кассир в банке утром обновляет себе АБС.


Скажите сперва, какую реальную свою проблему Вы хотите решить.

Автор:  Valery Solovey [ Пятница, 20 Апрель, 2012 14:30 ]
Заголовок сообщения:  Re: Учебник по BlackBox/BlackBox Tutorial, непонятные места

bl.beard писал(а):
Это ваша позиция в отношении всего софта вообще или каких-то определенных категорий?
потому как я мало себе представляю как, например, кассир в банке утром обновляет себе АБС.
Изначальная цитата была про компонентное ПО. Сегодня мы написали ПО, отдали заказчику исполнимые файлы, а исходники оставили себе. Через три месяца два независимых разработчика сделали для заказчика дополнения к нашему ПО без наших исходников. И всё заработало. А если мы хорошенько постарались, то всё заработало даже без перезагрузки.

По-хорошему, АБС должны делаться такими. Но возможны и варианты с административными мероприятиями, при которых на перезагрузки не будут обращать внимания.

Почему же будет обновляться АБС (а она будет, хоть и не ежедневно)? Потому что банк вышел на новые услуги. У него появилась возможность работать через телефоны, интернет, подключить к себе независимую сеть терминалов, работающих по своему протоколу. Поддержка нового процессинга или ещё чего. Когда АБС этого банка запускалась пятнадцать лет назад, то ничего такого ещё не было в меню.

Автор:  bl.beard [ Пятница, 20 Апрель, 2012 15:29 ]
Заголовок сообщения:  Re: Учебник по BlackBox/BlackBox Tutorial, непонятные места

Иван Кузьмицкий писал(а):
Скажите сперва, какую реальную свою проблему Вы хотите решить.


В отношении BB реальных пока нет.
Я только знакомлюсь с фреймворком и пытаюсь понять как все устроено и получу ли я бонусы
при переходе с Delphi/Java/PHP на BB.
Ну и, заглядывая вперед, пытаюсь решить для себя некоторые насущные вопросы.
Тот же вопрос обновления софта у пользователей - один из немаловажных.

Сейчас у нас все Win32 приложения лежат в иерархии каталогов на общем сетевом ресурсе.
Для таких приложений как АБС все несколько более проще: обновление ПО происходит в те
моменты когда никто не работает, т.е. после 18:00, простая замена содержимого каталогов
с последующим тестированием целостности.
Для приложений чуток менее масштабных обновление может производиться в любое время,
(когда обнаружили глюки - тогда и пофиксили по горячему), но так как в это время работают -
то как обновлять?

Автор:  bl.beard [ Пятница, 20 Апрель, 2012 15:38 ]
Заголовок сообщения:  Re: Учебник по BlackBox/BlackBox Tutorial, непонятные места

2 Valery Solovey: все это так.
но это же общие слова.

а мне интересно описание конкретной технологии/процесса обновления ПО в разрезе BB.
может кто-то поделиться более конкретными(проверенными временем) идеями?
или я слишком много прошу? :?: :wink:

и заодно: есть статистика по категориям ПО написанным на BB?
просто интересно какой круг задач уже смогли охватить и могут ли быть области,
в которых BB не сможет конкурировать с более другими фреймворками/языками/технологиями?

Автор:  Иван Кузьмицкий [ Пятница, 20 Апрель, 2012 15:59 ]
Заголовок сообщения:  Re: Учебник по BlackBox/BlackBox Tutorial, непонятные места

bl.beard писал(а):
Тот же вопрос обновления софта у пользователей - один из немаловажных.
Мы для себя построили систему обновления (назовём её СО) компонентного ПО.

Суть такова - вы объявляете некий "проект", состоящий из программных компонентов, необходимых ресурсов, документации и прочего. Это клиентский набор.
Когда разработчик меняет у себя что-то из этого набора (перекомпилировал модуль, например), то СО может отследить изменения и создать пакет обновления.
Далее этот пакет передаётся на рабочие места, где просто накатывается (сохраняя возможность отката) поверх работающего комплекта или же при входе в систему.

Эту систему делал Пётр Кушнир, он может рассказать про неё более подробно.

Автор:  Евгений Темиргалеев [ Пятница, 20 Апрель, 2012 16:19 ]
Заголовок сообщения:  Re: Учебник по BlackBox/BlackBox Tutorial, непонятные места

bl.beard писал(а):
Тот же вопрос обновления софта у пользователей - один из немаловажных.
С т.з. устройства ББ вопросов никаких: изменившиеся компоненты (их файлы) копируются поверх того что есть.

Остальное уже сторона: как Вы эти файлы доставите и т.п.

Автор:  Пётр Кушнир [ Пятница, 20 Апрель, 2012 20:31 ]
Заголовок сообщения:  Re: Обновление ПО, написанного на ББ

bl.beard писал(а):
Для приложений чуток менее масштабных обновление может производиться в любое время, (когда обнаружили глюки - тогда и пофиксили по горячему), но так как в это время работают - то как обновлять?
То есть, условие состоит в том, чтобы не закрывать/не перезагружать программу?

Автор:  Valery Solovey [ Суббота, 21 Апрель, 2012 18:42 ]
Заголовок сообщения:  Re: Учебник по BlackBox/BlackBox Tutorial, непонятные места

bl.beard писал(а):
2 Valery Solovey: все это так.
но это же общие слова.

а мне интересно описание конкретной технологии/процесса обновления ПО в разрезе BB.
может кто-то поделиться более конкретными(проверенными временем) идеями?


Ну, я не нашёл заказчиков, которым безразлично, на чём я буду делать ПО, поэтому моё предложение назвать проверенным сложно.

По поводу более конкретного примера.
Для ББ модуль - это то, что имеется в ОЗУ. Сам файл на диске никак не мониторится. Поэтому, если Вы только замените файл, то это не приведёт ни к каким последствиям. Если надо заменить файлы, то можно вызвать команду DevDebug.UnloadThis <ModuleList>. Указанные модули будут выгружены, и при очередном обращении к ним ББ подгрузит новые версии из новых файлов.
Это простейший вариант, имеющий один существенный недостаток: если компонент работает безостановочно круглые сутки, то выгрузка без предварительной подготовки приведёт к потере недообработанных данных. Как этого можно избежать:
1. перед выгрузкой компонента запретить ему приём на обработку новых данных (они будут складываться в пулл до момента возобновления работы). Дождаться окончания работы компонента, выгрузить его, возобновить обработку данных.
2. ввести транзакционность. Удалять входные данные только после того, как по ним получен результат. Если модуль выгрузили, и какие-то данные не были до конца обработаны, то они будут поданы на вход вновь загруженному модулю.
Более сложный вариант - использование директории. Вы записываете в директорию объект, через который ваше ПО работает с компонентом. Если нужно загрузить новую версию компонента, то записываете в директорию объект нового компонента. Поскольку ПО работает с компонентом через директорию, то после записи в директорию нового объекта связь со старым компонентом потеряется, и после завершения обработки данных его можно будет остановить (с помощью UnloadThis, опять же). Недостаток этого метода - в имени модуля. Чтобы новый модуль был загружен, нужно чтобы в системе ещё не было модуля с аналогичным именем. Решается изменением имени модуля.

Автор:  bl.beard [ Среда, 25 Апрель, 2012 11:38 ]
Заголовок сообщения:  Re: Обновление ПО, написанного на ББ

в теории понятно.
вот с практикой пока тяжело.

Автор:  Пётр Кушнир [ Среда, 25 Апрель, 2012 11:46 ]
Заголовок сообщения:  Re: Обновление ПО, написанного на ББ

ну а вы опишите более конкретную задачу.

Автор:  bl.beard [ Среда, 25 Апрель, 2012 16:59 ]
Заголовок сообщения:  Re: Обновление ПО, написанного на ББ

Пётр Кушнир писал(а):
ну а вы опишите более конкретную задачу.


Текущая задача: аналог админ консоли(а если быть более точным User EDitor'а из TOAD for Oracle Expert)
для управления правами пользователей в Оракл.

В один из вопросов, что поднят здесь - обновление ПО у пользователей.

а на тек. момент пока что разбираюсь как вообще строить приложения в ББ и как ориентированные на БД.
Так как ЭТО будет работать с БД - нужно понимать как использовать таблицы(SqlControls.Table).
Удалось разобраться с подключением к БД и выполнением запросов.
пока сделал простую форму с "инкрементальной" фильтрацией(по нажати. кнопок в поле ввода выполняется запрос
и в таблице показывается результат).
Дальше нужно разобраться
    1.как читать значение в текущее строке таблицы
    2.как добавить скроллы в таблицу
    3.как сделать эту подсистемы расширяемой: для каждой конкретной задачи, которая использует системных пользователей Оракл могут иметься набор собственных процедур инициализации и прочего, которое нужно уметь динамически подключать без пересборки основного модуля

пока что этот список не вписывается в рамки ДАННОЙ темы(кроме разве что п.3). поэтому ищу ответы в соседних ветках.
хотя если кто-то может дать ссылки на доку/ветку с обсуждением - буду благодарен.

Вложения:
pos-adm.v1.png
pos-adm.v1.png [ 22.62 КБ | Просмотров: 15899 ]

Автор:  Иван Кузьмицкий [ Среда, 25 Апрель, 2012 17:17 ]
Заголовок сообщения:  Re: Обновление ПО, написанного на ББ

bl.beard писал(а):
1.как читать значение в текущее строке таблицы
2.как добавить скроллы в таблицу
Обратите внимание на подсистему Grid: http://oberoncore.ru/bbcc/subs/grid/start
bl.beard писал(а):
3.как сделать эту подсистемы расширяемой: для каждой конкретной задачи
Скорее всего, стандартный Б-шный паттерн директории Вам поможет!

Автор:  bl.beard [ Среда, 25 Апрель, 2012 18:56 ]
Заголовок сообщения:  Re: Обновление ПО, написанного на ББ

Иван Кузьмицкий писал(а):
Обратите внимание на подсистему Grid: http://oberoncore.ru/bbcc/subs/grid/start
Скорее всего, стандартный Б-шный паттерн директории Вам поможет!

Спасибо за советы.
Про Грид знаю и даже поставил и разбираться конечно буду, но пока что мне кажется для данной задачи - это излишне.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/