2010-10-01 4 views
1

Je suis après avis de certains développeurs web experts quant à la meilleure solution à mon problème.PHP MySQL site Web à l'intégration de système SQL externe

LA CONFIGURATION

Dans mon travail, je me occupe une boutique en ligne, qui est basé sur osCommerce, avec de nombreuses fonctionnalités supplémentaires et quelques réglages. C'est sur l'hébergement partagé Linux et utilise PHP et MySQL comme technologies principales.

Nous sommes en train de mettre à jour notre système de stock et de commande, qui est basé sur Microsoft SQL et fonctionne sur un serveur de données sur notre réseau (un PC Dell Server).

LE PROBLÈME

Je voudrais assurer une meilleure intégration entre le stock/système de commande et notre site Web, par exemple pour obtenir des informations de s'approvisionner à jour, vérifier les prix, etc. Avec l'objectif final d'obtenir les données client sont également liées.

MA SOLUTION POSSIBLE

J'ai actuellement en cours d'exécution XAMPP sur notre serveur SBS pour le développement, que j'utilise pour tester le nouveau code, avant de le télécharger sur le site en direct.

J'ai écrit un fichier PHP sur ce serveur, qui se connecte au serveur SQL et exécute diverses requêtes SQL, prenant en paramètre le tableau $ _GET, récupérant le résultat sous forme de tableau associatif, codant le résultat et faisant écho au chaîne codée.

Le site utilise juste quelque chose comme celui-ci pour obtenir et utiliser le résultat:

$ result = file_get_contents (. 'Http: //SBS-SERVER-IP/getinfo.php partenquiry =' cleanStringPartNumber $);

if ($ résultat) $ stock_info = (tableau) json_decode ($ result);

Je pensais que ce serait une solution décente que toutes les connexions pour le SQL, même le fait que ce soit SQL n'est pas exposé au site Web, donc si le site Web était compromis, il ne devrait pas compromettre notre système.

Je m'assurerai que la connexion pour le serveur SQL a seulement accès aux données SELECT car je ne veux pas mettre à jour/insérer/supprimer quoi que ce soit car cela pourrait causer des problèmes avec le système de stock/commande.

En outre, je pensais mettre en cache les résultats quelque part, afin que notre système de stock/commande ne souffre pas de problèmes de performance. Je suis sûr qu'il existe de nombreuses façons de transmettre les données entre les deux systèmes, mais je veux être sûr que j'utilise une solution sécurisée, en utilisant les méthodes les plus efficaces et les plus standard de l'industrie.

Je vois des technologies telles que cURL, SOAP, XML, JSON, etc. et je me demande si l'une de ces solutions est idéale.

Que pensez-vous?

+0

Je ne suis pas sûr si je comprends votre configuration actuelle (ou je suis sûr que je n'ai pas ;-)). Votre serveur linux/osCommerce en ce moment est plus ou moins un cache pour le système de commande réel sur votre serveur de petite entreprise? Et vous voulez un serveur de synchronisation à sens unique sbs-> linux? A quel moment (dans le temps ou dans le processus) voulez-vous que votre serveur Linux demande des données à la base de données? – VolkerK

+0

Salut VolkerK, les 2 systèmes sont séparés. Le système SBS est un système Windows pour la gestion des stocks/commandes; l'équipe des ventes ajoute les commandes qui arrivent par e-mail, téléphone, fax, etc. (principalement les clients professionnels). Le site osCommerce est principalement destiné aux particuliers. Lorsque les commandes arrivent sur le site, un membre de l'équipe de vente ajoute manuellement la commande à notre système SBS. En raison de la nature de l'entreprise, toutes les commandes doivent être vérifiées avant d'être traitées et mises sur le système SBS et certains produits que nous ne listons pas sur le web. Donc, je veux juste demander certaines informations du système SBS et l'afficher sur le site. – Paul

+0

J'ai une solution, décrite ci-dessus, mais comme je viens d'apprendre tout moi-même en PHP, je suis toujours désireux de savoir que j'utilise des méthodes plus acceptées, sécurisées et efficaces. – Paul

Répondre

0

J'utiliserais https si possible pour avoir une communication sécurisée entre les deux serveurs. La technologie que vous utilisez dépend de vous et du cadre que vous souhaitez apprendre. JSON est l'un des moyens les plus simples d'envoyer des données de a à b.

SOAP est pratiquement XML mais vous n'avez pas à vous soucier du XML lui-même. En utilisant SOAP vous pouvez envoyer et stocker des objets. En utilisant la sérialisation et la désérialisation de php, vous pouvez également transformer des objets et les envoyer, puis stocker le contenu de cet objet dans la base de données.

Il s'agit davantage de préférences et de rapidité de production.

L'apprentissage d'un nouveau framework prend du temps au début mais peut vous rendre plus productif par la suite.

+0

Merci pour votre réponse ITroubs, je n'avais pas pensé à https, mais oui, je vais m'assurer qu'il communique sur https maintenant. Quelles sont vos pensées sur la vitesse? J'ai lu que l'utilisation de cURL est plus rapide que la fonction file_get_contents(). – Paul

Questions connexes