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

Post on 30-Dec-2015

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

By Matt Deakyne, Adam Krasny, and Derek Meek

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

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

Java RMI – only for Java

CORBA – unnecessarily complex

SOAP – inefficient, unsecured

Goals of ICEObject-oriented middlewareFeatures that support development of

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

CPU overheadBuilt-in security

Goals of ICESummary:

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

Advantages of ICEIndependent of Machine, Language,

Operating System, Implementation and Transport

Supports threading, multiple interfaces, and synchronous/asynchronous messaging

Available source code

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

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

How we used ICENeed ICE to integrate three main elements

CRM Database Database in MySQL

Tracking Service Java

Optimization Engine Java

Short-Term Goals

Automatic updating to the CRM upon delivery

Automatic recalculation of routes with new orders

Web service allowing customers track order status

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

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

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

Consistent Data TypesICE enforced data type coherency between

platforms

ICE run time converted abstract definitions into concrete types

Overview of Application

Long-Term GoalsAllow customers to place track orders online

Client auctions, bid for shipment

ConclusionICE is aggressively expanding

Support of PHP, Python, Ruby makes it unique

Very powerful, yet simple

top related