السلام عليكــم ورحمـة الله وبركاتــه ،،
نبدأ على بركة الله بمقدمة عن Internet direct أو ما يعرف إختصارا بـ Indy :
ماهي Indy :
هي إختصار للكلمة Internet direct (أنترنت موجه أو مباشر ) وهي مجموعة من مكونات
مفتوحة المصدرمبنية على لغة Object Pascal تستخدم لبناء وتطويرالتطبيقات التي تعتمد على بروتوكولات
الإنترنت الشائعة وكل ما له علاقة بالشبكات .
Indy - هي مكتبة تطوير متعددة المجاري ('Multi threading) تعتمد على Blocking Socets ( إذا نجح
الإتصال يحدث ما يعرف بـ Return وإذا لم ينجح يحدث إستثناء) وهي متاحة ومدعومة في كل اللغات التالية :
Borland delphi - Borland C++ Builder لنظام ويندوز و Borland Kylix لنظام لنيكس
تحتوي Indy على Clients , Servers , TCP , UDP , Raw Sockets و أكثر من 100 بروتوكول , منها
SMTP , HTTP , POP3 , NNTP . أيضاً Indy تدعم OpenSSL و Zlib في بروتوكولاتها .
إصدار Indy 10 ينفذ إلى Free Pascal ويعمل على Windows , Linux , FreeBSD, Darwin
Indy متوفر لـBorland Delphi و C++ Builder و Kylix أيضاً .
Indy مرخص تحت رخصة indy modified BSD Licence و indy MPL Licence .
وفي بداية عام 2008 , بدأ مشروع اسمه # Indy لكتابة Indy في# C .
ومن أمثلة إستخداماتها الأكثر شيوعا البرمجيات من نوع ( مخدم-زبون)
وقد تم إضافتها على شريط أدوات دلفي بداية من النسخة السادسة ، وفي النسخة السابعة من دلفي فاق عدد عناصرها
مائة (100)عنصريمكن أن نصنفها كما يلي :
عناصر الزبون (Client)
عناصر المخدم (Server)
عناصر دعم وتحكم إضافية ومتفرقات
صورة عناصرIndy ضمن شريط أدوات دلفي 7
ولعل أهم ما يميز مكونات Indy هو جمعها بين القوة وسهولة الإستخدام ويتلخص ذلك فيما يلي :
- شفرة Indy مفتوحة المصدر بمعنى توفر إمكانية الإظطلاع عليها والتعلم منها والتعديل فيها
Indy - تدعم منصات متعددة (Cross-platform) بمعنى نفس الشفرة تعمل على لينكس وويندوزوNet
Indy - تغلف عملية الإتصال : تقوم إندي بتغليف عمليات الإتصال وإجراءات البروتوكولات مما يسهل مهمة
المبرمج
- تدعم Indy ما يسمى Multibyte character sets وهذه ميزة مهمة للتطبيقات غير الناطقة بالإنكليزية أي أنك
تستطيع إرسال محارف آسكي بالغة العربية مثلا أو اليابانية ....
- تدعم Indy الطيف الأوسع من بروتوكولات الأنترنت : بما فيها الأساسية مثل : UBD و TCP والبروتوكولات
الأبناء مثل : SMPT-POP-TELNET-COPHER-ECHO وغيرها وربما لا نبالغ إذا قلنا أنها تدعم كل
بروتوكولات الإنترنت المشهورة اليوم التي تعود للأب IP وهذا يعني أنك لن تحتاج أدوات أخرى غيرها عند تطوير
برامجك .
كما قلنا سابقا Indy مبنية على تقنية المجاري المتعددة 'Multi threading وهي ميزة لا تقدر بثمن للتطبيقات
المتقدمة وتوفر أداء مستقر وتقلص مشاكل Frezzing' ' المرتبطة بالتطبيقات الشبكية.مما يعني أن المخدمات المنشأة
بواسطة عناصر Indy تستطيع التعامل مع عدد كبير من الزبائن في نفس الوقت.
- تدعم Indy ما يسمى بـ Thrad pooling أي أنها لا تحفظ مجرى محدد لكل زبون يشغله طول الوقت سواء كان
متصل أم لا ، بل تتم عملية تحرير المجاري بصورة ديناميكية ، وطالما الزبون لا يستخدم المجرى يتم إستثماره مع
زبون آخر، وهذه تعتبر إدارة حكيمة للذاكرة وإحدى مميزات Indy
Indy - مبنية على إستدعاءات المقابس المتراصة Bloking sokets calls ، الإستدعاء المتراص إن جاز التعبير يتم
بشكل مشابه لإستدعاءات توابع الباسكال مما يوفر مرونة بالغة ، حيث تتم كتابة الشفرة سطر سطرا وتتولى اندي
تحرير نفس المقطع البرمجي عدة مرات في الذاكرة من أجل كل زبون متصل على حدة دون إرباك المبرمج بذلك.
تاريخ Indy :
في بداية الأمر , كانت Indy تسمى Winshoes وكتبها Chad Z. Hower من خلال
Visual Basic عام 1993 .
انتقلت إلى دلفي عام 1995 .
تم إدخالها تحت رخصة المصادر المفتوحة عام 1997 .
في عام 2000 ، Winshoes أصبحت Cross-Platform , وتم تغيير اسمها ليصبح
Internet Direct Indy
أضفاتها Borland مع Borland Delphi و C++ Builder و Kylix عام 2001 .
في 2003 أضيفت Indy إلى Delphi.NET , وتم توفيرها لمنصة .NET
