CS486: Tutorial on SOC, OSGi, and Knopflerfish. Ryan Babbitt (props to Dr. Hen-I Yang, CS415X) Feb. 3, 2011

Similar documents
Com S/Geron 415X Gerontechnology in Smart Home Environments Lecture 9 Intro to Service Computing. Dr. Hen-I Yang ComS Dept., ISU

Developing Java Applications with OSGi Capital District Java Developers Network. Michael P. Redlich March 20, 2008

Agenda. Why OSGi. What is OSGi. How OSGi Works. Apache projects related to OSGi Progress Software Corporation. All rights reserved.

OSGi. Building LinkedIn's Next Generation Architecture with OSGI

Introduction to OSGi. Marcel Offermans. luminis

OSGi in Action. Ada Diaconescu

Building LinkedIn's Next Generation Architecture with OSGI

OSGi. Building and Managing Pluggable Applications

Modular Java Applications with Spring, dm Server and OSGi

7. Component Models. Distributed Systems Prof. Dr. Alexander Schill

Apache Felix Shell. Apache Felix Shell. Overview. How the Shell Service Works. package org.apache.felix.shell;

Patterns and Best Practices for dynamic OSGi Applications

The Atlas Platform. CEN5531 Mobile Computing. Raja Bose Dr. Sumi Helal September 21, 2006 Week 5

Chapter 8 Web Services Objectives

Tuscany: Applying OSGi modularity after the fact

8. Component Software

Oracle SOA Suite 10g: Services Orchestration

Standards,Tools & Best Practices Editor: Sumi Helal University of Florida

Programming Web Services in Java

Breaking Apart the Monolith with Modularity and Microservices CON3127

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional

SCA Java Runtime Overview

Introduction to Web Services & SOA

Swordfish The Eclipse SOA Runtime Framework. Copyright SOPERA GmbH, Content is made available under the EPL v1.0.

OSGi on the Server. Martin Lippert (it-agile GmbH)

Agent-Enabling Transformation of E-Commerce Portals with Web Services

WSDM = Web Services Distributed Management, an open standard/specified ratified by OASIS

Using the Bridge Design Pattern for OSGi Service Update

The GAL Middleware Platform

TPF Users Group Fall 2007

Lab 1 Introduction ipojo Component Model

SAP Edge Services, cloud edition Edge Services Predictive Analytics Service Guide Version 1803

The UniversAAL Platform

Introduction to Web Services & SOA

SERVICE-ORIENTED COMPUTING

IBM WebSphere Application Server 8. Java EE 6 Feature Packs

CS5233 Components Models and Engineering

Metadata Management and Change Management for SOA. Ron Schmelzer And Jason Bloomberg ZapThink, LLC. October 25, Take Credit Code: MMCMSOA

Web Services Development for IBM WebSphere Application Server V7.0

<Insert Picture Here> Click to edit Master title style

1Z0-560 Oracle Unified Business Process Management Suite 11g Essentials

Comparing JavaBeans and OSGi

Equinox OSGi: Pervasive Componentization

OSGi and Equinox. Creating Highly Modular Java. Systems

Oracle Developer Day

Integrating Legacy Assets Using J2EE Web Services

Using Apache Felix: OSGi best practices. Marcel Offermans luminis

