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
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 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
13. Synchronization Mode
مساوئ هذه الطريقة :
. )Ram + CPU Time( استهلاك عالي جداً للموارد
إقلاع النيسب يأخد وقت طويل نسبي اً
يمكن لهذا المخدم أن يتعرض لهجمة
يمكن إستخدام هذه الطريقة في بعض الحالات التي نضمن فيها عدد محدد للزبائن المتصلين كما
يجب أن نضمن عدم تعرض المخدم لهجمة معينة .
يوجد حل أفضل وهو مطبق في معظم المخدمات الموجودة في العالم .
05 13 تشرين الثاني، 14
14. Thread Pool
كما شاهدنا أن وضع التزامن يستهلك الكثير من الموارد .
لذلك يوجد حل أخر هو أن نقوم بحجز مجموعة من النياسب التي تعمل بشكل دائم )لا تموت أبد اً(
لتخديم عدد معين من الزبائن والبقية تنتظر لزمن معين )يفترض أن يكون مقبول(.
جزء من موارد الحاسب ليتم إعادة استخدامها . )ThreadPool( تخصص هذه الطريقة
باستخدام حوض )Data Base Servers( ومخدمات قواعد المعطيات )Web Servers( تقوم مخدمات الويب
من النياسب بدلاً من تخصيص نيسب خاص لكل زبون
وبذلك نستطيع التخلص من المشاكل الموجودة في وضعية التزامن .
05 14 تشرين الثاني، 14
15. Advanced Concepts in Software 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 Controller Design Patterns
كاملة لكيفية تصميم وبرمجة التطبيقات سواء كانت تطببيقات عادية أو (Methodology ) يعتبر منهجية : MVC
حتى في التطبيقات المؤسساتية الكبيرة .
؟ MVC ما هي المشاكل التي يحلها
تعدد الواجهات .
تعدد وسائط التخزين .
الهدف من هذه الطريقة هو فصل المكونات الثلاثة عن بعضها
البعض .
05 17 تشرين الثاني، 14
18. Model View Controller Design Patterns
وهي الواجهة التي يتعامل معها المستخدم . : View
ويجري ضمنه كل عمليات التحقق من (Business Logic Code ) هو الذي يحوي كود منطق العمل : Controller
بالإضافة إلى عملية التحقق من الصلاحيات وتسُمى هذه العملية Authentication وهذه العمليات تسُمى ID المعرفات
. Authorization أيضا
: DAO & ORM (Model)
05 18 تشرين الثاني، 14
19. Model View Controller Design Patterns
View 1
View 2
View 3
Controller
Model 1
Model 2
M0del 3
05 19 تشرين الثاني، 14
20. Model View Controller Design 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