Frontend & Middleware & Backend

Client Server Architektur

Da die meisten Webapplikation
durchlaufen in der Regel mehrere Schichten im Client-Server-Modell:

Client <> Server

Der Client kann verschiedene GUI (Global User Interfaces) haben.
das weitverbreiteste GUI ist wohl der Browser.
Es könnte aber auch eine Windows-Applikation mit Internetverbindung oder Netzerwerkverbindung sein.

Der Server macht die meiste Arbeit und stellt seine Dienste bereit.
In dem er die Anfragen vom Client beantwortet,
welche der Client über das GUI zum Server geschickt hat.

In der Regel kann der Server mehrer Clients gleichzeitig mit seinen Diensten bedienen.
Prinzipiel könnte ein Client-Server-Model auch nur auf einem Rechner laufen,
aber die meisten bestehen aus verschiedenen Rechner und die Server (Cluster)
bestehen aus einer Gruppierung von Servern
die Ihre unterschiedlichen Dieste anbeiten.

Eine typische Servergruppe könnte zum Beispiel bestehen aus:
Mail-Server, Webserver, Anwendungsserver und Datenbank-Server.

Die Hardware von Server muss (sollte) skallierbar sein.
Beim (Web-) Server muss viel auf skalierbarbeit Wert gelegt werden,
da schnell die Rechnenkapazität erreicht werden kann,
wenn mehr Clients als erwartet die Dienste des Server beanspruchen.

Frontend & Middleware & Backend

hinter dem Server kann dann eine Webapplikation aus dem

3-Schichten-Modell stehen:

GUI-Schicht <> Geschäftslogig-Schicht <> Datenbanken-Schicht

wobei im allgemeinen nun die Anwendungen/Applikationen immer mehr agiler sein sollen
und man daher die Zukunft der agilen Softwareentwicklung
eher weg vom starren 3-Schichten-Model (3-tier-layer) geht
und hin zu flexiblen Microservices geht.

Oder dem MVC Model-View-Controller

der Controller nimmt die Anfragen (HTTP-Request vom Client - Browser) entgegen.
Er steht sozusagen,
zwischen dem View und Model
Der Controller gibt HTTP-Request Infos (Paramter) and die entsprechende Komponente im Model weiter.

Wenn das Model die Antwort vom HTTP-Request fertig hat,
nimmt der Controller die Antwort vom Model wieder entgegen.
gibt diese Daten an das View weiter,


Frontend- & Backend Entwicklungssprachen - Die Middleware im Layer

Die meisten Webapplikation
durchlaufen in der Regel mehrere Schichten im Client-Server-Modell.

Dennoch ist es manchmal nicht einfach oder eindeutig alles,
also alle Komponenten einer Applikation einer Infrastruktur
in einem Process-Flow eindeutig einzuordnen.

Ich als Entwickler, betrachte den Client auch als Frontend
und den Webserver und Datenbank als das Backend.


Wobei das Backend,
sich wiederrum aus mehreren Backend und Middleware Komponenten zusammen setzen kann.
Die Middleware oder auch Middle-Tier genannt,
beeinhaltet in der Regel DSS (Distributed System Services)
und wurde von der Object Management Group (OMG) spezifiziert.


Am anschaulichsten stellt sich die Middleware in verschiedenen Layern dar:


Aber je nach System, Applikation, Backend, Hardware etc.
ist die Darstellung manchmal nicht so wirklich eindeutig,
und der Serveradmin bescheibt seine Infrastuktur im Process-Flow,
etwas anders, als der Developer sein System Landscape.

Der Middleware Administrator
hat in vielen Unternehmen die Aufgabe die Infrastruktur zu definieren, installieren und zu überwachen (administrieren).
Wenn Beispielsweise neue Clusters angeschafft werden müssen, Server Neuinstallationen durchgeführt werden müssen
oder sonstige komplexe Server/Middleware-Architekturen aufgesetzt (installiert),
getestet und überwacht (administriert) werden sollen.

Also der Server Administrator hat oft ähnliche Verantwortungen,
wie der Middleware Administrator.

Die Middleware in der Cloud (PaaS oder IaaS)

In der Cloud (PaaS oder IaaS) gehört zu der Middleware die Mircroservices.

Während die Cloud Foundry die gesamte Entwicklungsumgebung in der Cloud bereit stellt,
ergänzen die Microservices die Middleware komponenten.
Die Middleware kann dabei völlig unterschiedliche Funktionalitäten, Programme und Services sein.
Die Unternehmen in Applikationen implementieren können.
Die Middleware in der Cloud können eigene Produkte oder auch von 3. Anbieter sein.

Typische Frontend- & Backend Entwicklungssprachen

Aber nun wieder zurück zu Frontend- & Backend Entwicklungssprachen.
Denn hier unterscheide ich nur diese 2 Systeme/Sprachen (Frontend <> Backend).

Middleware-Programmiersprachen sind für mich ebensolche,
die ich auch im Backend einsetze.
Typische Middleware-Entwicklungssprachen sind Beispielsweise:
im Grunde die gleichen die für Backend eingesetzt werden.
Kurzum diese,
welche mir Eingriffe im Betriebssystem ermöglichen
und keine reine Webapplikations- (Brwoserbasierte) Sprachen, wie JavaScript sind.
Ein typisches Beispiel,
für eine Middleware Applikation und Programmierung,
wäre Beispielsweise Microshoft Share Point Es ist schon eine fertige Middleware Applikation,
kann jedoch noch mit C# .Net in den Funktionalitäten erweitert werden.

Typische Frontend Entwicklungssprachen sind Beispielsweise:
JavaScript, JQuery etc.
Kendo UI
Strunts (XML)
Node.js (wobei hier die NODE.JS JavaScript libary als Serverseitges-Script schon wieder die Ausnahme machen)
Bootstrap (freies CSS-Framework für Responsive Webdesign)
HTML und CSS / HTML5 und CSS3 (Beschreibungssprachen)
usw.


Typische Backend Entwicklungssprachen sind Beispielsweise:
C und C++
C#, VB, alle MS .Net
Java
Spring Beans (for BO Business Objects and DAO Data Acccess Object) PHP
Perl
PL/SQL-Programmierung
SAP-ABAP
usw.



Hier kann man Sinnvollerweise den Unterschied darin definieren,
wo die Script gerändert werden.


JavaScript, HTML, CSS etc. werden erst zur Laufzeit im Browser gerändert
(also für den Nutzer im umgewandelt und dargestellt)

Während die Backend-Programmiersprachen schon auf dem Server kompiliert
und zur Laufzeit zur Verfügung gestellt werden.


Für mich sind typische Backendsysteme

CRM (Customer Relationshhip Mangement) und SAP sind für mich typische Backendsysteme.
Auch die Datenbanken SQL, ORACLE, MySQL sind Backendsysteme.

Denn die Webseiten Besucher,
Bzw. die WebUI (User Interface) kommuniziert nur mit Hilfe einer Schnittstelle
(Bsp. Webservice, SAP-RFC function, database connector etc.) mit dem Backendsystem
und holt sich so die angefragten Daten oder schickt diese (request <> response)
zur Weiterverarbeitung zum Backendsystem zurück.


Der Webserver gehört selbstverständlich ebenso zu den Backendsystemen.
Er ist oft eine zentrale Figur im ganzen System,
und weiss, wo und wie,
er mit den anderen Backendsystem sich verbinden und unterhalten kann.

Alles andere,
was auf den Endgeräten abläuft,
wie der Browser, zählt für mich zum Client.


Comments

No comments yet.

Add Comment

* Required information
(never displayed)
 
Bold Italic Underline Strike Superscript Subscript Code PHP Quote Line Bullet Numeric Link Email Image Video
 
Smile Sad Huh Laugh Mad Tongue Crying Grin Wink Scared Cool Sleep Blush Unsure Shocked
 
1000
What is the day after Friday?
 
Enter answer:
Captcha
Refresh
 
Enter code:
 
Notify me of new comments via email.
 
Remember my form inputs on this computer.
 
I have read and understand the privacy policy. *
 
I have read and agree to the terms and conditions. *
 
 
Powered by Commentics