JavaでAPIを設計します。 JAX-WSおよびJAX-RSテクノロジーを使用したSOAベースのアプリケーション開発

すべての人に良い! 私たちは新しいコースをオープンしました。その枠組みの中で、私たちは私たちのために新しい形式を試してみることにしました-誰もがアクセスできる様々なトピックに関するオープンレッスン。 月曜日に、この形式の最初のレッスンが行われ、その記録があなたに提示されます。 猫の下には、理論の概要とプロジェクトへのリンクがあります。



ビデオリンク



こんばんは、親愛なるリスナー。 今日は、Otus教育プロジェクトのコースプログラム「JavaEE Developer」でウェビナーを開始します。 現在のウェビナーのフレームワークでは、プログラムの主要なブロックの表面を調べ、教室で議論される主要な技術にのみ焦点を当て、JavaEEとSpringスタックの比較にホリバーを開発しないようにします。 このコースでは、このスタックの最も関連性の高いトピックを考慮に入れようとしました。これらのトピックは、企業部門で積極的に使用されており、この分野の専門家に役立ちます。 コースの特徴は、実践指向のアプローチにあり、エンタープライズレベルのアプリケーションを開発するための真のスキルを獲得し、各テクノロジーの「内部」で発生するプロセスを分析します。 このコースのプログラムはサイトで入手できます。ここでは、コースの目的、クラスごとの内訳までの主なブロックと実践的な作業、コースの作成者についての詳細な情報を見つけることができます。 このスタックのインフラストラクチャの瞬間からコースを開始し、サーブレットコンテナとアプリケーションサーバーの世界に飛び込み、それぞれTomcatとGlassFishの参照代表者と詳細に知り合ったのは非常に論理的です。 また、このセクションでは、アプリケーションの3レベルモデルのデータレベルに関連する問題、および一般的なデータ形式(XMLおよびJSON)を介した対話の問題について説明します。 2番目のブロックでは、JavaEEスタックに含まれるWeb技術、つまりサーブレットAPI、JSP、最新のWebフレームワーク、関連技術HTML、JS、CSSについて学習します。 3番目のブロックは、サービス指向アーキテクチャに専念し、JAX-WSおよびJAX-RSの仕様に特別な注意が払われます。 ビジネスロジックブロックでは、JMSツールを使用したキューイングとその処理の問題と同様に、EJBテクノロジーに重点が置かれます。 5番目のブロックでは、最新のエンタープライズアプリケーションの重要な側面(セキュリティ、ロギング、テストなど)について学習します。 このコースのフレームワークにおける研究の最終段階は、プロジェクト作業の実施です。これは、将来のキャリアのために独自のポートフォリオを作成する段階と見なされる必要があります。 コースのプログラムによると、十分だと思います。詳細については、公開日に彼女と知り合い、興味のある質問をすべて分析します。



本日の会議の理由は、「SOAPおよびRESTサービスを使用してAPIを構築する」というトピックであり、予備投票で勝者になりました。 実際、このトピックは開発者のサークルで激しい議論を引き起こし、インターネット上で非常に多くの有用な情報を見つけることができます。 ウェビナーの実用的な部分を始める前に、この問題に関する理論を少し掘り下げ、ウェビナーの目的を決定したいと思います。 レッスンの目標は、SOAPおよびRESTサービスを介して外部で使用するためのAPIを提供するJavaEEアプリケーション開発スキルを開発することです。



最初に、APIとは何か、そしてその主な目的をどのように理解していますか? APIはApplication Programming Interfaceの略で、一部の入力パラメーターを渡すときに結果を取得できる機能を備えた一部のシステム機能へのアクセスを提供します。 アプリケーション開発インターフェースは、開発された機能が外部での使用や再利用の機会に役立つ場合に発生します。 よく知られているAPIとして、ソーシャルネットワーク(Vkontakte、Facebook、Instagram)、仲介システム、銀行セクターなどの分野の既存のソリューションに注目できます。 同時に、このようなシステムの開発には重要な特徴があります。使い慣れたユーザーアプリケーションを開発する場合、システムに関する意見は、設計されたアプリケーションインターフェイスや操作中に発生するエラーなどの外部特性によって形成されます。 APIを開発する際には、同様に重要な側面(ユーザビリティに類似)も考慮する必要があります。アプリケーションのメインユーザーは、製品の開発で経験を活用したい別の開発者またはチームになります。 そして、ここでは、目標を達成し、APIを使用する際の労力を最小限に抑える必要がある潜在的なユーザーの観点からAPIを見ることが重要です。 このような機能の消費者は、Webサイト、ポータル、モバイルデバイス、情報システム、自動車、ゲーム機など、まったく異なるプラットフォームになる可能性があります。 同時に、理解可能な対話プロトコル、通信に使用されるデータ形式、提供されるサービスのドキュメント、セキュリティの問題などとしてAPIを開発する際に、このような重要な点に留意することが常に重要です。 一般的に、APIの概念は、SOAが発生する多くの分野で見られます。 おそらく既にご想像のとおり、SOAの基本アーキテクチャは次のようになります。エンドコンシューマー(顧客)に「サービス」への安全なアクセスを提供するサービスプロバイダー(サーバーと呼びます)があります。 クライアントが必要な機能を検索するのに多くの時間を費やさないようにするために、相互作用プロトコルのすべての複雑さの説明(入力パラメーターのリストと使用されたデータ型の出力)を含むサービスカタログを持つことが重要です。



サービスの開発でよく知られているアプローチ(Webサービスでもあります)の中で、SOAPおよびRESTサービスが普及しています。 前者については、JavaEEスタックで定義されているJAX-WS仕様に従って、公式ドキュメント(https://docs.oracle.com/javase/7/docs/technotes/guides/xml/jax-ws/)を参照する必要があります。 この場合、SOAPサービスは、サービスプロバイダーを通じてクライアントにサービスとして提供されるいくつかのビジネスロジックと見なされる必要があります。 この仕様の主要な実装として、Metro、Apache CXF、Axis 2、Spring WSなどのライブラリに注意する必要があります。 私たちの場合、Axis2フレームワークの機能に精通します(原則として、ライブラリは類似の機能を提供しますが、スタンドアロンタスクとして、提供されたフレームワーク機能の比較分析を実行できます)。 JavaでのWebサービスの開発はどのように行われますか、実際の部分で見ていきます。

SOAPとは異なり、RESTは、クライアント側とサーバー側の間の相互作用のすべての側面を定義する厳密なプロトコルとしてではなく、サービス開発のアーキテクチャスタイルとしてとるべきです。 REST開発者のRoy Fieldingがサービスを開発するときに従う原則が多ければ多いほど、よりRESTfulであると考えることができます。 有名な実装の中で、RESTEasy、Jersey、Restletに注意を払う必要があります。

この時点で、理論的な部分と練習を始める時間で終わります。

このレッスンの一部として行われた結果を確認するには、 GitHubで利用可能なプロジェクトに目を向ける必要があります



ウェビナーの結果によると、目標は達成されたと考えることができます!

ご清聴ありがとうございました! じゃあね!



いつものように、コメントで建設的なスリッパを歓迎するか、開いたドアで教師と話し合うことができます。



All Articles