Google App Engine for Java 2014. Google App Engine2 Google App Engine (GAE) – це інфраструктура хмарних обчислень, яка орієнтована на підтримку веб-додатків.

Slides:



Advertisements
Similar presentations
Патерн (принцип) IOC&DI IoC2 Spring Framework.
Advertisements

Розробка Web-проектів із використанням Spring Framework 2008 (Курс “Інформаційні технології”)
АТ Інститут Інформаційних Технологій Комплекс засобів криптографічного захисту інформації на платформі IBM Lotus Заступник головного конструктора Горбенко.
Інтегруюче комплексне заняття Тема Ефективні електронні комунікації задля успіху в бізнесі Ірина Арапова Вінницький інститут МАУП.
Патерн (принцип) IOC&DI 2010 (Курс “Інформаційні технології”)
Користування бібліотекою та довідково-бібліографічним апаратом Електронний каталог Наукової бібліотеки НаУКМА (ІБС ALEPH500) Баньковська Ірина 14 жовтня.
Про конкурс HTC Android Developers Contest перший конкурс для Android-розробників в Україні; мета: пітримати розробку нових Android додатків для українського.
10 КЛАС ЗА ПІДРУЧНИКОМ «ІНФОРМАТИКА. 10 КЛАС» Й.Я. РИВКІНДА, Т.І. ЛИСЕНКО, Л.А. ЧЕРНІКОВОЇ, В.В. ШАКОТЬКО Вивчаємо інформатику СЗОШ № 8 м.Хмельницького.
Multimedia Presentation "What Is a Computer?"
Кротова І.В., методист Центру аналізу та прогнозування розвитку освіти Всеукраїнська українознавча гра «Соняшник»
Петраківський навчально-виховний комплекс „Дошкільний навчальний заклад – загальноосвітня школа І-ІІІ ступенів” Черкаської області.
Автоматизоване розроблення веб-сайтів.
Електронна пошта – сервіс
М УЛЬТИМЕДІЙНІ ПРЕЗЕНТАЦІЇ Мультимедійні технології С ТВОРЕННЯ КЛІПІВ.
Із досвіду роботи Єгорченкової Людмили Миколаївни вчителя англійської мови. Вчитель-методист вищої категорії Стаж роботи 35 років ХЗОШ №140.
Пилипенко Олена Володимирівна,
Відділ освіти Кам’янської райдержадміністрації Грушківської загальноосвітньої школи І-ІІІступенів Презентація до уроку з природознавства в 6 класі на тему:
ОПЕРАЦІЙНА СИСТЕМА Windows 
Створення та форматування інформаційного вмісту презентації
Презентація на тему: Органічні речовини і здоров'я людини
Створення макросів в автоматичному режимі
Шаблони документів і робота з ними
Словник пояснення конкретного слова переклад з однієї мови на іншу.
Вбудовування та зв’язування файлів. Веб-публікація документів
Основні поняття та засоби комп'ютерної графіки
Робота з Windows Файл, папка.
Пpавила техніки безпеки під час pоботи на комп’ютеpі. Поняття по інформацію. Повідомлення. Способи подання і кодування повідомлень. Двійкове кодування.
Загальне поняття про прикметник
Створення й оформлення блогу
Вимірювання та вимірювальні прилади Лабораторна робота
ФОРМУВАННЯ Й РОЗВИТОК ІНФОРМАЦІЙНО- КОМУНІКАЦІЙНОЇ КОМПЕТЕТНОСТІ ВЧИТЕЛЯ УКРАЇНСЬКОЇ МОВИ ТА ЛІТЕРАТУРИ.
Електронні таблиці 3.7. Діаграми в Excel «Не бійся, що не знаєш – бійся, що не навчишся». (Китайська мудрість)
Урок № 2 Розчин та його компоненти: розчинник, розчинена речовина. Вода як розчинник. Будова молекули води, поняття про водневий зв’язок. Фізико-хімічна.
ОПЕРАЦІЙНА СИСТЕМА Windows Встановіть відповідність 
Практичний психолог Яценко Вікторія Іванівна Стаж роботи на посаді практичного психолога – 14 років І кваліфікаційна категорія.
Сенсорне виховання як важлива складова у всебічному розвитку
Автори навчально - методичного комплекту : М. С. Вашуленко, доктор педагогічних наук, професор, дійсний член НАПН України С. Г. Дубовик, кандидат педагогічних.
Комп’ютерні віруси та антивірусні програми. Обслуговування дисків
ОПЕРАЦІЙНА СИСТЕМА Windows 
Сходинки до інформатики. 2 клас за новою державною програмою
МАТЕМАТИКА 1 клас Уведення поняття «літр» Гапонько Тетяна Миколаївна.
Платформа Microsoft Azure 2014 (До 2014 року платформа мала назву Windows Azure)
MCS 270 Spring 2014 Object-Oriented Software Development.
Web MVC фреймворки WebWork та Struts (Курс “Інформаційні технології”)
Ant Ant2 Призначення: виконання повторюваних, як правило, рутинних завдань, пов'язаних із розробкою, розгортанням, виконанням проектів. Приклади.
До використання COM- об’єктів у Visual Studio (C#)
Розробка Web-проектів із використанням Struts Framework 2008.
Web-framework Tapestry 2008 (Курс “Інформаційні технології”)
Google Web Toolkit (GWT). AJAX-додатки
Google Web Toolkit (GWT). AJAX-додатки
Навчальний елемент Робота з меню у програмі Windows'95 Назва: Оператор комп’ютерного набору Професія: UA002 Код:
Java and the Web CSE 3330 Southern Methodist University.
Пілотні школи Про організацію роботи мережі пілотних шкіл області.
ITERATOR Патерн поведінки Доповідач: Пропой Ярослав Рецензент: Мельниченко Владислав 0/40 NEXTSTART.
Списки типів Нікітін Олексій. Навіщо потрібні списки типів? Розглянемо шаблон Abstract Factory. class WidgetFactory { public: virtual Window* createWindow()
Ламінування та способи ламінування
Підготовка вчителів до викладання курсу «Сходинки до інформатики» за новим Державним стандартом початкової загальної освіти Щоткіна А.М., зав. Центру інформатики.
Активність радіонуклідів
Павло Чупірчук.  Перші комп’ютери  Нові горизонти  Персональні комп’ютери  Кожному  Мобільні пристрої  Де завгодно «Піраміда Маслоу». Наші дні.
1 ЕКОЛОГІЧНИЙ МОНІТОРИНГ СТАНУ ГРУНТОВИХ ВОД В УРБОЕКОСИСТЕМІ.
Ресурси веб-сайту Книжкової палати України на допомогу бібліотекам.
Java RMI & CORBA Java RMI & CORBA2 Зміст J2EE. Підтримка CORBA. –Технологія Java IDL. –Технологія Java RMI/IIOP Сумісність RMI/IIOP - та CORBA-проектів.
Паралелепіпед Геометрія. Зібратися разом – це початок. Триматися разом – це прогрес. Працювати разом – це успіх. Г. Форд.
2015. Два рiвні складності сертифікаційної роботи (тесту) Абітурієнти складали тест ЗНО з математики двох рівнів складності – базового і поглибленого,
АВТОМАТИЗОВАНИЙ ЕЛЕКТРОПРИВОД МІКСЕРА ПРИГОТУВАННЯ ФРУКТОВО- ОВОЧЕВИХ СОКОВИХ СУМІШЕЙ Керівник проекту: к.т.н. Бабій С. М. Виконав: ст. гр. ЕПА-14м Гома.
In Class Assg 4 - Solution
In Class Assg 3 - Solution
Servlets and JSP 20-Nov-18 servletsJSP.ppt.
In Class Assg 2 - solution
Introduction to Java Servlets
Presentation transcript:

Google App Engine for Java 2014

Google App Engine2 Google App Engine (GAE) – це інфраструктура хмарних обчислень, яка орієнтована на підтримку веб-додатків (інструментальні мови Python та Java), забезпечуючи динамічне надання системних ресурсів за реальними потребами. GAE використовує контейнер сервлетів Jetty, доступ до баз даних забезпечується через Java Data Objects (JDO) та Java Persistence API (JPA) із використанням Google BigTable як розподіленої системи зберігання даних. Серед реалізованих сервісів є, наприклад, такий, що підтримує великі об'єкти даних (BLOB) об’ємом до 2 гігабайт (для створення BLOB просто завантажується файл із використанням HTTP- запиту). Google App Engine

3 Google App Engine Pricing:

Google App Engine4 Google App Engine. Quotas (1/4)

Google App Engine5 Google App Engine. Quotas (2/4)

Google App Engine6 Google App Engine. Quotas (3/4)

Google App Engine7 Google App Engine. Quotas (4/4)

Google App Engine8 Google App Engine. Користувач може розгорнути безкоштовно до 25 додатків

Google App Engine9 Завантаження та установка Google Plugin для Eclipse :

Google App Engine10 Обліковий запис Google App Engine : Якщо Ви зареєстровані на gmail.com (маєте поштову скриньку), то й сервіс Google App Engine є доступним для Вас !

Google App Engine11 Eclipse. Створення web-проекта під GAE (1/2) Поява цього меню є результатом установки Google Plugin

Google App Engine12 Eclipse. Створення web- проекта під GAE (2/2)

Google App Engine13 Склад проекту. Вигляд проекту, запущеного з емулятором Не змінювалися

Google App Engine14 Особливості проекту. Class EMFService package com.ttp.contact.dao; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; public class EMFService { private static final EntityManagerFactory emfInstance = Persistence.createEntityManagerFactory ("transactions-optional"); private EMFService() { } public static EntityManagerFactory get() { return emfInstance; } Для використання фабрики- синглетона EntityManagerFactory (EMF)

Google App Engine15 Особливості проекту. Enum ContactService public enum ContactService { public List listContacts() { EntityManager em = EMFService.get().createEntityManager(); Query q = em.createQuery("select m from Contact m"); List contacts = q.getResultList(); return contacts; } public void add(String name, String addr) { synchronized (this) { EntityManager em = EMFService.get().createEntityManager(); Contact contact = new Contact(name, addr); em.persist(contact); em.close(); } public void remove(long id) { EntityManager em = EMFService.get().createEntityManager(); try { Contact contact = em.find(Contact.class, id); em.remove(contact); } finally { em.close(); } Визначено DAO -рівень (одноелементний enum з прописаними трьома методами, що відповідають традиційним функціям з persistence-даними): У кожному з трьох методів використовується об’єкт em типу EntityManager. Цей об’єкт створюється фабрикою-синглетоном EntityManagerFactory.

Google App Engine16 Особливості проекту. Використання класів-сервлетів ( servlet-mapping ) public class ServletCreateContact extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse resp)... resp.sendRedirect("/contactList.jsp");... public class ServletRemoveContact extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp)... resp.sendRedirect("/contactList.jsp");... View (JSP) - contactList.jsp

Google App Engine17 Особливості проекту. Класи-сервлети, class Contact (фрагменти коду) public class ServletCreateContact extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { String name = checkNull(req.getParameter("name")); String addr = checkNull(req.getParameter("addr")); ContactService.INSTANCE.add(name, addr); resp.sendRedirect("/contactList.jsp"); }... } public class ServletRemoveContact extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { String id = req.getParameter("id"); ContactService.INSTANCE.remove(Long.parseLong(id)); resp.sendRedirect("/contactList.jsp"); public class = GenerationType.IDENTITY) private Long id; private String name; private String addr;... }

Google App Engine18 Google Developers Console. Перегляд розгорнутих GAE- проектів та створення нового (під розроблений web- проект contacts_GAE) Google Developers Console

Google App Engine19 Google Developers Console. Створення нового GAE-проекту (з ID = my-cont) (1/2) PROJECT ID

Google App Engine20 Google Developers Console. Створення нового GAE-проекту (з ID = my-cont) (2/2) PROJECT (APPLICATION) NAME – TITLE

Google App Engine21 Google App Engine. Проекти та їх стани

Google App Engine22 Нагадуємо! Поява цього меню є результатом установки Google Plugin Безпосередньє розгортання web-проекту contacts_GAE в середовиші GAE (1/4)

Google App Engine23 Безпосередньє розгортання web-проекту contacts_GAE в середовиші GAE (2/4)

Google App Engine24 Безпосередньє розгортання web-проекту contacts_GAE в середовиші GAE (3/4)

Google App Engine25 Безпосередньє розгортання web-проекту contacts_GAE в середовиші GAE (4/4)

Google App Engine26 Розгортання web-проекту в GAE відбулось. Вигляд стартової html-сторінки у браузері Наш GAE-проект

Google App Engine27 Робота з проектом Ще одна можливість доступу

Додаток

Google App Engine29 Class Contact (фрагмент) package com.ttp.contact.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import public class = GenerationType.IDENTITY) private Long id; private String name; private String addr; public Contact(String name, String addr){ this.name = name; this.addr = addr; } public Long getId() { return id; } public String getName() { return name; } public void setName(String name) {...

Google App Engine30 Class ServletCreateContact package com.ttp.contact; import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import public class ServletCreateContact extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { String name = checkNull(req.getParameter("name")); String addr = checkNull(req.getParameter("addr")); ContactService.INSTANCE.add(name, addr); resp.sendRedirect("/contactList.jsp"); } private String checkNull(String s) { if (s == null) { return ""; } return s; }

Google App Engine31 Class ServletRemoveContact package com.ttp.contact; import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ttp.contact.dao.ContactService; public class ServletRemoveContact extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { String id = req.getParameter("id"); ContactService.INSTANCE.remove(Long.parseLong(id)); resp.sendRedirect("/contactList.jsp"); }

Google App Engine32 Файл web.xml ( servlet-mapping ) <web-app xmlns:xsi=" xmlns=" xmlns:web=" xsi:schemaLocation=" version="2.5"> CreateNewContact com.ttp.contact.ServletCreateContact RemoveContact com.ttp.contact.ServletRemoveContact RemoveContact /delete CreateNewContact /new contactList.jsp

Google App Engine33 Файл contactList.jsp (1/3) Contacts <% ContactService daoCS = ContactService.INSTANCE; List contacts = new ArrayList (); contacts = daoCS.listContacts(); %>

Google App Engine34 Файл contactList.jsp (2/3) You have a total number of contacts. Delete Name Addr " >Delete New contact

Google App Engine35 Файл contactList.jsp (3/3) Name Addr

Google App Engine36 Запуск проекту із використанням емулятора ПКМ