معماري عمومي وب و روش جاوا(Java)

معماري عمومي وب و روش جاوا(Java)



 

 

 

 

 

 

 

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

 

 

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

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

سازي لايه‌هاي مشتري از دو روش استفاده مي‌شود .

در روش اول ، از هوشمند بودن كامپيوتر كاربر هيچ استفاده‌اي نمي‌شود . هنگامي كه كاربر اطلاعات يك فرم را تكميل مي‌كند و يا در خواست صفحة خاصي را مي‌كند (submit) . كليه عمليات پردازشي در لايه‌هاي مياني انجام شده و صفحة جديدي براي او ارسال مي‌گردد . اين صفحة جديد فقط ممكن است شامل يك پيام خطا باشد . به اين روش اصطلاحا Dump HTML client  اطلاق مي‌گردد . در روش دوم از هوشمندي كامپيوتر كاربر به خوبي استفاده مي‌گردد . مثلا هنگامي كه فرمي را در يك صفحة وب تكميل مي‌كنيم و اگر دچار اشتباه شويم ، بلافاصله بدون آنكه ارتباطي بين لايه‌هاي فوقاني برقرار گردد ، كامپيوتر به شما هشدار مي‌دهد . مزيت روش دوم                (Semi intellgent client )  آشكار است . ( كاربر براي هر عمليات ساده و ابتدايي نياز به انتظار كشيدن در پاي كامپيوتر خود ندارد . ) اما در اين روش ، مرز بين لايه‌هاي مياني ( Business و Presentation ) مخدوش مي‌گردد براي استفاده از هوشمندي كامپيوتر مشتري ، از اسكريپت نويسي به زبان‌هاي جاوا اسكريپت و يا  ( DHTML ) vbscript  در صفحات وب استفاده مي‌شود . توجه داشته باشيد كه به همين علت ، ، توانايي مرورگرها در اجراي دستورات ، اهميت مي‌يابد و نسخه‌هاي  4 به بعد مرورگرهاي 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 )  در سال 1992 ارائه شده است و قابل حل در راه حل ارائه شده توسط شركت سان و زبان جاوا مي‌باشد .

لايه Business معمولا درون برنامه‌هايي موسوم به ( Application sever ) پياده سازي مي‌شوند ( نظير Oracle Application server , Microsoft MTS  و غيره ) .

اگر فعاليت‌هايي كه در لايه‌هاي يك‌سايت‌كابردي انجام مي‌گيرند را به امور يم منزل تشبيه كنيم‌،‌كلية فعاليت‌هاي خانه‌داري بر عهدة لاية‌‌Business و برنامه‌هاي Application

server خواهد بود .

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

 

لايه داده

اين لايه مسئول نگهداري اطلاعات است و مي‌تواند شامل بانك‌هاي اطلاعاتي مدرن يا مجموعه‌اي از فايل‌هاي متني ساده باشد .

در كاربردهاي ساده‌تر مي‌توان مدل چهار لايه‌اي شرح داده شده را به مدل كوچكتري تبديل كرد . در اين مدل كوچك شده مي‌توان لايه‌هاي Business و ‍‍resentationP را در هم تركيب كرده و بروي يك وب سرور اجرا نمود .

 

مروري بر معماري J2EE

( Java 2 Enterprise Edition )

در سال‌هاي اولية پيذايش جاوا ( 1990 ) ، از اين زبان بيشتر به عنوان يك زبان قوي براي برنامه نويسي در سمت مشتري client ياد مي‌شد . بهتدريج اين زبان از اقبال عمومي در كابردهاي لايه‌هاي مياني برخوردار گرديد و نهايتا با عرضه را حل‌هاي جديد   EJB )و( Servlets  ، شركت سان ( حدود سال 200 ) مشخصه‌هاي  J2EE را معرفي نمود . مشخصه‌هاي J2EE نيز چهار لايه بوده و منطبق بر مدل معرفي شده  « معماري چها لايه وب » است . ( شكل دو ) در لايه مشتري ، صفحات وب كه مي‌توانند شامل جاوا اسكريپت باشند نمايش داده مي‌شوند . در لايه مياني resentationP ، به كمك Servletها و JSP محتواي يناميك توليد مي‌شود . Servletها و JSP  درون وب سرور اجرا مي‌شوند . لايه Business با استفاده از تكنولوژي EJB پياده سازي مي‌شود . EJB ها درون Application server اجرا شده و همان تور كه گفته شد وظايف خانه داري از قبيل انجام محاسبات ، تاييد داده‌ها و دسترسي به بانك اطلاعاتي به يكي از روش‌هاي زير انجام پذير است :

استفاده از واسطه JDBC  ( مشابه ODBC  مايكروسافت ) و يا استفاده از SQLJ ( مشابه SQL مايكروسافت ) .

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

 

Servelt چيست ؟

CGI يكي از اولين روش‌هايي بود كه براي توليد صفحات وب با محتواي ديناميك مورد استفاده قرار مي‌گرفت . به مرور زمان روش‌هاي جديدتري نيز براي اين منظور ، عرضه شد . همانطور كه ذكر شد ، مايكروسافت تكنيك ASP را عرضه نمود و پس از زمان كوتاهي JSP از طرف سان ارائه گشت . اما قبل از آن شركت سان در سال 1997 ، Servletها را معرفي كرده بود .

Servletها به عنوان جايگزيني براي اسكريپت‌هاي CGI ، ( درون ماشين مجازي جاوا يعني JVM  ) Servletها برخلاف اپلت‌هاي جاوا نيازي به پشتيباني مرورگر از جاوا ندارند و تقريبا بر روي تمام وب سروها ( به صورت مستقيم و يا با استفاده از plug-inها ) قابل اجرا هستند . servlet ها قابليت دريافت اطلاعات دريافنژت شده از كاربر و كوكي‌ها و غيره را دارند . servlet ها قابليت دسترسي مستقيم به بانك‌هاي اطلاعاتي ( در مدل‌هاي ساده معماري وب ) و يا دسترسي به داده از طريق EJB ( در مدل‌هاي كامل‌تر ) را دارند .

به عنوان مثالي از يك servlet به قطعه كد در كادر پايين توجه نماييد . اين قطعه يك صفحة وب با عبارت  “ Welcome bake username” توليد مي‌كند كه در اين عبارت username نام كاربر فعلي است .

JSP

همانطور كه ديده مي‌شود ، استفادة مكرر و اجباري از عبارت out.printh() در servletها ، نمي‌توانست در برابر راه حل سر راست‌تر مايكروسافت (ASP) ايستادگي نمايد . اين موضوع شركت سان را بر آن داشت تا در سال 1999 ، JSP را معرفي نمايد . قطعه كد نشان داده شده در بخش دوم همان كار servlet نمونة ما را انجام مي‌دهد و حجم آن بسيار كوچكتر است . واقعيت آن است كه عبارت « %%» در JSP بر روي وب سرور به servlet  ترجمه مي‌شوند .

 

EJB

تا قبل از سال 1996 ، تكنولوژي جاوا محدود به اجرا در سمت مشتري clint بوده است ، اما شركت سان با معرفي قطعات كد قابل استفاده مكرر به نامJava Bean   در اين سال همچنان با رقابت با مايكروسافت ادامه داد . ( در همان سال‌ها نيز مايكروسافت تكنولوژي COM را پايه گذار نمود ) يك Java Bean  كه رابط گرافيكي نداشته باشد مي‌تواند كلية وظايف لاية Business را بر عهده گيرد .

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

 

 

 

 

 

 

سرزمين جاوا

يكي از دلايل شهرت شركت سان مايكروسيستمز ارائه و توسيعة پلافرم جاوا (Java Platform) است كه در قلب آن زبان برنامه نويسي جاوا قرار دارد . مهمترين نكته اي كه در ارتباط با جاوا بايد دانست ، اين است كه جاوا تنها يك زبان برنامه نويسي مانند C++ نيست ، بلكه يك فن‌آوري كامل و جامع است كه تقريبا براي هر مساله‌اي كه در دنيايه شبكه و اينارنت وجود دارد راه حلي دارد . اغلب افرادي كه نسبت به جاوا مبتدي هستند مرتكب همين اشتبها مي‌شوند و چون زبان برنامه نويسي حاوا همچون زبان مادري خود C++ ، “سبت به زبان‌هايي مثل بيسيك كمي پيچيده به نظر مي‌رسد ، خيلي زود ممكن است از آن خسته و دلزده شوند ولي اگر به جاوا به چشم يك فن‌آور پيشرفته نگاه كنيم آنگاه زبان برنامه نويسي جاوا شيرين و جذاب به نظر خواهد رسيد خصوصا كه زبان جاوا نسبت به فن‌آوري جاوا يك موضوع جنبي ديده مي‌شود در حقيقت زبان جاوا ابزار عينيت بخشيدن به تفكر حاكم بر فن‌آوري جاوا و راه حل‌هاي آن است .

 

پروژة سبز

اوايل سال 1991 ميلادي گكروهي از متخصصان سان ؤ‌پروژه‌اي به نام Green Project را

آغاز كردند . هدف اين پروژه كه تا نهايي شده نتيجة آن مخفي ماند ، يافتن پاسخ اين سوال بود كه «موج بعدي» جهان كامپيوتر ( در آن سالها ) چه خواهد بود و چگونه مي‌توان بر آن مسلط شد ؟ تيم نخستين پروژة سبز متشكل از جميز گاسلينگ ، مايم شريدان و پاتريك ناگتون خيلي زود به اين نتيجه رسيدند كه دست كم يكي از تحولات مهم آينده آميزش و تركيب  شدن كامپيوترها و وسايل ديجيتالي مصرفي و خانگي ( Digital Consumer Devices ) خواهد بود . به عبارت ساده تر تكنولوژي به سمتي خواهد رفت كه اين دوگروه از ابزارها با هم تلفيق شوند و در نتيجه محصولات جديدي پديد آيد كه هم كامپيوتر باشند و هم مصارف عمومي و يا خانگي داشته باشند . اكنون سوال اين بود كه اعضاي گروه سبز بايد چه مي‌كردند ؟ پاسخ را از روي هميشگي سان اقتباس كردند : « وسيلة جديدي بسازيم و تخيلات خود را جامة عمل بپوشانيم » سر انجام پس از حدود يك سال و اندي كار تلاش پيوسته يك وسيلة ديجيتالي بر اساس پردازندة SPARC ساخته شد ككه STAR7 ( يا به اختصار*7) ناميده شد Star 7 يك PDA دستي و بي سيم بود .

PDAها ( Personal Digital Assistant  يا دستيار ديجيتالي شخصي ) ابزارهايي شبه رايانه‌اي هستند كه مي‌توان آنان را چيزي بين ماشين‌ حساب‌هاي پيشرفته و رايانه‌هاي روميزي دانست و معمولا صفحة مانيتور كوچكي دارند كه ابعاد آن حدودا به اندازة‌يك كف دست است‌ . Star 7 در نوع خود كم نظير بود و پيشرفته ترين امكانات آن روز را داشت. تيم سازندة 7 اعضاي گروه كوشيدند براي اين محصول در بازار صنايع تلويزييوني و ويدئويي جايي باز كنند اما در بازاريابي موفق نشدند . اين ناكامي سبب شد تا به دنبال بازارهاي ديگري بگردند . « اينترنت » چيزي بود كه ناگهان به اهميت آن پي بردند . فن آوري استفاده شده در *7 و زبانن Oak به گونه‌اي بود مه مي‌توانست براي انتقال محتواي صوتي و تصويري از طريق اينترنت مورد استفاده قرار گيرد .«بيعتا اولين چيزي كه جلب توجه مي‌كرد صفحات وب و فايل‌هاي HTML بود به به اين ترتيب زبان جاوا بوجود آمد . هدف نخستين جاوا اين بود كه از طريق اپلت‌هاي جاوا ، تصاوير گرافيكي و انيميشن را در صفحات ايستا و بي روح HTML به حركت و پويايي وادار كند . مروگر HotJava  كه در سال 1994 معرفي گرديد براي تحقق همين ايده ساخته شد و خيلي زود زبان و فن آوري جاوا محبوبيت پيدا كرد .

اوايل سال 1995 نخستين مجموعة كد سورس حاوا ( نسخة 1.Oa2 ) بر روي اينترنت قرار گرفت . بلافاصله پس از انتشار رايگان سورس جاوا در دنيا چيزي بالغ بر 10 هزار نفر برنامه نويس مشتاق آن را دريافت كردند و به اين ترتيب انقلاتب جاوا آغاز شد .

 

جاوانويس ، جاوايي فكر كن ، جاوابنوش !

مدير عامل سان ، اسكات مك نيلي مي‌گويد : « پلاتفرم جاوا تمام  API ها و زبان‌هاي برنامه نويسي ديگر را پشت سر گذاشت . امروزه جاوا زبان برنامه نويسي ، پلاتفرم و معماري دنيايه شبكه هاي رايانه اي است » در حقيقت جاوا جهاني است كه با آن بايد بر اساس تفكر و معماري جاواييي و با استفاده از ابزارهاي برنامه نويسي جاوا براي محيط و پلاتفرم جاوا فعاليت كد .

جدول 1 به طور خلاصه عناصر كليدي دنيايه جاوا را نشان مي‌دهد .

شكل 1 مربوط به گزارش شركت IDC  در مورد وضعيت بازار محصولات سان در زمينة اينترنت و شبكه است . به ادعاي IDC ، 51 درصد بازار برنامه نويسي در اختيار جاوا و فن آوري مرتبط با آن است و چيزي حدود 5/2 ميليون برنامه نويس در سراسر جهان به كار با اين فن آوري مشغولند .

اين موضوع نشان دهندة آن است كه با وجود حضور گستردة ساير فن آوري هاي مرتبط با اينترنت ( از جمله پلاتفرم مايكروسافت و زبان C++ وVB ) هنوز صنعت اطلاعات اعتماد بيشتري به پلاتفرم جاوا دارد . جديدترين نسخة پلاتفرم جاوا ( Java 2 Enterprise J2EE EdItion  است كه سورس كد آن (SDK) قابل اجرا بر روي پلاتفرم ويندوز 98 مايكروسافت نيست اولين بار در سال 1999 معرفي شد و كماكن محوري ترين بخش فن آوري جاوا است . از ميان مهمترين شاخه‌هاي فن آوري جاوا مي‌توان به خود زبان جاوا اشاره كرد در اين زمينه جاوا اشاره كرد در اين زمينه جاوا از زبان رقب خود يعني  VC++موفق‌تر است و سهم بيتري را نسيب خود كرده‌است .

J++محصول ناكامي است كه شركت مايكروسافت به تقليد از نسخة اصلي جاوا آن را پياده سازي كرد و پس از ماجراي دادگاه مايكروسافت آن را ادامه نداد اما در عين حال زبان برنامه نويسي جديدي را ابداع كرد به نام C# ( سي شارپ ) كه بسيار شبيه زبان جاوا است و تقريبا همان قابليت‌ها را دارد . C# هنوز خردسال است و بسيار زود است كه در مورد آن قضاوت كنيم ولي بعيد است بتواند در جذب برنامه نويسان و طرفداران جاوا موفقيتي بعه دست آورد ولي در مورد آن دسته از كاربران و برنامه نويسان كه هنوز فن آوري مورد نظر خود را انتخاب نكرده‌اند يا بر روي فن آوري مايكروسافت كار مي‌كنند ممكن است بازده مناسبي به دست آورند . Java Seript ها (برنامه هاي كوتاه كامپايل نشده‌اي كه اغلب در صفحات وب به كار مي‌روند ) هنوز در ميا سازندگان صفحات وب طرفداران زيادي دارد ولب با گسترش طيف علاقه مندان به برنامه نويسي با زبان VB قسمت اعظم بازار Spriting  HTML را ا توجه به اين كه 80 در صد بازار مرورگرها در اختيار IE است ، تصاحب كند . Java Applet ها در نبردر پاياپاي با رقيب اصلي خود Activex  ( پلاتفرم مايكروسافت ) هنوز در چالش هستند . علت اين موضوع كاملا روشن است : اپلت‌ها بر روي مرورگرها و يا ساير Client هاي استفاده شده توسط كاربران عادي عمل مي‌كنند و چون مايكروسافت و سيستم عامل ويندوز و مرورگر IE در بازار ومربوط به كاربران نهايي End  )

(Users هنوز تسلط دارند اين چالش بسيار جدي است . اما دست كم پشت صحنه يعني بازار سرويس دهنده‌هاي اينترنتي (Servers) وضعيت كاملا بر عكس است با وجود موفقيت محصولات مايكروسافنژت در بازار ويندوز عملا درصد كمتري از از گستردة اينترنت در اخنژتيار اين پلاتفرم است . به عبارت روشن‌تر ، اگر عناصر برنامه نويسي همچون Java Beans را نوع مخصوص server از اشيائي مثل Applets  Java در نظر بگيريم و همين رابطه بين ActiveX ها و اشياء COM فرض كنيم آنگاه وضعيت بازار نشان مي‌دهد كه Java Beans ها از اشياء COM جلوتر هستند و تقريبا 60 درصد بازار را در اختيار خود دارند جدول زير مقايسة روشني ميان وضعيت اين دو فن آوري موجود در بازار را نشان مي‌دهد : ( تعداد بيشتر علامت‌هاي  نشان دهندة برتري بيشتر در بازار است )

همانطور كه در دول مشاهده مي‌شود EJB ها و JAXP نسبت به محصولات و فن آوري هاي مشابه رقيب برتري كامل دارند . دقيقا به همين دليل است كه وقتي وضعيت بازار نرم افزارها و راه حل‌هاي تجارت الكترونيكي را بررسي مي‌كنيم مشاهده مي‌كنيم كه سهم عمدة اين بازار ( خصوصا در مورد XML ) در اختيار پلاتفرم جاوا است . اين موضوع سبب شده است كه ساير شركت‌هاي بزرگ همچون اوراكل و IBM بر روي فن آوري جاوا سرمايه گذاري كنند و صد البته باز بودن (Open Platform) فن آوري جاوا و انحصاري نبودن آن در اين مورد بي تاثير نيست . در انتهاي همين گذارش فهرست نسبتا جامعي از مهم‌ترين مراجع اينترنتي در مورد جاوا آمده است كه اطلاعاتي در مورد شركت‌هاي اوراكل و آي بي ام و محصولات مربوطة آنها نيز در بردارد . اوراكل ، يكي از مهمتري رقباي مايكروسافت در بازار نرم افزاري سرويس دهندة اينترنت و پايگاه‌هاي اطلاعاتي (Database) سرمايه گذاري عظيمي بر روي جاوا انجام داده است كه همگي تحت عنوان Oracle Jdeveloper  قرار  گرفته‌اند .

JDBC ( معادل ODBC در ويندوز ) و SQLJ عناصر اصلي برنامه نويسي براي پايگاه‌هاي داده در پلاتفرم جاوا هستند البته در بازار اينترنت يك استثنا بزرگ نيز وجود دارد : ASP ها در پلاتفرم مايكروسافت هنوز محدوديت غير قابل انكاري نسبت به JSP ها دارند و آيندة ( Java Server Pages ) JSP بدون ياري گرفتن از وضعيت مطلوب EJB چندان روشن و اميدوار كننده به نظر نمي‌رسد  البته JSP نوپاست و برخي در ازار نسبت به آيندة آن اميدوارند . هر سال يك همايش عظيم توسط شركت سان مايكروسيستمز برگزار مي‌شود به نام JavaOne Conference كه رويدادي مهم در صنعت اينترنت به شمار مي‌رود و معمولا مهمترين و معتبر ترين اخبار ، تحولات و گزارشات مربوط به فن آوري جاوا در زمان برگزاري اين همايش در طول سالهلي اخير ، سومين سال توليد جاوا يكي از خاطره انگيزترين همايش‌ها بوده‌است .

15 هزار نفر دراين كنفرانتس تاريخي شركت كردند كه در كل تاريخ كامپيوتر بي سابقه بود . امروزه برخي تحولات جديد در وضعيت بازار نويد موفقيت‌هاي بيشتري را براي فن‌آوري جاوا مي‌دهد . به عنوان مثال اخيرا شركت مشهور Macromedia شركت Allaire و محصولات آن Jrun  و Kawa را خريداري كرده‌است . اين اقدام شركت ماكرو مديا كه تمام محصولاتش از محبوبيت خاصي برخوردار است نشان دهندة‌ايناست كه اميدواري بازار نسبت به پيروزي اين نوع محصولات افزايش يافته است علاقه‌مندان به ساختن صفحات JSP مي‌توانند جديدترين نسخة نرم افزارهاي Jrun  و Kawa را از سايت ماكرو مديا دريافت كنند .

 

 

صفحات JAVAServer

صفحات JavaServer روش ساده توليد صفحات وب هستند كه محتواي پوبا خدمت مي‌دهند و مي‌توانند با ابزارهاي تاليف HTMLو XML ايجاد شوند .

روش‌هاي متعددي براي ساخت يك برنامة كاربردي وب براي سرويس دادن محتواي پويا وجود دارد . اما بيشتر برنامه نويسان صفحات JAVAServe را ترجيح مي دهند و دليل آن سادگي و ساختار دستوري كد نويسي صريح مي‌باشد كه بوسيلة توان زيرباي جاوا توسعه يافته‌است .

فن آوري صفحات JAVAServe استانداري است كه توسط سان ميكروسيستمز به ينوان روشي براي توليد محتواي پويا در صفحات خروجي يك برنامة كاربردي وب مشخص شده‌است . JSP ها با فن آوري  Serve جاوا آميخته شده‌اند . آنها به ما اجازه مي‌دهند تا قطعات كد جاوا را داشته باشيم و اجزاء خارجي را در كد HTML ( يا كد markup ديگري همچون XML ) فرا خواني كنيم هر جچيزي كه در يك صفحة HTML طبيعي وجود دارد . مي‌تواند در يك صفحه JSP نيز باشد . مي‌توان از كد JSP  در اسكريپت نويسي سمت سرور وب به صورت Perl  JavaScript يا صفحات سرويس دهندة‌ فعال ( ASPها ) استفاده كرد . به دليل مبتني بر جاوا بودن . صفحات JAVAServe دستيابي كامل به API هاي شيء گرا و چارچوب كاري قابل حمل جاوا

را فراهم مي‌كنند .

صفحات JSP پيش از اجرا به يك  Serve جاوا ترجمه مي‌شوند . و درخواست‌هاي HTTP را پردازش مي‌كنند و پاسخ‌هايي را همانند هر  Serve  ديگري توليد مي‌كنند . فن آوري JSP روش راحت تري را براي كد نويسي  Serve  ارائه مي‌كند . بنابراين ، صفحات ، JSP  مي توانند داراي خروجي از يك  Serve  باشند و يا خروجي را به يك  Serve بفرستند . و Serve ها مي‌توانند داراي خروجي از صفحات JSPباشند يا خروجي را به صفحات JSP بفرستند . اين دو فن آوري مكمل يكديگر هستند و انتخابي جالب نسبت به ديگر انواع برنامه نويسي پويايه وب هستند .

مزاياي ديگر JSP ها و زيربناي جاوا عبارت است از :

  1. جداسازي منطق تجاري پويا از طرح كلي صفحة ايستا
  2. ساختار دستوري راحت
  3. استقلال زيربنا
  4. دستيابي به API هاي استاندا جاوا
  5. سهولت استفاده

 

 

ساختار دستوري جاوا

در يك سناريو مناسب براي يك برنامة كاربردي بانك اطلاعاتي صفحات JSP جزئي از قبيل JavaBean يا Enterprise JavaBean  را فرا خواني مي‌كنند و Bean  عموما از طريق API هاي استاندار از قبيل JDBC يا SQLJ  به پايگاه داده دستيابي خواهند داشت . كد زير مثالي از يك JSP است كه به پايگاه داده دستيابي ندارد . اما ساختار دستوري اسامي را به شما نشان مي‌دهد پيام‌هاي JSP در ساختار دستوري <%..%> قرار مي‌گيرند .

در اين مثال .قطعات جاوا نام كاربر را از يك شيء در خواست HTTP مي‌گيرند . نام كاربر را چاپ مي‌كنند و تاريخ جاري را دريافت مي‌كنند خروجي زير در صورتي توسط صفحه JSP توليد مي‌شود كه كاربر “Amy” را وارد كند .

عناوين و دستورهاي ساختار دستوري JSP سطح بالا عبارتند از :

  1. رهنمودها ، كه بيانگر اطلاعات با توجه به صفحه JSP  به عنوان يك كل هستند .
  2. عناصر اسكريپت نويسي . كه عناصر كد نويسي جاوا از قبيل معرفي ها .عبارات ، Scriptlet ها ، و توضيحات هستند ( هر يك با ساختار دستوري متفاوت ، از قبيل <%=…%> براي عبارات يا <%….%> براي معرفي ها )

اشياء يا حوزه‌ها داده‌شده . از قبيل صفحات JSP    يا جلسة HTTP قابل دسترسي

هستند .

  1. اعمال ، كه اشياء را ايجاد مي‌كنند تا بر جريان خروجي در پاسخ JSP تاثير گذارند .

 

كدنويسي JSP در مقابل كد نويسي Sevelt

تركيب كد جاوا و فرا خواني‌هاي جاوا در يك صفحه HTML استفاده از كد جاوا در يك Servlet است . ساختار دستوري JPS ‚يانبري براي كد نويسي صفحات پويايه وب به شما مي‌دهد . كه نياز به كد كمتري نسبت به ساختار دستوري Servlet جاوا دارد . در زير مثالي از كد Servlet معادل با مثال قبلي صفحات JSP داريم .

ساختار دستوري JSP ساده‌تر است ( سر بار جاوا را همانند صدور بسته‌ها و بلوك‌هاي try…catch ذخيره مي‌كند ) . مترجم JSP نيز به طور خودكار مقدار كافي از سربار كد نويسي Servlet را در فايل جاوايي كه خروجي است ، مديريت مي‌كند . ازقبيل پياده سازي مستقيم يا غيرمستقيم رابط javax.servlet.jsp.HTTPjspPage  استاندارد و افزودن كد براي دستيابي به يك جلسه HTTP .

همچنين بايستس ذكر شود كه به اين دليل كه متن HTMLوXML صفحات JSP  در عبارات چاپي جاوا تعبيه نشده‌اند . مي‌توان از ابزارهاي تاليفHTML و XML براي ايجاد صفحات  JSP استفاده كرد .

 

جداسازي منطق تجاري از ارائه صفحه

يكي از بزرگترين منافع فن‌آوري JSP اين است كه امكان جداسازي تلاش‌هاي توسعه بين كد HTML را فراهم مي‌كند كه اين كد ارائة صفحة ايستا و كد جاوا را كه منطق تجاري را پردازش مي‌كند و محتواي پويا راتوليد مي‌كند . تعيين مي‌نمايند . تقسيم مسئوليت‌هاي نگهداري بين ارائه و متخصصين طراح كه ممكن است متخصص جاوا باشند نه HTML ، و متخصصين كدي كه ممكن است در جاوا متخصص باشند نه در HTML ، كار بسيار خوبي است .

در صفحات JSP مناسب ، بيشتر كد جاوا و منطق تجاري در قطعات تعبيه شده در صفحه قرار نخواهد گرفت ، اين منطق را در JavaBeans يا JavaBeansEnterprise  خواهيد يافت كه از صحنه در خواست مي‌ِود مشخصات JSP ساختار دستوري زير را براي ايجاد يك نمونه از كلاس JavaBeans ارائه مي‌دهد :

اين مثال نمونه‌اي از mybeans ايجاد مي‌كند ( pagBean ) حوزه ( قابليت دسترسي ) PageBean مي‌تواند هر صفحه ، درخواست . جلسه يا برنامه‌اي كاربردي باشد . سپس در اين صفحه مي‌توانيم از اين نمونه Bean استفاده كنيم:

اين نمونه Bean مثلا “Hello Julie” را چاپ مي‌كند . اگر نام “Julie” در ويژگي NewName ، PageBean باشد .

برنامه نويس جاوا مالك كد است و آن را براي كلاس NameBean نگهداري مي‌كند . خبر HTML مسئول ارائه ايستا طرح كلي صفحة وب است كه كاربر برنامه مي‌بيند ، و همچنين مالك كد در فايل JSP است و آن را نگهداري مي‌كند .

 

اجراي مختصرJSP

ماژول برنامه‌اي كه صفحاتن JSP را ترجمه ، اجرا و پردازش مي‌كند و در خواست‌ها را به آنها تحويل مي‌دهد ، تحت كانتينر JSP شناخته مي‌شود . ساختار دقيق يك كانتيتر JSP در هر پياده سازي فروش متفاوت است . اما هميشه حاوي يك Servlet يا مجموعه‌اي از Servlet ها مي‌باشد . كانتينر JSP در يك كانتينر Servlet اجرا مي‌شود . هر كانتينر JSP ممكن است در يك سرويس دهنده  وب شركت كند . اگر سرويس دهنده وب به جاوا نوشته شده باشد ، يا كانتينر ممكن است مرتبط به سرويس دهندة وب اشد و توسط آن مورد استفاده قرار گيرد .

صفحات JSP توسط كانتينر JSP به عنوان نتيجة يك توسعه فايل jsp  URL در خواست مي‌شوند . هنگامي كه صفحه‌اي براي اولين بار اجرا مي‌شود به كد Servlet ترجمه شده و سپس كامپايل مي‌شود .

 

كتابخانه برچسبهاي JSP

علاوه بر برچسب‌هاي JSP استاندارد ، مشخصات jsp به فروشندگن و مشتريان اجازه مي‌دهد تا كتابخانة برچسب‌هاي خودشان را با پياده سازي يك چارچوب كاري كتابخانه بر چسب استاندارد تعريف كنند .

هر برچسب كتابخانه مجموعه‌اي از برچسب‌هاي سفارشي است و مي‌تواند به عنوان زيرزبانياز jsp در نظر گرفته شود . برنامه نويسان مي‌توانند از كتابخانه برچسب‌ها در هنگام كد نويسي دستي صفحات jsp به طور مستقيم استفاده كنند ، و اين كتابخانه‌ها نيز مي‌توانند توسط ابزارهاي برنامه نويسي جاوا مورو استفاده قرار گيرند. هر برچسب كتابخانه‌اي بايستي بين پياده سازي‌هاي مختلف

كانتينر JSP قابل حمل باشد .

پياده سازي يك كتابخانه برچسب شامل ايجاد يك كلاي مدير برچسب براي هر چسب ، و يك فايل توصيف كتابخانه برچسب (TLD) براي كتابخانه به عنوان يك كل است . TLD حاوي اطلاعاتي از قبيل نام كلاس‌هاي مدير برچسب مي‌باشد .

 

رهنمودهاي آتي

سان مايكروسيستمز مشخصات JSP1.2 و2.3 Servlet را به انجام رسانده است ( مشخصات JSP جاري ، نگارش 1/1 . بر اساس مشخصات Servlet22

است ) بهنگام سازي‌هاي JSP 1.2 شامل نگاشت از صفحات JSP به يك سند XML و اصلاحات براي حمايت زمان اجرا براي كتابخانه برچسب‌هاي سفارشي است . مشخصات jsp تاكيد بيشتري بر كتابخانه برچسب‌ها دارد . علاوه بر اين . javasoft سان يك برنامه ريزي كتابخانة بر چسب استاندارد است .

  1. يك برنامه جاوا كوچك كه در يك سرويس دهنده اجرا مي‌شود . اين برنامه ها وظيفة انجام خدمات سبك وب را بر عهده دارند ، مثلا تغيير مسير يك كاربر از يك نشاني قديمي به صفحة درسي كه به وسيلة برنامه‌هاي كاربردي CGI مديريت مي‌شوند سرعت اين برنامه‌ها بسياربالاست و باري سيستم را كاهش مي‌دهد .