728 x 90

Liferay – przepis na własny portal (część 1)

Liferay – przepis na własny portal (część 1)

Portale internetowe można tworzyć w oparciu o różne narzędzia. Jednak aby portal mógł charakteryzować się większymi możliwościami (jakimi, dowiesz się dalej), niż średnia rynku, należy sięgnąć po narzędzie odpowiedniego kalibru. Artykuł ten przedstawia zagadnienia dotyczące portali internetowych oraz ich wdrażania na przykładzie portalu Liferay. Porusza zarówno stronę praktyczną pracy z portalem jak i techniczne aspekty działania systemu i jego rozszerzania.

Technologia portalowa

W ciągu kilkunastu ostatnich lat nastąpił dynamiczny rozwój technologii informatycznych, w tym sieci Internet. Komputery stały się dostępne dla dużej liczby użytkowników ze wszystkich grup społecznych. Zmalały również koszty dostępu do Internetu, dzięki czemu medium to szybko dorównało telewizji i radiu, zajmując równorzędne, a może nawet wyższe miejsce w gospodarstwach domowych. Oferując szeroką gamę informacji, którą można w łatwy sposób przetworzyć, technologia internetowa znalazła szybko zastosowanie we wszystkich dziedzinach życia.

Ogromny wpływ na rozwój Internetu miało pojawienie się dynamicznych stron WWW, dzięki którym nastąpiła automatyzacja wielu procesów ich tworzenia. Pojawiły się systemy zarządzania treścią, dające autorom swobodę i zwalniające z wymogu znajomości zasad tworzenia kodu HTML. Następnym krokiem było stworzenie systemów, o których wyświetlanej zawartości mógł decydować również gość przeglądający daną stronę. Wynikło to z ogromu dostępnych informacji i potrzeby ich filtrowania i organizowania. Systemy realizujące te zadania to w najprostszym wydaniu systemy zarządzania treścią (CMS), a w bardziej skomplikowanej wersji: portale internetowe.

Portal to system internetowy – bramka, która udostępnia wiele usług, wśród których mogą być usługi wyszukiwawcze, wiadomości, dostęp do email, grupy dyskusyjne, zakupy online i inne.

Można wyróżnić kilka kategorii portali internetowych.

  • Portale poziome. Są to portale oferujące dostęp do jak najszerszej gamy treści i nastawione są głównie na serwowanie danych. Najczęściej integrują w sobie również pocztę internetową, serwisy wyszukiwawcze itp.
  • Portale pionowe.
    Podobne do portali poziomych, lecz udostępniające informacje zwykle z jednej dziedziny wiedzy. Są to portale specjalistyczne zwane również vortalami.
  • Portale korporacyjne.
    W tej grupie będziemy mieć do czynienia z narzędziami ułatwiającymi pracę w firmie, pozwalającymi na komunikację pomiędzy pracownikami i na przykład prowadzenie szkoleń online. Tutaj właśnie można przydzielić systemy pracy grupowej oparte o interfejs WWW.

W wielu przypadkach proces tworzenia portalu internetowego jest rozpoczynany od zera. Takie rozwiązanie powoduje, że w portalu znajdą się tylko te funkcje, których potrzebujemy. Z drugiej jednak strony dużą część czasu zajmuje stworzenie fragmentów standardowych, czyli systemu logowania, zarządzania użytkownikami itp. Aby zaoszczędzić czas, można skorzystać z gotowych rozwiązań i dostosować je do swoich potrzeb.

Z armatą na komara.

Aby wybrać odpowiednie narzędzia do stworzenia portalu internetowego, należy przede wszystkim rozważyć możliwości, które powinien on posiadać. Jeżeli zależy nam na prostym serwowaniu treści, to dobrym rozwiązaniem okażą się najprostsze CMSy. Jeżeli jednak portal ma wykonywać zadania bardziej skomplikowane, trzeba się rozejrzeć za bardziej zaawansowanym rozwiązaniem.

