WSO2 چیست؟
معرفی WSO2
این فناوری یک تکنولوژی متن باز و میان ابزاری (Middle ware) با زبان جاوا است. این تکنولوژی به صورت یک چهار چوب کاری (Frame Work) و مبتنی بر میکرو سرویس (WSO2 MSF4J) است. WSO2 پلتفرمی برای توسعه نرم افزار های جدید می باشد. این تکنولوژی در مارس 2016 ارائه شده است. ادعای این فناوری توسعه سریع و آسان نرم افزار، کارایی بالا (high-performance micro services) و پشتیبانی از کانتینر ها است. WSO2 برای ساخت بسیار سریع برنامه ها و کدنویسی و تولید نرم افزار به سبک های بسیار سریع استفاده میشود. WSO2 در کنار ویژگیهای زیادی که دارد به طور گسترده ای پشتیبانی از چارچوب Spring را نیز انجام میدهد. طبق ادعایی که از WSO2 میکند در موارد زیر نسبت به Spring boot برتری دارد:
- Throughput
- Memory consumption
- Latency
Here is a summary of how MSF4J 2.0 compares against Spring Boot 1.3.5.
در معماری Microservices، برنامه سمت سرویس دهنده به سرویسهای مختلفی تقسیم میشود. هر سرویس یک فرآیند پردازشی مستقل است که به عنوان یکی از قابلیتهای خاص برنامه سمت سرور به حساب میآید. به عنوان مثال یک سرویس وظیفه مدیریت حساب کاربران را به عهده دارد و سرویس دیگر بطور مستقل برای گردش کار استفاده میشود. برنامههای نوشته شده با این معماری اجباری برای اجرا شدن در سرورهای جداگانه را ندارند، مگر اینکه یک سرویس، شرایط خاصی از جمله مصرف بالای RAM یا نیاز به پردازش ویژه و زیاد در CPU را داشته باشد. در اینصورت بهتر است که سرویس از یک سرور مجزا اجرا شود. لازم است که سرویسها در بستر شبکه با یکدیگر در ارتباط باشند.
البته با همه مزایایی که معماری Microservices دارد با مشکلات زیر نیز مواجه هستیم:
- از آنجایی که برنامههای سمت سرور نوشته شده با این معماری به سرویسهای مختلفی تقسیم میشوند، گسترش و تنظیمات آنها میتواند کاری وقت گیر و طاقت فرسایی باشد.
- از آنجایی که ارتباط بین سرویسها در بستر شبکه انجام میشود، انتظار کندی عملکرد سرویسها دور از ذهن نیست.
- به دلیل ارتباطات شبکهای، احتمال آسیب پذیریهای امنیتی در این نوع برنامهها بیشتر است.
- نوشتن سرویسهایی که در بستر شبکه با سایر سرویسها در ارتباط هستند سختی و مشکلات خود را دارد. برنامهنویس در این شرایط، درگیر برقراری ارتباط، رمزگذاری دادهها در صورت نیاز و تبدیل آنها میشود.
- به دلیل مجزا بودن بخشهای مختلف برنامه، مانیتور کردن و ردیابی عملکرد سرویسها، یکی از کارهای اصلی توسعه دهنده یا استفاده کننده از برنامه است.
- در مجموع سرعت برنامههای نوشته شده با معماری Microservices کندتر از برنامههای نوشته شده با معماری Monolithic است. دلیل آن محیط اجرایی برنامهها است. برنامههایی با معماری Monolithic بر روی حافظه سرور پردازش میشوند.
از رویکرد های مثبت در رابطه با استفاده از WSO2 میتوان بهرهگیری از فناوری های کانتینر سازی و مشخصا داکر اشاره کرد. چرا که بخشی عمده ای از زیر سرویس ها را میتوان به در بستر های مجازی سازی شده بدست آورد. برای کسب اطلاعات بیشتر به مبحث مربوط به معرفی داکر مراجعه کنید.
WSO2 دارای بخش ها و سرویس های مختلف بوده و گاها این سرویس ها را برای راحتی کار به صورت ویزاردی و گرافیکی ارائه میدهد. از مهمترین سرویس های ارائه شده توسط WSO2 می توان به موارد زیر اشاره نمود.
- IDENTITY & ACCESS MANAGEMENT: از نکات قوت WSO2 به کنترل دسترسی و ACL قدرتمند آن اشاره کرد که مبتنی بر استاندارد SSO کار میکند
- INTEGRATION: این یک ابزار ESB یا گذرگاه تبادل اطلاعات در اختیار میگذارد.
- API MANAGEMENT: مدریت ارتباطات با سرویس های دیگر را عهده دار خواهد بود.
- ANALYTICS: ابزار های تحلیل داده را در اختیار استفاده کنندگان قرار میدهد
- INTERNET OF THINGS: اینترنت اشیاء
- API CLOUD: ارتباط با کلود
- IOT: اینترنت اشیاء و امکان برنامه نویسی با موبایل را فراهم میکند.
- WSO2 Carbon: سکوی میان افزار سازمانی
- MSF4J (Micro service Framework for Java): فریم ورک ساخت نرم افزار های میکرو سرویسی برای جاوا
- WSO2 Stratos: سکوی میان افزار ابری
در ادامه هر یک از موراد بالا مورد بررسی قرار خواهد گرفت.
IDENTITY & ACCESS MANAGEMENT:
از نکات قوت WSO2 به کنترل دسترسی و ACL قدرتمند آن اشاره کرد که مبتنی بر استاندارد SSO کار میکند. SSO مخفف Single Sign On به عمل وارد شدن یک کاربر به سایتها و برنامههای مختلف تنها با یک نام کاربری و گذرواژه یکسان میگویند.به این معنی که اطلاعات مربوط به اعتبار سنجی و تائید هویت کاربر یعنی user name و password ، در یک ناحیه امن بصورت موقت نگهداری میشود و از آن پس این کاربر بمنظور ورود به سایتها و بخشهای مختلف)دسترسی به برنامههای متعدد) نیازی نیست مجدداً Login نماید.
این سیستم قابلیت متمرکز کردن احراز هویت انواع سیستمهای نرمافزاری، فارغ از مکانیزم مورد استفاده برای احراز هویت را در خود دارد. در ساختار SSO کاربر صرفا یک نام کاربری و رمز عبور یکتا در شبکه دارد که بلافاصله بعد از اینکه وارد یک سیستم در ساختار SSO شود میتواند از تمامی منابعی که برای وی در شبکه تعریف شده است استفاده کند، بدون نیاز به اینکه برای هر منبع اطلاعاتی نام کاربری و رمز عبور جدیدی وارد کند.
قابلیت Single Sign On یا SSO برای برطرف کردن مشکل ورود کاربر با نامهای کاربری و رمزهای عبور متعدد به سیستم های مختلف برای دسترسی به منابع را برطرف می کند. یک کاربر برای پیدا کردن دسترسی به منابع مختلف در شبکه مجبور است تعداد زیادی رمز عبور را حفظ باشد و یا آنها را در جایی یادداشت کند که این رمز ها فراموش نشوند ، معمولا همین رمز ها هستند که توسط مهاجمین مورد سوء استفاده قرار می گیرند . در ساختار SSO کاربر صرفا یک نام کاربری و رمز عبور یکتا در شبکه دارد که بلافاصله بعد از اینکه وارد یک سیستم در ساختار SSO شود می تواند از تمامی منابعی که برای وی در شبکه تعریف شده است استفاده کند ، بدون نیاز به اینکه برای هر منبع اطلاعاتی نام کاربری و رمز عبور جدیدی وارد کند .
در SSO امنیت کلمه عبور بسیار حائز اهمیت است و اکانتهایی که بین سیستمها انتقال پیدا مینمایند باید بصورت رمزنگاری شده بکار گرفته شوند. سهولت در ویرایش اکانتها)مثل تغییر رمز عبور) و حذف حسابهای کاربری در مدیریت سیستمها، از مزیتهای SSO به شمار میایند.
ساختار پیادهسازی SSO از مراحل زیر تشکیل شده است:
- استفاده از دایرکتوری مرکزی جهت Authentication
- تصدیق کاربران بر اساس این دایرکتوری
- تعیین مجوزهای کاربران بر اساسCredential های مربوطه
پیادهسازیSSOبه روشهای مختلفی صورت میپذیرد که دو روش آن در زیر آورده شده است:
- اسکریپت: در این روش، اسکریپت اطلاعات اکانت کاربر را بصورت رمزگذاری شده به سیستم تشخیص هویت ارسال میکند و پس از تائید هویت، کاربر وارد سیستم میشود.
- کوکی: در این روش کوکیهای سیستم کاربر به سروری که کاربر میخواهد به آن وارد شود ارسال میشود. در واقع سیستمهای نرمافزاری تحت وبی که دامنه(Domain) مشابه دارند، اما بر روی چند سرور قرارگرفتهاند، جهت تشخیص هویت کاربر از کوکیهایی استفاده مینمایند که بصورت رمزنگاریشده هستند و بر روی سیستم کاربر قرارگرفتهاند. به این ترتیب هویت کاربر در تمامی سرورها تائید میشود.
INTEGRATION (WSO2 ESB)
بعد از معرفی WSO2 در بالا حال به بررسی ESB در این محصول میپردازیم. اين محصول داراي کامپوننتهاي مختلفي میباشد که به صورت توزیعشده، نصب و راهاندازی میشود و هر کامپوننت وظيفه خاص خود را انجام ميدهد. براي نمونه اين ابزار براي هر يک از قابليتهاي امنيت، مديريت جریان کاری و ثبت سرويس، کامپوننت جدايي ارائه نموده است، که اين کامپوننتها به صورت مستقل نياز به دانش و راهاندازي دارد. اين محصول راهحلي را به جاي JBI ارائه کرده است و از JBI پشتيباني نميکند.
با توجه به نبود مستندات مناسب و وجود کامپوننتهاي متفاوت براي قابلیتها، راهاندازي و استفاده از آن کار دشواري میباشد. با بررسيهاي انجامشده اين نتيجه حاصل شد که اين ابزار براي برطرف نمودن نيازمنديهاي خاص خود توسعه داده شده است. در ادامه قابلیت WSO2 INTEGRATION با ESB های دیگر مورد مقایسه قرار گرفته است.
Forrester’s Weighting | Fuse Source | IBM (WESB) | Mule Soft | Oracle | Progress Software | Red Hat | Software AG | Tibco Software | WSO2 | |
CURRENT OFFERING | 50% | 4.6 | 3.68 | 4.35 | 4.74 | 4.78 | 3.21 | 4.89 | 4.71 | 4.47 |
Architecture | 40% | 4.88 | 3.92 | 4.7 | 4.58 | 5 | 2.9 | 4.88 | 5 | 4.48 |
Orchestration | 10% | 5 | 3 | 2.5 | 5 | 5 | 2.5 | 5 | 4 | 4 |
Mediation | 20% | 3.89 | 3.77 | 4.14 | 4.76 | 4.27 | 3.98 | 4.69 | 4.63 | 4.75 |
Connection | 10% | 4.7 | 4.6 | 5 | 4.6 | 4.6 | 3.33 | 5 | 4.6 | 4.26 |
Change and control | 20% | 4.52 | 2.99 | 4.47 | 5 | 4.84 | 3.37 | 5 | 4.6 | 4.49 |
STRATEGY | 50% | 3.48 | 3.1 | 2.78 | 4.2 | 4.05 | 3.05 | 4.6 | 4.45 | 2.95 |
Product strategy | 50% | 4.2 | 3.6 | 3.2 | 5 | 4.7 | 3.7 | 5 | 4.7 | 4.5 |
Strategic alliances | 10% | 1.8 | 5 | 3.8 | 5 | 5 | 4 | 5 | 5 | 3 |
Customer reference checks | 40% | 3 | 2 | 2 | 3 | 3 | 2 | 4 | 4 | 1 |
MARKET PRESENCE | 0% | 2.2 | 3.45 | 1.73 | 4.55 | 3.23 | 1.45 | 4.78 | 4.63 | 1.03 |
Installed base | 40% | 2.5 | 3 | 1.5 | 5 | 3 | 1 | 5 | 5 | 0.5 |
New customers | 30% | 2 | 2.5 | 2 | 4 | 3 | 1 | 5 | 5 | 1 |
Delivery footprint | 30% | 2 | 5 | 1.75 | 4.5 | 3.75 | 2.5 | 4.25 | 3.75 | 1.75 |
WSO2 Stratos: سکوی میان افزار ابری
WSO2 stratos یک بستر مبتنی بر ابر برای میزبانی برنامه های مبتنی بر معماری سرویس گرا و بستر بعنوان سرویس (PaaS) است. سرویس هایی مثل Dropbox جزو همین دسته قرار میگیرند.یا آفیس گوگل هم به همین صورت هست. استراتوس چند نوع سرویس مختلف را ارائه میدهد که هرکدام برای نوع فعالیت خاصی مناسبند .چند نمونه از کاربردهای استراتوس را میشود در قالب چند مثال نشان داد بعنوان مثال:
استراتوس فقط با چند کلیک به کاربرای خودش این امکان رو میدهد تا بتوانند یک بستر مبتنی بر(SOA) کامل را برای خودشان ایجاد کنند که شامل سرویسهایی مثل مخزن وب سرویس، ESb، موتور جریان کار،Registry و BAM هست.کاربران ممیتوانند یا فقط یک سرویس مشخص (بعنوان مثال Registry) داشته باشند، یااینکه تعدادی سرویس را انتخاب، یا سرویسهای فعلی را بعدا گسترش بدهند.
تمام این سرویس ها با هم یکپارچه شده و کاربر را، از فعالیتهایی مربوط به تنظیم و یکپارچه سازی آنها بی نیاز میکند. مهمتر از این، استراتوس از برنامه های مبتنی بر معماری شی گرا (SOA) معمولی پشتیبانی می کند؛ در نتیجه، مدل برنامه نویسی مبتنی بر(SOA) بدون تغییر حفظ میشد.
بعنوان مثال، با استراتوس یک کاربر میتواند آرشیو وب سرویس فعلی خودش را بدون هیچ تغییراتی پیاده سازی کند و یا نمونه دیگه اینکه حتی رابط های کاربری در کنسول تحت وب استراتوس همون ویژگی ها و شکل و شمایل معمولی ای که در ورژن مستقل وجود دارد حفظ میشود. در نتیجه در صورت استفاده از استراتوس هم انتقال آسانی داریم و هم مطالب بسیار کمی برای یادگیری نیاز هست .
استراتوس با نظارت بر روی بار وارده به برنامه ها از مقیاس بندی خودکار برای اون ها و تخصیص خودکار منابع به آنها پشتیبانی می کند. با اینکار منابع محاسباتی بصورت بهینه مورد استفاده قرار میگیرند و نیاز به تنظیمات و مدیریت پیچیده خوشه بندی و کلاسترینگ در سرور از بین میرود.
علاوه بر اینها ، مقیاس بندی خودکار این اجازه را کاربر نهایی میدهد تا با امکانات ابتدایی و کم شروع کند و بعد بر اساس نیاز خودش منابع رو بطور تدریجی افزایش بدهد و به این صورت فقط برای چیزی که مصرف میکند تنها هزینه پرداخت کند و هم از آنجایی که منابع بر اساس نیازموجود از طریق قابلیت چند مستاجره ای اختصاص داده میشود، هزینه پیاده سازی یک برنامه بر روی استراتوس در پایین ترین سطح ممکن قرار میگیرد. منطق چند مستاجره بطور خیلی ساده به معنای این هست که چند فرد روی یک بستر (با بطور خیلی ساده سرور) قرار دارند و اینطور هزینه ها برای اینها سرشکن میشود.
WSO2 Carbon: سکوی میان افزار سازمانی
Wso2 Carbon یک فریم ورک مبتنی بر کامپوننت برای ساخت سرور های مبتنی بر معماری شی گراست که ما به اختصار به آن (SOA)میگوییم،.WSO2 Stratos کارکردهایی که بستر کربن بعنوان یک سرویس ارائه می کند ارائه میدهد و خودش هم با استفاده از بستر کربن ساخته شده و سرویس هایی نظیر میزبانی وب سرویس،امنیت،ذخیره سازی داده،رابط های کاربری رو بعنوان سرویس های اصلی فراهم می کند.
کربن مفاهیمی مثل میزبانی وب سرویس،وساطتت، مدیریت سرویس ،ورود و فهرست سرویس ها و … را بعنوان اجزاء کربن ایجاد کرده و کاربرای نهایی میتوانند این گونه سرورهای (محصولات) خودشون رو با ترکیب زیرمجموعه از ویژگی ها با هم تعریف کنند. مثلا یک کاربر میتواند یا یک سرور فعلی را گسترش بده و یا محصولش را با ترکیب ویژگی های مختلف ایجاد کند. البته قابل ذکر است که این بستر صرفا سرویس گرا هست و مبتنی بر میکرو سرویس نمی باشد لذا پیشبینی میشود که در آینده توسعه آن متوقف و بجای آن یک روش مبتنی بر میکرو سرویس ارائه شود.
منابع:
http://wso2.com/products/data-services-server/
http://wso2.com/products/business-process-server/
http://www.faragostar.net/sso-authentication/
http://forum.ustmb.ir/thread2564.html
https://security.itpro.ir/articles/232/%D8%B4%D9%86%D8%A7%D8%B3%D8%A7%DB%8C%DB%8C-%D9%88-%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2-%D9%87%D9%88%DB%8C%D8%AA-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-sso-%D9%88-kerberos-%D9%88-sesame-%D9%88-kryptonite
آدرس کانال تلگرام سایت بیگ دیتا:
آدرس کانال سروش ما:
https://sapp.ir/bigdata_channel
جهت دیدن سرفصل های دوره های آموزشی بر روی اینجا کلیک کنید.
بازدیدها: 5355
برچسبFrame Work micro services microservices SOA WSO2 WSO2 Carbon WSO2 Identity Server WSO2 MSF4J WSO2 platform WSO2 تکنولوژِی WSO2 چهار چوب WSO2 فریم ورک پلتفرم چهار چوب داکر سرویسگرا کربن معرفی WSO2 میکرو سرویس
همچنین ببینید
مقایسه وب سرویس های RESTful و SOAP
هر چند که وب سرویس RESTful و SOAP مستقیما با موضع کلان داده ارتباطی ندارد …
مقایسه داکر (Docker) با VServer و OpenVZ و LXC
این روزها، توسعه دهندگان نرم افزار، شاهد ارز اندام مقتدرانه تکنولوژی کانتینرها هستند. در این …