1 / 33

Model programowania aplikacji komunikacyjnych przy użyciu Java SIP Servlet API

Model programowania aplikacji komunikacyjnych przy użyciu Java SIP Servlet API. Waldek Kot. Agenda. Dlaczego taki temat ? Krótkie wprowadzenie do protokołu SIP Demo - Hello SIP Servlet World Krótkie wprowadzenie do SIP Servlet API Demo - Przykładowe aplikacje

ethel
Download Presentation

Model programowania aplikacji komunikacyjnych przy użyciu Java SIP Servlet API

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Model programowania aplikacji komunikacyjnych przy użyciu Java SIPServlet API Waldek Kot

  2. Agenda • Dlaczego taki temat ? • Krótkie wprowadzenie do protokołu SIP • Demo - Hello SIP Servlet World • Krótkie wprowadzenie do SIP Servlet API • Demo - Przykładowe aplikacje • Przydatne narzędzia i informacje • Q&A

  3. Dlaczego taki temat ? • Trochę inne zastosowanie Java i pochodnych technologii • Przełamać opory przed przyglądnięciem się „technologii telekomunikacyjnej” • rozumiejąc jak się buduje aplikacje web, już wiecie jak budować aplikacje komunikacyjne • Kariera • na horyzoncie są duże projekty • także w Polsce • operatorzy • dostawcy technologii i usług • ciekawe konkursy

  4. Protokół SIP • Internetowy protokół do zarządzania sesjami komunikacyjnymi • multi-media • Protokół sygnalizacyjny • przynajmniej w dużym stopniu • Ma wiele wspólnego z HTTP i SMTP • Współpracuje też z innymi znanymi: IP, TCP/UDP/SCTP, DNS, RTP, SDP, NAT, ... • z HTTP: model client-server (request-response), stosowanie URI, statusy • Z SMTP: protokół tekstowy, nagłówki • Ale w odróżnieniu od HTTP, m.in.: • jest asynchroniczny (zdarzeniowy) • peer-to-peer (np. serwer może inicjować komunikację) • wiele odpowiedzi do jednego żądania • transakcyjność • wbudowana maszyna stanów • SIP nie jest protokołem transportowym • nie zarządza przesyłaniem mediów • Bardzo bogata rodzina specyfikacji (kilkaset) • Główne specyfikacje: RFC3621 do 3265 • Bardzo duże wsparcie operatorów, dostawców sprzętu i oprogramowania

  5. Redirect Server Proxy Server Proxy Server User Agent User Agent Registrar Server Registrar Server Typowa komunikacja w SIP 3: INVITE 4: Contact B 1: REGISTER 5: INVITE 2: REGISTER 8: OK 6: INVITE 9: OK 7: OK 10: ACK 12: BYE Caller A 11: Media (RTP) Caller B

  6. Przykład komunikatu SIP (Request)

  7. Przykład komunikatu SIP (Response)

  8. SIP Request – wybrane metody • REGISTER • INVITE • ACK • OPTIONS • BYE • CANCEL • INFO • MESSAGE • SUBSCRIBE • NOTIFY • PRACK • UPDATE • PUBLISH • ....

  9. SIP Request – wybrane nagłówki (headers) • To • From • Contact • CSeq • Call-ID • Via • Expires • Max-Forwards • Content-Type • Content-Length • Record-Route • ....

  10. Typowa sesja komunikacyjna

  11. Inny przykład sesji (B2BUA)

  12. SIP Server • przetwarza komunikaty SIP • różne role • proxy • registrar • redirect • najbardziej elastyczny –> SIP application server • programowalny kontener dla aplikacji SIP • często udostępniający też inne modele (web, J2EE/JEE) • integracja różnych „światów” • są różne modele budowy aplikacji SIP (w tym non-Java) • SIP Servlet API (JSR-116 i wkrótce JSR-289) • SIP CGI • JAIN SLEE • JAIN SIP • ... • SIP app server wspiera programistę • Programowanie na wyższym poziomie abstrakcji • Zajmuje się złożonymi aspektami (transakcje, security, ...) • Skalowalność, niezawodność, wysoka dostępność, ... • Zarządzanie • Możliwość integracji z innymi systemami/technologiami

  13. Miejsce SIP Servlet Dialog Management Layer Transaction Layer Stos SIP (niskopoziomowa sygnalizacja) Message Parser (Coder/Decoder) Transport Layer TCP UDP TLS

  14. Miejsce SIP Servlet • Obiekty • Request • Response • Message • ... • Session API • Timer API • Deployment • Listeners SIP Servlet Container Dialog Management Layer Transaction Layer Stos SIP Message Parser (Coder/Decoder) Transport Layer TCP UDP TLS

  15. Servlet API – Przypomnienie (?) • Request / Response • np. HTTP request / HTTP response • Kontener jest hostem dla servlet’ów • Mapowanie URI do servletów • ServletConfig • ServletContext • Sesje • bo HTTP jest bezstanowy

  16. Demo – Hello World SIP

  17. SIP Servlet API • JSR-116 • 2003 r. • wkrótce uaktualnienie JSR-289, m.in. • uściślenia – m.in. „współpraca” sesji HTTP i SIP • kompozycja aplikacji • adnotacje (podobnie jak w HTTP Servlet 2.5)

  18. Model obiektów SIP Servlet

  19. Klasa SIP Servlet

  20. Klasy SipServletRequest i SipServletResponse

  21. Klasa SipFactory

  22. Sesje (2 rodzaje)

  23. URI i adresy

  24. Proxy

  25. Timers

  26. Mapowanie (w sip.xml)

  27. SIP Request SIP Request Kompozycja aplikacji SIP Servlet App. 1 SIP Servlet App. 2 SIP Servlet App. 3 SIP“RequestObject” SIP“RequestObject” SIP“RequestObject” Servlet Container

  28. Przydatne narzędzia • IDE • SIP app server (z kontenerem SIP Servlet) • BEA WebLogic SIP Server • IBM WebSphere 6.x takża ma prosty kontener SIP Servlet • Glassfish – projekt SailFin – wciąż w fazie beta/alpha • ... • Wireshark • Telefony • Softphone: np.: X-lite, SJ Phone, ... • „Hard”: np.: Grandstream • SIP client (np. Nokia E61i) • SIPp – przydatne do testowania, wysyła i przetwarza komunikaty SIP • Opcje: media servers, gateways, ...

  29. DemoAplikacja SIP

  30. DemoAplikacja konwergentna„Click-to-make-a-conference”

  31. Przydatne informacje • SIP Servlet API • http://jcp.org/en/jsr/detail?id=116 • http://jcp.org/en/jsr/detail?id=289 • http://dev2dev.bea.com/wlcp • http://www.tech-invite.com • http://imsinkubator.pl

  32. Podsumowanie • Dlaczego taki temat ? • Krótkie wprowadzenie do protokołu SIP • Demo - Hello SIP Servlet World • Krótkie wprowadzenie do SIP Servlet API • Demo - Przykładowe aplikacje • Przydatne narzędzia i informacje

  33. Dzięki  ! Waldek Kot (prv) waldemar_kot@gazeta.pl waldemar.kot@bea.com

More Related