KFK Vorlesung SEW / AT Lecture 2 Technical application of hierarchic view Standardization DLL OLE...

103
KFK Vorlesung SEW / AT Lecture 2 Technical application of hierarchic view Standardization DLL OLE COM COM+ DCOM ORB Web Services

Transcript of KFK Vorlesung SEW / AT Lecture 2 Technical application of hierarchic view Standardization DLL OLE...

KFK Vorlesung SEW / ATLecture 2

Technical application of hierarchic view

Standardization

DLL OLE COM COM+ DCOM ORB

Web Services

Change of focus

Vista

Viewer

View

Sometimes the view is important

System

System Engineering and Integration

Multiple view:

- electrical

- hydraulic

- mechanic

System integration

System integration 3

Engine

Transmission Gears

System integration 3

System integration 3

Battery

Generator

System integration 3

System integration 3

System integration 3

Rector

Dean Head of Institute

System integration 3

Head physical lant

Shift superviser

A systemic (hierarchical) view of IT

Common examples - Management Information Systems - Computer Communications - Programming languages - Databases

- Objects

A systemic (hierarchical) view of IT

- Programming languages

A hierarchical view of programming syntax

CLec1Dlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) { if (nResponse == IDOK) a = 3 else a = 4; } else if (nResponse == IDCANCEL) { if (nResponse == IDOK) a = 31 else a = 42; }

<studies> <-- a tag <Program> <-- a tag for the type Administration <-- data <Cours> ADM 1301 (An offering) <-- data <Cours> ADM 1300 (A course prerequisite) <Professor> Koppel (Instructor) <Cours> ADM 2300 (A course offered by the professor) <Professor> Kindra (A guest lecturer) <Cours> ADM 2371 (A course offered by the professor) <Cours> ADM 4301 <Program> Computer Science

Hierarchical view of information

Hierarchical view of information

Program: ADM

studies

Prof: KoppelCours: ADM1301

Program: CSI

Cours: ADM4301

Course: ADM2301

Professor: Kindra

Cours: ADM1300

Cours: ADM2771

instructor

instructor

prerequisite

invited

<studies> <Program> Administration <Cours> ADM 1301 (An offering) <Cours> ADM 1300 (A course prerequisite) </Cours> </Cours> <Professor> Koppel (Instructor) <Cours> ADM 2300 (A course offered by the professor) <Professor> Kindra (A guest lecturer) <Cours> ADM 2371 (A course offered by the professor) </Cours> </Professor> </Cours> </Professor> <Cours> ADM 4301 </Cours> </Program> <Program> Computer Science </Program></studies>

Hierarchical view of information

A hierarchical view of programming

M1: 3

M1:7 M1:-5

M1:53

M1: 7

M1:5 M1:9

M1:8

M1:-95

M1:12

A hierarchical view of programming syntax

double fun( int a, int b , int c )

{ double p;

p = exp(a);

q = p + b ;

r = q - c;

return r;

};

A hierarchy!

fun(a,b,c);

A hierarchy!

q = p + b

r = q - c

p = exp(a);

fun(a,b,c);

A hierarchical view of programming syntax

void fun2( int a, int b , int c, int & d , int & e )

{

a = 4;

b = a + c;

d = 100* b;

e = a* b;

};

To simplify ...

int fun2( int a, int b , int c, int & d , int & e )

{

a = 4;

b = a + c;

d = 100* b;

return e = a* b;

};

A systemic view of programming syntax

int fun2( int a, int b , int c, int & d , int & e )

{

a 4;

b a + c;

d 100* b;

return e a* b;

};

A systemic view of programming syntax

However, pass by value does not fit well with process orientation

- need to make copies of variables - we really would like to change the value of

the variables

Additional devices: g = fun2( a, b, c, d , e )

int fun2( &pa, &pb, &pc, &pd , &pe )

A systemic (hierarchical) view of IT

- Databases

Data integration

Data

Program

Data integration

Data

Program Program

Data integration

Program

Database

Program

Another hierarchical view of DBMS

Levels of Abstraction

1- external

2- logical

3- physical

Another example: DBMS

Originally hierarchical:

Department

Employee Support

Employment Office Equipment

A digression on DBMS

Then network:

Programme

course Student

Instructor Research TA

DBMS

Then relational

object-oriented:

many databases (especially those containing multimedia information) have complex structures not well suited to relational DB.

DBMS: levels of abstraction

Conceptual Software: Application Operating System Firmware Instruction Set Architecture: Representation Hardware

DBMS: some standards boards

CODASYL List Processing Task Force (later called theData Base Task Group) to construct COBOL database extensions

ANSI-Standard SQL

OMG Object Management Group

Data integration

Data

Program

Data integration

Data: integer, ...

Program

Data integration

File

Program

Data integration

Object?

Program

Serialize an object

The class

public class A{

public string s;public A(){}

}

System integrationA a = new A();a.s = textBoxSerText.Text;

