You are on page 1of 22

‫مهندسی نرم افزار ‪2‬‬

‫طراحی مبتنی بر‬


‫مشتری و سرویس‬
‫دهنده‬
‫محسن کامیار‬
‫برگرفته از درس مهندسی نرم افزار پیشرفته – دکتر‬
‫کاهانی‬
‫مشتری و سرویس‬
‫دهنده‬
‫در این مدل پردازش ها مبتنی بر دو جزء‬ ‫‪‬‬
‫اصلی می باشند مشتری و سرویس دهنده‬
‫مشتری‪ :‬هر دستگاه پردازش گری است که‬ ‫‪‬‬

‫برروی یک شبکه قصد دریافت یک سرویس را‬


‫دارد‬
‫سرویس دهنده‪ :‬هر دستگاه پردازش گری‬ ‫‪‬‬

‫است که درخواست های ارسال شده را‬


‫بررسی نموده و در صورت دسترسی به‬
‫سرویس درخواست شده آن را در اختیار‬
‫مشتری قرار می دهد‪.‬‬
‫مشتری و سرویس‬
‫دهنده‬
‫انواع ساختارهای شناخته شده مبتنی بر‬ ‫‪‬‬
‫مشتری و سرویس دهنده را می توان به‬
‫دسته های زیر تقسیم نمود‪:‬‬
‫مبتنی بر سرویس دهنده فایل‬ ‫طراحی‬ ‫‪‬‬

‫مبتنی بر پایگاه داده‬ ‫طراحی‬ ‫‪‬‬

‫‪ 3‬لیه‬ ‫طراحی‬ ‫‪‬‬

‫‪ 4‬لیه‬ ‫طراحی‬ ‫‪‬‬


‫طراحی مبتنی بر سرویس دهنده‬
‫فایل‬

‫در این روش اصطلحا به مشتری ها ‪Fat‬‬ ‫‪‬‬


‫‪ Client‬می گوییم‪.‬‬
‫در این روش کل فایل اطلعات به مشتری‬ ‫‪‬‬
‫داده می شود و کلیه پردازش ها نیز‬
‫برروی مشتری انجام می شوند‪.‬‬
‫مشکلت این روش عبارتند از‪:‬‬ ‫‪‬‬

‫حجم تبادل اطلعات بسیار بال‬ ‫‪‬‬

‫یک پایگاه داده کامل باید برروی هر مشتری‬ ‫‪‬‬

‫برای تشخیص همزمانی ها و ‪ ...‬وجود داشته‬


‫طراحی مبتنی بر سرویس دهنده‬
‫فایل‬
‫طراحی مبتنی بر پایگاه داده‬

‫در این روش در اصل یک معماری دو لیه‬ ‫‪‬‬


‫داریم‪.‬‬
‫مشتری موظف به انجام فعالیت های ورودی‬ ‫‪‬‬

‫و خروجی می باشد و بعضی از قوانین کسب‬


‫و کار نیز توسط آن بررسی می شوند‪.‬‬
‫سرویس دهنده نیز کلیه فعالیت های نگهداری‬ ‫‪‬‬

‫اطلعات را بر عهده دارد‪.‬‬


‫مزایای آن را می توان شامل موارد زیر‬ ‫‪‬‬
‫دانست‪:‬‬
‫مشتری ها دارای حجم پردازش پایین تری‬ ‫‪‬‬
‫طراحی مبتنی بر پایگاه داده‬

‫حجم تبادل اطلعات بسیار پایین تر است‬ ‫‪‬‬

‫یکپارچگی داده ها در سطح بالتری قابل‬ ‫‪‬‬

‫تأمین خواهد بود‪.‬‬


‫با استفاده از روال های ذخیره شده (‪stored‬‬ ‫‪‬‬

‫‪ )procedures‬می توان تعدادی از قوانین‬


‫کسب و کار را برروی سرویس دهنده اعمال‬
‫نمود‪.‬‬
‫اما در عین حال معایبی نیز وجود دارد‬ ‫‪‬‬

‫روال های ذخیره شده قابلیت انتقال نرم‬ ‫‪‬‬

‫افزار را پایین می آورند‪.‬‬


‫طراحی مبتنی بر پایگاه داده‬

‫برروی تمام مشتری ها باید کاربرد مورد نظر‬ ‫‪‬‬

‫نصب گردد‬
‫برای به روز رسانی کاربرد عملیات نصب‬ ‫‪‬‬

‫مجدد هزینه بالیی دارد‪.‬‬


‫طراحی ‪ 3‬لیه‬

‫در معماری سه لیه اجزاء زیر را خواهیم‬ ‫‪‬‬


‫داشت‪:‬‬
‫مشتری‪ :‬وظیفه فراهم آوردن واسط کاربر را‬ ‫‪‬‬

‫بر عهده دارد‬


‫سرویس دهنده کاربرد‪ :‬کلیه قوانین کسب و‬ ‫‪‬‬

‫کار را پوشش می دهد‬


‫سرویس دهنده پایگاه داده‪ :‬وظیفه ذخیره‬ ‫‪‬‬

‫اطلعات را برعهده دارد‪.‬‬


‫طراحی ‪ 3‬لیه‬
‫طراحی ‪ 4‬لیه‬

‫در معماری ‪ 4‬و ‪ n‬لیه اجزاء زیر را در‬ ‫‪‬‬


‫اختیار داریم‪:‬‬
‫مشتری که تنها وظیفه فراهم کردن ابزار‬ ‫‪‬‬

