0

معرفی ریموتینگ

 
saem1390
saem1390
کاربر برنزی
تاریخ عضویت : شهریور 1391 
تعداد پست ها : 3
محل سکونت : تهران

معرفی ریموتینگ

 

 

 

 

 

 

معرفی ریموتینگ

 

 

 

 

 

 

 


 


در این فصل یک مقدمه کوتاهی در مورد پیاده­سازی[1] برنامه­های کاربردی توزیع شده[2] و فن­آوریهای[3] مربوط به آن ارائه می­گردد.

 

ریموتینگ چیست ؟

ریموتینگ پروسه­ای از برنامه­ها یا اجزاء آن است که بصورت کامل بر روی هم تاثیر می­گذارد.

در محیط .Netاین تکنولوژی توابعی را جهت برنامه­های توزیع شده فراهم می­نماید که آن حقیقتا جایگزین DCOM می­­شود.عموما پیاده سازی ریموتینگ بصورت عملی بین اجزاء ریموتینگ و اجزاء متحرک آن متمایز  می­باشد. ریموتینگ قالبی است که قابلیت اجرای متد بر روی سرورها را فراهم می­نماید. و پارامترهای دریافتی و گذرا را به صورت  مقادیر با ارزش بر می­گرداند.

اجزاء ریموتینگ همیشه بر روی سرورها خواهند ماند فقط یک منبع به آن اختصاص می­یابد که باید در میان ماشین­های دیگر قرار بگیرد. شیء متحرکبصورت رمز شده[4]به شکل دودویی و یا یک شکل قابل خواندنی انسانی بصورت XMLاز یک محدوده عبور می­کند.و به صورت رمزگشایی[5] شده ارائه می­نماید.

سرورها و کلاینت­ها یک کپی از شیء­ها را در خود نگهداری می­کنند.

 

سناریوهایی[6] برای .Net Remoting

از ابتدای شروع بکارگیری سرویس دهنده , سرویس گیرنده غالبا عملیات ریموتینگ جهت دسترسی به منابع یک سرور مورد استفاده قرار می­گرفت. هر پایگاه­داده[7] و یا سرور حاوی فایل , پیاده­سازی بسیاری از روش­هایی است که اجازه می­دهد کد­ها بصورت ریموتینگ اجرا شوند. در روش­های قدیمی برنامه نویسی تولید سرویس برای سرویس­دهنده­هابه کار بسیار مشکلی بود.

امروزه ایجاد برنامه­های کاربردی توزیع شده به مراتب آسانتر از آن است که آن برنامه­ها بصورت کاملا عملی در میان سیستم­های گوناکون جهت بهبود کارایی[8] , مقیاس پذیری[9] و نگهداری[10] آنها مورد استفاده قرار می گیرد.

 

منطق تجاری متمرکز[11]

یکی از طرح­های کلیدی جهت پیاده­سازی ریموتینگ بر روی منطق­تجاری روی یک یا چند سرویس دهنده مرکزی است . این امر بصورت قابل ملاحظه­ای برای نگهداری برنامه­های کاربردی ساده است. دگرگونی در منطق تجارت,گسترش برنامه­های کاربردی جهت سازماندهی برای 10.000 کاربر رایانه در سطح جهان را شامل نمی شود. فقط در این حالت سرویس دهنده مجزا به تنهایی بروز[12]می­شود. زمانیکه منطق تجارت متمرکز میان برنامه­های کاربردی مختلف مشترک[13] می­شود این عمل تاثیر مضاعفی را بصورت قابل ملاحضه­ای بر روی نیروی انسانی خواهد داشت. در عوض به جای تغییر برنامه­های کاربردی متعدد , فقط باید عملیات پیاده سازی سرویس دهنده تغییر یابد.

 

جدایی[14] فیزیکی لایه ها

امنیت یک بانک داده مورد نیاز یک شرکت در محیط تجارت الکترونیکی چالشی بسیار مهم می­باشد که این داده­ها باید در یک محیط کاملا امن و دور از دسترس عام قرار گیرد. یا حتی باید در یک سرور مخصوص قرارگیرد این عمل باعث جلوگیری از دسترسافراد غیر مجاز[15] به داده­های آن شرکت خواهد شد.درعوض با ایجاد اتصال مستقیم یک سرویس دهنده به برنامه­های کاربردی که یک رابط میانی تولید شده می­باشد از این خطر جلوگیری نمود. این سرویس در میان دو دیواره­آتش[16] واقع شده است. دیواره­آتش اول فقط اجازه اتصال[17]سرور شبکه به سرور برنامه­های کاربردی را می­دهد و دیواره­آتش دوم فقط اجازه اتصال سرویس دهنده برنامه را به بانک اطلاعاتی می­دهد. به این دلیل که سرور برنامه­های کاربردی اجازه اجرای پارامتر­های اس­کیو­ال[18] را ندارد, دستیابی تابعی یا شی­ها به منطق تجاری سپرده شده است. واحد منطق تجاری با استفاده از سرویس به دادها دستیابی پیدا می­کند و آن را به لایه برنامه کاربردی انتقال می­دهد.

 

