Miten asiakas-palvelinsovellus toimii? Siten kaikki edellä mainitut tiedostopalvelin-mallin haitat on eliminoitu asiakas-palvelin-arkkitehtuurissa. Asiakas-palvelin tekniikka

Edut

  • Mahdollistaa funktioiden jakamisen useimmissa tapauksissa laskentajärjestelmä useiden verkossa olevien itsenäisten tietokoneiden välillä. Tämä helpottaa tietokonejärjestelmän ylläpitoa. Erityisesti palvelimen vaihtaminen, korjaaminen, päivittäminen tai siirtäminen ei vaikuta asiakkaisiin.
  • Kaikki tiedot tallennetaan palvelimelle, joka on yleensä suojattu paljon paremmin kuin useimmat asiakkaat. Palvelimen käyttöoikeuksien valvonta on helpompi pakottaa, jotta vain asianmukaiset käyttöoikeudet omaavat asiakkaat voivat käyttää tietoja.
  • Mahdollistaa erilaisten asiakkaiden yhdistämisen. Asiakkaat, joilla on eri laitteistoalustoja, käyttöjärjestelmiä jne., voivat usein käyttää yhden palvelimen resursseja.

Vikoja

  • Palvelinvika voi tehdä koko tietokoneverkon toimintakyvyttömäksi.
  • Tämän järjestelmän toiminnan tukeminen vaatii erillisen asiantuntijan - järjestelmänvalvojan.
  • Korkea laitteiston hinta.

Monitasoinen asiakas-palvelin-arkkitehtuuri- asiakas-palvelin-arkkitehtuurin tyyppi, jossa tietojenkäsittelytoiminto suoritetaan yhdessä tai useammassa erillisessä palvelimessa. Näin voit erottaa tietojen tallennus-, käsittely- ja esittämistoiminnot enemmän tehokas käyttö palvelimien ja asiakkaiden ominaisuudet.

Monitasoisen arkkitehtuurin erikoistapaukset:

Oma palvelinverkko

Oma palvelinverkko(Englanti) Asiakas/palvelin verkko) on lähiverkko (LAN), jossa verkkolaitteet keskitetty ja yhden tai useamman palvelimen hallinnoima. Yksittäisten työasemien tai asiakkaiden (kuten tietokoneiden) on käytettävä verkkoresursseja palvelimen (palvelimien) kautta.

Kirjallisuus

Valeri Korzhov Monitasoiset asiakas-palvelinjärjestelmät. Kustantamo Avoimet järjestelmät(17. kesäkuuta 1997). Arkistoitu alkuperäisestä 26. elokuuta 2011. Haettu 31. tammikuuta 2010.


Wikimedia Foundation. 2010.

Asiakas- palvelinsovellus TCP-stream-socketissä

Seuraava esimerkki käyttää TCP:tä järjestämään, luotettavia kaksisuuntaisia ​​tavuvirtoja. Rakennetaan täydellinen sovellus, joka sisältää asiakkaan ja palvelimen. Ensin esittelemme kuinka rakentaa TCP-stream socket -palvelin, ja sitten asiakassovellus testaamaan palvelintamme.

Seuraava ohjelma luo palvelimen, joka vastaanottaa yhteyspyyntöjä asiakkailta. Palvelin on rakennettu synkronisesti, joten säikeen suoritus estetään, kunnes palvelin suostuu muodostamaan yhteyden asiakkaaseen. Tämä sovellus esittelee yksinkertaisen palvelimen, joka vastaa asiakkaalle. Asiakas katkaisee yhteyden lähettämällä viestin palvelimelle .

TCP-palvelin

Palvelinrakenteen luominen on esitetty seuraavassa toimintakaaviossa:

Tässä täysi koodi SocketServer.cs-ohjelmat:

// SocketServer.cs käyttäen järjestelmää; käyttäen System.Text; käyttämällä System.Netiä; käyttämällä System.Net.Socketsia; nimitila SocketServer ( luokka Ohjelma ( staattinen void Main(string args) ( // Aseta paikallinen päätepiste socketille IPHostEntry ipHost = Dns.GetHostEntry("localhost"); IPAddress ipAddr = ipHost.AddressList; IPEndPoint(IPEndPoint(ipEndPoint) 11000 ); // Luo Tcp/IP-pistoke sListener = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp) // Määritä socket paikalliseen päätepisteeseen ja kuuntele saapuvia pistokkeita try ( sPointListener); sListener (10); // Aloita yhteyksien kuuntelu (tosi saapuva yhteys Socket handler = sListener.Accept(); merkkijono data = null; // Odotimme, että asiakas yrittää muodostaa yhteyden meihin byte bytes = new byte; int bytesRec = käsittelijä.Receive(bytes); data += Koodaus.UTF8.GetString(tavua, 0, tavuaRec); // Näytä tiedot konsolissa Console.Write("Vastaanotettu teksti: " + data + "\n\n"); // Lähetä vastaus asiakkaalle\ string reply = "Kiitos pyynnöstäsi " + data.Length.ToString() + " merkkiä"; byte msg = Koodaus.UTF8.GetBytes(vastaus); käsittelijä.Lähetä(msg); if (data.IndexOf(" ") > -1) ( Console.WriteLine("Palvelin on katkaissut yhteyden asiakkaan kanssa."); break; ) handler.Shutdown(SocketShutdown.Both); handler.Close(; ) ) catch (Poikkeus ex) ( Console.WriteLine (ex.ToString()); ) lopuksi ( Console.ReadLine(); ) ) ) )

Katsotaanpa tämän ohjelman rakennetta.

Ensimmäinen vaihe on asettaa socket paikalliseen päätepisteeseen. Ennen kuin avaat pistorasian kuunnellaksesi yhteyksiä, sinun on valmisteltava sille paikallinen päätepisteosoite. Ainutlaatuinen osoite TCP/IP-palvelulle määritetään isäntä-IP-osoitteen ja palvelun portin numeron yhdistelmällä, joka luo palvelun päätepisteen.

Dns-luokka tarjoaa menetelmiä, jotka palauttavat tietoja verkko-osoitteita laitteen tukema sisään paikallinen verkko. Jos paikallisella verkkolaitteella on useampi kuin yksi verkko-osoite, Dns-luokka palauttaa tiedot kaikista verkko-osoitteista ja sovelluksen on valittava joukosta sopiva osoite palvelua varten.

Luodaan palvelimelle IPEndPoint yhdistämällä Dns.Resolve()-menetelmällä saatu isäntätietokoneen ensimmäinen IP-osoite portin numeroon:

IPHostEntry ipHost = Dns.GetHostEntry("localhost"); IP-osoite ipAddr = ipHost.AddressList; IPEndPoint ipEndPoint = uusi IPEndPoint(ipAddr, 11000);

Tässä IPEndPoint-luokka edustaa localhostia portissa 11000. Seuraavaksi luomme stream-socketin, jossa on uusi Socket-luokan esiintymä. Kun paikallinen päätepiste on asetettu kuuntelemaan yhteyksiä, voimme luoda pistokkeen:

Socket sListener = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

Siirtää OsoitePerhe määrittää osoitemallit, joita Socket-luokan esiintymä voi käyttää osoitteen selvittämiseen.

Parametrissa SocketType TCP- ja UDP-vastakkeet ovat erilaisia. Siinä voit määrittää muun muassa seuraavat arvot:

Dgram

Tukee datagrammeja. Dgram-arvo edellyttää, että Udp on määritetty protokollatyypille ja InterNetwork-osoiteperheparametrissa.

Raaka

Tukee pääsyä taustalla olevaan siirtoprotokollaan.

Striimaa

Tukee suoratoistoliitäntöjä. Stream-arvo edellyttää, että protokollatyypille on määritettävä Tcp.

Kolmas ja viimeinen parametri määrittää pistokkeelle vaaditun protokollatyypin. Parametrissa Protokollatyyppi voit osoittaa seuraavat eniten tärkeitä arvoja- Tcp, Udp, Ip, Raw.

Seuraava askel pitäisi olla liittimen määrittäminen menetelmällä Sitoa(). Kun rakentaja avaa socketin, sille ei anneta nimeä, vain kahva varataan. Bind()-menetelmää kutsutaan antamaan nimi palvelinsocketille. Jotta asiakasliitäntä voi tunnistaa suoratoiston TCP-liitäntä, palvelinohjelma pistorasia on nimettävä:

SListener.Bind(ipEndPoint);

Bind()-menetelmä sitoo socketin paikalliseen päätepisteeseen. Bind()-metodia on kutsuttava ennen kuin Listen()- ja Accept()-menetelmiä yritetään kutsua.

Nyt kun olet luonut socketin ja liittänyt siihen nimen, voit kuunnella saapuvia viestejä menetelmällä Kuunnella(). Kuuntelutilassa socket kuuntelee saapuvia yhteysyrityksiä:

SListener.Listen(10);

Parametri määrittää ruuhkaa, osoittaa enimmäismäärä yhteydet odottavat käsittelyä jonossa. Yllä olevassa koodissa parametriarvo sallii jopa kymmenen yhteyden kerääntymisen jonoon.

Kuuntelutilassa sinun on oltava valmis sopimaan yhteyden muodostamisesta asiakkaan kanssa, jolle menetelmää käytetään Hyväksyä(). Tämä menetelmä hankkii asiakasyhteyden ja viimeistelee asiakkaan ja palvelimen nimen yhdistämisen. Accept()-menetelmä estää kutsuvan ohjelman säikeen, kunnes yhteys syntyy.

Accept()-menetelmä hakee ensimmäisen yhteyspyynnön odottavien pyyntöjen jonosta ja luo sellaisen käsittelemään sen uusi pistorasia. Vaikka uusi vastake luodaan, alkuperäinen vastake jatkaa kuuntelemista ja sitä voidaan käyttää monisäikeistyksen kanssa useiden asiakkaiden yhteyspyyntöjen hyväksymiseen. Mikään palvelinsovellus ei saa sulkea kuunteluliitäntää. Sen on edelleen toimittava Accept-menetelmällä luotujen pistokkeiden rinnalla saapuvien asiakaspyyntöjen käsittelemiseksi.

While (true) (Console.WriteLine("Odotetaan yhteyttä portissa (0)", ipEndPoint); // Ohjelma pysähtyy odottaessaan saapuvaa yhteyttä Socket handler = sListener.Accept();

Kun asiakas ja palvelin ovat muodostaneet yhteyden toisiinsa, viestejä voidaan lähettää ja vastaanottaa menetelmillä Lähettää() Ja Vastaanottaa() luokan pistorasia.

Send()-menetelmä kirjoittaa lähtevät tiedot liitettyyn pistorasiaan. Receive()-menetelmä lukee saapuvat tiedot stream-liitäntään. TCP-pohjaista järjestelmää käytettäessä on muodostettava yhteys pistokkeiden välille ennen Send()- ja Receive()-menetelmien suorittamista. Tarkka protokolla kahden kommunikoivan entiteetin välillä on määriteltävä etukäteen, jotta asiakas- ja palvelinsovellukset eivät estä toisiaan tietämättä, kenen pitäisi lähettää tietonsa ensin.

Kun tiedonvaihto palvelimen ja asiakkaan välillä on valmis, sinun on suljettava yhteys menetelmillä Sammuttaa() Ja Kiinni():

Handler.Shutdown(SocketShutdown.Both); käsittelijä.Sulje();

SocketShutdown on luettelo, joka sisältää kolme pysäytettävää arvoa: Molemmat- lopettaa tietojen lähettämisen ja vastaanottamisen pistorasian kautta, Vastaanottaa- estää pistorasian vastaanottamasta tietoja ja Lähettää- lopettaa tietojen lähettämisen pistorasian kautta.

Socket suljetaan kutsumalla Close()-metodia, joka myös asettaa socketin Connected-ominaisuuden arvoon false.

TCP-asiakas

Asiakassovelluksen luomiseen käytetyt toiminnot ovat enemmän tai vähemmän samanlaisia ​​kuin palvelinsovellus. Kuten palvelimessa, samoja menetelmiä käytetään päätepisteen määrittämiseen, socketin luomiseen, tietojen lähettämiseen ja vastaanottamiseen sekä pistokkeen sulkemiseen.

Ovat eriarvoisia komponentteja tietoverkko. Jotkut omistavat resurssin ja siksi heitä kutsutaan palvelimiksi, toiset käyttävät näitä resursseja ja heitä kutsutaan asiakkaiksi. Katsotaanpa, kuinka ne ovat vuorovaikutuksessa keskenään ja mikä on asiakas-palvelin-arkkitehtuuri.

Asiakas-palvelin arkkitehtuuri

"Client-Server" -arkkitehtuuri on verkon määrittelemien rakenteellisten komponenttien vuorovaikutusta, jossa rakenteellisia komponentteja ovat palvelin ja tiettyjä erikoistoimintoja (palveluita) tarjoavat solmut sekä tätä palvelua käyttävät asiakkaat. . Erityiset toiminnot On tapana jakaa kolmeen ryhmään tiettyjen ongelmien ratkaisemisen perusteella:

  • tiedonsyöttö- ja esitystoiminnot on suunniteltu käyttäjän vuorovaikutukseen järjestelmän kanssa;
  • sovelletut toiminnot - jokaisella on oma joukko;
  • resurssienhallintatoiminnot on suunniteltu hallitsemaan tiedostojärjestelmä, erilaisia ​​tietokantoja tiedot ja muut komponentit.

Esimerkiksi tietokone ilman verkkoyhteys, edustaa esitys-, sovellus- ja ohjauskomponentteja eri tasoilla. Tällaisia ​​tasoja pidetään käyttöjärjestelmänä, sovelluksena ja palveluna ohjelmisto, erilaisia ​​apuohjelmia. Samalla tavalla kaikki edellä mainitut komponentit esitetään Internetissä. Pääasia on varmistaa oikein verkottumista näiden komponenttien välillä.

Miten asiakas-palvelin-arkkitehtuuri toimii

Luomiseen käytetään useimmiten asiakas-palvelin-arkkitehtuuria yritysten tietokannat tiedot, joissa tietoja ei vain tallenneta, vaan myös ajoittain käsitellään erilaisia ​​menetelmiä. Tietokanta on minkä tahansa yrityksen pääelementti tietojärjestelmä, ja palvelin sisältää tämän tietokannan ytimen. Näin ollen monimutkaisimmat tietojen syöttämiseen, tallentamiseen, käsittelyyn ja muokkaamiseen liittyvät toiminnot tapahtuvat palvelimella. Kun käyttäjä (asiakas) käyttää tietokantaa (palvelinta), pyyntö käsitellään: päästään suoraan tietokantaan ja palautetaan vastaus (käsittelyn tulos). Käsittelyn tulos on verkkoviesti toiminnan onnistumisesta tai virheestä. Palvelintietokoneet voi käsitellä samanaikaisesti useiden asiakkaiden pyyntöjä samaan tiedostoon. Tällaisen verkon yli tapahtuvan työn avulla voit nopeuttaa käyttämiesi sovellusten toimintaa.

Asiakas-palvelin-arkkitehtuuri: tekniikan sovellus

Tätä arkkitehtuuria käytetään pääsyyn erilaisia ​​resursseja käyttämällä verkkoteknologiat: tietokannat, sähköpostipalvelimet, palomuurit, välityspalvelimet. Asiakas-palvelinsovellusten kehittäminen voi parantaa käytettävien sovellusten ja koko verkon turvallisuutta, luotettavuutta ja suorituskykyä. Asiakaspalvelinsovelluksia käytetään useimmiten liiketoiminnan automatisointiin.

Aikaisemmin paikallisia tietokantoja harkittiin, kun sekä tietokanta että sen kanssa vuorovaikutuksessa oleva sovellus sijaitsevat samalla tietokoneella. SISÄÄN Tämä alue Eräät ominaisuudet työskentelystä verkossa käytettävien etätietokantojen kanssa, joissa sovellus ja tietokanta sijaitsevat eri tietokoneissa, otetaan huomioon.

Paikallista tietokantaa voidaan periaatteessa käyttää myös kollektiiviseen käyttöön, eli verkkoversiona. Tässä tapauksessa tietokantatiedostot ja niiden kanssa työskentelevä sovellus sijaitsevat verkkopalvelimella. Käyttäjä käynnistää tietokoneeltaan palvelimella olevan sovelluksen ja sovelluksen kopio käynnistetään hänelle. Voit asentaa sovelluksen suoraan käyttäjän tietokoneelle, jolloin sovelluksen on tiedettävä jaetun tietokannan sijainti esimerkiksi aliaksen kautta. Tämä verkkovaihtoehto paikallisen tietokannan käyttämiseen vastaa tiedostopalvelinarkkitehtuuria.

Tiedetuja ovat tietokannan ja sovelluksen kehittämisen ja käytön helppous. Kehittäjä itse asiassa luo paikallisen tietokannan ja sovelluksen, joita sitten yksinkertaisesti käytetään verkkoversiossa. Tässä tapauksessa tietokannan kanssa työskentelyn järjestämiseen ei tarvita lisäohjelmistoja. Kuitenkin myös on merkittäviä puutteita. Tietojen kanssa työskentelyyn käytetään navigointia, ja verkon läpi kiertää suuria määriä dataa. Tämän seurauksena verkko ylikuormittuu, mikä on syy sen alhaiseen suorituskykyyn ja huono esitys kun työskentelet tietokannan kanssa. Työn synkronointi vaaditaan yksittäisiä käyttäjiä, joka liittyy toisen käyttäjän muokkaamien tietueiden estämiseen taulukoissa. Sovellukset eivät vain käsittele tietoja, vaan myös hallitsevat itse tietokantaa. Koska tietokantaa hallitaan eri tietokoneista, pääsyn hallinta, luottamuksellisuuden säilyttäminen ja tietokannan eheyden ylläpitäminen tulee vaikeaksi.

Näiden haittojen vuoksi tiedostopalvelinarkkitehtuuria käytetään tyypillisesti pienissä verkoissa. Verkoille, joissa on iso määrä Käyttäjille ensisijainen vaihtoehto (ja joskus ainoa vaihtoehto) on asiakas-palvelin-arkkitehtuuri. verkkoarkkitehtuuri"client-server" -tietokanta sijaitsee verkkopalvelintietokoneessa (palvelin tai etäpalvelin) ja sitä kutsutaan myös etätietokannaksi. Tämän tietokannan kanssa toimiva sovellus sijaitsee käyttäjän tietokoneella. Käyttäjäsovellus on asiakas, jota kutsutaan myös asiakassovellukseksi. Asiakas ja palvelin toimivat vuorovaikutuksessa seuraavasti. Asiakas luo ja lähettää pyynnön palvelimelle, jossa tietokanta sijaitsee. Palvelin suorittaa pyynnön ja toimittaa asiakkaalle tarvittavat tiedot tuloksena. Näin ollen asiakas-palvelin-arkkitehtuurissa asiakas lähettää pyynnön ja vastaanottaa vain sen tiedon, jota se todella tarvitsee. Kaikki pyyntöjen käsittely suoritetaan etäpalvelimella. Tällaisen arkkitehtuurin etuja ovat seuraavat tekijät. Tietojen käsittelyssä käytetään relaatiopääsymenetelmää, joka vähentää verkon kuormitusta. Sovellukset eivät suoraan hallitse tietokantaa, vain palvelin on mukana hallinnassa. Tässä suhteessa voidaan varmistaa korkeatasoinen tietosuoja. Sovelluksessa ei ole tietokannan hallintaan liittyvää koodia, joten sovellukset ovat yksinkertaistettuja.

Huomaa, että palvelinta ei kutsuta vain tietokoneeksi, vaan myös erityisohjelmaksi, joka hallitsee tietokantaa. Koska tiedonvaihdon organisointi asiakkaan ja palvelimen välillä perustuu SQL-kieleen, tällaista ohjelmaa kutsutaan myös SQL-palvelimeksi ja tietokantaa SQL-tietokannaksi. Sanan laajassa merkityksessä palvelin tarkoittaa tietokonetta, ohjelmaa ja itse tietokantaa. SQL-palvelimet ovat teollisia DBMS-järjestelmiä, kuten InterBase, Oracle jne. Jokaisella palvelimilla on omat etunsa ja ominaisuutensa, jotka liittyvät esimerkiksi tietokannan rakenteeseen ja toteutukseen. SQL-kieli, joka tulee ottaa huomioon sovellusta kehitettäessä. Lisäksi ymmärrämme palvelimen ohjelmana (eli SQL-palvelimena), ja palvelintietokoneelle asennettua tietokantaa kutsutaan etätietokannaksi.

Kun sovellus suoritetaan asiakas-palvelin-arkkitehtuurissa, sen on:

· muodosta yhteys palvelimeen ja katkaise se;

· generoi ja lähetä pyyntö palvelimelle, vastaanottaen siltä pyynnön tulokset;

· käsitellä vastaanotettuja tietoja.

Tässä tapauksessa tietojenkäsittelyllä ei ole perustavanlaatuisia eroja verrattuna tietojenkäsittelyyn paikallisissa tietokantoissa.

Etätietokanta, kuten paikallinen tietokanta, on kokoelma toisiinsa kytkettyjä taulukoita. Näiden taulukoiden tiedot sisältyvät kuitenkin yleensä yhteen jaettu tiedosto. Kuten paikallisen tietokannan tapauksessa, etätietokannan taulukoille voidaan luoda yhteyksiä (suhteita) ja rajoituksia. viitteellinen eheys, sarakearvojen rajoitukset jne. Etätietokannoissa kenttää kutsutaan sarakkeeksi. Tietokannan hallintaan palvelin käyttää:

· liipaisimet;

· generaattorit;

· tallennetut menettelyt;

· käyttäjän määrittelemät toiminnot;

· transaktiomekanismi;

· välimuistissa olevien muutosten mekanismi;

Monet näistä elementeistä ovat kielitaidon tarjoamia SQL-palvelin, jossa paikalliseen versioon verrattuna on merkittäviä ominaisuuksia, joita käsitellään alla.

Delphi-järjestelmä tukee sovellusten kehittämistä eri palvelimille tarjoamalla tähän tarkoituksenmukaiset työkalut. Huomaa, että monet aiemmin kuvatut sovelluskehityksen periaatteet ja työkalut paikallisten tietokantojen kanssa työskentelemiseen pätevät myös etätietokantojen kanssa työskentelemiseen. Sovellusten kehittämiseen käytetään erityisesti sellaisia ​​komponentteja kuin DataSource, data_setsTable, ADOTable, SQLTable, IBTable, Query, ADOQuery, SQLQuery, DBGrid jne.

Jos haluat ottaa käyttöön relaatiomenetelmän etätietokannan käyttämiseksi BDE:n avulla, sinun on käytettävä vain SQL-kielityökaluja. Siksi tulee valita komponentit, kuten Query, StoredProc, UpdateSQL. Lisäksi tietojoukko ei voi käyttää navigointikohtaisia ​​menetelmiä.

Muistutetaan, että jos suoritettaessa tietokantaa muokkaavaa kyselyä Query-komponentilla, tuloksena olevaa tietojoukkoa ei tarvita, on parempi suorittaa tämä kysely ExecSQL-menetelmällä. Voit edelleen käyttää ohjelmia, kuten Database Desktopia ja SQL Exploreria, taulukoiden ja kyselyjen käsittelyyn.

Delphi-työkalut, jotka on suunniteltu työskentelemään etätietokantojen kanssa, voidaan jakaa kahteen tyyppiin: työkalut ja komponentit.

Työkaluihin kuuluu erikoisohjelmia ja paketteja, jotka tarjoavat tietokannan ylläpitoa kehitettävien sovellusten ulkopuolella. Heidän joukossa:

· InterBase Server Manager - ohjelma InterBase-palvelimen käynnistämisen hallintaan;

· IBConsole - InterBase-palvelinkonsoli;

· SQL Monitor on ohjelma, joka seuraa SQL-kyselyjen suoritusjärjestystä etätietokantoihin.

Komponentit on tarkoitettu sellaisten sovellusten luomiseen, jotka suorittavat toimintoja etätietokannan kanssa. Listaamme niistä tärkeimmät:

· Tietokanta (tietokantayhteys);

· Istunto (nykyinen tietokannan kanssa työskentelyn istunto);

· StoredProc(tallennettu toimintokutsu);

· UpdateSQL (tietojoukon muokkaus SQL-kyselyn perusteella);

· DCOMConnection (DCOM-yhteys);

· sivukomponentit ADO, dbExpress, Interbase-komponenttipaletit.

Huomaa, että monia nimetyistä komponenteista, kuten Database, Session, UpdateSQL, käytetään myös työskennellessäsi paikallisten tietokantojen kanssa. Siten tietokantakomponentin avulla voit toteuttaa tapahtumamekanismin navigointimenetelmällä tietojen saamiseksi käyttämällä BDE-mekanismia. Näitä komponentteja käytetään kuitenkin useimmiten työskennellessäsi etäiset tukikohdat. Jotkut komponentit, kuten asiakastietojoukko ClientDataSet ja yhteys palvelimeen DCOMConnection, on suunniteltu toimimaan kolmikerroksisessa (kolmitasoisessa) asiakas-palvelinarkkitehtuurissa (ohut asiakas) ja niitä käytetään sovelluspalvelimen rakentamiseen.

Etätietokannoilla suoritettavat toiminnot, sekä työkaluilla että ohjelmallisesti, perustuvat SQL-kieleen. Kun esimerkiksi luot taulukkoa IBConsole-ohjelmalla, sinun on kirjoitettava ja suoritettava SQL-kysely (käsky) Luo taulukko. Jos taulukko luodaan BDE-mekanismilla käyttäjän sovelluksesta, käytetään tähän tarkoitukseen Query-tietojoukkoa, joka suorittaa saman kyselyn. Suurin ero on siinä, kuinka SQL-kysely suoritetaan etätietokantaa vastaan.

Joten etätietokannoissa ero sovelluksessa käytettyjen työkalujen ja työkalujen välillä on paljon pienempi kuin paikallisissa tietokantoissa.

InterBase-palvelin.Kaikilla palvelimilla on samanlaiset periaatteet tietojen järjestämisessä ja hallinnassa. Esimerkkinä tarkastellaan työskentelyä InterBase 6.x -palvelimen kanssa, joka on kotoisin Delphille. Yhdessä Delphin kanssa InterBase 6.x -palvelimesta toimitetaan kaksi osaa: palvelin ja asiakas. InterBase-palvelinosa on InterBase-palvelimen paikallinen versio, ja sitä käytetään etätietokantojen kanssa toimivien sovellusten virheenkorjaukseen, jolloin voit testata niitä verkkoversiossa yhdessä tietokoneessa. Virheenkorjauksen jälkeen paikallinen tietokone Sovellus voidaan siirtää verkkotietokoneille ilman muutoksia, joita varten tarvitset:

· kopioi tietokanta palvelimelle;

· asettaa uudet yhteysparametrit sovellukselle etätietokannan kanssa.

Voit kopioida tietokannan esim. ohjelmilla Windowsin Resurssienhallinta. Asiakasosaa tarvitaan mahdollistamaan sovelluksen käyttöoikeus etätietokantaan kehitettäessä tietokantoja ja sovelluksia paikallinen versio InterBase-palvelimella on pidettävä mielessä, että sillä on useita rajoituksia, eikä se välttämättä tue esimerkiksi palvelimen tapahtumamekanismia tai käyttäjän määrittämiä toimintoja. InterBase-palvelimen monipuolinen versio ostetaan ja asennetaan erikseen Delphistä. Kuten mainittiin, etätietokannan kanssa työskentely perustuu SQL-kielen ominaisuuksiin, jotka tarjoavat vastaavat toiminnot. Etätietokantojen SQL-kielen tarkoitus ja ominaisuudet ovat periaatteessa samat kuin tämän kielen tarkoitus ja ominaisuudet paikallisille tietokantoille.

Liiketoimintasäännöt. Kuten todettiin, liiketoimintasäännöt ovat tietokannan hallintamekanismeja, ja ne on suunniteltu pitämään tietokanta kiinteässä tilassa. Lisäksi niitä tarvitaan tietokantarajoitusten toteuttamiseen sekä useiden muiden toimintojen suorittamiseen, esimerkiksi tilastojen keräämiseen tietokannan kanssa työskentelystä.

Liiketoiminnan säännöt voidaan toteuttaa fyysisille ja ohjelman tasot. Ensimmäisessä tapauksessa nämä säännöt (esimerkiksi toisiinsa liittyvien taulukoiden viittauksen eheysrajoitukset) määritetään luotaessa taulukoita ja sisällytetään tietokantarakenteeseen. Tätä varten Create Table -käskyn syntaksi sisältää sopivat operandit, esimerkiksi Oletus. SISÄÄN jatkotyötä et voi rikkoa tai ohittaa asetettua rajoitusta fyysinen taso.

Ohjelmistotasolla liiketoimintasäännöt voidaan toteuttaa palvelimessa ja sovelluksessa. Lisäksi näitä liiketoimintasääntöjä ei tarvitse määritellä fyysisellä tasolla. Triggereitä käytetään yleensä liiketoimintasääntöjen toteuttamiseen palvelimella. Tämän lähestymistavan etuja ovat, että tietokannan hallinnan laskentakuormitus laskeutuu kokonaan palvelimelle, mikä vähentää sovelluksen ja verkon kuormitusta, ja myös se, että rajoitukset koskevat kaikkia tietokantaa käyttäviä sovelluksia. Samalla kuitenkin tietokannan hallinnan joustavuus vähenee. Lisäksi sinun on otettava huomioon, että työkalut palvelimen liipaisujen ja tallennettujen menettelyjen virheenkorjaukseen eivät ole hyvin kehittyneitä.

Liiketoimintasääntöjen ohjelmointiin sovelluksessa käytetään komponentteja ja niiden työkaluja. Tämän lähestymistavan etuna on liiketoiminnan sääntöjen muuttamisen helppous ja kyky määritellä "oman" sovelluksen säännöt. Haittapuolena on tietokannan turvallisuuden heikkeneminen, koska jokainen sovellus voi asettaa omat tietokannan hallintasäännöt.

Koko InterBase-palvelintietokannan tiedot tallennetaan yhteen tiedostoon, jonka tunniste on gdb. Tämän tiedoston koko voi olla yksiköitä tai jopa kymmeniä gigatavuja. Huomaa, että Microsoft SOL Server DBMS:llä on samanlainen tietokantakoko, kun taas tehokkaampien Oracle- ja SyBase DBMS -järjestelmien tietokannan koko on kymmeniä ja satoja gigatavuja.

Toisin kuin paikallinen tietokanta, jonka rakenne koostui taulukoista (erillisistä tai toisiinsa liittyvistä), etätietokannassa on enemmän monimutkainen rakenne, Johon sisältyy seuraavat elementit: taulukot, liipaisimet, indeksit, käyttäjäfunktiot. rajoitukset, tallennetut menettelyt, toimialueet, näkymät, generaattorit, poikkeukset, oikeudet.

Etätietokantarakenteen elementtejä kutsutaan myös metatiedoksi. Sanalla "meta" on merkitys "yläpuolella", eli metadata on dataa, joka kuvaa tietokannan rakennetta. InterBase-ohjelmassa tietokannan taulukoiden enimmäismäärä on 65 536 ja sarakkeiden enimmäismäärä taulukossa on 1 000. Huomaa, että InterBase-taulukoissa on vähemmän sallittuja sarake- (kenttä)tyyppejä kuin paikallisissa Paradox-tietokantataulukoissa.

Verkkotunnus edustaa sarakkeen nimettyä kuvausta. Kun toimialue on määritetty, sen nimeä voidaan käyttää kuvaamaan muita sarakkeita. Toimialueen vastine on tietotyyppi.

Näytä on looginen (virtuaalinen) taulukko, jonka tietueet valitaan Select-käskyllä. Katselun etuna on, että kun olet valinnut tietueet, niitä voidaan käyttää jatkossa ilman uudelleentoteutus Valitse. Tästä on hyötyä, kun samoja kyselyjä suoritetaan usein.

Tallennettu menettely on palvelimella sijaitseva aliohjelma, jota kutsutaan asiakassovelluksesta. Näiden objektien käyttö nopeuttaa pääsyä tietokantaan seuraavista syistä:

· pyyntötekstin sijasta palvelimelle lähetetään verkon yli lyhyt kutsu tallennettuun proseduuriin;

· Tallennettu toimintosarja ei vaadi syntaksin tarkistusta etukäteen.

Laukaista on proseduuri, joka sijaitsee tietokantapalvelimella ja jota kutsutaan automaattisesti tietokantatietueita muokatessa, ts. kun sarakkeita muutetaan tai kun niitä poistetaan tai lisätään. Toisin kuin tallennettuja proseduureja, triggereitä ei voi kutsua asiakassovelluksesta, etkä voi välittää niille parametreja tai saada niistä tuloksia.

Käyttäjän määrittämä toiminto on tavallinen funktio, joka on kirjoitettu sisään algoritminen kieli, esimerkiksi Pascal. Luotu funktio kirjoitetaan muotoon dynaaminen kirjasto DLL, josta se voidaan kutsua tavalliseen tapaan. Toimintopuhelun tarjoaminen Windows-järjestelmä polku vastaavaan kirjastoon on tiedettävä. Tällaisten funktioiden käyttö laajentaa SQL-kielen toimintojen valikoimaa.

Välimuistissa olevien muutosten mekanismi on, että tiedoista luodaan paikallinen kopio asiakkaan tietokoneen välimuistiin (puskuriin) ja kaikki tietoihin tehtävät muutokset tehdään tähän kopioon. Paikallisen kopion tallentamiseen käytetään erityistä puskuria (välimuistia). Tehdyt muutokset voidaan vahvistaa siirtämällä ne palvelimelle tallennettuun päätietokantaan tai hylätä. Tämä mekanismi on samanlainen kuin tapahtumamekanismi, mutta toisin kuin se vähentää verkon kuormitusta, koska kaikki muutokset siirretään päätietokantaan yhdessä paketissa. Huomaa, että kaikkia paikallisen kopion tietueita ei ole lukittu niiden arvojen muuttamiseksi. Palvelimella sijaitsevan päätietokannan lukot voidaan asettaa muilla sovelluksilla Välimuistissa olevien muutosten mekanismi on toteutettu sovelluksessa, jota varten komponenteilla, ensisijaisesti Database, Table ja Query (käytetään käytettäessä BDE:tä), on asianmukaiset työkalut. Lisäksi välimuistissa olevien muutosten mekanismia tukee tähän tarkoitettu UpdateSQL-komponentti. Kyseisen mekanismin tärkeimmät edut näkyvät etätietokannassa, mutta sitä voidaan käyttää myös paikallisten tietokantojen kanssa.

Etuoikeus edustavat tietokannan käyttöoikeuksia. Oikeuksien hallintaan kuuluu niiden asettaminen ja poistaminen. Kun tietokantaobjekti (esimerkiksi taulukko) on luotu, pääsy siihen on rajoitettu luojalle ja järjestelmänvalvojalle nimeltä SYSDBA. Jotta muut käyttäjät voivat käyttää tietokantaa, heille on määritettävä asianmukaiset oikeudet. Välittömästi esimerkiksi InterBase Manager Server -ohjelmalla luodun uuden käyttäjän ilmestymisen jälkeen tällä käyttäjällä on minimaaliset käyttöoikeudet: hän saa päästä tietokantaan (yhdistyä siihen) vain antamalla nimensä ja salasanansa, mutta ei yhtä tämän tietokannan kohde on hänen käytettävissään. Tarjotakseen mahdollisuuden aktiivista työtä tietokannan kanssa sinun on määritettävä (ohitus) oikeudet.

Etuoikeudet määräytyvät apurahaohjeissa. Oikeuksien avulla voit rajoittaa käyttäjien pääsyä taulukoihin ja näkymiin. Tässä tapauksessa "käyttäjällä" tarkoitetaan mitä tahansa dataa käyttävää objektia. Itse käyttäjän (sovelluksen) lisäksi tällaisia ​​objekteja voivat olla taulukoita, näkymiä, tallennettuja proseduureja ja laukaisimia. Jos käyttöoikeus myönnetään usealle käyttäjälle samanaikaisesti, heidän nimensä erotetaan pilkuilla.

Asiakas-palvelin arkkitehtuuri(asiakas-palvelin-arkkitehtuuri) on käsite tietoverkosta, jossa suurin osa sen resursseista on keskittynyt asiakkaitaan palveleviin palvelimiin. Kyseinen arkkitehtuuri määrittelee kahden tyyppisiä komponentteja: palvelimia ja asiakkaita.

Palvelin - on esine, joka tarjoaa palvelua muille verkkoobjekteille heidän pyynnöstään. Palvelu on asiakaspalveluprosessi.

Kuva Asiakas-palvelin-arkkitehtuuri

Palvelin toimii asiakkaiden tilauksista ja hallitsee heidän töidensä suorittamista. Kun jokainen työ on valmis, palvelin lähettää tulokset työn lähettäneelle asiakkaalle.

Asiakas-palvelin-arkkitehtuurin palvelutoiminto kuvataan sovellusohjelmilla, joiden mukaisesti suoritetaan erilaisia ​​sovellusprosesseja.

Kutsutaan prosessia, joka kutsuu palvelufunktiota tietyillä operaatioilla asiakas. Tämä voi olla ohjelma tai käyttäjä. Asiakkaat- Nämä ovat työasemia, jotka käyttävät palvelinresursseja ja tarjoavat kätevän käyttöliittymät. Käyttöliittymät Nämä ovat toimenpiteitä, joilla käyttäjä on vuorovaikutuksessa järjestelmän tai verkon kanssa.

Kuva Asiakas-palvelin malli

Asiakas on aloitteentekijä ja käyttää sähköposti tai muut palvelinpalvelut. Tässä prosessissa asiakas pyytää palvelua, perustaa istunnon, saa haluamansa tulokset ja raportoi valmistumisesta.

SISÄÄN omistettu verkko tiedosto palvelin erillisessä erillisessä PC palvelinverkkokäyttöjärjestelmä on asennettu. Tämä PC tulee palvelin. Ohjelmisto ( BY), asennettuna työasema, antaa sen vaihtaa tietoja palvelimen kanssa. Yleisimmät verkkokäyttöjärjestelmät ovat:

Verkon lisäksi käyttöjärjestelmä verkkoa tarvitaan sovellusohjelmia verkoston tarjoamat edut.

Palvelinpohjaisissa verkoissa on parhaat ominaisuudet ja lisääntynyt luotettavuus. Palvelin omistaa tärkeimmät verkkoresursseihin joihin muut työasemat pääsevät.

Nykyaikaisessa asiakas-palvelin-arkkitehtuurissa on neljä objektiryhmää: asiakkaat, palvelimet, data ja verkkopalvelut. Asiakkaat sijaitsevat käyttäjien työasemien järjestelmissä. Tiedot tallennetaan pääasiassa palvelimille. Verkkopalvelut ovat yhteisiä palvelimia ja tietoja. Lisäksi palvelut hallinnoivat tietojenkäsittelyprosesseja.

Asiakas-palvelin-arkkitehtuuriverkoilla on seuraavat edut:

Mahdollistaa verkkojen järjestämisen suurella määrällä työasemia;

Tarjoa keskitetty hallinta käyttäjätilit, suojaus ja pääsy, mikä yksinkertaistaa verkon hallintaa;


Tehokas pääsy verkkoresursseihin;

Käyttäjä tarvitsee yhden salasanan kirjautuakseen verkkoon ja päästäkseen kaikkiin resursseihin, joihin käyttöoikeudet liittyvät.

Asiakas-palvelin-verkon etujen lisäksi arkkitehtuurilla on myös useita haittoja:

Palvelimen toimintahäiriö voi tehdä verkon toimintakyvyttömäksi tai ainakin menettää verkkoresursseja;

vaatia pätevää henkilöstöä hallintoon;

Niillä on korkeammat verkkojen ja verkkolaitteiden kustannukset.