Slide 1

advertisement
‫معماری سيستمهای با مقياس بزرگ‬
‫آزمايشگاه سيستمهای هوشمند‬
‫زمستان ‪1385‬‬
‫‪1‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫مشخصات سيستمهای‪LS‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪2‬‬
‫کارکرد پيچيده و گسترده‪.‬‬
‫انتظارات سطح باال در مورد نيازمنديهای غير کارکردی‪.‬‬
‫نياز به اطالعات گسترده‪.‬‬
‫توزيع شدگی پردازش کارايي و يا اطالعات‪.‬‬
‫يکپارچگی سخت افزارها و نرم افزارها و سيستمهای‬
‫ارتباطی مختلف‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫لزوم داشتن يک ‪LS‬‬
‫‪‬‬
‫برای يکپارچه سازی سيستمهای مختلف به منظورنيل به‪:‬‬
‫‪ ‬اقتصادی ساختن سيستم از نظر توسعه و پشتيبانی از طريق استفاده‬
‫مجدد‪..‬‬
‫‪ ‬فروش يکباره ←رضايت مشتری‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪3‬‬
‫برای حل مشکل سيستم های جديد(‪)green field‬‬
‫برای رسيدن به نيازهای بازار و کسب وکار‬
‫برای رسيدن به اهداف استراتژيک سازمانی‬
‫محافظت از سرمايه‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫نمونه هايي از سيستمهای‪LS‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪4‬‬
‫سيستم رزرواسيون بليط‬
‫سيستمهای مالياتی‬
‫سيستمهای بانکی‬
‫سيستمهای بازار بورس و سهام‬
‫سيستمهای انبارداری‪ online‬و توزيع شده‪.‬‬
‫سيستمهای خدماتی ‪online‬‬
‫سيستمهای جامع و يکپارچه سازمانی‬
‫سيستمهای کنترل و اندازه گيری از را دور بالدرنگ‪.‬‬
‫سيستمهای مخابراتی‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫متغييرهای موجود در ‪LSS‬‬
‫‪‬‬
‫محتوا← کارايي‬
‫‪‬‬
‫کيفيت ← نيازمنديهای غير کارکردی و ديگر محدودژت‬
‫ها مانند محدوديت های تکنولژيکی‬
‫‪‬‬
‫زمانبندی ← زمان مورد نياز برای تکميل ‪LSS‬‬
‫‪‬‬
‫هزينه ← سرمايه‪ ،‬فراساختار و هزينه منابع انسانی‪.‬‬
‫‪5‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
LSS ‫متغييرهای موجود در‬
Quality
Cost
Schedul
e
Content
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
6
‫موارد مورد توجه در ‪LSS‬‬
‫‪‬‬
‫تقسيم وظايف در توسعه ‪(LSS‬زمينه های مورد توجه)‬
‫‪ ‬افراد مختلف‬
‫‪ ‬مسوليت های متفاوت‬
‫‪ ‬تخصصهای مختلف‬
‫‪‬‬
‫‪‬‬
‫هر زمينه دارای مسائل مختلف و روشهايي جهت حل‬
‫مشکالت می باشد‪.‬‬
‫هر روش ديدگاههای متفاوتی در مواجهه با مساله دارد‪.‬‬
‫‪ ‬ديدگاه تيم طراحی‬
‫‪ ‬ديدگاه مديريت پروژه‬
‫‪ ‬ديدگاه کسب و کار‪.‬‬
‫‪7‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Software Development For Large-Scale Systems
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
8
Software Architecture for LSS

Agenda
What
 Why an LSS
 Views
 Architecture description

‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
9
What is software architecture




Software architecture is an abstraction (generalized model) of
systems
Software Architecture is composed of sub-systems or
components (possibly nested)
Components have properties ,e.g attributes and behavior
The sub-Systems or componenets have relationship between
them



Non-runtime
E.g located within the same directory, layer or package
Runtime, e.g coupling (10 types)
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
10
Introduction
Large-Scale Software Architecture
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
11
What is Software Architecture


There of dozens of books talk about software
architecture
The definitions used in this book are closely
aligned IEEE 1417
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
12
Key Terms (1)

System


Is a set of components that accomplishes a
specific function or set of functions.
Architecture

Is the fundamental organization of a system
embodied in its components, their relationships to
each, and to the environment, and the principles
guiding its design and evolution.
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
13
Key Terms (2)

Architectural Description


Architectural View


A set of products that document the architecture
A representation of a particular system or part of a system from a
particular perspective
Architectural Viewpoint


A template that describes how to creat and use an architectural view
Includes a name, stakeholders, concerns addressed by the viewpoint
and the modeling and analytic conventions.
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
14
Software

Architecture


Refers to analysis, design, documentation, review,
approval, and other related activities concerned with the
definition and management of the software architecture
Architectural views


Provide representations of the architecture
Used to guide construction, manage, explore, train
personnel, test and perform other engineering tasks related
to creation and maintenance of software system
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
15
Uses of views







Capturing the design decisions both early on and as enhancements are
made
Capturing information about the runtime enviroment for software
Providing constrains on the lower-level design and implementation
Providing input to the structure of the development organization
Designing the system to meet the software reliability, availability,
maintainability, and performance requirements
Facilitating communication among the project teams
Communicating software capabilities and constraints to varios
developers, testers, and others
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
16
Other way for thinking

Typical questions answered by views of the architecture










What are subsystems or components of the software?
What are responsibilities of the components?
What are the interfaces provided, consumed by these components?
What subsystems or components are impact by a change to the software?
How much retesting is required if we change this component?
When components are involved in installing this change?
How are part of system to be physically distributed?
How will a change impact the performance of the system
What development teams are impacted by a change to this interface?
How much effort is involves in the development of this functionality?
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
17
What software architecture is not





Hardware, network, physical plant architecture
Hardware model number, hardware configuration,
routers, LAN
Should not duplicate information on other sources
Appropriate level of detail
Low level implementation details should not
included in the software architecture
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
18
Attributes of software architecture(1/2)




Cultural adaptability
Security
Data integrity
Maintainability characteristics


Portability
Changeability
 Fragility






Rigidity
Duplication
Understandability
Debugging support
Testability
usability
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
19
Attributes of software architecture(2/2)

Operational system aspects






Performance




Availability
Manageability
Upgradeability
Reliability
Recoverability
Response
Scalability
Capacity/throughput
safety
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
20
Points


Members of the architecture team need to
constantly evaluate the software architecture
to determine if it meets the desire goal with
respect to these characteristics
Architects must constantly prioritize and
manage the trade-off between these attributes
for a given projects
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
21
Why architect?





Architecting simply recognized the need to focus on the bigger
picture of the software design and to provide guidance to the
development team designers
It is a place to capture early design decitions
Provide constraints on the lower level design and
implementation
Provide the organizational structure for the development team
This goal is that a well defined architecture will produce a
system that will be easier to design, develop and maintain
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
22
Uses of software architecture







Training for the new team members
Making modification
Testers need to understand the system
Ensuring architectural attributes
Verification of requirements
Project management
Operating systems
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
23
Architectural viewpoint summary


Viewpoint are built by applying the various UML
diagram types to specific architecture development
tasks
Each viewpoint has specific modeling goals and
stakeholders
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
24
IEEE 1471 viewpoints



Conceptual and analysis viewpoint
Logical design viewpoint
Environment/physical viewpoint
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
25
UML: Unified Modeling Language
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
26
Conceptual and analysis viewpoint
Viewpoint
UML diagram
Description
Analysis focused
Class
Describe system entities in
response to a scenario.
Often refer to as a view of
participating classes or VOPC
Analysis interaction
interaction
Interaction diagram between
objects for analysis
Analysis overall
Class
Combination of all classes
from all focused analysis
viewpoints
Context
Use case
Show the external system
actors and the system under
design
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
27
Logical design viewpoints
Viewpoint
UML diagram
Description
Component
Component
Component communications
Component interaction
Interaction
Interactions among components
Component state
State/activity
State transition/activity diagram
for a component or for a set of
components
Layered subsystem
Packages
Layering and subsystem design
Logical data
Classes
Critical data views used for
integration
Subsystem interface
dependency
Class
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
Subsystem dependencies and
interfaces
28
Environment/physical viewpoint
Viewpoint
UML diagram
Description
Deployment
Deployment
Mapping of software to
hardware for distributed
systems
Physical data
Deployment
Physical view of a
particular database
Process
Deployment
Show the processes of a
particular system instance
Process state
State
Show the dynamic states
of a process
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
29
Roles of Software Architect
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
30
Outline




Roles of software architect and relation with
other roles
Skills required for software architect
Key approaches to lead software architecture
team
Traps and pitfalls associate with software
architect
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
31
Importance of software architect


Lack of goof software architect is a part of
the lack of good leadership in projects
Software architect defines a large part of
shared vision of software


The idea of the development team about what the
final product will be, the effect the software will
have and the goals of organization
The final architecture will balance the conflicting
interest of the various stakeholders
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
32
Activities for defining shared vision










Analysis the problem domain
Risk management
Requirement management
Interface design
Technology roadmap management
Determination of implementation approaches
Definition of an architecture that meets the system requirements, goal
of organization, project budget and schedule
Oversight of the mapping from the architecture to the design and
implementation
Communication of software architecture to technical and nontechnical audience
Maintenance of software architecture during system life cycle
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
33
Other software architecture approaches




4+1 views
RM-ODP viewpoints
Bass architectural structures
Hofmeister software architecture views
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
34
RM-ODP viewpoints




Referenced Model for Open Distributed Processing (RM-ODP)
An ISO standard
Provides a framework for the development of standards related
distributed processing
Defines the important properties of distributed systems;
openness, integration, flexibility, modularity, federation,
manageability, provisioning of quality services, security, and
transparency
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
35
RM-ODP viewpoints




Enterprise viewpoint
Information viewpoint
Computational viewpoint
Engineering viewpoint
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
36
Bass architectural structures


Does not use UML
Structures









Module structure
Conceptual
Process
Physical
Uses
Calls
Data flows
Control flow
Class structure
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
37
Hofmeister views




Conceptual view
Module view
Execution view
Code view
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
38
Stages of design

High level design



Low level design-code design



High level data structure
Architecture
Algorithms
Low level data structures
Executable design

Very lower level of detail
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
39
Types of design




Data design
Architectural design
External interface design
Algorithmic design
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
40
Design techniques

Require some sort of decomposition





Modular decomposition
Data oriented decomposition
Event oriented decomposition
Outside in design
Object oriented design
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
41
Architectural view -2


Which structure are used, and why?
Common view include







Module
Process
Uses
Class
Data flow
Class
physical
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
42
Typical roles and responsibilities










Requirements
Technical risk
Analysis of problem domain
Design of overall software
Reviewer and approver of deliverables
Mentoring of design and developers
Integration and test support
Implementation support
Team lead
Laison to project management
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
43
Relation to other key roles

Project management

Responsibilities


Program planning, subcontract management, supplier
management, software estimation, release management,
operation management
Relation to software architect
 Software architect works with project management in definition
of release contents and prioritization of features included or
omitted from a release
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
44
Relation to other key roles (con)

Development team managers

Responsibilities


Managing individual development teams
Relation to software architect
These managers should clearly understand the
interface they provide and consume to other
development teams and external entities
 High level aspects (COTS tools for interfaces,
complexity of development, modification of each
interface)

‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
45
Relation to other key roles (con)

System architect/ chief engineer


Responsibilities
 Overall system design and delivery
 Technical leadership pf the systems engineering, software
development, hardware design, network design, even test
organizations
Relation to software architect
 Interfaces between development teams, external
interfaces, requirements related issues
 Identify and resolve significant technical issues
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
46
Relation to other key roles (con)

Chief software engineering


Responsibilities
 Ensures the process is followed thoroughout the
development life cycle.
Relation to software architect
 To make sure the delivered software meets the
requirements and the interface and port definitions match
by those defined by software architect team.
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
47
Relation to other key roles (con)

Hardware architect


Responsibilities
 Selecting and configuring of hardware
Relation to software architect
 Software architect provides low level requirements for
selecting hardware
 Hardware architect informs hardware restriction to provide
requirements
 Software architect makes sure the software architecture id
defined within the constraints of the hardware.
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
48
Relation to other key roles (con)

Network architect


Responsibilities
 Defining the LAN and WAN design and configuration
Relation to software architect
 Communicate for defining network requirements
 Defines constraints implies by network back to software
architect
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
49
Relation to other key roles (con)

Technical leads of each release


Responsibilities
 Deliver each major release
Relation to software architect
 Communicate for technical issues
 Software architect deliver a set of architecture views to the
technical lead
 Communication and interfaces with previous release
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
50
Relation to other key roles (con)

Data architect


Responsibilities
 Definition, development and documentation of the data
architect.
Relation to software architect
 A member of architecture team.
 Software architect have final approval of the data
architecture.
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
51
Relation to other key roles (con)

System engineering leads


Responsibilities
 Responsible for delivering the system requirements
Relation to software architect
 Software architect review these requirements to make sure
they can be delivered
 Given the project constraints
 Provide feedback to the system engineer
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
52
Relation to other key roles (con)

Software system engineering lead


Responsibilities
 Translates and maps the requirements from higher level
system group into lower level requirements
Relation to software architect
 Software architecture will often be provided th the
organization
 SSE team will evolve the software architecture in
translating requirements
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
53
Skills and background for the architect








Extensive software design and development
Technical leadership
Team facilitation skills
Communication skills
Technical skills
Knowledge of component communication
mechanisms
Knowledge of domain
Abstraction skills
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
54
Traps and pitfalls





Clear definition of leadership
Reporting structure for the software architect
Geographical location of software architect and
technical leads
Architecture team size and composition
Software architect lifecycle participation
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
55
Frameworks
And
Patterns
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
56
‫باال بردن قابليت استفاده مجدد (‪)Reuse‬‬
‫هدف اصلي مهندسي نرم افزار استفاده مجدد از طراحي و محصوالت مرتبط است‪:‬‬
‫‪‬چارچوب ها (‪)Frameworks‬‬
‫‪‬الگوها (‪)Patterns‬‬
‫‪57‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫ چيست؟‬Framework
Framework
Fill in
Fill in
Domain specific skeleton ‫يک‬
:‫شامل‬
‫ براي افزودن و يا‬:Plug-ins points or hooks
.‫اتصال برنامه و اجزاي مختلف توسط طراح‬


Hooks
Fill in
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
58
‫تعريف‬
‫‪‬‬
‫‪ framework‬از ديدگاه ‪OO‬‬
‫براساس ‪ Gang-of-Four‬يک ‪ framework‬عبارت است از مجموعه‬
‫اي از ‪ class‬هايي که با ترکيب و کار در کنار هم‪ ،‬يک طراحي با قابليت‬
‫استفاده مجدد براي يک کالس خاص از نرم افزار ايجاد مي کنند‪.‬‬
‫( ‪set of cooperating classes that make up a reusable‬‬
‫‪)design for a specific class of software.‬‬
‫‪‬‬
‫‪59‬‬
‫مثال‪ :‬طراحي يک کامپايلر‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫مزاياي استفاده از ‪framework‬ها‬
‫‪60‬‬
‫‪‬‬
‫استفاده از ‪ application framework‬هزينه تشخيص و تعيين ساختار‬
‫و روابط متقابل (‪ )interrelationship‬ميان اجزاي آن را کاهش مي‬
‫دهد‪.‬‬
‫‪‬‬
‫‪ Framework‬ها براي طراحي هاي موجود امکان گسترش پذيري‬
‫(‪ )Extensibility‬را مهيا مي کنند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫دسته بندي (‪framework)Classification‬‬
‫ها‬
‫‪.1‬‬
‫زيرساختي (‪)Infrastructure frameworks‬‬
‫با هدف ساده سازي فرايند توليد نرم افزار‬
‫‪.2‬‬
‫ميان افزاري (‪)Middleware framework‬‬
‫با هدف يکپارچه سازي برنامه هاي کاربردي موجود‪.‬‬
‫‪.3‬‬
‫‪Enterprise application frameworks‬‬
‫با هدف استفاده در کاربردهاي کسب و کار‬
‫‪61‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫يک الگو (‪ )pattern‬چيست؟‬
‫‪‬‬
‫يک ‪ abstraction‬قابل تشخيص است که در موقعيت ها و برنامه هاي کاربردي‬
‫مختلف تکرار شده و متناوبا استفاده مي شود‪ .‬اين موقعيت مي تواند مربوط به ساختار‬
‫(‪ )Structure‬و يا رفتار (‪ )behavior‬نرم افزار باشد‪.‬‬
‫‪‬‬
‫برنامه هاي کاربردي که از الگو هاي استفاده مي کنند‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪62‬‬
‫‪Architecture of building, towns, road works, dams etc‬‬
‫‪Manufacturing: metal and plastic die casting and moulding‬‬
‫‪Drawings‬‬
‫‪Textiles‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫تعريف الگوها‬
‫‪‬‬
‫يک طرح کلي (‪ )outline‬از يک راه حل با قابليت استفاده مجدد براي‬
‫يک مسئله کلي است‪.‬‬
‫‪‬‬
‫الگوي طراحي (‪ :)design patterns‬ايجاد ‪template‬هايي براي‬
‫تسهيل و تسريع فرايند طراحي نرم افزار‪.‬‬
‫‪‬‬
‫‪63‬‬
‫‪ :OO‬يک الگوي طراحي مجموعه اي از کالس هايي است که با يکديگر تعامل‬
‫(‪ )Interacting‬دارند و با ‪ customize‬کردن آن مي توان يک طراحي‬
‫مخصوص را ايجاد نمود‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫الگوهاي طراحي در مقايسه با ‪ Framework‬ها‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫هر دو ابزاري براي استفاده مجدد (‪ )reuse‬در فرايند هاي توليد نرم افزار ‪ RAD‬هستند‪.‬‬
‫الگوهاي طراحي در مقايسه با ‪framework‬ها کلي تر و انتزاعي تر (‪ )abstract‬هستند‪.‬‬
‫يک ‪ framework‬داراي معماري بزرگتري است و ممکن است در معماري خود از چندين‬
‫الگوي طراحي استفاده کند‪.‬‬
‫‪ Framework‬يک پياده سازي واقعي (‪ )virtual realization‬از يک يا گروهي از الگوهاي‬
‫طراحي است‪ .‬در واقع ‪ framework‬داراي ويژگي هاي مخصوص بيشتري نسبت به الگوهاي‬
‫طراحي است‪.‬‬
‫(‪)it is more specific than a pattern‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪64‬‬
‫‪ Framework‬امکان استفاده مجدد از طراحي هاي مشخص (‪ ،)Concrete‬الگوريتم ها و پياده‬
‫سازي ها در يک زبان برنامه نويسي معين يا محيط ‪ OS‬را فراهم مي آورد‪.‬‬
‫الگوها روي طراحي هاي ‪ abstract‬و ترکيب پيشنهادي از کالس ها تمرکز مي کند که مي تواند‬
‫توسط تيم طراحي پياده شود‪.‬‬
‫يک ‪ framework‬از الگوهاي طراحي براي کامل کردن طراحي و پياده سازي تکه هاي پياده‬
‫سازي نشده خود استفاده مي کند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
framework ‫رابطه الگوهاي طراحي با‬
Framework
Design Patterns
Fill in
Implementation
Fill in
Fill in
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
65
‫چرا الگوهاي طراحي مفيد هستند؟‬
‫‪66‬‬
‫‪‬‬
‫راه حلي براي مسايلي که در گذشته به بهترين راه حل شده اند‪ ،‬ارائه مي دهد‪ .‬الگوها‬
‫ساختارها و روش (‪ )methodology‬هاي کلي ايجاد مي کنند‪.‬‬
‫‪‬‬
‫با استفاده مجدد از طراحي ها‪ ،‬امکان طراحي نکردن يک راه حل را از ابتدا مهيا مي‬
‫سازد‪.‬‬
‫‪‬‬
‫به راحتي امکان سازگاري (‪ )adaptable‬با نيازمندي هاي مخصوص نرم افزار هاي‬
‫مختلف را دارد‪ .‬الگوها خالصه اي از راه حل هايي که در گذشته به خوبي کار کرده‬
‫اند‪ ،‬ارائه مي دهد‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫الگوهاي طراحي‬
‫‪Design Patterns‬‬
‫‪67‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫چگونه از الگوهاي طراحي استفاده کنيم؟‬
‫‪68‬‬
‫‪‬‬
‫تعريف مسئله‬
‫‪‬‬
‫شناسايي و بررسي زمينه‪ ،‬سابقه (‪ )context‬و راه حل هاي مسئله‪.‬‬
‫‪‬‬
‫تعيين بهترين راه حل از بين راه حل هاي موجود‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫سطوح الگوها‬
)Architectural patterns( ‫الگوهاي معماري‬

)Design patterns( ‫الگوهاي طراحي‬

)Language related idioms( ‫الگوهاي زبان‬

‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
69
‫الگوهاي معماري (‪)Architectural patterns‬‬
‫يک ترکيب ساختاري (‪ )Structural Arrangement‬براي سيستم‬
‫نرم افزاري شامل‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪70‬‬
‫زيرسيستم ها و مشخصات هر يک‪.‬‬
‫قوانين ارتباطي بين زير سيستم ها‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫الگوهاي طراحي (‪)Design Patterns‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫ارائه شده پس از سطح معماري‬
‫استفاده در طراحي زيرسيستم ها‪ ،‬بسته ها (‪ )packages‬و اجزا (‪.)components‬‬
‫ارائه راه حل هايي براي مشکالت معمول و تکراري‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫نمايش با استفاده از ‪UML‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪71‬‬
‫مديريت حافظه‬
‫مديرت اشاره گرها‪.‬‬
‫‪synchronization and mutual exclusion‬‬
‫جلوگيري از بن بست (‪)deadlock avoidance‬‬
‫‪Classes ،Objects‬‬
‫‪Aggregation ،Inheritance‬‬
‫‪relationship ،extends ،Uses‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Idioms‬‬
‫‪‬‬
‫‪‬‬
‫پايين ترين سطح الگوها که مربوط به يک زبان برنامه نويسي‬
‫خاص مي شود‪.‬‬
‫يک ‪ Idiom‬چگونگي پياده سازي بخش خاصي را با استفاده‬
‫از يک زبان توصيف مي کند‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪72‬‬
‫تخصيص حافظه (‪)Memory allocation‬‬
‫‪De-allocation‬‬
‫ناحيه هاي بحراني (‪)Critical regions‬‬
‫‪...‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫انواع الگوها و مثال هايي از هريک‬
Behavioral
Observer
Player-role
Immutable
Read-Only

Creational
Abstract-factory
Singleton
Abstraction-occurrence



Architectural
Multi-Layer
Client-Server
Broker
Pipe-and-Filter
Model-View-Controller









Structural
General hierarchy
Adaptor
Façade
Proxy
Delegation








‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
73
Creational: Abstract-Factory
:‫زمينه‬
‫) براي‬Interface( ‫واسطي‬
abstract ‫عملياتي که يک‬
،‫ ايجاد مي کند‬product object
.‫مهيا مي سازد‬


:‫راه حل‬

Concrete Factory subclass
creates concrete objects
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
74
‫‪Creational: Singleton‬‬
‫‪‬‬
‫زمينه‪:‬‬
‫‪‬‬
‫‪‬‬
‫اطمينان مي دهد که تنها يک موجوديت (‪ )Instance‬از يک کالس‬
‫وجود دارد‪.‬‬
‫راه حل‪:‬‬
‫‪‬‬
‫يک سازنده خصوصي (‪ )Private Constructor‬وجود دارد که‬
‫اطمينان مي دهد هيچ کالس ديگري قادر به ايجاد مجدد (‪)Recreate‬‬
‫يک موجوديت ديگر نيست‪.‬‬
‫‪Singleton‬‬
‫)‪If (this ==null‬‬
‫;)(‪this= new Singleton‬‬
‫)(‪+getInstance‬‬
‫‪75‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Creational: Abstraction-Occurrence‬‬
‫‪‬‬
‫زمينه‪:‬‬
‫‪‬‬
‫‪‬‬
‫پروازهاي هوايي با يک شماره ولي در روزهاي متفاوت و با خدمه و‬
‫مسافران متفاوت‪.‬‬
‫راه حل‪:‬‬
‫‪‬‬
‫‪‬‬
‫ايجاد يک کالس ‪ abstract‬شامل اطالعات مشترک‪.‬‬
‫ايجاد يک کالس ‪( .occurrence‬ايجاد رابطه ‪)1:n‬‬
‫‪Occurrence: Episode‬‬
‫‪Abstraction: TV Series‬‬
‫‪-Number‬‬
‫‪-title‬‬
‫‪-seriesName‬‬
‫‪-producer‬‬
‫*‬
‫‪76‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Structural: General-Hierarchy
:‫زمينه‬
‫ارتباط بين کارمندان و مديران‬

:‫راه حل‬
.‫ که نشان دهنده ويژگي هاي مشترک است‬abstract node class ‫ايجاد يک‬
.Non-SuperiorNode ‫ و‬SuperiorNode ،subclass ‫ايجاد حداقل دو‬



*
Employee

-supervises
0..1
Secretary
Technician
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
Manager
77
‫‪Singleton Pattern‬‬
‫‪‬‬
‫‪‬‬
‫وقتي مي خواهيد که از يک کالس تنها يک ‪ instance‬در کل برنامه وجود داشته باشد‪.‬‬
‫مثال‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مزاياي استفاده از اين الگو‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪78‬‬
‫‪Print Spooler‬‬
‫‪ Accounting System‬براي يک شرکت‪.‬‬
‫‪Library Loan policy‬‬
‫‪Taxation Grades‬‬
‫نيازي به استفاده از متغير هاي سراسري نيست‪.‬‬
‫)‪Single Access Point (Functional Cohesion‬‬
‫کنترل تعداد موجوديت هاي از يک کالس‪.‬‬
‫مجاز بودن ايجاد ‪Sub-Class‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Proxy pattern
:Proxy ‫کاربردهاي الگوي‬
remote Object ‫) براي‬Local Representative( ‫ يک نماينده محلي‬:Remote proxy 

.‫ها تهيه مي کند‬
creates expensive objects whenever needed :Virtual proxy
Document Editor downloading text and image from a disk

‫) و‬protection( ‫) حفاظت‬precious( ‫ هاي مهم‬object ‫ براي‬:Protection proxy
.‫) ايجاد مي کند‬access control( ‫کنترل دسترسي‬
Database Tables
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(


‫ است‬conventional pointer ‫ جايگزيني براي‬:Implementing smart pointer
:‫که عمليات اضافي را مي تواند انجام دهد مانند‬
‫ مادامي که تعداد‬object ‫ اين‬.‫ واقعي‬object ‫ ها به يک‬reference ‫ شمارش تعداد‬
.‫ شود‬delete ‫ ها برابر صفر نشده باشد نمي تواند‬reference
Checking that the object is locked (.‫ شدن‬update ‫ براي‬object ‫ شدن‬lock ‫کنترل‬
)prior to update



79
Proxy Pattern Diagram
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
80
...)Architectural Pattern( ‫پنج اليه الگوهاي معماري‬
:Application Layer Package .1
.‫ آنها‬profile ‫مديريت کاربران و‬
.‫) براي کاربران‬Work Space( ‫ايجاد فضاي کاري‬
‫کنترل شبکه‬
OS Functions
HW Functions
)Administrative Functions( ‫توابع مديريتي‬
.‫هشدارها و پيام ها‬







:User Interface Package .2
… ‫ و‬progress bar،windows ،Scroll bar :Workspace elements
)Workspace Presentation( ‫نمايش فضاي کاري‬
.‫نمايش و پنجره ها‬
Logon/Logoff
‫تعامل با کاربر‬
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(





81
Architectural ( ‫پنج اليه الگوهاي معماري‬...
)Pattern
:Communication Package .3
)‫ (مدارها و پروتکل ها‬data link ‫مديريت‬
Name Server Access
)Data Transport( ‫انتقال داده‬
Data Conversation




:Abstract OS Package .4
Information Hiding
Virtual API
Manage Memory
Manage Tasks and threads




:Abstract HW Package .5
API for virtual devices (sensors, actuators)
Device Deriver
Bus Interface
Virtual Processors
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(




82
Architectural Styles
&
Patterns
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
83
‫‪Architectural Styles‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪84‬‬
‫نحوه انتخاب و نمايش واحدهاي سازنده معماري‬
‫(‪ )Architectural building blocks‬را تعريف مي کند‪.‬‬
‫راهنماي طراحي و تصميم گيري براي طراحي اجزاي سيستم و‬
‫ارائه قوانين مرتبط مي باشد‪.‬‬
‫وابسته به نيازمندي هاي سيستم است‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Architectural Design Patterns‬‬
‫‪‬‬
‫‪85‬‬
‫طراحي هاي سطح باالي (‪ )High-level Designs‬تست شده و‬
‫بکارگرفته شده براي واحدهاي سازنده معماري سيستم‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫نتايج استفاده از ‪Architectural Styles‬‬
‫‪86‬‬
‫‪‬‬
‫کاهش و ساده سازي حجم و پيچيدگي ساخت سيستم‪.‬‬
‫‪‬‬
‫کاهش هزينه طراحي و ساخت با استفاده از اجزاي ‪.reusable‬‬
‫‪‬‬
‫افزايش هماهنگي بين اجزاي سيستم با استفاده از ‪style-‬‬
‫‪.specific and check‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
...‫ها‬style ‫چهار مشخصه ارائه شده توسط‬
Vocabulary of Design Elements
:‫ارائه ترمولوژي و واژه هاي اجزاي طراحي از قبيل‬
‫ها‬Component
‫ها‬Connection
...
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(




:‫ مشخص مي شوند‬Style ‫برخي مفاهيمي که در ارائه‬
... ‫ و‬Databases ،papers ،Servers ،Clients ،Filters ،Pipes
.1


87
‫چهار مشخصه ارائه شده توسط ‪style‬ها‪...‬‬
‫‪ .2‬قوانين طراحي يا محدوديت ها ( ‪Design Rules or‬‬
‫‪:)Constraints‬‬
‫‪‬‬
‫‪‬‬
‫ارائه همه قوانين و محدوديت هايي که در ارائه سيستم بايد مورد توجه‬
‫قرار گيرد‪.‬‬
‫مانند‪:‬‬
‫‪ ‬عدم استفاده ازحلقه در روش )‪Pipe-filter (Style‬‬
‫‪ Client-server ‬بايد به صورت ‪ n-to-one‬باشد‪.‬‬
‫‪88‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫چهار مشخصه ارائه شده توسط ‪style‬ها‬
‫‪:Semantic interpretation .3‬‬
‫‪‬‬
‫اجزاي يک طراحي بايد با دقت و توجه به محدوديت ها تعريف شوند‪.‬‬
‫‪ .4‬تحليل (‪:)Analysis‬‬
‫‪‬‬
‫‪89‬‬
‫تجزيه و تحليل سيستم با استفاده از ‪ Style‬انجام مي شود‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫انواع‬
Architectural Styles
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
90
...‫هاي معماري‬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(
91
‫‪Data-Flow Style‬‬
‫‪‬‬
‫‪92‬‬
‫موارد استفاده‪:‬‬
‫‪‬‬
‫اگر سيستم طوري به نظر آيد که در آن يک خروجي خوش‪-‬تعريف‬
‫(‪ )well-defined‬و ‪ easily-identified‬تهيه مي شود که نتيجه‬
‫مستقيم ترتيبي از انتقال هاي ورودي با همان ويژگي ها در يک روش‬
‫مستقل از زمان (‪ )Time-independent‬است‪.‬‬
‫‪‬‬
‫‪ :Integrability‬ارتباط بين چندين واسط (‪ )Interface‬ساده بين‬
‫‪component‬ها‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Data-Flow Substyles
‫ محاسبات شامل انتقال هايي روي جريان‬:Pipe and filter
.‫پيوسته اي از داده مي شود‬
‫ سيستم شامل کنترل کردن اعمال‬:Closed loop control
‫) که در يک سيستم فيزيکي‬Continuing Action( ‫مداوم‬
.‫ مي باشد‬،‫ شده است‬embed
(and is subject to unpredictable external
perturbation so that preset algorithms go awry) !!
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(


93
‫معماري هاي ‪Call and Return‬‬
‫‪‬‬
‫‪‬‬
‫دست يافتن به تغييرپذيري (‪ )modifiability‬و مقياس پذيري‬
‫(‪.)scalability‬‬
‫‪ Sub-style‬ها‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪94‬‬
‫‪: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
95
‫‪Remote Procedure‬‬
‫‪‬‬
‫‪‬‬
‫به جاي ساختار سلسله مراتبي در شبکه توزيع مي شود‪.‬‬
‫هر جز به صورت مستقل و بر اساس نياز فراخواني مي شود‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪96‬‬
‫افزايش کارايي ( ‪)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‬‬
‫قابليت توسعه با تسهيل اضافه کردن و يا تغيير يک اليه موجود‪.‬‬
‫معايب‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪97‬‬
‫هر اليه سرويس هايي را براي اليه خارج از خود مهيا مي کند‪.‬‬
‫هر اليه به عنوان يک ‪ 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‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫سيستم مجموعه اي از ‪ agent‬هاي مستقل است‪.‬‬
‫نگهداري (‪ )maintenance‬و توسعه (‪ )evolution‬را باال مي برد‪.‬‬
‫قابليت استفاده مجدد‪.‬‬
‫معايب‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪98‬‬
‫حفظ يکپارچگي و درستي (‪ )integrity‬داده ها‪.‬‬
‫پنهان کردن بازنمايي داده ها از کاربر‪.‬‬
‫ايجاد ارتباط با استفاده از پيام ها (‪)messages‬‬
‫هماهنگي داده به صورت اتوماتيک صورت مي گيرد‪.‬‬
‫مزايا‪:‬‬
‫‪‬‬
‫‪‬‬
‫مدلسازي طبيعي جهان واقعي (‪)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‬‬
‫‪99‬‬
‫‪Client‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Client‬‬
‫معماري ‪Blackboard‬‬
‫‪‬‬
‫کاربردها‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫اجزا‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪100‬‬
‫‪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(
101
‫‪Data-Centered Style‬‬
‫‪‬‬
‫‪‬‬
‫هنگامي مورد استفاده قرار مي گيرد که هدف محل ذخيره سازي‬
‫(‪ ،)Storage‬نمايش‪ ،‬مديريت و بازيابي حجم بااليي از داده هاي ‪long-‬‬
‫‪ lived‬مرتبط مي باشد‪.‬‬
‫پايگاه داده ها و ‪ repository‬هاي تراکنشي (‪)transactional‬‬
‫‪‬‬
‫‪‬‬
‫‪:Blackboard‬‬
‫‪‬‬
‫‪‬‬
‫‪102‬‬
‫ترتيب اجراي ‪ component‬ها براساس جريان ورودي درخواست ها براي‬
‫دسترسي‪/‬بهنگام سازي داده بوده و داده ها در ساختار هاي سطح بااليي قرار دارند‪.‬‬
‫(‪.)Data is highly structured‬‬
‫مقياس پذيري (‪ )scalability‬براي اضافه نمودن مصرف کننده ها(‪)consumers‬‬
‫داده ها بدون تغيير محصول؛ و يا‬
‫تغيير پذيري براي تغيير اينکه چه کسي داده را تهيه مي کند و چه کسي آن را‬
‫مصرف مي کند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Virtual Machine Style
‫ طراحي‬component ‫هنگامي مورد استفاده قرار مي گيرد که براي يک‬
.‫ ماشين مشخصي که روي آن اجرا شود وجود نداشته باشد‬،‫شده‬
‫ ارائه يک محيط مجازي بين‬،‫ شبيه سازي عمليات مبتني بر دانش‬:‫هدف‬
‫ براي‬non-native functionality ‫ شبيه سازي‬،OS ‫ماشين و‬
.prototyping ‫ و يا‬portability
:‫مثال‬
Perl ‫ مثل‬،Interpreters
Prolog ‫ مثل‬،Rule-based Systems
Command Language processors
JVM (intermediate language)
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(







103
‫‪Call-and-return Styles‬‬
‫‪‬‬
‫هنگامي مورد استفاده قرار مي گيرد که‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪104‬‬
‫ترتيب محاسبات ثابت است‪.‬‬
‫‪ 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(


105
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(




106
‫‪Independent Component Style‬‬
‫‪‬‬
‫موارد استفاده‪:‬‬
‫‪‬‬
‫‪‬‬
‫سيستم روي يک ‪ platform‬چندپردازنده (‪ )multi-processor‬اجرا‬
‫مي شود و يا قرار است در آينده اجرا شود‪.‬‬
‫سيستم مي تواند به صورت مجموعه اي از اجزا با وابستگي کم‬
‫(‪ )loosely coupled‬ساختاردهي شود‪.‬‬
‫‪ ‬يعني يک ‪ component‬مستقل از حالت اجزاي ديگر‪ ،‬مي تواند فرايندي را‬
‫انجام دهد‪.‬‬
‫‪‬‬
‫ميزان سازي کارايي (‪ )performance tuning‬مهم است‪.‬‬
‫‪By re-allocating work among processes ‬‬
‫‪107‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Independent Components‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫شامل فرايندها و يا ‪ Object‬هاي مستقل که از طريق پيام هاي با هم ارتباط‬
‫دارند‪.‬‬
‫هيچ کنترلي بين ‪ component‬ها وجود ندارد‪.‬‬
‫تغييرپذيري (بخش هاي مختلف محاسبات از هم جدا هستند)‪.‬‬
‫شامل‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪108‬‬
‫فرايندهاي ارتباطي‪ :‬توپولژي هاي ممکن‬
‫‪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‬‬
‫‪ ‬دسترسي به داده ها براي اهداف کارايي مهم است‪.‬‬
‫‪‬‬
‫‪109‬‬
‫‪ Object‬هاي توزيع شده‪ :‬با استفاده از تمامي کارکردهاي ‪object-‬‬
‫‪ oriented style‬و ‪.interacting process style‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Independent Component Substyles‬‬
‫‪‬‬
‫‪:Broadcast‬‬
‫‪‬‬
‫‪‬‬
‫تمامي اجزا نيازمند همزمان شدن (‪ )Synchronized‬از زماني به زمان‬
‫ديگر دارند‪.‬‬
‫قابليت دسترسي (‪ )availability‬يکي از نيازمندي هاي مهم است‪.‬‬
‫‪:Event System ‬‬
‫‪‬‬
‫‪‬‬
‫‪110‬‬
‫جدا کردن مصرف کننده هاي ‪ 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‬ها تحت تاثير قرار گرفته اند‪.‬‬
‫هيچ فرضي در مورد ترتيب پردازش وجود ندارد‪.‬‬
‫موارد مورد استفاده‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪111‬‬
‫براي هر ‪ event‬يک روتين مشترک وجود دارد که به هنگام آن ‪ event‬رخ مي دهد به‬
‫صورت خودکار اجرا مي شود‪.‬‬
‫ابزارهاي ‪.Integrate‬‬
‫‪Ensure database consistency‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫)‪Event-Based (implicit Invocation‬‬
‫‪‬‬
‫مزايا‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫معايب‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪112‬‬
‫پتانسيل استفاده مجدد باال‪.‬‬
‫توسعه آسان‪.‬‬
‫‪ 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‬‬
‫‪‬‬
‫‪‬‬
‫‪113‬‬
‫مديريت فرايند (منطق تجاري و اجراي قوانين)‬
‫‪Function‬ها (مانند صفبندي ‪ ،queuing‬اجراي ‪ application‬و ‪.)database staging‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫معماري يک و دو اليه ‪client/Server‬‬
‫‪‬‬
‫مديريت پردازش (‪ )processing Management‬به دو بخش زير تقسيم‬
‫مي شود‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ :Tier 1‬سيستم واسط کاربر روي محيط ‪ desktop‬کاربر‪.‬‬
‫‪:Tier 2‬سرويس مديريت پايگاه داده در يک سرور‪.‬‬
‫محدوديت ها‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪114‬‬
‫سيستم واسط کاربر (‪)user System interface‬‬
‫سرور مديريت پايگاه داده‪)database management server( .‬‬
‫وقتي تعداد ‪ client‬ها زياد مي شود (باالي ‪ 100‬کاربر) کارايي پايين مي آيد‪.‬‬
‫انعطاف پذيري و قدرت انتخاب ‪ DBMS‬براي برنامه ها کم مي شود‪( .‬به دليل‬
‫مديريت فرايند در سطح سرور‪)stored procedures -‬‬
‫انعطاف پذيري محدود در انتقاي ‪ functionality‬برنامه بين سرورها‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫معماري سه اليه ‪client/Server‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪115‬‬
‫منطق فرايند را متمرکز مي کند‪.‬‬
‫افزايش کارايي‪ ،‬انعطاف پذيري‪ ،‬قابليت نگهداري‬
‫(‪ ،)maintainability‬استفاده مجدد و مقياس پذيري‪.‬‬
‫تغييرات تنها بايد يک بار در سرور اليه مياني نوشته شوند تا در‬
‫سيستم اعمال شوند‪.‬‬
‫يکپارچگي پايگاه داده هاي توزيع شده راحت تر ايجاد مي شود‪.‬‬
‫دسترسي به منابع با براساس نام است‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫زيرساخت اليه مياني (‪)Middle-Ware‬‬
‫‪‬‬
‫نرم افزار اتصال (‪)connectivity software‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مثال ها‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪116‬‬
‫مجموعه اي سرويس هايي که موجب انجام عمليات مي شوند‪.‬‬
‫امکان اجراي چندين فرايند روي يک يا چند ماشين براي تعامل از‬
‫طريق شبکه را مهيا مي سازند‪.‬‬
‫‪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‬‬
‫‪117‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫زيرساخت اليه مياني (‪)Middle-Ware‬‬
‫‪‬‬
‫)‪ :Application Programming Interface (API‬براي‬
‫برنامه ها امکانات زير را ايجاد مي کند‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪118‬‬
‫‪ Location Transparently‬در شبکه و امکان تعامل با برنامه ها و‬
‫سرويس هاي ديگر‪.‬‬
‫استقالل از سرويس هاي شبکه‪.‬‬
‫‪ Reliable‬و در دسترس بودن‪.‬‬
‫افزايش ظرفيت بدون از دست دادن ‪.functionality‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Common Object request Broker
Architecture (CORBA)
Interface ‫ از يک‬CORBA ‫ هاي تعريف شده در‬object ‫تمامي‬
.‫ استفاده مي کنند‬Definition 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(
119
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(






120
‫‪Common Object request Broker‬‬
‫)‪Architecture (CORBA‬‬
‫‪‬‬
‫)‪:Object Request Broker (ORB‬‬
‫‪‬‬
‫استقالل ‪ client‬ها از سرويس ها‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫درخواست هاي ‪ client‬از نظر خودش فراخواني يک تابع محلي است‪.‬‬
‫هنگامي که يک ‪ client‬يک ‪ operation‬را فراخواني مي کند‪ ORB ،‬مسئول يافتن پياده‬
‫سازي ‪ Object‬مربوطه‪ ،‬در صورت نياز فعال کردن آن‪ ،‬تحويل درخواست به ‪ Object‬و‬
‫برگرداندن هرگونه پاسخ به در خواست کننده‪ ،‬مي باشد‪.‬‬
‫واسط ‪ORB‬‬
‫‪‬‬
‫مجموعه اي از وظايف (‪ )tasks‬و ‪ library‬هايي که امکان‬
‫‪‬‬
‫‪‬‬
‫‪121‬‬
‫‪Locational and functional Transparency‬‬
‫تبديل ‪ object reference‬را به رشته (‪ )String‬و برعکس به وجود مي آورند‪.‬‬
‫ايجاد ليست آرگومان ها براي در خواست هايي که در ‪dynamic Invocation Interface‬‬
‫(‪ )Dll‬به وجود مي آيند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)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 ‫تهيه شده توسط کامپايلر‬
‫ يک‬ORB ‫ و سرور و‬client ‫ بين برنامه هاي‬Skeleton ‫ها و‬Stub
.‫“ هستند‬glue”
‫ مي تواند‬RPC .‫ وجود دارد‬RPC ‫تنها امکان فراخواني از راه دور توسط‬
‫ به تابعي که در سرور‬client ‫ مربوط به‬Address Pointer ‫با ارائه‬
.‫ انجام گيرد‬،‫نيازمند فراخواني آن است‬
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(




122
Common Object request Broker
Architecture (CORBA): Details 4
Dynamic Invocation Interface (Dll) client side
‫ به صورت مستقيم به سرويسي که‬client ‫اين واسط اجازه مي دهد يک‬
.‫ دسترسي داشته باشد‬،‫ ارئه مي شود‬ORB ‫توسط يک‬
‫ درخواست ها به‬dynamic ‫ ها براي صادر کردن‬Dll ‫برنامه ها از‬
IDL interface-specific stub ‫ ها بدون نياز به لينک شدن به‬object
.‫ها‬
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(






123
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
.‫ کمک مي کند‬ORB ‫ و فعال کردن آن به‬Object ‫در تحويل دادن درخواست ها به‬
‫ پايگاه داده‬object ‫ مانند اينکه آيا آن يک‬.‫ را پنهان مي کند‬object ‫ جزئيات‬Adaptor
.library object ‫است يا يک‬
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(





124
‫‪Other Brokers:‬‬
‫‪Microsoft’s Component Object Model (COM,‬‬
‫)‪DCOM‬‬
‫‪‬‬
‫‪COM‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪)DCOM( Distributed COM‬‬
‫‪‬‬
‫‪‬‬
‫براي تعامالت توزيع شده تحت شبکه‪.‬‬
‫‪MTS ،ActiveX ،)Object Linking & Embedding( OLE‬‬
‫‪‬‬
‫‪125‬‬
‫چارچوبي (‪ )framework‬براي يکپارچه سازي ‪ component‬ها‪.‬‬
‫امکان ‪ Assemble‬کردن چندين ‪ component‬مختلف که توسط ‪ vendor‬هاي‬
‫مختلفي ارائه شده است را براي ساخت يک سيستم ايجاد مي کند‪.‬‬
‫سرويس هاي سطح بااليي که روي ‪ COM‬ساخته شده اند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪MS, Component Object Model‬‬
‫)‪(COM, DCAM‬‬
‫‪‬‬
‫‪OLE‬‬
‫‪‬‬
‫‪‬‬
‫‪ActiveX‬‬
‫‪‬‬
‫‪‬‬
‫گسترشي با سرويس هاي ‪( Enterprise‬تراکنش‪ ،‬امنيت) براي ايجاد امکان ساخت سيستم هاي‬
‫اطالعاتي سازماني با استفاده از ‪.COM‬‬
‫‪COM+‬‬
‫‪‬‬
‫‪‬‬
‫‪126‬‬
‫گسترشي براي استفاده از ‪ 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‬‬
‫‪‬‬
‫سرويس هاي پياده سازي شده توسط ‪ COM Objects‬تحت يک‬
‫مجموعه از واسط ها انتشار مي يابد‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪127‬‬
‫‪ COM‬يک ساختار ‪ binary‬براي واسط بين ‪ client‬و ‪ Object‬تعريف‬
‫مي کند‪.‬‬
‫‪ COM Object‬ها و واسط ها با استفاده از ‪Microsoft Interface‬‬
‫)‪ Definition Language (IDL‬تخصيص داده مي شوند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Component Object Model (COM,‬‬
‫)‪DCOM‬‬
‫‪‬‬
‫هر ‪ COM Object‬در داخل يک سرور اجرا مي شود‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪128‬‬
‫‪ 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‬معماري‬
‫‪129‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫قوانين ‪ Thumb‬براي انتخاب ‪ Style‬ها‬
‫‪‬‬
‫‪‬‬
‫‪130‬‬
‫هدف کاتالوگ ‪ 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(







131
‫‪Abstraction‬‬
‫‪‬‬
‫‪‬‬
‫يک ‪ component‬مجازي (‪ )Virtual‬ايجاد مي کند‪.‬‬
‫موارد استفاده‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪132‬‬
‫‪Simulated target platform‬‬
‫سيستم هاي اليه بندي شده (‪.)layered systems‬‬
‫واسطي مشترک براي مجموعه اي از اجزاي پياده سازي شده در محيط‬
‫هاي نامتجانس (‪.)Heterogeneous‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪Compression‬‬
‫‪‬‬
‫‪‬‬
‫دو ‪ component‬را با هم ترکيب کرده و يک ‪ component‬ايجاد مي کند‪.‬‬
‫موارد استفاده‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪133‬‬
‫بهبود کارايي‪.‬‬
‫تسريع توسعه سيستم‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)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(




134
Decomposition
)Is-a( .‫ است‬decomposition ‫يک‬
‫ يک خصوصي سازي‬subcomponent ‫يک‬
‫ پدر خود را نمايش مي‬functionality ‫) از‬specialization(
.)‫ (مانند ارثبري کالس‬.‫دهد‬
 Used for reuse by increments.
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(


135
Replication
‫) از يک‬exact duplication( ‫تکثير مشابه‬
.component
:‫موارد استفاده براي بهينه سازي‬
.)redundant operation( Reliability
.)data caching( ‫بهبود کارآيي‬
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(




136
Typical Design Trade-Offs
Functionality
Usability
Cost
Robustaness
Performance
Portability
Rapid Development
Functionality
Cost
Reusability
Backward Compatibility
Understandability
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
137
‫اشتراک منابع‬
‫‪‬‬
‫‪‬‬
‫داده و يا سرويس ها را ‪ encapsulate‬مي کند و آن را‬
‫بين چندين مصرف کننده مستقل به اشتراک مي گذارد‪.‬‬
‫(مثال‪ :‬پايگاه داده هاي اشتراکي‪ ،‬سرورها در‬
‫‪.)client/server‬‬
‫موارد استفاده‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪138‬‬
‫‪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
+
+
+
+
+
-
-
-
+
+
+
+
+
-
+
139
Domain-specific
Architecture
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
140
‫معماري ‪Domain-specific‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫کتابخانه اي از ‪ style‬هاي مختلف‪.‬‬
‫ارئه اطالعاتي در مورد سيستم جديد در يک حوزه‪.‬‬
‫عدم انجام کار مجدد براي مفروضات و روابط شناخته‬
‫شده قبلي‪.‬‬
‫سيستم هاي نامتجانس‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪141‬‬
‫محلي (‪.)locational‬‬
‫‪Simultaneous‬‬
‫سلسله مراتبي (‪.)Hierarchical‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
locational Heterogeneity :‫مثال‬
cooperating ( ‫ پردازش همکارانه‬style ‫ از يک‬A-7E
call/return style ‫ و‬function driver ‫) در‬process
.‫در جاهاي ديگر استفاده مي کند‬
Function
Deriver 1
Function
Deriver 2
Data Broker
Data Broker
Shared
Services
Device
Interface
Shared
Services
Device
Interface
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
...

Function
Deriver n
Data Broker
Shared
Services
Device
Interface
142
locational Heterogeneity :‫مثال‬
High-level style: event System
Decompose
blackboard ‫ يک‬event ‫سيستم‬
decompose ‫ ولي بعد از‬،‫است‬
layered ‫ يک‬component ،‫شدن‬
.‫ را نشان مي دهد‬style
Component Style layered
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
143

‫مثال‪locational Heterogeneity :‬‬
‫‪‬‬
‫‪144‬‬
‫‪ A-7z‬به طور همزمان از اليه يندي‪ ،‬پردازش همکارانه‬
‫و ‪ object oriented style‬استفاده مي کند‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫معماري ‪peer-to-peer‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫تمايزي بين فرايندها (‪ )nodes‬وجود ندارد‪.‬‬
‫هيچ يک از نودها به عنوان ‪ process‬داراي تقدم و‬
‫اولويت نيست‪.‬‬
‫هر کدام از نودها شامل موارد زير هستند‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪145‬‬
‫مشخصات در ‪ Data-store‬خود‪.‬‬
‫يک جدول مسيردهي پويا (‪ )dynamic routing table‬از‬
‫آدرس نودهاي ديگر‪.‬‬
‫مثال‪freenet. ،gnutella :‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫کنترل فرايندها – پيامدها(‪)issues‬‬
‫‪‬‬
‫عناصر محاسباتي (‪)computational‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫عناصر داده اي (‪ :)data elements‬متغير فرايندها‪.set point ،‬‬
‫‪Control loop scheme‬‬
‫‪‬‬
‫‪‬‬
‫‪closed-feed forward ،closed-feedback ،Open-loop‬‬
‫‪ – Drawback‬توجه به مسايل زير الزامي است‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪146‬‬
‫تعريف فرايند (شامل مکانيزم هايي براي تغيير متغيرهاي فرايندها)‪.‬‬
‫الگوريتم کنترل (چگونگي تصميم اينکه کي و چگونه تغييرات انجام مي‬
‫شود‪).‬‬
‫چه متغيرهايي بايد نظارت شوند‪.‬‬
‫چه حسگرهايي بايد به کار گيرد‪.‬‬
‫‪How to calibrate them‬‬
‫چگونه با زمانبندي ‪ sensing‬و نظارت آنها‪ ،‬رفتار شود‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫سيستم هاي کنترل فرايندها‬
‫‪‬‬
‫‪Continually running system used for maintaining correct‬‬
‫‪values. The errors are compensated for through feedback.‬‬
‫مثال‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫سيستم کنترل دما‪.‬‬
‫سيستم کنترل ‪.power plant‬‬
‫متغيرها‪:‬‬
‫‪‬‬
‫متغيرهاي فرايند‪:‬‬
‫‪ ‬ويژگي هايي از فرايند که مي توان اندازه گيري نمود‪.‬‬
‫‪‬‬
‫‪‬‬
‫متغيرهاي کنترل شده‪:‬‬
‫‪‬‬
‫‪‬‬
‫متغيرهاي فرايند که سيستم عالقه مند به کنترل مقدار آن هاست‪.‬‬
‫مقادير مرجع (‪set point :)reference variables‬‬
‫‪‬‬
‫‪147‬‬
‫مقادير به دست آمده از حسگرها‪.‬‬
‫مقدار مطلوب براي يک متغير کنترل شده‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪‬‬
‫معماري هاي کنترل فرايند ( ‪process‬‬
‫‪)control‬‬
‫‪‬‬
‫سيستم ‪:open-loop‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫سيستم ‪:closed-loop‬‬
‫‪‬‬
‫‪148‬‬
‫عدم استفاده از متغيرهاي پردازش براي تطبيق دادن سيستم‪.‬‬
‫عمال براي پردازش هاي فيزيکي در دنياي واقعي ارائه شده‬
‫است‪.‬‬
‫عمال اجراي اين معماري سيستم‪ ،‬امکان پذير نيست و مي توان‬
‫به عنوان جزيي از يک معماري مورد استفاده قرار گيرد‪.‬‬
‫استفاده از اطالعاتي در مورد متغيرهاي پردازش براي اداره‬
‫متغيرهاي پردازش جهت جبران تغييرات در متغيرهاي‬
‫پردازش و شرايط عمليات‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
)closed loop( ‫کنترل فرايند‬
.)feedback( ‫سيستم کنترل بازخورد‬
.‫اندازه گيري متغيرهاي کنترل شده‬
.‫ ها‬set-point ‫تنظيم متغير با‬
Input variable



Controlled Variable
Process
Changes to
manipulate
variables
Set points
Controller
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
149
2 - )closed loop( ‫کنترل فرايند‬
)feedback( ‫سيستم کنترل بازخورد‬
‫پيش بيني تغييرات براي متغيرهاي کنترل شده با نظارت بر‬
.‫ساير متغيرهاي پردازش‬
Input variable


Controlled Variable
Process
Changes to
manipulate
variables
Set points
Controller
‫آزمايشگاه سيستم های هوشمند‬
)http://ce.aut.ac.ir/islab(
150
‫ارزيابي معماري نرم افزار‬
‫‪151‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫کي و چرا بايد معماري را تحليل کرد؟ ‪1-‬‬
‫‪‬‬
‫هنگام ساخت يک سيستم‪.‬‬
‫‪Architecture is the earliest artifact where‬‬
‫‪tradeoffs are visible.‬‬
‫‪ ‬آناليز بايد هنگام تصميم گيري براي معماري انجام شود‪.‬‬
‫‪The reality is that analysis is ofen done during‬‬
‫‪damage control, later in the project.‬‬
‫‪‬‬
‫متداول ترين داليل شکست نرم افزار‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪152‬‬
‫عدم تحليل نيازمندي ها‪.‬‬
‫عدم تحليل معماري و طراحي‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫‪‬‬
‫‪‬‬
‫کي و چرا بايد معماري را تحليل کرد؟ ‪2-‬‬
‫‪‬‬
‫پيدا کردن (‪ )acquiring‬يک سيستم جديد‪.‬‬
‫‪ ‬تحليل معماري هنگامي که قرار است سيستم مدت طوالني در‬
‫سازمان کار کند‪ ،‬بسيار مفيد است‪.‬‬
‫‪ ‬تحليل معماري مکانيزمي براي فهميدن روش بازکردن‬
‫(‪ )evolve‬سيستم ايجاد مي کند‪.‬‬
‫‪ Analysis can also provide insight into other visual‬‬
‫‪qualities.‬‬
‫‪ ‬تحليل بايد به صورتي انجام گيرد که تکامل سيستم در معماري‬
‫سيستم قابل ‪ trace‬باشد‪.‬‬
‫‪153‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
‫بررسي معماري (‪)Architectural reviews‬‬
‫‪‬‬
‫تکنيک هاي پرسشي (‪ :)questioning techniques‬براي‬
‫سنجيدن جنبه هاي يک معماري براي يک ‪ reason‬داده شده‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫تکنيک هاي اندازه گيري (‪ :)measuring‬براي پاسخ به يک معيار‬
‫کيفيتي مشخص‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪154‬‬
‫تکنيک هاي مبتني بر سناريو (مانند ‪.)SAAM‬‬
‫تکنيک هاي مبتني بر پرسشنامه (‪.)Questionnaire‬‬
‫‪ :Metrics‬تبديل کننده هاي کمي مشاهدات اندازه گيري شده‪.‬‬
‫( ‪)quantitative interpretation of observable measures‬‬
‫مانند‪.performance metrics ،complexity metrics :‬‬
‫شبيه سازي‪،prototype ،‬آزمايش ها (‪ :)experiments‬مدل هاي‬
‫‪ domain-specific‬يک معماري و با مدل کارآيي‪.‬‬
‫آزمايشگاه سيستم های هوشمند‬
‫(‪)http://ce.aut.ac.ir/islab‬‬
Download