MySQL Connection

FalkeNr1

FalkeNr1

Neues Mitglied
3
Hallo liebe Community,
ich würde meine App gerne mit einer externen MySQL Datenbank verknüpfen.
Die Datenbank steht und sollte unter der IP-Adresse 84.200.24.110 bzw "ts3.letszockwhatever.de" erreichbar sein.
In der App habe ich bereits folgendes implementiert:

MainActivity

Code:
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ConnectToMySQL mysql = new ConnectToMySQL();
        mysql.execute();
}

private class ConnectToMySQL extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String[] params) {
            String url = "jdbc:mysql://ts3.letszockwhatever.de:3306/test";
            String user = "root";
            String password = "**ZENSIERT**";

            Log.v("Verbindung zur DB", "Verbindung wird aufgebaut...");

            try {
                Class.forName("com.mysql.jdbc.Driver");
                Log.v("Verbindung zur DB", "Driver erfolgreich geladen!");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            try {
                Connection connection = DriverManager.getConnection(url, user, password);
                Log.v("Verbindung zur DB", "Verbindung erfolgreich aufgebaut!");
            } catch(SQLException e) {
                e.printStackTrace();
            }
            return "some message";
        }

        @Override
        protected void onPostExecute(String message) {
            //process message
        }
    }

Jedoch kann keine Verbindung zur MySQL-Datenbank aufgebaut werden...

Error:

Code:
11-22 22:31:47.847 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err: java.sql.SQLException: Unable to connect to any hosts due to exception: java.net.SocketException: java.net.ConnectException: failed to connect to ts3.letszockwhatever.de/84.200.24.110 (port 3306): connect failed: ECONNREFUSED (Connection refused)
11-22 22:31:47.847 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err: ** BEGIN NESTED EXCEPTION **
11-22 22:31:47.847 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err: java.net.SocketException
11-22 22:31:47.847 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err: MESSAGE: java.net.ConnectException: failed to connect to ts3.letszockwhatever.de/84.200.24.110 (port 3306): connect failed: ECONNREFUSED (Connection refused)
11-22 22:31:47.847 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err: STACKTRACE:
11-22 22:31:47.847 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err: java.net.SocketException: java.net.ConnectException: failed to connect to ts3.letszockwhatever.de/84.200.24.110 (port 3306): connect failed: ECONNREFUSED (Connection refused)
11-22 22:31:47.847 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:143)
11-22 22:31:47.847 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:225)
11-22 22:31:47.847 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at com.mysql.jdbc.Connection.createNewIO(Connection.java:1805)
11-22 22:31:47.847 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at com.mysql.jdbc.Connection.<init>(Connection.java:452)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at java.sql.DriverManager.getConnection(DriverManager.java:179)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at java.sql.DriverManager.getConnection(DriverManager.java:213)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at de.kickerapp.falkopartzsch.kickerapp.gui.MainActivity$ConnectToMySQL.doInBackground(MainActivity.java:88)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at de.kickerapp.falkopartzsch.kickerapp.gui.MainActivity$ConnectToMySQL.doInBackground(MainActivity.java:64)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:295)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at java.lang.Thread.run(Thread.java:818)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err: ** END NESTED EXCEPTION **
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at com.mysql.jdbc.Connection.createNewIO(Connection.java:1875)
11-22 22:31:47.848 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at com.mysql.jdbc.Connection.<init>(Connection.java:452)
11-22 22:31:47.849 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
11-22 22:31:47.849 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at java.sql.DriverManager.getConnection(DriverManager.java:179)
11-22 22:31:47.849 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at java.sql.DriverManager.getConnection(DriverManager.java:213)
11-22 22:31:47.849 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at de.kickerapp.falkopartzsch.kickerapp.gui.MainActivity$ConnectToMySQL.doInBackground(MainActivity.java:88)
11-22 22:31:47.849 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at de.kickerapp.falkopartzsch.kickerapp.gui.MainActivity$ConnectToMySQL.doInBackground(MainActivity.java:64)
11-22 22:31:47.849 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:295)
11-22 22:31:47.849 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
11-22 22:31:47.849 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
11-22 22:31:47.849 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
11-22 22:31:47.849 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
11-22 22:31:47.849 8545-8612/de.kickerapp.falkopartzsch.kickerapp W/System.err:     at java.lang.Thread.run(Thread.java:818)

Was könnte der Fehler sein?
Desweiteren bin ich mir auch nicht zu 100% sicher was die Wahl des Ports (3306) angeht, jedoch ist dies der Standard-Port und sollte deswegen eigentlich richtig sein. Aber zur Sicherheit: Wie kann ich den Port der MySQL einsehen bzw abfragen?

Vielen Dank schon einmal im Vorraus!

Mit freundlichen Grüßen
Falke
 
Hallo FalkeNr1,

ich kann dir jetzt nicht bei deinem konkreten Problem helfen, aber in der heutigen Zeit macht man einen WebServer um auf die Daten zuzugreifen und die MySQL-Datenbank sollte nur von Localhost aufrufbar sein.

Einen WebServer bekommt man ziemlich leicht mit PHP oder NodeJS oder Python hin.

Wenn der WebServer steht, kannst du über eine URLConnection mittels eines AsyncTask darauf zugreifen.
 
Der Fehler kann überall sein. In der Netzwerktopologie kann der Port irgendwo gesperrt sein. Die Config des Servers kann so eingestellt sein, vielleicht hört er ja -wie es sich gehört- nur auf localhost.

Ansonsten hat Kardroid völlig recht. Ports von SQL Datenbanken sollten NIEMALS für die Welt offen sein. Man sollte immer einen Webserver o.ä. dazwischen schalten.
 
@FalkeNr1
ich kann mich meinen Vorrednern nur anschließen. Jedoch brauchst du dann noch eine zuverlässige Benutzerverwaltung. Wie sicher die sein muss hängt von den Daten ab die du in der Datenbank speichern willst. Und mit den Datenschutzgesetzen solltest du dich unbedingt auseinandersetzen.
Als Hobby-Programmierer würde ich eine Abhängigkeit zu einem Server gut überlegen, denn den wirst du dann nie wieder abschalten können solange jemand die APP nutzt. Außerdem solltest du den Server gegen Angriffe schützen.
Anfänger können sich nicht vorstellen welcher Aufwand geleistet werden muss um eine Sichere Client-Server-Server Architektur aufzubauen. Warum schreibe ich Server-Server?! Weil die Datenbank nicht auf dem selben Server sein darf. Denn wenn der Webserver geknackt wird hätte der Angreifer vollen Zugriff auf die Daten der Datenbank wenn sich diese auf dem selben Server befindet. Die Datenbank MUSS sich in einem LAN befinden und darf sich nicht im direktem Zugriff im Internet ausgesetzt sein. Jedoch dürften Hobby-Programmierer selten einen eigenen Server zu Hause haben und auch kaum über das notwendige Wissen verfügen.
Daher kann ich allen Anfängern nur abraten eine Client Server Architektur aufbauen zu wollen. Das sollte man denen überlassen die auch über das Wissen und Mittel verfügen.

Im folgendem Link gibt es ein Schönes Bild, welches das Prinzip einer Client-Server Architektur darstellt. Wenn man nich tin der Lage ist dieses Prinzip umzusetzen, dann sollte man es sein lassen, denn wenn die Datenbank personenbezogene Daten enthält und diese Öffentlich werden weil der Betreiber seinenPfilichten veräumt hat haftet dieser in vollem Umfange für Schäden.

Architekturen für Webanwendungen
 
Zuletzt bearbeitet von einem Moderator:
Okay ^_^
Danke auf alle Fälle für eure vielen Tipps!
Ich kann euch zumindestens in 2 Hinsichten beruhigen:
Die App ist für eine bestimmte kleine Zielgruppe gedacht, die ich auch alle privat kenne und die auch die einzigen sind die Zugang zu dieser kriegen, d.h. sie wird nicht für die ganze Welt frei verfügbar in einem App-Store erhältlich sein, sondern lediglich von MAXIMAL um die 20 Leuten. Desweiteren werden keine wirklich sensiblen Daten wie Passwörter oder Adressen in der Datenbank hinterlegt. "Lediglich" Vor- und Zuname und dazu deren Spielergebnisse.
Das mit der Serverabhängigkeit ist dementsprechend auch nicht das Problem, da diese MySQL Datenbank lediglich für mich zum testen dient und wenn die App funktionstüchtig ist wird ein Firmeneigener Server verwendentet, deren Online-Status von ebend jener Zielgruppe kontrolliert und notfalls geändert werden kann.

Das alles und natürlich auch, dass ich vergleichsweise ein Anfänger in der App-Entwicklung bin, trägt natürlich dazu bei, dass ich zum jetzigen Zeitpunkt weder auf großartige Verschlüsselungssysteme oder Datenschutzgesetze achte. Was jedoch nicht heißen soll, dass ich in eventuellen zukünftigen Projekten das genauso handhaben werde, jedoch stehe ich wie gesagt erst am Anfang.

JETZT möchte ich aber erstmal eine ordentliche Verbindung zur MySQL aufbauen. Ich habe auch Anleitungen gesehen wo die mit .json Dateien, also PHP Scripten gemacht wurde, jedoch habe ich mich da ein wenig von distanziert, da die als Zugriffspfad auf die JSONs immer einen lokalen Pfad auf dem Rechner angegeben haben und mich das etwas verwirrt hat, da das Handy ja theoretisch keinen Zugriff auf diese JSONs hat.
Oder liege ich damit jetzt komplett daneben?
 
Ich glaube, da geraten ein paar Sachen durch einander. Nonsens kann ich nur bedingt zustimmen. Du solltest es mal ausprobieren, wie willst du es denn sonst lernen. Nur es sollte Dir klar sein, dass du einen größeren Aufwand treiben muss, um die Daten sicher zu speichern.

JSON ist nur ein Art Daten zu formatierte, ähnlich wie XML oder CVS. Der Vorteil von JSON ist die Nähe zu Javascript.

Der direkte Zugriff auf eine Datenbank (Server) ist zwar möglich, aber nicht die Regel (sprich sehr, sehr selten). Auf Datenbanken liegen meist wichtige Daten, und deshalb ist es sinnvoll eine Wächter zwischen Datenbank und Web zu packen. Das sind normalerweise Webserver (mit PHP, Ruby, Java usw).
Normalerweise liefern Webserver HTML Seiten aus, aber sie können auch jeden anderen Daten ausliefern. Webserver sind Spezialisten für die Datenauslieferung ins Internet.
Es gibt noch einen zweiten Grund, der für ein Webserver spricht. Smartphone sind extrem langsame Rechner, deren Ressourcen extrem verschränkt sind (Akku, Speicher, RAM, Internetverbindung, langsame Datenbank(SQLite)). Aus Gründe der Performance macht es Sinn die Vorbereitung der Daten auf den wesentlich schnelleren Server zu überlassen. So das sich das Smartphone nur um die GUI kümmern muss.

---
Noch ein Nachtrag: Der Begriff Server wird sowohl für die Hardware, als auch für die Software benutzt. Früher lief aus jeden Rechner ein Server. Das gilt heute nicht mehr. Heute können viele Server auf einen Rechner (Server) laufen. Die einzelnen Server laufen in VM's (Virtuelle Maschinen), welche die Server von einander kapseln. Aber das ist dann eher der Wirkungsbereich von Admins. :)
 
Ob die Userbase beschränkt ist oder nicht, ist egal. Eine global sichtbare Datenbank fällt irgendwann irgendwelchen Botnetzen auf, wenn sie das Internet abscannen. Und ich würde mich nicht wundern, wenn die auch gleich einen Exploit ausprobieren. Okay, das wäre bei einem Webserver dazwischen genauso, aber die sind idR besser gegen sowas gewappnet.
 
markus.tullius schrieb:
Noch ein Nachtrag: Der Begriff Server wird sowohl für die Hardware, als auch für die Software benutzt. Früher lief aus jeden Rechner ein Server. Das gilt heute nicht mehr. Heute können viele Server auf einen Rechner (Server) laufen. Die einzelnen Server laufen in VM's (Virtuelle Maschinen), welche die Server von einander kapseln. Aber das ist dann eher der Wirkungsbereich von Admins. :)

Das kann ich so nicht stehen lassen, SERVER ist definitiv die Hardware und SERVICE die Software. SERVICE = DIENST
Leider wird der Begriff SERVER fälschlicherweise auch für die Dienste verwendet was nur zur Verwirrung beiträgt.
Ein Web-SERVER ist also ein Computersystem das den WEB-SERVICE bereit stellt. Und durch das bereitstellen von SERVICES wird das Computersystem zum SERVER (Servieren, bereitstellen).
 
