OSとアプリケーションソフトウェアの中間的な位置づけを持つソフトウェアの総称。 RDBMSなどはその位置づけであったが、現在ではRDBMSあるいはDBとして一つのジャンルとして確立されているため、ミドルウェアと呼ぶ事は殆どない。 いわゆるソフトウェア界の中間管理職と言える。 上からはユーザのためと無理難題を押しつけられ、下からはそんな面倒な事はそっちでやれと板挟み。
【Apacheとはなにか】Apache(アパッチ)とは、オープンソースとして無料で利用できるWebサーバーソフトウェアです。(Webサーバーソフトウェアとは、ChromeやSafariなどのWebブラウザを利用してWebサイトへアクセスした際に、Webサーバーで処理をして接続元(のブラウザ)へHTMLやCSS、JavaScriptなどの情報を返却する役割を持つソフトウェアです。) 高い処理性能と豊富な拡張機能、使いやすい管理画面などが特徴で、大規模Webサイトでも柔軟に対応できます。 一方で、高機能ゆえに設定が複雑になる傾向があり、セキュリティ対策やメンテナンス、運用作業にも注意が必要です。継…
インフラストリーミングチームの近藤 (@udzura) です。今回は、ミラティブで内製しているオブジェクトストレージサーバ「b3」の紹介記事を書きたいと思います。 今回の記事は、6月にGopher Talkというイベントで発表した「Go製ミドルウェアを実践投入するにあたりやったこと」をベースに、内容を詳細にしたり直近の開発状況に合わせて更新したものです。一部内容はこの発表と重複していますがご了承ください。 オブジェクトストレージサーバを内製した背景 1. 大量オブジェクトの操作や増え続ける転送量に対応したい 2. 一定期間しかファイルの保持をしない 3. オンメモリ/SSD/HDDを組み合わせ…
Software. ソフトウェア
簡単なものですが、自作のミドルウェアを作成してみましょう。 expressjs.com Expressのガイドにも記載がありますが、 「 req , res 」のオブジェクト以外にも第三引数に「 next 」を渡すことができます。 この「 next 」が次のミドルウェアを指す関数となっています。 文字だけではわかりづらいので実際に記述してみます。(_の部分) const express = require('express'); const app = express(); const morgan = require('morgan'); app.use(morgan('tiny')); /…
ミドルウェアとは、リクエスト/レスポンスのライフサイクルの中で実行される関数のこ とを指します。 これまでは下記のものを使用してきました。 //フォームからデータを受け取れるようにする ・app.use(express.urlencoded({ extended: true })); //リクエストはpostかgetのみなのでPUT, DELETEを使えるようにオーバーライドしておく ・app.use(methodOverride('_method')) ・ミドルウェアはただの関数 ・各ミドルウェアはリクエストオブジェクトとレスポンスオブジェクトにアクセス可能 ・ミドルウェアは「res.sen…
こんにちは、リンクアンドモチベーション SREグループの久原です。今回は、SREチーム内の生産性・信頼性向上のために取り組んだミドルウェアアップデートの自動化施策について紹介いたします。 背景 自動化の成果 手順の簡略化 before after 対応時間の削減 やったこと ミドルウェアアップデートの手順 自動化の方針 ①各項目ごとに手動の部分はCodeBuildを使って自動化する before after ②項目間の移行はCodePipelineを使って一気に実施できるようにする 今後の展望 背景 なぜミドルウェアアップデートの自動化に取り組んだのか?それは現在SREチームで注力している 「…
Expressのミドルウェアの挙動、特に非同期処理をおこなうにエラーが発生した場合の挙動が気になったので試してみた。 ミドルウェアで非同期処理をするのは前処理でデータベースに登録するケース等を想定している。 挙動を確認した実装はGitHubにおいた:nodejs-module-labo/express-middleware at main · s1r-J/nodejs-module-labo 実装で気をつけるポイント 先にポイントをまとめておく。 next()は複数回呼び出しても問題ない ミドルウェアでエラーを発生されるときはnext(err);のように呼び出す 呼び出さずにthrowするだけ…
プログラミングの仕事をしていると、外来語由来のカタカナ専門用語が非常に出くわします。 ライブラリとかミドルウェアとかフレームワークといった感じですね。 今回は改めて、その意味について調べてみました。 間違ってたらコメントくださいな~。 ライブラリ API ミドルウェア wikiの記述 IBMの記述 RedHatの記述 Microsoftのdefinition 英語圏でも定義は別れていそう フレームワーク IDE SDK Platform ライブラリ 単体では動作することができず、意図的に組み込んで使うプログラムです。 簡単にいえば、import とか、include とかして呼び出すプログラム…
こんにちは。クルーズ株式会社CTOの鈴木です。 今回はこの一連のOS/ミドルウェアバージョンアップの中の残タスクとなっているWebおよびバッチ用のインスタンスの対応の話をしたいと思います。 以前の投稿「脱レガシーシステム⑥(DBインスタンスのOS/MariaDBバージョンを最新安定版にあげた話)」で記載のとおり、2020年の10月にDBまではOS/ミドルウェアバージョンアップが完了して残るはPHP7.4周りのみとなっています。
readouble.comによるとミドルウェアは アプリケーションへ送信されたHTTPリクエストをフィルタリングするものである。 このミドルウェアはapp/Http/Middlewareディレクトリに設置される。 基本的にアプリの流れは以下の通り クライアント(ブラウザ)がリクエスト ルーティングからコントローラを呼び出し ビューをレンダリングして、レスポンスとしてクライアントへ返される ここにミドルウェアが加わることにより以下のようになる クライアント(ブラウザ)がリクエスト ミドルウェアの処理(Before) ルーティングからコントローラを呼び出し、 ビューをレンダリングして、レスポンスを…
こんにちは。電通総研の多田圭佑です。 本記事は電通総研 Advent Calendar 2024 の12月20日の記事です! 前日の記事は平岡恵里さんの「Azure SOCで活躍している便利なサービスたち」でした。 はじめに axumとActix Web axumの概要 Actix Webの概要 Hello, world! mainマクロ axumの場合 Actix Webの場合 ルーティング リクエストとレスポンス コンパイル後のバイナリについて まとめ はじめに みなさんはRustのWebフレームワークを使用したことはありますか? RustにはいくつかのWebフレームワークがありますが、中…
この記事は羅針盤 アドベントカレンダー 2024の20日目の記事です。 qiita.com 19日目の記事は ... でした。 今回の記事はゲストの方の寄稿記事となります。またもやフリースタイル覆面女子レスラーの方からのありがたい寄稿です。 はじめに 世はまさに大LLM時代ですね。 2024年に入り、LLM(大規模言語モデル)の普及がさらに進み、エコシステムも拡大。多くの企業で活用が一般化している印象があります。 LLMのセキュリティに関するガイダンスとしてOWASP LLM Top 10が有名です。特にプロンプトインジェクションのような話題は、耳にする機会が増えたのではないでしょうか。また、…
宿泊システムのバッチ処理について(背景・課題) 新たに必要になったバッチ処理をどうやって作るか Cloud Workflows + Cloud Tasks を使ったバッチ処理 処理フロー Cloud Workflows Workflowsから外部APIを呼び出す APIのレスポンスをもとにCloud Tasksにエンキューする Cloud Tasks Web API リリース後の運用 Cloud Tasksのキュー設定の調整 異常終了時の検知を強化 まとめ おわりに 宿泊プロダクト開発部の田中(id:kentana20)です。 このエントリーは一休.com Advent Calendar 20…
2024年12月19日に、QYResearchは「自動車用 Autosar ミドルウェア―グローバル市場シェアとランキング、全体の売上と需要予測、2024~2030」の調査資料を発表しました。本レポートは、自動車用 Autosar ミドルウェアの世界市場について分析し、主な売上、動向、市場規模、主要企業の市場シェアとランキングに焦点を当てています。また、地域別、国別、製品タイプ別、用途別の分析も行っています。自動車用 Autosar ミドルウェアの市場規模を2019年から2030年までの売上に基づいて推計と予測しています。定量分析と定性分析の両方を提供することで、企業がビジネス成長戦略を策定し…
こんにちは、ES課研修中の深瀬です。 先日開催されたISUCON14に参加し、スコアは9,812で132位でした。 参加した経緯や結果、反省点等を記載します。 本記事はサーバーワークスAdvent Calendar 2024の19日目の記事です。 qiita.com 想定読者 ISUCONに興味がある方 ISUCONに参加しており、他チームがどのような対応をしたか気になる方 ISUCONとは 「ISUCONとは」や「ISUCON14で出題されたWebサービス」については、すでに社内で参加した方が記事にしていますのでご参照ください。 ISUCON14 に出場したので個人としての振り返りを書く (…
はじめに 私の所属するプロダクトではフロントエンドとバックエンドはRailsで書かれているのでRailsをバックエンドにし、フロントをReactで書こうとした時にCORSで詰まった記憶があります。 その後も何度かSPA開発する時にCORS対策を忘れて、エラー吐いては検索して、CORSであることに気づきます。 今までRails,Honoをバックエンドにした時に同じ手順を踏んだので、CORSとは?とHonoに特定した実装方法について書きたいと思います CORSとは CORS (Cross-Origin Resource Sharing) は、日本語ではオリジン間リソース共有と言われていて、ウェブブ…
gihyo.jp 本日発売の Software Design をざっと読みました。気になった記事をいくつか。 ハピネスチームビルディング 第34回「交代でリーダーを任せてシェアドリーダーシップと主体性を高める チームリーダーを交代で任せ、メンバーに物事の判断を下す経験を積んでもらうことで、自分がチームの意思決定に関われることや、チームを変えられる楽しさを実際に体験してもらいます。[...]この記事での「リーダー」とは、あくまで朝会や開発などにおける一時的な役割です。リーダーが決めたことであっても、その決定に関しては筆者のようなマネージャー職が責任を持ちます。 幣チームではある時期からデイリース…
はじめに こんにちは、STORESの高田です 今回は Playwright を用いて RESTful API のシナリオテストを実装したことについてご紹介します Playwright ではAPIの操作フローをプログラムで書けるため、想定利用ケースをコードで明示できる上、融通の効くテストが書けます。「初期ユーザを準備する」といった何度も行う処理を再利用可能な状態で切り出せたり、ヘッダー・認証・ミドルウェア等の処理を通したテストができるため、より実態に近い状態でテストできるメリットがあります ただ、ここで直面する問題として、公開されたAPIだけではシナリオが完結できないケースが出てきます。例えば、…
はじめに こんにちは、富士通研究所 コンピューティング研究所の大辻弘貴です。今回は、ジョージア州アトランタで開催されたACM/IEEE SC24(正式名称:The International Conference for High Performance Computing, Networking, Storage, and Analysis)の参加報告をお届けします。この会議は、スーパーコンピュータに関する世界最大の国際会議であり、AI Computer Broker(ブログ記事, 動画, PDF)やインタラクティブHPC(動画, PDF)をはじめとする技術の展示や発表を行いました。
なんでだろうね。 お前が作るんだよって話もあると思うのだけど、それにしても極端に少ない印象を受けている。 たとえば Go や Python, TypeScript, Rust あたりは、雨後の筍のように HTTP Server を書くためのライブラリが乱立している。それぞれに特徴があって、OpenAPI との接続がいい感じになってたりミドルウェアが揃ってたりする。 このへんの言語はメジャーだから、という話に思えるかもしれないが、新興言語でも昨今は HTTP 関連ライブラリは割と乱立するイメージがある。 たとえば gleam なんかは、 https://github.com/gleam-lang…
こんにちは。エンジニアの竹田です。 BUYMAの検索システムやMLOps基盤の開発・運用を担当しております。 こちらはEnigmo Advent Calendar 2024の18日目の記事です 🎄 はじめに 2024年もいよいよ年の瀬ですね!寒さが増すこの季節、みなさまいかがお過ごしでしょうか? 早速ですが本記事の主題のシステムリプレイスについてです。 ここ言うシステムリプレイスとは、老朽化したシステムの刷新、管理目的での移設など、既存システムがあり、それを何かしらの方法で置き換えることを指しています。 例えば、古くなったオンプレミス環境をクラウドに移行したり、データベースをより新しいものに入…
こんにちは、ギフティでエンジニアをしている@gaaakusaunaです。ジムに行くのが寒い季節になってきました。寒いと外に出るのが億劫になりがちですが、その分学習時間が増えました(いいのか悪いのか)。そんな中、日頃業務で愛用しているSidekiqのとある仕組みを深掘る機会があったので、ここに書き記したいと思います。 はじめに ギフティでは、Railsで非同期処理を行う際にSidekiqを使うケースが多く、私が所属するチームでもSidekiqを用いて実装を行っています。 Sidekiqとは Sidekiqには、ジョブの実行に失敗した場合に自動でリトライを行うAutomatic job retry…
はじめに ドコモ・テクノロジ*1 サービスインテグレーション事業部の松村です。NTTドコモ クロステック開発部の画像認識チームの中で、画像認識技術を活用したアグリテックによる農業の社会課題の解決を目指しています。 本記事では組み込み(ハード寄り)を触り始めた方を対象とし、業務の 1 つである NVIDIA Jetson *2を使った農業ロボットの紹介と、最近発生したトラブル事例をご紹介します。 はじめに 除草ロボットの概要 CAN のススメ Jetson の更改と CAN 通信不調の発生 エラー解析(Jetson) 信号解析 原因究明と対策実施 考察 さいごに 補足 除草ロボットの概要 NTT…
はじめに 株式会社ネクストスケープ ソリューションビジネス部の小野塚です。この記事は「NEXTSCAPE Advent Calendar 2024」の17日目の記事となります。 色々ありましてNestJSを学び始めました。当社ブログでは扱われていなかったものの、既に様々なブログに取り上げられている言語ではございますが、実際に触ってみたところ、なかなか良さげな雰囲気もあり、そのアウトプットとして本記事を書いてみました。NestJS はNode.jsをベースとしたサーバーサイドフレームワークであり、更にTypeScriptをフルサポートしています。そのため、型安全なコードを書くことができ、更にモジ…
これは Ruby on Rails - Qiita Advent Calendar 2024 - Qiita の17日目の記事です。 Mastodon のジョブキューを Sidekiq から SolidQueue に(部分的に)置き換えている話をします。 Mastodon とは github.com Mastodon は、ActivityPub をベースにした、Ruby on Rails 製のオープンソースの分散型SNSソフトウェアです。 誰でも自由に自分のサーバーを運用することができ、他のサーバーと相互にやり取りすることができます。 ActivityPub とジョブキュー ActivityP…