Laden...

Client - Server oder nicht

Erstellt von _daniel_ vor 17 Jahren Letzter Beitrag vor 17 Jahren 3.405 Views
_
_daniel_ Themenstarter:in
227 Beiträge seit 2006
vor 17 Jahren
Client - Server oder nicht

Hallo,
ich überlege mir gerade, was für konkrete Vorteile es bringt, eine Anwendung auf Client und Server aufzuteilen. Planungstechnisch einfacher und schneller geht es doch wenn man nur Client hat und nur die Datenbank auf dem Server. Durch eine AutoUpdate funktion gilt das Argument, dass Veränderungen nur an einer Stelle ausgeführt werden müssen aucht nicht wirklich. Nun würde mich interesieren wo ihr da noch Vor-/Nachteile seht.
Bin für Tipps dankbar.

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo daniel,

die Frage allgemein zu diskutierten führt in meinen Augen zu weit. Es gibt zu viele Gründe für die Aufteilung, genauso wie das etliche Nachteile mit sich bringt. Für welches konkrete Programm überlegst du die Aufteilung? Wenn du es wirklich allgemein wissen willst, schau bitte in ein entsprechenden Buch und vielleicht auch bei Wikipedia, bevor wir uns hier die Finger wund tippen müssen. 🙂

herbivore

_
_daniel_ Themenstarter:in
227 Beiträge seit 2006
vor 17 Jahren

Konkret handelt es sich um ein kleines Programm womit Aufträge bearbeitet werden, Kundenstamm solche dinge eben und es greifen ca 3-4 Clients auf die Daten zu.

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo daniel,

ich denke in diesem Fall lohnt sich Verteilung m.E. nicht. Wie du schon sagst reicht es, wenn hier die Datenbank auf dem Server liegt.

herbivore

_
_daniel_ Themenstarter:in
227 Beiträge seit 2006
vor 17 Jahren

Okay, habe ich mir auch gedacht.
Lohnt sich die Verteilen wenn es mehr Clients werden oder nichtmal dann?

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo daniel,

müssten vermutlich schon richtig viel mehr Clients werden, bevor sich das ünerhaupt lohnt. Also vielleicht ab 25-50. Und selbst dann ist es nicht zwangsläufig notwendig.

herbivore

S
8.746 Beiträge seit 2005
vor 17 Jahren

Die Aufteilung in Client/Server ist eine logische. C/S braucht man z.B. dann wenn gleichzeitiger Mehrbenutzerbetrieb gewünscht ist. Dabei spielt es überhaupt keine Rolle, ob es sich um 2 opder um 50 Clients handelt. Solche Zahlen spielen erst dann eine Rolle, wenn man die genaue Ausprägung einer C/S-Architektur plant. Klassische 2-Schicht-Architekuren (Clients greifen direkt auf die DB zu) skalieren eher schlecht bis gar nicht.

_
_daniel_ Themenstarter:in
227 Beiträge seit 2006
vor 17 Jahren

Hallo,
nur weil man keine Trennung Client / Server hat ist doch nicht gleich eine 2-Schichten Architektur vorhanden. Man kann doch trotzdem UI, Datenzugriff, Businesschicht usw haben oder nicht?
Der einzigste Unterschied ist nur, dass alles auf dem User Pc läuft und nicht teilweise auf dem Server?!

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo daniel,

du hast Recht und svenson hat nie das Gegenteil behauptet. 🙂

herbivore

_
_daniel_ Themenstarter:in
227 Beiträge seit 2006
vor 17 Jahren

Naja, in dem Zusammenhang von 2-Schichten zu reden lässt schon darauf schließen 😜

Aber so allgemein gesehen stimmt schon, sorry!

G
131 Beiträge seit 2005
vor 17 Jahren

Hi,

vielleicht wären hier die englischen Vokabeln "tier" und "layer" besser gewesen. Z.b ne 2-tier-application mit 3 Layern.

S
8.746 Beiträge seit 2005
vor 17 Jahren

Vielleicht nochmal zu deiner Frage: "Was ist der Vorteil?"

Vorteil gibt es genau einen: Mehrbenutzerbetrieb bzw. gemeinsame Datenhaltung. Punkt. Aus.

Du hast noch Stichworte genannt wie "AutoUpdate". Ein "AutoUpdater" hat aber mit C/S aus Sicht der Anwendung gar nix zu tun, außer dass es eben eine gemeinsame Datenhaltung für Updates gibt. Du kannst genausogut eine Einzelplatzlösung mit einem AutoUpdater versehen. Der "AutoUpdater" selbst mag ein C/S-System sein, der Anwendung ist das aber Wurscht und wird damit selbst nicht automatisch zu einem C/S-System, auch wenn man das aus einer rein technischen Sicht so sehen könnte.

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Generalissimo,

das wäre dann aber deine Definition der Begriffe. tier impliziert nicht, dass die Anwendung verteilt ist. tier und layer sind mehr oder weniger synonym.

herbivore

S
8.746 Beiträge seit 2005
vor 17 Jahren

Original von Generalissimo
vielleicht wären hier die englischen Vokabeln "tier" und "layer" besser gewesen. Z.b ne 2-tier-application mit 3 Layern.

Völlig richtig. Die Frage bezog sich wohl eher auf Tiers, nicht auf Layer. Bitte meine Postings auf "Tiers" beziehen. 3 Schichten kann man ja auch in einer Standalone-Anwendung haben.

S
8.746 Beiträge seit 2005
vor 17 Jahren

Original von herbivore
das wäre dann aber deine Definition der Begriffe. tier impliziert nicht, dass die Anwendung verteilt ist.

Und ich dachte immer, genau DAS sei die Definition von Tier. Ein Tier ist die Prozess-Sicht, während Schichten logische Code-Anordnung ist.

3-Tier-Systeme bestehen aus einer DB, einem App-Server und einem Client.

Ein Standalone-Anwendung kann aber sauber in 3 Schichten entwickelt werden.

http://www.lhotka.net/WeBlog/CommentView,guid,a70aad9c-79fd-45cc-875f-00dfd3dc0fb6.aspx

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo svenson,

nach http://de.wikipedia.org/wiki/Multi-Tier-Architektur ist Tier = Schicht. Und es steht da, dass die Schichten verteilt sein können.

herbivore

PS: Auch das Englische Wikipedia benutzt tier und layer synonym: http://en.wikipedia.org/wiki/Three-tier_%28computing%29

3.825 Beiträge seit 2006
vor 17 Jahren

Hallo Daniel,

Client/Server lohnt sich immer, also Fat-Client und Datenbankserver (Two Tier Architektur)

Anwendungslogik in einem eigenen Prozess (Multi Tier Architektur) lohnt sich nur wenn die Verbindungen der Clients mit dem Server oder die Rechenleistung des Client zum Engpass werden kann. Also entweder bei einer sehr großen Userzahl, von denen einige z.B. über VPN angebunden sind, oder sehr grosse Applikationen, mit denen ein Client überfordert wäre.

Egal wieviele Schichten (2, 3 oder mehr), alle Schichten können auch auf einem Rechner laufen. Nur in verschiedenen Prozessen. Für 3 Tier sind also nicht 3 Rechner erforderlich.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

S
8.746 Beiträge seit 2005
vor 17 Jahren

Original von herbivore
nach
>
ist Tier = Schicht. Und es steht da, dass die Schichten verteilt sein können.

Wikipedia in Ehren aber "Es wird auch von der N-schichtigen Architektur gesprochen. Und kann vom Prinzip her beliebig weit "getrieben" werden." ... 😉

Ich kann nur sagen, dass ich dem Mann in allen Argumenten folge. Tiers und Layers gleichzusetzen, heisst zwei völlig verschiedene Dinge zu vermischen.

**Logical layers are merely a way of organizing your code. **Typical layers include Presentation, Business and Data – the same as the traditional 3-tier model. But when we’re talking about layers, we’re only talking about logical organization of code. In no way is it implied that these layers might run on different computers or in different processes on a single computer or even in a single process on a single computer. All we are doing is discussing a way of organizing a code into a set of layers defined by specific function.

Physical tiers however, are only about where the code runs. Specifically, tiers are places where layers are deployed and where layers run. In other words, tiers are the physical deployment of layers.

Why do we layer software? Primarily to gain the benefits of logical organization and grouping of like functionality. Translated to tangible outcomes, logical layers offer reuse, easier maintenance and shorter development cycles. In the final analysis, proper layering of software reduces the cost to develop and maintain an application. Layering is almost always a wonderful thing!

Why do we deploy layers onto multiple tiers? Primarily to obtain a balance between performance, scalability, fault tolerance and security. While there are various other reasons for tiers, these four are the most common. The funny thing is that it is almost impossible to get optimum levels of all four attributes – which is why it is always a trade-off between them.