ما بنيناه ولماذا
برنامج وسيط بلغة C# يعمل داخل شبكة العميل، يزامن المخزون والأسعار لحظياً بين المتجر الإلكتروني ونظام محاسبة محلي لا يوفّر واجهة برمجية.
التحدي
الوضع التشغيلي كما وجدناه قبل أن نكتب سطراً واحداً.
متجر إلكتروني ونظام محاسبة ومخزون محلي يعمل على Windows داخل شبكة الشركة — يعملان بمعزل تام.
النتيجة المألوفة: صنف نفد من المستودع ولا يزال معروضاً للبيع على المتجر، فيُباع ما لا يوجد ويُلغى الطلب ويخسر العميل ثقته. وأسعار تُحدَّث في نظام المحاسبة ولا تصل إلى المتجر، فيُباع بسعر قديم.
العقبة التقنية أن نظام المحاسبة المحلي لا يوفّر واجهة برمجية ولا يمكن الوصول إليه من الخارج، فالتكامل التقليدي عبر API غير متاح أصلاً.
قبل
- صنف نفد من المستودع ولا يزال معروضاً للبيع على المتجر
- أسعار تُحدَّث في نظام المحاسبة ولا تصل إلى المتجر
- نظام محاسبة مغلق بلا واجهة برمجية يتعذّر ربطه من الخارج
بعد
- تطابق أرصدة المتجر مع المستودع لحظياً وإيقاف بيع الناضب
- تحديث الأسعار آلياً من مصدر واحد بلا إدخال مزدوج
- تكامل النظام المغلق دون تعديله ودون تعريض قاعدة بياناته
كيف عملنا على هذا النظام
المسار نفسه في كل مشروع نبنيه — يتغيّر محتواه لا ترتيبه.
تحليل العمل
نجلس مع من يستخدم النظام يومياً، ونرسم المسار الفعلي بكل استثناءاته — وهي غالباً سبب تعثّر المشاريع لاحقاً.
تصميم المعمارية
نموذج البيانات ومصفوفة الصلاحيات ونقاط التكامل وسلوك النظام تحت الحِمل — تُحسم قبل أي واجهة.
التطوير
بناء على مراحل قابلة للاستخدام. كل مرحلة تدخل الخدمة عاملةً، فيُصحَّح المسار مبكراً وبكلفة أقل.
التكامل
ربط النظام بما حوله — محاسبة ودفع وجهات خارجية — بطبقة لا تنكسر عند أول تعطّل في الطرف الآخر.
التحسين والتشغيل
قياس الأداء تحت حِمل حقيقي، ثم تشغيل ومراقبة وصيانة تمتدّ بعد التسليم لا تنتهي به.
الحل بوحداته
ما بنيناه فعلاً، مفصّلاً بالوحدة لا موصوفاً بعبارة عامة.
قراءة مباشرة من قاعدة بيانات نظام المحاسبة
للأصناف والكميات والأسعار
مزامنة لحظية
للمخزون والأسعار إلى المتجر الإلكتروني
إيقاف عرض الصنف للبيع تلقائياً
عند نفاد الكمية
تحديث المنتجات والأسعار آلياً
دون إدخال يدوي
معالجة الفشل والانقطاع
بإعادة محاولة تلقائية وسجلّ لكل عملية
سجلّ تشغيل وتنبيهات
عند تعذّر الاتصال بأي طرف
المعمارية التقنية
الطبقات كما بُنيت فعلاً في هذا النظام — من قناة المستخدم إلى البنية التي تشغّله.
واجهات برمجية أولاً
كل طبقة تتحدّث إلى ما فوقها عبر واجهة موثّقة، فإضافة قناة جديدة لاحقاً لا تعني إعادة بناء ما تحتها.
الأمان بين الطبقات
الصلاحيات تُفحص في طبقة الأعمال لا في الواجهة، وسجلّ التدقيق يوثّق كل عملية تغيّر بيانات.
أداء تحت الحِمل
العمليات الثقيلة تُدفع إلى طوابير خلفية، والقراءات الأكثر تكراراً تُخزَّن مؤقتاً، فتبقى مسارات المستخدم سريعة في الذروة.
التقنيات ولماذا اخترناها
نختار الأداة بحسب ما يجب أن تتصل به وما يجب أن تصمد أمامه — لا بحسب ما هو رائج هذا العام.
هندسة الخلفية Backend
لغة الخدمات التي تعمل على Windows جنباً إلى جنب مع أنظمة العميل المحلية.
حين يعمل النظام داخل بيئة Windows مؤسسية قائمة، فالتكامل معها من داخلها أقصر وأثبت من الجسور الخارجية.
خدمة تعمل في خلفية جهاز العميل بلا تدخّل، تُزامن نظاماً محلياً مغلقاً مع منصة سحابية.
البيانات والأداء Data
الاستعلامات المكتوبة يدوياً في المسارات الحرجة، حيث يكون التحكّم الدقيق بخطة التنفيذ أهم من راحة الكتابة.
التكامل Integration
واجهات موثّقة تجعل النظام قابلاً للربط بما بعده. هذا ما يحوّل إضافة تطبيق جوال أو نظام ثالث لاحقاً إلى أسابيع بدل مشروع جديد.
الأنظمة المرتبطة Connected Systems
تحديات هندسية حللناها
القرارات التي اتُّخذت في هذا النظام تحديداً، وسبب كل منها.
الوسيط داخل الشبكة لا خارجها
— بدل فتح قاعدة البيانات المحلية للإنترنت (وهو ما رفضناه لأسباب أمنية)، يعمل البرنامج داخل الشبكة ويبادر هو بالاتصال الصادر إلى المتجر. لا منفذ مفتوح ولا سطح هجوم جديد.
القراءة فقط من نظام المحاسبة
— الوسيط لا يكتب في قاعدة بيانات النظام المحاسبي إطلاقاً. أي تكامل يكتب مباشرةً في قاعدة نظام محاسبي مغلق هو مخاطرة لا تُبرَّر.
الحالة محفوظة محلياً
— يحتفظ الوسيط بآخر حالة مزامنة، فانقطاع الاتصال ساعات يعني استئنافاً من حيث توقّف لا إعادة مزامنة كاملة.
الأثر بعد التشغيل
ما تغيّر فعلاً في عمل العميل — لا ما وعدنا به قبل البدء.
- تطابق أرصدة المتجر مع المستودع لحظياً بدل فروقات تُكتشف بعد البيع
- إيقاف بيع الأصناف الناضبة تلقائياً وإنهاء إلغاءات الطلبات الناتجة عن ذلك
- تحديث الأسعار آلياً من مصدر واحد بدل الإدخال المزدوج
- تكامل نظام مغلق لا يوفّر واجهة برمجية، دون تعديله ودون تعريض قاعدة بياناته للخارج
الأرقام أعلاه تخصّ حجم نظام العميل الذي بنيناه ونشغّل بنيته، لا حجم أعمالنا نحن. ونلتزم باتفاقيات السرية، فنعرض العمق التقني دون أسماء العملاء.