すべての技術のためのJavaクラス/例。あなたが尋ねたのは、進化産業が過去10年間に経験し、まだ進化しているということなので、単一の投稿では不可能かもしれません。したがって、過去10年間に起こったことは、1つの投稿でカバーすることはできません。ただし、このフェーズがどのように行われたか、新しいテクノロジースタックが必要な理由、およびそれが解決する問題の種類を理解することは良いことです。
EJBエンタープライズJavaBeansサーバーサイドコンポーネントアーキテクチャ。迅速かつ簡素化された開発を可能にします
1)分散(複数のアプリケーションサーバーが相互に通信する場合、サーバーコンポーネント(たとえば、異なるサーバーでホストされている他のサービスを呼び出すサービス)。
2)トランザクション-永続化Bean(DB TXN)、単純/Web/分散アプリケーションの最も重要な部分。構成ベースなどの簡単な開発。トランザクションを処理するXMLを記述します。たとえば、いつコミットするか、いつロールバックするか(例外の場合)などです。JPAJava Persistance APIは、オブジェクト関係のマッピングを提供します。テーブルの行などは、xml構成を介してJavaオブジェクトにマップされます。
3)安全-認証(uid / pwd)と承認(役割ベース-ログインしているユーザーとそのユーザーが実行できるすべてのタスク)。
これは、エンタープライズアプリケーションを開発するためのある時点では良さそうに見えますが、非常に重い(すべてのjarファイルが含まれている)などの欠点があります。Beanとして使用されるクラスは、EJB標準に準拠している必要があります(クラスは、EJBエンジンがどのタイプのBeanであるかを理解するための特定のインターフェースを実装している必要があります)。
このようなシナリオを克服するために、EJBには多くの代替手段が業界で利用可能です。たとえば、HibrnateはORマッピング、EJBの永続Beanによって提供されるTXN処理などの同じことを行います。春の軽量フレームワークであり、ビジネスロジックを簡素化します(インターフェイスを実装したり、例外をチェックしたり、必須の抽象クラスの一部を拡張したりする必要のない、既にビルドされたクラスを使用できます)。
現在、Spring、Hibernate、IBatis、Axis-2など、軽量フレームワークを実際に使用している企業のほとんどがいます。
サービス指向アーキテクチャー(SOA)サービス指向アーキテクチャーは、エンタープライズレベルでのプラットフォームの独立性に対する答えです。またはアプリケーションをより高速に統合するため、異なるアプリケーションサーバー間で通信するため。
世界中のホテル予約のオプションを提供しているソリューションを実装したいと考えてください。あなたの要件は、それらのホテルの空室状況を確認することです。つまり、一度に複数のホテルアプリケーションを操作する必要があるということです。すべてのホテルが同じ標準を使用している必要はありません。または、それらのアプリケーション(サーバー、プログラミング言語)が異なるアプリケーションサーバーに展開されている場合があります。同時に、すべての異なるタイプのアプリケーションサーバーと通信できる異なるアプリケーションを作成することは実用的ではありません。この問題を解決できる標準ベースのソリューションが必要です。それはWebサービスを通じて可能です。
これは、WebサービスがXMLに基づいてSOAP(Simple Object Access Protocol)でメッセージを送信しているために可能です。XMLは、任意の言語、プラットフォーム、またはネットワークプロトコル間でデータを交換するために使用されます。
Webサービスは、SOAPベースとRESTに分類できます。SOAPベースのサービスJAX-RPCおよびJAX-WS(http://www.ibm.com/developerworks/webservices/library/ws-tip-jaxwsrpc/index.html)
Webサービスは最初にコントラクトで開発できます-最初にWSDLを記述します。最初のコード-最初にコードを記述します。
それでは、実際にWebサービスを開始する方法について説明しましょう。
最も単純なWebサービスまたはhelloworld(JAXWS)は、次のように記述できます。-
http ://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/java_first_jaxws/
- メッセージ指向ミドルウェア(MOM)
- JMS
メッセージキュー(ポイントツーポイント)
MOMは、要求/応答スタイルの通信の欠点を克服する必要があります。クライアントが応答を送信するとき、サーバーは稼働している必要があります。クライアントは、サーバーが実行されて応答するまで応答を待ちます。
要求応答-サーバーまたはクライアントがダウンしている場合、アプリケーションは失敗します。MOM-処理のために要求メッセージを送信するときに、どちらのエンドポイントも時間どおりである必要はありません。
MOMは概念であり、JMSはこの概念の仕様です。多くのベンダーがこの仕様を実装しています。たとえば、IBMにはMQ、OpenJMSオープンソース実装、TibcoのEMSなどがあります。
JMS仕様には、主に2つのパターンがあります。Pub/subおよびponin-to-point。
Pub / subがトピックであり、アプリケーションは特定の情報をすべての関係者に公開したいと考えています。例:ダッシュボード。(ストックアプリケーションは、登録されているすべてのリスナーに特定のメッセージを通知したい)。
ポイントツーポイント通信は、メッセージキューを介して行われます。
ビジネスユースケース-カスタマーケアへのカスタマーリクエストなどのアプリケーションがあると考えてください。反対側には複数のカスタマーケア担当者がいて、反対側の顧客にはカスタマーケア担当者よりも多い場合があります。一度に1人の担当者だけがリクエストを処理し、タスクが完了するまで次のリクエストを受け取りません。(同じ1つのキューに複数のウィンドウがあり、空いているウィンドウがリクエストを処理します)。これには他の複雑さも考えられます。たとえば、ノードの1つに障害が発生し、要求が処理されず、特定のタイプの要求を特定のノードで処理する必要がある場合はどうでしょうか。等
コードを生成する:-http://docs.oracle.com/javaee/1.4/tutorial/examples/jms/simple/src/SimpleProducer.java
コンシューマー同期コード:-(POJOクラス)
http://docs.oracle.com/javaee/1.4/tutorial/examples/jms/simple/src/SimpleSynchConsumer.java
http://www.java2s.com/Code/Java/J2EE/ThisexampleisasimpleJMSclientapplication.htm
非同期コードを消費します:-(例による春-プログラムが停止しないまで宛先からメッセージを読み取ります。)
http://www.springbyexample.org/examples/simple-spring-jms-listener-config.html
ただし、このMOMでカバーする必要のある基本的な側面はたくさんあります。たとえば、フェイルオーバーメカニズム、セレクター、永続メッセージ、メッセージ確認モードなどです。
- サービスバス/ESB
- エンドポイントとルート
- Apache Camel
- ラバ
さて、あなたがずっと前にSOAとMOMを採用していて、企業全体のタスクを達成するために互いに通信するたくさんのサービスを持っているとしましょう。非常に面倒な場所からリダイレクトする必要がある複数の宛先などのロジックを管理することを想像してみてください。このアプリケーションロジックと呼ぶ人もいます。サービスバスは、アプリケーションロジックを削減し、ビジネスロジック(アプリによって提供される機能)に重点を置くために使用されます。
簡単に言うと、エンドポイントはサーバー上で公開されているURLと見なしてください。このURL/エンドポイントを使用してサービスを呼び出します。
例:
http:// localhost:8888 / Context / MyService?wsdl
コードで:-
String endpointAddress = "http://localhost:8080/jaxws/services/hello_world?wsdl";
// Add a port to the Service
service.addPort(PORT_NAME, SOAPBinding.SOAP11HTTP_BINDING, endpointAddress);
HelloWorld hw = service.getPort(HelloWorld.class);
System.out.println(hw.sayHi("World"));
ルート
サービスバスが特定のメッセージを受信すると、キュー/トピックなどのサービス/ブローカーの宛先を経由せずにルーティングします。このパスはルートと呼ばれます。
たとえば、株式アプリケーションがアナリストによって入力された場合、それはアプリケーション/ Webコンポーネントを介して処理され、結果は特定の株式更新のためにすべての関心のある/登録されたメンバーに公開されます。
ApacheCamelとMuelhttp ://camel.apache.org/how-does-camel-compare-to-mule.html
は、エンタープライズ統合のためのソリューションを提供します。