OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 08:17

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




Начать новую тему Ответить на тему  [ Сообщений: 18 ] 
Автор Сообщение
 Заголовок сообщения: Обновление ПО, написанного на ББ
СообщениеДобавлено: Вторник, 17 Апрель, 2012 14:15 
Аватара пользователя

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


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

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


Последний раз редактировалось Евгений Темиргалеев Пятница, 20 Апрель, 2012 16:16, всего редактировалось 1 раз.
инф. о переносе


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 17 Апрель, 2012 15:49 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
bl.beard писал(а):
Кто то в курсе какие именно "проблемы управления" имелись ввиду?
Я так думаю, что нужно рассматривать в контексте. Проблемы автоматического управления компонентами, скорее всего.

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 19 Апрель, 2012 14:58 
Аватара пользователя

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


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 19 Апрель, 2012 22:38 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Мои мысли, обильно удобренные опытом.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 20 Апрель, 2012 12:08 
Аватара пользователя

Зарегистрирован: Четверг, 10 Сентябрь, 2009 18:14
Сообщения: 16
Иван Кузьмицкий писал(а):
Мои мысли, обильно удобренные опытом.

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 20 Апрель, 2012 12:12 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
bl.beard писал(а):
Это ваша позиция в отношении всего софта вообще или каких-то определенных категорий?
потому как я мало себе представляю как, например, кассир в банке утром обновляет себе АБС.


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 20 Апрель, 2012 14:30 

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 20 Апрель, 2012 15:29 
Аватара пользователя

Зарегистрирован: Четверг, 10 Сентябрь, 2009 18:14
Сообщения: 16
Иван Кузьмицкий писал(а):
Скажите сперва, какую реальную свою проблему Вы хотите решить.


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 20 Апрель, 2012 15:38 
Аватара пользователя

Зарегистрирован: Четверг, 10 Сентябрь, 2009 18:14
Сообщения: 16
2 Valery Solovey: все это так.
но это же общие слова.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 20 Апрель, 2012 15:59 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
bl.beard писал(а):
Тот же вопрос обновления софта у пользователей - один из немаловажных.
Мы для себя построили систему обновления (назовём её СО) компонентного ПО.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 20 Апрель, 2012 16:19 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
bl.beard писал(а):
Тот же вопрос обновления софта у пользователей - один из немаловажных.
С т.з. устройства ББ вопросов никаких: изменившиеся компоненты (их файлы) копируются поверх того что есть.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 20 Апрель, 2012 20:31 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
bl.beard писал(а):
Для приложений чуток менее масштабных обновление может производиться в любое время, (когда обнаружили глюки - тогда и пофиксили по горячему), но так как в это время работают - то как обновлять?
То есть, условие состоит в том, чтобы не закрывать/не перезагружать программу?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 21 Апрель, 2012 18:42 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
bl.beard писал(а):
2 Valery Solovey: все это так.
но это же общие слова.

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


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 25 Апрель, 2012 11:38 
Аватара пользователя

Зарегистрирован: Четверг, 10 Сентябрь, 2009 18:14
Сообщения: 16
в теории понятно.
вот с практикой пока тяжело.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 25 Апрель, 2012 11:46 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
ну а вы опишите более конкретную задачу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 25 Апрель, 2012 16:59 
Аватара пользователя

Зарегистрирован: Четверг, 10 Сентябрь, 2009 18:14
Сообщения: 16
Пётр Кушнир писал(а):
ну а вы опишите более конкретную задачу.


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

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

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

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


Вложения:
pos-adm.v1.png
pos-adm.v1.png [ 22.62 КБ | Просмотров: 15890 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 25 Апрель, 2012 17:17 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 25 Апрель, 2012 18:56 
Аватара пользователя

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

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


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

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


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

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


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

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