# Some architecture questions - need help

**URL:** <https://www.ruby-forum.com/t/some-architecture-questions-need-help/120764>\
**Category:** Rails\
**Created:** [November 20, 2007, 1:28pm UTC](https://www.ruby-forum.com/t/some-architecture-questions-need-help/120764 "2007-11-20T13:28:16Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![garfild](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/6a8cbe/32.png) [@garfild](https://www.ruby-forum.com/u/garfild)\
**Post date:** [November 20, 2007, 1:28pm UTC](https://www.ruby-forum.com/t/some-architecture-questions-need-help/120764/1 "2007-11-20T13:28:16Z")

</div>

Hi guys,

I am a Java/J2ee programmer and just came across ruby & ruby on rails,  
played with it a bit and found it great.  
A new client/server project I need to be responsible of, contains the  
following:

MVC architecture  
RMI - to send methods via tcp/ip to a third-party program written in C+

- that accepts the data and send it back manipulated.  
(We used rmi, stubs,jndi in our java/j2ee environment)  
Multithreading - My project will have many users creating many tasks  
that will need to go back & forth through the network from the ruby  
code to a C++ code (FastCGI???).

In first glance I can see, ROR is great with data manipulation web  
sites, that most actions involve receiving data from user doing  
manipulation and sending it back.  
Can ROR ignite an asynchrony process that will interact with C++ dll’s  
using a wrapper of some sort?

Can this be done by ruby on rails ? what kind of web server should I  
use (Apache,LightTPD?)I’m not locked on anything  
Should I use JRuby for that?  
Are there any plug-ins for that?

Ths are many questions, I know ☹

But with few guidelines from someone who knows (and I know shit about  
ROR),  
I can build my environment. (my OS is Windows).

Thanks a lot and waiting for HELP 🙂

Yossi

---

<div class="post-metadata">

**Author:** ![garfild](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/6a8cbe/32.png) [@garfild](https://www.ruby-forum.com/u/garfild)\
**Post date:** [November 20, 2007, 2:13pm UTC](https://www.ruby-forum.com/t/some-architecture-questions-need-help/120764/2 "2007-11-20T14:13:24Z")

</div>

On Nov 20, 2007 12:27 PM, garfild [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi guys,
> 
> I am a Java/J2ee programmer and just came across ruby & ruby on rails,  
> played with it a bit and found it great.  
> A new client/server project I need to be responsible of, contains the  
> following:

I would say that you are outside the sweet spot for Rails. Rails really  
expects to be sitting on a database, and expects you to interact with  
it in standard ways - via a web browser or other HTTP client, via e-mail  
etc. There are plugins for lots of things (BackgrounDRb comes to mind)  
that can help you, but you are doing most of your real work in pure Ruby  
then.

> MVC architecture  
> RMI - to send methods via tcp/ip to a third-party program written in C+
> 
> - that accepts the data and send it back manipulated.  
> (We used rmi, stubs,jndi in our java/j2ee environment)  
> Multithreading - My project will have many users creating many tasks  
> that will need to go back & forth through the network from the ruby  
> code to a C++ code (FastCGI???).

The Rails concurrency model is per-process not per thread.

> In first glance I can see, ROR is great with data manipulation web  
> sites, that most actions involve receiving data from user doing  
> manipulation and sending it back.  
> Can ROR ignite an asynchrony process that will interact with C++ dll’s  
> using a wrapper of some sort?

Yeah, you could probably make it work, but what value is it? You are  
barely using Rails then, except maybe its presentation elements.

> Can this be done by ruby on rails ? what kind of web server should I  
> use (Apache,LightTPD?)I’m not locked on anything  
> Should I use JRuby for that?

You have a lot of Java dependencies - I would almost certainly be using  
JRuby - those RMI dependencies would be tricky to use in Ruby. As for  
your web server, just use Mongrel for everything, unless you have a need  
for a more sophisticated web stack. Your web stack depends an awful  
lot on whether you are on the internet or off the internet (intranet  
apps).

FYI: Mongrel is a kind of ubiquitous web app server in Ruby. It occupies  
the kind of role that Tomcat has historically played in the Java  
community.  
(However their architectures are significantly different - Mongrel draws  
a  
lot of inspiration from the Java Web Framework Simpleweb.

> Are there any plug-ins for that?
> 
> Ths are many questions, I know ☹
> 
> But with few guidelines from someone who knows (and I know shit about  
> ROR),  
> I can build my environment. (my OS is Windows).

Some interesting options disappear when you deploy to windows. Typically  
many  
options that are a no-brainer on Unix environments, require  
consideration when you  
deploy to windows. This may not affect you.

> Thanks a lot and waiting for HELP 🙂
> 
> Yossi

I don’t know what your intent is, but it appears that your application  
depends on having  
a web UI on top of a lot of custom, binary messaging protocols,  
requires kernel threading  
and doesn’t have much of a data tier.

You would probably be better served by some of the alternative Ruby  
Web frameworks like  
Merb instead, or even Sinatra or Camping. Or even just writing simple  
Mongrel handlers. You  
have considerably more freedom in these web frameworks with what goes  
at the back of  
your web UI, than in Rails.

However the lack of available notes on these approaches might really  
hurt you. You would  
probably be better served by posting your response on the jruby  
mailing list, where there is  
likely to be a lot Java → Ruby/RoR members who might be more familiar  
with the type of  
app you are building.

regards,  
Richard.
