この一連の記事では、ERPシステムを構築するためのプラットフォームであるUltima Businesswareについてお話します。
これは、プラットフォームの進化(つまり、環境とそれとの相互作用)について説明し、プラットフォームの主で最も興味深い機能をリストする最初の入門記事です。
今後の投稿では、デバイスの詳細とこれらの同じ機能の実装について話す予定です。 さらに、途中で、開発プロセスの組織と共有します。
進化
現在、このような見出しの後にウィキペディアへのリンクを置くのが流行していますが、私たちの不適合者はこれを行いません。 実際には、ここでプラットフォームが生まれ、開発された環境についてお話します。
環境については、2004年に4GBのメモリと4つのコアを備えたサーバーで開始されました。 そして群衆の周りには、本当に商品を売る必要がある150人のユーザーが集まっていました。 そして購入する。 そして、保管、配送、その他。 そして、私は言わなければならない、これらのユーザーは昼食に気を取られることなく、ボタンに激突した。 一般的に職場でS製。 要するに、1時間あたり数千のトランザクションがありました。 そして、ブロックほど怖くはありませんでした-これらのユーザーの群衆やサイト内の顧客でさえ商品を追いかけていたのです。
しかし、これに加えて、会社は急速に成長し、ビジネスプロセスとその結果としてアプリケーション自体の信じられないほど急速な変化を伴いました。
プラットフォームの最初のバージョンが登場したのはこのような環境でした-多くのユーザー、高いトランザクション負荷、リソースの競合、ロックの消滅を許可しないビジネスプロセス、絶え間ない変更、そして間違いはありません。 そして、唯一の方法は、生産性を向上させ、ブロック時間を短縮し、ユーザーインターフェイスを最適化し、開発を簡素化して変更に対応することです。
歴史的な真実のために、プラットフォームの最初のバージョンが存在し、多くの企業でまだ稼働中であり、2013年に行われたプラットフォームのリリースが以前のものと互換性がないという事実のために、引き続き使用される可能性が高いと言わなければなりません。 以前のリリースについては、既存のお客様と一緒に存続するため、ここでは説明しません。 統計のために、いくつかの数字を入力してください。
- 約4,000人のユーザーを雇用しています。
- 毎日約200,000人の顧客がサイトを訪れています。
プラットフォーム
3層アプリケーションであるアプリケーションサーバーは完全にゼロから開発され、通信にZyanプロジェクトを使用します。 プラットフォームの主な開発者はその貢献者の一人です。 アプリケーションの一般的な図を次の図に示します。
ご覧のとおり、Oracle DatabaseはDBMSとして使用されています。 当面、11gR2のサポートは保持しますが、ODAおよびExaDataの新しいバージョンのリリースにより、拒否して12cに移行する予定です。 負荷の軽いソリューションの場合、Oracle互換性のあるEnterpriseDBでシステムを実行できます。
他の自動化ソリューションでは特徴的ではないこのような厳格なバインディングは、パフォーマンスを最適化する必要があるためです。 Oracle Databaseの機能を使用して、データベース内にキューを実装し(プリントサーバーに関する記事でそれらについて少し説明します)、多くの内部プロセスを最適化することができました。
アプリケーションサーバーとクライアントアプリケーション-完全に管理されたアプリケーションはC#5.0で記述されています。 LINQとasync / awaitを使用します(後者を使用した経験を次の記事で共有するようにします)。 実際、すべてのビジネスロジックは、さまざまなビジネスオブジェクトのさまざまなイベントのハンドラーの形式で実装されます。 1Cに精通している場合は、それらを認識できます。これらは、ディレクトリ、ドキュメント、およびレジスタの特定の類似物であり、結果と呼ばれます。
実際には、多くのクライアントアプリケーションが存在する可能性がありますが、プラットフォームには開発および管理環境が構築されたものが含まれます。 これは、ビジネスオブジェクトの構造と関係を記述するためのGUIと、スクリプトのコードエディターです。 エディターのIntelliSenseに類似したC#のスクリプトが存在します。
アプリケーションサーバーはそれぞれ、ビジネスロジックの実行、リレーショナルデータのシステムオブジェクトへの変換、およびその逆、イベント管理などを委託されています。
説明のために、次の図を示します。
そして最後に、ある意味私たちの誇りである、すでに3回言及したプリントサーバーが、適切な印刷フォームをプリンターに送信する責任を負います。 プリンターへのアクセスを「仮想化」し、保証付き配信を整理し、プリンターへのアクセス待ちを削除します(通常、ブロッキング時間を短縮します)。 彼のデバイスについては別の記事で詳しく説明します。
私たちが伝えようとしていることについて、さらに詳しく:
- トランザクション管理。 それがどうだったか、どうなったか。 マルチスレッドのトランザクション管理の問題。
- 変更管理。 バージョン管理の方法。 なぜ必要なのか、何が許されるのか。
- REST / SOAPサポート。 サポートの編成方法。
- ビッグブラザーとデータ変更履歴。 Oracle Flashback Archiveをまだ使用できない理由。
結論の代わりに
私たちは私たちのシステムについて少し話をして、あなたに興味を持たせようとしました。 次の記事では、詳細をもう少し詳しく説明します。最初の記事でこれを行うことは、脳を過熱させる直接的な方法です。
さらに、私たちはブログでノウハウや企業秘密を構成しない、すべての興味深い新たな問題について話をしようとします。