razvoj spletnih aplikacij

60
Načrtovanje in razvoj spletnih aplikacij (RSA) Islam Mušić, prof. Elektro in računalniška šola

Upload: islam-music

Post on 23-Dec-2014

2.294 views

Category:

Education


4 download

DESCRIPTION

Gradivo pri modulu Razvoj spletnih aplikacij

TRANSCRIPT

Page 1: Razvoj spletnih aplikacij

Načrtovanje in razvoj spletnih aplikacij (RSA)

Islam Mušić, prof.

Elektro in računalniška šola

Page 2: Razvoj spletnih aplikacij

Snov

Internet in storitve interneta. Internetni protokoli.

Splet. Html. Css. XML.

Skriptno programiranje. Objektno programiranje.

Spletni portali – uporaba.

Komuniciranje s strankami. Dokumentacija. Testiranje.

Varnost. Zaščita. JavaScript. Ajax.

Framework (Ogrodja). MVC.

WEB 2.0

Page 3: Razvoj spletnih aplikacij

Cilji

Pri tem modulu bomo izdelali …

KAJ????

Page 4: Razvoj spletnih aplikacij

Vprašanja, ideje ...

Page 5: Razvoj spletnih aplikacij

Splet???

Page 6: Razvoj spletnih aplikacij

Splet, internet

Poišči na Googlu kaj je eno in kaj drugo.

Napiši si storitve interneta.

Odgovori zakaj internet in splet nista eno in isto.

Page 7: Razvoj spletnih aplikacij

Internet - ponovitev

Medmrežje – omrežje omrežji.

Je globalni sistem med seboj povezanih omrežij, ki

med seboj izmenjujejo podatke s pomočjo

internetnih protokolov (Fikcija, marec 1946).

TCP/IP.

Storitve:

Splet, E-pošta, FTP, IPTV, VoIP, IM, ...

Referati?

Page 8: Razvoj spletnih aplikacij

Omrežja – Internetni protokoli

Je skupina komunikacijskih protokolov, ki se

uporabljajo za internet in podobna omrežja

EKI, VOS

Najpomembnejša protokola sta:

IP – Internet Protocol

TCP – Transmission Control Protocol

Page 9: Razvoj spletnih aplikacij

IP

Dostavlja

pakete od pošiljatelja do naslovnika

Najbolj razširjen je IPv4 (IETF: RFC 791, september 1981)

Najnovejši je IPv6 (IETF: RFC 2460, od 1996 naprej) – večji naslovni prostor

Page 10: Razvoj spletnih aplikacij

TCP

Zagotavlja

zanesljivo dostavo paketov v pravilnem vrstnem redu

Nadzoruje velikost sporočil

Nadzoruje hitrost izmenjave sporočil

Nadzoruje zasedenost omrežja

Vrata

Določajo končno točko prejemnika v enem gostitelju

16-bitna vrednost (0-65535)

Page 11: Razvoj spletnih aplikacij

WIKI ???

http://im.scv.si/wiki

Oglejmo si …

Page 12: Razvoj spletnih aplikacij

Splet

Začetnik je Sir Tim Berners-Lee, ki je predlagal

hipertekstni informacijski sistem v CERN-u

Sistem kasneje preimenovan v “World Wide Web”

Do konca leta 1990 je Berners-Lee implementiral

prototip HTTP protokola

Sredi leta 1991 sta bila v CERN-u na voljo strežnik

in brskalnik (odjemalec)

V začetku 1993 je 50 spletnih mest uporabljalo

HTTP strežnike, 200 do jeseni

Page 13: Razvoj spletnih aplikacij

HTTP

Je WWW protokol (poznan tudi kot Request & Response)

Brskalniki komunicirajo preko http

Strežniki komunicirajo preko http

Torej je komunikacijski protokol med strežnikom in odjemalcem

(brskalnikom)

Page 14: Razvoj spletnih aplikacij

Delovanje http

HTTP uporablja preprost pogovorni vzorec:

brskalnik se poveže s strežnikom preko porta

začne dialog s prošnjo za datoteko na strežniku

strežnik nato odgovori brskalniku nazaj in pošlje datoteko

Page 15: Razvoj spletnih aplikacij

Request & Response

Page 16: Razvoj spletnih aplikacij

Prikaz strani

Brskalnik dobi od strežnika datoteko v obliki HTML (povezave, slike ...).

Analiza HTML

