Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Von Android/iOS auf einen entfernten Windows-Rechner zugreifen (https://www.delphipraxis.net/193631-von-android-ios-auf-einen-entfernten-windows-rechner-zugreifen.html)

GerdPl 23. Aug 2017 14:48

Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Zu folgendem Problem würde ich gerne mal eure Meinung oder Lösungsansätze hören:

Es soll eine App unter Firemonkey entwickelt werden, mit der bestimmte Statistiken und Artikeldaten angezeigt werden sollen. Die dazugehörigen Daten liegen in einer Firebird-DB auf einem Windows-Server im Unternehmen des Kunden. Die App soll sowohl für Android als auch für iOS verfügbar sein.

Ich suche jetzt eine elegante, einfache und sichere Möglichkeit, um von der App irgendwie auf die Daten beim Kunden zugreifen zu können.
Dabei sollte der Kunde möglichst wenig an seiner Netzwerkkonfiguration ändern müssen. Somit fallen Lösungen die mit Portforwarding arbeiten schon mal weg. Beim Kunden muss man in der Regel von einem herkömmlichen DSL-Zugang mit Standardrouter ausgehen. Also keine feste IP, keine Standleitung, etc.

Die Statistikdaten in eine Cloud zu spiegeln fällt auch weg, weil es a) Echtzeitdaten sein sollen und b) später auch in die DB zurückgeschrieben werden soll.

Toll wäre die Möglichkeit, zwischen den Geräten ein VPN aufzubauen, über das die Zugriffe erfolgen. Aber leider scheint es keine funktionierenden Komponenten für Delphi bzw. Firemonkey zu geben.
Ich habe zwar im Internet unter http://devp2p.com/ eine vielversprechende Lösung gefunden, aber aufgrund der spärlichen Beschreibung krieg ich die Lösung nicht ansatzweise unter Android zum Laufen. Der Hersteller kann auch nicht wirklich dabei helfen, wie man das in FM integriert.

Vielleicht kennt jemand devp2p oder weiß eine andere Möglichkeit, wie man den Datenaustausch hinkriegen könnte.

Jetzt bin ich mal gespannt auf eure Ideen und Denkanstöße.
Vielen Dank dafür im Voraus!

Sherlock 23. Aug 2017 14:52

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Du kannst zumindest unter iOS ein VPN explizit einrichten (ganz sicher auch unter Android). Wenn Du dann noch in Deiner Applikation die Server IP konfigurierbar machst, sollte der Käse gegessen sein.

Sherlock

GerdPl 23. Aug 2017 14:59

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Ja, daran hab ich auch schon gedacht, aber ich denke, das ist zu kompliziert für die Kunden.
Zum Einen die Einrichtung unter Android/iOS (die man ja noch irgendwie beschreiben könnte), aber zum Anderen muss ja auch auf der Gegenseite was eingerichtet werden und ein 08/15-Standard-Telekom-Router unterstützt kein VPN. Außerdem müsste der Kunde eine feste IP haben oder sich mit DDNS auseinandersetzen.

Man muss davon ausgehen, dass die Zielgruppe keine IT-Erfahrung hat...

mkinzler 23. Aug 2017 15:07

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Befinden sich die Geräte während der Nutzung im Netz des jeweiligen Kunden?

GerdPl 23. Aug 2017 15:09

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Zitat:

Zitat von mkinzler (Beitrag 1379254)
Befinden sich die Geräte während der Nutzung im Netz des jeweiligen Kunden?

Nein, von überall aus.

mkinzler 23. Aug 2017 15:22

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Eien Lösung für dieses Problem ist sicherlich nicht leicht. Ohne "Cloud" wird es nicht gehen.
Es müssen dort ja keine Daten vorliegen, diese würde nur als Portal/Broker fungieren, mit der sich die Clients und das BackEnd verbinden würden.

Der schöne Günther 23. Aug 2017 15:27

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Ich finde es auch etwas verwunderlich, die Anforderungen sind für die Ressourcen (dynamische IP, kein IT-Wissen, nur eine dauerhaft eingeschaltete Kiste hinter einem Heim-Anschluss) ein bisschen hoch. So einfach wie "App aufs Handy laden und gut ist" wird das sicher nicht.

GerdPl 23. Aug 2017 15:35

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Ja, dass es dafür keine einfache Lösung gibt, ist mir klar. Das ist ja auch der Grund für diesen Thread.
Es wundert mich nur, dass nicht noch mehr Leute diese Problemstellung haben...

mkinzler 23. Aug 2017 15:39

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Die Anforderungen passen einfach nicht zur technischen Ausstattung.

Wenn es sich um viele Kunden handelt. Würde ich eine zentralen Brokerdienst als zusätzliches Angebot anbieten.

Sherlock 23. Aug 2017 15:41

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
VPN ist an der Stelle die Minimallösung, wenn Cloud explizit ausgeschlossen wird.
Die Konfiguration eines VPN geht auch auf Client-Seite per Konfigurationsdatei (ich sehe nur die Apple-Seite, für Android gibt es mit Sicherheit ähnliches) https://www.howtogeek.com/216137/cre...nes-and-ipads/
Aber irgendeiner muss halt etwas Hirn in die Router/Firewall Konfiguration stecken...das ist andererseits der Normalzustand(!)

Sherlock

GerdPl 23. Aug 2017 15:48

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Ja, ich tendiere auch immer mehr zu einer VPN-Lösung.

Hast du dir die Lösung unter devp2p.com mal genauer angesehen? Wenn ich die zum Laufen kriegen würde, wäre das die Lösung.
Vielleicht sollte ich da noch mehr Hirnschmalz reinstecken...

Konkret geht es dabei um das Einbinden einer .so-Datei im Firemonkey. Davon hab ich keine wirkliche Ahnung. Aber das wäre an dieser Stelle OT und ich mache bei Bedarf besser einen neuen Thread auf.

Aber vielleicht kommen ja auch noch andere Ideen oder Anregungen, daher lass ich die Frage mal offen

Sherlock 23. Aug 2017 15:59

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Sorry, aber das sieht mir nicht seriös aus. Keine Infos zum Hersteller zu finden. Letzte Aktualisierung der Seite 2015. Letzte Aktualisierung der Software 2014. Support Ticket System Offline.

Das ganze weckt in mir kein Vertrauen. VPN ist doch aber wirklich kein großes Ding.

Sherlock

zagota 23. Aug 2017 15:59

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Zitat:

Zitat von GerdPl (Beitrag 1379264)
Ja, ich tendiere auch immer mehr zu einer VPN-Lösung.

Hast du dir die Lösung unter devp2p.com mal genauer angesehen? Wenn ich die zum Laufen kriegen würde, wäre das die Lösung.
Vielleicht sollte ich da noch mehr Hirnschmalz reinstecken...

Dann hast du eine Lösung für den Client aber immer noch kein Server. Du könntest auf dem Server, auf dem die DB läuft ein VPN-Server installieren. Heißt aber auch, du musst dich um:
- Portfreigaben
- VPN-Protokoll
- DHCP
- Firewall
kümmern. Da brauch es schon tiefere Netzwerkkenntisse um keine Sicherheitslöcher aufzureißen.

Sherlock 23. Aug 2017 16:05

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Neee, das devp2p ist vom Gedanken her Peer to Peer VPN. Die Verbindung erfolgt zwischen zwei devp2p Clients...ohne Einbeziehung der Firewall vermutlich über normalerweise offene Ports wie 80 oder 443.

Sherlock

HolgerX 23. Aug 2017 17:04

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Hmm..

Egal ob PeerToPeer, VPN oder sonst eine Verbindung:

Ohne zumindertest einen Repeater hast Du hier schlechte Karten, wenn beide Seiten durch Router/Firewall oder Dynamische IPs getrennt sind.

Ein Beispiel hierfür ist TeamViewer, dieser lässt eine Verbindung auch von zwei gekapselten Rechnern zu, da hier eine Zentraler Server bei der Fa. TeamViewer als Repeater eingesetzt wird.

Sprich beide Seiten verbinden sich mit diesem und dieser stellt dann die Verbindung dar.

Nach diesem Prinzip könnte deine (Handy) App nen VPN zu deinem, übers Internet erreichbaren Server herstellen.
Dort ist bereits eine weitere App mit Datenbank-Zugriff vom Kundenserver per VPN angemeldet (Automatische Neuanmeldung bei Start).

Dann kann eine Datenanfrage von deiner (Handy) App an die App mit Datenbank über deinen Repeater erfolgen.

Zur Konfiguration würde eigentlich seitens des Kunden eine z.B. KundenID in beide Apps eingetragen werden, damit ein Kunde auch nur mit seinem Server kommuniziert, alle weiteren Konfiguration (Repeater-Server, VPN-Einstellungen) würden durch ein Konfig-File von Dir vorgegeben werden.

Nur so eine Idee.... ;)

