Comment construire un système distribué de l'application java?

Tout d'abord, j'ai conceptuels de la question, le mot "distribution" signifie seulement que l'application est exécutée sur plusieurs machines? ou il y a d'autres façons d'où une demande peut être considéré comme distribué (par exemple si il y a beaucoup de modules indépendants qui interagissent bois, mais sur la même machine, cela est-il distribué?).

Deuxième, je veux construire un système qui s'exécute quatre types de tâches, il y aura plusieurs clients et chacune aura de nombreuses tâches de chaque type à être exécuté périodiquement. Par exemple: customer1 aura task_type1 aujourd'hui , task_type2 après deux jours et ainsi de suite, il y a peut être customer2 qui a task_type1 être exécutées en même temps, comme customer1 de task_type1. c'est un besoin pour la concurrence. Configuration pour l'exécution des tâches qui seront stockées dans la bd et les résultats de ces tâches vont être stockés dans la bd. les clients pourront utiliser le système à partir d'un navigateur web (pages html) pour interagir avec le système (en gros, configurer des tâches et voir les résultats).
J'ai pensé à utiliser un reste webservice (à l'aide de JAX-RS) où les pages html de communiquer et sur le backend utiliser des threads pour une exécution simultanée.
Questions:

  1. Cela semble simple, Mais vais-je dans la bonne direction? ou, devrais-je utiliser d'autres technologies ou des concepts tels que Java Beans par exemple?

2.Si ma démarche est bonne, je dois utiliser un langage de script comme JSP ou je peux envoyer les formulaires html directement à l'url rest et obtenir le résultat (en utilisant JSON par exemple)?

  1. Si je veux faire de l'application distribuée, est-il possible avec mon idée? Si non, que dois-je utiliser?

Désolé pour avoir beaucoup de questions , mais je suis vraiment confus au sujet de cette.

avez-vous vraiment s'attendre à ce que task_type1, task_type2, etc. sont va être très gourmandes en temps PROCESSEUR? Avez-vous test pour confirmer? Y a t il vraiment va y avoir beaucoup d'utilisateurs utilisant l'application en même temps? Il se peut qu'un seul serveur peut gérer la charge très bien et que la distribution de l'application serait juste compliquer les choses avec aucun avantage supplémentaire. 2e, ne présumez pas que vous avez besoin de threads parce que "les tâches doivent être exécutées en même temps". Sauf si vous avez besoin pour tirer parti de plusieurs Processeurs, un seul thread tirant tâches en une file d'attente de travail sera probablement très bien.
les tâches sont eux-mêmes pas de temps CPU, mais si je reçois beaucoup de clients avec de nombreuses tâches, cela peut être un problème dans le futur, j'envisage d'évolutivité pour l'avenir. Je suppose que l'un de serveur serait en mesure de gérer pour l'instant. Mais je voulais savoir comment faire distribués dans les cas où j'en aurais besoin. c'est à dire que je voulais comprendre les concepts de la distribution.
Concernant les fils, j'ai besoin de tâches à exécuter à des moments précis, par exemple, il pourrait y avoir task_type1 être exécuté à 10:00 du matin pour customer1 et un autre task_type1 de customer2 également à 10:00 am. J'ai besoin d'une sorte de simultanéité dans l'exécution. j'.e: le traitement de la deux tâches en parallèle.
le terme "distribution" est généralement utilisé dans le sens de "en cours d'exécution sur plusieurs machines"
"devrait être l'aide d'autres technologies ou des concepts tels que Java Beans par exemple" – si vous n'êtes pas certain de ce que "Java Beans" sont pour la, vous ne devriez pas être en train d'essayer d'écrire un système distribué. Cela sonne comme vous êtes juste en les écrasant à la technologie de mots à la mode ensemble au hasard.

OriginalL'auteur Sami | 2012-07-04