A CORBA Component. Component runtime support. A CORBA Component Home Home interface. Component Home. Väliohjelmistot 2003 15/04/2004



Similar documents
CORBA Component Model(CCM)

CORBA Component Model

Limitations of Object-Based Middleware. Components in CORBA. The CORBA Component Model. CORBA Component

Overview of the CORBA Component Model. Wang, Schmidt, O Ryan

OpenCCM: The Open CORBA Components Platform

CORBAservices. Naming. Part of the CORBA Naming Service Interface in IDL. CORBA Naming Service

Model Transformations and Code Generation

A Management Tool for Component-Based Real-Time Supervision and Control Systems

Overview of CORBA 11.1 I NTRODUCTION TO CORBA Object services 11.5 New features in CORBA Summary

September 2002 Version 3.0 ptc/ An Adopted Specification of the Object Management Group, Inc.

Elements of Advanced Java Programming

Component Middleware. Sophie Chabridon. INT - INF Department - Distributed Systems team 2006

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

OpenCCM : une infrastructure à composants pour le déploiement d'applications à base de composants CORBA

EJB & J2EE. Component Technology with thanks to Jim Dowling. Components. Problems with Previous Paradigms. What EJB Accomplishes

Common Object Request Broker Architecture (CORBA) Specification, Version 3.1

Infrastructure that supports (distributed) componentbased application development

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Distributed Objects and Components

JBoss SOAP Web Services User Guide. Version: M5

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE

Writing Grid Service Using GT3 Core. Dec, Abstract

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware

Chapter 5 Application Server Middleware

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

What Is the Java TM 2 Platform, Enterprise Edition?

Service Oriented Architecture

IBM Rational Rapid Developer Components & Web Services

Enabling the Information Age

An Introduction to Globus Toolkit 3

A standards-based approach to application integration

Grid Computing. Web Services. Explanation (2) Explanation. Grid Computing Fall 2006 Paul A. Farrell 9/12/2006

Load Balancing in CORBA: A Survey. Response to the Aggregated Computing RFI

Oracle WebLogic Server 11g Administration

Middleware Lou Somers

SAP Web Application Server 6.30: Learning Map for Development Consultants

25 May Code 3C3 Peeling the Layers of the 'Performance Onion John Murphy, Andrew Lee and Liam Murphy

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Service Governance and Virtualization For SOA

ActiveVOS Server Architecture. March 2009

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.


Distributed Network Management Using SNMP, Java, WWW and CORBA

How To Create A C++ Web Service

Service-Oriented Architecture and Software Engineering

Monitoring Pramati EJB Server

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Glassfish, JAVA EE, Servlets, JSP, EJB

EMC Documentum Composer

How To Protect Your Computer From Being Hacked On A J2Ee Application (J2Ee) On A Pc Or Macbook Or Macintosh (Jvee) On An Ipo (J 2Ee) (Jpe) On Pc Or

Towards automated software component configuration and deployment

GlassFish Security. open source community experience distilled. security measures. Secure your GlassFish installation, Web applications,

Working with WebSphere 4.0

A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Listeners. Formats. Free Form. Formatted

Implementation of an Open Source Toolset for CCM Components and Systems Testing *

System Component Deployment in a Realtime Embedded Software Defined Radio (SDR) Architecture

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

System types. Distributed systems

Acknowledgments. p. 55

ITG Software Engineering

Julia Reznik, Marc Born

Enabling Technologies for Web-Based Legacy System Integration

APAC WebLogic Suite Workshop Oracle Parcel Service Overview. Jeffrey West Application Grid Product Management

Component based Middleware for real-time embedded systems. Ansgar Radermacher CEA-List

Architecture of the CORBA Component Model CORBA 3.0

Modeling Web Applications Using Java And XML Related Technologies

Technical Report. Access policies for middleware. Ulrich Lang. Number 564. May Computer Laboratory UCAM-CL-TR-564 ISSN

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

1 What Are Web Services?

No.1 IT Online training institute from Hyderabad URL: sriramtechnologies.com

1z0-102 Q&A. DEMO Version

As you learned about in Chapter 1, WebSphere Application Server V6 supports the

Profiling and Testing with Test and Performance Tools Platform (TPTP)

System Architectures for Integrating Web-Based User Interfaces into (Legacy) Database Applications

Distributed Systems Architectures

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

Component and Service Technology Families

Monitoring Oracle Enterprise Performance Management System Release Deployments from Oracle Enterprise Manager 12c

WebObjects Web Applications Programming Guide. (Legacy)

Chapter 1 Fundamentals of Java Programming

Oracle WebLogic Server

VisiBroker Configuration Reference

Enterprise JavaBeans 3.1

Installing and Administering VMware vsphere Update Manager

Understanding class paths in Java EE projects with Rational Application Developer Version 8.0

ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

Introduction to Web Services

NetBeans IDE Field Guide

Distributed systems. Distributed Systems Architectures

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

JAVA ENTERPRISE IN A NUTSHELL. Jim Farley and William Crawford. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo.

Redbooks Paper. WebSphere Application Server V5 Architecture. Carla Sadtler

Model Driven Development of Inventory Tracking System*

Transcription:

-komponenttimalli CCM Komponenttiväliohjelmistot Model (CCM) jatkoa korjatulla esitysjärjestyksellä abstrakti komponenttimalli komponenttien suoritusaikainen ympäristö container programming model komponenttien toteutus Implementation Framework CIF + implementation language CIDL Komponenttien pakkaaminen ja käyttöönsaatto OFFERED interface Facets Event sinks A My Business Attributes Receptacles Event sources REQUIRED runtime support home Controls a set of components using the component equivalent interface Provides component factory facilities Specializations Defines the environment for supporting dynamic collections of components The core of the CCM is the container: a running piece of code that you buy from a vendor and install on your server machine. The container includes an ORB with a POA. Corba components are server-side objects; your system administrator installs components into the container, which takes charge of them when they run. A Home Home interface MyBusinessHome c1 cn Home Is instantiated at deployment time Manages a unique component type More than one home type can manage the same component type But a component instance is managed by a single home instance Allows life cycle characteristics or key type to vary/evolve without changing component definition Optional use of primarykey for business component identity and persistency primary key Standard factory and finder business logic operations Extensible with arbitrary user-defined business logic operations Lea Kutvonen 1

Primary Keys Komponenttien suoritusaikainen ympstö Values exposed to clients to create, find, and destroy component instances Uniquely identifies a component instance within a home Assigned at creation time, or in pre-existing database Must be a value type derived from s::primarykeybase (empty, abstract) Association between a primary key and a component is defined and maintained by its home Different home types may define different key types (or no key) for the same component type Primary key is not necessarily a part of the component s state component container model Framework for component application servers Mostly built on the POAs Automatic activation/deactivation Resource usage optimization Provides simplified interfaces for corba services Uses callbacks for instance management encapsulates 1-N POAs References exported thourhg component home finder, naming or trading C l i e n t Transaction The Architecture Extended OMG IDL external API Security Home Internal API ORB Persistency Callback API POA Notification CCM model Usage Model Describes the interaction between the container, the POA and the services, ie reference persistence and servant to ObjectID mapping Types: stateless, conversational, durable categories Combination of internal and external APIs usage model stateless conversational durable durable container API session session entity entity comp.category service session process entity object ref transient transient persistent persistent servant/oid 1:N 1:1 1:1 1:1 CCM model s define their runtime requirements through (in the deployment descriptor) Usage model category Activation and servant lifetime management Transaction policies Security policies Events Persistence Compoent level (basic-ejb-compat, extended) CCM container model component activation and servant lifetime management Each container has a POA and servantlocator Policies Method: activate/passivate by method-basis Transaction: lifetime tied to a transaction : component decides itsef on deactivation : lifetime tied to container s lifetime Depends also on component category Lea Kutvonen 2

characteristics internal interface callback interface usage model extenral API type client design pattern servat lifetime mgmt property (service) session context (basic) or Session2Context (extended) session component stateless keyless factory method (only) The Server Architecture Entity Manager Session EJB Other characteristics internal interface callback interface usage model extenral API type client design pattern servat lifetime mgmt property (entity) entitycontext(basic) or entity2context(extended) Entity durable keyfull factory or finder any POA1 POA2 POA3 POA4 ORB Transactions Security Persistence Events Cmponent Implementation Framework Implementation Framework to Skeleton Generation CIF defines a programming model for constructing component implementations How components should be implemented Generates executors: implementation of behavioural elements (homes, containers, ) Facilitates component implementation only business logic should be implemented Not activation, identify, port management and introspection => Local server-side OMG IDL mapping Interactions between implementations and containers Manages segmentation and persistency => Implementation Definition Language Extended OMG IDL file + CIDL Compiling for CIF/Java executor Server-Side Mapping Skeletons managing ports, life cycle, persistency, etc. + GIOP/IIOP Lea Kutvonen 3

A Monolithic Executor container Monolithic executor context Main component executor interface Facet or event sink executor interface Session or Entity specific context -oriented context interface -oriented context interface Context use interposition CIF implementations can be segmented Segments are physical partitions of implementations Can define independent state and can be independently activated Help in managing, partitioning and sharing a high number of facet implementations Only in process and entity categories A Segmented Executor Building CCM Applications = Assembling Instances container Main segment Seg2 Seg3 Seg4 specific context context ExecutorLocator CCM development project stages 1. Analysis/design UML + business object profiles 2. declaration Define component s methods and home with extended IDL and compile to produce for clients: Operations, navigation operations, stubs for servers: skeletons, IR entries, some code, packaging and deployment descriptors in XML Esimerkki component ShoppingCart { provides ShoppingCartIntf Cart1; uses CheckoutIntf CheckOut1; } home ShoppingCartHome manages ShoppingCart{}; Lea Kutvonen 4

CCM development project stages Esimerkki 3. component implementation declare component s persisent state in PSDL and some behaviour aspects in CIDL compile to get skeletons; fill in with business logic; compile to joint result to get compiled libraries abstract storagetype CustomerState{ state long AcctNum; state... } storagetype PortableCustomerState implements CustomerState{}; typedef sequence <Customer> CustomerList; abstract storagehome CustomerStorageHome of Customer { primary key AcctNum(AcctNum); factory create(acctnum, Name,...); } storagehome PortableCustomerStorageHome implements CustomerStateHome{}; Relations between OMG Definition Languages OMG IDL 2.x Object-oriented collaboration i.e. data types, interfaces, and value types OMG IDL 3.0 -oriented collaboration i.e. component types, homes, and event types OMG PSDL Persistent state definition i.e. [abstract] storage types and homes OMG CIDL implementation description i.e. compositions and segments OMG IDL 2.x extends OMG PSDL extends extends OMG IDL 3.0 extends OMG CIDL Implementation Definition Language CIDL describes component composition Aggregate artifacts required to implement a component and its home Manages component persistent state Persistent state definition language PSDL Links storage types to segmented executors Generates executor skeletons providing Segmentation of component executors Default implementations of callback operations s state persistency Defined in CIDL Category Home executor Executor Bindings State management (storage) Composition 7 component categories: 4 CCM, 2 EJB, 1 clustomizable servant lifetime policies: method, transaction, component, container category usage container primary model API type key ---------------------------------------------------------- service stateless session no session conversational session no process durable entity no entity durable entity yes Lea Kutvonen 5

