Tworzenie nowoczesnych serwisów internetowych z wykorzystaniem Vine/Flex/BlazeDs



Podobne dokumenty
Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

- dodaj obiekt tekstowy: /** Maciej */ Stage { title : "First JavaFX App" scene: Scene { width: 300 height: 300 content: [ ] } }

Java w Internecie - czy to ma sens? ;)

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

JavaFX. Programowanie Obiektowe Mateusz Cicheński

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

OpenLaszlo. OpenLaszlo

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Wybrane działy Informatyki Stosowanej

FLEX ( ) Przygotowanie środowiska developerskiego Hello world w MXML Hello world w ActionScript

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis,

Wybrane działy Informatyki Stosowanej

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

Wybrane działy Informatyki Stosowanej

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

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

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Google Web Toolkit Michał Węgorek ZPO 2009

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Programowanie obiektowe

Java Platform Micro Edition

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Java - interfejs graficzny

Analiza i projektowanie aplikacji Java

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

1 Wprowadzenie do J2EE

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

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

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Integracja wirtualnego laboratorium z platformą e-learningową

Aplikacje Internetowe, Servlety, JSP i JDBC

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Programowanie w Javie Wykład 6 Okienka w Javie (AWT)

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Wstęp do JUNG. Omówione elementy wykorzystane w Edge Color Project

Multimedia JAVA. Historia

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Forum Client - Spring in Swing

Programowanie obiektowe

Wzorce logiki dziedziny

Przykładowa implementacja

Wybrane działy Informatyki Stosowanej

Fragmenty są wspierane od Androida 1.6

Przegląd d innych rozwiąza. zań szkieletowych dla J2EE

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

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Systemy operacyjne na platformach mobilnych

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Programowanie komponentowe 5

Aplikacja internetowa vs Strona Internetowa. Aplikacja internetowa, (ang.) web application zwana również aplikacją webową, to program komputerowy,

Aplikacje RMI Lab4

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

Google Web Toolkit. Piotr Findeisen

Certyfikaty firmy Sun. Ścieżka certyfikacyjna dla Javy Egzamin SCJP

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

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

Programowanie obiektowe

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Dokumentacja do API Javy.

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

Web frameworks do budowy aplikacji zgodnych z J2EE

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

Zaawansowane aplikacje internetowe - laboratorium

Narzędzia i platformy programowania w Internecie

Java Server Faces - wprowadzenie

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Współczesne serwisy internetowe. Wykład 1 Dr Krzysztof Podlaski

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

JAX-RS czyli REST w Javie. Adam Kędziora

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

Android, wprowadzenie do SDK

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Piotr Dziubecki Piotr Grabowski, Tomasz Kuczyński Tomasz Piontek, Dawid Szejnfeld, PCSS

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Języki i metody programowania Java. Wykład 2 (część 2)

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

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

Architektury Usług Internetowych. Laboratorium 1 Servlety

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

REACT NATIVE. Anna Maziejuk Kamil Jankowski

Poznań Java User Group Java Server Faces. Wprowadzenie (Fakty i Mity)

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

INŻYNIERIA OPROGRAMOWANIA

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Systemy operacyjne na platformach mobilnych

Szkolenie wycofane z oferty

Transkrypt:

Tworzenie nowoczesnych serwisów internetowych z wykorzystaniem Vine/Flex/BlazeDs Piotr Dziubecki PCSS

Agenda Wstęp Rozwiązania portletopodobne ciągle żywe Vine Toolkit case study Kilka słów o framework'u Ewolucja GUI długa droga od html'a do flash'a Przykładowa implementacja projektu HPC wow2green Podsumowanie 2

Przykładowy usecase Portal informacyjny o rozległej funkcjonalności. Ogromne zasoby danych z możliwością swobodnego przeszukiwania. Użytkownicy bez doświadczenia 'informatycznego'. Tysiące użytkowników. Możliwość personalizacji konta użytkownika ( dostęp przez login/hasło ). Użytkownik może dostosowywać funkcjonalność portalu do swoich potrzeb. 3

