بخشی از مقاله
اطلاعات خام Data
يكپارچه سازي فن آوريهاي سرويس دهندة كاربرد شبكه و سرويس دهندة پايگاه دادة چندگانه افزايش محبوبيت تجارت الكترونيكي بسياري از شركت ها را به رجعت به سرويس دهنده هاي كاربردي براي بكارگيري و مديريت برنامه هاي كاربردي شبكه شان بطور مؤثر، متوجه نموده است. اين سرويس دهنده هاي كاربردي براي ارتباط با يك سيستم مديريت پايگاه داده (DBMS) براي ذخيره و بازيابي اطلاعات تركيب بندي مي كنند. اين امر اغلب به اين معني است كه برنامه هاي كاربردي شبكه بايد با محيط هاي «قانوني» كار نمايد. در نتيجه، توسعه دهندگان برنامه هاي كاربردي شبكه متوجه شده اند كه كنترلي بر محصول DBMS مورد استفاده براي پشتيباني برنامه هاي كاربردي شان ندارند يا نمي توانند پايگاه مورد طراحي را كنترل نمايند. در بعضي موارد، توسعه دهندگان ممكن است متوجه شوند كه اطلاعات بحراني براي برنامه كاربردي آنها در DBMS هاي چندگانة توسعه يافته توسط فروشندگان نرم افزار متفاوت منتشر مي شود. مشكلاتي كه توسعه دهندگان برنامه كاربردي تجارت الكترونيكي با آن مواجه هستند:
چنين وضعيتي مي تواند كشمكش هاي متعددي توليد كند، يك معماري نرم افزار را در نظر بگيريد كه استفاده از (EJBS) جاوا را احضار مي كند، كه يك مؤلفه فن آوري است كه علاقة بسياري را از طرف جامعة تجارت الكترونيكي بدست آورده است. يعني وقتي اطلاعات همراه با موضوعات جاوا بايد در ماوراي مرزهاي يك جلسه كاربردي موجود باشند. EJB هاي موجوديت در اكثر مواقع از يك DBMS منطقي براي چنين مقاصد ذخيره سازي استفاده مي كنند. توسعه دهندگان EJB مي توانند يكي از دو نوع EJB موجوديت را توليد نمايند: آنهايي كه داراي توجه مديريت شده هستند يا آنهايي كه داراي تاكيد بر مديريت مي باشند.
مديريت اغلب توسعه دهنده را از نوشته كد (رمز) دسترسي اطلاعات خام (داده) رها مي نمايد، در عوض سيستم اي كه ظرف EJB را راه اندازي مي كند بطور خودكار SQL مناسب رادر صورت نياز توليد واجرا
مي نمايد. برعكس، مواد و دانه هاي موجوديت مستلزم بر آن است كه توسعه دهنده كه روال هاي دسترسي اطلاعات خام خودش را كدبندي و حفظ نمايد.
اين امر اجازة انعطاف پذيري بيشتري را مي دهد، اما مستلزم مهارت هاي برنامه ريزي اضافي است (مثل دانش دربارة فن آوري DBMS) و نيازهاي كار براي توسعة دانه و آزمايش راافزايش مي دهد و از قابليت حمل خود bear دانه جلوگيري مي نمايد. متاسفانه، شركت هايي كه قصد دارند از EJB هاي با موجوديت مديريت شدة ظرف (از اين پس موسوم به دانه هاي موجوديت CMP) براي برنامه هاي كاربردي تجارت الكترونيكي خودشان استفاده كنند ممكن است با بعضي از موانع مواجه شوند.
سرويس دهندة برنامه كاربردي شبكة شركت انتخاب شده ممكن است DBMS هاي شركت مورد انتخاب را نتواند بكار ببرد. بعلاوه، اگر مقررات طراحي يك دانه موجوديت CMP را فرا بخواند كه ويژگي هاي آن بايد DBMS هاي «قانوني» چندگانه را در بر بگيرد، اين امر يقيناً پشتيباني نخواهد شد. درحاليكه كار بر روي هر كدام از اين مشكلات امكان پذير است، آنها مي توانند دردسرهاي اضافي را موجب شوند و از سرويس دهندة برنامه كاربردي شبكه تا تلاش براي انتقال اطلاعات (پرهزينه) يا بكارگيري يك فرآيند رونويسي اطلاعات را شامل گردند كه تاخير اطلاعات فيلمي كم را پشتيباني مي كند.
بازنگري يك راه حل بالقوه:
با اين حال، راه ديگري موجود است كه مي تواند چنين كارهاي غيرضروري را در بسياري موارد ارائه كند. اين راه شامل بكارگيري فن آوري سرويس دهندة برنامه كاربردي شبكه با فن آوري سرويس دهندة پايگاه دادة چندگانه است. اين گزارش يك پروژه را شرح مي دهد كه در آزمايشگاه مانتاترنرا IBM امكان چنين معماري اي را بررسي كرد ونتايج خوبي داشت. پروژه يك سرويس دهندة برنامه كاربردي شبكه را با يك سرويس دهندة پايگاه دادة چندگانه (در اين حالت تأليف پيشرفته websphere 31º) از (IBM براي پشتيباني صف آرايي دانه هاي موجوديت CMP يكپارچه مي كند كه به منابع دادة چندگانه دسترسي دارد.
Deployment
اين منابع اطلاعات شامل اطلاعات مديريت شدة موضعي و همچنين اطلاعات ذخيره شدة از راه دور در Sybase, oracle, Informi بود. براي ساده سازي موضوعات توسعه و آزمايش يك محيط توسعة يكپارچه شده جاوا در اين حالت، Visual Age براي تاليف اداري (Java 3.0) بكار رفت كه همراه با سرويس دهندة پايگاه دادة چندگانه است. تركيب اين فن آوري ها احتمالات زير را موجود مي آورد: توسعه و صف آرايي دانه هاي موجوديت CMP كه هر كدام از آنها به يكي از منابع اطلاعات زيردسترسي داشتند: اوراكل، يابسيس و اينفورميكس. چنين دانه هايي بدون نصب نرم افزار مشتري DBM از اوراكل سيابيس يا اينفورميكس بر روي ايستگاه كاري در حال اجراي Visual Age براي جاوا و Websphere توسعه يافتند.
توسعه و صف آرايي خودكار يك دانة موجوديت CMP كه ويژگي هاي آن براي يك ديدگاه واحد نگاشته شده است جداول اينفورميكس، ساي بيس و اوراكل را شامل مي شود. بدليل مشكل «نگاه روزآمد» كه براي هر DBM معقولي متداول است، چنين دانه هاي موجوديت CMP اي فقط براي خواندن readonly توسعه يافتند.
پخش
توسعه و صف آرايي يك دانه موجوديت CMP واحد كه ويژگي هاي آن مستقيماً براي دو جدول نگاشته شده است ، كه يكي بطور موضعي توسط يك سيستم DB2 DataJoiner و ديگري از راه دور توسط يك سيستم ايتفورميكس مديريت مي گردد. اين دانه كاملاً فعاليت هاي خواندن نوشته را پشتيباني كرد و Data Joiner بطور خودكار فرايند انجام دو مرحله اي را مديريت مي نمايد تا يكپارچگي تراكنش اساسي را تضمين نمايد هنگامي كه يك روش دانه باعث گرديد كه فعاليت هاي نوشته پايگاه داده رخ دهد.
توسعه و صف آرايي خودكار يك سلسله مراتب از دانه هاي موجوديت CMP كه ويژگيهاي آن براي يك جدول واحد نگاشته شد توسط هر كدام از منابع اطلاعات زير مديريت گرديد: Sybase, Oracle,
DB2 Data Joiner يا Informix. توجه نماييد كه تعداد اين توانايي ها امروزه بدون كارها ومقررات ارجاع شده در بخش قبلي، موجود نمي باشند. (مشكلات جاري كه توسعه دهندگان برنامه كاربردي تجارت الكترونيكي با آن مواجه هستند را ملاحظه كنيد). بويژه با تركيب كردن websphere , DB2 Data Joiner توسعه دهندگان EJB به يك سري از منابع اطلاعات دسترسي مي يابند.بعلاوه، منافع تصور شده توسط تركيب يك سرويس دهندة برنامه كاربردي شبكه با يك سرويس دهندة پايگاه دادة چندگانه ميتواند براي ساير گزينه هاي طراحي برنامه كاربردي Java انتظار برود كه شامل ساير شكل هاي EJB، صفحات سرويس دهندة جاوا
(JSP) اوسرولت هاي جاوا مي باشد. برنامه نويساني كه اين فن آوري ها را بكار مي برند فراخواني هاي ارتباط پايگاه دادة جاوا (JDBC) را مي نويسند تا تراكنش هاي پايگاه داده را كنترل نمايند. يك سرويس دهندة پايگاه دادة چندگانه مي تواند كار توسعه را زماني ساده نمايد كه برنامه نويسي ها به دسترسي به
اطلاعات ذخيره شده در DBMS هاي چندگانه نياز دارند. اين كار توسط ارائه يك SQL APT، شفافيت موضعي ودر بعضي موارد جبران عملياتي انجام مي گيرد. بعلاوه، پيوندهاي پايگاه دادة چندگانه و اتحاديه ها مي تواند بدون ارتباط دستي با هر منبع اطلاعات اجرا شود و اطلاعات ضروري بطور انفرادي از هر منبع بازيابي گردد و اين اطلاعات در بعضي ساختارهاي اطلاعات مديريت شدة كاربردي موقتاً ذخيره گردد و منطق ضروري براي ادراة يكپارچگي اطلاعات همراه با يك پيوند يا
عمليات واحد كدگذاري گردد. چنين كاري بطور خودكار توسط سرويس دهندة پايگاه دادة چندگانه اداره مي شود كه يك تصور تك مكانيSingle site از DBMS هاي توزيع شدة فيزيكي و غيرقابل مقايسه را ارائه مي نمايد. البته، مانند هر معماري نرم افزار ديگري، معماري شرح داده شده دراين گزارش داراي مزايا ومعايب خودش است. مزاياي اصلي قبلاً در صفحات قبلي خلاصه شده اند. شايد عيب اصلي اين معماري پيچيدگي اجرايي DBMS اضافي باشد. بويژه استفاده از يك
سرويس دهندة پايگاه دادة چندگانه نياز براي يك محيط پايگاه دادة توزيع شده را ايجاب مي كند تا تركيب بندي و نگهداري شود يعني يك تلاش اي كه به بهترين وجه با پرسنل ماهر در طراحي پايگاه داده، مديريت پايگاه داده و مديريت شبكه انجام مي گيرد. بااين حال براي سازمان هايي كه بطور معمول از DBMS هاي چندگانه براي ذخيره كردن اطلاعات بحراني استفاده مي كنند، چنين مهارت هايي احتمال دارند كه به هر حال موجود باشند.
باقيماندة اين گزارش پروژه را به تفصيل فني بيشتر شرح مي دهد و محيط نرم افزار را ذكر نموده و مراحل لازم براي توسعه و صف آرايي موجوديت CMP بحث شدة قبلي را شرح مي دهد. با اين حال، قبل از ورود به اين جزئيات ، اين گزارش يك بازنگري از فن آوري هاي اصلي را براي خوانندگان ناآشنا با سرويس دهنده هاي پايگاه دادة چندگانه، سرويس دهنده هاي برنامه كاربردي شبكه و EJB ارائه مي كند.
مقدمه اي بر فن آوري هاي كليدي (اصلي):
درك سرويس دهنده هاي پايگاه واحدة چندگانه به سرويس دهنده هاي
برنامه كاربردي شبكه، و EJB ها براي درك بخش هاي بعدي در اين گزارش بحراني است. بخش هاي زير يك بازنگري جزئي از چنين موضوعاتي را فراهم مي كند به اطلاعات دقيق تر مي توانند با مراجعه به مراجع فهرست شده در كتاب شناسي بدست مي آيد. خوانندگان قبلاً آشنا با اين فن آوريها تشويق مي شوند تا اين بخش را ناديده گرفته و خواندن دربارة «معماري نرم افزار» بكاررفته توسط اين پروژه را آغاز كنند.
سرويس دهندگان پايگاه دادة چندگانه
يك سرويس دهندة پايگاه دادة چندگانه مثل Data Joiner DB2 از IBM يك رابط برنامه ريزي برنامه كاربردي واحد (API) براي منابع اطلاعات چندگانه را فراهم مي كند. اين منابع اطلاعات ممكن است بر روي سكوهاي سيستم عملياتي و سخت افزار متفاوت اجرا گردد و ممكن است توسط فروشندگان متفاوت توسعه يابند و ممكن اس از API هاي متفاوت «بومي» استفاده كنند (شامل ديالكيت هاي SQL متفاوت). برنامه نوبس ها از سرويس د هندة پايگاه دادة چندگانه براي كار در
سطح بالاتر انتزاع نسبت به ساير موارد احتمالي استفاده مي كنند هنگامي كه سرويس دهنده يك تصوير تك مكاني از اطلاعات غيراقبل قياس فيزيكي را ارائه مي كند استفاده از نام مستعار براي جداول به برنامه نويس ها شفافيت موضعي را پيشنهاد مي كنند، و نياز براي دانستن عمل اطلاعات مطلوب را بطور دقيق حذف مي كند. جبران عملياتي مي تواند تفاوت هاي بين فروشندگان مختلف DBMS را بپوشاند و توانايي هايي را شبيه سازي مي كنند كه توسط يك DBMS
مفروض به طور بومي پشتيباني نمي شوند. پيوندهاي چندمكاني unions و يكپارچگي اطلاعات از منابع چندگانه را موجب مي شوند و پردازش دو مرحله اي ميتواند يكپارچگي تراكنش را تضمين كند هنگامي كه عمليات DBMS هاي چندگانه را شامل مي شود. يك معماري سرويس دهندةپايگاه دادة چندگانة نمونه در شكل زير نشان داده مي شود. دراين سناريو، برنامه نويس هاي جاوا مي توانند برنامه هاي كاربردي بر پاية جاوا را بنويسند كه با سرويس دهنده ارتباط يابند. اين سرويس دهنده ، به نوبة خود، با منابع اطلاعات پشتيباني شده توسط فروشندگان مختلف بر روي سكوهاي مختلف پشتيباني مي گردد.
در نتيجه، برنامه هاي كاربردي JDBC ميتواند به هر كدام يا تمام اين منابع اطلاعات بدون نياز به يادگيري API بومي از هر منبع اطلاعات توسط برنامه نويس كاربردي بدست آيد. بعلاوه، نمايش ها مي توانند براي دربرگرفتن اطلاعات از منابع چندگانه براي ساده كردن موضوعات يكپارچه سازي اطلاعات براي برنامه هاي كاربردي فقطظ خواندني ايجاد گردد.
پشتيباني منبع اطلاعات و عمل توليد ميتواند از پيشنهادي به پيشنهادي ديگر فرق كند. DB2 Data Joinert V2.1 ، براي مثال، تمام اعضاي خانوادة IBM DB2 ، سرويس دهندة SQL ميكروسافت، اوراكل، RDB اوراكل، ساي بيس، ساي بيس اني ور، اينفورميكس آن لاين، و ساير موارد را پشتيباني مي كند. بعلاوه، بدليل اينكه DB2 Data Joiner يك نسخة گسترده از محصول DB2 پايه است، قادر به ذخيره كردن و مديريت نمودن اهداف اطلاعات موضعي اش از قبيل جداول، نمايش ها ، و نمايه ها يا شاخص ها indexes مي باشد. بهينه سازي آن براي در نظر گرفتن طبيعت توزيع يافتة فيزيكي و غير قابل قياس محيط آن طراحي مي شود طوري كه يك استراتژي دسترسي اطلاعات موثر بتواند براي هر پرس و جو quaryانتخاب گردد.
سرويس دهنده هاي كاربرد شبكه:
سرويس دهنده هاي كاربرد شبكه به شركت ها كمك مي كنند كه منطق تجارت طرف سرويس دهنده را مديريت وصف آرايي كنند. اين منطق ، نوعاً به زبان جاوا نوشته مي شود و اغلب براي پشتيباني برنامه هاي كاربردي تجارت الكترونيكي چند –رديفي امري حياتي است. منطق مي تواند از طريق يك سري از فن آوري هاي طرف سرويس دهنده بيان شود، شامل صفحات سرويس دهندة جاوا (JSP)، سرويس هاي جاوا، و EJB ها. با طرح ريزي براي اجراي منطق تجارت مناسب بر روي سرويس دهنده، شركت ها مي توانند به كار برد مجدد كد كمك كنند وايمني بيشتري بر روي منابع تجاري بحراني بدست آورند، و سرويس دهنده هاي قدرتمندي را براي كار محاسباتي شديد استفاده كنند و ابزارها را براي كمك به متعادل كردن بار كاري، تنظيم عملكرد و تشخيص مشكل بكار گيرند. شكل زير يك نمونه معماري سرويس دهندة برنامه كاربردي شبكه را نشان مي دهد. دراين سناريو، مشترياني كه يك سري از سكوها را اجرا مي كنند ممكن است به يك
سيستم سرويس دهندة برنامة كاربردي به اشتراك گذارده شده دسترسي مي يابند بر روي اين سكو يك سرويس دهندة شبكه HTTP (مثل Apache يا HTTP) و يك سرويس دهندة برنامه كاربردي شبكه (مثل Web sphere) نصب شده است. سرويس دهندة برنامه كاربردي شبكه انواع فن آوري بر پاية جاوا را پشتيباني مي كند، از قبيل EJB ، كه اعمال مناسب را در پشتيباني برنامه هاي كاربردي مشتري انجام مي دهد. در بين اين اعمال ممكن است دسترسي به منابع
اطلاعات از راه دور يا محلي از يك سري از فروشندگان را نام برد. تركيب بندي دسترسي منبع اطلاعات محلي به يك DBMS را نشان مي دهد. همانطور كه خواننده ممكن است انتظار داشته باشد توانايي هاي سرويس دهنده هاي برنامه كاربردي شبكه از محصولي به محصول ديگر تغيير مي كند. تأليف پيشرفتة سرويس دهندة برنامه كاربردي Web Sphere در اين پروژه استفاده گرديد.
و سرويس ها، XML, EJB, JSP دسترسي به DB2 يا Oracle DBMS ،امكانات مثبت گردش كار logging و جستجو كردن نكاربرد سايت محل، و يك سري از كارهاي ديگر را پشتيباني مي كند.
EJB ها:
EJB ها مؤلفه هاي نرم افزار طرف سرويس دهنده هستند كه بامشخصات توسعه يافته توسط ميكروسيستم هاي سان مطابقت دارد. اين مشخصات يك مجموعه حداقل از رفتارها را براي EJB ذكر مي كنند و منطق تجارت را در يك شيوه اي محصور مي نمايد كه توسعة برنامه كاربردي را ساده مي كند و به افزايش احتمالات كمك مي نمايد. EJB ها ممكن است مستقيماً از برنامه هاي كاربردي Java طرف مشتري با استفاده از پروتكل ها Rmi/Hop بطور مستقيم يا بطور
غيرمستقيم از مشتريان Web دسترسي يابد كه با يك سرويس دهندة وب از طريق HTTP ارتباط برقرار مي كنند و يك سرولت يا JSP را فرا مي خوانند كه به نوبة خودش به EJB دسترسي مي يابند. شكل زير هر دو روش را نشان مي دهد. در صف آرايي، EJB در ظرف هايي باقي مي مانند كه يك سري از سرويس ها را فراهم مي كنند، كه اكثر آنها در اين گزارش بحث خواهدد شد. با اين حال ، ما قبلاً به يك عمل بحراني اشاره كرده ايم كه ممكن است توسط ظروف مديريت گردد: پشتيباني براي مخالفت. انواع معين EJB بويژه دانه هاي موجوديت مديريت شده توسط ظرف، يا دانه هاي CMP متكي بر ظرف EJB براي اجرا و مديريت
دسترسي به منبع اطلاعات هدف مي باشد . اين امر توسعه دهندگان EJB را از نوشتن روال هاي دسترسي اطلاعات رها مي كند و مي تواند احتمال DBMS دانه هاي آنها را كمك نمايد. Websphere مجريان را قادر مي سازد تا ظرف هاي چندگانه را ايجاد كنند، كه هر كدام از آنها ممكن است ميزبان يك يا چند EJB باشد.