March 2010 Sprint, Akara platform notes
Dealing with WSGI
Incremental responses (HTTP 206 return codes)
Mark: it can be difficult to support ranges, even some proxies don't support ranges properly. e.g. some proxies interpret byte ranges before tranfer encodings and some after.
"Hop-by-hop headers" some headers are
In the process perhaps address the issue of closing long-running WSGI requests
http://mail.python.org/pipermail/web-sig/2009-April/003785.html
http://mail.python.org/pipermail/web-sig/2009-April/003784.html
http://mail.python.org/pipermail/web-sig/2009-April/003783.html
Proper, RESTful Web caching
#geotools.py
#Generally you would use this service registration mechanism if the service is itself implemented in Akara
@simple_service(..., template='gelookup.json/{place}')
def geolookup():
#Invoke GeoNames.org here
return 0.0, 0.0#akara.conf
#Generally you would use this config approach for a service alien to Akara
[proxied_services]
geolookup = http://purl.org/gelookup.json http://mycoolhost.org/geolookup.json
geolookup.template = http://mycoolhost.org/geolookup.json?place={place}#tellmewhere.py
from akara.util import service
@simple_service(...)
def client():
#We want to invoke a remote service here
s = service('http://purl.org/gelookup.json')
h.request('GET', s.construct_url(place='Boulder, CO'))
Option 2: OpenSearch
<blah>
<Id href="http://purl.org/gelookup.json"/> <Url template='http://mycoolhost.org/geolookup.json?place={place}'/>
...
Option 3:
No configuration, so we don't have a service, but when someone makes a service req it uses discovery to find that OpenSearch doc
System for testing of custom code
Profiling
try out RunSnakeRun?
Andrew D will work on profiling command-line option
Tools for service costs & metering
i18n
