Développement d'une application client-serveur : .Net ou Java ?

Oui, en effet, plus je fourre le nez là dedans, plus je me dis que l’avis professionnel extérieur est la meilleure solution, bien que initialement coûteuse je pense.

Par rapport aux client lourd, rien n’est encore décidé. C’était une simple supposition. Etude de marché en construction.

Par rapport aux technologies, c’est que je trouve un avantage de développement et de déploiement à ces deux plateformes. Mais je n’ai rien contre un bon vieux C++/QT4. De plus, choisir une technologie me permets de mieux m’imaginer la solution. C’est purement personnel et subjectif.

Côté BDD et données, les données d’entrée et les résultats sont confidentielle, à savoir :

  • pas d’information personnelle ou autre de ce type (pas de souci avec la CNIL)
  • mais les informations échangées représentent au final un avantage concurrentiel important qui a une valeur économique forte (donc garder secret)

J’ai un peu de mal à comprendre la question “Quel est le niveau de service attendu par le poste client ?”… Pardon.

Re,

Ok avec toutes tes réponses, je saisis ta démarche qui me parait très saine. Voici qqs compléments de réponse.

Alors juste pour te donner un ordre d’idée : J’ai 6 ans d’expérience dans le “monde Java JEE” à faire toute sortes de travaux (on va dire ca comme ca si ca te dérange pas…). J’ai réfléchi à ton problème quelques minutes et on imagine bien que c’est largement insuffisant pour te faire une bonne idée du projet.
Tu peux trouver des architectes techniques à partir de 700€/jour, qu’on emploie un nombre de jour en fonction de la complexité du métier cible ainsi que des infrastructures requises.

Ces infrastructures sont en général tirées par le “niveau de service attendu par le poste client” : sécurité / confidentialité, concurrence d’accès, ergonomie, intégration à des systèmes externes, performance, autres.
Par exemple, de mon époque (2002), client lourd Java Swing ne rimait pas forcément avec ergonomie (c’est moche, par rapport à ce qu’on peut faire en Flash) ou performance (long à charger, latence de réaction, par rapport à un build platform spécifique d’une appli C++). Je ne sais pas si c’est encore vrai mais là n’est pas le point important.

Pour le serveur de calcul, c’est très important de savoir si ces données sont exploitables en l’état (des chiffres avant et après = valeur pour autrui ?), si elles intègrent des données perso (apparemment non), car elles conditionnement le choix de certaines architectures comme le SaaS (Cloud computing). Ce n’est encore qu’un exemple.

Tout ca pour dire : des solutions, il y en a beaucoup. Et il y a de très bons spécialistes en la matière. Par contre, le projet, il n’y en a qu’un. Et c’est toi le maitre des clefs. Le spécialiste ne pourra rien pour toi si tu ne sais pas ce que tu veux en terme de service, exemples :

  • je me connecte depuis mon ordinateur, je remplis / clique / fais du café, etc.
  • le serveur de calcul va calculer X lorsque Y et Z sont dans la place, faut que ca booste et qu’on ait le résultat ASAP !
  • le serveur de calcul calcule X1, X2, X3 sur différentes unités de calcul, par contre le résultat peut attendre 24h max
  • j’ai besoin de séduire des prospects, donc il me faut de quoi faire du buzz
  • mon business est en rapport direct avec les communautés facebook / twitter, donc je souhaite pouvoir interagir ou les faire interagir

Etc etc …

Je vais compléter/préciser

Ca c’est le tarif d’un archi tendance junior. Ce profile sera intéressant en tant qu’expert disons d’une techno mais ne saura pas forcément faire le tri parmi plusieurs propositions. Bon, un Senior n’aura peut être pas envie non plus :slight_smile: L’idéal serait d’avoir des idées précises du projet, et n’être qu’en recherche de solution.

Sur cette question, c’est vrai et faux. En 2002, c’était quand même l’idéal pour une appli multi-plate-forme qui devait avoir une forte interaction avec le poste de travail, et pour profiter (déjà) de JavaWebStat. Après, pour moi ce type d’application ne se justifie que si il y a besoin de déporter des traitements sur le poste client. Pour ce qui est présenté, une interface web suffit…

Là dessus les réflexions m’inquiètent : le ou les serveurs… Quel sera le taux d’occupation d’un serveur de calcul pour faire quoi : si il y a nécessité de pré/post-traitement, doit il être fait sur le même ou non, la gestion de tout ça… Bref, ce sont des questions à se poser une fois le principe dégagé.

Côté taux d’occupation du serveur de calcul, j’ai du mal à répondre.
Ce que je peux dire, c’est qu’à priori, sur un PC actuel moyen-haut de gamme, 1 calcul prendrait peut-être plusieurs jours. C’est hyper difficile d’estimer correctement, parce que je n’ai pas d’exemple à faire tourner sous la main. Mais on table sur ce genre de temps. Avec un cluster on va dire qu’on estime qu’un calcul durera tout de même plusieurs heures (l’algorithme de calcul est très orienté distribué, puisqu’il exécute la même opération pour un très grand nombre de noeuds).

Combien de calculs par jour ? Par semaine ? Par mois ? Je ne peux pas répondre. Je n’en sais rien. Je pense que l’étude de marché répondra à cette question. Je vais en parler.

Une donnée entrée --> un calcul de plusieurs heures, distribué sur 1 ou plusieurs lames --> un résultat contenant plusieurs informations.
Pas de pré-traitement ni post-traitement prévu.

La gestion de tout ça… euh… c’est à dire ? Tu veux dire, dans le global, comment ça fonctionne ?
Edité le 09/06/2010 à 16:15