قاعدة
بيانات على خادم ومستخدمين موزعين على
الشبكة :
نستخدم مثل هذه
الحالة دائما في حال اردنا ان نكون تطبيق سطح مكتب (windows application)
لمستخدمين موزعين على شبكة يشتركون بقاعدة بيانات واحدة .بمعنى في شركة ما
لدينا موضفين موزعين على مستوى العالم او بلد او على شبكة محلية واحدة يشتركون
بقاعدة بيانات واحدة أي تحديث لأي موضف على قاعدة البيانات يظهر عن البقية فمثلا
لدينا موضف اجازات فيوسط البلد يدخل كل اجازات الموضفين وموضف اخر في شرق البلد
يحتاج ان يعرف اجازة أي موضف .فنحل هذه المسئلة بوضع قاعدة بيانات المستخدمين على
خادم وكل المستخدمين يتصلون بقاعدة
البيانات هذه عن طريق Connection String الخاصة بها .قاعدة البيانات هنا قد تكون SqL
server , oracle ونفعل بها خاصية الوصول
عن بعد .
لماذا نستخدم تطبيق سطح مكتب وقاعدة بيانات موزعة لماذا لانستخدم تطبيق ويب WEB application ؟
السبب هو بعض الشركات او
المؤسسات لا تريد ان يكون تطبيقاها بشكل ويب
كل شخص يستطيع الوصول اليه عن طريق متصفح الانترنت تريد فقط من لديه تطبيق
الشركة يستطيع الوصول الى بياناتها
والسبب الثاني الأهم هم في الشبكات المحلية لا يفضل استخدام تطبيقات
الويب في التطبيقات الموزعة لان تتسبب تأخر في نقل البيانات بين الخادم والمستخدم
تخيل تطبيق وندوز Windows ينقل عبر الشبكة فقط البيانات Data المضافة او المحدثة بينه وبين
قاعدة البيانات لان التطبيق عند المستخدم
والقاعدة البيانات عند الخادم . اما في تطبيقات الويب التطبيق وقاعدة البيانات عند الخادم ففي كل طلب
للخادم من قيل المستخدم Request يرسل الخادم صفحة بشكل HTML ويحدث عليها المستخدم
ويعيد ارسال الصفحة الى الخادم لان كما نعلم لغة التخاطب بيننا وبين الخوادم هي HTML
قاعدة
بيانات وتطبيق ويب على خادم وخادم احتياطي
ومستخدمين موزعين على الشبكة :
نستخدم مثل هذه
الحالة دائما في حال اردنا ان تكون لنا دائمة نسخة احتياطية من البيانات التي على
الخادم بشكل دائم وتلقائي يعني أي مستخدم يحدث على الخادم ينتقل نسخة من تحديثة
على الخادم الأحتياطي تلقائيا بدون أي كود فيحتوي الخادم الاحتياطي نسخة مطابقة
لبيانات الخادم المستخدم ففي حالة أي عطل في الخادم ينقل المستخدمون الذبن بعملون على الخادم الأساسي الى الخادم
الاحتياطي ويجدون كل بياناتهم مطابقة ولا يوجد أي بيانات مفقودة . تتم هذه العملية عن طريق Sql
server Agent من خلال اعدادات الخوادم نجعل خادم النسخة الاحتياطية Agent للخادم الأول ونعمل Replication بين الخوادم .اذن العملية كلها مجرد ضبط
اعدادات الخادمين من خلال Sql
server لكل خادم لاتوجد أي برمجة
.
مخاطبة
بين الخوادم :
نستخدم مثل هذه
الحالة في اردنا عمل مخاطة بين خادم واخر
مثلا شركة ياهو Yahoo توفر خادم يخص الطقس فليس الحاجة ان اردنا ان نكون مشروع يحتاج الى
الطقس الحالي في حساباته ان نبرمج وضع
اجهزة حساب الطقس نستطيع استخدام الخادم الخاص بشركة ياهو Yahoo اذن هي مخاطبة بين خادمنا
وخادم شركة ياهو Yahoo . وكذالك لو صممنا قاعدة بيانات تابعة لمؤسسة
ما ومؤسسة اخرى ارادة وصول جزئي للبيانات الخاصة بألمؤسسة الأولى على سبيك المثال
في المؤسسة الأول يدخلون معلومات مواطنين وموضفين في قاعدة بياناتهم والمؤسسة
الثانية تحتاج فقط الى بيانات الموضفين المدخلة بشكل دائم اذن هنا ايضا مخاطبة بين
خادمين .للعلم البيانات تنتقل بين الخوادم بشكل XML لذالك يجب مراعاته الامر في برمجة Class
لحل هذه المشكلة نستخدم Web Service لعمل هذه الخاطبة ففي حالة الطقس شركة
ياهو Yahoo توفر هذه Web Service فقط نحن نستدعيها ونستخدمها
وفي الحالة الثانية المؤسسة الأولى تستدعي Web Service وهذه Web
Service
تضيف في قاعدة البيانات المؤسسة الثانية . ممكن ان نضع Web Service على خادم رقم (2) او على خادم
اخر .
استخدام
Web
Service
نفتح مشروع جديد من
نوع Web ونضيف له Web
service
بعد ان نفتح Web service سوف يضهر لنا الشكل كما
في الأسف للعلم Web service هو مشروع حاله حال أي مشروع نستطيع اضافة Class لها ودوال و أي امر نحتاجه .ففي صفحة Web service نستطيع ان
نكون Web service
من خلال كتابة Web Method ونكتب الخدمة Web
service
بشكل دالة Function ,Sub حسب ستخدامنا لها
هنا هوا ضاف Web service بأسم HelloWord وتعيد رسالة نصية
الان نقوم بأستدعاء هذه Web service
الان لأستخدام هذه الخدمة Web service في أي مشروع من
داخل المشروع نختار Add ومنه نختار Refrence Add Web
ومن Address نختار عنوان الخادم
واسم صفحة الخدمة على الخادم كما في الشكل ستضهر لنا كل الخدمات الموجودة ضمن هذه Web
service . ونعطي
اسم للخدمة داخل المشروع Web refrence name وبعده نختار Add Refrence ستضاف
الخدمة الى المشروع
هذه شكل الخدمة بعد اضافتها
للمشروع
نستدعي الدالة HellWord في الخدمة بشكل التالي سوف
يعرض لنا رسالة ترحيبة الموجودة في الخدمة
Dim serviceNew As New localhost.WebService1
MsgBox(serviceNew.HelloWorld())
لكي نقوم برفع web service على خادم ,نقوم بالتالي نشتري عنوان عام Public IP وليكن (169.254.243.53) بحاسبتنا ونفتح IIS Manager ونختار Add web ونضيف مشروع Web service اليه بالشكل التالي . نختار مكان خزن المشروع الخاص بنا ونحدد له منفذ خاص به وليكن (80) ونختار العنوان العام Public IP الخاص به ونعمل اضافة
اي عنوان الخدمة على
الانترنت بشكل التالي (169.254.243.53:80)
الان لكي نضيف هذه web service الى اي مشروع خاص بنا نختار Add web refrence و فقط التغير في URL نكتبه بشكل التالي
URL: http:\169.254.243.53:80\webservice1.asmx
|
هناك 4 تعليقات:
مرحباً اعجبتني المقالة واتمنى ان تجيب على تسؤلاتي التي ارهقتني لعدم حصولي على اجابات شافية لها ...
في حال اردت بناء تطبيق شبكي موزع بالطبع على مستوى مؤسسة هل بالامكان استخدام اكسس 2007 كقاعدة بيانات واعمل الواجهات باستخدام vb.net 2008
انا حاليا قمت بتكوين قاعدة بيانات اكسس 2007 وصممت واجهات باستخدام vb.net الامر الذي توقفت عنده هو كيفية ربط قاعدة بياناتي مع اكسس علما اني اطلعت على الكثير من طرق الربط والتي كانت تنقسم الى وضع منفصل واخر متصل عرفت الفروق بينها لكن انا اريد الية لربط قاعدة بياناتي مع والواجهة من دون ان تسبب لي مشكلة بعد رفع القاعدة على سيرفر واخيرا انا لست متاكدة من امكانية وضع قاعدة بيانات اكسس على سيرفر وفي حال كنت تعرف هل من الممكن ان تدلني على الطريق.... اسفه على الاطالة ولكن اتمنى ان اجد اجابة
مرحباً اعجبتني المقالة واتمنى ان تجيب على تسؤلاتي التي ارهقتني لعدم حصولي على اجابات شافية لها ...
في حال اردت بناء تطبيق شبكي موزع بالطبع على مستوى مؤسسة هل بالامكان استخدام اكسس 2007 كقاعدة بيانات واعمل الواجهات باستخدام vb.net 2008
انا حاليا قمت بتكوين قاعدة بيانات اكسس 2007 وصممت واجهات باستخدام vb.net الامر الذي توقفت عنده هو كيفية ربط قاعدة بياناتي مع اكسس علما اني اطلعت على الكثير من طرق الربط والتي كانت تنقسم الى وضع منفصل واخر متصل عرفت الفروق بينها لكن انا اريد الية لربط قاعدة بياناتي مع والواجهة من دون ان تسبب لي مشكلة بعد رفع القاعدة على سيرفر واخيرا انا لست متاكدة من امكانية وضع قاعدة بيانات اكسس على سيرفر وفي حال كنت تعرف هل من الممكن ان تدلني على الطريق.... اسفه على الاطالة ولكن اتمنى ان اجد اجابة
مرحباً اعجبتني المقالة واتمنى ان تجيب على تسؤلاتي التي ارهقتني لعدم حصولي على اجابات شافية لها ...
في حال اردت بناء تطبيق شبكي موزع بالطبع على مستوى مؤسسة هل بالامكان استخدام اكسس 2007 كقاعدة بيانات واعمل الواجهات باستخدام vb.net 2008
انا حاليا قمت بتكوين قاعدة بيانات اكسس 2007 وصممت واجهات باستخدام vb.net الامر الذي توقفت عنده هو كيفية ربط قاعدة بياناتي مع اكسس علما اني اطلعت على الكثير من طرق الربط والتي كانت تنقسم الى وضع منفصل واخر متصل عرفت الفروق بينها لكن انا اريد الية لربط قاعدة بياناتي مع والواجهة من دون ان تسبب لي مشكلة بعد رفع القاعدة على سيرفر واخيرا انا لست متاكدة من امكانية وضع قاعدة بيانات اكسس على سيرفر وفي حال كنت تعرف هل من الممكن ان تدلني على الطريق.... اسفه على الاطالة ولكن اتمنى ان اجد اجابة
مرحباً اعجبتني المقالة واتمنى ان تجيب على تسؤلاتي التي ارهقتني لعدم حصولي على اجابات شافية لها ...
في حال اردت بناء تطبيق شبكي موزع بالطبع على مستوى مؤسسة هل بالامكان استخدام اكسس 2007 كقاعدة بيانات واعمل الواجهات باستخدام vb.net 2008
انا حاليا قمت بتكوين قاعدة بيانات اكسس 2007 وصممت واجهات باستخدام vb.net الامر الذي توقفت عنده هو كيفية ربط قاعدة بياناتي مع اكسس علما اني اطلعت على الكثير من طرق الربط والتي كانت تنقسم الى وضع منفصل واخر متصل عرفت الفروق بينها لكن انا اريد الية لربط قاعدة بياناتي مع والواجهة من دون ان تسبب لي مشكلة بعد رفع القاعدة على سيرفر واخيرا انا لست متاكدة من امكانية وضع قاعدة بيانات اكسس على سيرفر وفي حال كنت تعرف هل من الممكن ان تدلني على الطريق.... اسفه على الاطالة ولكن اتمنى ان اجد اجابة
إرسال تعليق