mensch72 23. Aug 2017 17:48

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
so unbekannt & kompliziert ist das Problem nun auch nicht... das ja auch der breiten Masse als TeamViewer-Konzept bekannte Verfahren, bietet sich für solche "Client2Client" Verbindungen an.

Es braucht dazu nur einen im Inet verfügbaren Server, wo eine Software drauf läuft, welche logisch für n:m Connects ausgelegt ein sollte.
Klar bietet das Angriffsfläche und Datenschutzprobleme, aber wenn die Clients nur selbst per z.B. AES End2End verscchlüsselte Daten austauschen, können die WorstCase sicher im ganzen INet mitgehört werden, aber dekodieren kann sie soeinfach niemand, wenn niemals der Key auf diesem Weg verschickt wird.

Da reicht als dummes ServerGateway in Step1 auch was per Indy zusammengeklicktes.

Wenn man TMS Componenten verfügbar hat, nehme konfiguriere man per XDATA einen HTTPS/SSL verschlüsselten SokectServer und installiere ein eigenes SSL Zertifikat, dann ist nach Connect auch die Datenstrecke per SSL noch Standard verschlüsselt... letztendlich dist diese SSL plus XY Verschlüsselung bei Teamviewer so zig tausende Male im Einsatz und da installiert man als Anwender nur eine ganz einfache APP, zu 99% muss sich niemand um irgendwelche Netzwerkfragen kümmern (wenn nich ein ehrgeiziger Admin da explizit Steine in den Weg gelegt hat).


Die einfache technische Basis auf Anwender und Betreiberseit mit ner StandardDSL Konfihuartion ist also nicht so schlimm, solange es zentral im Inet für ja schon 10..15€/MOnat zu haben einen RootServer gibt, wo man seine eigene kleine und funktional möglichst dumme "Gateway-Software" drauf installiert.
Mit etwas Aufwand für Authentifizierung und einer (von extern) zu Konfigurierende Liste der zulässigen N:M Verbindungen ist das Konzept um Aufwand als auch von Datenschutz unschlagbar, denn der Server speicher NULL Daten, er empfängt nur in den RAM und leitet die Daten realtime an die zur Verbindung hinterlegten Clients weiter. Man braucht sich also "nur" um die Sicherheit der Verbindungen zu kümmern.

RWarnecke 24. Aug 2017 09:47

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Ich würde das ganze mit einer Fritzbox und dem Dienst MyFritz aufbauen. Beide Sachen sind einfach zu konfigurieren. Damit habe ich eine sichere VPN-Verbindung für iOS und Android. MyFritz stellt Dir sogar auch gleich kostenlos einen DNS-Namen zur Verfügung. Wenn man sich jetzt mit VPN verbindet, kannst Du im Netzwerk so agieren, als wenn Du per LAN-Kabel angeschlossen bist.

Sherlock 24. Aug 2017 09:53

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Zitat:

Zitat von RWarnecke (Beitrag 1379333)
Wenn man sich jetzt mit VPN verbindet, kannst Du im Netzwerk so agieren, als wenn Du per LAN-Kabel angeschlossen bist.

Ich bin nicht so Firm in der Materie drin, aber gilt das nicht für alle VPN-Verbindungen?

Sherlock

RWarnecke 24. Aug 2017 09:55

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Zitat:

Zitat von Sherlock (Beitrag 1379336)
Ich bin nicht so Firm in der Materie drin, aber gilt das nicht für alle VPN-Verbindungen?

Theoretisch ja. Bei anderen VPN-Lösungen musst Du aber noch mehr Einstellungen machen, so dass Du auf Dein Netzwerk zugreifen kannst. Bei AVM und der Fritzbox ist das sofort da ohne weitere Einstellung. Habe mich vielleicht ein bisschen undeutlich ausgedrückt.

Sherlock 24. Aug 2017 09:58

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Zitat:

Zitat von RWarnecke (Beitrag 1379337)
Zitat:

Zitat von Sherlock (Beitrag 1379336)
Ich bin nicht so Firm in der Materie drin, aber gilt das nicht für alle VPN-Verbindungen?

Theoretisch ja. Bei anderen VPN-Lösungen musst Du aber noch mehr Einstellungen machen, so dass Du auf Dein Netzwerk zugreifen kannst. Bei AVM und der Fritzbox ist das sofort da ohne weitere Einstellung. Habe mich vielleicht ein bisschen undeutlich ausgedrückt.

Achso, nein, den Teil habe ich verstanden, es geht also um die komfortable Konfiguration (?). Wenn aber nun die Anwender keine Fritzbox haben oder kaufen wollen?

