Samarbejde mellem processer
Klient/server-princippet er ABC i edb-teknologien i dag. Det er den grundlæggende model for systemer, hvor brugerne henter elektronisk post med deres klientprogram fra en server, eller de med browseren henter web-sider fra en server.
Windows-brugere, der vil prøve Linux, bliver konfronteret med kravet om at have en klar forståelse af klient/server-princippet. Det brugervenlige Windows skjuler en masse tekniske detaljer, så brugerne ikke skal beskæftige sig med dem. I UNIX-verdenen er klient/server et gammel velkendt princip, som giver en nødvendig forståelse for at arbejde med systemer, hvor der kører flere processer. Hvis du bruger UNIX-systemet Linux skal du administrere server-processer og klient-processer.
Samarbejde mellem processer
Klient/server er princippet om samarbejde mellem processer i computersystemer. Nogle processer er klienter og andre fungerer som servere. Computersystemets klienter og servere kommunikerer med hinanden over lokale og globale netværk. En klient sender serveren en forespørgsel, hvor den beder om en service. Derefter leverer serveren den.
Denne udveksling af meddelelser og services sker, hver gang du ser på web-sider på Internet: Browseren er klienten, som sender forespørgslen til web-serveren. Serveren svarer med at sende den web-side, der er spurgt om. Resultatet af processen er, at du kan læse web-siden på din skærm. Din klient bad IDG's web-server om at sende denne web-side, hvilket den gjorde, så du nu læser den.
Klient og server er processer, som udføres af programmer. De kan køre på forskellige maskiner eller samme maskine. Du kan bruge din browser som klient imod en web-server, som også kører på din maskine. Så din pc arvikler både klient-processen og serveren samtidig. De to processer kører selvstændigt, og sender meddelelser til hinanden. Du kan have flere forskellige browsere kørende med kommunikation over for serveren på din maskine.
Det geniale
Genistregen
Det geniale er, at det samme simple princip anvendes på din lokale pc og i det store globale Internet. Der bruges samme protokoller og sprog fra din hjemme-pc til virksomhedernes store net af computere til en internet-café i Thailand. Alle kan sætte en web-server på Internet, alle kan køre klienter som browsere. Kommunikationsprincippet er universelt.
Klienter og servere arbejder selvstændigt. Processerne kommunikerer sammen, men de er ikke koblet sammen eller afhængige af hinanden. Det betyder, at klient/server-samarbejdet fungerer på tværs af platforme og teknikker. En Windows-klient og en Mac-klient kan forespørge hos en UNIX-server og modtage data fra den.
Processerne kører selvstændigt i hver deres miljø. Brugeren kontrollerer sin arbejdsproces med klient-programmet, som undervejs sender forespørgsler og modtager svar hos serveren. Serveren kører sine jobs, hvor den modtager forespørgsler og svarer på disse. De to kommunikerer, men de er begge selvstændige.
Når brugeren har sat en klient til at hente en fil hos en server, kan vedkommende fortsætte med at skrive elektronisk post med en anden klient og sende den via en anden server. Serverne kan betjene mange forskellige klienter.
Anvendelsen af klient/server princippet giver en yderst fleksibel arbejdsdeling og ressourcefordeling i computersystemer. Du kan tilføje klienter, eller du kan udskifte servere, samtidig med at systemet som helhed fortsætter med at køre.
Udviklingen
Udviklingen
Klient/server ideen har været brugt siden sidst i 1980'erne. Dengang var alternativet store mainframe-maskiner. Når de var ude af drift, var der ingen terminaler der fungerede ude hos brugerne, fordi de blev styret og kontrolleret fra hovedmaskinen.
Det andet alternativ var de små isolerede pc'er, der kørte selvstændige opgaver som tekstbehandling. De kunne kun køre en arbejdsproces ad gangen, så her var client/server ikke relevant.
Idag kan alle computere køre mange processer samtidig, og alle computere er koblet op på netværk. Det betyder, at al udvikling af software og systemer skal tage højde for denne situation, hvor:
For eksempel er computersystemer til elektronisk handel et netværk af klienter og servere. Kunderne kobler op til en web-server med deres web-klient. På web-siden afgiver kunden sin ordre. Web-serveren starter en klient, som forespørger hos en database for at kontrollere kundens idenditet. Indkøb og betaling af varer over Internet er et forløb med utallige klient-server transaktioner.
Alt dette stiller krav om sikkerhed og administration af processerne.
Sprog og Komponenter
Sprog og softwarekomponenter
Hvilket sprog taler klienter og servere sammen? Det sker via de forskellige net-protokoller og med de datasprog, som anvendes. Kommunikationssprogene (protokollerne) mellem processerne er afgørende vigtig. For web-sider, som den du læser netop nu, er protokollen HTTP og dataformatet er HTML.
Klient/server-tankegangen gennemsyrer dagens programmering helt ned til de enkelte softwarekomponenter. Programmørerne arbejder med denne organisation i forhold til de enkelte programmer. De enkelte softwarekomponenter kan udveksle meddelelser og services med hinanden. (Du kan læse mere om softwarekomponenter i den tidligere artikel: Internet kræver softwarekomponter ).
Idag er klient/server-ideen så integreret i alle computersystemer, at ingen nævner den særskildt. I denne sammenhæng kan Microsofts nye strategi .Net (dot-net) forstås som en plan om at opbygge al software efter klient/server-princippet. Intet program er en øde ø. (dot-net strategien er omtalt i artiklen: Dot Net - Microsofts kovending)