前にすべてのウェブサービスがローカルにデータベースを持たずに、クラウドのデータベースサービスやweb自体を直接データベースとしてクエリーできるようになるという絵空事を書いたことがある。
この考えは自分としては変わってないんだけど、現実解としては、やっぱり各ウェブサービスがデータベースを個々に抱えてそれを提供するサービスにならざるを得ないんだな、やっぱり。
いろいろクラウドとしてのウェブ開発環境が初期段階なので、まだ、十分に使えるようになっていないということ。いろいろ回数や使用量の制限がありすぎて実用にならない。
また、クラウドのサービスを使うと高コストになってしまうということ。
現実にそこらの安いホスティングでMySQL使っている方が安くって、なおかつ、ある程度までのリクエストに耐えることもできる。アマゾンもGoogleも提供しているクラウド環境は結局有償なので、何か金儲けする為のサイトでないと、簡単に使うことができんよね。
ただ、言えることはネットのウェブサービスのほとんどはデータの検索と更新追加等に翻訳されるってことは変わりはない。なんの変哲もないそれだけのことなのだ。
DBで言うとCRUDだし、HTTPでいうとRESTな訳である。
データを生成し、取得し、更新し、削除する。
それができるインターフェイスがインターネット世界にいろいろおかれているだけのことなのだ。
まずはユーザはブラウザ等のインターフェイスを使って、URLでサーバにクエリーをかける。
サーバはプログラムでそのクエリーをDBのクエリーに変換する。
そして最終的にはウェブにくっついているRDBMSがクエリーされて結果が返される。
これがクラウドになった場合、
単にRDBMSがクラウドに変わるだけで、
今はRDBMS用のSQLというクエリー言語が使われているのが、
別の言語に変わるだけである。
今単純にMVCでしっかりと作っているwebサービスは、
Mがちゃんと抽象化されていれば、簡単にRDBMSからクラウドに置き換えは可能であろう。
あとはそのデータを検索するクエリー言語の能力おの差があろうが。
その点SQLは長い歴史に基づき、また、数学的な集合理論に裏打ちを持つ為に、かなり高性能である。
私が、現在のクラウドデータベースサービスの問い合わせが、あんまり複雑なことができないというのはそういうことである。単純に今SQLでできていることが、実現できない、または、実現するにはアプリケーションの方でいろいろ面倒を見なければならないからである。
SQLがいいのは、ちゃんとRDBMSの設計が適切にできていていれば、かなり凝った手を加えた状態でデータをRDBMSから取得できる。それが一回のRDBMSの接続でできたりする。
アプリケーションの方は、ほとんどその取得データをアプリケーション側で何の手も加えることも無しに使うことができるほどだ。
だからwebアプリケーションの極意(ってほどでもないけど)のほとんどは、SQLに関するもので、SQLで適切かつ楽にデータが取得できるようにRDBMSの設計をすることである。
特にデータの持ち方は非常にアプリケーションのパフォーマンスにも影響する。
だから、しばらくはこういったRDBMS主体のアプリケーションの作り方は変わらないのかもしれない。
そういえば、最近、Firefoxも内部でSQLiteつかってたり、組み込みRDBMSがFの携帯に使われていたり、いろんなweb以外の所でも、データ管理の為にSQLが使えるデータベースが普及してきたようだ。
やはり、データを適切に管理することが現代のどのアプリケーション分野でも求められていて、それの最も標準的で普及した手法としてRDBMSが見られているということだろう。
この考えは自分としては変わってないんだけど、現実解としては、やっぱり各ウェブサービスがデータベースを個々に抱えてそれを提供するサービスにならざるを得ないんだな、やっぱり。
いろいろクラウドとしてのウェブ開発環境が初期段階なので、まだ、十分に使えるようになっていないということ。いろいろ回数や使用量の制限がありすぎて実用にならない。
また、クラウドのサービスを使うと高コストになってしまうということ。
現実にそこらの安いホスティングでMySQL使っている方が安くって、なおかつ、ある程度までのリクエストに耐えることもできる。アマゾンもGoogleも提供しているクラウド環境は結局有償なので、何か金儲けする為のサイトでないと、簡単に使うことができんよね。
ただ、言えることはネットのウェブサービスのほとんどはデータの検索と更新追加等に翻訳されるってことは変わりはない。なんの変哲もないそれだけのことなのだ。
DBで言うとCRUDだし、HTTPでいうとRESTな訳である。
データを生成し、取得し、更新し、削除する。
それができるインターフェイスがインターネット世界にいろいろおかれているだけのことなのだ。
まずはユーザはブラウザ等のインターフェイスを使って、URLでサーバにクエリーをかける。
サーバはプログラムでそのクエリーをDBのクエリーに変換する。
そして最終的にはウェブにくっついているRDBMSがクエリーされて結果が返される。
これがクラウドになった場合、
単にRDBMSがクラウドに変わるだけで、
今はRDBMS用のSQLというクエリー言語が使われているのが、
別の言語に変わるだけである。
今単純にMVCでしっかりと作っているwebサービスは、
Mがちゃんと抽象化されていれば、簡単にRDBMSからクラウドに置き換えは可能であろう。
あとはそのデータを検索するクエリー言語の能力おの差があろうが。
その点SQLは長い歴史に基づき、また、数学的な集合理論に裏打ちを持つ為に、かなり高性能である。
私が、現在のクラウドデータベースサービスの問い合わせが、あんまり複雑なことができないというのはそういうことである。単純に今SQLでできていることが、実現できない、または、実現するにはアプリケーションの方でいろいろ面倒を見なければならないからである。
SQLがいいのは、ちゃんとRDBMSの設計が適切にできていていれば、かなり凝った手を加えた状態でデータをRDBMSから取得できる。それが一回のRDBMSの接続でできたりする。
アプリケーションの方は、ほとんどその取得データをアプリケーション側で何の手も加えることも無しに使うことができるほどだ。
だからwebアプリケーションの極意(ってほどでもないけど)のほとんどは、SQLに関するもので、SQLで適切かつ楽にデータが取得できるようにRDBMSの設計をすることである。
特にデータの持ち方は非常にアプリケーションのパフォーマンスにも影響する。
だから、しばらくはこういったRDBMS主体のアプリケーションの作り方は変わらないのかもしれない。
そういえば、最近、Firefoxも内部でSQLiteつかってたり、組み込みRDBMSがFの携帯に使われていたり、いろんなweb以外の所でも、データ管理の為にSQLが使えるデータベースが普及してきたようだ。
やはり、データを適切に管理することが現代のどのアプリケーション分野でも求められていて、それの最も標準的で普及した手法としてRDBMSが見られているということだろう。
0 件のコメント:
コメントを投稿