by matt deakyne, adam krasny, and derek meek. history of ice ice stands for internet communications...

17
By Matt Deakyne, Adam Krasny, and Derek Meek

Upload: dominick-payne

Post on 30-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

By Matt Deakyne, Adam Krasny, and Derek Meek

Page 2: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

History of ICEICE stands for Internet Communications EngineObject-oriented middleware

allowed programmers to build distributed applications without having to be a networking guru

Middleware before ICE.NETJava RMICORBASOAP

Page 3: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

Disadvantages of other options.Net – only supports a few languages

Java RMI – only for Java

CORBA – unnecessarily complex

SOAP – inefficient, unsecured

Page 4: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

Goals of ICEObject-oriented middlewareFeatures that support development of

realistic distributed applicationsAvoid unnecessary complexityEfficiency in bandwidth, memory use, and

CPU overheadBuilt-in security

Page 5: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

Goals of ICESummary:

“Let’s build a middleware platform that is more powerful than CORBA, without making all of CORBA’s mistakes.”

Page 6: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

Advantages of ICEIndependent of Machine, Language,

Operating System, Implementation and Transport

Supports threading, multiple interfaces, and synchronous/asynchronous messaging

Available source code

Page 7: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

How ICE worksUses slice (specification language for ICE) to

describe the types and object interfaces used by an applicationDescription independent of implementation

Uses compliers to generate code in specific language C++, Java, C#, Python, Ruby, PHP

Purely declarative language

Page 8: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

How ICE works (cont’d)Generates Client and Server

Can be implemented in two different languages

Communicate through slice definitions

Can pass objects and make calls on each other

Page 9: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

How we used ICENeed ICE to integrate three main elements

CRM Database Database in MySQL

Tracking Service Java

Optimization Engine Java

Page 10: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

Short-Term Goals

Automatic updating to the CRM upon delivery

Automatic recalculation of routes with new orders

Web service allowing customers track order status

Page 11: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

CRM DatabaseAccessed through web server when

customers place orders, view current delivery statusAllow tracking service to update delivery status

Allow optimization engine to obtain new orders

Allow optimization engine to post optimal routes

Page 12: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

Optimization EngineReorganizes orders for maximum efficiency

Needs to obtain new orders from CRM

Needs to obtain current routes from tracking service

Post routes back to tracking service

Page 13: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

Tracking ServiceKnows where all trucks are at all times

Post new routes from optimization engine

Send current routes to optimization engine

Send delivery notification to CRM Database

Page 14: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

Consistent Data TypesICE enforced data type coherency between

platforms

ICE run time converted abstract definitions into concrete types

Page 15: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

Overview of Application

Page 16: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

Long-Term GoalsAllow customers to place track orders online

Client auctions, bid for shipment

Page 17: By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers

ConclusionICE is aggressively expanding

Support of PHP, Python, Ruby makes it unique

Very powerful, yet simple