<Insert Picture Here> Vývoj portálových řešení v Javě



Podobné dokumenty
Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Systémová administrace portálu Liferay

PA165: Úvod do Java EE. Petr Adámek

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

KIV/PIA 2013 Jan Tichava

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc

Java Server-side. Štěpán Kuchař. VŠB-TUO FEI Katedra informatiky

Tvorba informačních systémů

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

X33EJA Enterprise Java

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

UNIVERZITA PARDUBICE ÚSTAV ELEKTROTECHNIKY A INFORMATIKY

X36WWW. Technologie aplikačních serverů. Miroslav Bureš,, Martin Klíma. X36WWW: 12. přednáška 1

Platformy / technologie. Jaroslav Žáček

Technologie Java. Jaroslav Žáček

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Tvorba informačních systémů

Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition vývoj webových aplikací

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

Server-side technologie pro webové aplikace

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Web Frameworks Java Server Faces. Petr Aubrecht CA

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Tvorba informačních systémů

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

Platformy / technologie. Jaroslav Žáček

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Web Services na SOAP

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Co by měl umět dobrý vývojář. Petr Adámek Home Credit International a.s.

E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka

Tvorba informačních systémů

Obchodní podmínky technické podpory programu ESRI Developer Network (EDN)

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

Spring framework 2.0. Roman Pichlík CZJUG

Tvorba informačních systémů

Tvorba informačních systémů

(Enterprise) JavaBeans. Lekce 7

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Stručný obsah. Část I Úvod. Část II Komponenty

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

IBA CZ průmyslový partner FI MU

Převod LN aplikace do xpages

}w!"#$%&'()+,-./012345<ya

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Ruby on Rails: zapomeňte na Javu

KIV/PIA 2012 Ing. Jan Tichava

Webová prezentační aplikace

INFORMAČNÍ SYSTÉMY NA WEBU

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

[ -3-

IBA CZ průmyslový partner FI MU

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Obsah. Rozdíly mezi systémy Joomla 1.0 a Systém Joomla coby jednička online komunity...16 Shrnutí...16

Tvorba informačních systémů

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Olga Rudikova 2. ročník APIN

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

JavaServer Faces Zdeněk Troníček

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB)

Aleš Rybák, Jiří Kadlec. Pluginy budoucnosti

Elektronická podpora výuky předmětu Komprese dat

IBM Software Group IBM - SWG. Petr Chmelik WebSphere, IBM ČR a SR. Name Title Company IBM Corporation

Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition

Web frameworks v praxi

SPECIFIKACE PŘEDMĚTU PLNĚNÍ

Michal Krátký, Miroslav Beneš

}w!"#$%&'()+,-./012345<ya

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

Různé tváře WebSphere Portal

Komponentní technologie

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

WWW technologie. HTTP protokol

Semináˇr Java XI Servlety, JSP Semináˇr Java XI p.1/38

Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18

Řízení reálných projektů, agilní metodiky

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Instalace a konfigurace web serveru. WA1 Martin Klíma

[ASP].NET Core Demystified. Miroslav Holec. Konzultant a lektor [ASP].NET Core.

Webové programování je CHALENGE! Milan Čapoun, Samuel Šramko

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25

Softwarové komponenty a Internet

Co se chcete dozvědět?

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

Transkript:

<Insert Picture Here> Vývoj portálových řešení v Javě Pavel Kubal

Program Úvod do problematiky portálů Co je to Portál Jak se vyvíjejí portlety Softwarová podpora vývoje Výhody vývoje portálů Praktické zkušenosti a zajímavosti z projektů Kde jsou limity technologií (ano zde existují) Chyby, které byste po nás nechtěli opakovat Doporučení a praktické rady Objevování kola je nesmírně nákladné 3 3

