timico introduction to ice. 1-1 agenda to provide an example of a non-standards driven and single...
TRANSCRIPT
TIMICO
Introduction to ICE
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
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
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
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
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
1-7
Slice
• Structured Language for Ice
• Similar to CORBA IDL• Introduces the “class” construct
1-8
Server Implementation
1-9
Server boot-strapping
1-10
Writing a Client
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?
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
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