Esimerkki composition entity CustomerImpl { implements Customer; home executor CustomerHomeImpl delegatesto abstractstoragehome CustomerStateStorageHome; } CCM development project stages 4. component packaging (use interactive tools to produce)/write component descriptor (in XML) to tell CCM runtime how to connect up and manage the implementation package up implementation and component descriptor into a component archive file CAR CCM development project stages 5. component assembly An application or part composed of some components with predefined interaction pathways in an assembly archive file AAR Customizes configuration, connections, partitioning to different computers 6. component deployment and installation Prior to this: system admin has installed and configured runtime environement Installer program for CARs Deploy component factories and managers 7. Runtime: component instance activation Part of the application logic s are activated by the container POA Esimerkki <componentassembly id= 374...2304 > <description> descr for example </description> <componentfiles> <componentfile id= ShoppingChartFIle > <fileinarchve name= shoppingchar.car > </componentfiles> <partitioning> <homeplacement id = ShoppingCartHome > <componentfileref idref= ShoppingCartFIle > </homeplacement> </partitioning> <connections> <connectinterface> <usesport> <usesidentifier>check1</usesidentifier> <homeplacementref idref= ShoppingChartHome > The Client Programming Model -aware and -unaware clients Clients see two design patterns Factory Client finds a home and uses it to create a new component instance Finder - Client searches an existing component instance through Name Service, Trader Service, or home finder operations Optionally demarcation of transactions Could establish initial security credentials Invokes operations on component instances Those defined by the client-side mapping Lea Kutvonen 6

Packaging and Deployment CCM Applications Deployment Packaging and Deployment of s s are packaged into a self-descriptive package s can be assembled Assemblies can be deployed Helped by XML descriptors Packaging and Deployment model Allows interoperability between deployment tools and containers It is necessary for an application to List component instances Define logical location and partitioning Specify connections between components It is necessary for a component to Specify its elements interfaces, implementations Describe system requirements OS, ORB, JVM, library releases, Specify its initial configuration It is necessary for a connection to Associate related component ports Packaging Artifacts XML s Overview IDL/CIDL File IDL/CIDL Compiler User's Code Stubs, Skeletons Programming Language s Implementation Default Properties Packaging Home Properties Properties softpkg Deployment Software (.csd) Describes contents of a component software package Lists one or more implementation(s) (.ccd) Technical information mainly generated from CIDL Some container managed policies filled by user (.cad) Describes initial virtual configuration homes, component instances, and connections Property File (.cpf) name/value pairs to configure attributes Relationship Between CCM XML s * Software * * Property File Archive (ZIP file) containing One or more component packages, either Including a package s contents Including the original package Referencing the package by URL Property File s defining initial attribute values (.cad) Defines home instances to be created Defines component instances to be created Defines connections between ports to be made Self-contained and self-descriptive unit For automatic and easy one step deployment No programming language experience necessary Lea Kutvonen 7

(.cad) References one or more Software s Defines home instances and their collocation and cardinality constraints Defines components to be instantiated Defines that homes, components or ports are to be registered in the HomeFinder, Naming or Trading Service Defines connections to be made between component ports, e.g. receptacles to facets and event sinks to event sources Software (.csd) Descriptive general elements title, description, author, company, webpage, license Link to OMG IDL file Link to default property file Implementation(s) Information about Implementation Operating System, processor, language, compiler, ORB Dependencies on other libraries and deployment requirements Customized property and component descriptor Link to implementation file Shared library, Java class, executable Entry point (.ccd) Structural information generated by CIDL / home types and features Ports and supported interfaces category and segments policies filled by the packager Threading Servant lifetime Transactions Security Events Persistence Extended POA policies Link to component and home property files Property File (.cpf) Used to set home and component properties However, it could be used for anything Contains zero or more name/value pairs to configure attributes Referenced by... Software s to define default values for component attributes s to define default values for component or home attributes s to configure initial values for home or component instances Packaging IDL User Code Compiler Instance Creation Port Connections IDL/CIDL Compiler Generated Code Default Properties Shared Library or Executable Packaging.zip... Properties Archive.aar (ZIP) Deployment Lea Kutvonen 8

Deployment An Archive is deployed by a deployment tool The deployment tool might interact with the user to assign homes and components to hosts and processes The deployment application interacts with installation objects on each host Lea Kutvonen 9