تطوير تطبيقات متعددة المستأجرين على منصة SAP Cloud Platform في Neo ، الجزء الأول

توفر منصة SAP Cloud الخاصة بنا القدرة على تطوير وتشغيل تطبيقات متعددة المستأجرين. تتيح لك التطبيقات متعددة المستأجرين خدمة العديد من العملاء بشكل منفصل من مؤسسات مختلفة في إطار حل واحد يوفره الموفر. كل عميل يسمى مستأجر. يدخل إلى التطبيق من خلال عنوان URL المخصص لمستأجر معين - وبهذه الطريقة يتم عزل المستخدمين عن بعضهم البعض.


في عدة مقالات سنتناول الموضوعات التالية:

الجزء 1. متعدد المستأجرين في نظرة عامة على السيناريو SAP Cloud Platform
الجزء 2. تحميل حل MTAR إلى النظام الأساسي ، وربط قاعدة البيانات وإنشاء اشتراكات للمستأجرين ، وتكوين الحساب الفرعي للموفر
الجزء 3. خدمة المثابرة - تهيئة البيانات وعزلها
الجزء 4. إدارة مصادقة الهوية - تكوين مستأجر الخدمة
الجزء 5. موصل SAP Cloud - إعداد وتكوين خدمة للاتصال بنظام محلي
الجزء 6. تكوين خدمة الاتصال واختبار تطبيق متعدد المستأجرين
الجزء 7. Fiori Launchpad - باستخدام خدمة البوابة ، تكوين البلاط لتطبيق متعدد المستأجرين

ملحوظة:

تستخدم هذه المقالة حساب SAP Cloud Platform العمومي (المنتج). لتشغيل البرنامج النصي ، يجب توصيل الخدمات التالية بشكل إضافي في الحساب:

  1. بالنسبة للحساب الفرعي لموفر التطبيق - SAP HANA ، SAP Cloud Platform Portal - يجب تخصيص حصة واحدة على الأقل لبدء تطبيق Java (حصة Java) ؛
  2. بالنسبة للحساب الفرعي للعميل: SAP Cloud Platform Portal ، SAP Cloud Platform Identity Authentication.

الجزء 1. SCP متعدد الايجارات ومراجعة الحل

SAP Cloud Platform عبارة عن منصة لتطوير وإطلاق التطبيقات السحابية ، بما في ذلك التطبيقات مع العديد من المستأجرين ، لذا فإن خدماتها تدعم الإيجار المتعدد.

هل تعتقد أن العملاء سيكونون سعداء إذا كانت البيانات التي يخزنونها في تطبيق SaaS متاحة للعملاء الآخرين؟ هذا انتهاك واضح لعزل البيانات.

يتم حل هذه المشكلة من خلال تزويد كل عميل بمعرف مستأجر فريد. نظرًا لنشر التطبيق مباشرة من الموفر ، يجب أن يكون العميل مشتركًا في هذا التطبيق للوصول إليه. هذا يعني أن العميل لا يحتاج إلى نسخ التطبيق إلى حسابه ، فقط الاشتراك فيه ، وبعد ذلك يتلقى العميل عنوان URL خاص لمستأجر معين. وبالتالي ، عند تشغيل التطبيق من خلال عنوان URL المخصص هذا ، يتم تحديد المستخدم من خلال معرف مستأجر فريد.

فوائد التطبيقات متعددة المستأجرين:

  • انخفاض التكلفة الإجمالية للملكية (TCO): من خلال مشاركة موارد الحوسبة وتكاليف التشغيل بين العملاء ، يتم تقليل التكلفة الإجمالية للملكية لمثل هذا التطبيق. تزداد وفورات التكلفة مع زيادة عدد العملاء الذين يخدمهم تطبيق متعدد المستأجرين ؛
  • الكفاءة التشغيلية: تنطبق تحديثات التطبيق وإصلاح الأخطاء على جميع المستأجرين من خلال تحديث مثيل التطبيق من المورد ؛
  • قابلية التوسع: خدمة عملاء سريعة. للوصول إلى التطبيق ، يحتاج العميل الجديد فقط إلى إنشاء اشتراك فيه ؛
  • قابلية التهيئة: تسمح للعملاء بتكوين احتياطيهم الخاص من المستخدمين الذين يمكنهم استخدام التطبيق ، وخدمات الخلفية الخاصة بهم ، وما إلى ذلك ، كما هو مطلوب من قبل التطبيق.

ضع في اعتبارك الفرق بين الحسابات الفرعية للعميل والموفر ضمن حساب SCP عالمي:



كما هو موضح في الرسم التخطيطي ، يتم نشر حسابين فرعيين داخل حساب SCP العالمي - الحساب الفرعي للموفر والحساب الفرعي للعميل.

يحتوي الحساب الفرعي للموفر على منطق الأعمال الخاص بالتطبيق ، وواجهة البرنامج ، بالإضافة إلى قاعدة بيانات تخزن بيانات العملاء المعزولة عن بعضها البعض. تعمل التطبيقات بالفعل على هذا الحساب.

كما سبق ذكره ، يصل العميل إلى التطبيق بالاشتراك فيه. يرجى ملاحظة أنه لا يتم نسخ التطبيقات أو تشغيلها داخل حساب المستخدم. داخل الحساب الفرعي للعميل ، من الممكن إضافة تكوينات تنطبق فقط على هذا المستهلك. على سبيل المثال ، يمكنك تكوين موفر الهوية كمخزن للمستخدم لتطبيقات النظام الأساسي السحابي. أو تكوين مسارات الوجهة التي يمكن أن تشير إلى الخدمات الداخلية التي تعمل في المشهد العام للعميل (على سبيل المثال ، يمكنك الوصول إلى البيانات على النظام المحلي).

الآن دعونا نتحدث عن الإيجار المتعدد في خدمات الاستهلاك والإنتاج المستدامين.

أ) خدمة المثابرة

هناك ثلاث طرق لتحقيق الإيجار المتعدد في هذه الخدمة:



1. عمود فاصل. تستخدم هذه الطريقة عمودًا معينًا في الجدول لضمان عزل البيانات. في هذه الحالة ، يمكن للمستخدمين استخدام نفس المخطط. ولكن يتم تمييز البيانات باستخدام معرف مستأجر مخصص لكل عميل. لضمان مشاركة البيانات في التطبيق ، يجب أن تتضمن كل عبارة SQL معرف المستأجر.

2. جدول (جداول) في تصميم واحد. تسمح هذه الطريقة لعملاء التطبيق بعزل بياناتهم في جدول واحد أو أكثر من المستأجرين المحددين. يتم تحقيق ذلك عن طريق إنشاء جدول أو مخطط في قاعدة البيانات لكل عميل. يحدد تمييز جدول العميل كيفية التمييز بين هذه الجداول من جداول العملاء الآخرين. يمكن أن تكون الجداول في نفس النمط وتستخدم بادئة أو لاحقة لتمييزها ؛ أو يمكن أن تكون في مخطط منفصل باستخدام تمييز عميل الجدول في المخطط.

3. فصل المخططات. يتم تحقيق عزل بيانات العميل في هذه الحالة عن طريق تخزين الجداول في مخططات مختلفة.

ب) توثيق الهوية



مصادقة الهوية هي حل قائم على السحابة لإدارة دورة حياة تطبيقات SCP ، وإذا لزم الأمر ، التطبيقات الداخلية. يسمح لك بتكوين المصادقة والدخول الموحّد للمستخدمين وما إلى ذلك. عندما يتم توصيل الخدمة ، يتم تزويد مسؤول الحساب بمستأجر ، يتم تكوين التطبيق بداخله وإدارة تفويض المستخدم. توفر هذه الخدمة موفر هوية لـ SCP.

تم تكوين الحساب الفرعي للعميل لمزود معين ، يتم من خلاله تحديد المستخدمين ، وتهيئة الأدوار ، وتهيئة الوصول إلى تطبيق الموفر الذي اشترك فيه العميل. يتم وصف الأدوار في تطبيق الموفر. وبالتالي ، يتم تحقيق عزل المستخدمين.

ج) الاتصال



يمكن للعميل تكوين الوصول إلى البيانات على النظام المحلي. باستخدام أداة مثل SAP Cloud Connector ، يمكنك الاتصال بأمان بتطبيق محلي أو نظام يوفر بيانات معينة. داخل حسابه الفرعي ، يقوم العميل بتكوين مسار الوجهة إلى النظام المحلي الموصوف في Cloud Connector. يشار إلى اسم مسار الوجهة في تطبيق الموفر - وبالتالي ، عندما يصل العميل إلى التطبيق ، يتم نقل البيانات من النظام المحلي للعميل إلى التطبيق وتصورها.

ننتقل إلى مراجعة السيناريو ، ووصف تنفيذ ذلك سيحدث في إطار هذه المقالة.

لدى SAP شركة شريكة موثوقة متخصصة في تقديم الحلول لصناعة النفط والغاز. سوف نسميها ITeLO Consulting. تستخدم هذه الشركة SAP Cloud Platform لإنشاء تطبيقات السحابة وإطلاقها. تفضل ITeLO Consulting تقديم تطبيقاتها كخدمة SaaS. في هذا النموذج ، يتم توفير البرنامج كخدمة وهو متاح للعملاء عبر الإنترنت.

قامت الشركة بتطوير لوحة مراقبة التلوث التي تساعد شركات النفط والغاز على مقارنة مستويات تلوث الهواء في المصنع وفي المدينة. أثار هذا القرار اهتمام بعض شركات النفط والغاز الراغبة في اتخاذ تدابير لمنع التلوث.

شركتا ABC PetroCorp و XYZ EnergyCorp هما شركتان للنفط والغاز تشتري هذا الحل من ITeLO.

روبرت ITE ، مهندس هذا المشروع ، يعمل في ITeLO Consulting. اشترت الشركة حزمة SAP Cloud Platform مع الخدمات اللازمة لإنشاء هذا التطبيق. سيناريو روبرت هو تطوير تطبيق SaaS متعدد المستأجرين وإتاحته لعملائه - ABC PetroCorp و XYZ EnergyCorp ". إميلي موظفة ABC PetroCorp IT. تم تكليفها بالعمل في هذا المشروع مع روبرت.

يتم تقديم هندسة الحل أدناه:



سيكون الحساب الفرعي للموفر في هذه الحالة هو ITeLO Consulting ، والحسابات الفرعية للعملاء المشتركين في التطبيق ستكون ABC PetroCorp و XYZ EnergyCorp. ستكون الإعدادات داخل الحسابات الفرعية للعميل متشابهة ، لذلك سننظر فقط في تكوين عميل ABC PetroCorp.

وصف الحساب:

1) ITeLO Consulting - حساب الموفر الذي تعمل فيه قاعدة البيانات ومنطق الأعمال وتطبيقات واجهة المستخدم.

قاعدة البيانات:

يتم تخزين معلومات تلوث الهواء من كل مصنع في قاعدة بيانات SAP HANA. يتم تخزين البيانات من عملاء مختلفين بشكل منفصل باستخدام وظيفة عزل المستأجر التي توفرها JPA.

منطق الأعمال:

يتم تعريف منطق الأعمال في تطبيق Java قيد التشغيل في الحساب الفرعي للموفر. يتم استخدام نسخة تطبيق Java من قبل عملاء مختلفين. يشترك كل مستخدم في تطبيق Java هذا ويتلقى عنوان URL فريدًا للوصول إلى التطبيق. نظرًا لأنه يتم الوصول إلى التطبيق باستخدام عنوان URL هذا ، يسترد SCP معرف المستأجر المستخدم في منطق التطبيق.

واجهة المستخدم:

يتم تعريف منطق واجهة المستخدم في تطبيق HTML5 الذي يتم تشغيله في الحساب الفرعي للموفر. كما هو الحال مع تطبيق Java ، يتم تشغيل مثيل لتطبيق HTML5 لعملاء مختلفين. يتم تنفيذ وصول العميل إلى التطبيق باستخدام عنوان URL فريد للوصول إلى التطبيق.

2) ABC PetroCorp - حساب فرعي للعميل يتم فيه إنشاء الاشتراكات ، ويتم إنشاء تكوينات محددة لموفر الهوية (IdP) وتوفير الوصول إلى الخدمات المحلية.

لا يتم نشر تطبيقات Java و HTML5 أو نسخها إلى هذا الحساب.

إدارة الهوية والوصول:

يجب أن يقتصر الوصول إلى التطبيق على موظفي ABC PetroCorp. لدى ABC PetroCorp موفر مصادقة هوية خاص بها (مصادقة هوية SAP) ، والذي يحتوي على معلومات حول موظفي الشركة (الاسم ، البريد الإلكتروني ، المنظمة ، الدور ، إلخ). تم تكوينه خصيصًا للحساب الفرعي ABC PetroCorp ، بحيث يمكن للموظفين فقط الوصول إلى التطبيقات التي اشتركوا فيها.

خدمات الاتصال:

أطلقت ABC PetroCorp خدمات محلية توفر معلومات حول مصانعها - عدد العاملين في المصنع ، موقع المصنع ، إلخ. يجب استخراج كل هذه المعلومات من المناظر الطبيعية وتقديمها إلى التطبيق باستخدام SAP Cloud Connector.

الجزء 2. تحميل حل MTAR إلى النظام الأساسي ، وربط قاعدة البيانات وإنشاء اشتراكات للمستأجرين ، وتكوين الحساب الفرعي للموفر

يجب تشغيل تطبيق متعدد المستأجرين في الحساب الفرعي للموفر. روبرت من ITeLO Consulting هو مسؤول الحساب ويحتاج إلى إكمال الخطوات التالية لتثبيت التطبيق:

  1. إنشاء أرشيف تطبيق يحتوي على جميع القطع الأثرية الخاصة به ؛
  2. قم بتنزيل أرشيف التطبيق على حساب ITeLO Consulting الخاص بك ؛
  3. قم بإشتراك عميل ABC PetroCorp في التطبيق الجاري تشغيله في الحساب الفرعي الخاص بالموفر ؛
  4. تحديد المسار لخدمة مفتوحة تعمل على الإنترنت.

إعدادات مسبقة:

  1. لديك تثبيت Java 8 ؛
  2. تثبيت Eclipse Neon مع ملحقات لـ SAP CP ؛
  3. كسوف لديه البرنامج المساعد EGit مثبتة .
  4. قم بتنزيل وتفريغ أحدث إصدار من SAP CP Java Web Tomcat 8 SDK ؛
  5. تنزيل وتثبيت MTA Archive Builder ؛
  6. قاعدة بيانات SAP HANA مرتبطة بحساب SCP (للحساب الفرعي لمزود الخدمة) ؛
  7. في الحساب الفرعي لموفر ITeLO للاستشارات ، تم تخصيص حصة لإطلاق تطبيقات Java (على الأقل وحدة حوسبة واحدة غير مستخدمة ، والمزيد حول تخصيص حصة هنا ).

ملاحظة: لا يمكن إنشاء حسابات فرعية متعددة داخل حساب SCP عالمي للحساب التجريبي (التجريبي).

لتثبيت تطبيق متعدد الأعراق ، ستستخدم هذه المقالة ميزة SCP مثل "الحلول" (حلول التنزيل). بدلاً من ذلك ، يمكنك تحميل وحدات التطبيق بشكل فردي في النظام الأساسي.

يوجد الكود المصدري لتطبيق مراقبة التلوث على GitHub .

أولاً ، نقوم باستنساخ المشروع وتحميله إلى مساحة عمل Eclipse. بعد التثبيت الناجح ، سيظهر المشروع في مساحة العمل ، وسيبدو هيكله كما يلي:



يتكون التطبيق من عدة وحدات تم تطويرها باستخدام تقنيات مختلفة. يجب تثبيت هذه الوحدات في بيئات وقت تشغيل مختلفة (على سبيل المثال ، Java ، HTML5). بدلاً من إنشاء وتحميل الوحدات بشكل منفصل ، يدعم SCP إنشاء تطبيق واحد يحتوي على وحدات مختلفة في أرشيف واحد.

كما هو موضح في بنية التطبيق ، يتم تعريف منطق الأعمال في تطبيق Java ، ويتم تعريف منطق واجهة المستخدم في تطبيق HTML5. والآن ، في شخص روبرت ، سنقوم بإنشاء أرشيف لتطبيق متعدد الوحدات (أو متعدد الأغراض) (MTA) من أجل حزم التطبيق بتنسيق مناسب للتنزيل على النظام الأساسي.

لإنشاء أرشيف يحتوي على عدة وحدات تطبيق ، تحتاج إلى تنزيل "mta.jar" وتكوين "أداة إنشاء أرشيف MTA" (تم تحديد رابط وصف التثبيت "أداة إنشاء أرشيف MTA" في الإعداد المسبق أعلاه).

تم وصف وحدات التطبيق متعددة الأغراض في ملف واصف MTA (mta.yaml) ، يقع هذا الملف في المجلد الجذر للمشروع.



يحتوي ملف mta.yaml على معلومات حول وحدات Java و HTML5 التي سيتم إنشاؤها أثناء عملية إنشاء التطبيق. افتح الملف واربط قاعدة بيانات SAP HANA بتطبيق Java من خلال تحديد معرف قاعدة البيانات في حقل المعرف.



معرف هنا هو معرف قاعدة البيانات قيد التشغيل في الحساب الفرعي للموفر. يمكن العثور عليه في لوحة تحكم SCP لحساب ITeLO Consulting ضمن Persistent -> Databases Systems.



في حالتنا ، سيتم تحديد معرف قاعدة البيانات في "mta.yaml" على النحو التالي:



نحفظ التغييرات ، وفتح سطر الأوامر ، انتقل إلى المجلد الذي يحتوي على مشروع مراقبة التلوث وأدخل الأمر التالي:

java -jar [  mta.jar] –build-target=NEO build 



سيبدأ هذا الأمر عملية إنشاء التطبيق في أرشيف MTA.
بعد التجميع الناجح ، سيتم إنشاء ملف أرشيف MTA (Pollmonitoring.mtar) في مجلد المشروع.



والخطوة التالية هي تثبيت أرشيف MTA (Pollmonitoring.mtar) في الحساب الفرعي لـ ITeLO Consulting. يمكن القيام بذلك باستخدام ميزة "الحلول" المتوفرة في لوحة تحكم SCP. للقيام بذلك ، انتقل إلى علامة التبويب "الحلول" وانقر على زر "نشر".



في مربع الحوار الذي يظهر ، انتقل إلى موقع ملف Pollmontoning.mtar عن طريق النقر فوق الزر "استعراض" في حقل أرشيف MTA وحدده ، ثم انقر فوق "نشر".



بعد تنزيل أرشيف MTA بنجاح في لوحة التحكم لحساب ITeLO Consulting ، سترى ما يلي:

• في علامة التبويب "تطبيقات Java" ، سيظهر تطبيق Java قيد التشغيل "مراقبة التلوث" ؛



• سيتم ربط قاعدة البيانات تلقائيًا بتطبيق Java. للتحقق ، انتقل إلى تطبيق Java وحدد علامة التبويب "التكوين" -> "ربط روابط البيانات" ؛



• في علامة التبويب "HTML5 Applications" ، سيظهر تطبيق HTML5 قيد التشغيل "Pollonmonitoringui".



يحتاج روبرت الآن إلى إنشاء حساب فرعي يسمى ABC Petro Corp للعميل.

انتقل إلى حساب SCP العالمي الخاص بك وحدد "حساب فرعي جديد" في علامة التبويب "حسابات فرعية".



في مربع الحوار الذي يظهر ، أدخل اسم الحساب الفرعي ، وحدد البيئة (Neo) والمنطقة التي يوجد بها الحساب العام ، وبالتالي الحساب الفرعي للموفر. ثم انقر فوق "إنشاء".



الآن سيظهر حساب فرعي آخر في الحساب العام - الحساب الفرعي للعميل.
الخطوة التالية هي إنشاء اشتراك داخل حساب عميل ABC Petro Corp للتطبيقات التي تعمل في حساب الموفر. للقيام بذلك ، استخدم عميل وحدة التحكم لبيئة Neo. يتم وصف كيفية تثبيته هنا.

في عميل وحدة التحكم لـ Neo ، أدخل الأمر التالي:

 neo subscribe –account <<  ABC_PetroCorp>> -application <<  ITeLO_consulting>>:pollutionmonitoring -user << >> -host << >> 

يمكن العثور على معرف الحساب الفرعي في علامة التبويب "نظرة عامة" -> "معلومات الحساب الفرعي".



يشار إلى معرف المستخدم في علامة التبويب "معلومات المستخدم" الموجودة في القائمة المنسدلة في الزاوية العلوية اليمنى من لوحة تحكم SCP.



يتم وصف المضيفين لجميع مناطق بيئة Neo في الوثائق .

للاشتراك في تطبيق HTML5 ، استخدم لوحة تحكم SCP. سنذهب إلى الحساب الفرعي لعميل ABC Petro Corp ونحدد "الاشتراكات" -> علامة التبويب "اشتراك جديد" (لـ HTML5).



في مربع الحوار ، حدد الحساب الفرعي للموفر وتطبيق HTML5 الموجود بداخله ، ثم انقر فوق "حفظ".



الآن العميل مشترك في تطبيقات Java و HTML5 المقدمة من قبل الموفر ، ويتم عرض هذا في لوحة التحكم لحساب ABC Petro Corp.



يسمح لك تطبيق مراقبة التلوث بعرض بيانات عن تلوث النبات والمدينة.

توجد بيانات تلوث النبات في النظام المحلي للعميل. يمكن الحصول على معلومات حول مستوى التلوث في المدينة من خلال خدمة المصدر المفتوح ، المتاحة عبر الإنترنت. يمكن أن تكون هذه الخدمة OpenAQ. يمكن لتطبيق مراقبة التلوث الوصول إلى هذه الخدمة من خلال وصف مسار الوجهة في لوحة تحكم SCP.

سيتم استخدام هذه الخدمة من قبل ABC Petro Corp والعملاء المحتملين الآخرين ، لذلك ستتم إضافة عنوان الوجهة إلى حساب مزود ITeLo Consulting.

بالنسبة لتطبيق Java ، يتم وصف مسار الوجهة المسمى openaq - api - dest في ملف web.xml.



يشار إلى مسار الوجهة هذا في الفئة "PollutionDataService" (ملف "PollutionDataService.java").



بعد اكتمال البحث عن مسار الوجهة ، يتم تشغيل جميع المكالمات من رمز Java إلى خدمة OpenAQ من خلاله.

يقع ملف مسار الوجهة "open-api-dest" داخل مجلد "Destinations-Provider" الموجود داخل مشروع "مراقبة التلوث".



يحتوي هذا الملف على عنوان URL لخدمة OpenAQ.



يجب تحميل مسار الوجهة هذا في الحساب الفرعي لموفر ITeLo Consulting. للقيام بذلك ، نذهب إلى الحساب الفرعي ITeLo Consulting ، ونذهب إلى علامة التبويب "تطبيقات Java" ونختار تطبيق "مراقبة التلوث".

بعد ذلك ، حدد علامة التبويب "التكوين" → "وجهات" وانقر على زر "استيراد الوجهة".



في مربع الحوار الذي يظهر ، حدد المسار إلى الملف "open-api-dest". بعد ذلك ، سيتم تكوين مسار الوجهة في لوحة تحكم SCP. انقر فوق الزر "حفظ". سيبدو مسار الوجهة على هذا النحو في نظام أساسي سحابي:



هذه الخدمة متاحة من خلال https ، لذلك تحتاج إلى إنشاء اتصال آمن. يمكن القيام بذلك باستخدام خدمة "تخزين المفاتيح" لـ SCP. يحتوي مشروع مراقبة التلوث ، الذي تم تنزيله من GitHub ، على ملفات بمفاتيح: jssecacerts.jks و cacerts.jks. يجب تحميلها في الحساب الفرعي لعميل ABC Petro Corp.

للقيام بذلك ، نستخدم مرة أخرى عميل وحدة التحكم لبيئة Neo.

في عميل وحدة التحكم لـ Neo ، أدخل الأوامر التالية:

 neo upload-keystore –account <<  ABC_PetroCorp>> –user << >> –location <<   jssecacerts.jks>> –host << >> 

 neo upload-keystore –account <<   ABC_PetroCorp >> –user <<   >> –location <<    cacerts.jks>> –host <<   >> 

