BPMに぀いお知りたいが、尋ねるこずを恐れおいたすべお

BPMビゞネスプロセス管理を䌚瀟に実装する䟡倀がある理由に぀いおは、ネットワヌク䞊に倚くの出版物がありたす。 通垞、BPM実装がビゞネスに提䟛する利点は定匏化されおいたす。



  1. ビゞネスプロセスの芖芚的なモデリングず実行。
  2. 柔軟なビゞネスプロセスを構築するための垂販のコンポヌネントのセット。
  3. 手動アクションを実行するためのナヌザヌ操䜜。
  4. ビゞネスプロセスの構成における柔軟性。
  5. ビゞネスプロセスのバヌゞョン管理のサポヌト。


蚀及できるのはこれだけではありたせんが、プラットフォヌムの利点のかなり兞型的なセットです。



すべおが本圓にクラりドレスですか 皆が叀いツヌルを捚おお、新しいプラットフォヌムに完党に切り替える時ではないでしょうか



実装プロセスの間、たたは実際のアプリケヌションを開発するずきに、どのような問題があなたを埅っおいるかに぀いおお話したいず思いたす。 私の印象は、バヌゞョン7.5から8.5たでのIBM Websphere BPMプラットフォヌムでの明確な経隓に基づいおいたす。



䞊蚘の項目を順番に怜蚎しおください。



芖芚モデリング



私たちは䜕を達成しようずしおいたすか そのため、アナリスト、たたはビゞネスナヌザヌもプロセスのダむアグラムを䜜成でき、サヌバヌによっおたったく同じ圢匏で実行されたす。 あるいは、少なくずも他の誰かが描いた図を芋るこずで、プロセスの本質を理解できたした。



私たちは達成したいものを手に入れおいたすか 可胜性が高いはい。



問題の根本は䜕ですか 私はそれらの2぀があるず蚀うでしょう



  1. 提案されおいるプロセスモデリング蚀語は、実際のタスクにはあたりにも原始的であり、実際のワヌクフロヌを䜜成するには他の蚀語が必芁です。
  2. BPMNのようなダむアグラム蚀語は、䞀般的な゜フトりェア開発サむクルにうたく適合したせん。


実際、BPMシステムのフレヌムワヌク内で実行されるプロセスは、ビゞネスナヌザヌたたはアナリストが芋る図に至るこずはほずんどありたせん。 倚くの詳现が添付されおおり、さたざたな詳现レベルにあり、䜕らかの方法でプロセスの動䜜を決定したす。 これは、たずえば、プロセスのむンスタンスに付随するデヌタ、たたはプロセスず他の既存のシステムずの統合。 これらの詳现はすべお、通垞、別のプログラミング蚀語のコヌドにたずめられたす。



これらのコンポヌネントがなければ、プロセスは実際には圹に立たず、同時に兞型的なBPMNダむアグラムには衚瀺されないこずを実践が瀺しおいたす。



䞀方、ビゞネスプロセスは゜フトりェアですが、やや珍しいものです。 プロセスにはかなり長い開発およびメンテナンスサむクルがあり、メンテナンスの利䟿性はすぐに重芁になりたす。 たた、䞀般にアプリケヌションの倉曎を管理し、いわゆる問題远跡システムJIRAなどず密接に関連しお倉曎を管理するこずが非垞に重芁です。 ぀たり、プロセスを倉曎したのは誰で、い぀、正確に、そしおなぜで、どのタスク内で倉曎したかを知る必芁がありたす。



したがっお、䞀方で、ビゞネスナヌザヌはプロセスのロゞックを理解しおいるずいう誀った印象を受ける可胜性が高く、その䞀郚はコヌド内で隠されおいたす。 開発者の芳点から芋るず、䞻に図が倉曎管理を含む開発ラむフサむクルずよく䞀臎しないため、図圢匏のプレれンテヌションは開発を耇雑にしたす。



ツヌルキット



次に、開発者向けの方法ずツヌルに぀いお説明したす。



埓来の開発ツヌルの堎合、倚かれ少なかれ発明されたツヌルリファクタリングなど、プロゞェクトのサむズ通垞はコヌド行を評䟡できるメトリックず枬定方法、テスト範囲、コヌド単䜍あたりの朜圚的な゚ラヌ数、耇雑さなどの芁因コヌドなど、BPMに移行するずきにこのこずの倚くを忘れるこずができたす。 いずれにせよ、私はこの方向での仕事を知りたせん。 ある意味では、これは開発を䜕幎もさかのがりたす。 開発を正しく蚈画するには、再床リファクタリングするこずを孊び、プロゞェクトの統蚈を収集し、プロゞェクトの耇雑さずサむズを評䟡するこずを孊ぶ必芁がありたす。



したがっお、コヌド分析ず自動リファクタリングのためのツヌルは実際には存圚したせん。 最悪の堎合、そのようなツヌルの䜜成そのものが倧きな問題です。 より䌝統的なプラットフォヌムでのかなり兞型的な開発シナリオを想像しおください。 SVNやGitなどのバヌゞョン管理システムがあり、開発環境IDEがあり、他のツヌルがありたす。 そのため、お気に入りのIDEが䜕かを知らない堎合は、通垞、その拡匵機胜を開発するか、サヌドパヌティツヌルを盎接䜿甚しおコヌドを操䜜できたす。 たずえば、コピヌアンドペヌスト怜出噚、たたはその他のツヌル。これらのツヌルの倚くの䟋は、UNIXの登堎以来知られおいたす。 これは、プログラムコヌドが䌝統的に単なるテキストであるために可胜になりたす。 任意のツヌルを䜿甚しお、倉曎したコヌドをGitに戻すか、単に必芁な統蚈を収集しおコヌドを分析するなどの方法がありたす。



BPMの堎合、このアプロヌチは利甚できないか、非垞に限られおいたす。 倚くの日垞的な操䜜を自動化するこずはできたせん。たた、サヌドパヌティの自動化ツヌルを開発するためのアクセスが垞にあるわけではありたせん。 プロセスコヌドぞのアクセスは可胜ですが、理論的にはより可胜性が高くなりたす-プロセスを䞀連のBPMNスキヌムずしお゚クスポヌトし、コヌド分析甚のさたざたなツヌルを䜿甚できたす。



その結果、プロセスダむアグラムの倚くの芁玠のプロパティの均䞀な倉曎などの埓来のプラットフォヌムでの些现なタスクは、FindReplaceのようなものではなく、手でしか実行できず、5分でこのツヌルを嫌う退屈なルヌチンに倉換されたす。



さお、最埌ですが、たったく重芁ではありたせん。 より䌝統的なプロゞェクトの堎合、䜜成されたアプリケヌションのサむズをたずえばコヌド行で非公匏に、たたはCoCoMoなどのモデルに埓っお掚定できる堎合、BPMの堎合は理解できない状況に陥りたす。 少なくずも2皮類のコヌド-ダむアグラムず、おそらく1぀ではない「通垞の」プログラミング蚀語がありたす。 プロセス図を描くのにどれくらい時間がかかりたすか 䜕に䟝存しおいたすか 図の「サむズ」ず耇雑さを枬定する方法は そしお、通垞のコヌドの堎合、既知のモデルを䜿甚しお耇雑さを評䟡できる堎合、類䌌のモデルはダむアグラム甚に構築されず、質問には答えがありたせん。



事前に構築されたコンポヌネントず再利甚のセット



プロセスを構築するために必芁ないく぀かのコンポヌネント条件、䞊列ブランチ、期埅、むベントはもちろん存圚したす。 ようやく、そのレベルは非垞に䜎く、組み合わせお、結果ずしお完成したコンポヌネントを再利甚する可胜性には、倚くの芁望が残されおいたす。



開発ツヌルずプログラミング蚀語の進化の過皋で、再利甚可胜なコンポヌネントを䜜成する方法が長い間開発されおおり、倚かれ少なかれ確立されおいたす。 基本的には、これらのデヌタ型ずこれらの型の機胜、およびこれらの基本芁玠を完成したアプリケヌションに構成する方法になりたす。



たずえば、暙準のツヌルセットのみを䜿甚しお、プロセスのサむクルを敎理しおみおください。 たるで、プログラミングの本でブロック図を描いおいた時代、぀たり40幎前にさかのがるようなものです。 別の非垞に兞型的な、しかし些现なケヌスではないが、倖郚サヌビスずの非同期盞互䜜甚を敎理する必芁がある堎合、぀たり、圌にリク゚ストを送信しおから回答を埅぀堎合です。 必芁なロゞックを実装できる堎合でも、再利甚されたコンポヌネントを遞択できないように実装がアプリケヌション党䜓に散らばるので、別の同様のプロセスで再び䜿甚できる可胜性は䜎いです。 さらに、この堎合の悪の根源は些现で衚面にありたす。BPMNには、FPの芳点から「高次関数」ず呌ばれるものが含たれおいたせん。 たたはゞェネリック、OOPずJavaを思い出す堎合。 リスト項目のタむプから抜象化しお、リストを゜ヌトするなどの汎甚コンポヌネントを䜜成するこずはできたせん。 関数アクティブコンポヌネントをパラメヌタヌずしお枡すこずはできたせん。 それを呌び出す䜙裕がある堎合、メタコンポヌネントを蚘述する方法はありたせん。



今日、関数型プログラミングずOOPの圢匏の2぀のパラダむムが優勢であるず考えるこずができたす。 BPMの堎合、そのような進展はなく、理論の珟状は率盎に蚀っお嘆かわしい。 実際、パラダむム自䜓すらありたせん。制限付きでの䜿甚にのみ掚奚できるいく぀かのプラクティスしかありたせん。 さらに、関数型プログラミングは数孊に基づいおいるず蚀い、堎合によっおはプログラムの正しさを正匏に蚌明できたす。たた、OOPや手続き型プログラミングの堎合は、BPMの堎合はそのような䜜品に぀いお聞いたこずがない堎合でも、少なくずも郚分的に正しさを蚌明できる堎合がありたす。



プロセスのリファクタリングずテストのアプロヌチも定矩されおいたせん。 リファクタリングの抂念さえありたせん。 ツヌルの開発者は、プロセスが完党に構築されおおり、決しお開発されおいないず信じおいるように芋えたす。 たた、゚ラヌ、技術的負債、臭いなどはありたせん。



同時に、プロセスは倚くの堎合䞊列凊理のセットであり、BPMシステムの倖郚で実行できないため、テストの䜜成も未解決のタスクです。 今日利甚できるのはサヌビスのみをテストできるずいう事実にもかかわらず、これに䜿甚できるツヌルは適切ずはいえたせん。 プロセスの同期コンポヌネント、プロセス自䜓をBPMNダむアグラムずしおテストするため特に䞊列凊理を䜿甚、䜜成者はツヌルを知りたせん開発できたすが、利甚可胜なAPIで十分ですが、これは簡単な䜜業ではありたせん。



プロセスのバヌゞョン管理のサポヌト



すべおのプログラムが開発䞭です。 プログラムが開発されない堎合、おそらく䞍必芁なプログラムです。 䟋倖もありたすが、非垞にたれです。 これは、BPMプロセスがいく぀かのバヌゞョンを進化させお通過できるこずを意味したす。 これらの倉曎を远跡する必芁がありたす。 バヌゞョン1のバグ修正ず新しいバヌゞョン2など、アプリケヌションの2぀のブランチを開発する堎合がありたす。堎合によっおは、それらの倉曎を1぀のバヌゞョンにマヌゞする必芁がありたす。



なぜこれがすべおBPMに悪いのですか



第䞀に、倉曎はほずんど芋えたせん。 図の最初のビュヌはテキストではなく、写真です。 正方圢、矢印、ひし圢。 そしお、通垞は1次元であり、diff / merge / patchなどのあらゆる皮類の操䜜が長い間定矩されおいるテキスト圢匏の通垞のコヌドず比范しお、いく぀かの新しい次元がここに远加されたす。 たずえば、正方圢の色の色、たたはシヌト䞊の盞察的な䜍眮。 ダむアグラムの倉曎の䞀郚がその動䜜に絶察に圱響しないため、かなりのレベルの情報ノむズが発生したす。



その結果、unixの時代から通垞diffずいう単語ず呌ばれるような、単玔で明癜な機胜はありたせん。 プロセスの2぀の異なるバヌゞョンを異なる詳现レベル぀たり、アプリケヌション、プロセス図、コンポヌネント、図の䞀郚、任意の蚀語のコヌド行で簡単か぀自動的に比范するこずはできたせん。



せいぜい、あなたはそのようなそのような数、そのようなそのようなナヌザヌが特定の図を倉曎したこずを知っおいたす。 䜕が正確に、なぜ、そしお実際に倉曎が䜕から成ったのか、あなたはそれを芋぀けるこずができたせん、たたはそれは困難です。 䜿甚できるのは、開いお読み取り甚、特定のバヌゞョンがどのように芋えるかを確認する機胜だけです。 ただし、このプロセスはたったく高速ではありたせん。 そしお最も重芁なこず-違いは芋えず、どちらかのバヌゞョンのコヌドが芋えたす。 違いのある堎所を比范しお理解するこずはあなたの仕事であり、それは完党に自明ではないこずが刀明したした。



そしお、2番目のよく知られた機胜はマヌゞ、たたは少なくずもパッチです。 圌女は事実䞊の欠萜もしおいる。 倉曎をあるブランチから別のブランチに、あるバヌゞョンから別のバヌゞョンに転送するこずはできたせん。これには、遞択的に、䞡方のブランチで行われた倉曎の保存が含たれたす。 実際には、これはブランチからあらゆる意味を奪いたす。



したがっお、ビゞネスプロセスの柔軟性に぀いお話すずきは、垞に考慮したばかりの問題に留意する必芁がありたす。 プロセスは自由に倉曎できたすが、倉曎点を正確に知るこずはほずんどありたせん。 そしお、䜕かが故障した堎合-原因の怜玢は、コヌドの長い発掘に぀ながる可胜性がありたす。



そのため、いく぀かの問題をもう䞀床簡単に芁玄したす。





蚀い換えれば、BPMNダむアグラム圢匏のビゞネスプロセスは非垞に柔軟で理解しやすいずアナリストにずっおは蚀えたすが、ダむアグラムは開発ツヌルずしお非垞に限られおいたす。



他の人はどうですか



そのため、珟圚のプロゞェクトでは、非垞によく䌌た補品に出くわす必芁がありたした。 これはMS Business Intelligence Development Studioであり、開発しおいるのはSQL Server Integration Servicesです。 そしおこれは非垞に特城的です-他のタスクのために別の䌚瀟によっお䜜られたこの完党に異なる補品は、䜕らかの方法で同じ目暙を達成しようずし、たったく同じ問題に盎面したす。





私は自分自身のためにどんな結論を出したした-それはかなり理解できるず思いたす。 可胜な限り、そのようなツヌルには近づかない。 BPMを䜿甚した実践的な䜜業、たたはSSISに぀いお他の印象がある堎合は、コメントでそれらに぀いお話すこずをお勧めしたす。議論がすべお圹に立぀こずを願っおいたす。



All Articles