thinker007 / google-refine

Automatically exported from code.google.com/p/google-refine
0 stars 0 forks source link

cut-n-paste URL for my project does not work on other computer where GridWorks is not installed #73

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?

1. In the Gridworks homepage, the following is mentioned: "Architecturally, 
Gridworks is a web application and you interact with it thru your favorite web 
browser, but it runs on your own machine (so your data never leaves your 
computer!) and it's as easy to install as any other desktop application. One of 
the principal advantages of this architecture is that if you want to share your 
work with others on your local network, you don't need to send files back and 
forth but you can just send them a URL like you would do for any other web 
site." 

2. I found that it is not entirely obvious that the "others on your local 
network" MUST also have GridWorks installed before they can view your work, 
such that it is not "just send[ing] them a URL like you would do for any other 
web site."

3. Could I please confirm that GridWorks does need to be installed on their 
machines as well?

Thanks.

Original issue reported on code.google.com by aery...@gmail.com on 14 Jun 2010 at 8:49

GoogleCodeExporter commented 9 years ago
No, I believe Gridworks only needs to be installed on a single machine.

Given the address of a project e.g. 
http://127.0.0.1:3333/project.html?project=1874250169833  I think the problem 
is that the IP address 127.0.0.1 (http://en.wikipedia.org/wiki/Localhost) 
should be swapped with the external IP address of the machine on which 
Gridworks is installed - you can find it using 'ipconfig' from the command line 
on windows (I'm not sure for other OS's), or try http://www.whatismyip.com/

You may also have to ensure any firewall is set up correctly to allow your 
network access to the 3333 port.

Does this help?

Original comment by iainsproat on 14 Jun 2010 at 9:07

GoogleCodeExporter commented 9 years ago
I shall try this on my home computer (no Gridworks installed) tonight before 
sending the URL of my data to my boss.  Work computer may or may not have a 
firewall, not keen to ask my sysadmin for what should be a rather simple thing. 
 Thanks again.

P.S. Linux uses 'ifconfig' .

Original comment by aery...@gmail.com on 14 Jun 2010 at 10:49

GoogleCodeExporter commented 9 years ago
Hi, back again. Still having difficulties. First, does the host computer ("your 
own machine") have to be on for others to access the data?  Second, must the 
receiving computer be using the same OS as the host computer?  Third, if I'm 
not in a position to mess with a firewall to allow 3333 port access, does it 
all still work?

Generally I'm a bit confused by the sparse detail indicated by "you can just 
send them a URL like you would do for any other web site."

Thank you for your time.

Original comment by aery...@gmail.com on 15 Jun 2010 at 9:23

GoogleCodeExporter commented 9 years ago
Gridworks works as a web server, it runs on top of Jetty 
http://en.wikipedia.org/wiki/Jetty_(web_server).  Everything is done over http, 
so accessing Gridworks is OS independent.

Looking at it further (I tried it on my network), I couldn't get it to work 
either.

I might be entirely wrong, but I'm guessing the issue might be that Gridworks 
binds to a default address, 127.0.0.1,  compared to other servers which default 
to binding to all addresses on the machine.  I think we might have to pass the 
Gridworks server a variable when starting it.  I'm not entirely sure how to do 
this, -Dgridworks.host perhaps?

If you don't have access to open up the firewall for the required port you 
would also run into problems there.  A workaround might be to change Gridwork's 
default port to something already open on your machine (providing it doesn't 
conflict with whatever else is meant to be using that port).  Again, this might 
be possible to do by passing a variable on startup.  -Dgridworks.port perhaps??

Original comment by iainsproat on 15 Jun 2010 at 11:34

GoogleCodeExporter commented 9 years ago
OK, worked out how to change the IP binding:

1. In the Gridworks installation directory there is a file gridworks.l4j.ini
2. Add a new line to that file with the following  (changing 0.0.0.0 to the IP 
address of the machine on which it's hosted)
-Dgridworks.host=0.0.0.0
3. To change the port add a line with -Dgridworks.port=30

Let me know if this works, and I'll update the documentation

Original comment by iainsproat on 15 Jun 2010 at 11:44

GoogleCodeExporter commented 9 years ago
aeryise - The host computer does need to be on and connected to the network.  
It should not need to be running the same operating system.  If the port that 
you're using is firewalled, you'll need to change to a non-firewalled port.  If 
the host machine doesn't normally run a web server, you can change to the 
default HTTP port of 80.

Original comment by tfmorris on 15 Jun 2010 at 3:08

GoogleCodeExporter commented 9 years ago
Thanks. I'll try these again on my home computer tonight.

My gridworks.ini looks like this, in the standard Linux version of GridWorks. 
Should I then append the -Dgridworks.host and -Dgridworks.port lines?  Or just 
change the relevant values for #GRIDWORKS_PORT and #GRIDWORKS_HOST?

#GRIDWORKS_PORT=3333
#GRIDWORKS_HOST=127.0.0.1
#GRIDWORKS_MEMORY=1024M

#JAVA_HOME=""
#JAVA_OPTIONS="-XX:+UseParallelGC -XX:+UseLargePages"

Original comment by aery...@gmail.com on 17 Jun 2010 at 6:52

GoogleCodeExporter commented 9 years ago
So far, on the exact same computer that GridWorks is installed and my data is 
hosted on, changing the IP binding with the -i flag to the external IP address 
of this computer on the ./gridworks run command, works fine.  Will try other 
combinations later at home.

Original comment by aery...@gmail.com on 17 Jun 2010 at 7:14

GoogleCodeExporter commented 9 years ago
iainsproat - On the exact same computer that GridWorks is installed and my data 
is hosted on, after appending the -Dgridworks.host line with my external IP 
address and restarting the computer this morning, the IP address still defaults 
to 127.0.0.1 .  This may be an OS-specific matter and I will now try modifying 
the #GRIDWORKS_HOST value instead of appending. But, from other programs I've 
only ever seen a -D(etcetc) line being used to compile code with cpp . Since 
I'm using the Linux download of GridWorks straight off the shelf, are the 
-D(etcetc) lines applicable for the prepackaged binary that I have?

Thanks.

Am avoiding port/firewall issues for now by doing all these changes on the 
exact same computer that GridWorks is installed and my data is hosted on, 
instead of my home computer.

Original comment by aery...@gmail.com on 18 Jun 2010 at 2:49

GoogleCodeExporter commented 9 years ago
Further update: On this computer as above, changing the #GRIDWORKS_HOST value 
to my external IP address and not appending the suggested -Dgridworks.host 
line, upon restarting the computer the IP address still defaults to 127.0.0.1 . 
However as per comment #8 passing the external IP address as an argument to the 
./gridworks run command with the -i flag continues to work fine.

Original comment by aery...@gmail.com on 18 Jun 2010 at 10:22

GoogleCodeExporter commented 9 years ago
aeryise, thanks for feedback.  If the -i parameter works then please use that.

We've discussed this issue amongst the Gridworks developers, and we think this 
feature is not quite ready for the prime time yet.  As well as the difficulties 
you've had we're aware that Gridworks does not require any login details, which 
raises issues with security. For example, once the firewall was opened it would 
be possible for anyone to view and edit your Gridworks files (whether they were 
allowed to or not).  But we believe it shouldn't allow access to your system at 
large - only to Gridworks data.

For the moment, we've removed the mention of this feature from the Gridworks 
homepage (but it still works if you're prepared to change the configuration 
manually, as above, and deal with the security issue). Hopefully, at some point 
in the future a developer will have time to implement the necessary 
enhancements to Gridworks so we can properly support this feature.

Original comment by iainsproat on 18 Jun 2010 at 12:19

GoogleCodeExporter commented 9 years ago
Thanks :) no problem.

Original comment by aery...@gmail.com on 19 Jun 2010 at 2:13

GoogleCodeExporter commented 9 years ago
Yes, Gridworks only binds to the 127.0.0.1 (localhost) IP interface by default, 
meaning that it will respond only to local calls. This is because Gridworks is 
not designed for concurrent multi-user operation and can result in data 
corruption. We are working on a system that allows multiple Gridworks to work 
on the same data concurrently, but this is not ready for prime time yet.

But in case you want to expose Gridworks anyway, you can run it as

  ./gridworks -i 0.0.0.0

which will make it listen to all requests coming to your machine, no matter 
what IP interface they come from.

Original comment by stefa...@google.com on 31 Aug 2010 at 6:11

GoogleCodeExporter commented 9 years ago

Original comment by tfmorris on 18 Sep 2012 at 2:58