On Wed, Sep 15, 2010 at 5:37 PM, Jacob Hansson <ja...@voltvoodoo.com> wrote:

> Hi Alex, sorry this response took me so long, see responses inline!
>
> 2010/9/10 Alexandru Popescu ☀ <the.mindstorm.mailingl...@gmail.com>
>
> On Tuesday, September 7, 2010, Jacob Hansson <ja...@voltvoodoo.com> wrote:
>> > 2010/9/6 Alexandru Popescu ☀ <the.mindstorm.mailingl...@gmail.com>
>> >
>> >> On Monday, September 6, 2010, Jim Webber <j...@webber.name> wrote:
>> >> > Hi Alex,
>> >> >
>> >> >> While I still can achieve all these with the current packaging, it
>> >> >> feels more "hacky": I need to create a new Jetty6BasedWebServer or
>> >> >> modify the existing one to enhance it with my own stuff. Each change
>> >> >> would require compiling and repackaging the whole neo4j-rest.
>> >> >> Definitely not as easy as dropping in my own jar and a new web.xml.
>> >> >
>> >> > That's an interesting point. In a sense, the neo-rest package is
>> Neo's
>> >> REST package.
>> >>
>> >> Interesting... My main question is: what exactly is this package
>> >> offering to the end user in the current form? IMO it cannot be an
>> >> off-the-shelf product as there is no security. It is not a library
>> >> either, as extending it is not so easy. Basically, and without any
>> >> intention to harm any feelings, it looks like one of those dummy "web
>> >> UI interface to X". And I'd say it has much more potential than that!
>> >>
>> >>
>>
>> Jacob,
>>
>> I must confess I'm totally confused by your comments below.
>>
>> > I've always seen it as the beginnings of a proper stand-alone neo4j
>> server.
>>
>> If it is the beginning, then what comes next? And more importantly
>> from whom? Basically my proposal was meant to make things easier for
>> people to built on top of it, so I'm not really sure how you see the
>> continuation of it.
>>
>
> There is lots of cool things that can be done next. Both continuing to
> extend the functionality of the REST server, but also (and more importantly)
> to look at and help out with the work being done on clients for the server
> in various languages. For instance I'd love to see simple-to-use ORMs on top
> of the python and php clients, enabling web developers to start building
> stuff with Neo4j as their database tier.
>
>

Just to clarify (trying to keep my answers less confusing :) ):

To answer the last portion of your question, I think making neo4j REST more
extensible is great (see my last answer). However, I read your initial
proposal as an argument for viewing neo4j-rest as a library and for
switching to a WAR packaging model. Both of which I strongly oppose *if* it
is done at the expense of the stand alone application.


