中山テック 代表の中山です。
久しぶりの代表経歴シリーズになります(笑)
ミドルとはOS(WindowsやLinuxなど)とアプリ
(制御可能なソフト。プログラミング言語で作られたもの)の間をつなぐためのソフトウェアを指します。
ちなみにデータベースもミドルウェアに属しますが、特別なミドルのため別だしさせて頂きました。
どんなものがあるかを下記でご説明したいと思います。
Webサーバ
現在インターネット見るためのソフト(Chorome、FireFoxなど)を動かして
ページを見ていると思いますが、サーバ側の受け口となるソフトを言います。
有名なソフトではApache、最近頭角を現しているNginx、Windows用のIISなどがあります。
一つの機能であればそこまでの強みはないですが、複数ある場合に強みを増します。
例えば、中山テックのページ(https://nakayama-tech.com)にアクセスしたい場合
もしくは他のページが同じサーバにある場合にWebサーバで振り分けることができます。
nakayam-tech.comなら弊社ページ、オンラインショップなら別名のページに
振り分けるといったことが可能です。
WebサーバではIPアドレスは一緒ですが「ポート番号」によって入口を分けております。
ちなみに代表はIIS以外は経験があります。
コンテナ
Webサーバとアプリケーションを繋ぐためのソフトウェアとなります。
ここでは「サーブレットコンテナ」と呼ばれるJava Servletのためのコンテナを指します。
Java全盛期にサーバでのJava制御を簡潔にするため、様々なコンテナが作られ、
現在は別の言語に対応可能なコンテナに進化しつつあります。
たとえば、会員制ホームページを作成する場合、あなたならどう作りますか?
0から作る場合はクライアント・サーバ間通信の知識、通信時のセキュリティの知識、
繋ぐための膨大なプログラミング、データベースアクセスなどの豊富な知識に加えて
膨大な時間を要することになります。
これをあっという間に時短してくれるのがコンテナの役割なのです。
代表はJavaメインで開発を行って来たため、下記のコンテナを触ってきました。
・Tomcat→Apacheとセットになっていることが多い。導入している企業様も多い
・WebLogic→機能的にはTomcatと大差はないが、実績やセキュリティなどの強みを活かし、
企業様に導入されている
・WildFly→以前は「JBoss」という名前で運用。高速、軽量、高機能を謳っているが、
使いこなすのには時間が掛かる
ちなみに、コンテナ単体でもサーバ通信は可能です。
軽い処理のサーバであれば、設定することで受け口をコンテナに集中することができるのです。
スケジュール管理ソフト
ある時間になると処理を動くよう命令するソフトウェアを指します。
有名どころでは「JP1」や「Tivoli」があります。
たとえば、データベースに大量のデータがあり、サーバを圧迫してしまうので
「1日のとある時間に○件データを消したい」といった処理を入れる場合や
他時間で処理を行いたい場合に役に立ちます。
こういった処理は夜間の2時3時辺りでやることも多いため、時間が来たら処理を行うためのソフトが必要となるのです。
まとめ
ミドルのお陰で工数削減が実現できており、実は目に見えない所で開発の効率化が実現できています。
ちなみに、弊社ホームページは「Wordpress」という制作を楽にするための
ミドルウェアを使用して制作しております。
これからプログラミングを始める方やインフラ構築される方、是非環境構築もマスターしてみてください。