2010-01-21 6 views
6

Je suis très novice en programmation web (ou en fait, très ancienne, puisque la dernière fois que j'ai joué avec le web était HTML 1.1), mais maintenant j'ai besoin de déployer une application web rapidement. Il semble que chaque fois que je me retourne, il y a de nouveaux acronymes et de nouvelles technologies à apprendre (JSON, XMLRPC, GWT, Javascript, Rails, etc.).Dois-je utiliser Rails ou Ruby pour cette application de site Web? Comment?

Voici ce que mon application doit faire:

  1. Étant donné un nom d'utilisateur et mot de passe, authentifiez (assez facile, tout le fait, apparemment).
  2. Permet à l'utilisateur de télécharger un grand nombre de données pour le traitement.
  3. Traite ces données.
  4. Permet à l'utilisateur de télécharger les données traitées.

J'ai déjà des scripts Java et une base de données pour gérer les données. Sur une machine, je peux exécuter une série de programmes en ligne de commande pour traiter un datablock entrant et mettre les résultats dans une base de données mysql. C'est déjà présent et fonctionne.

Je souhaite construire une interface Web à cette tâche, en utilisant ces méthodes existantes et testées. Je suis actuellement penché vers cette approche:

  1. Avoir deux machines, une machine de base de données et un serveur Web. Cette approche permet une évolutivité ultérieure, si nécessaire, mais nécessite également que je ne puisse pas supposer que les programmes que j'utilise pour accéder aux données et les manipuler sont stockés localement. Utilisez une application Ruby DRb pour créer un serveur et un client. Le client transmettra des données au serveur qui appellera à son tour ces applications.
  2. Utilisez une autre interface Ruby pour interagir avec le DRb de l'interface Web.

Voici mon problème: il semble que la plupart des applications Ruby pour le Web essaient automatiquement de créer une sorte de base de données locale. Tous les Rails tutorials que j'ai trouvé commencent par faire votre propre base de données et interagir avec cela, ce qui est exactement ce que je ne veux pas faire.

Est-ce que Rails est la bonne technologie pour moi ou utilise Ruby DRb? Y a-t-il d'autres technologies que je devrais explorer?

Si Rails ou Ruby est la bonne chose ici, que dois-je regarder? J'ai déjà le livre Programming Ruby, et je l'ai utilisé pour certaines choses du backend ainsi que pour obtenir des choses de base sur DRB.

Répondre

16

Des sons comme Rails peuvent être un peu lourds pour votre situation. Peut-être que Sinatra pourrait être un meilleur ajustement? C'est un framework ultra-léger: une application Hello World peut ressembler à quelque chose comme:

require 'sinatra' 
get '/' do 
    "Hello World!" 
end 
+0

Wow, Sinatra a l'air complètement génial! J'ai déjà un programme de neuf lignes qui appelle un programme distant via drb et publie les résultats sur une page Web. – mmr

+0

@mmr C'est vraiment génial. Assurez-vous de lire le livre! (http://www.sinatrarb.com/book.html) –

1

Rails est très bien. Vous pouvez avoir des bases de données de développement et de test sur votre machine locale et la base de données de production sur une machine distante. Il ne doit pas être le serveur Web. Obtenez une copie de Agile Web Development with Rails. Ça t'apprendra tout ce que tu as besoin de savoir.

+0

Rails est bien, même si je ne veux utiliser aucune des fonctionnalités de Rails? Qu'est-ce que Rails, alors, si les données ne sont pas stockées dans une base de données? – mmr

+0

Rails est un framework construit autour du modèle architectural Model-View-Controller, mais la partie modèle est très connectable.L'ORM que Rails utilise comme couche de modèle, ActiveRecord, peut être complètement désactivé, vous laissant simplement avec les contrôleurs et les vues. Ce que vous utilisez pour le stockage de données est alors à vous. –