mojaSymfonia FORUM
https://forum.mix-soft.pl/

Btrieve -> Pervasive -> DDF - kilka podstawowych pytań
https://forum.mix-soft.pl/viewtopic.php?f=2&t=5330
Strona 1 z 1

Autor:  8143 [ 2013-11-25, 19:26 ]
Tytuł:  Btrieve -> Pervasive -> DDF - kilka podstawowych pytań

witam,
Potrzebuję dobrać się do danych Symfonii handel z "zewnątrz". Aplikacja jest póki co w wersji demo więc nie ma obaw o jakieś naruszenie spójności danych.
Od kilku dni próbuję wtajemniczyć się w dziwaczny DBMS jakim jest pervasive i szczerze powiem, że z tym wynalazkiem spotykam się po raz pierwszy. Powiedzcie mi proszę czy dobrze rozumuję:

1. Symfonia (handel) przechowuje dane w plikach DAT, które to dane są w formacie Btrieve (taka alternatywa dla DBFa).
2. Dostęp do danych zawartych w tych plikach możliwy jest poprzez sterownik ODBC (czyli identycznie jak DBF).
3. Po zainstalowaniu płatnego servera pervasive dostęp możliwy jest już w "tradycyjny" sposób, tzn. poprzez TCP/IP.
4. Można na podstawie plików DAT wygenerować pliki DDF, które będą zawierały informacje o tabelach, ich strukturach itp., lecz nie same dane - te nadal będą przechowywane w DATach, czy tak ?

W małych instalacjach - tam gdzie nie ma serwera pervasive - to aplikacja (symfonia) bezpośrednio grzebie w plikach DAT. Przy większych wdrożeniach (z udziałem pervasive'a) już nie symfonia bezpośfednio, lecz pervasive grzebie w DATach, natomiast klienty (w tym symfonia) "rozmawiają" z pervasivem posługując się SQLem.

A teraz rzecz, której kompletnie nie łapię:
Zainstalowałem demo SH 2014 wybierając opcję "instalacja specjalna" czyli opcję dla posiadających komercyjnego pervasive'a a nastepnie zainstalowałem stację roboczą (na tej samej maszynie). Sęk w tym, że instalator stacji roboczej nie pyta o adres IP serwera ani o login/hasło użytkownika bazy danych, z którym ma wymieniać dane lecz o miejsce instalacji Symfonii (??!!), tzn. oczekuje podania katalogu (w praktyce raczej zmapowanego zasobu sieciowego), w którym zainstalowana została symfonia. Zatem pytanie moje brzmi: Po jakiego grzyba mu pervasive, skoro i tak oczekuje podania zasobu sieciowego jako miejsca składowania danych zamiast parametrów połączenia z Pervasive ? Dla pewności sprawdziłem netstatem i faktycznie stacja robocza wogóle nie łączy się z serwerem po TCP/IP mimo, iż pervasive elegancko nasłuchuje na porcie bodajże TCP 1583.
I jeszcze jedno pytanie: Jak rozumiem pliki DDF są potrzebne pervasiv'owi do odpowiedniego mapowania nazw tabel i kolumn zawartych w zapytaniach SQL na odpowiadające im pliki dat. Skoro więc nie posiadamy DDFów, pervasive nie ma możliwości korzystania z danych zawartych w DATach. I tu pojawia się kolejna niespodzianka, ponieważ wygenerowane przez Symfonię pliki danych (przypominam - wersja z pervasive) nie zawierają DDFów a jedynie DATy, więc na zdrowy chłopski rozum pervasive nie ma prawa "widzieć" danych.

Proszę forumowiczów speców od symfonii o rozwianie moich wątpliwości, bo przy całym szacunku dla sage (aplikacja bardzo intuicyjna, działa bardzo fajnie) nie mogę pojąć co i komu tam strzeliło do głowy, by zaciągnąć do pracy taką zdechłą technologię.

Autor:  rafal [ 2013-11-25, 22:39 ]
Tytuł:  Re: Btrieve -> Pervasive -> DDF - kilka podstawowych pytań

W odpowiedzi na Twoją wiadomość można by napisać książkę.

8143 pisze:
[...] nie mogę pojąć co i komu tam strzeliło do głowy, by zaciągnąć do pracy taką zdechłą technologię.


Symfonia to jeden z pierwszych programów dla firm pod Windows. W tamtym czasie ta technologia nie była taka zdechła.
Dodam, że dziś trwają prace nad zmianą "silnika" na MySQL.

O zasadzie działania Pervasiva i Microkernela jest dużo informacji w sieci http://en.wikipedia.org/wiki/Pervasive_PSQL

Załącznik:
pvsw_works.png
pvsw_works.png [ 154.15 KiB | Przeglądany 5581 razy ]


Trochę o wyciąganiu danych przez ODBC jest też na forum.

Autor:  wrob [ 2013-11-25, 23:54 ]
Tytuł:  Re: Btrieve -> Pervasive -> DDF - kilka podstawowych pytań

"zdrowy chlopski rozum" - nie zawsze dziala - pervasive nie musi widziec struktury danych (ddf) aby moc na nich pracowac - wystarczy ze ma pliki dat - oraz aplikacja wywolujaca pervasive - w naszym wypadku symfonia - wysle do pervasive informacje z ktorej struktury (i jak ta struktura jest ulozona) i co chce uzyskac a pervasive juz sie zajmuje tylko blokowaniem pliki i rozbiciem bdrzew i indeksow w celu napelnienia pliku dat

Generalnie w calym swoim poście popelniles blad w początkowym założeniu - uznałeś ze to typowy klient serwer - o to juz pociagnelo za soba lawine pytan - otoz nie jest to klient serwer w klasycznym tego slowa znaczeniu dokladniej to pervasive ma relational i transactional engine - i symfonia korzysta tylko z jednego.

A i nie jest to wcale zdechla technologia - w systemach czasu rzeczywistego, oraz w systemach wysokiej wydajnosci - stosuje sie głownie tego typu technologie oparte na bdrzewach i innych strukturach o liniowej złożoności gdyż sa one znacznie szybsze i maja deterministyczny czas odpowiedzi - (w porownaniu do wasko rozumianego klient serwer->SQL)

Autor:  8143 [ 2013-11-26, 20:49 ]
Tytuł:  Re: Btrieve -> Pervasive -> DDF - kilka podstawowych pytań

Dziekuję Robercie za odpowiedź, mam jednak kilka "ale":

wrob pisze:
"zdrowy chlopski rozum" - nie zawsze dziala - pervasive nie musi widziec struktury danych (ddf) aby moc na nich pracowac - wystarczy ze ma pliki dat - oraz aplikacja wywolujaca pervasive - w naszym wypadku symfonia - wysle do pervasive informacje z ktorej struktury (i jak ta struktura jest ulozona) i co chce uzyskac a pervasive juz sie zajmuje tylko blokowaniem pliki i rozbiciem bdrzew i indeksow w celu napelnienia pliku dat


hmm, to co opisałeś powyżej to klasyczna cecha ODBC a nie serwera. Skoro serwer nie musi znać struktury danych, żeby na nich działać a informację 'skąd' pobierać dane dostaje od klienta (w tym wypadku Symfonii) to czy chcesz powiedzieć, że pervasive oprócz "klasycznej" cechy serwera SQLowego, którą z całą pewnością posiada oferuje również mechanizm dostępu do danych zdalnym klientom w sposób identyczny jak poprzez ODBC ? Dobrze rozumiem ? tzn. "udaje" w jakis sposób zasób ?

wrob pisze:
Generalnie w calym swoim poście popelniles blad w początkowym założeniu - uznałeś ze to typowy klient serwer - o to juz pociagnelo za soba lawine pytan - otoz nie jest to klient serwer w klasycznym tego slowa znaczeniu dokladniej to pervasive ma relational i transactional engine - i symfonia korzysta tylko z jednego.


Ok, posiada relational i transactional engine. A więc posiada te same mechanizmy, które mają wszystkie popularne systemy bazodanowe. Na czym więc polega wyjątkowość tych mechanizmów, że czynią pervasive "nie klasycznym" serwerem ?
Dla mnie to zabrzmiało troche tak:
"Windows nie jest klasycznym systemem operacyjnym, bo posiada również możliwość kopiowania plików".
Dodam, że cechy klasyczne jak najbardziej posiada - bez problemu łączę się z pervasivem ze zdalnych maszyn, wykonuję na nim polecenia SQLowe itd., chyba, że oprócz tego posiada jeszcze jakieś cechy o których nie wiem (?)


wrob pisze:
A i nie jest to wcale zdechla technologia - w systemach czasu rzeczywistego, oraz w systemach wysokiej wydajnosci - stosuje sie głownie tego typu technologie oparte na bdrzewach i innych strukturach o liniowej złożoności gdyż sa one znacznie szybsze i maja deterministyczny czas odpowiedzi - (w porownaniu do wasko rozumianego klient serwer->SQL)


W porządku, ale nie mówimy o "tego typu" technologii w ogólnym uzyciu lecz konkretnie o pervasive i zastosowaniach biznesowych, które systemami czasu rzeczywistego nie są. Mówiąc o "zdechłości" pervasive'a miałem raczej na myśli jego rynkową agonię - poza Polską prawie nigdzie się go nie stosuje: ponoć 50% wszystkich serverów pervasive stoi właśnie w PL, kolejne 25% 2 Rosji, reszta w kilku krajach europy środkowej. Śmiem przypuszczać, że Pervasive Software "żyje" głównie dzięki sage a i tak - jak pisze kolega Rafał - sage poszło wreszcie po rozum do głowy i zastąpi go MySQLem. Szkoda, że tak późno.


OK, tak teoretyzować można by bez końca, zatem skrócę swoje pytania do jednego, ściśle symfonicznego:
Z Pervasive w jego "klasycznym" pojęciu wszystko gra: Działa, łączę sie z nim zewnetrznymi narzędziami, tworze/modyfikuję bazy - słowem ok. Natomiast wciąż nie łapię sposobu komunikacji Symfonii z Pervasive, tzn. zakładam, że sama Symfonia nie stosuje SQLa do komunikacji z bazą (stąd brak aktywnych połączeń TCP z serwerem) a ten z kolei oprócz "klasycznego" sposobu komunikacji jakim jest SQL oferuje jeszcze jakiś inny - własny mechanizm, z którym Symfonia "rozmawia". I to jest moje pierwsze pytanie - sposób komunikacji. Jeśli tak jest, to czy normą jest podczas wdrażania Symfonii w firmach, że trzeba stacjom roboczym udostepnić zasób sieciowy zawierający SH ? Pytam, ponieważ instalator stacji roboczej w żadnym momencie nie pyta o parametry połączenia z pervasivem, wymusza za to podanie lokalizacji instalacji SH.

Dziekuję za odpowedzi

Pozdr.

Autor:  wrob [ 2013-11-27, 15:28 ]
Tytuł:  Re: Btrieve -> Pervasive -> DDF - kilka podstawowych pytań

Strasznie pomieszałeś technologie - to nie ma nic wspolnego z ODBC ( ani z logika dzialania ODBC) a - SQL tez nie ma z tm nic wspólnego - tzn ma bo pervasive ma obsługę sql ale taka dopieta "z boku" i jest to funkcja dodatkowa a nie natywna (klasyczna) pervasive i symfonia z niej nie korzysta wiec w naszym rozumowaniu mozemy SQL pominac calkowicie - a jesli nie masz pervasive tylko jego przodka microkernel to tam w ogole nie ma SQL. tak przy okazji SQL nie jest klasyka - bazy na strukturach bdrzewa byly wczesniej jescze w czasach ODR i jezyka COBOL itp "super komputerów" :) - wiec to raczej je należy nazywać "klasyka" a nie SQL :)

To co pervasive nazywa tymi swoimi rel i trans engine to nie to samo co ty rozumiesz w kontekscie MS SQL i podobnych - poczytaj dokumentacje pervasive a jescze lepiej btrieva - zeby poczuć różnice :)

To ze sie laczysz ze zdalnych maszyn do SQL pervasive to owszem jest ale tak jak pisalem to nie ma nic wspolnego z tym z czego symfonia korzysta - najlepiej jak sobie obejrzysz pare raportow w FK albo w hm ktore otwierając bazy, ustawiaja klucze i segmenty klucza i sie po nich przesuwaja - bedzie to odmienne doświadczenie od tego jakie masz z SQL - byc moze nieco podobne jak fetch i przewijanie kursora w sql :)

Hmm.. ja mam inne dane nt pervasive - ktory jest naprawde dobrym systemem i znacznie wydajniejszym w dużych zapytaniach - zresztą to będzie mozna zobaczyc jak symfonia przejdzie na MY SQL - np raport rozrachunki bedzie sie robil ze 2 razy wolniej (ale porgramowac sie go bedzie 2 razy szybciej)- co do uzywania w świecie moze nie wiesz ale MS Great Plains i inne systemy ERP microsofta dopiero pare lat temu przeszły z pervasive na MS SQL - mimo ze MS SQL ma juz z 18 lat to bali sie przechodzić sami na niego w zastosowaniach biznesowych...
Ale fakt najlepsze czasy juz chyba za nimi - teraz rozwijaja sie glownie do systemow wbudowanych gdzie idealnie pasuja oraz systemów wysokiej wydajności i big data np engine cloudowy pervasive wykorzystuje salesforce.com