‫نمایش واسط کاربر را برعهده دارد‬


‫سرویس دهنده وب که وظیفه تهیه واسط‬ ‫‪‬‬

‫کاربر را بر عهده دارد‬


‫سرویس دهنده کاربرد که کلیه قوانین کسب‬ ‫‪‬‬

‫و کار را اعمال می نماید‬


‫سرویس دهنده پایگاه داده‬ ‫‪‬‬
‫طراحی ‪ 4‬لیه‬

‫مزایای این مدل عبارتند از‪:‬‬ ‫‪‬‬

‫مقیاس پذیری‬ ‫‪‬‬

‫انعطاف تکنولوژیک‬ ‫‪‬‬

‫کاهش هزینه های بلند مدت‬ ‫‪‬‬

‫سازگاری بیشتر کاربرد با نیازهای کسب و کار‬ ‫‪‬‬

‫کاهش ریسک‬ ‫‪‬‬


‫طراحی ‪ 4‬لیه‬

‫معایب این مدل نیز عبارتند از‪:‬‬ ‫‪‬‬

‫افزایش هزینه های کوتاه مدت‬ ‫‪‬‬

‫کمبود ابزارها و آموزش لزم برروی آن ها‬ ‫‪‬‬

‫نبود تجربه‬ ‫‪‬‬

‫استانداردهای ناهماهنگ‬ ‫‪‬‬

‫ابزارهای واسط کاربر نا هماهنگ‬ ‫‪‬‬


‫میان افزارها‬

‫در این بین ابزارهایی نیز وجود دارند که‬ ‫‪‬‬


‫امکان ارتباط بین چندین کاربرد را فراهم‬
‫می آورند و اصطلحا به آن ها میان افزار‬
‫(‪ )Middleware‬گفته می شود‪.‬‬
‫در استفاده از این ابزارها نیازی به اطلع‬ ‫‪‬‬
‫از ساختار پردازش مورد نظر نیست‬
‫میان افزارها‬

‫انواع میان افزارها را می توان در موارد‬ ‫‪‬‬


‫زیر خلصه نمود‪:‬‬
‫‪ :)Remote Procedure Call )RPC‬در این‬ ‫‪‬‬

‫روش امکان صدا زدن توابع یک کاربرد از‬


‫خارج فراهم می آید‪.‬‬
‫‪ :Transaction Processing )TP( Monitor‬در این‬ ‫‪‬‬

‫روش یک میان افزار تراکنش های پایگاه داده را‬


‫دریافت نموده و برای پایگاه داده ارسال می نماید‪.‬‬
‫دراین بین امکاناتی مانند کار با چند پایگاه داده در یک‬
‫تراکنش‪ ،‬اولویت بندی برروی تراکنش ها‪ ،‬مقیاس‬
‫پذیری‪ ،‬امنیت و ‪ ...‬را فراهم می آورد‪.‬‬
‫میان افزارها‬

‫‪:)Message Oriented Middleware )MOM‬‬ ‫‪‬‬

‫ارسال داده ها در قالب یک پیام شامل آدرس‬


‫و اطلعات کنترلی به همراه داده ها‪ .‬در‬
‫مقایسه با روش قبل دارای هوشمندی بالتر‪،‬‬
‫انعطاف پذیری بالتر و قابلیت انتقال بالتری‬
‫می باشد‪.‬‬
‫‪ :Publish/Subscribe‬مدل ارسال اطلعات را‬ ‫‪‬‬

‫استفاده می کند یعنی زمانی که اطلعات‬


‫آماده باشند آن را برای مشتری ها ارسال می‬
‫کند‪.‬‬
‫میان افزارها‬

‫ نمای کلی‬:Object Request Broker 

Application Objects Common Facilities

Object Request Broker

Object Services
‫میان افزارها‬
‫نمای داخلی‬ 

Client Object Implementation

Static Dynamic
ORB IDL Skeleton Object
Dynamic IDL Interface Adapter
Stubs Skeleton
Invocation

ORB CORE
Interface for each object type Interface Identical for
ORB-depend interface all ORB implementation
may be multiple adapters
‫میان افزارها‬
IDL Stub Invokation 

A.idl
Interface {Say(String);}
Compile to
Object C++
reference
Client Stub
Operation
A.Say( Abstract
parameter A
“hello!
Class A{
Say
ORB
void
” ); Locate for code
Say(String); String“Hell
o!”
}
Packag
e
‫میان افزارها‬
Dynamic Invokation 
Interface Repository

Object
Client reference
Dynamic
Interface Definition
Locate for code
A.Invoke Invocatio
nameValue n
(method
,
Interface ORB
“hello!”
); A
Say
String“Hell
Interface {Say(String);}
o!”
Creat_request( Packag
)
e
‫میان افزارها‬
Request and Response 

O
R Dynamic
B Skeleton
s
‫میان افزارها‬

‫‪ :SQL Oriented Data Access‬ابزارهای‬ ‫‪‬‬

‫گوناگونی نیز در این حیطه برای فراهم آوردن‬


‫واسط یکسان با پایگاه های داده فراهم شده‬
‫اند که از این دست می توان به موارد زیر‬
‫اشاره نمود‪:‬‬
‫‪ODBC – Open Data Base Connectivity‬‬ ‫‪‬‬

‫‪OLEDB – Microsoft Enhancement of ODBC‬‬ ‫‪‬‬

‫‪JDBC – Java Data Base Connectivity‬‬ ‫‪‬‬

You might also like