Page 1 Component models Component Models and Technology Component-based Software Engineering Ivica...

34
Page 1 Component models Component Models and Technology Component Models and Technology Component-based Software Component-based Software Engineering Engineering Ivica Crnkovic Ivica Crnkovic [email protected]
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    225
  • download

    0

Transcript of Page 1 Component models Component Models and Technology Component-based Software Engineering Ivica...

Page 1Component models

Component Models and TechnologyComponent Models and Technology

Component-based Software EngineeringComponent-based Software Engineering Ivica CrnkovicIvica Crnkovic

[email protected]

Page 2Component models

OverviewOverview

Introduction

ACME Architectural Description Language

Java Bean Component Model

COM, DCOM, MTS and COM+

CORBA Component Model (CCM)

.NET Component Model

OSGI Component Model

Page 3Component models

Architecture Definition LanguagesArchitecture Definition Languages

ADLs primarily address the issues related to the early phases of software engineering:

Design

Analysis

They identify a number of concepts, such as:

Architecture, configurations, connectors, bindings, properties, hierarchical models, style, static analysis and behavior.

Page 4Component models

ACME Architectural Description LanguageACME Architectural Description Language

Components and Ports

Connectors and Roles

Systems and Attachments

Representations and Bindings

Properties, Constraints, Types and Styles

Page 5Component models

Components and PortsComponents and Ports

Components

Represent the computational elements and data stores of a system.

Ports

Are the points of interaction between a component and its environment.

ComponentPort

Page 6Component models

Connectors and RolesConnectors and Roles

Connectors

Represent interactions between components such as method calls or an SQL connection between a client and a database server.

The interface of a connector is defined as a set of roles

Connector

Role

Page 7Component models

Systems and AttachmentsSystems and Attachments

The structure of a system is specified by a set of components, a set of connectors, and a set of attachments.

Attachment

Links a component port to a connector role.

Attachement

Page 8Component models

Representations and BindingsRepresentations and Bindings

Connector

Component

PortRole

AttachementBinding

Page 9Component models

Component InteractionsComponent Interactions

Iteractions withtraditional software entities

Interactions withother

components

Interactions withother

components

Interactions withcomponent infrastructure

Components

Traditional software entities

Component Infrastructure

Page 10Component models

Java Bean Component ModelJava Bean Component Model

Page 11Component models

Key FeaturesKey Features

"A Java Bean is a reusable software component that can be manipulated visually in a builder tool”.

The Java Bean was designed for the construction of graphical user interface (GUI).

Explicitly tailored to interact in two different contexts:

At composition time, within the builder tool.

At execution time, with the runtime environment.

Any Java class that adheres to certain conventions regarding property and event interface definitions can be a JavaBean.

Beans are Java classes that can be manipulated in a visual builder tool and composed into applications.

Page 12Component models

Interface of a ComponentInterface of a Component

This model defines four types of port:

methods,

properties,

event sources (generate an event)

event sinks called listeners (they receive event)

Read-only property

Write-only property

Property

Method

Event source

Event sink (listener)

Bounded property

v Vetoable property

ro

wo

1 Unicast event source

Ports

Page 13Component models

Implementation of a ComponentImplementation of a Component

Most bean components are implemented by a simple Java object by naming convention

Object

Method

A simple implementation

Page 14Component models

Components AssemblyComponents Assembly

Assembly is one of the key features of Java Bean though no not specific solution is provided.

Composition tools (Bean Box)

No composition language

Different ways of assembling components are supplied.

Component-based assembly Heterogeneous assembly

Page 15Component models

Packaging and DeploymentPackaging and Deployment

Java Beans define a model for packaging components into archives.

Includes the definition of dependency relationships between the package items.

Each package item can be marked "Design Only", so that they can be removed in a final application.

Page 16Component models

Enterprise JavaBeansEnterprise JavaBeans

Architecture for distributed applications

Framework for creating middleware

EJB Server

EJB Container

Enterprisebean

EJBclient

Clients accesses JBs via containers

Page 17Component models

EJB ServersEJB Servers

Analogous to CORBA ORB

Naming and directory interface (JNDI)

Client finds EJB via JNDI

JTS

Java Transaction Services

Page 18Component models

COM/DCOMCOM/DCOM

Page 19Component models

Interfaces and AssemblyInterfaces and Assembly

A COM interface is seen as a C++ virtual class and takes the form of a list of data and function declarations without associated code.

All interfaces are descendants of the IUnknown interface.

Component interface

Interface

Component implementation

Page 20Component models

ImplementationImplementation

COM defines a binary standard for interfaces

Language independent implementation of the interfaces

Interfaces are defined in Interface Definition Language (IDL)

An interface has an GUID as an identifier

IUnknown

IDispatch

Page 21Component models

CompositionComposition

Two type of explicit composition

Delegation

AggregationFor aggregation source code is needed

Page 22Component models

CORBA Component Model (CCM)CORBA Component Model (CCM)

Page 23Component models

CORBA (Common Object Request Broker Architecture)

CORBAapps CORBAdomains CORBAfacilities

CORBAservices

OMA OverviewOMA Overview

TransactionsTransactions EventEvent SecuritySecurity NamingNaming

OMA–Object Management Architecture

Page 24Component models

Interface and AssemblyInterface and Assembly

A component interface is made of ports divided into:

Facets - for interaction with clients

Receptacles – references o external code

Event sources

Event sinks

Component interface

AttributeFacet

Event source

Event sink

Ports

Receptacle Segment

Component implementation

Page 25Component models

Framework : The Container ApproachFramework : The Container Approach

Framework – a set of containers. Containers contains components and provides a set of standard services (security, events, persistence, life-cycle support)

CCM run-time infrastrucure

container

Page 26Component models

:NET:NET

Page 27Component models

What is .NET?What is .NET?

NET is a platform that enables:

Software as services, especially over the web

Distributed computing

Componentization

Enterprise services

Page 28Component models

.NET Platform .NET Platform

Operating Systems

Common Language Runtime

Base Class Library

ADO.NET and XML

ASP.NET Windows Forms

Common Language Specification

VB C++ C# JScript …V

isual S

tud

io.N

ET

Page 29Component models

.NET Framework Components.NET Framework Components

Common Language Runtime (CLR)

Common type system for all languages

Runtime environment

Class libraries (.NET Framework)

Base class libraries, ADO.NET and XML

Windows Forms for, Win32 applications

Web application platform ASP.NET

Interactive pages

Web services that are SOAP enabled

Page 30Component models

.NET Component Model - .NET Component Model - ImplementationImplementation

A component (assembly) is made of modules, which are traditional executable files (DLL).

Modules cannot be assemblies, thus the .NET model is not hierarchical.

Component interface

Attribute

Method

Event source

Ports Component implementation

Modules

Page 31Component models

FrameworkFramework

.NET relies on the traditional programming approach : the framework is seen as the language run-time support.

MISL – Microsoft Intermediate language (similar to Java Byte code)

Common Runtime Language (similar to Java Virtual Machine)

Transaction control relies on MTS.

Page 32Component models

LifecycleLifecycle

Assemblies (and their modules) are local to an application, and thus different DLLs with same name can run simultaneously.

Each assembly has a versioning information about itself and about the assemblies it depends on.

Version control is delegated to the dynamic loader, which selects the “right” version.

Significantly improve the application packaging and deployment.

Page 33Component models

Other component modelsOther component models

OSGI Component Model

KOALA component model

IEC 61131-3 standard languages (functional blocks)

Real-time components

Page 34Component models

CC

C2

C1

C3

ms

A Koala ComponentA Koala Component

A module

A switchInterfaces

Subcomponent