Klient-server-arkitektur på flere niveauer. Informationssystemarkitektur

Som regel er computere og programmer, der indgår i et informationssystem, ikke lige. Nogle af dem ejer ressourcer (filsystem, processor, printer, database osv.), andre har mulighed for at få adgang til disse ressourcer. Computeren (eller programmet), der administrerer en ressource, kaldes den pågældende ressources server (filserver, databaseserver, computerserver...). En ressources klient og server kan være placeret enten på den samme computer eller på forskellige computere, der er forbundet med et netværk.

Inden for en multi-level view computersystemer Der kan skelnes mellem tre grupper af funktioner, der fokuserer på at løse forskellige delopgaver:

  1. datainput og visningsfunktioner (giver brugerinteraktion);
  2. applikationsfunktioner, der er specifikke for dette emneområde;
  3. ressourcestyringsfunktioner (filsystem, database osv.)

Fig.1. Netværksapplikationskomponenter

Implementeringen af ​​disse funktioner leveres hovedsageligt af software, som kan repræsenteres i form af sammenkoblede komponenter (), hvor:

  • visningskomponent ansvarlig for brugergrænsefladen;
  • applikationskomponent implementerer en algoritme til at løse et specifikt problem;
  • kontrol komponent ressource giver adgang til nødvendige ressourcer.

Et selvstændigt system (en computer, der ikke er tilsluttet et netværk) repræsenterer alle disse komponenter som forskellige niveauer(OS, hjælpeprogrammer og hjælpeprogrammer, applikationssoftware) og på applikationsniveau (ikke typisk for moderne programmer). Netværket er det samme - det repræsenterer alle disse komponenter, men generelt fordelt mellem noder. Opgaven handler om at sikre netværksinteraktion mellem disse komponenter.

Klient-server arkitektur definerer de generelle principper for at organisere interaktion i et netværk, hvor der er servere, noder, der leverer nogle specifikke funktioner (tjenester) og klienter, forbrugere af disse funktioner.

Praktiske implementeringer af en sådan arkitektur kaldes klient-server teknologier. Hver teknologi definerer sin egen eller bruger eksisterende regler for interaktion mellem klient og server, som kaldes udvekslingsprotokol (interaktionsprotokol).

I ethvert netværk (selv peer-to-peer), bygget på moderne netværksteknologier, er der elementer af klient-server-interaktion, oftest baseret på to-lags arkitektur. Det kaldes to-lags (to-lag, 2-lag) på grund af behovet for distribution tre grundlæggende komponenter mellem to noder(klient og server).

Fig.2. To-lags klient-server-arkitektur

En to-lags arkitektur bruges i klient-server-systemer, hvor serveren reagerer på klientanmodninger direkte og fuldt ud ved kun at bruge sine egne ressourcer. De der. serveren kalder ikke tredjeparts netværksapplikationer og har ikke adgang tredjeparts ressourcer at udføre enhver del af anmodningen ()

Placeringen af ​​komponenter på klient- eller serversiden bestemmer følgende grundlæggende modeller for deres interaktion inden for en to-lags arkitektur:

  • terminalserver— distribueret datapræsentation;
  • filserver— adgang til en fjerndatabase og filressourcer;
  • database server— fjernpræsentation af data;
  • applikationsserver- fjernapplikation.

De anførte modeller med variationer er præsenteret på.

Fig.3. Klient-server interaktionsmodeller

Historisk set var modellen for distribueret datapræsentation (terminalservermodel) den første, der dukkede op. Det blev implementeret på en universel computer (mainframe), der fungerede som en server, med alfanumeriske terminaler forbundet til den. Brugere indtastede data fra terminaltastaturet, som derefter blev overført til mainframen og behandlet der, inklusive dannelsen af ​​et "billede" af resultaterne. Dette "billede" blev returneret til brugeren på terminalskærmen.

Med fremkomsten af ​​personlige computere og lokale netværk blev en filservermodel implementeret, som gav adgang til filressourcer, herunder en fjerndatabase. I dette tilfælde er den dedikerede netværksknude filserver, som er vært for databasefilerne. Klienter kører applikationer, der kombinerer en præsentationskomponent og en applikationskomponent (DBMS og applikationsprogram), ved hjælp af den tilsluttede fjerndatabase som en lokal fil. I dette tilfælde repræsenterer udvekslingsprotokoller et sæt lavniveaukald til filsystemoperationer.

Denne model har vist sig at være ineffektiv på grund af det faktum, at når man aktivt arbejder med databasetabeller, er der stor belastning på netværket. En delvis løsning er at understøtte replikering af tabeller og forespørgsler. I dette tilfælde, for eksempel, når data ændres, opdateres ikke hele tabellen, men kun dens ændrede del.

Med fremkomsten af ​​specialiserede DBMS'er blev det muligt at implementere en anden model for adgang til en fjerndatabase - databaseservermodellen. I dette tilfælde fungerer DBMS-kernen på serveren, ansøgningsprogram på klienten, og kommunikationsprotokollen leveres ved hjælp af SQL-sproget. Denne tilgang, sammenlignet med en filserver, fører til en reduktion i netværksbelastning og ensretning af klient-server-grænsefladen. Netværkstrafikken er dog stadig ret høj, og det er stadig umuligt at administrere applikationer tilfredsstillende, da forskellige funktioner er kombineret i et program.

Med udviklingen og implementeringen af ​​den lagrede procedure-mekanisme på databaseserver-niveau, er begrebet aktiv databaseserver. I dette tilfælde implementeres nogle af funktionerne i applikationskomponenten i form af lagrede procedurer, der udføres på serversiden. Resten af ​​applikationslogikken udføres på klientsiden. Interaktionsprotokollen er den tilsvarende dialekt af SQL-sproget.

Fordelene ved denne tilgang er indlysende:

  • centraliseret administration af applikationsfunktioner er mulig;
  • at reducere omkostningerne ved systemejerskab (TOC, total cost of ownership) ved at leje en server i stedet for at købe den;
  • betydelig reduktion netværkstrafik(da det ikke er SQL-forespørgsler, der transmitteres, men kalder til lagrede procedurer).

Den største ulempe er de begrænsede værktøjer til at udvikle lagrede procedurer sammenlignet med sprog på højt niveau.

Implementeringen af ​​en applikationskomponent på serversiden repræsenterer følgende model - en applikationsserver. Flytning af apptil serveren reducerer klientkonfigurationskravene og forenkler administrationen, men stiller øgede krav til serverens ydeevne, sikkerhed og pålidelighed.

I øjeblikket er der en tendens til at vende tilbage til hvor klient-server-arkitekturen begyndte - at centralisere databehandling baseret på terminal-server-modellen. I deres moderne reinkarnation adskiller terminaler sig fra deres alfanumeriske forfædre ved, at de med et minimum af software og hardware giver multimediefunktioner (inkl. grafisk brugerflade). Driften af ​​terminalerne sikres af en højtydende server, hvor alt er placeret, op til virtuelle drivere enheder, herunder video-undersystemdrivere.

Fig.4. Tre-lags klient-server-arkitektur

En anden trend inden for klient-server-teknologier er relateret til alt stor brug distribueret databehandling. De implementeres baseret på applikationsservermodellen, hvor netværksapplikationen er opdelt i to eller flere dele, som hver kan udføres på en separat computer. Dedikerede dele af applikationen kommunikerer med hinanden og udveksler beskeder i et på forhånd aftalt format. I dette tilfælde bliver den to-lags klient-server-arkitektur tre-lags (tre-lag, 3-lag).

Som regel er det tredje led i en trelagsarkitektur applikationsserveren, dvs. komponenter er fordelt som følger ():

  1. Datapræsentation er på klientsiden.
  2. Applikationskomponent - på en dedikeret applikationsserver (valgfrit udfører funktionerne som middleware).
  3. Ressourcestyring - på databaseserveren, som leverer de ønskede data.

Fig.5. Multi-tier (N-tier) klient-server-arkitektur

Den tre-lags arkitektur kan udvides til multi-tier (N-tier, Multi-tier) ved at allokere yderligere servere, som hver vil repræsentere egne tjenester og bruge andre serveres tjenester forskellige niveauer. Et abstrakt eksempel på en multi-link model er givet på.

Sammenligning af arkitekturer

To-tier arkitekturen er enklere, da alle forespørgsler betjenes af én server, men netop derfor er den mindre pålidelig og stiller højere krav til serverens ydeevne.

Trelagsarkitekturen er mere kompleks, men på grund af det faktum, at funktioner er fordelt mellem servere på andet og tredje niveau, repræsenterer denne arkitektur:

  1. Høj grad af fleksibilitet og skalerbarhed.
  2. Høj sikkerhed (da sikkerhed kan defineres for hver tjeneste eller niveau).
  3. Høj ydeevne (da opgaverne er fordelt mellem servere).

Klient-server teknologier

Klient-server-arkitektur bruges i stort antal netværksteknologier, der bruges til at få adgang til forskellige netværkstjenester. Lad os kort se på nogle typer af sådanne tjenester (og servere).

Webservere I første omgang gav de adgang til hypertekstdokumenter via HTTP (Huper Text Transfer Protocol). Nu understøtter de avancerede funktioner, især arbejde med binære filer(billeder, multimedier osv.). Applikationsservere Designet til centraliseret løsning af anvendte problemer inden for et bestemt fagområde. For at gøre dette har brugerne ret køre serverprogrammer til udførelse. Brug af applikationsservere reducerer klientkonfigurationskravene og forenkler generel ledelse netværk. Database servere Databaseservere bruges til at behandle brugerforespørgsler i SQL-sprog. I dette tilfælde er DBMS placeret på serveren, som klientapplikationerne forbinder til. Filservere Filserver butikker oplysninger i form af filer og giver brugerne adgang til dem. Som regel giver en filserver også et vist niveau af beskyttelse mod uautoriseret adgang. Proxyserver For det første fungerer det som en mellemmand, der hjælper brugere med at få oplysninger fra internettet, mens de beskytter netværket. For det andet gemmer den ofte adgang til information i cachehukommelsen lokal disk, der hurtigt leverer det til brugerne uden at skulle få adgang til internettet igen. Firewalls(firewalls) Firewalls, analysere og filtrere forbigående netværkstrafik for at sikre netværkssikkerhed. Mail-servere Levere tjenester til afsendelse og modtagelse af elektroniske postbeskeder. Servere fjernadgang(RAS) Disse systemer giver forbindelse til netværket via opkaldslinjer. En fjernmedarbejder kan bruge ressourcerne i et virksomheds-LAN ved at oprette forbindelse til det ved hjælp af et almindeligt modem.

Dette er blot nogle få typer fra hele sorten. klient-server teknologier, brugt i både lokale og globale netværk.

For at få adgang til visse netværkstjenester bruges klienter, hvis muligheder er karakteriseret ved begrebet "tykkelse". Det bestemmer hardwarekonfigurationen og softwaren, der er tilgængelig for klienten. Lad os overveje mulige grænseværdier:

"Tynd" klient Dette udtryk definerer en klient, hvis computerressourcer kun er tilstrækkelige til at køre den nødvendige netværksapplikation gennem en webgrænseflade. Brugergrænsefladen for en sådan applikation er dannet ved hjælp af midler statisk HTML ( JavaScript udførelse ikke leveret), udføres al applikationslogik på serveren.
For at den tynde klient skal fungere, er det nok bare at give mulighed for at starte en webbrowser, i hvis vindue alle handlinger udføres. Af denne grund kaldes en webbrowser ofte for en "universel klient". "Fed" klient Dette er hvad det er arbejdsstation eller en personlig computer, der kører sit eget diskoperativsystem og har det nødvendige sæt software. Tykke klienter får adgang til netværksservere hovedsageligt for yderligere tjenester(f.eks. adgang til en webserver eller virksomhedsdatabase).
En "tyk" klient betyder også en klientnetværksapplikation, der kører under det lokale OS. En sådan applikation kombinerer en datapræsentationskomponent (OS grafisk brugergrænseflade) og en applikationskomponent (klientcomputerens computerkraft).

For nylig er et andet udtryk blevet brugt i stigende grad: "rig"-klient. Den "rige" klient er en slags kompromis mellem de "tykke" og "tynde" klienter. Ligesom den tynde klient repræsenterer den rige klient også GUI, allerede beskrevet ved hjælp af XML og inkluderer nogle omfattende klientfunktioner (f.eks. træk-og-slip-grænseflade, faner, flere vinduer, rullemenuer osv.)

Applikationslogikken for den "rige" klient er også implementeret på serveren. Data sendes til standard format udveksling, baseret på den samme XML (SOAP, XML-RPC protokoller) og fortolket af klienten.

Nogle grundlæggende XML-baserede rich client-protokoller er angivet nedenfor:

  • XAML (eXtensible Application Markup Language) - udviklet af Microsoft, brugt i applikationer på .NET-platformen;
  • XUL (XML User Interface Language) er en standard udviklet af Mozilla-projektet, brugt f.eks mail klient Mozilla Thunderbird eller Mozilla Firefox browser;
  • Flex - multimedieteknologiXML baseret, udviklet af Macromedia/Adobe.

Konklusion

Så, Hovedideen med klient-server-arkitekturen er at opdele netværksapplikationen i flere komponenter, som hver implementerer et specifikt sæt tjenester. Komponenterne i en sådan applikation kan køre på forskellige computere, udfører server- og/eller klientfunktioner. Dette forbedrer pålideligheden, sikkerheden og ydeevnen af ​​netværksapplikationer og netværket som helhed.

Kontrolspørgsmål

  1. Hvad er hovedideen med C-S interaktion?
  2. Hvad er forskellen mellem begreberne "klient-server-arkitektur" og "klient-server-teknologi"?
  3. Liste komponenter K-S interaktioner.
  4. Hvilke opgaver udfører præsentationskomponenten i KS-arkitekturen?
  5. Til hvilket formål præsenteres værktøjer til databaseadgang som en separat komponent i KS-arkitekturen?
  6. Hvorfor fremhæves forretningslogik som en separat komponent i KS-arkitekturen?
  7. Angiv modellerne for klient-server-interaktion.
  8. Beskriv filservermodellen.
  9. Beskriv databaseservermodellen.
  10. Beskriv "applikationsserver"-modellen
  11. Beskriv terminalservermodellen
  12. Liste over hovedtyperne af servere.

Permanent adresse på denne side:

Brugerforberedelse

Beskyttelse

Serverkrav

Delte ressourcer

I et peer-to-peer-netværk skal hver computer:

· skaffe de fleste af dine computerressourcer lokal bruger(til den person, der sidder ved denne computer);

· For at understøtte adgang til ressourcer for en fjernbruger (adgang til serveren over netværket), tilslut yderligere computerressourcer.

Serverbaseret netværk kræver mere kraftfulde servere, da de skal håndtere anmodninger fra alle klienter på netværket.

Grundlæggende beskyttelse involverer indstilling af en adgangskode til en delt ressource, såsom en mappe. Det er meget svært at administrere sikkerheden centralt i et peer-to-peer-netværk, da hver bruger installerer det uafhængigt, og "delte" ressourcer kan findes på alle computere og ikke kun på den centrale server. Denne situation udgør en alvorlig trussel mod hele netværket, og nogle brugere installerer muligvis slet ikke beskyttelse. Hvis privatlivsproblemer er af fundamental betydning for dig, anbefaler vi at vælge et serverbaseret netværk.

Fordi i et peer-to-peer-netværk fungerer hver computer som både en klient og en server, skal brugerne have tilstrækkelig viden til at fungere som både brugere og administratorer af deres computer.

Emne 5.2. Netværks OS. Klient-server

Klient-server(Client-server) - en computer- eller netværksarkitektur, hvor opgaver eller netværksbelastning er fordelt mellem tjenesteudbydere, kaldet servere, og tjenestekunder, kaldet klienter. Ofte kommunikerer klienter og servere over et computernetværk og kan enten være forskellige fysiske enheder eller software.

Multi-level klient-server-arkitektur er en type klient-server-arkitektur, hvor databehandlingsfunktionen udføres på en eller flere separate servere. Dette giver dig mulighed for at adskille funktionerne til lagring, behandling og præsentation af data for mere effektiv brug servere og klienters muligheder.

Særlige tilfælde af multi-level arkitektur:

· Tre-lags arkitektur

· Dedikeret servernetværk

· Et netværk med en dedikeret server (engelsk klient/server-netværk) er et lokalt computer netværk(LAN), hvori netværksenheder centraliseret og administreret af en eller flere servere. Individuelle arbejdsstationer eller klienter (såsom pc'er) skal få adgang til netværksressourcer via server(e).

Netværksoperativsystem- et operativsystem med indbyggede muligheder for at arbejde i computernetværk. Sådanne muligheder omfatter:

· support netværksudstyr

· support netværksprotokoller

· understøttelse af routingprotokoller

· understøttelse af filtrering af netværkstrafik

· støtte til adgang til fjernressourcer såsom printere, diske osv. over et netværk

Tilgængelighed i systemet netværkstjenester giver fjernbrugere mulighed for at bruge computerressourcer

Eksempler på netværksoperativsystemer:

Novell NetWare

· Microsoft Windows (95, NT, XP, Vista, Seven)

· Forskellige UNIX systemer, såsom Solaris, FreeBSD

· Forskellige GNU/Linux-systemer

ZyNOS fra ZyXEL

Moderne netværksoperativsystemer (UNIX, WIN2000, NOWELL NW) implementerer den fulde protokolstak af OSI-modellen. UNIX understøtter således en protokolstak (TCP/IP, NW LINK, NET BIOS). Nowell NW understøtter IPX/SPX-protokolstakken Apple Mac bruger sit eget sæt protokoller.

Uanset producenten udfører alle netværksoperativsystemer følgende funktioner:

1. Fordeling af funktioner mellem netværksknuder (klienter og servere);

2. Understøttelse af kommunikationsprotokoller;

3. Understøttelse af netværksfilsystem;

4. Databeskyttelse.

Alle netværksoperativsystemer kan opdeles i 2 typer:

1. Peer-to-peer eller peer-to-peer netværk (hver af hver). Eksempel Windows 9x;

2. Netværk baseret på en dedikeret server.

K1. I et peer-to-peer-netværk har alle pc'er lige rettigheder, men der er også klienter og servere i netværket. Typisk kan hver pc skiftes til servertilstand, hvis brugeren ønsker det (en delt ressource tildeles).

Peer-to-peer netværk OS mangler pålidelig ydeevne og sikkerhed. Anvendes på netværket når der er 10-15 stk. Et eksempel på et peer-to-peer-netværk er Win94/98/OS/2/LANtastic

K2. I dette netværk er der altid en hoved-pc - en server, som er specielt optimeret til hurtig behandling af anmodninger fra mange klienter (ca. -100) og til at styre beskyttelsen af ​​filer og mapper. I store netværk skille sig ud separate servere Til individuelle ansøgninger(WEB – server, Fil – server, Print – server, DB server og mail server)

Serversoftwaren er meget sofistikeret, pålidelig og effektiv. Det kan fungere på forskellige platforme.

Forskellige OS – Unix, Win 2000Server, NovellNetWare

Klientsoftware til ethvert operativsystem giver dig mulighed for at omdirigere brugerens anmodning fra en lokal placering. PC til server med de nødvendige ressourcer. Dette gøres ved hjælp af en speciel redirector (interceptor), som opsnapper anmodningen og bestemmer, om den skal udføres på den lokale pc eller på serveren.

Re-director struktur:

DB, om strukturel Sprog SQL-forespørgsler (Structured Query Language), som er industristandard i relationsdatabasernes verden. Fjernserveren modtager anmodningen og videresender den til SQL-databaseserveren. SQL server – særligt program, som administrerer fjerndatabasen. SQL-serveren giver fortolkning af anmodningen, dens eksekvering i databasen, generering af resultatet af anmodningen og levering af den til klientapplikationen. I dette tilfælde er klientcomputerens ressourcer ikke involveret i den fysiske udførelse af anmodningen; klientcomputeren sender kun en anmodning til serverdatabasen og modtager resultatet, hvorefter den fortolker det som nødvendigt og præsenterer det for brugeren. Da resultatet af anmodningen sendes til klientapplikationen, "rejser" kun de data, som klienten har brug for, gennem netværket. Som et resultat reduceres belastningen på netværket. Da anmodningen udføres, hvor dataene er lagret (serveren), er der ingen grund til at sende store batches af data. Derudover optimerer SQL-serveren, hvis det er muligt, den modtagne forespørgsel, så den udføres på minimum tid med den mindste overhead [[3.2], [3.3]]. systemet er vist i fig. 3.3.

Alt dette øger systemets ydeevne og reducerer den tid, det tager at vente på et anmodningsresultat. Når forespørgsler udføres af serveren, øges graden af ​​datasikkerhed markant, da dataintegritetsregler er defineret i databasen på serveren og er ens for alle applikationer, der bruger denne database. Dette eliminerer muligheden for at definere modstridende regler for opretholdelse af integritet. Den kraftfulde transaktionsmotor understøttet af SQL-servere gør det muligt at forhindre samtidige ændringer af de samme data af forskellige brugere og giver mulighed for at rulle tilbage til de oprindelige værdier, når der foretages ændringer i databasen, der endte unormalt [[3.2], [ 3.3]].


Ris. 3.3. Klient-server arkitektur

  • Eksisterer det lokale netværk, bestående af klientcomputere, som hver har klientapplikation for at arbejde med databasen.
  • På hver af klientcomputerne har brugerne mulighed for at køre applikationen. Ved at bruge brugergrænsefladen fra applikationen starter den et opkald til DBMS'et på serveren for at hente/opdatere information. Til kommunikation anvendes et særligt forespørgselssprog SQL, dvs. Kun anmodningsteksten sendes over netværket fra klienten til serveren.
  • DBMS initierer opkald til data, der er placeret på serveren, hvorved al databehandling udføres på serveren, og kun resultatet af anmodningen kopieres til klientcomputeren. Således returnerer DBMS resultatet til applikationen.

Lad os se på, hvordan adskillelsen af ​​funktioner mellem serveren og klienten ser ud.

  • Klientapplikationsfunktioner:
    • Sender anmodninger til serveren.
    • Fortolkning af forespørgselsresultater modtaget fra serveren.
    • Præsentation af resultaterne for brugeren i en eller anden form (brugergrænseflade).
  • Server side funktioner:
    • Modtagelse af anmodninger fra klientapplikationer.
    • Fortolkning af anmodninger.
    • Optimering og eksekvering af databaseforespørgsler.
    • Sender resultater til klientapplikationen.
    • Sikring af et sikkerhedssystem og adgangskontrol.
    • Databaseintegritetsstyring.
    • Implementering af stabilitet af multi-user driftstilstand.

Såkaldte "industrielle" DBMS'er opererer i klient-server-arkitekturen. De kaldes industrielle, fordi det er denne klasses DBMS, der kan levere arbejdet informationssystemer omfanget af en mellemstor og stor virksomhed, organisation, bank. Kategorien af ​​industrielle DBMS omfatter MS SQL Server, Oracle, Gupta, Informix, Sybase, DB2, InterBase og en række andre [[3.2]].

Som regel vedligeholdes en SQL-server af en individuel medarbejder eller en gruppe medarbejdere (SQL-serveradministratorer). De regerer fysiske egenskaber databaser, optimere, konfigurere og omdefinering forskellige komponenter databaser, oprette nye databaser, ændre eksisterende osv., og også udstede privilegier (tilladelser til et vist niveau af adgang til specifikke databaser, SQL-server) til forskellige brugere [[3.2]].

Lad os se på de vigtigste fordele ved denne arkitektur sammenlignet med filserverarkitekturen:

  • Netværkstrafikken reduceres betydeligt.
  • Kompleksiteten af ​​klientapplikationer reduceres (det meste af belastningen falder på serverdelen), og som følge heraf reduceres kravene til hardwarekapaciteten på klientcomputere.
  • Tilgængelighed af særlige softwareværktøj– SQL server – fører til, at en væsentlig del af design- og programmeringsopgaverne allerede er løst.
  • Integriteten og sikkerheden af ​​databasen øges markant.

Ulemper omfatter højere finansielle udgifter til hardware og software, og også det faktum, at et stort antal klientcomputere placeret forskellige steder forårsager visse vanskeligheder med rettidig opdatering af klientapplikationer på alle klientcomputere. Klient-server-arkitekturen har dog vist sig i praksis i i øjeblikket Der er et stort antal databaser bygget i overensstemmelse med denne arkitektur.

3.4. Tre-lags (multi-tier) klient-server-arkitektur.

Tre-link (i nogle tilfælde multi-link) arkitektur(N-tier eller multi- tre-lags arkitektur? Nu, når forretningslogikken ændrer sig, er der ikke længere behov for at ændre klientapplikationer og opdatere dem for alle brugere. Derudover reduceres kravene til brugerudstyr mest muligt.

Derfor er arbejdet struktureret som følger:

  • Databasen i form af et sæt filer er placeret på harddisken på en specielt dedikeret computer (netværksserver).
  • DBMS er også placeret på netværksserveren.
  • Der er en specielt dedikeret applikationsserver, hvorpå forretningsanalysesoftwaren (forretningslogik) er placeret [[3.1]].
  • Der er mange klientcomputere, som hver har en såkaldt "tynd klient" installeret - en klientapplikation, der implementerer brugergrænsefladen.
  • På hver af klientcomputerne har brugerne mulighed for at køre en applikation – en tynd klient. Ved at bruge brugergrænsefladen fra applikationen starter den et opkald til business intelligence-softwaren på applikationsserveren.
  • Applikationsserveren analyserer brugerkrav og genererer forespørgsler til databasen. Til kommunikation anvendes et særligt forespørgselssprog SQL, dvs. Kun anmodningsteksten sendes over netværket fra applikationsserveren til databaseserveren.
  • DBMS'et indkapsler i sig selv al information om den fysiske struktur af databasen placeret på serveren.
  • DBMS initierer opkald til data placeret på serveren, som et resultat af hvilket resultatet af forespørgslen kopieres til applikationsserveren.
  • Applikationsserveren returnerer resultatet til klientapplikationen (brugeren).
  • Applikationen, ved hjælp af brugergrænsefladen, viser resultatet af forespørgslerne.

Klient-server-teknologi betragtes som en af ​​"hvalerne" moderne verden computernetværk. Men de problemer, som den blev udviklet til, er ved at blive en saga blot. Nye opgaver og teknologier kræver en nytænkning af principperne for klient-server-systemer. En af disse teknologier verden Wide Web. Webteknologi er en udvikling af klient-server-arkitekturen, dvs. Med én klient kan du oprette forbindelse til mange servere. Et informationssystem skal ud over grænsefladen have niveauer af databehandling og lagring. Problemet med internetudviklere er koordinering Web arbejde med andre elementer i systemet, såsom databaser. En af de lovende måder at løse dette problem på er klient-serversystemer på flere niveauer.

Klassisk system klient-server fungerer i henhold til anmodning-svar-skemaet (to-niveau arkitektur). Klienten udfører en aktiv funktion (anmodninger), serveren reagerer på dem passivt.


Ethvert informationssystem skal have mindst tre funktionelle dele - moduler til datalagring, databehandling og brugergrænseflade.

Hver af disse dele kan implementeres uafhængigt af de to andre.

For eksempel . Uden at ændre de programmer, der bruges til at lagre og behandle dataene, kan du ændre brugergrænsefladen, så de samme data vises i form af tabeller, grafer eller histogrammer. Uden at ændre datapræsentations- og lagringsprogrammerne kan du ændre behandlingsprogrammerne ved at ændre algoritmen fuldtekstsøgning. Uden at ændre programmerne til præsentation og behandling af data, kan du ændre softwaren til lagring af data ved at skifte til et andet filsystem.

I klassisk arkitektur klient-server tre hoveddele af applikationen er fordelt på to fysiske moduler. Typisk er datalagringssoftwaren placeret på serveren (/: databaseserver), brugergrænsefladen er på klientsiden, men databehandlingen skal fordeles mellem klient- og serverdelen. Dette er den største ulempe ved denne arkitektur. Opdeling af databehandlingsalgoritmer kræver synkronisering af handlingerne fra begge dele af systemet. For at undgå inkonsekvens forskellige elementer arkitekturer forsøger at udføre databehandling på en af ​​to dele - enten på klientsiden (tyk klient) eller på serveren (tynd klient eller 2,5-tier klient-server). Hver tilgang har sine ulemper: I det første tilfælde netværket er uberettiget overbelastet, pga den transmitterer rå (redundante) data, hvilket gør det vanskeligere at understøtte og ændre systemet, da udskiftning af en beregningsalgoritme eller korrigering af en fejl kræver en samtidig fuldstændig udskiftning af alle grænsefladeprogrammer, ellers vil datainkonsistens følge; i det andet tilfælde, når al informationsbehandling udføres på serveren, opstår problemet med at beskrive indbyggede procedurer og deres debugging (beskrivelsen er deklarativ og tillader ikke trin-for-trin debugging). Derudover er et system med informationsbehandling på en server absolut umuligt at overføre til en anden platform.

Flertal moderne midler Rapid Application Development (RAD), som arbejder med forskellige databaser, implementerer den første model ("tyk" klient), hvilket giver en grænseflade til databaseserveren via SQL sprog.. Denne mulighed har, ud over de ovenfor nævnte ulemper lavt niveau sikkerhed.

For eksempel. I banksystemer har alle operatører ret til at skrive til hovedtabellen i regnskabssystemet. Udover, dette system Det er næsten umuligt at overføre til webteknologier, da der bruges specialiseret klientsoftware til at få adgang til databaseserveren.

Ulemper ved modellerne diskuteret ovenfor:

1. "Fed" klient

F kompleksitet af administration;

F vanskeligheder med at opdatere software, fordi dets udskiftning skal udføres samtidigt i hele systemet;

F kompleksitet i magtfordelingen, da adgang ikke er begrænset af handlinger, men af ​​tabeller;

F netværksoverbelastning på grund af transmission af ubehandlede data;

F svag databeskyttelse.

2. "Fed" server

ð implementering bliver mere kompliceret, da PL/SQL-sprogene ikke er egnede til at udvikle sådan software, og der er ingen fejlfindingsværktøjer;

ð ydelsen af ​​programmer på PL/SQL-sprog er lavere end på andre sprog, hvilket er vigtigt for komplekse systemer;

ð programmer skrevet på DBMS-sprog fungerer ikke pålideligt, hvilket kan føre til fejl på hele databaseserveren;

ð programmer, der er oprettet på denne måde, er fuldstændig uoverførbare til andre systemer og platforme.



For at løse disse problemer bruges multi-level (tre eller flere) klient-server-modeller.

Multi-tier klient-server-arkitekturer - distribuerer mere intelligent databehandlingsmoduler, der kører på en eller flere separate servere.

Disse software moduler udføre funktioner servere til grænseflader med brugere og klient- til databaseservere. Derudover kan forskellige applikationsservere kommunikere med hinanden for mere præcist at opdele systemet i funktionsblokke udfører specifikke roller.

For eksempel. Du kan vælge en personalestyringsserver, der udfører alle de funktioner, der er nødvendige for personalestyring. Ved at tilknytte en separat database til den, kan du skjule alle implementeringsdetaljerne for denne server for brugere, så du kun tillader adgang til dens offentligt tilgængelige funktioner. Sådan et system er lettere at tilpasse til nettet, fordi Det er lettere at udvikle HTML-formularer til brugeradgang til bestemte databasefunktioner end til alle data.

I trelagsmodellen er den tynde klient ikke overbelastet med databehandlingsfunktioner, men spiller hovedrollen som et system til præsentation af information, der kommer fra applikationsserveren. (Denne grænseflade er implementeret ved hjælp af standard midler Webteknologier - browser, CGI og Java). Dette reducerer mængden af ​​data, der overføres mellem klienten og applikationsserveren, hvilket gør det muligt for klienter med langsomme telefonlinjer at oprette forbindelse.

Klient-servermodellen med tre niveauer giver dig mulighed for mere præcist at tildele brugertilladelser, da de modtager rettigheder ikke til selve databasen, men til visse funktioner på applikationsserveren, hvilket øger systemets sikkerhed.

Multi-level klient-server-systemer kan nemt overføres til webteknologi - for at gøre dette er det nok at erstatte klientdelen med en universel browser og supplere applikationsserveren med en webserver og små serverprocedurekaldsprogrammer. I et system med tre niveauer overføres meget information gennem kommunikationskanalen mellem applikationsserveren og databasen, men beregningerne bliver ikke langsommere, da kommunikationen specificerede elementer hurtigere linjer bruges. Dette kræver lavere omkostninger, da begge servere er placeret i samme lokaler. Men dette rejser problemet med konsistens i fælles beregninger, som transaktionsledere - nye elementer i multi-level systemer - er opfordret til at løse.

Transaktionsledere

MT - tillade én applikationsserver at kommunikere med flere databaseservere samtidigt. Selvom Oracle-servere har en mekanisme til at udføre distribuerede transaktioner, men hvis brugeren gemmer en del af informationen i Oracle-databasen, en del i Informix-databasen og en del i tekstfiler, så kan du ikke undvære MT. MT bruges til at styre distribuerede heterogene operationer og koordinere handlingerne af forskellige komponenter i et informationssystem. Enhver kompleks software kræver brug af MT.

For eksempel. Banksystemer skal gennemføre forskellige transformationer indsendelser af dokumenter, dvs. arbejde samtidigt med data gemt både i databasen og i almindelige filer, - det er de funktioner, som MT er med til at udføre.

MT er et program eller et sæt programmer, der kan bruges til at koordinere driften af ​​forskellige komponenter i et informationssystem.

Logisk set er MT opdelt i flere dele:

· kommunikationsansvarlig (kontrollerer udvekslingen af ​​meddelelser mellem komponenter i informationssystemet;

· transaktionsleder (styrer distribuerede operationer);

· logmanager (overvåger genoprettelse og tilbagerulning af distribuerede operationer);

· låsestyring (sikker korrekt adgang til delte data).

Typisk kombineres M-kommunikation med M-autorisation, og M-transaktioner kombineres med M-låse og systemregistreringer. Desuden er et sådant M sjældent inkluderet i leveringspakken, da dets funktioner (holde registreringer, distribuere ressourcer og kontrollere operationer) normalt udføres af selve databasen (for eksempel Oracle).

Største ændringer opstod i M-kommunikation, da nye objektorienterede teknologier (CORBA, DCOM, etc.) dukkede op på dette område. Multi-level klient-server-modellen kan væsentligt forenkle distribueret databehandling, hvilket gør den ikke kun mere pålidelig, men også mere tilgængelig.

4.4. Behandle postsystemer­ -

det er en garanteret levering af information og et middel til applikationsintegration

Designet af informationssystemer konfronterer systemanalytikere med løsninger på følgende problemer:

ð distribueret system;

ð integration forskellige applikationer;

ð nem administration.

Moderne computere er for det meste distribueret, så problemet opstår med at vælge en metode til interaktion mellem de enkelte dele af sådanne systemer. Sammenlægning af flere informationssystemer kræver en integrationsløsning stor mængde heterogene anvendelser. Et sådant (integreret) system skal have alle de kombinerede delsystemers funktionalitet og opretholde enkelhed og brugervenlighed. Dette problem kan løses vha teknologiske postsystemer(STP).

Udtrykket "teknologisk post" bruges til at betegne interaktionen mellem applikationer ("elektronisk post" er interaktionen mellem mennesker), den transmitterede information er teknologisk dens dannelse og transmission kan udføres uden/eller med minimal menneskelig deltagelse.

Det teknologiske postsystem omfatter to forskellige veje interaktioner brugt i moderne distribuerede systemer.

En af dem er baseret på begrebet forbindelse (fig. 1), og den anden er baseret på ideen om meddelelser.

1


Fig.1. Forbindelsesorienteret interaktionsmekanisme

Processen med interaktion mellem applikationer og brugen af ​​forbindelsesetablering kan opdeles i tre faser:

1. etablering af forbindelse;

2. overførsel af information;

3. lukning af forbindelsen.

En sådan interaktion kræver tilslutning af alle tre faser og samtidig drift af applikationer, hvilket ikke altid er muligt.

Systemer bygget på princippet om messaging bruger beskedkøteknologi under interaktion (fig. 2).



Fig.2. Applikationskommunikation ved hjælp af beskedkøteknologi

Applikationer, der udveksler information, adresserer dem ikke direkte til hinanden, men til meddelelseskøer, der er knyttet til applikationerne. Forbindelsen mellem applikationen og køen sker som regel i online-tilstand, hvilket undgår den tid, der bruges på at etablere forbindelsen. Kontrolsoftwaren kan enten være placeret på den samme maskine med applikationerne eller på en dedikeret server. Systemer, der anvender beskedkøteknologi, kræver, i modsætning til forbindelsesetableringssystemer, ingen permanent forbindelse i processen med interaktion eller samtidig drift af interagerende applikationer. Disse egenskaber giver dem fleksibilitet og acceptabilitet i forskellige områder applikationer.

De teknologiske postsystemers alsidighed giver dem mulighed for at arbejde videre heterogen (en række software- og hardwareplatforme, som de arbejder på individuelle komponenter STP, samt en række forbindelsesmetoder og interaktionsprotokoller, der bruges i systemstrukturer. Heterogenitet opnås ved at adskille server- og klientdelene af STP'en. Klientdelene har ringe funktionalitet og kan overføres til forskellige platforme. Driften af ​​STP'en kræver således ikke omkostningerne til yderligere udstyr - systemet tilpasser sig eksisterende midler (både hardware og software samt eksisterende datatransmissionskanaler) og kræver ikke udskiftning af dem.

Fordele ved at bruge STP:

Ø Garanteret beskedlevering. Message Queuing-servere

De bestemmer selv, hvordan de skal sikre levering i tilfælde af fejl i enkelte dele af systemet: genforsende, finde en alternativ rute eller bruge andre metoder. Da STP'er giver informationsudveksling mellem applikationer, skal det faktum, at en besked ikke blev leveret, spores og behandles (i modsætning til E-mail, hvor i tilfælde af manglende levering af en meddelelse, skal brugeren selv træffe eventuelle korrigerende handlinger);

Ø Ingen blokering af ansøgningen under overførsel af oplysninger, pga Teknologien med beskedkøer er på plads, og serverdelen af ​​TP-systemet er allokeret, som står for levering af beskeder. Mangel på blokering reducerer nedetid for applikationen;

Ø Mulighed for at indstille beskedprioriteter og muligheder ved afsendelse. Prioriteter giver dig mulighed for at implementere flere parallelle systemer besked transmission. Beskeder med lavere prioritet vil dog ikke have nogen indflydelse på leveringen af ​​meddelelser med højere prioritet. Dette har en positiv effekt ved design og konfiguration af store systemer, samt ved administration af systemer;

Ø Mulighed for informationsudveksling i et heterogent miljø, hvor modernisering af både hardware og software er mulig.

Oversættelse fra engelsk: Chernobay Yu A.

Udvikling af klient-server systemer

Arkitekturen i et computersystem har udviklet sig sammen med hardwarens evne til at bruge de applikationer, den kører. Den enkleste (og tidligste) af alle var "Mainframe-arkitekturen", hvor alle operationer og funktioner udføres på server- (eller "værts")-computeren. Brugere interagerede med serveren gennem "dum" terminaler, som transmitterede instruktioner ved at fange tastetryk til serveren og viste resultaterne af instruktionerne til brugeren. Sådanne applikationer var af typisk karakter og på trods af servercomputeres relativt store regnekraft var de generelt relativt langsomme og ubelejlige at bruge på grund af behovet for at overføre hvert tastetryk til serveren.

Introduktion og udbredt brug af pc'en, med sin egen computerkraft og grafisk brugergrænseflade tillod applikationer at blive mere komplekse og udvide netværkssystemer førte til den anden store type systemarkitektur, "Filpartitionering". I denne arkitektur downloader pc'en (eller "arbejdsstationen") filer fra en specialiseret "filserver" og administrerer derefter applikationen (inklusive data) lokalt. Dette fungerer godt, når det delte dataforbrug, dataopdatering og mængden af ​​data, der vil blive overført, er lille. Det blev dog hurtigt klart, at fildeling i stigende grad blokerede netværket, og applikationer blev mere komplekse og kræver, at flere og flere data overføres i begge retninger.

Problemerne forbundet med applikationer, der behandler data over en fil, der blev delt over et netværk, førte til udviklingen af ​​klient-server-arkitektur i begyndelsen af ​​1980'erne. I denne tilgang erstattes filserveren af ​​en databaseserver, som i stedet for blot at transmittere og gemme filer til tilsluttede arbejdsstationer (klienter), modtager og faktisk udfører anmodninger om data, hvilket kun returnerer det resultat, som klienten anmoder om. Ved kun at transmittere de data, som klienten anmoder om i stedet for hele filen, reducerer denne arkitektur væsentligt netværksbelastningen. Dette gjorde det muligt at skabe et system, hvor flere brugere kunne opdatere data gennem GUI-grænseflader knyttet til en enkelt delt database.

Typisk bruges enten Structured Query Language (SQL) eller Remote Procedure Call (RPC'er) til at udveksle data mellem klienten og serveren. Flere grundlæggende muligheder for at organisere en klient-server-arkitektur er beskrevet nedenfor.

I en to-lags arkitektur deles belastningen mellem serveren (som huser databasen) og klienten (som huser brugergrænsefladen). Typisk er de placeret på forskellige fysiske maskiner, men det er ikke et krav. Forudsat at lagene er logisk adskilte, kan de placeres (for eksempel til udvikling og test) på den samme computer (fig. 1).

Figur 1: To-lags arkitektur

Fordelingen af ​​applikationslogik og databehandling i denne model var og forbliver problematisk. Hvis klienten er "smart" og udfører hovedbehandlingen af ​​dataene, opstår der problemer forbundet med distribution, installation og vedligeholdelse af applikationen, da hver klient har brug for sin egen lokale kopi af softwaren. Hvis klienten er "dum" skal applikationslogikken og -behandlingen implementeres i databasen, og derfor bliver den fuldstændig afhængig af det specifikke DBMS, der bruges. Under alle omstændigheder skal hver klient registrere sig og, afhængigt af de adgangsrettigheder, han modtager, udføre visse funktioner. Imidlertid var den to-lags klient-server-arkitektur god beslutning, da antallet af brugere var relativt lille (op til ca. 100 samtidige brugere), men med væksten af ​​brugere fulgte en række restriktioner for brugen af ​​denne arkitektur.

Ydeevne: Efterhånden som antallet af brugere stiger, begynder ydeevnen at blive dårligere. Ydeevneforringelsen er direkte proportional med antallet af brugere, som hver har deres egen forbindelse til serveren, hvilket betyder, at serveren skal vedligeholde alle disse forbindelser (ved hjælp af "Keep-Alive" beskeder), selv når databasen ikke bruges .

Sikkerhed: Hver bruger skal have deres egen individuelle adgang til databasen og have rettighederne til at betjene applikationen. For at gøre dette er det nødvendigt at gemme adgangsrettighederne for hver bruger i databasen. Når du skal tilføje funktionalitet til en applikation, og du skal opdatere brugerrettigheder.

Funktionalitet: Uanset hvilken type klient der bruges, skal det meste af databehandlingen ligge i databasen, hvilket betyder, at den er helt afhængig af de muligheder, som producenten leverer i databasen. Dette kan i høj grad begrænse applikationens funktionalitet, da forskellige databaser understøtter forskellige funktioner, brug forskellige sprog programmere og endda implementere grundlæggende funktioner såsom triggere på forskellige måder.

Portabilitet: To-tiers arkitektur er så afhængig af den specifikke databaseimplementering, at portabilitet eksisterende applikationer for forskellige DBMS'er, bliver et alvorligt problem. Dette gælder især for applikationer på vertikale markeder, hvor valget af DBMS ikke er bestemt af leverandøren.

Men på trods af dette har to-lags arkitektur fundet nyt liv i internettiden. Det kan fungere godt i et afbrudt miljø, hvor brugergrænsefladen er dum (f.eks. en browser). Men på mange måder repræsenterer denne implementering en tilbagevenden til den oprindelige mainframe-arkitektur.

I et forsøg på at overvinde begrænsningerne ved den beskrevne tolagsarkitektur generel oversigt ovenfor blev der indført et ekstra niveau. Denne arkitektur er en standard klient-server model med en tre-lags arkitektur. Formålet med det ekstra lag (almindeligvis kaldet "midterste" eller "regler" lag) er at styre applikationsudførelse og databasestyring. Som med modellen med to niveauer, kan niveauerne være placeret enten på forskellige computere (Figur 2) eller på én computer i testtilstand.

Figur 2: Tre-lags arkitektur

Ved at introducere den midterste række blev begrænsningerne af tolagsarkitekturen stort set elimineret, hvilket resulterede i et meget mere fleksibelt og skalerbart system. Da klienter nu kun opretter forbindelse til applikationsserveren og ikke direkte til dataserveren, fjernes byrden med at opretholde forbindelser, ligesom behovet for at implementere applikationslogik i databasen. Databasen kan nu kun udføre funktionerne med at lagre og hente data, og opgaven med at modtage og behandle ansøgninger kan udføres af gennemsnitsniveau tre-lags arkitektur. Udviklingen af ​​operativsystemer, som omfattede elementer som forbindelsespooling, køer og distribueret transaktionsbehandling, styrkede (og forenklede) udviklingen af ​​mellemlaget.

Bemærk, at i denne model kontrollerer applikationsserveren ikke brugergrænsefladen, og brugeren forespørger heller ikke direkte i databasen. I stedet giver det flere kunder mulighed for at dele forretningslogik, beregninger og adgang til datasøgemaskine. Den største fordel er, at klienten kræver mindre software og ikke længere behøver en direkte forbindelse til databasen, hvilket forbedrer sikkerheden. Følgelig er applikationen mere skalerbar, omkostningerne til support og installation på én server er meget lavere end for at vedligeholde applikationer direkte på klientens computer eller endda på en to-lags arkitektur.

Der er mange variationer af de grundlæggende tre-niveau modeller designet til at yde forskellige funktioner. Disse omfatter distribueret transaktionsbehandling (hvor flere DBMS'er opdateres i samme protokol), meddelelsesbaserede applikationer (hvor applikationer ikke kommunikerer i realtid) og kompatibilitet på tværs af platforme (Object Request Broker eller "ORB" applikationer).

Flerlagsarkitektur eller N-lagsarkitektur

Med udviklingen af ​​internetapplikationer på baggrund af en generel stigning i antallet af brugere, blev den grundlæggende klient-server-model med tre niveauer udvidet ved at indføre yderligere niveauer. Sådanne arkitekturer kaldes "multi-tier" og består typisk af fire lag (figur 3), hvor en server i netværket er ansvarlig for at håndtere forbindelsen mellem browserklienten og applikationsserveren. Fordelen er, at flere webservere kan forbinde til en enkelt applikationsserver, hvorved behandlingen af ​​et større antal samtidigt tilsluttede brugere øges.

Figur 3: N-tier arkitektur

Niveauer vs. lag

Disse udtryk er (desværre) ofte forvekslet. Der er dog stor forskel på dem, og de har en vis betydning. Den største forskel er, at lag er i det fysiske lag, og lag er i det logiske lag. Med andre ord kan laget teoretisk set implementeres uafhængigt på en separat computer, og laget er en logisk opdeling i laget (figur 4). Den typiske trelagsmodel beskrevet ovenfor indeholder typisk mindst syv lag, adskilt på tværs af alle tre niveauer.

Det vigtigste at huske om en lagdelt arkitektur er, at anmodninger og svar fra hver tråd i én retning krydser alle lag, og at lag aldrig kan springes over. I modellen vist i figur 4 er det eneste lag, der kan få adgang til lag "E" (dataadgangslaget), lag "D" (regellaget). Ligeledes kan lag "C" (applikationsvalideringslaget) kun svare på anmodninger fra lag "B" (fejlhåndteringslaget).

Figur 4: Rækker opdelt i logiske lag