Tuesday, April 22, 2014

الحوسبة السحابية - معمارية السحابة المحوسبة Cloud Computing Architecture

معمارية السحابة المحوسبة
Cloud Computing Architecture

معمارية السحابة المحوسبة Cloud Computing Architecture

تتكون معمارية السحابة المحوسبة من عدة مكونات ويممكننا تقسيم هذه المكونات الي قسمين رأسيين.هما
  • معمارية الواجهة  الامامية  Front End.
  • معمارية الواجهة الخلفية Back End.
معمارية السحابة المحوسبة Cloud Computing Architecture
معمارية السحابة المحوسبة Cloud Computing Architecture

معمارية الواجهة  الامامية  Front End.

يشير هذا الجزءالى دور  العميل من نظام الحوسبة السحابية. وتتكون من واجهات والتطبيقات المطلوبة للوصول إلى منصات الحوسبة السحابية، مصل متصفح الويب web browser.

معمارية الواجهة الخلفية Back End.

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

نقاط مهمة جدا

  • مسئولية الواجهة الخلفية توفير الية امان وتحكم في البيانات والبرتوكولات.
  • الخادم السيرفر  يستخدم بعض البروتوكولات، والمعروفة باسم الوسيطة، تساعد الأجهزة المتصلة على التواصل مع بعضها البعض.

Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO experience,PHP,C#,ASPX,SQL
Al alami st
Gaza -jabaliaGaza Strip
Palestine
DOB: 05/10/1984

22/4/2014

No comments

أساسيات قواعد البيانات إنشاء أو بناء قاعدة البيانات SQL CREATE Database

 إنشاء أو بناء قاعدة البيانات 

SQL CREATE Database

أساسيات قواعد البيانات إنشاء أو بناء قاعدة البيانات SQL CREATE Database
 إنشاء أو بناء قاعدة البيانات

جملة إنشاء أو بناء قاعدة البيانات SQL CREATE Database

تستخدم لغة قواعد البيانات البنيوية الامر CREATE DATABASE لانشاء قاعدة بيانات جديدة.

الصيغة العامة لإنشاء أو بناء قاعدة البيانات SQL CREATE Database

CREATE DATABASE DatabaseName;

مثال على  إنشاء أو بناء قاعدة البيانات SQL CREATE Database

SQL> CREATE DATABASE newDB;
في المثال السابق انشأنا قاعدة بيانات جديدة باسم newDB.

قبل إنشاء قاعدة البيانات يجب التأكد بأنه لديك الصلاحيات التي تخولك لبناء وإنشاء قواعد بيانات جديدة.وبمجرد إنشاء قاعدة البيانات يمكن استعراض كافة قواعد البيانات باستخدام الامر show databases.

an check it in the list of databases as follows:
SQL> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| AMROOD             |
| TUTORIALSPOINT     |
| mysql              |
| orig               |
| test               |
| newDB             |
+--------------------+
7 rows in set (0.00 sec)






Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO experience,PHP,C#,ASPX,SQL
Al alami st
Gaza -jabaliaGaza Strip
Palestine
DOB: 05/10/1984

22/4/2014
No comments

Sunday, April 20, 2014

أساسيات البرمجة برمجة المواقع بي اتش بي الجلسات PHP Sessions

الجلسات
 PHP Sessions

ماهي الجلسات PHP Sessions

الجلسات PHP Sessions هي عبارة  عن طريق تجعل البيانات قابلة للوصول اليها من خلال عدة صفحات على مستوى الموقع بالكامل.بمعنى تمنحك الصلاحية للدخول الى  المعلومات على صفحات الويب.
الجلسات PHP Sessions تقوم بانشاء ملف في المجلد - المسار المؤقت على السيرفر حيث يتم تسجيل متغيرات الجلسة فيها وقيمها.وسوف تكون البيانات متوفر لكل الصفحات التي على موقع عند زيارة الصفحات.
مكان ملف الجلسات PHP Sessions المؤقت يتم تحديده من خلال ملف الاعدادات php.ini  في السطر session.save_path
وقبل تحديد المسار يجب التاكد من وجود الملف وصحة مساره.

عند بدء الجلسات PHP Sessions تحدث الخطوات التالية

  • تقوم لغة البي اتش بي بانشاء معرف نصي مميز طوله 32 من سداسي عشر  مثل 3c7foj34c3jj973hjkop2fc937e3443
  • تقوم الكوكيز باستدعاء PHPSESSID  التى ارسلت الى جهاز المستخدم  ليحفظ معرف الجلسة المميز كما في الخطوة السابقة.
  • يتم انشاء ملف في مجلد الجلسات المؤقت يحمل نفس القيمة التي ارسلت للجهاز المستخدم.
عندما يريد سكريبت PHP استرداد القيمة من متغير الجلسة ال معرPHP تلقائيا تحصل على قيمة معرف الجلسة المميز من الكوكيز PHPSESSID ثم تبحث في الدليل الخاص ب مجلد الجلسات المؤقت عن الملف الذي يحمل نفس القيمة  والتحقق من صحة القيم من خلال مقارنة القيمتين.
الجلسة تنتهي عندما يفقد المستخدم المتصفح أو بعد مغادرة الموقع، سيقوم السيرفر بإنهاء الجلسة بعد مرور فترة محددة من الزمن، عادة 30 دقيقة .


أساسيات البرمجة  برمجة المواقع بي اتش بي الجلسات PHP Sessions


بدء الجلسة في البي اتش بي Starting a PHP Session:

ِالجلسة تبدء عن طريق استدعاء الدالة session_start()  تقوم هذه الدالة بفحص هل الجلسة بدات ام لا في حال لم تبداء تقوم ببدء جلسة جديدة. يفضل استخدام هذه الدالة في بداية ملف  البي اتش بي.
يتم حفظ المتغيرات وقيمها في المصفوفة المساعدة $_SESSION[] ويمكن الوصول الهذه المتغيرات خلال فترة حياة الجلسة.

مثال على الجلسات في البي اتش بي 

في المثال التالي سيتم حفظ المتغيرات الجلسة في counter سنتخدم الدالة  isset()  لفحص هل تم حفظ المتغيرات في المصفوفة المساعدة ام لا.


<?php
   session_start();
   if( isset( $_SESSION['counter'] ) )
   {
      $_SESSION['counter'] += 1;
   }
   else
   {
      $_SESSION['counter'] = 1;
   }
   $msg = "You have visited this page ".  $_SESSION['counter'];
   $msg .= "in this session.";
?>
<html>
<head>
<title>بدء الجلسة</title>
</head>
<body>
<?php  echo ( $msg ); ?>
</body>
</html>

إنهاء أو تدمير الجلسة Destroying a PHP Session:

  كما توجد دالة لبدء الجلسة ايضا توجد دالة لانهاء او ازالة او تدمير الجلسة session_destroy() وكذلك توجد دالة لازالة القيمة من المصفوفة المساعدة وهي unset().


<?php
   unset($_SESSION['counter']);
?>


تشغيل بدء الجلسة تلقائيا Turning on Auto Session:

ليس بالضرورة بدء الجلسة عندما ياتي الزائر لموقعك فيمكنك بدء الجلسلة تلقائية بتشغيل بدء الجلسة تلقائيا من خلال ملف الاعدادات php.ini وذلك من خلال تغير القيمة الى واحد في السطرsession.auto_start .

الجلسات بدون كوكيزSessions without cookies:

  يمكن بدء الجلسات بدون كوكيز عندما يكون متصفح المستخدم لا يسمح بحفظ الكوكيز على الجهاز. فالطريقة هنا ارسال معرف الجلسة الى المتصقح باستخدام SID.نستخدم الدالة htmlspecialchars  وهي تستخدم لمنع الهجوم على الموقع باستخدام  xss. 

مثال


<?php
   session_start();

   if (isset($_SESSION['counter'])) {
      $_SESSION['counter'] = 1;
   } else {
      $_SESSION['counter']++;
   }

   $msg = "You have visited this page ".  $_SESSION['counter'];
   $msg .= "in this session.";
   echo ( $msg );?>
<p>
To continue  click following link <br />
<a  href="test.php?<?php echo htmlspecialchars(SID); ?>">aaa</a>
</p>








إذا أعجبك المقال فتابعني وشكرا
تويتر aalmahallawi@


No comments

الحوسبة السحابية - تقنيات السحابة المحوسبة Cloud Computing Technologies

الحوسبة السحابية - تقنيات السحابة المحوسبة
 Cloud Computing Technologies

الحوسبة السحابية - تقنيات السحابة المحوسبة Cloud Computing Technologies

