Wyzwanie

GABOS Software sp. z o. o. jako wytwórca oprogramowania do obsługi służby zdrowia stanął przed problemem jak wraz ze zwiększającą się liczbą klientów licencjonować produkty oraz zautomatyzować aktualizację systemów na środowiskach naszych klientów.

Oznaczało to przygotowanie mechanizmów działających zarówno po stronie infrastruktury GABOS Software sp. z o. o. jaki u samych klientów. Potrzebne było przygotowanie rozwiązań oprogramowania pozwalającego na łatwe i w czasie rzeczywistym sterowanie licencjami oraz aktualizacjami wersji systemu.

Rozpoczęcie prac

  • Na początku prac przyjęto założenia, że rozwiązanie musi pozwalać na nieograniczone sterowanie nowymi licencjami na każdym etapie rozwoju produktów oraz pozwolić na unikalne identyfikowanie licencji w obrębie klientów.
  • Dodatkowym utrudnieniem było to, że klienci w rozumieniu podpisanych umów posiadają wiele lokalizacji, które mogą różnić się dostępnymi licencjami. Na etapie analiz założyliśmy, że wymagane będzie dodatkowe rozwiązanie pozwalające na sterowanie zarówno ogólnym dostępem do modułów oraz kolejnych ich aktualizacji.
  • Licencje powinny być tak zabezpieczone aby były nie przenaszalne pomiędzy klientami oraz umożliwić licencjonowanie modułów per klient lub per stanowisko.
  • Kolejnym aspektem rozwiązania było przygotowanie platformy pozwalającej na bazie licencji udostępniać klientom dostępne dla nich moduły.Analizując dostępne na rynku rozwiązania pozwalające licencjonować oprogramowanie nie znaleźliśmy żadnego spełniającego postawione przez nas kryteria.

Realizacja

Realizację zadania rozpoczęliśmy od modyfikacji bazy danych systemu medycznego tak aby w kluczowych dla działania systemu tabelach zawrzeć informacje pozwalające jednoznacznie powiązać klienta z licencją. Rozwiązanie to zabezpieczyło nas przed przenoszeniem licencji pomiędzy klientami. Skorzystanie z licencji innego klienta, które mogło pozwolić na nieuprawnione wykorzystanie nadmiarowych licencji na moduły kończyło się zaburzeniem integralności danych klienta.

Aby sprawnie zarządzać licencjami stworzyliśmy system, który pozwala nadawać nam unikalne identyfikatory klientów wraz z licencjami na poszczególne moduły systemu. Licencje same w sobie zawierają informacje o identyfikatorze klienta, rodzaju modułu, dacie ważności licencji, możliwości dostępu do aktualizacji oraz rodzaju licencji (per system lub per stacja). System pozwala w prosty sposób rozbudowywać bazę o nowe licencjonowane moduły oraz modyfikować dostępne dla klienta licencje.

Na bazie tych rozwiązań została stworzona dedykowana aplikacja, która uruchamiana u klienta pozwala łącząc się z systemami GABOS Software sp. z o. o. pobierać informacje o dostępnych licencjach. Każdorazowe uruchomienie systemu klienta przesyła do systemów GABOS Software sp. z o. o. informację o wersji jaką posiada dany klient oraz weryfikuje licencje. W przypadku wyłączenia licencji dla klienta lub dodania nowej aplikacji aktualizuje te informacje bezpośrednio na systemie działającym u klienta i włącza lub wyłącza dostępność modułów.Dodatkowo sam system medyczny na bazie aktualnych informacji o licencjach weryfikuje i waliduje ilość możliwych do uruchomienia w danym czasie licencji danego modułu. Po przekroczeniu dopuszczalnej ilości licencji użytkownik informowany jest o tym a moduł nie jest możliwy do uruchomienia.

Aplikacja aktualizacyjna pobiera dostępne wersje modułów z infrastruktury Software sp. z o. o. i przygotowuje system do aktualizacji systemu u klienta. Klient sam może zadecydować kiedy wykona aktualizację ze względu na to, że czasami wymagane jest zatrzymanie systemu. Sam proces aktualizacji przebiega automatycznie. W trakcie aktualizacje wykonywane są niezbędne zmiany struktur baz danych oraz wczytywane są wymagane słowniki. Efektem aktualizacji jest umieszczenie w strukturze klienta gotowej wersji systemu możliwej do automatycznej dystrybucji.

W ramach rozbudowy systemu opartego o licencje dodaliśmy z czasem możliwość zgłaszania przez klientów problemów i tematów rozwojowych oraz pobieranie i zarządzanie dedykowanymi dla klienta wydrukami.

Z czasem stworzona na potrzeby licencjonowania aplikacja została połączona z systemem ewidencji zgłoszeń klientów oraz systemem nadzorowania wytwarzania oprogramowania.

Dzięki temu powstał kompletny system gdzie możemy zarówno sterować licencjami i aktualizacjami klientów oraz ewidencjonować jego zgłoszenia. Osoby decyzyjne mogą w każdym momencie zweryfikować informacje o kliencie poczynając od licencji poprzez umowy po stan realizacji zgłoszeń klienta. System kilkukrotnie był przedmiotem audytu ISO i zawsze był wysoko oceniany jako narzędzie pozwalające monitorować relacje z klientem.