'''WhatHappened since 2002 for this material? Is it deprecated in favor of something new?''' MIDP is a set of Java APIs intended to be implemented in 'mobile information devices' (e.g. mobile phones), providing a limited Java runtime environment in which downloaded applications called 'MIDlets' can run. MIDlets are typically rather small; some devices limit them in size to as little as 30KB. The first MIDlets available are mostly small arcade-style games, but many other types are possible. For a good sample and an idea of what's possible, see http://www.midlet.org. MIDP includes APIs for: * UI (based on Screens, of which only one may be visible at a time) * Canvas - draw what you like on it (suitable for games) * Form etc. - WAP-like screens with text items, text fields, images, etc...; adapted to device UI style * Persistent storage (byte-array records with integer keys, stored typically in Flash memory) * Networking (at least HTTP client capability, based on CLDC's 'generic connection framework') * Only HTTP client functionality is mandated (i.e. request; response) * Mobile network bandwidth & latency is significantly different to fixed networks; beware! * Optionally e.g. TCP/IP sockets, UDP datagrams, HTTP servers etc. may be implemented, but that's unlikely if the transport is WAP * Application model ('MIDlets', quite similar in style to JavaApplets) Substantial numbers of MIDP-enabled phone models are now appearing on the market (June 2002). Nokia alone targets to sell tens of millions of MIDP-enabled phones in 2002, and still higher numbers in 2003. One list of MIDP-enabled phones can be found from here: http://wireless.java.sun.com/device/. MIDP is strictly a JavaMicroEdition 'profile' layered on top of the ConnectedLimitedDeviceConfiguration (CLDC). See http://java.sun.com/products/midp/.