180 likes | 348 Views
ICE. By Matt Deakyne , Adam Krasny , and Derek Meek. History of ICE. ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers to build distributed applications without having to be a networking guru Middleware before ICE .NET Java RMI CORBA SOAP.
E N D
ICE By Matt Deakyne, Adam Krasny, and Derek Meek
History of ICE • ICE stands for Internet Communications Engine • Object-oriented middleware • allowed programmers to build distributed applications without having to be a networking guru • Middleware before ICE • .NET • Java RMI • CORBA • SOAP
Disadvantages of other options • .Net – only supports a few languages • Java RMI – only for Java • CORBA – unnecessarily complex • SOAP – inefficient, unsecured
Goals of ICE • Object-oriented middleware • Features that support development of realistic distributed applications • Avoid unnecessary complexity • Efficiency in bandwidth, memory use, and CPU overhead • Built-in security
Goals of ICE Summary: “Let’s build a middleware platform that is more powerful than CORBA, without making all of CORBA’s mistakes.”
Advantages of ICE • Independent of Machine, Language, Operating System, Implementation and Transport • Supports threading, multiple interfaces, and synchronous/asynchronous messaging • Available source code
How ICE works • Uses slice (specification language for ICE) to describe the types and object interfaces used by an application • Description 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 ICE • Need 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 Database • Accessed through web server when customers place orders, view current delivery status • Allow tracking service to update delivery status • Allow optimization engine to obtain new orders • Allow optimization engine to post optimal routes
Optimization Engine • Reorganizes 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 Service • Knows 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 Types • ICE enforced data type coherency between platforms • ICE run time converted abstract definitions into concrete types
Long-Term Goals • Allow customers to place track orders online • Client auctions, bid for shipment
Conclusion • ICE is aggressively expanding • Support of PHP, Python, Ruby makes it unique • Very powerful, yet simple