[i]google 4

Przykładowy usecase Portal wspomagający naukowców w pracach badawczych. Duże, współdzielone zbiory danych. Specjaliści ( niekoniecznie informatycy). Liczba użytkowników <100. Dostęp do danych po 'okazaniu się' odpowiednim certyfikatem. Różne role użytkowników. 5

QosCosGrid 6

Koncepcja portletów Portlet jest to niezależny komponent stworzony najczęściej w języku Java do umieszczenia na stronie www. Są to programy wyświetlające określoną funkcjonalność na stronie. Portlet jest umieszczany w kontenerze portletów, który agreguje zawartość prezentowanej strony. 7

Koncepcja portletów 8

Portal oparty na technologii portletów GUI ( layout + portlety ) Flash ( Flex ) BlazeDs Req/Res Serwer: Apache Tomcat Portal: Liferay, Gridsphere Użytkownicy, Autentykacja Autoryzacja, Zarządzanie layout'em, CMS. Vine Toolkit BlazeDs Logika biznesowa, Integracja z usługami: portalu, serwisów zarejestrowanych w Vine. API Usługi dostępne pod postacią pluginów: - zaawansowane repozytoria bazodanowe, - web services, - usługi HPC. 9

Vine Toolkit o co tu chodzi? Flex Resources Presentation layer BlazeDs Accounts Tasks Core Vine Authentication Authorization Sessions Files Active Directory LDAP WebDAV Kepler Globus Toolkit 4 Unicore 6 GLite GRIA Groovy Ant XSL SVN kit Plugins Build 10

Jak to uruchomić? ANT Environment Software Build Application Build MainApp software env application env software.installer.path=... application.build.path=software.installer.path/build project.build.path= application.build.path/projects/${project.name} WebApp project env MainProject Build PortletProject Build ServletProject Build 11

Co tam się dzieje w środku? Initialization SVN update Compilation Annotation Jarring Deployment XSL Database Thank you! 12

Ewolucja GUI Dylematy związane z adaptacją standardów GUI. Proces ewaluacji rozwiązań GUI w Vine Toolkit: HTML JSP Tapestry Echo 2 Sportlets YUI DWR Flash Flex BlazeDS JSF 13

Tapestry Tapestry jest to zorientowany obiektowo framework używany do tworzenia aplikacji webowych. Wykorzystuje wzorzec projektowy MVC ( model-view-controller ). Zalety: zorienotwany na komponenty, rozwijany jako projekt apache, może być wspomagany bibliotekami Java Script. Wady: długi czas inicjacji, przerost formy, skomplikowany w użyciu. 14

Echo 2 Echo jest platformą do tworzenia zaawansowanych interfejsów użytkownika. Aplikacje budowane są przy pomocy technik obiektowych, komponentowych oraz modelu eventów. Ten zestaw pozwala na budowanie aplikacji w sposób zbliżony do np. Java Swing. Programista nie musi znać JavaScript, aplikacje tworzy się w Javie, Echo zajmuje się procesem renderowania strony. 15

Echo 2 Zalety: Silnik renderujący wydajny, nie ma problemów z crossbrowser compatibility issues. Brak wymagań odnośnie znajomości JavaScript. Wady: Przejmuje zarządzanie nad całą stroną www, nie ma wsparcia (oficjalnego) dla osadzania aplikacji Echo w portalach etc. GamePane() { super(); Column layoutcolumn = new Column(); layoutcolumn.setinsets(new Insets(30)); layoutcolumn.setcellspacing(new Extent(10)); add(layoutcolumn); layoutcolumn.add(new Label( new ResourceImageReference( "/echotutorial/numberguess/titlebanner.png"))); layoutcolumn.add(statuslabel); layoutcolumn.add(countlabel); layoutcolumn.add(promptlabel); Button submitbutton = new Button("Submit Your Guess"); submitbutton.setactioncommand("submit guess"); submitbutton.setforeground(color.black); submitbutton.setbackground(color.green); submitbutton.setwidth(new Extent(200)); submitbutton.addactionlistener(this); layoutcolumn.add(submitbutton); Button newgamebutton = new Button("Start a New Game"); newgamebutton.setactioncommand("new game"); newgamebutton.setforeground(color.white); newgamebutton.setbackground(color.red); newgamebutton.setwidth(new Extent(200)); newgamebutton.addactionlistener(this); layoutcolumn.add(newgamebutton); } public void actionperformed(actionevent e) { if (e.getactioncommand().equals("new game")) { ((NumberGuessApp) ApplicationInstance.getActive()).startNewGame(); } else if (e.getactioncommand().equals("submit guess")) { processguess(); } } 16

