Shubham Choudhary – 2k11/SE/70
Siddharth Malhotra – 2k11/
Payal Narang – 2k11/SE/48
Component Models and TechnologyComponent Models and Technology
Page 2
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 3
Component Interface and ConnectionsComponent Interface and Connections
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 4
Component InteractionsComponent Interactions
Iteractions with
traditional software entities
Interactions
with
other
components
Interactions
with
other
components
Interactions with
component infrastructure
Components
Traditional
software
entities
Component
Infrastructure
Page 5
Majors steps in CBD lifecycleMajors steps in CBD lifecycle
Aspect Phase Actor
Interface Definition Designer
Assembly Assembly Architect
Implementation Implementation Developer
Lifecycle Packaging,
Deployment
Administrator
Framework,
run-time support
Execution End User
Page 6
Component ArchitectureComponent Architecture
A component architecture is a system defining the
rules of linking components together.
A standard component model includes definitions for
the following (WebSphere Advisor 2000)
•How each component must make its services
available to others?
•How to connect one component to another.
•Which common utility services can be assumed to be
provided by the infrastructure supporting the
component model?
•How new components announce their availability to
others?
Page 7
Component ArchitectureComponent Architecture
Component Architecture Principles
Component architecture is a set of principles and rules
according to which a software system is designed and
built with the use of components.
It must be independent from the business domain or
the technology of the application.
Page 8
Component ArchitectureComponent Architecture
The component architecture covers three aspects of aThe component architecture covers three aspects of a
software system. These are:software system. These are:
•Building blocks: The architecture specifies the type ofBuilding blocks: The architecture specifies the type of
building blocks systems are composed of.building blocks systems are composed of.
•Construction of the software system: The architectureConstruction of the software system: The architecture
specifies how the building blocks are joined togetherspecifies how the building blocks are joined together
when developing an 10 application. The architecturewhen developing an 10 application. The architecture
describes the role that the building blocks play in thedescribes the role that the building blocks play in the
system.system.
•Organisation: Components are divided in categoriesOrganisation: Components are divided in categories
based on their functionality.based on their functionality.
Page 9
Component InterfaceComponent Interface
The component interface is a set of methodsThe component interface is a set of methods
supported by a component, and type definitions for thesupported by a component, and type definitions for the
data used for arguments to those methods. Andata used for arguments to those methods. An
interface itself is a type and can be an argument for ainterface itself is a type and can be an argument for a
component method.component method.
An Interface Definition Language understandable to allAn Interface Definition Language understandable to all
components. Interface definitions expressed in acomponents. Interface definitions expressed in a
language allow components to find out about eachlanguage allow components to find out about each
other either through introspection or throughother either through introspection or through
consulting a repository, and give componentconsulting a repository, and give component
architecture the potential to dynamically add andarchitecture the potential to dynamically add and
delete components in multi-component applicationsdelete components in multi-component applications
Page 10
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 11
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.
Component
Port
Page 12
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 13
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 14
Representations and BindingsRepresentations and Bindings
Connector
Component
Port
Role
Attachement
Binding
Page 15
Java Bean Component ModelJava Bean Component Model
Key Features
Interface of a Component
Implementation of a Component
Components Assembly
Packaging and Deployment
Page 16
Key FeaturesKey Features
Bean Box
"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.
Page 17
Interface of a ComponentInterface of a Component
This model defines four types of port:
methods,
properties,
event sources and
event sinks called listeners.
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 18
Implementation of a ComponentImplementation of a Component
Most bean components are implemented by a simple
Java object, the object being encapsulated in the
component, but there are more sophisticated
implementations possible.
Wrapping a legacy object.
Multiple-objects implementation.
Dependency on traditional entities.
Page 19
Implementations of Bean ComponentsImplementations of Bean Components
Object
Method
Method call
Binding
A simple implementation A more complex implementation
Page 20
Components AssemblyComponents Assembly
Assembly is one of the key features of Java Bean
though no not specific solution is provided.
Different ways of assembling components are supplied.
Component-based assembly Heterogeneous assembly
Page 21
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.
The customization code can be more complex than the
component itself!
Each package item can be marked "Design Only", so
that they can be removed in a final application.
Thank you
Page 22
Building Reliable Component-based Systems
Chapter 4 - Component Models and Technology

Cbt component based technology architectures

  • 1.
    Shubham Choudhary –2k11/SE/70 Siddharth Malhotra – 2k11/ Payal Narang – 2k11/SE/48 Component Models and TechnologyComponent Models and Technology
  • 2.
    Page 2 OverviewOverview Introduction ACME ArchitecturalDescription Language Java Bean Component Model COM, DCOM, MTS and COM+ CORBA Component Model (CCM) .NET Component Model OSGI Component Model
  • 3.
    Page 3 Component Interfaceand ConnectionsComponent Interface and Connections 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.
  • 4.
    Page 4 Component InteractionsComponentInteractions Iteractions with traditional software entities Interactions with other components Interactions with other components Interactions with component infrastructure Components Traditional software entities Component Infrastructure
  • 5.
    Page 5 Majors stepsin CBD lifecycleMajors steps in CBD lifecycle Aspect Phase Actor Interface Definition Designer Assembly Assembly Architect Implementation Implementation Developer Lifecycle Packaging, Deployment Administrator Framework, run-time support Execution End User
  • 6.
    Page 6 Component ArchitectureComponentArchitecture A component architecture is a system defining the rules of linking components together. A standard component model includes definitions for the following (WebSphere Advisor 2000) •How each component must make its services available to others? •How to connect one component to another. •Which common utility services can be assumed to be provided by the infrastructure supporting the component model? •How new components announce their availability to others?
  • 7.
    Page 7 Component ArchitectureComponentArchitecture Component Architecture Principles Component architecture is a set of principles and rules according to which a software system is designed and built with the use of components. It must be independent from the business domain or the technology of the application.
  • 8.
    Page 8 Component ArchitectureComponentArchitecture The component architecture covers three aspects of aThe component architecture covers three aspects of a software system. These are:software system. These are: •Building blocks: The architecture specifies the type ofBuilding blocks: The architecture specifies the type of building blocks systems are composed of.building blocks systems are composed of. •Construction of the software system: The architectureConstruction of the software system: The architecture specifies how the building blocks are joined togetherspecifies how the building blocks are joined together when developing an 10 application. The architecturewhen developing an 10 application. The architecture describes the role that the building blocks play in thedescribes the role that the building blocks play in the system.system. •Organisation: Components are divided in categoriesOrganisation: Components are divided in categories based on their functionality.based on their functionality.
  • 9.
    Page 9 Component InterfaceComponentInterface The component interface is a set of methodsThe component interface is a set of methods supported by a component, and type definitions for thesupported by a component, and type definitions for the data used for arguments to those methods. Andata used for arguments to those methods. An interface itself is a type and can be an argument for ainterface itself is a type and can be an argument for a component method.component method. An Interface Definition Language understandable to allAn Interface Definition Language understandable to all components. Interface definitions expressed in acomponents. Interface definitions expressed in a language allow components to find out about eachlanguage allow components to find out about each other either through introspection or throughother either through introspection or through consulting a repository, and give componentconsulting a repository, and give component architecture the potential to dynamically add andarchitecture the potential to dynamically add and delete components in multi-component applicationsdelete components in multi-component applications
  • 10.
    Page 10 ACME ArchitecturalDescription LanguageACME Architectural Description Language Components and Ports Connectors and Roles Systems and Attachments Representations and Bindings Properties, Constraints, Types and Styles
  • 11.
    Page 11 Components andPortsComponents 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. Component Port
  • 12.
    Page 12 Connectors andRolesConnectors 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
  • 13.
    Page 13 Systems andAttachmentsSystems 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
  • 14.
    Page 14 Representations andBindingsRepresentations and Bindings Connector Component Port Role Attachement Binding
  • 15.
    Page 15 Java BeanComponent ModelJava Bean Component Model Key Features Interface of a Component Implementation of a Component Components Assembly Packaging and Deployment
  • 16.
    Page 16 Key FeaturesKeyFeatures Bean Box "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.
  • 17.
    Page 17 Interface ofa ComponentInterface of a Component This model defines four types of port: methods, properties, event sources and event sinks called listeners. 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
  • 18.
    Page 18 Implementation ofa ComponentImplementation of a Component Most bean components are implemented by a simple Java object, the object being encapsulated in the component, but there are more sophisticated implementations possible. Wrapping a legacy object. Multiple-objects implementation. Dependency on traditional entities.
  • 19.
    Page 19 Implementations ofBean ComponentsImplementations of Bean Components Object Method Method call Binding A simple implementation A more complex implementation
  • 20.
    Page 20 Components AssemblyComponentsAssembly Assembly is one of the key features of Java Bean though no not specific solution is provided. Different ways of assembling components are supplied. Component-based assembly Heterogeneous assembly
  • 21.
    Page 21 Packaging andDeploymentPackaging and Deployment Java Beans define a model for packaging components into archives. Includes the definition of dependency relationships between the package items. The customization code can be more complex than the component itself! Each package item can be marked "Design Only", so that they can be removed in a final application.
  • 22.
    Thank you Page 22 BuildingReliable Component-based Systems Chapter 4 - Component Models and Technology