CS590L Distributed Component Architecture References: - Objects, components, and framenworks with UML, Ch 6-9 - A Component Based Services Architecture.

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

A component- and message-based architectural style for GUI software
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
Object-Oriented Analysis and Design
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.
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Explain how statecharts can be used to describe system behaviors  Use statecharts.
R R R CSE870: Advanced Software Engineering: Frameworks (Cheng, Sp2003)1 Frameworks A Brief Introduction.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
GRAPPA Part of Active Notebook Science Portal project A “notebook” like GRAPPA consists of –Set of ordinary web pages, viewable from any browser –Editable.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
DISTRIBUTED COMPUTING
Introduction to MDA (Model Driven Architecture) CYT.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Object Oriented Analysis & Design & UML (Unified Modeling Language)1 Part V: Design The Design Workflow Design Classes Refining Analysis Relationships.
What is MOF? The Meta Object Facility (MOF) specification provides a set of CORBA interfaces that can be used to define and manipulate a set of interoperable.
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.
Patterns and Reuse. Patterns Reuse of Analysis and Design.
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
Systems Analysis and Design in a Changing World, 3rd Edition
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Extreme! Computing Lab, Dept. of Computer Science, Indiana University 1 Programming the Grid with Components Madhu Govindaraju Aleksander Slominski Dennis.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
An Introduction to Web Services Web Services using Java / Session 1 / 2 of 21 Objectives Discuss distributed computing Explain web services and their.
NOVA A Networked Object-Based EnVironment for Analysis “Framework Components for Distributed Computing” Pavel Nevski, Sasha Vanyashin, Torre Wenaus US.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
25 April Unified Cryptologic Architecture: A Framework for a Service Based Architecture Unified Cryptologic Architecture: A Framework for a Service.
Overview of Grid Webservices in Distributed Scientific Applications Dennis Gannon Aleksander Slominski Indiana University Extreme! Lab.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
Managing, Storing, and Executing DTS Packages
UML Diagrams By Daniel Damaris Novarianto S..
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Object-Oriented Analysis and Design
Self Healing and Dynamic Construction Framework:
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
The Open Grid Service Architecture (OGSA) Standard for Grid Computing
Cross Platform Development using Software Matrix
Unified Modeling Language
OO Methodology OO Architecture.
Distribution and components
UML Diagrams Jung Woo.
Introduction to J2EE Architecture
Ch > 28.4.
Inventory of Distributed Computing Concepts and Web services
Applying Domain-Specific Modeling Languages to Develop DRE Systems
Extreme Computing Lab, Indiana University
Patterns.
Tools for Composing and Deploying Grid Middleware Web Services
Evaluating Compuware OptimalJ as an MDA tool
Starting Design: Logical Architecture and UML Package Diagrams
Service Oriented Architecture (SOA)
UML profiles.
An Introduction to Software Architecture
Middleware, Services, etc.
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
AGENT FRAMEWORK By- Arpan Biswas Rahul Gupta.
The Anatomy and The Physiology of the Grid
Graphical Modeling of INFOD applications
Architectural Mismatch: Why reuse is so hard?
Common Component Architecture (CCA)
Presentation transcript:

CS590L Distributed Component Architecture References: - Objects, components, and framenworks with UML, Ch 6-9 - A Component Based Services Architecture for Building Distributed Applications, R. Bramley, K. Chiu, S. Diwan, et al. Yugi Lee STB #555 (816) 235-5932 leeyu@umkc.edu www.sice.umkc.edu/~leeyu

Framework A Framework is a template model (of business, specs, design,...) defined in a Package; the parameters of that template, any assumptions made in that model about the intended substitutions for those parameters, can be made explicit. the predefined rules of composition for combining the properties (imported and existing ones) Frameworks are useful for many sorts of patterns at all levels of modeling: types, actions, collaborations, refinements, scenarios, A framework is used via Framework Application

Motivation for Frameworks and Patterns Developing software is hard Developing reusable software is even harder Proven solutions include patterns and frameworks

Overview of Patterns and Frameworks Patterns support reuse of software architecture and design Patterns capture the static and dynamic structures and collaborations of successful solutions to problems that arise when building applications in a particular domain Frameworks support reuse of detailed design and code A framework is an integrated set of components that collaborate to provide a reusable architecture for a family of related applications. Together, design patterns and frameworks help to improve software quality and reduce development time e.g., reuse, extensibility, modularity, performance

Frameworks 1. Frameworks are semi-complete applications Complete applications are developed from patterns and framework components 2. Frameworks provide domain-specific functionality business applications, telecommunication applications, window systems, databases, distributed applications, OS kernels 3. Frameworks exhibit inversion of control at time the framework determines which objects and methods to invoke in response to events

Case Study: Common Component Architecture (CCA) Major Focuses: Components (software objects that implement a set of required behaviors) Frameworks (A runtime environment, A set of services used by components) Draws ideas from CCM, SciRun (Univ of Utah), etc. Designed for efficient coupling of SPMD (Single Progrogram and Multiple Data) components running on very large cluster-based parallel computers. Coupling of components that execute on widely distributed (Grid) resources. I.e. A visualization app with a remote simulation and a data analysis component. A Component Based Services Architecture for Building Distributed Applications, R. Bramley, K. Chiu, S. Diwan, et al.

