ABB

advertisement

Component Software

An Introduction

Martin Naedele

Industrial Software Systems

CHCRC.C2

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Objectives

 “Get the feel” for the concept of component-based SWE

 What are components?

 What are components not?

 What are components good for?

 Know the terminology and the important acronyms

 Know where the limits and problems are

Not

 How do I do “X” with technology of vendor “Y”?

 a programming course

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Topic overview

4

5

6

7

Part

1

2

3

The challenges of SWE - how can component SW help?

What is component software?

Elements of a component infrastructure

Specific component models

Developing SW with components - some guidelines

Problems and research issues

Sources of further information

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Part 1

The challenges of software engineering how can component software help?

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Terms

component

 a piece of software, definition discussed later component-based software (CBS), aka component software, aka componentware

 application built from components component-based development (CBD), aka component-based software engineering (CBSE)

 the activity of building applications from components

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Software engineering problems

The “software crisis” (1968) still exists:

 SW is late

 SW is buggy

 SW is expensive

Component software yet another “silver bullet”?

NATO conf 1968

SW crisis

SW engineering components

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

SWE problems and component SW

 SW is late

 SW is buggy

 SW is expensive

… because too often applications are created instead of constructed , requiring

 re-invention

 re-coding

 re-testing

Also, applications are not adaptable to changes

Component-based software engineering can help because it focuses on reuse of

 subsystems

 infrastructure

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

Component-based software construction (1)

components

Component

#1 construction application

Component

#4

Component

#2

Component

#1

Component

#2

Component

#3

Component

#4

Component

#3

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Component-based software construction (2)

application

Component

#1

Component

#2

Component

#3

Component

#4 update component

New

Component

#4

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Side remark: OO and reuse

Object orientation is not primarily concerned with reuse , but with appropriate domain/problem representation using the technological enablers

 objects

 classes

 inheritance

 polymorphism

[Wegener]

Experience has shown that the use of OO does not necessarily produce reusable SW

 fragile base class problem

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Expectations from comp.-based development

Reuse of components should

 improve productivity, speed up development

 reduce risk

 improve robustness, increase quality

 generate additional income

Reuse has two forms reuse of a component in a different application reuse of an application of which parts have changed fast construction

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#› evolvability, extensibility

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

The promises of component SW - quotes

Microsoft:

“Monolithic solutions won’t work

 No one vendor or one team of programmers can move fast enough

 Need to leverage others’ work and to build and ship smaller pieces incrementally

 Need to evolve smaller pieces asynchronously without sacrificing the whole”

Gartner:

“Component-based development is an evolving best practice”

“By 2002, 70 percent of all new applications will be deployed using componentbased application building blocks.”

“... components can improve programmer productivity by 40 percent or more…”

“Through 2004, IS organizations that are mature in CBD methods and that use a model-driven or pattern-based application development framework containing a large inventory of business components have the potential to be 5 to 10 times more productive than those that do not.”

ABB

ABB Corporate Research

2000 ABB Corporate Research Ltd, Baden, Switzerland

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Part 1 - Summary

The challenges of SWE - how can component SW help?

 Reuse is the solution to many problems in SWE

 CBD focuses on SW reuse

 CBD tries to avoid re-creation of code

 OO is a technology that facilitates creation of new code

(if necessary)

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Part 2

What is a component?

What is component-based software?

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

The history

 Structured Analysis

 functional decomposition, hierarchy

 Object Orientation

 encapsulation of state and behavior

 domain modeling

 interactions

 inheritance

 Frameworks interfaces

 domain-specific reusable infrastructure

 Patterns

 reuse of abstract mechanisms, experience

 Component-based SW

 ???

Not really: 1968

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Component definitions

… are a hot academic research and dispute topic: client-centered events self-contained usable in unanticipated contexts connectors reusable contracts independently deployable compositional encapsulated distributable provided interfaces visual programming binary quality of service required interfaces

COTS boundaries configurable

ABB

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Component definitions

… are a hot marketing topic:

COM+

DCOM binary

EJB

Corba

ActiveX controls language independent

JavaBeans

COM platform independent

.NET

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#› builder tools

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Pragmatic definition of CBS

