شبکه اجتماعی حرفه ای با EXO Platform و فارسی سازی آن

پنجشنبه, 06/11/2015 - 15:27 -- admin

EXO Platform یک پلت فرم استاندارد با جاوا می باشد که قابلیت های شبکه های اجتماعی مدرن را دارا است و نسخه های موبایل آن نیز برای اندروید و ios به صورت Native و حرفه ای به زبان های جاوا و Objective C نوشته شده است.شرکت رایان داده پردازان دلفین با داشتن تیم مجرب و حرفه ای قادر به نوشتن Portlet های سفارش مشتری می باشد و همین طور شرکت با مدیریت خانم مهندس اعظم جلالی اقدام به توسعه همه جانبه ی آن در زمینه های وب و نسخه های موبایل کرده است. و بسیاری از موارد را به صورت استاندارد بنا به خواسته های مشتری توسعه داده است .

  EXO Platform یک پلت فرم استاندارد با جاوا می باشد که قابلیت های شبکه های اجتماعی مدرن را دارا است و نسخه های موبایل آن نیز برای اندروید و ios به صورت Native و حرفه ای به زبان های جاوا و Objective C نوشته شده است     شرکت رایان داده پردازان دلفین با داشتن تیم مجرب و حرفه ای قادر به نوشتن Portlet های سفارش مشتری می باشد و همین طور شرکت با مدیریت خانم مهندس اعظم جلالی اقدام به توسعه همه جانبه ی آن در زمینه های وب و نسخه های موبایل کرده است. و بسیاری از موارد را به صورت استاندارد بنا به خواسته های مشتری توسعه داده است .

معرفی eXo

پروژه eXo در سال 2001 با ايده فراهم آوردن يك ابزار بهبود يافته ارتباطي براي ممكن ساختن ارايه دروس رياضي به صورت online آغاز شد. پايه گذار اين پروژه يك developer فرانسوي به اسم Bejamin  Mestrallet بود كه اكنون نيز نقش عمده و محوري در توسعه آن بر عهده دارد.

درسال 2003 زماني كه پيش نويس 168 JSR در JCP ارايه شده بود ، اعضاي تيم با مطالعه آن و بررسي
كد
Jetspeed تصميم گرفتند كه يك پياده سازي براي portlet container و portal سازگار با 168 JRS ارايه دهند. پس از پياده سازي و تست هاي اوليه يك نسخه از آن بر روي سايت surceforge.net قرار گرفت و
رسما eXo به عنوان يك پروژه متن آزاد شروع به كار كرد.
در آغاز كار دو از eXo به نام هاي exo-express و exo-enterprise و تحت GPL عرضه شد. در
بخش
license به بررسي دقيق GPL مي پردازيم. تفاوت اين دو نسخه در اين بود كه نسخه enterprise به همراه يك EJB Container عرضه مي شد و بنابراين براي اجرا به منابع بيشتري نياز داشت. در معماري نسخه
express از lightweight container استفاده شده بود.
در اواخر سال 2005 و اوايل 2006 نسخه دوم eXo تحت عنوان eXoplatform v2.o منتشر شد كه
تغييرات بسيار اساسي نسبت نسخه قبلي در آن مشاهده مي شود و در بخش ها ي بعدي به بررسي دقيق آن مي پردازيم
. پس از انتشار نسخه دوم به نحوي سياست eXo تغيير پيدا كرد به اين ترتيب كه تصميم گرفته شد eXo
به صورت يك محصول تجاري در كنار نسخه متن آزاد عرضه شود.

هم اكنون نسخه تجاري eXo در آدرس http://www.exoplatform.com و نسخه متن آزاد در
http://www.exoplatform.org قابل دسترسي مي باشد.
eXo براي خدمات ارايه خدمات بهتر در فرانسه ،برزيل ،اكراين و ويتنام شعبه تأسيس كرده است و قصد دارد يك شعبه نيز در ايالات متحده آمريكا تأسيس كند.

معماري
در اين بخش به بررسي معماري eXo و تكنولوژيهاي به كار رفته در آن مي پردازيم.توجه داشته باشيد كه در اينجا تنها اطلاعات مربوط eXoآمده است براي اطلاعات بيشتر در مورد اصطلاحات يغا تكنولوژيهاي مورد استفاده به ضميمه مراجعه نماييد.
در eXo platform تمامي (Business Logic) به صورت  sevice ها پياده سازي شده است. و با استفاده
از
IoC سعي شده است كه وابستگي اين serviceها تا حد امكان كم شود.
IoC و component manager به عنوان يك spring بر خلاف اكثر محصولات متن آزاد كه از eXo container استفاده مي كنند از يك light-weight container ساده به نام pico استفاده مي كند. براي اطلاعاتي در مورد pico container به وب سايت آن به آدرس http://www.picocontainer.org مراجعه كنيد.
بنابراين هر محصول از يك سري portlet,service هايي كه از آن sevice ها استفاده مي كنند و يك يا چند instance ازپراتال تشكيل شده است. بديهي است كه مي توان پرتال را براي هر محصول براي هر محصول خاص پيكربندي كرد.(كاربران،امنيت، template هاي وب و.)
وظيفه service container فراهم آوردن service ها براي لايه هاي بالاتر مي باشد.

Portlet Container

يك پياده سازي portlet – container براي portlet هاي مبتني بر 168 JSR مي باشد و تفاوت
چنداني با نسخه اول آن ندارد
. فقط وظيفه object pooling كه در نسخه اول توسط container انجام مي شد اكنون بر عهده JVM مي باشد زيرا JVM هاي جديد اين كار را به صورت بهتري انجام مي دهند.
پس از آنكه پرتال يك ليست از portlet هاي مورد نياز براي ساختن صفحه را به دست آورد از portlet container مي خواهد كه آنها render كند.

دقت داشته باشيد كه چون پرتال خود به صورت يك war فايل deploy شده است. بنابراين مي توانيم

چندين پرتال داشته باشيم كه هر كدام با portlet container ارتباط داشته باشد.

Portal

پرتال و portlet هاي اصلي همگي با استفاده از تكنولوژي Java Server Faces پياده سازي شده
اند تا بتواند قابليت هاي گسترده ديناميكي را براي ما فراهم كند.

هدف اصلي JCR يا Java Content Repository فراهم آوردن يك لا يه استاندارد بين
application و data storage مي باشد.

ساختار فايل ها و پوشه ها در eXo :

