© 2004 Mesan AS. All rights reserved. Effektiv utvikling av enterpriseapplikasjoner med Java / Swing / J2EE Carl-Olav Løvald Sjefskonsulent, Mesan AS E-post:

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

PUG Norway – 12. nov 09Thomas Skjørten / Jan Kolstad.
Progress Software AS.NET-strategi Bjørn Haugen Account Manager PUG møte 27.mars 2003.
XXXXXXXXXXXXXXXXXXX Bedre brukeropplevelser med WPF og Expression Jonas Follesø, Abeo AS
Java Teknologi Teknikker Økosystem Johannes Brodwall
Mobile portalløsninger (Internet Online Platform)
Java EE - fra vugge til grav
Unit testing Gruppe 2: Kjartan Haugen Jon Gunnar Bjørkmo
Mobilitet Fordeler / ulemper Maximo Høstmøte - Oslo 5-7 oktober 2010
SOA & Business Process Track Driv konsistens og best practices inn i ditt tjenestedesign : Web Service Software Factory Det er klare fordeler.
Tjenestebasert design med dynamiske proxyer og Spring Bjørn Vidar Bøe, JavaZone 2005.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
NAF-Data A/S Dynamics & Empowerment l Kort presentasjon av eBestilling-konseptet l Hvorfor Dynamics? l Hvorfor Empowerment? l Erfaringer med Empowerment.
Objektorientert programmering i PHP del 2
MS kap 61 Nye trender  Vi skal se på  Virtualisering  ”Cloud computing”
Mønstre og tekniske applikasjoner
Hovedpunkter Hva er HL7 Oversikt over HL7 Behovet for nasjonale tilpasninger KITH’s rolle.
Java Server Faces (JSF) en introduksjon Frode Eika Sandnes.
© Lars-Erik Kindblad.  Et platformuavhengig verktøy for å automatisere build prosesser.  Støttes og drives av Apache Software Foundation.  Kommer ferdig.
Tema: Introduksjon Hvorfor Velocity? Installasjon Velocity VS. JSF / JSP Eksempler Oppsumering.
Forstudie og Kravspesifikasjon
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 31.8 Kapittel 3: Grunnlag for programmering i Visual Basic.
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
En kort innføring i Design Patterns
21.Januar 2003 Design Patterns 1.Kort repetisjon av viktige patterns 2.Oppgave 3.Felles gjennomgang Bendik Bygstad Høgskolen i Vestfold.
Hovedprinsipper i Rational Unified Process
Bendik Bygstad Høgskolen i Vestfold RUP-prosjekt Sammenhengen med UML 1.Hovedstruktur i RUP-prosjekter 2.Faser og iterasjoner 3.Sammenhengen med.
Web-applikasjoner Prosjekt3 Logging Gruppe 9 Malik Muhammad Naeem Kevan Qureshi.
Combining Compound Conceptual User Interface Components with Modelling Patterns - a Promising Direction for Model-based Cross-platform User Interface Development.
PPS 2007 og BI rpporteringsløsninger 11 april 2007.
”Virksomhetsportaler og rollestyrte arbeidsflater”
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
Singleton & Adapter Pattern Gruppe 3. Singleton Pattern Sørger for at en klasse kun kan ha en instans Vanligvis implementert med globale variabler –Singleton.
Tilstede Hakon gruppen Systek Ragnvald Blindheim, CTO for ICA Ahold
Copyright © 2003 Systek Java versus.NET The Heavyweight Championship Showdown En subjektiv sammenligning Johannes Brodwall.
Flash og ActionScript - Nye muligheter Jostein Nordengen.
Skjema/Forms HTML II IT og læring 2/20 november 2001.
Tjenesteorientert arkitektur Hvordan statistikkproduksjonen støttes og forbedres av en tilpasset IT arkitektur Nordisk statistikermøte København.
Fitnesse i PDMT 05. mai 2008 Finn-Robert Kristensen Systemarkitekt.
TAPAS Presentasjon TTM47AC Hva er TAPAS?  Telematics Architecture for Plug and play Systems  Et forskningsprosjekt ved institutt for Telematikk,
Prosjektoppgave Modelldrevet utvikling og brukeragenter for kommunikasjon i sykehusomgivelser Marie S. Fuglesang NTNU, høsten 2004.
Copyright © 2007, SAS Institute Inc. All rights reserved. Hvordan tilpasse SAS rapporteringsmuligheter til ulike behov Odd-Inge Hansen SAS Institute AS.
Samordning, arkitektur, PKI Hva skjer? Endre Grøtnes, Statskonsult
Eziz Annagurban Veiledere: Sven-Olai Høyland Carsten Helgesen
Gruppe 5 består av: – Cecilie Vitting – – Marit S. Asklien -
Karriereportal – elektronisk søknadsbehandling
PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
Maintenance problems - Measuring Maintenance characteristics Software Engineering Gruppe 2 Carl-Erik Herheim Leendert Wienhofen Thomas Julsen Kjartan Haugen.
BUCS Utfordringer og valg av fokus Tor Stålhane. Rammebetingelser Første spørreundersøkelse viser at det vi gjør må kunne: Brukes sammen med UML Passe.
.NET og Progress Samspill og styrker, GUI og forretningslogikk.
Parallellisering av Coin3D for Systems in Motion av Sveinung Thunes.
J2ME- og Web-basert Instant Messaging System. Oppgavebeskrivelse Selvstendig system J2ME- og Web-basert Internasjonalisering.
HOVEDPROSJEKT 28e HiST2003/2004. Om oss Tor Arne Hammervik, 21 år Tor Arne Hammervik, 21 år Thomas Lund, 24 år Thomas Lund, 24 år Geir Magne Nilsen, 24.
Eksamen INF Et løsningsforslag. Oppgave 1 Oppgave 1) (30% - 60 minutter, COMET) Ta utgangspunkt i den vedlagte problembeskrivelsen, og.
X10 webservices/IM -> mobilklient. Oppdragsgiver:
GSV – Generic Storage and Validation Hovedprosjekt 2004/2005 Oppgave 10E Trond Smaavik
Forstudie Nå situasjonen: dagens situasjon med ulemper og fordeler
Masteroppgave Administrasjonsmoduler til eAccess.
Copyright © 2003 Systek Java Safari Java Workshop CBA Johannes Brodwall, Systek as.
Konstruksjon og Testing Torsdag 30. september 2004 Av Even Aasland Harald Ueland.
1 Kap. 57 – Cloud Computing How Information Technology Is Conquering the World: Workplace, Private Life, and Society Professor Kai A. Olsen, Universitetet.
IKT-prosjekt Ulike typer mobilt datautstyr Ulike konfigurasjoner Synkronisering av data og prosesser Ulike typer nettverk Mobile.
XML og JDOM Helge Furuseth XML  XML = Extensible Markup Language Basert på SGML – Standard Generalized Markup Language  HTML =
Android Programmering 10 timers kurs. Forutsetninger Noe bakgrunn i Java eller et annet objektorientert språk Litt peiling på XML Vi bruker Windows 7.
RUP-prosjekt Sammenhengen med UML
Having a crack at a new stack
Nye trender Vi skal se på Virtualisering ”Cloud computing”
Utskrift av presentasjonen:

© 2004 Mesan AS. All rights reserved. Effektiv utvikling av enterpriseapplikasjoner med Java / Swing / J2EE Carl-Olav Løvald Sjefskonsulent, Mesan AS E-post:

© 2004 Mesan AS. All rights reserved. Mesan •Ledende i Norge mht MDA-basert J2EE systemutvikling •Har års bred erfaring fra utvikling av store, virksomhetskritiske systemer. •Sertifisert OptimalJ-partner med Compuware

© 2004 Mesan AS. All rights reserved. Agenda •Hva er utfordringen(e)? •Hvordan kan vi møte utfordringen(e) med teknologi? –Generelle egenskaper –Overordnet arkitektur –Swing-arkitektur •Hva med effektivitet, kodekvalitet og vedlikehold? –Forretningsmodellering –Kodegenerering •Live Demo: Vi lager en J2EE/Swing- applikasjon

© 2004 Mesan AS. All rights reserved. Hva er utfordringene? •Hvordan tilpasse systemer til endringer i virksomheten? – Time to market •Hvordan skal vi gjøre utviklerne mer effektive? – “Do more with less” •Hvordan kan vi sikre deltagelse for fagpersonell i IT-prosjektene? – ”User involvement” •Hvordan skal vi sikre at Best Practices, standarder og retningslinjer følges? •Hva skjer ved oppgradering til ny basisprogramvare?

© 2004 Mesan AS. All rights reserved. Hvordan ønsker vi å jobbe? •Forretningsrettet utvikling –Virksomhetens behov styrer prioritering –Brukere / superbrukere deltar i utviklingsprosessen –Mer fokus på hva vi skal lage enn hvordan •Iterative prosesser –Prototyping –Hyppige leveranser –Frihet til å gjøre endringer •Kortest mulig vei fra ide til synlig produkt / løsning

