--- marp: true theme: default paginate: true size: 16:9 style: | section { font-size: 24px; } section h1 { color: #1a5276; } section h2 { color: #2980b9; } section table { font-size: 20px; } section small { font-size: 18px; } --- # Wykład 1 ## Wprowadzenie do systemów zarządzania treścią **Systemy Zarządzania Treścią** Politechnika Poznańska --- # Część 1 ## Pojęcia podstawowe --- ## Co to jest "zarządzanie treścią"? Termin **zarządzanie treścią** (ang. *content management*) to komercyjny buzzword związany z ekspansją zastosowań Internetu (WWW) oraz rozwojem narzędzi służących do budowy aplikacji internetowych. Współcześnie istnieją **dziesiątki, a nawet setki** systemów określanych jako *Content Management Systems* (CMS). Sytuacja na rynku charakteryzuje się kilkoma istotnymi cechami: - **Nie istnieje wyróżnik** określający, co CMS musi zawierać — poszczególne systemy różnią się zarówno oferowaną funkcjonalnością, jak i ceną (od 0 zł do kilku milionów złotych), - **Duży chaos** w zakresie terminologii, standardów, technologii i biznesowej retoryki związanej z systemami CMS oraz ich zastosowaniami, - Brak jednej, powszechnie akceptowanej definicji tego, czym system zarządzania treścią w istocie jest. > Brak jednoznacznego wyróżnika oznacza, że pod pojęciem CMS kryją się systemy o skrajnie różnej architekturze, przeznaczeniu i stopniu złożoności. --- ## Co to jest "treść"? Termin **treść** (*content*) nie ma jednej definicji. W kontekście systemów CMS wyróżnia się kilka zasadniczo różnych rodzajów treści: ### 1. Treść widoczna po stronie klienta Treść ukazująca się na ekranie przeglądarki: - tekst, grafika, tło, - dźwięk, animacja, wideo, - przyciski, pola do wypełnienia, menu do wybrania, - skrypty wykonywane na ekranie. ### 2. Składowe treści po stronie serwera Odpowiedniki, elementy składowe lub generatory treści przechowywane po stronie serwera (np. w bazie danych). ### 3. Procesy i reguły generowania treści Procesy, programy, reguły, metody i algorytmy pozwalające na generowanie treści z określonych źródeł — np. z bazy danych serwera lub z innych stron Web. --- ## Co to jest "treść"? (cd.) ### 4. Metadane i opisy treści Różne formy opisu treści lub metadanych dotyczących treści: - formaty i schematy, - opisy autorów treści, - daty utworzenia i daty obowiązywania, - własności. ### 5. Formy kontroli i organizacji Różne formy kontroli i organizacji treści oraz usprawnienia dostępu: - katalogi, - klasyfikacje, - indeksy, - słowniki. > Pojęcie treści obejmuje więc nie tylko to, co użytkownik widzi, ale także całą infrastrukturę: dane, metadane, procesy i struktury organizacyjne stojące za publikacją. --- ## Treść vs. dane, informacja, wiedza Podanie ścisłych definicji różnicujących terminy **dane**, **informacja**, **wiedza** i **treść** jest trudne — często są używane jako synonimy. Niekiedy odzwierciedlają jednak różne podejścia: | Termin | Kontekst użycia | |---|---| | **Dane** | Surowy materiał, np. rekordy w bazie danych | | **Informacja** | Dane osadzone w kontekście, mające znaczenie | | **Wiedza** | Informacja powiązana z procesami decyzyjnymi w ludzkim umyśle | | **Treść** | Informacja, dane lub wiedza przekazywana końcowemu użytkownikowi | ### Nuanse terminologiczne - Dla środowisk AI termin **"wiedza"** lepiej pasuje do pojęcia **"inteligencji"**, - Niekiedy terminy odzwierciedlają specyfikę celu przetwarzania: mówimy o **"wydobywaniu wiedzy"**, a nie **"wydobywaniu danych"**, o **"bazie wiedzy"**, a nie **"bazie danych"**, - W kontekście decyzyjnym przyjmuje się hierarchię: **dane muszą zamienić się w informację, ta zaś w wiedzę**, aby mogła zostać podjęta decyzja. ### Definicja treści w kontekście CMS Treść jest rozumiana jako informacja, dane lub wiedza: - **przekazywana do końcowego użytkownika** przeglądarki, - **zawarta w repozytorium** serwera aplikacji internetowej. --- ## Formaty i standardy treści W zakresie reprezentacji, przechowywania, przetwarzania i udostępniania treści obowiązują **setki formatów i standardów**. ### Główne kategorie formatów | Kategoria | Przykłady | |---|---| | **Języki znaczników** | HTML, XML, XHTML | | **Technologie dynamiczne** | JavaScript, aplety, ASP, JSP | | **Technologie XML** | DTD, RDF, XSL, XSLT, XQL, SOAP | | **Formaty tekstowe** | .txt, .doc, .rtf, .pdf, .ppt | | **Formaty graficzne** | wektorowe i pikselowe (dziesiątki formatów) | | **Formaty multimediów** | animacje, audio, wideo | | **Modele baz danych** | relacyjne, obiektowe, XML | | **Języki programowania** | Java, PHP, Perl, Python, SQL, ODBC, JDBC | ### Klasyczny standard — HTML Klasycznym standardem jest **HTML**, z licznymi rozszerzeniami w kierunku dynamizacji stron (JavaScript, aplety, ASP, JSP). Najnowszym buzzwordem jest **XML** oraz technologie z nim związane. --- ## Twórczy chaos w dziedzinie CMS Nowość technologiczna i rynkowa oraz możliwość zarobienia wielkich pieniędzy rodzi na początku **chaos**. ### Źródła chaosu 1. **Eksplozja liczby formatów** — jeżeli dla danego typu treści popularne są formaty A, B, C, to potrzebne są odwzorowania A → B, B → A, A → C itd. Liczba odwzorowań rośnie **w kwadracie** do liczby formatów. 2. **Brak standardów** — niekompatybilne rozwiązania implikują oprogramowanie pośredniczące (*middleware*), bazujące najczęściej na nowym formacie (por. CORBA, również XML). 3. **Syndrom "dwóch programistów w garażu"** — sukces rozwiązania dla mikro-skali powoduje rozszerzanie *bottom-up* tego rozwiązania na makro-skalę (por. HTML, XML, PHP). Skutek: 1000-stronicowe podręczniki "prostego" języka XML. > Twórczy chaos występował już w innych dziedzinach (np. w językach programowania) — zwykle po pewnym czasie ustępuje. --- # Część 2 ## Architektura i komponenty CMS --- ## Techniczna architektura CMS Typowa architektura systemu zarządzania treścią składa się z trzech głównych warstw: ```mermaid flowchart LR A["🖥️ Klienci\n(przeglądarki WWW)"] --> B["⚙️ Serwer Web\n(generacja dynamicznych stron HTML,\nzlecenia do bazy danych)"] B --> C["🗄️ Serwer bazy danych\n(zapytania SQL i ich wyniki)"] D["🏢 Zaplecze (back office)\n(wewnętrzne procesy obsługi\naplikacji internetowej)"] --> B D --> C ``` ![width:90%](../img/cms-architektura.svg) ### Opis warstw | Warstwa | Rola | |---|---| | **Klienci** | Użytkownicy końcowi korzystający z aplikacji przez przeglądarkę (HTTP) | | **Serwer Web** | Generacja dynamicznych stron HTML dla klienta, kierowanie zleceń do bazy danych | | **Serwer bazy danych** | Przetwarzanie zapytań SQL i zwracanie wyników | | **Zaplecze (back office)** | Wewnętrzne procesy podtrzymywania i obsługi aplikacji internetowej — pracownicy zarządzający treścią | --- ## Wydajność i skalowalność CMS Wydajność i skalowalność to kluczowe **niefunkcjonalne wymagania** systemów CMS. ### Poziomy cache | Poziom | Opis | Narzędzia | |---|---|---| | **Page cache** | Zapamiętanie gotowej strony HTML | Varnish, Redis | | **Object cache** | Zapamiętanie wyników zapytań do bazy | Redis, Memcached | | **Opcode cache** | Skompilowany kod PHP | OPcache | | **CDN cache** | Treść na serwerach brzegowych | Cloudflare, Akamai | | **Browser cache** | Zasoby w przeglądarce | Cache-Control | ### CDN (Content Delivery Network) **CDN** to sieć serwerów rozproszonych geograficznie, które **serwują treść z najbliższego** użytkownikowi węzła: - skrócenie czasu odpowiedzi, - odciążenie serwera głównego, - ochrona przed DDoS. ### Skalowalność | Typ | Opis | |---|---| | **Wertykalna** | Zwiększanie mocy jednego serwera | | **Horyzontalna** | Dodawanie kolejnych serwerów | ### Optymalizacja wydajności CMS - **statyczne generowanie (SSG)** — strony HTML budowane przy buildzie, - **minifikacja** CSS/JS, - **optymalizacja obrazów** (WebP, kompresja), - **lazy loading** — ładowanie obrazów na żądanie. > Wydajność to nie tylko komfort — to także **czynnik SEO** (Google premiuje szybkie strony) i **konwersji** (wolne strony odstraszają użytkowników). --- ## Tematy związane z zarządzaniem treścią Zarządzanie treścią styka się z szerokim spektrum zagadnień informatycznych: ```mermaid mindmap root((Zarządzanie treścią)) Zarządzanie treścią przez Internet Personalizacja Technologie agentowe Zarządzanie profilami i lokalizacjami Metamodelowanie wiedzy Eksploracja danych Filtrowanie Mobilne i rozproszone przetwarzanie Maszynowe uczenie się Zarządzanie wiedzą Handel elektroniczny Rozproszona sztuczna inteligencja Odkrywanie wiedzy Techniki markup Budowa profili Zarządzanie transakcjami Mobilny handel E-serwisy Semantyczny Web i ontologie Inteligentna integracja informacji Mobilni agenci Klasyfikacja Zarządzanie wierzeniami ``` > CMS to dziedzina interdyscyplinarna — łączy zagadnienia baz danych, sztucznej inteligencji, handlu elektronicznego i systemów rozproszonych. --- ## Główne komponenty CMS System zarządzania treścią składa się z **sześciu głównych komponentów**: ```mermaid flowchart TD A["📥 SYSTEM TWORZENIA I GROMADZENIA\nProcesy pozyskiwania i rozkładania\npierwotnej informacji na składowe treści"] B["⚙️ SYSTEM ZARZĄDZANIA\nAutomatyzacja manipulacji treścią\nprzez użytkowników biznesowych"] C["📤 SYSTEM PUBLIKOWANIA\nZautomatyzowany proces wyciągania\ntreści z repozytorium do publikacji"] D["🛠️ SYSTEM ADMINISTRACYJNY\nUtrzymywanie parametrów\ni struktury systemu"] E["🔄 SYSTEM STEROWANIA PROCESAMI PRACY\nKoordynacja i planowanie\nharmonogramów oraz zadań"] F["🗄️ REPOZYTORIUM TREŚCI\nTreść, dane biznesowe, metainformacje"] ``` ![width:90%](../img/cms-komponenty.svg) ### Przegląd komponentów | Komponent | Odpowiedzialność | |---|---| | **System tworzenia i gromadzenia** | Pozyskiwanie i rozkładanie pierwotnej informacji na składowe treści | | **System zarządzania** | Automatyzacja manipulacji treścią przez użytkowników biznesowych | | **System publikowania** | Wyciąganie treści i zasobów z repozytorium do publikacji | | **System administracyjny** | Podtrzymywanie eksploatacji, ustawianie parametrów i struktury | | **System sterowania procesami pracy** | Koordynacja, planowanie i wprowadzanie harmonogramów oraz zadań | | **Repozytorium treści** | Przechowywanie treści, danych biznesowych i metainformacji | --- ## System tworzenia i gromadzenia treści Składa się z **narzędzi, procedur oraz personelu** zatrudnionego w celu tworzenia i zbierania treści oraz wykonywania czynności redakcyjnych. ### Zadania systemu | Zadanie | Opis | |---|---| | **Wytwarzanie treści "od zera"** | Autorzy projektują, tworzą i poprawiają treść w wybranych narzędziach | | **Pozyskiwanie** | Dostosowywanie i redakcja treści z zewnętrznych źródeł | | **Agregacja** | Formatowanie stylistyki informacji i ustalanie jej przeznaczenia: użyteczne składowe, metadane | | **Konwersja** | Zmiana formatu i struktury informacji tak, aby spełniała wymagane standardy; oddzielanie niepotrzebnych informacji (np. nagłówków, stopek); odwzorowanie na wymagany standard (np. XML) | | **Usługi** | Część logiki aplikacji i usług biznesowych wspomagających gromadzenie informacji i jej transformację | > Usługi wspierają tworzenie, aktualizację i usuwanie składowych treści. --- ## System zarządzania Odpowiada za **gromadzenie, przechowywanie, udostępnianie, pielęgnację i administrację** składowych treści i innych zasobów informacji. ### Kluczowe cechy - Oparty na **bazie danych treści, metainformacji oraz danych biznesowych**, - Obejmuje **procesy i narzędzia** umożliwiające dostęp, aktualizację i administrowanie zgromadzoną informacją, - Odpowiedzialny za **bezpieczeństwo i autoryzację dostępu** do treści, - Odpowiedzialny za **połączenia z innymi systemami**. > System zarządzania jest sercem CMS — to on zapewnia integralność danych, kontrolę dostępu i integrację z otoczeniem. --- ## System sterowania procesami pracy Realizuje **koordynację, planowanie i wprowadzanie w życie harmonogramów oraz zadań pracowników**. ### Charakterystyka - Obejmuje narzędzia, procedury i ludzi zatrudnionych w celu zapewnienia **skutecznych procesów** zbierania, przechowywania i publikacji treści, - Ma wpływ na **system gromadzenia treści, system zarządzania oraz system publikowania**, - Każdy krok procesu — od wytwarzania po ostateczną publikację — powinien być możliwy do **zamodelowania i śledzenia** w obrębie tego samego systemu. ### Aspekty procesów pracy Procesy pracy obejmują: **pracowników, zadania, czynności, standardowe procesy, narzędzia, czas, przepływ danych i dokumentów**. > Procesy pracy (workflow) są szczegółowo omówione w **wykładach 9–10**. --- ## System publikowania Odpowiada za **wyciąganie składowych treści i innych zasobów z repozytorium, formatowanie ich i automatyczne tworzenie z nich publikacji**. ### Składniki systemu System publikowania składa się z narzędzi, procedur i ludzi pobierających treść z repozytorium i tworzących publikacje. Powinien zawierać: | Składnik | Rola | |---|---| | **Szablony publikacji** | Ujednolicony sposób prezentacji treści | | **Kompletny język programowania** | Możliwość implementacji logiki publikacji | | **Zależności pomiędzy treścią** | Powiązania i relacje między elementami | | **Zorganizowany system plików i katalogów** | Struktura przechowywania publikacji | | **Mechanizm ostatecznej publikacji** | Wdrożenie treści do środowiska produkcyjnego | --- ## Repozytorium treści Repozytorium to centralny magazyn przechowujący: - **treść**, - **dane biznesowe**, - **metainformacje** (metadane). ### Znaczenie repozytorium Repozytorium stanowi fundament, na którym opierają się wszystkie pozostałe komponenty. W dojrzałych systemach przyjmuje ono formę **obiektowego repozytorium** zdolnego do przechowywania treści dowolnego typu — w szczególności **repozytoriów XML**. > Rozdzielenie treści (repozytorium) od jej prezentacji (system publikowania) i logiki (system zarządzania) jest kluczową cechą architektury CMS. --- # Część 3 ## Procesy zarządzania treścią --- ## Procesy zarządzania treścią Procesy zarządzania treścią obejmują pełny cykl życia treści — od projektowania po archiwizację. ### Zakres procesów | Grupa procesów | Przykłady | |---|---| | **Wytwórcze** | Projektowanie, tworzenie, pozyskiwanie, recenzowanie, zatwierdzanie | | **Przetwórcze** | Konwersja, składowanie, testowanie, wdrożenie | | **Utrzymaniowe** | Pielęgnowanie, monitorowanie, uaktualnianie, wycofywanie, archiwizowanie | | **Analityczne** | Komponenty raportujące i analityczne dla usprawniania procesów | ### Wymagania organizacyjne - **Jasne zdefiniowanie ról personelu** oraz udokumentowanych procesów pracy dla wszystkich form treści, - Procesy **mogą, lecz nie muszą** być wspomagane komputerowo: - dla małych zastosowań wspomaganie jest często niepotrzebne, - dla dużych zastosowań wspomaganie jest zazwyczaj niezbędne. --- ## Scenariusze i formy aplikacji zarządzania treścią Systemy CMS znajdują zastosowanie w wielu scenariuszach biznesowych: | Scenariusz | Opis | |---|---| | **Portale informacyjne** | Internetowe gazety, wortale (wiadomości branżowe) | | **Wyszukiwarki WWW** | Yahoo, Altavista, Google | | **Wspomaganie techniczne produktów** | Dokumentacja i pomoc techniczna firmy | | **B2C (e-handel)** | Sklepy internetowe | | **Portale wymiany informacji** | Portale edukacyjne, branżowe | | **B2B (e-biznes)** | Portale biznesowe: transakcje, sprzedaż hurtowa | | **B2E** | Wewnętrzne systemy intranetowe do obsługi procesów biznesowych | | **C2C** | Ogłoszenia drobne, aukcje | | **Portale korporacyjne** | Organizacja rozproszonych zasobów i usług informacyjnych organizacji | | **Praca grupowa** | Wirtualne biura projektowe rozproszonych zespołów | --- ## Funkcje wspólne dla wielu form zarządzania treścią (1) Niezależnie od scenariusza, systemy CMS realizują zbiór wspólnych funkcji: ### Projektowanie i tworzenie - **Projektowanie** — zasadniczo nie odbiega od metod projektowania baz danych (diagramy encja-związek, UML), - **Tworzenie** — rola autorów tekstu, fotografów, grafików, producentów wideo i dźwięku, specjalistów od reklamy, prawników — wszystkich, którzy produkują oryginalny materiał dla użytkownika WWW. ### Pozyskiwanie i klasyfikacja - **Pozyskiwanie lub adoptowanie** treści z istniejących źródeł, - **Klasyfikacja i indeksowanie** — treść musi mieć przypisane: - cechy formalne (data utworzenia, autor), - cechy klasyfikacji przedmiotowej (kategoria przedmiotowa, słowa kluczowe). > Klasyfikacja jest często określana jako **wiązanie treści i metadanych**. --- ## Funkcje wspólne (2) ### Recenzje, zatwierdzenie i konwersja - **Recenzje i przeglądy** — wymagane dla wszystkich rodzajów udostępnianej treści, - **Zatwierdzenie** — formalne zatwierdzenie publikowanej treści jest niezbędnym składnikiem prawnej odpowiedzialności za treść, - **Konwersja** — tekst, grafika, dźwięk i inne formy treści muszą być przystosowane do formatu obowiązującego w danym CMS (np. HTML lub XML). ### Przechowywanie i zarządzanie konfiguracją - **Przechowywanie** — treść jest zwykle przechowywana w plikach lub w bazie danych, - **Zarządzanie konfiguracją (SCM)** — dla większych zastosowań treść musi podlegać: - zarządzaniu wersjami, - śledzeniu i kontrolowaniu zmian. --- ## Funkcje wspólne (3) ### Testowanie i dojrzewanie **Testowanie** może dotyczyć różnych aspektów: - błędnych lub nieaktualnych linków, - stron wolno ładujących się, - błędów w skryptach lub apletach (np. pętli), - błędów w komunikacji od klienta do serwera. **Dojrzewanie** — rodzaj testowania polegający na weryfikacji kompletności i spójności większego zespołu treści (np. informacji o różnych aspektach nowej usługi). ### Wdrożenie i pielęgnacja - **Wdrożenie** — fizyczne aspekty udostępnienia treści użytkownikom, w tym replikacje treści na różnych serwerach, - **Pielęgnacja, aktualizacja, zmiany** — obserwowanie udostępnianej treści i reakcja na sygnały i potrzeby zmian. --- ## Funkcje wspólne (4) ### Wycofywanie i archiwizacja **Wycofanie** może nastąpić z wielu powodów: - utrata aktualności, - utrata praw do treści, - uatrakcyjnienie portalu nowszą treścią, - niska frekwencja odwiedzania. Przyjmuje się, że dowolna wycofywana treść podlega **archiwizacji**. ### Raporty i analizy Raporty i analizy mają na celu: - lepszą obsługę użytkowników, - zwiększenie atrakcyjności portalu, - zbadanie efektywności biznesowej. ### Ponowne użycie Wyodrębnienie i generalizacja pewnych elementów (treści, metadanych, procesów, funkcji, szablonów formularzy) jako **udokumentowanych aktywów ponownego użycia** w ramach repozytorium, wraz z ich opisywaniem i propagowaniem wśród personelu. --- # Część 4 ## Klasyfikacja i cechy CMS --- ## Klasyfikacja i przegląd CMS (1) Systemy CMS można podzielić na kilka kategorii ze względu na zakres funkcjonalności: ### 1. Duże pakiety kompleksowe Obejmujące funkcjonalnością wszystkie etapy i aspekty tworzenia systemów internetowych. **Przykłady:** V/6 Content Management Suite (Vignette), One-To-One Publishing (Broadvision), Content Server (Divine). ### 2. Produkty o mniejszych możliwościach integracji Produkty o podobnych cechach, ale mniejszych możliwościach integracji z istniejącymi systemami produkcyjnymi. **Przykłady:** Content Management Server (Microsoft), PVCS Content Manager (Merant), RedDot Solutions, Mediasurface. ### 3. Narzędzia do zarządzania repozytoriami dokumentów Nacisk na zarządzanie dużymi repozytoriami dokumentów i wspomaganie pracy grupowej. **Przykłady:** Xpedio (Stellent), 4I WCM Edition (Documentum), Panagon (FileNET). --- ## Klasyfikacja i przegląd CMS (2) ### 4. Systemy zarządzania cyklem wytwarzania treści Służą do zarządzania cyklem wytwarzania elementów stanowiących treść serwisu (role użytkowników, procesy pracy). **Przykłady:** TeamSite (Interwoven), CommonSpot Content Server (PaperThin). ### 5. Narzędzia publikacji i personalizacji Wspierające końcową fazę powstawania serwisu: publikację, personalizację. **Przykłady:** WebLogic E-Business Platform (BEA), Dynamo (ATG), Oracle9iAS (Oracle). ### 6. Systemy open-source Tworzone w ramach projektów open-source. **Przykłady:** Content Management Framework (Zope), Arsdigita Community System. --- ## CMS jako katalizator rozwoju Dla wspomagania funkcji zarządzania treścią dostawcy oprogramowania wytworzyli ogromną liczbę narzędzi, zintegrowanych systemów oraz rozszerzeń istniejących systemów. ### Kierunki rozwoju - Tradycyjna dziedzina **zarządzania dokumentami** została w dużym stopniu zdominowana przez funkcje CMS, - Pojawiły się **obiektowe repozytoria** do przechowywania treści dowolnego typu, w szczególności **repozytoria XML**, - Dostawcy SZBD (Oracle, CA, Sybase, Informix, IBM) przesunęli punkt ciężkości z tradycyjnego zarządzania danymi na **zarządzanie treścią**, ze wspomaganiem tworzenia aplikacji internetowych, - Znaczenia nabrały **procesy pracy (workflows)** jako środek kontroli funkcji CMS, - Pojawiły się kompleksowe narzędzia typu **"wszystko w jednym"**. --- ## Headless CMS i architektura API-first Nowoczesnym kierunkiem ewolucji CMS jest architektura **headless** (bezgłowa) i podejście **API-first**. ### Czym jest headless CMS? > **Headless CMS** to system zarządzania treścią, w którym **warstwa prezentacji („głowa”) jest całkowicie oddzielona** od warstwy zarządzania treścią. Backend udostępnia treść wyłącznie przez **API**, a frontend budowany jest w dowolnej technologii. ### Różnica: CMS monolityczny vs headless | Cecha | Monolityczny (klasyczny) | Headless (API-first) | |---|---|---| | **Frontend** | Zintegrowany z backendem | Dowolny, osobny | | **Dostęp do treści** | Przez interfejs CMS | Przez API (REST / GraphQL) | | **Technologia** | Jeden stack (np. PHP + MySQL) | Dowolny stack frontendowy | | **Kanały dystrybucji** | Głównie strona WWW | Web, mobile, IoT, aplikacje | | **Elastyczność** | Ograniczona szablonami | Pełna | | **Przykłady** | WordPress, Drupal, Joomla | Contentful, Strapi, Sanity, Directus | ### Architektura headless ```mermaid flowchart LR A["📝 Edytor / Backend CMS"] --> B["🔌 API (REST / GraphQL)"] B --> C["🌐 Frontend web (Next.js, React)"] B --> D["📱 Aplikacja mobilna"] B --> E["📺 Smart TV / IoT"] B --> F["🛒 Inny system"] ``` ### Kluczowa zasada: „write once, deliver everywhere” Treść jest **tworzona raz** i dystrybuowana przez API do **dowolnej liczby kanałów** — od strony WWW, przez aplikacje mobilne, po urządzenia IoT. ### Zalety headless CMS | Zaleta | Opis | |---|---| | **Omnichannel** | Jedna treść na wszystkie kanały | | **Swoboda technologiczna** | Dowolny frontend (React, Vue, Svelte, natywne) | | **Wydajność** | Statyczne generowanie (SSG) + CDN | | **Bezpieczeństwo** | Backend oddzielony od publicznego frontendu | | **Skalowalność** | Niezależne skalowanie backendu i frontendu | ### Wady headless CMS | Wada | Opis | |---|---| | **Wyższy próg wejścia** | Wymaga znajomości frontendu | | **Brak „gotowca”** | Frontend trzeba zbudować od zera | | **Brak podglądu WYSIWYG** | Preview wymaga dodatkowej implementacji | | **Więcej komponentów** | Backend + frontend + API do utrzymania | ### Kiedy wybrać headless? - treść ma być dostarczana na **wiele kanałów** (web, mobile, IoT), - zespół chce **własnego stacku** frontendowego, - priorytetem jest **wydajność** (statyczne strony + CDN), - projekt wymaga **integracji** z innymi systemami przez API. --- ## Integracje przez API: REST vs GraphQL Headless CMS komunikuje się z frontendem przez API. Dwa dominujące standardy to **REST** i **GraphQL**. ### REST (Representational State Transfer) | Cecha | Opis | |---|---| | **Zasoby** | Każdy zasób ma własny URL (np. `/posts/1`) | | **Metody HTTP** | GET, POST, PUT, DELETE | | **Format** | Zwykle JSON | | **Over-fetching** | Serwer zwraca pełny obiekt (czasem za dużo danych) | | **Under-fetching** | Konieczność wielu zapytań dla złożonych danych | ### GraphQL | Cecha | Opis | |---|---| | **Jedno zapytanie** | Klient określa dokładnie, jakich pól potrzebuje | | **Brak over/under-fetching** | Pobierane dokładnie potrzebne dane | | **Silne typowanie** | Schemat GraphQL definiuje typy | | **Złożoność** | Większa złożoność po stronie serwera | ### Porównanie | Kryterium | REST | GraphQL | |---|---|---| | **Elastyczność** | Ograniczona (ustalone endpointy) | Wysoka (dowolne zapytania) | | **Wydajność** | Może być over-fetching | Dokładnie potrzebne dane | | **Prostota** | Prostszy | Bardziej złożony | | **Cache** | Łatwy (HTTP cache) | Trudniejszy | ### Webhooki **Webhook** to mechanizm, w którym CMS **wysyła powiadomienie HTTP** do zewnętrznego systemu po zdarzeniu (np. publikacja treści) — umożliwia integrację sterowaną zdarzeniami. > Wybór REST vs GraphQL zależy od potrzeb: REST dla prostych przypadków, GraphQL dla złożonych zapytań i wielu klientów. --- ## Urządzenia mobilne i responsywność Opis przedmiotu wymienia projektowanie SZT **również na urządzenia mobilne** — to dziś jeden z kluczowych aspektów dostarczania treści. ### Responsive Web Design (RWD) **Responsywność** to technika projektowania, w której układ strony **dostosowuje się** do rozmiaru ekranu urządzenia (telefon, tablet, desktop). | Podejście | Opis | Zalety | Wady | |---|---|---|---| | **Responsive (RWD)** | Jeden layout płynnie dopasowany | Jeden kod, łatwe utrzymanie | Kompromis dla dużych ekranów | | **Adaptive** | Kilka sztywnych layoutów dla progów | Lepsze dopasowanie | Więcej pracy | | **Osobna strona mobilna** | `m.example.com` | Pełna kontrola | Podwójne utrzymanie | ### Mobile-first Podejście **mobile-first** zakłada projektowanie najpierw dla małych ekranów, a następnie rozszerzanie na większe: - treść priorytetyzowana pod kątem małego ekranu, - lepsza wydajność na słabszych urządzeniach, - zgodne z trendem wzrostu ruchu mobilnego. ### Treść na urządzenia mobilne | Zasada | Opis | |---|---| | **Zwięzłość** | Krótsze akapity, konkretne nagłówki | | **Priorytetyzacja** | Najważniejsze treści na górze | | **Wydajność** | Lekkie obrazy, minimalny JavaScript | | **Dotyk** | Elementy dostosowane do obsługi palcem | ### Rola CMS - CMS powinien **oddzielać treść od prezentacji** — treść tworzona raz, prezentacja per urządzenie, - **responsywne szablony** — jeden motyw dostosowujący się do ekranu, - **optymalizacja obrazów** — automatyczne generowanie rozmiarów, - **headless + omnichannel** — treść przez API na urządzenia mobilne. > Mobile nie jest osobnym kanałem, lecz **domyślnym kontekstem** — coraz więcej użytkowników konsumuje treść wyłącznie na urządzeniach mobilnych. --- ## Cechy CMS: procesy pracy i automatyzacja procesów biznesowych Zarządzanie treścią wymaga rutynowych usług znanych z procesów pracy (*workflows*): | Usługa | Opis | |---|---| | **Śledzenie** | Monitorowanie stanu procesów | | **Przypisywanie ról i odpowiedzialności** | Określanie kto odpowiada za dany krok | | **Zintegrowane bezpieczeństwo** | Kontrola dostępu na poziomie procesów | | **Zautomatyzowane zawiadamianie** | Powiadomienia o zdarzeniach | | **Monitorowanie populacji procesów** | Nadzór nad zbiorami instancji procesów | ### Możliwości systemów workflow - Definiowanie **wielokrokowych procesów** włączających różnorodną treść, personel oraz akcje (wysłanie, recenzja, zatwierdzenie), - Automatyzacja zadań: ustalanie zespołów i ról, projektowanie procesów pracy, tworzenie i podtrzymywanie **instancji procesów pracy**. --- ## Cechy CMS: personalizacja Istotą personalizacji jest dostosowanie serwisu do indywidualnych preferencji użytkownika. ### Zakres personalizacji | Element | Opis | |---|---| | **Rejestracja i autentyfikacja** | Identyfikacja użytkowników aplikacji | | **Dostosowanie do preferencji** | Dopasowanie treści do preferencji tematycznych | | **Spersonalizowane treści** | Notatki, zakładki, kalendarz, terminarze użytkownika | | **Historia odwiedzin** | Przechowywanie historii transakcji i zakupów | | **Analizy i raporty** | Syntetyczne analizy dla zwiększenia jakości treści i usług | --- ## Podejścia do personalizacji ### Środki techniczne 1. **Informacja o zarejestrowanych użytkownikach** zgromadzona w bazie danych po stronie serwera, 2. **Ciasteczka (cookies)** — informacja o koncie i komputerze użytkownika: - pliki pamiętane przez komputer klienta, - serwer może zapisać w nich dowolną (niezbyt długą) informację, - konkretny użytkownik jest nieznany — znana jest tylko jego "tożsamość" z dokładnością do konta i komputera, - ciasteczka nie są dzielone między portale — każdy portal ma swoje. ### Środki dostosowywania treści | Metoda | Charakterystyka | |---|---| | **Profil explicite** | Użytkownik sam określa profil zainteresowań — wadą jest to, że zwykle tego nie robi, a jeśli robi, to niezbyt dokładnie | | **Filtrowanie kolaboratywne** | Tworzenie kategorii użytkowników i przypisywanie do nich na podstawie historii zachowania (klikologii) | --- ## Cechy CMS: dostępność (WCAG) **Dostępność** (accessibility) to projektowanie treści tak, aby były **użyteczne dla wszystkich** — w tym osób z niepełnosprawnościami. ### Standard WCAG **WCAG (Web Content Accessibility Guidelines)** to standard dostępności treści internetowych, oparty na czterech zasadach: | Zasada | Ang. | Znaczenie | |---|---|---| | **Postrzegalność** | Perceivable | Treść musi być dostrzegalna (np. alternatywa tekstowa obrazów) | | **Funkcjonalność** | Operable | Interfejs musi być obsługiwany (np. klawiaturą) | | **Zrozumiałość** | Understandable | Treść i obsługa muszą być zrozumiałe | | **Solidność** | Robust | Treść kompatybilna z technologiami asystującymi | ### Rola CMS w dostępności | Element CMS | Znaczenie dla dostępności | |---|---| | **Atrybuty alt** | Alternatywa tekstowa obrazów | | **Struktura nagłówków** | Poprawna hierarchia H1–H6 | | **Kontrast** | Odpowiedni kontrast kolorów | | **Semantyczny HTML** | Znaczące znaczniki (nav, article, main) | | **Formularze** | Etykiety i opisy pól | > Dostępność to nie tylko wymóg prawny (WCAG 2.1, dyrektywa UE), ale także **jakość** — dostępna treść jest lepiej indeksowana przez wyszukiwarki i dociera do szerszego grona. --- ## Cechy CMS: wyszukiwanie Sprawny mechanizm wyszukiwania informacji jest **czynnikiem powodzenia** aplikacji internetowej. ### Wymagania wyszukiwania - Wyszukiwanie oznacza konieczność **klasyfikacji treści** i **inteligentnego jej zaindeksowania**, - Wyszukiwanie często odbywa się po **cechach formalnych** (data publikacji, autor, kategoria tematyczna, słowa kluczowe) — określanych niekiedy (w RDF) jako **metadane**, - Częściej wyszukiwanie odbywa się: - w **pełnym tekście** przechowywanych składników treści, - poprzez **asocjacje** elementów treści z innymi elementami. > Klasyczne formy wyszukiwania (znane z bibliotek) są mało użyteczne. Konieczne są nowe paradygmaty, z reguły oparte o metafory graficzne. Szerzej o wyszukiwaniu treści w **wykładzie 11**. --- ## Cechy CMS: ontologia Pojęcie ontologii ma różne znaczenia w zależności od kontekstu: | Kontekst | Definicja | |---|---| | **Filozofia** | Nauka o bytach, teoria bytu, specyfikacja konceptualizacji | | **Sztuczna inteligencja** | Formalna specyfikacja (w logice matematycznej) obiektów, pojęć i związków w danej dziedzinie | | **Biznes (ontologia biznesowa)** | Wszystko, co projektanci systemów powinni wiedzieć o biznesie, aby poprawnie napisać aplikacje go wspomagające | ### Krytyka podejścia AI Podejście sztucznej inteligencji bywa uznawane za **naiwne** — np. w przypadku Giełdy Papierów Wartościowych istnieją tysiące stron aktów prawnych i regulacji; zapisanie ich wszystkich przy użyciu formuł rachunku predykatów jest praktycznie niewykonalne. ### Ontologia w biznesie Wiedza ta powinna być **formalnie zapisana** — "formalnie" oznacza zwykle pewien standardowy i uzgodniony język, np. **XML/RDF**. --- ## Cechy CMS: metadane **Metadane** — ogólnie: są to **dane o danych** — co dane zawierają, jaką mają budowę, jakie jest ich znaczenie, jakim podlegają ograniczeniom, jak są zorganizowane, przechowywane, zabezpieczane i udostępniane. ### Charakterystyka metadanych - Metadane są **rozszerzeniem pojęcia schematu bazy danych** albo implementacją tego schematu w postaci katalogów, - Metadane przykrywają informację **niezależną od treści samych danych** (data utworzenia, format, autor, data ważności). ### Dwie podstawowe zalety metadanych 1. **Wspólne abstrakcje** — "wyciągają przed nawias" wspólne informacje (np. format), co redukuje objętość samych danych, 2. **Reprezentacja wiedzy dziedzinowej** (ontologii) — umożliwiają wnioskowanie o danych, mogą redukować dostęp do samych danych. --- ## Ontologia i metadane Głównym celem prac nad **biznesową ontologią** jest standaryzacja następujących elementów: | Element standaryzacji | Opis | |---|---| | **Gramatyka opisów bytów** | Zasady opisu poszczególnych bytów | | **Nazwy i znaczenia** | Ustalenie znaczeń nazw w ramach biznesu (np. "autor", "klient", "instrument", "akcja") | | **Ograniczenia** | Ograniczenia związane z opisywanymi bytami | | **Metadane bytów** | Autor opisu, data stworzenia, data ostatniej aktualizacji | | **Dopuszczalne operacje** | Operacje możliwe do wykonania na bytach | > W tym zakresie zapis ontologii jest pewną **meta-bazą danych**, w której ustala się zarówno strukturę bazy danych, jak i dodatkowe informacje (meta-atrybuty) będące podstawą przetwarzania bazy danych. --- ## Podsumowanie | Temat | Kluczowe wnioski | |---|---| | **Zarządzanie treścią** | Buzzword bez jednoznacznego wyróżnika; duży chaos terminologiczny | | **Treść** | Obejmuje nie tylko to co widoczne, ale też dane, metadane, procesy i struktury | | **Dane → informacja → wiedza** | Hierarchia prowadząca do decyzji | | **Formaty** | Setki formatów i standardów; HTML i XML jako fundament | | **Architektura** | Klient → serwer Web → baza danych + zaplecze (back office) | | **Komponenty** | Tworzenie, zarządzanie, publikowanie, administracja, workflow, repozytorium | | **Procesy** | Pełny cykl życia: od projektowania po archiwizację i ponowne użycie | | **Klasyfikacja** | Od kompleksowych pakietów po narzędzia open-source | | **Cechy** | Workflow, personalizacja, wyszukiwanie, ontologia, metadane | --- # Dziękuję za uwagę **Systemy Zarządzania Treścią** Politechnika Poznańska