>> > A REST/JSON API to Neo4j opens up for remote clients in any language,
>> and
>> > would be an important part in matching offerings from other database
>> > vendors. While extendability is a great thing, building it as a library
>> > and/or packaging it as a WAR makes it very java-centric.
>> >
>>
>> Currently the neo4j-rest is distributed as a java application. So it
>> is java-centric. What makes it attractive is that it allows using the
>> HTTP protocol. Providing neo4j-rest as both a self contained app and
>> as a web app will give you exactly the same benefits, with additional
>> freedom on choosing how to use it, what servers to deploy it too, etc.
>>
>
> True, the neo4j-rest project is, but I see the biggest potential of the
> REST project in it's stand-alone version, neo4j-rest-standalone. The reason
> for that is precisely what I mentioned before, the fact that it is not java
> centric.
>
> Distributing both as a WAR and as a stand-alone application sounds like a
> great solution!
>
>
>>
>> > Like you say, there is no security, and I agree it is currently the main
>> > culprit stopping neo4j REST from production use. This can of course be
>> > offset with firewalling etc, but I couldn't agree more of the importance
>> of
>> > a proper security layer.
>> >
>>
>> Security was used as a basic example of things that could be much
>> easier to be added on top of the neo4j-rest if provided in a simpler
>> format. As you probably know already firewalls will give you at most a
>> very basic sort of authentication, but nothing else.
>>
>
>> > As far as "UI interface to X" goes, the area to focus on I think is the
>> JSON
>> > part of the API. With that, a UI can be built in any language. Take a
>> look
>> > at http://github.com/neo4j/webadmin for a more powerful browsing UI for
>> > neo4j REST.
>> >
>>
>> I think you mis-read my post. I'm not looking for a nice UI, but
>> rather for a basis to further build REST services on top of a neo4j
>> db. As Jim mentioned in his posts, currently neo4j-rest is just
>> exposing the basics of a neo4j db.
>>
>>
> It's true that the functionality exposed by neo4j-rest so far is fairly
> basic. There are several important parts of the neo4j API that should be
> exposed via REST (like transactions). I don't see that as an argument to
> make neo4j-rest more extendable though, as I feel these core items should be
> added the same way the data browsing, index and traversal APIs have been
> added.
>
> That said - extendability would be a great thing, and there are ways to
> make neo4j-rest much more accessible than it is today. I know Andreas is
> looking into the possibility of making neo4j-rest use OSGi-magic, which if
> implemented would make it possible to hot-deploy extensions into neo4j-rest
> as well as package extensions with it.
>
> I think the main reason of our disagreement (and my confusing answers :) )
> is that we view neo4j-rest from two sides. I see it through the eyes of a
> web-developer. I'm used to having my database at some given port and a
> client in my web tier that throws work at the database. You see it as a
> powerful tool to easily expose the data part of an app via HTTP, to be
> combined with other things exposed from the same app.
>
> I don't think there is a reason why neo4j-rest couldn't do both :)
>
>
>> :- alex
>>
>> >
>> >
>> >> > However the notion of just letting end users write their own code
>> hadn't
>> >> occurred at least to me. I guess I always assumed that if users really
>> >> wanted a domain specific API then they'd write their own. But the
>> notion of
>> >> user-registered filters (at least) is pretty sensible.
>> >> >
>> >>
>> >> I think your initial assumption makes a lot of sense. But why would
>> >> one have to duplicate all the work when this could provide him not
>> >> only with a good example, but a common basis for a complete solution.
>> >> I'm looking at it from the perspective of a DB vizualization tool:
>> >> what's in there offers you the default view. Next you could build your
>> >> own views, etc. You could even build your complete application using
>> >> it.
>> >>
>> >> Best thing is that I don't even think it is difficult to get it being
>> >> more a matter of packaging than anything else. All would be needed:
>> >>
>> >> - a web.xml file with some configuration options in it (db location)
>> >> - providing better access to the GraphDatabaseService (see my previous
>> >> suggestion) and other common shared resources (IndexService, etc)
>> >> - a different final package in form of a war
>> >> - done
>> >>
>> >> Does it make sense to you?
>> >>
>> >> :- alex
>> >>
>> >> > Jim
>> >> > _______________________________________________
>> >> > Neo4j mailing list
>> >> > User@lists.neo4j.org
>> >> > https://lists.neo4j.org/mailman/listinfo/user
>> >> >
>> >> _______________________________________________
>> >> Neo4j mailing list
>> >> User@lists.neo4j.org
>> >> https://lists.neo4j.org/mailman/listinfo/user
>> >>
>> >
>> >
>> >
>> > --
>> > Jacob Hansson
>> > Phone: +46 (0) 763503395
>> > Twitter: @jakewins
>> > _______________________________________________
>> > Neo4j mailing list
>> > User@lists.neo4j.org
>> > https://lists.neo4j.org/mailman/listinfo/user
>> >
>> _______________________________________________
>> Neo4j mailing list
>> User@lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
>>
>
>
>
> --
> Jacob Hansson
> Phone: +46 (0) 763503395
> Twitter: @jakewins
>



-- 
Jacob Hansson
Phone: +46 (0) 763503395
Twitter: @jakewins
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to