TornadoとはPythonに活用されるオープンソースWebアプリケーションフレームワークです。Facebook社が買収したことでも有名です。同社がリアルタイム性の高いWeb対応サービスの基盤を狙い、大量トラフィックの同時処理ができるよう設計しております。この記事ではTornadoを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説していきます。
Tornado(トルネード)とはPythonに活用されるFriendFeed社によって開発されたWebアプリケーションフレームワークです。2009年に誕生し、FriendFeed社がFacebook社に吸収された後にオープンソース化されました。特徴として『非同期処理』や『同時接続処理』を得意しております。ノンブロッキングネットワークI / Oを使用することで、数万のオープン接続に拡張できるため、 ロングポーリング、 WebSocket、および各ユーザーへの長期間の接続を必要とするその他のアプリケーションに最適です。
Pythonとはグイド・ヴァンロッサム氏によって1991年に開発された汎用的に使用されるプログラミング言語です。サーバサイド言語としてWebアプリケーションやデスクトップアプリケーションの開発に使われるだけでなく、組み込み開発、自動処理、統計・解析、機械学習など幅広い領域に対応出来るプログラミング言語として親しまれております。特徴として『コードがシンプルで覚えやすい』『少ない記述で多くの処理が可能』などが挙げられます。Pythonは人工知能(AI)やビッグデータなどトレンドの分野にて重宝されております。
『Pythonにおけるシステム開発を簡単に行えるように用意された枠組みのこと』
PythonフレームワークとはPythonにおけるシステム開発のプログラミングを効率的に実施するために汎用的な機能群をまとめ、システムの骨組みとなるテンプレートまで用意してくれる枠組みのことです。フレームワークを活用することでプログラミングにおける記述コードを最小限に抑えることが出来ます。Pythonフレームワークの代表的な種類としてDjango、Flask、Bottleなどが挙げられます。
Pythonフレームワーク人気どころ6選ついて解説された記事はこちら>>
Tornadoの読み方は『トルネード』です。名前の由来に関する情報はありませんでしたが、Tornadoを直訳すると「竜巻、旋風」という意味があります。Tornadoが使用しているロゴも竜巻のようなデザインであることからこのような意味が込められていると読み取れます。
Tornadoは2009年にFriendFeed社の開発によってPython向けフレームワークおよび非同期ネットワークライブラリとして誕生しました。同年2009年にFacebook社に買収されたことも話題となりました。Facebook社はリアルタイム性の高いWeb対応サービスの基盤を狙い、大量トラフィックの同時処理ができるよう設計をしました。それから数多くのバージョンアップを重ねて2020年現在『Tornado6.0』が最新となっております。バージョンアップについて簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
2009年9月 | Tornado 初版リリース |
2010年7月 | Tornado1.0 リリース |
2011年6月 | Tornado2.0 リリース |
2013年6月 | Tornado3.0 リリース |
2014年7月 | Tornado4.0 リリース |
2018年3月 | Tornado5.0 リリース |
2019年3月 | Tornado6.0 リリース |
Tornadoの特徴を見ていきましょう。
Bottleはマイクロフレームワークという特徴があります。高速、シンプル、軽量になるように設計されております。同じくPython向けのフレームワークであるFlaskと同様に小規模でシンプルなWebアプリケーションの開発を実行する際に人気を集めております。
マイクロフレームワークの特徴、種類などについて解説された記事はこちら>>
Tornadoは非同期通信という特徴があります。TornadoはWSGIに基づいておらず、その他のフレームワークと違いがあります。Tornadoは非ブロッキングサーバを使用することで毎秒数に数万のオープン接続に拡張と処理することが可能となっております。
Tornadoは同時接続処理という特徴があります。数1,000もの同時接続を処理できるため、リアルタイムのWebサービスに最適とされております。
Tornado以外のPythonによるシステム開発に用いられる代表的なフレームワークを紹介させていただきます。
Django(ジャンゴ)とはPythonに活用されジャンゴソフトウェア財団によって管理されているWebアプリケーションフレームワークです。2005年にニュース系サイトに利用されることを目的に誕生しました。特徴として『速い』『安全』『柔軟性・拡張性』を掲げております。このようにDjangoを使用すると、より少ないコードで、より迅速に、より優れたWebアプリケーションを構築することができます。またDjangoというその名の由来はフランスで活躍したジャズバンド「ジプシー・スウィング」のギタリストである『ジャンゴ・ラインハルト』にちなんで名付けられたそうです。Djangoを利用している有名なサービスとして『Instagram』『YouTube』『DropBox』などが挙げられます。数あるPython向けのフレームワークの中でも知名度、普及率ともにトップの人気を集めております。
Flask(フラスク)とはPythonに活用されるアーミン・ロナッチャー氏によって開発されたWebアプリケーションフレームワークです。2010年4月1日のエイプリールフールに誕生し、アーミン・ロナッチャー氏は「エイプリールフールのジョークで作ったのだが、いつの間にか有名にそして本格的になってしまった」と語っております。特徴として提供される機能を最小限に抑えていることから『マイクロフレームワーク』と呼ばれております。シンプルな作りであることから学習コストが低く、導入障壁が低いこともメリットとして挙げられます。特に小規模でシンプルなWebアプリケーションの開発を実行する際に人気を集めております。
Bottle(ボトル)とはPythonに活用されるマルセル・ヘルカンプ氏によって開発されたWebアプリケーションフレームワークです。2009年7月に高速、シンプル、軽量になるように設計されたマイクロフレームワークとして誕生しました。シンプルさを売りにしていることから標準搭載された機能は限定的なものです。どれほどシンプルかというとBottleは一つのファイルで構成されております。マイクロフレームワークであるFlaskと同様に小規模でシンプルなWebアプリケーションの開発を実行する際に人気を集めております。
Tornadoを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説させていただきました。Tornadoを一言で表すと『スケーラブルでノンブロッキングなWebフレームワーク 』です。Tornadoには『非同期通信』『同時接続処理』といった特徴が挙げられます。Tornadoについてこの記事に記載されている最低限の内容は理解しておくようにしましょう。