Koncpepcja budowy systemu klient-serwer ale w inny sposób

0

Witam,
mam zadanie napisania aplikacji klienckiej, o określonej funkcjonalności, która w tej chwili nie jest istotna.
Głównym problemem dla mnie w tej chwili jest zdecydodwania o odpowiedniej architekturze do tego zadania.
Otóż, aplikacja ma obsługiwać konta użytkowników.
Domyślnie na kilku komputerach aplikacja może zostać zainstalowana, dlatego baza użytkowników powinna być na serwerze jakimś.
Oczywiście trzeba napisać panel administracyjny (serwer?), do zarządzania tymi kontami tj. tworzenie kont, zmiana haseł itp.
Dodatkowo jakieś zestawienia z panelu admina o wykonanej pracy na stanowiskach klienckich.

Czyli trzeba jakoś zabezpieczyć aplikacje, aby użytkownik inny niż admin nie mógł namieszać w bazie danych.

Jaką bazę najlepiej użyć, gdzie ją postawić, jaką technologią się łączyć, jak obsłużyć tworzenie i zarządzanie kontami?
Mam dostęp do nowszych środowisk delphi z rodziny XE.

pozdrawiam

0

baza dowolna - tają jaką najlepiej znasz i na jaką Cię stać (albo darmową, np. postgres, firebird, oracle XE, mssql express), raczej staraj się unika mysqla.
zainstalować na komputerze (serwerze) do którego będzie mocno ograniczony fizyczny dostęp - nawet jeśli wydasz miliony na zabezpieczenie serwera przed dostępem zdalnym, a dostęp fizyczny będzie miał każdy to są to pieniądze wywalone w błoto
do aplikacji n-warstwowej wypróbuj mORMota - aktualnie mocno go testuję i mogę powiedzieć, że dość sprytnie sobie radzi. Jeśli natomiast nie potrzebujesz osobnej warstwy w postaci serwera aplikacji to najnowsze Delphi mają genialną bibliotekę do łączenia się z bazami - FireDAC
Co do reszty to trzeba siąść i zacząć pisać

0

Co do bazy to oczywiście darmowa, ale musi mieć wersję sieciową - fajnie by było sqlite :), ale jesli trzeba bedzie serwer to pewnie postgresa postawię.
Druga sprawa gdzie ten serwer dać? Może być mi ciężko przekonać pewnych decydentów, że potrzebują bazy i to musi być jakieś stanowisko komputerowe najlepiej po LANie.

Firedaca używam - robi robotę dobrze.
Mormota nie, ale słyszałem dobre opinie - po prostu wydaje mi się że to duży kombajn i braknie mi czasu.

Na chwile obecną zamierzam zrobić to zwyczajnie - apka admina + klienta i baza jakaś postawiona. Wszystko na transakcjach.

0

jeśli ma to być normalna wersja sieciowa to nie sqlite tylko pełnoprawna baza danych, darmowe, najpopularniejsze wymienione masz wyżej.
Jak to gdzie dać serwer??? To jest pytanie w stylu "muszę przewozić codziennie ważne i poufne dane ale nie wiem jak przekonać szefa, że potrzebuje do tego samochodu a nie roweru pana Mietka". Czego oczekujesz od nas, że my będziemy "decydentów" przekonywać?

mORMot nie jest duży a używać go można, jak jesteś kumaty i masz jakieś doświadczenie w tego typu aplikacjach, po dwóch - trzech dniach walki z przykładami i pisania własnych przykładów. Podstawowy, pełnoprawny i działający serwer i klient to jest chyba ze 30 linijek kodu, więcej linijek zajmują klasy opisujące obiekty bazy.

0

OK napotkałem pierwszy problem z swoich przygotowaniach.
Posiadam XE5 Pro, a tam wg specyfikacji:

Support for local databases, including Microsoft Access database, SQLite database, InterBase ToGo / IBLite, InterBase on localhost, MySQL Embedded, MySQL Server on localhost, Advantage Database local engine, PostgreSQL on localhost, Firebird Embedded, Firebird on localhost

Czyżby nawet po LAN nie udało się podziałać FIREDACiem?

zamiana znacznika <code> na <quote> - @furious programming

0

potrzebujesz dokupić FireDAC Client/Server Add-On Packs for RAD Studio XE5

0

Na razie dokupienie odpada, zastanawiam się czy dbGo (ADO) uda mi się połączyć z postgresem zdalnie. Ktoś posiada doświadczenie stosowne?
Ewentualnie wykorzystam od dwóch lat nieużywanego Zeosa.

0

Zeos jest dobry na wszystko za co nie chcesz płacić :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1