つーわけで、いきなり技術ネタ。
スマホの普及により、JSが移動端末でも動作するようになった昨今、Webアプリの構成も変えるべきだと思っていて、まあ Ajaxくらいは当たり前として、でも、どうせならビジネスロジックもJSで書いちゃえばいいじゃんって思ってた。それでこそJavaScriptの MVCライブラリだって活かせるんだろうし。
で、普通にやろうとすると、RDBMSやKVS にLLからアクセスして、目的のデータを出し入れするわけだけれども、ちょいまち、と。KVSクエリくらいならRESTでも充分なんじゃね?と思ったわけです。結果はもちろんJSONで受け取る。
早速 “Redis HTTP GET JSON”でぐぐったら、案の定見つかりました、Webdis。表書きを読んでみると、やはりセキュリティは気にかけていて、
Access control
Because some Redis commands can write data, exposing Webdis to clients on the web might not be a good idea. Fortunately, an ACL system matches a profile type to a list of permissions. Each access control setting can match clients by IP + range, by HTTP Auth, or by both, and lists the commands they are able and unable to execute.
This lets you disable write commands for the public, whilst still keeping a full access from your network.
んんー、ベーシック認証かぁ、クッキーなりセッションなりにして欲しかったなぁ、とは思いつつ、まあそこは自前で用意しなさいってことなんだろう。それに GAE の中から外部へは HTTP(S)でしかアクセスできないから、Redisに慣れててデータストアは糞!とか思ってる人は嬉しいのかも。GAEでRedis用意してくれればいいのにね。。。
なんでRedisにこだわるかっていうと、「鬼のように速い」と評判だから。まあそれは Key&Valueの1対1なデータの入出力に関してであって、全文検索とか部分一致のパフォーマンスもいいのかは、調べてないし、第一使ったことないw
認証とデータ操作制限はサーバサイドで実装する必要はあるけど、まあ最悪ビジネスロジックはサーバ側でうごかしちゃってもいし。
そんなことを考える今日このごろなのでした。