WYDZIAŁ ELEKTRONIKI INFORMATYKI I TELEKOMUNIKACJI



Podobne dokumenty
Marcin Łukaszenko Sebastian Urba ski Maciej Zaj c

Elementy i funkcjonalno

PERSON Kraków

Opis instalacji systemu Intranet Komunikator

Zarządzanie Zasobami by CTI. Instrukcja

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence.

Microsoft Management Console

Java wybrane technologie

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

POLITYKA PRYWATNOŚCI SKLEPU INTERNETOWEGO

Logowanie do systemu pocztowego GroupWise

Transakcje w systemach Java Enterprise Korzystanie z systemów kolejkowania w serwerach aplikacji

Konfiguracja historii plików

OmniTouch 8400 Instant Communications Suite 4980 Softphone

Instrukcja programu PControl Powiadowmienia.

Automatyzacja procesu publikowania w bibliotece cyfrowej

VinCent Office. Moduł Drukarki Fiskalnej

InsERT GT Własne COM 1.0

Foldery z dokumentami 1.0 dodatek do Symfonia Faktura dla 1 firmy

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

System do kontroli i analizy wydawanych posiłków

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

DANE UCZESTNIKÓW PROJEKTÓW (PRACOWNIKÓW INSTYTUCJI), KTÓRZY OTRZYMUJĄ WSPARCIE W RAMACH EFS

dbsamples.udl lub przygotowany wcześniej plik dla Excela) i OK,

Harmonogramowanie projektów Zarządzanie czasem

Specyfikacja usługi CCIE R&S

Zdalne odnawianie certyfikatów do SWI

Regulamin dotyczący realizacji wniosków o nadanie certyfikatów

Platforma do obsługi zdalnej edukacji

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

PROCEDURA ADMINISTROWANIA ORAZ USUWANIA

Wymiana du ych plików instrukcja dla klientów Grontmij Polska Sp z o. o.

Instrukcja instalacji oprogramowania TSG wer. 5.0 z dost pem do danych poprzez sie Internet.

Instrukcja Obsługi STRONA PODMIOTOWA BIP

Procedura nadawania uprawnień do potwierdzania Profili Zaufanych w Urzędzie Gminy w Ryjewie

Ostatnia cena sprzeda y klienta 1.0 dodatek do Symfonia Faktura dla 1 firmy

Sieci komputerowe. Definicja. Elementy

Procedura nadawania uprawnień do potwierdzania, przedłuŝania waŝności i uniewaŝniania profili zaufanych epuap. Załącznik nr 1

Kolejkowanie wiadomości Standard MQ (JMS)

OPIS PRZEDMIOTU ZAMÓWIENIA

Nowości w module: BI, w wersji 9.0

Regulamin Usługi Certyfikat SSL. 1 Postanowienia ogólne

DOTACJE NA INNOWACJE. Zapytanie ofertowe

Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ).

Co nowego w systemie Kancelaris 3.31 STD/3.41 PLUS

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj.

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

Spis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHICZNA 1

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Edycja geometrii w Solid Edge ST

Praca badawcza. Zasady metodologiczne ankietowego badania mobilności komunikacyjnej ludności

Charakterystyka systemów plików

V. Wymagania dla wsparcia projektu oraz nadzoru eksploatacyjnego... 6

OPNR Obsługa Paczek Na Recepcji Instrukcja obsługi.

Wprowadzenie do Enterprise JavaBeans 2.0

Warunki Oferty PrOmOcyjnej usługi z ulgą

Integracja systemów, integracja procesów

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Firma Informatyczna JazzBIT

PRESTASHOP INTEGRATOR XL BY CTI INSTRUKCJA

DOTACJE NA INNOWACJE ZAPYTANIE OFERTOWE

Komponenty sterowane komunikatami

Diody danych.

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

Ewidencja abonentów. Kalkulacja opłat

INTENSE BUSINESS INTELLIGENCE PLATFORM

Instrukcja obsługi programu MKi-m konfigurator

Pierwsze kroki. Krok 1. Uzupełnienie danych własnej firmy

zgubił całą naszą korespondencję Można by tak wymieniać bez bezpieczeństwa, gdyby była wykonana dnia poprzedniego rozwiązałaby niejeden problem.

Instrukcja postępowania w celu podłączenia do PLI CBD z uwzględnieniem modernizacji systemu w ramach projektu PLI CBD2

