معماري عمومي وب و روش جاوا

براي تشريح بهتر برنامه‌هاي كاربردي تحت وب مدرن و امروزي ،‌معمولا رسم بر آن است كه آن را به چهار لاية مستقل تفكيك مي‌كنند . ( شكل يك ) لاية مشتري يا clien ، لايه‌هاي مياني كه عبارتند از presentation و Business و در نهايت آخرين لايه يعني لاية داد . در مدل‌هاي كوچكتر معمولا لايه‌هاي مياني در يك لايه مجتمع شده و در نتيجچه يك مدل ساده شده سه لايه‌اي به دست مي‌آيد براي تصور بهتر اين لايه‌ها ، شايد بهتر بتاشد كه فرض كنيد هر لايه بر روي يك كامپيوتر پياده سازي مي‌شود .

با اينن سناريو ، فقط لاية مشتري يا clien در منزل و محل كار من يا شما قرار گرفته است و بقية لايه‌ها بر روي كامپيوترهايي واقع هستند كه ممكن است صدها يا هزارها كيلومتر از ما فاصلاه داشته‌باشد . حتي ممكن است كه لايه‌هاي ديگر نيزر در كنار هم واقع شده‌باشند . ( هر چند كه معمولا چنين نيست . ) لاية مشتري در اين مدل سازسژي همان مرورگر وب است كه بر روي كامپيوتر مشتري ، صفحات وب را نشان مي‌دهد . در اينن لايه علاوه بر آنكه اطلاعات نمايش داده مي‌شوند ، امكان ورود اطلاعات از طرف كاربر نيز وجود دارد و يكي از وظايف مرور گرها ، انتقال اين اطلاعات جمع آوري شده و ارسال آن به لايه‌هاي فوقاني است . معمولا براي پياده
سازي لايه‌هاي مشتري از دو روش استفاده مي‌شود .

در روش اول ، از هوشمند بودن كامپيوتر كاربر هيچ استفاده‌اي نمي‌شود . هنگامي كه كاربر اطلاعات يك فرم را تكميل مي‌كند و يا در خواست صفحة خاصي را مي‌كند (submit) . كليه عمليات پردازشي در لايه‌هاي مياني انجام شده و صفحة جديدي براي او ارسال مي‌گردد . اين صفحة جديد فقط ممكن است شامل يك پيام خطا باشد . به اين روش اصطلاحا Dump HTML client اطلاق مي‌گردد . در روش دوم از هوشمندي كامپيوتر كاربر به خوبي استفاده مي‌گردد . مثلا هنگامي كه فرمي را در يك صفحة وب تكميل مي‌كنيم و اگر دچار اشتباه شويم ، بلافاصله بدون آنكه ارتباطي بين لايه‌هاي فوقاني برقرار گردد ، كامپيوتر به شما هشدار مي‌دهد . مزيت روش دوم (Semi intellgent client ) آشكار است . ( كاربر براي هر

عمليات ساده و ابتدايي نياز به انتظار كشيدن در پاي كامپيوتر خود ندارد . ) اما در اين روش ، مرز بين لايه‌هاي مياني ( Business و Presentation ) مخدوش مي‌گردد براي استفاده از هوشمندي كامپيوتر مشتري ، از اسكريپت نويسي به زبان‌هاي جاوا اسكريپت و يا ( DHTML ) vbscript در صفحات وب استفاده مي‌شود . توجه داشته باشيد كه به همين علت ، ، توانايي مرورگرها در اجراي دستورات ، اهميت مي‌يابد و نسخه‌هاي ۴ به بعد مرورگرهاي Netscape/IE ، امروزه حداقل نيازمندي سايت‌هاي جديد قرار گرفته‌اند .

لايه Presentation
وظيفة لاية Presentation ، ارائة محتواي متغير ( ديناميك ) در صفحات وب است . معمولا محتواي ديناميك از يك بانك اطلاعاتي تامين مي‌شود ( مانند اسامي كاربران Hotmail به همراه مشخصات آنان ) . وظيفة مهم‌تر اين لايه‌ شناسايي صفحات ارسال شده از سمت مشتري ( client ) است .

( يعني شناسايي كاربر و انتقال اطلاعاتي كه او به لاية Business وارد كرده‌است ) . روش‌هاي پياده سازي اين عمليات بر روي كامپيوتر web server ، متنوع بوده و در گذشته از برنامه‌هاي موسوم به CGI استفاده مي‌شده‌است . الب”ه استفاده از جاوا اسكريپت در سمت سرور نيز مدتي مورد استفاده قرار گرفت ، اما روش‌هاي متداول امروزي عبارتند از :
– استفاده از روش‌هاي مايكروسافت بر اساس سفحات فعال سمت سرور يا ASP با استفاده از Visual Interdev .
– استفاده از راه حل‌هاي شركت سان بر اساس تركيب صفحات فعال جاوا ( JSP ) و موجوديت‌هايي به نام servlet ها .

در ابزارهاي ارائه شدة فوق ، روش‌هايي براي قرار دادن محتواي ديناميك در درون صفحات HTML و همچنين تكنيك‌هايي براي دريافت اطلاعات ورودي كابر ، در نظر
گرفته شده‌اند .
لايه Presentation معمولا درون برنامه‌هاي وب سرور ( نظير Apache webserver , Microsoft IISS IBM websphere و غيره ) پياده سازي مي‌شوند . وب سرورها توانايي دريافت و اجراتي چندين در خواست از سوي برنامه‌هاي كاربردي لايه‌هاي ديگر و همچنان كار بران را به طور همزمان دارند . وب سرورها بر اساس آرايش اوليه (configuration) مي‌دانند كه در خواست‌هاي (requests) كاربر مشتري را بايد به كدام برنامة كاربردي (application) هدايت نمايند .

لية Business
حجم زياد از عمليات يك سايت مدرن در اين لايه ، پياده سازي مي‌ِود . اين عمليات عبارتند از :
– اجراي تمام محاسبات و تاييد (validation) داده‌ها

– مديريت جريان كار (worflow) . فرض كنيد كه شما به عنوان يك كاربر Hotmail با وارد كردن نام كاربري و اسم رمز وارد سايت شده‌ايد ، تا زماني ككه از سايت خارج نشده‌ايد . سايت شما رامي‌شناسد و امكان استفاده از امكانات آن براي شما فراهم است . حضور شما تا لحظة خروج يك session يا جلسه نام دارد و مديريت
اين جلسات نيز در لاية Business انجام مي‌گردد .

– مديريت دستيابي به اطلاعات ( بانك اطلاعاتي ) و ارائة آن به لاية Presention .
روش‌هاي پياده سازي اين لايه در كاربردهاي جديد به يكي از صورت‌هاي زير است :
– استفاده از اشياي COM ( ارائه شده توسط مايكروسافت ) با استفاده از ويژوال بيسيك يا ويژوال c++ وغيره ،
– استفاده از اشياي متناظر شركت سان يا .EJB (Enterprise java Beans )

اصولا هرگاه نياز با ارتباط يا مبادله اطلاعات بين چند برنامة مستقل وجود داشته باشد ، نام اين تكلونوژي‌ها را خوتهيد شنيد . ( در شمارات گذشته‌ مقالاتي در اين مورد منتشر شده‌است ) روشي كه قبل از ارائة راهحل‌هاي مايكروسافت و سان در اين مورد به كار مي‌رفته‌است ، پيروي از مشخصه‌هاي اشياي CORBA بوده است . اين مشخصه ( CORBA ) در سال ۱۹۹۲ ارائه شده است و قابل حل در راه حل ارائه شده توسط شركت سان و زبان جاوا مي‌باشد .

لايه Business معمولا درون برنامه‌هايي موسوم به ( Application sever ) پياده سازي مي‌شوند ( نظير Oracle Application server , Microsoft MTS و غيره ) .
اگر فعاليت‌هايي كه در لايه‌هاي يك‌سايت‌كابردي انجام مي‌گيرند را به امور يم منزل تشبيه كنيم‌،‌كلية فعاليت‌هاي خانه‌داري بر عهدة لاية‌‌Business و برنامه‌هاي Application
server خواهد بود .

برنامه‌هاي شركت‌هاي توليد كنندة Application server بر اساس قابليت‌هاي امنيتي ، مقياس پذيري ، قابليت اطمينان و غيره از يكديگر تفكيك مي‌شوند .

لايه داده
اين لايه مسئول نگهداري اطلاعات است و مي‌تواند شامل بانك‌هاي اطلاعاتي مدرن يا مجموعه‌اي از فايل‌هاي متني ساده باشد .
در كاربردهاي ساده‌تر مي‌توان مدل چهار لايه‌اي شرح داده شده را به مدل كوچكتري تبديل كرد . در اين مدل كوچك شده مي‌توان لايه‌هاي Business و ‍‍resentation‍P را در هم تركيب كرده و بروي يك وب سرور اجرا نمود .

مروري بر معماري J2EE
( Java 2 Enterprise Edition )
در سال‌هاي اولية پيذايش جاوا ( ۱۹۹۰ ) ، از اين زبان بيشتر به عنوان يك زبان قوي براي برنامه نويسي در سمت مشتري client ياد مي‌شد . بهتدريج اين زبان از اقبال عمومي در كابردهاي لايه‌هاي مياني برخوردار گرديد و نهايتا با عرضه را حل‌هاي جديد EJB )و( Servlets ، شركت سان ( حدود سال ۲۰۰ ) مشخصه‌هاي J2EE را معرفي نمود . مشخصه‌هاي J2EE نيز چهار لايه بوده و منطبق بر مدل معرفي شده « معماري چها لايه وب » است . ( شكل دو ) در لايه مشتري ، صفحات وب كه مي‌توانند شامل جاوا اسكريپت باشند نمايش داده مي‌شوند . در لايه مياني resentation‍P ، به كمك Servletها و JSP محتواي يناميك توليد مي‌شود . Servletها و JSP درون وب سرور اجرا مي‌شوند . لايه Business با استفاده از تكنولوژي EJB پياده سازي مي‌شود . EJB ها درون Application server اجرا شده و همان تور كه گفته شد وظايف خانه داري از قبيل انجام محاسبات ، تاييد داده‌ها و دسترسي به بانك اطلاعاتي به يكي از روش‌هاي زير انجام پذير است :

استفاده از واسطه JDBC ( مشابه ODBC مايكروسافت ) و يا استفاده از SQLJ ( مشابه SQL مايكروسافت ) .
در مشخصه‌هاي ارضه شده در J2EE ، براي كامپيوترهاي مشتري ( client ) غير وابسطه به وب نيز پيشبيني هايي انجام شده است . براي دسترسي كامپيوترهاي مشتري به لاية Business ( مثلا تحت شبكة LAN كه IIOP cilent نام گذاري شده‌اند ) توابع دسترسي از راه دور نام RMIAPI عرضه شده‌است .

Servelt چيست ؟
CGI يكي از اولين روش‌هايي بود كه براي توليد صفحات وب با محتواي ديناميك مورد استفاده قرار مي‌گرفت . به مرور زمان روش‌هاي جديدتري نيز براي اين منظور ، عرضه شد . همانطور كه ذكر شد ، مايكروسافت تكنيك ASP را عرضه نمود و پس از زمان كوتاهي JSP از طرف سان ارائه گشت . اما قبل از آن شركت سان در سال ۱۹۹۷ ، Servletها را معرفي كرده بود .
Servletها به عنوان جايگزيني براي اسكريپت‌هاي CGI ، ( درون ماشين مجازي جاوا يعني JVM ) Servletها برخلاف اپلت‌هاي جاوا نيازي به پشتيباني مرورگر از جاوا ندارند و تقريبا بر روي تمام وب سروها ( به صورت مستقيم و يا با استفاده از plug-inها ) قابل اجرا هستند . servlet ها قابليت دريافت اطلاعات دريافنژت شده از كاربر و كوكي‌ها و غيره را دارند . servlet ها قابليت دسترسي مستقيم به بانك‌هاي اطلاعاتي ( در مدل‌هاي ساده معماري وب ) و يا دسترسي به داده از طريق EJB ( در مدل‌هاي كامل‌تر ) را دارند .

به عنوان مثالي از يك servlet به قطعه كد – در كادر پايين – توجه نماييد . اين قطعه يك صفحة وب با عبارت “ Welcome bake username” توليد مي‌كند كه در اين عبارت username نام كاربر فعلي است .
JSP
همانطور كه ديده مي‌شود ، استفادة مكرر و اجباري از عبارت out.printh() در servletها ، نمي‌توانست در برابر راه حل سر راست‌تر مايكروسافت (ASP) ايستادگي نمايد . اين موضوع شركت سان را بر آن داشت تا در سال ۱۹۹۹ ، JSP را معرفي نمايد . قطعه كد نشان داده شده در بخش دوم همان كار servlet نمونة ما را انجام مي‌دهد و حجم آن بسيار كوچكتر است . واقعيت آن است كه عبارت « %%» در JSP بر روي وب سرور به servlet ترجمه مي‌شوند .

EJB
تا قبل از سال ۱۹۹۶ ، تكنولوژي جاوا محدود به اجرا در سمت مشتري clint بوده است ، اما شركت سان با معرفي قطعات كد قابل استفاده مكرر به نامJava Bean در اين سال همچنان با رقابت با مايكروسافت ادامه داد . ( در همان سال‌ها نيز مايكروسافت تكنولوژي COM را پايه گذار نمود ) يك Java Bean كه رابط گرافيكي نداشته باشد مي‌تواند كلية وظايف لاية Business را بر عهده گيرد .
اين Java Bean مي‌تواند از درون Servlet يا يك صفحة JSP فراخواني شود . اما با پيچيده‌تر شدن كاربردهاي اينترنت و پيدايش مدل چهار لايه ، لازم شد تا Java Beanها بر روي كامپيوترهاي جداگانه (Application server) اجرا شوند . به اين منظور سان EJBها را عرضه كرد EJBها برخلاف Java Bean هاي معمولي همواره بدون واسطة گرافيكي هستند و مي‌توانند از راه دور به خدمت گرفته شوند . اين برنامه‌ها ، برنامه‌هاب كاربردي توزيع شده نام دارند .