Das ist alles gut und schön und ich bin echt dankbar für das zusätzliche Wissen!
Doch leider sitze ich immernoch an dem Problem, dass ich keine Verbindung zu der Datenbank aufgebaut bekomme :-/
Der lässt mich halt einfach nicht rein? Kann man das irgendwie über nen Umweg machen? Oder muss ich bei der Datenbank oder dem Server noch Einstellungen tätigen?
 
@FalkeNr1

Du kannst den MySQL-Port natürlich selber öffnen, das hat aber den Nachteil, dass du dann das Protokoll selbst handhaben musst. Für die Kommunikation mit Datenbanken gibt es Treiber. du brauchst also einen Treiber der die Kommunikation mit deiner Datenbank herstellt und auch die SQL-Statements weiterleitet und verwaltet. Bei MySQL sind das deie JDBC-Treiber. Hier ein Link.

Connecting to MySQL from Android with JDBC

Jedoch, brauchst du den unbedingt eine Datenbank? Denn, wenn da nur ein paar (1000) Tupel (Datensätze) hast, lohnt sich der Aufwand SQL zu erlernen nicht. Da ist es einfacher eine Klasse zu serialisieren und als Objekt in eine Datei zu speichern (so mach ich das) (ObjectStream)

Es wäre bestimmt für alle, die dir helfen wollen, hilfreich wenn du in deiner Signatur, deinen Wissenstand hinschreiben würdest. Damit man weis was Sache ist.
 
Nonsens schrieb:
Das kann ich so nicht stehen lassen, SERVER ist definitiv die Hardware und SERVICE die Software. SERVICE = DIENST
Bevor daraus eine größere Diskussion wird, zitiere ich mal die Wikipedia:
Ein Server (englisch server, wörtlich Diener oder Bediensteter, im weiteren Sinn auch Dienst[1][2]) ist ein Computerprogramm oder ein Computer, der Computerfunktionalitäten wie Dienstprogramme, Daten oder andere Ressourcen bereitstellt, damit andere Computer oder Programme („Clients“) darauf zugreifen können, meist über ein Netzwerk. Dabei hat Server zwei verwandte, aber unterschiedliche Grundbedeutungen:

Ein Server (Software) ist ein Programm, das im Client-Server-Modell mit einem anderen Programm, dem Client (englisch für Kunde), kommuniziert. Der Client kann dadurch bestimmte, von der Server-Software bereitgestellte Funktionalitäten nutzen, zum Beispiel Dienstprogramme, Netzwerkdienste, den Zugang zu einem Dateisystem oder eine Datenbank.

Ein Server (Hardware), siehe Host (Informationstechnik), ist ein Computer, auf dem ein oder mehrere Server (Software) laufen.
Server – Wikipedia

PS: Unter Windows sind Dienste nicht unbedingt Server (keine Netzwerkverbindung). ;)

---
@FalkeNr1
Im Endeffekt kann ich dir nur empfehlen, es einfach auszuprobieren. Alles ist erlaubt, nur sollte der Datenbankserver nicht direkt vom Internet erreichbar sein. Wenn du einen recht direkten Zugang auf deinen Datenbankserver suchst, welche über einen Webserver läuft, schau Dir mal die REST-Schnittstelle an. Representational State Transfer – Wikipedia
Bei einem Webserver hast du viele Möglichkeiten. Am besten du suchst dir ein LAMP, das ist ein Softwarepaket, welches Dir ein Großteil der Arbeit abnimmt (Meisten enthalten sie neben dem Webserver noch einen Datenbankserver).
LAMP (Softwarepaket) – Wikipedia
Die einfachste Variante einer Programmiersprache für den Webserver ist PHP. PHP läßt sich recht schnell erlernen.
 
Okay, vielen Dank!
Signatur ergänzt und durch eure Vorschläge werde ich mich die nächsten Tage forsten.
Falls noch weitere Vorschläge vorhanden sein sollte, trotzdem immer gerne her damit.

@Nonsens Die Anbindung über eine externe Datenbank ist notwendig, damit alle Benutzer die selben Statistiken abrufen und mit neuen Ergebnissen ergänzen können. Die lokale SQLite Datenbank, wo die Daten direkt auf dem Gerät abgelegt werden besteht bereits, soll jetzt aber durch die externe Variante ersetzt werden, damit diese Synchronisation aller Teilnehmer erfolgen kann.
 
