Artur Jonak empolis Polska Sp. z o.o. Budowa systemów zarządzania treścią w oparciu o Komponenty Technologiczne empolis Artur Jonak empolis Polska Sp. z o.o.
Architektura komponentowa Co to są komponenty? niezależne obiekty zawierające pewną logikę, która umożliwia im dostarczanie określonej funkcjonalności. posiadają dobrze zdefiniowany interfejs komunikacji z otoczeniem i zaszytą wewnątrz logikę biznesową. nie są aplikacją – to aplikacja składa się z komponentów, które złożone w całość rozwiązują jakiś złożony problem.
Architektura komponentowa Architektura trójwarstwowa klient-serwer Precyzyjnie określa miejsce, gdzie znajdują się i działają komponenty Wyodrębnia warstwę danych Klient Warstwa prezentacji Serwer aplikacji Komponent A Komponent B Warstwa logiki – serwer aplikacji DB komponent Baza danych Warstwa danych – serwer bazy danych
Serwer aplikacji Co oferuje serwer aplikacji? Zgodność ze standardami Specyfikacja funkcjonalności serwera Specyfikacja budowy i wdrażania aplikacji Bezpieczeństwo: autentykacja i autoryzacja użytkowników Przechowywanie i zarządzanie kontami grup i użytkowników Deklaratywna autoryzacja – określanie praw dostępu ACL Autoryzacja programowa – obsługa wewnątrz kodu aplikacji
Serwer aplikacji Dostęp do baz danych Otwieranie i zamykanie połączeń z bazami danych Zarządzanie pulą połączeń Transakcje Deklaratywne lub programowe zarządzanie transakcjami Transakcje zagnieżdżone Transakcje rozproszone Wydajność Skalowalność - load balancing Niezawodność - klastry
Platforma J2EE Co to jest J2EE? J2EE (Java 2 Enterprise Edition) to dobrze wyspecyfikowana platforma realizująca architekturę komponentową stworzona w języku Java i łącząca w sobie wiele najnowocześniejszych technologii informatycznych aplikacje tworzone i działające na platformie J2EE oparte są na komponentach tzw. Java Beans i Enterprise Java Beans.
J2EE - architektura J2EE J2SE Serwlety i JSP RMI EJB JNDI Java Mail Java 2 Standard Edition Potężne środowisko programistyczne Serwlety i JSP Klienckie aplikacje Web-owe RMI Zdalne wywoływanie metod RMI-IIOP implementacja w architekturze CORBA EJB Rozproszone komponenty z dobrze zdefiniowanymi interfejsami komunikacji JNDI Przestrzeń nazw – łatwe wyszukiwanie obiektów J2EE Java Mail Poczta elektroniczna JMS Asynchroniczne przesyła- nie komunikatów typu: - Publish/subscribe - Point2Point JDBC Dostęp do baz danych JTA i JTS Transakcje Connectors Dostęp do już istniejących systemów informacyjnych Java IDL Integracja z istniejącymi systemami w architekturze CORBA XML Definiowanie procesu wdrażania i powiązań pomiędzy komponentami
EJB EJB – Enterprise Java Beans Rozproszone komponenty stworzone w języku Java, zgodne ze specyfikacją EJB, implementujące pewną logikę biznesową oraz oferujące ściśle określoną funkcjonalność poprzez dobrze zdefiniowane interfejsy. Rodzaje EJB: Sesyjne (session beans) Bezstanowe (stateless) Stanowe (stateful) Persystentne (entity beans) CMP – container managed persistence BMP – bean managed persistence Opracowana przez Sun Microsystems, Oracle i innych producentów, specyfikacja EJB (Enterprise Java Beans) definiuje architekturę dla budowania aplikacji z komponentów zwanych EJB. Komponenty te działają w otoczeniu zwanym kontenerem używając usług dostarczonych przez serwer. W trakcie działania aplikacji kontener dostarcza niezbędnych usług (runtime services) dotyczących zarządzania cyklem życia, bezpieczeństwem i transakcyjnością. Każdy kontener EJB rezyduje na serwerze EJB, który obsługuje pozaaplikacyjne działania jak: zarządzanie przetwarzaniem, logowanie, bezpieczeństwo, balans obciążenia czy obsługa błędów. Architektura EJB stworzona jest z myślą o środowiskach rozproszonych. Zasadniczą częścią projektowania systemów rozproszonych jest dobry podział na czynności wykonywane zdalnie i lokalnie. Twórcy EJB proponują pisanie komponentów z myślą o działaniu lokalnym (w obrębie tej samej maszyny wirtualnej) – to Java i serwery aplikacji oferują i zarządzają mechanizmem komunikowania się w środowisku rozproszonym.
Architektura komponentu EJB internet Klient Serwer Home interface fabryka i wyszukiwanie RMI Serwer aplikacji Implementacja interfejsów: Home i Remote RMI Remote interface metody biznesowe RMI EJB składa się z następujących powiązanych ze sobą elementów: Interfejsu Home – jest fabryką obiektów oraz udostępnia metody do ich przeszukiwania Interfejsu Remote – definiuje sposób w jaki bean będzie widziany po stronie klienta. Wyszczególnia wszystkie metody, z których klient może korzystać. Jest zdefiniowany jako interfejs zgodny z RMI. Implementacja – bean realizowany jest jako klasa Javy, w której zaimplementowana została logika biznesowa zdefiniowana w interfejsie zdalnym. Bean zyskuje dostęp do bazy danych poprzez JDBC, a cała semantyka transakcji może zostać opisana w sposób deklaratywny i zwarta w deskryptorze instalacyjnym. Baza danych
Komponenty Technologiczne empolis Architektura JSP Client VB Client HTTP Client Application Links manager Content manager Tree manager Metadata manager Topic Maps manager Delta services Data base App server
Content Manager Content Manager Zarządza dokumentami i udostępnia: Podział dokumentów według kategorii: XML, tekstowy, binarny Zapis, odczyt z bazy danych Rewizje Wersje Oferuje mechanizm wyzwalaczy Wyzwalacze dla dokumentów XML-owych, tekstowych i binarnych Filtry SAX – jądro wyzwalaczy XML-owych Synchronizacja dostępu – mechanizm blokowania edytowanego dokumentu przed zapisem przez osoby trzecie (locking)
Content Manager Document interface CObject Triggers Podział Content Manager-a na podkomponenty Dokument – główny komponent, stanowi tzw. interfejs biznesowy Content Manager-a Content Object TextCObject XMLCObject Komponenty DAO Document interface CObject TextCObject XMLCObject Triggers Data Access Objects
Content Manager - wyzwalacze Trzy rodzaje XML-owe wyzwalane dla dokumentów XML Tekstowe dla innych dokumentów tekstowych Binarne dla dokumentów binarnych Filtry SAX jako jądro wyzwalaczy XML-owych Możliwość skonfigurowania wielu różnych łańcuchów filtrów SAX w zależności od typu dokumentu, elementu głównego czy też akcji wykonywanej na przetwarzanym dokumencie (load, save, delete) Filtry reagujące na użycie w dokumencie określonych przestrzeni nazw, niezależnie od typu dokumentu (wyszukiwanie i wstawianie linków)
XLink Manager XLinkBase XLink XAnchor XArc XTitle Architektura i funkcjonalność zgodna ze standardem w3c Xlink Architektura Zbiory linków, linki proste i rozszerzone Kotwice i łuki jako elementy linku XLinkBase XLink from XAnchor XArc to XTitle
Xlink Manager Funkcjonalność Wyszukiwanie linków w dokumencie XML Analizowanie struktury linku Przechowywanie i przeszukiwanie linków w bazie danych Obiektowy Model Linku – dedykowane API Wizualizacja linków z i do danego dokumentu – tzw. renderowanie linków
Metadata Manager i Catalog Manager Zarządzanie metadanymi obiektów Zapis Odczyt Przeszukiwanie Walidowanie Grupowanie metadanych w klasy Catalog Manager Zarządzanie identyfikatorami publicznymi obiektów ‘Rozwiązywanie’ identyfikatorów, czyli zamiana identyfikatora publicznego na odpowiadający mu identyfikator systemowy
Tree Manager i Security Manager Grupowanie obiektów - obiekt kontener Nakładanie hierarchii między dokumentami w repozytorium – łączenie dokumentów w drzewo Security Manager Bezpieczeństwo Lista kontroli dostępu ACL Wielopoziomowe nadawanie praw do dokumentów i kontenerów Zarządzanie prawami grup i użytkowników Duża integracja z innymi komponentami
Działający system Pokaz działającego systemu opartego na Komponentach Technologicznych empolis Serwer aplikacji: JBoss 2.2 + Tomcat 3.2 Serwer baz danych: Oracle 8i Cienki klient oparty na stronach JSP Cienki klient jako aplikacja Visual Basic 6 Integracja z edytorem XMetaL 2.1 – odczyt/zapis, linki
Koniec