Distribuerade affärssystem



Relevanta dokument
Design och konstruktion av grafiska gränssnitt

Webservice & ERP-Integration Rapport

Repetition DK2 Middleware, P2P, Multimediatransport. Stefan Alfredsson 18 Mars 2005

Design och konstruktion av grafiska gränssnitt

Webbtjänster med API er

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

Tentamen, Distribuerade System/Programvaruarkitektur

Web Services. Cognitude 1

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

TENTAMEN FÖR KURS DAV C03, DATAKOMMUNIKATION II 5p Sid 1 av 6 Torsdag kl

PM 01 En jämförelse av två analysmodeller för val av komponentteknik

Distribuerade System, HT03

Enterprise Java Beans Assignment 1

Kärnfunktionalitet. Middleware. Samverkande system. Service Oriented Architecture. Kommunikationsmekanismer. Tjänsteorienterade arkitekturer

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT15

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Kurs-PM HI2011, Programutveckling i funktionella och objektorienterande spra k, P3 VT17

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT14

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

E12 "Evil is going on"

Realtid. eda040project2010 MANUAL. - Christoffer Olsson. - Daniel Lehtonen

Föreläsning 1: Introduktion till kursen

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

Kursutvärdering/1MD222 Konstruktion av användargränssnitt II Datum för sammanställning:

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Skriftlig tentamen i kursen TDTS04 Datornät och distribuerade system kl. 8 12

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Creo Customization. Lars Björs

Programming in C# and.net Framework

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Föreläsning 1: Introduktion till kursen

Webbserverprogrammering

Mobilt Efos och ny metod för stark autentisering

Christer Scheja TAC AB

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Föreläsning 1: Intro till kursen och programmering

WEBBSERVERPROGRAMMERING

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

5 I vilken utsträckning har kurslitteraturen varit till hjälp för ditt lärande?

Föreläsning 1: Intro till kursen och programmering

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

Föreläsning 1: Introduktion till kursen

Webbtjänster med API er

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Objektorienterad programmering

3. Remote Procedure Call (RPC)

Modul 3 Föreläsningsinnehåll

IT för personligt arbete F2

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1

Konstruktion med mikrodatorer

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

PDA-applikationer med.net

Välkommen! SA S PSA S Im I puls s Mobilite t t e 8 1

Föreläsning 2. Operativsystem och programmering

Systemintegration 2019 YRGO. Introduktion till kursen

Webbservrar, severskript & webbproduktion

30 år av erfarenhet och branschexperts

Objektorienterad Programkonstruktion

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det

Thomas Padron-Mccarthy Mobila applikationer med Android, 7.5 hp (Distans) (DT107G ) Antal svarande = 13. Svarsfrekvens i procent = 27.

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

INSTITUTIONEN FÖR DATA- OCH INFORMATIONSTEKNIK

Objektorienterad programmering

Denna genomgång behandlar följande:

Instabilt med sammansatta tjänster?

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Trådlösa nätverk, 7.5 hp. Trådlösa nätverk, 7.5 hp. Torstensson, IDE

1DV423 Databas med Administration

Datamodeller och databaser, avancerad kurs

Objektorienterad analys och design

INSTITUTIONEN FÖR MATEMATIK OCH NATURVETENSKAP. Fastställd i institutionsstyrelsen Dnr 853/333-03

Undervisningen i ämnet mobila applikationer ska ge eleverna förutsättningar att utveckla följande:

Thomas Padron-Mccarthy Datateknik B, Mobila applikationer med Android, 7.5 hp (Distans) (DT ) Antal svarande = 18

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

EDAA01 Programmeringsteknik - fördjupningskurs

Instruktion. Datum (12) Coverage Dokument id Rev Status? Godkänd. Tillhör objekt -

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Kapitel 6, 7, o 8: ARP Vägval Från användare till användare. Jens A Andersson (Maria Kihl)

Introduktion till hårdvara, mjukvara och operativsystem

Laboration 2: Ett kommunikationssystem

Poäng. Start v. Applikationsprogramm ering i Python 7.5. Antal registrerade (män/kvinnor) 50 (34/16)

Kommunikationsgränssnitt och dess tillämpning inom virtuella företagsväxlar.

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Teknikprogrammet, inriktning informations- och medieteknik

Programmering B med Visual C

Java Programmer for JDK Developer for Java 2 Platform 2002

FK Elektromagnetism och vågor

Arbetshypoteser för Elmarknadshubbens API - april Version 1.0

Testtentamen i kursen TDTS04 Datornät och distribuerade system vt 2009

Prestanda, skalbarhet och tillgänglighet Torbjörn Stavenek

Kursplan. IK1004 Java - Grafiska användargränssnitt med Swing. 7,5 högskolepoäng, Grundnivå 1. Java - GUI Programming with Swing - Undergraduate Level

Transkript:

Distribuerade affärssystem

Kursens mål Bygga upp, strukturera och programmera distribuerade system med en flerskiktsarkitektur Beskriva och förklara teorier och uttryck som används inom affärskritiska system och i distribuerade system Beskriva hur man utvecklar enkla system med inbyggd kommunikation på olika sätt Kunna skapa webbaserade lösningar Vara insatt i och beskriva säkerhetsaspekter kring distribuerade applikationer Kunna analysera, diskutera och jämföra olika distribuerade lösningar

