各種システム開発・WEBコンテンツ制作・WEBデザイン・ホームページ制作・インフラ設計・構築・レンタルサーバー・ソフトウェア技術者のアウトソーシング事業を行っております。

5 月
29

PythonでWebアプリケーション開発

技術部ブログ管理者


長年、組み込みソフトウェアの開発に携わってきましたが、ここへ来て「Python」で
Webアプリケーションを開発する業務に就くことになりました。
そして、「Python」を理解するために渡されたのが、「MQTT」という通信プロトコルを
使った製品で、「MQTTブローカー」には「mosquitto」を使っている、といった説明が
ありました。
もちろん、これらの用語は組み込みソフトウェア開発で出てくることはなく、自分も
初めて聞いたので、インターネットで調査をすることからスタートしました。

★Python言語
Pythonは高水準プログラミング言語で、組み込みソフトウェアで使われているC言語や
アセンブリ言語などの低水準言語とは反対の位置にあります。
低水準言語の場合、プロセッサに依存した処理を書いたり、メモリやIO制御の操作が
必要になりますが、これらを気にしなくてもいいので理解し易い言語となっています。
また、Pythonは統計処理や数値計算を得意とするプログラミング言語で、AI(人工知能)
や機械学習やディープラーニングの分野で使われていて、将来的に市場が大きくなると
期待されているので、これから習得したいプログラム言語で上位に入っています。
なお、低水準言語で開発をしてきた自分がpythonで感じたのは、C言語と似ている部分が
ある事です。
プログラムの基本構文である順次処理・分岐処理・反復処理が理解できれば、短期間で
身に付きそうなプログラミング言語なので、これからプログラミングを始める人には
Pythonを学ぶのが良いと感じました。

★MQTT(Message Queuing Telemetry Transport)
MQTTは、機械同士が通信を介して情報をやり取りするM2M(Machine-to-Machine)、
家電や自動車など多種多様な「モノ」がインターネットにつながり、お互いに情報を
やり取りするIoT(Internet of Things)を実現するのに適したプロトコルと言われて
います。
この通信プロトコルは、Publish/Subscribe型のモデルを採用していて、メッセージの
送信側をPublisher、メッセージの受信側をSubscriberに分け、中継serverであるMQTT
Brokerを介してメッセージのやり取りをおこないます。
___________ ________________ ____________________
| | | | | |
| | | |__| Subscriber(受信側) |
| | | | |____________________|
| Publisher |__| Broker | ____________________
| (送信側) | | (処理サーバー) | | |
| | | |__| Subscriber(受信側) |
|___________| |________________| |____________________|

この通信プロトコル、「1つが小さい」「大量の」データを「低遅延」「双方向」で
通信できる特徴があるので、「MQTT」の実装は増加しています。

★mosquitto
mosquittoは、MQTT Brokerの一つです。
他にもMQTT Brokerはありますが、mosquittoと比較するとスペックが低いみたいで、
インターネットで検索するとほとんどがmosquittoの説明でした。
ちなみに、mosquittoに関しては、システム的な事を理解する必要はないようです。
とりあえずは、インストール手順とファイアウォールの設定とどのようなメッセージ
コマンドがあるかを抑えておけば使うことができます。

★最後に個人的な感想を
PythonのWebアプリケーション開発ですが、プログラムを作っていて大変面白いです。
ソフトウェアの規模がそれほど大きくなく、1人でシステム全体を構築することも
可能なので、「モノ」づくりをしているという実感がします。
1つの製品を作る過程で上流工程であるシステムの設計も必要になるので、技術力を
身に着ける最短距離ではないかとと感じました。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

月別アーカイブ

カテゴリ