Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Internetteknologi (ITNET2) Præsentation 6: Arkitektur i (Java) Web Applikationer.

Lignende præsentationer


Præsentationer af emnet: "Internetteknologi (ITNET2) Præsentation 6: Arkitektur i (Java) Web Applikationer."— Præsentationens transcript:

1 Internetteknologi (ITNET2) Præsentation 6: Arkitektur i (Java) Web Applikationer

2 Ingeniørhøjskolen i Århus Slide 2 Indhold i denne præsentation

3 Ingeniørhøjskolen i Århus Slide 3 Motivation for arkitektur Behøves man egentligt ikke forklare Ingeniørstuderende? Primært anti-pattern: undgå spaghetti, blob, gold-plating. Byg videre på andres erfaring (patterns: MVC, Command, FrontController, Dispatcher, Layering) Vigtigt at have en fælles forståelse for den valgte struktur –…Så kan man fint bygge sit eget framework … –… eller bygge videre på andres (Struts, JSF, Web Forms) Samme strategier gælder for PHP, ASP, ASP.NET, CGI

4 Ingeniørhøjskolen i Århus Slide 4 Basic OO Design – Use Case Driven Use Case N Actor 1 Use Case spec. “Models” the domain e.g. an Account or Sensor. System/Actor Interaction Use Case impl. Links Model & Boundry «control» «boundary» «entity» Domain Model for Use Case N Logic Domain Model from the Analysis OOA

5 Ingeniørhøjskolen i Århus Slide 5 Design by Layering Client Presentation tier –Provides a user interface to the end-users. –Thin/Rich. (we call it Thin when using JSP/Servlets) Server Side Presentation tier –Building a response to the Client Presentation tier. Server Side Business Logic tier –Use Case implementation. Control classes. Business logic. Server Side Domain Model tier –Domain Model. Entity classes. Enterprise Integration tier –Legacy system. Web services. Persistence tier / Resource layer –Relational Database. File-system.