Innehåll Distribuerade objekt (rmi, corba) Meddelandesystem (jms) Enterprise frameworks (j2ee,.net) Webbaserade system och programmering av tunna klienter Webservices Arkitektur och design av distribuerade system 3-lager arkitektur Transaktioner Samtidighet Säkerhet

Kurslitteratur Distributed Systems : Concepts and Design (4th Edition) by Jean Dollimore (Author), Tim Kindberg (Author), George Coulouris (Author) ISBN 0321263545

Kurs upplägg Teori moment 3 inlämninguppgifter, 1/vecka Muntlig tenta. 3 första veckorna. Lab moment 1 Java lab 1.NET lab Resten av kursen.

Teori momentet Varje avsnitt inleds med en föreläsning om innehållet i veckans kapitel Individiuellt läser ni avsnitten i boken och skriver en sammanfattning. I grupp ska ni diskutera fram en gemensam lösningar på gruppmomentet. Början på nästa vecka ska ni lämna och redovisa vad ni kommit fram till.

Muntlig tentamen Ca 50 frågor där vi ställer ca 3. En och en med Reine och Jonas

Laborations momentet Lab1 JSP och 3 skikt En webshop Lab2.NET C#

Laborations moment Föreläsningarna ger byggstenar Ni fogar samman och bygger system. Få fasta övnignar, men 'coaching' hela tiden. Fokus är på hur programmet är uppbyggt och hur ni gjort det INTE bara på att det fungerar.

Vad menas med distribuerad? Med distribuerad menar vi utspridd. Det är alltså system som kräver kommunikation av något slag.

Meddelande skickande Den allra enklaste formen Ett eget definierat protokoll skickas över sockets. Exempel Update person id=4711, name=nisse Remove person id=4711 Protokollen kan även göras adaptiva, d.v.s. Förändra sig efter behov

Fördelar Snabbt Medger kommunikation mot gammal/okänd motpart Nackdelar Komplext och krångligt Svårt med mer utväcklad och omfattande kommunikation

RPC Remote Procedure Call Anropande av funktion på mottagaren Ett lager ovanför socket med direkta anrop på en funktion. Exempel addperson(personid, name); removeperson(personid) Enklare meddelande sändning. Inte lika plattforms oberoende.

Distribuerade objekt Ett lager till ovan RPC blir distribuerade objekt. Precis som i ett ojektorienterat system är det här objekt som skickar meddelanden mellan varandra,men objekt på olika datorer. Skillnaden mot RPC är att man kommunicerar med ett objekt INTE metod/procedur.

Dist objekt RMI (Remote Method Invocation) är Javas variant. Integrerat i Java Lätt att använda, men endast Java CORBA Innehåller ALLT Krångligt, stabilt. För stora system.net eller DCOM Windows miljö, inte objektorienterat

Fördelar Naturligt in i objektorienterad utveckling Kommunikation med objekt (id) Komplexiteten abstraherad bort (???) Nackdelar Långsammare Design för kommunikation eller design för OO?

Meddelande/händelse orienterade system Fungerar ungefär som fönsterbaserade grafiska gränssnitt. En sändare skickar data till de som lyssnar på kanalen Börsdata strömmar ut data Streamad radio

En annan variant är ett mer köbaserat system där man allokerar på händelser som anländer till en viss kö. Finns inbyggd mekanism för detta i CORBA och i Java via Java Message API (JMS) Vanlig strategi för integrering och utbyte av information mellan stora system. Fördel är att sändare och mottagare

Arkitektur En normal distribuerad miljö har lite olika lager Applikation/service/tjänster Middleware OS Hårdvara Middleware A layer of software whose purpose is to mask heterogenity and to provide a convienent programming model to

Nästa steg är hur uppdelning sker mellan funktioner i systemet. D.v.s. hur man tillhandahåller sina funktioner och hur de olika delarna i systemet jobbar med varandra.

Client-server Den vanligaste strukturen. Klienten utför en förfrågan och får till svar ett resultat från en server. Servern kan i sin tur anropa en annan server där man i sin tur aggerar klient. En enkel struktur som inte kräver mycket av klienten.

Multipla servrar En variant till detta är att man har många servrar som gemensamt tillhandahåller funktioner. Servrarna ser utåt ut som en men kan sinsimellan dela upp det Antingen har en viss server vissa uppgifter Eller så har alla servrar en kopia av all data och tillhandahåller alla funktioner. Replikering ger naturligtvis större fel

Proxy server med cache Skillnaden här är att man har en server innan de 'verkliga servrarna' som innehåller de mest använda informationen. Cachar används i praktiken av de flesta system. Denna konstruktion kan användas i system där man vill ha ner belastningen på huvud servrar och flytta ut kommunikation med

Peer to peer Eller kommunikation helt utan server. De olika delarna kommunicerar alla med varandra. Alla är klienter och servrar eller samtidigt förfrågar och tillhandahar funktioner Servern är en svag punkt och detta eliminerar det. Dock väldigt svårt att göra denna typ av design.

Synkront vs asynkront En intressant aspekt i det hela är ifall kommunikationen är synkron eller assynkron. Metod anrop till objekt och likaså i distribuerade objekt system är synkrona. Kan dock fejkas som asynkrona. Meddelande system är asynkrona. Asynkront kan vara bra då stora beräkningar eller kostsamma resurser