INSTRUKCJA RUCHU I EKSPLOATACJI SIECI DYSTRYBUCYJNEJ

SZCZEGÓŁOWA SPECYFIKACJA TECHNICZNA WYKONANIA I ODBIORU ROBÓT BUDOWLANYCH

Instrukcja obsługi aplikacji Moduł 7 Business Ship Control dla InsERT Subiekt GT

Aplikacje internetowe i rozproszone - laboratorium

Excel w logistyce - czyli jak skrócić czas przygotowywania danych i podnieść efektywność analiz logistycznych

Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8

INSTRUKCJA RUCHU I EKSPLOATACJI SIECI DYSTRYBUCYJNEJ

Logowanie do systemu Faktura elektroniczna

Olsztyn, dnia 30 lipca 2014 r. Poz UCHWAŁA NR LIII/329/2014 RADY GMINY JONKOWO. z dnia 26 czerwca 2014 r.

Załącznik nr 8. Warunki i obsługa gwarancyjna

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

Sieci komputerowe cel

Kancelaris - Zmiany w wersji 2.50

OPIS PRZEDMIOTU ZAMÓWIENIA DO ZAPYTANIA KE1/POIG 8.2/13

Regu g l u a l min i n w s w pó p ł ó p ł r p acy O ow o iązuje od dnia

1. PODMIOTEM ŚWIADCZĄCYM USŁUGI DROGĄ ELEKTRONICZNĄ JEST 1) SALESBEE TECHNOLOGIES SP. Z O.O. Z SIEDZIBĄ W KRAKOWIE, UL.

Mechanizmy pracy równoległej. Jarosław Kuchta

Systemy mikroprocesorowe - projekt

Rola EJB na platformie Java EE. Enterprise JavaBeans (EJB)

Postanowienia ogólne. Usługodawcy oraz prawa do Witryn internetowych lub Aplikacji internetowych

Programowanie współbieżne i rozproszone

ARKUSZ EGZAMINACYJNY ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJ CEGO KWALIFIKACJE ZAWODOWE CZERWIEC 2013

API transakcyjne BitMarket.pl

Administrator Konta - osoba wskazana Usługodawcy przez Usługobiorcę, uprawniona w imieniu Usługobiorcy do korzystania z Panelu Monitorującego.

ARKUSZ EGZAMINACYJNY ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJ CEGO KWALIFIKACJE ZAWODOWE CZERWIEC 2013

Transkrypt:

WYDZIAŁ ELEKTRONIKI INFORMATYKI I TELEKOMUNIKACJI Projekt CHAT wykorzystuj cy pakiet JMS w oparciu o serwer SonicMQ Wykonali: Barbara Le niewska Krzysztof Macuda

Wst p Problem integracji i wymiany danych mi dzy systemami informatycznymi nie jest rzecz trywialn. Wyobra my sobie, na przykład, ile pracy i czasu nale ałoby po wi ci, aby umo liwi powiadamianie przez hurtownie swych potencjalnych odbiorców o zmianach cen, okresowych promocjach, nowych produktach itp. Zmuszeni byliby my do opracowania unikatowego protokołu, zapewnienia poprawno ci dostarczenia danych, obsługi transakcji, tworzenia okre lonych ilo ci kopii danych w celu ich dostarczenia do odbiorców, a w przypadku rozwi zania skalowanego - zaprojektowania i implementacji serwera komunikacyjnego. Przyjrzyjmy si jak, do tego podeszła firma Sun Microsystems, projektuj c specyfikacj JMS (Java Message Service) i firma Progress, tworz c serwer komunikatów SonicMQ.

