SAP R / 3 Architecture
โก Smart sammanfattning
SAP R / 3 ArchiTecture รคr en klient-server-design i tre nivรฅer som separerar presentations-, applikations- och databasansvar. Den hรคr artikeln fรถrklarar varje lager, ABAP och Java komponentstacken, den dispatcherdrivna inloggningsprocessen och orsakerna SAP valde denna lagermodell.

SAP R / 3 ArchiStrukturen ligger till grund fรถr nรคstan alla klassiker SAP ERP-distribution. Avsnitten nedan fรถrklarar hur de tre nivรฅerna samverkar och hur ABAP och Java stackar delar upp arbetet mellan dispatcher, meddelandeserver och databas.
Vad รคr SAP R/3?
SAP R/3 รคr ett klient-server-fรถretagssystem byggt pรฅ en trestegsarkitektur bestรฅende av tre oberoende lager:
- Presentation
- Ansรถkan
- Databas
- R stรฅr fรถr Realtid bearbetning.
- 3 stรฅr fรถr 3-tier arkitektoniskt mรถnster.
Anvรคndarens dator (frontend): Anvรคndare fรฅr รฅtkomst till SAP systemet genom SAP GUI eller en webblรคsare. Endast frontend-klienten installeras pรฅ anvรคndarens maskin; applikations- och databasservrar kรถrs separat pรฅ dedikerad hรฅrdvara.
Applikationsservrar: Applikationsservrar kรถr affรคrslogik. Arbetsbelastningen รคr fรถrdelad รถver flera applikationsservrar sรฅ att anvรคndare fรฅr svar snabbare under hรถg belastning. Dessa servrar kรถrs vanligtvis pรฅ fjรคrrinfrastruktur snarare รคn pรฅ anvรคndarnas arbetsstationer.
Databasserver: Databasservern lagrar och hรคmtar data som svar pรฅ SQL frรฅgor genererade av ABAP och Java applikationer. Databasen och applikationstjรคnsterna kan kรถras pรฅ samma maskin eller pรฅ separata fysiska vรคrdar beroende pรฅ kapacitetsbehov.
Varfรถr gรถr SAP Anvรคnder R/3 en 3-nivรฅarkitektur?
Att separera presentation, affรคrslogik och lagring i tre oberoende nivรฅer ger SAP R/3 fyra praktiska fรถrdelar jรคmfรถrt med en- eller tvรฅvรฅningskonstruktioner:
- Oberoende skalbarhet: Varje lager kan skalas separat. En flaskhals i affรคrslogiken lรถses genom att lรคgga till applikationsservrar utan att vidrรถra databasens hรฅrdvara.
- Arbetsbรถrdafรถrdelning: Meddelandeservern belastningsbalanserar inkommande sessioner รถver applikationsservrar, vilket fรถrhindrar att en enskild server blir en enda tvistepunkt.
- Databasskydd: Slutanvรคndare ansluter aldrig direkt till databasen. Alla lรคs- och skrivoperationer gรฅr igenom applikationsserverns arbetsprocesser, vilka standardiserar auktoriseringskontroller, lรฅsning och transaktionsloggning.
- Upgrade flexibilitet: Ocuco-landskapet SAP GUI-grรคnssnittet kan utvecklas (skrivbords-, webblรคsar- eller mobilklienter via SAPUI5) utan att รคndra applikations- eller databaskod.
Denna separation รคr ocksรฅ det som mรถjliggรถr SAP fรถr att stรถdja flera databasbackends โ inklusive SAP HANA, Oracle, IBM Db2, och Microsoft SQL Server โ under samma applikationskodbas.
SAP R/2 vs SAP R/3: Hur ArchiTektur utvecklad
SAP R/2 kรถrdes pรฅ en stordator och anvรคnde en tvรฅskiktsarkitektur dรคr anvรคndarterminalen kommunicerade direkt med databasen. R/3, som lanserades 1992, infogade ett dedikerat applikationslager mellan klient och databas. De tvรฅ sida vid sida:
| Aspect | SAP R / 2 | SAP R / 3 |
|---|---|---|
| Architecture | 2-nivรฅer (stordator + terminal) | 3-nivรฅer (presentation + applikation + databas) |
| hรฅrdvara | Centraliserad stordator | Distribuerad Unix / Windows / Linux-servrar |
| Skalbarhet | Endast vertikal (stรถrre stordator) | Horisontell (lรคgg till applikationsservrar) |
| Databasรฅtkomst | Direkt frรฅn anvรคndarsessionen | Medierad av arbetsprocesser fรถr applikationsservern |
| Programmeringsmodell | Endast ABAP/4 | ABAP och Java sida vid sida |
De รฅterstรฅende avsnitten fรถrklarar vart och ett av de tre R/3-lagren i detalj.
Fรถrstรฅ annorlunda SAP skikt
Figur 1: De tre SAP R/3-lager och trafiken som flyter mellan dem.
Presentationslager
Ocuco-landskapet Presentationslager innehรฅller de programvarukomponenter som utgรถr SAP GUI โ det grafiska grรคnssnittet fรถr R/3-systemet. Det รคr grรคnssnittet mellan systemet och dess anvรคndare och ger en intuitiv layout fรถr att mata in och visa data.
Detta lager vidarebefordrar anvรคndarinmatning till applikationsservern och renderar den data den tar emot som svar. Medan SAP Om det grafiska anvรคndargrรคnssnittet kรถrs fรถrblir det lรคnkat till en anvรคndares terminalsession i R/3-systemet under hela sessionen.
Applikationslager
Ocuco-landskapet Applikationslager bestรฅr av en eller flera applikationsservrar och en meddelandeserverVarje applikationsserver kรถr en uppsรคttning tjรคnster som kรถr R/3-affรคrslogik. I teorin rรคcker det med en enda applikationsserver; i praktiken distribueras tjรคnsterna รถver flera servrar fรถr kapacitet och redundans.
Meddelandeservern koordinerar kommunikationen mellan applikationsservrar. Den vidarebefordrar fรถrfrรฅgningar, tracks applikationsservergrupper och tilldelar en lรคmplig server nรคr en anvรคndare loggar in baserat pรฅ aktuell belastning. Det รคr detta som mรถjliggรถr horisontell skalning.
Databaslager
Ocuco-landskapet Databaslager innehรฅller ett centralt databassystem som lagrar all data som anvรคnds av R/3-systemet. Databasstacken har tvรฅ komponenter โ databashanteringssystemet (DBMS) och sjรคlva databasen. SAP levererar sitt eget DBMS, SAP HANA, och stรถder รคven alla stรถrre kommersiella databaser (Oracle, IBM Db2, Microsoft SQL Server).
All R/3-data โ anpassning av instรคllningar, applikationskod, skรคrmdefinitioner, menyer, funktionsmoduler och runtime-data โ finns i den hรคr databasen. Programkod och designobjekt finns i en sรคrskild sektion som kallas R/3-arkivet; dessa "fรถrrรฅdsobjekt" รคr vad ABAP Workbench lรคser, skriver och transporterar mellan system.
Fรถrstรฅ komponenterna i SAP R/3 3-lager Architecture
Figur 2: ABAP + Java systemarkitektur som visar hur de tvรฅ stackarna delar infrastruktur.
En modern SAP NetWeaver-instansen kan vara vรคrd fรถr bรฅde ABAP och Java stackar. Komponenterna nedan visar hur varje stack hanterar sin egen dispatching samtidigt som den delar gateway-, ICM- och JCO-bryggan fรถr kommunikation mellan stackar.
| Komponent | Stack | Roll |
|---|---|---|
| Meddelandeserver (ABAP) | ABAP | Koordinerar kommunikationen mellan distribuerade dispatchers i ABAP-system och balanserar belastningen mellan instanser. |
| Avsรคndarkรถ | ABAP | Buffer som hรฅller inkommande fรถrfrรฅgningar tills en arbetsprocess blir ledig. |
| Avsรคndare | ABAP | Hรคmtar fรถrfrรฅgningar frรฅn kรถn och tilldelar var och en till lรคmplig arbetsprocesstyp. |
| ABAP-arbetsprocesser | ABAP | Utfรถr dialogrutesteg i R/3-applikationer. Typer inkluderar dialog, uppdatering, bakgrund, spool och kรถlรคggning. |
| Gateway | Delade | Mรถjliggรถr kommunikation mellan SAP system och mellan SAP och externa system via RFC. |
| Minnesrรถr | Delade | รverfรถr data mellan Internet Communication Manager (ICM) och ABAP-arbetsprocesser. |
| Meddelandeserver (Java) | Java | koordinater Java avsรคndare och serverprocesser; mรถjliggรถr kommunikation inom Java kรถrtidskluster. |
| Kรถa servern | Java | Hanterar logiska lรฅs som stรคllts in av Java applikationskod som kรถrs inuti en serverprocess. |
| Centrala tjรคnster | Java | En speciell Java klusterinstans som hanterar lรฅsning och meddelanden mellan processer. En โinstansโ รคr en grupp resurser (minne, arbetsprocesser etc.). |
| Java Avsรคndare | Java | Tar emot kundfรถrfrรฅgningar och vidarebefordrar dem till Java serverprocesser. |
| SDM | Java | Software Deployment Manager โ installerar J2EE-komponenter pรฅ Java stack. |
| Java Serverprocesser | Java | Bearbeta ett stort antal fรถrfrรฅgningar samtidigt med hjรคlp av multi-threading. |
| ICM | Delade | Internet Communication Manager โ aktiverar HTTP-, HTTPS- och SMTP-trafik sรฅ att SAP kan nรฅs frรฅn en webblรคsare. |
| JCO | bro | Java Kontakt โ hanterar kommunikationen mellan Java dispatchern och ABAP-dispatchern nรคr bรฅda stackarna kรถrs sida vid sida. |
Figur 3: Kategorier av ABAP-arbetsprocesser (Dialog, Uppdatering, Bakgrund, Spool, Enqueue).
Hur SAP Fungerar inloggningsprocessen?
Figur 4: Steg-fรถr-steg-flรถde fรถr en anvรคndarinloggning genom SAP R/3-dispatcher och arbetsprocesslager.
Steg 1) Anvรคndaren klickar pรฅ SAP system frรฅn SAP GUI; begรคran vidarebefordras till avsรคndare.
Steg 2) Begรคran hamnar i fรถrfrรฅgningskรถn. Ledaren fรถljer en fรถrst in, fรถrst ut regel och tilldelar begรคran till nรคsta tillgรคngliga arbetsprocess.
Steg 3) En arbetsprocess av lรคmplig typ tilldelas. En anvรคndare som loggar in fรฅr en Dialog-arbetsprocess; en bakgrundsrapport fรฅr en Bakgrundsarbetsprocess; en UPDATE-sats skickas till en Uppdatera-arbetsprocess. ร tgรคrden avgรถr typen av arbetsprocess.
Steg 4) Nรคr dialogarbetsprocessen har tilldelats sparas anvรคndarens behรถrigheter och aktuella instรคllningar. rullade in till delat minne sรฅ att arbetsprocessen kan agera pรฅ anvรคndarens data. Nรคr dialogsteget รคr klart, รคr dessa data utrullad fรถr att frigรถra minne fรถr nรคsta anvรคndare. Ett "dialogsteg" รคr fรถrflyttningen frรฅn en skรคrm till en annan inuti en transaktion.
Steg 5) Arbetsprocessen letar fรถrst efter den begรคrda datan i bufferten. Att hitta den dรคr kallas en slรฅ och undviker en databas-tur och retur, vilket fรถrbรคttrar svarstiden. Att inte hitta den utlรถser en Frรถken och en databaslรคsning. En hรถg trรคff-till-miss-kvot รคr den enskilt stรถrsta bidragande faktorn till SAP prestanda.
Steg 6) Eventuell รฅterstรฅende data hรคmtas frรฅn databasen och det kombinerade resultatet skickas tillbaka till SAP GUI via dispatchern.
Steg 7) Anvรคndarens sessionsdata tas bort frรฅn det delade minnet i en slutlig utrullning, vilket frigรถr minnesomrรฅdet fรถr nรคsta begรคran.
Samma avsรคndare โ kรถ โ arbetsprocess โ buffert โ utrullningscykel upprepas fรถr varje anvรคndarinteraktion, oavsett om begรคran kommer frรฅn SAP GUI, en webblรคsare via ICM eller ett externt system via gatewayen.





