フレクトのクラウドblog re:newal

http://blog.flect.co.jp/cloud/からさらに引っ越しています

MuleSoft開発 冗長化について - その2

こんにちはCI事業部の川瀬です。

前回の記事からだいぶ経ってしまいましたが、フォルダ監視のアプリケーションの冗長化について続きをやっていきたいと思います。

結論から言うと、前回お話した通りこのようなポーリング系のアプリは冗長化しないで済むならしないことです。自動再起動に任せられるならこちらに任せてしまいましょう。 とは言え、何らかの理由で冗長化しなければならない場合もあると思います。

その場合は、スケジューラとObject Storeを使います。Object Storeにフラグを設定し、そのTTLはスケジューラの間隔より長くします。

f:id:k2-flect:20211012200102p:plain
スケジューラ

次にOn New or Update Fileを使用したフローを作成します。このフローの中では、Object Storeの有無を判別し、存在しない、つまりTTLの時間が経過しObject Storeが存在しない場合には、後段の処理を実行します。 ご存じの通り、スケジューラは冗長化しても1つのWorkerでしか動作しません。このWorkerが起動しなくなった場合、別のWokerでOn New or Update Fileをトリガーに処理が継続されることになります。

f:id:k2-flect:20211012200808p:plain
On New or Update File

ここで注意しなければならないことは、Workerがダウンし自動再起動が実行されるまでの間は、もう1方のWokerではスケジューラは動作しないことです。

docs.mulesoft.com

もう1つ、別のやり方としては冗長化構成しているアプリでMQ(VM or Anypoint MQ)を使用するやり方です。ただし、別のアプリからこのMQに対し、定期的にキューを送信する必要があり、この別アプリがダウンしてしまう場合もあります。結局この部分に対しては、自動再起動で対応するしかありません。

以上、フォルダ監視のアプリケーションの冗長化について記載してみました。このような複雑な処理をするぐらいなら、自動再起動だけで対応することも検討してもよいと思います。

Anypoint PlatformのDesign Centerを使ってみよう(3)

みなさまこんにちは、CI事業部の釜谷です。

フレクトでは、2020年度からMuleSoftに注力しています。
MuleSoftに興味のあるそこの貴方!是非フレクトにご相談ください!!

今回は前回に引き続き、Design Centerを紹介したいと思います。


今回のトピック

作成したAPI仕様を公開しよう!、です。

どこに公開されるの?

組織(ビジネスグループ)内のAnypoint Exchangeに、アセットとして公開されます。

公開するとなにがうれしいの?

Anypoint Exchangeの利用権限があるユーザが、アセットを利用できるようになります。

どのような利用方法があるの?

  • 組織内のAnypoint Platform利用者に、アセットが共有できます。
  • Anypoint Studio(Muleアプリケーション開発用IDE)にアセットを取り込み、アプリケーション開発で利用できます。
  • API ManagerのAPIインスタンスにアセットをインポートすることができます。

公開するにはどうするの?

API DesignerのPublish機能を使用します。

Public機能の使用方法

  1. 公開したいAPI仕様を開き、「Publish」をクリックします。
    f:id:flect-kamatani:20211006082828p:plain:w300:h100

  2. 「Publish to Exchange」をクリックします。
    f:id:flect-kamatani:20211006082817p:plain:w200:h150

  3. 「Asset version」欄、「API verison」欄に、バージョン情報を設定します。
    f:id:flect-kamatani:20211006082826p:plain:w300:h150

  4. 設定後、「Publish to Exchange」をクリックします。
    f:id:flect-kamatani:20211006082824p:plain:w300:h150

  5. Publish機能完了後、ダイアログが表示されます。
    f:id:flect-kamatani:20211006082821p:plain:w300:h150

  6. Anypoint Exchangeに移動すると、Publishしたアセットが表示されます。 f:id:flect-kamatani:20211006082819p:plain:w400:h300


次回も引き続き、Design Centerを紹介したいと思います。 (Design Centerばかりしつこいですか?もう少しお付き合いください。。。。)

本記事で、少しでもMuleSoftに興味を持って頂けたら幸いです!

Improve the hand gesture stability of the Vision framework's using filters

This is Shuochen Wang from R&D department in Flect. In this blog I am going to explain how to improve the hand gesture stability of the Apple's Vision framework by using filters.

The Vision framework performs face and face landmark detection, text detection, barcode recognition, image registration, and general feature tracking. Vision also allows the use of custom Core ML models for tasks like classification or object detection. In this blog, we will use the body and hand pose detection function. Specifically, we will use the hand pose detection function to obtain the coordinates of the finger joints.

In my previous blog I have explained about how to manipulate AR object using hand gestures. We used the Vision Framework to obtain the hand position. Because we do not use actual sensors or trackers that can measure the finger positions accurately, there will be errors in the measurement.

In this blog, I have performed an experiment to examine how filter can reduce the uncertainties of the hand pose detection of the Vision Framework. Before explaining the experiment, I would like to demonstrate the problem with the current hand gesture detection.

続きを読む

Anypoint PlatformのDesign Centerを使ってみよう(2)

みなさまこんにちは、CI事業部の釜谷です。

フレクトでは、2020年度からMuleSoftに注力しています。
MuleSoftに興味のあるそこの貴方!是非フレクトにご相談ください!!

今回は前回に引き続き、Design Centerを紹介したいと思います。

今回のトピック

作成したAPI仕様を動作確認してみよう!、です。

動作確認をするには?

API Designerのモック機能を使用します。 docs.mulesoft.com

モック機能を使用するには、2つの方法があります。

  • API Designerから使用する
  • ブラウザやクライアントツールから使用する

それぞれの方法について説明します。

API Designerからを使用する方法

  1. 動作確認したいエンドポインタとメソッドを選択します。 f:id:flect-kamatani:20210920172957p:plain
  2. Try it アイコンをクリックします。
    f:id:flect-kamatani:20210920174047p:plain
  3. sendボタンをクリックすると、モックからレスポンスが返ってきます。(「200 OK」 など)
    f:id:flect-kamatani:20210920175441p:plain

ブラウザやクライアントツールから使用する方法

  1. Mocking Service Configurationをクリックします。 f:id:flect-kamatani:20210920175507p:plain
  2. Service Setting のMake Publicを有効にします。 f:id:flect-kamatani:20210920175523p:plain
  3. Copyボタンをクリックして、URLをコピーします。 f:id:flect-kamatani:20210920175536p:plain
  4. ブラウザやクライアントツールに、コピーしたURLと動作確認したエンドポイントとメソッドを設定します。 例えば、URLが「https://anypoint.mulesoft.com/mocking/api/」、動作確認したエンドポイントが「sample」の時は、「https://anypoint.mulesoft.com/mocking/api/sample」を設定します。
  5. 接続操作をすると、モックからレスポンスが返ってきます。(「200 OK」 など)
    f:id:flect-kamatani:20210920181623p:plain

モックからレスポンスを制御する

docs.mulesoft.com

MS2-XXXXをリクエストヘッダに指定することで、レスポンスが制御できます。 例えば、以下の制御が行えます。

  • レスポンス時間を遅くしたい。
    • MS2-Delay : 500-1000、のように指定します。
  • API仕様に記載したレスポンスのHTTPステータスコードを指定して、レスポンスのHTTPステータスコードとして返したい。
    • MS2-Status-Code : 400、のように指定します。
      f:id:flect-kamatani:20210920181400p:plain

次回も引き続き、Design Centerを紹介したいと思います。

本記事で、少しでもMuleSoftに興味を持って頂けたら幸いです!

WebRTC(Amazon Chime SDK JS)で超解像を使ってデータ通信量を削減してみる

こんにちは。研究開発室の岡田です。

前回の記事では、Amazon Chime SDK JSを用いたビデオ会議システムやゲーム配信システム(Among us auto mute)において、複数ユーザのビデオ映像を単一の映像に合成することでデータ通信量を削減する方法をご紹介しました。 今回は、データ通信量を削減する別の方法として、ビデオ映像の送信時には解像度を落として受信後に超解像技術を用いる方法を試みてみましたので、これを紹介したいと思います。

下図が実際にやったときの画像です。一番右側の画像が超解像を使用した結果です。赤線左右で左のほうが高解像度化されています。 cap_画面収録 2021-09-09 13 36 55_00:00:02_03

画像だと潰れてしまってわかりにくいと思うので、次のリンクから動画をダウンロードして確認してみてください。 download

続きを読む

Anypoint PlatformのDesign Centerを使ってみよう(1)

みなさまこんにちは、CI事業部の釜谷です。

フレクトでは、2020年度からMuleSoftに注力しています。
MuleSoftに興味のあるそこの貴方!是非フレクトにご相談ください!!

今回は、Anypoint Platformの機能の1つ「Design Center」の使い方を紹介します。

今回のトピック

Design CenterでAPI仕様を作成してみよう。

API仕様作成に使用する言語

API仕様作成には、以下の言語を使用します。

  • RESTful API Modeling Language (RAML) バージョン 0.8 または 1.0
  • OpenAPI specification (OAS) バージョン 2.0 または 3.0
API仕様作成手順
  1. Anypoint Platformで「Design Center」をクリックします。
    f:id:flect-kamatani:20210909223047p:plain
  2. Design Centerで「Create new」> 「New API Spec」をクリックします。
    f:id:flect-kamatani:20210909223138p:plain
  3. New API Spec画面で、API仕様の作成方法を選択します。
    ・”I'm comfortable designing it on my own”を選択すると、フリーフォーマットでのAPI仕様作成が可能です。
    ・ ”Guide me through it”を選択すると、ガイドに従ったAPI仕様作成が可能です。 今回は、”Guide me through it”を選択したときを説明します。
    f:id:flect-kamatani:20210909223753p:plain
  4. ガイドに従い、入力します。
    f:id:flect-kamatani:20210909224501p:plain
    作成手順については、以下も参照してください。 docs.mulesoft.com

次回は、引き続きDesign Centerの使用方法を紹介したいと思います。

本記事で、少しでもMuleSoftに興味を持って頂けたら幸いです!

Amazon Chime SDKアプリで映像データ転送量を削減するアイデア -Among Us Auto Mute-

こんにちは。研究開発室の岡田です。

前回の記事では、Amazon Chime SDK for javascript(Amazon Chime SDK JS)を用いて、"Among usをAuto Muteする機能"と"ゲーム画面を配信する機能"を持つゲーム実況システムを構築する方法についてご紹介しました。

前回のシステムでは、最大15名のユーザのゲーム画面をリアルタイムに配信します。このため、映像を受信する側にはそれなりのネットワーク帯域が前提とされます。また、受信するデータの総量も増えるため今どきの言い方(?)でいうと、長時間使用すると「ギガ」が枯渇しやすくなるとも言えます。さらに、受信した分だけ映像をデコードする必要があるためブラウザのCPU負荷が大きくなります。

今回は、このように多くの映像データを配信する際に、ネットワークの帯域やCPUが制限されるユーザでも映像を受信して表示できるようにするためのアイデアをご紹介したいと思います。

下図はアイデアを動かした結果です。赤矢印の部分が受信データ量です。4.4Mbpsから1.6Mbpsに削減できていますね。

Screenshot from 2021-08-16 05-42-49

demo in youtube

続きを読む