IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Quel type d'application pour intéragir avec une base de données ?


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Dév FrontEnd
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dév FrontEnd

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 114
    Points
    114
    Par défaut Quel type d'application pour intéragir avec une base de données ?
    Bonjour à tous,

    Je dois développer une appli qui interagisse avec une base de données MySQL.
    J'aimerais savoir ce que vous me conseilleriez et les principales différences entre une appli standard, une applet, une servlet ... ? (Et peut-être d'autres types que je ne connais pas ...)

    Pour le moment, je n'ai fait que des applis standards.
    D'ailleurs y a-t-il de grandes différences entre les différents types de développement ?

    Je précises que mon appli devra être exécuté sous Mac principalement mais aussi sous Windows !

    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    standalone (ce que tu fais) tu va utiliser du swing ou de l'awt (la pluspart du temps) et avoir accès aux ressources locales de l'utilisateur

    applet: vaguement similaire au standalone, tu va pouvoir faire une interface graphique que tu lance depuis une page web. Pour des raisons de sécurités, tu aura des accès très limités au système de l'utilisateur. Pas d'accès à ce qui est confidentiel, au système de fichier ou au réseau, à l'exception d'un accès autorisé quand meme vers le serveur qui a fournis l'applet. Tu peux contourner ces limitation en signant l'applet pour la certifier en ton nom. L'utilisateur aura alors une boite de dialogue demandant si il fait confiance à l'applet

    webstart: application standalone, mais distribuée et mise à jour automatiquement via le réseau. Aussi à signer pour avoir accès au système local (comme pour les applets), mais ne nécessite pas nécessairement de browser pour tourner.

    servlet/jsp: code s'exécutant sur un serveur, n'a a priori pas d'utilité de awt et swing, destiné principalement à fournir des pages html ou aufre fichiers que les browser utilisent (vaguement similaire sur le principe à du php). Destiné à faire des sites dynamique et des applications web. En plus de l'api standard, tu as accès là à des api spécifique pour le web.

    java mobile: applications standalones destinées à des appareils mobiles, elle ont un accès à un api java limitée et spécifique. La jvm se comporte aussi différement

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 160
    Points : 111
    Points
    111
    Par défaut
    Salut,

    Pour le type d'appli, ben ça dépend ...
    Mais si ton appli doit être utilisé par beaucoup de monde, autant faire une appli Web avec des frameworks du type Struts & Co. Au moins tout sera centralisé. Mais rien ne t'empêche de faire un client lourd.

    Pour les applis Web, c'est sur qu'il y a des différences de conception (pages Web, plus de Swing ou autre AWT), mais après du java ça reste du java.

  4. #4
    Membre régulier
    Profil pro
    Dév FrontEnd
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dév FrontEnd

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 114
    Points
    114
    Par défaut
    Et autre question.

    Si je développe une appli standalone, est-ce ensuite difficile et compliqué de modifier en applet ou servlet ??

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par tchize_ Voir le message
    webstart: application standalone, mais distribuée et mise à jour automatiquement via le réseau. Aussi à signer pour avoir accès au système local (comme pour les applets), mais ne nécessite pas nécessairement de browser pour tourner.
    A noter qu'on dispose alors d'un package supplémentaire (javax.jnlp) qui permet l'accès à certains services (téléchargement, système de fichiers, presses-papiers, impression) de manière limité mais sécurisé pour l'utilisateur. Ce qui selon les cas peut permettre d'utiliser une application non-signé (même si dans le cas d'un accès à un BD je pense que cela doit être nécessaire).


    Citation Envoyé par pontus21 Voir le message
    Si je développe une appli standalone, est-ce ensuite difficile et compliqué de modifier en applet ou servlet ??
    La migration applet/standalone peut être assez facile. Le même Jar pourrait d'ailleurs être à la fois distribué en applet et en standalone...

    Pour les servlet c'est autre chose : il s'agit d'une application tournant sur le serveur et non pas sur le poste client. Donc pas d'application graphique standard (Swing/AWT). Pour l'interface on utilise généralement un client léger (un navigateur internet), ce qui fait que toute l'interface est à revoir.

    Mais bien sûr les classes métiers sont tout à fait réutilisable...


    a++

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Mais bien sûr les classes métiers sont tout à fait réutilisable...
    Avec le bémol quand meme que certains comportements sont à éviter et qu'il faut y porter un soins particulier en servlet, je pense par exemple à la gestion de Thread, à tout ce qui joue avec des ThreadLocal ou touche à la gestion de la mémoire

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Points : 468
    Points
    468
    Par défaut Je conseille "servlet" (J2EE)
    Bonjour,
    Je te conseille clairement de faire l'appli en Java J2EE (java côté serveur) en utilisant les frameworks open source du marché (Struts, Spring, Hibernate...).
    C'est le type d'application le plus utlisé en entreprise, donc l'expérience que tu vas en tirer sera optimum.

    Il existe un template tout fait qui accède déjà à une base mySQL en utilisant ces frameworks :
    http://raibledesigns.com/rd/entry/an...x_1_5_released

    Il suffit de s'en inspirer (après l'avoir un peu étudié quand même) et quelques modifications permettent d'accèder à n'importe quelle base.

    Stéphane

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par slevy Voir le message
    Bonjour,
    Je te conseille clairement de faire l'appli en Java J2EE (java côté serveur) en utilisant les frameworks open source du marché (Struts, Spring, Hibernate...).
    C'est le type d'application le plus utlisé en entreprise, donc l'expérience que tu vas en tirer sera optimum.
    Le fait que c'est le plus utilisé ne devrais pas être un argument de choix, le premeir argument du choix devrait être les besoins du clients. Certes une appli web est plus facilement multi utilisateur qu'une appli standalone, mais le standalon a l'avantage de la grande richesse des composants graphique et de ne pas devoir centraliser les sessions sur un seul serveur.

    Il y a aussi la possibilité de fournir un webservice centralisé pour distribuer les données et avoir des applis standalone qui s'y connectent. T'as aussi les EJB qui permettent d'avoir des applis standalone.

    Par contre, une recommendantion, ne pas mettre le connecteur SQL du coté des clients, (c'est pas une obligation absolue mais une recommendation) de manière à pouvoir limiter l'accès au serveur SQL à quelques machines privilégiées.

  9. #9
    Membre régulier
    Profil pro
    Dév FrontEnd
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dév FrontEnd

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 114
    Points
    114
    Par défaut
    Je pense que je vais me diriger vers une appli stand-alone ...

    Le problème c'est que le code va être côté client, et donc visible ...
    Je me trompe ?

    Si je me trompe pas, qu'est-ce qui pourrait me "sécuriser" le code ?

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    on ne "sécurise" pas le code, on sécurise le serveur, ce qui est coté client doit être ce qui peut etre transmis sans risque. En l'occurence, ici, il faudra que chaque client aie son propre compte sur la db et que la db soit configurée pour que les clients ne sachent pas faire plus que ce qu'ils ne peuvent et garde, éventuellement, des traces.

  11. #11
    Membre régulier
    Profil pro
    Dév FrontEnd
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dév FrontEnd

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    on ne "sécurise" pas le code
    Je veux dire par là que le code ne doit pas être visible par le client (si possible, bien sûr).
    Car avec une appli standalone, je vais créer un jar (ou alors peut-être y a-t-il autre chose que je ne connais pas ...) mais ce jar contient le code qui peut être lu directement par l'utilisateur.
    Ce que j'aimerais éviter ...

  12. #12
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Dans un jar tu met les .class (qui ne sont pas lisible directement). Dans tout les cas tu sera obligé de donner une partie du code à ton client (et ceux quel que soit le langage). Le code pourra toujours être décompilé. C'est pour ça qu'il faut que tu mette le moins de chose possible coté client, créer des comptes de base de données séparés.
    Il y a des moyens de rendre le code plus dur à décompiler (obfuscation, ...) mais ce n'est pas une solution miracle.
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    et en plus, l'obfuscation rend impossible l'utilisation de stacktraces pour débugger les erreurs trouvées par les utilisateurs puisque le stacktrace n'a plus aucun sens

Discussions similaires

  1. Communication d'une application web J2EE avec une base de données
    Par wafabrj dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 23/05/2012, 16h45
  2. Quel type d'applications faites-vous avec Silverlight ?
    Par khayyam90 dans le forum Silverlight
    Réponses: 5
    Dernier message: 10/07/2009, 10h52
  3. Réponses: 7
    Dernier message: 06/08/2007, 19h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo