WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI

Wielkość: px
Rozpocząć pokaz od strony:

Download "WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI"

Transkrypt

1 Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Praca dyplomowa. Zastosowanie protokołu XCAP do integracji nowoczesnych serwisów WWW z serwerami XDMS (na podstawie platformy Mobicents SIP Presence Server). Piotr Kowalski Opiekun pracy: doc. Dr inż. Krzysztof Nowicki. Katedra opiekuna pracy: Katedra Teleinformatyki. Kierunek Studiów : Informatyka, II stopień. Abstrakt : Praca dyplomowa ma na celu poznanie oraz opisanie zastosowań serwerów typu XDM S w sieciach. W pracy zostanie przedstawiona charakterystyka serwera XDMS, protokołu XCAP oraz możliwości jakie prezentują te technologie w sieciach IMS. Dodatkowo informację zawarte opisują możliwość integracji serwerów www z w.w. serwerem xdm. Opis technologii jest oparty o otwartą platformę Mobicents SIP Presence Server bazującą na serwerze Jboss i w pełni stworzoną w języku JAVA. Gdańsk, 2012 rok Strona 1 / 101

2 I. OŚWIADCZENIE Oświadczam, że niniejszą pracę dyplomową wykonałem samodzielnie. Wszystkie informacje umieszczone w pracy uzyskane ze źródeł pisanych oraz informacje ustne pochodzące od innych osób zostały udokumentowane w wykazie literatury odpowiednimi odnośnikami.... podpis dyplomanta Strona 2 / 101

3 TEMAT PRACY MAGISTERSKIEJ : Zastosowanie protokołu XCAP do integracji nowoczesnych serwisów WWW z serwerami XDMS (na podstawie - Piotr Kowalski. Strona 3 / 101

4 Spis treści : 1. Mobicents Firmy wpierające Mobicents (rozbudować?) Społeczność Mobicents JAIN SLEE (JSLEE) JAIN Java APIs for Integrated Networks JSLEE JAIN Service Logic Execution Environment Główne elementy JAIN SLEE JBOSS i mobicents Możliwości JSLEE oraz XDMS Elementy systemu Mobicents Sip Presence Server Serwer obecności (SIP Presence Server) Serwer list zasobów (Resource List Serwer) Serwer XDM (XML Data Manipulation Server) Funkcjonalna architektura serwera Mobicents XDMS Architektura implementacji serwera Mobicents XDMS Technologia XML XML wersja Przykładowy dokument XML Dokumenty XML w sieci Protokół XCAP XML Control Access Protocol XCAP GET pobranie całego dokumentu XCAP GET pobranie elementu XCAP GET pobranie atrybutu XCAP PUT dopisanie / nadpisanie elementu. (dokładnie zbadać) XCAP PUT dopisanie / nadpisanie atrybutu...37 Strona 4 / 101

5 5.0.6 XCAP PUT nadpisanie / dodanie nowego dokumentu XCAP DELETE usunięcie dokumentu XCAP DELETE usunięcie elementu XCAP DELETE usunięcie atrybutu Zastosowania protokołu XCAP w aplikacjach. Application Usages Resource Lists Listy zasobów Presence Rules zasady obecności RLS Services serwisy list zasobów PIDF Manipulation XML Namespace przestrzeń nazw plików XML Definiowanie własnych plików XML do wykorzystań dla aplikacji Pozostałe elementy platformy Mobicents Mobicents Sip Servlets Mobicents Media Server Mobicents Diameter Mobicents SS Mobicents Incubator Projekty o podobnej ideologii Rhino Open Cloud główny konkurent platformy Mobicents IBM WebSphere XML Document Management Server...46 Część praktyczna realizacja i kod źródłowy Środowisko uruchomieniowe i narzędzia AppUsage class (klasa wykorzystań aplikacji) App Usage Factory Class App Usage Deployer Class oraz deskryptor XML Pakiet oraz uruchamianie aplikacji wykorzystującej XCAP...54 Strona 5 / 101

6 2.5. Dodawanie własnych XCAP AppUsage dla systemu Mobicents Realizacja i przykład wykorzystania protokołu XCAP Opis kodu klienta XCAP. (opisać różnice SYNC i ASYNC) asynchroniczne dziala ale nie ma jak zwrocic w servlecie info oddzielnie po naglowkach?...56 Mobicents JAIN SLEE Client Resource Adaptor Schemat przesyłania danych przez formularz HTML Blok SBB Komponent SBB Metody zaimplementowane w bloku SBB opis klasy Opis metod zawartych w interfejsie Sbb (wymagających implementacji) : Deskryptor uruchomienia (ang. Deployer Descriptor) Kod źródłowy opis elementów bloku SBB Zmienne interfejsu Metoda setsbbcontext Metoda onget Przykładowe AppUsage dla serwera XDM Restrykcje programistyczne komponentów SLEE Podsumowanie...80 A. Słownik...82 B. Wykaz skrótów...87 C. Lista ilustracji...90 D. Strony E. Bibliografia...93 D. Załączniki...94 Załącznik 1 opis projektu JSLEE, narzędzia Maven i wtyczki JSLEE Maven plugin...94 Załącznik 2 przykłady systemu mobicents...99 Strona 6 / 101

7 1. Mobicents 1. Mobicents Mobicents to platforma komunikacyjna open source, dostarcza kompletne środowisko uruchomieniowe oraz zestaw narzędzi do projektowania, uruchamiania i zarządzania serwisami integrujących usługi głosu, video oraz przesyłanie wiadomości. Pozwala na konwergencję sieci www, sieci firmowych oraz aplikacji komunikacyjnych. System składa się z kilku modułów, z których każdy dostarcza inną funkcjonalność jako pojedyncze serwery. Wszystkie moduły zostały stworzone z myślą o ich wzajemnej współpracy, są one ze sobą kompatybilne, działają w oparciu o serwer Jboss. Ilustracja 1: Składowe systemy platformy Mobicents. Strona 7 / 101

8 1. Mobicents Mobicents jest certyfikowany dla przemysłowych standardów VoIP oraz JAIN SLEE 1.1 oraz SIP Servlets 1.1. Stworzenie i rozwój standardu odbywa się dzięki firmie Oracle (dawniej Sun Microsystem), która wydaje JSR ( ang. Java Specification Requests). Są to normy dla referencyjnych implementacji dla platformy języka Java. JSR spełniają podobną funkcję do dokumentów RFC. Jego pliki źródłowe są dostępne na licencji LGPL 2.1. System stworzono w technologii Java, jednakże pozwala on na zastosowanie aplikacji napisanych w innych językach. Kryterium kompatybilności to dostosowanie interfejsów programowych aplikacji co pozwoli na ich komunikację pomiędzy różnymi elementami systemu. Popularne wykorzystanie systemu Mobicents to zastosowania typu : Kontrola połączeń VoIP polegająca na możliwości zarządzania siecią VoIP. Komunikatory sieciowe. Wieloosobowe gry sieciowe. Giełda finansowa np. forex. Sieci sensorowe i ich integracja. Własne zastosowania w oparciu o założoną funkcjonalność.. System powstał w 2003 roku jego fundatorem jest Ivelin Ivanov. W 2007 roku projekt wykupiła firma Red Hat Inc. W 2011 Red Hat zawiesił wsparcie dla projektu, fundator oraz kluczowi członkowie zespołu developerów stworzyli firmę TeleStax Inc. i dalej zapewniają profesjonalne wsparcie Firmy wpierające Mobicents. MoBitE SoftMill Rancore Technologies NetDev EmblaCom 1.2 Społeczność System Mobicents jest rozwijany przez grupę developerów na czele z fundatorem systemu. Wraz z głównym zespołem programiści i użytkownicy z całego świata wspierają rozwój systemu. Publiczna biblioteka systemu przechowuje materiały odnośnie systemu badania nad nim, testy, opis użycia, patenty i itp. Każdy może wesprzeć projekt oraz porozmawiać z ludźmi zaangażowanymi poprzez serwer IRC lub grupy dyskusyjne. Głównym forum które skupia ludzi związanych z systemem są grupy dyskusyjne1 na serwerach Google.com. Jest to główne źródło informacji o systemie, polecane dla nowych użytkowników. Zawiera najnowsze informacje o rozwoju aplikacji, błędach, adaptorach i wiele postów o zmaganiach użytkowników z systemem. 1 Strona 8 / 101

9 2. Mobicents JAIN SLEE (JSLEE). 2. Mobicents JAIN SLEE (JSLEE). Ilustracja 2: Architektura Jain Slee. 2.1 JAIN Java APIs for Integrated Networks. Jest to idea rozwijania języka JAVA bazując na potrzebach tworzenia nowych otwartych standardów do komunikacji dla sieci inteligentnych. Ma to na celu przyśpieszenie rozwoju aplikacji oraz ich zastosowań. Większa liczba użytkowników i twórców pozwoli na tworzenie większej ilości aplikacji oraz lepsze sprecyzowaniu funkcjonalności potrzebnej w sieciach NGN. Projektowanie API ma na celu ułatwienie budowania aplikacji co pozwoli na większą dynamikę wprowadzanych zmian w sieci, serwerach i klientach. Strona 9 / 101

10 2. Mobicents JAIN SLEE (JSLEE). Zbiór API w projekcie JAIN to oprogramowanie pośredniczace (middleware) pozwalające na zapewnienie komunikacji między różnymi protokołami, aplikacjami oraz usługami w sieciach inteligentnych. Inicjatywa JAIN stworzyła wiele różnych interfejsów API : JAIN SIP 1.1 JAIN Service Logic Execution Environment (JSLEE) 1.0 SIP API for J2ME 1.0 SIP Servlets 1.0 JAIN MGCP 1.0 JAIN MEGACO JAIN SDP JAIN ENUM JAIN TCAP 1.1 JAIN INAP 1.0 JAIN JCC 1.1 JAIN JCAT Java Payment API (JPay) JAIN Presence JAIN Instant Messaging JAIN SIMPLE Instant Messaging JAIN SIMPLE Presence JAIN SIP Lite Zbiór bibliotek JAIN został zaprojektoway i stworzony w języku Java ze względu na specyfikacje językowe. Obiektowość, szerokie użycie, przenośność oraz możliwość budowy modułowej czynią z Javy idealny język dla założeń JAIN. Architektura JAIN składa się z trzech wartstw : Protokoł / sieć. Sterowania : sesja / połączenie. Usługi. Każda warstwa wprowadza coraz wyższy poziom abstrakcji, im wyższy poziom tym mniejsza zapewniana funkcjonalność. Wymaga to jednak mniejszej wiedzy o danym API. Rozbicie na warstwy zapewnia możliwość niezależnej implementacji, liczy się wykorzystanie funkcji w zgodności z systemem. Każdy protokół posiada niezależne API, które zapewnia pełną funkcjonalność protokołu. Wykorzystanie bibliotek wymaga szczegółowej znajomości bibliotek oraz funkcji. Strona 10 / 101

11 2. Mobicents JAIN SLEE (JSLEE). Ilustracja 3: Schemat i warstwy JSLEE.* Dwie niższe warstwy znajdują się po stronie operatora. To on zapewnia do nich dostęp oraz zapewnia bezpieczeństwo ich wykorzystania. Sieci posiadają wyjściowe interfejsy dla niezależnych dostawców oprogramowania. Połączenia te mogą być zaufane oraz niezaufane. Standaryzacja interfejsów przebiega powoli z uwagi na inne metody otwierania sieci, które są preferowanie przez operatorów. * Ilutracja pochodzi z pracy dyplomowej M. Kościesza,M. Misiak "Modele implementacji usług w architekturze IMS" Strona 11 / 101

12 2. Mobicents JAIN SLEE (JSLEE). 2.2 JSLEE JAIN Service Logic Execution Environment. Ilustracja 4: Architektura JSLEE. Jest to koncepcja środowiska przetwarzania, o wysokiej przepustowości i niskim opóźnieniu,dedykowana dla zastosowań w telekomunikacji. Specyfikacja JSLEE pozwala na zachowanie skalowalności oraz rozproszenia przetwarzania dla tworzonych aplikacji. JSLEE to standard przemysłowy, umożliwiający przenośność stworzonych narzędzi w języku JAVA na maszyny które obsługują ten standard. Przenośność uzyskujemy dzięki API w języku Java, specyfikacjom technicznym, referencyjnej implementacji oraz zestawowi testów. JSLEE ma za zadanie integrować różne zasoby oraz protokoły sieciowe. SLEE jest projektem znajdującym się w inicjatywie JAIN. Pełna dokumentacja biblioteki JAIN SLEE jest dostępna do pobrania na stronach Oracle.Specyfikacja zawiera pełen kod źródłowy w języku Java, dokumentację Javadoc opisującą elementy konstruktorów, metod, parametrów klas oraz dokument opisujący wykorzystanie kodu i mechanizmy działania systemu. 2 Kod źródłowy stworzony przez inicjatywę JSLEE wymaga od programistów obiektowego podejścia do programowania oraz dokładnej znajomości sposobu pisania programów dla tego rodzaju środowisk. Projekt został zrealizowany poprzez proces społeczności Java (ang Java Communit Process (JCP)), osoby prywatne, firmy telelekomunikacyjne oraz fimę Red Hat. 2 Strona 12 / 101

13 2. Mobicents JAIN SLEE (JSLEE). Ilustracja 5: Związanie warstwy JSLEE z warstwą operatora. Serwer aplikacyjny dla środowiska JSLEE jest kontenerem oferującym środowisko wykonawcze (ang. Run Time Environment) dla aplikacji zapewniających usługi. Środowisko składa się z modułów w ramach różnych aplikacji. Dla JSLEE komponenenty to SBB Bloki Budujące Serwisy (ang. Service Building Blocks). Przy wykorzystaniu JSLEE, kontener opiera się na J2EE. JSLEE wspiera inne edycje Javy jak np. J2SE, pozwala to na szeroką integrację różnych rozwiązań. JSLEE glównie wspiera aplikacje oparte o architekturę sterowania zdarzeniami (ang. message driven application). Jest to warunek obsługi komunikacji asynchronicznej w sieciach. Wymagania stawiane przez standard JSLEE dla aplikacji : Asynchroniczność, przetwarzanie zorientowane na zdarzenia. Kod aplikacji jest realizowany w oparciu o asynchroniczne zdarzenia sterujące danymi aplikacjami. Strona 13 / 101

14 2. Mobicents JAIN SLEE (JSLEE). Krótki czas reakcji i duża przepustowość. Czasy odpowiedzi powinny być krótsze niż 100 ms oraz JSLEE powinien zapewniać obsługę równocześnie od setek do tysięcy transakcji (prostych operacji). Skomplikowane zadania mogą wymagać kilku transakcji do zapewnienia wyniku. Duża niezawodność. Zgodnie ze standardami telekomunikacyjnymi powinna być zagwarantowana bezawaryjność na poziomie %. Sposobem na jej osiągnięcie jest replikacja stanów i wykorzystanie grup serwerów. Łatwość integracji z innymi systemami i sieciami. JSLEE wykorzystuje Adaptery Zasobów (ang. Resource Adapters), które są źródłem i ujściem dla zdarzeń pochodzących z innych systemów. Taka architektura pozwala na dołożenie dodatkowego elementu obsługi np. protokołu lub aplikacji bez konieczności modyfikowania całego środowiska. Przenośność. Stworzone aplikacje w środowisku JSLEE zachowują niezależność od platformy sprzętowej oraz systemu operacyjnego jak długo zachowana jest obsługa wirtualnej maszyny języka Java. Przenoszenie aplikacji między środowiskami nie wymaga modyfikacji kodu. Wbudowany mechanizm zarządzania. JSLEE posiada konsole zarządzania JMX (ang. Java Management Extensions). JMX pozwala na listę ziaren MBeans, które są uruchomione na serwerze. Konsola zapewnia dostęp do podstawowych informacji oraz konfiguracji serwera. Pozwala na zarządzanie komponentami jak np. uruchamianie, restartowanie lub zatrzymywanie usług. Skalowalność JSLEE zaprojektowano z myślą i skalowalności oraz implementacji klastrowej rozwiązań sieciowych. Zapewnia to redundancję, lepszą dostępność oraz zwiększa niezawodność szybkość działania. Strona 14 / 101

15 2. Mobicents JAIN SLEE (JSLEE). 2.3 Główne elementy JAIN SLEE.3 Usługa (ang. Service) Usługa w terminologii JSLEE to zarządzana,wymienna jednostka oprogramowania. Administrator kontroluje cykl życia aplikacji uruchomienie, wyłączenie oraz zarządzanie i aktualizację usług. Zarządzaniem cyklem aplikacji jest osiągnięte poprzez standardowe interfejsy dostępne w tandardzie. Usługa udostępnia informacje, które ją opisują np. nazwę, twórcę, wersję. Kod programu może zawierać klasy Java, Profile oraz bloki SBB. Profile (ang. Profile) Profil JSLEE zawiera zarezerwowane dane. Te informację posiadają schemat z zestawem parametrów oraz właściwości np. numer telefonu i mail mogą być uznane za atrybuty Profilu JSLEE. JAIN SLEE również definiuje specyfikację profilu. Specyfikacja określa interfejsy zarządzania dla modyfikowania oraz aktualizacji profilu, zdefiniowanie schematu danych profilu oraz logiki zarządzania walidującej profil. Bloki SBB działające wewnątrz domeny JSLEE posiadają również profile dostępu jako część logiki aplikacji. SBB (ang. Service Building Block) Blok SBB to komponent oprogramowania, który wysyła i odbiera zdarzenia systemowe, wykonuje logikę aplikację bazując na typie zdarzenia jakie zaszło. SBB to stanowe komponenty, pamiętają swoje przeszłe stany i wykorzystują te dane w przyszłych obliczeniach. SBB może być złożone z kilku innych bloków SBB co pozwala na budowanie złożonych aplikacji z wielu różnych bloków. Ułatwia to tworzenie oprogramowania i nim zarządzanie. SBB zapewnia wykonywanie aplikacji zgodnie z otrzymanym zdarzeniem. Zdarzenia są wykorzystywane do reprezentowania zmian zachodzących w sieci np. Zdarzenia wywołania żądania połączenia. Kod programu SBB składa się z klas Java. Zdarzenie (ang. Event) Zdarzenie reprezentuje wystąpienie określonych warunków w systemie, pozwala na reakcję systemu zgodnie z zaimplementowana logiką aplikacji obsługujących. Zdarzenie zawiera informację opisujące dany incydent jak np. Jego pochodzenie. Zdarzenia mogą być generowane z różnych źródeł, są one pojęciem używanym do modelowania zachowań systemu. Przykładowo dwójka abonentów dzwoniących do siebie może generować zdarzenia : wywołania żądania połaszenia, oraz zdarzenie odebrania dzwoniącej słuchawki. Zasoby i adaptory zasobów (ang. Resources and Resource Adaptors) Zasoby mogą być wewnętrznymi lub zewnętrznymi danymi, które podlegają interakcji w systemie pomiędzy jego różnymi komponentami np. stos protokołów, bazy 3 Informację na podstawie JSLEE.org Strona 15 / 101

16 2. Mobicents JAIN SLEE (JSLEE). danych, konsole zarządzania. Adaptor zasobów pozwala na adaptację określonych interfejsów i wymagań dla zasobów pomiędzy oryginalną aplikacją a środowiskiem JSLEE. Ilustracja 6: JSLEE w zestawieniu z innymi technologiami. 2.4 JBOSS i mobicents. Serwer aplikacyjny Jboss. (ang. Jboss Application Server) to otwarta (ang. open source) implementacja zestawu funkcjonalności Java EE (zbiór bibliotek oraz API) dla usług. Obejmuje on zestaw predefiniowanych usług oraz modułów powstałych z myślą o twórcach oraz klientach aplikacji biznesowych. Oferowane komponenty middleware4 zostały przetestowane oraz certyfikowane np. JSLEE 1.1. Wysoki poziom abstrakcji oraz duża elastyczność serwera pozwala na implementację technologii na różnorakie sposoby. Bazując na Javie serwer pozwala na wysoką przenośność stworzonych rozwiązań. Łatwa instalacja oraz uruchomienie jest możliwe na systemie wykorzystującym technologię Java. Dostępność kodu pozwala na dogłębną analizę działania i tworzenie wysoce wyspecjalizowanych rozwiązań. Jboss AS (ang. Jboss Application Server) jest oparty na Mikrokontenerze Jboss. Jest to lekki kontener służący do zarządzania POJO, ich uruchamianiem, konfiguracją oraz cyklem życia. Jest to oddzielny projekt zastąpiający mikrokernel JMX serii 3 i 4. Wersje serwerów JBOSS AS : Jboss AS 5.1 udostępniony w 2009 r., wspiera JEE 5. Jest to aktualizacja serwera 5.0 rozwijanego przez 3 lata. 4 Definicja w słowniku. Strona 16 / 101

17 2. Mobicents JAIN SLEE (JSLEE). Jboss AS 6 nieoficjalna implementacja JEE 6 (brak certfyikatów Oracle, jednakże wspiera większość standardów, certfykowany dla JEE 6 Web Profile), ustostępniony pod koniec 2010 r. Jboss AS 7 - udostępniony w lipcu 2011 r. Ostatnia stabilna wersja pochodzi ze stycznia Posiada pełny certyfikat JEE6 (ang. Java EE 6 Full Profile). Serwer może zostać zintegrowany z różnymi technologiami wspierającymi oraz rozszerzającymi jego możliwości i innymi językami programowania.5 Platforma serwera Jboss pozwala na wykorzystanie wielu narzędzi do tworzenia aplikacji co ma ułatwić pracę programistów oraz zwiększyć zyski z szybkiego budowania nowych rozwiązań. Jednym z głównym narzędzi programistycznych (IDE ang. Integrated Developement Environment) jest środowisko Eclipse. Posiada dedykowane wtyczki dla tworzenia aplikacji na serwery Jboss przy wykorzystaniu np. Jboss Tools, EclipSLEE. Jboss Tools wspiera takie aplikację jak : Hibernate, JBoss AS, Drools, jbpm, JSF, (X)HTML, Seam, Maven, JBoss ESB, JBoss Portal i inne. Pełna specyfikacja poszczególnych serwerów, opisy oraz podstawowe informację o wykorzystaniu oprogramowania znajdują się na oficjalnych stronach projektu Jboss oraz Redhat rozdział oraz Strona 17 / 101

18 2. Mobicents JAIN SLEE (JSLEE). Ilustracja 7: Położenie platformy Mobicents w sieci NGN. Jboss Application Serwer to serwer aplikacji stworzony w języku Java. Jego celem jest zapewnienie wysokiej wydajności i efektywności działania dla aplikacji na nim uruchomionych. Bazuje na technologii ziaren (ang. Enterprise Java Beans) udostępniających odpowiednie kontenery dla usług lub serwisów wraz z API do innych elementów działających na serwerze. Od strony programistycznej ważne jest napisanie aplikacji w sposób standaryzowany dla ziaren (ang. Java Beans) co pozwoli to na komunikację między ziarnami dla własnych autorskich aplikacji. Serwer posiada pełną implementację usług JavaEE Java Enterprise Enviroment. JavaEE definiuje zasady tworzenia aplikacji opartych o wielowarstwową architekturę modułową. Standard określa również zestaw interfejsów programistycznych jakich musi dostarczać zgodny serwer aplikacyjny. Zachowanie zgody ze standardami wytyczonymi przez Java powinno zapewnić pełną przenośność rozwiązań programistycznych. Realizacja autorskich aplikacji jest możliwa dzięki zastosowaniu mikrokontenera jboss (ang. Jboss Microcontainer). Zapewnia on interfejs między prostymi obiektami, klasami Javy SE. Mikrokontenerem steruje mikrokernel obsługujący tworzenie oraz zarządzanie POJO. Strona 18 / 101

19 2. Mobicents JAIN SLEE (JSLEE). Ilustracja 8: Zależność mikrokontenera oraz aplikacji na serwerze Java. Ilustracja 9: Elementy Systemu Mobicents operające się na mikrokontrolerze JBoss. Mobicents zawiera implementację JSLEE oraz dodatkowych narzędzi : Adaptory Zasobów (ang. Resource Adaptors). Pozwalaja aplikacjom SLEE na interakcję z zewnętrznymi zasobami poprzez własne lub standardowe protokoły. Mobicents dostarcza wiele adaptorów wbudowanych w system, np. dla protokołu SIP. Istnieją też firmy trzecie, które tworza własne adaptory zasobów. Strona 19 / 101

20 2. Mobicents JAIN SLEE (JSLEE). Narzędzia do zarządzania JMX, JSLEE managment console. Mobicents manager zapewnia graficzny interfejs do zarządzania, uruchamiania oraz monitorowania usług dedykowanych dla Jboss AS oraz aplikacji JSLEE.Slee managment console jest oddzielnym oprogramowaniem, które możemy zainstalować dla monitorowania usług SLEE oraz elementów SBB. Instalacja odbywa się poprzez wykonanie polecenia mvn install w katalogu z projektem i plikami źródłowymi konsoli. Konsola dostępna jest pod adresem /slee-management-console. Ilustracja 10: Zrzut ekranu : Konsola zarządzania SLEE. Plugin EclipSLEE do środowiska programistycznego (IDE) Eclipse. Wtyczka ma za zadanie wspierać tworzenie aplikacji JSLEE. Pozwala na tworzenie wszystkich elementów wymaganych do funkcjonowania aplikacji SLEE np. SBB, Deskryptory i inne. Strona 20 / 101

21 2. Mobicents JAIN SLEE (JSLEE). 2.5 Możliwości JSLEE oraz XDMS. JAIN SLEE oraz serwer XMDS tworzą razem niezależne środowisko do przechowywania danych zgodnie z potrzebami wynikającymi z profilu działalności systemu. Otwartość projektu zapewnia dostęp do kodu źródłowego oraz możliwości modyfikowania działania oprogramowania zgodnie z naszymi potrzebami. Projekt nie wymaga nakładów finansowych poza czasem potrzebnym programistom na dostosowanie się i poznanie nowego środowiska programistycznego jakim jest domena JSLEE. Zbiór API JSLEE oraz serwer XMDS pozwalają na bardzo elastyczną implementację wykorzystania platformy Mobicents. Różnorodność wspieranych protokołów sieciowych zezwala na wykorzystanie najwygodniejszych sposobów na realizację założeń projektowych. XDMS domyślnie wspiera standardy przechowywanych dokumentów potrzebnych przy realizacji usług obecności ( ang. presence service) w siecaich SIP. System przechowywania informacji opiera się o bazę danych SQL (Hypersonic SQL). Baza HSQL została stworzona z naciskiem na szybkość działania wymaganą przez systemy obsługujące duży ruch sieciowy i wielu użytkowników. Możliwości i zalety połączenia JSLEE oraz serwera XDM : Zapewnia podstawowe środowisko i możliwości usług obecności w sieciach SIP. Wsparcie wielu protokołów sieciowych. JSLEE zapewnia wysoką przepustowość, niezawodność i płynne działanie systemu na niemalże stu procentowym poziomie. Badania przeprowadzone przez firmę OpenCloud wskazują na opłacalność wprowadzenia JSLEE do firm.7 Łatwość implementacji i modularność aplikacji bazujących na blokach SBB. Serwer XMD może przechowywać dane w plikach XML zgodnie ze zdefiniowanym przez nas schematem. Mechanizm implementacji pozwala na weryfikację tych plików przez schemat i obsługę wyjątków podczas zapisu do bazy różnych typów danych. Informacje przechowywane na serwer mogą dotyczyć takich danych jak : - dane użytkowników wykorzystane przez serwisy www - dane z elementami stron www - tabele sql z danymi systemów działającymi na serwerze - informację zapisane przez użytkowników - dowolne informacje jakie są udostępniane dla użytkowników 7 Strona 21 / 101

22 3. Elementy systemu Mobicents Sip Presence Server. 3. Elementy systemu Mobicents Sip Presence Server. System Mobicents jest modułowym rozwiązaniem dla sieci NGN. Rozdział zadań na różne moduły pozwala na wykorzystanie tylko potrzebnych elementów systemów. Pozwala to zaoszczędzić sprzęt oraz koszty utrzymania. Poszczególne elementy pozwalają ponadto zapewnić rozproszone przetwarzanie w chmurze. Dzięki modułowości istnieją lepsze warunki skalowalności systemów zbudowanych w oparciu o Mobicents. Ilustracja 11: Schemat integracji MSPS. Wszystkie elementy SIP Presence Server są zintegrowane aczkolwiek istnieje możliwość rozdziału poszczególnych funkcjonalności na inne maszyny. Ilustracja 12: Podział funkcjonalności MSPS. Strona 22 / 101

23 3. Elementy systemu Mobicents Sip Presence Server. 3.1 Serwer obecności (SIP Presence Server). Wykorzystuje szereg standardów opracowanych przez : IETF Internet Ingeenering Task Force OMA Open Mobile Alliance 3GGP - 3rd Generation Partnership Project ETSI - European Telecommunications Standards Institute. Serwer SIP potrafi przechowywać, pobierać i przetwarzać informację dotyczące obecności w sieci SIP. Główne funkcję to : Zarządzanie danymi publikowanymi w sieci dla wielu różnych źródeł oraz konkretnych subskrypcji. Potrafi odświeżać informację, zamieniać aktualne z nowo opublikowanymi, usuwać i przetwarzać. Informacje składowane są w plikach XML. Zarządza subskrypcjami abonentów dla konkretnych informacji i generuje wiadomości o stanie subskrypcji. Przetwarzanie może być wywołane po stronie serwera oraz przez subskrybenta. SIP Presence Server ( ang. Serwer obecności SIP) składa się z następujących elementów : Kontrola publikacji obecności ( ang. Presence Publication Control) : Ten element zarządza publikacją zdarzeń obecności (ang. presence events) w tym : nowe publikacje, odświeżanie nformacji, modyfikacje i usuwanie informacji opublikowanych. Dodatkowo Presence Publication Control jest odpowiedzialny za składanie różnych publikacji ze zbioru danych. Pozwala to na wiele równoległych publikacji np. statusy urządzenia lub klienta czy dane lokalizacyjne np. gps realizowanych przez agenta sieci obecności (ang. Presence Network Agent). W niektórych sieciach może być przydatne przypisanie poszczególnym danym na serwerze XDM statycznej informacji o stanie poszczególnych zasobów w plikach XML np. podczas formowania finalnego dokumentu obecności przed wysłaniem do użytkowników. Presence Rules Cache (cache zasad obecności). Ten element jest odpowedzialny za interfejs pomiędzy serwerem XDM, który zarządza dokumentami zasad obecności (ang. presence rules documents). Zapewnia dane dotyczące zasad obecności (ang. presence rules) do elementu Presence Subscription Control, które służą do autoryzacji sybskrybcji, którymi zarządzają. SSB klienta obecności (Presence Client SBB) Presence Client SBB jest interfejsem do domeny JAIN SLEE SBB, założenie pozwala to na stworzenie oprogramowania klienckiego dla platformy MSPS (i instalacjach Strona 23 / 101

24 3. Elementy systemu Mobicents Sip Presence Server. wspierających standard). Pozwala na wykorzystanie dwóch interejsów : zewnętrznego i wewnętrznego dla różnych kontenerów i zastosować aplikacyjnych. 3.2 Serwer list zasobów (ang. Resource List Serwer). Pozwala na tworzenie subskrypcji dla list obecności (ang. presence lists). Tworzy i zarządza subskrypcjami dla wszystkich zasobów w listach. Zawartość wszystkich list jest pobierana z serwera XDM. Serwer ten przetwarza również subskrypcje SIP zgodnie ze stanem poszczególnych zasobów. Zapewnia informacje użytkownikom o stanie danych informacji na serwerze. Zazwyczaj RLS jest używany do przechowywania list zasobó jakie są sybskrybowane przez poszczególnych użytkowników systemu oraz listy z informacjami o danych, które mogą zostać zasybskrybowane. Mobicents Resuorce Lists Server rozszerza funkcjonalność serwera obecności (Presence Server) o dodatkowy element RLS Service Cache (Cache usług RLS). Ten element jest odpowiedzialny za zarządzanie listami encji, na które wskazują usługi RLS oraz zapisuje zmiany subskrypcji w referencyjnych dokumentach. Za każdą zmianą stanu usługi RLS element cache powiadamia subskrypcję, aby zapewnić zgodność pomiędzy sybskrybowaną listą zasobów a odpowiednim dokumentami XML. SIP Presence Server jest zbudowany w oparciu o specyfikację JAIN SLEE 2.x. Zapewnia to wysoką wydajność, skalowalność i wykorzystanie wielu dodatkowych technologii JEE jak np. Java Persistence AIP co pozwala na mapowanie obiektowej struktury systemu na relacyjny model bazy danych. Server posiada także wewnętrzne interfejsy klienckie dla każdego serwera osobno. Pozwala to na interakcję tylko z interesującym nas API np. presence server lub tylko serwerem xdm. Serwer list zasobów (ang. Resource List Server ) został zdefiniowany w RFC Strona 24 / 101

25 3. Elementy systemu Mobicents Sip Presence Server. 3.3 Serwer XDM (XML Data Manipulation Server). XML Document Managment Serwer (XDMS) serwer zarządzania dokumentami XML jest elementem sieci IP w sieciach następnej generacji. Jego zadanie to zarządzanie dokumentami XML składowanymi na serwerze po stronie sieci. W plikach znajdują się informację takie jak: zasady obecności, polityka bezpieczeństwa, reguły autoryzacji, listy kontaktów, listy grup, listy zasobów. Serwer wspiera następujące standardy : IETF Presence Rules (RFC 5025) OMA Presence Rules (OMA Presence Simple v1.1) IETF Resource Lists OMA Group Usage List (OMA XDM v1.1) IETF RLS Services (RFC 4826) OMA User Profile (OMA XDM v2.0) OMA Locked User Profile (OMA XDM v2.0) IETF XCAP-CAPS (RFC 4825) OMA XCAP Directory (OMA XDM v1.1) Protokół XCAP XML Configuration Access Protocol jest głównym protokołem warstwy aplikacji wykorzystywanym przy przetwarzaniu danych w plikach XML składowanych na serwerze. Protokół zapewnia nam nieograniczone możliwości w modyfikowaniu informacji przechowywanych w plikach. Protokół XCAP mapuje dokumenty XML jako poddrzewa oraz elementy atrybutów do formatu HTTP URL. Pozwala to na dostęp do elementów poprzez zapytania HTTP. Adresowanie plików XML bazuje na mechanizmie XPath. XPath to język zapytań pozwalający na pobieranie danych z pliku XML. Pozwala on również na wstępne przetwarzanie pobranych danych, bazuje na strukturze plików XML strukturze drzewa. Protokół XCAP opiera się o standardy RFC : RFC4825, RFC4826, RFC4827, RFC5025. Platforma Mobicents pozwala na pobieranie danych poprzez protokół http/xcap i zapis ich do plików XML na serwerze XDMS. Pozwala to na bardzo łatwe zarządzanie różnymi zmiennymi oraz informacjami zawartymi w serwisach internetowych. Strona 25 / 101

26 3. Elementy systemu Mobicents Sip Presence Server. Informację możemy pobrać przykładowo przez zapytanie do skryptu PHP który pobierze na podstawie przesłanych zmiennych konkretne informacje z bazy danych SQL. Ważne jest, aby znać API udostępniane przez serwer zewnętrzny z którego pobierane są informację, pozwoli nam to na generowanie konkretnych zapytań i otrzymania interesujących nas informacji. 3.4 Funkcjonalna architektura serwera Mobicents XDMS. Ilustracja 13: Funkcjonalna architektura serwera XDM.* Architektura przedstawiona na rysunku ukazuje struktury wewnętrzne serwera XDM i przepływ danych. Główne dane sterujące zachowaniem serwerem pochodzą z zewnątrz, od : Klientów protokołu XCAP. Mechanizmów zarządzania bezpośrednio na bazie danych. Systemu autoryzacji użytkowników. Obserwacji dokumentów poprzez użytkowników subskrybujących informację. Strona 26 / 101

27 3. Elementy systemu Mobicents Sip Presence Server. *Ilustracja pochodzi z dokumentacji serwera SIP Presence Server : Elementy funkcjonalne tworzące serwer XDMS : Źródła danych (ang. data sources) Źródło danych to miejsce gdzie przechowywane są wszystkie pliki XML. Informację na temat serwera są również przechowane w bazie danych. Źródła danych obsługują również subskrypcje, aktualizacje specyficznych dokumentów oraz pełne wykorzystania aplikacyjne protokołu XCAP. Proxy agregacji (ang. Aggregation Proxy) Proxy jest odpowiedzialne za obsługę żądań XCAP razem z ich autentykacją. Procesor Żądań (ang. Request Processor) Element zawiera logikę serwera XCAP pozwalającą na przetwarzanie zapytań protokołu i zwracanie odpowiedniej odpowiedzi. Zawiera też mechanizmy autoryzacji i autentykacji. Kontrola subskrypcji zdarzeń XCAP (ang. XDM Event Subscription Control) Komponent serwera wykorzystujący protokół SIP, jest on odpowiedzialny za subskrypcję dokumentów zarządzanych przez serwer. Funkcję komponenty zapewniają autoryzację, autentykację, subskrypcję zdarzeń dla danych dokumentów, obsługę wykorzystań aplikacyjnych oraz powiadomienia generowane podczas zmian dokumentów. Strona 27 / 101

28 3. Elementy systemu Mobicents Sip Presence Server. 3.4 Architektura implementacji serwera Mobicents XDMS. Ilustracja 14: Architektura implementacji serwera XDM.* Strona 28 / 101

29 3. Elementy systemu Mobicents Sip Presence Server. *Ilustracja pochodzi z dokumentacji serwera SIP Presence Server : Adapter implementujący komponent źródeł danych. (Data Source). Typ adaptora zasobów określa dwa obiekty aktywności : DocumentActivity oraz AppUsageActivity. Oba obiekty pozwalają na odpalania zdarzeń sygnalizujących aktualizację dokumentu, elementu albo atrybutu. Typ adaptera zsobów (RA Type) definiuje także interfejs adaptera zasobów dla SBB, który służy do zarządzania użytkownikami, dokumentami przechowywanymi na serwerze. Pozwala tez na na uruchamianie zdarzeń, które zachodzą w systemie. RA Type zezwala też na wykorzystanie wewnętrznego sterownika do bazy danych JDBC dla serwera Jboss AS. Cache AppUsage adaptora zasobów (ang. AppUsage Cache Resource Adaptor ) Ten adapter zasobów przechowuje wykorzystania aplikacyjne XCAP zainstalowane na serwerze. Każde AppUsage jest obiektem, który zawiera logikę walidującą dokumenty XCAP, które znajdują się w zapytaniach XCAP. Nie posiada zdarzeń ani aktywności (activities). Usługa AppUsage (ang. AppUsage Service) Wykorzystanie aplikacyjne XCAP są instalowane przez usługę JAIN SLEE i zapewniają możliwość do dodawania oraz usuwania nowych podczas pracy serwera. Usługa proxy agregacji (ang. Aggregtion Proxy Service). Ta usługa JAIN SLEE obsługuję zdarzenia wywoływane przez adapter zasobów JBCP HTTP Servlet i korzysta z dwóch bloków SBB : User Profile Enabler Sbb, który zwraca informacje na temat autoryzacji użytkownika dla zapytania XCAP., Request Processor Sbb, który obsługuję zapytanie XCAP. SBB procesora żądań. (ang. Request Processor SBB). Blok procesora żądań zapewnia synchroniczny interfejs SBB do przetwarzania zapytań XCAP. Wykorzystuje zasoby adaptora AppUsage Cache, aby otrzymać obiekty AppUsage oraz adapter Data Source aby odzyskać dokumentu z bazy danych. Aktywacja profili użytownika (ang. User Profile Enabler SBB). Strona 29 / 101

30 3. Elementy systemu Mobicents Sip Presence Server. Ten komponent bloku SBB zapewnia synchroniczny interfejs wykorzystywany w relacjach dziedziczenia obiektów potomnych JAIN SLEE w celu uzyskania danych do autoryzacji użytkownika. Dwa różne implementacje tego interfejsu są zapewnione : Uzyskanie danych z lokalnego serwera XDM. Interfejs dla Diameter Mobicents Server pracujący jako IMS HSS8. XCAP Diff Subscription Control Service Usługa JSLEE rozszerza abstrakcyjny komponent SIP Event Subscription Control pozwalający na subskrypcję xcap-diff. XCAP Client Klient XCAP to proste API zapewniające możliwość interakcji z serwerem, który wewnętrznie używa klienta HTTP Apache. XCAP Client Resource Adaptor Adapter pozwala na połączenie API klienta XCAP z domeną JAIN SLEE. Zapewnia synchroniczne i asynchroniczne metody działania. XDM Client Sbb Blok XDM Client Sbb jest interfejsem JAIN SLEE SBB, stworzonym do wykorzystania jako klient dla serwera JBXP XDM oraz innych zgodnych implementacji standardu. Interfejs posiada dwie implementacje : Wewnętrzny klient (ang. InternalXDMClientSBB) służy do wykorzystania z lokalnym serwerem JBCP XDMS. Zewnętrzny klient (ang. ExternalXDMClientSBB) ma na celu zapewnienie współpracę z domeną JSLEE zaimplementowaną na innym serwerze XDM niż JBCP XMD Serwer. 8 IMS HSS - IP Multimedia Subsystem Home Subscriber Server Strona 30 / 101

31 4. Technologia XML. 4. Technologia XML. XML extensible Markup Language rozszerzalny język znaczników przeznaczony do reprezentowania różnych danych w pewnej strukturze. Język i dokumenty XML są niezależne od platformy co pozwala na łatwą wymianę dokumentów między systemami. Standard języka XML oraz SGML jest opisany przez organizację W3C. XML powstał poprzez uproszczenie języka SGML (Standard Generalized Markup Language) służącego do ujednolicania różnych formatów i struktur danych. Język SGML to pierwowzór języka XML o dużo większej złożoności. Aby uprościć proces tworzenia dokumentów język SGML został uproszczony do języka XML. Dokumenty XML należy tworzyć zgodnie z zaleceniami standardu. Dokument jest poprawny składniowo (ang. well-formed), gdy spełnia zalecanie standardu np. odpowiednia zamykanie znaczników. Dokument może też być poprawny strukturalnie (valid) jeżeli jest zgodny z definicją dodatkowych reguł, określanych przez użytkownika. Do określania własnych reguł służą języki takie jak np. : DTD, XML Schema. Poprawny składniowo (ang. well-formed) dokument XML powinien być tworzony zgodnie z kilkoma zasadami: Musi posiadać deklarację XML, umieszczoną na samym początku pliku (nie może być poprzedzona np. komentarzem) oraz musi posiadać atrybut wersji 1.0 lub 1.1 oraz opcjonalnie atrybuty: Kodowanie (ang. encoding) deklaruje zestaw znaków użytych w dokumencie, domyślnie UTF-8 w systemie Unicode. Samodzielny (ang. standalone) określa tryb dokumentu. Przyjmuje wartości tak i nie. Oznacza on, iż nie potrzeba przetwarzać innych plików (np. arkusz styli lub definicje DTD) poza plikiem xml. musi zawierać tylko jeden element główny (ang. root element) każdy element musi zaczynać się znacznikiem początku elementu np. <data> oraz kończyć identycznym znacznikiem kończącym np. </data>, wyjątek stanowią elementy puste (<element-pusty />), czyli takie które nie zawierają żadnych danych, ani innych elementów, mogą zawierać atrybuty; nazwy elementów mogą zawierać znaki alfanumeryczne, znaki ideograficzne (ą, ó, ń ) oraz 3 znaki interpunkcyjne (podkreślenie _, łącznik -, kropka.). Znak dwukropka zarezerwowany jest dla identyfikacji przestrzeni nazw, której nazwa Strona 31 / 101

32 4. Technologia XML. dopisywana jest przed nazwą elementu np. <przestrzeń1:element>, nazwy elementów nie mogą zaczynać się od znaku łącznika -, kropki, czy cyfry. Dodatkowo nie mogą zaczynać się od xml, XML, xml itp. (wielkość liter bez znaczenia). elementy można zagnieżdżać w sobie i wtedy każdy element znajdujący się wewnątrz innego elementu jest nazywany "dzieckiem" tego elementu, a element wewnątrz którego znajdują się inne elementy zwany jest "rodzicem" tych elementów. elementy mogą zawierać atrybuty, definiowane w znaczniku początku elementu np. atrybutem elementu <news potwierdz="yes"> jest atrybut o nazwie potwierdz oraz wartości yes. Wartości atrybutów podaje się w cudzysłowach albo apostrofach (pojedynczych cudzysłowach). informacje, które zawiera element muszą być zapisane pomiędzy znacznikiem początku i końca elementu, w danych, atrybutach oraz nazwach elementów nie mogą pojawiać się niektóre znaki. Przykładem może być znak mniejszości (<), lub ampersand (&). jeżeli nie chcemy używać predefiniowanych odniesień jednostek możemy część danych, które zawierają np. kod html lub xml zapisać w sekcji danych znakowych, która nie będzie przetwarzana przez analizator składni XML. Znacznik początku sekcji danych znakowych to: <![CDATA[, a znacznik końca: ]]>. w dokumencie XML możemy wykorzystywać komentarze, które zaczynają się znakami: <!--, a kończą: - - >. specyfikacja XML zezwala na wstawianie instrukcji przetwarzania, które są wykorzystywane do przeniesienia informacji do aplikacji. Instrukcje przetwarzania rozpoczynają się znakami: <?, a kończą:?>. Przykładem takiej instrukcji może być odniesienie do arkusza stylów, który jest powiązany z dokumentem XML: <?xmlstylesheet type="text/xsl" href="newsy.xsl"?>. 4.1 XML wersja 1.1 Wprowadza zmiany w zestawie dopuszczanych znaków, co ma związek z modyfikacjami standardu Unicode przeprowadzanymi po publikacji wersji 1.0. Wersja 1.1 nie jest kompatybilna z wersją 1.0. Wersja 1.1 jest odmianą do bardzo specyficznych zastosowań. Wciąż zalecane jest korzystanie z wersji 1.0 wszędzie, gdzie to możliwe. Obie wersje wciąż są wspierane i rozwijane przez W3C. Strona 32 / 101

33 4. Technologia XML. 4.2 Przykładowy dokument XML. <?xml version="1.0" encoding="utf-8"?> <ksiazka-telefoniczna kategoria="bohaterowie książek"> <! komentarz testowy --> <osoba charakter="dobry"> <imie>ambroży</imie> <nazwisko>kleks</nazwisko> <telefon> </telefon> </osoba> <osoba charakter="zły"> <imie>alojzy</imie> <nazwisko>bąbel</nazwisko> <telefon/> </osoba> </ksiazka-telefoniczna> Dokument rozpoczyna definicją wersji standardu XML, z jakim jest zgodny, oraz sposobie kodowania znaków. Informacje te są opcjonalne w razie braku którejś z danych przyjmuje się wartość domyślną, jakimi są właśnie wersja 1.0 oraz standard kodowania UTF8. Korzeniem dokumentu jest element (root element) o nazwie ksiazka-telefoniczna. Ma przypisany jeden atrybut o nazwie kategoria i wartości bohaterowie książek. Korzeń jest rodzicem dwóch innych elementów, oba mają tę samą nazwę osoba i przypisany atrybut o nazwie charakter. Każdy z elementów o nazwie osoba jest rodzicem dla trzech innych elementów o nazwach imie, nazwisko i telefon, które zawierają konkretne dane w postaci tekstu. Element o nazwie telefon w dwunastym wierszu dokumentu jest pusty. Zapis <telefon/> jest równoważny zapisowi <telefon></telefon>. W trzecim wierszu dokumentu znajduje się komentarz. 4.3 Dokumenty XML w sieci. Dokument XML traktowany jest przez przeglądarki jako zwykły plik tekstowy. Wygodne i przyjazne dla użytkownika prezentowanie danych jest osiągalne np. poprzez zastosowanie arkusza stylów CSS. Arkusz styli CSS definiujemy w pierwszej linijce pliku XML, przykładowo : <?xml-stylesheet type="text/css" href="moj-styl.css"?> Strona 33 / 101

34 5. Protokół XCAP XML Control Access Protocol 5. Protokół XCAP XML Control Access Protocol Protokół xcap mapuje elementy i atrybuty dokumentów XML do postaci adresów http URI co pozwala na bezpośredni dostęp do danych za pomocą klientów wykorzystujących protokół http. Serwer XCAP jest wykorzystywany przez aplikacje klienckie do przechowywania, modyfikowania i zarządzania danymi. W serwerze MSPS dodatkowo serwer XDM jest zintegrowany z funkcjonalnością SIP Presence Server co pozwala na publikacja, subskrypcje i powiadomienia za pomocą protokołu SIP. Funkcje zapewnione to : Pobranie Usunięcie Modyfikacja Dodawania Możemy je zastosować do elementów : Dokumentów Elementów Atrybutów Manipulacja dokumentami XML na serwerze XDM opiera się o wywołanie funkcji API protokołu XCAP. Głównym elementem określającym wywołanie mechanizmów jest : Wykorzystana metoda dla obiektów klasy XCAP Response. Wykorzystany adres URI wskazujący element albo atrybut do edycji. Przykłady działania różnych żądań XCAP dla dokumentów xml : Przykładowy dokument XML(zapisany przez użytkownika o nazwie user,nazwie pliku index1 wykorzystujący pliki XML o schemacie ksiazka : 1. <?xml="1.0" encoding="utf-8"?> 2. <ksiazka> 3. <entry> 4. <imie> imie nazwisko</imie> 5. < > imnazw@qwe.qwe </ > 6. <adres> 7. <ulica glowna="true"> Jagiellonska 1234 </ulica> 8. <miasto> Gdansk </miasto> 9. <wojewodztwo>pomorskie</wojewodztwo> 10. <kraj>polska</kraj> Strona 34 / 101

35 5. Protokół XCAP XML Control Access Protocol 11. </adres> 12. <ietf-czlonek/> 13. </entry> 14. </ksiazka> Najpopularniejsze kody odpowiedzi HTTP wykorzystane przy implementacji serwera XDM : Kod Wiadomość Opis 200 OK Żądanie GET, DELETE, PUT zakończone sukcesem. 201 Stworzono(ang. Created) Udane stworzenie dokumentu, elementu albo atrybutu XML. 403 Wstęp wzbroniony (ang. Serwer list grup (ang. Group List Server) nie był wstanie Forbidden) autoryzować żądania. 404 Nie znaleziono (ang. Not Adres HTTP URI nie wskazuje na istniejące zasoby. Found) 405 Metoda niedozwolona (ang. Method Not Allowed) Metoda POST nie wspierana. 409 Konflikt (ang. Conflict) Odpowiedź zawiera dane odnośnie błędu w żądaniu XCAP Nie wspierany typ mediów. (ang. Unsupported Media Type) A PUT request contains an element and Content-Type is not application/xcap-el+xml, or a PUT request contains an attribute and Content-Type is not application/xcapel+xml. 500 Błąd wewnętrzny (ang. Internal Error) Wystąpił błąd, który nie ma związku z żądaniem np. błąd w komunikacji protokołem LDAP. 9 Sekcja 11 RFC Strona 35 / 101

36 5. Protokół XCAP XML Control Access Protocol Ilustracja 15: Ogólny schemat żądań i odpowiedzi serwera XDM XCAP GET pobranie całego dokumentu. GET Pozwoli na pobranie całego dokumentu XML. Dodatkowo może być wymagane podanie danych uwierzytelniających loginu i hasła dla użytkownika posiadającego dostęp <?xml="1.0" encoding="utf-8"?> 3. <ksiazka> 4. <entry> 5. <imie> imie nazwisko</imie> 6. < > imnazw@qwe.qwe </ > 7. <adres> 8. <ulica glowna="true"> Jagiellonska 1234 </ulica> 9. <miasto> Gdansk </miasto> 10. <wojewodztwo>pomorskie</wojewodztwo> 11. <kraj>polska</kraj> Strona 36 / 101

37 5. Protokół XCAP XML Control Access Protocol 12. </adres> 13. <ietf-czlonek/> 14. </entry> 15. </ksiazka> XCAP GET pobranie elementu. GET Żądanie zwraca wartość elementu ulica. <ulica glowna="true"> Jagiellonska 1234 </ulica> W odpowiedzi otrzymujemy cały element XML. Metody zawarte w API pozwalają na otrzymanie wartości elementu z pominięciem atrybutów i tagów XCAP GET pobranie atrybutu. GET na Żądanie zwraca wartość atrybutu główna dla elementu ulica : true XCAP PUT dopisanie / nadpisanie elementu. (dokładnie zbadać) PUT <imie> Nowe imie </imie> Jeżeli element istnieje, zostaje on nadpisany w całości jaką chcemy zachować na serwerze. Stary element i jego atrybuty są zastąpione. Dopisanie nowego elementu zachodzi wtedy gdy adres URI nowego dopisanego elementu pokrywa się z tym wywołanym podczas metody PUT XCAP PUT dopisanie / nadpisanie atrybutu. PUT wawartosc Strona 37 / 101

38 5. Protokół XCAP XML Control Access Protocol Element dokumentu po edycji : <ulica glowna="no"> Jagiellonska 1234 </ulica> Jeżeli element istnieje, zostaje on nadpisany w całości wartością jaką chcemy zachować na serwerze. Cały stary element i wszystkie jego atrybuty są zastąpione XCAP PUT nadpisanie / dodanie nowego dokumentu. PUT Nowy przykładowy zapisany dokument (zmodyfikowany) : 1. <?xml="1.0" encoding="utf-8"?> 2. <ksiazka> 3. <entry> 4. <imie> imie nazwisko</imie> 5. < > imnazw@qwe.qwe </ > 6. <adres> 7. <ulica glowna="true"> Jagiellonska 1234 </ulica> 8. <miasto> Gdansk </miasto> 9. <wojewodztwo>pomorskie</wojewodztwo> 10. <kraj>polska</kraj> 11. </adres> 12. <ietf-czlonek/> 13. </entry> 14. </ksiazka> XCAP DELETE usunięcie dokumentu. DELETE Usuwa cały plik XML z serwera. Próba pobrania go zwróci błąd HTTP XCAP DELETE usunięcie elementu. DELETE Usunięcie elementu imię z pliku XML. 1. <?xml="1.0" encoding="utf-8"?> 2. <ksiazka> 3. <entry> Strona 38 / 101

39 5. Protokół XCAP XML Control Access Protocol 4. < > </ > 5. <adres> 6. <ulica glowna="true"> Jagiellonska 1234 </ulica> 7. <miasto> Gdansk </miasto> 8. <wojewodztwo>pomorskie</wojewodztwo> 9. <kraj>polska</kraj> 10. </adres> 11. <ietf-czlonek/> 12. </entry> 13. </ksiazka> XCAP DELETE usunięcie atrybutu. DELETE na Usunięcie atrybutu z elementu zwraca dokument : 1. <?xml="1.0" encoding="utf-8"?> 2. <ksiazka> 3. <entry> 4. <imie> imie nazwisko</imie> 5. < > imnazw@qwe.qwe </ > 6. <adres> 7. <ulica> Jagiellonska 1234 </ulica> 8. <miasto> Gdansk </miasto> 9. <wojewodztwo>pomorskie</wojewodztwo> 10. <kraj>polska</kraj> 11. </adres> 12. <ietf-czlonek/> 13. </entry> 14. </ksiazka> 5.1 Zastosowania protokołu XCAP w aplikacjach. Application Usages. Wykorzystania protokołu XCAP są określone poprzez specyficzne AUID (ang. Application Unique ID). Strona 39 / 101

40 5. Protokół XCAP XML Control Access Protocol XCAP capabilities (możliwości XCAP) (auid = xcap-caps). Aplikacja określająca możliwości serwera XDM. Następujące standardy są wspierdane przez XDMS w systemie mobicents Resource Lists Listy zasobów. Resource Lists (Listy Zasobów) (auid = resource-lists). Aplikacja (element oprogramowania) list zasobów jest każdą aplikacją, która potrzebuje dostępu do list zasobów określonych przez adres URI oraz, do których można zastosować operacje takie jak subskrypcja Presence Rules zasady obecności Zasady obecności (ang. presence rules) (audi = Pres-rules, org.openmobilealliance.pres-rules). Aplikacje zasad obecności to aplikacje wykorzystujące zasady (politykę) autoryzacji do określenia, które informacje mogą być wysłane do subskrybentów (watchers) i kiedy RLS Services serwisy list zasobów RLS Services (usługi list zasobów) (auid = rls-service). Aplikacja serwera list zasobów jest aplikacją protokołu SIP kiedy zapewnia możliwość obsługi polecenia subskrypcji protokołu SIP i generuje subskrypcje względem list zasobów PIDF Manipulation PIDF Manipulation (ang. presence information data format manipulation) Manipulacja informacjami obecności (auid = pidf manipulation). Aplikacja określa sposoby w jakie XCAP manipuluje zawartość dokumentów PIDF. Własne standardy zdefiniowane zgodnie z potrzebami dla konkretnych rozwiązań. Strona 40 / 101

41 5. Protokół XCAP XML Control Access Protocol 5.2 XML Namespace przestrzeń nazw plików XML. Określenie przestrzeni nazw pozwala na stosowanie wielu danych z różnych plików XML w jednym dokumencie. Przestrzenie stworzyło W3C w celu zapobiegnięciu powstawania problemów w związku z tymi samymi nazwami elementów w różnych plikach XML. Rozróżnienie bazuje na prefiksach zapewnianych przez przestrzeń nazw. Identyfikatorem przestrzeni może być dowolna referencja IRI (poza pustą referencją). Referencje są identyczne, gdy sekwencje znaków są identyczne, porównywana jest też wielkość znaków. Przestrzeń nazw w plikach xml określa atrybut XMLNS:prefix. Prefix to odpowiednia nazwa dla zbioru nazw. Wykorzystanie przestrzeni nazw polega na zaimportowaniu przestrzeni nazw w pliku xml oraz o dodanie odpowiedniego prefixu dla importowanych elementów. 5.3 Definiowanie własnych plików XML do wykorzystań dla aplikacji. Każdy zasób na serwerze powinien być przypisany do odpowiedniej aplikacji jaka z niego korzysta. Aby aplikacja mogła wykorzystywać dane zasoby potrzebne jest ich dokładne określenie poprzez definicje struktury plików XML (xml schema). Schemat pliku XML określa elementy, atrybutu oraz typy wartości dla danych encji. Znana struktura pozwala na określanie adresów URI. Specyfikacje tworzenia określa RFC Każde wykorzystanie aplikacyjne (ang. App Usage) protokołu XCAP definiuje : Application Unique ID (Unikalny identyfikator aplikacji -auid). AUID wykorzystuje się w adresie URI do wskazania dokumentów z zasobami. Default Namespace (Domyślna przestrzeń nazw dokumentów). Definiuje przestrzeń nazw dla elementów i atrybutów bez prefixów w adresa XCAP URI. Zazwyczaj jest zbieżna z nazwą przestrzeni nazw dla wykorzystywanej aplikacji. MIME Type ( Multipurpose Internet Mail Extensions Type) Określa typ danych wykorzystywanych przy przesyłaniu dokumentów XML. Strona 41 / 101

42 5. Protokół XCAP XML Control Access Protocol XML Schema and Data Constraints (Schemat pliku xml oraz ograniczenia zawartości pliku). Schemat XML pozwala na walidacje dokumentów, elementów i atrybutów przesyłanych plików XML. Data Semantics (Semantyka dokumentów). Określa znaki oraz możliwości nazywania elementów dokumentu XML. Wykorzystywana przez aplikacje, nie weryfikowane przez serwer. Naming conventions. (konwencje nazewnictwa). Określa nazewnictwo plików XML dla każdego użytkownika, dokumenty globalne. Resource Interdependencies (Zależności między plikami XML). Określa zależności między modyfikowaniem różnych dokumentów dla użytkowników, dokumentów globalnych, plikach rls. Authorization Policies (polityka autoryzacji). Określa zasady dostępu do danych dla różnych plików i dokumentów. Domyślnie użytkownik może odczytywać i edytować swoje określone dokumentu. Każde wykorzystanie aplikacji (Application Usage) jest reprezentowane przez klasę Java rozszerzająca klasę org.mobicents.xdm.server.appusage.appusage. Strona 42 / 101

43 7. Pozostałe elementy platformy Mobicents. 7. Pozostałe elementy platformy Mobicents. 7.1 Mobicents Sip Servlets Otwarta platforma służąca szybkiemu rozwojowi oraz uruchamianiu aplikacji opierających się na protokole SIP oraz aplikacji konwergentnych JEE. Pierwsza implementacja SIP servlets v1.1 może być uruchomiona w środowiskach Tomcat, Jboss i itp. kontenerów Java Enterprise. Serwlety Mobicents dostarczają wysoką wydajność, bezpieczeństwo oraz szybszy rozwój aplikacji, serwisów poprzez kooperatywność ze standardami SIP Servlets oraz JAIN SLEE (JSLEE). Środowisko wspiera referencyjną implementację JAIN-SIP jest to biblioteka Javy wspierająca protokół SIP. Najnowsza wersja Mobicents SIP Servlets jest certyfikowana ze standardami SIP Servlets Mobicents Media Server Serwer multimedialny w języku Java kontrolowany poprzez MGCP. Serwer ten powstał z myślą o możliwości połączenia różnych sieci VoIP w jednej bramie medialnej. Założenia projektowe : Dostarczenie kompletnej funkcjonalności bramy medialnej o jak najwyższej jakości. Spełnienie wymagań sieci konwergentnych i NGN. Wzrost elastyczności co do możliwości funkcjonalnej bramy. Szybka możliwość rekonfiguracji sieci i serwera. Serwer wspiera najpopularniejsze kodeki takie jak : G.711 au, GSM, Speex nb, G.729. Możliwości : Wspieranie SSS7 Wspieranie H.261 video. IVR i detekcja DTMF. Tworzenie punktów dostępowych konferencje. Ogłaszanie punktów dostępowych. Punkt dostępowy / pośredniczący dla sieci pakietowych. Kontroler protokół MGCP, MEGACO, MSML. Strona 43 / 101

44 7. Pozostałe elementy platformy Mobicents. 7.3 Mobicents Diameter Implementacja serwera oraz klientów dla rodziny protokołów typu Diameter. Jest to technologia AAA (Authorisation, Authentication, Accoutning) czyli Autoryzacja, Autentykacja i Naliczanie. Implementacja spełnia normy IETF, pozwala na elastyczniejsze oraz lepiej dostosowane polityki bezpieczeństwa niż RADIUS. Diameter jest przyjęty przez organizację 3GPP oraz 3GPP2 aby zapewnić techniki AAA w sieciach IMS zgodnie z założeniami projektowymi danych zastosowań. Otwartość standardów pozwala w oparciu o nie tworzyć autorskie systemu bezpieczeństwa zgodnie z potrzebami. Diameter zapewnia otwartą (open source) implementację podstawowego protokołu oraz najpopularniejszych aplikacji co pozwala na szybki rozwój potrzebnych technologii w oparciu o gotowe podstawowe rozwiązania. Moduł ten zawiera m.in. : Serwer aplikacji (AS Application Server), Serwer subskrybentów (HSS Home Subscriber Server), Kontrolę sesji (CSCF Call Session Control Function), Funkcja lokalizacji użytkownika (SLF Subscrier Location Function). Zalety serwera : Wysoki współczynnik dostępności usługi. Generacja statystyk. Monitorowanie przeciążenia. Różne interfejsy do zarządzania serwerem. Walidacja wiadomości na serwerze. Rozszerzenia pozwalające testować specyficzne implementacje. Łatwo rozszerzalne aplikację Diameter. 7.4 Mobicents SS7 Jest to zbiór zaimplementowanych w Javie adapterów dla technologii SS7 oraz ISDN : MTP2,3, ISUP, SCCP, TCAP, CAMEL oraz MAP. Pozwala to na łączenie sieci SS7 z sieciami TCP/IP. Elementy modułu SS7 są kompatybilne z częściami sieci telekomunikacyjnych takimi jak: ISDN User Part (ISUP) definiuje protokół do zarządzania łączami dla telefonii ISDN pomiędzy dwoma abonentami. Wykorzystywany jest nie tylko dla połączeń ISDN. Strona 44 / 101

45 7. Pozostałe elementy platformy Mobicents. Telephone User Part (TUP) zapewnia wsparcie podstawowym wiadomościom sygnalizacyjnym zestawiającym połączenie takimi jak np. setup. Przetwarza sygnały analogowo, najczęściej wyniesiony do elementu ISUP. Signalling Connection Control Protocol (SCCP) zapewnia usługi połączeniowe oraz bezpołączeniowe oraz transfer połączeń globalnych. SCCP wykorzystywany jest jaka warstwa transportowa dla serwisów wykorzystujących TCAP. Transaction Capabilities Application Part (TCAP) Wspiera przenoszenie informacji nie sygnalizacyjnych pomiędzy aplikacjami w sieci SS7 wykorzystując bezpołączeniowo SCCP. Wykorzystywany przy odpytywaniu o numer abonenta, systemie AAA, identyfikacji i itp. 7.5 Mobicents Incubator Incubator to platforma na której rozwijane są różne projekty, które jeszcze nie posiadają działających wersji udostępnionych szerszej publice. Tutaj projekty mogą się rozwijać do stabilnych wersji oraz uzyskać certyfikację zgodności zresztą systemu. Niektóre aktualnie rozwijane projekty : Mobients Telco Cloud pozwala na wykorzystanie infrastruktury Mobicentsa jako usługi. IaaS Infrastructre as a Service. Mobicents RestComm ma na celu udostępnienie Mobicentsa jako Saas Software as a Service. SIP Load Balancer pozwala na kształtowanie obciążenia serwera przez zapytania SIP, może być zintegrowany z klastrowym systemem Mobicents. Mobicents Stream Library Ma na celu stworzenie API pozwalającego na różnego rodzaju operację wejścia i wyjścia (I/O). Pozwala to na realizację wysoce asynchronicznego środowiska do wykorzystania dla użytkowników. SMPP Stack Pozwala na wykorzystanie protokołu Short Message Peer to Peer, który jest otwartym standardem mającym na celu zapewnić elastyczną i bezproblemową wymianę wiadomości tekstowych. Wiadomości te mają być docelowo wysyłana przez różnego rodzaje sieci GMS, IP, WAP i itp. Ma to zapewnić bardzo elastyczne i nieograniczone możliwości w przesyłaniu podstawowych informacji. Strona 45 / 101

46 8 Projekty o podobnej ideologii. 8 Projekty o podobnej ideologii. 8.1 Rhino Open Cloud główny konkurent platformy Mobicents. Projekt powstały w 2000 roku w Wellington w Nowej Zelandii. Wykorzystując JSLEE ma na celu zapewnić integrację między sieciami IP i telekomunikacyjnymi (głównie SS7) różnych technologii. OpenCloud posiada zgodność ze standardem JSLEE 1.1 i jest częścią grupy eksperckiej dla procesów społeczności Java (Java Community Process). System posiada własne SDK, firma zapewnia komercyjne wsparcie. Portal systemu posiada bogate zasoby odnośnie platformy i jej rozwoju. Specyfikacje i dokumentacje dostępne są dla każdego. Podobnie jak Mobicents ma budowę modułową : Rhino Telecom Application Server serwer JAIN SLEE. Rhine Service Interaction Server broker serwisów telekomunikacyjnych. Rhino Sentinel kontroler sesji czasu rzeczywistego dla systemów naliczania. 8.2 IBM WebSphere XML Document Management Server IBM WebSphere XML Document Management Server jest niezależnym od aplikacji i usług środowiskiem zarządzania dowolnymi dokumentami XML. Wlicza się w to typy : listy grup, profile użytkowników, informacje kontaktowe, zasady autoryzacji i inne. Ułatwia wykorzystanie najczęściej dostępnych danych. Używa standaryzowanych mechanizmów dostępu. Ułątwia zarządzanie aplikacjami poprzez centralizowany punkt wykorzystujący standardy IETF, OMA, ETFI oraz 3GGP.vendors applications, using IETF, OMA, ETSI and 3GPP standards. Niezależność serwera od usług i aplikacji. Strona 46 / 101

47 8 Projekty o podobnej ideologii. Strona 47 / 101

48 Część praktyczna realizacja i kod źródłowy. Część praktyczna realizacja i kod źródłowy. 1. Środowisko uruchomieniowe i narzędzia. Podstawą do uruchomienia systemu Mobicents SIP Presence Server jest system klasy Windows albo Linux. Aby dodatkowo instalować aplikacje wymagany jest pakiet Maven oraz repozytorium SVN, z którego możemy skompilować oraz zainstalować interesujące nas biblioteki i funkcjonalności. Realizacja środowiska uruchomieniowego i w oparciu o : System Ubuntu Maverick : Jeden z najbardziej popularnych systemów opartych o system Debian. Szerokie grono użytkowników pozwala na łatwy dostęp do wielu informacji odnośnie działania systemu. Aktualnie jego popularność spada na rzecz systemu Linux Mint (również baza Debian). Oprogramowanie : Maven narzędzie automatyzujące kompilacje i budowę oprogramowania. Kody źródłowe platformy Mobicents są tworzone w oparciu o narzędzie automatyzujące projekt budowy oprogramowania Apache Maven. Poszczególne funkcjonalności realizują biblioteki (wtyczki), które są automatyczne pobierane z repozytoriów przy ich pierwszym wykorzystaniu. Każdy projekt posiada plik XML określający sposób budowy oprogramowania POM.xml Project Object Model. Przedstawia on wszystkie potrzebne informację do budowy programu. W nim zawarte są zależności odnośnie plików JAR z klasami, obiektami jakie są wymagane, aby bezproblemowo skompilować kod. Platforma Mobicents SIP Presence Server. Mobicents SIP Presence Server -pakiet oprogramowania zawiera zintegrowany serwer XDMS, serwer list zasobów oraz Serwer Obecności (Presence Server) oraz wbudowane biblioteki JSLEE. Nazwa pliku : mobicents-sip-presence-integrated final.zip Strona 48 /(101)

49 1. Środowisko uruchomieniowe i narzędzia. Eclipse Helios.. Środowisko programistyczne dla JavaEE. Dodatkowo zawiera pluginy : Maven2Eclipse oraz EclipSLEE. Maven2Eclipse pozwala na integrację sposobu kompilacji Maven a dodatek EclipSLEE pozwala na łatwe generowanie podstawowego kodu aplikacji JSLEE i tworzenie bloków usług SBB. Repozytorium Subversion zawierające kod źródłowy. Subversion to system kontroli wersji oprogramowania. Pozwala na zarządzanie wersjami rozwijanego oprogramowania i przechowywania ich na zewnętrznych serwerach. Kod źródłowy wykorzystany do kompilacji potrzebnych pakietów pochodzi z repozytorium : Możemy go pobrać za pomocą klienta svn przy użyciu komendy : # svn checkout Wireshark. Popularny program do obserwacji pakietów IP. Skompilowano i uruchomiono : Mobicents JAIN SLEE XDMS Client Enabler, Mobicents JAIN SLEE XCAP Client Resource Adaptor znajdują się prekompilowane w pakiecie Mobicents SIP Presence Server Integrated Zostały one jednak rekompilowane i zainstalowane w celu sprawdzenia czy kod aktualnie znajdujący się w repozytorium jest kompatybilny z wersją MSPS udostępnianą do pobrania na stronie www projektu. Jedyną wymaganą rzeczą do instalacji, aby móc zaobserwować podstawowe działanie oraz wiadomości protokołu XCAP jest aplikacja kliencka protokołu XCAP znajdujące się w repozytorium. Mobicents JAIN SLEE XDM Client Enabler JAIN SLEE XDM Client Enabler pozwala aplikacjom JSLEE na współpracę z serwerem XDM pomijając złożoność protokołów sieciowych. Enabler składa się z bloku SBB, który może być wykorzystywany do tworzenia asynchronicznych interfejsów. Serwer XDMS jest elementem funkcjonalnym wykorzystywanym w sieciach obecności (Presence Networks) SIP OMA oraz 3GPP do zarządzania dokumentami XML. Serwer XDMS jest głównie działa z dodatkowymi interfejsami jak np. XCAP Diff pozwalającymi na subskrypcję kiedy zmieniono zawartość dokumentów poprzez protokół XCAP. Strona 49 /(101)

50 1. Środowisko uruchomieniowe i narzędzia. Mobicents JAIN SLEE XCAP Client Resource Adaptor Adaptor zasobów JAIN SLEE XCAP adaptuje API klienta protokołu XCAP do domeny JSLEE. Adaptor pozwala na wysyłanie zapytań XCAP do XCAP serwera np. Mobicents XCAP Serwer. Adaptor pozwala na wysyłanie oraz odbieranie zapytań synchronicznie, asynchronicznie oraz blokowanie zapytań dopóki nie serwer nie otrzyma odpowiedzi na wysłane dane. Preferowane użycie w domenie JAIN SLEE to model asynchroniczny. Mobicents XCAP Client Example Przykładowa realizacja wykorzystania technologii JAIN SLEE do zarządzania plikami XML na serwerze XDMS. Realizacja funkcji synchronicznej i asynchronicznej. Program pozwala na obserwację tworzenia dokumentu XML w bazie serwera oraz otrzymania odpowiedzi na zapytanie XCAP. Dodatkowo przy pomocy programu Wireshark możliwe jest obserwowanie pakietów IP. Strona 50 /(101)

51 2.AppUsage class (klasa wykorzystań aplikacji). 2.AppUsage class (klasa wykorzystań aplikacji). Tworzenie włanych wykorzystań aplikacyjnych dla protkołu xcap na serwerze xdm. Mobicents XDM Server XCAP Application Usage (wykorzystanie aplikacji xcap w serwerze mpsp) wymaga na zaimplementowani kilku prostych klas Java oraz pewnych meta informacji. Każde wykorzystanie aplikacyjne (AppUsage) jest określane przez klasę Java rozszerzającą klase abstrakcyjną org.mobicents.xdm.server.appusage.appusage class. Kod : 1. package org.mobicents.xcap.server.slee.appusage.presrules; 2. public class PresRulesAppUsage extends AppUsage { 3. public static final String ID = "pres-rules"; 4. public static final String DEFAULT_DOC_NAMESPACE = "urn:ietf:params:xml: ns:pres-rules"; 5. public static final String MIMETYPE = "application/auth-policy+xml"; 6. private static final String AUTH_ONLY_DOCUMENT_NAME = #index#; public PresRulesAppUsage(Validator schemavalidator) { 9. super(id,default_doc_namespace,mimetype,schemavalidator,auth _ONLY_DOCUMENT_NAME); 10. } 11. } Metody dostępne dla walidacji schematu, wartości danych oraz zależności zasobów mogą być stworzone zgodnie z potrzebami : public void validateschema(...); public void checkconstraintsonput(...); public void checkconstraintsondelete(...); public void processresourceinterdependenciesonputdocument(...); public void processresourceinterdependenciesondeleteelement(...); //... Gotowe przykłady wykorzystania tych klas możemy znaleźć w kodzie źródłowym w repozytorium kodu projektu. Klasa zawiera też różne konstruktory, ich wykorzystanie zależy on naszych potrzeb i założeń projektowych. Strona 51 /(101)

52 2.AppUsage class (klasa wykorzystań aplikacji). 1. public AppUsage(String auid, String defaultdocumentnamespace, String mimetype, 2. Validator schemavalidator, String authorizeduserdocumentname); public AppUsage(String auid, String defaultdocumentnamespace, String mimetype, 5. Validator schemavalidator, AuthorizationPolicy authorizationpolicy); public AppUsage(String auid, String defaultdocumentnamespace, String mimetype, 8. Validator schemavalidator, Validator uniquenessschemavalidator, 9. String authorizeduserdocumentname); public AppUsage(String auid, String defaultdocumentnamespace, String mimetype, 12. Validator schemavalidator, Validator uniquenessschemavalidator, 13. AuthorizationPolicy authorizationpolicy); Domyślnie użytkownik może odczytywać i edytować swoje określone dokumenty App Usage Factory Class Implementacja objektu typu Object Factory *(fabryka obiektów) jest wymagana. Powinna rozszerzać klasę interfejsu org.mobicents.xdm.server.appusage.appusagefactory. Klasa AppUsageFactory pozwala nam na uproszczenie w tworzeniu kodu, gdzie do zmiennej możemy przypisać polecenie stworzenia nowego obiektu danego typu. Klasa AppUsageFactory : 1. package org.mobicents.xcap.server.slee.appusage.presrules; public class PresRulesAppUsageFactory implements AppUsageFactory { 4. private Schema schema = null; 5. public PresRulesAppUsageFactory(Schema schema) { 6. this.schema = schema; 7. } 8. public AppUsage getappusageinstance() { 9. return new PresRulesAppUsage(schema.newValidator()); 10. } 11. public String getappusageid() { 12. return PresRulesAppUsage.ID; 13. } 14. public AppUsageDataSourceInterceptor getdatasourceinterceptor() { 15. return null; 16. } 17. } Strona 52 /(101)

53 2.AppUsage class (klasa wykorzystań aplikacji). Fabryka objektów pozwala na utrzymanie pamięci / puli obiektów dla naszej aplikacji ponieważ obiekty walidatora są kosztowne w tworzeniu pod względem zasobów. Fabryka pozwala również na łątwe generowanie obiektów na żadanie, np. Dokumentów XML lub odpowiedzi na żądania. Odpowiednio zaimplementowane zapewnia łatwą zgodność z wcześniejszymi wersjami klas App Usage Deployer Class oraz deskryptor XML. Deployer to klasa służąca do załadowania I usuwania aplikacji xcap z serwera XDM. Powinien rozszerzać klasę org.mobicents.xdm.server.appusage.appusagedeployer: 1. package org.mobicents.xcap.server.slee.appusage.presrules; 2. public class PresRulesAppUsageDeployer extends AppUsageDeployer { public AppUsageFactory createappusagefactory(schema schema) { 6. return new PresRulesAppUsageFactory(schema); 7. } 9. public String getschemarootnamespace() { 10. return PresRulesAppUsage.DEFAULT_DOC_NAMESPACE; 11. } 12. } Wiele plików XML z różnymi schematami może być mieszane ze soba. Punktem wyjścia jest przestrzeń nazw zwracana przez funkcję getschemarootnamepsace() co nie zawsze jest zgodne z przestrzenią nazwe dla naszej aplikacji. Deployer to ziarno Jboss Microcontainer Bean oraz plik jboss-bean.xml umiejscowiony w folderze META-INF pliku bilioteki JAR. Jboss Microcontainer Bean (Ziarno mikrokontrolera Jboss zapewnia obsługę prostych objektów javy (POJO plain old java object) w infrastrukturze Java Enterprise. Może być uruchamiane jako oddzielne środowiko dla tych właśnie elementów. Plik jboss-bean.xml: Strona 53 /(101)

54 2.AppUsage class (klasa wykorzystań aplikacji). 1. <?xml version="1.0" encoding="utf-8"?> 2. <deployment xmlns:xsi=" 3. xmlns="urn:jboss:bean-deployer:2.0"> 4. <!-- Registers the APP USAGE DEPLOYER AS JBOSS MICROCONTAINER BEA N --> 5. <bean name="mobicents.xdms.appusage.deployer.presrules" class="org.mobi cents.xcap.server.slee.appusage.presrules.presrulesappusagedeployer"> 6. <!-- this app usage depends on app usage management only --> 7. <depends>mobicents.xdms.appusagemanagement</depends> 8. </bean> 9. </deployment> Wymagane stworzenie jest unikalnej nazwy ziarna oraz klasy obiektu Deployer. Nic innego nie wymaga zmian. Struktura jest bardzo uniwersalna Pakiet oraz uruchamianie aplikacji wykorzystującej XCAP. Klasy aplikacji i meta dane powinny być zawarte w pliku JAR zgodnie ze strukturą : example-appusage.jar -META-INF ---jboss-beans.xml (jboss mc bean descriptor) -org ---mobicents xdm server appusage example ExampleAppUsage (app usage class) ExampleAppUsageFactory (factory class) ExampleAppUsageDeployer (deployer class) ExampleAuthorizationPolicy (optional auth policy class) Abu uruchomić aplikację wystarczy skopiować plik JAR do folderu : $JBOSS_HOME/server/default/deploy/mobicents-xdms(albo mobicents-sippresence)/3.beans/appusages. Aby usunąć obsługę danej aplikacji wystarczy usunąć plik deployer dla danego zastosowania. Strona 54 /(101)

55 2.AppUsage class (klasa wykorzystań aplikacji). Plik *.xsd ze schematem plików XML należy skopiować do folderu XSD znajdującym się w $JBOSS_HOME/server/default/deploy/mobicents-xdms(albo mobicents-sippresence)/3.beans/appusages. Należy pamiętać : Referencje między plikami XML należy podać przez stosowanie elementu <import>. Przestrzeń nazw może być definiowana tylko w pojedyńczym pliku XSD Dodawanie własnych XCAP AppUsage dla systemu Mobicents. Jako własny wkład do systemu Mobicents można stworzyć implementację XCAP AppUsage dla standardowych aplikacji wedle standardów IETF, OMA oraz innych organizacji standaryzujących. Powinno się zatwierdzać gotową aplikację, pliki schematów XSD oraz aplikację testującą daną implementację. Strona 55 /(101)

56 4. Realizacja i przykład wykorzystania protokołu XCAP. 4. Realizacja i przykład wykorzystania protokołu XCAP. Wykorzystanie protokołu xcap opiera się o realizację formularza html, przechwytywaniu zmiennych GET przez SBB oraz zwracanie wyniku w postaci prostej strony HTML. Stworzono dla celów realizacji : Formularz html przyjmujący i przekazujący dane do SBB. SBB rozszerzając interfejs JSLEE SBB przyjmujący zmienne GET. Następnie przetwarzanie danych zapewnia wymagany rezultat. Klasa deployer wymagana do uruchomienia SBB. 4.2 Opis kodu klienta XCAP. (opisać różnice SYNC i ASYNC) asynchroniczne dziala ale nie ma jak zwrocic w servlecie info oddzielnie po naglowkach? Mobicents JAIN SLEE Client Resource Adaptor. Klient XCAP jest zintegrowany z domeną JAIN poprzez adaptor zasobów. Adaptor zasobów (Ra Resource Adaptor) pozwala na przesyłanie żądań XCAP do serwera. Możliwe są dwa wykorzystania tego komponentu. Wysyłanie i odbieranie żądań synchronicznie, blokując możliwość obsługi innych zgłoszeń do czasu otrzymania odpowiedzi. Obsługa zdarzeń asynchroniczna preferowana ze względu na charakter modelu sieci. Adaptor zasobów to klasa typu interfejs zapewnia zbiór metod wymagających implementacji. Metody te stanowią klasę XCAP CLIENT. Metody te pozwalają na pełną manipulację dokumentami XML na serwerze XDM. Lista metod interfejsu org.mobicents.xcap.client.xcapclient : Metody zwracają obiekt org.mobicents.xcap.client.xcapresponse, z którego odczytujemy dane otrzymaniu w wyniku odpowiedzi serwera na żądanie XCAP. The setauthenticationcredentials(credentials) method: Jeżeli nie są podane dane autentykacyjne (login i hasło) ustawiana jest wartość domyślna dla żądań XCAP. Strona 56 /(101)

57 4. Realizacja i przykład wykorzystania protokołu XCAP. The unsetauthenticationcredentials() method: Usuwa dane autoryzacyjne. The shutdown() method: Brak implementacji. The get(uri, Header[], Credentials) method: Uzyskuje zasoby XCAP zgodne z adresem URI. Można też dodać dodatkowe nagłówki HTTP. The put(uri, String, String, Header[], Credentials) method: Zapisuje podane dane XML do zasobów XCAP podanych w adresie URI. Mimetype musi być zgodny z treścią zapisywanych danych. Można określić dodatkowe nagłówki oraz dane autoryzacyjne. The put(uri, String, byte[], Header[], Credentials) method: Zapisuje dane XML w formacie byte[]10. The putifmatch(uri, String, String, String, Header[], Credentials) method: Zapisuje dane XML jeżeli tag etag zgadza się z tym podanym jako parametr funkcji służy do nadpisywania. Dodatkowo definiujemy : mimetype, dane uwierzytelniające, nagłówek dodatkowy. The putifmatch(uri, String, String, byte[], Header[], Credentials) method: Zapisuje dane XML w formacie byte[]. The putifnonematch(uri, String, String, String, Header[], Credentials) method: Zapisuje dane jeżeli podany etag nie istnieje. The putifnonematch(uri, String, String, byte[], Header[], Credentials) method: Zapisuje dane w formacie byte[]. The delete(uri, Header[], Credentials) method: Usuwa zasoby XML zgodnie z podanym adresem URI w żądaniu XCAP. The deleteifmatch(uri, String, Header[], Credentials) method: Usuwa zasoby zgodnie z podanym tagiem etag. The deleteifnonematch(uri, String, Header[], Credentials) method: Usuwa dane XML jeżeli nie znaleziono podanego taga etag. 10 Format byte[] przechowuje znaki w formacie ASCII zamiast Unicode. Wartości znaków przujmują wartośći Strona 57 /(101)

58 4. Realizacja i przykład wykorzystania protokołu XCAP. 4.3 Schemat przesyłania danych przez formularz HTML. Podstawowa komunikacja z serwerem XDM zaczyna się przez wypełnienie formularza HTML, którym zostaną przesłane dane odnosnie akcji jakie ma wykonać blok SBB. Metoda formularza to GET (istnieje możliwość implementacji również metody POST i innych). Blok obsługuje zdarzenie przyjścia danych wysłanych metodą GET z formularza HTML. Obsługa zdarzenia zaimplementowano z funkcjonalności servletów java. Po przekazaniu danych do bloku SBB uruchomiony jest klient XCAP, który przesyła odpowiednie żądanie do serwera XDM. Obsługa zdarzenia odpowiedzi pozwala na pobranie interesujących elementów z dokumentów XML a następnie zwrócenie ich w postaci prostej strony HTML. Ilustracja 16: Schemat fromularza html i serwera XDM. Strona 58 /(101)

59 4. Realizacja i przykład wykorzystania protokołu XCAP. 4.4 Blok SBB. Service Building Block blok oprogramowania zawierający kod oraz logikę wykonywanych zadań w systemie Komponent SBB. SBB definiuje i składa się z elementów11 : Typów zdarzeń (ang. Event types) otrzymywanych i wysyłanych przez komponent SBB. Stan instancji bloku Sbb przechowywany w polu CMP Kontenerze stanu zarządzanego (ang. Container Managed Persistent). Metody zdarzeń (ang. Event methods). Komponent SBB obsługuje zdarzenia zgodnie z zaimplementowanymi ich typami oraz zdarzenia dla jakich jest źródłem. Interfejs lokalny i jego metody określają synchroniczne zastosowanie bloku SBB. Lokalne metody interfejsu SBB mogą zostać uruchomione tylko i wyłącznie przez inny blok SBB. Relacje rodzic - dziecko. Komponent SBB może posiadać relacje z wieloma elementami SBB. Połączenia między elementami opisane są w deskryptorach XML. Współdzielone dane. Komponent SBB określa poprzez atrybutu kontekstu aktywności (ang. Activity Context Attributes) zmienne i dane współdzielone. Każdy atrybut posiada nazwę i typ. Dostępność zapewniają interfejsy dla różnych kontekstów aktywności. Relację pomiędzy elementami SBB w relacjach rodzic dziecko przyjmują postać grafu. Elementy SBB są węzłami grafu, krawędzie (skierowane lub nieskierowane) pokazują relację pomiędzy komponentami. Wartości krawędzi wskazują na priorytet relacji podczas przetwarzania. 11 JAIN SLEE 1.1 Specification Proposed Final Draft, rozdział Strona 59 /(101)

60 4. Realizacja i przykład wykorzystania protokołu XCAP. Ilustracja 17: Graf ukazujący relacje rodzic - dziecko elementów SBB. Priorytet w grafach wskazuje na kolejność w jakiej SLEE przesyła do elementów SBB przychodzące zdarzenia. Rodzic SBB zawsze otrzymuje zdarzenie przed elementami dzieci, w przypadku braku ustawienia priorytetów (na krawędziach grafu) ustawiana jest wartość domyślna. Obiekt SBB Obiekt SBB jest instancją SLEE wygenerowanej klasy rozszerzającej abstrakcyjną klasę SBB (javax.slee.sbb). Podczas uruchomienia SLEE system uruchamia bloki SBB i dodaje je do puli komponentów uruchomionych. Komponenty po uruchomieniu znajdują się w stanie gotowości (ang. Ready state) i są gotowe na przyjmowanie i obsługę zdarzeń oraz wykonywania logiki w nich zawartej.. Każdy element SBB posiada interfejs lokalny. Uruchamianie metod w blokach potomnych (dzieciach) jest synchroniczne i możliwe tylko w drzewie bloków. Aktywność (Activity) Aktywność reprezentuje skorelowany strumień zdarzeń. Przykładowo wybieranie numeru do osoby może być aktywnością (ang. Activity). Obiekt aktywności (ang. Activity object) jest to obiekt klasy Java enkapsulujący aktywność oraz może on zapewniać metody zapewniające dostęp do danych i przetwarzania Strona 60 /(101)

61 4. Realizacja i przykład wykorzystania protokołu XCAP. ich. Przykładowo klasa Jcc (ang. Java Call Control ) jest aktywnością reprezentującą dzwonienie do kogoś. Kontekst Aktywności (ang. Activity Context) Kontekst aktywności reprezentuje i enkapsuluje obiekt aktywności. Zachodzi relacja jeden do jednego pomiędzy kontekstem i daną aktywnością. Kontekst zawiera atrybuty, które mogą być współdzielone przez wiele elementów SBB, które wykorzystują obiekt aktywności. Encję SBB mogą odczytywać i zapisywać dane przechowywane w kontekście. Kontekst jest kanałem dla zdarzeń, który akceptuje zdarzenia uruchamiane w kontekście i przesyła je do odpowiednich bloków SBB przypisanych do kontekstu. SBB może wywoływać funkcję innych bloków SBB w sposób asynchroniczny poprzez wywoływanie zdarzeń do kontekstu aktywności, który odpowiednio je rozdysponuje pomiędzy bloki. Encja SBB może być przypisana do wielu kontekstów co zapewnia możliwość obsługi wielu zdarzeń. SBB może otrzymać zdarzenia tylko od kontekstów, do których jest przypisany. SLEE dodaje oraz usuwa encję SBB z kontekstów w sytuacji12 : Podczas tworzenia nowego obiektu SBB (rodzic, ang. Root ) w czasie uruchomienia metody setsbbcontext. Usuwa podczas zakończenia życia obiektu aktywności w kontekście. Podczas usuwania SBB z drzewa komponentów, niszczone są wszystkie połączenia z kontekstami. Bloki SBB mogą przypisywać się do kontekstów aktywności oraz z nich usuwać. Pozwala to na modyfikowanie zdarzeń obsługiwanych przez blok SBB w trakcie jego działania. 12 JAIN SLEE 1.1 Specification, Proposed Final Draft, rozdział Strona 61 /(101)

62 4. Realizacja i przykład wykorzystania protokołu XCAP. Strona 62 /(101)

63 4. Realizacja i przykład wykorzystania protokołu XCAP. Ilustracja 18: Relacje pomiędzy SBB oraz kontekstem aktywności Metody zaimplementowane w bloku SBB opis klasy. Domyślne metody interfejsu Sbb : public void sbbactivate() {} public void sbbcreate() throws CreateException {} public void sbbexceptionthrown() {} public void sbbload() {} public void sbbpassivate() {} public void sbbpostcreate(){} public void sbbremove() {} public void sbbrolledback(){} public void sbbstore() {} public void setsbbcontext(){} public void unsetsbbcontext() {} Strona 63 /(101)

29. Poprawność składniowa i strukturalna dokumentu XML

29. Poprawność składniowa i strukturalna dokumentu XML 29. i strukturalna dokumentu XML 13 października 2015 1 2 Poprawny składniowo dokument XML powinien być tworzony zgodnie z poniżej przedstawionymi zasadami. Deklaracja XML Powinien zawierać deklarację

Bardziej szczegółowo

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB Przemysław Rudzki RHCX, RHCI, JBoss Certified Trainer Niezależny Konsultant Plan prezentacji Ostatnie zakupy RedHat/JBoss MetaMatrix Mobicents Technologie

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition WebServices Serwer aplikacji GlassFish Dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Aplikacje

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA INFORMATYKI Mobicents VoIP Projekt wykonany w ramach SIUS i IOSR Biolik Wojciech Błazej Kardyś Informatyka,

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition. WebServices. Język XML. Serwer aplikacji GlassFish. Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki

Bardziej szczegółowo

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1 WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1 SGML (Standard Generalized Markup Language) Standardowy uogólniony język znaczników służący do ujednolicania struktury i formatu różnego typu informacji (danych). Twórcy

Bardziej szczegółowo

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak Serwery Autorzy: Karol Czosnowski Mateusz Kaźmierczak Czym jest XMPP? XMPP (Extensible Messaging and Presence Protocol), zbiór otwartych technologii do komunikacji, czatu wieloosobowego, rozmów wideo i

Bardziej szczegółowo

Serwery LDAP w środowisku produktów w Oracle

Serwery LDAP w środowisku produktów w Oracle Serwery LDAP w środowisku produktów w Oracle 1 Mariusz Przybyszewski Uwierzytelnianie i autoryzacja Uwierzytelnienie to proces potwierdzania tożsamości, np. przez: Użytkownik/hasło certyfikat SSL inne

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

EJB 3.0 (Enterprise JavaBeans 3.0)

EJB 3.0 (Enterprise JavaBeans 3.0) EJB 3.0 (Enterprise JavaBeans 3.0) Adrian Dudek Wirtualne Przedsiębiorstwo 2 Wrocław, 1 czerwca 2010 Plan prezentacji 1 Wprowadzenie Cel prezentacji Czym jest EJB 3.0? Historia 2 3 Cel prezentacji Wprowadzenie

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

Ministerstwo Finansów

Ministerstwo Finansów Ministerstwo Finansów Departament Informatyzacji Specyfikacja Wejścia-Wyjścia Wersja 1.0 Warszawa, 16.02.2017 r. Copyright (c) 2017 Ministerstwo Finansów MINISTERSTWO FINANSÓW, DEPARTAMENT INFORMATYZACJI

Bardziej szczegółowo

Web frameworks do budowy aplikacji zgodnych z J2EE

Web frameworks do budowy aplikacji zgodnych z J2EE Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida promotor: dr Dariusz Król Przypomnienie Celem pracy jest porównanie wybranych szkieletów programistycznych o otwartym kodzie źródłowym

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio Czym jest jpalio? jpalio to unikalna platforma technologiczna pozwalająca na stworzenie szeregu produktów dostosowanych do indywidualnych preferencji klienta. W naszej ofercie znajduje się m.in. system

Bardziej szczegółowo

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7 I Wprowadzenie (wersja 0906) Kurs OPC S7 Spis treści Dzień 1 I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami automatyki I-6 Cechy podejścia dedykowanego

Bardziej szczegółowo

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans. GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans

Bardziej szczegółowo

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) Spis treści Dzień 1 I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami

Bardziej szczegółowo

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy

Bardziej szczegółowo

Bazy danych 2. Wykład 1

Bazy danych 2. Wykład 1 Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

Bardziej szczegółowo

Programowanie Komponentowe WebAPI

Programowanie Komponentowe WebAPI Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,

Bardziej szczegółowo

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym 1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle

Bardziej szczegółowo

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

HP Service Anywhere Uproszczenie zarządzania usługami IT

HP Service Anywhere Uproszczenie zarządzania usługami IT HP Service Anywhere Uproszczenie zarządzania usługami IT Robert Nowak Architekt rozwiązań HP Software Dlaczego Software as a Service? Najważniejsze powody za SaaS UZUPEŁNIENIE IT 2 Brak zasobów IT Ograniczone

Bardziej szczegółowo

EXSO-CORE - specyfikacja

EXSO-CORE - specyfikacja EXSO-CORE - specyfikacja System bazowy dla aplikacji EXSO. Elementy tego systemu występują we wszystkich programach EXSO. Może on ponadto stanowić podstawę do opracowania nowych, dedykowanych systemów.

Bardziej szczegółowo

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie architektury systemu rozproszonego Jarosław Kuchta Zagadnienia Typy architektury systemu Rozproszone przetwarzanie obiektowe Problemy globalizacji Problemy ochrony Projektowanie architektury

Bardziej szczegółowo

ActiveXperts SMS Messaging Server

ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server to oprogramowanie typu framework dedykowane wysyłaniu, odbieraniu oraz przetwarzaniu wiadomości SMS i e-mail, a także tworzeniu własnych

Bardziej szczegółowo

Rola języka XML narzędziem

Rola języka XML narzędziem Wprowadzenie do XML dr inż. Adam Iwaniak Szkolenie w Luboradzy, ZCPWZ, 12-13.02.2009r. Rola języka XML narzędziem Pierwszą rewolucją internetową było dostarczenie ludziom informacji. Znajdujemy się teraz

Bardziej szczegółowo

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy Dokumentacja techniczna Młodzieżowe Pośrednictwo Pracy Spis Treści 1. Widok ogólny architektury MPP... 3 2. Warstwy systemu... 5 3. Struktura systemu/komponentów... 7 3.1 Aplikacje... 7 3.2 Biblioteki...

Bardziej szczegółowo

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE) Programowanie w języku Java Wykład 13: Java Platform, Enterprise Edition (Java EE) Standard J2EE Programowanie w języku Java 2 J2EE - komunikacja Programowanie w języku Java 3 J2EE warstwa biznesowa Programowanie

Bardziej szczegółowo

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008 Adam 1 grudnia 2008 Wstęp Opis Historia Apache kontener serwletów rozwijany w ramach projektu Apache jeden z bardziej popularnych kontenerów Web open source, Apache Software License rozwijany przez ASF

Bardziej szczegółowo

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Programowanie komponentowe Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System Application

Bardziej szczegółowo

Usługi IMP i konferencyjne

Usługi IMP i konferencyjne Usługi IMP i konferencyjne Obecność jako katalizator dla innych usług Konferencja ad hoc, IM, aktywna książka adresowa Wydział Elektroniki i Technik Informacyjnych, PW 2 Obecność w IMS Terminal IMS pełni

Bardziej szczegółowo

Wykład 1 Inżynieria Oprogramowania

Wykład 1 Inżynieria Oprogramowania Wykład 1 Inżynieria Oprogramowania Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowaniaiteracyjno-rozwojowy cykl oprogramowania Autor: Zofia Kruczkiewicz System Informacyjny =Techniczny SI

Bardziej szczegółowo

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż. Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Wstęp Programowanie w Javie 2 mgr inż. Michał Misiak Agenda Założenia do wykładu Zasady zaliczeń Ramowy program wykładu

Bardziej szczegółowo

SiR_13 Systemy SCADA: sterowanie nadrzędne; wizualizacja procesów. MES - Manufacturing Execution System System Realizacji Produkcji

SiR_13 Systemy SCADA: sterowanie nadrzędne; wizualizacja procesów. MES - Manufacturing Execution System System Realizacji Produkcji System informatyczny na produkcji: Umożliwi stopniowe, ale jednocześnie ekonomiczne i bezpieczne wdrażanie i rozwój aplikacji przemysłowych w miarę zmiany potrzeb firmy. Może adoptować się do istniejącej

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

OpenLaszlo. OpenLaszlo

OpenLaszlo. OpenLaszlo OpenLaszlo Spis Treści 1 OpenLaszlo Co to jest? Historia Idea Architektura Jako Flash lub DHTML Jako servlet lub SOLO Jak to działa? Język LZX Struktura programu Skrypty Obiekty i klasy Atrybuty i metody

Bardziej szczegółowo

Systemy obiegu informacji i Protokół SWAP "CC"

Systemy obiegu informacji i Protokół SWAP CC Systemy obiegu informacji i Protokół SWAP Grzegorz Blinowski "CC" Grzegorz.Blinowski@cc.com.pl http://www.cc.com.pl/ tel (22) 646-68-73; faks (22) 606-37-80 Problemy Integracja procesów zachodzących w

Bardziej szczegółowo

Języki programowania wysokiego poziomu WWW

Języki programowania wysokiego poziomu WWW Języki programowania wysokiego poziomu WWW Zawartość Protokół HTTP Języki HTML i XHTML Struktura dokumentu html: DTD i rodzaje html; xhtml Nagłówek html - kodowanie znaków, język Ciało html Sposób formatowania

Bardziej szczegółowo

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152 Wstęp...xv 1 Rozpoczynamy...1 Co to jest ASP.NET?...3 W jaki sposób ASP.NET pasuje do.net Framework...4 Co to jest.net Framework?...4 Czym są Active Server Pages (ASP)?...5 Ustawienia dla ASP.NET...7 Systemy

Bardziej szczegółowo

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Jerzy Brzeziński, Anna Kobusińska, Dariusz Wawrzyniak Instytut Informatyki Politechnika Poznańska Plan prezentacji 1 Architektura

Bardziej szczegółowo

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP WERSJA 1 z 15 Spis treści 1. Kanał email dla podmiotów zewnętrznych...

Bardziej szczegółowo

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Deduplikacja danych. Zarządzanie jakością danych podstawowych Deduplikacja danych Zarządzanie jakością danych podstawowych normalizacja i standaryzacja adresów standaryzacja i walidacja identyfikatorów podstawowa standaryzacja nazw firm deduplikacja danych Deduplication

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2017 Globalna sieć Internet Koncepcja sieci globalnej Usługi w sieci Internet

Bardziej szczegółowo

OSGi Agata Hejmej 4.05.2009

OSGi Agata Hejmej 4.05.2009 OSGi Agata Hejmej 4.05.2009 Plan prezentacji Co to jest OSGi Jakie problemy rozwiązuje Opis standardu Przykładowa aplikacja Podsumowanie korzyści Co to jest OSGi? Standard, który pozwala na tworzenie wysoce

Bardziej szczegółowo

Aplikacje Internetowe, Servlety, JSP i JDBC

Aplikacje Internetowe, Servlety, JSP i JDBC Aplikacje Internetowe, Servlety, JSP i JDBC Opis Java 2 Enterprise Edition (JEE) jest potężną platformą do tworzenia aplikacji webowych. PLatforma JEE oferuje wszystkie zalety tworzenia w Javie plus wszechstronny

Bardziej szczegółowo

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008 JDBC w LoXiMie Interfejs Java Database Connectivity dla systemu LoXiM Adam Michalik 2008 Sterownik JDBC co to jest? Sterownik JDBC to zbiór klas implementujących interfejsy opisane w specyfikacji JDBC

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

JBoss Application Server

JBoss Application Server Zagadnienia Programowania Obiektowego 4 grudnia 2006 1 Co to jest? 2 Co potrafi? Realizowane standardy Własne rozszerzenia Programowanie aspektowe Klastrowanie 3 Jak się z tym pracuje? Instalacja i konfiguracja

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Wykład 3 Inżynieria oprogramowania Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System

Bardziej szczegółowo

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle EFEKTY KSZTAŁCENIA Wiedza Absolwent tej specjalności

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0> Wersja [Uwaga: Niniejszy wzór dostarczony jest w celu użytkowania z Unified Process for EDUcation. Tekst zawarty w nawiasach kwadratowych i napisany błękitną kursywą

Bardziej szczegółowo

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat. Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat. Serwer Tomcat Plan wykładu Opis serwera Jak uruchomić napisaną aplikację Podstawowa konfiguracja Pierwsze uruchomienie Tomcat

Bardziej szczegółowo

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Spring Framework - wprowadzenie i zagadnienia zaawansowane Program szkolenia: Spring Framework - wprowadzenie i zagadnienia zaawansowane Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Spring Framework - wprowadzenie i zagadnienia

Bardziej szczegółowo

Referat pracy dyplomowej

Referat pracy dyplomowej Referat pracy dyplomowej Temat pracy: Wdrożenie intranetowej platformy zapewniającej organizację danych w dużej firmie na bazie oprogramowania Microsoft SharePoint Autor: Bartosz Lipiec Promotor: dr inż.

Bardziej szczegółowo

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7 AUREA BPM Oracle TECNA Sp. z o.o. Strona 1 z 7 ORACLE DATABASE System zarządzania bazą danych firmy Oracle jest jednym z najlepszych i najpopularniejszych rozwiązań tego typu na rynku. Oracle Database

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: 209216. Aukcjomat

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: 209216. Aukcjomat Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Paweł Parys Nr albumu: 209216 Aukcjomat Praca licencjacka na kierunku INFORMATYKA w zakresie INFORMATYKA Praca wykonana pod kierunkiem

Bardziej szczegółowo

Web Services. Wojciech Mazur. 17 marca 2009. Politechnika Wrocławska Wydział Informatyki i Zarządzania

Web Services. Wojciech Mazur. 17 marca 2009. Politechnika Wrocławska Wydział Informatyki i Zarządzania Standardy w Rodzaje Przykłady Politechnika Wrocławska Wydział Informatyki i Zarządzania 17 marca 2009 Standardy w Rodzaje Przykłady Plan prezentacji 1 Wstęp 2 Standardy w 3 4 Rodzaje 5 Przykłady 6 Standardy

Bardziej szczegółowo

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne Jarosław Kuchta Internetowe Usługi Informacyjne Komponenty IIS HTTP.SYS serwer HTTP zarządzanie połączeniami TCP/IP buforowanie odpowiedzi obsługa QoS (Quality of Service) obsługa plików dziennika IIS

Bardziej szczegółowo

1. Wprowadzenie...9. 2. Środowisko multimedialnych sieci IP... 11. 3. Schemat H.323... 19

1. Wprowadzenie...9. 2. Środowisko multimedialnych sieci IP... 11. 3. Schemat H.323... 19 Spis treści 3 1. Wprowadzenie...9 2. Środowisko multimedialnych sieci IP... 11 2.1. Model odniesienia... 11 2.2. Ewolucja technologii sieciowych...12 2.3. Specyfika ruchowa systemów medialnych...13 2.4.

Bardziej szczegółowo

OfficeObjects e-forms

OfficeObjects e-forms OfficeObjects e-forms Rodan Development Sp. z o.o. 02-820 Warszawa, ul. Wyczółki 89, tel.: (+48-22) 643 92 08, fax: (+48-22) 643 92 10, http://www.rodan.pl Spis treści Wstęp... 3 Łatwość tworzenia i publikacji

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Dotacje na innowacje. Inwestujemy w waszą przyszłość. PROJEKT TECHNICZNY Implementacja Systemu B2B w firmie Lancelot i w przedsiębiorstwach partnerskich Przygotowane dla: Przygotowane przez: Lancelot Marek Cieśla Grzegorz Witkowski Constant Improvement Szkolenia

Bardziej szczegółowo

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji OMNITRACKER Wersja testowa Szybki przewodnik instalacji 1 Krok 1:Rejestracja pobrania (jeżeli nie wykonana dotychczas) Proszę dokonać rejestracji na stronieomninet (www.omnitracker.com) pod Contact. Po

Bardziej szczegółowo

Analiza i projektowanie aplikacji Java

Analiza i projektowanie aplikacji Java Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie

Bardziej szczegółowo

WYKORZYSTANIE I ROZWÓJ WOLNEGO OPROGRAMOWANIA W WOJEWÓDZKIM WĘŹLE INFRASTRUKTURY INFORMACJI PRZESTRZENNEJ

WYKORZYSTANIE I ROZWÓJ WOLNEGO OPROGRAMOWANIA W WOJEWÓDZKIM WĘŹLE INFRASTRUKTURY INFORMACJI PRZESTRZENNEJ WYKORZYSTANIE I ROZWÓJ WOLNEGO OPROGRAMOWANIA W WOJEWÓDZKIM WĘŹLE INFRASTRUKTURY INFORMACJI PRZESTRZENNEJ Zamawiający: Wojewódzkie Biuro Urbanistyczne we Wrocławiu ul. Świdnicka 12/16 50-068 Wrocław Wykonawca:

Bardziej szczegółowo

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz Projektowanie oprogramowania Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz 1 Wykonanie czterowarstwowej aplikacji EE z dostępem do bazy danych,

Bardziej szczegółowo

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Usługi analityczne budowa kostki analitycznej Część pierwsza. Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.

Bardziej szczegółowo

SIP: Session Initiation Protocol. Krzysztof Kryniecki 16 marca 2010

SIP: Session Initiation Protocol. Krzysztof Kryniecki 16 marca 2010 SIP: Session Initiation Protocol Krzysztof Kryniecki 16 marca 2010 Wprowadzenie Zaaprobowany przez IETF w 1999 (RFC 2543) Zbudowany przez Mutli Parry Multimedia Session Control Working Group : MMUSIC Oficjalny

Bardziej szczegółowo

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania. Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania. Założenia projektowe systemu NETDOC. część 1: założenia ogólne i funkcjonalność rdzenia systemu Założenia ogólne Celem projektu jest

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)

Bardziej szczegółowo

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza

Bardziej szczegółowo

Bazy danych i strony WWW

Bazy danych i strony WWW Bazy danych i strony WWW Obsługa baz danych poprzez strony WWW Niezbędne narzędzia: serwer baz danych np. MySQL serwer stron WWW np. Apache przeglądarka stron WWW interpretująca język HTML język skryptowy

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

5.14 JSP - Przykład z obiektami sesji... 83 5.15 Podsumowanie... 84 5.16 Słownik... 85 5.17 Zadanie... 86

5.14 JSP - Przykład z obiektami sesji... 83 5.15 Podsumowanie... 84 5.16 Słownik... 85 5.17 Zadanie... 86 Spis treści 1 Wprowadzenie - architektura, protokoły, system WWW... 1 1.1 Wstęp.................................................. 1 1.2 Ważniejsze daty......................................... 2 1.3 Protokoły

Bardziej szczegółowo

Forum Client - Spring in Swing

Forum Client - Spring in Swing Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy

Bardziej szczegółowo

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i Program szkolenia: Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Produktywne tworzenie aplikacji webowych z

Bardziej szczegółowo

The Binder Consulting

The Binder Consulting The Binder Consulting Contents Indywidualne szkolenia specjalistyczne...3 Konsultacje dla tworzenia rozwiazan mobilnych... 3 Dedykowane rozwiazania informatyczne... 3 Konsultacje i wdrożenie mechanizmów

Bardziej szczegółowo

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE Cena szkolenia Cena szkolenia wynosi 100 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie

Bardziej szczegółowo

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS (c) 2008 Grupa SPOT SJ Grupa SPOT Krzysztof Cieślak, Maciej Gdula Spółka Jawna Podstawowe dane: firma założona w roku 2004 w wyniku połączenia

Bardziej szczegółowo

Konspekt pracy inżynierskiej

Konspekt pracy inżynierskiej Konspekt pracy inżynierskiej Wydział Elektryczny Informatyka, Semestr VI Promotor: dr inż. Tomasz Bilski 1. Proponowany tytuł pracy inżynierskiej: Komunikator Gandu na platformę mobilną Android. 2. Cel

Bardziej szczegółowo

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2 Kod szkolenia: Tytuł szkolenia: EJB Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2 Dni: 3 Opis: Adresaci szkolenia: Szkolenie adresowane jest

Bardziej szczegółowo

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2 Programowanie Urządzeń Mobilnych Część II: Android Wykład 2 1 Aplikacje w systemie Android Aplikacje tworzone są w języku Java: Skompilowane pliki programów ( dex ) wraz z plikami danych umieszczane w

Bardziej szczegółowo

Telco 2.0 realizacja koncepcji w technologii JAIN SLEE

Telco 2.0 realizacja koncepcji w technologii JAIN SLEE Henryk Rosa Orange Labs Zakład Platform Usługowych i Middleware Telco 2.0 realizacja koncepcji w technologii JAIN SLEE Artykuł opisuje możliwości wykorzystania technologii JAIN SLEE, przy realizacji koncepcji

Bardziej szczegółowo

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja ZPKSoft WDoradca 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja 1. Wstęp ZPKSoft WDoradca jest technologią dostępu przeglądarkowego do zasobów systemu ZPKSoft Doradca.

Bardziej szczegółowo

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Infomatyki Stosowanej Piotr Benetkiewicz Nr albumu: 168455 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny

Bardziej szczegółowo

Aplikacje WWW Wprowadzenie

Aplikacje WWW Wprowadzenie Aplikacje WWW Wprowadzenie Beata Pańczyk na podstawie http://www.e-informatyka.edu.pl/ http://wazniak.mimuw.edu.pl/index.php?title=aplikacje_www Plan wykładu Składniki architektury WWW: klient HTTP, serwer

Bardziej szczegółowo