Förslag på svar Tentamen etjänster och webb- programmering

Relevanta dokument
Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informattionssystem Datum 14/6 Tid

Förslag på svar Tentamen etjänster och webb- programmering

Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informattionssystem Datum 30/5 Tid

Regelverk för hur man kan förstå och analysera etjänster (Hultgren, 2007)

Tentamen etjänster och webbprogrammering

Tentamen etjänster och webbprogrammering

Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informationssystem Datum 19/8 Tid

Karlstads Universitet, Datavetenskap 1

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Introduktion till PHP

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Tentamen i Introduktion till programmering

Innehåll. MySQL Grundkurs

Programvaror - Jo, tack, det vill vi ha...

Generiska konstruktioner. Kursbokens kapitel 13

TNMK30 Elektronisk publicering HT 2014 Laboration 5: PHP och MySQL

Introduktion HTML och PHP 732G16 Databaser design och programmering

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Imperativ programmering. Föreläsning 2

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

Nya webbservern Dvwebb.mah.se

Kursintroduk+on etjänster och Webbprogrammering

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Databaser och Datamodellering Foreläsning IV

Inledande programmering med C# (1DV402) Summera med while"-satsen

TENTAMEN DATABASKUNSKAP ITEK12

Open Source-licenser

PHP - Fortsättning. PHP och MySQL

TDIU01 - Programmering i C++, grundkurs

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Repetition C-programmering

Grupp 3. Hannes Kalisky, Rasmus Jakobsson, Andreas Celander Guss, Christian Jansson

TDIU01 - Programmering i C++, grundkurs

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Sample exam questions. Database exam TIG058

Planering av ett större program, del 2 - for och listor. Linda Mannila

JavaScript del 3 If, Operatorer och Confirm

Varningssystem byggt på öppna källkodskomponenter Magnus Runesson SMHI

Språket Python - Del 1 Grundkurs i programmering med Python

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Hultgren, G; (2007) etjänster som social interak<on via användning av IT- system en prak<sk teori, sid , Doktorsavhandling, IEI, LiU

CMS. - Content management system

Introduktion till frågespråket SQL (v0.91)

Lektion 5 HTML, CSS, PHP och MySQL

Klassdeklaration. Metoddeklaration. Parameteröverföring

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Föreläsning 3: Booleans, if, switch

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Open Source - Utmaningar och fördelar

Affärsmodeller kring fri programvara - Exempel och diskussionsunderlag

Planering Programmering grundkurs HI1024 HT TIDAA

Programmering för webben

07/11/14. Databasteknik och informationssystem DD1370 F2. Allmänna frågor. Är Lab0 svårbegriplig? Nu: Clickers. Är Kurswebben svårbegriplig?

Planering Programmering grundkurs HI1024 HT data

Snabbguide Visma Compact API Copyright Visma Spcs AB

Exempel: Exempel: Exempel: Exempel: $djur=array("ko","katt","älg"); foreach ($djur as $d) { echo $d. " "; } Resultat. ko katt älg

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Logik och kontrollstrukturer

PHP-presentation Dataföreningens Open Source-nätverk

Webbprogrammering, grundkurs 725G54

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Konceptuella datamodeller

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Vad är en e- tjänst?

Examensarbete. Utveckling av webbshop. Johan Fougman 2013

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Introduk+on +ll programmering i JavaScript

Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.

SNITS-Lunch. Säkerhet & webb

Hemsideutveckling för Anjool AB

Molntjänster. Översikt. Lektion 1: Introduktion till molntjänst. Introduktion till molntjänst. Vilka tjänster finns? Säkerhet.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar:

E-tjänster Studentarkivet

Exempel-Tentamen III

Läsöversikt. Föreläsningar 2-6. Genomförande av laborationer

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Lösningsförslag, tentamen i Databaser

Kryptering. Krypteringsmetoder

Gissa det hemliga talet

Om inte denna rekommendation efterföljs kan vi tyvärr inte ge några garantier för att vi kan supportera de problem som då kan uppstå.

TDDE44 Programmering, grundkurs

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Open Source - Eller som vi säger, Fri programvara

Övningar i SQL. SQLAccess.doc Ove Lundgren

Planering Programmering grundkurs HI1024 HT 2014

NORMALISERING. Mahmud Al Hakim

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Mjukvaruprojekt Onlinebooks

Projektarbete myshop. Sandra Öigaard so222es WP12 Individuellt mjukvaruutvecklingsprojekt

Open Source - Eller som vi säger, Fri programvara

Databasutveckling Tabeller. tinyint 1 byte (0-255) Upp till 8 bytes

Transkript:

