Java w Internecie - czy to ma sens? ;) Piotr Dziubecki PCSS
Agenda Wstęp Zastosowania Javy w polskim Internecie Do czego Java nam się nie przyda? Zaczynamy z Javą: - technologie, - trendy, - koszty. Podsumowanie 2
Społecznościowe centrum rozrywkowe Modularna budowa proste rozszerzanie funkcjonalności. Spójny model proponowanych gier. Funkcjonalność serwisu społecznościowego: wiadomości, komunikator, znajomi. Wykorzystanie apletów Javy jako platformy do uruchamiania gier. 3
4
Portal użytkowników providera GSM Agreguje informacje dotyczące działalności providera. Skupia społeczność użytkowników. Dodatkowe funkcje w warstwie aplikacji wysyłanie sms'ów zintegrowane z portalem. Oparty na framework'u Struts. 5
6
Zakłady bukmacherskie Duża ilość przetwarzanych danych. Transakcje pieniężne ( wpłaty/wypłaty ). Tryby live aktualizacja danych / współczynników na bieżąco. System integrujący wiele trybów rozgrywki ( zakłady, kasyno itp. ) 7
8
Gdzie Java nam się nie przyda? Małe i średnie projekty oparte na systemach zarządzania treścią. Strony firmowe, wizytówki. Przy implementacjach gotowych szablonów aplikacyjnych. 9
Wady, zalety Javy w porównaniu do PHP Łatwiej o dobrego specjalistę Javy niż PHP. Proces tworzenia serwisu jest bardziej skomplikowany. Droższy, mniej rozpowszechniony hosting. Możliwość integracji wielu warstw biznesowych. 10
Wady, zalety Javy w porównaniu do PHP Kod tworzony w Javie jest bezpieczniejszy: z natury obiektowy, kontrola typów, kompilator. Łatwiejsze zarządzanie kodem: bezproblemowy refactoring, debugging. PHP pozwala na szybkie prototypowanie, wdrażanie projektów. 11
Wady, zalety Javy w porównaniu do PHP Bogactwo dobrze napisanych bibliotek: framework'i, mechanizmy odpowiedzialne za bezpieczeństwo, kryptografię, przetwarzanie dokumentów ( XML itp. ), i wiele innych... Systemy do buildowania/deploymentu: Ant Maven 12
Chcę użyć Javy od czego zacząć? Projekt serwisu od zera, czy korzystamy z pomocy framework'u. Gdzie to umieścić porównanie kosztów i funkcjonalności hostingu dla PHP i Javy. Wydajność, skalowalność czy istnieją gotowe rozwiązania tych problemów? 13
Serwlety Wikipedia: Serwlet mały program wykonywany po stronie serwera WWW działający w modelu żądanieodpowiedź. Nazwa powstała na wzór nazwy aplet, przez zastąpienie sylaby ap- sylabą serw-, wskazującą na wykonywanie programu na serwerze. 14
Serwlet Hello World :) <form action=http://www.oursite.pl/servlet/hello method=post> Podaj swoje imię: <input type=text name=name> <input type=submit value=wyślij> </form> 15
Serwlet Hello World :) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Hello extends HttpServlet { public void service(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { } } res.setcontenttype("text/html"); PrintWriter toclient = res.getwriter(); toclient.println("<html><head>"); toclient.println("<title>hello</title>"); toclient.println("</head>"); toclient.println("<h1>hello " + req.getparametervalues("name")[0] + "!</h1>"); toclient.println("</body></html>"); toclient.close(); 16
Framework'i co wybrać? GWT JSF 17
Framework'i test popularności * http://www.gandalf-lab.com 18
Framework'i test popularności * http://www.gandalf-lab.com 19
Rzut oka na Google Web Toolkit Google Web Toolkit (GWT) jest framework'iem do tworzenia aplikacji AJAX w oparciu o język Java. Po napisaniu kodu aplikacji ( w całości w Javie ) następuje kompilacja do części klienckiej do JavaScriptu, CSS oraz HTML. Część serwerowa zostaje skompilowana przez standardowy kompilator Javy. 20
GWT - cechy GWT dba o kompatybilność w przeglądarkach. Komunikacja klient serwer: GWT RPC, JSON, XML... Obsługa historii i przycisku 'back' w przeglądarce. Optymalizacja wynikowych plików JavaScript. 21
GWT - cechy Wsparcie dla lokalizacji aplikacji. Wsparcie dla narzędzi wspomagających development projektu: Eclipse, IntelliJ, JProfiler, JUnit. 22
23
Koszty: hosting tradycyjny Serwer ActivePro 20 GB powierzchni 2000 GB transfer serwera Nielimitowana liczba domen Nielimitowana liczba kont e-mail Ochrona przed spamem i wirusami Panel zarządzania Active.admin Program pocztowy Active.mail Bezpieczna transmisja plików SFTP Cena 600zł netto 24
Koszty: hosting Java Serwer WWW z obsługą aplikacji Java (J2SE, shared JVM) Współdzielone środowisko JVM 1.6 (JDK 1.6.0) Współdzielony serwer J2SE (Tomcat 6.0.10) Obsługa aplikacji zg. ze specyfikacjami Servlet 2.5 i JSP 2.1 Pojemność serwera 200 MB Dowolna liczba webaplikacji w ramach limitu pojemności Dostęp do logów Dostęp do serwera przez FTP, SSH, dostępny klient CVS Dostęp do aplikacji manager Cena 100 zł netto 25
Koszty: hosting dedykowany Basic Serwer Procesor AMD Opteron 2212 Prędkość procesora Dual 2.0 GHz Pamięć 1 GB ECC DDR2 Dyski twarde SATA lub SCSI/SAS 2x 160 GB Pakiet ruchu z/do sieci Internet 100 GB Cena (dyski SATA)800 zł netto 26
Skalowalność - Terracotta Terracotta is Network-Attached Memory Zarządza wieloma lokalnymi instancjami JVM zapewniając spójność danych. Aplikacja zachowuje się tak jakby była uruchomiona w normalnym JVM. Nie ma potrzeba dokonywania zmian w kodzie aplikacji. Zasada działania analogiczna do NAS ( NFS ). 27
28
Podsumowanie O czym warto by wiedzieć: aplety, JavaFx, aplikacje Javy w urządzeniach mobilnych. Praca i koszty związane z wdrożeniem sytemu. Większe możliwości. Idealna dla kompleksowych rozwiązań projektowanych dla konkretnego klienta. 29
Dziękuję za uwagę Kontakt: piotr.dziubecki@man.poznan.pl Zasoby: http://www.man.poznan.pl http://java.sun.com/products/servlet/ http://www.terracotta.org/ http://code.google.com/intl/pl/webtoolkit/ 30