Hi Mckeane,

Unfortunately, there's no "right answer" here. This actually seems to be 
a recent 'hot topic' (or at least I've heard this sort of question 
frequently off-list).

At this point in time, there seem to be three main routes (that I can 
think of) which you could use to integrate an external web application 
framework into DSpace. (It would also be possible to use multiple of 
these integration routes at once, depending on your projects needs)

---

(1) Direct Database & Filesystem Access integration

Obviously, any framework could be used to go against the DSpace 
underlying database and filesystem storage. But, the downside here is 
that you may be essentially bypassing most/all of the DSpace Java code. 
So, this may be a larger project.

(2) Java API integration

This is traditionally how many past Web UI projects have integrated into 
DSpace (e.g. XMLUI, which was built ~5 years ago as the latest UI). 
Unfortunately, over the years we've found our Java API does not provide 
a "perfect" integration. DSpace still has a bit too much "business 
logic" that ends up needing to be repeated in each new UI, as the 
underlying Java API doesn't handle all that business logic for you.

There has been some recent discussion amongst the DSpace Developers (in 
our recent Developer Meetings[1]) about how we can start to avoid 
'business logic' duplication in all UIs.  This is a refactoring project 
that just needs to happen, but so far we're still in the planning stages 
and also need to find some volunteers to help out.  If you'd be 
interested in helping with such a project, let us know.

In any case, any web application framework that can "speak" Java (or 
make calls to a Java API) may be able to go against our existing Java 
API (though as mentioned, you may need to rewrite some Business Logic 
that currently exists up in the XMLUI and/or JSPUI codebases).


(3) REST API integration

Currently, our DSpace REST API is still "experimental"
https://wiki.duraspace.org/display/DSPACE/REST+API

But, more and more people are starting to use it as an integration point 
with DSpace.  It's definitely still not perfect (some bugs still exist, 
and not all features may be there yet), but it's a good start.

Any web application framework that can speak REST (including many 
non-Java web application frameworks) may be able to go directly against 
the REST API.

We could also use some help in stabilizing & improving the REST API. So, 
if you go this route, so please feel free to send fixes/feedback our way 
as well.  There are some known issues in the REST API that also need 
fixing (If anyone on this list is interested, please feel free to 
volunteer to help!) https://jira.duraspace.org/browse/DS/component/10190

---

So, It's hard to say which route is the best route at this point. 
Obviously, all of them need some more work. We're still searching for 
volunteer developers to help us improve the DSpace APIs so that it is 
better able to integrate into other Web Application Frameworks or Rapid 
Development Frameworks (like Play! Framework, or potentially even 
non-Java frameworks like Ruby on Rails or Django or others).

If anyone on this list has a special interest in helping DSpace to 
integrate with external web development frameworks, please feel free to 
let us know ways in which you would be willing to help.

In general, this idea of improving how DSpace can integrate with other 
web frameworks is a discussion I plan to start amongst the developers in 
the coming months. So, you are also very welcome to follow along on the 
dspace-devel list and in our weekly DSpace Developer meetings 
(https://wiki.duraspace.org/display/DSPACE/Developer+Meetings).

If you start to go down any of these routes for your own project, please 
do report back to us. If you are able to share or open source your 
project code, you may even find that other developers would be willing 
to contribute directly to your project (especially if you do your 
development in something like GitHub, which more & more of our 
developers seem to be moving towards).

Finally, please note these are my own personal thoughts on the matter. 
Others on this list may have additional tips/hints/ideas they may wish 
to share!

Keep in touch. I'll be interested to hear what you decide upon.

- Tim


[1] See developer meeting transcript from Jan 18: 
http://irclogs.duraspace.org/index.php?date=2012-01-18

On 1/27/2012 12:02 PM, Mckeane Thomas wrote:
> Hello, I am looking for a Java web application framework to integrate
> with dspace. I am developing a software to use with dspace to provide a
> user interface, that accesses the back-end of dspace for data
> manipulation. Any help with this would be greatly appreciated.
>
>
> ------------------------------------------------------------------------------
> Try before you buy = See our experts in action!
> The most comprehensive online learning library for Microsoft developers
> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> Metro Style Apps, more. Free future releases when you subscribe now!
> http://p.sf.net/sfu/learndevnow-dev2
>
>
>
> _______________________________________________
> DSpace-tech mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/dspace-tech

------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
DSpace-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-tech

Reply via email to