عنوان | مجوعه اي از نرم افزارهاي Open Source براي Web Applicationها | ||||
نويسنده | حسن ابوالحسنى | تاريخ ارسال | 23/02/1382 | نام قسمت | فناورى |
در اينجا تعدادي از نرم افزارهاي
open source که بطور روزافزوني براي توليد و ارائه کاربردهاي براساس وب مورد استفاده قرار مي گيرند را به اجمال معرفي مي کنيم. اين مجموعه در برگيرنده انواع مختلفي از نرم افزارها که قابليت توليد و ارائه کاربردهاي کوچک تا خيلي
بزرگ را فراهم مي سازند است. البته براي هر رده از نرم افزارهاي ارائه شده در اينجا نرم افزارهاي تجاري مشابهي وجود دارد، ولي امروزه بسياري از موسسات به دلايل زير ترجيج مي دهند تا اين نرم افزارها را بکارگيرند:
1-صرفه جويي در هزينه ها 2-نرم افزارهاي open source به درجه اي از بلوغ رسيده اند (خصوصا آنهائيکه در اينجا معرفي شده اند) که با نرم افزارهاي تجاري مي توانند رقابت کنند، 3-يکي از دلايلي که بعضي اوقات بعنوان مانعي براي استفاده گسترده از اين نرم افزارها عنوان شده است، عدم پشتيباني آنها بوسيله شرکتهاي تجاري است. به اين ترتيب عنوان مي شود که در صورت پيش آمدن مشکلي مرجعي که بتوان به آن رجوع نمود و مشکل را رفع کرد وجود ندارد. خوشبختانه امروزه سالها از بکارگيري اين نرم افزارها گذشته و بسياري از سئولات و مشکلات مطرح براي توليد کنندگان در mailing list ها و نظاير آن پاسخ دهي شده است. شکل زير نمايي از نرم افزارهايي که در اينجا مورد بررسي قرار مي گيرند را نشان مي دهد: Linux- يکي از مشهورترين نرم افزارهاي open source است. لينوکس امروزه بيشتر بعنوان سيستم عامل سرورهاي وب مورد استفاده قرار مي گيرد. برخلاف سيستم هاي ويندوز، اين سيستم همواره قابليت اطمينان بالا را بعنوان فاکتور اساسي در نظر داشته است. با در نظر گرفتن مزاياي آن، شرکتهاي بزرگي نظير آي بي ام و اچ پي امروزه سيستم هاي سخت افزاري خود را براساس اين سيستم عامل بنا مي کنند. http://www.linux.orgApache web server- امکاناتي براي ميزباني يک وب سايت فراهم مي سازد. صفحات يک سايت مي توانند بصورت فايلهاي ايستاي html بوده و يا با استفاده از برنامه هاي cgi بصورت ديناميک ايجاد شوند. برنامه ها مي توانند به زبانهايي نظير perl يا php (در ادامه توضيح داده مي شود) نوشته شوند. اين نرم افزار همچنين امکانات اساسي براي تعريف سايتهاي مجازي (virtual host) فراهم مي سازد. امروزه براي ميزباني سايتهاي ايستا (تنها داراي تعدادي فايلهاي html) و يا کاربردهاي نوشته شده به perl يا php (کاربردهاي کوچک تا متوسط) از اين نرم افزار بصورت گسترده اي استفاده مي شود. براساس آمارهاي منتشر شده اکثر وب سرورهاي موجود از اين نرم افزار استفاده مي کنند. استفاده ديگري که براي کاربردهاي بر اساس وب از اين نرم افزار مي شود، ترکيب آن با يک application server (مثلا tomcat) است. در اين حالت apache web server بعنوان سرور دريافت کننده درخواستها و رد کننده آن درخواستها بهserver application بکار مي رود. مزيت اين روش بجاي ارسال مستقيم درخواستها به application server در اين است که با امکانات قوي آن مي توان امنيت دسترسي به سايت را تعريف کرد. همچنين براي تعريف سايتهاي مجازي استفاده از آن مفيد است. موارد بالا را مي توان در شکل زير خلاصه کرد: در اينجا يک وب سايت داراي تعدادي صفحه ايستا، قسمتهايي نوشته شده به perl و php (مثلا قسمت bultine board)، و برنامه هايي در داخل يک application server (مثلا قسمت order processing) است. همانطوريکه در شکل نشان داده شده است، همه درخواستها ابتدا به apache web server وارد شده، پردازشهاي اوليه بر روي آن صورت پذيرفته (چک امنيت دسترسي، نگاشت سايت مجازي به برنامه هاي فيزيکي و غيره) و سپس به قسمت مورد نظر ارسال مي گردد. در نهايت جواب به درخواست به apache وارد شده و از آنجا به مشتري برگشت داده مي شود. http://httpd.apache.orgmysql- يک RDBMS است. از نقاط برجسته آن سرعت پاسخ دهي آن است. مي توان از محيط هاي متفاوتي نظير perl، php، c++، java و امثال آن با آن ارتباط برقرار کرد. در محيط php امکاناتي از پيش تعريف شده براي استفاده از اين نرم افزار بصورت بهينه وجود دارد. http://www.mysql.comApache tomcat- يک application server است. همچنين بعنوان servlet engine نيز شناخته مي شود. در هر حال، محيطي براي اجراي برنامه اي نوشت شده به زبان java که بر روي سرور اجرا مي شوند فراهم مي سازد. برنامه ها بصورت java servlet و يا java server page (jsp بصورت اختصار) نوشته مي شوند. http://jakarta.apache.org/tomcat/index.htmlJboss- اصطلاحا بعنوان يک EJB container شناخته مي شود به اين معني که محيطي براي اجراي EJBhها فراهم مي سازد. بطور خلاصه EJB (Enterprise Java Bean)ها componentهايي هستند که بوسيله يک container مانند Jboss مديريت شده و يک لايه شئ گرا براي يک بانک اطلاعاتي رابطه اي فراهم مي کنند. شکل زير ارتباط يک container و يک RDBMS را بصورت خيلي ساده شده نشان مي دهد. http://www.jboss.org/index.htmlPerl- محيطي است که در ابتدا براي مديريت سيستمهاي يونيکس تعبيه شد. با پيدايش وب با توجه به داشتن امکانات قوي براي پردازش متن و توليد سريع برنامه ها بوسيله آن، مورد علاقه توليد کنندگان قرار گرفت. تعداد زيادي از کاربردهاي کوچک بر روي وب را مي توان براساس اين سيستم پيدا کرد. http://www.perl.orgPhp- محيطي است که از دل محيط perl ايجاد شده است. با ساده سازي پردازش درخواستها و ايجاد مدل امنيت قوي تر امروزه نسبت به perl ترجيح داده مي شود. کاربردهاي کوچک تا اندازه متوسط بخوبي براساس آن ايجاد و مورد استفاده گسترده قرار گرفته اند. به هر حال هم php و هم perl زبانهاي ساختيافته واقعي مانند جاوا و C++ نيستند. اين عامل به همراه مدل اجرائي آن که بصورت مفسري است و نه کمپايلري باعث مي شود که بکارگيري از آن براي کاربردهاي بزرگ مشکل ساز باشد. http://www.php.netCocoon- يک فريم ورک براساس xml در محيط جاوا است. با داشتن امکانات اساسي براي پردازش xml ها و تبديل آنها به فرمتهاي مختلف و در نهايت توليد فرمت نهايي مانند pdf، html، wap و غيره مي تواند بسياري از نيازمنديهاي کاربردهاي وب را پاسخگو باشد. ايده اصلي در cocoon ايده خط لوله (pipeline) است. يک خط لوله با عنصري که اصطاحا توليد کننده ناميده مي شود شروع مي گردد. يک توليد کننده وظيفه توليد xml sax event ها را از يک منبع (مثلا يک فايل بر روي سيستم عامل) به عهده دارد. پس از توليد کننده تعدادي مبدل (transformer) در خط لوله وجود دارند که هر يک ساختار xml دريافتي را به ساختار ديگري تبديل مي نمايند. در انتهاي خط لوله يک سريال کننده (serializer) قرار دارد که نتيجه را براي مشتري تدارک مي بيند. شکل زير يک خط لوله نمونه را نشان مي دهد. http://xml.apache.org/cocoonAXIS- يک فريم ورک براي انتشار و استفاده از web service ها فراهم مي کند. در حال حاضر تنها محيط مورد پشتيباني جاوا است ولي گسترش به محيطهاي ديگري نظير C++ مد نظر توليد کنندگان آن است. http://ws.apache.org/axis/index.htmlFOP- مخفف Formating Object Processor است. XSL:FO ? استانداردي است که براي نمايش صفحات چاپي بصورت استاندارد xml، ايجاد شده است. هدف از پروژه FOP ايجاد محيطي براي تبديل فايلهاي XSL:FO به فرمتهاي ديگري نظير PDF، SVG و نظاير آن است. http://xml.apache.org/fop/index.htmlApache Xindice- يک بانک اطلاعاتي xml واقعي است. به اين معني که مي توان مستندات xml را در آن ذخيره و مورد پردازش قرار داد. بعنوان زبان پرس و جو از استاندارد XPATH استفاده مي کند. http://xml.apache.org/xindice |