Component Models and Technology Component-based Software Engineering

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Advertisements

Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson.
Component-based Software Engineering Marcello Bonsangue LIACS – Leiden University Fall 2005 Component Model Comparison.
Based on: Chapter 4 from: [Crnkovic] Ivica Crnkovic, Magnus Larsson, “Building reliable component- based software systems”, Artech publishing house, 2002.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
Distributed Systems Architectures
ISYS 546 Client/Server Database Application Development.
BICS546 Client/Server Database Application Development.
Persistent State Service 1 CORBA Component  Component model  Container programming model  Component implementation framework  Component packaging and.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Page 1 Building Reliable Component-based Systems Chapter 18 - A Framework for Integrating Business Applications Chapter 18 A Framework for Integrating.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Page 1 Building Reliable Component-based Systems Chapter 4 - Component Models and Technology Chapter 4 Component Models and Technology.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
Intro to dot Net Dr. John Abraham UTPA – Fall 09 CSCI 3327.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
ISYS 512 Business Application Design and Development with.Net David Chao.
VS.NET Syllabus By Peter Huang.
© 2008 Dr. Paul Walcott – The University of the West Indies: Cave Hill CampusDr. Paul Walcott COMP6325 Advanced Web Technologies Dr. Paul Walcott The University.
J2EE /.NET Liz Farricker Whitney Mayoras Patrick Bailey.
Session 1 - Introduction and Data Access Layer
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
Introduction to .NET Rui Ye.
Chapter 3: Objects, Components, and the Web Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt September.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Introduction to J2EE Architecture Portions by Kunal Mehta.
第十四章 J2EE 入门 Introduction What is J2EE ?
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Component-based software architecture Overview Divides the problem into sub-problems each associated with component partitions. The interfaces of the components.
JavaBeans Components. To understand JavaBeans…  Proficient experience with the Java language required  Knowledge of classes and interfaces  Object-Oriented.
1 of of 25 3 of 25 ORBs (Object Request Broker) – A distributed software bus for communication among middleware services and applications – To.
Component-Based Software Engineering Introduction to.NET Paul Krause.
Unit 7 Patterns and Frameworks. Key Concepts Design classes Components Design architectures EAD Patterns Packages Frameworks.
Page 1 Component models Component Models and Technology Component-based Software Engineering Ivica Crnkovic Ivica Crnkovic
Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Ch 2 – Application Assembly and Deployment COSC 617 Jeff Schmitt September 14, 2006.
OpenCCM MdC Philippe Merle LIFL - INRIA (soon)
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
1 Java EE Programming Enterprise JavaBeans. 2 Topics J2EE Overview Enterprise JavaBeans Overview Enterprise Entity Beans Case Study How to build them.
Module 1: Getting Started. Introduction to.NET and the.NET Framework Exploring Visual Studio.NET Creating a Windows Application Project Overview Use Visual.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
ProActive components and legacy code Matthieu MOREL.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Introduction to business component technologies. Component definitions Szyperski: A software component is a unit of composition with contractually specified.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
©NIIT Introducing Enterprise JavaBeans (EJB) Lesson 1A / Slide 1 of 43J2EE Server Components Objectives In this lesson, you will learn about: The features.
Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer.
.NET Omid Darroudi.
Distribution and components
Introduction to J2EE Architecture
Module 1: Getting Started
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
The OMG Approach (continued)
Inventory of Distributed Computing Concepts and Web services
Applying Domain-Specific Modeling Languages to Develop DRE Systems
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Component--based development
Quality Assurance for Component-Based Software Development
Presentation transcript:

Component Models and Technology Component-based Software Engineering Ivica Crnkovic ivica.crnkovic@mdh.se Component models Page 1

Overview Introduction ACME Architectural Description Language Java Bean Component Model COM, DCOM, MTS and COM+ CORBA Component Model (CCM) .NET Component Model OSGI Component Model Component models Page 2

Architecture 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. Component models Page 3

ACME Architectural Description Language Components and Ports Connectors and Roles Systems and Attachments Representations and Bindings Properties, Constraints, Types and Styles Component models Page 4

Components 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 Component models Page 5

Connectors 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 Component models Page 6

Systems 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 Component models Page 7

Representations and Bindings Component Connector Port Role Attachement Binding Component models Page 8