Components

 independently deployable SW entities with a certain functionality which

 can be composed into larger systems by means of dynamically discoverable , immutable interfaces following standardized conventions .

Component-based software (CBS) consists of

 connected components on multiple levels which also extensively use

 services provided by the runtime infrastructure of the component model

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Terminology

 Component object, component instance: actual occurrence of a component in a running system

 Component class : abstract template for the creation of component instances

 Component: conceptual building block of a system, depending on context the term used for any of the above

 Component model : conceptual and implementation framework for writing and working with components

 languages, platforms

 runtime infrastructure, functionality, and API

 technical details of interface and distribution implementation

 … more later

Examples: MS COM, Sun EJB, Corba ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

Interface

Group of related methods that specifies a contract between user and provider of the interface

 usually only syntax explicitly specified, semantics implicit

 concept of a contract also includes

 semantics

 non-functional properties, quality of service

 negotiation

 once public, it must be immutable with respect to

 functionality

 syntax

 semantics

 implementation may change at any time IBar

A component may provide / implement several interfaces

IFoo

IFoo2

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Interface description: (M)IDL

(Microsoft) Interface Definition Language

[ uuid(00112233-ABBA-ABBA-ABBA-BADBADBADBAD), object

] interface IAddressList {

HRESULT addAddress ([in] name, [in] address);

HRESULT deleteAddress ([in] name, [in] address);

}

 language independent interface specification

 can be compiled into language dependent code skeletons

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Infrastructure

“30 % of SW development effort is spent on infrastructure that adds no value”

 Goal

Developer should concentrate fully on the application instead of spending time on reccurring side issues

 Each commercial component model offers ready-made infrastructures for e.g.

 transactions

 distributed computing

 persistence, DB access

 security (access control) more later...

“The COM+ philosophy: The runtime does all the grungy stuff” [Microsoft]

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

