Det skal bemerkes at, som enhver klassifisering, er vår klassifisering av informasjonssystemarkitekturer ikke helt stiv. I arkitekturen til et bestemt informasjonssystem kan man ofte finne påvirkningene fra flere generelle arkitektoniske beslutninger. Ved arkitektonisk utforming av et system virker det imidlertid nyttig å ha i det minste et delvis ortogonalisert arkitektonisk grunnlag. I de følgende delene av kurset vil vi vurdere i detalj egenskapene til hver arkitektur og dvele ved metodikkene og teknologiske verktøyene som støtter design og utvikling av informasjonssystemer i den tilsvarende arkitekturen.
2.1. Filserverapplikasjoner
Tilsynelatende er organiseringen av informasjonssystemer basert på bruk av dedikerte filservere fortsatt den mest utbredte på grunn av tilstedeværelsen av et stort antall personlige datamaskiner med forskjellige utviklingsnivåer og den relative billigheten ved å koble PC-er til lokale nettverk. Hva tiltrekker en slik organisasjon av informasjonssystemutviklere som ikke er veldig erfarne innen systemprogrammering? Mest sannsynlig er det faktum at selv om applikasjonen (og det meste av systemet) er avhengig av filserverarkitekturer, er autonomien bevart. Faktisk samhandler komponentene i informasjonssystemet, som kjører på forskjellige PC-er, bare på grunn av tilstedeværelsen av en felles fillagring, som er lagret på en filserver. I det klassiske tilfellet dupliserer hver PC ikke bare applikasjonsprogrammer, men også databaseadministrasjonsverktøy. Filserveren er en utvidelse av diskminne som deles av alle PC-er i komplekset (Figur 2.1).
Uten å dvele i detalj ved de lovende verktøyene for utvikling av filserverapplikasjoner som er tilgjengelige på markedet i dag og uten å gi en analyse av utviklingstrendene til de tilsvarende teknologiene (den tredje delen av kurset er viet til dette), vil vi kort liste opp de viktigste fordelene og ulempene med filserverarkitekturer.
Den største fordelen er selvfølgelig den enkle organisasjonen. Designere og utviklere av informasjonssystemet er i de kjente og komfortable forholdene til en IBM PC i MS-DOS, Windows eller en hvilken som helst lettvektsversjon av Windows NT. Det finnes praktiske og avanserte utviklingsverktøy for grafisk brukergrensesnitt, brukervennlige verktøy for utvikling av databasesystemer og/eller DBMS. Men på mange måter er denne enkelheten tydelig. (Som det russiske ordtaket sier: "Enkelhet er verre enn å stjele," og her har vi vanligvis enkelhet basert på tyveri av PC-programvare.)
Ris. 2.1. Den klassiske representasjonen av informasjonssystemet i "filserver"-arkitekturen
Først må informasjonssystemet fungere med databasen. Derfor må denne databasen utformes. Av en eller annen grunn tror utviklere av filserverapplikasjoner ofte at på grunn av enkelheten til databaseadministrasjonsverktøy, kan problemet med databasedesign neglisjeres. Selvfølgelig er dette feil. Databasen er en database. Jo bedre det er utformet, jo større sjanse er det for å bruke informasjonssystemet effektivt senere. Naturligvis bestemmes kompleksiteten til databasedesign av den objektive kompleksiteten til det simulerte domenet. Men faktisk, av hva skulle det følge at filserverapplikasjoner bare er egnet i enkle fagområder?
For det andre, som vi gjentatte ganger har understreket i første del av kurset, er de nødvendige kravene til informasjonssystemdatabasen å opprettholde sin integrerte tilstand og garantert pålitelighet av informasjonslagring. Minimumsbetingelsene for hvilke disse kravene kan oppfylles er:
- tilstedeværelsen av transaksjonskontroll, lagring av redundante data (for eksempel ved bruk av loggmetoder), evnen til å formulere integritetsbegrensninger og verifisere overholdelse av dem.
I prinsippet motsier ikke filserverorganisasjonen, som vist i figur 2.1, overholdelsen av de angitte forholdene. Et eksempel på et system som oppfyller disse betingelsene, men som er basert på en filserverarkitektur, er den populære Informix SE "databaseserveren" tidligere.
Lang merknad:
For å bevare klarheten i den videre fremstillingen må vi tydeliggjøre terminologien noe. Det er ikke for ingenting at vi skrev "databaseserver" i anførselstegn for Informix SE DBMS. Med dette systemet ble en kopi av DBMS-programvaren opprettholdt for hver brukerinitierte DBMS-økt. Grovt sett, for hver brukerprosess som samhandler med databasen, ble det opprettet en DBMS-tjenesteprosess, som ble utført på samme prosessor som brukerprosessen (dvs. på klientsiden). Hver av disse tjenesteprosessene oppførte seg faktisk som om de var den eneste representanten for DBMS. All synkronisering av mulig parallelt arbeid med databasen ble utført på nivå med eksterne minnefiler som inneholder databasen. La oss nå bli enige om å kalle slike DBMS ikke databaseservere, men databasestyringssystemer basert på filserverarkitekturen (DBMS-FS).
Med en ekte databaseserver mener vi programvaredannelse knyttet til den(e) tilsvarende databasen(e), eksisterende, generelt sett, uavhengig av eksistensen av bruker(klient)prosesser og utført, generelt sett (men ikke nødvendigvis) på dedikert maskinvare (vi bevisst vi bruker ikke veldig spesifikke termer "programvareopplæring" og "dedikert maskinvare", fordi deres spesifikke implementering er forskjellig på forskjellige databaseservere).
Ekte databaseservere er mye mer komplekse i organisasjonen enn DBMS-FS, men de gir finere og mer effektiv databaseadministrasjon. Gjennom resten av dette kurset, når vi bruker begrepet "databaseserver", vil vi mene ekte databaseservere.
Men på den annen side, i de fleste personlige DBMS er disse betingelsene ikke oppfylt selv ved hjelp av grove metoder. I beste fall er det mulig å delvis kompensere for manglene på programnivå.
For det tredje er grensesnittet til avanserte databaseservere basert på bruk av et SQL-databasespråk på høyt nivå, som tillater bruk av nettverkstrafikk mellom klienten og databaseserveren kun for nyttige formål (SQL-setninger sendes hovedsakelig fra klienten til serveren, fra serveren til klienten - resultatutførelsen av operatører). I en filserverorganisasjon jobber klienten med eksterne filer, noe som forårsaker en betydelig trafikkoverbelastning (siden DBMS-FS fungerer på klientsiden, for å hente nyttelasten, generelt, er det nødvendig å se hele den tilsvarende fil på klientsiden).
Generelt har vi i en filserverarkitektur en "tykk" klient og en veldig "tynn" server i den forstand at nesten alt arbeid gjøres på klientsiden, og serveren trenger kun tilstrekkelig diskplass (Figur 2.2).
Ris. 2.2. Tykk klient og tynn server i filserverarkitektur
Korte konklusjoner. En enkel, lavvolum, enkeltbruker filserverapplikasjon kan designes, utvikles og feilsøkes veldig raskt. Svært ofte for et lite selskap å føre for eksempel personaljournaler, er det nok å ha et isolert system som kjører på en frittstående PC. Selvfølgelig, også i dette tilfellet, kreves det stor forsiktighet fra sluttbrukere (eller administratorer, hvis tilstedeværelse i dette tilfellet er tvilsomt) for å sikkert lagre og opprettholde integriteten til dataene. Imidlertid, i allerede litt mer komplekse tilfeller (for eksempel når du organiserer et informasjonssystem for å støtte et prosjekt utført av en gruppe), blir filserverarkitekturen utilstrekkelig.
Klient-server-applikasjoner
Med en klient-server-applikasjon mener vi et informasjonssystem basert på bruk av databaseservere (se det lange notatet på slutten av avsnitt 2.1). Den generelle oversikten over informasjonssystemet i klient-server-arkitekturen er vist i figur 2.3.
- På klientsiden kjøres applikasjonskoden, som nødvendigvis inkluderer komponenter som støtter grensesnittet mot sluttbrukeren, produserer rapporter, utfører andre applikasjonsspesifikke funksjoner (inntil vi er bekymret for hvordan applikasjonskoden er bygget opp). Klientsiden av applikasjonen samhandler med klientsiden av databasebehandlingsprogramvaren, som faktisk er en individuell DBMS-representant for applikasjonen.
(Det er her terminologien er feil igjen. Vanligvis, når et selskap kunngjør utgivelsen av en ny databaseserver, er det implisitt forstått at det også er en klientside av dette produktet. Kombinasjonen av "klientsiden av en databaseserver" virker litt rart, men det er dette vi må bruke begrepet.)
Ris. 2.3. Generell oversikt over informasjonssystemet i klient-server-arkitekturen
Merk at grensesnittet mellom front-end av applikasjonen og front-end av databaseserveren vanligvis er SQL-basert. Derfor utføres slike funksjoner som for eksempel forhåndsbehandling av skjemaer beregnet for spørringer til databasen, eller generering av de resulterende rapportene i applikasjonskoden.
Til slutt får klientsiden av databaseserveren, ved hjelp av nettverkstilgangsfasiliteter, tilgang til databaseserveren, og sender den teksten til SQL-setningen.
Det er to poeng til her.
Vanligvis streber selskaper som produserer avanserte databaseservere for å sikre at produktene deres kan brukes ikke bare i dagens standard TCP / IP-baserte nettverk, men i nettverk basert på andre protokoller (for eksempel SNA eller IPX / SPX) ... Derfor, når du organiserer nettverksinteraksjoner mellom klient- og serverdelene av DBMS, brukes ofte ikke standard verktøy på høyt nivå (for eksempel programvaresockets eller eksterne prosedyrekall), men deres egne funksjonelt lignende verktøy som er mindre avhengige av funksjonene av nettverkstransportprotokoller. Når vi snakker om et grensesnitt basert på SQL-språket, må vi være klar over at til tross for den titaniske innsatsen for å standardisere dette språket, er det ingen implementering der standardfunksjonene til språket ikke har blitt utvidet. Hensynsløs bruk av språkutvidelser fører til fullstendig avhengighet av applikasjonen av den spesifikke produsenten av databaseserveren.
La oss nå se hva som skjer på databaseserversiden. I produktene til nesten alle selskaper mottar serveren fra klienten teksten til setningen i SQL.
- Serveren kompilerer den mottatte operatøren. Vi skal ikke dvele her ved hvilket målspråk som brukes av en bestemt kompilator; ulike implementeringer bruker ulike tilnærminger (se del 4 for eksempler). Hovedsaken er at i alle fall, basert på informasjonen i databasekatalogtabellene, konverteres den ikke-prosedyremessige representasjonen av operatøren til en bestemt prosedyre for utførelse. Videre (hvis kompileringen ble fullført) blir setningen utført. Igjen, vi vil ikke diskutere tekniske detaljer da de er forskjellige i implementering. La oss vurdere de mulige handlingene til SQL-setningene.
- En operatør kan tilhøre klassen av operatører for å bestemme (eller lage) databaseobjekter (det ville vært mer nøyaktig og mer korrekt å snakke om elementer i et databaseskjema eller om metabaseobjekter). Spesielt kan domener, tabeller, integritetsbegrensninger, utløsere, brukerrettigheter, lagrede prosedyrer defineres. I alle fall, når setningen for å lage et databaseskjemaelement utføres, blir den tilsvarende informasjonen plassert i databasekatalogtabellene (i metabasetabellene). Integritetsbegrensninger lagres vanligvis i metabasen direkte i tekstrepresentasjon. For handlinger definert i utløsere og lagrede prosedyrer, genereres prosedyremessig kjørbar kode og lagres i katalogtabeller. Merk at integritetsbegrensninger, utløsere og lagrede prosedyrer på en måte er representative for en applikasjon i en serverstøttet database; de utgjør ryggraden i søknaden (se nedenfor). Når du utfører datavalgsetninger basert på innholdet i tabellene som påvirkes av spørringen og, muligens, ved bruk av indeksene som støttes i databasen, dannes det resulterende datasettet (vi bruker bevisst ikke begrepet "resultattabell" her, siden avhengig av på den spesifikke typen operatør kan resultatet sorteres, og tabeller, det vil si relasjoner er uordnet per definisjon). Serversiden av DBMS sender resultatet til klientsiden, og den endelige behandlingen gjøres på klientsiden av applikasjonen. Når du kjører operatører for å endre innholdet i databasen (INSERT, UPDATE, DELETE), kontrolleres det at integritetsbegrensningene definert på det tidspunktet (de som tilhører klassen av umiddelbart kontrollerbare) ikke vil bli brutt, hvoretter den passende handlingen er tatt (akkompagnert av endring av alle relevante indekser og logging endringer). Deretter sjekker serveren om denne endringen påvirker utløsertilstanden til en utløser, og hvis en slik utløser blir funnet, utfører den handlingsprosedyren. Denne prosedyren kan inkludere flere databasemodifikasjonssetninger som kan utløse andre utløsere osv. Du kan anta at handlingene som utføres på databaseserveren når du sjekker at integritetsbegrensninger er oppfylt og når utløsere utløses, er handlingene til applikasjonens backend. . .. Når du utfører setninger for endring av databaseskjemaer (legger til eller fjerner kolonner i eksisterende tabeller, endrer datatypen til en eksisterende kolonne i en eksisterende tabell, etc.) utløsere kan også utløses, det vil si at serversiden av applikasjonen kan kjøres med andre ord. På samme måte kan utløsere utløses når objekter i databaseskjemaet (domener, tabeller, integritetsbegrensninger osv.) blir ødelagt. En spesiell klasse av SQL-operatører består av operatører som kaller tidligere definerte lagrede prosedyrer lagret i databasen. Hvis en lagret prosedyre er definert ved bruk av et tilstrekkelig utviklet språk som inkluderer både ikke-prosedyremessige SQL-setninger og rene prosedyrekonstruksjoner (for eksempel Oracles PL / SQL-språk), kan en slik prosedyre inneholde en betydelig del av applikasjonen, som når prosedyrekall-setningen blir utført, vil bli utført på serversiden, ikke klientsiden. Når du utfører transaksjonsfullføringserklæringen, må serveren kontrollere samsvar med alle de såkalte utsatte integritetsbegrensningene (slike begrensninger inkluderer begrensninger pålagt innholdet i databasetabellen som helhet eller på flere tabeller samtidig; f.eks. totallønnen til avdelingsansatte 999 bør ikke overstige 150 millioner rubler .). Igjen kan det å se etter utsatte integritetsbegrensninger betraktes som å kjøre baksiden av applikasjonen.
Som du kan se, i en klient-server-organisasjon kan klienter være tynne nok, og serveren må være tykk nok til å kunne møte behovene til alle klienter (Figur 2.4).
Ris. 2.4. Tynn klient og fet server i klient-server-arkitektur
På den annen side er utviklere og brukere av informasjonssystemer basert på klient-server-arkitekturen ofte misfornøyde med de vedvarende nettverksoverheadkostnadene som følger av behovet for å gå fra klienten til serveren med hver påfølgende forespørsel. I praksis er situasjonen utbredt når det for effektiv drift av en separat klientkomponent i et informasjonssystem i realiteten bare kreves en liten del av den totale databasen. Dette fører til ideen om å opprettholde en lokal delt databasebuffer på klientsiden.
Faktisk er konseptet med lokal databasebufring et spesielt tilfelle av konseptet med replikerte (eller, som de noen ganger kalles i den russiskspråklige litteraturen, replikerte) databaser. Som i det generelle tilfellet, for å støtte den lokale databasebufferen, må arbeidsstasjonsprogramvaren inneholde en databasebehandlingskomponent - en forenklet versjon av databaseserveren som for eksempel ikke gir tilgang til flere brukere. Et eget problem er å sikre konsistensen (sammenhengen) av cacher og den felles databasen. Ulike løsninger er mulige her - fra automatisk vedlikehold av konsistens ved hjelp av grunnleggende datil fullstendig overføring av denne oppgaven til applikasjonslaget. Uansett blir klientene tykkere uten å gjøre serveren tynnere (Figur 2.5).
Ris. 2.5. Fet klient og fet server i klient-server-arkitektur med lokal cache-støtte på klientsiden
La oss formulere noen foreløpige konklusjoner. Klient-server-arkitekturen ser ved første øyekast ut til å være mye dyrere enn fil-server-arkitekturen. Kraftigere maskinvare kreves (i det minste for serveren) og mye mer avanserte databaseadministrasjonsverktøy. Dette er imidlertid bare delvis sant. En stor fordel med klient-server-arkitekturen er dens skalerbarhet og, generelt, evnen til å utvikle seg.
Når du utformer et informasjonssystem basert på denne arkitekturen, bør mer oppmerksomhet rettes mot leseferdigheten til generelle beslutninger. De tekniske midlene til pilotversjonen kan være minimale (for eksempel kan en av arbeidsstasjonene brukes som maskinvaregrunnlag for databaseserveren). Etter at piloten er opprettet, må det gjøres ytterligere forskning for å identifisere flaskehalser i systemet. Først etter det er det nødvendig å ta en beslutning om valg av servermaskinvare som skal brukes i praksis.
Økningen i omfanget av informasjonssystemet gir ikke opphav til grunnleggende problemer. Den vanlige løsningen er å erstatte servermaskinvaren (og kanskje arbeidsstasjonsmaskinvaren hvis en overgang til lokal databasebufring er nødvendig). Uansett er den anvendte delen av informasjonssystemet praktisk talt ikke berørt. Ideelt sett, som selvfølgelig ikke eksisterer, fortsetter informasjonssystemet å fungere normalt etter bytte av utstyr.
Hensikten med forelesningen: å vise hvordan de generelle prinsippene for klient-server-teknologier implementeres i webteknologier. Undersøk nøkkelelementene i den underliggende HTTP-protokollen.
Emnet for dette kurset er teknologiene til det globale nettverket World Wide Web (forkortet til WWW eller ganske enkelt Internett). På russisk er en vanlig variant navnet "Web".
Spesielt vil kurset dekke slike spørsmål som: grunnleggende standarder og protokoller for nettet, markup- og programmeringsspråk for nettsider, verktøy for å utvikle og administrere webinnhold og applikasjoner for nettet, verktøy for å integrere webinnhold og applikasjoner i nettet.
Nettverk Web er et globalt informasjonsrom basert på den fysiske infrastrukturen til Internett og HTTP-dataoverføringsprotokollen. Når vi snakker om Internett, mener de ofte nettverket. Web.
Klient-server-teknologier Web
Den grunnleggende protokollen til nettverket av hypertekstressurser Web er HTTP-protokollen. Det er basert på interaksjon " klient server", det vil si at det antas at:
Forbruker- kunde etter å ha startet en forbindelse med serverleverandøren, sender den en forespørsel til den;
Forsørger- server Etter å ha mottatt forespørselen, utfører den de nødvendige handlingene og returnerer et svar med resultatet tilbake til klienten.
I dette tilfellet er det to mulige måter å organisere arbeidet til klientdatamaskinen på:
Tynn klient er en klientdatamaskin som overfører alle informasjonsbehandlingsoppgaver til serveren. Et eksempel på en tynnklient er en datamaskin med en nettleser som brukes til å kjøre nettapplikasjoner.
Fet klient tvert imot behandler den informasjon uavhengig av serveren, og bruker sistnevnte hovedsakelig for lagring av data.
Før vi går videre til spesifikke klient-/serverwebteknologier, la oss se på det grunnleggende og strukturen til den underliggende HTTP-protokollen.
Http-protokoll
HTTP(HyperText Transfer Protocol - RFC 1945, RFC 2616) er en applikasjonslagsprotokoll for overføring av hypertekst.
Sentralt i HTTP er ressurs pekt på av URI i klientens forespørsel. Vanligvis er disse ressursene filer som er lagret på serveren. En funksjon ved HTTP-protokollen er muligheten til å spesifisere i en forespørsel og et svar en måte å representere den samme ressursen ved forskjellige parametere: format, koding, språk osv. Det er takket være muligheten til å spesifisere metoden for koding av en melding at klienten og serveren kan utveksle binære data, men i utgangspunktet er denne protokollen beregnet på å overføre symbolsk informasjon. Ved første øyekast kan dette virke som sløsing med ressurser. Faktisk tar data i symbolsk form mer minne, meldinger skaper en ekstra belastning på kommunikasjonskanaler, men dette formatet har mange fordeler. Meldingene som sendes over nettverket er lesbare, og ved å analysere de mottatte dataene kan systemadministratoren enkelt finne feilen og fikse den. Om nødvendig kan rollen til en av de interagerende applikasjonene utføres av en person, manuelt legge inn meldinger i det nødvendige formatet.
I motsetning til mange andre protokoller, er HTTP en minneløs protokoll. Dette betyr at protokollen ikke lagrer informasjon om tidligere klientforespørsler og serversvar. Komponenter som bruker HTTP kan uavhengig opprettholde tilstandsinformasjon knyttet til de siste forespørslene og svarene. For eksempel kan en nettklientapplikasjon som sender forespørsler spore svarforsinkelser, og en webserver kan lagre IP-adressene og forespørselshodene til nylige klienter.
All programvare for arbeid med HTTP-protokollen faller inn i tre hovedkategorier:
Servere- tilbydere av tjenester for lagring og behandling av informasjon (behandling av forespørsler).
Kunder- sluttforbrukere av servertjenester (sende forespørsler).
Proxy-servereå støtte arbeidet med transporttjenestene.
Det "klassiske" HTTP-øktskjemaet ser slik ut.
Etablere en TCP-tilkobling.
Kundeforespørsel.
Serverrespons.
Ødelagt TCP-tilkobling.
Dermed sender klienten en forespørsel til serveren, mottar et svar fra den, hvoretter interaksjonen avsluttes. Vanligvis er en klientforespørsel en forespørsel om å sende et HTML-dokument eller en annen ressurs, og serverens svar inneholder koden for den ressursen.
HTTP-forespørselen sendt fra en klient til en server inkluderer følgende komponenter.
Statuslinje (noen ganger brukes begrepene statuslinje eller spørringsstreng også for å betegne det).
Overskriftsfelt.
Tom linje.
Brødteksten i forespørselen.
Statuslinjen sammen med overskriftsfelt noen ganger også kalt forespørselsoverskrift.
Ris. 1.1. Struktur for klientforespørsel.
Statuslinjen har følgende format:
request_method url_pecypca nttp_protocol_version
La oss ta en titt på komponentene i statuslinjen, med fokus på spørringsmetoder.
Metode, spesifisert i statuslinjen, bestemmer hvordan ressursen skal påvirkes, hvis URL er spesifisert på samme linje. Metoden kan ta verdiene GET, POST, HEAD, PUT, DELETE, etc. Til tross for overfloden av metoder, er bare to av dem virkelig viktige for en webprogrammerer: GET og POST.
FÅ. I følge den formelle definisjonen er GET-metoden ment å få en ressurs med den angitte URL-en. Når serveren mottar en GET-forespørsel, må den lese den spesifiserte ressursen og inkludere ressurs-IDen i svaret til klienten. Ressursen hvis URL sendes som en del av forespørselen, trenger ikke å være en HTML-side, bildefil eller andre data. Ressurs-URLen kan peke til den kjørbare koden til programmet, som, hvis visse betingelser er oppfylt, må kjøres på serveren. I dette tilfellet er det ikke programkoden som returneres til klienten, men dataene som genereres under kjøringen. Mens GET-metoden per definisjon er ment for å hente informasjon, kan den også brukes til andre formål. GET-metoden er ganske egnet for å overføre små biter av data til serveren.
POST. I følge den samme formelle definisjonen er hovedformålet med POST-metoden å overføre data til serveren. I likhet med GET-metoden kan imidlertid POST-metoden brukes på forskjellige måter og brukes ofte til å hente informasjon fra en server. Som med GET-metoden, peker URL-en som er angitt i statuslinjen til en spesifikk ressurs. POST-metoden kan også brukes til å starte en prosess.
HEAD- og PUT-metodene er modifikasjoner av GET- og POST-metodene.
HTTP-protokollversjon er vanligvis gitt i følgende format:
Http / versjon.modifikasjon
Overskriftsfelt ved å følge statuslinjen kan du avgrense søket ditt, dvs. sende tilleggsinformasjon til serveren. Overskriftsfeltet har følgende format:
Feltnavn: Verdi
Formålet med et felt bestemmes av navnet, som er atskilt fra verdien med et kolon.
Navnene på noen av de vanligste overskriftsfeltene i en klientforespørsel og deres formål er oppgitt fanen. 1.1.
Tabell 1.1. HTTP-forespørselshodefelt. |
|
HTTP-forespørselshodefelt |
Betydning |
Domenenavn eller IP-adresse til verten som klienten har tilgang til |
|
URL-en til dokumentet som kobler til ressursen som er angitt i statuslinjen |
|
Klientens e-postadresse |
|
MIME-typer av data behandlet av klienten. Dette feltet kan ha flere verdier, atskilt fra hverandre med komma. Ofte brukes Accept header-feltet til å fortelle serveren hvilke typer grafikkfiler klienten støtter. |
|
Et sett med identifikatorer med to tegn, atskilt med kommaer, som angir språkene som støttes av klienten |
|
Liste over støttede tegnsett |
|
MIME-type data som finnes i forespørselsteksten (hvis forespørselen ikke består av en enkelt overskrift) |
|
Antall tegn i forespørselsteksten (hvis forespørselen ikke består av én overskrift) |
|
Tilstede dersom klienten ikke ber om hele dokumentet, men kun en del av det |
|
Brukes til å administrere TCP-tilkobling. Hvis feltet inneholder Close, betyr det at etter å ha behandlet forespørselen, bør serveren lukke forbindelsen. Keep-Alive-verdien antyder at du ikke lukker TCP-tilkoblingen slik at den kan brukes til påfølgende forespørsler |
|
Kundeinformasjon |
I mange tilfeller, når du arbeider på nettet, mangler forespørselsteksten. Når CGI-skript kjøres, kan dataene som sendes til dem i forespørselen, plasseres i forespørselens brødtekst.
Nedenfor er et eksempel på en HTML-forespørsel generert av nettleseren
FÅ http://oak.oakland.edu/ HTTP / 1.0
Tilkobling: Keep-Alive
Brukeragent: Mozilla / 4.04 (Win95; I)
Vert: oak.oakland.edu
Godta: bilde / gif, bilde / x-xbitmap, bilde / jpeg, bilde / pjpeg, bilde / png, * / *
Accept-Language: en
Accept-Charset: iso-8859-l, *, utf-8
Etter å ha mottatt en forespørsel fra klienten, må serveren svare på den. Kunnskap om strukturen til serverresponsen er nødvendig for utvikleren av webapplikasjoner, siden programmene som kjører på serveren uavhengig må danne svaret til klienten.
I likhet med klientens forespørsel har serverens svar også de fire komponentene som er oppført nedenfor.
Statuslinjen.
Overskriftsfelt.
Tom linje.
Responsorgan.
Serverens svar til klienten begynner med en statuslinje, som har følgende format:
Protocol_version Response_code Explanatory_message
Protocol_version er spesifisert i samme format som i klientforespørselen og har samme betydning.
Response_code er et tresifret desimaltall som kodet resultatet av å betjene forespørselen av serveren.
Forklarende_melding dupliserer svarkoden i symbolsk form. Dette er en tegnstreng som ikke behandles av klienten. Den er beregnet på systemadministratoren eller operatøren som vedlikeholder systemet, og er en dekryptering av svarkoden.
Av de tre sifrene som utgjør svarkoden, definerer den første (høyeste) svarklassen, de to andre representerer svarnummeret i klassen. Så, for eksempel, hvis forespørselen ble behandlet vellykket, mottar klienten følgende melding:
HTTP / 1.0 200 OK
Som du kan se, er versjonen av HTTP 1.0-protokollen etterfulgt av en kode 200. I denne koden betyr tegn 2 vellykket behandling av klientens forespørsel, og de resterende to sifrene (00) er nummeret til denne meldingen.
I for øyeblikket brukte HTTP-protokollimplementeringer kan ikke det første sifferet være større enn 5 og definerer følgende responsklasser.
1 - en spesiell klasse meldinger kalt informative. En svarkode som starter med 1 betyr at serveren fortsetter å behandle forespørselen. Når du utveksler data mellom en HTTP-klient og en HTTP-server, brukes sjelden meldinger av denne klassen.
2 - vellykket behandling av kundens forespørsel.
3 - be om omdirigering. Ytterligere skritt må tas for å betjene forespørselen.
4 - klientfeil. Vanligvis returneres en svarkode som starter med tallet 4 hvis det oppstår en syntaksfeil i klientens forespørsel.
5 - serverfeil. Av en eller annen grunn kan ikke serveren oppfylle forespørselen.
Eksempler på svarkoder som klienten kan motta fra serveren, og forklarende meldinger er gitt i tabell. 1.2.
Tabell 1.2. Serverresponskodeklasser. |
||
Dekryptering |
Tolkning |
|
En del av forespørselen er akseptert og serveren venter på at klienten skal fortsette forespørselen. |
||
Forespørselen har blitt behandlet, og dataene spesifisert i forespørselen overføres i klientens svar |
||
Som et resultat av behandlingen av forespørselen ble det opprettet en ny ressurs |
||
Forespørselen har blitt akseptert av serveren, men behandlingen er ikke fullført. Denne svarkoden garanterer ikke at forespørselen vil bli behandlet uten feil. |
||
Delvis innhold |
Serveren returnerer en del av ressursen som svar på en forespørsel som inneholder et områdeoverskriftsfelt |
|
Flervalg |
Forespørselen peker på mer enn én ressurs. Brødteksten i svaret kan inneholde instruksjoner om hvordan du korrekt identifiserer den forespurte ressursen. |
|
flyttet permanent |
Den forespurte ressursen finnes ikke lenger på serveren |
|
Flyttet midlertidig |
Den forespurte ressursen har midlertidig endret adresse |
|
Syntaksfeil funnet i klientforespørsel |
||
Ressursen på serveren er ikke tilgjengelig for denne brukeren |
||
Ressursen spesifisert av klienten mangler på serveren |
||
Metode ikke tillatt |
Serveren støtter ikke metoden spesifisert i forespørselen |
|
intern server feil |
En av serverkomponentene fungerer ikke som de skal |
|
Ikke implementert |
Serverfunksjonaliteten er utilstrekkelig til å oppfylle klientforespørselen |
|
Tjenesten utilgjengelig |
Tjenesten er midlertidig utilgjengelig |
|
HTTP-versjon støttes ikke |
HTTP-versjonen som er spesifisert i forespørselen, støttes ikke av serveren |
Svaret bruker samme overskriftsfeltstruktur som klientforespørselen. Overskriftsfelt er ment å tydeliggjøre serverens svar til klienten. En beskrivelse av noen av feltene som finnes i serversvarhodet er gitt i tabellen. 1.3.
Tabell 1.3. Overskriftsfelt for webserversvar. |
|
Feltnavn |
Innholdsbeskrivelse |
Servernavn og versjonsnummer |
|
Tiden i sekunder som har gått siden ressursen ble opprettet |
|
Liste over metoder som er tillatt for denne ressursen |
|
Innhold-språk |
Språk som klienten må støtte for å kunne vise den overførte ressursen riktig |
MIME-type data som finnes i brødteksten til serversvaret |
|
Antall tegn i brødteksten til serversvaret |
|
Dato og klokkeslett ressursen sist ble endret |
|
Dato og klokkeslett som bestemmer når svaret genereres |
|
Dato og klokkeslett som definerer det øyeblikket etter hvilket informasjonen som sendes til klienten anses som utdatert |
|
Dette feltet angir den faktiske plasseringen av ressursen. Den brukes til å omdirigere forespørselen. |
|
Caching kontroll direktiver. For eksempel betyr no-cache at data ikke skal bufres |
Brødteksten i svaret inneholder koden til ressursen som ble sendt til klienten som svar på forespørselen. Det trenger ikke å være HTML-teksten til nettsiden. Som en del av svaret kan et bilde, en lydfil, et stykke videoinformasjon, samt alle andre typer data som støttes av klienten, overføres. Innholdet i feltet Innholdstype-overskrift forteller klienten hvordan den mottatte ressursen skal håndteres.
Nedenfor er et eksempel på et serversvar på forespørselen gitt i forrige seksjon. Brødteksten i svaret inneholder den originale teksten til HTML-dokumentet.
Server: Microsoft-IIS / 5.1
X-Powered-By: ASP.NET
Innholdstype: tekst / html
Godta-områder: bytes
ETag: "b66a667f948c92: 8a5"
Innhold-lengde: 426
Klient-server-teknologier
Nesten alle modeller for organisering av brukerinteraksjon med en database er basert på klient-server-teknologi. Det antas at hver slik applikasjon er forskjellig når det gjelder distribusjon av funksjoner: klientdelen er ansvarlig for målrettet behandling av data og organisering av interaksjon med brukeren, serverdelen gir datalagring - behandler forespørsler og sender resultatene til klienten for spesialbehandling. En typisk arkitektur for klient-server-teknologi er vist i fig. 4.1:
Ris. 4.1. Typisk arkitektur for klient-server-teknologi
Noen av funksjonene til de sentrale datamaskinene ble overtatt av lokale datamaskiner. I dette tilfellet er enhver programvareapplikasjon representert av tre komponenter: en presentasjonskomponent som implementerer et grensesnitt med brukeren; en applikasjonskomponent som gir implementering av applikasjonsfunksjoner; komponent av tilgang til informasjonsressurser (ressursansvarlig), utføre informasjonsakkumulering og datahåndtering.
Basert på fordelingen av disse komponentene mellom en arbeidsstasjon og en nettverksserver, skilles følgende modeller av "klient-server"-arkitekturen:
· Modell for tilgang til eksterne data (fig. 4.2). Serveren inneholder kun data:
Ris. 4.2. Modell for ekstern datatilgang
Denne modellen er preget av lav ytelse, siden all informasjon behandles på arbeidsstasjoner; i tillegg støttes en lav valutakurs ved overføring av store mengder informasjon fra en server til arbeidsstasjoner;
Databehandlingsservermodell (fig. 4.3):
Ris. 4.3. Data Management Server Modell
Funksjoner ved denne modellen: reduksjon av mengden informasjon som overføres over nettverket, siden valget av nødvendige informasjonselementer utføres på serveren, og ikke på arbeidsstasjoner; forening og et bredt spekter av verktøy for å lage applikasjoner; mangelen på et klart skille mellom presentasjonskomponenten og applikasjonskomponenten, noe som gjør det vanskelig å forbedre datasystemet. Det er tilrådelig å bruke ved behandling av moderate mengder informasjon, mens kompleksiteten til den anvendte komponenten bør være lav,
· Modell av en kompleks server (fig. 4.4):
Ris. 4.4. Kompleks servermodell
Fordeler med modellen: høy ytelse, sentralisert administrasjon, sparer nettverksressurser. En slik server er optimal for store nettverk fokusert på å behandle store og økende informasjonsmengder over tid;
· Tre-lags arkitektur "klient-server" (fig. 4.5). Den brukes når du kompliserer og øker ressursintensiteten til applikasjonskomponenten.
Ris. 4.5. Tre-lags arkitektur
Flere applikasjonsfunksjoner kan implementeres i applikasjonsserveren, som hver er utformet som en egen tjeneste som gir noen tjenester til alle programmer. Det kan være flere slike servere, hver av dem er fokusert på å tilby et visst sett med tjenester. Denne arkitekturen er basert på ytterligere spesialisering av arkitekturkomponenter: klienten er kun opptatt av å organisere grensesnittet med brukeren, databaseserveren utfører kun standard databehandling, for å implementere databehandlingslogikken, arkitekturen gir et eget lag - et lag med forretningslogikk, kan det enten være en dedikert server (applikasjonsserver ), eller vert på klienten som et bibliotek.
Innenfor klient-server-arkitekturen er det to grunnleggende konsepter:
· "Tynn klient. En kraftig databaseserver og et bibliotek med lagrede prosedyrer brukes til å gjøre beregninger som implementerer hovedlogikken til databehandling direkte på serveren. Klientapplikasjonen stiller derfor lave krav til maskinvaren til arbeidsstasjonen;
· En "feit" klient implementerer hovedprosesseringslogikken på klienten, og serveren er en ren databaseserver, som sikrer kjøring av kun standardforespørsler for datamanipulering (som regel lesing, skriving, modifisering av data i relasjonsdatabasetabeller) .
Nettverksbasert IT
E-post... Den aller første, denne formen for elektroniske meldinger (e-post), demonstrerte selve muligheten for nesten umiddelbar kommunikasjon gjennom datanettverk. Arkitektonisk ment for utveksling av meldinger mellom to abonnenter, tillot det grupper av mennesker å utveksle informasjon. Grupper eller e-postlister ble en slik modifikasjon. Med e-postprogramvare kan du opprette og legge ved e-postmeldinger. Vedleggsfunksjonen brukes til å sende dokumenter av enhver type med post, for eksempel tekstdokumenter, regneark, multimediefiler, databasefiler, etc. Senere utviklet tekstfiltreringsprogramvare utvidet mulighetene til e-post for å hjelpe brukeren med å strukturere, dirigere og filtrere meldinger. Behovet for disse tjenestene skyldes at mengden post, som nesten eller ikke er nødvendig for brukeren (Spam), stadig øker. Filtreringsprogramvaren kan sørge for at kun personlige meldinger som inneholder nyheter som er viktige for dem, leveres til brukerne, og hjelper også med å finne informasjon som brukerne trenger i beslutningsprosessen.
Nyhetsgrupper eller nyhetsgrupper... Telekonferanser er neste trinn i utviklingen av kommunikasjonssystemer. Funksjonene deres var for det første å lagre meldinger og gi interesserte parter tilgang til hele utvekslingshistorien, og for det andre ulike metoder for tematisk gruppering av meldinger. Slike konferansesystemer gir en mulighet for en gruppe fellesarbeidende, men geografisk adskilte mennesker til å utveksle meninger, ideer eller informasjon på nettet når de diskuterer ethvert problem, og overvinne tidsmessige og romlige barrierer. I dag finnes det mange typer konferansesystemer, inkludert datakonferanser (møter som holdes på e-post), konferansesamtaler med mulighet for å koble til mobile innringere, konferanser ved hjelp av stasjonære PC-er, multimedia, telekonferanser og videokonferanser.
Interaktiv kommunikasjon(chatter). Med utviklingen av telekommunikasjon begynner et økende antall brukere å jobbe på Internett i en permanent tilstedeværelsesmodus, derfor har en sanntidskommunikasjonstjeneste dukket opp når en abonnent mottar en melding innen kort tid etter at den ble sendt av en samtalepartner.
De vanligste moderne måtene for interaktiv kommunikasjon er nettapplikasjoner som støtter følgende former for organisering av kommunikasjon:
o Gjestebøker. Den første og enkleste formen. Den enkleste gjesteboken er en liste over meldinger vist fra den siste til den første, og hver av dem ble lagt igjen i den av en besøkende.
o Forum... De første forumene dukket opp som en forbedring av gjestebøker og organiserte innlegg i grener - omtrent som nyhetsgrupper. Brukerinnlegg i forum er gruppert etter emner, som vanligvis settes av de første innleggene. Alle besøkende kan se emnet og legge ut budskapet sitt – som svar på de som allerede er skrevet. Emner er gruppert i tematiske fora, systemet administreres av uformelle administratorer og moderatorer. De mest utviklede foraene begynner å ha de første tegnene på sosiale nettverk - langsiktige sosiale bånd av interesse kan etableres mellom deltakerne.
o Blogger(Web-logg - Web-logg, Web-protokoll). I disse tjenestene fører hver deltaker sin egen journal - legger igjen journaler i kronologisk rekkefølge. Innleggsemner kan være hva som helst, den vanligste tilnærmingen er blogging som din egen dagbok. Andre besøkende kan legge igjen kommentarer på disse innleggene. I dette tilfellet får brukeren, i tillegg til å kunne føre sin egen journal, muligheten til å organisere en listevisning - en liste over oppføringer fra "venner"-journaler, regulere tilgangen til oppføringer, og lete etter samtalepartnere etter interesser. På grunnlag av slike systemer skapes interessefellesskap – journaler som føres samlet. I et slikt fellesskap kan medlemmene fritt legge ut en melding om retningen for fellesskapets aktiviteter.
Generelt har alle moderne systemer for å sikre arbeidet til nettverkssamfunn flere fellestrekk:
· De aller fleste fellesskap sørger for brukerregistrering, d.v.s. det må opprettes en konto for hver deltaker. Ved registrering oppgir brukeren noe informasjon om seg selv for identifikasjon. Nesten alle systemer krever at du oppgir en e-postadresse og sjekker funksjonaliteten ved å sende en e-post med en kontoaktiveringskode. Hvis adressen er feil, kan bare systemadministratoren aktivere oppføringen. Denne tilnærmingen garanterer til en viss grad deltakerens unike karakter og identifiserbarhet.
· Arbeid i miljøet utføres i økter. Hver økt begynner med at brukeren skriver inn navnet sitt og bekrefter identiteten sin ved å skrive inn et passord. For enkelhets skyld er deltakelsesøkten vanligvis skjult for brukeren med tekniske midler, men ikke desto mindre skjer identifiseringen av brukeren konstant.
I tillegg til legitimasjon, konfigurerer brukeren miljøet - utseende, tilleggsdata om seg selv, indikerer hans interesser, ønskede kontakter, emner for kommunikasjon, etc.
· Sosiale nettverk og tjenestene som støtter dem har vist seg å være en ekstremt effektiv metode for å sikre nettstedtrafikk, tilbakemeldinger, de ble gradvis et av virkemidlene for å fylle nettstedets innhold med innhold som har reell kommersiell og sosial verdi.
Basert på den sistnevnte tilnærmingen dukket det opp et ganske stort antall sosiale netttjenester og ble raskt populære, samlet kalt Web 2.0-tjenester. Noen av disse ressursene kan spesifiseres:
o Sosiale bokmerker... Noen nettsteder lar brukere dele en liste over bokmerker eller populære nettsteder med andre. Slike nettsteder kan også brukes til å finne brukere med en felles interesse. Eksempel: Deilig.
o Sosiale kataloger minner om sosiale bokmerker, men fokuserte på akademisk bruk, slik at brukerne kan jobbe med en database med sitater fra vitenskapelige artikler. Eksempler: Academic Search Premier, LexisNexis Academic University, CiteULike, Connotea.
o Sosiale biblioteker er applikasjoner som lar besøkende legge igjen lenker til sine samlinger, bøker, lydopptak tilgjengelig for andre. Støtte for et system med anbefalinger og rangeringer er gitt. Eksempler: discogs.com, IMDb.com.
o Multiplayer online spill simuler virtuelle verdener med forskjellige poengsystemer, nivåer, konkurranse, vinnere og tapere. Eksempel: World of Warcraft.
o Flerspråklige sosiale nettverk lar deg etablere sosiale bånd mellom mennesker som snakker forskjellige språk. Samtidig brukes spesiell programvare som lar deg oversette fraser fra ett språk til et annet i sanntid. Eksempler: Dudu.
o Geososiale nettverk danne sosiale forbindelser basert på brukerens geografiske plassering. Samtidig brukes ulike geolokaliseringsverktøy (for eksempel GPS eller hybridsystemer som AlterGeo-teknologi), som gjør det mulig å bestemme gjeldende plassering av en bestemt bruker og korrelere hans posisjon i rommet med plasseringen til ulike steder og folk rundt.
o Profesjonelle sosiale nettverk er laget for kommunikasjon om faglige temaer, erfarings- og informasjonsutveksling, søk og tilbud om ledige stillinger, utvikling av forretningsmessige bånd. Eksempler: Doctor at work, Professionals.ru, MyStarWay.com, LinkedIn, MarketingPeople, Viadeo.
o Tjeneste sosiale nettverk tillate brukere å forene seg på nettet rundt sine felles interesser, hobbyer eller av ulike grunner. Noen nettsteder tilbyr for eksempel tjenester der brukere kan dele personlig informasjon som er nødvendig for å finne partnere. Eksempler: LinkedIn, VKontakte.
o Kommersielle sosiale medier fokusert på å støtte forretningstransaksjoner og bygge folks tillit til merkevarer basert på å ta hensyn til deres meninger om produktet, og dermed la forbrukere delta i å markedsføre produktet og øke deres bevissthet.