No i odpowiadajac na pytanie symfoniczne : tak - trzeba symfonii zawsze podawac zasob sieciowy do baz danych

Autor:  8143 [ 2013-11-29, 03:08 ]
Tytuł:  Re: Btrieve -> Pervasive -> DDF - kilka podstawowych pytań

wrob pisze:
Hmm.. ja mam inne dane nt pervasive - ktory jest naprawde dobrym systemem i znacznie wydajniejszym w dużych zapytaniach - zresztą to będzie mozna zobaczyc jak symfonia przejdzie na MY SQL - np raport rozrachunki bedzie sie robil ze 2 razy wolniej (ale porgramowac sie go bedzie 2 razy szybciej)- co do uzywania w świecie moze nie wiesz ale MS Great Plains i inne systemy ERP microsofta dopiero pare lat temu przeszły z pervasive na MS SQL - mimo ze MS SQL ma juz z 18 lat to bali sie przechodzić sami na niego w zastosowaniach biznesowych.


No wiesz, wydajnościowo to ja sie pervasive'a nie czepiam ;) chociaż przy okazji porównywania jego wydajności z MySQLem byłoby sprawiedliwie testować pervasive'a wyłącznie z użyciem SQLa ;) Sam MySQL mimo głosów krytyki może wcale tak źle nie wypaść - zwłaszcza jeśli Sage ma w planie korzystanie z MyISAM, chociaż ciekawi mnie jak chcą go dystrybuować (nie wnikałem za bardzo, ale ponoć odkąd łyknął go oracle, dystrybucja go wraz z własnym oprogramowaniem jest zabroniona).

O korzystaniu z pervasive'a przez microsoft co prawda nie słyszałem, ale jakoś mnie to nie dziwi - nie raz korzystali z rozwiązań konkurencyjnych wobec własnych, nawet wobec sztandarowych :)

W każdym razie wielkie dzięki za wszelkie wyjaśnienia :)

Pozdrawiam

Autor:  wrob [ 2013-12-02, 17:58 ]
Tytuł:  Re: Btrieve -> Pervasive -> DDF - kilka podstawowych pytań

Masz racje :) od czasu jak Oracle przejal MYSQL to moze faktycznie byc problem z tym dystrybuowaniem..... Tzn bedzie tak ze kazdy uzytkownik bedzie sam sobie musial sciagnac i zainstalowac my sql.... a to moze byc dla wielu klopotliwe

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/