9- Network Applications Programming 
@MhdAlyan
Outlines 
مقدمة  
Networking Application Models  
Client /server Model  
؟ Socket ما هي ال  
إنشاء تطبيقات شبكية تتواصل مع تطبيقات محلية أو بعيدة.  
؟ Socket ما هي أنواع التطبيقات التي يمكن إنشاؤها عن طريق  
الاستراتيجيات المتبعة لتخديم عدد معين من الزبائن .  
sequential Server  
؟ Socket ما هي أنواع التطبيقات التي يمكن إنشاؤها عن طريق  
زبون بنفس الوقت أو مع تأخير مقبول نسبيا . n كيف نستطيع أن نخّدم  
Synchronization Mode  
Thread Pool  
Asynchronous Mode  
05 2 تشرين الثاني، 14
مقدمة 
أنواع التطبيقات :  
MonoThread وتسمى )Desktop تطبيقات تعمل على نفس الحاسب )تطبيقات شخصية  
تطبيقات شبكية .  
تطبيقات ويب .  
Multithread users تطبيقات موزعة )تعمل على الشبكة( وتسمى  
05 3 تشرين الثاني، 14
Networking Application 
Models 
تحتاج التطبيقات المحلية أو البعيدة إلى التواصل )التخاطب فيما بينها(, يتم هذا التواصل من خلال  
“middleware” ما يُسمى برامج وسيطة 
: middleware أنواع ال  
Client /server - Socket  
3tiers Client /Server  
Queue  
RPC  
OOMW  
CORBA  
RMI  
EJB  
COM+  
05 4 تشرين الثاني، 14
Client /server Model 
أي أن ال Software Engineering هو مفهوم برمجي بال Client/Server مفهوم ال  
هما تطبيقان . Server و ال Client 
.)Server( والذي يتلقى الطلبات ويقدم الخدمات يسمى مُخدم ) Client ( الذي يطلب هو الزبون  
سوف نستخدم بنية برمجية معروفة )Client/Server ( لتحقيق الإتصال بين هذين البرنامجين  
. Socket ومتوفرة في معظم لغات البرمجة وهي المكتبة 
؟ Socket إذاً ما هي ال  
05 5 تشرين الثاني، 14
؟ Socket ما هي ال 
.Stream وهي تعميم لمفهوم ال TCP/IP هي عبارة عن بنية برمجية مبنية فوق : Socket  
. ) TCP , UDP بشكل أساسي مع بروتوكولات طبقة النقل )وتحديداً Socket تتعامل  
IP And Port بالشبكات : هو عبارة عن Socket تعريف ال  
unique هو عنوان الحاسب المنطقي وهو عنوان فريد : IP  
وهو بإختصار عنوان التطبيق المرسل أو المستقبل . : Port  
ملاحظات :  
تنقل معطيات فقط )مصفوفة بايتات ( ولا تحولها من شكل إلى أخر . : Socket  
إي أنها تعمل على جميع الحواسيب والنظم تستعمل في معظم لغات Cross Platform هي : Socket المكتبة  
.)Low Level( البرمجة والتعامل معها يكون في مستوى منخفض 
أي يقيم رابطة ويتحقق من سلامة وصول الطرود لذلك هو بطيء نوعا ما : TCP is Connection Oriented  
مثلا , وهو لايدعم الإرسال إلى عدة مستخدمين ) FTP Server ويستخدم في تطبيقات نقل الملفات 
. unicast فقط ,)Multicasting Or Broadcasting 
TCP أي لا يقيم رابطة ولا يتحقق من سلامة وصول الطرود لذلك هو أسرع من : UDP is Connectionless  
لذلك هو غير موثوق . )Video Conferencing ( ويستخدم غالبا في نقل الفيديو الحي والمباشر 
05 6 تشرين الثاني، 14
إنشاء تطبيقات شبكية تتواصل مع تطبيقات محلية أو بعيدة 
System.Net.Socket و System .Net كل ما نحتاجه موجود ضمن فضاء الأسماء  
في المخدم نكتب :  
TcpListener listener =new TcpListener(5000); 
listener.Start(); 
Socket myscoket=listener.AcceptSocket(); 
NetworkStream mynetworkStream=new NetworkStream(myscoket) ; 
BinaryReader reader= new BinaryReader(mynetworkStream); 
BinaryWriter writer=new BinaryWriter(mynetworkStream); 
05 7 تشرين الثاني، 14
إنشاء تطبيقات شبكية تتواصل مع تطبيقات محلية أو بعيدة. 
05 8 تشرين الثاني، 14
إنشاء تطبيقات شبكية تتواصل مع تطبيقات محلية أو بعيدة. 
في برنامج الزبون نكتب :  
TcpClient client=new TcpClient(); 
client.Connect("localhost", 5000); 
NetworkStream mynetworkstream=client.GetStream(); 
BinaryWriter writer = new BinaryWriter(mynetworkstream); 
BinaryReader reader = new BinaryReader(mynetworkstream); 
05 9 تشرين الثاني، 14
sequential Server 
هو عبارة عن مخدم يخدم زبون واحد في أنٍ واحد  
بقية الزبائن تنتظر في ضمن رتل , كما يمكن التحكم بطول هذا الرتل .  
05 10 تشرين الثاني، 14
؟ Socket ما هي أنواع التطبيقات التي يمكن إنشاؤها عن طريق 
وهو برنامج موجود على حاسبين مختلفين وكل تطبيق منهم هو بمثابة : Peer To Peer تطبيق  
مخدم وزبون في آن واحد. 
: Client /sever تطبيق  
إذا إتصل أكثر من زبون مع المخدم في نفس الوقت ماذا يفعل المخدم حينها ؟  
يمكن للمخدم أن يعمل بها لكي يتعامل مع عدد Mode يوجد ثلاث طرق أو إستراتيجيات أو أوضاع  
كبير من طلبات الزبائن في نفس الوقت الإستراتيجيات هي : 
05 11 تشرين الثاني، 14
؟ SBolocckkineg Mt o d قe يم وت كسم نى إونضشعا ال ؤتز هاام نعأو ن ت سم طىري : S تيy لnاc h تro اn قizيa طبtioتn ال M اعo وdنe ي أ  ما ه 
مزايا هذه الطريقة :  
سهلة نوعا ما  
Client 
Thread 
Thread 
Thread 
Client 
Client 
جميع الطلبات يتم معالجتها بالزمن الحقيقي , لا يوجد تأخير .  
Server 
05 12 تشرين الثاني، 14
Synchronization Mode 
مساوئ هذه الطريقة :  
. )Ram + CPU Time( استهلاك عالي جداً للموارد  
إقلاع النيسب يأخد وقت طويل نسبي اً  
يمكن لهذا المخدم أن يتعرض لهجمة  
يمكن إستخدام هذه الطريقة في بعض الحالات التي نضمن فيها عدد محدد للزبائن المتصلين كما  
يجب أن نضمن عدم تعرض المخدم لهجمة معينة . 
يوجد حل أفضل وهو مطبق في معظم المخدمات الموجودة في العالم .  
05 13 تشرين الثاني، 14
Thread Pool 
كما شاهدنا أن وضع التزامن يستهلك الكثير من الموارد .  
لذلك يوجد حل أخر هو أن نقوم بحجز مجموعة من النياسب التي تعمل بشكل دائم )لا تموت أبد اً(  
لتخديم عدد معين من الزبائن والبقية تنتظر لزمن معين )يفترض أن يكون مقبول(. 
جزء من موارد الحاسب ليتم إعادة استخدامها . )ThreadPool( تخصص هذه الطريقة  
باستخدام حوض )Data Base Servers( ومخدمات قواعد المعطيات )Web Servers( تقوم مخدمات الويب  
من النياسب بدلاً من تخصيص نيسب خاص لكل زبون 
وبذلك نستطيع التخلص من المشاكل الموجودة في وضعية التزامن .  
05 14 تشرين الثاني، 14
Advanced Concepts in Software Engineering 
Design Pattern  
EAI  
AOP  
SOA  
05 15 تشرين الثاني، 14
Design Pattern نموذج التصميم 
نموذج التصميم : هو عبارة عن حل تصميمي لمشكلة متكررة هذه المشكلة في مرحلة التحليل والتصميم غرضي  
التوجه . 
استراتيجيات مستقلة عن لغة برمجة معينة لحل مشكلة تظهر لنا خلال كتابة الكود .  
A design pattern is not a finished design that can be transformed directly into code. It is  
a description or template for how to solve a problem that can be used in many 
different situations 
SUN suggests GOF (Gang Of Four--four pioneer guys who wrote a book named "Design  
Patterns"- Elements of Reusable Object-Oriented Software) 
C# ,JAVA ,C++,…. يوجد 23 نموذجي تصميمي مستخدمة في لغات البرمجة الشهيرة مثل  
Design Patterns"- Elements of Reusable Object-Oriented : الكتاب المرجعي هو  
Software 
05 16 تشرين الثاني، 14
Model View Controller Design Patterns 
كاملة لكيفية تصميم وبرمجة التطبيقات سواء كانت تطببيقات عادية أو (Methodology ) يعتبر منهجية : MVC  
حتى في التطبيقات المؤسساتية الكبيرة . 
؟ MVC ما هي المشاكل التي يحلها  
تعدد الواجهات .  
تعدد وسائط التخزين .  
الهدف من هذه الطريقة هو فصل المكونات الثلاثة عن بعضها  
البعض . 
05 17 تشرين الثاني، 14
Model View Controller Design Patterns 
وهي الواجهة التي يتعامل معها المستخدم . : View  
ويجري ضمنه كل عمليات التحقق من (Business Logic Code ) هو الذي يحوي كود منطق العمل : Controller  
بالإضافة إلى عملية التحقق من الصلاحيات وتسُمى هذه العملية Authentication وهذه العمليات تسُمى ID المعرفات 
. Authorization أيضا 
: DAO & ORM (Model)  
05 18 تشرين الثاني، 14
Model View Controller Design Patterns 
View 1 
View 2 
View 3 
Controller 
Model 1 
Model 2 
M0del 3 
05 19 تشرين الثاني، 14
Model View Controller Design Patterns 
 
View Controller Model 
ORM DAO 
Oracle 
SQL 
server 
MySQL 
05 20 تشرين الثاني، 14
3tiers Architecture 
هي معمارية أو بنيان كامل لبناء تطبيقات ثلاثية الإرتال لها مجموعة من الأهداف منها :  
فصل المتطلبات الوظيفية عن المتطلبات الغير وظيفية .  
تخديم عدد كبير من الزبائن .  
؟ MVC Design Pattern 3 و tiers Architecture ما الفرق بين ال  
؟ MVC , 3tiers ما العلاقة بين ال  
05 21 تشرين الثاني، 14
MVC , 3tiers العلاقة بين ال 
Presentation Tier Business Logic Tier 
View Control 
ler 
Model 
Storage Tier 
Oracle 
SQL 
server 
MySQL 
Desktop 
Applicatio 
n 
Web 
Application 
Mobile 
Application 
05 22 تشرين الثاني، 14
05 23 تشرين الثاني، 14

9 networking

  • 1.
    9- Network ApplicationsProgramming @MhdAlyan
  • 2.
    Outlines مقدمة  Networking Application Models  Client /server Model  ؟ Socket ما هي ال  إنشاء تطبيقات شبكية تتواصل مع تطبيقات محلية أو بعيدة.  ؟ Socket ما هي أنواع التطبيقات التي يمكن إنشاؤها عن طريق  الاستراتيجيات المتبعة لتخديم عدد معين من الزبائن .  sequential Server  ؟ Socket ما هي أنواع التطبيقات التي يمكن إنشاؤها عن طريق  زبون بنفس الوقت أو مع تأخير مقبول نسبيا . n كيف نستطيع أن نخّدم  Synchronization Mode  Thread Pool  Asynchronous Mode  05 2 تشرين الثاني، 14
  • 3.
    مقدمة أنواع التطبيقات:  MonoThread وتسمى )Desktop تطبيقات تعمل على نفس الحاسب )تطبيقات شخصية  تطبيقات شبكية .  تطبيقات ويب .  Multithread users تطبيقات موزعة )تعمل على الشبكة( وتسمى  05 3 تشرين الثاني، 14
  • 4.
    Networking Application Models تحتاج التطبيقات المحلية أو البعيدة إلى التواصل )التخاطب فيما بينها(, يتم هذا التواصل من خلال  “middleware” ما يُسمى برامج وسيطة : middleware أنواع ال  Client /server - Socket  3tiers Client /Server  Queue  RPC  OOMW  CORBA  RMI  EJB  COM+  05 4 تشرين الثاني، 14
  • 5.
    Client /server Model أي أن ال Software Engineering هو مفهوم برمجي بال Client/Server مفهوم ال  هما تطبيقان . Server و ال Client .)Server( والذي يتلقى الطلبات ويقدم الخدمات يسمى مُخدم ) Client ( الذي يطلب هو الزبون  سوف نستخدم بنية برمجية معروفة )Client/Server ( لتحقيق الإتصال بين هذين البرنامجين  . Socket ومتوفرة في معظم لغات البرمجة وهي المكتبة ؟ Socket إذاً ما هي ال  05 5 تشرين الثاني، 14
  • 6.
    ؟ Socket ماهي ال .Stream وهي تعميم لمفهوم ال TCP/IP هي عبارة عن بنية برمجية مبنية فوق : Socket  . ) TCP , UDP بشكل أساسي مع بروتوكولات طبقة النقل )وتحديداً Socket تتعامل  IP And Port بالشبكات : هو عبارة عن Socket تعريف ال  unique هو عنوان الحاسب المنطقي وهو عنوان فريد : IP  وهو بإختصار عنوان التطبيق المرسل أو المستقبل . : Port  ملاحظات :  تنقل معطيات فقط )مصفوفة بايتات ( ولا تحولها من شكل إلى أخر . : Socket  إي أنها تعمل على جميع الحواسيب والنظم تستعمل في معظم لغات Cross Platform هي : Socket المكتبة  .)Low Level( البرمجة والتعامل معها يكون في مستوى منخفض أي يقيم رابطة ويتحقق من سلامة وصول الطرود لذلك هو بطيء نوعا ما : TCP is Connection Oriented  مثلا , وهو لايدعم الإرسال إلى عدة مستخدمين ) FTP Server ويستخدم في تطبيقات نقل الملفات . unicast فقط ,)Multicasting Or Broadcasting TCP أي لا يقيم رابطة ولا يتحقق من سلامة وصول الطرود لذلك هو أسرع من : UDP is Connectionless  لذلك هو غير موثوق . )Video Conferencing ( ويستخدم غالبا في نقل الفيديو الحي والمباشر 05 6 تشرين الثاني، 14
  • 7.
    إنشاء تطبيقات شبكيةتتواصل مع تطبيقات محلية أو بعيدة System.Net.Socket و System .Net كل ما نحتاجه موجود ضمن فضاء الأسماء  في المخدم نكتب :  TcpListener listener =new TcpListener(5000); listener.Start(); Socket myscoket=listener.AcceptSocket(); NetworkStream mynetworkStream=new NetworkStream(myscoket) ; BinaryReader reader= new BinaryReader(mynetworkStream); BinaryWriter writer=new BinaryWriter(mynetworkStream); 05 7 تشرين الثاني، 14
  • 8.
    إنشاء تطبيقات شبكيةتتواصل مع تطبيقات محلية أو بعيدة. 05 8 تشرين الثاني، 14
  • 9.
    إنشاء تطبيقات شبكيةتتواصل مع تطبيقات محلية أو بعيدة. في برنامج الزبون نكتب :  TcpClient client=new TcpClient(); client.Connect("localhost", 5000); NetworkStream mynetworkstream=client.GetStream(); BinaryWriter writer = new BinaryWriter(mynetworkstream); BinaryReader reader = new BinaryReader(mynetworkstream); 05 9 تشرين الثاني، 14
  • 10.
    sequential Server هوعبارة عن مخدم يخدم زبون واحد في أنٍ واحد  بقية الزبائن تنتظر في ضمن رتل , كما يمكن التحكم بطول هذا الرتل .  05 10 تشرين الثاني، 14
  • 11.
    ؟ Socket ماهي أنواع التطبيقات التي يمكن إنشاؤها عن طريق وهو برنامج موجود على حاسبين مختلفين وكل تطبيق منهم هو بمثابة : Peer To Peer تطبيق  مخدم وزبون في آن واحد. : Client /sever تطبيق  إذا إتصل أكثر من زبون مع المخدم في نفس الوقت ماذا يفعل المخدم حينها ؟  يمكن للمخدم أن يعمل بها لكي يتعامل مع عدد Mode يوجد ثلاث طرق أو إستراتيجيات أو أوضاع  كبير من طلبات الزبائن في نفس الوقت الإستراتيجيات هي : 05 11 تشرين الثاني، 14
  • 12.
    ؟ SBolocckkineg Mto d قe يم وت كسم نى إونضشعا ال ؤتز هاام نعأو ن ت سم طىري : S تيy لnاc h تro اn قizيa طبtioتn ال M اعo وdنe ي أ  ما ه مزايا هذه الطريقة :  سهلة نوعا ما  Client Thread Thread Thread Client Client جميع الطلبات يتم معالجتها بالزمن الحقيقي , لا يوجد تأخير .  Server 05 12 تشرين الثاني، 14
  • 13.
    Synchronization Mode مساوئهذه الطريقة :  . )Ram + CPU Time( استهلاك عالي جداً للموارد  إقلاع النيسب يأخد وقت طويل نسبي اً  يمكن لهذا المخدم أن يتعرض لهجمة  يمكن إستخدام هذه الطريقة في بعض الحالات التي نضمن فيها عدد محدد للزبائن المتصلين كما  يجب أن نضمن عدم تعرض المخدم لهجمة معينة . يوجد حل أفضل وهو مطبق في معظم المخدمات الموجودة في العالم .  05 13 تشرين الثاني، 14
  • 14.
    Thread Pool كماشاهدنا أن وضع التزامن يستهلك الكثير من الموارد .  لذلك يوجد حل أخر هو أن نقوم بحجز مجموعة من النياسب التي تعمل بشكل دائم )لا تموت أبد اً(  لتخديم عدد معين من الزبائن والبقية تنتظر لزمن معين )يفترض أن يكون مقبول(. جزء من موارد الحاسب ليتم إعادة استخدامها . )ThreadPool( تخصص هذه الطريقة  باستخدام حوض )Data Base Servers( ومخدمات قواعد المعطيات )Web Servers( تقوم مخدمات الويب  من النياسب بدلاً من تخصيص نيسب خاص لكل زبون وبذلك نستطيع التخلص من المشاكل الموجودة في وضعية التزامن .  05 14 تشرين الثاني، 14
  • 15.
    Advanced Concepts inSoftware Engineering Design Pattern  EAI  AOP  SOA  05 15 تشرين الثاني، 14
  • 16.
    Design Pattern نموذجالتصميم نموذج التصميم : هو عبارة عن حل تصميمي لمشكلة متكررة هذه المشكلة في مرحلة التحليل والتصميم غرضي  التوجه . استراتيجيات مستقلة عن لغة برمجة معينة لحل مشكلة تظهر لنا خلال كتابة الكود .  A design pattern is not a finished design that can be transformed directly into code. It is  a description or template for how to solve a problem that can be used in many different situations SUN suggests GOF (Gang Of Four--four pioneer guys who wrote a book named "Design  Patterns"- Elements of Reusable Object-Oriented Software) C# ,JAVA ,C++,…. يوجد 23 نموذجي تصميمي مستخدمة في لغات البرمجة الشهيرة مثل  Design Patterns"- Elements of Reusable Object-Oriented : الكتاب المرجعي هو  Software 05 16 تشرين الثاني، 14
  • 17.
    Model View ControllerDesign Patterns كاملة لكيفية تصميم وبرمجة التطبيقات سواء كانت تطببيقات عادية أو (Methodology ) يعتبر منهجية : MVC  حتى في التطبيقات المؤسساتية الكبيرة . ؟ MVC ما هي المشاكل التي يحلها  تعدد الواجهات .  تعدد وسائط التخزين .  الهدف من هذه الطريقة هو فصل المكونات الثلاثة عن بعضها  البعض . 05 17 تشرين الثاني، 14
  • 18.
    Model View ControllerDesign Patterns وهي الواجهة التي يتعامل معها المستخدم . : View  ويجري ضمنه كل عمليات التحقق من (Business Logic Code ) هو الذي يحوي كود منطق العمل : Controller  بالإضافة إلى عملية التحقق من الصلاحيات وتسُمى هذه العملية Authentication وهذه العمليات تسُمى ID المعرفات . Authorization أيضا : DAO & ORM (Model)  05 18 تشرين الثاني، 14
  • 19.
    Model View ControllerDesign Patterns View 1 View 2 View 3 Controller Model 1 Model 2 M0del 3 05 19 تشرين الثاني، 14
  • 20.
    Model View ControllerDesign Patterns  View Controller Model ORM DAO Oracle SQL server MySQL 05 20 تشرين الثاني، 14
  • 21.
    3tiers Architecture هيمعمارية أو بنيان كامل لبناء تطبيقات ثلاثية الإرتال لها مجموعة من الأهداف منها :  فصل المتطلبات الوظيفية عن المتطلبات الغير وظيفية .  تخديم عدد كبير من الزبائن .  ؟ MVC Design Pattern 3 و tiers Architecture ما الفرق بين ال  ؟ MVC , 3tiers ما العلاقة بين ال  05 21 تشرين الثاني، 14
  • 22.
    MVC , 3tiersالعلاقة بين ال Presentation Tier Business Logic Tier View Control ler Model Storage Tier Oracle SQL server MySQL Desktop Applicatio n Web Application Mobile Application 05 22 تشرين الثاني، 14
  • 23.
    05 23 تشرينالثاني، 14