markus.tullius schrieb:
Nonsens schrieb:
Das kann ich so nicht stehen lassen, SERVER ist definitiv die Hardware und SERVICE die Software. SERVICE = DIENST
Bevor daraus eine größere Diskussion wird, zitiere ich mal die Wikipedia:

.
Wikipedia hat auch einen Spitznamen, den will ich hier aber nicht wiederholen. Aus Wikipedia kann man viele gute Informationen fischen. Dennoch ist Wikipedia kein Zertifiziertes Lexikon. Da kann jeder reinschreiben was immer man will. So lange niemand den Artikel revidiert ist das dann richtig auch wenn es erfunden/gelogen ist und revidiert wird selten. Ich wollte einen Artikelkampf vermeiden und einen eigenen Artikel in Wikipedia zu einem bestimmten Thema veröffentlichen was aber abgelehnt wurde. Seit dem ist Wiki... für mich nicht mehr wirklich glaubwürdig sondern nur noch als Hinweisfinder nutzbar.

Der Duden ist da viel glaubwürdiger

Duden | Server | Rechtschreibung, Bedeutung, Definition, Herkunft

Duden | Service | Rechtschreibung, Bedeutung, Definition, Synonyme, Herkunft

update
hier noch ein Link was die Glaubwürdigkeit von wiki beschreibt.

Wikipedia-Kritik – WikiMANNia

grüße
 
Zuletzt bearbeitet von einem Moderator:
Und was ist dann ein Server in einer VM. Ein Dienst? Die Hardware wird ja simuliert. Und auf den Rechner laufen dann mehrere Betriebssysteme, die zum Teil gleichzeitig verschieden Kerne des Rechner benutzen benutzen. Und das OS weiß nicht mal, das es auf simulierter Hartware läuft.
Dein Wissensstand entspricht der Zeit vor den Virtuellen Maschinen. Da galt das wirklich 1 Rechner = 1 Server. Heute wird wirklich dazwischen unterschieden. Und spätestens wenn du so was wie Docker oder Elexier benutzt, verschwinden die Grenzen völlig.
Wenn du mir nicht glaubst, schau dir mal Cluster und Großrechner an. Da kommst du mit deiner Definition nicht sehr weit. Schau Dir mal das Betriebssystem z/VM an.
[doublepost=1479937752,1479937331][/doublepost]---
Bei Strato kann man sogar virtuelle Server mieten. ;)
 
markus.tullius schrieb:
Und was ist dann ein Server in einer VM. Ein Dienst? Die Hardware wird ja simuliert. Und auf den Rechner laufen dann mehrere Betriebssysteme, die zum Teil gleichzeitig verschieden Kerne des Rechner benutzen benutzen. Und das OS weiß nicht mal, das es auf simulierter Hartware läuft.
Dein Wissensstand entspricht der Zeit vor den Virtuellen Maschinen. Da galt das wirklich 1 Rechner = 1 Server. Heute wird wirklich dazwischen unterschieden. Und spätestens wenn du so was wie Docker oder Elexier benutzt, verschwinden die Grenzen völlig.
Wenn du mir nicht glaubst, schau dir mal Cluster und Großrechner an. Da kommst du mit deiner Definition nicht sehr weit. Schau Dir mal das Betriebssystem z/VM an.
[doublepost=1479937752,1479937331][/doublepost]---
Bei Strato kann man sogar virtuelle Server mieten. ;)

Auch beim einer Virtualisierung bleibt es beim selben, der Server ist die Grundlage für den Dienst. Die Virtualisierung stellt keine Dienste bereit aber virtuelle Server. Computer & Betriebssystem = Server. Apache, Tomcat, MySQL oder wie auch immer die Software sich nennt, sobald die Software einen Port öffnet auf dem sie lauscht ist diese Software ein Service. Das Betriebssystem (Kernel) kommt ohne Programme nicht aus, so enthält das Betriebssystem auch selbst Programme die einen Port = Dienst öffnen. Zum Beispiel SSH(Dienst) was zur Wartung verwendet wird.