Ugotovi, da potrebuje še vsebine za pravilen prikaz strani (recimo sliko).

Ko se to zgodi, brskalnik začne še eno HTTP zahtevo za vsako sliko.

Page 17: Razvoj spletnih aplikacij

Prikaz strani

Page 18: Razvoj spletnih aplikacij

Vrste vsebine

Poznamo več vrst vsebine, od tega je odvisno kako

vsebino obravnava odjemalec (npr. brskalnik):

text/plain

text/html

text/xml

application/pdf

Page 19: Razvoj spletnih aplikacij

Protokol s stanjem

Kadar protokol podpira stanje, to pomeni, da

omogoča izmenjavo vrste ukazov med odjemalcem

in strežnikom.

Strežnik pri tem ves čas “ohranja stanje” odprte

povezave, ki se imenuje tudi seja.

Med protokole s stanjem štejemo FTP, SMTP, POP3

Page 20: Razvoj spletnih aplikacij

Protokol brez stanja

Življenjska doba povezave je le v času izmenjave

sporočila zahteva/odgovor.

Zato ne obstaja avtomatski način vzdrževanja seje

med več zaporednimi sporočili zahteva/odgovor.

Posledica je, da ne moremo združiti več zahtev v

eno – npr. zahtevati spletne strani skupaj z vsemi

slikami.

Page 21: Razvoj spletnih aplikacij

Zahteva / Odgovor

Page 22: Razvoj spletnih aplikacij

Majhen test

telnet google.com 80

GET /search?q=Islam+Mušić

Results (HTTP/1.0 200 OK...)

Enostavno

Page 23: Razvoj spletnih aplikacij

Http zahtevki

GET Najbolj pogosta metoda za pridobitev vsebine datoteke.

POST Podobno kot GET, samo da je telo zahtevka vsebuje podatke ki jih želimo

sporočiti strežniku.

PUT Se uporablja za pošiljanje datotek na ciljni spletni strežnik.

DELETE Redko implementirani.. zbriše dotično datoteko z strežnika.

Page 24: Razvoj spletnih aplikacij

Nekaj rezultatov

200 OK (datoteka najdena)

404 (File not found)

302 (Resource has moved)

500 (Internal server error)

Page 25: Razvoj spletnih aplikacij

Statusne kode

Imajo več razredov:

1xx: informativne

2xx: označujejo uspešne odgovore

3xx: zahtevajo preusmeritev

4xx: napake na strani zahteve (odjemalca)

5xx: napake na strani strežnika

Page 26: Razvoj spletnih aplikacij

URI – Universal Resource Identifier

Največkrat ga srečamo pod drugim imenom:

URL – Universal Resource Locator

Čeprav ne gre za isti pojem se v praksi največkrat

uporablja URL

Page 27: Razvoj spletnih aplikacij

Struktura URL

shema://gostitelj[:vrata#]/pot/;[parametri]

[?poizvedovalni-niz]

