Help us understand the problem. What is going on with this article?

Eclipse MicroProfileとは

概要

前回の記事では、Eclipse MicroProfileの始め方をご紹介しました。今記事では、そもそもEclipse MicroProfileとはなにか?を紹介します。

生まれたきっかけ

もともとはJavaEEの仕様策定のプロセスが遅い、リソースを十分に供給できていないと危機感を持った複数のベンダーとJavaコミュニティによって生まれました。

特徴としては、JAX-RSやCDIなど、JavaEEの中で慣れ親しんだ仕様を一部取り込みつつ、マイクロサービスアーキテクチャで必要な機能を独自で取り込んでいくというものとなります。

image.png

※現在の公式サイトのWhitePaparから抜粋

その後、2017年1月ごろ、Eclipse Foundation傘下に正式に加わった物となります。

https://www.publickey1.jp/blog/17/javamicroprofileeclipse.html

仕様に準拠しているプロダクト、実装

これも上述のホワイトペーパーを抜粋すると以下の通りとなっています。

image.png

ここで注目すべきは以下の通りです。

  • JBoss EAPはJavaEEサーバにも関わらず、MicroProfileにも準拠している
  • Open LibertyはJavaEE のWebProfile仕様準拠にも関わらず、MicroProfileにも準拠している
  • 日本国内のJavaEEサーバベンダーで対応しているのは富士通社のみ

Eclipse MicroProfile3.0の仕様一覧

最後に、簡単にではありますが、各種仕様について一言ずつ説明していきます。

Eclipse MicroProfile Config

クラウド上やマイクロサービスとしてアプリケーション設定をしやすくします。
具体的には、アプリ内に設定をハードコードしてしまうと、環境によってアプリを都度ビルドする必要が出てきてしまうため、起動時の引数や、環境変数の内容で設定を上書きできるようにすることができます。SpringBootでも同じような機能がありますね。

Eclipse MicroProfile Fault Tolerance

マイクロサービスとしてアプリケーションを作る際に、別のサービスとの関連と、ビジネスロジックを分離することを目的とした機能です。具体的な機能としては、TimeOut、RetryPolicy、Fallback、Bulkhead、Circuit Breakerなどがあります。

Eclipse MicroProfile Health

マイクロサービスとして呼ばれるサービスとして、そのサービスが応答できる健康な状態かどうかを示す機能を提供する仕様です。Up、Downだけでなく、捕捉情報も含めて返却することができます。

Eclipse MicroProfile JWT Authentication

OpenID Connect (OIDC) と JSON Web Tokens (JWT)を使って認証機能を提供します。
role based access control (RBAC)で作られるマイクロサービスとして提供されることを前提としています。

Eclipse MicroProfile Metrics

運用時に必要なメトリクスを提供する機能を示した仕様です。

Eclipse MicroProfile OpenAPI

マイクロサービスをOpenAPI仕様であるOpenAPI v3 specificationに則るAPIドキュメンテーションを出力できるような機能を提供する仕様です。

Eclipse MicroProfile OpenTracing

マイクロサービスでは、どのサービスが遅延しているか、どのサービスがどんな頻度でエラーとなっているかを可視化しておくことが重要です。トレース結果を出力することができます。

Eclipse MicroProfile Rest Client

JavaEEのJAX-RS 2.1 APIのRest Client作成をベースとしてよりtype-safeに実装することができるようにする機能を提供する仕様です。

JavaEEから継承している仕様

  • CDI 2.0
  • JAX-RS 2.1
  • JSON-B 1.0
  • JSON-P 1.1
  • Common Annotations 1.3

 まとめ

今回はコード無しで、Eclipse MicroProfileについて説明しました。
UberJarの話とかすっとばしましたが、なんとなく全体像は分かったのではないでしょうか。

JavaEEで慣れ親しんだ仕様+マイクロサービスで必要な機能ということで有用なものもあったかと思います。個人的にはConfigとかは、マイクロサービス関係なく、どんなアプリでもこの機能があると開発が楽になるものと思うので、他でも楽に使えると良いかと思いました。

omix222
業務アプリケーション開発を経験後、フレームワーク開発を長らくやり、今はR&DとEngineering Managerをやっています。 システム開発はキツいもの、というところから脱却するとともに、 アジャイルを中心としたワクワク感を持ちながらの開発と、 技術力&高いアンテナを軸にしたイノベーションを狙っています。
mdc
”自己研鑽のサイクル”を応援するコミュニティです。外の世界に発信&フィードバックを受け、コミュニティの仲間と共に頑張りましょう。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした