Hivext:Webサービスプラットフォーム

Hivextテクノロジー

Habrの読者に、プラットフォーム構築アプリケーションの分野での開発に精通し続けています。 Hivextは、Webアプリケーション用のWebサービスプラットフォームであり、その目的は、Web、デスクトップ、およびモバイルアプリケーションの完全かつ便利な開発のためのサービスセットを提供することであることを思い出します。

この記事では、アーキテクチャのトピック、プラットフォームが表すもの、および開発者の計画に従ってどのように見えるべきかを明らかにします。これらの質問に答えるには、CodeCamp 2009のプラットフォームに関するレポートにすでに記載されているブロック図の形式で行いました。

また、この記事では、前回の記事の発行以降の主な変更点と改善点について検討し、話し合います。 プラットフォームに2つの「おいしい」サービスが追加されました。

現時点では、基本的なプラットフォーム機能のほとんどを構成する最も重要なサービスのセットを実装しています。 しかし、それらについては少し後で。 最初に、プラットフォームのアーキテクチャを検討します。

Web上のプラットフォームの概略図


共通スキーマ

Hivext内部ネットワーク

DBMSサーバー -アプリケーションデータベース、タイプのストレージ、オブジェクト、およびその他のデータ。
アプリケーションサーバー -コンピューティングリソース、アプリケーションのビジネスロジックのサポート、サービス、アプリケーションのファイルリソース。
Webサービスサーバー -名前空間(ユーザー、データ、セキュリティ、開発、ストレージ)で分離されたプラットフォームサービス。
プロジェクトのwww-server-ドキュメント、開発者からのフィードバック。

外部ネットワーク

開発者 -新しいアプリケーションを作成し、プラットフォームサービスを拡大します。
ネットワークユーザー -Webアプリケーションを使用するユーザー
外部wwwサーバー -アプリケーションのリソースとデータを外部サーバーに配置(複製)できます。
デスクトップアプリケーション -サービスを介してデータを交換したり、データベースにデータをリモートで保存したりできます(単一の書き込み/読み取りインターフェイスにより、交換/ストレージが簡素化されます)。
モバイルデバイス (ポータブルデバイス)-アプリケーションは、プラットフォームのパワーを使用して開発者が設定したタスクを解決します。これにより、より機能的なアプリケーションを最小限のコストで作成できます。

開発機能


プラットフォームでの作業を開始するには、必要かつ十分です
既製のアプリケーションは任意のホスティングに配置でき、ローカルで実行することも、デスクトップアプリケーションにすることもできます。 したがって、プラットフォームは、アプリケーションへのエントリポイントの場所に関する完全なアクションの自由を提供します。

ドキュメントサーバーには、Hivextプラットフォームに基づくアプリケーション開発の開始時に実行する必要がある手順の詳細な説明(Hello world doc.hivext.ru/index.php/We begin_development )があります。

キーの追加/変更


開発の次の段階で、プラットフォームに次の機能が追加されました。

現在、合計で次のサービスが実装されています。

サービスは、共同使用と個別使用の両方を考慮して設計されました。 たとえば、多くのセッションメソッドは、必須のユーザーIDから切り離すことができます(Picture Galleryアプリケーションの例(詳細については、以下の記事を参照)。Structuresサービスは、Identification and Authenticationサービスから完全に切断されます。

構造とアクセス制御の2つの新しいサービスについて説明します。

サービス構造

構造サービスを使用すると、データベースを柔軟に管理し、テーブル、タイプを示すフィールドを作成し、テーブルにエントリを作成し、データ間の関連付けを実行できます。 このサービスは、ORMテクノロジー(オブジェクトリレーショナルマッピング-データベースをオブジェクト指向プログラミング言語の概念と接続し、「仮想オブジェクトデータベース」を作成するプログラミングテクノロジー)に基づいています。 これにより、DBMSから可能な限り抽象化し、オブジェクトに基づいてアプリケーションのロジックにコストをかけることができます。

構造化サービスには、構造化クエリ用のプロセッサのような独自のSQLが含まれています。 すべてのSQLクエリは、悪意のあるインジェクションの可能性を排除する基準に分割されています。 さらに、別の興味深いクエリ言語であるJSONQLが実装されています。 基準によるクエリ条件は、JSON文字列として形成されます。 例:{名前:{like:['Bublik'、 'Marcipan']}}。

アクセス制御サービスは、構造サービスと密接に関連しており、タイプおよびオブジェクトへのアクセス権を設定できます。

サービスアクセス制御

このサービスは、2つの異なるアクセス制御システムに基づいています。役割に基づいた権限の区別と、リストに基づく任意システム(アクセス制御リスト-ACL)。 サービスはこれらのシステムを柔軟なツールに統合します。 権限を設定するためのロールベースのメソッドとACLメソッドの両方を使用できます。 役割ベースの境界は、グループ(ゲスト、ユーザー、管理者など)のアクセスポリシーの予備的な説明により適しています。 ACLに基づくアクセス制御は、新しく作成されたオブジェクトを特定のユーザーの小さなグループに関連付けるのに便利です。 ほとんどの場合、ロールを介してアクセスポリシーを記述するだけで十分です。 いずれにせよ、1つまたは別の権利を検索するとき、システムはプライベートから一般に移行します(つまり、オブジェクトとの特定のユーザー関係に設定されたアクセス権は、グループに設定された権利よりも高くなります)。
その結果、非常に柔軟なアクセス権システムが用意されています。

まとめると


上記の2つのサービスの追加により、プラットフォームでは次のことが可能になりました。

プラットフォームに基づいて、テストアプリケーションの例「Gallery of pictures」が作成されました。 利用可能なサービスを使用したこのようなアプリケーションの実装は、可能な限り単純で簡単です。

doc.hivext.ru/index.php/Javascript。Gallery-段階的なチュートリアル「ギャラリーの作成方法」:識別子の生成、型の作成、アクセス権の設定、最終コード。 驚くべきことに、ほとんどの作業はプログラミングなしでAPIコンソールを介して行われます。
code.hivext.ru/examples/js/gallery-画像ギャラリー自体。プラットフォームのサービスで実行されます。
まだギャラリーの新しいスクリーンショット。
ギャラリーのプレビュー

現状と開発方向


キエフで開催された最近のCodeCamp 2009カンファレンスで、Hivextに関するレポートが発表されました。 リスナーは、アプリケーションを構築するための提案されたアプローチに喜んで驚き、興味をそそられました。 多数の一般的および個人的な問題から判断すると、開発者はプラットフォームの概念が好きでした。
次の2週間で、プライベートベータ版のサービスを開始する予定です。これは後で発表されます。 あなたは個人的にシンプルさとHivextプラットフォームのコンセプトの力を高く評価できます。 将来的には、現在のサービスの作業を可能な限り安定させるとともに、より重要で必要なサービスを追加する予定です。 どれ? すぐにわかります。

プラットフォームのドキュメント
APIコンソール (プラットフォームサービスに登録して「チート」することもできます)
そして最後にforum.hivext.ruフォーラムが開いています -書いてください、私たちはコミュニケーションができてうれしいです、迅速な回答はすべての質問に従います
すべて最高。

Source: https://habr.com/ru/post/J56312/


All Articles