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

Transcript of By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications...

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