Slide 1

advertisement
‫انواع‬
Architectural Styles
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
1
...‫هاي معماري‬Style ‫انواع‬
Data-Centered
Repository
Blackboard



Independent Components (Loosely

Coupled)
Communicating Processes
،Implicit Invocation :Event-based
Explicit Invocation


Data Sharing Style
‫با استفاده از داده هاي مشترک توسط‬
‫ها‬component



Interactive Process Style
.‫ ها‬pattern ‫ارتباط بين‬
‫وابسته به ترتيب انجام محاسبات و همراه‬
‫به يک کنترل‬
Main Program/Subroutine
Remote Procedure Call
Layered (API)
Object Oriented

Hierarchied Style
‫کاهش وابستگي اجزا و انتقال نتايج به زيرسيستم‬
‫ها در يک سلسله مراتب‬
Call/Return






Virtual Machine
Interpreter
Rule-based e.g. Prolog
System



Data-Flow
Batch Sequential
Pipe and Filter





‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
2
‫‪Data-Flow Style‬‬
‫‪‬‬
‫‪3‬‬
‫موارد استفاده‪:‬‬
‫‪‬‬
‫اگر سيستم طوري به نظر آيد که در آن يک خروجي خوش‪-‬تعريف (‪well-‬‬
‫‪ )defined‬و ‪ easily-identified‬تهيه مي شود که نتيجه مستقيم ترتيبي از‬
‫انتقال هاي ورودي با همان ويژگي ها در يک روش مستقل از زمان (‪Time-‬‬
‫‪ )independent‬است‪.‬‬
‫‪‬‬
‫‪ :Integrability‬ارتباط بين چندين واسط (‪ )Interface‬ساده بين‬
‫‪component‬ها‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Data-Flow Substyles
‫ محاسبات شامل انتقال هايي روي جريان پيوسته‬:Pipe and filter
.‫اي از داده مي شود‬
‫ سيستم شامل کنترل کردن اعمال مداوم‬:Closed loop control
‫ شده‬embed ‫) که در يک سيستم فيزيکي‬Continuing Action(
.‫ مي باشد‬،‫است‬
(and is subject to unpredictable external
perturbation so that preset algorithms go awry) !!
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(


4
‫معماري هاي ‪Call and Return‬‬
‫‪‬‬
‫‪‬‬
‫دست يافتن به تغييرپذيري (‪ )modifiability‬و مقياس پذيري (‪.)scalability‬‬
‫‪ Sub-style‬ها‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪5‬‬
‫‪:Main program and subroutine‬‬
‫‪ ‬تقسيم (‪ )decompose‬سلسله مراتبي يک برنامه‪.‬‬
‫‪ ‬هر جزو از برنامه‪ ،‬کنترل برنامه و داده را از پدر (‪ )parent‬خود گرفته آن را به فرزندانش مي‬
‫دهد‪.‬‬
‫‪:Remote Procedure Call‬‬
‫‪ ‬داراي ‪ main program‬و روتين ها ولي به صورت توزيع شده روي يک شبکه‪.‬‬
‫‪ ‬افزايش کارايي (‪ )performance‬به دليل استفاده از چندين پردازنده‪.‬‬
‫‪ :Layered‬به وسيله ‪ API‬ها‪.‬‬
‫‪.Object Oriented‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Main program/Subroutine style
‫ توسعه و ساخت مستقل اجزا‬،‫ استفاده مجدد‬:‫اهداف اوليه‬
)Independent development(
call/return ‫ سلسله مراتبي‬style :‫مثال‬


Main Program
Subroutine 1
Subroutine 2
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
Subroutine 3
6
‫‪Remote Procedure‬‬
‫‪‬‬
‫‪‬‬
‫به جاي ساختار سلسله مراتبي در شبکه توزيع مي شود‪.‬‬
‫هر جز به صورت مستقل و بر اساس نياز فراخواني مي شود‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪7‬‬
‫افزايش کارايي ( ‪)performance‬‬
‫امکان انجام ‪multi-process‬‬
‫هدف اصلي‪ :‬کارايي و استقالل اجزا‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Layered hierarchies‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫اهداف‪ :‬چسبندگي باال‪ ،‬قابليت حمل (‪ ،)portability‬بسته بندي (‪ ،)Packaging‬استانداردسازي‬
‫مثال‪.Motif ،TCP/IP ،7 layer Model ،ISO Open Systems :‬‬
‫اجزا‪ :‬سازمان سلسله مراتبي در اليه ها‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫با استفاده از ‪ API‬ها و پروتکل ها به هم مرتبط مي شوند‪.‬‬
‫‪‬‬
‫مزايا‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫پشتيباني از طراحي به وسيله ‪.Abstraction levels‬‬
‫قابليت توسعه با تسهيل اضافه کردن و يا تغيير يک اليه موجود‪.‬‬
‫معايب‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪8‬‬
‫هر اليه سرويس هايي را براي اليه خارج از خود مهيا مي کند‪.‬‬
‫هر اليه به عنوان يک ‪ client‬براي اليه درون خود عمل مي کند‪.‬‬
‫در مواردي همه اليه ها به هم دسترس ي دارند و يا تنها به برخي اليه هاي دسترس ي وجود دارد‪.‬‬
‫سيستم هاي ديگر تنها به ‪ close layer‬مي توانند دسترس ي داشته باشند‪.‬‬
‫کارايي سيتسم مي تواند به دليل سربار ناش ي از اليه بندي هاي غيرضروري (فراخواني توابع) پايين آيدو‬
‫ساختاربندي در يک حالت ‪ clean layers‬هميشه به آساني ممکن نيست‪.‬‬
‫‪.Requirements don’t make it evidently clear‬‬
‫توسعه آن با مشکل روبروست‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Object-Oriented/Abstract Data Style‬‬
‫‪‬‬
‫اهداف‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ :Encapsulation‬پنهان سازي اطالعات (‪)information hiding‬‬
‫‪:Objects‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مزايا‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫حفظ يکپارچگي و درستي (‪ )integrity‬داده ها‪.‬‬
‫پنهان کردن بازنمايي داده ها از کاربر‪.‬‬
‫ايجاد ارتباط با استفاده از پيام ها (‪)messages‬‬
‫هماهنگي داده به صورت اتوماتيک صورت مي گيرد‪.‬‬
‫سيستم مجموعه اي از ‪ agent‬هاي مستقل است‪.‬‬
‫نگهداري (‪ )maintenance‬و توسعه (‪ )evolution‬را باال مي برد‪.‬‬
‫قابليت استفاده مجدد‪.‬‬
‫معايب‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪9‬‬
‫مدلسازي طبيعي جهان واقعي (‪)natural modeling‬‬
‫استفاده مجدد با ‪refinement‬‬
‫براي تعامل‪ ،‬يک ‪ object‬بايد شناسه (‪ )identity‬شيئ هدف را بداند‪.‬‬
‫افزايش مقياس (‪ )scale up‬مي تواند کند و غيرکارا باشد‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Data-centered Style‬‬
‫‪‬‬
‫‪‬‬
‫اهداف‪ ،Integrability :‬مقياس پذيري (‪ client/data( )scalability‬جديد)‬
‫اجزا‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ :Data Centered Repository‬پايگاه داده هاي قديمي‬
‫‪‬‬
‫‪‬‬
‫ذخيره مرکزي داده – وضعيت کنوني‪.‬‬
‫اجزاي مستقل که عمليات خود را روي داده مرکزي انجام مي دهند‪.‬‬
‫نوع تراکنش فرايندي را براي اجرا انتخاب و آغاز (‪ )trigger‬مي کند‪.‬‬
‫‪:Blackboard‬‬
‫‪‬‬
‫حالت داده مرکزي (‪ ).data store’s State‬فرايند را براي اجرا انتخاب و آغاز مي کند‪.‬‬
‫‪Shared Data‬‬
‫‪Client‬‬
‫‪10‬‬
‫‪Client‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Client‬‬
‫معماري ‪Blackboard‬‬
‫‪‬‬
‫کاربردها‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫اجزا‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪11‬‬
‫‪Complex data interpretation‬‬
‫‪ ‬پردازش سيگنال‪.speech/pattern recognition ،‬‬
‫استفاده از داده ها مشترک با استفاده از عامل هاي مستقل‪.‬‬
‫‪ :Blackboard‬مديريت داده ها مرکزي‬
‫منابع دانش‪:‬‬
‫‪ ،Evaluate their applicability ‬محاسبه يک نتيجه‪ ،‬بهنگام سازي ‪.blackboard‬‬
‫کنترل‪:‬‬
‫‪ ‬نظارت (‪.blackboard )monitor‬‬
‫‪ ‬زمانبندي فعاليت هاي منابع دانش‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
blackboard ‫الگوريتم معماري‬
Start control::loop
Conrol::nextSource
Determine potential knowledge
sources by calling Blackboard::inspect
Invoke
knowledgeSource::execCandidate of
each candidate knowledge source
Each candidate knowledge source
invokes Blackboard::inspect to
determine if/how it can contribute to
current state of solution
Control chooses a knowledge source to
invoke by calling
KnowledgeSource::execAction
Executes
knowledgeSource::updateBlackboard
Calls Blackboard::inspect
Calls Blackboard::update
knowledge source
.1
*
.2
.3
-operates on
.4
+updateBboard()
+execCondidate()
+execAction()
-activities
.5
*
Blackboard
.6
-solutions
-controlData
+inspect()
+update()
.7
.8
.9
Control
+loop()
+nextSourcs()
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
12
‫‪Data-Centered Style‬‬
‫‪‬‬
‫‪‬‬
‫هنگامي مورد استفاده قرار مي گيرد که هدف محل ذخيره سازي (‪ ،)Storage‬نمايش‪،‬‬
‫مديريت و بازيابي حجم بااليي از داده هاي ‪ long-lived‬مرتبط مي باشد‪.‬‬
‫پايگاه داده ها و ‪ repository‬هاي تراکنش ي (‪)transactional‬‬
‫‪‬‬
‫‪‬‬
‫‪:Blackboard‬‬
‫‪‬‬
‫‪‬‬
‫‪13‬‬
‫ترتيب اجراي ‪ component‬ها براساس جريان ورودي درخواست ها براي دسترس ي‪/‬بهنگام‬
‫سازي داده بوده و داده ها در ساختار هاي سطح بااليي قرار دارند‪Data is highly ( .‬‬
‫‪.)structured‬‬
‫مقياس پذيري (‪ )scalability‬براي اضافه نمودن مصرف کننده ها(‪ )consumers‬داده ها‬
‫بدون تغيير محصول؛ و يا‬
‫تغيير پذيري براي تغيير اينکه چه کس ي داده را تهيه مي کند و چه کس ي آن را مصرف مي کند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Virtual Machine Style
،‫ طراحي شده‬component ‫هنگامي مورد استفاده قرار مي گيرد که براي يک‬
.‫ماشين مشخص ي که روي آن اجرا شود وجود نداشته باشد‬
‫ ارائه يک محيط مجازي بين ماشين و‬،‫ شبيه سازي عمليات مبتني بر دانش‬:‫هدف‬
‫ و يا‬portability ‫ براي‬non-native functionality ‫ شبيه سازي‬،OS
.prototyping
:‫مثال‬
Perl ‫ مثل‬،Interpreters
Prolog ‫ مثل‬،Rule-based Systems
Command Language processors
JVM (intermediate language)
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(







14
‫‪Call-and-return Styles‬‬
‫‪‬‬
‫‪15‬‬
‫هنگامي مورد استفاده قرار مي گيرد که‪:‬‬
‫‪‬‬
‫ترتيب محاسبات ثابت است‪.‬‬
‫‪‬‬
‫‪ Component‬ها پردازش مفيدي را به هنگام انتظار براي نتايج درخواست ها‬
‫از ‪ component‬هاي ديگر‪ ،‬ندارند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Call-and-Return Substyles -1
‫) و يکپارچگي‬modifiability( ‫ تغييرپذيري‬:Object-Oriented
‫)ها) موجب ايجاد کيفيت‬Interface( ‫) (با توجه به واسط‬integrability(
.‫نيازمندي مي شود‬

overall modifiability and integrability via careful attention to interface are driving quality (
.)requirements
.‫ بسياري از انواع داده سيستم که نمايش آنها معموال تغيير مي کند‬:abstract ‫انواع داده‬
many like modules, commonalties could be exploited :Objects
through inheritance


:Call-and-return-based client-server
Modifiability with respect to the production of data and how it is
consumed is important
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(


16
Call-and-return Subatyles -2
:Layered
If the tasks in your system can be divided between those
specific to the application and those generic to many
application but specific to the underlying computing
platform
.‫ هاي محاسباتي مهم باشد‬platform ‫ بين‬portability ‫اگر‬
‫ بسته هاي‬،OS ‫اگر بتوان از يک اليه زيرساختي که پياده سازي شده است (مانند‬
.‫) استفاده نمود‬...‫مديريت شبکه و‬
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(




17
‫‪Independent Component Style‬‬
‫‪‬‬
‫موارد استفاده‪:‬‬
‫‪‬‬
‫‪‬‬
‫سيستم روي يک ‪ platform‬چندپردازنده (‪ )multi-processor‬اجرا مي شود‬
‫و يا قرار است در آينده اجرا شود‪.‬‬
‫سيستم مي تواند به صورت مجموعه اي از اجزا با وابستگي کم ( ‪loosely‬‬
‫‪ )coupled‬ساختاردهي شود‪.‬‬
‫‪ ‬يعني يک ‪ component‬مستقل از حالت اجزاي ديگر‪ ،‬مي تواند فرايندي را انجام‬
‫دهد‪.‬‬
‫‪‬‬
‫ميزان سازي کارايي (‪ )performance tuning‬مهم است‪.‬‬
‫‪By re-allocating work among processes ‬‬
‫‪18‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Independent Components‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫شامل فرايندها و يا ‪ Object‬هاي مستقل که از طريق پيام هاي با هم ارتباط دارند‪.‬‬
‫هيچ کنترلي بين ‪ component‬ها وجود ندارد‪.‬‬
‫تغييرپذيري (بخش هاي مختلف محاسبات از هم جدا هستند)‪.‬‬
‫شامل‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪19‬‬
‫فرايندهاي ارتباطي‪ :‬توپولژي هاي ممکن‬
‫‪Peer to Peer ‬‬
‫‪Client/Server ‬‬
‫‪Event System‬‬
‫‪ :Implicit invocation ‬براساس تغيير ‪.notification‬‬
‫‪Tight coupling :Explicit Invocation ‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Independent Component Substyles‬‬
‫‪‬‬
‫فرايندهاي ارتباطاتي‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪ Message-passing‬يک مکانيسم خوب براي اين کار است‪.‬‬
‫فرايندهاي سبک (‪:)lightweight‬‬
‫‪ ‬دسترس ي به داده ها براي اهداف کارايي مهم است‪.‬‬
‫‪‬‬
‫‪20‬‬
‫‪ Object‬هاي توزيع شده‪ :‬با استفاده از تمامي کارکردهاي ‪object-oriented‬‬
‫‪ style‬و ‪.interacting process style‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Independent Component Substyles‬‬
‫‪‬‬
‫‪:Broadcast‬‬
‫‪‬‬
‫‪‬‬
‫تمامي اجزا نيازمند همزمان شدن (‪ )Synchronized‬از زماني به زمان ديگر‬
‫دارند‪.‬‬
‫قابليت دسترس ي (‪ )availability‬يکي از نيازمندي هاي مهم است‪.‬‬
‫‪:Event System ‬‬
‫‪‬‬
‫‪‬‬
‫‪21‬‬
‫جدا کردن مصرف کننده هاي ‪ event‬هاي از عالمت دهنده (‪ )signalers‬آنها‪.‬‬
‫مقياس پذيري (‪ )Scalability‬به صورت اضافه کردن فرايندهايي که با ‪event‬‬
‫ها ‪ trigger‬شده اند و تا به حال در سيستم شناسايي و يا عالمت داده‬
‫(‪ )signaled‬شده اند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫)‪Event-Based (Implicit Invocation‬‬
‫‪‬‬
‫دو دسته ‪ component‬کلي وجود دارد‪:‬‬
‫‪‬‬
‫‪‬‬
‫دسته اي ‪ events‬را اعالم مي کنند‪.‬‬
‫دسته اي به عنوان ‪ interest in events‬ثبت نام مي کنند‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫قسمتي از سيستم درصدد انتقال ‪ Event‬ها بين توليدکننده و مصرف کننده آنهاست‪.‬‬
‫محدوديت هاي محتوايي (‪:)Semantic‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫اعالم کننده هاي ‪ event‬ها نمي دانند که کدام ‪ component‬ها تحت تاثير قرار گرفته اند‪.‬‬
‫هيچ فرض ي در مورد ترتيب پردازش وجود ندارد‪.‬‬
‫موارد مورد استفاده‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪22‬‬
‫براي هر ‪ event‬يک روتين مشترک وجود دارد که به هنگام آن ‪ event‬رخ مي دهد به صورت خودکار اجرا‬
‫مي شود‪.‬‬
‫ابزارهاي ‪.Integrate‬‬
‫‪Ensure database consistency‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫)‪Event-Based (implicit Invocation‬‬
‫‪‬‬
‫مزايا‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫معايب‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪23‬‬
‫پتانسيل استفاده مجدد باال‪.‬‬
‫توسعه آسان‪.‬‬
‫‪ Component‬ها و ‪ procedure‬ها بايد در يک ‪ event‬ثبت نام کنند‪.‬‬
‫ضمانتي براي مورد عمل قرار گرفتن يک ‪ event‬وجود ندارد‪.‬‬
‫تبادل داده‪:‬‬
‫‪ ‬معموال يک ‪ repository‬مشترک نياز است‪.‬‬
‫تشخيص درست کار کردن سيستم معموال سخت است‪.‬‬
‫‪Compiler can no longer do early detection‬‬
‫پيگير کد (‪ )trace‬بدون ابزار ‪ debugging‬سخت است‪.‬‬
‫امکان استفاده از انواع مختلف داده (‪ )data typing‬بسيار ضعيف است‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫معماري ‪Client/Server‬‬
‫‪‬‬
‫مزايا‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫معايب‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫کاربران تنها اطالعات را به در صورت نياز دريافت مي کنند‪.‬‬
‫طراحي جزئيات نمايش را بيان مي کند‪.‬‬
‫يک داده را به روش هاي مختلفي مي توان نمايش داد‪.‬‬
‫نيازمند مکانيزم هاي پيچيده تري براي امنيت و مديريت سيستم دارد‪.‬‬
‫ساخت ‪ Application‬ها نيازمند منابع بيشتري براي پياده سازي هستند‪.‬‬
‫مشکالت توزيعي بودن‪.)distribution problems( .‬‬
‫انواع‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪ :Tier 1‬سيستم واسط کاربر‪.‬‬
‫‪ :Tier 2‬اليه مياني (‪)middle-tier‬‬
‫‪‬‬
‫‪‬‬
‫‪24‬‬
‫مديريت فرايند (منطق تجاري و اجراي قوانين)‬
‫‪Function‬ها (مانند صفبندي ‪ ،queuing‬اجراي ‪ application‬و ‪.)database staging‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫معماري يک و دو اليه ‪client/Server‬‬
‫‪‬‬
‫مديريت پردازش (‪ )processing Management‬به دو بخش زير تقسيم مي شود‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ :Tier 1‬سيستم واسط کاربر روي محيط ‪ desktop‬کاربر‪.‬‬
‫‪:Tier 2‬سرويس مديريت پايگاه داده در يک سرور‪.‬‬
‫محدوديت ها‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪25‬‬
‫سيستم واسط کاربر (‪)user System interface‬‬
‫سرور مديريت پايگاه داده‪)database management server( .‬‬
‫وقتي تعداد ‪ client‬ها زياد مي شود (باالي ‪ 100‬کاربر) کارايي پايين مي آيد‪.‬‬
‫انعطاف پذيري و قدرت انتخاب ‪ DBMS‬براي برنامه ها کم مي شود‪( .‬به دليل مديريت فرايند در‬
‫سطح سرور‪)stored procedures -‬‬
‫انعطاف پذيري محدود در انتقاي ‪ functionality‬برنامه بين سرورها‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫معماري سه اليه ‪client/Server‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪26‬‬
‫منطق فرايند را متمرکز مي کند‪.‬‬
‫افزايش کارايي‪ ،‬انعطاف پذيري‪ ،‬قابليت نگهداري (‪،)maintainability‬‬
‫استفاده مجدد و مقياس پذيري‪.‬‬
‫تغييرات تنها بايد يک بار در سرور اليه مياني نوشته شوند تا در سيستم‬
‫اعمال شوند‪.‬‬
‫يکپارچگي پايگاه داده هاي توزيع شده راحت تر ايجاد مي شود‪.‬‬
‫دسترس ي به منابع با براساس نام است‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫زيرساخت اليه مياني (‪)Middle-Ware‬‬
‫‪‬‬
‫نرم افزار اتصال (‪)connectivity software‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مثال ها‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪27‬‬
‫مجموعه اي سرويس هايي که موجب انجام عمليات مي شوند‪.‬‬
‫امکان اجراي چندين فرايند روي يک يا چند ماشين براي تعامل از طريق شبکه را‬
‫مهيا مي سازند‪.‬‬
‫‪Object Management Group’s Common Object Request‬‬
‫)‪Broker Architecture (CORBA‬‬
‫‪.Microsoft’s Component Object Model (COM), DCOM‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Common Object request Broker‬‬
‫)‪Architecture (CORBA‬‬
‫‪‬‬
‫‪‬‬
‫يک معماري استاندارد براي )‪. Object Request Broker (ORBs‬‬
‫هدف‪:‬‬
‫‪‬‬
‫امکان گسترش محصوالت ‪ ORB‬را به وجود مي آورد که از موارد زير پشتيباني مي‬
‫کنند‪:‬‬
‫‪.Application Portability and inter-operability ‬‬
‫‪ ‬ارتباط بين زبان هاي برنامه نويس ي مختلف‪ platform ،‬هاي سخت افزاري مختلف‪،‬‬
‫سيستم عامل هاي مختلف و پياده سازي هاي موجود ‪.ORB‬‬
‫‪28‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫زيرساخت اليه مياني (‪)Middle-Ware‬‬
‫‪‬‬
‫)‪ :Application Programming Interface (API‬براي برنامه‬
‫ها امکانات زير را ايجاد مي کند‪:‬‬
‫‪‬‬
‫‪ Location Transparently‬در شبکه و امکان تعامل با برنامه ها و سرويس‬
‫هاي ديگر‪.‬‬
‫استقالل از سرويس هاي شبکه‪.‬‬
‫‪‬‬
‫‪ Reliable‬و در دسترس بودن‪.‬‬
‫افزايش ظرفيت بدون از دست دادن ‪.functionality‬‬
‫‪‬‬
‫‪‬‬
‫‪29‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Common Object request Broker
Architecture (CORBA)
Interface Definition ‫ از يک‬CORBA ‫ هاي تعريف شده در‬object ‫تمامي‬
.‫ استفاده مي کنند‬Language (IDL)

Language mappings are defined from IDL-> c,C++,Ada95,
and Smalltack80
‫) زبان ها‬Heterogeneity( ‫امکان عدم تجانس‬


IDL
C++
Interface MineToCee
Class MineToCee
{void myOper (long ArgA)
Public virtual CORBA::Object
}
{virtual void myOper(CORBA::long ArgA);
}
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
30
Common Object request Broker
Architecture (CORBA)
ORB Core – CORBA runtime infrastructure
ORB Interface – Standard interface (defined in IDL) to
function provided by all CORBA- compliant ORBs.
IDL Stubs
.IDL ‫ براي هر واسط تعريف شده در‬IDL ‫ايجاد شده به وسيله پردازنده هاي‬
Client ‫ ها در شبکه از‬Object ‫پنهان کردن جزئيات سطح پايين ارتباطات‬
.Object type-specific ‫ سطح باال و‬API ‫ارائه يک‬
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(






31
‫‪Common Object request Broker‬‬
‫)‪Architecture (CORBA‬‬
‫‪‬‬
‫)‪:Object Request Broker (ORB‬‬
‫‪‬‬
‫استقالل ‪ client‬ها از سرويس ها‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫درخواست هاي ‪ client‬از نظر خودش فراخواني يک تابع محلي است‪.‬‬
‫هنگامي که يک ‪ client‬يک ‪ operation‬را فراخواني مي کند‪ ORB ،‬مسئول يافتن پياده سازي‬
‫‪ Object‬مربوطه‪ ،‬در صورت نياز فعال کردن آن‪ ،‬تحويل درخواست به ‪ Object‬و برگرداندن هرگونه‬
‫پاسخ به در خواست کننده‪ ،‬مي باشد‪.‬‬
‫واسط ‪ORB‬‬
‫‪‬‬
‫مجموعه اي از وظايف (‪ )tasks‬و ‪ library‬هايي که امکان‬
‫‪‬‬
‫‪‬‬
‫‪32‬‬
‫‪Locational and functional Transparency‬‬
‫تبديل ‪ object reference‬را به رشته (‪ )String‬و برعکس به وجود مي آورند‪.‬‬
‫ايجاد ليست آرگومان ها براي در خواست هايي که در ‪ )Dll( dynamic Invocation Interface‬به‬
‫وجود مي آيند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Common Object request Broker
Architecture (CORBA): Details
CORBA IDL Stubs and Skeletons:
Client Side is called IDL Stub
Server Side is called IDL Skeleton


.‫ در زبان برنامه نويس ي هدف‬IDL ‫تهيه شده توسط کامپايلر‬
“glue” ‫ يک‬ORB ‫ و سرور و‬client ‫ بين برنامه هاي‬Skeleton ‫ها و‬Stub
.‫هستند‬
‫ مي تواند با ارائه‬RPC .‫ وجود دارد‬RPC ‫تنها امکان فراخواني از راه دور توسط‬
‫ به تابعي که در سرور نيازمند فراخواني آن‬client ‫ مربوط به‬Address Pointer
.‫ انجام گيرد‬،‫است‬
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(




33
Common Object request Broker
Architecture (CORBA): Details 4
Dynamic Invocation Interface (Dll) client side
‫ به صورت مستقيم به سرويس ي که توسط يک‬client ‫اين واسط اجازه مي دهد يک‬
.‫ دسترس ي داشته باشد‬،‫ ارئه مي شود‬ORB
‫ ها بدون‬object ‫ درخواست ها به‬dynamic ‫ ها براي صادر کردن‬Dll ‫برنامه ها از‬
.‫ ها‬IDL interface-specific stub ‫نياز به لينک شدن به‬
Unlike IDL stubs (which only allow RPC-style requests),
the Dll also allows clients to make.
Non-blocking requests
One-way (send-only) calls.
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(






34
Common Object request Broker
Architecture (CORBA): Details 4
Dynamic Skeleton Interface (DSI)- server side
‫ پياده سازي شده که هيچ‬object ‫ ها را به يک‬request ‫ کردن‬Deliver ‫ امکان‬ORB ‫براي يک‬
‫ مهيا‬،‫ پياده سازي شده ندارد‬object ‫ مربوط به نوع‬compile-time ‫اطالعاتي در مورد اطالعات‬
.‫مي کند‬
The client making the request has no idea whether the implementation
is using the type-specific IDL Skeletons or is using the dynamic
skeletons.
Object Adaptor
Adaptor .‫ کمک مي کند‬ORB ‫ و فعال کردن آن به‬Object ‫در تحويل دادن درخواست ها به‬
library ‫ پايگاه داده است يا يک‬object ‫ مانند اينکه آيا آن يک‬.‫ را پنهان مي کند‬object ‫جزئيات‬
.object
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(





35
‫‪Other Brokers:‬‬
‫‪Microsoft’s Component Object Model (COM,‬‬
‫)‪DCOM‬‬
‫‪‬‬
‫‪COM‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪)DCOM( Distributed COM‬‬
‫‪‬‬
‫‪‬‬
‫براي تعامالت توزيع شده تحت شبکه‪.‬‬
‫‪MTS ،ActiveX ،)Object Linking & Embedding( OLE‬‬
‫‪‬‬
‫‪36‬‬
‫چارچوبي (‪ )framework‬براي يکپارچه سازي ‪ component‬ها‪.‬‬
‫امکان ‪ Assemble‬کردن چندين ‪ component‬مختلف که توسط ‪ vendor‬هاي مختلفي‬
‫ارائه شده است را براي ساخت يک سيستم ايجاد مي کند‪.‬‬
‫سرويس هاي سطح بااليي که روي ‪ COM‬ساخته شده اند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪MS, Component Object Model‬‬
‫)‪(COM, DCAM‬‬
‫‪‬‬
‫‪OLE‬‬
‫‪‬‬
‫‪‬‬
‫‪ActiveX‬‬
‫‪‬‬
‫‪‬‬
‫گسترش ي با سرويس هاي ‪( Enterprise‬تراکنش‪ ،‬امنيت) براي ايجاد امکان ساخت سيستم هاي اطالعاتي‬
‫سازماني با استفاده از ‪.COM‬‬
‫‪COM+‬‬
‫‪‬‬
‫‪‬‬
‫‪37‬‬
‫گسترش ي براي استفاده از ‪ component‬ها در وب سايت ها‪.‬‬
‫‪MTS‬‬
‫‪‬‬
‫‪‬‬
‫سرويس هايي (مانند ‪ )object linking and embedding‬ارائه مي دهد که در ايجاد مستندات‬
‫ترکيبي (مستنداتي که به وسيله چندين منبع ابزاري (‪ )tool source‬تهيه مي شوند) مورد استفاده قرار مي‬
‫گيرد‪.‬‬
‫سرويس هاي ‪ MTS‬و ‪ message queing‬را در ‪ COM‬ترکيب کرده تا برنامه نويس ي ‪ COM‬را ساده‬
‫تر کند‪.‬‬
‫يکپارچه شده با ‪ visual C++ ،visual Basic‬و ‪J++‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪MS, Component Object Model‬‬
‫)‪(COM, DCAM‬‬
‫‪‬‬
‫‪38‬‬
‫سرويس هاي پياده سازي شده توسط ‪ COM Objects‬تحت يک‬
‫مجموعه از واسط ها انتشار مي يابد‪.‬‬
‫‪‬‬
‫‪ COM‬يک ساختار ‪ binary‬براي واسط بين ‪ client‬و ‪ Object‬تعريف مي‬
‫کند‪.‬‬
‫‪‬‬
‫‪ COM Object‬ها و واسط ها با استفاده از ‪Microsoft Interface‬‬
‫)‪ Definition Language (IDL‬تخصيص داده مي شوند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Component Object Model (COM,‬‬
‫)‪DCOM‬‬
‫‪‬‬
‫هر ‪ COM Object‬در داخل يک سرور اجرا مي شود‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪39‬‬
‫‪ client :In-process server‬و سرور در يک فرايند (‪ )process‬مشترک اجرا مي شوند‪.‬‬
‫‪ :Local Object proxy‬سرور در يک فرايند جدا ولي در يک ماشين مشترک اجرا مي شود‪.‬‬
‫‪ ‬ارتباطات به وسيله ارتباطات ‪ inter-process‬انجام مي شود‪.‬‬
‫‪ :Remote Object proxy‬يک ‪ remote server‬روي يک ماشين ديگر‪.‬‬
‫‪ ‬ارتباطات به وسيله ‪( DCE RPC‬پشتيباني توسط ‪ )COM‬انجام مي گيرد‪.‬‬
‫تمامي ‪ COM Object‬ها با يک ‪ component‬پايگاه داده ثبت نام شده اند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫انتخاب يک ‪ Style‬معماري‬
‫‪40‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫قوانين ‪ Thumb‬براي انتخاب ‪ Style‬ها‬
‫‪‬‬
‫‪‬‬
‫‪41‬‬
‫هدف کاتالوگ ‪ style‬ارائه يک راهنماي طراحي ( ‪design‬‬
‫‪ )handbook‬است‪ :‬اگر مشکل شما شبيه الف است‪ ،‬از‬
‫‪ style‬ب استفاده کنيد‪.‬‬
‫‪The practice is not that advanced yet. The‬‬
‫‪best that we can do is offer rules of thumb.‬‬
‫استفاده از انواع معماري با قانون خاص ي همراه نيست‪ .‬بلکه‬
‫نتيجه گيري مقطعي (‪ )Rules of thumb‬مد نظر است‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪‬‬
)unit operations( ‫عمليات واحد‬
‫تدوين قوانين مربوط به عمليات طراحي در يک معماري به کار‬
.‫گرفته شده است‬
:‫شامل‬
Abstraction
Compression
Part-whole decomposition
Replication
Resource sharing
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(







42
‫‪Abstraction‬‬
‫‪‬‬
‫‪‬‬
‫يک ‪ component‬مجازي (‪ )Virtual‬ايجاد مي کند‪.‬‬
‫موارد استفاده‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪43‬‬
‫‪Simulated target platform‬‬
‫سيستم هاي اليه بندي شده (‪.)layered systems‬‬
‫واسطي مشترک براي مجموعه اي از اجزاي پياده سازي شده در محيط هاي‬
‫نامتجانس (‪.)Heterogeneous‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Compression‬‬
‫‪‬‬
‫‪‬‬
‫‪44‬‬
‫دو ‪ component‬را با هم ترکيب کرده و يک ‪ component‬ايجاد مي کند‪.‬‬
‫موارد استفاده‪:‬‬
‫‪‬‬
‫بهبود کارايي‪.‬‬
‫‪‬‬
‫تسريع توسعه سيستم‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Decomposition
.‫ بزرگ را به چندين اجزاي کوچکتر تقسيم مي کند‬component ‫يک‬
:Part-whole decomposition
‫ (مانند‬.‫ کوچک و ثابت ساخته مي شود‬subcomponent ‫ ها از يک سري‬Component
.)model-view-controller
‫) و قابل فهم بودن‬extensibility( ‫ گسترش پذيري‬،integrability ‫براي‬
.)Understandability(
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(




45
Decomposition
)Is-a( .‫ است‬decomposition ‫يک‬
‫) از‬specialization( ‫ يک خصوص ي سازي‬subcomponent ‫يک‬
.)‫ (مانند ارثبري کالس‬.‫ پدر خود را نمايش مي دهد‬functionality



Used for reuse by increments.
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
46
Replication
.component ‫) از يک‬exact duplication( ‫تکثير مشابه‬
:‫موارد استفاده براي بهينه سازي‬
.)redundant operation( Reliability
.)data caching( ‫بهبود کارآيي‬
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(




47
Typical Design Trade-Offs
Functionality
Usability
Cost
Robustaness
Performance
Portability
Rapid Development
Functionality
Cost
Reusability
Backward Compatibility
Understandability
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
48
‫اشتراک منابع‬
‫‪‬‬
‫‪‬‬
‫داده و يا سرويس ها را ‪ encapsulate‬مي کند و آن را بين‬
‫چندين مصرف کننده مستقل به اشتراک مي گذارد‪( .‬مثال‪ :‬پايگاه‬
‫داده هاي اشتراکي‪ ،‬سرورها در ‪.)client/server‬‬
‫موارد استفاده‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪49‬‬
‫‪Integrability‬‬
‫‪Portability‬‬
‫‪Modifiability‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫عمليات واحد و کيفيت‬
-
-
+
Part-whole
decomposition
+
+
+
Is-a decomposition
+
+
-
+
-
+
Resource sharing
+
-
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
reusability
-
Ease of component
creation
Compression
Component
modifiability
-
Ease of system
creation
+
Fault tolerance
Portability
+
+
Concurrent
Performance
Integrability
+
Replication
Sequential
Performance
System Modification
Scalability
Abstraction
+
+
+
+
+
-
-
-
-
+
+
+
+
+
-
+
50
Download