Multi-level programming

 Performance oriented languages (C, C++)

 Application development languages (Java, C#)

 End-user languages/GUI builder (Visual Basic, visual programming, scripting)

 Configuration (attribute based programming (ABP))

 security rules, user roles

 database names

 distributed deployment

 feature set/available subsystems

 transaction requirements

… are set at installation time

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Multi-level programming with application server

An application server can be

- a Web Server,

- a Database Server

- a CORBA Server

- a TP-Monitor

Client Client

Application

Server

Imperative

Programming

...

Server

Component

Server

Component

Attribute Based

Programming

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Transaction

Security

Resources

...

Transaction

Security

Resources

...

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Multi-level programming

Here: EJB approach

Bean

Provider

A

Application

Assembler plugs beans together

Deployer puts beans into containers

Container

Provider

Server

Provider

Bean

Provider

B

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

System

Administrator configures and administrates enterprise environment

2000 ABB Corporate Research Ltd, Baden, Switzerland

[SUN]

ABB

CBS vs. subsystem structuring

Component-based system

 focus is on interfaces between units

 multiple instances of one component (class) in the running system

 composition, bottom-up

System with subsystems

 focus is on functional units

 subsystem is singleton

 structuring, top-down

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Component aspects

Depending on the point of view, components are units of

 functionality

 reusability

 purchase/outsourcing

 deployment

 maintainability

 quality management

 documentation

 …

When discussing CBSE it is important to ensure that everybody talks about the same aspect.

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Part 2 - Summary

What is component-based software?

 No clearly defined concept

 No revolutionary technology

 Most important features can be summarized as

 interfaces

 infrastructure

 multi-level programming

 CBSE is not really (only) about components

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Part 3

Elements of a component infrastructure

What does it offer?

How does it work?

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Infrastructure

 All commercial component models offer runtime infrastructure support to allow the developer to concentrate on the business logic

 infrastructure = middleware

 certain architectural patterns can be found in all component models Knowing these patterns will make it easier to understand a particular vendors component infrstructure

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Component infrastructure functionality (1)

 runtime component/memory management

 service/component discovery (naming, broker)

 transparent distributed computing

 security (access control)

 persistence, DB access

 transactions

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Component infrastructure functionality (2)

 message queues

 event handling

 fault tolerance

 error isolation

 load balancing, pooling

 WWW connectivity

 data exchange over open protocols

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Generic component runtime

Naming

Service

Transaction

Service

Security

Service

Request/Reply

(HTTP,IIOP,

RMI, DCOM)

Communication

Publish/Subscribe

Message Queue

Eventing

Data

Streaming

Load balancing

- Multi-Process

- Multi-Thread

Lifecycle Management

State

Management

Web

Integration

DB

Connection

Pool

Legacy

Integration

Business Logic

(Components)

DB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Architectural pattern (1)

Proxy , aka proxy-stub, aka stub-skeleton used for location transparency, distributed components, interprocess component access

Data packaging (marshalling) and transfer transparent for the user

„stub“ (local proxy) „skeleton“ (remote proxy) remote object client server

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Generation of proxies from IDL

Interface specification in

IDL

Part of CORBA, JavaIDL, or COM implementation

IDL Compiler

Client

Stub

Proxies Server

Skeleton

Programming language dependent source code to be compiled into client and server application

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Location transparency

aka distributed computing

Goal Realization with proxy client server

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#› naming service/ broker

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Architectural pattern (2)

Serialization used for storage or transmission

Allows object/compone nts to

“hibernate”

 the component writes/reads itself to/from a stream

 serialization is started using a specific interface of the component

ISerialize

IBar

ISerialize

IBar

IFoo2 serialization

IFoo2 deserialization

ISerialize

IBar

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

IFoo2

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Architectural pattern (3)

Inheritance by delegation used for implementation reuse

 components do not use implementation inheritance to avoid dependencies and anomalies

 a call to a method of an interface of a component is passed on ( delegated ) to a different component that implements the actual functionality

IFoo delegation

IFoo

IFoo2

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Architectural pattern (4)

Interception used to give the runtime infrastructure control over calls to a component’s interface, e.g. for

 access control

 instrumentation and logging

 location transparency (see proxy)

 ...

Server process

Application client

IFoo

Security service

IFoo

Application

Server

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Architectural pattern (5)

Dynamic connections , aka events used for communication between partners that are only known at runtime

 follows publish-subscribe pattern

 notification may be asynchronous <<Interface>>

MyEventListener myEventOccured() aSender aReceiver addMyEventListener (this) myEventOccurred(...) removeMyEventListener (this)

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Part 3 - Summary

Elements of a component infrastructure

What does it offer? How does it work?

 All component models offer similar runtime infrastructure services, though under very different names

 These services are implemented using certain architectural patterns

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Part 4

Specific component models

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Definition

Component model

Conceptual and implementation framework for writing and working with components

 interface structure

 interaction mechanisms

 guidelines on implementation or

A vendor ’s approach towards writing components and providing infrastructure

Presented here:

 Microsoft COM / ActiveX

 Microsoft .NET

 OPC

 Sun EJB

 Sun JavaBeans

 Corba

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Purpose

Not all component models have the same purpose

 (D)COM, EJB, Corba:

 distributed computing

 infrastructure for multi-tier systems, integrated with middleware

 components usually business objects

 JavaBeans, ActiveX controls:

 creation of GUIs

 visual programming using builder tools

 have design-time and run-time user-interface

 have properties

 communicate with events

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

COM

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Microsoft COM (Component Object Model)

 General purpose component model

 Basic technology behind multiple marketing names

 COM, DCOM, COM+, ActiveX, OLE, Automation

 History

 developed in 1995

 since W2K COM+ with enhanced infrastructure

 since 7/00 future unclear because of .NET

 Design goals

 simplicity (of concept, not use!)

 performance (zero sacrifice if used in process)

 binary compatibility

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Microsoft COM: key features

 infrastructure ‘COM runtime’ built in on Win OS

 ‘binary compatibility’, language independent

 requires implementation of interface ‘IUnknown’

 uses ‘GUIDs’ (globally unique IDs) to name interfaces etc

 location independence (in-process, cross-process, crossmachine)

 supports distributed computing with DCOM wire protocol

 component deployment as DLL or EXE

 programming languages HTML/ASP, VB and VC++

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Microsoft COM: location transparency (1)

Client

Object running on client

Server

Remote object on any server

COM

Object running on client

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Microsoft COM: infrastructure

 transactions: MTS

 message queues: MSMQ

 database wrapping: OLE DB, ADO, ...

 security functionality using WinOS

 multi-user functionality using WinOS

 broker/discovery: runtime + registry

 multithreading

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Microsoft COM: ActiveX

 ActiveX controls: GUI component model on top of COM

 certain additional conventions

 visual programming with builder tools, e.g. VB

 properties and events

 downloadable code (web scripting)

 security issues! (no sandbox, codesigning only)

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Microsoft COM: summary

 very flexible

 very low level programming necessary to use all features

 high learning threshold

 requires use of higher level support

 ATL (active template libray): class template library with wizards

 successful in the market

“… a market currently sized at $410 million dollars just for third party components. This number excludes Microsoft built components and is projected to grow at 65 percent a year, to approximately 3 billion dollars by 2001”

“Choose today from over 1,000 controls from hundreds of vendors”

[Giga Information Group]

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

.NET

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Microsoft .NET

 recently announced (7/00)

 not yet clear how much of it is only marketing

 basic plumbing still COM

 focus on ‘Web Services’

 application integration using internet technology

 new programming languages ASP+ and C#

 C# very similar to Java

 C++ deprecated

 VB gets OO extensions

 SOAP (simple object access protocol) replaces DCOM

XML-based

 can get through firewalls

 infrastructure called CLR (common language runtime)

 includes language independent type system

 all ‘runtime aware’ languages can use it ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

OPC

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

OPC (OLE for Process Control)

 industry standard for communication between components in field devices, automation equipment and business applications (generic driver)

 data access

 historical data access

 event & alarm handling

 data model

 set of interfaces for COM

 server interfaces

 callback interfaces

 managed by OPC Foundation (www.opcfoundation.org)

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

OPC: Why is OPC needed?

Display

Application

Trend

Application

Report

Application

Software

Driver

Software

Driver

Software

Driver

Software

Driver

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

OPC: How does OPC Solve the Problem?

Display

Application

OPC

Trend

Application

OPC

Report

Application

OPC

OPC

Software

Driver

OPC

Software

Driver

OPC

Software

Driver

OPC

Software

Driver

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

OPC: application

Station PC

Client

Application

Client

Application

Variant A

Interbay Bus

Bay

Unit

Bay

Unit

OPC Server

Bus

Driver

Ethernet

Variant B

OPC Server

PC

Bus

Driver

Field Bus

Field

Unit

Field

Unit

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

EJB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Sun EJB (Enterprise Java Beans)

 component model for middle-tier applications (no GUI)

 part of the Java 2 Platform, Enterprise Edition

 History

 EJB 1.0 (3/1998)

 EJB 1.1 (1999)

 EJB 2.0 currently in draft state

COM: full power to the programmer,

EJB: convenience for the programmer

 Design goals

 isolate the business logic developer from the infrastructure plumbing

 vendor independence for middleware (infrastructure)

 platform independence

 scalability ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

Sun EJB: J2EE

Overview: Java 2 Platform, Enterprise Edition

EJB enterprise java beans

JSP Java server pages

JMS Java messaging services

Servlets

JTA/JTS Java transaction

API/services

JavaIDL (Corba interface)

RMI remote method invocation)

