Component Based Software Development with Java Andrew K Lui School of Science and Technology Open University of Hong Kong.

Slides:



Advertisements
Similar presentations
EDUC4417 Senior Computers Dr. Mumbi Kariuki January 28, 2004 Object-Orientation David Cuillerier.
Advertisements

P SATel Institute for Information Processing University of Pisa SantAnna school Pisa Today trends in Software Engineering 1. Distributed Objects 2. Component.
J0 1 Marco Ronchetti - Basi di Dati Web e Distribuite – Laurea Specialistica in Informatica – Università di Trento.
COM vs. CORBA.
Component Oriented Programming 1 Chapter 2 Theory of Components.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 3 – Building.
University of British Columbia Software Practices Lab Introduction to Middleware for Software Engineering Eric Wohlstadter 539D.
IS6112 Application Modelling and Design Introduction.
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
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.
- 1 - Component Based Development R&D SDM Theo Schouten.
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.
Course Instructor: Aisha Azeem
UNIT-V The MVC architecture and Struts Framework.
Component Software: A New Software Engineering Course H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu Software Architecture Research Group.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
J2EE /.NET Liz Farricker Whitney Mayoras Patrick Bailey.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
International Workshop on Web Engineering ACM Hypertext 2004 Santa Cruz, August 9-13 An Engineering Perspective on Structural Computing: Developing Component-Based.
Tiny Components – a collection of initial ideas copyright © 2003 Tiny Components Tiny Components A Component Model for Small, Embedded or Mobile devices.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
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 Java Beans Part I Kyungmin Cho 2001/04/10.
©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.
第十四章 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.
1 of of 25 3 of 25 ORBs (Object Request Broker) – A distributed software bus for communication among middleware services and applications – To.
January 25, 2006copyright Thomas Pole , all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by.
R R R 1 Frameworks III Practical Issues. R R R 2 How to use Application Frameworks Application developed with Framework has 3 parts: –framework –concrete.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
CORBA IS 8030 – Integrated Computing Environments Dr. Hoganson CORBA Common Object Request Broker Architecture Published by Object Management Group (OMG)
OpenCCM MdC Philippe Merle LIFL - INRIA (soon)
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
SOA support in J2EE Platform overview Primitive SOA support Support for service-orientation principles Contemporary SOA support.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
Kemal Baykal Rasim Ismayilov
Notes from Coulouris 5Ed Distributed Systems Notes on Components.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CBSE Component Based Software Engineering cs. upt
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.
Enterprise Computing Distribution and components.
©NIIT Introducing Enterprise JavaBeans (EJB) Lesson 1A / Slide 1 of 43J2EE Server Components Objectives In this lesson, you will learn about: The features.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
A service Oriented Architecture & Web Service Technology.
.NET Omid Darroudi.
Part II Software When developing software there are several particularities to be aware of: Java is widespread used because of the platform independence.
Part 3 Design What does design mean in different fields?
Rapid Application Development Model
Enterprise Java Bean. Overview of EJB View of EJB Conversation Roles in EJB, Types of Enterprise Beans Lifecycle of Beans Developing Applications using.
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
Small Components A collection of initial ideas for a component model for small, embedded or mobile devices Markus Völter
Komponentbasert utvikling Den sanne objektorientering
JavaServer Faces: The Fundamentals
Quality Assurance for Component-Based Software Development
Introduction to SOA and Web Services
Seminarium on Component-based Software Engineering
Presentation transcript:

Component Based Software Development with Java Andrew K Lui School of Science and Technology Open University of Hong Kong

Andrew K Lui (Open University of Hong Kong)2 A Strange World OS Mouse

Andrew K Lui (Open University of Hong Kong)3 Crisis in Software Industry CostFlexibilityQualityTime

Andrew K Lui (Open University of Hong Kong)4 A Perennial Problem? Software engineering - formal methods, verification, testing, programming language - reuse, frameworks and libraries

Andrew K Lui (Open University of Hong Kong)5 Component Based Software - old wine in new bottle. - breaking a system into reusable modules, components, sub-systems… - facilitating system integration, reuse of design, testing and product evolution.

Andrew K Lui (Open University of Hong Kong)6 Benefits C F Q T A Software System Pre-fabricated Components

Andrew K Lui (Open University of Hong Kong)7 In the Real World The software industry has readily embraced CBSD. Flashline ( Javabeans/COM/ActiveX Vbxtras ( Visual Basic Component Source ( Java/COM/C++/Delphi/VisualStudio $

Andrew K Lui (Open University of Hong Kong)8 The Industry Says … “… companies can spend $1000 on a software component instead of $ on development resources.” Sam Patterson (CEO ComponentSource) “… These less skilled developers can ‘assemble’ components that were built by higher skilled developers … It is a solution to the skills shortage.” Tom Dwyer (Research Directory EJB Aberdeen G)

Andrew K Lui (Open University of Hong Kong)9 The Academic Says … “Working programmers are well aware of this last revolution … Academic researchers are doing little or nothing … The revolution has already happened, and in the academic community, nobody came.” Peter Maurer (USF) 2000 in IEEE Computer

Andrew K Lui (Open University of Hong Kong)10 What contributed to the Buzz? According to Meyer and Mingins (IEEE Computer 1999) The current excitement about CBSD results from … ScientificIndustrial PoliticalOO Technology Monolithic Systems (Stovepipes)

Andrew K Lui (Open University of Hong Kong)11 Clashes of Views Industry Component Providers Political Bodies Standard/Technology Custodians Main Concern Interconnecting technology for components. Component An abstract business process. Output Architectures, frameworks, standards, reference implementations Main Concern Creation and sale of components of various base technologies Component An unit of reuse for a business domain Output Identifying specific business process -> components.

Andrew K Lui (Open University of Hong Kong)12 Component Definitions So what is a component after all? “1. A unit of independent deployment; 2. A unit of third party composition; 3. Has no persistent state.” C Szyperski Component is the next thing after objects...

Andrew K Lui (Open University of Hong Kong)13 Component Definitions “ … prepackaged generic elements” B. Meyer & C. Mingins It is absurd … (that) CBD is the next thing beyond object. OO … provides the only serious technical basis...

Andrew K Lui (Open University of Hong Kong)14 A Holistic View of CBSD Component Language Platform Interface Granularity Domain Component Application Integration Environment Composition/Integration Tools Component Repository Component Contract/Metadata Runtime Environment Interconnecting Technology Resource Management

Andrew K Lui (Open University of Hong Kong)15 Component Environment A component is tightly coupled to its native environment. ComponentEnvironment

Andrew K Lui (Open University of Hong Kong)16 Application Integration Environment CBSD Process Runtime Environment Component interface, contract, instantiation Component

Andrew K Lui (Open University of Hong Kong)17 May I Join the Club? Yes, and there is no application fees. Consider whether CBSD can benefit your work/project. Paying a higher upfront cost for higher reusability and extensibility.

Andrew K Lui (Open University of Hong Kong)18 Java as a CBSD Environment JavaBean - Toolable components. RMI/CORBA - Distributed components. Jini/Serialization - Mobile components. Messaging Middleware - Loosely-coupled components.

Andrew K Lui (Open University of Hong Kong)19 JavaBeans - Introspection distinguishes JavaBeans from ordinary Java classes. Who are you? What can I do to you? What would you do if I …? What can I change on you? Bean

Andrew K Lui (Open University of Hong Kong)20 Toolable JavaBeans Container Bean events properties java.lang.reflect java.beans java.awt.events

Andrew K Lui (Open University of Hong Kong)21 Connecting JavaBeans Bean Javabeans are connected by hooking properties and event handling. Bean emitting an event setting properties

Andrew K Lui (Open University of Hong Kong)22 Example - Image library client QueryInputSubmitBeanQueryBean QuerySpecification TextboxButton SubmitEvent QueryInput 2 QuerySpecification Image Library

Andrew K Lui (Open University of Hong Kong)23 Visual Appearance submit query input

Andrew K Lui (Open University of Hong Kong)24 JavaBean Tools Inprise (Borland) Jbuilder IBM VisualAge Symantec Visual Cafe

Andrew K Lui (Open University of Hong Kong)25 JavaBean Component Model Visual oriented. Stateful. Introspectual. Event driven. Design Pattern Defined. Method naming. Event naming. BeanInfo class.

Andrew K Lui (Open University of Hong Kong)26 Distributed Components JavaBean integration technique is local. Java supports distributed computing in RMI/CORBA How to extend JavaBean model to work with distributed computing.

Andrew K Lui (Open University of Hong Kong)27 Distributed Image Library Image Library Image Library Image Library TraderClient CORBA Services

Andrew K Lui (Open University of Hong Kong)28 TraderBeanQueryBean JavaBeans as Stubs Image Library Stub Trader Stub Client-sideServer-side

Andrew K Lui (Open University of Hong Kong)29 Rapid Application Dev (DSTO)

Andrew K Lui (Open University of Hong Kong)30 QueryBean Jini Stubs themselves can be downloaded from services - encapsulating the protocol. Image Library Stub

Andrew K Lui (Open University of Hong Kong)31 Server Components? Enterprise JavaBeans (EJB) Container EJB Server Home Object EJB Client Database Distributed transaction management, concurrency management, middleware support,...

Andrew K Lui (Open University of Hong Kong)32 Other CSBD Environments JavaBean connection is tightly coupled - one bean knows other beans. Distributed bean component has already made bean location independent. Use of messaging middleware can even encapsulate the existence of other beans.

Andrew K Lui (Open University of Hong Kong)33 CSBD with messaging middleware Messaging Middleware with Channels Bean provides and obtains information from relevant channels. does not care where the information comes from. connects to distributed services using other middleware. XML

Andrew K Lui (Open University of Hong Kong)34 Summary Very popular in industry but only at a beginning stage in academic. Lots of experience gained, but with thin theoretical support. Java is a good platform for CBSD.

Andrew K Lui (Open University of Hong Kong)35 The Future Loosely-coupled component model. Component Contracts. Microsoft Dot Net