テレマティクスサービス非RESTfulなアーキテクチャの変革実践

REVIEW

ビジネス指向のプロジェクトを構築する過程では、多くの倍のコンテンツ・アグリゲーション・クラスのオンラインサービスAPI設計、なぜならそのカスタマイズ機能を、安らかの従来の開発モデルの使用は、通常、開発API同様のジレンマの重複の多くにつながる、この論文は+ GraphQLクエリ言語を提示します繰り返しカスタムの多数の問題を解決するためのゲートウェイ振り付け合同練習、。

高い道徳的な既存のデータ、エンジン容量と、オンラインサービスコラボレーションモデルフォームは、顧客の需要のためのRESTの使用である(たとえば、駐車場、ガソリンスタンド、天候など)より重要と関連するCPサービスの一部に基づいて早期デポと協力のプロセス、 APIは、各デポ、各プロジェクトや端末ごとに異なるAPIの実装を提供し提供していますが、コア・データ・サービスの独立した事実以上の10種類がありますが、車のライン整備事業サイクルは2--3年ダウン、長い、そしてより多くのカスタマイズであるため、 、APIは数百人の規模に達し、継続的な開発と保守が小さな挑戦ではありません与え発散成長レベルを、続けています。

分解事業開発プロセス、作業の2種類以上のもので、ビジネスはデータと非ビジネスの願望が、このような認証や他の一般的などの必須機能、ビューの現在のポイントへの能力へのアクセスを必要としない、実際には、これらの2つの問題は、ほとんどすべてのビジネスチームが遭遇するあります問題は、解決策は、サービスのアグリゲーター、オーケストレーション、APIゲートウェイと実質的に同様です。

この記事では、簡単にオンラインサービスのいくつかの変換を説明し、古いアーキテクチャのネットワーキング・プラクティスを下車します。

関連用語

  • GraphQL:GraphQLは、両方のクエリ言語のためのAPIが実行されているデータが満たさ照会もあります。クライアントは正確にそれが必要なデータを得ることができるようにGraphQL Data APIでは、分かりやすいのセットの完全な説明を提供し、冗長性はありませんが、また、時間をかけて進化するAPIを容易にするだけでなく、と強力な開発ツールを構築します。

  • DSLは:コンピュータ言語の分野での応用に焦点を指します。また、ドメイン固有言語として翻訳。通常の汎用横断コンピュータ言語(GPL)、特定の領域のみに使用されるドメイン固有言語とは異なり。例えば、HTMLページと同様に、Emacsの使用EMAC LISP言語を表示します。

  • ゲートウェイAPI:APIゲートウェイは、サーバーでのみ入場システムです。オブジェクト指向設計の観点から、それは外見モデルに似ています。APIゲートウェイは、各クライアントのカスタムAPIを提供する内部システムアーキテクチャをカプセル化します。また、認証、モニタリング、ロードバランシング、キャッシング、および断片管理要求、静的応答処理などの他の機能を有していてもよいです。

問題

ビジネスオンラインサービスアーキテクチャの旧車のラインを次のように

次のような問題に直面します。

 

改善します

これらの問題に対応して、主要な改善は、次の側面から考えて:

  • サービス機能の微粒化:アッパーはビジネスニーズの組み合わせによって達成するように目標は、とても安定しています。

  • クエリエンジンを構築する:任意のアグリゲーションサービス容量原子とカスタムを達成するために組み合わせた強力なクエリ機能をサポートしています。

  • APIゲートウェイ:非ビジネスデータのための能力は、抽象化が振り付けを達成するために、プラグイン、プラグインを提供している必要があります。

以下が導入されました。

アトミック容量サービスの安定した、独立した進化

既存のサービスが異なる抽象を開発、展開、コアコンピタンスの進化の独立していなければならない整理して、主に以下の目標を達成するために、歴史の外部ドッキングCPのいくつかに焦点を当て、エンジン容量のための仕事はありません。

  • 安定したインターフェースを提供するために、後方マスキングの複雑さ(データアクセス、マルチソース差)基板アップ。

  • 場所中心の有機的統合、能力原子の包括的なセットを構築します。

この作品は、主に不合理な、過度のフォローカスタムビジネス上の問題の歴史的遺産に対処するためのサービスの一部を組み合わせたものです。

カスタムコードの開発は、定義されたクエリに変換され、

ここでの主な目的は、このようなカスタムロジックとして、集約にサービスを提供することである元のコードの開発は、いくつかの方法クエリ言語を記述するために変換が必要です、唯一の次の機能、宣言型のクエリの完全なサービスリリースを記述する必要があります。

  • 標準化されたクエリ言語を提供しています

  • 下方の原子の組み合わせを達成する能力

  • ビジネス誘導共通、精錬カスタマイズされたモデルは、再利用を強化します

この記事では、クエリー言語ベースとしてGraphQLを選択し、しかし、そのようGraphQL二つの主要な問題の直接の使用に対処する必要があります。

  • 直接データローダーFackbookを解決するために前方に置く採用し、データのクエリN + 1つのズームは、原則一括キャッシュを追加することです。

  • GraphQL仕様限界は、いくつかのカスタマイズは、次のような、達成することは困難です。

  1. カスタムパラメータ:コンバージョンの種類に関連するパラメータ。

  2. 出力フォーマット:フィールド提示形態、例えば時刻、経度及び緯度など;

  3. カスタム設定テーブル:ビジネス・ロジックの主要部のような返し、フィールドの深さ、構成テーブルに従ってカスタマイズ必要と

  4. モデル接続:アトミックできるだけ独立して機能する能力だけでなく、関係の定義されたモデルを列挙することができませんでしたが、カスタムのビジネスニーズは、相関の多くは待ち時間を短縮するために、サービスリクエストを減らす、明らかに必要で、そのモデルは、自由連想する機能である必要があり、最終的なプログラムとして、自由の関連性を理解するために、内部統制、外部被ばくのRESTのAPIので、難しいことではありませんを照会することは原因となった問題ではありません。

シンプルなDSLを埋め込むことによって達成する必要があります。

  • 内蔵機能やカスタム機能。

  • ダイナミックな相関モデルクエリコンテキストパラメータ取得。

  • これは、簡単にカスタム関数を拡張することができます。

 

複雑すぎる場合は、ユーザまたはパブリッシャが造影効果を言及するコードを記述し、その後、高速なクエリを記述することはできませんDSLが元の値から逸脱し、割引されますので、基本的な原理は単純である、スケーラブルなので、DSLの度合いを制御する必要性を埋め込みます。

API Gatewayを介してビジネス関連の機能は、プラグインの設定

すべてを混合、基本的なAPI機能のそれぞれについて、カスタム開発の前にあるため、複雑な部分でデコレータを提供できる機能をカスタマイズするためのいくつかのツールを提供するために、認証ルーチン応答形式で、変更のための任意の需要が公開プロセスを取る、コードを変更する必要があります、あります上記の変換の最初のステップは、このステップでは、オーケストレーションデータベースメモリカードチェーンを介して達成複数の実装(共通およびカスタムを含む)を提供するために非抽象処理チェーン、各処理ノードのカスタマイズサービスデータ部分、に望ましいです。

 

方法のための認証カーライン事業は多様性があるので、実装は認証プラグインのWebミドルウェアの様々なによって達成され、顧客のニーズに応じて:

  • 本明細書にHTTP署名参照:主にTOB(デポ背景、パートナー)要求のために、

  • JWT認証:主に自動車、携帯電話などの端末のための;

  • APIキー。

APIゲートウェイ、これらの認証プラグインについては、別のものはありません、ちょうどそのようなJWK用など、いくつかのカスタムエンジニアリングシナリオは、異なるデポリフレッシュポリシーの管理に対処するために、JWTの検証戦略による抽象モデリングビジネス需要の特定のニーズに応じてプラグインのプロパティ設定制御を達成します。

また、ゲートウェイはまた、いくつかの古い互換性のあるインターフェイスにこの点で、REST APIインターフェイスを明らかに主にGraphQLのためのいくつかのコンバータ、出力を実装して、彼らが持っている世界的なアーキテクチャの背景には、ほかに、いくつかの重要な顧客をサポートしています完全に私たちのインターフェースのスタイルを定義し、主に達成:

  • 参照への変換:GraphQLクエリテンプレート満たされたREST APIパラメーターを使用して、

  • ヘッダー・トランスフォーメーション:主に顧客の仕様に適合させるために使用されます。

  • JSON変換、次のシナリオを使用しました:

  1. 再利用可能な標準インタフェースが、異なる顧客の仕様に矛盾構造に応じて、

  2. カスタマイズされた非標準的なインタフェースは、あなたがGraphQLの出力を変換する必要があります

プラグを使用するコンソールを介して達成またはウィジェットAPIは一緒にDBキャッシュからの要求に応じて使用され、使用される場合、機能を抽出し、データベースに格納された設定情報を管理します。

次のように変換した後、新しい構造は次のとおりです。

 

 

概要

上記の変換により、車のオンライン・ネットワーキング・サービスの開発モデルを大幅にカスタム開発の効率を高め、ダイナミックパブリッシングAPIコンソールを達成するためにアップグレードされました:

  • 効率の開発の改善:軽量カスタムコード定義された開発により置換された直交化機能配置原子、:
  1. カスタマイズされた開発のシェアは60%の減少となりました。

  2. 2-3人→2-3人日から、単一のインタフェースの開発時間。

  • 互換性のあるプロトコル:混合RESTプログラムは、両方の適応プロトコルをサポートするための外部標準プロトコルを提供します。

 

ドイツは、より技術的なフィールドトリップを見つけるために、高度な技術、専門的な内容に焦点を当て

 

おすすめ

転載: www.cnblogs.com/amap_tech/p/11423944.html