JDBC Java database connectivity

JNDI Java naming and directory services

XML

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Sun EJB: key features (1)

 infrastructure provided by component server/container

 server/container available from middleware vendors

 containers are specified/standardized

 RMI/IIOP (Corba inter-ORB protocol) used for distribution

 components deployed as compiled Java classes & resources in JAR (Java archive) format

 two flavors

 session beans (non-persistent), e.g. shopping cart

 entity beans (persistent), e.g. bank account

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Sun EJB: key features (2)

EJB spec prescribes certain coding rules (naming and semantics) for components

 EJBHome (home interface, lifecycle management by container)

 EJBObject (remote interface, accessible for client)

 Bean class (implementation of functionality)

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Sun EJB: infrastructure

 Container/Server manage object lifetime, persistence, DB access (JDBC), security

 transactions: JTS, JTA

 message queues: JMS

 database wrapping: JDBC

 persistency (entity beans)

 container managed

 bean managed

 security functionality built into container/server, JAAS

 multi-user functionality built into container/server

 broker/discovery: container/server + JNDI

 multithreading

 Corba interface built into container/server

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

Sun EJB: container and server

One server may contain multiple containers low-level communications, load balancing, directory services

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#› transactions, access control, communication, lifecycle management, persistency

ABB

2000 ABB Corporate Research Ltd, Baden, Switzerland

