As part of the NYLS Peer to Patent project , I took an extensive look at a variety of technologies that could be used to support a communicate based peer review of patent applications.
One segment that we looked at carefully was academic or scientific peer review technology. Peer review is nothing new in the academic world and so why not try to take advantage of something out there? One of the best examples of this technology is the Topaz framework that is under development by the Public Library of Science (PLoS). They've done a great job pulling together a java framework that allows markup of content in the scientific community. Topaz has some vert intriguing features including the ability to markup XML documents. We also looked at a variety of content management systems (CMS); but nothing fit quite right. Finally, we looked at PERL and PHP based alternatives. In the end, we wound up selecting Ruby on Rails. There are a few key reasons why this was the platform of choice in this instance.
First, we wanted a lightweight framework. The java-based alternatives available were either heavy weight (in the case of Mulgara) or not a good fit for the variety of Web 2.0 features that we were looking for. There was no web2 toolkit per se that had what we needed.
Second, while java has a huge variety of components and stacks, there isnt a dominant framework for handling the type of application we would be looking for. What this meant is that developers would have to spend a lot of time coming up to speed on the specific java libraries that were chosen as the starting point for the system.
Third, we wanted a framework that could be used for building other, similar applications.
So what are some of the lessons learned related to using Ruby on Rails?
- Lesson 1: Easy to learn. Rails isn't much easier to learn than Java or any other language. It requires skilled developers and roughly the same skillset as java development. The place where you might pickup speed is when Rails has the components or code samples that you need more readily available than other frameworks.
- Lesson 2: Performance. Rails out of the box performance ain't so hot. It requires a lot of funky work to develop page caching schemes to make up for the performance of the rails stack. Once you get the caching scheme set, then you are in business. Rails can handle what we needed but it requires some tweaking to get to that point.
- Lesson 3: The Rails framework is powerful. Basically, you can get a lot done with Rails. The flexibility of the framework has helped us keep a high level of control over the user experience for the system.
We're still motoring along using Rails and so far the results are good. The system works, it can handle the traffic as far as we need it today, and we are starting to look at how the system can be extended
In case you're wondering about Peer-to-Patent, you can find more about it here. The project enables the public to submit prior art and commentary relevant to the claims of pending patent applications in Computer Architecture, Software, and Information Security (TC2100). This initiative connects an open network of community input to the legal decision-making process.
--Eric