Title: Workshop JHeadstart Productieve ontwikkeling van J2EE Applicaties Lucas Jellema AMIS 1115 Oktober 20
1Workshop JHeadstartProductieve ontwikkeling van
J2EE ApplicatiesLucas Jellema(AMIS)11-15
Oktober 2004
2Agenda
- Introductie J2EE Applicatie-ontwikkeling
- Keuzes, uitdagingen, architectuur en technologie
- JHeadstart
- Achtergrond, Architectuur, Technologie
- Demonstratie VHS Applicatie
- Projectaanpak, benodigde vaardigheden en kosten
- Migraties van bestaande Oracle Applicaties
- Oracle Designer en de JHeadstart Designer
Generator - Agenda Workshop
3J2EE Multi Tier Web applicaties
Application server
Browser
- Plain HTML(static)
- HTML from a Servlet(completely dynamic)
- HTML from a JSP (static dynamic)
lthtmlgt
4Plain HTML (static)
Browser
Application server
Http server
Servlet Container
File System
Html pages
Other Components
Other Components
Database server
5Browser
HTML from a Servlet (completely dynamic)
Application server
Web server
Servlet Container
File System
Html pages
Class files
Other Components
Other Components
Database server
6HTML from a JSP (partly static/dynamic)
Browser
Application server
Web server
Servlet Container
File System
Other Components
Other Components
Database server
7J2EE Applicatie Architectuur
Client Tier
User Interface
HTML
Server-Side Presentation Logic
Servlet/JSP
Web Tier
Build Pages Handle User Events MaintainState
EJB, JDBC
Business Logic Tier
Business Logic
Business Objects and their Business Rules
DataTier
dbms, directory
Data
8MVC Architectuur
Browser
- Model represents enterprise data and its
business rules - BC4J, EJB, JDBC
- View displays data contained in the model
- JSP, UIX/Java Server Faces, Servlet
- Controller is the glue between View and Model.
It reacts to significant events in the View,
which may result in manipulation of the Model. - Struts, Oracle 9iAS Framework for J2EE
Controller
View
Model
database
9J2EE en Model-View-Controller
Client Tier
User Interface
View
Controller
Web Tier
Handle User Events MaintainState
Build Pages
EJBTier
Model
Business Objects and their Business Rules
DataTier
Model
Persisted Business Objects a.k.a tables
10Model
- Implementaties
- Oracle Business Components for Java
- (Oracle) Toplink
- Apache OJB, Hibernate, Castor
- Zelf bouwen
- (nog) Geen standaard
- JDO (Java Data Objects) komt er aan
- Onderliggend allemaal gebaseerd op JDBC
- De persistency laag of OO/R mapping kan
gewrapped worden in Enterprise Java Beans
Controller
View
Model
11View
- Implementaties
- JSP (Java Server Pages)
- UIX (Oracle User Interface XML)
- Op basis van Oracle Browser Look and Feel
Guidelines - Implementeert Java Server Faces (JSF)
- XML/XSLT
- JSP geeft grootste flexibiliteit in layout
- UIX/JSF gericht op applicaties met veel data
manipulatie - OLTP/Administratieve applicaties
- Genereren allemaal HTML uitvoer
View
Controller
Model
12Controller
Controller
View
Model
13Wat is JHeadstart?
- Een run-time library om Controller en Model te
laten communiceren - Zonder directe afhankelijkheden
- Een ontwikkel-tool voor component-based J2EE
applicatie ontwikkeling - Gebaseerd op standaard technologie (Struts, JSP,
etc.) - Een hulpmiddel voor migratie van applicaties in
Oracle Designer/Forms naar J2EE
14JHeadstart Voordelen/Kenmerken/Ambities
- Productiviteit
- Bouwt op standaard frameworks
- Runtime componenten verzorgen grondwerk
(plumbing) - Declaratief ontwikkelen
- Generatie
- Gericht op hergebruik
- Structuur, toegankelijkheid, kwaliteit
- Werkt met de industrie-standaarden (JSP en
Struts) - Is open voor ieder type Model-implementatie maar
ondersteunt uit de doos BC4J en Toplink - Lijm tussen Controller en Model
- Model-implementaties kunnen verwisseld of
gecombineerd worden - Onervaren Java-ontwikkelaars kunnen al productief
zijn - Mits begeleid door een ervaren JHeadstart
ontwikkelaar
15JHeadstart Architectuur en Technologie
Browser
Presen-tation
ViewJSPUIX/JSF, XML/XSLT)
Controller Struts
JHeadstart Runtime
Model BC4J Toplink, JDO,
RuleFrame
Server (9i)
Oracle RDBMS Tables/Views
16JHeadstart afscherming Model-implementatie
View (UIX en/of JSP)
Controller (Struts)
DO
DO
DO
DO
JHeadstart Runtime Componenten
DO
Toplink Provider
XML Provider
SOAP Provider
BC4J Provider
DO
klant
film
drager
genre
review
ltxmlgt ltdomainsgt ltgenregt ...
lt/genregt lt/domainsgt
(Oracle) RDBMS
VHS_FILMS
VHS_KLANTEN
XML Document(s)
Web Service(s)
Databases
17JHeadstart wat zit er in de doos?
- JHeadstart bestaat uit vijf hoofdcomponenten
- Applicatie generator (JAG)
- Design Time tools
- JHeadstart Designer Generator (JDG)
- Documentatie (tutorials, JavaAPIDoc, developers
guide) - Run-time componenten (inclusief sources)
- Herbruikbare Actions
- JavaScript libraries
- Templates en Stylesheets
- Herbruikbare JSP componenten (Kalender, Editor
etc.)
18Aanpak J2EE Application Development(met
JHeadstart)
- Model
- Object/Relational Mapping van Tables naar
Classes - Java interface voor data manipulatie
- Java Classes die de applicatie kan aanroepen om
data te zoeken, te bewaren of te verwijderen uit
de database - Bijvoorbeeld Toplink, BC4J, JDO of handmatig op
basis van JDBC - Optioneel (voor gedistribueerde deployment) EJBs
19Aanpak J2EE Application Development(met
JHeadstart)
- View/Controller
- Definieer structuur van de applicatie (schermen,
data-manipulatie, navigatie,) - Definieer de eigenschappen van data-elementen
- (lengte, prompt, datatype, displaytype,
select-lijst met domein-waarden, hint-tekst) - Genereer de applicatie met JHeadstart
- Pas zo nodig de gegenereerde applicatie aan
- Deploy op een J2EE Applicatie Server
20Videotheek Huur Systeem (VHS) Demo
21Voorbeeld Pagina Ontwerp VHS Demo Applicatie
DataObject Films DML Ins Upd Del Max 8
records Sorteren kolom 1 3
Zoeken op Titel, jaar(range), genre, regisseur,
waardering, leeftijd-categorie, cast
Zoek Films
Films
details
ltlt gtgt
col
col
col
col
col
o
o
o
o
zoek
nieuw
DataObject Dragers DML Ins Upd Del Sorteren
kolom 1 2 Table Disclosure
DataObject FilmLeningen DML none (readonly) Max
4 records Sorteren alle kolommen
opslaan
film
dragers
leningen
film
dragers
leningen
film
dragers
leningen
Film Details
Film Kopieën
Leningen
details
col
col
col
col
col
ltlt gtgt
o
o
col
col
col
col
col
o
o
o
o
o
o
opslaan
verwijder
nieuw
opslaan
verwijder
nieuw
film
dragers
leningen
Lening Details
opslaan
verwijder
nieuw
22Demo Rapid Application Development met JHeadstart
23Wat wordt gegenereerd?
- Controller configuratie
- Struts-config.xml
- UIX of JSP paginas
- Op basis van stylesheets, templates en JavaScript
libraries - Resource Bundels
- Meertalige scherm-teksten
- Koppeling Controller/View en Model
24VHS Scherm na aanpassingen
25JHeadstart Designer Generator (JDG)
- De JDG
- Leest domein-, tabel- en module-definitie in
Oracle Designer (6i of 9i) - Creëert in JDeveloper BC4J objecten (Entity
Objects, View Objects) inclusief JHeadstart
properties - Genereert de JHeadstart Application
Structure-file en Domain Definitions file - Waarvoor gebruik je hem
- Eenmalige migratie
- Herhaalde generatie
- vooral als modules zowel met Oracle (Web)Forms of
Web PL/SQL toolkit als ook met J2EE deployed
worden
26JHeadstart Designer Generator
Oracle Forms
Design capture
Oracle Designer
Controller Struts
View JSP (UIX)
Model - BC4J
27Demo JDG
- AMIS Library System
- Applicatie voor het beheer van onze
boekencollectie - Gedefinieerd in Oracle Designer
- Gegenereerd als Oracle Forms applicatie
- Nu Migreren naar/Genereren als J2EE applicatie
28Beperkingen JDG
- Het resultaat (HTML/J2EE) ziet er anders uit dan
de (Web)Forms applicatie - Applicatie Logica (PL/SQL) is niet meegenomen
- Boilerplate items (plaatjes, lijnen) komen niet
mee - Onderhevig aan beperkingen van HTML ten opzichte
van Forms - Stateless (geen open verbinding met de Database)
29Hybrid Development Approach
Model
Controller
View
Analysis DesignBuild
ER Model
Function Model
Design Build
30Vereisten om met JHeadstart te werken
- Development
- Wizards en Generator zijn geïntegreerd met Oracle
10g JDeveloper (9.0.5.x) - Een versie voor 10gR2 JDeveloper en ADF wordt
eind november 2004 verwacht - Run-time willekeurige J2EE Applicatie Server
- o.a. Oracle 9iAS, Tomcat, WebSphere, BEA WebLogic
- Ontwikkelaar-licentie 1750 geen runtime
licentie
31Tools en Vaardigheden
- Ontwikkeltools
- Oracle 10g JDeveloper (BC4J, UIX, JSP, Struts)
- Oracle 9i Designer
- Apache frameworks (Struts, Ant, JUnit)
- Vaardigheden
- Ontwerpers HTML, stateless, (beetje) OO en UML
- Basis Java programmeren
- HTML, CSS en JavaScript (met name View)
- J2EE Servlets en Struts (met name Controller)
- JDBC, BC4J, Toplink SQL (met name Model)
32Geavanceerde opties met JHeadstart
- Meer geavanceerde generatie-mogelijkheden
- File Upload en Download, Images
- Verdere ondersteuning van Model-implementaties
- BC4J, Toplink, XML, WebServices, JDO, Beans
- Ondersteuning voor Wizard layout-style
- Ondersteuning voor XML Export en generatie van
SVG (Scalable Vector Graphics) en PDF - Ondersteuning van Struts Tiles framework en Java
Server Faces - Aansluiting/migratie naar ADF (Oracle 10g
JDeveloper Application Development Framework)
33Conclusies
- JHeadstart biedt productiviteit voor applicatie
ontwikkeling volgens J2EE standaarden - ook flexibele Model-implementatie, structuur,
onderhoudbaarheid, - JHeadstart applicaties staan los van Oracle
specifieke tools - JHeadstart maakt een gemakkelijke(r) instap voor
ontwikkelaars mogelijk in J2EE technologie - JHeadstart ondersteunt generatie van Model en
View/Controller componenten vanuit Oracle
Designer 6i/9i - JHeadstart ondersteunt bij de migratie van Oracle
Designer/Oracle Forms modules
34Resources
- AMIS Technology Corner
- http//www.amis.nl/technology
- Oracle Technology Network
- JHeadstart homepage http//otn.oracle.com/consult
ing/9iServices/JHeadstart2.html - JHeadstart Discussion Forumhttp//forums.oracle.
com/forums/forum.jsp?forum38 - Oracle 9i JDeveloper, Toplink Business
Components for Java (BC4J), UIX BLAF - Apache Jakarta Projects
- Struts
- Sun Javasoft
- JSP, JSF
35Workshop Agenda
- Introductie
- Generatie met JHeadstart (BC4J, JSP, Struts)
- Specificeren LookFeel JSP applicaties
- Customization JSP applicaties
- Gebruik van Struts binnen JHeadstart
- Ontwikkeling custom-navigatie en custom actions
- Introductie JHeadstart Generator Extensies
- UIX als View technologie
- Specificeren lookfeel van UIX applicaties
- Geavanceerdere functionaliteit
- recepten en tutorials
- JHeadstart Designer Generator
- Preview ADF JHeadstart
36(No Transcript)
37(No Transcript)
38(No Transcript)
39Praktische details
- Workshoptijden
- 09.00-17.00
- Lunch ca. 12.30-13.15
- Inloggen
- XP gast/welkom123
- Database als/als_at_ludo (host amisnt15)
- Koffie/thee/frisdrank is zelfbediening