1CEnterpriseのデヌタモデルをどのように䜿甚したすかたたは「なぜテヌブルを䜿甚しないのですか」

この蚘事では、1CEnterpriseプラットフォヌムで遞択されたデヌタ操䜜モデルずその理由に぀いお説明したす。



ビゞネスアプリケヌションの堎合、デヌタの操䜜は非垞に重芁なアヌキテクチャ䞊の問題です。 いずれにしおも、アプリケヌションのすべおの䜜業はデヌタを䞭心に構築されたす。 さらに、゜フトりェアシステムの䞀郚のクラスでデヌタが補助的である堎合、ビゞネスアプリケヌションではデヌタがタスクの䞻芁なコンテンツです。



こここの蚘事では、デヌタの保存ず操䜜の技術的な偎面に぀いおではなく、アプリケヌションを蚭蚈する方法ずしおデヌタを説明するこずに぀いお説明したす。 ビゞネスアプリケヌションにずっおデヌタがそれほど重芁なのはなぜですか



それらはサブゞェクト領域自䜓を蚘述するためです。 事業䜓はどのようなもので、どのように関連しおいたすか。 デヌタは問題自䜓を非垞によく説明しおいたす。 実際、アプリケヌションを蚭蚈するずき、私たちは絶察にすべおのデヌタに興味を持っおいるのではなく、䜕らかの方法で解決される問題に圱響を及がすデヌタおよびそれらの関係に興味がありたす朜圚的に興味深い方向でのシステムの開発のためのマヌゞンを含む。 たずえば、人材育成のプロセスを自動化する堎合、教育、埓業員の職歎に関心がありたす。 ただし、服や靎のサむズに関する情報は反映したせん。 しかし、たずえば、䜜業服の䌚蚈を自動化する堎合、これはすでに興味深いものになりたす。 しかし、奜奇心designer盛なデザむナヌはここで質問をするかもしれたせん。 スタッフの開発には、やる気がありたす。 そしお、やる気があるずころには、おそらく、䌚瀟のシンボルを䜿った衣服の補造がありたす。 ここでは、自然のデヌタ量は無限であり、デヌタモデリングの技術がアプリケヌションの蚭蚈の技術を倧きく決定しおいるこずがわかりたす。



もちろん、プロセスはビゞネスアプリケヌションでも非垞に重芁な圹割を果たしたす。 私たちずビゞネスアプリケヌションを開発する他のプラットフォヌムの開発者の䞡方がプロセス䞊のアプリケヌションの蚭蚈にもっず重点を眮いおほしいのですが、デヌタは䟝然ずしお䞻題分野の最も重芁な偎面のたたです。 そしお、メむンアプリケヌションモデルが構築されるのはデヌタの反映です。



ご予玄はわずかです。 ここでのデヌタは、プロセスに付随するデヌタも指したす。 ぀たり、プロセスもデヌタモデルを介しお間接的に衚珟されるこずがわかりたす。



1C゚ンタヌプラむズプラットフォヌムにもプロセスを反映するメカニズムがありたすが、これは別の蚘事のトピックです。



デヌタを扱うための䌝統的なパラダむムがいく぀かありたす。



たず、叀兞的なリレヌショナルモデルがありたす。 リレヌショナルテヌブルの圢匏でデヌタを蚘述したす通垞はリレヌショナルDBMSに栌玍されたす。 このパラダむムはたったく新しいものではありたせんが、非垞に重芁です。



オブゞェクトのパラダむムがありたす。 その䞭で、デヌタはプログラミング蚀語のオブゞェクトずしお蚘述され、䜕らかの圢でデヌタベヌスに保存されたす。 リレヌショナルデヌタベヌスでもオブゞェクトデヌタベヌスでもかたいたせん。 前者の堎合、モデリング機胜はDBMSによっお決定され、 埌者の堎合は䜿甚されるORMによっお決定されたす。



ビゞネスアプリケヌションを䜜成する堎合あたり䜿甚されない手法ずアプロヌチもありたす。 たずえば、構造化されおいないデヌタに基づくアプロヌチ。



実際、1C゚ンタヌプラむズプラットフォヌム甚に遞択したアプロヌチに぀いおです。 圌には正匏に認められた名前はありたせん。 これを「適甚されたオブゞェクトのタむプのモデル」ず呌びたす。 このアプロヌチの本質は、プラットフォヌムが開発者に特定の皮類のアプリケヌションオブゞェクトのセットを提䟛するこずです。 各タむプは、ドメむン゚ンティティの特定のカテゎリをアプリケヌションモデルに反映するこずを目的ずしおいたす。 アプリケヌションモデルで解決される問題の䞻題領域を反映する堎合、アプリケヌション開発者は適切なタむプのオブゞェクトを遞択し、それらを䜿甚しおデヌタモデルを蚘述する必芁がありたす。 実際、圌はデヌタモデルだけでなく、倚くの点でアプリケヌション自䜓のモデルに぀いおも説明しおいたす。 しかし、それに぀いおは埌で。



アプリケヌションオブゞェクトのタむプは䜕ですか



これは、サブゞェクト領域の本質を扱うさたざたな偎面を定矩する、プラットフォヌムに組み蟌たれたテンプレヌトの䞀皮です抜象クラ​​スず考えるこずもできたす。



アプリケヌションオブゞェクトのタむプは、開発時蚭蚈時ずシステム操䜜時実行時の䞡方に珟れたす。 蚭蚈時には、これはメタデヌタのオブゞェクトを蚘述するためのメタモデルず、プログラムモデルのデヌタを操䜜するためのクラスです。 実行時には、これらはこのタむプのオブゞェクトを操䜜するずきのシステムの動䜜のさたざたな偎面です。 たずえば、ロックメカニズムの動䜜。



1CEnterpriseには、いく぀かのタむプのアプリケヌションオブゞェクトがありたす。



たずえば、次の3぀のタむプを取りたす。





ディレクトリは、条件付きで䞀定の情報埓業員、商品、顧客のリストなどをシステムに反映するこずを目的ずしおいたす。



文曞は、察象分野のいく぀かの出来事を反映しおいたす販売、埓業員の雇甚、銀行ぞの送金 印刷されたフォヌムの名前で呌ばれるこずもありたす「支払い順序」、「雇甚の順序」、...。 しかし、これは理解を容易にするためだけです。 実際、これはたさに印刷されたフォヌムではなく、むベントのタむプです。



环積レゞスタは、アプリケヌションの䞀郚の䌚蚈システムを反映するこずを目的ずしおいたす。 たずえば、倉庫での珟金たたは商品の保管の䌚蚈凊理。



アプリケヌションオブゞェクトの皮類によっお提䟛される機胜の「セット」にただ含たれおいるものを芋おみたしょう



もちろん、たず、アプリケヌションオブゞェクトのタむプはデヌタモデルを蚘述し、リレヌショナルストレヌゞモデルぞのデヌタマッピングを提䟛したす。 しかし、これは圌の定矩のほんの䞀郚にすぎたせん。



たずえば、参照甚





文曞のように芋えたすが、暙準属性Dateがありたす。これは、時間軞䞊の他のむベントに察するむベントの䜍眮を反映し、ドキュメントが䌚蚈システムに反映されるか䞋曞きであるかを決定する「Posted」蚘号もありたす。



环積レゞスタの堎合、フィヌルドはディメンション、リ゜ヌス、および詳现に分けられたす。 枬定では、䌚蚈モデルの座暙系補品、倉庫など、リ゜ヌス-むンゞケヌタヌ数量、金額など、詳现-単なる远加フィヌルド䌚蚈モデルに圱響を䞎えず、移動の蚘録にコメントを蚘述したす。



なぜ私たちはタむプのアプリケヌションオブゞェクトで動䜜し、䟋えばテヌブルたたぱンティティだけで動䜜しないのですか



これは非垞に重芁なポむントです。 テヌブルには倚くの利点がありたす。 これらは、リレヌショナルモデルの最も単玔なモデリングに近いものであり、開発者を埋め蟌み型のフレヌムワヌクに限定するものではありたせん。 しかし、衚は、遞択したアプロヌチが提䟛する機䌚を提䟛しおいたせん。



私たちのアプロヌチの本質は、簡単な蚀葉でシステムプラットフォヌムが蚘述されたオブゞェクトに぀いお「倚くのこずを知っお」おり、「それらず関係がある倚くのこずを知っおいる」ずいうこずです。 この知識ずスキルに基づいお、システムはこれらのオブゞェクトを盎接たたは間接的に操䜜する12を超えるさたざたなメカニズムの䜜業を自動的に提䟛したす。 ぀たり、アプリケヌション開発者がオブゞェクトのタむプを遞択しお特定のオブゞェクトを蚘述し、特定のオブゞェクトのタむプず蚘述を知っおいるプラ​​ットフォヌム自䜓が、さたざたな䟿利な機胜ずメカニズムを提䟛しおいるこずがわかりたす。 これは、オブゞェクトタむプレベルでこのタむプのオブゞェクトのセマンティクスが決定されるオブゞェクトの目的が「倧芏暡」であるために達成され、メタデヌタモデルを䜿甚するず、さたざたなプロパティや生掻のさたざたな偎面を蚘述する特殊なモデルによる特定のオブゞェクトのセマンティクスを明確にするこずができたす。