Component Interactions Iteractions with traditional software entities Traditional software entities Interactions with other components Interactions with other components Components Component Infrastructure Interactions with component infrastructure Component models Page 9

Java Bean Component Model Component models Page 10

Key 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. Component models Page 11

Interface of a Component This model defines four types of port: methods, properties, event sources (generate an event) event sinks called listeners (they receive event) Property Read-only property ro Method Write-only property wo Event source Unicast event source 1 Event sink (listener) Bounded property Vetoable property v Ports Component models Page 12

Implementation of a Component Most bean components are implemented by a simple Java object by naming convention Object Method A simple implementation Component models Page 13

Components 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. Heterogeneous assembly Component-based assembly Component models Page 14

Packaging 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. Component models Page 15

Enterprise JavaBeans EJB Server EJB Container EJB client Enterprise Architecture for distributed applications Framework for creating middleware EJB Server EJB Container EJB client Enterprise bean Clients accesses JBs via containers Component models Page 16

EJB Servers Analogous to CORBA ORB Naming and directory interface (JNDI) Client finds EJB via JNDI JTS Java Transaction Services Component models Page 17

COM/DCOM Component models Page 18

Interfaces 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. Interface Component interface Component implementation Component models Page 19

Implementation 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 Component models Page 20

Composition Two type of explicit composition Delegation Aggregation For aggregation source code is needed Component models Page 21

CORBA Component Model (CCM) Component models Page 22

OMA Overview OMA–Object Management Architecture CORBAapps CORBAdomains CORBAfacilities CORBA (Common Object Request Broker Architecture) This is the Object Management Architecture. It is not read top-down or bottom-up, but rather inside-out: The most important component is the Object Request Broker (ORB). This is responsible for providing access to clients and servers to discover objects (applications), discover their interfaces, make requests and receive responses. Everything else in the architecture is an object, communicating with other objects via the ORB. We categorize objects into three groups based on one criterion: when the standardization process will get to them: Object Services are the low-level services that must be available on all platforms in a distributed system (e.g., lifecycle); Common Facilities are the commonly-found services in particular distributed systems (e.g., email, print queueing); Application Objects are the high-level applications themselves (e.g., spreadsheets, word processors, programmable controllers). Transactions Event Security Naming CORBAservices Component models Page 23

Interface 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 Attribute Facet Receptacle Segment Event source Event sink Component interface Ports Component implementation Component models Page 24

Framework : The Container Approach Framework – a set of containers. Containers contains components and provides a set of standard services (security, events, persistence, life-cycle support) container CCM run-time infrastrucure Component models Page 25

:NET Component models Page 26

What is .NET? NET is a platform that enables: Software as services, especially over the web Distributed computing Componentization Enterprise services Component models Page 27

Common Language Specification Common Language Runtime .NET Platform VB C++ C# JScript … Visual Studio.NET Common Language Specification ASP.NET Windows Forms ADO.NET and XML Base Class Library Common Language Runtime Operating Systems Component models Page 28

.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 Component models Page 29

.NET Component Model - Implementation A component (assembly) is made of modules, which are traditional executable files (DLL). Modules cannot be assemblies, thus the .NET model is not hierarchical. Attribute Method Event source Modules Component interface Ports Component implementation Component models Page 30

Framework .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. Component models Page 31

Lifecycle 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. Component models Page 32

Other component models OSGI Component Model KOALA component model IEC 61131-3 standard languages (functional blocks) Real-time components Component models Page 33

A Koala Component Subcomponent Interfaces A switch A module CC C1 C2 Component models Page 34

OSGI Component Model Components Interface of a Bundle Component Assembly of Bundle Components Implementation of a Bundle Component Component models Page 35

Components A bundle use three kinds of ports to express its interactions with Traditional technology Other components The run-time environment Bundles may listen to events published by the framework such as the insertion of a new component in a system. Component models Page 36

Interface of a Bundle Component Package export static Package import Service interface dynamic Service use Ports Interface of a bundle component Component models Page 37

Assembly of Bundle Components A system is an evolving set of bundle components. A bundle component publishes a service interface It can attach to it a set of properties describing its characteristics. A component requires an interface for its use, It will select one via a query expression based on these properties. This flexibility also has its counterpart There is no guarantee than the service will continue to be available Component models Page 38

Implementation of a Bundle Component JAR archive containing:  Service components Java packages Other resources files Package Resource Service component Activator Component models Page 39