Java Message Service Fundamentalnym elementem specyfikacji JMS jest poj cie komunikatu. Poprzez komunikat rozumiemy pewn dawk informacji o okre lonym formacie. Komunikat taki mo e by przesyłany dwukierunkowo mi dzy klientem a serwerem komunikatów (w takim systemie nigdy nie dochodzi do bezpo redniej komunikacji mi dzy systemami klienckimi). Komunikat składa si z nagłówka i zawarto ci. Nagłówek zawiera pola okre laj ce przeznaczenie, typ komunikatu, identyfikator, priorytet i trwało. Zawarto komunikatu mo e by tekst, strumienie zawieraj ce warto ci typów prostych i szeregowane obiekty Java. W nagłówku okre lony jest doł czonej zawarto ci komunikatu. Java Message Service udost pnia dwa modele komunikacji: Poin-to-Point Publish/Subscribe W obu modelach dostarczanie komunikatów i ich odbiór odbywa si asynchroniczny. w sposób Model Poin-to-Point, wykorzystuje kolejki, do których przesyłane s komunikaty. W modelu tym, istnieje dokładnie jeden nadawca i jeden odbiorca. Przesyłane komunikaty mog by trwałe, co oznacza, e b d przechowywane przez okre lony czas w serwerze komunikatów. Dzieje si tak tylko wówczas, gdy wcze niej, został zarejestrowany odbiorca komunikatów z kolejki i w chwili wysłania komunikatu nie był on przył czony do serwera. Maksymalny czas przechowywania komunikatu nie jest okre lony przez JMS. Wyra amy go w milisekundach lub podaj c zero sprawiamy, e b dzie przechowywany tak długo, a nie zostanie odebrany, lub usuni ty w trybie administracyjnym. Do utworzenia nowego obiektu QueueConection, który jest aktywnym poł czeniem do serwera, wykorzystywana jest metoda QueueConnectionFactory. Klient u ywa obiektu QueueConnection do utworzenia jednej lub wielu sesji QueueSession wykorzystywanych w celu wysyłania i odbierania komunikatów. Sesja QueueSession dostarcza metod umo liwiaj cych tworzenie obiektów typu QueueSender i QueueResiver. Obiekt QueueSender słu y do wysyłania komunikatów do kolejki, natomiast QueueReceiver do odbierania komunikatów opublikowanych we wskazanej kolejce. Mo liwe jest równie utworzenie dwóch obiektów QueueReceiver dla tej samej kolejki. W nagłówku komunikatu mog by zawarte informacje umo liwiaj ce odbiór wyselekcjonowanej grupy komunikatów. W modelu, Publish/Subscribe, komunikaty przesyłane s do okre lonych w złów zwanych tematami (topics). Wyst puje w tym modelu jeden nadawca komunikatów i wielu

odbiorców (z punktu widzenia nadawcy, odbiorcy s anonimowi, a ich liczba jest nieznana). JMS nie definiuje zasad tworzenia, administracji i usuwania tematu. JMS nie wprowadza te restrykcji okre laj cych, w jaki sposób obiekt tematu jest rejestrowany. Mo e on by zarówno ko cowym elementem w hierarchicznej strukturze tematu, jak i elementem grupuj cym wiele tematów w tej hierarchii(w celu równoczesnej subskrypcji wielu tematów). Organizacja tematów i sposób ich subskrypcji to bardzo wa ne elementy architektury aplikacji wykorzystuj cej model Publish/Subscribe. Klient u ywa metody TopicConnecionFactory do tworzenia poł czenia TopicConnection z serwerem komunikatów. TopicConnection jest aktywnym poł czeniem, którego klient u ywa do tworzenia jednej lub wielu sesji TopicSessions, wykorzystywanych w celu wysłania i odebrania komunikatów. Sesja TopicSession dostarcza metod umo liwiaj cych tworzenie obiektów typu TopicPublisher i TopicSubscriber. Pierwszy z nich umo liwia wysyłanie komunikatów do tematu, natomiast drugi słu y klientowi do odbierania komunikatów opublikowanych we wskazanym temacie. Obiekt TopicSubscriber domy lnie nie umo liwia publikowania trwałych komunikatów. Słu y on tylko do odbioru komunikatów opublikowanych w chwili jego poł czenia z serwerem. Odbiór komunikatów mo e by filtrowany do tego celu słu elementy zawarte w nagłówku komunikatu. Odbiór komunikatów w obu modelach komunikacji wykorzystuje delegacyjny model obsługi zdarze. Obiekt oddelegowany do obsługi zdarze zwi zanych z nadchodz cymi komunikatami musi implementowa interfejs MessageListener i pokrywa jego metod onmessage. Argumentem metody onmessage jest obiekt, klasy Message, który reprezentuje odbierany komunikat. Progress SonicMQ SonicMQ jest serwerem komunikatów firmy Progress, b d cym kompletn implementacj standardu JMS. SonicMQ oddaje równie do dyspozycji twórców aplikacji internetowych dwie nowe funkcje: hierarchiczn przestrze nazw i mo liwo tworzenia aplikacji klienckich wykorzystuj cych kontrolki ActiveX. Oto główne cechy SonicMQ: wydajno Obsługa multipleksowanego Brokera pozwala przeł cza si mi dzy serwerami komunikatów w celu zapewnienia ci głego poł czenia. Funkcja ta udost pnia klientom mechanizm łatwej wymiany informacji w sieciach rozproszonych i poprawia ogóln wydajno. Asynchroniczne odpowiedzi umo liwiaj klientom oczekuj cym na odpowied kontynuacj zainicjowanych