Förslag på svar Tentamen etjänster och webb- programmering 2012-06- 14 Svar 1 Rollerna tjänsteleverantör och kund/klient föreligger Ej nödvändigt att kunden/klienten betalar för tjänsten Kunden har valfrihet att välja använda tjänsten Tjänsteleverantören har inte organisatorisk kontroll över användaren (ej anställd hos tjänsteleverantören) Social interaktion via IT- system IT- systemet ska vara fördefinerat för att självständigt kunna utföra och mediera handlingar Kund och leverantör behöver ej mötas ansikte- mot- ansikte Tjänstemötet äger rum via användning av IT- system Fördel att vi får ett oberoende av tid och plats för tjänstemötet Kunden använder tjänsteleverantörens IT- system Principen för icke- ägandet föreligger Kan gälla IT- systemet på förutsättningsnivå eller i handling IT- systemet ska inneha både rollerna som medium och utförare av kommunikationshandlingar b) 3 p Kunden har en valfrihet att använda Internetbanken genom att han/hon inte är tvingad till det genom att kunden fortfarande kan gå till bankkontoret. Den primära användaren av Internetbanken är inte bankens anställda. Kunden betalar också oftast en avgift för att använda IT- systemet. IT- systemet är utformat så att kunderna på ett självständigt kan utför olika handlingar som t.ex. att sätta in och överföra pengar mellan konton utan att behöva stöd av bankpersonal eller att träffa dem fysiskt. Användaren äger inte IT- systemet t.ex. genom att betala en licens för det och installera det på sin egen dator. IT- systemet utför mottagande och sändande handlingar på ett autonomt sätt i förhållande till kund och tjänsteleverantör. Svar 2. För att förstå samexisterande etjänster behöver man skilja mellan tre olika typer av samexisterande etjänster : fokala etjänster relaterade etjänster som man alltså kommer åt från den fokala etjänsten eller dess etjänstekomplement och som befinner sig ett länkningsavstånd bort från den fokala etjänsten

länknings- etjänst som via ett länkningsmeddelande tillhandahåller länkning från den fokala etjänsten eller dess etjänstekomplement till en relaterad etjänst med annan tjänsteleverantör. b) 3p. Analys av samexisterande kan t.ex. vara viktigt för att hitta olika sätt att finansiera etjänster. Ytterligare ett skäl är att komplexiteten i skärmdokumenten kan vara stor. Ur kundens perspektiv kan nätverken av skärmdokument och etjänster därmed upplevas som problematiska, dvs. det kan vara svårt att veta vilken etjänst som för tillfället tillhandahålls och vem som har ansvaret före etjänsterna. Svar 3 a) 5p - varje betydande internettjänst har baserat sig på en specialiserad databas - Data- och databashantering utgör en kärnkompetens i alla Web 2.0 företag - SQL har lika stor betydelse som HTML - En kärnfråga utgörs av vem som äger data. - att kontrollera information t.ex. via copyright har blivit lika viktigt eller mer viktigt än att copyright på programvara - företag kan också skaffa sig en ledande ställning genom att komplettera de data som de tillhandahåller med användargenererade data. Svar 4 a). Detta handlar om att man bygger etjänster som skall stimulera kunderna (användarna) att själva bidra med innehållet i etjänsten och om att det gäller att stimulera till att kunderna interagerar med varandra. b). Exempel på etjänster som lyckats och blivit stora med denna princip som grund är: - ebay som bygger på den aktivitet som alla köpare och säljare genomför - Amazon som har lyckats väl med att engagera användare att lämna bidrag t.ex i form av bokrecensioner och bättre sökresultat - Wikipedia som har lyckats engagera användarna att skapa ett lexikon utan expertinblandning Svar 5 Corporate distribution: Trots att Open Communities levererar bra programvara har man upptäckt att många kunder får problem med bl.a. support. Vissa programvaruföretag har specialiserat sig på att sälja tjänster som gör OSS programvara mer tillgänglig Sponsored Open Source: Etablerade programvaruleverantörer eller institutioner sponsrar vissa OSS- projekt. Programvaruleverantörer har

