PLUG Homepage About Linux PLUG Mailing List Talks Venue Code of Conduct

March 2016 Meet

Saturday 19th March, 1pm to 6pm at Broad Oak Sports and Social Club

Developing a CouchDB Application Using CouchApp

Jeffrey Best says:

I am IT Manager at Travel Places, a sports group business-to-business travel agency, based in Worthing. We handle travel services for most of the Formula One teams, the British Olympic (TeamGB) and Paralympic Associations, Volvo Ocean Race and Americas Cup yachting, the Scout Association 2015 Jamboree in Japan (4,500 scouts!), sports media travel for BBC, Sky, Reuters, and many other sports. We also have a rapidly expanding schools and clubs section.

In 2011 I took on the challenge of getting to grips with, and re-engineering, a legacy system written by a single developer over 15-20 years. This used Visual Basic 6 code, and many Access/Jet databases, with islands of code using either Data Access Objects (DAO) or ActiveX Data Objects (ADO) to talk to the databases. Web user interfaces were provided by a single classic ASP page instantiating a monolithic ActiveX (Component Object Model) component.

I have created a web services API layer using the legacy technologies that is supporting development that will be automatically translated into the new technologies. This has supported the outsourced development of a mobile app and is currently providing a web user interface for the BOA and BPA to manage the team travel for Rio 2016. Last year my team focussed on developing the core services layer for a migration of the functionality, supported by a fresh analysis of the business processes and requirements.The target architecture will be service-oriented, including composable micro-services. The target technologies include Java, JMS via ActiveMQ, PostgreSQL via JDBC and Enterprise Integration Patterns (EIP) via Apache Camel. Development uses Eclipse, with Git, JUnit, Maven and Jenkins. Needing a web caching mechanism and wanting to centralise service settings data within a mixed Windows/Linux environment, I elected to use CouchDB. This presentation has grown out of my exploration of how CouchDB works, what I can do with it, and what might be the best ways to use it.

I propose to explain what CouchDB is, how it works, how database designs can be manipulated to control how documents are served and what they should look like, and how web applications can be built to be served from within CouchDB. I will also cover why I chose CouchDB and who uses it. My sample application is a proof of concept developed to meet a genuine business requirement for a "Prospects" database. I will also show a settings database and the Java code we use to fetch settings for new services and a log database and the bash shell scripts we have used in temporary integration mechanisms to push log entries and investigate issues.

If my experiments between now and the scheduled talk are successful, I may also be able to show other ways to build web applications, e.g. using a separate web server and with AngularJS, and I may be able to show how a PostgreSQL database can access CouchDB documents using a Foreign Data Wrapper

You can download the slides from the talk here.

Return to main talks page