© 2004 Mesan AS. All rights reserved. Hva bør teknologien tilby? •Visuell utvikling –Modeller (som varer hele systemets levetid) –Visuell utvikling av brukergrensesnitt •Grafisk dialogeditor •Enkel kobling mellom data og visning •Muligheter for å vise testdata •Lav teknologisk kompleksitet... eller hjelp til å håndtere teknologisk kompleksitet •Basisfunksjonalitet (CRUD) –Kodegenerering eller funksjonsbiblioteker •Versjonshåndtering av kildekode

© 2004 Mesan AS. All rights reserved. Hvordan får vi det til med Java / J2EE / Swing? •Model View Controller –Scope HMVC-implementasjon •Modellbasert utvikling –Utviklingsmiljøet OptimalJ •Kodegenerering –Egenutviklet Swing-generator

© 2004 Mesan AS. All rights reserved. Swingapplikasjon Overordnet arkitektur EJB / DAO EJB Facade Objects Model ObjectsScope HMVC Swing GUI Database Klient App Server Db Server

© 2004 Mesan AS. All rights reserved. Swingklient Generisk design

© 2004 Mesan AS. All rights reserved. Scope HMVC •Open Source prosjekt – ( •Infrastruktur for å binde modeller til views med full to-veis synkronisering –Hierarkisk Model View Controller (HMVC) •Støtter Servlet, XML/XSLT og SWING •Wrappere til en rekke swing widgets (data binding og validering): –Button, ComboBox, Checkbox, Listbox, Panel, RadioButton, Table, TextField, MenuItem, Label, Password Field, Slider, Textarea... •Støtter integrasjon med IDE •Inneholder kodegenerator og test suite (Junit)

© 2004 Mesan AS. All rights reserved. Gevinster med Scope •Enkelt å sette opp databinding mellom view og modell / submodell –To-veis synkronisering med ”Aktive” modeller som kringkaster endringer i state •Innebygget inputvalideringsfunksjonalitet •Eventhandling skilt fra presentasjon •Subkontrollere kan la kontrollmeldinger ”boble” opp til hovedkontroller •Støtte for språktilpasning av ledetekster og meldinger

© 2004 Mesan AS. All rights reserved. View Scope - virkemåte Controller Model SelectorWidget Selector Control SubModel Selector

© 2004 Mesan AS. All rights reserved. Scope - eksempel  Modellen: public class ActivemodelModel extends BasicModel { private String name; public final static Selector NAME = Selector.fromString(”name"); public String getName() { return name; } public void setName(String inName) { name = inName; fireModelChange(VALUE_CHANGED, NAME); }  I viewet: STextField t = new STextField(); t.setColumns(20); t.setSelector("name");

© 2004 Mesan AS. All rights reserved. Scope - HMVC View Controller ModelView Controller ModelView Controller Model

© 2004 Mesan AS. All rights reserved. Hvordan sikre produktivitet, kodekvalitet og bruk av standarder?

© 2004 Mesan AS. All rights reserved. Produktivitet Kompleksitet reduserer produktivitet Productivity Time 70’s J2EE Kompleksitet • Multi- language • Multi-tier • Multi Channel • Scalability 80’s 90’s 00’s 4GL Java COBOL C/C++

© 2004 Mesan AS. All rights reserved. Utviklingsteam Kunnskapsoverføring Sikre bruk av best practices, standarder & retningslinjer Systemarkitekter Definere • Overordnet applikasjons- arkitektur • J2EE ekspertise • Teknologistandarder • Utviklingsstandarder • Best practices • Patterns • Code templates • Metoder • Modeller Implementere • Applikatsjons- arkitektur • Teknologi- standarder • Utviklings- standarder • Best practices • Patterns • Code templates • Metoder • Modeller Gjennomsyn og retting û Feilaktig implementert arkitektur û Teknologistandarder ignorert û Avvik fra utviklingsstandarder û Feiltolkning av best practices û Patterns/templates ikke brukt û Modeller laget på nytt (unødig)

© 2004 Mesan AS. All rights reserved. • PIM –Representerer forretningsfunksjonalitet, egenskaper og relasjoner uten teknologi- detaljer • PSM –Beskriver komponentene i applikasjonen –Genereres fra PIM modellen. –Beskriver teknologispesifikke komponenter (J2EE,.NET, Web Services etc) • Code Model –All kildekode i applikasjonen –Kildekoden genereres fra PSM-modellen –Skriver forretningslogikk i free blocks i kildekoden Platform Independent Model Code Model Platform Specific Model MDA - modelldrevet arkitektur •Fokus på hva man skal løse (mer enn hvordan ) •Modeller på forretningsnivå sikrer lang levetid •Forenkler håndtering av kompleks teknologi

© 2004 Mesan AS. All rights reserved. Kunnskapsoverføring Med MDA Systemarkitekter Platform Independent Model Code Model Platform Specific Model Teknologi- Transformasjon Teknologi- Transformasjon Kode- transformasjon Kode- transformasjon Transformasjoner

© 2004 Mesan AS. All rights reserved. Effektivitet og Kvalitet •Modellbasert utvikling og kodegenerering –Håndterer repetitiv kodeimplementering –Teknisk design implementeres i kodegeneratoren –Generering bør ha sitt opphav i modeller •Vårt valg : Utviklingsmiljøet OptimalJ (basert på MDA) –Utviklet egen kodegenerator i OptimalJ for generering av Swing-klienter –Swing-klientene baserer seg på persistens- funksjonalitet generert fra OptimalJ

© 2004 Mesan AS. All rights reserved. Transformasjoner i OptimalJ •Funksjonalitet for å definere egne –transformasjoner –metamodeller •Funksjonalitet for å lage transformasjoner •Eget scriptspråk for kodegenerering – TPL PIM ( MOF) Code Model PSM ( MOF) Teknologi- Transformasjon (Java) Teknologi- Transformasjon (Java) Kode- Transformasjon (TPL / Java) Kode- Transformasjon (TPL / Java)

© 2004 Mesan AS. All rights reserved. Kodegenerering i OptimalJ Tilpasning og nyutvikling •Utvikling av nye generatorer •Tilpasse eksisterende  Full fleksibilitet  Mer arbeid ved oppgraderinger •Tilby hooks (Joinpoints) Som gir mulighet til å utvide eller overstyre  Gir god nok fleksibilitet  Enklere ved oppgraderinger Baseline Pattern Joinpoint A Joinpoint B My 1 st Pattern My 2 nd Pattern

© 2004 Mesan AS. All rights reserved. Template Pattern Language – TPL Code snippet [GUARD("ValueObject",wDataClass)] [FREE("Imports")] // Place your imports here... [/FREE] public class [UCF(VALUEOBJECTNAME(wDataClass))] extends BasicModel implements DynamicReadOnly{ private boolean changed; private boolean created; public [UCF(VALUEOBJECTNAME(wDataClass))](){ [SUBVALUEOBJECTINIT(wDataClass)] this.changed = false; this.created = false; } public boolean isChanged(){ boolean returnValue = this.changed; [FREE("isChangedPre")] //Your code here [/FREE] [SUBVALUEOBJECTCHANGED(wDataClass)] [FREE("isChangedPost")] //Your code here [/FREE] return returnValue; } [/GUARD]

© 2004 Mesan AS. All rights reserved. Kodegenerator - Utviklingsprosess •Utvikle referanse- implementasjon –Definere teknisk design –Implementere løsning –Test og verifiser •Utvikle metamodell og kodegenerator –( Avgjør behov for metainformasjon ) –( Implementer metamodell ) –Lag kodegenerering med utgangpunkt i kode fra referanseimpl. –Test kodegenerator på referansemodell Platform Independent Model Code Model Platform Specific Model Teknologi- Transformasjon Teknologi- Transformasjon Kode- transformasjon Kode- transformasjon

© 2004 Mesan AS. All rights reserved. Mesans SWING pattern - Asta •Prosjekt –Stort arkiveringssystem (4+ MNOK) –Erstatter eksisterendeløsning for å oppnå mer fleksibilitet mht •Deployment •Funksjonalitet og struktur •Utfordringer –Komplekse datastrukturer –Rikt brukergrensesnitt – bruk av Java / Swing •Løsning –Persistensmodellen modellert som Domenemodell i OptimalJ –Utviklet kodegenerator for Swing i OptimalJ –Baserte Swing GUI på ”Scope” HMVC-implementasjon, og benyttet persistensfunksjonalitet generert fra OptimalJ

© 2004 Mesan AS. All rights reserved. Asta

© 2004 Mesan AS. All rights reserved. Asta

© 2004 Mesan AS. All rights reserved. Asta

© 2004 Mesan AS. All rights reserved. Asta

© 2004 Mesan AS. All rights reserved. Demo Vi bygger en SWING/J2EE-applikasjon

© 2004 Mesan AS. All rights reserved.

Referanser Mesans kunder på MDA og OptimalJ -AtosOrigin -Dagbladet -Stiftelsen Asta i samarbeid med Riksarkivaren -WesternGeco Mesan benyttes som foredrags- og kursholder -Universitet i Oslo (UiO) -ECOOP -JAAO

© 2004 Mesan AS. All rights reserved. - når standardsystemer ikke er nok Carl-Olav Løvald Sjefskonsulent, Mesan AS E-post: