Skocz do zawartości

Wymiana danych poprzez xml


vel

Rekomendowane odpowiedzi

Hejka

Za jakiś czas będę musiał w pracy prawdopodobnie stworzyć taki fajny, nooo... mix :hi:

Otóż mamy serwis www, który prezentuje pewne dane przechowywane w bazie danych :) Do kompletu mamy aplikację działającą lokalnie na komputerach użytkowników/klientów serwisu www. Aplikacja ta umożliwiwia eksport danych z aplikacji na serwer www, ale też i import danych do aplikacji. Wydaje mi się, że xml jako nośnik wymiany informacji będzie tutaj ok, ale.....

.... no właśnie, tu się zaczyna problem. Nie chcę pakować w xml ton danych pt. "zrób zrzut danych jak leci klienta X", ale zrobić tak "wpisz do pliku xml zmiany, jakie nastąpiły od ostatniego importu czy eksportu i wyślij plik z różnicami". I tutaj pytanie/prośba do ludków, którzy takie rzeczy przerabiali o podzielenie się doświadczeniami: w jaki sposób zorganizować sposób zapisywania zmian, żeby dało się to jakoś synchronizować? Do głowy przychodzi mi, aby zapisywać po stronie aplikacji dane typu (typ danej, identyfikator rekordu, nazwa pola, nowa zmieniona wartość) i z tego generować plik xml. Czy to jest dobry tok rozumowania? Prosiłbym o podzielenie się doświadczeniami w tej materii :)

Pozdrawiam

Kup sobie nieruchomości Kraków albo apartamenty Zakopane. Obejrzyj też fotoblog Grzegorza Ziemiańskiego Nowa Huta na deser

Odnośnik do komentarza
Udostępnij na innych stronach

hej :)

widze, ze lubisz mocne wyzwania :hi:

bo z tego co zrozumialem z Twojego opisu, chcialbys zrobic aby dane Y z serwera mogly byc w danym czasie pobierane i obrabiane przez N liczbe uzytkownikow, tak?

czyli przy zapisywaniu danych z klienta na serwer musisz zaimplementowac: synchronizacje (jakie dane wysylac, jak identyfikowac wersje), jakiegos diffa(porownywanie aktualnej wersji do poprzedniej), i dochodzi jeszcze problem konfliktow przy synchronizacji (np 2 userow w tym samym czasie wrzuca swoje zmiany pliku Y).

przemysl dobrze, czy nie lepiej, bedzie zaimplementowac cos prostrzego. oczywiscie jesli masz ku temu mozliwosci.

co prostrzego? np uzytkownik importuje dane z serwera, Ty ustawiasz na tych danych flage mowiaca, ze nikt inny inny nie moze importowac tych danych do poki ten uzytkownik co pierwszy zaimportowal nie wyeksportuje danych. takie systemy nazywa sie systemami wersjowania wylacznego (w Twoim zamierzeniu dazysz do wersjowania rownoleglego). Poczytaj ew. o systemach kontroli wersji.

przedstawilem Ci inny sposob podejscia do problemu. mam nadzieje, ze rozwialo to choc troche Twoich ew. watpliwosci. teraz sie zastanow, przemysl jakiego sposobu potrzebujesz, daj znac, a my postaramy sie cos jeszcze poradzic :)

"Lubię samochody i znam się na koniach mechanicznych."

Odnośnik do komentarza
Udostępnij na innych stronach

generalnie schemat tutaj wyglądałby tak:

w firmi X będącej klientem jest sobie centralna baza danych BD i N userów firmy X ma aplikację w formie aplikacji webowej, która pobiera dane z BD. W danym dniu pierwszy użytkownik firmy X, który się zaloguje do aplikacji wyzwala pobranie importu danych z serwisu www i zapisanie ich do BD. W ciągu dnia sobie użytkownicy zmieniają i cudująa a na koniec dnia ktoś klika 'eksport' i wszysstko leci na serwer do xmla :)

tak więc problem, o którym piszesz (i słusznie, umknęło mi to) będzie dotyczył pracy przez N użytkowników firmy X na danych DB. bo w eksporcie do serwisu www nie będzie problemów - każda firma to inny identyfikator czyli inne dane i tu konfliktów nie powinno być :)

no więc co do sposobu synchronizacji zapisu, co jest lepsze, częściej stosowane? blokada poprzez flagę i czekanie aż ktoś zmodyfikuje? czy wymyślono coś lepsiejszego :hi:

ufff :)

Kup sobie nieruchomości Kraków albo apartamenty Zakopane. Obejrzyj też fotoblog Grzegorza Ziemiańskiego Nowa Huta na deser

Odnośnik do komentarza
Udostępnij na innych stronach

T1:

user

last_import_id

last_export_id

data_import

data_export

=====

Jak user czyta dane z serwera PHP generuje XML od last_import_id

Jak user wysyla dane (2 wyjscia)

1. Gdy ma tez aktualizowac swoje stare dane na serwerze, wtedy PHP generuje pelen plik XML lecz z tymi samymi ID i pozniej go uploduje na serwer.

2. Gdy ma tylko dodawac nowe dane, wtedy PHP aktualizuje tylko nowe dane w tabelach i generuje XML.

www.governo.it

Odnośnik do komentarza
Udostępnij na innych stronach

kurcze mam dziś mocno ograniczoną percepcję po nieprzespanej nocy, ale z tego co piszesz proweb2 to wnioskuję, że w obie strony musiałby iść kompletny xml (znaczy komplet danych). muszę to jeszcze przeanalizować, bo może nie byłoby tego aż tak dużo, a taki sposób jak proponujesz byłby na pewno prostszy

tylko właśnie nie wiem jeszce co lepsze: xml z pełnymi danymi, ale prostsze zarządzanie importem/eksportem czy xml tylko ze zmianami i nowymi rekordami oraz rekordami do usunięcia

ehhhhhhh, najpierw chyba się jednak porządnie wyśpię :hi:

pozdrawiam

Kup sobie nieruchomości Kraków albo apartamenty Zakopane. Obejrzyj też fotoblog Grzegorza Ziemiańskiego Nowa Huta na deser

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności