Back to top

Service

Technologie – PHP, SOAP, MySQL

Elementy przedstawione na schemacie #1, wchodzące w skład tej części projektu to: Service 1, DB, ETL, Warehause i Service 2.

Na schemacie #2 "Service 1" został przedstawiony jako "Model" - serwis ten realizuje pełne wsparcie procesów Worker.

Kod tej części projektu Rummager napisany został w PHP przy wykorzystaniu zewnętrznej biblioteki phpwsdl implementującej protokół SOAP oraz automatyczne generowanie opisów WSDL serwisów 1 i 2. Diagram UML zdefiniowanych klas przedstawiony został na schemacie #3 - szczegóły implementacji można podejrzeć bezpośrednio w kodzie: https://github.com/lbacik/rummager-service.

Baza

Baza danych została opisana w osobnym artykule, dostępnym tutaj.

Service 1

Serwis realizujący wywołania Workerów. Uwaga – aktualnie serwis nie posiada żadnego mechanizmu autoryzacji! - zobacz niżej - „autoryzacja”.

ETL, Analysis

Procesy ETL są realizowane przez procedury bazy danych wywoływane zewnętrznie, o zaplanowanej porze, np z poziomu usługi cron systemu operacyjnego – dane są pobierane z tabel bazy opisanej powyżej, agregowane i ładowane do tabel z prefiksem: dw_f_ w tej samej bazie. Tak przygotowane dane są wykorzystywane przy generowaniu raportów.

Service 2

Serwis umożliwia dostęp do statystyk/raportów systemu (generowanych min. przez procesy ETL).

Autoryzacja

Aktualnie Serwisy 1 i 2 nie posiadają mechanizmów autoryzacji, dlatego pliki implementujące te serwisy umieszczone zostały w osobnych katalogach w źródłach projektu - ma to ułatwić konfigurowanie różnych adresów dostępowych do serwisów, co powinno pozwolić na "ukryje" adresu "Service 1" przed użytkownikami posiadającymi adres (dostęp) do "Service 2" - rozwiązanie dość kiepskie, ale działa :) Po zaimplementowaniu autoryzacji pliki implementujące obydwie usługi zostaną przeniesione do jednego katalogu i bez przeszkód będą mogły być udostępniane pod jednym adresem.