ساختار كلي eXo در tomcat به صورت زير است :
1. تمامي service ها به صورت jar فايل در شاخه exo-tomcat / common /lib/ قرار گرفته اند.
اين شاخه در زمان اجرا بين همه web-application مي باشد و بنابراين آنها مي توانند از service مورد نظر استفاده كنند.
2. تمامي webapplication ها مانند پرتال وECM به همراه portlet ها درشاخه webapps قرار مي گيرند.
3. چون eXo از maven به عنوان ابزار مديريت ساخت )build tool ( استفاده كرده است ساختار دايركتوري آن از maven پيروي مي كند.

هدف ECM يا Enterprise Content Management فراهم آوردن قابليت هاي مورد نياز به منظور انجام عمليا ت بر روي سند ها مي باشد. در زير اين عمليات شرح داده شده است :

Capture

در ECM راه هاي مختلفي براي ارسال سند به repository وجود دارد. براي مثال شما مي توانيد يك فايل
را از كامپيوتر خود به آن ارسال كنيد يا به صورت
online و از طريق ويرايشگر eXo كه بسيار شبيه word مي باشد آن را ايجاد كنيد.
اين سند مي توانند به فرمت هاي مختلفي مانند XML, PDF, Microsoft Ofice, انواع مختلف فايل هاي تصويري و...باشند.

Storing

عمل store براساس JCR كار مي كند يعني از طريق ارتباط با لايه JCR عمليات ذخيره سند را انجام
مي دهد
. بنابراين عملياتي مانند جستجو ، قفل نمودن فايل ها و versioning از وظايف لايه store مي باشد.

Manage

اين لايه در حقيقت مهم ترين و با ارزشترين عمليات روي سندها را براي ما ميسر ميسازد. ECM شامل
يك سري
portlet قدرتمند براي مشاهده ، تغيير و انتقال سندها ميباشد. همچنين ميتوانيم سندها را بين كاربران و گروه ها ي مختلف پرتال به اشتراك بگذاريم.
يك قابليت جالب eXo قابليت تبديل فايل هاي باينري به متن مي باشد. براي مثال براي مشاهده يك فايل
Word مجبور نيستيد كه آن را download كرده وبه صورت local روي كامپيوتر خود ببينيد. بلكه مي توانيد از ECM بخواهيد محتويات آن را در يك صفحه HTML نشان دهد.)تقريباً معادل همان كاري كه Gmail در مورد
attachment براي ما انجام مي دهد.( اين قابليت با استفاده از Groovy Scripts پياده سازي شده است.

Publish

Web publishing بدون شك يك ويژگي بسيار مهم براي ما مي باشد و به همين دليل ECM يك
Portlet براي ما فراهم نموده است كه به وسيله آن بتوانيم محتويات يك شاخه از repository را درآدرس خاصي publish نماييم.
در آينده نزديك قرار است كانال هاي ديگري براي publishing از قبيل email و PDF فراهم شود. web publishing از دستگاههاي موبايل نيز پشتيباني مي كند.

نسخه دوم eXo platform به دو صورت عرضه مي شود : به صورت تجاري با license اختصاصي و
به صورت متنآزاد تحت GPL. GPL يكي ازمحدود كننده ترين license هاي opensource مي باشد و امكان تهيه يك محصول
تجاري با license اختصاصي از محصول عرضه شده تحت GPL را از ما سلب مي كند.
آنچه در شرايط GPL به طور دقيق بيان شده مفهوم كار مشتق شده يا derived work مي باشد. كار
مشتق شده به كاري گفته مي شود كه از انجام يك سري تغييرات يا اضافه كردن ماژول جديد بر روي نرم افزارحاصل شده باشد و طبق شرايط
GPL اگر كار اصلي با license GPL منتشر شده باشد كار مشتق شده نيز
بايد تحت GPL باشد.
در مورد eXo كار مشتق شده به طور دقيق تشريح شده است :
"پخش و گسترش eXo platform با portlet هاي شما كه فقط از طريق Portlet API با پرتاليا
portlet container ارتباط برقرار مي كند امكانپذير است وشما مجبور نيستيد براي آنها از license استفاده كنيد واين يك كار مشتق شده به حساب نمي آيد. امااگر portlet ها ي شما از امكانات غيراستانداردي كه توسط eXo پياده سازي شده است مانند services يا filters استفاده كنند كار شما به عنوان يك derived work محسوب
شده و شما بايد آن را تحت GPL منتشر كنيد ".
كه اين موضوع مي تواند براي كسي كه مي خواهد يك محصول تجاري براساس eXo ارايه دهد،كاملاً
نااميد كننده باشد با اينكه در مورد افزودن يك زبان جديد به
eXo صحبتي به ميان نيامده است، اما برداشت ميشود كه نمي توان نسخه فارسي شده پرتال را با تحت license به غير از GPL منتشر كرد.

نقاط قوت

معماري عالي
معماري eXo يك نمونه كاملاً خوب در ميان نمونه هاي مشابه مي باشد. eXo در لايه هاي پاييني از
SOA وIOC و در طراحي واسط گرافيكي از JSF استفاده مي كند..eXo اولين پرتال استفاده كننده از JSF در طراحي خود مي باشد واز portelt هاي نوشته شده به JSF به طور گسترده حمايت مي كند.
eXo شامل يك سري service هاي با قابليت استفاده مجدد مي باشد كه مي توانيم آنها را در ساختن
برنامه هاي خودمان نيز به كار ببريم
.

كارايي
آنچه از آمارو ارقام مختلف مي توان نتيجه گرفت اين است كه eXo سريعترين و يكي از پايدارترين پرتال
هاي متن آزاد مي باشد
.
 استفاده از تكنولوژيهاي روز درساختن eXo از يك سري تكنولوژي جديد استفاده شده است در عكس زير مي توانيد آنها را مشاهده نماييد.

آدرس دفتر فروش

تهران نازی آباد خیابان فاطمی خیابان کارگر سامانی پ۱۶۲

تلفن :۵۵۵۳۰۷۶۱-۰۲۱ و ۰۹۱۹۸۹۱۴۸۳۵  

Email : jalalimehdi@gmail.com

Website : www.softwareco.ir

خبرنامه

اطلاع از آخرین اخبار سایت دلفین