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

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

Service-Oriented Architecture

Modular Java Applications with Spring, dm Server and OSGi

Com S/Geron 415X Gerontechnology in Smart Home Environments Implementation. Dr. Hen-I Yang Computer Science Department, ISU

Anatomy of a Method. HW3 is due Today. September 15, Midterm 1. Quick review of last lecture. Encapsulation. Encapsulation

SELECTION. (Chapter 2)

OSGi. Building LinkedIn's Next Generation Architecture with OSGI

User guide: CVENT. This is a guide on how to register with our new online registration system: cvent! Here is the landing registration page of cvent.

Building LinkedIn's Next Generation Architecture with OSGI

Virtual Classroom Outline. Total Time: Content: Question/answer:

Perception Gap Who are the financially excluded or underserved across Indonesia?

OSGi in Action. Ada Diaconescu

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

Operating system. Hardware

Algorithms & Datastructures Laboratory Exercise Sheet 1

The value of voice easing access to complex functionality

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

Phone banking Fast, reliable and convenient service by phone.

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Booking vacation packages (general)

VOICE COMMAND INDEX. Display audio Display phone Back Cancel Messages What is today s date? What time is it? Go home

Chapter 8 Web Services Objectives

On the Web and the BlackBerry

Westpac phone banking

Concur Online Booking Tool: Tips and Tricks. Table of Contents: Viewing Past and Upcoming Trips Cloning Trips and Creating Templates

Topics on Web Services COMP6017

CLIENT MANUAL USER MANUAL. Sky Travellers Page 1. Dubai, UAE. Skytravellers.com

Australian Journal of Basic and Applied Sciences

Pimp My Data Grid. Brian Oliver Senior Principal Solutions Architect <Insert Picture Here>

TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA

Outline for Today CSE 142. Programming a Teller Machine. CSE142 Wi03 I-1. ATM Algorithm for Dispensing Money

Modularizing Web Services Management with AOP

Survey #2. Assignment #3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings. Static Interface Types.

OASIS BPEL Webinar: Frank Leymann Input

Concur Online Booking Tool: Tips and Tricks. Table of Contents: Viewing Past and Upcoming Trips Cloning Trips and Creating Templates

Interface-based enterprise and software architecture mapping

Concur Travel User Manual

The Open Group SOA Ontology Technical Standard. Clive Hatton

Exploiting peer group concept for adaptive and highly available services

1 st Annual Meeting for Abacus Latin America Members

Patterns and Best Practices for dynamic OSGi Applications

VOICE COMMAND INDEX. Display entire route Cancel route Go home

ESB, OSGi, and the Cloud

Midterms Save the Dates!

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

CS 121 Intro to Programming:Java - Lecture 2. Professor Robert Moll (+ TAs) CS BLDG

TRAVEL INSTRUCTIONAL GUIDE (8/11/15)

To Mediate is the Message (a brief history of indirection) Glen Daniels Independent Technologist

Workshop on Web of Services for Enterprise Computing

Object-Oriented Systems Development: Using the Unified Modeling Language

Internet of Things Workshop ST 2015/2016

Getting Started Guide

Midterms Save the Dates!

CS 121 Intro to Programming:Java - Lecture 2. Professor Robert Moll (+ TAs) CS BLDG

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

Welcome. Welcome to ExpensAble. Features of ExpensAble

CS1004: Intro to CS in Java, Spring 2005

Concur Cliqbook Travel New User Interface

Object Oriented Programming

How to Create Collaborative Communities Within Your Portal

BBM371- Data Management. Lecture 1: Course policies, Introduction to DBMS

Mutating Object State and Implementing Equality

Grade Weights. Language Design and Overview of COOL. CS143 Lecture 2. Programming Language Economics 101. Lecture Outline

Distributed Systems. Web Services (WS) and Service Oriented Architectures (SOA) László Böszörményi Distributed Systems Web Services - 1

COMP-202: Foundations of Programming. Lecture 26: Review; Wrap-Up Jackie Cheung, Winter 2016

CWT Portrait. Client Traveler Maintainer Super User tutorial

Sistemi ICT per il Business Networking

Announcements. 1. Forms to return today after class:

Technology and the New DMO

NTS ONLINE BOOKING TOOL SABRE.RES

11. Build your Own Data Models

