Download presentation
Presentation is loading. Please wait.
1
CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut 371 Fairfield Road, Box U-255 Storrs, CT 06269-2155 steve@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 - 4818
2
CSE298 CSE300 OV-1.2 CSE333 What are Components? ADTs as Unit of Abstraction/Conceptualization Classes are OO Equivalent of ADTs However, in Past 10 Years Computing Power has Exploded Application Complexity has Increased Classes are Part of Inheritance Hierarchy Inheritance Hierarchy Part of Application Class Library In Past 10 years Emergence of Java (and now.NET) Emergence of Java Beans Component-Based Development Tools
3
CSE298 CSE300 OV-1.3 CSE333 What are Components? How are Applications Conceptualized? Inheritance Hierarchies Partition Domain Packages as Collections or Related Classes Collections of Classes, Packages, Inheritance Hierarchies form Application Class Library How are Class Libraries Utilized? Use Individual Classes Use Package or Subset of Package Use Major Portions of Inheritance Hierarchies Tools Use at Most a “Few” Select Packages and/or Hierarchies Tools that Span Application Classes Represent Poorly Designed Software
4
CSE298 CSE300 OV-1.4 CSE333 Defining Component Concepts A Component is Composed of One or More Classes (or Other Components) and is Intended to Support a “Constructed” Unit of Functionality Classes Can be Utilized in Multiple Components A Class Utilized in Multiple Components Maintains the “Same” Semantics in All of its Contexts Our Interest Involves: Reusable Components Security Components Distributable Components Etc.
5
CSE298 CSE300 OV-1.5 CSE333 Components vs. Objects Components Business Oriented Coarse Grained Standards Based Multiple Interfaces Provide Services Fully Encapsulated Understood by Everyone Objects Technology-Oriented Fine Grained Language Based Single Interface Provide Operations Use Inheritance Understood by Developers
6
CSE298 CSE300 OV-1.6 CSE333 Components Types & Benefits Application Template Data Model Data Structure System Architecture Process Model Process Definition Prototype Plan Skeleton User Interface Skeleton/GUI Process Skeleton Utility Components Security Process Etc. Organizational Perspective Shorten Development Time Reduce Costs Increase Competitiveness Personnel Perspective Increase Productivity Customer Perspective Achieve Greater User Satisfaction Through the Production of More Flexible Products
7
CSE298 CSE300 OV-1.7 CSE333 Component-Based Development Process TOP-DOWN: To determine what is needed to satisfy this need. BOTTOM-UP: To determine what is available to satisfy this need. OTHERS: Consider the similarity among concurrent projects. FUTURE: Consider the possibility of reusing in future projects.
8
CSE298 CSE300 OV-1.8 CSE333 Supplier /Consumer Model SUPPLY Build New Wrap Existing Buy CONSUME Assemble Applications MANAGE Publish Subscribe Catalog Browse
9
CSE298 CSE300 OV-1.9 CSE333 Specification Implementation Executable Interfaces Component
10
CSE298 CSE300 OV-1.10 CSE333 Components as Assets can Grow Complexity of Component
11
CSE298 CSE300 OV-1.11 CSE333 What are Component Dependencies? Dependency Type of Components Versions Aggregations Functional Inheritance Association What is Impact of Each Dependency on the Reusability of a Component?
12
CSE298 CSE300 OV-1.12 CSE333 CBD life cycle BusinessDirection General Business Requirements User, Business and Data services Business and Data services ComponentRequirements UserServices Harvest
13
CSE298 CSE300 OV-1.13 CSE333 What is Distributed Component Systems? Diverse Set of Topics that are Related Relationship Axes Include: Software Engineering Object-Oriented Design and Programming Distributed Computing Component-Based Design Security Enterprise Computing Objective: Transition from Specification to Design to Development to Deployment via Components Investigate Multiple Aspects of CSE
14
CSE298 CSE300 OV-1.14 CSE333 Semester Topics Background: Software, OO Design, Java (1 week) Software Architectures (1) Component-Based Design Unified Modeling Language (1) Optimal Deployment of Distributed Objects (1) Security Background and Design (2) Refactoring/Reusable Components (2) Service Based Computing CORBA, JINI,.NET, Interoperability (2) Security (2) Semester Midterm and Final Presentations (2) Course Exams (1)
15
CSE298 CSE300 OV-1.15 CSE333 Background: Software Engineering and Object-Oriented Design and Development Motivation and Background Concepts Software Engineering Qualities and Principles Extensibility, Correctness, Reliability, etc. Abstraction, Modularity, Incrementality, etc. Revisiting Core Object-Oriented Concepts Encapsulation, Hiding, Inheritance, etc. Advanced Object-Oriented Concepts Polymorphism, Dispatching, Generics, etc. OO Design, Programming, and Databases Assessing Available Technologies Predicting the Future
16
CSE298 CSE300 OV-1.16 CSE333 Background: Java Language, Environment, Capabilities, and Risks/Benefits Language/Environment Capabitities Potential Risks: Standardization, Security Flaws, Performance, Portability Significant Benefits: Client/Server/DOC, APIs, Database/Persistence Acceptance and Retraining What Must Software Professionals Understand to Successfully Utilize Java? How Quickly Can Software Professionals Learn Java? Where are we today? Are there Long-Term Benefits of Java? Can Java Interact with PLs, Legacy, COTS?
17
CSE298 CSE300 OV-1.17 CSE333 Software Architectures Emerging Discipline in Mid-1990s Software as Collection of Interacting Components What are Local Interactions (within Component)? What are Global Interactions (between Comps)? Advantages of SW Architectural Design Understand Communication/Synchronization Definition of Database Requirements Identification of Performance/Scaling Issues Detailing of Security Needs and Constraints Towards Large-Scale Software Development
18
CSE298 CSE300 OV-1.18 CSE333 UML is a Language for Specifying, Visualizing, Constructing, and Documenting Software Artifacts What Does a Modeling Language Provide? Model Elements: Concepts and Semantics Notation: Visual Rendering of Model Elements Guidelines: Hints and Suggestions for Using Elements in Notation References and Resources Web: www.rational.com/uml/ documentation.html “The Unified Modeling Language Reference Manual”, Addison-Wesley, 1999. “UML Toolkit”, Eriksson and Penker, John Wiley & Sons, Inc, New York, 1998. Component Based Design: UML
19
CSE298 CSE300 OV-1.19 CSE333 Component-Based Design: Optimal Deployment of Distributed Objects Problem: Deployment of Distributed Software New Distributed Application Redeploying Existing Distributed Application Distributing Standalone Legacy Application How are Locations of Software Components Determined for Target Distributed Environment? What Determines Component Placement? Component Interactions? Component Size? Local/Remote Communication? Ongoing Ph. D. work by C. Bastarrica Guest Lecture by C. Bastarrica
20
CSE298 CSE300 OV-1.20 CSE333 Component-Based Design: Security Background and Design Background on Security Concepts and Ideas DAC, RBAC, MAC, etc. Impact of Security on Software Design Public Interface is Union of All Privileges for All Potential Users No Explicit way to Prohibit Access Customizable Public Interface of Class: Variable and Based on User Needs and Responsibilities Only Give Exactly What’s Needed and No More public class PatientRecord { private: Data/Methods as Needed; public: write_medical_history(); write_prescription(); get_medical_history(); get_diagnosis(); set_payment_mode(); etc… } For MDs and Nurses For MDs Only For Admitting
21
CSE298 CSE300 OV-1.21 CSE333 Component-Based Design: Reusable Component Framework Popular OO Methodologies Omit /Ignore Reuse Current Research Concentrates on Consumer (Reuser) and Not Producer (Creator) Two-Fold Goal Elevate Reuse to Equal Partner Domain-and-Organization Specific Reuse Capabilities of Evaluation Techniques Identify the Reusable Portions of Design Estimate/Measure Reusability Automatically Provide Guidelines for Reuse Improvement For Newly Created Designs and Legacy Code Design Reuse Evaluation Tool: UML + Java
22
CSE298 CSE300 OV-1.22 CSE333 Service-Based Computing What are Keys Issues that Influence and Guide the Integration Process for Enterprise Computing? Software Reuse in a Distributed Computing Environment Reuse Existing Legacy/COTS in Innovative Ways Not Cost Effective to Redesign/Reimplement EC Users will Demand Modern Interfaces on Up- to-Date Platforms Wrappers for Cohesive/Seamless Interactions Apply to Languages (C, C++, Ada, etc.) and Paradigms (OODBS, CORBA, RPC,.Net, etc.) Address Communication, Translation, Security, Concurrency, Performance, Bandwidth, etc.
23
CSE298 CSE300 OV-1.23 CSE333 Service-Based Computing What are Keys Issues that Influence and Guide the Integration Process for Enterprise Computing? Communications Alternatives Dictated by Application Domain Tradeoffs of Low-Level (Sockets) vs. Mid-Level (RCP, RMI) vs. High-Level (CORBA, DCOM, …) Will Enterprise Computing Utilize Combination? Consistency of Information in Distributed Computing Environment When is Data Sent from Client to Legacy Server? Automatic (Regular) vs. User-Initiated? When Network Traffic is Low? Enterprise Computing Spans Broad Spectrum
24
CSE298 CSE300 OV-1.24 CSE333 Service-Based Computing Legacy COTS Database NETWORK Java Client Java Client How is Security Handled for Individual Systems? for Individual Systems? Security Issues for New Clients? New Servers? Across Network? What if Security Never Available for Legacy/COTS/Database? for Legacy/COTS/Database? Can Software Agents be Utilized for Distributed Security? for Distributed Security? Authentication Is the Client who S/he Says they are? Authorization Does the Client have Permission to do what S/he Wants? Privacy Is Anyone Intercepting Client/Server Communications?
25
CSE298 CSE300 OV-1.25 CSE333 Course Projects, Exams, and Grading Still Evolving… Individual/Team Course Project(s) (20% of Grade) Optimal Deployment Design Reusability Assessment Security Definition/Analysis Team Semester Project (40% of Grade) Final Exam (40% of Grade) Design Oriented/Relation/Integration of Topics Essay-Oriented and Problem Solving Read, Assimilate, Propose, Answer Focus/Limit to Specific Topics Notes: Percentages, Projects, and Exams are all Subject to Change Grade in Range of A to B-
26
CSE298 CSE300 OV-1.26 CSE333 Semester Projects and Presentations Still Evolving… In-depth Examination of Class Topic Formation of Student Groups Up to 3 to 4 people per Group (Even Sizes) Begin Working by 3rd Week of Semester Topic Selection and Proposal of Work Can Extend Prior Semester Project Research Presentation (PPT Slides) Talks and Interactions – Midterm and Final Replaces Two to Three Weeks of Classes See Prior Projects on Web Page Accompanying Final Paper (25 pages)
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.