Introduction to business component technologies. Component definitions Szyperski: A software component is a unit of composition with contractually specified.

Slides:



Advertisements
Similar presentations
Welcome to Middleware Joseph Amrithraj
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
Basic Concepts in Component-Based Software Engineering
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
IS6112 Application Modelling and Design Introduction.
Component Models and Technology Component-based Software Engineering
CBSD – Component Based Software Development - Introduction -
Introduction to Enterprise JavaBeans. Integrating Software Development Server-side Component Model Distributed Object Architecture –CORBA –DCOM –Java.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Enterprise Java Beans Welcome to the world of “Distributed System” Presented By: Sameer Nanda Date: 12/17/03.
Chapter 13 Physical Architecture Layer Design
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Component-Based Software Engineering CSM-15 Paul Krause.
Component Software: A New Software Engineering Course H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu Software Architecture Research Group.
INTRODUCING SCA Byungwook Cho Nov.2007.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
EJB Fundamentals Celsina Bignoli
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 13: Physical Architecture Layer Design Alan Dennis,
University of Utah SoCCS Lecture 61 Architecture – An Introduction CS Lecture 6 Nathan Dykman.
Component Models and Technologies Which one to choose What are their commonalities ? What are their differences ?
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
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 ?
J2EE Structure & Definitions Catie Welsh CSE 432
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Last update October 18, 2004 Advanced Programming 2004 Java Beans.
Component-based software architecture Overview Divides the problem into sub-problems each associated with component partitions. The interfaces of the components.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Slide 1 UML Review Chapter 2: Introduction to Object-Oriented Systems Analysis and Design with the Unified Modeling Language, Version 2.0 Alan Dennis,
Final presentation Simon Zambrovski Tutor: Muhammad Farhat Kaleem Design choices and strategies for implementing WS-BusinessActivity.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Plan  Introduction  What is Cloud Computing?  Why is it called ‘’Cloud Computing’’?  Characteristics of Cloud Computing  Advantages of Cloud Computing.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
CSC 532 Term Paper Presentation Hybrid approach to component based Engineering  Introduction.  Component based development (CBD).  Pros and Cons of.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Component Oriented Programming 1 Introduction to COP.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Notes from Coulouris 5Ed Distributed Systems Notes on Components.
CBSE Component Based Software Engineering cs. upt
HNDIT Rapid Application Development
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
Enterprise Computing Distribution and components.
Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.
EJB Enterprise Java Beans JAVA Enterprise Edition
Basic Characteristics of Object-Oriented Systems
EJB. Introduction Enterprise Java Beans is a specification for creating server- side scalable, transactional, multi-user secure enterprise-level applications.
IT 5433 LM1. Learning Objectives Understand key terms in database Explain file processing systems List parts of a database environment Explain types of.
A service Oriented Architecture & Web Service Technology.
Module 4. Component Software 4.2 Introduction
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
Distribution and components
Introduction to J2EE Architecture
Inventory of Distributed Computing Concepts and Web services
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Introduction to Enterprise JavaBean
Inventory of Distributed Computing Concepts
Component--based development
Chapter 20 Object-Oriented Analysis and Design
Developing and testing enterprise Java applications
Quality Assurance for Component-Based Software Development
WEB SERVICES From Chapter 19, Distributed Systems
Presentation transcript:

Introduction to business component technologies

Component definitions Szyperski: A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties D'Souza and Wills: A software component is a coherent package of software artefacts that can be independently developed and delivered as a unit and that can be composed, unchanged, with other components to build something larger UML v2.4: A component represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment More definitions: Business components2

Context dependencies Component may require security, transaction, logging and other middleware services provided by component container (aka component framework) Component may require other components to be made available (required interface) Business components3

Problem with these definitions Definitions above are correct, but they do not stress differences between a component and a class: public class Component implements Interface {... } Business components4

Essential characteristics of a component Component Oriented Development in OSGi with Declarative Services, Spring Dynamic Modules and Apache iPOJO, Neil Bartlett, Heiko Seeberger, 2009 May provide services to other components and use services from other components Have a life cycle Active participants in the system They need middleware services, such as transactions, security, logging, etc. Characteristic of future component technologies: Aware of and adapt to their environment Business components5

Old analogy Component Oriented Development in OSGi with Declarative Services, Spring Dynamic Modules and Apache iPOJO, Neil Bartlett, Heiko Seeberger, 2009 inactive do not provide/use services no life-cycle do not adopt to environment Business components6

New analogy Component Oriented Development in OSGi with Declarative Services, Spring Dynamic Modules and Apache iPOJO, Neil Bartlett, Heiko Seeberger, 2009 Business components7

How to distinguish a component from a class? Components cannot live without special environment called container container instantiates components and controls their life- cycle container (not programmer!) binds components together (required interfaces with provided interfaces) container provides services to components Instances of a component are created by container, never by programmer itself (operator new is prohibited) Conversely, instances of classes are created by programmer using operator new. Later we will look at components in more details (slides about modules and components) Business components8

Distributed Object Technology – fundamentals for component technologies Business components9

Concepts: business logic and middleware Business logic models real life business objects (such as accounts, loan, and inventories) prescribes how business objects interact with one another enforces the routes and the methods by which business objects are accessed and updated is part of functional requirements creates essential added value that client is willing to pay for. Middleware - software that provides services to applications beyond those available from the operating system For example: transactions, logging, security, messaging, etc. if is mentioned in requirements document then only as part of non-functional requirements; often is assumed as matter-of-course and not documented at all. Business components10

Explicit middleware Money transfer between two accounts: void transfer(Account account1, Account account2, long amount) { 1: Perform a security check 2: Create audit log record 3: Start a transaction 4: Load data from the database 5: account1 -= amount; account2 += amount; 6: Store updated data to the database 7: Commit the transaction } Business logic is intertwined with the logic to call middleware services Lowers developer productivity, difficult to write and maintain. Business components11

Implicit middleware Programmer writes only business logic: void transfer(Account account1, Account account2, long amount){ account1 -= amount; account2 += amount; } If middleware services are needed, we declare that, for example, in: XML file, annotations. Middleware services are called by component container with the help of request interceptor. Business components12

Business components13

Main Conclusions Component-based technologies enable us to separate business logic from middleware services Provide means to apply Separation-of-Concerns principle in practiceSeparation-of-Concerns Client never communicates with component instance directly – there always will be intermediary (request interceptor, proxy, etc.) Sometimes even more than one intermediary Business components14

Modern business component technologies Enterprise JavaBeans (EJB) OSGi Enterprise pdf pdf CORBA Component Model (CCM) Microsoft Application Platform Book: Microsoft Application Architecture Guide, 2nd Edition Component Guidelines Designing Business Components Business components15