[php]Gebruik DLL op Linux

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • jbdeiman
  • Registratie: September 2008
  • Laatst online: 22:37
Een vraag waarop ik niet zo snel een eenvoudig (of eenduidig) antwoord kon vinden via Google, maar ook niet hier op het forum. Voor mijn werk als webprogrammeur voor een financieel adviseur kom ik met het volgende probleem in aanraking:
Er moet een module komen voor het berekenen van verzekeringspremies. Deze module wordt gemaakt met behulp van een zogeheten black box die is aangeleverd door een grote verzekeraar. (de naam doet er hier niet toe)

Deze black box kan berekeningen uitvoeren door gebruik te maken van een DLL en moet volgens degene die het geleverd heeft gewoon kunnen werken op internet, maar hoe dat weet hij niet. Ook de "linux expert" daar kon me niet uitleggen hoe dit dan zou moeten.

Kan ik deze DLL wel gebruiken voor berekeningen op de Linux server? (kan ik evt. aan de leverancier van de server vragen om een bepaalde extensie aan te zetten oid, zodat die dll te gebruiken is?) of is het mogelijk om op 1 of andere manier de dll te "decompilen" en dan om te zetten naar werkbare PHP code?

Het mooiste zou zijn als die dll gewoon te gebruiken is voor acties en berekeningen natuurlijk.

Acties:
  • 0 Henk 'm!

Verwijderd

http://www.nirsoft.net/utils/dllexp.zip

Geen idee of het werkt. Maar proberen kan geen kwaad ?

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Simpel gezegd : vergeet het maar.

Met een windows server kan je dll's aanspreken vanuit php.

Met een linux server is dit zo goed als onmogelijk omdat een dll in 99% van de gevallen gebruik maakt van windows calls.
Het decompilen van de dll is zo goed als zeker illegaal als het als blackbox functie bedoeld is.

Gewoon op zoek gaan naar windows hosting is het makkelijkste.

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Vragen of de broncode van de DLL gecompileerd kan worden voor Linux.

Acties:
  • 0 Henk 'm!

Verwijderd

Dat zal waarschijnlijk niet 1, 2, 3 gaan, aangezien je nog wel eens tegen OS-specifieke calls aan kan lopen :)
Het is uiteraard het proberen waard.

[ Voor 15% gewijzigd door Verwijderd op 11-12-2009 12:43 ]


Acties:
  • 0 Henk 'm!

  • pasz
  • Registratie: Februari 2000
  • Laatst online: 01-09 23:08
Wat voor DLL is het eigenlijk ?
Een COM of .NET dll ?

woei!


Acties:
  • 0 Henk 'm!

  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 15-07 15:35

leuk_he

1. Controleer de kabel!

Nee, so simpel is het niet.

DLL is een window dynamische library. Je roept in die library een functie aan en die geeft iets terug.

Je kunt windows applicaties onder "wine" draaien. Dit gaat je wel de nodige overhead kosten en is niet geinstalleerd op een standaard webserver. Ik denk dat je het simpelst een kleine .exe file kunt maken op windows die een file leest en de resultate ook weer in een file zet. Dat kun je ook in linux dan voor elkaar krijgen via wine (exec wine jouwwrapper.exe)

Kijk wel eerst met depends of de dll geen hele grote afhankelijkhednheeft (.NET ofzo)

Wine geeft wel veel overhead! Als je de optie hebt om de dll file in een linux formaat formaat te krijgen heeft duidelijk de voorkeur. Als je de mogelijkheid hebt een windows web server te gebruiken is het ook veel simpeler

Decompilen is hoogstwaarschijnlijk niet te doen, tenzij ze met .net de code hebben geinclude.Dan kun je porten naar mono

[ Voor 7% gewijzigd door leuk_he op 11-12-2009 12:53 ]

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 01:47

DexterDee

I doubt, therefore I might be

Een DLL is een windows specifiek bestandsformaat. Daar kan Linux niks mee, tenzij je daar een hele specifieke wrapper omheenschrijft. Een voorbeeld hiervan is ndiswrapper, waarmee je specifieke wireless drivers voor windows aan de praat kan krijgen in Linux.

Als die DLL je enige mogelijkheid is om die blackbox functionaliteit aan te roepen, dan zie ik twee mogelijkheden om deze functionaliteit te ontsluiten in Linux:
1. Maak een kleine windows service die deze DLL gebruikt en de functies via een webservice publiceert
2. Gebruik de Wine libraries om een koppeling te leggen tussen de DLL en PHP, wellicht door het schrijven van een PHP extension

Alhoewel het waarschijnlijk simpeler is om een Windows server in te richten en PHP onder IIS te draaien.

Trouwens, de term voor DLL onder linux is SO, Shared Object.

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
DexterDee schreef op vrijdag 11 december 2009 @ 15:54:
1. Maak een kleine windows service die deze DLL gebruikt en de functies via een webservice publiceert
Dat is denk ik het makkelijkst en meest stabiel...

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Als je er een webservice oid van gaat maken lees dan wel even goed de voorwaarden, ik kan me zo voorstellen dat de makers van de blackbox dll er niet al te gecharmeerd van gaan zijn als dat ding niet goed beveiligd is...

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Dat kun je toch gewoon goed beveiligen? (OpenSSL, OAuth, etc)

Als ze wat te zeuren hebben verder moeten ze maar een linux-versie aanleveren imo ;)

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 01:47

DexterDee

I doubt, therefore I might be

Gomez12 schreef op vrijdag 11 december 2009 @ 16:22:
Als je er een webservice oid van gaat maken lees dan wel even goed de voorwaarden, ik kan me zo voorstellen dat de makers van de blackbox dll er niet al te gecharmeerd van gaan zijn als dat ding niet goed beveiligd is...
Het moge duidelijk zijn dat deze vraag meer richting een huis tuin en keuken MKB oplossing neigt dan een verantwoorde enterprise oplossing. Maar dat je beveiliging in orde moet zijn is natuurlijk een must en goed om even extra onder de aandacht te brengen :)

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • jbdeiman
  • Registratie: September 2008
  • Laatst online: 22:37
DexterDee schreef op vrijdag 11 december 2009 @ 16:27:
[...]

Het moge duidelijk zijn dat deze vraag meer richting een huis tuin en keuken MKB oplossing neigt dan een verantwoorde enterprise oplossing. Maar dat je beveiliging in orde moet zijn is natuurlijk een must en goed om even extra onder de aandacht te brengen :)
Euhm Excuses voor het omhoog halen van dit topic, maar ik zie dat er een paar misverstanden ontstaan:
1) Wine kan ik niet installeren en die mogelijkheid valt dus af.
2) We hebben een Linux server waar alles op draait, omzetten naar een Windows server is niet wenselijk, we krijgen in april ws de beschikking over een werkende webmodule die we kunnen aanroepen.
3) We hebben toestemming voor het gebruik, sterker nog de bouwer heeft het ons zelf aangeleverd, maar die zei wel dat het op een website werkt, maar niet dat het een dll was. Dit kwam pas later aan het licht.
4) Beveiliging is ook het probleem niet, er zit een berekeningsmodule in de DLL die aan de hand van een bepaalde input (verschillende gegevens) bepaald wat de uitkomst is. Veilig: Tjah, dll is niet te reverse engineeren, dus is veilig zitten geen risico's aan. Dus ook dit is geen probleem. Alleen omdat ze de berekening niet vrij willen geven gaat het via die DLL. Voor mijn part post ik met CURL oid naar een door hun werkende website of locatie waaruit ik het resultaat terugkrijg.

De dependencies zullen dus ook flink meevallen, het gaat immers alleen om die berekening.

Acties:
  • 0 Henk 'm!

  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 15-07 15:35

leuk_he

1. Controleer de kabel!

jbdeiman schreef op woensdag 30 december 2009 @ 14:06:
[...], we krijgen in april ws de beschikking over een werkende webmodule die we kunnen aanroepen.
Ervoor zorgen dat dit dus een cross platflorm "web module" is, anders krijg je wellicht wee een windows smaak module. Of ging het over een webservice die je kunt aanroepen?

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


Acties:
  • 0 Henk 'm!

  • jbdeiman
  • Registratie: September 2008
  • Laatst online: 22:37
Het gaat over een webservice die we gewoon met CURL kunnen aanroepen. Niet heel lastig en ook niet (meer) heel spannend. Was wel mooier geweest als met de DLL ook nog zou lukken, maargoed. Die hoop hebben we opgegeven, iig niet op onze server. Dus dan maar wat langer wachten met het idee.
Pagina: 1