One thing I''d like to suggest is that, at least for me, it would be
useful if this kind of work could be passed off to another machine to
handle. I know this request drastically increases the work load, but I
think it would be beneficial to have a setup where one box handles
server-to-client and another could handle server-to-server and other
tasks that don''t involve user interaction. Of course I would still
want to be able to do both operations on the same machine, too.
Basically, I would like to see this scalable.
As a side note: I notice both of your proposals so far deal with
distributed systems. My proposal deals with distributed databases and
allowing rails to interact with them (Sorry for the shameless plug). I
was wondering if I could get your impressions on my proposal since are
projects are sort of similar (maybe loosly). Thanks.
http://groups.google.com/group/rubyonrails-core/browse_thread/thread/a724099bfa2b493c?hl=en
On Apr 2, 11:46 am, carlosk <Carlos.Kirkconn...@gmail.com>
wrote:> Hello,
>
> This is the second proposal that I submitted to GSoC. Please feel free
> to leave any comments on it.
>
> Thank you.
>
>
------------------------------------------------------------------------------------------------------------
>
> Abstract:
> Currently there is no easy way of communicating two Rails applications
> in an asynchronous way. The best approach that I''ve seen is to use
> ActiveMessaging and ActiveMQ. In my opinion combining Rails with
> ActiveMQ is bizarre, and it should be avoided if possible. The purpose
> of this project is to add asynchronous functionality to
> ActiveResource, which will benefit developers that need to integrate
> different sites through REST.
> Content:
>
> About Me:
>
> My name is Carlos Kirkconnell and I''m a Fulbright Scholar from
> Honduras. I''m currently getting a Master in Software Engineering
at
> Kansas State University. I made my undergrad degree in Honduras and I
> studied Computer Science. After graduating, I worked both as a
> university professor and as project manager. I developed software for
> around 5 years.
>
> Most of my work on the industry was done using the .net Framework.
> With every successive release of the .net framework, I saw how things
> were getting more complex and I completely disliked how Visual Studio
> encourages developers to write bad code.
>
> Around 2 and a half years ago, I heard about a new framework called
> rails. I investigated about it and I fell in love with it. The code
> was so clean! Design patterns were encouraged! I finally felt I was
> really working on an MVC pattern. Database migrations turned to be the
> final solution for the constant headache we were experiencing at my
> job. I adapted a rails project to one of our .net solutions, and used
> migrations to keep multiple databases up to date. This implementation
> was a success. I''ve been using rails since that then.
>
> I quitted my job after I got the Fulbright scholarship. Currently on
> my spare time I''m working a web application that integrates with
> basecamp.
>
> Why do you use Rails? How would you like to see it improve?
>
> Rails is the best framework that I''ve ever used for developing web
> applications. I like the freedom that a dynamic language like ruby
> gives me; that combined with rails turns developing web applications a
> fun experience.
>
> One thing about rails that I would like to see improve is the process
> of communicating with other apps. Currently there is no easy standard
> way of implementing asynchronous communication with ActiveResource.
>
> Why is this important to the Rails community at large? Why is this
> important to you?
>
> This project is important for the Rails community because currently
> there''s no built in support for asynchronous communication between
> Rails apps using REST. It''s great that Ruby uses the simplest
approach
> to communicate between applications (REST) but the current
> implementation of ActiveResource only works in a synchronous way. If
> you need asynchronous communication, you either have to implement it
> by yourself, or you need to use something like ActiveMessaging and
> ActiveMQ.
>
> This project is important for me because, for my graduation project,
> my research area is going to be distributed web application. This
> project will be a great experience for my career.
>
> List a clear set of goals/milestones you''ll hit during the summer.
Be
> specific.
>
> Investigate Starling and other asynchronous options for rails.
> Model a design for managing asynchronous requests on ActiveResource.
> Build a queueing mechanism to keep track of the resources sent.
> Integrate the queue mechanism to ActiveResource.
> Modify ActiveResource so that the asynchronous or synchronous nature
> of the operations seem transparent. Probably use the default
> ActiveRecord callbacks as the callback mechanism.
>
> Give a rough timeline for hitting these milestones.
>
> Investigation: March 30
> Modeling: June 15
> Queueing Mechanism: July 15
> Integration with ActiveReource: July 30
> Callbacks: August 15
> Anything else: August 30
>
> How will you measure progress? How will you handle falling behind?
>
> I will use basecamp to keep track of my milestones. In the event of
> falling behind I will talk to my mentor to find the best solution to
> solve the problem that is stopping me.
>
> What are the "unknowns" in this project for you? What kind of
pitfalls
> could you run into?
>
> I''ve never worked with threads in rails. I know that by default
ruby
> threads are not running at the OS level. This might be quite
> challenging to solve. I plan to use something like starling to avoid
> working with threads.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Core" group.
To post to this group, send email to rubyonrails-core@googlegroups.com
To unsubscribe from this group, send email to
rubyonrails-core+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---