6 Ingeniørhøjskolen i Århus Slide 6 “Layer” versus “Tier” Bruges begge i mange sammenhænge, når man taler arkitektur af SW Et “Tier” er en organisering af en række “Layers” efter logik. (Eks.3 Tier model: Presentation, Business, Data/Persistence) Et “Layer” er en sortering af en række komponenter efter abstraktion og afhængighed. Det nederste Layer (#0) har den laveste abstraktion og det øverste (#N) den højeste. Komponenter er kun afhængige af komponenter i samme “Layer” eller fra det underliggende “Layer”.

7 Ingeniørhøjskolen i Århus Slide 7 2-lags modellen I 2 lags modellen går JSP/Servlets direkte på en database eller en applikation og kontrollogikkode & HTML er tæt koblet Dette giver en række struktureringsproblemer Hver gang en procedure & tabel ændres skal samtlige JSP/Servlet sider ændres Massive problemer med redundant kode, og problemer med genbrug JSP/Servlet Database/ Enterprise Database/ Enterprise JSP/Servlet

8 Ingeniørhøjskolen i Århus Slide 8 3-lags modellen 3 lags modellen (kan også være flere lag, her tæller Browseren f.eks. ikke med) Vi har nu afkoblet JSP/Servlets fra at tale direkte med kontrollogikken & databasen (eller Legacy applikation) Vi kan genbruge funktionalitet i vores bean, og får en generelt pænere struktur Ikke banalt med smuk 3 lags JSP/Servlet Database/ Enterprise Database/ Enterprise JSP/Servlet Bean

9 Ingeniørhøjskolen i Århus Slide 9 n-lag (Antipattern: Excessive Layering) Pas på – pas på Hver gang I indfører et lag – så indfører I flere klasser og mere kompleksitet –derfor bliver det også sværere at forstå og overskue –så der er ALTID fordele og ulemper ved lagdeling –og igen bliver det lidt mindre naturvidenskab – og lidt mere et spørgsmål om erfaring, fornemmelse og psykologi, for det handler lige så meget om virksomhedens og kundens personlige ønsker og behov, samt selvfølgeligt det aktuelle projekt (hvor mange klasser, tabeller, skærmbilleder, udviklere, m.v.)

10 Ingeniørhøjskolen i Århus Slide 10 JSP Model 1 Oprindelige filosofi Stadig meget nyttig til mindre applikationer Læs mere hos: –http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj- jspmvc_p.htmlhttp://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj- jspmvc_p.html –Artikel om JSP Model 1 og 2 inkl. et fuldt eksempel Antipatterns: Magic Servlet / Compound JSP

11 Ingeniørhøjskolen i Århus Slide 11 Model View Controller Pattern (MVC) Det klassiske Model View Controller Pattern kan også bruges i Web Applikation sammenhæng Altså adskillelse af brugerflade, kontrollogik og model (data) Controller laget kan implementeres på flere måder View Controller JSP Servlet JavaBeans Model

12 Ingeniørhøjskolen i Århus Slide 12 JSP model 2 (MVC) Afløseren til Model 1 Velegnet til store applikationer der implementerer mange Use Cases Knap så velegnet til små applikationer Bruger Servlets & JSP (men kan implementeres som rent JSP hvis man er doven – husk nu JSP->Servlet. Brug evt. Command Pattern) Læs mere hos: –http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc_p.htmlhttp://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc_p.html –Artikel om JSP Model 1 og 2 inkl. et fuldt eksempel

13 Ingeniørhøjskolen i Århus Slide 13 Vigtige patterns Front Controller (Crawford & Kaplan, s. 48-50) –Én eller flere klasser (Servlets el. JSP) modtager alle data og kalder tilhørende ”Page Controllers”. Alle ”View” (fra MVC), altså JSP’er el. Servlets, kalder Front Controlleren Model Facade / Session Facade: (Crawford & Kaplan, s. 70-72) –Implementerer typisk use cases i Presentation og Business tiers –afkobler et komplekst systems funktioner fra klienten – det klassiske eksempel er en Compiler, der har snesevis af klasser, men kun har et interface – Compile() –Sørger for afkobling, f.eks. brugerhåndtering og alle vigtige funktioner - uden at Front Controlleren bør kende impl detaljer –bruges sammen med Front Controlleren i Presentation Tier (Model Facade) eller i Business Tier til at implementere use cases Command (Crawford & Kaplan, s. 49) –Uddelegering af ansvar til Beans – sikrer genbrugelighed Dispatcher (Crawford & Kaplan, s. 70-72) –Bruges af Front Controlleren til at dispatche videre ud fra f.eks. en parameter

14 Ingeniørhøjskolen i Århus Slide 14 Opgave på klassen Sammen med din sidemand (2 og 2) –Brug 5 minutter på at skitsere hvordan I kan implementere en JSP/Servlet Model 1 henholdsvis Model 2. Tegn det op på papir og giv eksempler på centrale kodeelementer der skal til –Diskussion på klassen 5 minutter om ovenstående –Herefter: brug 5 minutter på at reflektere over hvordan brugerstyring/sikkerhed kan håndteres, og hvor denne funktionalitet skal placeres

15 Ingeniørhøjskolen i Århus Slide 15 Egenudviklet eller færdigt? JSP Model 1 og 2 er kun modeller Der er mange muligheder for at implementere modellen Det kan være svært når man ikke har prøvet det før, og derfor kan man overveje at anvende et framework (f.eks. Struts eller Java Server Faces) I vores obligatorisk opgaver afprøver i hele 3 frameworks (ASP.NET2 JSP/Servlet og temateknologien) Der er god fornuft i at prøve at lave sit eget

16 Ingeniørhøjskolen i Århus Slide 16 Det sidste sider i denne præsentation Omhandler Java specifikke emner, men der vil også komme tilsvarende med ASP.NET

17 Ingeniørhøjskolen i Århus Slide 17 Struts frameworket Bygger basalt på Model 2, men er en konkret implementation af modellen Dette kaldes et ”Framework” – komplet inkl. deployment tools, tag libs. osv. Deklarativ tilgang (specificer action –> view) Struts frameworket udgør Front Controlleren og dele af præsentationslaget Der er samtidigt mekanismer til implementering af indsamling af brugerinput, fejltekster, skabelonbaseret side udvikling m.v. Noget komplekst at lære –specielt når I kun har så begrænset tid til at lære JSP/Servlets –I kan læse mere om Struts: http://jakarta.apache.org/struts/ http://www.oreillynet.com/pub/a/onjava/2001/09/11/jsp_servlets.html

18 Ingeniørhøjskolen i Århus Slide 18 Java Server Faces (JSF) Java Framework til Web udvikling Alternativ komponentbaseret tilgang Deklarativ tilgang Ikke HTML - men komponenter Ligner Microsofts ASP.NET Web Forms Advarsel: JSF kan være en stor mundfuld at starte med i NET2 Se http://java.sun.com/j2ee/javaserverfaces/jsfintro.html

19 Ingeniørhøjskolen i Århus Slide 19 Herfra Prøv selv at udforske bøger og Internetressourcer, der findes rigeligt med holdninger – og en del eksempler F.eks. J2EE Design Patterns, O’Reilly –William Crawford & Jonathan Kaplan Her introduceres langt flere patterns Vi når kun at skrabe overfladen i dette kursus Men forventer at I er nysgerrige og eksperimenterende


Download ppt "Internetteknologi (ITNET2) Præsentation 6: Arkitektur i (Java) Web Applikationer."

Lignende præsentationer


Annoncer fra Google