معماری سيستمهای با مقياس بزرگ آزمايشگاه سيستمهای هوشمند زمستان 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