Arkitektur for begyndere
|
|
|
- Steffen Henriksen
- 7 år siden
- Visninger:
Transkript
1 Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle et system. Den forudsætter kun en smule kendskab til IT termer. Skrevet den 15. feb 2010 af arne_v I kategorien Programmering / Generelt Historie: V1.0-01/02/ original V1.1-20/06/ tilføj lidt om layers V1.2-14/02/ smårettelser Indledning Når man skal igang med et mere kompleks projekt er det meget vigtigt at man får styr på de forskellige tiers i ens arkitektur. Man ved hvor mange der er. Man ved hvilken teknologi de skal baseres på. Man ved hvilken funktionalitet der ligger i hver af dem. Denne oversigt over forskellige gængse arkitekturer skulle gerne hjælpe til at forstå mulighederne og dermed også hjælpe med beslutningen. Det er ikke en komplet oversigt. Men dækker formentligt langt de fleste tilfælde. Inden vi går igang lige en definition: tier = lag som kan (men ikke behøver) køre på separat system layer = lag som er en logisk opdeling af ens kode Der er stor forskel. Når man skal kalde fra et tier til et andet tier er der noget netværk og en netværks protkol involveret. Når man kalder fra et layer til et andet layer indenfor samme tier er det et normalt kald af noget kode. En opdeling i tiers vil derfor normalt koste performance men kan give skalerbarhed og sikkerhed. Forskellige tiers kan sagtens implementeres i forskellige teknologier. Forskellige layers indenfor samme tier vil typisk skulle udvikles i samme teknologi. applikation (1-tier)
2 Dette er den simplest mulige arkitektur - en applikation (typisk en GUI applikation) som kører og evt. læser/skriver nogle filer. Al funktionalitet ligger i sagens natur i applikationen. Bruges til små systemer som kun skal bruges af en enkelt person. Typiske sprog: Java, C, C++, C#, Pascal, Basic applikation ---- database server (2-tier) Dette er en udvidelse af den simple model, hvor applikationen (typisk en GUI applikation) i.s.f. at læse/skrive til filer læser/skriver til en database. Logikken ligger i applikationen. Alle data gemmes på database serveren. Bruges til data orienterede systemer som skal bruges af flere brugere internt i firmaet. Typiske sprog: Java, C, C++, C#, Pascal, Basic Typiske database servere: DB2, MS SQLServer client applikation ---- server applikation (2-tier) Dette er en klassisk client/server løsning. X clienter snakker med 1 server. Logikken ligger på serveren. Bruger interfacet ligger i klienterne. Serveren har mulighed for at lade klienterne interaktere. Bruges til ikke-data-orienterede systemer kunne f.eks. være noget chat lignende. Typiske sprog på client side: Java, C#, Pascal, VB Typiske sprog på server side: C, C++, C#, Java Kommunikationen mellem client og server er typisk TCP/IP sockets. Evt. med et lag ovenpå i form af Java RMI eller.net remoting. browser ---- web server (2-tier) Dette er en web løsning som oprindeligt tilbage i midten af 1990'erne med statisk indhold. Web serveren server kun filer og sender filernes indhold ud til browseren uden at bekymre sig om indhold. Filerne indeholder så HTML, CSS og JS (JavaScript) og de fortolkes af browseren og vises. Der kan diskuteres om det egentlig er en programmerings løsning, fordi
3 der er ikke nogen egentlig applikations logik. Men vær opmærksom på at opgaven med at få siderne til at se ens ud og virke ens i alle browsere kan være en meget stor opgave. Bruges til simpel publicering af information over internettet. Typiske web servere: Apache HTTPD, MS IIS client applikation ---- server applikation ---- database server (3-tier) Dette er den oprindelige 3 tier løsning. En GUI client applikation som tager sig af bruger interfacet. En server applikation med logikken. Og en database server til at gemme data på. Bruges til større systemer som skal bruges af flere brugere internt i firmaet. Typiske sprog på client side: Java, C#, Pascal, VB Typiske sprog på server side: C, C++, C#, Java Typiske database servere: Oracle, DB2, MS SQLServer Kommunikationen mellem client og server er typisk TCP/IP sockets. Evt. med et lag ovenpå i form af Java RMI eller.net remoting. browser ---- web server med ASP ---- database server (3-tier) browser ---- web server med PHP ---- database server (3-tier) browser ---- web server med ASP.NET ---- database server (3-tier) browser ---- JSP/servlet container ---- database server (3-tier) browser ---- web server med CGI ---- database server (3-tier) Dette er en typisk web applikation. I.s.f. at serve filer med statisk indhold, så genereres der helt eller delvist dynamisk indhold af HTML, CSS og JS (JavaScript) på server side. Indholdet fortolkes og vises i browseren. Logikken og den egentlige præsentation ligger i server side scriptene. Databasen gemmer data. Bruges til services på internettet som f.eks. forum'er og web butikker. Typiske server side sprog: ASP (VBScript), PHP, ASP.NET Lidt mindre typiske server side sprog: JSP/servlet (Java), Perl CGI Typiske web servere: Apache HTTPD, MS IIS Typiske JSP/servlet containere: Apache Tomcat, Caucho Resin Typiske database servere: MySQL, MS SQLServer
4 browser ---- JSP/Servlet container ---- EJB container ---- database server (4-tier) Indholdet fortolkes og vises i browseren. Den egentlige præsentation ligger JSP og servlet. Selve logikken ligger i EJB. Databasen gemmer data. Bruges til større e business løsninger. Alt er Java baseret. Typiske J2EE app servere: IBM WebSphere, BEA WebLogic, JBoss (inkl. Apache Tomcat) Typiske database servere: Oracle, DB2, MS SQLServer layers Normalt vil man ønske at dele koden op i layers. Hvis vi kigger på nogle af de mest bruge arkitekturer: applikation ---- database server (2-tier) vil man have opdelt applikationen i layers. browser ---- web server med XXX ---- database server (3-tier) vil man have opdelt web applikationen der kører på web serveren i layers. Den helt klassiske opdeling er: presentation layer = bruger grænsefladen business logic layer = den bagvedliggende logik som er uafhængig af brugergrænsefladen data access layer = koden til at tilgå databasen I meget simple tilfælde vil business logic layer helt kunne undværes. Bemærk at der ikke er grund til at have et layer som ikke gøre noget. Personligt foretrækker jeg dog opdelingen: presentation layer = koden til at vise noget for brugeren controller layer = koden som ekskveres når brugeren gør noget business logic layer = den bagvedliggende logik som er uafhængig af brugergrænsefladen data access layer = koden til at tilgå databasen Det er naturligvis vigtigt at layers er klart adskilte med simple interfaces. Ideelt består et lag af: - data klasser - interfaces - en factory klasse til at hente instans af lag med Nogen gange bruger man et IoC framework fremfor en egen factory klasse til at instantiere med.
5 Kommentar af simonvalter d. 28. okt Meget lærerigt, jeg havde godt en forestilling om hvad det var men havde ikke undersøgt det nærmere. Kommentar af elf d. 04. feb Spændende læsning Kommentar af zatz d. 28. okt Kommentar af thundergod d. 25. maj Kommentar af poolo d. 06. feb Rigtig god! Kommentar af mikkel_strack d. 18. maj Fin artikel Kommentar af cdull d. 20. feb
Forskellige Java versioner
Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige Java versioner Denne artikel beskriver lidt om de forskellige Java versioner. Den forklarer J2SE/J2ME/J2EE, plugin/jre/sdk og Sun Java/Microsoft
Curriculum Vitae for Søren Brønsted
Curriculum Vitae for Søren Brønsted Person oplysninger Søren Brønsted Kirkebjergvej 2 4623 Lille Skensved Tlf: 52 19 14 10 email: [email protected] Født: 1963 Profilbeskrivelse Jeg er er en senior Java/J2EE
CV for Christian Plougmann Hag
CV for Christian Plougmann Hag Navn Christian Plougmann Hag Født 1970 Civilstand Gift, 2 børn IT-erfaring siden 1991 Personlig profil Christian er en kapacitet, der med sine mange års erfaring med J2EE/JavaEEsystemudvikling,
RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
IT projekt person galleri
Denne guide er oprindeligt udgivet på Eksperten.dk IT projekt person galleri Denne artikel forsøger at forklare lidt om hvilke funktioner der ligger bag ved de forskellige titler som deltagerne i et IT
Computer Networks Specielt om Infrastrukturer og Teknologi
Computer Networks Specielt om Infrastrukturer og Teknologi Ole Borch Slide 1 Doc Bud på arkitektur (som mange andre steder) Sygehus Hemmelig Meget hemmelig WWW browser WWW Server Dataplejer Staklen Internet
Curriculum Vitae for Søren Brønsted
Person oplysninger Søren Brønsted Løvstikkevej 44 2300 København S Tlf: 31 49 32 22 email: [email protected] Født: 1963 Profilbeskrivelse Curriculum Vitae for Søren Brønsted Jeg er en senior fullstack
Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk
Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som
KIH Database. Systemdokumentation for KIH Databasen. 1. maj 2013. Side 1 af 13
KIH Database Systemdokumentation for KIH Databasen 1. maj 2013 Side 1 af 13 Indholdsfortegnelse Indholdsfortegnelse... 2 Indledning... 3 Systemoverblik... 3 KIH Database applikationsserver... 5 Forudsætninger
PHP Quick Teknisk Ordbog
PHP Quick Teknisk Ordbog Af Daniel Pedersen PHP Quick Teknisk Ordbog 1 Indhold De mest brugte tekniske udtryk benyttet inden for web udvikling. Du vil kunne slå de enkelte ord op og læse om hvad de betyder,
Curriculum Vitae Jack Petersen
Curriculum Vitae Jack Petersen Jeg er løsningsarkitekt og erfaren Java-udvikler i de sidste 15+ år har jeg arbejdet i den finansielle sektor, hvor jeg har bygget både frontend og backend systemer. De sidste
Singleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Erhvervserfaring 2000 - Senior IT Specialist, IBM 1995 2000 Systemudvikler, Dan Net 1987 1995 Systemudvikler, KMD
Personlige data Navn: Kurt Koch Nielsen Adresse: Holmeås 8, 2670 Greve Telefon hjem: +45 43 90 50 75 Telefon mobil: +45 28 80 94 17 E-mail: [email protected] Fødselsdato: 19-02-1967 Civilstand: Gift,
Procesbeskrivelse - Webprogrammering
Procesbeskrivelse - Webprogrammering Indholdsfortegnelse Forudsætninger... 1 Konceptet... 2 Hjemmesiden... 2 Server-side... 3 Filstrukturen... 3 Databasehåndtering og serverforbindelse... 4 Client-side...
OpenTele datamonitoreringsplatform
OpenTele datamonitoreringsplatform Systemdokumentation for OpenTele server- og klient 1. maj 2013 Side 1 af 13 Indholdsfortegnelse Indholdsfortegnelse... 2 Indledning... 3 Systemoverblik... 3 OpenTele
2. Systemarkitektur... 2
Indholdsfortegnelse 2. Systemarkitektur... 2 2.1 Præsentationsserverarkitektur... 3 2.2 Applikationsserverarkitektur... 7 Version 7.0 Side 1 af 7 5. Systemarkitektur Arkitekturen for Nyt BBR bygger på
APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR. EG Copyright
APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR EG Copyright Infrastruktur er mere end nogle servere... Den Mentale Infrastruktur Den Fysiske Infrastruktur Den Mentale Infrastruktur Vi vil jo gerne have vores
Database programmerings tips
Denne guide er oprindeligt udgivet på Eksperten.dk Database programmerings tips Denne artikel vil introducere nogle problem stillinger med flere samtidige brugere, som man skal tænke på, når man udvikler
SAP R/3. Henrik Kroos
SAP R/3 Henrik Kroos Velkommen.. Spørg undervejs Præsentation af mig Præsentation af jer Hvad er SAP?? SAP er et tysk firma startet af 5 tidligere IBM-folk i 1972 Hjemsted i Waldorf Tyskland, (nær Frankfurt)
Web services i brug. Anvendelse uden for biblioteksverdenen
Web services i brug Anvendelse uden for biblioteksverdenen Agenda Visionen bag webservices Tre cases Et kig fremad Nordija Etableret i marts 1998 Udviklingsprojekter Forretningskritiske applikationer Komponenter
SSSystems.local. Netværk. Sikkerhed. Webserver
SSSystems.local Netværk Vi har valgt at bygge vores netværk på en måde der sikre at trafik fra DMZ en ikke kan komme ned til vores LAN. Både ved hjælp af firewall regler og NAT. Men for at sikre at vi
Introduktion til SQL queries
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i
Curriculum Vitae: Jeg kan hurtigt overskue forretningers ønsker samt komplekse systemer og finde overskuelige løsninger på selv vanskelige problemer.
Curriculum Vitae: Personlige oplysninger Navn Thomas Gustafsson Født 5. marts 1972 Adresse Græsmarken 5, ST. TH. 2860 Søborg Mobil (+45) 2577 2387 E-mail [email protected] Civilstand Ugift / Far til
Agenda. Exchange 2010 Client Access Server arkitektur. Outlook Web App (OWA) Office Outlook Outlook Mobile (EAS) Outlook Voice Access (OVA)
Agenda Exchange 2010 Client Access Server arkitektur Outlook Web App (OWA) Office Outlook 2010 Outlook Mobile (EAS) Outlook Voice Access (OVA) Client Access Server Arkitektur Internt Netværk Telefonsystem
Grundlæggende OOA - OOD
Grundlæggende OOA - OOD Dette kursus henvender sig til personer, der har lille eller ingen erfaring med softwareudvikling. Med udgangspunkt i UML opbygges et solidt kendskab til softwareudviklingens kunst
Datatekniker med programmering som speciale
Datatekniker med programmering som speciale H1 H1 varer ti uger bestående af ti uddannelsesspecifikke fag. Indhold På H1 beskæftiger du dig med at lære at programmere helt fra bunden. Forløbet er designet
Curriculum Vitae for Hardy Henneberg
Curriculum Vitae for Hardy Henneberg Opdateret 20.5. 2012 Ledig nu Alder 56 Familie Gift og to børn Adresse Grønnevej 44, 2830 Virum Telefon 30704565 Email [email protected] Resume: Min primære kompetence er
Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Den nye struktur. Offentlig version C. Generelle ændringer:
Den nye struktur Offentlig version C Generelle ændringer: 1. Underkategorierne Andre og Andet nedlægges og eksisterende spørgsmål flyttes over i Generelt kategorien under samme hovedkategori 2. Kategorier
Database design for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter
Hassansalem.dk/delpin User: admin Pass: admin BACKEND
Hassansalem.dk/delpin User: admin Pass: admin BACKEND 1/10 Indledning Dette projekt er den afsluttende del af web udvikling studiet på Erhvervs Lillebælt 1. semester. Projektet er udarbejdet med Del-pin
Curriculum Vitae: Jeg kan hurtigt overskue forretningers ønsker samt komplekse systemer og finde overskuelige løsninger på selv vanskelige problemer.
Curriculum Vitae: Personlige oplysninger Navn Thomas Gustafsson Født 5. marts 1972 Adresse Græsmarken 5, ST. TH. 2860 Søborg Mobil (+45) 2577 2387 E-mail [email protected] Civilstand Ugift / Far til
educasoft - en professionel samarbejdspartner med speciale i uddannelse!
Velkommen til educasoft's hjemmeside educasoft - en professionel samarbejdspartner med speciale i uddannelse! Professionelle undervisere Undervisning i virksomheden Undervisning dag/aften eller week-end
Hvorfor skal vi bruge objekt orienteret databaser?
OODBMS Vs. RDBMS 1 Indholdsfortegnelse Hvorfor skal vi bruge objekt orienteret databaser?... 3 OODBMS i erhvervslivet... 4 Bagsiden af medaljen... 5 OODBMS i praksis... 6 Konklusion... 8 2 Hvorfor skal
Elektronik tekniker, Frederiksberg tekniske skole. Elektronik ingeniør Ingeniørhøjskolen Ballerup
Uddannelse 1987 1991 1992-1993 1993 1997 Elektrikerlærling Elektronik tekniker, Frederiksberg tekniske skole Elektronik ingeniør Ingeniørhøjskolen Ballerup Erhvervserfaring 1997 1999 1999 2000 2000 2007
Udvikler på diverse web-baserede systemer der anvender teknologier som: Servlets, JSP, Ajax, XMLBeans, XML, XSL, CSS, HTML, JQuery, JavaScript.
CURRICULUM VITAE Michael Balieu 46 år Profil Java J2EE udvikler med lang erfaring i web og client-server applikationer. Udvikler på diverse web-baserede systemer der anvender teknologier som: Servlets,
Finn Rosenkilde Rasmussen
Finn Rosenkilde Rasmussen Erfaren # J2EE # Java # PHP # Web udvikler [email protected] Kort beskrivelse Jeg er en senior java udvikler med mere end 35 års erhvervs erfaring hvoraf 6 af årene
OpenTele Server Performance Test Rapport
OpenTele Server Performance Test Rapport 17. marts 2015 Side 1 af 22 1Indholdsfortegnelse Indholdsfortegnelse Indledning Test forudsætning Beskrivelse af testscenarier Test af OpenTele kliniker web interface
Internet Information Services (IIS)
Internet Information Services (IIS) Casper Simonsen & Yulia Sadovskaya H1we080113 06-11-2013 Indholdsfortegnelse Problemformulering... 2 Hvorfor:... 2 Hvad:... 2 Hvordan:... 2 Problembehandling... 3 Introduktion...
APEX i Praksis Martin B. Nielsen. Navn. MBNDATA Emne
APEX i Praksis Martin B. Nielsen Navn MBNDATA Emne Foredragsholderen Oracle/APEX Arkitekt/udvikler/DBA Siden Oracle v.5 (1988) APEX Siden 2007, men før (Database provider, HTMLDB) MBNDATA siden 1996 MBNDATA
Delphi og Databaser for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Delphi og Databaser for begyndere Denne artikel handler om hvordan man udnytter noget af det bedste i Delphi: Dets gode muligheder for integrering med
Bootstrap Tutorial LAV EN SIMPEL RESPONSIVE SIDE MED BOOTSTRAP MATHIAS HERSKIND GROTRIAN
2015 Bootstrap Tutorial LAV EN SIMPEL RESPONSIVE SIDE MED BOOTSTRAP MATHIAS HERSKIND GROTRIAN I denne tutorial kommer du til at I denne tutorial vil du lære hvad Bootstrap er, hvordan det fungerer og hvordan
Præsentation af Kim Kjærsulf.
Præsentation af Kim Kjærsulf. Personlig profil Siden 2000 har jeg været freelance konsulent og nyder den personlige udvikling de mange udfordringer fortsat giver mig. Min bopæl ligger tæt ved Vejle, så
MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.
Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab
Umbraco installationsvejledning
på et ScanNet ASP Webhotel Indledning Beskrivelse Denne vejledning vil indeholde installation af CMS systemet Umbraco på et ASP Webhotel. Det dansk grundlagt Content Management System (CMS) Umbraco er
Installation og Drift. Aplanner for Windows Systemer Version 8.15
Installation og Drift Aplanner for Windows Systemer Version 8.15 Aplanner for Windows løsninger Tekniske forudsætninger Krav vedr. SQL Server SQL Server: SQL Server 2008 Express, SQL Server 2008 R2 eller
Dennis Cassøe Mobil: 29 89 89 01
Dennis Cassøe Mobil: 8 8 0 3consult.dk Email: [email protected] Navn: Dennis Cassøe Årgang: IT-: Profil: Roller: Brancher: år Forretningsfokuseret IT-Arkitekt IT-Chef, IT-Arkitekt, Projektleder, Udvikler,
XProtect-klienter Tilgå din overvågning
XProtect-klienter Tilgå din overvågning Tre måder at se videoovervågning på For at skabe nem adgang til videoovervågning tilbyder Milestone tre fleksible brugergrænseflader: XProtect Smart Client, XProtect
CV for Ralph Rezende Larsen
CV for Ralph Rezende Larsen Bankgatan 4a, leg: 1101 243 54 Mörarp Sverige Mob.: +45 5195 7757 Email: ralph@ sitewalk.dk Fødselsdato: 24-09-1961 Resume Ralph er hovedsaligt PHP udvikler, men har også arbejdet
Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder.
.NET UDVIKLER NATIONALITET: DANSK PROFIL Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. Stor erfaring omkring databasedesign, datahåndtering og MS
Curriculum Vitae: Jeg kan hurtigt overskue komplekse systemer og finde brugbare løsninger på selv vanskelige problemer.
Curriculum Vitae: Personlige oplysninger Navn Thomas Gustafsson Født 5. marts 1972 Adresse Græsmarken 5, ST. TH. 2860 Søborg Mobil (+45) 2577 2387 E-mail Civilstand [email protected] Ugift / Far til