XmlSerializer serializer = new XmlSerializer(typeof(A));TextWriter writer = new StreamWriter(“file1.txt”

serializer.Serialize(writer, a);writer.Close();

TextReader reader = new StreamReader(“file2.xml);A b = (A)serializer.Deserialize(reader);textBoxShowText.Text = b.s;reader.Close();

Data integration

Object?

Program

Data integration

Object?

Program

Data integration

Object?

ProgramMemory

Data integration

Object?

Program

Serialize an object

The class

public class A{

public string s;public A(){ s=“my friend”;}

}

User’s Program Library program

Introduction: static library `1965-85’

User’s ProgramLibrary program

Introduction: static library `1965-85’

link

User 1’s Program

Library

Static library: voluminous but safe

User 2’s Program

User’s Program

Library program

Introduction: dynamic link library

execute

User’s Program

Beginning of integration!

execute

User’s Program

Library program

Cost and benefit of dynamic link library

execute

User’s Program

Library program

Cost and benefit of dynamic link library

execute

New version

Benefit but danger!

Software integration

Interlanguage operability

Not product, but standardEvolving COM2, COM+, DCOM

Component Object Model (MicroSoft’s) effort toward sharing objects (Programming) Language independent Specified by ODL (Object Description Language) ~ IDL (Interface Description Language)

Component Object Model (COM)

Component Objects

Component Object Model supported in most MicroSoft environments: Visual Basic, Visual C++, Visual J++

but also: Delphi (Borland) PowerBuilder (SmallTalk)

CORBA (ORB, see next)

Object linking and embedding:first designed to embed a document created by one application (e.g., Excel) within a document created by another one (e.g., Word)

greatly extended (OLE2)

OLE control

Examples of in-place activation OLE

1 23

3

666

324 3q5q34

Graphic image (hard to see in-place activation)

Excel within Power Point

COM as DLL, EXE

1 23

3

666

324 3q5q34

In-process COMs as DLL in the same process as the client e.g. ActiveX

Out-of-process COMs as EXE via lightweight Remote Procedure Call e.g. Excel within Power Point

Send objects over Internet (networks)

Client

Object

Server

Advantage of sending document to client

Client

XML (or OLE)

Server

Local processing

OLE for Internet

OLE too big! (need to specify every property)

Client

OLE

Server

Traditional OLE controls too big for transmission over Net

simplify and restrict ActiveX controlit is a DLL with an extension OCX

need not describe unused services

ActiveX control containere.g. Internet Explorer

ActiveX control

ActiveX Control

ActiveX Controls, as COM objects, present service interfaces through:

Properties: stock customEvents: stock customMethods

COM evolution

CORBA Object Transaction

Services

Internet Inter-ORB Protocol

( synchronous

asynchronous messaging services

(D)COM MicroSoft Transaction

Services

COM RPC

communication: RPC)

asynchronous MicroSoft Message Queue

Object Request Broker

Object

HTTP

Object

Client

SOAP

COM evolution

CORBA Object Transaction

Services

Internet Inter-ORB Protocol

( synchronous

asynchronous messaging services

(D)COM MicroSoft Transaction

Services

COM RPC

communication: RPC)

asynchronous MicroSoft Message Queue

Object Request Broker (cont’d)

ORB independent application BUT Windows-based ORBDistributed COM (Windows 98, 2000)COM+

Objects …(C++/Java) objects language independent most applications provide no inheritance

Toward a hierchical view of software Integration

Programs on mainframe ca. 1960

Program

Use

Use

Contract

Toward a hierchical view of software Integration

Use Use

Broker

Contract Contract

Toward a hierchical view of software Integration

Broker

Bourse

Language 1(FORTRAN)

Language 2 (COBOL)

Data files

Toward a hierchical view of software Integration

Format 1

Format 2

Database

Toward a hierchical view of software Integration

DB Format 1

DBFormat 2

Application interface

Toward a hierchical view of software Integration

Contract Format (buy)

ContractFormat 2

(rent)

Banker, broker

Toward a hierchical view of software Integration

Use

Use

Broker

Contract

Contract

Toward a hierchical view of software Integration

Use

Use

Broker

Contract

Contract

Toward a hierchical view of software Integration

Broker

Bourse

Broker

How transparent is the hierarchy?

Broker

Bourse

Use Use

Contract Contract

How transparent is the hierarchy?

Bourse

Use Use

How transparent is the hierarchy?

Bourse

A hierarchy!

Current software Integration

ObjectFormat 1

ObjectFormat 2

Objectbroker

Potential software Integration

Objectbroker

Format 1ORB

Objectbroker

Format 2COM

XML ?

Data integration

Security

Program

Database

Program

Data integration

Security Concurrency

Program

Database

Program

Data integration

Security Concurrency

Program

Database

Program

Dataset

Data(base) Integration

Program to file

Program to database

Database to database replication same schema translation on the fly

Federated database

Universal database (relational + object-oriented)

Simplistic standards

Spreadsheets.WK1

Graphics.GIF .JPG

Text.PS .PDF

Video.WAV

MusicMP3

Web Service

Object

HTTP

Object

Client

SOAP

User

User

HTTP

SOAP

SOAP

Toward a hierchical view of software Integration

HTTP

Web Site

Data integration

DataProgram

Data integration

DataProgram

Data integration

ServerProgram

Standards for database middleware

OLE DBODBC JDBC

Gateways. Information Builders’ Enterprise Data Access. IBM’s Distributed Relational Data Access. ISO/SAG Remote Data Access

As part of application-level interface (seen later) D/COM (Microsoft) CORBA (the Open System) JBeans (((Sun Microsystems)))

Universal database providers

Oracle: relational -> universal

Informix: <-- Illustra = object-oriented

Sybase + Persistent Software (OO)

Three tier servicesBusiness Intelligence (rules, …)

Middle-tier Server

DB Bottom-tierDatabase

Internet

Record set

Query

Request

Response

TablesTop-tier client

Distributed Architecture

ASP User

Database

Server

1980’s rear view of systems engineering...

Machine Man

… vs. System integration (not my favourite)

Computer

Machine Man

V1980-90’s view of System integration

Specification Validation

design

coding

integration

Object Request Broker

Object

ORB

Object

Client

Body

(Hierarchical) systems analysis (engineering)

Engine Drive Interior

Fuel Electric Front Back Steering Upholstery

A systemic (hierarchical) view of IT

Common examples - Management Information Systems - Computer Communications - Databases - Programming languages

A systemic (hierarchical) view of IT

- Computer Communications