JAVA USER GROUP POLITECHNICA GEDANENSIS 1/26



Podobne dokumenty
Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Przetwarzanie danych w chmurze

JAVA EE MODEL APLIKACJI. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

1 Wprowadzenie do J2EE

Wybrane działy Informatyki Stosowanej

EJB 3.0 (Enterprise JavaBeans 3.0)

Wybrane działy Informatyki Stosowanej

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

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

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Przetwarzanie danych w chmurze

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

Zasady współpracy programu Doradca Handlowy z Symfonią

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

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

Wprowadzenie Architektura Więcej szczegółów Podsumowanie. Google App Engine. Alicja Łuszczak. 8 stycznia 2010

Programowanie obiektowe

Wprowadzenie do J2EE. Maciej Zakrzewicz.

JBoss Application Server

Programowanie Komponentowe WebAPI

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

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

Wybrane działy Informatyki Stosowanej

Założenia projektowe dla zapytania ofertowego EAK_ZA_01/2015

Enterprise JavaBeans (EJB)

SOP System Obsługi Parkingów

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

TECHNOLOGIA JSP W TWORZENIU APLIKACJI ROZPROSZONYCH NA PRZYKŁADZIE SYSTEMU ZARZĄDZANIA NIERUCHOMOŚCIAMI W GMINIE

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

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

Identity Management w Red Hat Enterprise Portal Platform. Bolesław Dawidowicz

Rozwiązania internetowe iplanet

Architektura systemów webowych wysokiej przepustowości. na przykładzie Wikia

dziennik Instrukcja obsługi

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure

Programowanie w Javie 2. Płock, 26 luty 2014 r.

JBoss Seam: framework nowej generacji. Copyright Piotr Kochański & Erudis,

OpenLaszlo. OpenLaszlo

Szkolenie wycofane z oferty

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Enterprise JavaBeans

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

SYSTEM ZARZĄDZANIA DANYMI OSOBOWYMI - INSTRUKCJA UŻYTKOWNIKA

edziennik Ustaw Opis architektury

Architektura aplikacji

Środowisko NetBeans. Paweł Boguszewski

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Aplikacje Internetowe, Servlety, JSP i JDBC

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

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

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

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Instalacja SQL Server Konfiguracja SQL Server Logowanie - opcje SQL Server Management Studio. Microsoft Access Oracle Sybase DB2 MySQL

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Ekspert MS SQL Server Oferta nr 00/08

Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, r.

Referat pracy dyplomowej

Zapytanie ofertowe nr 9/POIG 8.2/11/10

IBM Corporation IBM SOA Center of Excellence

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

emszmal 3: Eksport wyciągów do ILUO Biznes (plugin dostępny wraz z dodatkiem Biznes)

Paweł Rajba

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

Przetwarzanie danych z wykorzystaniem technologii NoSQL na przykładzie serwisu Serp24

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Wywoływanie metod zdalnych

Lab5 - Badanie protokołów pocztowych

W grze bierze udział dwóch graczy. Każdy uczestnik rozpoczyna rozgrywkę z sumą

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań,

Nowe mechanizmy w wersji 3 Java Card. Mateusz LESZEK (138775)

Sieci komputerowe i bazy danych

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

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski

Wywoływanie metod zdalnych

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Problemy optymalizacji, rozbudowy i integracji systemu Edu wspomagającego e-nauczanie i e-uczenie się w PJWSTK

Nowoczesne aplikacje internetowe oparte na Seam, JSF, EJB3, JPA, AJAX

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.

Podstawowe informacje o technologii Java EE 7

Nazwa i adres zamawiającego: Miasto Gliwice, Wydział Zamówień Publicznych ul. Zwycięstwa 21, Gliwice. Tekst, który należy zmienić

Programowanie komponentowe 5

Ko n f i gura cja p ra cy V ISO z bazą SQL S e rve r

Instrukcja instalacji i obsługi programu Szpieg 3

Instrukcja instalacji Control Expert 3.0

Przykłady zastosowao rozwiązao typu mapserver w Jednostkach Samorządu Terytorialnego

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Java w Internecie - czy to ma sens? ;)

Aurea BPM Dokumenty pod kontrolą

Rozwiązania bazodanowe EnterpriseDB

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG

Instrukcja instalacji v2.0 Easy Service Manager

Transkrypt:

JAVA USER GROUP POLITECHNICA GEDANENSIS 1/26 Paweł Napieracz 7 marca 2013

»»»» Platforma do hostowania aplikacji webowych. Działa w modelu PAAS. Obsługuje języki: JAVA, Python, Go. Trwałe miejsce do przechowywanie zasobów: DataStore, BlobStore, Google Drive.» Automatyczne skalowanie i load balancing.» API wspomagające wytwarzanie aplikacji. 2/26

» Trzy idee: Easy to build, Easy to maintain, Easy to scale.» Darmowe 10 aplikacji na jedno konto: każda z aplikacji ma swój limit, możliwość przydzielenia mocy procesora i pamięci RAM: + F1 (600MHz, 128MB), +, + F4_1G (2400MHz, 1024MB). Darmowa baza danych NoSQL lub płatny Google Cloud SQL.» Wszystko ma swoje wady i zalety. 3/26

» Środowisko oparte o Jetty 6: serwer www, kontener selwletów Java.» Wspierane technologie: Java Data Objects (JDO), Java Persistence API (JPA), Java Server Faces (JSF) 2.x, Java Server Pages (JSP) + JSTL, Java Servlet API 2.5 (planowane 3.0), Java Architecture for XML Binding (JAXB), Java API for XML Web Services (JAX-WS): + działa jako klient, + wykorzystuje API dostarczone przez Googla limity. JavaMail, XML API: DOM, SAX, XSLT. 4/26

» Technologie częściowo wspierane: Contexts and Dependency Injection (CDI): + do projektu trzeba załączyć bibliotekę.» Technologie nie wspierane: Enterprise Java Beans (EJB), JAX-RPC, Java Database Connectivity (JDBC), Java EE Connector Architecture (JCA), Java Management Extensions (JMX), Java Message Service (JMS), Java Naming and Directory Interface (JNDI), Remote Method Invocation (RMI). 5/26

1. Zarejestrować konto Google App Engine. 2. Pobrać: plugin do Eclipse, App Engine Java SDK: + JRE 5 oraz 6 (jeszcze do stycznia 2013 wersja 1.7.4.), + od wersji 1.7.5. zaleca się używanie JRE 7, + dostarcza biblioteki i lokalny serwer www oraz bazy danych. 3. Utworzyć przykładową aplikację lub zaimportować przykłady. 4. Uruchomić aplikację na lokalnym serwerze. 5. Przetestować działanie i wysłać aplikacje na GAE. 6. Zarządzanie aplikacją poprzez link /_ah/admin 6/26

» App Identity,» Blobstore,» Google Cloud Storage,» Capabilities,» Channel,» Google Cloud Endpoints,» Images,» Logs,» Mail, 7/26

» MemCache,» Multitenancy,» OAuth,» Prospective Search,» Search,» Task Queues,» URL Fetch,» Users,» XMPP. 8/26

» Darmowa przestrzeń na pliki.» Upload plików do 32MB.» Łatwe użycie.» Obsługa BlobStore: serwlet do przyjmowania żądania i przekazania przesłanego pliku do BlobStore: + wiele plików na jedno żądanie, + zwraca BlobKey identyfikujący przesłany plik. serwlet do udostępniania treści z BlobStore: + przekazanie obsługi odpowiedzi oraz BlobKey resztą zajmuje się biblioteka.» Google Cloud Storage (parametr).» Pisanie do pliku. 9/26

10/26» Tworzenie połączenia pomiędzy aplikacją, a przeglądarką: wykorzystanie serwerów Google, JavaScript.» Token zabezpieczenie połączenia.» Przykładowa aplikacja Kółko i Krzyżyk w dokumentacji.

Otworzenie gniazdka do komunikacji klienta z serwerem. 11/26

Wymiana wiadomości klienta B z klientem A. 12/26

» Biblioteka do manipulowania obrazkami.» Zastępuje java.awt.image: brak dostępu AWT: + wygenerowanie Captcha niemożliwe rozwiązanie litetext project, + brak obsługi dla JasperReports podstawa aplikacji dla biznesu.» Przekształcenia: zmiana rozmiaru, obrócenie, odbicie, przycięcie, I m Feeling Lucky.» Obsługuje: JPEG, PNG, WEBP, GIF, BMP, TIFF, ICO. 13/26

» Wykonywanie czynności w tle zainicjowanych przez użytkownika/aplikacje.» Wprowadza asynchroniczność do naszych aplikacji.» Dwie konfiguracje: Push queues domyślny sposób kolejkowania. Pull queues aplikacja, bądź konkretni użytkownicy dzierżawią zadania na określony czas przez określony czas. Pozwalają na większą kontrolę przetwarzanego zadania i umożliwiają na integracje z systemami nie używającymi GAE za pomocą REST API.» Ustawienia: queue.xml, domyślnie uruchamianie 5 zadań na sekundę, należy zabezpieczyć adresy poprzez udostępnienie ich tylko dla roli admin. 14/26

» Push Task: Użycie rozproszonej transakcji bazy danych: em.gettransaction().begin();... Queue queue = QueueFactory.getDefaultQueue(); queue.add(taskoptions.builder.withurl("/report/invoice").param("id ", "111")); em.gettransaction().commit();» Pull Task: Queue q = QueueFactory.getQueue("pull-queue"); q.add(taskoptions.builder.withmethod(taskoptions.method.pull).payload("hello world"));... List<TaskHandle> tasks = q.leasetasks(3600, TimeUnit.SECONDS, 100); 15/26

16/26» Cechy: baza typu NoSQL: + własny język zapytań GQL, + brak relacji. High Replication Datastore (HRD), wspiera atomiczne transakcje wysoka wydajność czytania i pisania, wysoka regularność dostępu do encji, wspierane JDO oraz JPA i niskopoziomowe Datastore API, przystosowany do automatycznego zarządzania skalowalnością dużych zbiorów danych.

» Indeksy: wymaganie przy sortowaniu i filtrowaniu, tworzone drzewo z indeksami kierunkowymi (desc i asc oddzielnie), automatyczne generowane: + zapytania używające tylko filtrowanie po przodku i kluczu, + zapytania używające tylko filtrowanie spr. równość przodka, + zapytania używające filtrowania po jednej nierówności, + zapytania używające filtrowania po przodku, po równości z polem, nierówności na kluczu, + zapytania nie używające filtrowania i sortujące tylko po jednym polu. manualnie w datastore-indexes.xml: + zapytanie z sortowaniem po wielu polach, + zapytania z filtrowaniem po przodku i nierównościach, + zapytanie z jedną albo większą ilością filtrów po nierówności albo równości, + sortowanie po kluczu w kolejności malejącej. 17/26

18/26» Restrykcje: operacje złączeń, filtrowanie danych ze względu na wynik podzapytania, funkcje agregujące: + count, + sum, + avg, + group by + having. filtrowanie tylko po polach indeksowanych, odwzorowanie relacji wiele-do-wielu, brak wspierania niektórych typów danych w stosunku do MySQL, indeksowane pola do 500bajtów, maksymalnie 1MB na pole.

19/26» Zabezpieczenie aplikacji poprzez mechanizm podobny do JAAS.» Zalecane używanie MemCache.» Przemyślenie struktury bazy danych: denormalizacja, rozwiązanie braku funkcji agregujących (count).

Zasób Darmowy limit Blobstore Stored Data 5GB Chanel API 657 000 żądań* / 100 kanałów * Pamięć na kod i pliki statyczne 1GB Datastore Data 1GB Liczba indeksów 200 Operacje czytania / pisania / small 50 000 * Mail 100 żądań* / 2 000 załączników * Mail do administratora 5 000 * Transfer przychodzący / wychodzący 1GB * / 1GB * 20/26 * - limit dzienny

Zasób Darmowy limit Task Queue API 100 000 żądań * Task Queue Stored Task Count 1 000 000 Task Queue Stored Task Bytes 500 MB URL Fetch 657 000 żądań * XMPP API Calls 46 000 000 żądań * XMPP API Data Sent 1 GB * Request Time 60s / 10min dla Cron Jobs 21/26 * - limit dzienny

» Alternatywa: OpenShift lub Jboss AS7 i CapeDwarf. Implementacja funkcji GAE w projekcie CapeDwarf. 22/26

23/26» Dokumentacja (dostęp 06.03.2013) - https://developers.google.com/appengine/docs/java» Wspierane technologie i frameworki (dostęp 06.03.2013) - http://code.google.com/p/googleappengine/wiki/willitplayinjava#jav a_enterprise_edition_(java_ee)_technologies» Maven GAE plugin - https://github.com/maven-gae-plugin/maven-gaeplugin» Filmy instruktarzowe - https://developers.google.com/appengine/docs/videoresources#traini ng» Biała lista dostępnych klas - https://developers.google.com/appengine/docs/java/jrewhitelist

24/26 Aplikacja realizująca podstawowe funkcje portalu wynajmującego samochody, Blobstore API, UrlConnection API, Image API, Email API, CronJobs API.

25/26

26/26