Joomla 1.5 Импорт данных в базу данных удаленно (xml-prc)

Тема в разделе "Программирование", создана пользователем FeaMor, 25.02.2010.

  1. FeaMor
    Offline

    FeaMor Пользователь

    Регистрация:
    01.09.2008
    Сообщения:
    104
    Симпатии:
    2
    Пол:
    Мужской
    Помогите разобраться как связаться с БД удаленно!
    Есть несколько таблиц, которые обновлялись раньше раз в день, а теперь нужно обновлять данные чуть ли не каждую минуту. В ручную становится невозможно это делать. Встал вопрос об автоматизации. Сами данные хранятся в базе MS SQL и работает с ними программа на Delphi. Эта программа выгружает данные в формате xml, после чего я конвертирую в формат mySQL и импортирую данные в базу. Некоторые таблицы имеют объем в несколько мегабайт.
    Т.к. данные нужно обновлять гораздо чаще, то решили напрямую связываться программой с базой данных и редактировать таблицы, но увы, многие хостинги "защитили" удаленное управление БД (((
    Нашли единственный выход XML-RPC: программа выгружает данные в XML, архивирует в zip и отправляет на сайт, а сайт уже распаковывает архив, и добавляет/изменяет данные в таблицах, согласно выгрузке.

    Подскажите, пожалуйста, где можно найти об этих действиях информацию?! Пытался разобрать плагин plg-xmlrpc-movabletype, но ничего не понял ((( Как можно использовать джумловский скрипт xmlrpc?
    Покажите, плиз, хотя бы маленький простенький примерчик обработки xml (добавить запись в какую-нить табличку в БД)! Искал в течении недели инфу - не нашел ничего (((
     
  2.  
  3. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    По-моему проще заливать по фтп .sql файлы, а на сервере настроить крон, что бы их малюсенький скриптик исполнял.
     
  4. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    согласен с Кроликом + Вам еще придется писать рпц-сервер !
     
  5. FeaMor
    Offline

    FeaMor Пользователь

    Регистрация:
    01.09.2008
    Сообщения:
    104
    Симпатии:
    2
    Пол:
    Мужской
    крон не подходит, т.к. такого рода закачка файлов не нормированная, а результаты нужно отображать моментально, не дожидаясь, когда это будет "по графику" (( Такой вариант был отвергнут...
    На сайте нужно отображать выгрузку более тысячи магазинов - отчеты по проданным товарам. Магазины делают выгрузку в программу-сервер ежеминутно, та в свою очередь собирает все данные и делает выгрузку на сайт. Раньше было все распланированно по времени, теперь нужно "онлайн"версию выгрузки. Что бы остальные магазины видели состав складов других магазинов. Ну примерно так ;)
    А разве в джумле нет рпц-сервера? Я как понял в нем это уже реализованно, раз есть какие-то xml-rpc плагины...
    Мне нужно на данный момент какой-то маленький пример, как xml-файл загрузить на сайт, сконвертировать его в sql запрос и выгрузить в базу, после чего что бы был ответ от сервера (об ошибке, об удаче и т.п.).
    Дайте пожалуйста мне "волшебный пендель" где я могу это все узнать.
    PS: с англ. не дружу, на иностранные сайты не отправляйте (((
    PPS: а еще нет на хостинге Cron`a ((
     
  6. Offline

    BAdBoY Недавно здесь

    Регистрация:
    14.10.2007
    Сообщения:
    70
    Симпатии:
    1
    Пол:
    Мужской
    Теперь подробнее.
    1)у тебя есть сервер MS SQL. есть ли доступ к нему из вне? внеш ip хотябы. и напиши подробнее попунктам как ты щас рабатаеш.

    2) Есть сайт. Не проше написать скрипт в 10 строчек который либо будут сразу загружать инфу из MS SQL на сайт посредствам php. Либо сделать мост между MS SQL и MySQL (будет копировать из MSSQL в MYSQL). если нету CRON то просто напиши страницу на PHP и поставить в мета теге чтоб она сама обновлялась каждые 60 сек и залей на сервер где MySQL. и запусти ее на любом компе и она будет каждые 60 сек конвертировать даненые)))))
     
  7. FeaMor
    Offline

    FeaMor Пользователь

    Регистрация:
    01.09.2008
    Сообщения:
    104
    Симпатии:
    2
    Пол:
    Мужской
    1) Есть программа, написанная на Delphi, с использованием MS SQL. Я толком не знаю, но в нее сливаются данные со всех магазинов, причем именно через 80 порт, постоянно включена, имеется выделенный ip. Но сайт не должен иметь доступ к этой программе, именно такое условие, что бы информация между сайтом и программой шла только в одном направлении, сайт не должен иметь доступа к проге (сайт только отображает нынешнее положение вещей, но сам ничего не должен делать).

    2) С ежеминутным обновлением скорее всего не получится, т.к. выгрузка на сайт может вообще не произойти (зря грузили сервер и не надежно, т.к. в какой-то момент может остановиться вообще), либо может быть очень большое кол-во за минуту, что сделает обработку данных сложным для отчетности... Причем данные одной выгрузки могут весить десятки мегабайт, а если таких будет большое кол-во, то и нагрузка будет большой (( Поэтому нужно, что бы данные сразу же обрабатывались при выгрузке, а не лежали там и копились.

    Программа разработана именно так, что бы делать выгрузку в xml. Нужно написать типа веб-обложки - переходник, сидящий на сайте, через который будут направляться запросы в БД. Это как phpMyAdmin, только не для визуально-ручного использования, а автоматического, программного )))
    По проведенному анализу того что нужно, подходит именно XML-RPC. Но вот как с ним работать - нигде не написано (( Все говорят, что в джумле это реализовано, но как этим пользоваться нет :(
     
    Последнее редактирование: 26.02.2010
  8. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    Реализовано, только нафик никому не надо. Еще обходной вариант - поднять ssh-туннель.
     
  9. FeaMor
    Offline

    FeaMor Пользователь

    Регистрация:
    01.09.2008
    Сообщения:
    104
    Симпатии:
    2
    Пол:
    Мужской
    На сколько я знаю, там "ручное" соединение с сервером... А нужна полная автоматизация всех процессов!
    Придется походу делать независимое от джумлы выгрузку данных в базу (( Я просто думал, что в джумле все должно быть защищено и готово к загрузке...
     
  10. FeaMor
    Offline

    FeaMor Пользователь

    Регистрация:
    01.09.2008
    Сообщения:
    104
    Симпатии:
    2
    Пол:
    Мужской
    Сделали намного проще все:
    дописали программу так, что она методом post отсылаются значения переменных на сайт (логин, пароль, sql-запрос как текст), а комонент уже обрабатывает текст как запрос ;)
     
    Последнее редактирование: 03.03.2010
  11. Offline

    dark Недавно здесь

    Регистрация:
    24.08.2009
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    А почему Вы так плюетесь от XML-RPC, по-моему это очень удобный сервис, вот описания о нем больше было бы. Я возможно не знаю "подводных камней". Возможно в нем потенциальная "дыра" в безопасности? Объясните, чем не нравится?

    А для чего нужен? Я сейчас разрабатываю обмен между 1С и VirtueMart (загрузка товаров с картинками и управление покупателями и заказами). Единственное неудобство, замеченное мной, - это отсутствие плагинов (или я их плохо искал, буду продолжать поиски), приходится разрабатывать их самому.
    Ведь прямой доступ к базе не на всех хостингах есть, а если есть, то часто привязывают его к ip-адресу или диапазону, которые тоже могут меняться, да и прямой доступ к mysql не сказал бы, что это универсальное средство. Если бы разработчики компонентов чаще писали бы плагины к xml-rpc, то это, на мой взгляд, было очень удобно (ведь могут изменить структуру данных или логику в очередном релизе) и универсально.

    Если есть документация или плагины, дайте ссылку.

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

    Если я не прав, то объясните почему не стоит их использовать?
     
  12. FeaMor
    Offline

    FeaMor Пользователь

    Регистрация:
    01.09.2008
    Сообщения:
    104
    Симпатии:
    2
    Пол:
    Мужской
    я лично так и не разобрался как сделать хот ябы самую примитивную выгрузку (((
    я могу делать xml, могу закачивать на хостинг, но как потом обрабатывать с помощью джумлы я не узнал (
    Сделал как для меня проще, тупо программа соединяется с сайтом по определенному адресу и кидает методом пост значения переменных, а там уже обработка идет (прямо запрос в виде текста отправляет)
     
  13. Offline

    dark Недавно здесь

    Регистрация:
    24.08.2009
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Я также сделал сначала, но сейчас переделываю. Опишу примеры здесь же, на днях.
     
  14. FeaMor
    Offline

    FeaMor Пользователь

    Регистрация:
    01.09.2008
    Сообщения:
    104
    Симпатии:
    2
    Пол:
    Мужской
    Было бы здорово!
    Я подмогну если что ;)
     
  15. Offline

    esanuvea Недавно здесь

    Регистрация:
    17.03.2008
    Сообщения:
    9
    Симпатии:
    1
    Пол:
    Мужской
    Здравствуйте.

    Можете ли сделать другой для EstateAgent?

    Нужно сделать автоматический импорт объектов с другого сайта (объекты загружаются на данный сайт при помощи программой установленной на компьютере) в базу данных EstateAgent.

    Разработчики программы сообщили, что могут предоставить XML файл или CSV файл.

    Помогите, пожалуйста. Так как нужно сэкономить время на ввод объектов в разные сайты.
    Принцип работы: добавляем объекты в их программу, они делают автоматический экспорт файла на их сервере, потом надо сделать импорт данных объектов на EstateAgent.

    Есть сайт 1 на который загружается через программу, которая инсталированна на компютере.
    Разработчики данной программы могут предоставить XML файл или CSV файл и будут загружать этот файл на их сервере
    Нужно сделать импорт на другой сайт 2 в компонент Estate Agent в Joomla 1.5.

    Как это можно сделать?

    С XML не особо знаком. Можете рассказать поэтапно как это можно сделать.

    Спасибо.
     

Поделиться этой страницей

Загрузка...