cse298 cse300 ov-1.1 cse333 distributed component systems overview and course objectives prof....

26
CSE298 CSE300 OV-1.1 CSE333 Distributed Component Distributed Component Systems Systems Overview and Course Overview and Course Objectives Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut 371 Fairfield Road, Box U-255 Storrs, CT 06269-2155 [email protected] http://www.engr.uconn.edu/~steve (860) 486 - 4818

Post on 15-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 2: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 3: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 4: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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.

Page 5: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 6: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 7: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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.

Page 8: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 9: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

CSE298

CSE300

OV-1.9

CSE333 SpecificationSpecification

ImplementationImplementation

ExecutableExecutable

InterfacesInterfaces

ComponentComponent

Page 10: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

CSE298

CSE300

OV-1.10

CSE333

Components as Assets can GrowComponents as Assets can Grow

Complexity of ComponentComplexity of Component

Page 11: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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?

Page 12: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 13: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 14: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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)

Page 15: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 16: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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?

Page 17: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 18: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 19: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 20: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 21: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 22: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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.

Page 23: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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

Page 24: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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?

Page 25: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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-

Page 26: CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering

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)