それらのほんの䞀郚をリストしたす。







画像

この図は、アプリケヌションオブゞェクトに基づいお動䜜するすべおのプラットフォヌムメカニズムずはほど遠いものですが、ごくわずかです。



ある意味では、アプリケヌションオブゞェクトのタむプはアスペクト指向のアプロヌチず亀差しおいたす。 䞊蚘の機胜はすべお、アプリケヌションオブゞェクトのタむプを反映する定矩枈みの偎面であるためです。 アプリケヌションオブゞェクトのタむプは、単なるテンプレヌトではなく、パラメヌタ化されたテンプレヌトであるず蚀えたす。 パラメヌタ化は、䞀連のメタデヌタプロパティを通じお実行されたす。 プロパティ倀を遞択するず、開発者は遞択したタむプのアプリケヌションオブゞェクトのテンプレヌトをパラメヌタヌ化し、それによっお特定の偎面におけるオブゞェクトの動䜜を指定したす。 たずえば、ドキュメントの番号付けの皮類幎、四半期、月内を遞択するず、システムは自動的に特定の頻床で番号の割り圓おず制埡を行いたす。



適甚されるオブゞェクトのタむプは、゚ンティティ自䜓のセマンティクスだけでなく、その関係のセマンティクスに関する知識も提䟛したす。 たずえば、サブゞェクト゚リアのむベントがアカりンティングモデルにどのように反映されるかを反映する、ドキュメントずレゞスタの間に暙準的な関係がありたす。 このような関係を決定するず、開発者はすぐに、ドキュメントず関連するレゞストリ゚ントリの有効期間を合わせた既補の機胜を受け取りたす。



それずは別に、重芁な䞻題指向の偎面に蚀及する䟡倀がありたす。



たずえば、ディレクトリの堎合、1぀のフラグで階局のサポヌトを有効にできたす。 同時に、システムは、ナヌザヌむンタヌフェむス、レポヌト、オブゞェクトモデルなど、すべおの階局ディレクトリをサポヌトしたす。



画像

ディレクトリ「Hierarchical Directory」の1぀のプロパティを蚭定するず、すぐに、ナヌザヌむンタヌフェむス、レポヌト、オブゞェクトモデルの階局がサポヌトされたす。



文曞には、耇数の皮類の文曞を組み合わせた雑誌、期間ごずの連続番号などの機胜がありたす。



环積レゞスタの堎合、最も重芁な機胜は、蚈算された合蚈ず、さたざたなセクションの合蚈にアクセスし、頻床を考慮するための既補の仮想テヌブルの自動ストレヌゞです。



぀たり、本質的に、アプリケヌションオブゞェクトのタむプには、サブゞェクト領域の察応するデヌタカテゎリの特性である、アプリケヌションのビゞネスロゞックの普遍的な兞型的なメカニズムのかなりの郚分が埋め蟌たれおいたす。



開発者は、デザむナヌの詳现など、遞択したタむプのオブゞェクトからアプリケヌションを収集するこずがわかりたす。 さらに、「抜象的な」詳现を持぀デザむナヌがいる堎合、デザむナヌのパヌツにはすでに「目的」がありたす-ホむヌル、窓、ドア...

画像 「ディレクトリ」タむプに基づいお、開発者は補品、埓業員、通貚、顧客のディレクトリを䜜成したす。 タむプ「ドキュメント」に基づく-ドキュメント「賌入泚文」、「アカりント」、「販売泚文」など



蚀及する䟡倀のあるもう1぀は、このアプロヌチの方法論的䟡倀です。 すべおの開発者は、アプリケヌションの本質をよりよく理解し、コミュニケヌションを簡玠化するのに圹立぀特定の抂念セットで動䜜したす。 なじみのない1C゚ンタヌプラむズプロゞェクトを開いた開発者は、すぐに䜿い慣れた抂念を確認し、このオブゞェクトがシステム内でどのような圹割を果たしおいるかをすばやく把握できたす。 たずえば、アプリケヌションの本質を理解するには、レゞスタの構成を調べる䟡倀がありたす。通垞、アプリケヌションの䞻な目的を反映しおいたす。 テヌブル構造、たたは特にテヌブルやクラスを操䜜するツヌルで蚘述されたなじみのないアプリケヌションのクラス構造を開くず、理解がはるかに少なくなりたす。



しかし、より重芁なこずは、このアプロヌチにより、開発者ずビゞネス担圓者たたはアナリストの蚀語がより緊密になるこずです。 そのような蚀語の必芁性に぀いおは、 「Object-Oriented DesignDDD」ずいう本でよく蚀われおいたす。 耇雑な゜フトりェアシステムの構造化」 Eric Evans著。 アプリケヌションオブゞェクトの皮類は、非プログラマヌにすぐに明らかになり、アナリスト、顧客、および開発者は、1぀の蚀語でプロゞェクトの䞻芁な機胜に぀いお議論できたす。 プログラミングを知らないが、1Cの皮類の芳点からタスクを蚭定できるビゞネス担圓者たたはアナリストず頻繁に䌚うこずができたす゚ンタヌプラむズアプリケヌションオブゞェクト。



他に䜕が面癜いですか。 このアプロヌチにより、システムの継続的な開発が保蚌されたす。 プラットフォヌムに新しいメカニズムを远加するず、それらはすぐに既存のオブゞェクトに察しお機胜し始めたすアプリケヌション開発者の努力なしで、たたは最小限の努力で。 たずえば、最近、 デヌタ履歎を保存するメカニズムバヌゞョン管理を開発したした。 システムはデヌタのセマンティクスに関する䞀般的な甚語を知っおいるため、開発者は特定のオブゞェクトのデヌタ履歎を保存するボックスをチェックするだけで十分です。プラットフォヌムは、履歎の保存から芖芚化たで、必芁なすべおを提䟛したす-ナヌザヌにさたざたなレポヌトの圢で倉曎履歎を衚瀺したす。 以前に暙準のRESTむンタヌフェむス OData暙準に基づくのメカニズムを開発したずき、既補のRESTむンタヌフェむスがすべおのアプリケヌションにすぐに登堎したした。 開発者はこのために䜕も倉曎する必芁がありたせんでした。



既補のタむプのアプリケヌションオブゞェクトに加えお、「テヌブルだけ」を実行しないのはなぜですか これは簡単な質問ではありたせん。 私たちは定期的にそれを自問しおいたす。



䞀方で、それは魅力的なようです。 そのため、準備した適甚枈みオブゞェクトの皮類のセットにサブゞェクト領域が理想的に収たらない堎合は、問題のあるすべおのケヌスを閉じたす。 開発者に蚀うこずができたす-「たあ、あなたはテヌブルを持っおいるだけです-そしお、あなたが望むようにその䞭のすべおをしたす。」 しかし、他方では、これはすべおの暙準メカニズムが「損倱」のたたであるずいう事実に぀ながりたす-これらのテヌブルをどのように扱うのでしょうか 結局のずころ、圌らはこのデヌタのセマンティクスを知らず、それらを正しく操䜜する方法を理解できたせん。 たあ、぀たり、「䜕らかの圢で」圌らず䞀緒に䜜業するこずができたす。 厳密に蚀えば、倖郚゜ヌスに関しおこのような経隓がありたす。 倖郚゜ヌスの堎合、テヌブルを正確に蚘述したす客芳的な方向を指定せずに。 そしお、システムはそれらず䜕らかの普遍的な方法で機胜したすが、機胜の䞀郚はサポヌトされおいたせん。



すべおのデヌタのセマンティクスに関する知識に基づいお、モデルの玔床ず新しい機胜を远加する機胜を確保するために、「単なるテヌブル」の導入を控えようずしおいたす。 いく぀かの機䌚が十分でない堎合、最初に、アプリケヌションオブゞェクトのタむプの構成を開発する方法を怜蚎したす。 しかし、もちろん、これは議論の䜙地のある問題であり、私たちはそれに぀いお考え続けたす。



したがっお、1CEnterpriseプラットフォヌムが完成した圢で提䟛する機胜、およびアプリケヌション開発者が認める抜象化レベルの向䞊は、アプリケヌションオブゞェクトのタむプのセットに倧きく䟝存しおいたす。 これは、1Cの最も倧きな違いの1぀です。他の開発ツヌルず゚ンタヌプラむズ、そしお迅速で統䞀された開発を提䟛する䞻芁なツヌルの1぀です。



All Articles