W dalszej części skupię się na opisaniu możliwości portalu Liferay (https://www.liferay.com), który jest pakietemserwletów napisanych w języku Java, wykorzystujący takie technologie jak Spring, Hibernate czy Ajax.

Główną zaletą tego typu rozwiązania jest to, że taki portal ma stan, w którym się znajduje. Oznacza to, że od momentu uruchomienia po stronie serwera nieprzerwanie działa pewien zestaw obiektów (są zainicjowane, posiadają przydzieloną pamięć i czas procesora, wykonywany jest ich kod) , które mogą w zaawansowany sposób przetwarzać dane. Dodatkowo w przypadku zapytania dotyczącego strony, ten sam zestaw obiektów odpowiada na konkretne żądania i generuje odpowiedź dla przeglądarki klienta.

Ktoś powie: Java – przecież to jest ogromna kobyła, PHP działa znacznie szybciej. I będzie miał rację. Jednak należy zwrócić tu uwagę, że kod PHP w przypadku każdego wywołania jest uruchamiany od początku. Tymczasem stan aplikacji Java jest trwały w kontekście zarówno sesji użytkownika jak i w kontekście całego systemu. To powoduje, że mimo zajmowania większej ilości pamięci i większego zapotrzebowania na moc obliczeniową serwera, portal w takiej technologii może działać dla zaawansowanych zadań znacznie wydajniej.

Dlaczego LIFERAY?

Aby wybrać najbardziej odpowiedni system portalowy, zrobiono testy wielu rozwiązań. O ostatecznym wyborze portalu LIFERAY zadecydowało kilka jego cech.

  • Jest kompletny – to znaczy w paczce z portalem mamy gotowy portal, system zarządzania treścią, kilkadziesiąt portletów o różnej funkcjonalności.
  • Jest zgodny ze standardem JSR-168 i JSR-268. Można zatem korzystać z szeroko dostępnych portletów
  • Posiada bogate wsparcie techniczne – dzięki dużej ilości wdrożeń oraz polityce producenta można w łatwy sposób dotrzeć do bogatej dokumentacji technicznej oraz szybko znaleźć rozwiązania problemów.
  • Dynamicznie się rozwija, dzięki czemu wszelkie niedoskonałości i brak i są szybko uzupełniane.
  • Jest nowoczesny i dopracowany – oparty o najnowsze technologie i rozwiązania i napisany z dbałością o najdrobniejsze szczegóły.
  • Jest Open Source i za darmo. Producent czerpie zyski z zaawansowanej pomocy technicznej. Dzięku temu system szybko się rozwija. Dostępna jest wersja Community Edition, która nie posiada wsparcia, ale jest darmowa. Wersja Enterprise, z pełnym wsparciem, potrafi sporo kosztować.

Powyżej padło słowo portlet. Czym jest portlet?

Portlet jest to niezależny komponent stworzony najczęściej w języku Java do umieszczenia na stronie www. Są to programy wyświetlające jedną funkcjonalność na stronie. Portlet jest umieszczany w kontenerze portletów, który agreguje zawartość prezentowanej strony. Celem portletów jest stworzenie programu, który będzie uniezależniony od kontenera, na którym będzie uruchamiany, co stwarza możliwość jego wielokrotnego użycia. Specyfikacja portletów jest opracowywana przez Java Community Process i nosi numery JSR-168 i JSR-286. Portlety są wspierane przez wszystkich największych dostawców oprogramowania w technologii Java, takich jak IBM, Oracle, BEA Systems, JBoss i Sun Microsystems. Społeczność Apache również stworzyła open-sourcowy kontener JetSpeed. Np. IBM WebSphere Portal jest nakładką (dodatkową instalacją) na IBM Websphere Application Server. (Wikipedia)

Przegląd portletów.

Twórcy systemu dołożyli wszelkich starań, aby dostarczony przez nich portal zawierał wszelkie niezbędne do rozpoczęcia pracy składniki. Na poniższej liście wymienione są tylko niektóre z nich.

  • Web Content – zestaw portletów tworzący zaawansowany system zarządzania treścią (CMS), umożliwiający prostą internacjonalizację stron, kontrolę wersji i rozbudowaną kontrolę praw dostępu do edycji poszczególnych fragmentów stron.
  • Message Board – portlet udostępniający forum dyskusyjne – dzięki możliwości eksportowania wątków do formatu RSS może stanowić doskonałe uzupełnienie Journal.
  • Blogs – prosty portlet umożliwiający tworzenie blogów. W planach jest udostępnienie w nim funkcjonalności podobnej do Message Board.
  • Callendar – każdy użytkownik systmu ma możliwość prowadzenie własnego prostego terminarza wyposażonego w funkcje przypomnienia przez email bądź sms.
  • Email portlet – tworzący interfejs dla serwera poczty (obsługuje IMAP i POP3).
  • Nettools – zestaw portletów i appletów będących narzędziami sieciowymi. Umożliwiają one korzystanie w przeglądarce internetowej między innymi z FTP czy SSH.
  • Document/Image Library – zestaw portletów umożliwiający tworzenie repozytoriów dokumentów (z zachowaniem kontroli wersji i podstawowymi narzędziami pracy grupowej).
  • RSS – portlet umożliwiający dołączenie do stron dostępnych szeroko w internecie kanałów RSS.
  • Shopping – zestaw portletów umożliwiających stworzenie prostego sklepu internetowego.

Wśród tych niewyminionych są jeszcze choćby Chat, Wiki, Finance, Weather, Quick Note i Workflow Engine. Należy tu zwrócićuwagę, że w każdej kolejnej wersji pojawia się zawsze kilka nowych portletów oferujących nowe funkcjonalności.

Na szczególną uwagę zasługuje tutaj rozszerzona o dodatkowe możliwości tworzenia własnej, wewnętrznej firmowej sieci wersja Liferay Social Office. Pozwala na zaawansowaną pracę z treściami i daje możliwość łatwej wewnętrznej komunikacji w firmie.

Struktura portalu

W pojedynczym portalu można stworzyć następujący logiczny podział

  • Organizacje – jednostki organizacyjne portalu. Każda z nich może posiadać jedną lub więcej stron
  • Strony organizacji – konkretne witryny (mogą mieć różne adresy DNS i odrębne szablony wizualne), przypisane do organizacji.
  • Grupy użytkowników  – wirtualne zestawy użytkowników, które mogą być przypisane z odpowiednimi rolami do stron lub organizacji
  • Użytkownicy – mogą być przypisani z odpowiednimi rolami bezpośrednio do stron lub organizacji, lub być członkami grup.
  • Strony użytkowników – konkretne witryny (mogą mieć różne adresy DNS i odrębne szablony wizualne), przypisane do pojedynczych użytkowników.
  • Strony publiczne i prywatne (wydzielone zakresy stron użytkowników lub organizacji, dostępne odpowiednio dla odwiedzających gości i zautoryzowanych, uprawnionych użytkowników).

 

Polityka praw dostępu.

Jedną z najważniejszych, ale też najtrudniejszych do opanowania kwestii jest polityka praw dostępu do elementów systemu. Prawa dostępu można tu zdefiniować w zasadzie do poziomu pojedynczej czynności w konkretnych portletach. Taka szczegółowość powoduje, że nie jest łatwo zdefiniować własne uprawnienia. Całe szczęście domyślnie baza portalu zawiera szereg typowych ról, które można wykorzystać w systemie.

  • Administrator: może robić wszystko.
  • Gość: użytkownicy niezalogowani zawsze posiadają taką rolę
  • Administrator organizacji: mogą robić wszystko w ramach własnej organizacji, ale nie mogą nadać tego uprawnienia nikomu innemu.
  • Właściciel organizacji: mogą robić wszystko w ramach własnej organizacji i mogą nadać te uprawnienia innym użytkownikom.
  • Użytkownik organizacji: wszyscy, którzy należą do danej organizacji
  • Właściciel: jest nim każdy, kto stworzył w systemie jakiś obiekt (np. artykuł)
  • Power User: użytkownik, który może mieć własną stronę w portalu
  • Redaktor: użytkownik mogący edytować treści
  • Administrator strony: mogą robić wszystko w ramach własnej strony, ale nie mogą nikomu nadać takiego uprawnienia
  • Członek strony: użytkownicy przypisani do strony
  • Właściciel strony: mogą robić wszystko w ramach własnej strony oraz mogą nadać takie uprawnienie
  • Użytkownik: użytkownik zalogowany.

Jak zacząć pracę?

Najlepszym rozwiązaniem na początek jest pobranie ze strony producenta paczki z prekonfigurowanym systemem. Po rozpakowaniu pliku zip, uruchamiamy odpowiedni skrypt startowy (startup.bat lub startup.sh).

/portal/liferay-{version}/tomcat-{version}/bin

Paczka zawiera wbudowaną i wypełnioną testową treścią bazę Hypersonic SQL, zatem po uruchomieniu zobaczymy działający portal. Zawiera również odpowiednio skonfigurowany serwer aplikacji (w naszych przykładach będziemy używali wersji z serwerem Apache Tomcat, jednak dostępnych jest ich więcej).

W konsoli będziemy mieli podane informacje o tym, na jakich portach uruchamiany jest serwer aplikacji, oraz będziemy mogli podejrzeć aktualne logi. Gdy zobaczymy napis informujący o sukcesie i czasie uruchamiania (spokojnie, może to potrwać nawet kilka minut), możemy przejść do strony

http://localhost:8080

Tam prosty kreator poprowadzi przez pierwsze kroki konfiguracji portalu.

Co dalej?

Poczekaj na kolejny artykuł! W kolejnych częściach dowiesz się:

  1. Jak skonfigurować portal z bazą PostgreSQL i Serwerem Apache oraz wirtualnymi hostami.
  2. Jak korzystać z narzędzi z sekcji CMS
  3. Jak napisać własny portlet
  4. Jak stworzyć własny temat graficzny dla portalu.
  5. Jak kompilować portal i tworzyć jego rozszerzenia.

Chcesz więcej?

Tematyka portali internetowych jest mocno eksploatowana na nowych studiach podyplomowych na WMiI UMK:  podyplomowe.mat.umk.pl

1 comment

Leave a Comment

Your email address will not be published. Required fields are marked with *

Cancel reply

1 Comment

Inne artykuły

Zapraszamy na WMiI UMK

Studia na Wydziale Matematyki i Informatyki

Nasze szkolenia

iOS11 Design Patterns: szkolenie w Warszawie, 22-24.09.2017


Python – i Ty możesz programować: szkolenie dla nauczycieli, 13-14 września 2017 w Toruniu


Od zera do Apple kodera – szkolenie dla początkujących, 8-10 września 2017 w Warszawie


Xamarin – programowanie wieloplatformowe, 9-10 września 2017 w Toruniu

Ostatnie artykuły

Zapraszamy na UMK