Bezpieczeństwo danych- kopie zapasowe/ w sqlite zrobi to mój serwer. W odp. Katalogach bedzie tworzył je co dziennie lub w innym interwale .Dzięki temu będzie możliwość cofnięcia się. Bazy są małe więc może ich być klikadziesiąt jako pliki sqlite3 (w razie potrzeby serwer przywróci konkretną bazę z archiwum kopii)
Słaby pomysł z oddzielnymi bazami. Kilkadziesiąt oddzielnych baz to jakaś masakra. Jak użytkownik potem wybiera do której chce się zalogować? Jak będzie przebiegać aktualizacja przy nowej wersji programu gdzie dodasz pole? Nie idź tą drogą.
Serwer chcę używać do różnych moich projektów tzn ma obsługiwać różne programy i różnych użytkowników. Czasem będę chciał zabrać całość do siebie i poprawić znaleźć błąd przy pełnych danych(pełnych bazach) i na ip lokalnym 127.0.0.1. Piszę na moim laptopie i testy chciałbym robić na niezależnym układzie na jednej maszynie serwer/klient, klienci a nie na żywym organizmie działającym akurat.
Ale to samo daje się zrobić z normalną bazą danych. Zabierasz sobie kopię bazy danych i odpalasz lokalnie na środowisku deweloperskim. Nie jeden programista tak działa. To co opisujesz normalnie wpisuje się w cykl życia programu i nie potrzeba do tego żadnych serwerów poza bazą danych. Po prostu sam program bezpośrednio uderza do bazy danych za pomocą zapytań.
Programy prowadzić będą grafiki i rozliczenia lekarzy z wystawianiem faktur , podpisem elektronicznym systemu , pomagać planować pracę w dynamicznie zmienianym systemem w zależnościnod potrzeb/ zmian.
Druga funkcja - pomoc w doborze antybiotyków i mapowania bakteriologicznego szpitala w zależności od wielu zmiennych dotyczących stanu pacjenta i choroby i antybiotykooporności.
3 funkcja - wykonywanie testu do wykrywania i diagnostyki wczesnych objawów demencji walidowanym w badaniu wieloośrodkowym.
Szczerze, to jakoś nie widzę w takim zastosowaniu SQLite. Wcześniej czy później potkniesz się o jego niedoskonałości i będzie problem.
Częśc osób/ użytkowników pracuje offline w terenie (wtedy mają serwer lokalny na pendrivie z bazą lokalną) a centralizuje się dopiero po połączeniu z internetem.
Jeszcze raz. Trzymanie bazy danych na pendrive to jest niepoważny żart. Wystarczy luźne złącze USB odłączy się na pół sekundy i kończysz z uszkodzoną bazą. Nie raz w terenie pracowałem na laptopie. Wiem, że zdarza się uwalić pendrive.
Chciałbym potężniejsze narzędzie ale umieram na kompatybilności mac os z bibliotekami postgresql i firebird bo nie chcę instalować niczego w systemach. Żadnych bibliotek
Jakiej kompatybilności? Ludzie używają tego normalnie na Mac OS i jakoś nie mają problemów z tym.
Piszesz w komentarzu:
Firebird jest trudny do użycia z powodu bibliotek trudno dostępnych dla mac os różnych procesorów inwersji systemu.
Jakich bibliotek? Przecież normalnie masz instalkę tego. Na Windows też potrzebuje odpowiednich bibliotek, instalujesz to raz i działa. A jeśli Mac OS po aktualizacji wywala jakieś runtime to tylko powód aby go nie używać ;) Normalny system operacyjny nie wywala po aktualizacji doinstalowanych runtime.
Protokół już jest opracowany funkcjonował dobrze na plikach. Teraz czas na sql i bazę. Ale fakt że wolałbym się zajmować samym klientem a nie i klientem i serwerem.
Jak rozumiem przewidziałeś wszystko? Wszystkie typy danych, rodzaje żądań itp? Jestem pewny, że za jakiś czas przy rozbudowie programu trafisz na błąd. Naprawdę dobrze napisać serwer obsługujący wiele żądań w wątkach jest trudno. A potem wyśledzić jakiś race condition będzie Ci ciężko.
Nie żebym przekreślał Twój pomysł. Piszesz coś sensownego i bardzo dobrze. Na razie bazuj na istniejących rozwiązaniach. Potem jak nabierzesz doświadczenia będziesz mógł się wziąć za pisanie własnych serwerów. Najpierw dobrze opanuj pisanie normalnych klientów baz danych. Zwłaszcza, że ma to być program który będzie robić rzeczy przydatne w normalnej działalności komercyjnej.