OSGi Remote Services with SCA using Apache Tuscany Raymond Feng

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

Service Oriented Architecture Reference Model
©2003 aQute, All Rights Reserved Tokyo, August 2003 : 1 OSGi Service Platform Tokyo August 28, 2003 Peter Kriens CEO aQute, OSGi Fellow
Web Services Web Services are the basic fundamental building blocks of invoking features that can be accessed by an application program. The accessibility.
Provisioning distributed OSGi applications in a cloud Guillaume Nodet, FuseSource November 2011.
CPSC 875 John D. McGregor Architecture evolution.
Component Models and Technologies Case Study: OSGI.
Broker Pattern Pattern-Oriented Software Architecture (POSA 1)
1 Dive into Apache Geronimo 3.0 Xu Haihong Apache Geronimo PMC
Why OSGi matters for Enterprise Java Infrastructures
Brokering Mathematical Services Through a Web Registry.
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
OSGi: Open Services Gateway Initiative Richard Chapman 5 Sept
Spring Dynamic Modules. Startlocation: Documentation: /1.2.1/reference/html/
Secure Systems Research Group - FAU Web Services Standards Presented by Keiko Hashizume.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Oracle SOA Suite 11g.
Agenda Introduction to the Guidewire platform
CCSDS Message Bus Comparison Shames, Barkley, Burleigh, Cooper, Haddow 28 Oct 2010.
OSGi.
INTRODUCING SCA Byungwook Cho Nov.2007.
CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics NPRG044: OSGi framework Michal Malohlava & Pavel Parízek
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
OSGi & UPnP Technology 2009 Summer Ya-Lin Huang. 2 Outline What is OSGi Technology Introduction Alliance Specifications Key Benefits OSGi Framework Service.
Review: OSGi – a component framework for Java Bundle OSGi Framework Bundle Java Runtime Environment (JRE) Operating System (OS) Hardware “Dynamic Modules.
The Data Grid: Towards an Architecture for the Distributed Management and Analysis of Large Scientific Dataset Caitlin Minteer & Kelly Clynes.
Final presentation Simon Zambrovski Tutor: Muhammad Farhat Kaleem Design choices and strategies for implementing WS-BusinessActivity.
C O R P O R A T E T E C H N O L O G Y Siemens AG Software & Engineering Usage of Enterprise OSGi inside Siemens:  Siemens Communications, Enterprise Systems.
Tuscany 2.x Extensibility and SPIs Raymond Feng. Tuscany Extensibility Cx2x/Tuscany+2.x+Extensibility+and+SPIs#extensions.
XML Registries Source: Java TM API for XML Registries Specification.
OSGi Enablement for Tuscany Raymond Feng. Overview.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
In Pieces Breaking down monolithic applications with Spring-DM and OSGi.
Migrating Desktop The graphical framework for running grid applications Bartek Palak Poznan Supercomputing and Networking Center The.
OSGi Service Platform Open Service Gateway initiative.
Webservice versioning using osgi Allard Buijze, Jettro Coenradie.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
Slide 1 Extending Tuscany Raymond Feng Apache Tuscany committer.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
Sameera Jayasoma 18 th July, 2009 Senior Software Engineer Introduction to OSGi The Dynamic Module System for Java.
Tuscany: a SOA framework Jeffrey Guo Accelrys, Inc.
ICT Strategy Intelligent Highways: Endpoint Adapters.
SCA Bindings Simon Holdsworth Piotr Przybylski. Agenda n SCA Bindings Overview l Bindings TC Charter n Bindings l Web Services Binding l JMS Binding l.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CPSC 875 John D. McGregor Architecture evolution.
Tu sca ny 1 The Tuscany Project in the Apache Incubator and The Service Component Architecture Jeremy Boynes Simon Nash 28 June 2006.
1 Registry Services Overview J. Steven Hughes (Deputy Chair) Principal Computer Scientist NASA/JPL 17 December 2015.
Slide 1 Extending Tuscany Raymond Feng Apache Tuscany committer.
Getting Started with the Open Services Gateway Initiative (OSGi) CNT 5517 Dr. Sumi Helal, Ph.D. Professor Computer & Information Science & Engineering.
Slide 1 Extending Tuscany Raymond Feng Apache Tuscany committer.
© Drexel University Software Engineering Research Group (SERG) 1 The OASIS SOA Reference Model Brian Mitchell.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Data Access with Spring.
Introduction to OSGi +ActorFrame Surya Bahadur Kathayat
MTA SZTAKI Department of Distributed Systems Hogyan mixeljünk össze webszolgáltatásokat, ontológiákat és ágenseket? Micsik András.
PRESENTATION OF THE TEST REGISTRY AND REPOSITORY (TRR) ON JOINUP 23 OCTOBER 2015 Roch Bertucat, ENGISIS.
CPSC 875 John D. McGregor C22 - Architecture evolution.
Discussion on oneM2M and OSGi Interworking Group Name: ARC Source: Jessie, Huawei, Meeting Date: Agenda Item:
Possible Solution of Interworking between oneM2M and OSGi
From “Hello World” to Real World : Building web apps with Spring OSGi Craig Walls The Spring Experience 2007 December 12, 2007.
1 Introduction to Service Component Architecture Feature Pack for WebSphere Application Server & SCA Tooling in RAD Mike Edwards and Sara Mitchell - IBM.
Apache Tuscany 2.x Domain/Node Raymond Feng
Apache Tuscany 2.x Domain/Node
Overall Architecture and Component Model
CCSDS Message Bus Comparison
Apache Tuscany Demo BigBank Example
Inventory of Distributed Computing Concepts
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
HingX Project Overview
Introduction to Web Services
Presentation transcript:

OSGi Remote Services with SCA using Apache Tuscany Raymond Feng

Agenda What are OSGi remote services? A sample scenario: Distributed Calculator Representing OSGi entities using SCA Predefined mapping from OSGi to SCA On-demand mapping from OSGi to SCA Discovery of OSGi remote services Demo of distributed calculator Q&A

What are OSGi remote services?

OSGi local services The OSGi framework decouples service providers and consumers via a local service registry, where a service is an object that one bundle registers and another bundle gets. The services are only be accessed locally by bundles within the same framework instance. It would be nice to make them remote without significant changes of the programming model?

OSGi Remote Services The OSGi core framework specifies a model where bundles can use distributed services. (R4.2) The basic model for OSGi remote services is that a bundle can: –register services that are exported to a communication endpoint –use services that are imported from a communication endpoint (registering a proxy in local service registry)

OSGi Remote Services NOTE: The diagram is copied from OSGi Service Platform Service Compendium R4.2 spec

Related OSGi specs OSGi Service Platform Release 4 Version 4.2 Compendium Specification –Chapter 13: Remote Services (PM, concepts and properties) – Early Access draft of the OSGi 4.2 Enterprise Release –SCA Configuration Type (SCA specific properties) –Remote Service Admin (runtime architecture, SPIs) – early-draft4.pdfhttp:// early-draft4.pdf

SCA Configuration Type SCA Configuration Type for Remote Services –This chapter provides a standard mechanism to configure Remote Services and provide qualities of service or intents, through SCA configuration metadata and WS-Policy. Remote Service implementations that also implement the SCA config type provide a portable way to configuration.

Remote Service Admin –This specification adds an extra layer on top of the existing Remote Services spec (chapter 13 in the 4.2 Compendium).4.2 Compendium –The Distribution Provider registers a RemoteServiceAdmin service that exports and imports services when asked. –The Discovery System API (EndpointListener) provides a standard view over any Discovery System, regardless of how it's realized or what protocol it uses. –The Topology Manager provides a Policy over these things. It decides what services will be exported and for when to look for services in a Discovery System.

OSGi remote services - A sample scenario

An OSGi based Calculator Add Service Operations Bundle Subtract Service Multiply Service Divide Service Calculator bundle Calculator Service OSGi service OSGi service reference Calculator Service OSGi service interface OSGi service implementation

Making the Calculator Distributed Run the calculator bundle and the operations bundle on two OSGi framework instances. –The calculator bundle registers the CalculatorService and it looks up the Add/Subtract/Multiply/Divide services (which are remote over RMI) from the service registry. The CalculatorService is exported as a Web Service. –The operations bundle registers four remote services (Add/Subtract/Multiply/Divide). These services are exported over RMI.