Sun EJB: summary

 transaction services not quite as mature as MS MTS

 designed as server component technology

 considered promissing for n-tier applications

“...

IDC believes that EJB is well on the way to becoming a de facto standard for heterogeneous, multiplatform environments"

[IDC, 4/1999]

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

JavaBeans

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Sun JavaBeans

 component model for GUIs and client-side applications

 visual programming with builder tools, e.g. JBuilder

 properties and events (JDK 1.1 event model)

 require (only) certain coding rules (design patterns)

 some helper classes exist

 interfaces for design time and run time

 built on top of Java

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Sun JavaBeans

 interface and property lookup by builder tool

 implicit: needs only class files, based on built-in introspection and “design patterns”

 explicit: optionally BeanInfo class per component

 automatic serialization support

 deployed in JARs

 property editors (also beans) and customizer

 events can be adapted using automatically generated adapterscan be written manually w/o wizards

 additional APIs: InfoBus, JAF; BeanContext

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Corba

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

CORBA (Common Object Request Broker Architecture)

 server-side component model

 standard for distributed computing

 defined by members of the Object Management Group (OMG)

 History

 started in 1991 (Corba 1.1)

 current version: Corba 3 (1999)

 Design goals

 comprehensiveness

 interoperability

 infrastructure services as components

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

CORBA: key features

 implemented by various vendors

 central concept: ORB (object request broker)

 provides location transparency

 provides platform, language independence

 wire protocol IIOP (Internet inter-ORB protocol)

 interface definition in OMG IDL

 bindings for many languages exist

 produces proxy pattern

 spezialized Corba

 real-time CORBA,

 minimal CORBA for embedded systems

 fault-tolerant CORBA.

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Corba: Object Management Architecture

Corba is based on the Object Management Architecture (OMA) reference model:

Non-standardized Vertical domain-specific application-specific interfaces interfaces

Application Objects Domain Objects

Horizontal facility interfaces

CORBAFacilities

Object Request Broker (ORB)

Transportation and

Communication

CORBAServices

General service interfaces

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Corba: infrastructure - Corba services

 Collection Service

 Concurrency Service

 Event Service

 Externalization Service

 Licensing Service

 Life Cycle Service

 Naming Service

 Notification Service

 Persistent Object Service

 Property Service

 Query Service

 Relationship Service

 Security Service

 Time Service

 Trading Object Service

 Transaction Service

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Corba: summary

 oldest distribution standard, mature

 carefully designed architecture

 incorporates middleware experts’ experience

 OMG provides only specification, implementations must be bought from various vendors

 contains all features, but is complex and slow

 current trend: integration of Java and Corba (JavaCorba)

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Part 5

Developing software with components some guidelines

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Component documentation

Idea: building SW systems like HW systems ...

Point: components are more than SW

IFoo

IBar

1 a1

2 a2

3 a3

4 a4

0

Vcc1

Software

CHIP

GND

0 b1

5

6 b2

7 b3

8 b4

IFoo2

… the rest of the analogy is often neglected:

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Knowledge about the pinout (interface methods) is not enough , also needed are specifications of

 behavior

 tolerances

 dependencies

 environmental requirements

 application notes ABB

2000 ABB Corporate Research Ltd, Baden, Switzerland

“Three questions of software contracts”

[Meyer]

What does it expect?

What does it maintain?

What does it guarantee?

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Requirements for successful CBSE

[Gartner]

 Create components of appropriate scope

 Make each component independent

 Require minimum inputs

 Check all inputs for validity

 Design related components simultaneously

 Adhere to one methodology and one component model

 Validate the design early

 get early feedback from potential (re)users

 Maintain the documentation

 Create and maintain an inventory

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Component granularity

Small enough to learn easily, but large enough to be worth learning reuse gain

 wrapped (legacy) application

 functional block

 functional piece (e.g. control) reusability

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Requirements for successful reuse

[Gartner]

 Inventory (something to reuse ...)

 Catalog/repository & search

 Reuse administrator and facilitator

 A&D methodology incorporates reuse and design for reuse

 Design standards ensure consistency

 Measurement of reuse effectiveness

 Quality assurance

 Incentives to encourage reuse

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

CBSE - reasons for failure

[Gartner]

“Between 1999 and 2003 under 30 percent of first-generation corporate component investments will deliver the expected productivity improvements.”

Common component reuse mistakes:

 Undefinded goals of reuse

 Conflicts of purpose of components

 Uncertain future (business & technology)

 Inflexible components

 Turf wars

 Inadequate reuse infrastructure

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Sources of components

“Through 2002, components will be available from a wide variety of sources in an immature and exploding market with no dominant leaders.” [Gartner]

“We expect the market [for prebuilt components] to grow from about $1.4 billion in

1997 to more than $8 billion in 2002” [Gartner]

 SW-builder tool vendors

 modeling tool vendors

 open source community

 component standard groups

 component consortiums

 books

 web sites java.sun.com/beans/marketing.html

www.alphaworks.ibm.com

www.cbop.gr.jp

www.componentsource.com

www.developer.com

www.flashline.com

www.devtools.de

www.openavenue.com

www.pparadise.com

www.qbssoftware.com

www.sourceforge.com

www.theorycenter.com

www.xtras.com

...

ABB

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Part 6

Problems and research issues

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

CBSE research and the SW life-cycle

- certification

- team structure

- SW development process

- configuration management

Project Management

Quality Management

Analysis

Design

Implementation

Testing

Components

Deployment

Analysis

Design

Implementation

Testing

Deployment

Application

Analysis

Design

design for customization/ variability

- wrapping

- specification/contracts

development methods

- notations

storage - frameworks

documentation

Implementation

Testing

assembly

- finding

- trusting

distribution

- glue code

Deployment

run-time infrastructures

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

Contracts and documentation

Are more than interface method definitions

 How to specify?

 interfaces

 behavior (pre-/post conditions, invariants)

 dependencies (required interfaces)

 quality of service

 ???

 How to test/verify component specifications?

 How to document component specifications?

 How to negotiate service levels between components at runtime?

 How to automatically connect components in builder tools using their specification?

 How to verifiy the correctness of a composite system?

 ...

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

Design for reuse

Design for reuse requires additional effort

 What is the best level of reuse (component granularity)?

 How can the benefit of reuse be measured?

 Development and documentation of component usage patterns

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Repositories

are an enabling technology for CBSE

 How to store components?

 How to classify and describe components?

 How to find components?

 fast

 different aspects

 interfaces

 functionality

 component model

 certification level

 previous usage, trust

 multiobjective optimization

 negotiable requirements

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Software development process

 Current approach requirements - analyse - design - implementation - test

 CBSE approach must include

 reuse component selection

 component test

 requirements reconciliation

 component mining for reuse

 CBSE must be supported by

 modeling formalisms and tools

 development tools

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Organizational changes

“Through at least 2002, most IS organizations will be unable to achieve anticipated CBD payback due to factors such as undefined goals, conflicts of purpose, inflexibility in component design, domain scope or turf wars, and inadequate reuse infrastructure ” [Gartner]

 New mind-set: create -> construct

 Allocate reuse management staff (repository, training)

 Accept short term productivity reduction

 Accept new business model: first use of a component designed for reuse may not recover production cost

 More interdepartmental cooperation and trust necessary

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Developing a component market

Imperative feature for component success

 Have to establish framework for …?

 legal aspects (licensing and warranties)

 technical abilities

 economic forces

 Proven business case

 Repositories, precise descriptions and search engines

 Documentations and application support

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Versioning and configuration management

 Is more complex than usually (DLL hell)

 especially in dynamic environments

 Dependencies and composition constraints have to be resolved almost automatically

 consider systems comprising thousands of components

 How to do safe exchange of components e.g. upgrade, without contractual specification and proof?

 All of the issues above are prerequisite for uploading and downloading of components

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Security

 Requires trust and certification

 complicated by large group of (small) vendors

 ‘mobile code security’ important

 not user access control but code access control

 current mechanisms

 sandboxing: restricted functionality, restricted availability

 codesigning: not necessarily suitable to establish trust

 prove of problem origin

 difficulty of persecution

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Component models for embedded systems

 real-time requirements

 limited processing resources

 higher reliability requirement

 hot-swapping

 non-mainstream OSes

 definition of component (HW included?)

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Problems and research issues

 Contracts and documentation

 Design for reuse

 Repositories

 Software development process

 Organizational changes

 Developing a component market

 Versioning and configuration management

 Security

 Component models for embedded systems

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Part 7

Information sources

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Books

 Ivar Jacobson, Martin Griss, Patrik Jonsson: Software Reuse :

Architecture, Process, and Organization for Business Success

(1997)

 Desmond Francis D'Souza, Alan Cameron Wills: Objects,

Components, and Frameworks With Uml : The Catalysis Approach

(1998)

 Clemens Szyperski: Component Software : Beyond Object-Oriented

Programming : (1998)

 Peter Herzum and Oliver Sims: Business Component Factory : A

Comprehensive Overview of Component-Based Development for the Enterprise (1999)

 Alan W. Brown: Large-Scale Component-Based Development (2000)

 Betrand Meyer: Object-Oriented Software Construction , 2nd Edition

(2000)

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Journals

 IEEE Computer

 IEEE Software

 IEEE Internet Computing

 IEEE Transactions on Software Engineering

 IEEE Transactions on Computers

 ACM Transactions on Programming Languages and Systems languages and programming systems.

 ACM Transactions on Software Engineering and Methodology

 ACM Transactions on Computer Systems

 Software Development (www.sdmagazine.com)

 MSDN Magazine (msdn.microsoft.com/msdnmag)

 … all major SW development magazines

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Conferences

Scientific

 ACM Conference on Object-Oriented Programming, Systems, Languages, and

Applications (OOPSLA) (oopsla.acm.org)

 International Workshop on Component-Based Software Engineering

(www.sei.cmu.edu/cbs/cbse2000/index.html)

International Workshop on Component-Oriented Programming (WCOP)

(ecoop2000.unice.fr)

 IEEE Symposium on Engineering of Computer-Based

Systems (ECBS) (www.dcs.napier.ac.uk/ecbs)

 Symposium on Generative and Component-Based Software Engineering (wwwstja.transit-online.de/gcse/)

Technology of Object-Oriented Languages and Systems (TOOLS) (www.toolsconferences.com)

 International Conference on Software Engineering (ICSE)

 International Workshop on Software Specification and Design (IWSSD)

(www.ics.uci.edu/IRUS/iwssd)

 International Conference on Software Reuse (ICSR)

Trade

 Component Computing (www.tieturi.fi/coco99)

 Component Developer's and User's Forum (CDUF) (www.componentdevelopment.com) ABB

ABB Corporate Research

2000 ABB Corporate Research Ltd, Baden, Switzerland

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

Others

 http://www.cetus-links.org/

 http://www.designbycontract.com/

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Key researchers

Bertrand Meyer (Interactive Software Engineering; Monash University)

 Eiffel, design-by-contract, trusted components

 http://www.sd.monash.edu.au/~bertrand/

Clemens Szyperski (Oberon Microsystems; Microsoft; QUT)

 Book: “Component Software”

 http://www.research.microsoft.com/users/cszypers/

Jan Bosch (University of Karlskrona/Ronneby)

 SW architecture, product lines

 http://www.ipd.hk-r.se/bosch/

Heinz Schmidt (Monash University)

 trusted components

 http://www.csse.monash.edu.au/~hws/

Kurt Wallnau (SEI/CMU)

 COTS-based systems

 http://www.sei.cmu.edu/staff/kcw/

Oscar Nierstrasz (Uni Bern)

 SW composition; coordination models

 http://www.iam.unibe.ch/~oscar/

Oliver Sims

 Business objects

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

Thanks!!

Slides and content of this tutorial have partly been stolen from

 Microsoft

 Sun

 OPC Foundation

 OMG

 O. Preiss, ABB CHCRC

 C. Zeidler, ABB DECRC

 various unidentifiable sources

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

ABB Corporate Research

Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / ‹#›

2000 ABB Corporate Research Ltd, Baden, Switzerland

ABB

Download