Sportlets Framework odpowiadający za warstwę prezentacji stworzony specjalnie z myślą o Vine Toolkit i współpracą z różnymi środowiskami docelowymi. Składa się z: komponentów Yahoo! User Interface Library (YUI) HTML + JavaScript, silnika ajaxowego DWR umożliwiającego eksponowanie metod klas Javy po stronie JavaScriptu. 17

Sportlets public class HelloWorld extends AbstractExample { Zalety: private Label helloworldlabel; private TextField helloworldtextfield; private Button helloworldbutton; Engine zoptymalizowany na działanie w różnorakich środowiskach hostujących ( portlety, servlety ) public HelloWorld() { super(); setup(); } private void setup() { Oparty na 2 aplikacjach o dużych możliwościach. settitle("hello World!"); // Add hello world label to jsp layout helloworldlabel = new Label("helloWorldLabel"); helloworldlabel.settext("message: "); add(helloworldlabel); Wady: Do poprawnego działania potrzebne były ingerencje w YUI, problem z kompatybilnością przeglądarek. // Add hello text field to jsp layout helloworldtextfield = new TextField("helloWorldTextField"); helloworldtextfield.setvalue("hello world!"); add(helloworldtextfield); Duże nakłady środków na projektowanie i implementowanie nowej funkcjonalności. // Add hello world button helloworldbutton = new Button("helloWorldButton"); helloworldbutton.settext("update message"); helloworldbutton.putparameter("testme", "now"); helloworldbutton.addlistener(this, ClickEvent.NAME, "dosetmessage"); add(helloworldbutton); add(new LineBreak()); } } public void dosetmessage(event event) { getmessagebox().setmessage( helloworldtextfield.getvalue()); } 18

Flash - Flex/BlazeDs Flex SDK Środowisko pozwalające na budowanie interfejsów użytkownika z użyciem kontrolek, systemu eventów oraz zaawansowanych efektów graficznych niezależnych od przeglądarki. 19

Flash - Flex/BlazeDs 20

Flash - Flex/BlazeDs BlazeDs Data services stworzone z myślą o ułatwieniu komunikacji pomiędzy stroną klienta a serwerem aplikacji. Wsparcie dla remotingu, technologii serverpush. 21

Flash - Flex/BlazeDs Zalety: Stabilne środowisko open source wspierane przez Adobe. Wydajne data services z zaawansowanymi modelami komunikacji. Dostęp do potężnej bazy komponentów o ogromnych możliwościach w zakresie UI / wizualizacji. Wady: Do tworzenia aplikacji potrzebna jest znajomość mxml i action script. Aplikacje muszą być kompilowane do binarnej postaci wykonywalnej. 22

Flash - Flex/BlazeDs Integracja z Vine Toolkit: Włączenie źródeł flex owych do procesu kompilacji, buildowania i deploymentu Vine Toolkit. Klasa bazowa po stronie klienta oferująca funkcjonalność Vine. Wsparcie dla upload u / download u z wykorzystaniem portal file systemu, Zarządzanie sesjami, użytkownikami, autoryzacją. Renderowanie aplikacji flashowych pod postacią portletów. 23

Flex w Vine Toolkit 24

Vine Toolkit MVC framework? 25

Hello world server model public class HelloWorldAppModel implements Serializable { private static final long serialversionuid = 523649768599509957L; private String greetings = null; public String getgreetings() { return greetings; } public void setgreetings(string greetings) { this.greetings = greetings; } } 26

Hello world client model package org.vinetoolkit.uitutorials.helloworld { [Bindable] [RemoteClass(alias = "org.vinetoolkit.uitutorials.flex.app.helloworld.helloworldappmodel")] public class HelloWorldAppModel { public var greetings:string; } } 27

Hello world resource bundle hw.server_says=server says: hw.client_says=client says: hw.hello_world=hello World!!! hw.greetings_from_server=greetings from server hw.greetings_from_client=greetings from client 28

Hello world server logic @BlazeDsDestination(development = true) @PortletDisplayName(locales = {"en", "pl"}, values = {"Hello World from uitutorials project", "Witaj Świecie z projektu uitutorials"}) public class HelloWorldApp { protected final static String resourceboundle = "locale.uitutorials"; @BlazeDsMethod(role = "guest") public HelloWorldAppModel sayhello() { HelloWorldAppModel helloworldappmodel = (HelloWorldAppModel) VineFlexUtilClass.getUIModel(); String localizedmessage = VineFlexUtilClass.getResourceString(resourceBoundle, "hw.server_says") + VineFlexUtilClass.getResourceString(resourceBoundle, "hw.hello_world"); helloworldappmodel.setgreetings(localizedmessage); return helloworldappmodel; } } 29

Hello world client view <?xml version="1.0"?> <vine:vineapplication xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="org.vinetoolkit.uitutorials.helloworld.* xmlns:vine="org.vinetoolkit.vine.*" creationcomplete="creationcomplete(event)"> <mx:metadata>[resourcebundle("uitutorials")]</mx:metadata> <HelloWorldAppModel id="helloworldappmodelobj"/> <mx:script source="helloworldapp.as"/> <mx:text text="{helloworldappmodelobj.greetings}"/> <mx:hbox> <mx:button label="{resourcemanager.getstring('uitutorials', 'hw.greetings_from_server')}" click="service.sayhello()"/> <mx:button label="{resourcemanager.getstring('uitutorials', 'hw.greetings_from_client')}" click="helloworldappmodelobj.greetings = resourcemanager.getstring('uitutorials', 'hw.client_says') + resourcemanager.getstring('uitutorials', 'hw.hello_world')"/> </mx:hbox> </vine:vineapplication> 30

Hello world client logic public function creationcomplete(event:flexevent) : void { setdebugmode(true); bindmodel("helloworldappmodelobj"); } 31

Hello world application 32

wow2green portal hpc Charakterystyka: Serwis internetowy integrujący funkcjonalność kilku aplikacji. Jako warstwę prezentacji wybrano portal www. Skierowany do grupy osób wspólnie pracujących nad zadaniami projektowymi. Potrzeba zarządzania danymi funkcje CMS. Wizualizacje projektów. 33

wow2green implementacja Integracja w warstwie HPC: workflow engine - Kepler, job manager Gria Job manager, data storage Gria data store. Integracja w warstwie portalowej: zarządzanie kontami użytkowników, zarządzanie rolami, dostępem do zasobów, bezpieczeństwo ( autentykacja po Active Directory, certyfikaty ). Interfejs użytkownika. 34

wow2green struktura komponentów GUI Client UI - browser Vine Toolkit Kepler W-S Vine W-S Busiiness logic GRMS Job Manager S S Job Manager Job Manager Scheduler Job Manager Middleware Job Middleware Storage S 35

Flash - Flex/BlazeDs 36

Podsumowanie Alternatywa dla Flexa? - Microsoft Silverlight / Moonlight technologia zdobywająca coraz większą popularność. Problemy z kompatybilnością ( Moonlight, a Silverlight 2 ). - JavaFX uproszczony model budowania interaktywnych interfejsów użytkownika oparty na Javie. Wsparcie dla urządzeń mobilnych. Brak wersji na wszystkie platformy ( obecnie wspierane to Windows, Mac ). 37

Dziękuję za uwagę Zasoby: http://www.man.poznan.pl http://vinetoolkit.org http://www.adobe.com/products/flex/ http://tech4web.blogspot.com 38