också i vissa fall öppnat upp sin egen kod och låter sina anställda arbeta med utveckling i en öppen miljö Second- Generation Open Source: Detta är en kombination av 3 och 4 b) 3p De erbjuder sina kunder ansvarskyldighet (accountability) vilket gör att kunderna tar en mindre risk när det gäller intrång på copyright och patent. Ovanstående fördel uppnås genom att källkoden är öppen så alla kan se att den inte är stulen. Det som är utmärkande med OSSG- programvara är att alla har tillgång till källkoden inte att den är gratis. De har tillgång till mycket kompetenta programmerare (talent base) som kommer från den ursprungliga OSS- rörelsen som kan bo varsomhelst i världen De kan erbjuda en miljö/kultur (ett ECO- system) av Websites, konferenser, communities som garanterar kunskapsspridning och kvalitet runt produkterna Svar 6 Kommunikationshandlingar: utförs med hjälp av språkliga symboler, resulterar i meddelanden, förändrar statusen i den sociala världen, skapar och förändrar sociala relationer b) Exempel på viktiga kommunikationshandlingar som utförs på blocket är t.ex. när annonsören registrerar en annons och tjänsteleverantören publicerar den. c) Kommunikation utgör en grundläggande del av social interaktion men social interaktion innebär inte bara kommunikation. Social interaktion är alla handlingar som är inriktad mot en annan social aktör. Svar 7 Kod som löser A, B, C D ser ut på följande sätt: <?php function display_sales($uid){ $conn = mysql_connect('localhost', 'mattias', '123456'); if (!$conn) exit; if (!mysql_select_db('mydb')) exit; $query = "SELECT Annonsör.Namn as namn, Bil.Registreringsnummer as regnr, Annons.Pris as pris, Bil.Mil as mil FROM Annonsör, Bil, Annons WHERE Annonsör.Konto_Id = $uid AND Annons.A_Id = Annonsör.A_ID AND Bil.Registreringsnummer = Annons.Regnr"; $result = mysql_query($query); if (!$result){ echo 'Ingen sådan användare finns!'; exit;

$firstpass = 1; while($r = mysql_fetch_assoc($result)){ if($firstpass == 1){ $namn = $r[ namn ]; /// XXX: <B1> Byt ut???. echo '<div class="cheader">'. $namn. '</div>'; echo <table><tr> ; echo <th>registreringsnummer</th><th>pris</th><th>mil</th>'; echo '</tr> ; $firstpass *= 0; // XXX: <B2> Byt ut???. echo <tr><td>. $r[ regnr ]. </td><td>. $r[ pris ]. </td><td> ; echo $r[ mil ]. </td></tr> ; if ($firstpass == 0) echo '</table'>; if(array_key_exists($_get, 'uid')) display_data(mysql_real_escape_string($_get['uid']));?> Kod som löser E ser ut på följande sätt: <?php function display_sales($uid, $maxprint){ $conn = mysql_connect('localhost', 'mattias', '123456'); if (!$conn) exit; if (!mysql_select_db('mydb')) exit; $query = "SELECT Annonsör.Namn as namn, Bil.Registreringsnummer as regnr, Annons.Pris as pris, Bil.Mil as mil FROM Annonsör, Bil, Annons WHERE Annonsör.Konto_Id = $uid AND Annons.A_Id = Annonsör.A_ID AND Bil.Registreringsnummer = Annons.Regnr"; if($maxprint) if(is_integer($maxprint)) $query.= LIMIT 0, $maxprint ; // XXX: antar maxprint > 0! else $query.= LIMIT 0, 5 ; else $query.= LIMIT 0, 5 ; $result = mysql_query($query); if (!$result){ echo 'Ingen sådan användare finns!'; exit; $firstpass = 1; while($r = mysql_fetch_assoc($result)){ if($firstpass == 1){ $namn = $r[ namn ]; /// XXX: <B1> Byt ut???. echo '<div class="cheader">'. $namn. '</div>'; echo <table><tr> ; echo <th>registreringsnummer</th><th>pris</th><th>mil</th>';

echo '</tr> ; $firstpass *= 0; // XXX: <B2> Byt ut???. echo <tr><td>. $r[ regnr ]. </td><td>. $r[ pris ]. </td><td> ; echo $r[ mil ]. </td></tr> ; if ($firstpass == 0) echo '</table'>; if(array_key_exists($_get, 'uid')) if(array_key_exists($_get, maxpris )) display_data(mysql_real_escape_string($_get['uid']), mysql_real_escape_string($_get[ maxpris ])); else display_data(mysql_real_escape_string($_get[ uid ]), NULL);?> Svar 8 a) En främmande är en primärnyckel som används som referens I en annan tabell med syfte att upprätthålla en referensrelation mellan från den tabell där den är främmade nyckel till den tabell där den är primärnyckel b) I tabellerna ovan är Konti_Id, Regnr, A_ID främmande nycklar Svar 9 Den semantiska skillnaden handlar främst om multiplicitet, där id är unikt och class inte är det. Med id avses därmed ett unikt element som definieras och nyttjas en gång per sida till skillnad från class som definieras för att återanvändas flertalet gånger per sida. Detta framgår även i andra sammanhang där begreppen nyttjas, jmf. class i valfritt objektorienterat programmeringsspråk och id som personbevis. Svar 10 mysql_real_escape_string() escape:ar tecken som skulle kunna nyttjas för en SQL- injection. Exempelvis blir ' istället \' osv. Svar 11 I vår första jämförelse utvärderas en tilldelning (notera att vi enkom har ETT =- tecken!) av 0, vilket får det booleska värdet False. Därför körs den första else- satsen. I den andra jämförelsen nyttjas ===- operatorn, och då VL är en bool och HL är en sträng blir svaret False, vilket betyder att else körs igen. Programmet skriver ut BB