توجد العدد من التقنيات التي تعمل في خلف في منصات تشغيل (ٍServers) السحابة الالكترونية وهى ما تجعل السحابة المحوسبة مرنة وموثوقة وقابل للاستخدام.وهذه التقنيات هي.
  1. الافنراضية Virtualization.
  2. المعمارية الموجهة نحو الخدمات( Service-Oriented Architecture (SOA.
  3. الحوسبة الشبكية  Grid Computing.
  4. الحوسبة الخدمية Utility Computing.

أولا الافتراضية Virtualization

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

ايضا العزل الافتراضي يسمح لكل شركة بتخصيص  الاعدادات وتشغيل برامجها دون التداخل مع الاخرين.

ثانيا المعمارية الموجهة نحو الخدمات( Service-Oriented Architecture (SOA.

المعمارية الموجهة نحو الخدمات( Service-Oriented Architecture (SOA تساعد على استخدام التطبيقات كخدمة  للتطبيقات الاخرى بغض النظر عن المصنع او نوع المنتج او التقنية.ومع ذلك فانه من الممكن تبادل البيانات مابين المصنعيين بدون الحاجة الى برمجيات اوتغير الخدمة.

المعمارية الموجهة نحو الخدمات( Service-Oriented Architecture (SOA


ثالثا الحوسبة الشبكية  Grid Computing

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


رابعا الحوسبة الخدمية Utility Computing

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




إذا أعجبك المقال فتابعنا وشكرا
twitter :@aalmahallawi


No comments

Saturday, February 22, 2014

برمجة متقدمة سي شارب الاكواد الغير معالجة او الغير أمنة C# - Unsafe Codes

 الاكواد الغير معالجة او الغير أمنة

  Unsafe Codes

 الاكواد الغير معالجة او الغير أمنة  Unsafe Codes

تسمح لغة السي شارب باستخدام متغيرات المؤشرات في أكواد السي شارب . الكود الغير معالج هو كود يستخدم المؤشرات كمتغيرات,

المؤشر:

المؤشر هو متغير قيمته هي لعنوان لمتغير أخر.لاستخدام المؤشرات فيجب تعريفها قبل استخدامها مثلها مثل أي متغير.

الصيغة العامة لتعريف المؤشرات في سي شارب

type *var-name;

التالي تعريفات صحيحة للمؤشرات

int    *ip;    /* pointer to an integer */
double *dp;    /* pointer to a double */
float  *fp;    /* pointer to a float */
char   *ch     /* pointer to a character */

المثال التالي يستخدم المؤشرات باستخدام محدد الوصولunsafe

using System;
namespace UnsafeCodeApplication
{
    class Program
    {
        static unsafe void Main(string[] args)
        {
            int var = 20;
            int* p = &var;
            Console.WriteLine("Data is: {0} ",  var);
            Console.WriteLine("Address is: {0}",  (int)p);
            Console.ReadKey();
        }
    }
}

ناتج الكود السابق المؤشرات

Data is: 20
Address is: 99215364


استعادة البيانات ذات القيمة باستخدام المؤشرات

لاستعادة البيانات ذات القيمة نستخدم الدالة tostring
using System;
namespace UnsafeCodeApplication
{
   class Program
   {
      public static void Main()
      {
         unsafe
         {
            int var = 20;
            int* p = &var;
            Console.WriteLine("Data is: {0} " , var);
            Console.WriteLine("Data is: {0} " , p->ToString());
            Console.WriteLine("Address is: {0} " , (int)p);
         }
         Console.ReadKey();
      }
   }
}

ناتج مثال المؤشرات السابق

Data is: 20
Data is: 20
Address is: 77128984

تمرير المؤشرات كمتغيرات للدالة


using System;
namespace UnsafeCodeApplication
{
   class TestPointer
   {
      public unsafe void swap(int* p, int *q)
      {
         int temp = *p;
         *p = *q;
         *q = temp;
      }

      public unsafe static void Main()
      {
         TestPointer p = new TestPointer();
         int var1 = 10;
         int var2 = 20;
         int* x = &var1;
         int* y = &var2;
         
         Console.WriteLine("Before Swap: var1:{0}, var2: {1}", var1, var2);
         p.swap(x, y);

         Console.WriteLine("After Swap: var1:{0}, var2: {1}", var1, var2);
         Console.ReadKey();
      }
   }
}

ناتج مثال المؤشرات السابق


Before Swap: var1: 10, var2: 20
After Swap: var1: 20, var2: 10

الوصول لعناصر المصفوفة باستخدام المؤشرات

للوصول لعناصر المصفوفة باستخدام المؤشرات  كما في الس يلس بلس فانك بحاجةلاستخدام fixed keyword.


using System;
namespace UnsafeCodeApplication
{
   class TestPointer
   {
      public unsafe static void Main()
      {
         int[]  list = {10, 100, 200};
         fixed(int *ptr = list)

         /* let us have array address in pointer */
         for ( int i = 0; i < 3; i++)
         {
            Console.WriteLine("Address of list[{0}]={1}",i,(int)(ptr + i));
            Console.WriteLine("Value of list[{0}]={1}", i, *(ptr + i));
         }
         Console.ReadKey();
      }
   }
}

ناتج مثال المؤشرات السابق


Address of list[0] = 31627168
Value of list[0] = 10
Address of list[1] = 31627172
Value of list[1] = 100
Address of list[2] = 31627176
Value of list[2] = 200

لاستخدام الكود الغير امنة عليك تفعيله كالتالي في بيئة فيجوال استديو


  1.  افتح قائمة Project properties 
  2.  ثم اضغط على التبويب Build .
  3.  اختر التالي  "Allow unsafe code".



<<السابق الدالة الغير معروفة


التالي  المعالجة المتعددة >>
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------

Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO experience,PHP,C#,ASPX,Business Analysis
Al alami st
gaza -jabaliaGaza Strip
Palestine
ahmed.almahallawi@gmail.com
DOB: 05/10/1984
by +Ahmed Almahallawi 
29/3/2014

No comments