OSGi in Action. RICHARD S. HALL KARL PAULS STUART McCULLOCH DAVID SAVAGE CREATING MODULAR APPLICATIONS IN JAVA MANNING. Greenwich (74 w. long.

Jigsaw and OSGi: What the Heck Happens Now?

1.2. Name(s) and address of Document Author(s)/Supplier: Sahoo: 1.3. Date of This Document: 12 July 2008

8. Component Software

Create your own Carbon Component. Sameera Jayasoma Technical Lead and Product Manager of WSO2 Carbon

Liberate your components with OSGi services

Oracle. Exam Questions 1z Java Enterprise Edition 5 Web Services Developer Certified Professional Upgrade Exam. Version:Demo

Distributed OSGi through Apache CXF and Web Services

C exam. IBM C IBM WebSphere Application Server Developer Tools V8.5 with Liberty Profile. Version: 1.

Apache Felix. Richard S. Hall. A Standard Plugin Model for Apache. Atlanta, Georgia U.S.A. November 13th, 2007

Modularity in Java. With OSGi. Alex Docklands.LJC January Copyright 2016 Alex Blewitt

RESTful Web service composition with BPEL for REST

OSGi Best Practices. Emily

Topics on Web Services COMP6017

Transport (http) Encoding (XML) Standard Structure (SOAP) Description (WSDL) Discovery (UDDI - platform independent XML)

J2EE Interview Questions

Developing and Deploying vsphere Solutions, vservices, and ESX Agents. 17 APR 2018 vsphere Web Services SDK 6.7 vcenter Server 6.7 VMware ESXi 6.

ATC An OSGI-based Semantic Information Broker for Smart Environments. Paolo Azzoni Research Project Manager

SOA Software Policy Manager Agent v6.1 for WebSphere Application Server Installation Guide

Dependencies, dependencies, dependencies

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ

Web Services in Cincom VisualWorks. WHITE PAPER Cincom In-depth Analysis and Review

OSGi Cloud Ecosystems. David Bosschaert Principal Engineer, JBoss/Red Hat March 2013

Sistemi ICT per il Business Networking

Richard S. Hall Karl Pauls Stuart McCulloch David Savage

IBM Rational Developer for System z Version 7.5

Apache Felix Framework Launching and Embedding

Web Services Overview

Reflective Middleware. INF Tommy Gudmundsen

Using JBI for Service-Oriented Integration (SOI)

APPLICATION ARCHITECTURE JAVA SERVICE MANUAL

Equinox Framework: How to get Hooked

We manage the technology that lets you manage your business.

JBI based ESB as backbone for SOI applications. Michael Wisler Zühlke Engineering AG Submission ID: 687

Consumption and Composition of Web Services and non web services

(9A05803) WEB SERVICES (ELECTIVE - III)

IBM Enterprise Modernization for System z: Wrap existing COBOL programs as Web Services with IBM Rational Developer for System z

Oracle SOA Suite 12c: Build Composite Applications. About this course. Course type Essentials. Duration 5 Days

Exercise SBPM Session-4 : Web Services

EMBEDDED MAJOR PROJECTS LIST

Extensibility, Componentization, and Infrastructure

SAP NetWeaver Process Integration 7.1. SAP NetWeaver Regional Implementation Group SAP NetWeaver Product Management December 2007

Bernhard Dorninger Software Competence Center Hagenberg. Experiences with OSGi in industrial applications

B. Assets are shared-by-copy by default; convert the library into *.jar and configure it as a shared library on the server runtime.

CS5233 Components Models and Engineering

CAS 703 Software Design

Oracle SOA Suite 11g: Build Composite Applications

Class Dependency Analyzer CDA Developer Guide

Java J Course Outline

Building Secure OSGi Applications. Karl Pauls Marcel Offermans. luminis

What s New In DFC. Quick Review. Agenda. Quick Review Release 5.3 Q&A Post 5.3 plans. David Folk Product Manager

A4M36ISS: Introduction. Jiří Pechanec QA Engineer September 17 th, 2015

Extending Tuscany. Apache Tuscany. Slide 1

Transcription:

CS486: Tutorial on SOC, OSGi, and Knopflerfish Ryan Babbitt (rbabbitt@iastate.edu) (props to Dr. Hen-I Yang, CS415X) Feb. 3, 2011

Basic Concepts Service-oriented computing (SOC) Service-oriented architectures (SOA) OSGi and Web Services Knopflerfish OSGi implementation in SHL

Services in the Real World Specialization is a defining characteristic of modern society Narrow breadth and high depth of knowledge/skills Higher quality at lower cost with better availability Services in the real world are Interchangeable (functionally - individual goods/providers don t matter) Contract-driven (well-known interaction points) Mechanism independent (black box principle) Examples: Banking, healthcare, restaurants, etc.

Service-Oriented Computing Service-oriented computing (SOC) applies specialization and design by contract to design complex software systems Handles heterogeneous components (interoperability) Simpler design, reuse, and faster development time (composition) Improved fault tolerance and adaptation (interchangeability) A software service is an artifact that performs some meaningful function for its client Well-defined interface (set of methods) Meta-data to describe the service (set of properties) Implementation is hidden from clients What are some example software services and servicebased systems?

Canonical Exercise: ATM Service Interface (= methods)? Meta-data (= properties)? Possible applications?

Service-Oriented Architectures SOA is a framework and environment for managing and connecting services Platform independent API Execution environment for providers and clients Service registry - stores service descriptions and binding information (e.g. phone book) Providers publish services and descriptions (e.g. name, interface, endpoint, protocol, etc.) Clients query for services, filter meta-data, and obtain binding information for desired services Execution/invocation not included

SOA Components 2 1 3

SOA Specifications: OSGi and WS OGSi - The Open Service Gateway initiative Java-based, centralized SOA standard Targets dynamic, collaborative, reactive environments WS Web Services XML/HTTP based, decentralized SOA standard Composed of three standards: WSDL, SOAP, and UDDI Targets business activities and workflows

OSGi Layers Bundle, package, user permissions Publish, query, etc. service events Runtime bundle management Class loading policies and dependency resolution

Unpacking an OSGi Bundle Component Activator Manifest Service Resources Implementation Interface Bundle

Example Service Interface and package edu.iastate.cs.sh.atm; Metadata public interface ATM { int deposit(int account, int amount); int withdraw(int account, int amount); int checkbalance(int account) } /* Example property values ----------------- < Banks, WellsFargo, United Bank of Ryan > < CurrencyType, USD > < SOAP.service.name, ATM > < SOAP.service.methods deposit, withdraw, checkbalance > */

Example Manifest File /* Bundle information Bundle-Name: ATM /* Human readable */ Bundle-SymbolicName: edu.iastate.cs.sh.atm /*machinereadable*/ Bundle-Description: service for depositing, withdrawing, and querying from a bank account Bundle-Version: 1.0.0 /*Package dependencies */ Import-Packages: Export-Packages: edu.iastate.cs.sh.atm /* Bundle resources */ Bundle-Activator: edu.iastate.edu.sh.atmactivator Bundle-Classpath: /* resources inside the bundle */ /* Others... */

Example Activator package edu.iastate.cs.sh.atm; public ATMActivator implements BundleActivator { private ATM atm = null; private Dictionary props = null; private ServiceRegistration reg = null; public void start(bundlecontext bc){ atm = new ATM( ISU Savings ); props = new Dictionary(); props.add( BankName, ISU Savings ); props.add( Currency, USD ); } reg = bc.registerservice(atm.class.getname, atm, props); } public void stop(bundlecontext bc){ reg.unregister(); }

Lifecycle of an OSGi Bundle Unload Load Unload Activator

Lifecycle of an OSGi Service Register REGISTERED Unregister Modify MODIFIED UNREGISTERING Activator

Deploying a Bundle: CheapMovies ATM ATM Theater Registry?? Event: BUNDLE INSTALLED! RESOLVED!

Activating the Bundle getservicereference( ) ServiceReference CheapMovies ATM ATM Theater Registry getservice ( ) Service Object registerservice( ) filter Event: BUNDLE SERVICE REGISTERED! STARTING! STARTED!

Deactivating a Bundle ungetservice() CheapMovies ATM ATM Theater ungetservice() Registry unregister ( ) Event: BUNDLE SERVICE STOPPING! STOPPED! UNREGISTERING!

Review: Important Tasks Service providers Define service interface and metadata Develop an implementation (hidden) Register a service object with the OSGi framework Update a service s properties Unregister a service with the OSGi framework Service consumers Query the service registry Examine a service s properties Bind to the service object Invoke the service methods Release the service

What is Knopflerfish? Open source implementation of the OSGi standard Apache Felix, (Android), Equinox (Eclipse) Desktop application for graphical monitoring and controlling bundles Eclipse plug-in for facilitated development Generate/edit manifest files, compile source, Automatically build and package jar files

The Knopflerfish Desktop

Knopflerfish Desktop Walkthrough Starting the framework Monitor bundles/services Examining the manifest file Controlling bundles Refreshing the framework Exiting the framework

Questions? SOC/SOA www.google.com OSGi www.osgi.org Knopflerfish www.knopflerfish.org

Current Applications Current applications Home automation Health management Home security ADL support Possible extensions?

Possible New Applications Generic voice interface Prescription conformance monitor Exercise monitor Universal WebRemote EnergySaver

Existing Services (Javadocs soon!) Device services Temperature, humidity, pressure, light level, motion Touch sensor, pressure sensor, dial, microphone, speakers, barcode, RFID, network camera, LCD, [biomedical!] Lamp and appliance control, remote control, [door opener!] Fridge, microwave, blinds Data services Food, medication, health conditions, medical conflicts, user profile Utility services Speech, notification, [timer, calendar, logging] Monitoring services Diet, inventory, shopping list, expiration date, [prescription, physical activity,]