Zkušenosti autora 4 roky vývoje portálů na JSR 168 a JSR 286 Vývoj na hlavních platformách WebLogic a WebSphere Portál B2B Škoda AUTO Portál pro všechny dealery a importéry Škoda AUTO Portál B2E Škoda AUTO Portál pro 20 000 zaměstnanců Portál ÚVN INIS Portál pro zdravotnický personál nemocnice 4

Úvod do Java portálů <Insert Picture Here>

Co je to Portlet? Javová webová komponenta, jejíž běhové prostředí je portlet kontejner Stejně jako Servlet generuje HTML kód (fragment) Portlet je větší abstrakce od HTTP protokolu Výstupy portletů se agregují a vytváří portálovou stránku Portlet má celou řadu omezení (nesmí generovat <head>...) Portlet standardy JSR 168 Portlet specifikace 1.0 JSR 286 Portlet specifikace 2.0 Celá řada dalších specifikací WSRP, Portlet Bridge atd. 6

Jak vypadá portlet? Podobně jako servlet import javax.portlet.*; import java.io.*; public class HelloWorldPortlet extends GenericPortlet { public void doview(renderrequest request, RenderResponse response) throws PortletException, IOException { } } response.setcontenttype(request.getresponsecontenttype()); PrintWriter writer = response.getwriter(); writer.write("hello from portlet."); Má svůj zvláštní deployment deskriptor portlet.xml Každá webová aplikace má jeden, který může deklarovat více portletů 7

JSR 168 a JSR 286 Kontrakt mezi komponentou (portletem) a kontejnerem (portálem) Řeší celou řadu problémů Zpracování požadavku, stavové informace (session), životní cyklus, deployment, preference, parelelní rendering, meziportletovou komunikaci, módy portletu... A celou řadu problémů vůbec neřeší Upload, download, AJAX, layout stránky, sdílení informací mezi portlety v jiných webových aplikacích, některé aspekty deploymentu 8

Co je to portlet kontejner? Portlet kontejner je běhové prostředí pro portlety Běhové prostředí portlet kontejneru je servlet kontejner Například open source projekt Pluto 9

Co je to portál? Portál je webová stránka agregující obsah portletů Celá řada open source i komerčních Pluto, WebSphere Portal, Jetspeed, JBoss Portal... 10

Interakce portletů a portálu 11

Proč portlety? Portlety představují další abstrakci od protokolu HTTP Žádná jiná technologie neagreguje výstup několika aplikací do jedné stránky Portlet můžeme nasadit do jakéhokoliv portálu a umístit kamkoliv na stránku Jednotlivé portlety mohou být založeny na rozdílných technologiích i vývojářských konvencích Portlety jsou na sobě navzájem nezávislé Portlety mají na rozdíl od servletů rozdělen požadavek na akci a rendering 12

Další výhody portálů Portál jako produkt přináší celou řadu služeb out-of-thebox: Personalizaci (možnost upravit si portál podle potřeby) Autentizaci a autorizaci Agregaci obsahu z různých zdrojů Vyhledávání Na svém portálu můžeme využívat portlety od jiných dodavatelů (např. počasí) Stávající aplikace můžeme převést na portlety Portlety mají stavy (min, max) a módy (VIEW, CONFIG) 13

Vývoj portletů <Insert Picture Here>

Jak se píší portlety Portlety můžeme psát ve svém oblíbeném webovém frameworku, pokud pro něj existuje bridge (JSF, Struts) JSF Portlet Bridge JSR 301, JSR 329 15

Portlet Bridge Portlet Bridge je abstrakce od technologie portletů Díky PB vypadá portletová aplikace jako běžná webová aplikace Portlet Bridge odstíní programátora od životního cyklu portletu Výhoda: neřeším portlety a píšu aplikaci Nevýhoda: nemám přístup k potomkovi třídy GenericPortlet Celá řada různých implementací Apache MyFaces Portlet Bridge, JBoss Portlet Bridge, Open Portlet Container Bridge... 16