procesów do czasu otrzymania odpowiedzi; inaczej ni w przypadku komunikacji dwukierunkowej. niezawodno Mechanizm gwarantowanego dostarczania komunikatów zapewnia wszystkim u ytkownikom ł cznie z u ytkownikami nie pracuj cymi w trybie podł czony i u ytkownikami mobilnymi odbiór wszystkich komunikatów. SonicMQ zawiera kompletne zabezpieczenia, obsługuje identyfikacj, autoryzacj, kontrol dost pu, cyfrowe certyfikaty i szyfrowanie kluczami 40- i 128- bitowymi. Komunikaty dostarczone do serwera s przechowywane w doł czonej bazie danych (lub poprzez JDBC w innej wskazanej bazie), dzi ki czemu zapewnione jest wi ksze bezpiecze stwo w przypadku awarii systemu. Wsparcie transakcji umo liwia grupowanie komunikatów w jednostki logiczne i wykonywanie na nich operacji commit i rollback jak na pojedynczym komunikacie. elastyczno Model komunikatów typu Point-to-Point obsługuje mechanizm dostarczania komunikatów do wskazania kolejek. Dzi ki temu mo ne je odebra tylko jeden klient, nawet w sytuacji, gdy wielu klientów monitoruje kolejk. Model komunikatów typu Publish-and-Subscriber umo liwia nadawcy wysyłanie komunikatów do tematów, które subskrybuje wielu klientów, a temat rozsyła do klientów kopie komunikatu. Komunikaty w formacie XML s własnym rozszerzeniem serwera SonicMQ w stosunku do standardowych typów technologii JMS. Łatwo u ycia Zdalna administracja czyni łatwym monitorowanie, zarz dzanie i konserwacj brokerów komunikatów, zarówno w systemach lokalnych jak i zdalnych. Wszystkie te czynno ci wykonywane s z jednego miejsca przy u yciu narz dzi graficznych lub narz dzi uruchamianych na konsoli tekstowej. Przezroczysto lokalizacji zapewnia mechanizm adresowania w oparciu o nagłówki. Zarówno klienci, jak i serwery mog zmienia lokalizacj bez konieczno ci dokonywania zmian w infrastrukturze komunikatów. Broker SonicMQ rozsyła komunikaty na podstawie nagłówka luz zawarto ci, a nie na podstawie adresu IP, jak to ma miejsce w tradycyjnych systemach komunikatów. Hierarchiczne adresowanie obsługuje hierarchi tematów i umo liwia klientowi inteligentne subskrybowanie wskazanych tematów wraz z podtematami. Klient nie musi wskazywa jedynie nazw tematów, lecz mo e subskrybowa grupy tematów bez konieczno ci znania ich nazw i liczno ci.

Implementacja głównych funkcji programu: Główne zmienne programu public TopicConnection polaczenie1=null;//aktywne poł czenie z serwerem public TopicSession sesja1=null;//sesja umo liwiaj ca odbieranie i wysyłanie komunikatów public TopicSubscriber subskrybcja=null;//umo liwia odbieranie komunikatów public TopicPublisher publikacja=null;//umo liwia wysyłanie komunikatów public Topic komunikacja=null;//temat; public progress.message.tools.brokermanager m_manager = null; //obiekt umo liwiaj cy utworzenie obiektu Queue public QueueConnection polaczenie2 = null; ;//aktywne poł czenie z serwerem public QueueSession sesja2 = null; //sesja do nadawania public QueueSession sesja3 = null; //sesja do nadawania public QueueReceiver nadsluch=null; //sesja do nadsluchiwania public QueueSender nadawanie = null; //obiekt do nadawania public Queue nadqueue=null; //obietk do nadsluchu Inicjacja poł czenia z serwerem SonicMQ boolean initjms(){ // UTWORZENIE POLACZENIA TYPU P/S //Utworzenie obiektu odpowiedzialnego za utworzenia poł czenia do brokera javax.jms.topicconnectionfactory factory1=null; try{ factory1 = (new progress.message.jclient.topicconnectionfactory ("tcp://"+textfield3.gettext()+":2506","12")); //Utworzenie poł czenia do brokera polaczenie1=factory1.createtopicconnection(this.uzt,this.has); //Utworzenie sesji sesja1=polaczenie1.createtopicsession(false,javax.jms.session.auto_acknowledge); //Utworzenie tematu

