یک کنترلر ۵۰۰ خطی عجیب و جالب!!!!

در حین بررسی کنترلرهای مختلفی که میشه برای نوشتن برنامه روی سوییچ از آنها استفاده کرد یک چیز عجیب و غریب توجهم را به خودش جلب کرد. یک کنترلر مبتنی بر node.js که از قضای روزگار کد کنترلر که به زبان javascript سمت سرور یا node.js نوشته شده حدود ۵۰۰ خطه. اما برای فهم اون باید چند نکته را توضیح بدم.

شاید شما هم مثل من کم و بیش در مورد یک زبان برنامه نویسی به نام Node.js چیزهایی شنیده باشید.  (اگر طالبید که بیشتر بدونید و حتی خیلی  سریع باهاش یک وب سرور!!! – تعجب نکنید که این رو جدی گفتم- بسازید یه نگاهی به لینک‌های زیر بیندازید. نصب اون تحت ویندوز هم خیلی ساده است و شما به راحتی میتونید نصبش کنید: سایت nodeیه مطلب خیلی جمع و جور و خلاصه و خوب در باره node)

اما برنامه‌های node به زبان جاوا اسکریپت نوشته میشن. جاوا اسکریپتی که سمت سرور اجرا میشه. البته از node میشه برای نوشتن برنامه‌های غیر سروری هم استفاده کرد ولی بیشتر کاربردش برای نوشتن برنامه‌های سروری مخصوصا وبسرورهاست.

حالا اگر با خوندن مطالب قبلی یه کم اطلاعات در مورد node.js کسب کرده باشید با خوندن این مقاله احتمالا به تعجب شما افزوده خواهد شد. چون در این مقاله بر اساس یک کتابخانه موسوم به oflib-node که وظیفه تفسیر پیام‌ها بین پروتکل openflow و javascript را بر عهده دارد ( و به نظر میرسد آخرین به روزرسانی آن مربوط به ۳ سال پیش بوده و تنها از OpenFlow نسخه‌های ۱٫۱ و۱٫۰ پشتیبانی می‌کند) یک کنترلر نوشته شده است.

این مقاله از چند جهت حایز اهمیت است: اولا چون با کدهای javascript اکثر دوستان آشنا هستند نوشتن این کنترلر و توسعه‌ی آن کار ساده‌تری هست.

دیگر اینکه اصلا میشود یه کار اساسی‌تر کرد و آن اینکه Oflib-node را توسعه داد تا سایر نسخه‌های OpenFlow را پشتیبانی کند.

 

صفحه NodeFlow در github:

https://github.com/gaberger/NodeFLow

مقاله‌ای حاوی توضیحات در مورد کنترلرهای مختلف و از جمله کنترل nodeflow

https://www.packtpub.com/books/content/openflow-controllers#more

لطفا نظر خود را بنویسید

3 دیدگاه

    • این کنترلر البته یه مشکل هم دارد که به آن اشاره کردم و اون هم اینه که سه سالی است که دیگه به روز نشده و بنابراین نسخه‌های اخیر OpenFlow را پشتیبانی نمی‌کند. البته این به نظرم ایراد جدی ای نیست و میشه اصلا یه کار دیگه کرد و اون هم اینه که از git در به روزرسانی این پروژه مشارکت داشت. در هر حال اگر خیلی سریع روش کار کنین و نتیجه اولیه را اطلاع بدین خوبه