Java: The king of the Internet programming of the past and the future

Source: Internet
Author: User
Tags java se

What is Java to you? A language you learned in college? A common language for the IT industry? Do you believe Java is ready for the next internet explosion? Java has been enhanced for embedded computing on the one hand, and for real-time applications, this article explains why Java is the best language for IoT (Internet of Things) development.

Enhanced for embedded computing and streamlined for real-time systems-why Java is the best language for IoT

Since 1969, we have seen explosive growth in network equipment: from the ARPANET of the first four universities ' computers, until today there are 200 million active users on the Internet. In the near future, this number will grow exponentially, from hundreds of millions of devices to billions of embedded processing devices. Every aspect of our lives will be connected to the Internet via network devices: Home, workplace, cars, appliances, tools, toys-everything is up to you.
(Translator: Projects Agency Network, Senior research Program of the United States, the world's first operating packet-switching network developed by the U.S. Defense Research Programme, is the ancestor of the global Internet.) Initially comprised of four West Coast nodes, UCLA, Stanford Research Institute (SRI), University of California at Santa Barbara (UCSB) and University of Utah (UTAH)

Java Built for embedded systems

19 years ago, David L. Ripps wrote an article about Java and Embedded systems for Javaworld. If you want to understand the collaboration between embedded system programming, mobile connected devices, and the internet of Things, Ripps's articles are still very useful.

While there is some hype about the internet of Things (things) gossip, in essence, the next moment in the Internet will change the way the previous generations of information processing technology eclipsed. The internet of things is not just the talk about of the mouth, but the new technology that changes the world. Refer to the timeline below, which shows the tipping points in the Internet as we know it:

    • 1982 to 1989: The TCP/IP network was born.
    • 1985 to 1989: The commercialization of the internet began to emerge.
    • 1990 to 1991: The World Wide Web was formally established.
    • 1990 to 1998: the traditional computer was truly redesigned for Internet devices.
    • 1996 to present: Although slowly but surely, we have entered the era of "domination" by mobile internet devices (ie, the internet of Things).


Complementary technologies for the Internet of Things are on the line. HTTP/2 as a new version of the key network protocol, to a certain extent will adapt to machine-to-machine communication. Thingsee is a pioneer in the IoT Development Kit, which provides the hardware needed for IoT development.

Silicon Valley wise Tim O ' Reilly has stressed that the internet of things is far more than just connecting coffee machines, refrigerators, and other nonessential devices. With sufficient sensors and automation equipment in place, the Internet of things will undoubtedly be a great advance for mankind. Java will assume the role of the main force in the coming changes.

how the Internet of things works

In September 2014, Andrew C. Oliver wrote such a paper to discuss the importance of networking in team collaboration at the implementation level. In this case, team collaboration will condense both humans and computers.

Since the device does not just communicate with human users, it also needs to communicate with other devices, fundamentally new functions emerge--the refrigerator can not only know that your tomatoes are out of use, it may also order more in your name. The success of pervasive computing is that computers will be relegated to the "behind the scenes", working with other connected devices to work out facts and events and solutions. Only the results of the executable level will be submitted to the user. The achievements of the Internet will leave us no longer to think too much, because the IoT seamlessly solves everything for us.

The most mundane examples are often the most persuasive. In recent news, we have witnessed an impressive array of IoT applications, including agricultural pest management, small bomb sniffers, and advances in medical diagnostic technology. Think of a humble vending machine substitute-it is stored in moderation, properly maintained, and silently waiting for your orders.

When you put your bill into a vending machine and press the button to perform your purchase, there are several interactive mechanisms to confirm that you can satisfy your hunger. You don't need to understand or agree with the whole process, your stomach will be very happy with the results. Now we have a vending machine with internet of things capabilities. When you purchase on the Internet of Things, your purchase will trigger a global operation to keep your inventory balanced and your parts properly maintained, a new model that lowers the total cost by 30% compared to the previous IoT model.

the embedded computing journey of Java

Only a few people now realize that Java is a language built for embedded computing. Its earlier version was intended specifically to refer to household appliances such as the TV set-top box interface. James Gosling (the father of Java) about the original idea was to use inter-device communication as the core, he imagined that Java is not only used for device-to-user communication, but also used for device-to-device communication. After 20 years, these initial design advantages are ready to support the internet of things.

The universality of Java also makes it very well adapted to the internet of things. A great deal of resources from around the world are devoted to transferring Java to a new generation of programmers and ensuring that it has been maintained-to support all product systems that depend on it. The number of successful applications and systems with 100,000 counts has proven Java's talent.

It is important for developers who explore embedded programming to differentiate the parts of the Java platform. There is no need to write or read program changes for embedded development: Good Java programmers can easily read the source code of embedded systems as they read typical desktop enterprise applications. However, the Library and development environment (especially the development and testing environment) is customized for embedded Java programming. Make sure you have the right embedded development environment.

is Java too large for embedded systems?

Because embedded devices are always stretched for computational performance, Java is often not the first choice for embedded development. Assembler, C, and even Python can be more open in limited memory, low-power CPUs, or other hardware-constrained systems. However, as the average level of the embedded environment grows, this obstruction has gradually disappeared in recent years. The adoption of New Java compiler technology in embedded environment also reduced the resource demand.

The outlook of Java embedded development in the 2015
Java had the aptitude for embedded programming as early as 1996, but lacked momentum. Today this trend is growing fast, and a set of embedded ecosystems-including Java standards and tools-is ready to be built.

Between 2000 and 2010, Java-based embedded or "micro" computing focused on J2ME (Jave 2 Platform, Micro Edition) is a universal fact. Now, the Java platform, the mini-version, or Java ME is already a standard embedded application runtime environment. Although Java me and its concepts-especially profiles and configurations---are still critical, mobile Java developers tend to focus more on Android and HTML5 user interfaces. The mobile phone is the most common embedded computer, and now sells about four-fifths of Android-based devices. (Although Android supports Java ME, these two have different product lifecycles, and it's unclear who will decide what will be the next generation of actual embedded device application environments).

(Translator Note: The profiles is a summary of the characteristics of an industry or a particular field, each set of tables specifically targeted at a particular category of equipment; configurations translation configuration, Java me introduces the concept of configuration, shielding the physical characteristics of different hardware devices)

The summary table (profiles) and configuration (configurations) are key concepts in embedded programming. An embedded summary such as the MIDP (Mobile Information Device profile) is a set of APIs that support related devices. The configuration is a set of framework specifications. The idea of not rigorously configuring the configuration as a summary of the table, perhaps helping to understand the concept of a summary, including the most significant CLDC (Connected Limited device configuration) or a wired connection device, is also consistent with this thinking. (see "Jim Connors ' Weblog" For more information on the summary and configuration applied to the Internet of Things).

In addition to the summary and configuration of Java ME, a handful of enterprise-class Java technologies hold the potential for embedded development. Java Management Extensions for distributed resource management and monitoring (that is, jmx Java Management Extensions) can be a complete complement to embedded definitions someday. Real-time Java (real-time Java) also occupies an important place in the IoT embedded programming.

Real-time models and tools for Java
In medical, transportation, manufacturing, and other industries, embedded applications that connect sensors and effectors are very demanding in real time. Predictable, accurate results for pacemakers, engine controllers, pipe valves and so on are all related to life and death, not just annoying stack backtracking.

While James Gosling wanted Java to do the general real-time requirements, in the early days it wasn't Java's forte. In particular, many Java runtimes (Java runtimes) are notorious because they are unreliable or at least uncoordinated when dealing with garbage collection. RTSJ (Real-time specification for Java, the Java real-time specification) and related standards are used to handle the time uncertainty of these events-periodic or sporadic task scheduling, task duration and CPU time budgeting, garbage collection threads, Enable certain tasks to avoid a quantitative supply of garbage collection delays. RTSJ was approved in 2002 and has been implemented by many Java virtual machines.

Although RTSJ was shelved by the Java community processes (Java Community process) until February 2015, experts have been actively improving and updating them over the past decade. For example, JAMAICAVM is a set of RTSJ implementations supported by Aicas GmbH and is now available free of charge for educational or other non-commercial use.

timelines for real-time systems

Embedded especially real-time standard development of the time line is generally more than the typical consumption software long. A successful mobile App can peak in six months and disappear out of sight, while embedded software in medical devices, cars and factories often takes decades of reliable operation. The published standards that affect these applications take longer to draft accordingly.

Recently, Oracle introduced the Java SE Real-time system, suggesting that Java SE has been fully enhanced to meet "soft" real-time requirements. "Soft" here has at least two distinct meanings. One is the requirement that there is an average performance of the software, for example, it is good enough for an ordinary bank transaction to be sent within 300 milliseconds. The "hard" real-time requirements are completely different, such as a motorized solenoid valve, which shuts down in one-fourth seconds when an application receives an alert is the worst case scenario. The most critical requirement for "hard" real-time in this sense is that the worst-case scenario can be predicted.

For many applications embedded in the Internet of things, "soft" is fully qualified in real time. For applications that require hard real-time support, Java developers largely turn to JSR-302: Security-critical Java technology. This specification is a subset of the Java real-time specification, which is partly dependent on CLDC. In addition to other features, the security-critical Java defines its own concurrency model and real-time threading. The Open Group first started working on security-critical Java in 2003. When asked about the specification this spring, Doug Locke, director of the JSR 302 specification, estimated that a specification would be certified in the early May 2015, with a reference to the implementation, after a long gestation period.

future prospects for embedded Java

Java has many expectations in embedded programming, and it has a long way to go in order to meet the needs and opportunities of the upcoming IoT Big Bang. Over the next few years, $ tens of billions of of Java-powered devices will be put into use as part of the Internet of things. My next article on the topic will be an example of a hobbyist and business environment, citing specific examples of Java embedded programming, and more in-depth explanations of why RTSJ 2.0 's impact on Java real-time programming goes far beyond traditional domains.

Java: The king of the Internet programming of the past and the future

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.