komunikacja=sesja1.createtopic("kom"); //Obiekt umo liwiaj cy subskrybowanie komunikatów subskrybcja=sesja1.createsubscriber(komunikacja); //Obiekt umo liwiaj cy publikowanie publikacja=sesja1.createpublisher(komunikacja); //Ustawienie obiektu zainteresowanego nadsłuchiwaniem nadchodz cych komunikatów subskrybcja.setmessagelistener(this); //Urucomienie polaczenia polaczenie1.start(); //UTWORZENIE POLACZENIA TYPU PTP //Utworzenie obiektu odpowiedzialnego za utworzenia poł czenia do brokera javax.jms.queueconnectionfactory factory2; factory2 = (new progress.message.jclient.queueconnectionfactory ("tcp://"+textfield3.gettext()+":2506","121")); //Utworzenie polaczenia do brokera polaczenie2 = factory2.createqueueconnection (this.uzt+"priv",this.has); //Uruchomienie poł czenia polaczenie2.start(); //Sesja do odbierania sesja2 = polaczenie2.createqueuesession (true, javax.jms.session.auto_acknowledge); //Sesja do nadawania sesja3=polaczenie2.createqueuesession(false,javax.jms.session.auto_acknowledge); try{

//Utworzenie mened era brokera this.createmanager(); //Stworzenie obiektu odpowiadaj cego za odbiór wiadomo ci do danej osoby this.createqueues(); catch (Exception e){ //Wybór obiektu do nadsłuchiwania informacji do danej osoby javax.jms.queue nqueue = sesja2.createqueue (this.uzt); //Utworzenie sesji do odbioru komunikatów nadsluch = sesja2.createreceiver(nqueue); //Ustawienie obiektu zainteresowanego nadsłuchiwaniem nadchodz cych komunikatów nadsluch.setmessagelistener(this); ustaw("< Uzytkownik polaczyl sie z serwerem komunikatow >\n"); catch(javax.jms.jmsexception jmse){ jmse.printstacktrace(); ustaw("< Nieprawidlowy login, haslo lub nazwa hosta. >\n< Uzytokwnik nie zostal polaczony do serwera. >"); return false; button1.disable(); return true; Obsługa nadchodz cych komunikatów public void onmessage(javax.jms.message message){ try{ TextMessage textmessage=(textmessage) message; //Odczyt zawartosci komunikatu String wiad=new String(textMessage.getText()); ustaw(wiad); catch(javax.jms.jmsexception jmse){ jmse.printstacktrace();

Wysyłanie komunikatów do wszyskich uzytkowników public void wyslij(string mesg){ try{ TextMessage wiadomosc= sesja1.createtextmessage(); //Ustawienie własno ci komunikatu wiadomosc.setstringproperty("klucz","a12"); //Wprowadzenie tre ci komunikatu wiadomosc.settext(mesg); //Wysłanie wiadomo ci publikacja.publish(wiadomosc); catch(javax.jms.jmsexception jmse){ jmse.printstacktrace(); Wysłanie wiadomo ci do danego u ytkownika public void wyslij(){ try{ nadqueue=sesja3.createqueue (dokogo); nadawanie=sesja3.createsender(nadqueue); javax.jms.textmessage msg = sesja2.createtextmessage(); ustaw("priv "+this.uzt+": "+textarea2.gettext()); msg.settext("priv "+this.uzt+": "+textarea2.gettext()); nadawanie.send(msg); textarea2.settext(""); catch(javax.jms.jmsexception jmse){ jmse.printstacktrace();

Obsługa programu W celu nawi zania poł czenia nale y wypełni pola u ytkownik, hasło oraz host (adres serwera komunikatów) i wcisn przycisk Polaczenie. Po uzyskaniu poł czenia zostaj uaktywnione przyciski Wyslij, Wyslij do. Aby wysła wiadomo nale y wpisa tekst w pole dolne i nacisn przycisk Wyslij. Komunikat zostanie wysłany do wszystkich u ytkowników. Chc c wysła wiadomo do danej osoby wpisujemy tekst do pola dolnego, wpisujemy nazw osoby, do której wysyłamy wiadomo w pole Wyslij do oraz wciskamy przycisk Wyslij do.