سیر تکاملی Remoting

طرحهاییکه نمایش داده شدند اغلب ممکن است یک سیر تکاملی ثابتی از چارچوب ریموتینگ ارائه دهند. پیاده­سازی برنامه­های کاربردی تجاری در مقیاس بزرگ در یک روش توزیع شده بعد از مسائل تکنیکی میتواند اجرایی باشد.

CORBA,COM+وEJB این پروسه را از چند سال قبل آغاز کرده­اند و همچنین ریموتینگ این پردازش را بیشتر از دیگران آسان کرده است.

بخش زیر تاریخچه مختصری از چارچوب­های گوناگون ریموتینگ بیان می­گردد.

فراخواندن پردازه از راه دور[19] :

پروتکلی است که يک برنامه می­تواند با استفاده از آن درخواست سرويسی را از برنامهموجود بر روی کامپيوتر ديگر در شبکه داشته باشد.RPCتسهيلات و امکانات لازمدر خصوص ارتباط بين برنامه ها را فراهم می نمايد . برنامه هائی که ازRPCاستفاده می­نمايند ضرورتی به آگاهی از پروتکل­های شبکه کهارتباطات را حمايت می­نمايند ، نخواهند داشت. درRPCبرنامه درخواست کننده سرويسگيرنده(Clientبوده و برنامه ارائه دهنده سرويس ، سرويس دهنده (Server) می باشد.

در واقعRPCیک ارتباط پردازش داخلی است که اجازه می‌دهد یک برنامه کامپیوتریبتواند یک زیربرنامه یا یک پردازه را در آدرس دیگری (معمولا بروی کامپیوتر دیگری در­شبکه) اجرا نماید. در اصل برنامه‌نویس­ها کدهای خود را برای محلیمی‌نویسند بدونآنکه نگران کارکردن آن بصورتریموت باشند.یکRPCبا ارسال درخواست یک کلاینتبه یک سرور ریموتشناخته شده شروع می‌شود تا آن سرور پردازه معینی را باپارامترهای مشخص اجرا نماید. سرور به کلاینت پاسخ می‌دهد وبرنامهکاربردی، پردازش را ادامه می‌دهد.

محیط توزیع محاسبات[20] :

این محیط در اوایل 1990 توسط بنیاد نرم افزار آزاد[21]طراحی شده است این محیط بدین جهت ایجاد شده تا مجموعه­ای از ابزار ها و سرویس­هایی که اجازه مدیریت و توسعه آسان تر به برنامه­های کاربردی توزیع شده را می­دهد فراهم می­کند.

چارچوب DCE چندین سرویس را آماده می­کند مانند یک رویه ریموتینگ ، (DCE/RPC)سرویس های امنیتی ، سرویس­های زمانی و مانند آن.

 پیاده­سازی DCE کاری وحشتناک و سنگین است واسط­های های کاربر مجبورند تا با یک زبان تعریف واسط[22] معرفی شوند

 

ارتباط اشياء تجارى توزيع‌شده براساس استاندارد[23] :

ازآنجايى که ساختار اشياء COM و ساختار توزيعى اشيا (DCOM-Distributed COM) محصولرقيب CORBA از شرکت مايکروسافت محسوب مى‌گردند، لذا OMG مشخصه‌هاىهمکاری[24]را براى COM و DCOM نيز تعريف نمود. (هرچند به‌لحاظ پاره‌اى از نقاط ضعف DCOM مايکروسافت مجبور به ارائه تکنولوژى.Net گرديد. COM/CORBA به‌منظور يکپارچه‌سازى محيط ويندوز با يک محيط مبتنى بر CORBA مورد استفاده قرارمى‌گيرد. شرکت‌هاى زيادى عرضه‌کننده CORBA ORB[25]در بازار مى‌باشند. که در آن ميانمحصولOrbix Web از شرکت IONA وWiviBrokerبراى جاوا از شرکت INPRISE وWebspherبه‌عنوانسرور با قابليت ORB از شرکت آى‌بى‌ام معروفترند.

 

در شکل بالا چگونگى فراخوانى برنامه‌هاى ديگر توسط يک برنامه در ساختار CORBA نشانداده شده است. مفهوم کلى اين ساختار بسيار ساده است. برنامه‌اى که نياز به سرويس‌هاى ارائه‌شده دارد ساير برنامه‌ها را فراخوانىمى‌نمايد. سرويس‌هايى که محل فيزيکى آنها در شبکه اهميتى نخواهد داشت.

 

CORBA با ارائه محيط مبتنى بر پيام‌ها امکان اجراى اشياء راه دور را ازطريق انواعزبان‌هاى مختلف و روى سخت‌افزارهاى گوناگون فراهم نموده است. شکل بالا نيز چگونگىفراخوانى يک رويه راه دور[26]را نشان مى‌دهد.

مکانيزم RPC که از مدت‌ها قبل مورد استفاده قرار گرفته است مشابه CORBA است جامعيتآن را ندارد و معمولاً تنها يک زبان برنامه‌نويسى و يک سخت‌افزار خاص را پشتيبانىمى‌نمايد.در شکل زير چگونگى ايجاد اشياء مبتنى بر CORBA نشان داده شده است که با کامپايلکردن تعاريفزبان تعریف واسط به کدينگ‌هاى کلاینت و سرور اشياء مبتنى بر CORBA ايجاد مى‌گردندو برنامه‌هاى کاربردى حاصل ازطريق CORBA bus و با استفاده از پروتکل ارتباطى GIOP يا IIOP با يکديگر ارتباط برقرار مى‌نمايند.

 

مدل شي موُلفه توزيع شده[27] :

پروتكل(قرداد)شيُ مايكروسافت مي باشد, كه اين امكان را به موُلفه هاي  ActiveX مي­دهد تا با يكديگر از طريق شبكه كامپيوتري اارتباط برقراركنند موُلفه  ActiveX, شيُ قابل دسترسي راه دوري مي باشد كه رابط معين ومشخصي دارد وخودكفا مي­باشد. موُلفهُ ActiveXمي­تواند در اسناد وب تعبيه شود بطوري كه آنها بطور خودكار براي سرويس گيرنده مي­گيرند وبارگذاري[28] مي­كنند تا در مرورگر وب سرويس گيرنده اجرا كنند. DCOM سهولت موقعيت راه دور را تاُمين مي كند كه اجازه مي دهد سرويس گيرنده­ها, اشياُ سرويس دهنده راه دور را ايجاد كنند. آن مدل ايمني را در دسترس قرار مي دهدكه به برنامه نويسان اجازه مي­دهد محدود كنند كساني را كه ممكن است شيُ سرويس دهنده اي را ايجاد كنند وكساني را كه  آن را احضار مي كنند.سرانجام, زبان تعريف رابط براي تعريف رابطهاي شيُي قابل دسترسي راه دور و فراخواني روال از راه دور در نظر گرفته مي شود.

سرويس های وب[29] : رويکرد جديد در برنامه های توزيع شده

 برای برنامه نويسی توزيع شده تاكنون متدلوژی های متفاوتی مطرح بوده است . سرويس های وب جديدترين رويکرد در اين زمينه می باشند. چرا با اين همه تنوع ، ما مجددا؛ به يك معماری جديد برای پردازش برنامه های توزيع شده نياز داريم ؟ چرا ما به سرويس های وب نياز داريم ؟ چرا خودمان را با يكی از متدهای موجود نظير RPC ، DCOM ، CORBA تطبيقنمیدهيم؟پاسخبهتمامسوالاتفوقومواردمشابهظهورورشدسريعاينترنتووباست . در حقيقت اينرنت زمينه مناسب جهت تكامل برنامه­های توزيع شده را فراهم نمود. تکنولوژی­های پيش از اين، اغلب  درشبكه­هایاختصاصی ايمنواعتمادپذيرمورداستفادهقرارمی­گرفتند.برنامه­هایتوزيعشدهكهبررویاينترنتاجراءمی­گردند،دارای چالش های خاص خود بوده و با توجه به تنوع ، وسعت بسيار زياد و رشد فزاينده ، ضرورت وجود يك مدل جديد برای برنامه نويسی توزيع شده بدرستی احساس می گردد.

كالبد شكافی سرويس های وب

سرويس­های وب تصوير جديدی از برنامه­های توزيع شده را ارائه داده­اند . در اين راستا سه هدف عمده دنبال می­شود :

§        برنامههابسادگیبرنامه­هایديگربررویوبراپيداكردهوباآنهاتبادلاطلاعاتیداشتهباشند.

§        ازتمامیتواناينترنتوپروتكل­هایمربوطهاستفادهگردد.

§        يكمتدولوژیايمنبرایتبادلاطلاعاتیراارائه نمايد

SOAP:

SOAP[30] یک پادمان مبتنی بر XMLاست، برای رد و بدل کردن اطلاعات بین برنامه­ها. اطلاعات در SOAPبه صورت پیام[31]وازطریقپادمان‏هایموجوددراینترنتمانندHTTPمنتقل می‏شود (SOAPدر سایر پادمان­ها، مانند SMTPیا MIMEنیز قابل استفاده است). به زبان ساده‏تر، SOAPیک پادمان است برای دستیابی به یک سرویس ارایه شده در وب[32]. آخرین نسخه SOAP، نسخه 1.2 می‏باشد.

ویژگی­های SOAP

  1. یک پادمان ارتباطی است.
  2. برای ارسال پیام استفاده می‏شود.
  3. برای محیط اینترنت و شبکه طراحی شده است.
  4. وابسته به محیط پیاده سازی و اجرا نیست.[33]
  5. مبتنی بر XML است.
  6. از دیوارهای آتش گذر می‏کند ودیوارهای آتش مانع آنها نمی شوند (Blockنمی‏شوند).

یکی از مسایلی که در دهه اخیر از اهمیت خاصی برخوردار بوده، چگونگی ارتباط برنامه‏های تحت اینترنت با یکدیگر بوده است. برنامه‏های عادی از RPC[34]برای فراخوانی اشیاء DCOMیا CORBA، استفاده می‏کنند. اما مشکلی که در این نوع فراخوانی‏ها در بستر اینترنت وجود دارد، مسدود شدن این نوع ترافیک‏ها در ProxyServer ها و دیوارهای آتش است.

در صورت استفاده از SOAPبا این مشکل روبرو نخواهید بود. SOAPبه راحتی می­تواند بین برنامه‏هایی که در بسترهای متفاوت طراحی شده اند و در بسترهای متفاوتی در حال سرویس‏دهی هستند، ارتباط برقرار کند.

 

ساختار SOAP

پیام ها در SOAPیک فایل XMLهستند که از ساختار زیر پیروی می‏کنند:

  1. یک بخش ضروری که به آن پاکت نامه[35] گفته می‏شود که مشخص می‏کند که این XML یک پیام SOAPاست.
  2. قسمت سرآیند[36] که اختیاری است. این بخش شامل اطلاعاتی در مورد خود برنامه است. در صورتی که از سرآیند استفاده شود، باید اولین عنصر در ساختار پاکت نامه باشد.
  3. قسمت بدنه که ضروری است وشاملفراخوانی[37]یا درخواست[38]است. در واقع مشخص کننده درخواستِ برنامه‏ی سرویس‏گیرنده یا پاسخ برنامه سرویس‏دهنده است.
  4. قسمت عیب[39] که قسمت خطا است و اختیاری است و اطلاعاتی درباره خطاهای بوجود آمده در هنگام پردازش پیام در خود دارد.

 

قوانین مهم در ساختار پیام

  1. پیام حتماً باید در قالب XMLباشد.
  2. باید از Namespaceتعریف شده در پاکت نامه پیروی کند.
  3. فقط باید از نوع داده‏های تعریف شده و مجاز استفاده کند.
  4. در قالب پیام، نباید از DTDاستفاده شود. DTDبرای یک XML، مانند شکل طراحی[40]یک جدول در پایگاه داده است و مشخص می‏کند که فیلدهای آمده در XMLاز چه نوع هستند و با چه ترتیبی می‏آیند. برای مثال:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

  1. نباید شامل دستورات پردازشی باشد.

معایب SOAP

یکی از مهمترین معایب آنامنیتوقابلیتاعتمادپایینمی­باشد.همین کاستی باعث شده است که تولیدکنندگان نرم‏افزار به این فکر بیفتند تا SOAPرا توسعه دهند و استانداردهای جدیدتری با امکانات بیشتری تولید کنند. استاندارد تولید شده توسط مایکروسافت با نام GXA[41]ارایه شد. که یک پیاده‏سازی ازآن WSE[42]است. WSEیک ابزار قدرتمند است که شما با استفاده از DotNet Frameworkو WSEمی توانید وب سرویس های امن و قدرتمند بنویسید. به بیان ساده‏تر WSEابزار شما برای طراحی و ساخت وب سرویس ها با .NETمی باشد.

 

.Net Remoting

وبسرویس­هاسیستمیبسیارسادهدارندوازآنها­می­توانبهعنوانابزاریجهتبرقراریارتباطبین سیستم­هایمختلفاستفادهکرد،ولیباتمامقابلیت­هاوامکاناتیکهوبسرویسهادارنداینتکنولوژیدربرخیمواردبهاندازهکافیانعطاف­پذیروسریعنیستولذاپاسخگویگروهخاصیازنیازهانیست.

وبسرویس­هاامکانی جهتدسترسیبهاشیاءوتوابعازطریقشبکهرافراھممیکنند،ولیباتمامقابلیت­هاوامکاناتیکهوبسرویس­ها­دارنداینتکنولوژیدربرخیمواردبهاندازهکافیانعطافپذیروسریعنیستولذاپاسخگویگروهخاصیازنیازها نیست.

بزرگترینعاملیکهاینمحدودیتراایجادمیکندنیازوبسرویس­هابهIISویابهعبارتدیگرASP.NETRemotingمی­باشد. جهت فائق آمدن به این مسائل می توان از .NET Remoting استفاده کرد. در واقع .NET Remotingهمدقیقاًهمانسرویسیرافراهممی­کندکهوبسرویس­هافراهممی­کنندولیدارایویژگی­های خاصیمی­باشدکهانعطافوسرعتزیادینسبتبهوبسرویس­هایعادیفراھممیکند.

.NET Remotingیک چارچوب قابل انعطاف و قابل توسعه را ارائه می­کند و روش­های انتقال متفاوتی را اجازه می دهد (HTTP,TCP بصورت پیشفرض پشتیبانی می­شوند). بسیار پرکاربرد در برنامه­های کاربردی توزیع شده بشمار می­آید.  از .NET Remotingبرای انتقال HTTPدر اینترنت و یاTCPدر شبکه های داخلی می­توان استفاده نمود.

 

خلاصه :

در این فصل یک تعریف کوتاهی از گسترش برنامه­های توزیع شده و روش­های مربوط را ارائه می­دهد. در ادامه شرحی از چارچوب­های گوناگون ریموتینگ بیان می­گردد که می­توان به (RPC,DCE/RPC,CORBA,DCOM , SOAP,.Net Remoting ) اشاره کرد.

 



[1] Development

[2] Distributed

[3] Technologies

[4]Serialized

[5]Deserialized

[6]Scenarios

[7]DataBase

[8]Performance,

[9]Scalability

[10] Maintainability

[11]Centralized

[12] Update

[13]shared

[14]Separation

[15]AttackersOr Hacker

[16]Firewall

[17]Connection

[18]Sql

[19]RPC - Remoteprocedurecall

[20]DCE

[21]OSF

[22] IDL

[23]CORBA

[24]interoperability

[25]Object Request Broker

[26]Remote Procedure calls

[27]DCOM

[28]Download

[29] Web Service

[30]Simple Object Access Protocol

[31]Message

[32]Web Service

[33]Platform Independent

[34]Remote Procedure Call

[35]Envelope

[36]Header

[37]Call

[38]Response

[39]Fault

[40]Design View

[41]Global XML Web Services Architecture

[42]Web Services Enhancements

 

پنج شنبه 16 شهریور 1391  9:28 AM
تشکرات از این پست
catcat
catcat
کاربر طلایی1
تاریخ عضویت : شهریور 1391 
تعداد پست ها : 6699
محل سکونت : رنگین کمان

پاسخ به:معرفی ریموتینگ

ریموتینگ پروسه­ای از برنامه­ها یا اجزاء آن است که بصورت کامل بر روی هم تاثیر می­گذارد.

در محیط .Netاین تکنولوژی توابعی را جهت برنامه­های توزیع شده فراهم می­نماید که آن حقیقتا جایگزین DCOM می­­شود.عموما پیاده سازی ریموتینگ بصورت عملی بین اجزاء ریموتینگ و اجزاء متحرک آن متمایز  می­باشد. ریموتینگ قالبی است که قابلیت اجرای متد بر روی سرورها را فراهم می­نماید. و پارامترهای دریافتی و گذرا را به صورت  مقادیر با ارزش بر می­گرداند.

دوشنبه 27 شهریور 1391  1:06 AM
تشکرات از این پست
دسترسی سریع به انجمن ها