Java Embedded on ARM
The Embedded Market Evolving Rapidly Internet of Things 2.3B Internet Users Cloud for Embedded Devices Med-Large Embedded Multi-function Devices Enterprise Data and Applications Up to 50B Devices 1.3B 3G Subscribers Management Monitoring Operations Personal Devices VoIP Communication Smart Appliances & Consumer Electronics Sensors & Micro controllers Industrial controls & Network Appliances Connected Vehicles Meters
Industry Trends & Challenges TRENDS More Devices, Connected with Increased Capabilities Infrastructure extending to include Edge Devices Enormous amount of net new data New value-added services based on this data/connectivity CHALLENGES Custom Proprietary Solutions Lack of Platform Standards Hardware Fragmentation Multiple OS support Limited Developer and ISV eco-systems Insufficient Network Bandwidth
Java Delivers Technical Value Standards based Vast developer base of over 9M Free development tools and Mature, robust and secure run-time environment Cross platform compatibility Supported on small to large devices Seamless integration with backend services: filtering, data movement, data management, analytics, security Provides a complete end to end platform to develop standards based services
Java Delivers Business Value Grow ROI Reduce Cost Extend Product Lifecycle Competitive Advantage Innovation Increase Market Reach Portability Shorter Time-to-Market Reduce Risk and Support Cost Standards-based
Oracle Embedded Java Java SE Java ME Java Card Products Stewardship Partnership Increase your market reach Increase the value of your proposition Developer expertise and education World s largest community of developers, admins and architects
Spectrum of Java Embedded Example of devices powered by Java SMALL MEDIUM LARGE RFID Readers Parking Meters Intelligent Power Module Smart Meters Routers & Switches Storage Appliances Network Management Systems Factory Automation Systems Security Systems Multi Function Printers ATMs POS Systems In-Flight Entertainment Systems Electronic Voting Systems Medical Imaging Systems
Java SE Embedded 7 for ARM Derived from Java SE and supports the same features, APIs and functionality as Java SE. Provides specific features and support for the embedded market small footprint JREs headless configurations memory optimizations. Prebuilt binaries for ARM v5/v6/v7 running Linux Oracle is working closely with ARM to enhance Java on ARM CPUs
ARM Optimizations for SE Embedded Hardfloat binaries (instead of VFP using softfp) Thumb2 compiled binaries Reduces the size of the binaries by 21% JIT will still dynamically generate ARM instructions JNI native code can be either Thumb2 or ARM instructions Tiered Compilation Improve startup of Server VM by using Client JIT initially Server JIT will optimize frequently used methods post startup Client (C1) and Server (C2) JIT for ARM
Sample Results - Client versus Server JIT CaffeineMark 3 on Cortex-A9 TI PandaBoard +225% C2 is 152x Faster running Logic test! +118% +170% +45% +41% * CaffeineMark is a trademark of Pendragon Software
Benefits of using Java on Multi-Core processors JIT (Just-In-Time Compilation) can occur in parallel with program execution Achieve peak performance sooner Parallel Garbage Collection Quicker collection, less pause time Fork Join Framework (new in Java 7) Java Threading APIs easily enable parallelization of activities public class MyThread extends Thread { public void run(){ System.out.println("MyThread running"); do_parallel_activity(); } } MyThread mythread = new MyThread(); mythread.start();
Want to use another Programming Language! Java Native Interface (JNI) C Program Java Program C++ Program Why Use JNI? Access to hardware Time critical tasks Reuse of legacy native code Assembly Routine
Embedded Systems Have Specific UI Requirements Lightweight for smaller devices Full rich graphics for larger higher-end devices Take advantage of hardware acceleration where available Tools and ease of development
JavaFX for Embedded Next-gen UI platform for Java Powerful set of 100% Java APIs FXML for UI markup & Visual Editor Rich graphics and animation Integrated Web content Integration with Swing and SWT Available on desktop platforms, embedded ports in progress
Embedded Tooling: NetBeans IDE Complete Toolchain for Embedded Development Supports all Java platforms Intuitive workflow, highly configurable Tons of plug-ins Developer productivity (advanced editor, refactoring support,...) Local and remote debugging and profiling Emulators support Java ME development on desktop Runs on Solaris, Linux, Microsoft Windows, Mac OS X Free Download
New Embedded Releases Java ME Embedded 3.2 Runtime for small embedded devices: Micro controller class platforms Java Embedded Suite 7.0 Pre-integrated full featured Java Embedded Platform Enterprise Data & Applications Embedded 3.1.1 DB EDGE DEVICES GATEWAYS/CONCENTRATORS
Java ME Embedded 3.2 Device Profile Targeting wireless modules and horizontal M2M Aspect System Architecture Device Type Operating System Network Peripheral I/O Footprint Description ARM architecture SOCs incl. ARM9, ARM11, Cortex-M, -R, and A Resource-constrained, headless, always-on Simple embedded kernel or more capable OS/RTOS IP-based wired (Ethernet) or wireless (cellular or other) Including multiple access points Versatile access to peripheral I/O Serial, file, GPS, I2C, SPI, I2C, GPIO, mem.-map Minimum configuration (custom) approx. 130 KB RAM/350 KB ROM Full, standard configuration approx. 700 KB RAM/1500 KB ROM
Oracle Java Embedded Suite Best of breed, optimized embedded technology in a bundle Faster time-to-market with highly productive APIs and runtime Easily create high-performance, portable, secure, robust, cross-platform applications Develop end-to-end solutions integrated with Java back-end services Industrial grade performance, availability, and proven deployments Solutions from constrained devices to server-class systems Database and Web services for embedded products Home Gateway s, Routers, etc Java Embedded Suite Embedded DB
Java Embedded Product Strategy Java Embedded Platform Apps/Cloud Integration Data Integration MORE VALUE Security Management Java Embedded Run Time MORE DEVICES Tooling Java Runtime Embedded OS
Oracle s Device to Data Center Platform Client Cloud/ Servers Devices Embedded Platforms & Extensions Language Applications Language Platform & Services Servers Java Language & Tools Cloud/Network Infrastructure Healthcare, Energy, Automation, Communications, etc. Enterprise Manager Java Embedded Embedded Suite 3.1.1 DB Java Language & Tools SOA/ESB
Why Oracle for Device to Data Center Services? Complete Stack Oracle Java on Devices & in Data Center Best-of-Breed Solutions Open Standards Vertical Integration Extreme Performance Engineered Systems Complete Customer Choice On-Premise Private Cloud Public Cloud Hybrid
Summary Oracle and Java for Next Generation of Smart, Connected Devices Despite the huge opportunity, end-to-end embedded solutions development is difficult and expensive Java Embedded enables easy development of end-to-end solutions, a large developer ecosystem and free development tools Oracle provides complete suite of products for a standards-based horizontal platform for device to data center solutions Oracle Java solutions optimized for ARM platforms offers reduced time to market and greatest flexibility