[#sidro]

Shema določa protokol s katerim je možno dostopati do vira, npr. HTTP

Gostitelj – ime ali IP naslov strežnika, na katerem je dostopen vir

Vrata – neobvezen del naslova, ki določa vrata na katerih posluša strežnik. Za HTTP običajno

80

Page 28: Razvoj spletnih aplikacij

Struktura URL

Pot – logično gledano je to struktura imenikov, ki vodi

do vira, kar je običajno pri FTP, HTTP strežnikih

URL parametri – neobvezni, včasih se niso toliko

uporabljali, danes se predvsem za prenos podatkov o

seji z Java Servlet API – naveden je takoj za podpičjem

Page 29: Razvoj spletnih aplikacij

Struktura URL

Poizvedovalni niz – neobvezni del URL, vsebuje

dinamične parametre, ki so povezani z zahtevo. Od

poti je ločen z znakom “?”, več parametrov je ločenih z

znakom &, ime parametra je ločeno od spremenljivke z

enačajem

Page 30: Razvoj spletnih aplikacij

Struktura URL

Sidro – neobvezni del URL, določa ime pozicijske

oznake v okviru vsebine, ki jo nalagamo – podobno

označbi v knjigi

Page 31: Razvoj spletnih aplikacij

Relativni/absolutni URL

Pri odpiranju spletnih strani običajno uporabljamo

absolutni URL, npr: http://www.google.com

V okviru ene spletne strani običajno uporabljamo

relativne naslove za dostop do dodatnih virov

/index.html

/scripts/skripte.js

../images/slika.jpg

Page 32: Razvoj spletnih aplikacij

HTML (HyperText Markup

Language)

je označevalni jezik za izdelavo spletnih strani

Tim Berners-Lee (W3C)

Internet Engineering Task Force (IETF)

HTML 4.01 (24.12.1999)

HTML5 (v razvoju; cca. 2012)

Page 33: Razvoj spletnih aplikacij

HTML

ni programski jezik

koda zapisana v ASCII (sistemska neodvisnost)

TAG (značke, oznake)

Page 34: Razvoj spletnih aplikacij

Uvod

HTML je kratica za HyperText Markup Language

je jezik za objavljanje na svetovnem spletu

podmnožica mednarodnega standarda za izmenjavo elektronskih dokumentov

imenovan SGML (Standard Generalized Markup Language)

HTML ponuja: elektronsko objavo dokumentov z besedili, tabelami,

fotografijami, preusmeritve, uporaba obrazcev,…

Page 35: Razvoj spletnih aplikacij

HTML - oznake

oznaka je vedno zaprta med znaka za večji in manjši < in >

oznaka velja od mesta klica do mesta preklica, za preklic oznake pred oznako

postavimo poševnico /

nekatere oznake in elementi lahko vsebujejo tudi atribute

Page 36: Razvoj spletnih aplikacij

XHTML - uvod

XHTML je naslednji korak v razvoju jezikov, ki se uporabljajo za objavljanje v spletu.

Je jezik, ki zadostuje vsem pravilom jezika XML. Dokumente XHTML 1 je mogoče napisati tako, da so popolnoma združljivi z različicami

jezika HTML 4.01.

Page 37: Razvoj spletnih aplikacij

XHTML

Uporablja HTML značke, ki pa jih je potrebno zapisati po pravilih pisanja

XML

Obstajajo razlike med XHTML in HTML

Page 38: Razvoj spletnih aplikacij

XHTML

Vsak XHTML dokument se mora začeti z deklaracijo tipa dokumenta (Document

Type Definition).

DOCTYPE deklarira različico XHTML, na kateri temelji dokument. Poznamo tri

različne deklaracije (Strict, Transitional, Frameset).

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Page 39: Razvoj spletnih aplikacij

XHTML

XHTML 1.0 Strict – prepovedana uporaba značk, ki opisujejo izgled spletne strani

XHTML 1.0 Transitional – dovoljena uporaba značk, ki opisujejo izgled spletne strani

XHTML 1.0 Frameset – Dovoljena uporaba „frameov“

XHTML 1.1:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"

"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Page 40: Razvoj spletnih aplikacij

XHTML

Mala začetnica

Vsi elementi morajo biti zaključeni

Gnezdenje

Atributi se ne smejo krajšat

Page 41: Razvoj spletnih aplikacij

XHTML

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sl">

<head>   <title>naslov dokumenta v naslovni vrstici </title>     </head>     <body>        <!-- telo oz. vsebina -->     </body> </html>

Page 42: Razvoj spletnih aplikacij

Spletni portali

Kaj je spletni portal?

Zakaj spletni portal?

Prednosti vs. Slabosti

Page 43: Razvoj spletnih aplikacij

Spletni portali

Poznamo več vrst spletnih portalov, ki se običajno delijo glede na uporabo

CMS (content management system)

LMS (learning management system)

Groupware (collaborative web software)

ECM (enterprise content management)

Bug tracking system

...

Page 44: Razvoj spletnih aplikacij

CMS

urejanje strani brez znanja označevalnega

jezika HTML.

samostojno spreminjamo besedila, slike in druge elemente spletne strani brez pomoči

Joomla. WordPress. Drupal. TYPO3. e107.org. Serendipity. CMS Made Simple.

Ocportal. ImpressCMS. XOOPS. …

Referati!!!

Page 45: Razvoj spletnih aplikacij

LMS

Sistem za upravljanje učenja.

Dostavo učnih vsebin, ki omogočajo dostopnost kadarkoli in kjerkoli.

Moodle. Dokeos. aTutor. Sakai. Claroline. Chamilo. eFront. ILIAS. OLAT.

Referati!!!

Page 46: Razvoj spletnih aplikacij

Groupware

namenjene za pomoč ljudem, ki so vključenih v skupni nalogi, da bi lažje

dosegli svoje cilje.

Zimbra. Collabtive. DotNetNuke. eGroupWare. Group-Office. Jumper 2.0.

Tiki Wiki CMS Groupware.

Referati!!!

Page 47: Razvoj spletnih aplikacij

Groupware

Čas in stroške upravljanja

Online chat, takojšnje sporočanje, telefonija, videokonference, spletne konference, Data

konference

Souporaba aplikacij, E-pošta, faksiranje, glasovne pošte,

Wikiji, spletno objavljanje, Revizijski nadzor, Grafi/Statistika

Različice dokumenta, delitev dokumentov, dokumentno skladišče, vrednotenje in ankete

Page 48: Razvoj spletnih aplikacij

ECM

Enterprise content management

Namenjen za lažje poslovanje oz. podjetjem, da lažje poenotijo vse vrste poslovanja.

ECM kontolira več vrst dokumentov (doc, img …) in jih objavlja tudi po drugih „mrežah“ ne

le na spletu.

Z ECM lahko: Ustvarjamo vsebine, beležimo spremembe dokumentov, definiramo potek

dela, iskalnik, kreiranje XML/PDF/HTML, omogoča razširitev, podpora certifikatom,

kontrola dostopa ...

Page 49: Razvoj spletnih aplikacij

ECM

V ECM običajno najdemo:

Dokumentni sistem (Document Management),

Web Content Management (CMS),

Records Management (Upravljanje z zapisi),

Document Imaging (Digitalizacija dokumentov),

Document-Centric Collaboration (Sodelovanje več članov določenega tim pri določenih

nalogah).

Page 50: Razvoj spletnih aplikacij

Bugtracking (Issue tracking system)???

Je spletni portal narejen za doseganje boljše kakovosti storitev, ki jih ponujate, saj uporabniki preko portala objavljajo

napake.

Običajno je ta sistem vključen v druge večje sisteme (ECM).

V veliko pomoč je nadzornikom, saj omogoča spremljanje celotno pot

odpravljanje neke napke.

Primer: MantisBT, Bugzilla, Redmine ...

Page 51: Razvoj spletnih aplikacij

Namestitev spletnega strežnika

BITNAMI, AppServ, XAMPP, LAMP …

Apache, PhP, MySQL (PostgreSQL ...), phpmyadmin, (phppgadmin)

http://localhost

http://127.0.0.1

Page 52: Razvoj spletnih aplikacij

Apache

Spletni strežnik

Windows / Linux

Razširjenost

Page 53: Razvoj spletnih aplikacij

MySQL

SUPB

Prosto dostopen

Razširjen v praksi in literaturi

Page 54: Razvoj spletnih aplikacij

PhP

Skriptni jezik

Na zaslon uporabnika izpisujemo (X)HTML

Podoben C++

Razširjen v praksi

Velika skupnost

<?php phpinfo(); ?>

Page 55: Razvoj spletnih aplikacij

PhP

Končnica .php

<?php

?>

Komentar // ali /* in */

Kombinacija HTML in PhP

Page 56: Razvoj spletnih aplikacij

Web 2.0

Web 1.0 (1991-2003)

2004 -

Tim O'Reilly

Web as Platform

občinstvo = ustvarjalci

Skupnosti okrog storitev

Page 57: Razvoj spletnih aplikacij

Web 2.0

Page 58: Razvoj spletnih aplikacij

Web 2.0

FaceBook, MySpace, YouTube, Gmail, Flickr …

Blog, socialna omrežja, wiki, RSS, AJAX, mobilnost, CSS, template, standardizacija,

dostopnost, modularnost …

LJUDJE, SKUPNOST, JAZ, MI

Oglaševanje za mene (ozek cilj)

MARKETING (prepoznavnost)

Page 59: Razvoj spletnih aplikacij

Web 2.0

Law of Attraction

Povezovanje ljudi (brezplačno)

FaceBook > Google

Ustrezno filtriranje, kategoriziranje vsebine

Mashup (kobinacija več podatkovnih virov)

formiranja hipne množice okrog poljubnega anonimneža

MafiaWars

Page 60: Razvoj spletnih aplikacij

Web 2.0

RIA (Rich Internet Applications)

Prenesti zmogljivost namiznih aplikacij na splet

SOA (Services Oriented Architecture)

Razširiti možnosti uporabe

PERSONALIZACIJA