Aber ich denke wir sollten abwarten, wie sich der TE zum bisherigen Verlauf äußert.

Sherlock

GerdPl 24. Aug 2017 10:29

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Klar, mit VPN zum Beispiel über die FritzBox und einem MyFritz-Konto würde es natürlich funktionieren, aber ich kann nicht davon ausgehen, dass alle Kunden eine FritzBox haben.
Ausgangslage war ja, dass der Kunde nichts (oder nur wenig) an seiner bestehenden Netzwerkstruktur ändern muss.

Wie der Zugriff technisch machbar wäre, ist mir klar, aber ich suche nach einer Klick-und-fertig-Lösung, die der laienhafte Kunde selbst aktivieren kann...

Ich bin inzwischen nun doch wieder bei der P2P-VPN Lösung (devp2p.com) gelandet, die mir am sinnvollsten erscheint, wenn ich sie dann mal ans laufen bekommen würde.

(Irgendwelche Spezialisten hier, die sich mit der Einbindung von .so-Dateien unter Firemonkey auskennen? Bitte melden! :-D)

GerdPl 24. Aug 2017 10:33

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Übrigens danke an alle, die sich bis jetzt so rege an der Diskussion beteiligt haben.

Mir ist klar, dass es vielleicht nicht DIE perfekte Lösung für das Problem gibt, aber ich finde es immer wieder interessant, welche Ideen und Anregungen sich aus einer solchen Frage ergeben. Ich bin lange genug Entwickler um zu wissen, dass manchmal ungewöhnliche Wege zum Ziel führen und man gute Lösungen oft erst in der Diskussion mit anderen findet.

MyRealName 24. Aug 2017 15:29

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Also ich hab jetzt nicht alle Antworten gelesen, aber ich greife von einer mobilen app für unser Bestellwesen auf den server und die DB dort zu.
Das ganze mache ich über RealThinClient und 2 oder 3 Funktionen. Ich lade über eine Funktion entfernte Stamm-Daten wie Kunden, Produkte etc runter (und aktualisiere auch dann wenn was geändert wurde) und ich lade Daten (welche durch die App generiert wurden) hoch in einer 2. Funktion.
Die erste Funktion habe ich so gebaut, dass ich ein SQL und eine Id sende und die Daten über JSON zurückbekomme und dann die lokale DB aktualisiere (über einen Batchmove). Das ganze sind vllt 30 Zeilen aufm Server und 50 in der app.

Beim Datenhochladen warte ich auf das Ok vonm Server, dass alles da ist und dann setze ich es lokal auf gesendet.

Besteht keine Internet Verbindung, dann wartet die app, bis dann eine besteht und kann solange autonom arbeiten. Hätte ich eine direkte DB-Verbindung gewählt, müsste das mobile internet benutzt werden und die Verbindung ausreichend stabil sein. Ich halte das für problematisch, zumindest in meinen Breitengraden.


Ich hoffe, das hilft

GerdPl 24. Aug 2017 17:58

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
@MyRealName

Danke für den Tip, aber es geht hier vor allem darum, wie man die Verbindung zwischen App und dem Server (bzw. DB) hinter einer Firewall hinkriegt. Lässt sich das mit den RTC-Komponenten ohne Änderungen an der Netzwerkumgebung lösen?

Das Abrufen der Daten ist ja dann kein Problem mehr.

Aviator 24. Aug 2017 18:07

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Zitat:

Zitat von GerdPl (Beitrag 1379389)
Lässt sich das mit den RTC-Komponenten ohne Änderungen an der Netzwerkumgebung lösen?

Ohne mich jetzt komplett durch den Thread gelesen zu haben behaupte ich einfach mal nein. Wenn eine Firewall dazwischen steht, dann muss zumindest mal ein Portforwarding eingerichtet werden. Ist das nicht der Fall, dann geht da auch nix durch von außen.

Also kleinere Änderungen müssten da mit Sicherheit am Netzwerk vorgenommen werden. Und einfach mal so einen Port an einen Server weiterleiten ... kann ins Auge gehen. Der Server der von außen zugreifbar sein soll, der sollte dann auch am besten in einer DMZ stehen.

RWarnecke 24. Aug 2017 22:36

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Zitat:

Zitat von GerdPl (Beitrag 1379341)
Klar, mit VPN zum Beispiel über die FritzBox und einem MyFritz-Konto würde es natürlich funktionieren, aber ich kann nicht davon ausgehen, dass alle Kunden eine FritzBox haben.
Ausgangslage war ja, dass der Kunde nichts (oder nur wenig) an seiner bestehenden Netzwerkstruktur ändern muss.