توجد هذه الملفات ("jssecacerts.jks" و "cacerts.jks") في مجلد "KeyStore Services" الخاص بمشروع "التلوث البيئي".

الجزء 3. خدمة المثابرة - تهيئة البيانات وعزلها

يهتم العديد من العملاء بتطبيق ITeLO Consulting. يجب أن يضمن هذا التطبيق متعدد المستأجرين عزل بيانات ABC PetroCorp تمامًا عن بيانات العملاء الآخرين في قاعدة البيانات (على سبيل المثال ، بيانات XYZ EnergyCorp). هذا مهم جداً لضمان أمان بيانات العميل والتطبيق.

يريد روبرت من شركة ITeLO Consulting أن يقوم تطبيقه بعزل تخزين البيانات لعملائه ، وهو مهتم بكيفية تحقيق ذلك.

لتحقيق عزل البيانات ، نحتاج إلى تحديد درجة العزلة ، أي العزل على مستوى الجدول (تخزين البيانات في جداول مختلفة في مخطط واحد) ، على مستوى المخطط (تخزين بيانات العميل في مخططات مختلفة) ، على مستوى المستأجر (تخزين بيانات العميل في مستأجري قاعدة بيانات مختلفة). تدعم خدمة SAP Cloud Platform Persistent Service ، بالاقتران مع JPA (Java Persidence API) و EclipseLink ، تنفيذ طرق عزل البيانات هذه.

هناك ثلاث طرق لتحقيق الإيجار المتعدد على مستوى قاعدة البيانات. درسنا هذه الأساليب في الجزء 1.

في الجزء الثاني ، سنركز على طريقة تسمى "فاصل الأعمدة". سيكون هو الذي سيستخدمه روبرت لعزل البيانات على مستوى قاعدة البيانات في قراره.

باستخدام عمود فاصل:

في هذا الأسلوب ، يتم توزيع مخطط قاعدة بيانات واحد بين جميع مستخدمي التطبيق. يمكن استخدام معرف المستأجر كقيمة في عمود المحدد. يتم تقديم مقتطف الشفرة أدناه.



كخطوة تمهيدية ، نقوم أيضًا بتهيئة البيانات التي سيتم استخدامها في تطبيق مراقبة التلوث.

الخطوة 1: تحقق من وصف العمود الفاصل في رمز التطبيق

في هذه المرحلة ، سنرى كيف يتم استخدام نموذج بيانات التطبيق لتوفير الإيجار المتعدد على مستوى قاعدة البيانات.

للقيام بذلك ، دعنا نلقي نظرة على المشروع الذي تم تنزيله من GitHub ، والذي تم تحميله بالفعل في مساحة عمل Eclipse.

بعد ذلك سنلقي نظرة على بعض ملفات المشروع. يمكنك القيام بذلك إما من خلال بيئة Eclipse ، أو تنزيل المشروع ، وفك ضغطه إلى مكان مناسب لك وفتح الملفات بشكل منفصل. سنستخدم الخيار الثاني.

المشروع غير المضغوط كما يلي:



سنذهب إلى ملف "BaseObject.java" للمشروع الموجود على طول المسار "/pollutionmonitoring/java/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/model/BaseObject.java" ونفتحه باستخدام المحرر (مثل Notepad ++).



في هذا الملف نتحقق من وصف طريقة "العمود الفاصل". إليك ما يبدو عليه:



ننتقل الآن إلى ملف "web.xml" الموجود على المسار "/pollutionmonitoring/java/src/main/webapp/WEB-INF/web.xml".



تأكد من إرفاق مصدر البيانات (قاعدة البيانات) بالتطبيق كمصدر قياسي (DB الافتراضي). في ملف web.xml ، يبدو كالتالي:



يوضح هذا المثال كيفية تنفيذ نظام الإيجار المتعدد في تطبيق مراقبة التلوث.

الخطوة 2: تحقق من تكوين servlet تهيئة البيانات

يعلم روبرت أن عملاء تطبيقه سيحتاجون إلى تنزيل البيانات لاستخدامها. لذلك قام بإنشاء خادم صغير لتهيئة البيانات التي يمكن للعملاء (مثل Emily) استخدامها لإدخال البيانات في تطبيق مراقبة التلوث.

عند هذه النقطة سنرى كيف يتم تكوين نشر servlet تهيئة البيانات.

تم وصف servlet في ملف "DataInitializationServlet.java" ، الموجود في المشروع على طول المسار "/pollutionmonitoring/java/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/api/DataInitializationServlet.java" .



يشار إلى طريقة نشرها في الملف "web.xml" ( "/ التلوث / مراقبة / جافا / src / main
/webapp/WEB-INF/web.xml " ).



افتح هذا الملف وتأكد من نشر servlet لتحميل البيانات في تطبيق مراقبة التلوث باستخدام عنوان URL "/ تهيئة". يبدو هذا:



الخطوة 3. استخدام servlet لتهيئة بيانات التلوث لـ ABC PetroCorp (العميل)

يمكن لإميلي من ABC PetroCorp الوصول إلى تطبيق مراقبة التلوث باستخدام الاشتراك الذي تم إنشاؤه.

يستخدم تطبيق مراقبة التلوث نوعين من البيانات:

بيانات التلوث: اقرأ من مصادر مثل واجهات برمجة التطبيقات الخارجية ، وأجهزة استشعار التلوث ، وما إلى ذلك.

عادةً ما تتم قراءة بيانات المصنع من أنظمة العملاء المحليين - مثل أنظمة تخطيط موارد المؤسسات.

1) في هذه المرحلة ، سنقوم بإنشاء بيانات التلوث باستخدام servlet تهيئة البيانات الموجودة في المشروع. سيتم تخزين هذه البيانات في قاعدة بيانات HANA في SAP CP ، المرتبط بالتطبيق في حساب الموفر.

2) تتم قراءة بيانات المصنع بواسطة التطبيق من النظام المحلي ، أي أنها لا يتم تخزينها في قاعدة بيانات HANA في SAP CP. سيتم مناقشة ذلك في الجزء الخامس من المقالة "SAP Cloud Connector - تكوين وتكوين الخدمة للاتصال بالنظام المحلي".

في هذه المرحلة ، نقوم بتحميل بيانات التلوث في تطبيق "بالاشتراك". لهذا ، سيتم استخدام servlet "تهيئة البيانات" الموجودة في المشروع ويمكن استخدامها لإدخال البيانات المعدة في قاعدة بيانات HANA.

دعونا نرى كيف تبدو البيانات المعدة وكيف يمكن تهيئتها باستخدام servlet. للقيام بذلك ، ننتقل مرة أخرى إلى الملف "DataInitializationServlet.java" ، الموجود في المشروع على طول المسار "/pollutionmonitoring/java/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/api/DataInitializationServlet.java" ، و افتحه.

يمكننا هنا رؤية البيانات المعدة لكل من ABC PetroCorp وعميل آخر (XYZ EnergyCorp).



نقوم بتهيئة بيانات التلوث لـ ABC PetroCorp عن طريق استدعاء servletization تهيئة البيانات.

سنذهب إلى لوحة التحكم الخاصة بالحساب الفرعي لعميل ABC PetroCorp. في حالتنا ، يقع الحساب العالمي في منطقة أوروبا (روت) ، ويتم الوصول إليه عن طريق هذا الرابط .



في لوحة التحكم بالحساب الفرعي ، انتقل إلى علامة التبويب "التطبيقات -> الاشتراكات" وحدد تطبيق جافا الذي اشترك فيه العميل.



في علامة التبويب "نظرة عامة" ، سيتم الإشارة إلى تطبيق URL ، انسخه.



افتح نافذة متصفح جديدة ، والصق عنوان URL للتطبيق المنسوخ وأضف "/ تهيئة؟ Company = ABC PetroCorp" إليه. بعد ذلك ، سيتم الانتهاء من التهيئة ويجب أن تظهر البيانات على الشاشة ، والتي سيتم إرسالها إلى التطبيق.


لقد قمنا الآن بتهيئة بيانات التلوث لـ ABC PetroCorp في تطبيق مراقبة التلوث من ITeLO.

في المقالة التالية ، سنتحدث عن إدارة الهوية باستخدام مصادقة الهوية - تعيين خدمة المستأجر.

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


All Articles