Глобальное автообновление.

 

Отслеживая тенденции автотрейдинга, новые мысли и новые технологии, стал задумываться над таким вопросом как автообновление экспертов, индикаторов у пользователей (клиентов).
Суть вопроса который хотелось бы рассмотреть с разных сторон такой. Допустим программист написал что-то стоющее и решил заняться продвижением своего програмного продукта в массы, как для личной выходы, так и с целью помощи другим.
Любой програмный продукт со временем устаревает или подвергается доработки. Каждый день появляются все новые и новые технологии анализа. Конечно сейчас автотрейдинг стоит в самом начале своего пути, но вопрос о автообновлении програмного продукта встаёт уже сейчас.
Мне очень бы хотелось выслушать мнения всех желающих высказаться по теме ветки.
Попробую обрисовать начальную картину.
1. Создан эксперт или индикатор который стабильно показывает приемлемый результат для автоторговли и есть клиентура на его приобретение
2. Существует база данных предположим сотни клиентов, у каждого клиента установлен эксперт или индикатор в терминале МТ4
3. Разработчик добавил новую функцию в свой програмный продукт.
4. Как быстро и своевременно обновить у всех клиентов программу? Точнее какими способами можно это сделать.?

Понятное дело можно разослать всем клиентам новую версию по e-mail, можно выложить в закрытых ветках форума или веб сайта. Но это приметивные способы, т.к. не все клиенты отреагируют и скачают новую версию.
Хотелось бы этот момент сделать автоматическим, без участия пользователя. Т.е. по пунктам
1. Проверка нет ли новой версии
2. Если есть, то скачать её.
3. Заменить старые файлы новыми
4. Перезапустить терминал.

Все это должен делать эксперт стоящий и торгующий в терминале.

 

Всё можно сделать вполне банально с помощью планировщика задач nnCron http://www.nncron.ru/
Кроме терминала, установленного в заранее оговоренную папку на компе, каждый клиент устанавливает у себя этот планировщик и задачу, которую нужно написать на Форте. Задача будет выглядеть следующим образом по пунктам:

1. Проверяем наличие обновления файла советника в инете через HTTP-CHANGED: <URL>
2. Если дата советника изменена, то скачиваем его в такую-то папку HTTP-GET: <

 

Вариант интересный, но не идеальный.
Т.к. скажем не клиент может забрать с сервера советник без ведома автора.
Я же хочу сделать это в фоновом режиме, т.е. для клиента этот момент должен быть прозрачным.

 
Хайден привет

А почему бы для начала не упростить задачу.

Например, работает себе эксперт, выпускается новая версия,
выскакивает в терминале алерт, например:
"Появилась новая версия экперта такая то, что бы скачать кликните сюда"

Человек кликает, скачивает, закидует в терминал и потом юзает .

3. Заменить старые файлы новыми

А если человеку новая версия не понравится, где он возьмет старую?
Делать предварительно копию старой получается?
 
ram25, ну ты же понимаешь что лучьше задачу сразу ставить правильно, чем через тернии доходить до того что можно начать реализовывать сразу.
 
Просто я за эволюцию процесса, т.е. от простого к сложному
 
HIDDEN:

Вариант интересный, но не идеальный.
Т.к. скажем не клиент может забрать с сервера советник без ведома автора.
Я же хочу сделать это в фоновом режиме, т.е. для клиента этот момент должен быть прозрачным.

Ну раз вам ещё требуется и защита при обновлении, то тут уже возникает целый комплекс проблем с защитой кода MQL4 и библиотек, которые вы можете написать специально для секретной работы по скачиванию файла советника с секретного адреса, защищённого паролем. Защиту конечно же в nnCron организовать нельзя. Тогда скорее всего задача дожна просто решаться с помощью использования хардварных ключей, подключаемых например к USB.
В своём советнике ex4 файле организуете работу со специальной dll, которая производит проверку наличия такого хардварного ключа в системе и при его отсутствии просто не разрешает советнику торговать, а также не производит обновления советника с сайта. И тогда товарищу, которому удастся своровать сам советник в итоге не будет иметь возможность без оплаты декомпиляции советника его использовать. Это весьма серьёзно усложнит задачу злоумышленникам. Хотя 100% гарантии также не даст.
 
solandr:
HIDDEN:

Вариант интересный, но не идеальный.
Т.к. скажем не клиент может забрать с сервера советник без ведома автора.
Я же хочу сделать это в фоновом режиме, т.е. для клиента этот момент должен быть прозрачным.

Ну раз вам ещё требуется и защита при обновлении, то тут уже возникает целый комплекс проблем с защитой кода MQL4 и библиотек, которые вы можете написать специально для секретной работы по скачиванию файла советника с секретного адреса, защищённого паролем. Защиту конечно же в nnCron организовать нельзя. Тогда скорее всего задача дожна просто решаться с помощью использования хардварных ключей, подключаемых например к USB.
В своём советнике ex4 файле организуете работу со специальной dll, которая производит проверку наличия такого хардварного ключа в системе и при его отсутствии просто не разрешает советнику торговать, а также не производит обновления советника с сайта. И тогда товарищу, которому удастся своровать сам советник в итоге не будет иметь возможность без оплаты декомпиляции советника его использовать. Это весьма серьёзно усложнит задачу злоумышленникам. Хотя 100% гарантии также не даст.


Данный вариант тоже в себе несет кучу проблем, а именно, нужно переслать USB ключ клиенту, а если он в другом полушарии находится, это все время.
Я хочу попробывать сделать следующие.
1. Сайт с базой клиентов
2. Авторизация клиента по логину и паролю
3. Проверка обновлений советника по защищенному каналу.
4. Случайная генерация каталога где временно размещается новый советник, имя каталога уникальное, после скачивания копия удаляется с сервера автоматом.
5. Все это хочу написать на ASP.

Возможно есть более простые пути, кто знает подскажите.
 
Недавно мы как раз думали об новом разделе MQL4.com , который был бы посвящен продаже услуг программистов-трейдеров.

Защита MQL4 кода от взлома + контроль для продаж кода

Трейдеры хотят тотальной защиты для продаваемых экспертов с помощью сервера авторизации. Это можно сделать на основе сервера сертификации, который будет хранить RSA ключи дешифрации и контролировать использование экспертов.

Как будет работать сервер сертификации cert.mql4.com:
  1. трейдер регистрируется на MQL4.com и имеет доступ к центр сертификации (логин един для всего пространства MQL4.community)
  2. там он может зарегистрировать свои продукты (эксперты, индикаторы), для которых нужно:
    • зааплоадить RSA ключ, с помощью которого и происходит шифрация EX4 файла
    • сгенерировать/импортировать/экспортировать 16-24-32 символьные ключики, у каждого ключика может стоять срок работы
    • активировать/деактивировать ключики
    • заплатить нам $X за ведение каждого продукта
    • зааплоадить обновленную версию эксперта и она будет автоматически предложена всем легальным клиентам (доплатить за эту возможность еще $X ?)
  3. имеет полные логи и отчеты об использовании своих экспертов
  4. покупатели разнообразными способами оплачивают скрипты, деньги начисляются на счет автора на сайте MQL4 и выплачиваются авторам периодически
  5. центр сертификации - это не только проверка ключей, но и целая система контроля за продажами.

Как будет работать шифрация в редакторе и компиляторе:
  1. в редакторе в настройках добавляем вкладку "Защита кода"
    • список ключей + кнопки сгенерировать RSA ключики
    • галочка - использовать защиту цифровым RSA ключем
    • логин/пароль для доступа к cert.mql4.com
  2. в компиляторе добавляем параметр для указания ключей
  3. добавляем в #property эксперта новый тип keys, который указывает на определенные ключи для этого файла (каждый файл можно защищать разными ключами)

Важно, что терминал будет иметь штатную интеграцию с центром сертификации. Терминал при первом использовании в текущей сессии проверяет разрешенность работы эксперта через центр сертификации с помощью клиентского ключика, имени эксперта + еще что-то. Дешифрует код, при выходе новой версии скрипта предлагает его скачать.


Продажа услуг по написанию кода:

Также любой программист может предложить свои услуги по написанию кода на заказ. Заказчик должен иметь деньги на своем счету, определенная часть которых автоматически блокируется при оформлении заявки. Исполнитель на 100% уверен, что Заказчик имеет необходимые средства на счету. Арбитром и гарантом сделки выступает наша компания.


Интернет магазин:

Огранизуется интернет-магазин store.mql4.com.

Какие мысли есть по этому поводу?
 
Renat:

Продажа услуг по написанию кода:

Также любой программист может предложить свои услуги по написанию кода на заказ. Заказчик должен иметь деньги на своем счету, определенная часть которых автоматически блокируется при оформлении заявки. Исполнитель на 100% уверен, что Заказчик имеет необходимые средства на счету. Арбитром и гарантом сделки выступает наша компания.


Интернет магазин:

Огранизуется интернет-магазин store.mql4.com.

Какие мысли есть по этому поводу?

Это конечно здорово!. Но любопытно с какой целью компания готова взять на себя такую ношу ответственности? Наверняка будут возникать спорные вопросы между заказчиками и программистами, причем разбирательство в суде практически гарантировано, а это дополнительные расходы...
 

Да это было бы вообще супер.

Когда ждать реализации всего вышенаписанного?

Причина обращения: