أنظمة توصية الأحداث
تصميم الأعمال
- لتصميم أنظمة توصية الأحداث القائمة على التخصيص للبحث عن الأحداث.
تعليمات عامة
- صمم خدمة ويب باستخدام
RESTful APIs
في Java للتعامل مع طلبات واستجابات HTTP - الواجهة الأمامية: صفحة ويب تفاعلية مزودة بتقنية
AJAX
ويتم تنفيذها باستخدام HTML
و CSS
و JavaScript
. يحقق موقع ويب توصية الحدث ثلاث وظائف رئيسية:- أحداث البحث حول المستخدمين
- الأحداث المفضلة التي تعجبهم وكذلك حذف الأحداث التي لم تعد تعجبهم بعد الآن
- احصل على توصية بالأحداث المحيطة بناءً على تاريخهم المفضل والمسافة إلى مكان إقامة الأحداث
- الواجهة الخلفية: استخدم
Java
لمعالجة الطلب المنطقي، وبعض الدعم كما يلي:- بنيت مع كل من قاعدة البيانات العلائقية وقاعدة بيانات NoSQL (
MySQL
و MongoDB
) لدعم تخزين البيانات من المستخدمين والعناصر التي تم البحث عنها في TicketMaster API - تصميم خوارزمية توصية قائمة على المحتوى لتوصية الحدث
- نشر خادم موقع الويب على
Amazon EC2
: نظام توصية الأحداث - قم بتحليل حركة مرور موقع الويب عبر الإنترنت وفي وضع عدم الاتصال باستخدام ELK (
ElasticSearch
و Logstash
و Kibana
) و MapReduce
في MongoDB
تصميم البنية التحتية
- بنية 3 طبقات
- مستوى العرض: HTML، CSS، جافا سكريبت
- طبقة البيانات: MySQL، MongoDB
- الطبقة المنطقية: جافا
- بيئة التطوير المحلية والبعيدة
بيئة التنمية المحلية
بيئة التطوير عن بعد
تصميم واجهة برمجة التطبيقات
- الطبقة المنطقية (Java Servlet إلى RPC)
- يبحث
- searchItems
- واجهة برمجة تطبيقات Ticketmaster
- تحليل البيانات وتنظيفها، saveItems
- استجابة العودة
- تاريخ
- الحصول على العناصر المفضلة وتعيينها وحذفها
- قاعدة بيانات الاستعلام
- استجابة العودة
- توصية
- أوصي العناصر
- الحصول على التاريخ المفضل
- البحث عن أحداث مماثلة، والفرز
- استجابة العودة
- تسجيل الدخول
- GET: تحقق من تسجيل الدخول للجلسة
- POST: تحقق من اسم المستخدم وكلمة المرور، وقم بتعيين وقت الجلسة ووضع علامة على تسجيل الدخول
- قاعدة بيانات الاستعلام للتحقق
- استجابة العودة
- تسجيل الخروج
- GET: الجلسة غير صالحة إذا كانت موجودة وأعد التوجيه إلى
index.html
- POST: نفس GET
- استجابة العودة
- يسجل
- قم بتعيين مستخدم جديد في جدول/مجموعة المستخدمين في قاعدة البيانات
- استجابة العودة
تصميم واجهات برمجة التطبيقات في الطبقة المنطقية
- المستند الرسمي لـ TicketMasterAPI - Discovery API
- توصية تصميم الخوارزميات
- التوصية المستندة إلى المحتوى : ابحث عن الفئات من ملف تعريف العنصر من مفضلة المستخدم، والتوصية بالعناصر المشابهة بنفس الفئات.
- تقديم العناصر الموصى بها مع الترتيب على أساس المسافة (تحديد الموقع الجغرافي للمستخدمين)
عملية طلب التوصية
تصميم قاعدة البيانات
- ماي إس كيو إل
- المستخدمين - تخزين معلومات المستخدم.
- العناصر - تخزين معلومات العنصر.
- الفئة - العلاقة بين فئة السلعة والمتجر
- التاريخ - تخزين التاريخ المفضل للمستخدم
تصميم قاعدة بيانات MySQL
- MongoDB
- المستخدمين - تخزين معلومات المستخدم والتاريخ المفضل. = (المستخدمون + السجل)
- العناصر - تخزين معلومات العنصر والعلاقة بين فئة العنصر. = (العناصر + الفئة)
- السجلات - تخزين معلومات السجل
تفاصيل التنفيذ
- نمط التصميم
- نمط المنشئ :
Item.java
- عند تحويل الأحداث من TicketMasterAPI إلى عناصر Java، استخدم نمط الإنشاء لإضافة الحقول بحرية.
- نمط المصنع :
ExternalAPIFactory.java
، DBConnectionFactory.java
-
ExternalAPIFactory.java
: دعم وظائف متعددة مثل التوصية بالحدث والمطاعم والأخبار والوظائف... ما عليك سوى الارتباط بواجهة برمجة تطبيقات عامة مختلفة مثل TicketMasterAPI. تحسين القدرة على التمديد. -
DBConnectionFactory.java
: دعم قواعد بيانات متعددة مثل MySQL وMongoDB. تحسين القدرة على التمديد.
- نمط المفردة :
MySQLConnection.java
، MongoDBConnection.java
- قم فقط بإنشاء عدد محدد من مثيلات قاعدة البيانات، ويمكن للفئة التحكم في المثيل نفسه، ومنح الوصول الشامل إلى الطبقة الخارجية
تحليل سلوك المستخدم
- عبر الإنترنت ( ElasticSearch ، Logstash ، Kibana )
- استخدم Logstash لجلب السجل (في نموذج يشبه NoSQL)، ثم قم بتخزين البيانات في ElasticSearch، وأخيرًا استخدم Kibana لتحليل البيانات في ElasticSearch، والحصول على بعض الجداول والرسوم البيانية مثل استخدام واجهات برمجة التطبيقات، وحالة الطلب، وتحديد الموقع الجغرافي للزوار، وما إلى ذلك
بيئة التطوير عن بعد
- غير متصل ( MapReduce في MongoDB )
- انسخ وألصق بعض السجلات من خادم Tomcat
- تنقية بيانات السجل وتخزينها في MongoDB
- قم
mapreduce()
في MongoDB - احصل على قائمة بعدد مجموعة الوقت بترتيب تنازلي، ثم ابحث عن وقت الذروة لحركة المرور على موقع الويب