cse298 cse300 ov-1.1 cse333 distributed component systems overview and course objectives prof....
Post on 15-Jan-2016
216 views
TRANSCRIPT
CSE298
CSE300
OV-1.1
CSE333
Distributed Component SystemsDistributed Component SystemsOverview and Course ObjectivesOverview and Course Objectives
Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department
The University of Connecticut371 Fairfield Road, Box U-255
Storrs, CT 06269-2155
[email protected]://www.engr.uconn.edu/~steve
(860) 486 - 4818
CSE298
CSE300
OV-1.2
CSE333
What are Components?What are Components?
ADTs as Unit of Abstraction/ConceptualizationADTs as Unit of Abstraction/Conceptualization Classes are OO Equivalent of ADTsClasses are OO Equivalent of ADTs However, in Past 10 YearsHowever, 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 yearsIn Past 10 years
Emergence of Java (and now .NET) Emergence of Java Beans Component-Based Development Tools
CSE298
CSE300
OV-1.3
CSE333
What are Components?What are Components?
How are Applications Conceptualized?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?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
CSE298
CSE300
OV-1.4
CSE333
Defining Component ConceptsDefining Component Concepts
A A ComponentComponent is Composed of One or More is Composed of One or More Classes (or Other Components) and is Intended to Classes (or Other Components) and is Intended to Support a “Constructed” Unit of Functionality Support a “Constructed” Unit of Functionality
ClassesClasses Can be Utilized in Can be Utilized in Multiple ComponentsMultiple Components A Class Utilized in Multiple Components A Class Utilized in Multiple Components
Maintains the “Maintains the “SameSame” ” SemanticsSemantics in All of its in All of its ContextsContexts
Our Interest Involves:Our Interest Involves: Reusable Components Security Components Distributable Components Etc.
CSE298
CSE300
OV-1.5
CSE333
Components vs. ObjectsComponents vs. Objects
ComponentsComponents
Business Oriented Coarse Grained Standards Based Multiple Interfaces Provide Services Fully Encapsulated Understood by
Everyone
ObjectsObjects Technology-Oriented Fine Grained Language Based Single Interface Provide Operations Use Inheritance Understood by
Developers
CSE298
CSE300
OV-1.6
CSE333
Components Components Types & BenefitsTypes & Benefits
Application Template Application Template Data Model Data Model Data Structure Data Structure System Architecture System Architecture Process Model Process Model Process Definition Process Definition Prototype Prototype Plan Skeleton Plan Skeleton User Interface User Interface
Skeleton/GUISkeleton/GUI Process SkeletonProcess Skeleton Utility ComponentsUtility Components Security ProcessSecurity Process Etc. Etc.
Organizational Organizational PerspectivePerspective Shorten Development
Time Reduce Costs Increase
Competitiveness Personnel PerspectivePersonnel Perspective
Increase Productivity Customer Perspective Customer Perspective
Achieve Greater User Satisfaction Through the Production of More Flexible Products
CSE298
CSE300
OV-1.7
CSE333
Component-Based Development ProcessComponent-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.
CSE298
CSE300
OV-1.8
CSE333
Supplier /Consumer ModelSupplier /Consumer Model
SUPPLY Build New Wrap Existing Buy
CONSUME Assemble Applications
MANAGE Publish Subscribe Catalog Browse
CSE298
CSE300
OV-1.9
CSE333 SpecificationSpecification
ImplementationImplementation
ExecutableExecutable
InterfacesInterfaces
ComponentComponent
CSE298
CSE300
OV-1.10
CSE333
Components as Assets can GrowComponents as Assets can Grow
Complexity of ComponentComplexity of Component
CSE298
CSE300
OV-1.11
CSE333
What are Component Dependencies?What are Component Dependencies?
Dependency Type of ComponentsDependency Type of Components VersionsVersions AggregationsAggregations FunctionalFunctional InheritanceInheritance AssociationAssociation
What is Impact of Each Dependency on the What is Impact of Each Dependency on the Reusability of a Component?Reusability of a Component?
CSE298
CSE300
OV-1.12
CSE333
CBD life cycleCBD life cycle
BusinessBusinessDirectionDirection
General BusinessGeneral BusinessRequirementsRequirements
User, BusinessUser, Businessand Data servicesand Data services
Business andBusiness andData servicesData services
ComponentComponentRequirementsRequirements
UserUserServicesServicesHarvestHarvest
CSE298
CSE300
OV-1.13
CSE333
What is Distributed What is Distributed Component SystemsComponent Systems??
Diverse Set of Topics that are RelatedDiverse Set of Topics that are Related Relationship Axes Include:Relationship Axes Include:
Software Engineering Object-Oriented Design and Programming Distributed Computing Component-Based Design Security Enterprise Computing
Objective: Objective: Transition from Specification to Design to
Development to Deployment via Components Investigate Multiple Aspects of CSE
CSE298
CSE300
OV-1.14
CSE333
Semester TopicsSemester Topics
Background: Software, OO Design, Java (1 week)Background: Software, OO Design, Java (1 week) Software Architectures (1)Software Architectures (1) Component-Based DesignComponent-Based Design
Unified Modeling Language (1) Optimal Deployment of Distributed Objects (1) Security Background and Design (2) Refactoring/Reusable Components (2)
Service Based ComputingService Based Computing CORBA, JINI, .NET, Interoperability (2) Security (2)
Semester Midterm and Final Presentations (2)Semester Midterm and Final Presentations (2) Course Exams (1)Course Exams (1)
CSE298
CSE300
OV-1.15
CSE333
Background: Software Engineering and Background: Software Engineering and Object-Oriented Design and DevelopmentObject-Oriented Design and Development Motivation and Background ConceptsMotivation and Background Concepts Software Engineering Qualities and PrinciplesSoftware Engineering Qualities and Principles
Extensibility, Correctness, Reliability, etc. Abstraction, Modularity, Incrementality, etc.
Revisiting Core Object-Oriented ConceptsRevisiting Core Object-Oriented Concepts Encapsulation, Hiding, Inheritance, etc.
Advanced Object-Oriented ConceptsAdvanced Object-Oriented Concepts Polymorphism, Dispatching, Generics, etc.
OO Design, Programming, and DatabasesOO Design, Programming, and Databases Assessing Available Technologies Predicting the Future
CSE298
CSE300
OV-1.16
CSE333
Background: Java Language, Environment, Background: Java Language, Environment, Capabilities, and Risks/BenefitsCapabilities, and Risks/Benefits
Language/Environment CapabititiesLanguage/Environment Capabitities Potential Risks: Standardization, Security Flaws, Potential Risks: Standardization, Security Flaws,
Performance, PortabilityPerformance, Portability Significant Benefits: Client/Server/DOC, APIs, Significant Benefits: Client/Server/DOC, APIs,
Database/PersistenceDatabase/Persistence Acceptance and RetrainingAcceptance and Retraining
What Must Software Professionals Understand to Successfully Utilize Java?
How Quickly Can Software Professionals Learn Java?
Where are we today?Where are we today? Are there Long-Term Benefits of Java? Can Java Interact with PLs, Legacy, COTS?
CSE298
CSE300
OV-1.17
CSE333
Software ArchitecturesSoftware Architectures
Emerging Discipline in Mid-1990sEmerging Discipline in Mid-1990s Software as Collection of Interacting ComponentsSoftware as Collection of Interacting Components What are Local Interactions (within Component)?What are Local Interactions (within Component)? What are Global Interactions (between Comps)?What are Global Interactions (between Comps)? Advantages of SW Architectural DesignAdvantages 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 DevelopmentTowards Large-Scale Software Development
CSE298
CSE300
OV-1.18
CSE333
UML is a Language for UML is a Language for Specifying, Visualizing, Specifying, Visualizing, Constructing, and Documenting Software ArtifactsConstructing, and Documenting Software Artifacts
What Does a Modeling Language Provide?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 ResourcesReferences 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: UMLComponent Based Design: UML
CSE298
CSE300
OV-1.19
CSE333
Component-Based Design: Optimal Component-Based Design: Optimal Deployment of Distributed ObjectsDeployment of Distributed Objects
Problem: Deployment of Distributed SoftwareProblem: Deployment of Distributed Software New Distributed Application Redeploying Existing Distributed Application Distributing Standalone Legacy Application
How are Locations of Software Components How are Locations of Software Components Determined for Target Distributed Environment?Determined for Target Distributed Environment?
What Determines Component Placement?What Determines Component Placement? Component Interactions? Component Size? Local/Remote Communication?
Ongoing Ph. D. work by C. BastarricaOngoing Ph. D. work by C. Bastarrica Guest Lecture by C. BastarricaGuest Lecture by C. Bastarrica
CSE298
CSE300
OV-1.20
CSE333
Component-Based Design:Component-Based Design:Security Background and DesignSecurity Background and Design
Background on Security Concepts and IdeasBackground on Security Concepts and Ideas DAC, RBAC, MAC, etc.
Impact of Security on Software DesignImpact 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 MDsand Nurses
For MDs Only
For Admitting
CSE298
CSE300
OV-1.21
CSE333
Component-Based Design: Component-Based Design: Reusable Component Framework Reusable Component Framework
Popular OO Methodologies Omit /Ignore ReusePopular OO Methodologies Omit /Ignore Reuse Current Research Concentrates on Consumer Current Research Concentrates on Consumer
(Reuser) and Not Producer (Creator)(Reuser) and Not Producer (Creator) Two-Fold GoalTwo-Fold Goal
Elevate Reuse to Equal Partner Domain-and-Organization Specific Reuse
Capabilities of Evaluation TechniquesCapabilities 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 + JavaDesign Reuse Evaluation Tool: UML + Java
CSE298
CSE300
OV-1.22
CSE333
Service-Based ComputingService-Based Computing
What are Keys Issues that Influence and Guide the What are Keys Issues that Influence and Guide the Integration Process for Enterprise Computing?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.
CSE298
CSE300
OV-1.23
CSE333
Service-Based ComputingService-Based Computing
What are Keys Issues that Influence and Guide the What are Keys Issues that Influence and Guide the Integration Process for Enterprise Computing?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
CSE298
CSE300
OV-1.24
CSE333
Service-Based ComputingService-Based Computing
Legacy
Legacy
Legacy
COTS
COTS
COTS
Database
Database
NETWORK
JavaClient
JavaClient
How is Security Handled How is Security Handled for Individual Systems?for Individual Systems?
Security Issues for New Clients?Security Issues for New Clients?New Servers? Across Network?New Servers? Across Network?
What if Security Never AvailableWhat if Security Never Available for Legacy/COTS/Database?for Legacy/COTS/Database?
Can Software Agents be UtilizedCan 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?
CSE298
CSE300
OV-1.25
CSE333
Course Projects, Exams, and GradingCourse Projects, Exams, and GradingStill Evolving…Still Evolving…
Individual/Team Course Project(s) (20% of Grade)Individual/Team Course Project(s) (20% of Grade) Optimal Deployment Design Reusability Assessment Security Definition/Analysis
Team Semester Project (40% of Grade)Team Semester Project (40% of Grade) Final Exam (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: Notes: Percentages, Projects, and Exams are all Subject
to Change Grade in Range of A to B-
CSE298
CSE300
OV-1.26
CSE333
Semester Projects and PresentationsSemester Projects and Presentations Still Evolving… Still Evolving…
In-depth Examination of Class Topic 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 WorkTopic Selection and Proposal of Work Can Extend Prior Semester Project Can Extend Prior Semester Project Research Presentation (PPT Slides)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)Accompanying Final Paper (25 pages)