Softwarová podpora vývoje a provozu portálů Jaké softwarové komponenty potřebujeme pro vývoj Framework pro tvorbu stránek JSF, Struts, Spring, Velocity, Groovy, Perl a PHP! Portlet Bridge Apache, JBoss, Open Portal... Portlet kontejner (portál) Open Portal, WebSphere Portal, JBoss Portal, Pluto Aplikační server Tomcat, Jetty, WebSphere, JBoss, WebLogic 17

Zkušenosti s vývojem portálů <Insert Picture Here>

Na co si dát pozor Build a deployment Sdílení dat Ajax Upload dat Konfigurace portletu Problematické požadavky na portál Chyby, které byste po nás nechtěli opakovat 19

Build a deployment Dvě hlavní možnosti či hybrid Každý přístup má své výhody a nevýhody 20

Sdílení dat Portlety sdílí session spolu se servlety a JSP stránkami Ale pouze pokud jsou ve stejné aplikaci Další možnosti sdílení dat jsou cache a application scope 21

Ajax Ajax u standardních webových komponent bez portálu 22

Ajax v portálu V portálu standardní Ajaxové komponenty nefungují Portálová stránka neví jak přesměrovat požadavek 23

Ajax v portálu - řešení Vytvořit servlet, který bude vracet JSON response Jedná se o reimplementaci zabudovaného Ajaxu pro portálové řešení 24

Upload dat Obvykle kombinace symptomů ajaxového problému a problému sdílení dat + návrat na stránku portálu Řešení je opět servlet + redirect na referera 25

Konfigurace portletu Pro konfiguraci portletu lze využít web.xml (context-param) Dostupný ze PortletContext portlet.xml (init-param) Dostupný z PortletConfig (nedostupný v PortletBridge) portlet.xml (preferences) Dostupný z PortletRequest (ne v MyFacesBridge) 26

Problematické požadavky portálu Portál nemá smysl pro každý typ aplikací Problematické požadavky na portál Rozlišení 1024x768 (cca jako rozlišení iphonu) Layout ne každý si dokáže představit více než jeden portlet na stránce Restart navigačního stavu portletu Problematické kombinace softwarových komponent MyFaces, MyFacesBridge, OPC, WLS průšvih 27

Chyby, které byste po nás nechtěli opakovat Restart navigačního stavu portletu Standardně se udržuje navigační stav portletu i při klikání do menu Je nutno ověřit zda vybrané portálové řešení umí restart navigačního stavu WebSphere Portal restart umí, ale ne pro JSF portlety MyFaces Bridge restart neumí OPC Bridge restart umí Velmi problematická je situace, kdy zákazníkovi vysvětlujete, že restart stavu portletu nelze provést 28

Lessons learned Nekombinujte příliš mnoho softwarových balíků Preferujte JSF framework, Portlet Bridge, Portál a servlet kontejner od jednoho výrobce Klaďte velký důraz na fázi proof of concept Drahé komerční portály obvykle nenabízí oproti open source řešením nic navíc (kromě uzavřeného kódu) Ani podpora nemusí pomoci (viz WPS) Už od začátku se soustřeďte na možnosti sdílení funkčností mezi portálem a portlety CSS styly, JavaScript, autorizace 29

Lessons learned Je lepší když si portálové stránky vytvoříte jako JSP než abyste je klikali v administrační konzoli Výrazně větší flexibilita Nedovolte uživatelům pohybovat s portlety na stránce! Podpora nebude řešit nic jiného Pozor na tuny JavaScriptu a CSS, které jsou v některých portáled by default 30

Co v prezentaci nebylo probráno Vývoj servletů a JSP stránek SL-314-EE6 Java Server Faces 2.0 DTJ-3108 Bezpečnost v prostředí webových aplikací v Javě DTJ-3109 31

Dotazy? pro prezentaci byly použity inspirace z volně dostupných materiálů 32

Joke at the end Adapted from the beloved Java API Calling getcause() gets the cause that caused the throwable to be thrown and when you've got the cause that threw the throwable, you'll know what caused the exception. 33 33