By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications...
-
Upload
dominick-payne -
Category
Documents
-
view
213 -
download
0
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/1.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/2.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/3.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/4.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/5.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/6.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/7.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/8.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/9.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/10.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/11.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/12.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/13.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/14.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/15.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/16.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062718/56649e9d5503460f94b9e691/html5/thumbnails/17.jpg)
ConclusionICE is aggressively expanding
Support of PHP, Python, Ruby makes it unique
Very powerful, yet simple