Ta strona korzysta z plików cookie, abyśmy mogli zapewnić jak najlepszą obsługę. Informacje o plikach cookie są przechowywane w przeglądarce i wykonują takie funkcje, jak rozpoznawanie cię po powrocie do naszej witryny i pomaganie naszemu zespołowi w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.
Portal Pracowniczy i jego architektura
Portal Pracowniczy wykorzystuje do działania Liferay Portal. Jest to system do zarządzania treścią i wykorzystywany jest przez duże korporacje. Na rynku istnieje już od 10 lat.
Portal Liferay umożliwia w łatwy sposób zarządzanie treścią, użytkownikami, rolami oraz grupami. Daje również możliwość tworzenia for dyskusyjnych oraz wielu instancji portalu na jednym serwerze, a także przeglądania obecnego obciążenia serwera oraz integrowania z serwerem pocztowym SMTP.
W celu stworzenia jak najbardziej wydajnej platformy Portal Pracowniczy jest podzielony na warstwy.
Frontend (widok)
Portal można przeglądać za pomocą przeglądarki internetowej na komputerze, jak i też na urządzeniu przenośnym. Za generowanie widoku odpowiadają głównie:
- JSF (JavaServer Faces) – jest to framework (szkielet do budowy aplikacji) w języku Java, który ułatwia tworzenie interfejsów aplikacji internetowych. Jest to ustandaryzowana technologia określona dokumentem Java Community Process. W łatwy sposób pozwala wykorzystywać zdarzenia Ajaxowe. Technologia ta w dużym stopniu podwyższa poziom bezpieczeństwa ponieważ sama w sobie posiada walidację pól i chroni przed atakiem na serwis WWW (cross site scripting).
- PrimeFaces – jest to również framework webowy napisany w Javie. Stanowi rozszerzenie dla JavaServer Faces. Dostarcza gotowe komponenty np. generowanie pdfów, generowanie tabel z paginacją i wiele innych.
Web Services API
Dane dostarczone przez niższe warstwy można również udostępniać innym aplikacjom wykorzystując Web Services. Dane na zewnątrz udostępniane są przez protokoły:
- SOAP (Simple Object Access Protokol) – jest to protokół wykorzystujący XMLa. Dane w tym przypadku są wysyłane przez HTTP lub przez RPC.
Protokół SOAP składa się z:
- koperty – opisuje co znajduje się w wiadomości i jak należy ją przetworzyć;
- z reguł potrzebnych do rozszyfrowania danych;
- reguł dotyczących wywołania zdalnych metod;
- JSON (JavaScript Object Notation) – jest to format danych, który wykorzystuje obiekty w formacie JSON RPC. Jest to plik tekstowy bazującym na formacie zaczerpniętym z JavaScriptu. Jest to lekki i szybki format, wadą jest brak walidacji danych jak w przypadku SOAP na poziomie wysyłanej wiadomości.
Warstwa Usług
Portal jest skoncentrowany na usługi SOA (Service-Oriented Architecture, SOA). Każdy portlet napisany w Liferay ma możliwość udostępnienia usługi wewnątrz aplikacji, jak i też na zewnątrz, po za aplikację. SOA charakteryzuje się tym, że każdy element może działać niezależnie od innych i posiada zdefiniowany interfejs. Usługi mają za zadanie ukryć szczegóły implementacyjne.
Niezależność SOA od technologii pozwala na szeroki wybór technologii hostowania logiki aplikacji. Dzięki temu można w łatwy sposób przejść z jednej technologii na drugą pozostawiając poprzednią logikę i łącząc je w usługach.
Przechowywanie danych
Portal może współpracować z bazami relacyjnymi m.in.:
- PostgreSQL – jest to darmowa baza danych oparta na licencji
- PostgreSQL. Twórcy bazy danych położyli silny nacisk na zgodność z językiem SQL dzięki czemu jest zgodny z standardem SQL:2011. Silnik bazy danych działa na większości platformach m.in. x86, x86-64, Windows 2000 SP4 i późniejsze, Linux, OpenBSD, FreeBSD
- Oracle – jest to komercyjna baza danych wykorzystywana głównie w bardzo dużych projektach. Baza posiada własny język tworzenia procedur składowanych. Do tworzenia procedur składowanych można również wykorzystać Javę.
- MySQL – jest to darmowa relacyjna baza danych. W 2008 roku baza danych została wykupiona przez firmę Oracle. MySQL ma zdecydowanie mniejszą funkcjonalność niż PostgreSQL.
Microsoft SQL Server – jest to relacyjna baza danych stworzona przez firmę Microsoft.
Portal w celu zapewnienia przenoszalności posiada wbudowany ORM Hibernate. Jest to otwarte oprogramowanie rozwijane przez społeczność. W projekt ten zaangażowane są również firmy np. Red Hat, Jboss. Hibernate charakteryzuje się wysoką wydajnością. Hibernet obsługuje leniwe inicjalizacje, strategie pobierania, blokowania z wersjonowaniem i znakowaniem czasowym, cachowania. Hibernate jest doskonałym narzędziem wspomagającym pracę programisty ponieważ pozwala zredukować ilość pisanego kodu.
Hibernate charakteryzuje się skalowalnością i został zaprojektowany do pracy w klastrze serwerów.
Większość aplikacji webowych umozliwia przesyłanie plików użytkowników. Taką samą funkcjonalność udostępnia Liferay i w tym celu pliki mogą być składowane:
- lokalnie w systemie plików,
- w bazie danych,
- S3 w chmurze Amazon Simple Storage,
- w Apache Hadoop – zestaw algorytmów napisanych w Javie mających na celu rozproszone przechowywanie i rozproszonego przetwarzania bardzo dużych danych. Hadoop został zaprojektowany z myślą że w przypadku awarii sprzętu dane są zawsze dostępne i w tym celu dane są przechowywane na minimum trzech węzłach.
Indeksowanie
W celu łatwego przeszukiwania danych w Liferayu można wykorzystać wyszukiwarkę z otwratym oprogramowaniem na silniku Apache Solr/Lucene. Wyszukiwarka cechuje się wyszukiwaniem pełnotekstowym, obsługuje m.in. dokumenty Word i PDF. Pozwala również na rozmywanie fraz tj. poszukiwanie słów w różnych odmianach lub w przypadku gdy użytkownik pominie jedną literę w frazie wyszukiwania to algorytmy wyszukiwania są w stanie ją odnaleźć.
Podsumowanie
Po zapoznaniu się z technologiami wykorzystywanymi w Portalu Pracowniczym można być pewnym, że cykl życia aplikacji jest długi i nie zniknie z dnia na dzień. Każda technologia wykorzystana do zbudowania Portalu przoduje w swojej dziedzinie. Firmy opiekujące się tymi technologiami są również otwarte na głosy społeczności, która je wykorzystuje.
Źródło:
1. SOA. Koncepcje, technologie i projektowanie
2. http://www.liferay.com/web/jorge.ferrer/blog/-/blogs/liferay-s-architecture-the-beginning-of-a-blog-series
3. http://hibernate.org/
Artykuł dotyczy: PORTAL PRACOWNICZY, PORTAL LIFERAY, JAVA, ABAP