Licencjonowanie
Licencjonowanie wtyczek jest obowiązkowe. Zanim zaczniesz rozwijać wtyczkę, uzyskaj licencję deweloperską, która pozwala uruchomić testową instancję Syrve POS do celów rozwoju, debugowania i testowania. Użytkownicy, którzy chcą zainstalować gotową wtyczkę, muszą zakupić odpowiednią licencję. Takie podejście chroni twórców wtyczek przed nieautoryzowanym użyciem ich produktów oraz pozwala Syrve kontrolować niektóre funkcje.
Plany licencjonowania
Technicznie istnieją dwa plany licencjonowania:
- Płatność za instancję wtyczki: ograniczona jest liczba jednocześnie działających instancji wtyczki.
- Płatność za zewnętrzne połączenie z wtyczką: ograniczona jest liczba urządzeń pracujących jednocześnie.
Płatność za instancję wtyczki
Opcja ta może być używana dla kompletnych i w pełni funkcjonalnych wtyczek o wartości wewnętrznej. Na przykład wtyczka wyświetlająca aktualne pozycje zamówienia na ekranie klienta powinna być licencjonowana według tego planu. Licencje są monitorowane automatycznie przez Syrve POS — wtyczka zostanie załadowana tylko, jeśli licencja jest dostępna. Aby używać wtyczki jednocześnie na kilku terminalach POS, należy wydać licencję na wymaganą liczbę instancji wtyczki. Tak więc, jeśli wtyczka ma działać na 10 terminalach POS, potrzebna jest licencja na 10 kopii wtyczki.
Aby chronić wtyczkę w ramach tego planu, należy:
- Zarejestrować się w Syrve, aby uzyskać licencjonowany identyfikator modułu.
- Oznaczyć klasę wtyczki atrybutem
PluginLicenseModuleIdi podać uzyskany identyfikator rejestracyjny.
Płatność za zewnętrzne połączenie z wtyczką
Ten plan może działać dla wtyczek używanych jako pośrednicy między Syrve POS a urządzeniami zewnętrznymi. W tym przypadku wtyczka kontroluje licencje. Oprócz licencjonowania modułu mogą być nałożone inne dodatkowe ograniczenia, z których głównym jest liczba slotów. Slot modułu to rodzaj komórki, która może być tymczasowo zajęta przez wtyczkę lub podłączone do niej urządzenie. Dwa urządzenia mogą korzystać z jednego slotu na zmianę, ale aby mogły działać jednocześnie, potrzebują dwóch slotów. Załóżmy, że wtyczka umożliwia obsługę terminali mobilnych w sklepie składającym się z dwóch grup sekcji, z których każda ma zainstalowaną jedną instancję wtyczki, a obie grupy mają po 5 terminali mobilnych. Takie ustawienie wymaga licencji na 10 slotów. W tym przypadku liczba aktywnych instancji nie jest brana pod uwagę.
Aby wdrożyć procedurę ochrony, postępuj następująco:
- Zarejestruj się w Syrve, aby uzyskać identyfikatory dla dwóch licencjonowanych modułów:
- Moduł wtyczki, formalność w przeciwieństwie do poprzedniego planu, który jest wymagany tylko do powiązania wtyczki za pomocą atrybutu
PluginLicenseModuleIdużywanego do uruchomienia wtyczki. W praktyce może to być moduł bezpłatny, bez ograniczeń ilościowych. - Moduł zewnętrznego połączenia, który będzie dalej używany.
- Moduł wtyczki, formalność w przeciwieństwie do poprzedniego planu, który jest wymagany tylko do powiązania wtyczki za pomocą atrybutu
- Zapewnij identyfikację urządzenia tak, aby każde urządzenie miało unikalny, stały identyfikator.
- Podczas nawiązywania zewnętrznego połączenia wywołaj metodę
AcquireSlotserwisuILicensingServicei podaj identyfikator modułu uzyskany przy rejestracji oraz identyfikator urządzenia. Zachowaj referencję do obiektu zwróconego przez tę metodę. - Po zakończeniu zewnętrznego połączenia wywołaj metodę
Disposedla obiektu zwróconego przez metodęAcquireSlotw momencie nawiązywania połączenia.
Gdy wywoływana jest metoda AcquireSlot, jeden ze slotów modułu jest oznaczany jako używany przez określone urządzenie. Jeśli nie ma wolnych slotów, metoda generuje wyjątek InsufficientLicenseException, co oznacza, że podłączono maksymalną dozwoloną liczbę urządzeń i kolejne urządzenie w kolejce musi zostać odrzucone.
Należy zauważyć, że slot może zostać zwolniony w dowolnym momencie: działanie wtyczki lub aplikacji Syrve POS może zostać przerwane przez niespodziewane wyłączenie stanowiska roboczego, awarię sieci (obsługa licencji może wymagać komunikacji sieciowej) itd. Aby uniknąć „wycieku” slotów, gdy sloty są zajęte, ale nie zwolnione, ważne jest zapewnienie jednolitej identyfikacji urządzeń. Jeśli na przykład urządzenie połączyło się z wtyczką i użyło slotu, to w przypadku niespodziewanego restartu urządzenie to odzyska swój slot pod warunkiem, że ma ten sam identyfikator. Jeśli ma nowy identyfikator, urządzenie będzie potrzebowało kolejnego slotu, a pierwszy slot pozostanie na stałe zajęty.
Rejestracja
Deweloper musi zarejestrować swoją wtyczkę jako licencjonowany moduł w Syrve, a użytkownik musi uzyskać licencję na ten moduł. Przy rejestracji wtyczce przypisywany jest identyfikator, liczba całkowita, która jest w rzeczywistości identyfikatorem modułu. Może to być nowy moduł stworzony specjalnie dla tej wtyczki lub moduł wielofunkcyjny używany do drobnych indywidualnych modyfikacji. Deweloper łączy wtyczkę z modułem, podając jego identyfikator za pomocą atrybutu PluginLicenseModuleId. Użytkownik musi uzyskać licencję obejmującą odpowiedni moduł.
Aby się zarejestrować, uzyskać licencję deweloperską, identyfikator licencjonowanego modułu oraz podpisać umowę, skontaktuj się ze swoim dostawcą Syrve.