Ein VM-Host simuliert eine Computerhardware (meist mit KME) (Hab mir einen VMware sphere hypervisor eingerichtet) Das Betriebsystem "sieht" ein virtuelles BIOS ganz so wie bei Hardware. In einem VM-Host wird dann wie üblich das Betriebssystem des "Servers" installiert. Und damit keine Missverständnisse aufkommen spricht man vom "VM-Host" Und "VM-Guest". Aus dem Netz (LAN) wird der VM-Host nicht "gesehen" sondern nur die VM-Guest, ein virtueller Server ist im LAN so wie wenn er seine eigene Hardware hätte.

Der Server ist die Grundlage für den Dienst und ein VM-Host die Grundlage für einen virtuellen Server. :biggrin:

Grüße
 
Alles OFF TOPIC:

Der Hacken an der Sache ist ganz einfach. Der Begriff Server ist nicht geschützt. Jeder benutzt ihn so, wie er will. Microsoft nennt sein Betriebssystem Server, bei Linux(Debian) wird man bei der Installation gefragt, ob meinen Datenbank und einen Webserver installieren will. Mein Laptop ist kein Server(Hardware), hat aber schon mal über das Internet Webseiten dargestellt (feste API). Da war er dann sowohl Client als auch Server. Ich werde mich weiter an die Definition der Wiki halten. ;)
Die Begriffe sind sehr fließend, genauso wie die Hardware. So sind BIOS/EFI sind begriffe aus der Welt der Home PC. Ein Großrechner hat in der Form kein Bios. Für den ist eine Tastatur, eine Festplatte, ein Monitor nur ein Datei. ;)
 
Ich möche auch meinen Scheiß zum OT beitragen und sagen, dass unsere Kunden sehr oft nicht mehr Server sagen, wenn Daten nicht lokal gehalten werden, sondern Cloud :)
 
  • Danke
Reaktionen: markus.tullius
Hallo alle, (ich weis OT)

um die Verwirrung nicht zu vergrößern empfehle ich eine Sprach zu verwenden, die nicht verwirrt. Darum empfehle ich SERVER nur dann zu verwenden wenn die Hardware (auch virtuelle) gemeint ist. Und SERVICE nur dann zu verwenden wenn ein Dienst gemeint ist. Cloud ist eine Wolke eines Online-Systems. Wolke deswegen weil die Technik hinter einer Wolke steckt.

Deutlich wird es wenn man einem Mitarbeitet eine Aufgabe zuweist:

"Installiere auf dem SERVER (auch virtuell) xyz das Betriebssystem XYZ"
"Installiere auf dem VM-Host X eine VM mit dem Betriessystem XYZ"
"Installiere auf dem SERVER XYZ den WEB-Dienst XXXX"

Muss man das ganz korrekt bezeichnen und differenzieren. Verwirrung wird nur deshalb gestiftet weil sich einige nicht an die Bedeutung der Worte halten. Auch das Wort Cluster wird of falsch verwendet.

Grüße
 
Hallo, da bist du am falschen Ort. ;)
Sobald sich ein Bergriff vermarkten lässt, wird er geprügelt bis keiner mehr weiß. was damit genau gemeint ist. :)

Cloud, Hash, Darknet, usw. Begriffe mit den unterschiedlichsten Bedeutungen. Gewöhne Dich einfach daran, das es für Server keine einheitliche Sprachregelung gibt. Für Exaktheit muss du zu den Mathematik gehen. :)
 
markus.tullius schrieb:
Hallo, da bist du am falschen Ort. ;)
Sobald sich ein Bergriff vermarkten lässt, wird er geprügelt bis keiner mehr weiß. was damit genau gemeint ist. :)

Cloud, Hash, Darknet, usw. Begriffe mit den unterschiedlichsten Bedeutungen. Gewöhne Dich einfach daran, das es für Server keine einheitliche Sprachregelung gibt. Für Exaktheit muss du zu den Mathematik gehen. :)

Doch, für Server gibt es wohl eine Sprachregelung, nur halten sich viele nicht daran. Und das ist das problem, dass viele die Begriffe willkürlich verwenden und das auch von jenen die es besser wissen sollten.

grüße

:smile::smile:
 

Ähnliche Themen

B
Antworten
0
Aufrufe
685
basementmedia
B
KL7000F
  • KL7000F
Antworten
9
Aufrufe
1.005
KL7000F
KL7000F
H
Antworten
6
Aufrufe
1.151
haner
H
Zurück
Oben Unten