CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

23
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    213
  • download

    0

Transcript of CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

Page 1: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

CS 501: Software EngineeringFall 2000

Lecture 16

System Architecture III

Distributed Objects

Page 2: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

2

Administration

Page 3: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

3

Real-Time: Software Considerations

Resource considerations may dictate software design and implementation:

• Low level language (e.g., C) where programmer has close link to machine

• Inter-process communication may be too slow (e.g., C fork).

• May implement special buffering, etc., to control timings

Page 4: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

4

Buffering Example: CD Controller

Input block Output

block

12

345

67

Circular buffer

Page 5: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

5

Continuous Operation

Many systems must operate continuously

• Software update while operating

• Hardware monitoring and repair

• Alternative power supplies, networks, etc.

• Remote operation

These functions must be designed into the fundamental architecture.

Page 6: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

6

Example: Routers and Other Network Computing

• Interoperation with third party devices

• Support for several versions of protocols

• Restart after total failure

• Defensive programming -- must survive

=> erroneous or malicious messages

=> extreme loads

• Time outs, dropped packets, etc.

• Evolution of network systems

Page 7: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

7

Example: Transaction Monitor

messages

A transaction monitor: monitors transactions, routes them across services, balances the load, restarts transactions after failure.

Transaction monitor processes

Page 8: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

8

Software Reuse: Application Packages

• Package supports a standard application (e.g., payroll, user interface to Internet information, mathematical algorithms)

• Functionality can be enhanced by:

=> configuration parameters (e.g., table driven)

=> extensibility at defined interfaces

=> custom written source code extensions

Page 9: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

9

Reuse: Object Object Oriented Languages

Example:

Java is a relatively straightforward language with a very rich set of class hierarchies.

• Java programs derive much of their functionality from standard classes

• Learning and understanding the classes is difficult.

=> Java experts can write complex systems quickly

=> Inexperienced Java programmers write inelegant and buggy programs

Page 10: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

10

Reuse: Objects - Basic Definitions

• An object is a piece of code that owns attributes and provides services through methods.

• The methods operate on instance data owned by the object.

• A class is a collection of like objects.

Page 11: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

11

Reuse: Objects - Characteristics

• Encapsulation. An object has a public interface that defines how other objects or applications can interact with it.

methodspublic instance data

• Inheritance. Subclasses can be derived from parent classes. They inherit or override the parents' methods and instance data.

• Polymorphism. The effect of a method can vary depending on the class that implements it (e.g., display_object)

Page 12: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

12

Reuse: Objects - Object Binding

Binding is the linking of the software interface between two objects.

• Static binding: The interface is determined at compile or build time.

StraightforwardAllows type checking

• Dynamic binding or late binding: The link is established at run time.

Flexible and extensibleComplex

Page 13: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

13

Reuse: Objects - Distributed Objects

Objects on separate computers interact through method calls and instance data.

Major systems:

• CORBA (Common Object Request Broker Architecture)

• Microsoft family: OLE, COM, DCOM, Active X ...

Page 14: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

14

Desirable Properties of Distributed Objects

• Different languages and operating environments

• Reusable code: components

• Architecture can be extensible

• Future changes can be localized

• Standard tools used for client/server interactions

Page 15: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

15

Example: Fedora IDL

A research project to explore extensibility:

-- very simple Interface Definition Language

-- powerful tools for extensions

-- interoperability, Cornell and CNRI

http://www.cs.cornell.edu/cdlrg/fedora.html

Page 16: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

16

Object Request Broker (ORB)

ObjectsC C++ Java OtherCobol

IDL

Client Server

IDL IDL IDL IDL

Object Request Broker

Interface

Page 17: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

17

Interface Definition Language

module <identifier>{ <type declarations>; <constant declarations>; <exception declarations>;

interface <identifier> [:<inheritance>] {

See next slide }

interface <identifier> [:<inheritance>] { ..... }{

Naming context

Define a class

Define a class

Page 18: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

18

Interface Definition Language (continued)

interface <identifier> [:<inheritance>] {

<type declarations>; <constant declarations>; <exception declarations>;

[<op_type] <identifier>(<parameters>) [raises exception] [context]; .... [<op_type] <identifier>(<parameters>) [raises exception] [context]; .... }

Define a class

Define a method

Define a method

Page 19: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

19

ORB: Programmer's View

Object Request Broker

Invoke a on

object X

Invoke a on

object Y

Object X

a

Object Y

a

Client Server

Page 20: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

20

Object Request Broker (ORB)

An ORB lets objects make requests to and receive response from other objects located locally or remotely.

• Static and dynamic method invocations

• High-level language bindings

• Self-describing system

• Local/remote transparency

• Inter-ORB protocols Internet Inter-ORB Protocol (IIOP)

Page 21: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

21

ORB: System View

Object Request Broker

Interface repository

Dynamic invocation

Client IDL stubs

ORB interface

Implementation repository

Static skeletons

Dynamic invocation

Object adapter

Client

Object implementation

Page 22: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

22

CORBA Services

• Naming service• Event service• Concurrency control service• Transaction service• Relationship service• Externalization service• Query service• Life cycle service• Persistence service• Licensing service• Properties service• Security service• Time service

Page 23: CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.

23

Distributed Objects and the System Life-Cycle

All large systems change with time.

• Dynamic binding of objects combined with polymorphism permits the addition of extra object types, incremental changes, etc. to be localized.

Development environments change with time.

• Language bindings and IIOP permit changes.

Production environments changes with time.

• Code can be reused in different environments.