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