Main CCA Ideas Components: Autonomous interchangeable parts Applications are developed by connecting components Ports: define the public interfaces that a component uses or provides. Builders: the tools used to select and link components together. eg: JBuilder Framework: defines a mechanism to link “uses ports” of one component to the “provides” ports of another. Component A Component B Uses Port is a call site for an interface to an external component Provides Port - an interface to a service provided by that component.

CCA Framework Services The framework must provide a set of standard services Directory Service To locate components based on port type and other attributes Registry Service To locate executing instances of components Creation Service To create an executing instance of a component Connection Service To connect the ports of two running component instances Event Service A framework for publish/subscribe messaging between services and components.

Services and the Grid A computational “Grid” is a networked set of computational and data resources that are tied together by a ubiquitous collection of “services” Traditional Grid “services” Authentication/Security File/data management Authorization/ User services Job Management (incl. co-scheduling, QOS) Information Services about resources, people, applications

Common Component Architecture Toolkit A CCA-compliant framework for distributed “Grid-based” applications. To enable the design of Grid Application Services as software components. Is an experiment to test CCA. CCA architecture is rich enough that the framework and services can be built as components In particular: application builders can be components. “Federation of Components” design allows framework to be layered on top of Globus, Jini, e-speak or Legion There may be a better way to specify information (metadata) about components than a traditional IDL

CCAT Services Architecture Designed to operate over Grid middleware systems Chose Globus as the basic framework (could have used Legion too.) Abstracts out the core services for component architecture and layer on top of existing grid services CCAT has five CCA framework service components Directory Registry Creation Connection Events

CCAT experimental results To test the idea of going beyond traditional IDLs: Uses XML as the interface definition language and to describe component metadata To test the generality of the CCA design: A services architecture has been built following CCA specifications - all services are components. To see if components can be reused in the design of application builders: Four different application builder components have been constructed

Corba-IDL Traditional distributed computing is based on the specification of public interfaces with simple type language called “Interface Definition Language” standard in Corba, DCOM and Java/Jini. Corba component model goes far beyond standard interface type specs. it requred OMG to define an extensive extension to the standard corba IDL. The result is a very specialized, non-extensible new specification language.

The Experiment: Use XML as an IDL Simple canonical syntax : Possible to describe IDLs in XML Transformation: Easy to transform using programs (or XSLT) Also possible to describe meta-data associated with a component where is the component from who wrote it and author comments interface and port inheritance info Shortcoming: XML as a Type system is very weak

IDS: Information Directory Service Stores Component descriptions in XML Used to search databases and remote repositories Context: a storage specific implementation of the IDS interface Two contexts provided: WebDAV and local-file-system Contexts WebDAV repository Request component info Information Directory Service Component RDBS File system Return XML specs. LDAP

Specification Fragment: Defining an Interface in XML <port-type> <type-name>SparseLinearSystem_idl</type-name> <method-list> <method> <method-name>sendSparseLinearSystem</method-name> <method-param-list> <param-info> <param-name>sls</param-name> <param-dir>in</param-dir> <param-type>SparseLinearSystem</param type> </param-info> </method-param-list> <return-value>int</return-value> </method> </method-list> </port-type>

Registry Service Stores instance information (runtime configurations) Used by components to advertise their existence and search other instances Allows collaboration between CCAT sessions Find a running instance of component X Executing Component Registry Service Returns: remote reference to component instance

Creation Service Used to create a running instance of another component Encapsulates authentication issues Globus managed resource Y Launch an instance of component X on resource Y Creation Service Component X Returns: remote reference to new component instance

Connection Service A component that can be used to connect a “uses” port of one component to the “provides” port of another. Makes it possible to build nested components. X Port Connection Service Component Connect port A of component X to port B of component Y A B Y

Event Service Channel for publish-subscribe event model Components use it to subscribe to event streams like creation and connection events Application users can use it for asynchronous information transfer C Subscribe to listen for events of type X Event Channel Service Component x Notification of publication of events of type X A x x x B

CCAT Process

Building builders as components Builder: A tool used to select and link components together Component Architecture systems need to provide a tool to work with components Build these builders as components so that the component model extends throughout

CCAT Builders Swing based GUI JPython scripting interface Matlab Web

JPython Example import ccat stringDump = ccat.createComponent(‘StringDump’) printer = ccat.createComponent(‘Printer’) ccat.setCreationMechanism(stringDump, ‘gram’) ccat.setCreationMechanism(printer, ‘gram’) ccat.createInstance(printer) ccat.createInstance(stringDump) ccat.connectPorts(stringDump, ‘outputString’, printer, ‘inputString’)

A Web Builder The builder is both a cca component and a java servlet.

Conclusions XML does not have a strong-enough type system Replace XML with schemas Deploy a multiprotocol system for communication Globus Nexus good for big data, but not for small messaging Propagate events in a runtime system that is orthogonal to the one in which computation is being done Building framework services as components was a good idea