Test-driven Object Oriented Design

SOA and Network Management

02291: System Integration

Announcements. Lecture 05a Header Classes. Midterm Format. Midterm Questions. More Midterm Stuff 9/19/17. Memory Management Strategy #0 (Review)

Software Architecture Bertrand Meyer. Lecture 3: Language constructs for modularity and information hiding

Summary of the course lectures

Semantic SOA - Realization of the Adaptive Services Grid

COMP 250 Winter 2011 Reading: Java background January 5, 2011

Proceedings of the 5th WSEAS Int. Conf. on CIRCUITS, SYSTEMS, ELECTRONICS, CONTROL & SIGNAL PROCESSING, Dallas, USA, November 1-3,

SEEM4570 System Design and Implementation Lecture 11 UML

2 Background: Service Oriented Network Architectures

OSGi. Building and Managing Pluggable Applications

Software LEIC/LETI. Lecture 10

FAQ S About Unicâmbio Prepaid Card

ECE 122. Engineering Problem Solving with Java

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1.

FAQ RHB TravelFX App and Multi-Currency Card

Contents Introduction to RezDesk... 3 Activating your Account... 4 Logging In... 5 Editing a New Travel Profile... 6 Contact Information...

Service-Oriented Programming

Preliminary Findings. Vacation Packages: A Consumer Tracking and Discovery Study. Exploring Online Travelers. November 2003

CS 525M Mobile and Ubiquitous Computing Seminar. Michael Theriault

Concur Travel & Expense Frequently Asked Questions

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page:

April 25, Lesson 8.2B

Announcements/Follow-ups

CH 13 APPLICATION ANALYSIS

PART 1: BEGINNING PROFILES, RES CARDS, REMINDERS AND MARKETING CODES

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

CAS 703 Software Design

Transcription:

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

Reflection

Peeking Ahead Today (2/22) Introduction to Service Computing Thursday (2/24) Introduction to Design Next Tuesday (3/1) Midterm Next Thursday (3/3) OSGi Service Programming Workshop Smart Home Lab

Midterm Next Tuesday (March 1, 2011) in class 80 minutes Reviews materials covered until today s lecture You can bring One page single-sided hand-written lettersize crib sheet

Midterm Review Aging Optimal, Normal and Pathological Aging ADL and IADL Field trip experience Assistive Technology Various functional impairments associated with aging Seven assistive functions Examples of assistive technology/device/service Theories of Assistive Technology Adoption Person-Environment (P-E) Fit Congruence Theory Adoption Lags Introduction to Service Computing

Service Oriented Architecture (SOA) A group of services which communicate with each other. The process of communication involves either simple data passing or it could involve two or more services coordinating some activities. Some means of connecting services to each other is needed. www.webit.com.my/www/lang/en/show.do?page=154&articleid=3137

Service Computing Specialization is one of the defining characterization of modern society People don t do everything by themselves anymore Better quality, lower cost, higher availability Services are based on contract Services are interchangeable Services can be composed Feel Sick Go to the hospital Check-in Initial Evaluation X-ray and chem panel Diagnosis Get Prescription Render payment Fill Prescription Go home and bed rest Patient EMT EMT1, EMT2, Receptionist Amy, Joe, Jane, Doctor Lab Scientist Doctor Doctor Cashier Pharmacist Mom

Planning A Trip Book a flight. Airline Reserve a hotel room. Hotel Reserve a rental car. Rental car company Reserve tickets to events of interest. Box office Get foreign currency. Bank

Planning A Trip Talk to a Travel Agent (or Concierge Service) Book a flight Reserve a hotel room Reserve a rental car Reserve tickets to events of interest Get foreign currency

Illustration of a Service Reserve a flight Query flight status Cancel a flight Airline Service Service Area: U.S. Domestic Hub: Des Moines, IA Planes: Jets

Illustration of a Composite Service Travel Agent Service Airline Service Foreign Currency Exchange Service Hotel Service Car Rental Service Box Office Service

Service Every function is implemented as a service Often a single service provides a single action Interfaces are provided to let other services know how to utilize them Metadata Contains characteristics Describes data that drives the service Can be used to compose dynamically by discovery and incorporation of defined services, to maintain coherence and integrity Allow system designers to understand and manage with a reasonable expenditure of cost and effort XML is frequently used as description container

