AIRでアプリを作っていて、いくつか悩みが出てきた。
バックグラウンドとして、安定して処理をするにはActionScriptで大丈夫なのだろうか?
ということだ。
これは、速度についてもあるし、たとえば、自分が端末の前に座っていない、深夜に処理をやってほしい。
などなど・・・・
具体的には、処理があいているときに全文検索の為のインデックスをつくれないかなーとか・・・・
でも、ActionScriptで、そもそも全文検索DBの構築をするための処理を書くのは、Javaなんかでさんざんいろいろなものがあるのに、
することじゃないだろうなー。と。
んー、やっぱり、100% AIRでクライアントツールを作るのにも、どこかで無理があるのかな。
でも、そのためにインターネット上にサーバを用意するのは、ちょっと考え物だし・・・・
つまり、ローカルでサーバが動いている必要がでてきてしまう。
まあ、Tomcatとかを動かしてしまえばいいのかもしれませんが、やっぱり、
ちょっと気分的にそれは重いかな・・・・
と、まずは探そうとおもったら、
Merapi
というものがありました。
AIRとJavaのブリッジだとあります。
ちょっと、ソースを見てみると、127.0.0.1のポート12345を使って、Socket通信している感じ。
(よくは調べていないので、そうでないかもしれませんが・・・)
んー、これだと、自分で作り込んじゃっても、それほどかわらないかなという感じです。
それに、これをソケット通信にしないで、127.0.0.1のサーバとHTTP通信すると、
AIRだけでなく、ブラウザ上のFlashからもアクセスできるのかな?
まあ、セキュリティも問題もあるが・・・・
でも、技術的なセキュリティ問題の回避の為に、根本的なセキュリティを許容するのも本末転倒だし。
(つまり、ネットワーク上に上げる必要も無いデータを、加工するためだけにネットワークに上げるという意味。)
ローカルホスト上に、基本的な機能(DB、File、ネットワーク)なんかの操作APIを提供するサーバがあれば、
配布はWEB(ブラウザ上のFlashという意味)で行って、ローカルアプリのような事ができる。
どうも、最初のAIRの配布方法と実行条件に難があるのですよね。
あと、あのアプリへの署名。
お手軽アプリを作りたいだけなのに、「危険です」みたいなものを表示し続けなければならないのは、ちょっと・・・・
特に最近のWindowsなどは、管理権限などもうるさく(?)なり、簡単にローカルアプリはインストール・アップデートできなくなったことを考えると、
AIRの位置づけが微妙だなという認識が消えないのです。
でも、やっぱり、ローカルで何でもできるようなサーバがたっていて、それにアクセスできるのは明らかにセキュリティ上の穴だし・・・・
まあ、とりあえずは、その何でもサーバを作ることを考えてみると、いいアイデアや、情報が見えるかもしれません。
そもそも、AIRでないFlashアプリが127.0.0.1にアクセスできるのかも今は知らないのですが・・・・
と、Javaでお手軽サーバを作ろう、せっかく作るのであれば、HTTP以外のプロトコルも簡単にあつかいたいなーという欲も出てくる。
ならばと、調べると、
Apache MINAとか、nettyのようなものをベースに作るのがらくかなーと。
と、Flex4もまだ浸透していないし、AIR2もまだリリースされていないし、
当分、Javaのほうに足をつっこもうかなと思う今日この頃です。


