Designing and Implementing Web Data Services in Perl
By Michael McClennen
Date: Wednesday, 25 June 2014 10:00
Duration: 50 minutes
Target audience: Intermediate
Language: English
Tags: application framework http json rest web
You can find more information on the speaker's site:
Perl is a language almost perfectly designed for implementing Web data services. But even with this marvelous language and the plethora of useful CPAN modules that we have available, designing and implementing a useful, efficient and well-documented data service is no easy task.
This talk will address the major points that need to be considered in designing and implementing a Perl-based data service. The primary example will be the speaker's recent implementation of a data service for The Paleobiology Database (http://paleobiodb.org/data1.1/); other examples will be presented for contrast and to highlight different implementation choices and their consequences.
The talk is aimed at attendees who are either in the process of implementing a web data service or are planning to do so in the future. It will provide concrete guidance about what questions need to be asked, what decisions need to be made, and the pros and cons of various implementation choices. The following points will be discussed:
- Choice of frameworks
- HTTP server
- Web application framework
- Data framework
- Cacheing framework
- Important protocols
- HTTP
- CORS
- JSON
- Parameter validation
- Error reporting
- The principle of Integral Documentation
- Handling multiple output formats and vocabularies
- Cacheing and cache gotchas
- Character sets
- Basic principles of REST
All of these considerations and more have been addressed in the modules HTTP::Validate and Web::DataService, coming soon to CPAN. The talk will include a brief overview of these modules, but will not focus exclusively on them.
- Leon Timmermans (leont)
- Gene Boggs (ology/nlogn)
- Nicholas Foos
- Dmitri Tikhonov (dmitri)
- James Carman (Jeremy)
- Bradley Andersen (elohmrow)
- Andrew Grangaard (spazm)
- Yanick Champoux (Yanick)
- Joe Axford (j0e)
- Henry Van Styn (vanstyn)
- Thomas Glase
- Phil Wells (kyoob)
- Joe Kline (gizmo)
- Wallace Reis (wreis)
- Jay Allen (jayallen)
- James Morgan
- Sean Quinlan (spq_easy)
- Joe Zhou
- Laurence Simon (Laurence)
- theFu
- morgan jones
- ali roozitalab
- Rish
- Rich Harkins
- vroom
- Jacob Perkins (Perk)
- Turd Furgison (fartfart)
- Sean Riley
- Matt Phillips (mattp)
- Nikolay Martynov
- Michael McClennen
- Gabriel Munoz (gabriel)
- Maximilian Witte
- Douglas Early (Doug)
- Jeff Boes (Murwiz)
- Christopher Butler
- James Bacon (boftx)
- Brian Brandes
- James Lenz (Jim)
- Kenneth Smith
- D Ruth Bavousett (druthb)
- jerry gay (particle)
- Brendan Byrd (SineSwiper)
- Dana Jacobsen (danaj)
- Tom Green (Tom)
- NdFeB
- Kevin Olson
- Ross Steiner (rdsteiner)
- Kaushik Acharya
- Jeffrey Tomsak (Jeff)
- Jerry Swann