Services Interface Define the type of services offered Define the inputs and outputs Implementation Often is kept secret as a black box Meta-data Describe any information that s relevant to the service, can be Human readable Machine readable Attributes and Emergent Properties (sometimes described in the meta-data)

Example of a Service: Thermometer Interface: read return temperature Implementation: mercury, bi-metallic, spring Meta-data: return readings in Fahrenheit, located in Smart Home Lab owned by Bob

Exercise: ATM Interface: Withdraw return bills or error message query return balance of the account Implementation Known only to the Manufacturer of the ATM Meta-data Name of the bank Serial number Which currency is available

Example of a Service: Chef Interface: order, cash return dishes Implementation: Trainings at professional culinary schools Collection of family recipes Personal culinary artistic talents Hard-earned experience from years of torturing family and neighbors Meta-data: name location Expertise/style of food

Service Composition If the weather gets too hot (temperature is higher than 95 ), I am going to get some cash and buy myself a banana splits from that fancy restaurant Query 96 Withdraw(20) $$$ Order(banana splits) dish

Service Oriented Architecture Revisit Loosely-integrated suite of services that can be used within multiple business domains. Services communicate with each other and coordinate some activities to provide certain service. Provide means of searching and connecting services to each other. Platform (OS, programming language, medium) independent Encapsulation: services not originally designed for SOA can be wrapped and consolidated to appear as a service Abstraction: internal logic is hidden from the users other than those specified in the contract

Advantages of SOA Reuse Lower cost Better quality Faster development Flexibility Adaptive Tolerance to failures Composability Obfuscation Don t care about how it is done, as long as it is done Compartimization Outsourced and Specialization Reduce local resource requirement Less maintenance overhead

Case Study: OSGi Platform A dynamic module system for Java. It provides the standardized primitives that allow applications to be constructed from small, reusable and collaborative components. Components can be composed into an application and deployed. Allow changing of the composition dynamically on the device of a variety of networks, without requiring restarts. A service-oriented architecture that decouples components, and enables these components to dynamically discover each other for collaboration. Many standard component interfaces for common functions like HTTP servers, configuration, logging, security, user administration, XML and many more are available and well-tested. http://www.osgi.org/osgi_technology/index.asp?section=2

OSGi Platform http://www.osgi.org/osgi_technology/index.asp?section=2

OSGi Bundle Life Cycle Management Activator

OSGi Bundles Bundles: Basic components in OSGi environment Standard Bundle Composition: Manifest Code Interface class Defines the visible external behavior of the bundle Methods that will be exposed to other bundles, and allow other bundles to invoke Activator class Life cycle management Gets invoked first when an bundle becomes active Handles details such as a) The starting condition b) The cleanup actions c) The plan of action when other bundles joins or leaves d) bind the local variables to instances of the bundles that would be used later Implementation class The real deal: the actual implementation of the functionalities/methods specified in the interface class Actual usage of the variables specified and bound in the activator class Where the real application logic is

OSGi Manifest (Meta Data) Bundle-Name: Bundle-SymbolicName: Bundle-Description: Bundle-ManifestVersion: 1 ATM Bundle-Version: 1.0.0 Bundle-Activator: Export-Package: Import-Package: edu.isu.atm An ATM bundle edu.isu.atm.activator edu.isu.atm;version="1.0.0" edu.isu.dispenser;version="1.3.0 ; edu.isu.db;version="1.3.0"

OSGi Bundles Interface public interface ATMService { public int withdraw(int account, int public int query(int account); } amount);

OSGi Bundles Activator public class ATMActivator { } private ATMImpl service = null; public void start(bundlecontext context) throws Exception { } service = new DemoImpl(context, this); new Thread(service).start(); public void stop(bundlecontext context) throws Exception { } service.shutdown(); public void serviceaddition(serviceevent event) { } public void servicemodification(serviceevent event) { } public void serviceremove(serviceevent event) { }

OSGi Bundles Implementation public class ATMImpl implements ATMService { protected Dispenser out; protected AccountDatabase db; protected boolean running; } public void processwithdrawrequest(int account, int amount) { accountinfo = db.retrieveaccountinfo(account); if (accountinfo == null) { error( Invalid account info); } else { if (accountinfo.balance > amount) { out.dispense(amount/20); } } }