نمط مندوب الأعمال
يُعدّ مُفوّض الأعمال نمط تصميم في Java EE . [ 1 ] يهدف هذا النمط إلى تقليل الترابط بين خدمات الأعمال وطبقة العرض المتصلة بها، وإخفاء تفاصيل تنفيذ الخدمات (بما في ذلك البحث عن بنية EJB وإمكانية الوصول إليها ). [ 1 ] [ 2 ] يعمل مُفوّضو الأعمال كمُهايئ لاستدعاء كائنات الأعمال من طبقة العرض. [ 3 ]
بناء
يتم إرسال طلبات الوصول إلى خدمات الأعمال الأساسية من العملاء، ويستخدم مندوبو الأعمال خدمات البحث لتحديد موقع مكونات خدمة الأعمال. [ 1 ]
عناصر
المكونات الأساسية هي: مندوب الأعمال، وخدمة البحث، وخدمة الأعمال.
مندوب أعمال
يتم توفير التحكم والحماية من خلال مفوض الأعمال الذي يمكن أن يحتوي على نوعين من الهياكل، بدون معرف ومع معرف، حيث يكون المعرف عبارة عن نسخة نصية من مرجع إلى كائن بعيد مثل EJBHome أو EJBObject. [ 1 ]
خدمة البحث
يتم تحديد موقع خدمة الأعمال بواسطة خدمة البحث التي يستخدمها مندوب الأعمال. وتُغلف تفاصيل تنفيذ البحث عن خدمة الأعمال بواسطة خدمة البحث. [ 1 ]
خدمات الأعمال
هذا مكون من مكونات طبقة الأعمال، مثل مكون Enterprise Bean أو مكون JMS، والذي يوفر الخدمة المطلوبة للعميل. [ 1 ]
عواقب
بعض النتائج هي كالتالي:
- توفر طبقة تفويض الأعمال الوسيطة مزيدًا من المرونة وسهولة الصيانة، حيث تفصل طبقة الأعمال عن طبقة العرض.
- يُتيح مندوب الأعمال واجهة برمجة تطبيقات موحدة لطبقة العرض للوصول إلى منطق الأعمال. [ 1 ] [ 3 ]
مخاوف
يمكن أخذ المخاوف التالية في الاعتبار:
- الصيانة بسبب الطبقة الإضافية التي تزيد من عدد الفئات في التطبيق.
- ينبغي على مندوب الأعمال الاهتمام بتغييرات واجهات كائنات الأعمال البعيدة، وهذه الأنواع من التغييرات نادرة الحدوث. [ 3 ]
نموذج التعليمات البرمجية
يتم توفير نموذج التعليمات البرمجية لتطبيق الخدمات المهنية (PSA)، حيث يحتاج عميل طبقة الويب إلى الوصول إلى كائن جلسة يقوم بتنفيذ نمط واجهة الجلسة، أدناه.
مندوب الموارد:
public class ResourceDelegate {// مرجع عن بعد لواجهة الجلسة الخاصة ResourceSession session ;// فئة لكائن الصفحة الرئيسية لواجهة الجلسة private static final Class homeClazz = corepatterns . apps . psa . ejb . ResourceSessionHome . class ;// المُنشئ الافتراضي. يبحث عن الصفحة الرئيسية ويتصل // بالجلسة عن طريق إنشاء صفحة جديدة. public ResourceDelegate () throws ResourceException { try { ResourceSessionHome home = ( ResourceSessionHome ) ServiceLocator . getInstance (). getHome ( "Resource" , homeClazz ); session = home . create (); } catch ( ServiceLocatorException ex ) { // تحويل استثناء مُحدد الخدمة إلى // استثناء التطبيق throw new ResourceException (...); } catch ( CreateException ex ) { // تحويل استثناء إنشاء الجلسة إلى // استثناء التطبيق throw new ResourceException (...); } catch ( RemoteException ex ) { // تحويل استثناء Remote إلى // استثناء التطبيق throw new ResourceException (...); } }public BusinessDelegate ( String id ) throws ResourceException { super (); reconnect ( id ); }public String getID () { try { return ServiceLocator . getId ( session ); } catch ( Exception e ) { // طرح استثناء من التطبيق } }public void reconnect ( String id ) throws ResourceException { try { session = ( ResourceSession ) ServiceLocator . getService ( id ); } catch ( RemoteException ex ) { // ترجمة الاستثناء البعيد إلى // استثناء التطبيق throw new ResourceException (...); } }public ResourceTO setCurrentResource ( String resourceId ) throws ResourceException { try { return session . setCurrentResource ( resourceId ); } catch ( RemoteException ex ) { // ترجمة استثناء الخدمة إلى // استثناء التطبيق throw new ResourceException (...); } }public ResourceTO getResourceDetails () throws ResourceException {حاول { إرجاع جلسة . الحصول على تفاصيل المورد (); } catch ( RemoteException ex ) { // ترجمة استثناء الخدمة إلى // استثناء التطبيق throw new ResourceException (...); } }public void setResourceDetails ( ResourceTO vo ) throws ResourceException { try { session . setResourceDetails ( vo ); } catch ( RemoteException ex ) { throw new ResourceException (...); } }public void addNewResource ( ResourceTO vo ) throws ResourceException { try { session . addResource ( vo ); } catch ( RemoteException ex ) { throw new ResourceException (...); } }// جميع طرق الوكيل الأخرى لجلسة الكائن ... }[ 1 ]
انظر أيضاً
مراجع
- 1 2 3 4 5 6 7 8 "أنماط J2EE الأساسية - مندوب الأعمال" . أوراكل . أوراكل . تم الاطلاع عليه بتاريخ 22 يونيو 2016 .
- ↑ وثيقة التصميم الفني للفحص – الإصدار 2.0 . إنديانا، الولايات المتحدة الأمريكية: ولاية إنديانا. ص 7.
- 1 2 3 كيال، د. (2008). أنماط الربيع برو جافا EE . نيويورك: أبريس. ص 161 – 166.
- أنماط تصميم البرمجيات
