Jakiś czas temu pisałem o procedurze instalacji silnika bazy danych nowego Bibliotekarza. Dziś natomiast przedstawię ogólny obraz składników systemu. W przeciwieństwie do Bibliotekarz.NET 1.6, który był monolitem – pojedyńczą aplikacją, nowa wersja to zbiór aplikacji, które współdziałając ze sobą tworzą coś co nazywam "platformą".
W skład systemu / platformy wchodzą:
- serwer bazy danych
- aplikacja konwertująca bazę 1.6 do wersji Web Platform
- aplikacja web'owa Bibliotekarza
- serwer aplikacyjny
- serwer poczty
- usługi harmonogramu
Na szczęscie (a może nieszczęście), nie wszystkie komponenty są obowiązkowe oraz nie wszystkie komponenty jeszcze istnieją.
Serwer bazy danych
Funkcją serwera bazy danych jest dostarczenie mechanizmów umożliwiających zapisanie księgozbioru na dysku komputera w taki sposób aby dane te były bezpieczne, a dostęp do nich był szybki i możliwy dla wielu użytkowników jednocześnie. W aktualnej wersji używany jest Microsoft SQL Server Express ale sama technologia nowego Bibliotekarza nie wyklucza możliwości stosowania innych silników baz danych. Silnik autorstwa Microsoft wymaga systemu operacyjnego Windows. Serwer baz danych powinien być instalowany na komputerze, który nie jest dostępny z Internetu (w celach zwiększenia bezpieczeństwa).
Aplikacja konwertująca bazę 1.6 do wersji Web Platform
Jest to prosta aplikacja konsolowa (czyli taka, której nie da się obsługiwać myszką :), służąca do konwersji bazy danych używanej przez program Bibliotekarz.NET 1.6 (baza Microsoft Access) do bazy danych Microsoft SQL Server. Osoby, które dopiero zaczynają pracę z Bibliotekarzem, nie muszą korzystać z konwertera. Osoby chcące przenieść swoje dane do nowego systemu, będą musiały wykonać jednorazowy proces konwersji. Konwerter wymaga systemu Windows oraz zainstalowanego .NET Framework 4.6. Na uwagę zasługuje także fakt, że konwersja wsteczna nie jest i nie będzie możliwa. W niedalekiej przyszłości pojawi się artykuł opisujący proces konwersji.
Aplikacja web'owa Bibliotekarza
Jest to główne źródło logiki aplikacji, nazywane potocznie aplikacją WWW. To właśnie ten moduł jest odpowiedzialny za serwowanie stron internetowych oraz komunikację z bazą danych. Aplikacja może ale nie musi wymagać systemu operacyjnego Windows. Aplikacja może działać jako program konsolowy (wymaga aby użytkownik systemu był stale zalogowany do komputera), jako usługa systemowa (może działać bez zalogowanego użytkownika) lub jako aplikacja uruchamiana przez serwer aplikacyjny. W przyszłości będą mogły powstawać wersje działające na systemach rodziny Linux. Aplikacja korzystając z tehnologi .NET Core może działać bez serwera IIS (serwera aplikacyjnego) lub z nim. W przyszłości pojawi się seria artykułów dotyczących konfiguracji oraz dostosowywania aplikacji.
Serwer aplikacyjny
W przypadku aplikacji w technologii .NET Core, serwer aplikacyjny przestaje być obligatoryjny. W prostych instalacjach Bibliotekarza (gdzie system będzie używany na jednym komputerze lub w sieci lokalnej) użycie serwera aplikacyjnego jest całkowicie zbędne. W przypadku instalacji widocznej ze świata, w celu zapewnienia bezpieczeństwa aplikacji oraz serwerowi należy skorzystać z serwera aplikacyjnego jakim jest dla przykładu IIS. Aplikacja Web jak i serwer instalacyjny muszą być na tym samym komputerze (w przeciwieństwie do serwera baz danych, którego zaleca się umiejscawiać na osobnej maszynie). IIS jest elementem systemu Windows (przeważnie należy do ręcznie zainstalować, zależy to od wersji posiadanego systemu Windows). O zastosowania IISa oraz jego konfiguracji powstanie osobny wpis na blogu.
Serwer poczty
Kolejnym elementem, z którego nowy Bibliotekarz.NET może korzystać to serwer poczy email. Jeżeli chcemy mieć możliwość wysyłania powiadomień do użytkowników, to taki serwer jest wymagany. Nie jest on częścią aplikacji ani systemu operacyjnego. Przeważnie dostęp do serwera poczty wymaga wykupienia niedrogiej usługi u odpowiedniego dostawcy.
Usługi harmonogramu
Jest to ostatni element platformy, który jeszcze nie powstał. Jego głównym celem jest umożliwie wykonywania pewnych operacji w sposób cykliczny – np wysyłanie powiadomień o zaległościach, tworzenie kopii bezpeiczeństw bazy danych, itp. Jest to również komponent opcjonalny.