Suchst Du jetzt nach einer Lösung für jedermann oder nur für einen spezifischen Kunden ? Denn in diesen beiden Sätzen werden nämlich zwei unterschiedliche Situationen dargestellt.

Zitat:

Zitat von GerdPl (Beitrag 1379341)
Wie der Zugriff technisch machbar wäre, ist mir klar, aber ich suche nach einer Klick-und-fertig-Lösung, die der laienhafte Kunde selbst aktivieren kann...

Ich bin inzwischen nun doch wieder bei der P2P-VPN Lösung (devp2p.com) gelandet, die mir am sinnvollsten erscheint, wenn ich sie dann mal ans laufen bekommen würde.

Wenn es nur für einen Kunden ist, warum dann nicht nachhaken oder ermitteln, ob er einen Router hat, womit man eine entsprechende VPN Verbindung herstellen kann. Und Geschäftsdaten nur über Port 80 oder 443 halte ich auch nicht gerade für eine sichere Lösung. Dazu hätte ich noch ein schlechtes Gewissen, wenn ich das einen Kunden anbieten würde.

GerdPl 30. Aug 2017 15:31

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Zitat:

Zitat von RWarnecke (Beitrag 1379401)
Zitat:

Zitat von GerdPl (Beitrag 1379341)
Klar, mit VPN zum Beispiel über die FritzBox und einem MyFritz-Konto würde es natürlich funktionieren, aber ich kann nicht davon ausgehen, dass alle Kunden eine FritzBox haben.
Ausgangslage war ja, dass der Kunde nichts (oder nur wenig) an seiner bestehenden Netzwerkstruktur ändern muss.

Suchst Du jetzt nach einer Lösung für jedermann oder nur für einen spezifischen Kunden ? Denn in diesen beiden Sätzen werden nämlich zwei unterschiedliche Situationen dargestellt.

Zitat:

Zitat von GerdPl (Beitrag 1379341)
Wie der Zugriff technisch machbar wäre, ist mir klar, aber ich suche nach einer Klick-und-fertig-Lösung, die der laienhafte Kunde selbst aktivieren kann...

Ich bin inzwischen nun doch wieder bei der P2P-VPN Lösung (devp2p.com) gelandet, die mir am sinnvollsten erscheint, wenn ich sie dann mal ans laufen bekommen würde.

Wenn es nur für einen Kunden ist, warum dann nicht nachhaken oder ermitteln, ob er einen Router hat, womit man eine entsprechende VPN Verbindung herstellen kann. Und Geschäftsdaten nur über Port 80 oder 443 halte ich auch nicht gerade für eine sichere Lösung. Dazu hätte ich noch ein schlechtes Gewissen, wenn ich das einen Kunden anbieten würde.

Sorry, wenn das vielleicht missverständlich war. Wir reden hier von vielen Kunden. Im Moment über 1000 und ich hoffe, es werden noch deutlich mehr. :-D
Das ist ja auch der Grund, warum ich darüber nachdenke, wie man das möglichst kundenfreundlich und einfach realisieren kann, weil ich nicht bei jedem Kunden mir die Netzwerksituation ansehen kann und will.

Ich bin nun mit dem Hersteller von DEVP2P in Kontakt. Grundsätzlich scheint das die einzige Möglichkeit zu sein, es hinzukriegen. Unter Windows sieht es auch sehr gut aus und man kann eine Verbindung zur DB aufbauen.

Es scheitert nur im Moment an Android, wobei das auch daran liegen kann, dass ich mich in diesem Umfeld zu wenig auskenne. Der Hersteller liefert für Android eine so-Datei aus und ich finde nicht den Dreh, diese in Firemonkey so einzubinden, dass es klappt. Ein Test unter iOS steht auch noch aus. Aber wenn's schon mal unter Android laufen würde, wäre ich einen großen Schritt weiter. Daher werde ich mich jetzt mal auf die Suche nach jemanden machen, der sich mit so-Files, Andoid und Firemonkey auskennt. Aber das ist jetzt OT und daher schließe ich hiermit die Frage.

Allen nochmal herzlichen Dank für die Tipps und Ratschläge. Macht doch immer wieder Spaß, sich mit solch kniffligen Aufgaben zu beschäftigen.:)

mkinzler 30. Aug 2017 15:34

AW: Von Android/iOS auf einen entfernten Windows-Rechner zugreifen
 
Bei so vielen Kunden, würde ich eine Portallösung auf Jedenfall in Betracht ziehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz