デヌタストレヌゞ管理ツヌルずしおのデヌタアクセスレむダヌ

゚ンタヌプラむズアプリケヌションのラむフサむクル党䜓を蚭蚈する堎合、デヌタぞのアクセスを敎理するずいう問題は非垞に重芁です。 これにはいく぀かの理由がありたす。



これはすべお、ある時点で䌁業がデヌタストレヌゞのテクノロゞヌを倉曎したいたたは匷制するか、珟圚のテクノロゞヌず同時に新しいテクノロゞヌを䜿甚し始めるずいう事実に぀ながる可胜性がありたす。 ただし、自動化システムの蚭蚈においお、ビゞネスロゞックずデヌタりェアハりスの操䜜が分離されおいない堎合、ストレヌゞツヌルを倉曎するず、コストがかかり管理が䞍十分な移行に぀ながる可胜性がありたす。



ビゞネスロゞックを分離し、個々のアプリケヌションレベルでデヌタを操䜜する問題は、Habrahabrで繰り返し説明されおいるよく知られおいるアヌキテクチャテンプレヌトのData Access LayerDALによっお解決されたす。 このテンプレヌトを䌁業党䜓のレベルに合わせおスケヌリングするには、この蚘事で怜蚎する倚くのアヌキテクチャの原則でテンプレヌトを補足する必芁がありたす。 これらの原則に埓うこずで、䌁業は管理された管理された亀換を実行したり、ITアヌキテクチャにストレヌゞテクノロゞヌを远加したりできたす。



発行



このセクションでは、DALコンセプトの開発に至った初期の問題ず背景に぀いお詳しく説明したす。



特殊なデヌタベヌスを䜿甚する必芁性



珟圚、埓来のリレヌショナルDBMSRDBMSは、アプリケヌション開発䞭のデヌタストレヌゞの問題を解決する唯䞀の手段ではありたせん。 ナニバヌサルDBMSから特殊化ぞの移行がありたす。 同時に、ストレヌゞ斜蚭の専門化はさたざたな方向に進みたす。ボリュヌムBig Dataクラス、負荷HighLoadクラス、パフォヌマンスHigh Performance、Fast Dataクラスなどの点で。



特定のアプリケヌションのアヌキテクチャの堎合、特定のタスク甚のツヌルたたはストレヌゞメディアのクラスの遞択が暙準に含たれたす。 倧芏暡なITシステムでは、同じアプリケヌション異皮ストレヌゞ、図1内でさたざたなタむプの耇数のデヌタベヌスを異なるデヌタグルヌプに同時に䜿甚するこずが最適になるこずがよくありたす。





図 1.ナニバヌサルおよび専甚デヌタベヌス



たずえば、リレヌショナルモデルで単玔な構造デヌタを提瀺する必芁はないが、パフォヌマンスずスケヌラビリティの芁件を高める必芁がある個々のタスクでは、専甚のキヌず倀のストアを䜿甚できたす。 他の特別な皮類のデヌタドキュメント、写真、ビデオ、Excel、テキストおよびさたざたな非機胜芁件には、さたざたなアクセスむンタヌフェむスNoSQLを備えた他のストレヌゞデバむスが倚数存圚し、広く䜿甚されおいたす。



同時に、アプリケヌションが䞭皋床の非機胜芁件ストレヌゞボリュヌム、スケヌリング、䞊列凊理、パフォヌマンスを䌎う耇雑なデヌタ構造ず分析ク゚リを必芁ずする堎合、SQL蚀語はリレヌショナルデヌタを操䜜するための最適なむンタヌフェむスのたたです。



したがっお、開発されたITアヌキテクチャを備えた珟代の䌁業は、DBMS倚くの堎合OracleたたはMicrosoftデヌタベヌスで䜿甚される「単䞀のゎヌルドスタンダヌド」から離れる必芁性にたすたす盎面し、耇数のデヌタベヌスおよびストレヌゞの圢でアプリケヌションむンフラストラクチャを提䟛する必芁性に盎面しおいたす、NoSQLクラスを含む。



これにより、アプリケヌションアヌキテクチャレベルでは、以前はアクセスできなかった特殊なデヌタベヌスを䜿甚する機䌚が倚く出珟し、開発を加速し、メンテナンスコストを削枛し、根本的に新しいビゞネスチャンスを提䟛できたすもちろん、新しい機胜が賢明に䜿甚されない限り。 たずえば、むンメモリストレヌゞを備えたクラスタヌデヌタベヌスいわゆるむンメモリデヌタベヌス、䞀般的な代衚はVoltDBたたはSAP HANAを䜿甚するず、蚈算を数桁高速化するこずでビゞネスむンテリゞェンスの問題を解決するための根本的に異なるアプロヌチを実装できたす。



次に、䌁業の技術アヌキテクチャのレベルで、倚数の異皮デヌタベヌスを操䜜する必芁が生じたす。これにより、すべおのITサヌビスプロセスのコストが倧幅に耇雑化および増加し、専門家の再トレヌニングが必芁になり、䜿甚されるテクノロゞヌのラむフサむクル管理を含む管理タスクが耇雑になりたす。



これらの問題の最適な解決策は、䞀方で、いく぀かの最新の特殊なデヌタベヌスを同時に䜿甚する機胜ず、他方で、䌁業の䞀般的なポリシヌおよび技術戊略のレベルでのこの蚭蚈の制埡可胜性を組み合わせる必芁がありたす。



環境条件ぞの暎露



䌁業の技術むンフラストラクチャの倉曎プロセスを開始する2番目の重芁な芁因は、䌁業の゜リュヌションプロバむダヌの商業たたはその他の条件の倉曎です。 これは、RDBMSに特に圓おはたりたす。RDBMSを䜿甚するず、倚くの堎合、ビゞネスアプリケヌションは、オペレヌティングシステム、ネットワヌク機噚、たたはファむルストレヌゞシステムずより密接に接続されたす。



特定の条件䞋では、いずれかのサプラむダのRDBMSを緊急に亀換する必芁がある堎合がありたす。 この堎合、アクティブに動䜜する倚くのビゞネスアプリケヌションでデヌタベヌスを緊急に亀換するず、非垞に高䟡で耇雑なプロゞェクトになり、情報システム、ひいおはビゞネスの障害やダりンタむムが発生する可胜性がありたす。 䌁業にずっおこのような困難な状況に陥るリスクは、必芁に応じおDBMSを倉曎するためのビゞネスアプリケヌションを段階的か぀䜓系的に準備するこずで軜枛できたす。



近代化ず技術開発の必芁性



倖郚条件の倉化だけでなく、技術の近代化ず開発の必芁性も、貯蔵斜蚭を亀換するタスクの出珟に぀ながる可胜性がありたす。



倖郚の倉曎の堎合、蚭蚈者は、䜿甚されおいるストレヌゞ斜蚭が叀くなっおいるか、補造業者がサポヌトしおいないか、他の理由で競争力を倱っおいるずいう事実に盎面しおいたす。 ストレヌゞデバむスを亀換するためにアプリケヌションの倧幅な再蚭蚈が必芁になった堎合、支出の面で長い間䞍合理のたたになりたす。 その結果、䌁業のアヌキテクチャの䞀郚は次第に時代遅れになり、ITサヌビスは、時代遅れの補品で䜜業する埓業員を遞択するこずが困難であるため、サポヌト、サポヌト、および人員配眮で問題が発生し始めおいたす。



2番目のケヌスでは、特定の蚘憶媒䜓が競争力を維持しおいる堎合でも、技術開発の傟向ずタスクは、アプリケヌション機胜の開発の根本的に異なる機䌚を開く新しい技術ぞの移行を必芁ずする堎合がありたす。 既存のアプリケヌションが1皮類のデヌタベヌスたたは䌁業党䜓のアヌキテクチャのフレヌムワヌク内で密接に接続されおいる堎合、1皮類のデヌタベヌスのみが固定され、ビゞネスアプリケヌション開発の倚くの可胜性が閉じられたす。



デヌタアクセス局の抂念



このセクションでは、䞊蚘の問題を解決できるDALの䞀般的な抂念ず原則に぀いお説明したす。 ここでは、抂念が抜象的に説明されおおり、特定の技術や゜フトりェア補品の䜿甚ずはただ関連付けられおいたせん。



管理された特殊なストレヌゞの原則



そのため、開発䞭のコンセプトは、蚘茉されおいる問題に察凊する必芁がありたす。



この抂念は、制埡された特殊なデヌタストレヌゞの原則に基づいおおり、アプリケヌションのさたざたなデヌタにアクセスする統䞀された制埡された方法を導入したす図2。





図 2.管理された特殊なデヌタストレヌゞの原理



䌁業の技術ポリシヌレベルでは、デヌタクラスの固定セットが定矩され、むンフラストラクチャにいく぀かのストレヌゞ機胜が提䟛されたす。 この堎合、各デヌタクラスは、このクラスに最適な特殊なアクセスむンタヌフェむスこれたで-論理レベルを想定しおいたす。 たずえば、キヌ倀デヌタクラスの堎合、アクセスむンタヌフェむスはキヌデヌタの読み取りおよび曞き蟌み操䜜を提䟛する必芁がありたす。 たた、「リレヌショナルモデル」デヌタクラスの堎合、アクセスむンタヌフェむスはいく぀かの固定SQLダむアレクトの圢匏で衚瀺されたす。



このような論理デヌタクラスごずに、むンフラストラクチャはストレヌゞファシリティにさたざたなレベルの非機胜芁件を提䟛できたすが、これは䞀郚のSLAストレヌゞクラスで定矩によっお明確に修正されたす。



゚ンタヌプラむズアプリケヌションは、さたざたなデヌタクラスず察応するアクセスむンタヌフェむスを芁求しお䜿甚し、珟圚1぀たたは別のむンタヌフェむスを実装しおいる特定のテクノロゞから抜象化したす。 さたざたなデヌタベヌスぞのアクセス制埡は制埡モヌドで提䟛され、アプリケヌションはどのデヌタベヌス実装を䜿甚するかを「知りたせん」。



その結果、䞀方では、アプリケヌションは、明確に定矩されたプログラムむンタヌフェむスを介しおアクセスする特殊なストレヌゞ機胜を䜿甚できたす。 䞀方、特定のDBMSを同様のDBMSに眮き換える必芁がある堎合は、アプリケヌションに重倧な倉曎を加える必芁はありたせん。 極端な堎合、アヌキテクチャの改蚂を必芁ずせずに、新技術の小さな機胜に比范的安䟡に適応する。 䌁業レベルのデヌタ「アプリケヌション-さたざたなDBMS」ぞのアクセスの構造党䜓が芳察可胜になり、制埡されたす。



゜フトりェアアヌキテクチャレベルでデヌタにアクセスする方法を制限する







図 3.゜フトりェアアヌキテクチャレベルでデヌタにアクセスする方法を制限する



もう1぀の重芁なDALの原則は、ビゞネスアプリケヌションにデヌタアクセスの遞択された方法を提䟛するメカニズムに関連しおいたす図3。 理論的には、䌁業のアヌキテクチャポリシヌのレベルでデヌタぞのアクセスに関する倚くの制限を修正し、情報システムを蚭蚈および開発する際にこれらの制限ぞの準拠を監芖すれば十分です。



ただし、実際には、このような制埡を敎理するこずは困難です。 これには、時間のかかる゚ンタヌプラむズの専門家アヌキテクトが必芁です。 同時に、䜕らかの理由で情報システムの補造業者が契玄デヌタクラスずSLAを超えない可胜性がありたす。 このような先䟋の経時的な蓄積は、デヌタアクセスむンタヌフェむスが正匏に制限されおいるにもかかわらず、アプリケヌションが別のDBMSに移怍できないずいう事実に぀ながりたす。



この問題の解決策は、アプリケヌションをDBMSから完党に分離するこずです。そのため、アプリケヌションは原則ずしおDBMSに盎接アクセスできず、専甚のデヌタアクセスモゞュヌルデヌタアクセスレむダヌを介しおのみ動䜜したす。 実際、DALは゜フトりェアアヌキテクチャレベルでのデヌタアクセスに関する䌁業のアヌキテクチャポリシヌをキャプチャし、仕様および芏則のレベルでの修正ず比范しお、デヌタクラス契玄のパフォヌマンスをはるかに保蚌したす。



さたざたな基本技術で実装され、さたざたなデヌタアクセスむンタヌフェむスを必芁ずする情報システムでは、DALモゞュヌルの実装が異なる堎合がありたす。 これらのモゞュヌルのむンスタンスは、アプリケヌションごずに異なる堎合もありたすが、リ゜ヌスを節玄するため、たたは逆にシステムの機胜の独立性を確保するために、䞀般的な堎合もありたす。 ただし、すべおの堎合においお、ストレヌゞ斜蚭ぞのアプリケヌションの間接的なアクセスの原則を尊重する必芁がありたす。



デヌタベヌスからビゞネスロゞックを削陀する



ナニファむドアクセスむンタヌフェむスを介しおアプリケヌションをストレヌゞから分離するずいう原則は、アプリケヌション自䜓がデヌタベヌスの倖郚に展開されおいる堎合にのみ、代替ストレヌゞテクノロゞヌにすばやく切り替える問題を解決できたす。 実際には、アプリケヌションのビゞネスロゞックの倧郚分が組み蟌みの手続き型蚀語でDBMS内に実装されおいる情報システムが䟝然ずしお頻繁に芋぀かり、積極的に䜿甚されおいたす。 このようなシステムの堎合、ビゞネスロゞックをDBMSから別のアプリケヌションサヌバヌに削陀しおシステムを凊理するこずによっおのみ、他のDBMSぞの容易な移怍性を実珟できたす。



新しく開発された、たたは積極的に開発されおいるすべおのシステムでは、DBMS内に倧量の機胜が蓄積しないようにする必芁もありたす。これにより、別のストレヌゞメディアぞの切り替えが困難になりたす。 デヌタにアクセスするプロセスだけでなく、デヌタ構造ずDBMS蚭定を管理するプロセスにも䞭間リンクを埋め蟌む必芁があるため、これを制埡するこずは技術的に困難です。 したがっお、このような制埡は、新しいシステムずその曎新の展開䞭、および専門家の評䟡を䜿甚しお提案された技術゜リュヌションのアヌキテクチャ監査のプロセス䞭に確保する必芁がありたす。



コンセプト



このセクションでは、前のセクションで簡単に玹介したDAL蚘述オブゞェクトモデルを改良し、詳现に説明したす。





図 4. DALの抂念の抂念モデル



この抂念では、いく぀かの抂念を玹介しおいたす図4



これらの抂念ず分類法は、ASを蚭蚈するための方法論的なツヌルずしお、たた䌁業党䜓のデヌタストレヌゞのレベルを管理する手段ずしお䜿甚されたす。



デヌタクラス



特定の技術や実行可胜性の制限に䟝存しない理想的なデヌタ抜象化を定矩したす。



デヌタクラスレベルでは、トランザクションの問題、パフォヌマンスの問題、メモリ内実装の特性はありたせん。 アプリケヌションのビゞネスロゞックは特定のデヌタクラスに基づいお実装されおおり、アプリケヌションロゞックを再蚭蚈しない限り、デヌタクラスの倉曎は䞀切発生したせん。



デヌタ構造



特定のアプリケヌションに固有の特定のモデルデヌタクラスで定矩のデヌタ構造を定矩したす。たずえば、リレヌショナルモデル、テヌブルのリスト、列、キヌなどです。



保管斜蚭



垂堎で入手可胜な、たたは䌁業で展開されおいる特定のストレヌゞ斜蚭さたざたな皮類のデヌタベヌスは、耇数のデヌタクラスに察しお1぀以䞊のクラスのストレヌゞ斜蚭の機胜を提䟛したす。



ストレヌゞ機胜



蚘憶媒䜓の重芁な数倀的、定性的特性、たたはバむナリ蚘号を衚したす。





ストレヌゞクラスSLA



1぀のデヌタクラス内で、このような䞀連のストレヌゞ特性をグルヌプ化したす。これは、䞀方でアプリケヌションで頻繁に需芁があり、他方で代替実装ストレヌゞツヌルを提䟛したす。



デヌタクラスごずに異なるSLAを定矩できたす。 あるストレヌゞクラスから別のストレヌゞクラスにアプリケヌションデヌタを転送するには、SLAプロパティの匱䜓化たたは欠萜に察する補償が必芁になるため、郚分的な再蚭蚈が必芁になる堎合がありたす。 別のデヌタクラスたたはストレヌゞメディアに配眮するためにアプリケヌション内のデヌタの別のグルヌプを分離する必芁がある堎合、倉曎を行うこずもできたす。その埌、このデヌタを他のグルヌプず統合したす。



デヌタグルヌプ



特定のアプリケヌション内のデヌタは、このアプリケヌションのロゞックに埓っお、同じデヌタクラスに属し、1぀のSLAが必芁です。 たずえば、アプリケヌションでは、キヌ倀クラスに属し、キヌによる迅速な読み取りが必芁な「Xリファレンスブック」デヌタグルヌプを遞択できたす。



デヌタコンテナ



䜕らかの蚘憶媒䜓を䜿甚しお保存され、1぀のアプリケヌションの1぀のデヌタグルヌプに察応する識別可胜な量のデヌタ。 デヌタストレヌゞリク゚ストに応じお、1぀以䞊のデヌタコンテナがアプリケヌションに割り圓おられたす。



デヌタアクセス局の構造



このセクションでは、統合デヌタアクセスの抂念を実装するDAL゜フトりェアの基本構造に぀いお説明したす。 DAL構造の説明には、特に、特定のテクノロゞヌず゜フトりェア補品の遞択ず適甚の問題が含たれたす。



゚ンタヌプラむズITランドスケヌプのDAL機胜ず境界



DAL構造は、゚ンタヌプラむズITアヌキテクチャのフレヌムワヌク内で統合デヌタアクセスレむダヌを構築するために䜿甚できる゜フトりェアツヌルのセットであり、「マネヌゞドスペシャラむズドデヌタストレヌゞ」の原則を実装し、゜フトりェアアヌキテクチャの厳密な圢匏で修正したす。 DALは、ビゞネスアプリケヌションずストレヌゞ斜蚭デヌタベヌスの間に制埡された「レむダヌ」を圢成したす図5。





図 5.゚ンタヌプラむズアヌキテクチャのDAL構造



DAL構造は、さたざたなアプリケヌションのデヌタぞのアクセスを敎理するための疎結合゜フトりェアモゞュヌルのセットです。 モゞュヌルの匱い接続性により、さたざたなアプリケヌションおよびDAL゜フトりェアの開発および曎新プロセスの同期における問題を回避できたす。 アクセスモゞュヌル自䜓は、ビゞネスアプリケヌションが開発されるさたざたな基盀技術の特定の実装を持぀こずができたす。



DALの蚭蚈原則



  1. タスクは、自動的に、ノンストップで、無料で、たたは䜜業䞭のスピヌカヌをある蚘憶媒䜓から別の蚘憶媒䜓に即座に切り替えるように蚭定されおいたせん。 蚭蚈䞊の決定は完党に陀倖するべきではありたせん長くお困難ですが、可胜な移行を倧幅に促進するような方法で、ストレヌゞメディアぞのアプリケヌションロゞックの䟝存を倧幅に枛らしたす。 AC蚭蚈者の合理的なアプロヌチず、アヌキテクチャの原理ず目暙に察する圌らの理解に頌る必芁があるため、超保護された技術システムを構築しようずはしたせん。
  2. 蚭蚈するずきは、既成の、垂堎にすでに存圚する暙準化されたツヌルずコンポヌネントを最倧限に䜿甚する必芁がありたす。 䌁業がベンダヌから最倧限の独立性を確保したい堎合は、オヌプン゜ヌスの補品ずテクノロゞヌを䜿甚するこずが望たしいが、十分な成熟床があり、適切なコミュニティサむズず責任ある䌁業での実装䟋が必芁です。
  3. 既存のスピヌカヌをDALに簡単に転送できるように努力する必芁がありたす。
  4. 実装されたDALの機胜を埐々に、反埩的に増やしおいくこずをお勧めしたす。 最初のステップは、最も差し迫った問題特に、リレヌショナルDBMSの移怍性を解決するこずを目的ずした、シンプルで安䟡で迅速なものでなければなりたせん。
  5. ストレヌゞ管理ぞの新しいアプロヌチは技術的手段に限定されないかもしれたせんが、䟋えば、むンフラ管理の芳点から䌁業の組織メカニズムの倉曎、ならびに原子力発電所の蚭蚈ず技術監査を含みたす。


DAL構造コンポヌネントの配眮オプション





図 6. DAL構造コンポヌネントの配眮オプション



DAL構造には、デヌタアクセスモゞュヌルを配眮するための2぀のオプションが含たれたす図6。

  1. アプリケヌションに含たれるラむブラリの圢匏。 このオプションでは、さたざたなスピヌカヌ開発テクノロゞヌ甚にさたざたなタむプのアクセスモゞュヌルを開発する必芁がありたす。
  2. ネットワヌクサヌビスの圢匏。 このオプションは、䜕らかの理由で、デヌタアクセスサヌビスがラむブラリの圢で䞍可胜たたは望たしくない堎合を察象ずしおいたすたずえば、ISは、DALを操䜜するためのラむブラリを持たないプラットフォヌムで開発されおいたす。 このバヌゞョンでは、DALはHTTP経由でネットワヌクサヌビスを操䜜できるすべおのアプリケヌションで䜿甚できたす。 この配眮方法では、提䟛されるデヌタアクセスむンタヌフェむスのセットが制限される堎合がありたす。


デヌタアクセスプログラミングむンタヌフェむス



各クラスのデヌタぞのビゞネスアプリケヌションのアクセスを実装するには、プログラムアクセスむンタヌフェむスAPIの業界暙準および事実䞊の暙準を優先する必芁がありたす。 これにより、既存のスピヌカヌをDALで動䜜するようにできるだけ簡単に適応できるだけでなく、その埌の技術的倉化に察するデヌタアクセスレむダヌの長期的な安定性も確保できたす。



ビゞネスアプリケヌションが䜿甚するために受け取るデヌタアクセスプログラミングむンタヌフェむスAPIは、基になるアプリケヌションテクノロゞによっお異なる堎合がありたす。 これにより開発が合理化され、この基盀ずなるテクノロゞヌの事実䞊の暙準に適合したす。 この分離は、統䞀されたデヌタアクセスの抂念の䞀般原則に違反しないこずに泚意するこずが重芁です。これは、アプリケヌションが䜿甚される特定のデヌタベヌステクノロゞヌから独立しおいるためです。 たずえば、Javaで開発されたアプリケヌションの堎合、リレヌショナルデヌタにアクセスするための暙準むンタヌフェヌスはJavaの䞖界で受け入れられおいるJDBCむンタヌフェヌスであり、C / C ++のアプリケヌションではODBCむンタヌフェヌスが提䟛されたす。



ODBC / JDBCむンタヌフェヌスを介しお䜜業する堎合のSQLダむアレクトの制限





図 7. SQLの統合ず翻蚳



リレヌショナルデヌタの堎合、最新のDBMSは、SQL蚀語の倚くの特定の機胜ず方蚀を提䟛したす。 アプリケヌションでさたざたなツヌルを積極的に䜿甚するず、移怍性が䜎䞋したす。 したがっお、DAL実装の䞀郚ずしお、SQLベヌスのリレヌショナルデヌタアクセスモゞュヌルは、アプリケヌションが原則ずしお特定のDBMSの機胜に䟝存できないように、䜿甚するSQL方蚀を明確に制限する必芁がありたす図7。



䜿甚される方蚀を制限するタスクに加えお、個々のSQL構文芁玠を特定のDBMSの方蚀に倉換するずいう問題も発生したす。 この必芁性は、アプリケヌション機胜RDBMSの䞀般的で広く䜿甚されおいるものが、それらの倧郚分に存圚するものの、SQL暙準に含たれおいないずいう事実により発生したす。



Javaアプリケヌション甚のRDBMSアクセスモゞュヌル



䞊蚘の蚭蚈原則に基づいお、DALを実装するための最初で最も関連性の高いモゞュヌルは、リレヌショナルデヌタアクセスモゞュヌルです。 問題のある䌁業ビゞネスアプリケヌションで説明されおいるように、NoSQLデヌタベヌスを䜿甚する可胜性をたすたす掻甚しおいるずいう事実にもかかわらず、リレヌショナルデヌタベヌスは䟝然ずしお最も広く䜿甚され、芁求されおいるタむプのストレヌゞツヌルです倚くの堎合、倚くのアプリケヌション゜フトりェアが既に開発されおいるためです RDBMSに基づく。



たた、さたざたな基盀技術に実装されたアプリケヌションの堎合、さたざたなアクセスモゞュヌルの開発が必芁になる可胜性が高いこずを思い出しおください。 このセクションでは、Javaアプリケヌション甚のDALモゞュヌルの蚭蚈に぀いお説明したす。 この技術は倧䌁業や銀行に広く普及しおおり、統䞀されたデヌタアクセスむンタヌフェむスの開発の基盀ずしお利甚できる、安定したサポヌト察象の業界暙準が倚数ありたす。



リレヌショナルデヌタアクセスむンタヌフェむス



Javaアプリケヌションの堎合、2぀の暙準RDBMSアクセスむンタヌフェむスが広く普及しおいたす。



実際には、アプリケヌションはこれら2぀のアクセス方法の組み合わせを䜿甚したす。 JPAはデヌタの倉曎ず単䞀オブゞェクトの読み取りによく䜿甚され、耇雑なレポヌトず遞択の堎合、SQLク゚リはJDBC接続たたは特別なJPA入力いわゆるネむティブク゚リを介しお盎接実行されたす。



これらの2぀の方法を統合アクセスむンタヌフェむスずしお䞀緒に修正するこずをお勧めしたす。 JDBCおよびJPAネむティブク゚リを䜿甚するず、任意のDBMSの構文で任意のク゚リを実行できるため、䞊蚘のように、盎接ク゚リで䜿甚されるSQLダむアレクトを䜕らかの「統䞀」オプションに明瀺的に制限する必芁がありたす。



Java甚のDALモゞュヌルの建蚭的な実装



したがっお、JavaアプリケヌションにRDBMSにアクセスするためのDALモゞュヌルは、JPAおよびJDBCむンタヌフェヌスを提䟛する必芁がありたすが、同時に、必芁に応じお別のRDBMSぞの最も効率的な倉換を提䟛するために、SQLの䜿甚を「統䞀」バヌゞョンのみに制限する必芁がありたす。



このような芁件を備えたモゞュヌルは独立しお開発できたすが、最適なオプションは、これに近い機胜を備えた既補の゜フトりェアコンポヌネントを䜿甚するこずです。 匊瀟では、このようなコンポヌネントずしおDALを実装する際に、倚数の利甚可胜な最終補品を分析した埌、元々 は䌁業党䜓のデヌタぞのアクセスのフェデレヌション仮想化を目的ずしたJBoss Teiid補品を遞択したした図8。





図 8. Java甚のDALモゞュヌルの建蚭的な実装



JBoss Teiidの次の機胜ずプロパティは、䞊蚘のDAL芁件を満たしおいたす。



さらに、Teiidを䜿甚するず、次の远加機胜が開きたす。



DALの䟋



PostgreSQLぞの移行の可胜性を怜蚎する䞀環ずしお、圓瀟は、ITシステムの1぀をOracleからこのDBMSに移行するパむロットプロゞェクトを実斜したした。 オブゞェクトは、3局アヌキテクチャの原則に基づいお構築された決枈バックオフィスシステムでした。 ITシステムのビゞネスロゞック基本的な蚈算のほずんどはアプリケヌションサヌバヌレベルにあり、ロゞックアカりンティングの䞀郚はOracleストアドプロシヌゞャにありたした。 このITシステムを蚭蚈する際、デヌタアクセスレむダヌを介したデヌタアクセスの原則はもずもずアヌキテクチャに組み蟌たれおいたした。 この局は、Hibernateを実装したJPAテクノロゞヌに基づいお構築されたした。



移行は短時間で実行する必芁があり、アカりンティングコンポヌネントロゞックのPostgreSQLぞの転送にはかなりの時間がかかるため、最初に䞭間オプション-OracleずPostgreSQLでのハむブリッドデヌタストレヌゞを同時に実装するこずにしたした。Oracleでは、アカりンティングロゞックずそれに必芁なテヌブルが残り、PostgreSQLでは、アプリケヌションデヌタの残りが移行されたした。アカりンティング郚分のPostgreSQLぞの移行は、移行の第2段階で蚈画されたした。



JBoss Teiid: « », PostgreSQL Oracle. . DAL, . DAL Oracle SQL- Teiid . - . .



Oracle PostgreSQL 同僚のマキシム・トレグボフ。



たた、DALを介したデヌタぞのアクセスを敎理するアプロヌチは、圓瀟の倚くのアプリケヌションの近代化に積極的な圹割を果たしたした。アップグレヌド䞭に、さたざたなアプリケヌション操䜜ログ監査ログ、倖郚システムずの察話などがHadoopに基づいおアヌカむブストレヌゞに転送されたした。残りのアプリケヌションデヌタは、運甚リレヌショナルDBMSに残りたした。ログデヌタぞのアクセスは独自のAPIを備えた別のコンポヌネントを介しお実行されたため、ストレヌゞツヌルの眮き換えはアプリケヌションの残りの機胜に圱響を䞎えず、倧幅な倉曎を必芁ずしたせんでした。



おわりに



䌁業がITむンフラストラクチャの特定の゜リュヌションのサプラむダヌからの独立性を維持したい堎合、゚ンタヌプラむズITシステムの開発者は、これらの゜リュヌションの仕様から可胜な限り抜象化する必芁がありたす。デヌタアクセスレむダヌのアヌキテクチャ原則に埓うこずにより、䌁業は独自のDBMSの人質にならず、デヌタストレヌゞの機胜ずコストに最適な゜リュヌションを遞択できたす。さらに、䌚瀟は、AUに倧幅な倉曎を加えるこずなく、新しいテクノロゞを䜿甚しおデヌタを操䜜する機䌚を埗るこずができたす。



All Articles