timico introduction to ice. 1-1 agenda to provide an example of a non-standards driven and single...

13
TIMICO Introduction to ICE

Upload: damian-shepherd

Post on 13-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

TIMICO

Introduction to ICE

Page 2: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

1-2

Agenda

To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss pro’s and con’s of this approach

Page 3: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

1-3

What is Ice?• An object-oriented distributed middleware platform.• object-oriented RPC mechanism• language-neutral specification language (Slice)• language mappings for various languages: C++, Java, C#, Python,

Objective-C, Ruby and PHP (Ruby and PHP for the client-side only)• support for Windows, Android, Linux, iOS, and many others• support for different transports (TCP, SSL, UDP) • external services (server activation, naming, events, firewall traversal)• integrated persistence (Freeze)• threading support• source code available

Page 4: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

1-4

Ice Architecture

Very similar to CORBA

Exercise: what are the differences

Server ApplicationClient Application

Generated Code

Proxy Code

Network

Ice API

Client Ice Core

Object Adapter

Ice API

Server Ice Core

Skeleton

Ice API

Page 5: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

1-5

Single-Language DevelopmentSlice-to-C++

CompilerPrinter.iceSlice

DeveloperServer

Developer

Client Developer

Server.cpp

Client.cpp

Printer.cppPrinter.h

C++ Ice Run-time Library

Server ExecutableClient Executable

RPC

Page 6: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

1-6

Cross-Language Development

Java Ice Run-time Library

Printer.ice

Slice Developer

Server Developer

Client Developer

Server.cppPrinter.cppPrinter.h

C++ Ice Run-time Library

Server ExecutableClient Executable

Client.java *.java

Slice-to-C++ Compiler

Slice-to-Java Compiler

Java C++

RPC

Page 7: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

1-7

Slice

• Structured Language for Ice

• Similar to CORBA IDL• Introduces the “class” construct

Page 8: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

1-8

Server Implementation

Page 9: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

1-9

Server boot-strapping

Page 10: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

1-10

Writing a Client

Page 11: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

1-11

Exercise 1: IDL (15 minutes)

• Create an IDL for an ER system:• Should be able to report:

• Systolic blood pressure (int32)• Diastolic blood pressure (int32)• Heart Rate/Pulse(int32)• Saturation (int32)

• Given a PatientID (string) sensor clients should be able to store healthcare data on a server

• It should be possible to query all data on a patient given the PatientID• It should be possible to subscribe to alerts, e.g. a given PatientID reading

dropping below Systolic 100, and Saturation below 90.• Make a UML deployment diagram sketch of the system• Consider how a C++ client, C# client, and Java server can interoperate• Which technologies could be useful here?• How is this exercise different from the CORBA Exercise 2?

Page 12: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

1-12

Ice ServicesIce provides a number of services:• Persistence service (Freeze)• Replication, load balancing, server activation service (IceGrid)• Application server (IceBox)• Publish–subscribe service (IceStorm)• Software distribution and patching service (IcePatch2)• Firewall traversal and session management (Glacier2)• Freeze is a library; the other services are implemented as stand-alone

processes.• Compared to CORBA services – there are no compatibility problems

across platforms• Do not have to combine services from different vendors• However: no choice of changing vendor

Page 13: TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss

1-13

Exercise 2: Comparison (20 min)

• There might be an exam question relating to this

• Discuss • The pro’s and con’s of CORBA vs ICE• Consider how long it took to solve CORBA Exercise 1• Of standard-driven vs single-vendor middleware• Provide examples of other standard-driven and single-vendor

middlewares• Why is democracy difficult`?

Ps. If you have not read the Michi Henning article - do it know: http://delivery.acm.org/10.1145/1150000/1142044/p28-henning.pdf?ip=94.18.237.37&acc=OPEN&CFID=55516271&CFTOKEN=99084808&__acm__=1322471166_dccb4a46e31b096f5406fe12488550be