1 / 26

Distributed Component Systems Overview and Course Objectives

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.

nell
Download Presentation

Distributed Component Systems Overview and Course Objectives

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Distributed Component SystemsOverview 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. 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. 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. 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. 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 Components vs. Objects

  6. 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 Components Types & Benefits

  7. Component-Based Development Process TOP-DOWN: To determine what is needed to satisfy this need. OTHERS: Consider the similarity among concurrent projects. FUTURE: Consider the possibility of reusing in future projects. BOTTOM-UP: To determine what is available to satisfy this need.

  8. SUPPLY Build New Wrap Existing Buy CONSUME Assemble Applications MANAGE Publish Subscribe Catalog Browse Supplier /Consumer Model

  9. Component Specification Interfaces Implementation Executable

  10. Complexity of Component Components as Assets can Grow

  11. 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. CBD life cycle Business Direction General Business Requirements Component Requirements User Services Harvest Business and Data services User, Business and Data services

  13. 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. 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. 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. 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. 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. Component Based Design: UML • 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.

  19. 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. Component-Based Design:Security Background and Design 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 Only For MDs and Nurses For Admitting • 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

  21. 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. 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. 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. Service-Based Computing COTS Database Legacy Legacy COTS NETWORK Java Client Java Client Legacy Database COTS How is Security Handled for Individual Systems? What if Security Never Available for Legacy/COTS/Database? Security Issues for New Clients? New Servers? Across Network? Can Software Agents be Utilized 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. Course Projects, Exams, and GradingStill 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. 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)

More Related