OSGi Remote Services enabled Calculator Add Service Operations Bundle Subtract Service Multiply Service Divide Service Calculator bundle Calculator Service RMIWeb Service RMI OSGi runtime #1 OSGi runtime #2

Modeling OSGi entities using SCA

SCA environment Add Service The Calculator Scenario: OSGi Remote Services with SCA runtime as the distribution software OSGi bundle SCA Component implementation.osgi SCA Component implementation.osgi Subtract Service Multiply Service Divide Service Calculator Service binding.rmi or binding.ws

OperationsCalculator binding.rmi binding.ws OSGI-INF/sca/bundle.composite Add Service Operations Bundle Subtract Service Multiply Service Divide Service Calculator bundle Calculator Service SCA bundle Defining the SCA composite for OSGi bundles

SCA view of OSGi services and references RMI Calculator Service Web Service Web Service SCA proxies Local Service Local OSGi Service Implementation OSGi Service Registry Add Service Subtract Service Multiply Service Divide Service SCA Service SCA References

SCA implementation.osgi The SCA implementation.osgi component will be used to encapsulate one or more OSGi bundles. –OSGi View: implementation.osgi provides the metadata and infrastructure to enable the distribution of OSGi services –SCA View: implementation.osgi allows OSGi bundles to participate in the SCA assembly. The references for an SCA OSGi component represents the OSGi services to be consumed by the bundles The services for an SCA OSgi component represents the OSGi services to be provided by the bundles

Predefined mapping from OSGi to SCA

Mapping an OSGi bundle to an SCA componentType <componentType xmlns=" xmlns:t="

SCA composite for the OSGi bundle <composite xmlns=" xmlns:tuscany=" targetNamespace= name="CalculatorComposite">

On-demand mapping from OSGi to SCA

Remote Service Admin NOTE: The diagram is copied from OSGi Remote Service Admin spec (to be published)

Remote Services with SCA NOTE: The diagram is copied from OSGi Remote Service SCA Configuration Type spec (to be published)

Publish remote services public void start(BundleContext context) throws Exception { Dictionary props = new Hashtable (); props.put("sca.service", "CalculatorComponent#service- name(Calculator)"); props.put("calculator", "Calculator"); props.put("service.exported.configs", new String[] {"org.osgi.sca"}); props.put("org.osgi.sca.bindings", new String[] {"{ props.put("service.exported.interfaces", new String[] {"*"}); CalculatorService calculator = new CalculatorServiceImpl(context); context.registerService(CalculatorService.class.getName(), calculator, props); }

Look up remote services (ServiceTracker) Filter remoteFilter = null; try { remoteFilter = context.createFilter("(&(" + OBJECTCLASS + "=calculator.dosgi.operations.*) (service.imported=*))"); } catch (InvalidSyntaxException e) { … } this.remoteServices = new ServiceTracker(context, remoteFilter, null); remoteServices.open(); … Object[] remoteObjects = remoteServices.getServices();

MANIFEST.MF Manifest-Version: 1.0 Export-Package: calculator.dosgi;version="1.0.1", calculator.dosgi.operations;version="1.0.1" Bundle-Version: Bundle-Name: calculator.dosgi.dynamic Bundle-Activator: calculator.dosgi.impl.CalculatorActivator Bundle-ManifestVersion: 2 Import-Package: org.oasisopen.sca.annotation;version="2.0.0", org.osgi.framework, org.osgi.service.component;resolution:=optional, org.osgi.service.packageadmin, org.osgi.util.tracker Bundle-SymbolicName: calculator.dosgi.dynamic Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6 SCA-Configuration: OSGI-INF/sca-config/calculator-config.xml Remote-Service: OSGI-INF/remote-service/*.xml

SCA Configuration <scact:sca-config targetNamespace=" xmlns:scact=" xmlns:sca=" xmlns:tuscany="

Local endpoint descriptions <service-descriptions xmlns=" xmlns:sca=" xmlns:tuscany=" org.osgi.sca { …

SCA Domain based service discovery

Domain Registry for OSGi discovery