Sprzedaż i Magazyn
Zamówienia · Faktury · Magazyn · Płatności
Zobacz nasz profil na Facebooku
Aktualna wersja 1.6.4

DuoKomp Sprzedaż i Magazyn - Dokumentacja

Rozdział 2.4.
Serwer, dane i użytkownicy »
SKŁADOWANIE I DOSTĘP DO DANYCH

Spis treści    

Silnik bazodanowy

W celu przetwarzania i składowania danych serwer programu DuoKomp Sprzedaż i Magazyn korzysta z silnika SQLite. Dane przechowywane są w pliku ds.dat, który musi znajdować się w tym samym folderze co plik wykonywalny usługi serwera (dsserver.exe).

Zasady ogólne

Serwer zapewnia możliwość konkurencyjnego dostępu do jednej bazy danych wielu użytkownikom jednocześnie. Integralność danych zapewniana jest w szczególności przez mechanizmy transakcji oraz kontroli dostępu użytkowników do danych. Poniżej opisane są krótko najważniejsze reguły dostępu do danych.

Istnieją następujące rodzaje podstawowych operaji na obiektach (np. dokumentach, kontrahentach, produktach):

  • utworzenie,
  • otwarcie w trybie do edycji lub tylko do odczytu,
  • aktualizacja obiektu otwartego wcześniej w trybie do edycji,
  • uwolnienie obiektu otwartego w trybie do edycji,
  • usunięcie obiektu.

Dodatkowo klient może zażądać wykonania kwerendy, która zwraca wyniki w postaci listy (np. lista wystawionych faktur), bądź też tzw. operacji rozszerzonych, które mogą wykonywać pewne operacje na obiektach z pominięciem standardowego mechanizmu ich otwierania i aktualizacji. Przykładem operacji rozszerzonej jest ustawienie dokumentu jako całkowicie opłaconego z poziomu listy wystawionych dokumentów.

Wymienione operacje obejmują cały typowy cykl życia dokumentów i innych obiektów, od ich utworzenia, przez dokonywanie w nich zmian, aż do ewentualnego usunięcia. Możliwość wykonania tych operacji podlega jednak określonym restrykcjom. Część z nich wynika z logiki działania serwera, a część z konfiguracji uprawnień poszczególnych użytkowników. Najważniejsze reguły wynikające z mechanizmów samego serwera są następujące:

  • dany obiekt może być jednocześnie otwarty do edycji tylko przez jedną sesję jednego użytkownika;
  • nie ma ograniczeń w otwieraniu obiektów w trybie tylko do odczytu; w praktyce klient programu żąda zazwyczaj otwarcia obiektu w trybie do edycji z zastrzeżeniem, że jeśli nie będzie to możliwe, to powinien zostać otwarty w trybie do odczytu;
  • nie można usunąć obiektu, który jest aktualnie otwarty w trybie do edycji.

Sesje użytkowników

Kluczowym mechanizmem służącym kontroli dostępu do obiektów są sesje użytkowników. Sesja jest tworzona z chwilą pomyślnego zalogowania się użytkownika do programu. Jeden użytkownik może mieć jednocześnie tylko jedną sesję. Ma ona ograniczoną ważność czasową, która może zostać zmieniona przez administratora w ustawieniach programu. Choć mechanizm ważności sesji oraz dojść do obiektów otwartych w trybie do edycji jest w rzeczywistości nieco bardziej skomplikowany, to w uproszczeniu można powiedzieć, że odnowienie ważności sesji następuje wraz z wykonaniem każdej kolejnej operacji. Jeśli odnowienie nie nastąpi, traci ona ważność tak samo jak wszelkie ewentualne dojścia do obiektów. Wykonanie kolejnej operacji wymaga ponownego zalogowania (i tym samym utworzenia nowej sesji), a ewentualne otwarte w poprzedniej sesji obiekty stają się dostępne dla innych użytkowników. Również kontrolowane przez samego użytkownika wylogowanie się z programu skutkuje usunięciem sesji i zwolnieniem wszystkich ewentualnie otwartych przez niego obiektów.

Administratorzy mają możliwość podejrzenia aktualnych sesji użytkowników z poziomu aplikacji klienckiej wybierając opcję Administracja|Aktywne sesje.... Narzędzie to daje również opcję tzw. wylogowania administracyjnego. Ma ono takie same skutki jak zwykłe wylogowanie się, jednak powinno być stosowane tylko w awaryjnych sytuacjach. Najbardziej typowa z nich to nagłe i niekontrolowane zamknięcie aplikacji klienckiej bez wylogowania się użytkownika (np. reset komputera) w czasie, gdy ma on otwarte do odczytu jakieś obiekty. Powoduje to, że nie są one dostępne dla innych użytkowników aż do upływu czasu wygaśnięcia dojść do tych obiektów. Rozwiązaniem tej sytuacji jest albo ponowne zalogowanie się tego samego użytkownika (powoduje to usunięcie jego wcześniejszej sesji i zwolnienie obiektów) albo właśnie wylogowanie administracyjne.

Bezpośredni dostęp do bazy danych i jej pliku na komputerze serwera

Należy podkreślić, że wszystkie wyżej opisane mechanizmy kontroli dostępu do danych działają na płaszczyźnie sieciowej komunikacji-klient serwer i tylko na niej. Faktem jest jednak, że baza danych składowana jest w konkretnym pliku na komputerze pełniącym rolę serwera, do którego określone są pewne zasady dostępu - zarówno w sensie organizacyjno-kompetencyjnym jak i technicznym. Opisane wyżej mechanizmy nie mają jednak nic wspólnego z zabezpieczeniem fizycznego dostępu osób nieuprawnionych do komputera-serwera oraz jego systemu plików. Ten obowiązek spoczywa całkowicie na osobach zarządzających bezpieczeństwem informatycznym firmy lub organizacji.

Istnieje teoretyczna możliwość uzyskania dostępu do bazy danych programu za pomocą zewnętrznych narzędzi. Jest to prosta konsekwencja faktu, że ficzycznie baza danych jest po prostu plikiem w formacie SQLite. Istnieje wiele narzędzi pozwalających przeglądać i edytowąć bazy danych SQLite. Poza bardzo wyjątkowymi przypadkami nie jest to jednak zalecane, zwłaszcza jeśli baza miałaby zostać w ten sposób poddana edycji. Postępowanie takie nie gwarantuje bowiem zachowania intergralności danych i może poważnie zakłócić lub nawet całkowicie zablokować działanie programu. Fizyczna baza danych leży w obszarze implementacji programu rozumianego jako całość i właściwym sposobem dostępu do niej jest użycie interfejsów w postaci Menedżera Serwera oraz aplikacji klienckiej.

Spis treści