Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Apache Struts Technology
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.
Slide 1 Client / Server Paradigm. Slide 2 Outline: Client / Server Paradigm Client / Server Model of Interaction Server Design Issues C/ S Points of Interaction.
Persistent State Service 1 CORBA Component  Component model  Container programming model  Component implementation framework  Component packaging and.
The Architecture Design Process
Copyright W. Howden1 Lecture 19: Intro to O/O Components.
Application architectures
Cin/UFPE Component architecture Chapter Twenty by Vanilson Burégio.
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (4) Modifiability.
NFS. The Sun Network File System (NFS) An implementation and a specification of a software system for accessing remote files across LANs. The implementation.
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Chapter 2 Database System Concepts and Architecture
UNIT-V The MVC architecture and Struts Framework.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Java Frameworks Indy Java Users Group January 29, 2003.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Using Runtime Information for Adapting Enterprise Java Beans Application Servers Mircea Trofin *, John Murphy ** Performance Engineering Laboratory * DCU,
Slide 1 Wolfram Höpken RMSIG Reference Model Special Interest Group Second RMSIG Workshop Methodology and Process Wolfram Höpken.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
An Introduction to Software Architecture
University of Utah SoCCS Lecture 61 Architecture – An Introduction CS Lecture 6 Nathan Dykman.
Replication & EJB Graham Morgan. EJB goals Ease development of applications –Hide low-level details such as transactions. Provide framework defining the.
Introduction to J2EE Architecture Portions by Kunal Mehta.
第十四章 J2EE 入门 Introduction What is J2EE ?
J2EE Structure & Definitions Catie Welsh CSE 432
International Telecommunication Union Geneva, 9(pm)-10 February 2009 ITU-T Security Standardization on Mobile Web Services Lee, Jae Seung Special Fellow,
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.
Architecting Web Services Unit – II – PART - III.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
(Business) Process Centric Exchanges
Application code Registry 1 Alignment of R-GMA with developments in the Open Grid Services Architecture (OGSA) is advancing. The existing Servlets and.
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Grid Services I - Concepts
Developing Component- Based Systems X LIU, School of Computing, Napier University TIP This chapter discusses the techniques to develop component-based.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
Introduction to Java Beans CIS 421 Web-based Java Programming.
Jini Architecture Introduction System Overview An Example.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
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.
Chapter 9 Web Application Design. Objectives Describe the MVC design pattern as used with Web applications Explain the role and responsibilities of each.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
Copyright © 2002 ProsoftTraining. All rights reserved. Enterprise JavaBeans.
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
Apache Struts Technology A MVC Framework for Java Web Applications.
Software Connectors. What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern.
A service Oriented Architecture & Web Service Technology.
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
Chapter 2 Database System Concepts and Architecture
Architecting Web Services
Architecting Web Services
Software Connectors.
Distribution and components
Introduction to J2EE Architecture
An Introduction to Software Architecture
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
Component-based Applications
Objectives In this lesson, you will learn about:
Presentation transcript:

Component frameworks Roy Kensmil

Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING

ABSTRACT INTERACTIONS defining interaction protocols Specify these interactions in terms of abstract interfaces, and implement components to communicate with each other through them.

COMPONENT BUS Bind components to an information bus that manages the routing of information between communicating components to remove explicit dependencies from the components themselves.

Glue Code Create to act as an adapter for incompatible components, or as a mediator between peers.

THIRD-PARTY BINDING Remove connections established in the implementation of a component by having a third component bind two interacting components together.

What is a component framework? A component framework defines a set of abstract interactions that define protocols by which components communicate. Is also defines the packiging for components so that they can be instantiated and composed into legal configurations by third-party binding.

Three most used types of component frameworks on the market today: Second tire component framework Contextual component framework Visual component frameworks

Tiered component architectures Hierarchal decomposition Layering Key terms –Component –Atomic Component –Module –Resource

Importance of Layers and hierarchal decomposition on today’s component system

Layers of components Layers can contain components needed perform a certain service. All the layers stacked on top of each other form an architecture.

Mastering complexity Mastering the complexity of a layered architecture by adding the layered architecture on top of another layered architecture. Meta-architecture

Layers and Tiers A meta-architecture is forms a layer beneath the component architecture In this case layers are called tiers First tier is the component architecture Second Tier is the meta-architecture (component framework)

Definition of a component framework A component framework is a dedicated and focused architecture usually around a few key mechanisms, and a fixed set of policies for mechanisms at the component level.

Third Tier The need for a third tier. (another meta- architecture) A component framework can become an Island (can communicate only with instances of specified components)

Model a component framework as a component. Can then be plugged into another architecture. The third tier can enable these component framework to communicate

Contextual Component Frameworks Component frameworks where components describe at runtime the properties component instances need to satisfy in order to execute properly

Power of contextual component frameworks Elements declare their constraints on acceptable contexts but do not construct these contexts. Composition assumes well-formed contexts minimizing the burden of describing and handling exceptional conditions. Composites have certain properties by construction, as long as they have been formed using one of the valid components.

Usage of Contexts Declarative attribution is used to achieve runtime construction and placement of object instances in the appropriate contexts. Description of context requirement is done by associating attributes to components.

In COM this is done by registry entries per COM Class and in EJB by a XML document called the deployment descriptor.

COM+ Apartments/Domains Registries request at runtime if instance must be placed in a single or multithreaded apartment. MTS added transactional context to COM+ classes.

EJB Deployment Descriptor It refers to the XML file that controls a J2EE EJB deployment. It tells the EJB server which classes make up the bean implementation, the home interface and the remote interface. If there is more than one EJB in the package, it indicates also how the EJBs interact with one another. J2EEEJB

EJB uses the concept of containers. It's pattern is almost the same as that of MTS but classes can be given attributes so that their instances can explicitly call on transaction API to explicitly begin commit or abort a transaction by themselves. Containers in EJB support persistent objects by distinguishing between session and entity beans. In session beans state is lost once enclosing transaction terminates. In entity beans is transferred to a persistent store if a transaction has committed.

Visual component frameworks (explained using the blackBox frame work) How blackbox is composed: Framework consist of a core set of layered models and open set of subsystems. Each subsystem itself is a set of layered modules. The component builder is the framework extended with a development subsystem. The development subsystem contains (compilation, debugging, browsing and repository services) left part are the standard programming interfaces and on the right are the optional interfaces.

Cornerstone of visual components: -visual appearance -interaction with their containing and contained components. Views in blackbox provide visual presentation of data and can be context sensitive, active, and interactive. Function as an anchor for arbitrary objects under the hood.

(MVC) A view has a (separate) model. A model represents and manages data a view can present. A view is connected to a controller to enable a user to specify how the data must be represented. MVC are modeled as persistent objects in blackbox. Their state is stored as part of the containing document. persistence is expected for models. For views and controllers there are extra requirements for their persistence. Eg. Each view can display models differently meaning that it's controller supports a different style. A view can be set to display a specific part of a model. (Eg.)

Container Modes. In traditional VCF the distinction is made between using preassembled component instances and the assembly of component instances. In blackbox their is a unique concept to take advantage of the unification of build and use time. Container modes. Using a special editor containers on every level of a document can be set to different modes. blackbox examples. modes in blackbox can be set for each container in a document. a programmer can fully determine degree of flexibility a user of a document has. Rules blackbox enforces to stop misbehaving components from executing and displaying trash on screen or making document inconsistent: 1) A model cannot send a message while another message sent by a model is still on it's way 2)A view cannot send a message while another message sent by a view is still on it's way

Eg. Scenario 1 Solution: Messages are allocated on the sender's stack frame and sent in natural recursive order (depth first). But the framework can prohibit the sending with overlapping semantics. Eg. If a view tries to change a model while a change request is still in progress it will be delayed and registered by the component framework and executed after a termination notification by the preceding message.

Cascaded message multicasting services. In blackbox components do not need to be connected explicitly. Connections can be made or maintained by frameworks. Changes to components are done by message or event multicasting. A problem in with this service is that messages can arrive out of order.

cascaded multicasting For each of the three level a separate multicasting message mechanism with separate recursive barrier is implemented. Send a controller message along a focused path. A view consuming this message (focus view) can then request a model change. This change by a focus view to a model causes a message by a model to be multicast to all views using the model Each view can then multicast a view message to the frame which display the data of a view.