2020年11月23日月曜日

メッセージキュー再訪

某クラウドで RabbitMQ が発表されていた

https://aws.amazon.com/jp/about-aws/whats-new/2020/11/announcing-amazon-mq-rabbitmq/

昔の職場では SQS や EC2 上に入れた RabbitMQ をつかっていたなと思い出し、当時はこんなのをみたりしていた

Message Queue Evaluation Notes http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes

その数年後何かきっかけでメッセージキューのこの記事をみたり。https://postd.cc/dissecting-message-queues/

postd.cc の翻訳記事は以前ちょいちょい見ていたけど担当者いなくなったのかもはや更新されていないな。


ところでメッセージキューの歴史ってばどんなんだろうと wikipedia 見るも、あまりよく分からない。 https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%AD%E3%83%A5%E3%83%BC

歴史的には、メッセージキューはプロプライエタリな閉鎖的プロトコルとして使われ始めたもので、そのために異なるOSやプログラミング言語を含めた環境の構築が制限されていた。 

うーん、その歴史的なのが知りたいところ。

 

メッセージキューをより遍在的にする初期の試みとして、サン・マイクロシステムズJMS仕様があり、JavaによってクライアントAPIを抽象化して異機種間接続を可能にしていた。これによりJavaを使えばメッセージキューのプロバイダーを切り替え可能となっており、SQLによってデータベースの切り替えが可能になったのと似ている。しかし実際にはメッセージキューの技法やシナリオは非常に多様であり、JMSが常に有効というわけではない。

その JMS は 2001年からと。上の概要のところ見ると80年代初期には〜〜とはある。

 

VxWorksやQNXといったリアルタイムオペレーティングシステム (RTOS) では、メッセージキューを主要なプロセス間通信機構やスレッド間通信機構として採用している。これらの場合、リアルタイム性が重視されるため、メッセージキューとCPUスケジューリングが密に関連している。1980年代初期には、VRTX や pSOS+ といった RTOS でメッセージキューを使ったスレッド間通信機構が使われ始めた。 

組み込み系な方(かた)だと詳しいのかもしれないな。

QNX のサイトにそれらしいドキュメントあり。歴史的なものはわからない。

Message queues http://www.qnx.com/developers/docs/7.0.0/#com.qnx.doc.neutrino.user_guide/topic/limits_Mqueue.html

POSIX Message Queues: Two Implementations http://www.qnx.com/developers/docs/7.0.0/#com.qnx.doc.neutrino.technotes/topic/managing_mq_mqueue.html

POSIX 1003.1 と。 https://ja.wikipedia.org/wiki/POSIX_1003.1b

[サンプルプログラム] のとこに記載の企業見てみると RTOS 屋さん。RedHawk Linux 。

https://www.concurrent-rt.co.jp/products/redhawk-linux/

 

Solaris には System V メッセージキューというのがある(あった?)らしい。

https://docs.oracle.com/cd/E19683-01/816-3961/6ma74f435/index.html 


0 件のコメント:

コメントを投稿