Distributed Computing Frameworks
Java is defined as "a simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable, high performance, multithreaded, dynamic language. In the context of PsiNaptic, the features of note are "architecture-neutral" and "interpreted".
Unlike virtually all traditional languages, Java is not compiled into an executable that only one platform understands, but is instead compiled into a standard byte code. A Java Virtual Machine (JVM) interprets the byte code. A JVM is required to be implemented on each computing platform. Once a JVM is implemented from a computing platform, any Java program (byte code) can be run on that platform.
This simple design makes it possible to write an application and have that application run on any platform that has implemented a JVM. This makes Java "architecture-neutral" and provides a methodology for the exchange of code along with data between platforms.
For further information, please see http://java.sun.com.
Java programming language has increasingly been adopted across a variety of platforms from enterprise servers (J2EE™), to PCs (J2SE), all the way down to mobile phones and PDAs (J2ME). The existence of this "write once, run anywhere" language makes it possible to share and move code across all types of platforms.
J2ME is a new, very small Java application environment. Currently, there are two J2ME configurations: the connected limited device configuration (CLDC) and the Connected Device Configuration (CDC).
CLDC is designed for devices with constrained CPU and memory resources. Typically, these devices run on either a 16 or 32-bit CPU and have 512 KB or less memory available for the Java platform and applications.
CDC is designed for next generation devices with more robust resources. Typically, these devices run on a 32-bit CPU and have 2MB or more memory availabile for the Java platform and applications.
Sun allows industry groups to define Java technology-based profiles specific to their industry. These profiles are specifications that define a Java technology-based platform suited to a specific industry or class of device. Industries benefit from the extensive flexibility in defining only what they need for a class of device.
A profile targeted at the wireless market and utilizing CLDC can retain a very small footprint, consume little power, and provide as much capability as is needed for handheld devices. Devices that require more capable environments can receive profiles that provide additional functionality and are based on CDC. All profiles share a J2ME base and the ability to safely download code onto a device and configure the Java environment. Source: Sun's Java 2 Platform, Micro Edition datasheet.
For further information, please see http://www.java.sun.com/j2me.
Embedded systems are the brains behind 90 per cent of all electronic devices worldwide. According to the International Data Corporation (IDC), revenue from embedded systems will grow at a compound annual growth rate (CAGR) of 76 per cent from 1998 to 2003, reaching $7.9 billion by 2003. Included is the worldwide "systems on a chip" market, which will reach $4 billion in 2003 and the worldwide set-top boxes market, which will be over $2.5 billion in 2003. Gartner Group estimates that the market for embedded microprocessors will grow from approximately 254 million units in 2000 to 380 million units in 2003.
Embedded systems are found in: office products, consumer products, industrial automation products, automobiles, medical instruments, vending machines, vehicles, communications infrastructure, etc.
Jini network technology, developed by Sun Microsystems Inc., defines mechanisms to support the federation of machines or programs into a single dynamic distributed system. Devices that participate in such a system can enter and leave at will, can tolerate network and system variability, and can offer 'services' and resources to other devices and systems in the federation. A 'service' refers to an entity that can be used by a person, group, organization, program or other service. The service can be anything that is offered by a computational, networked device, including access to a network, computation, storage, information, access to hardware (such as a printer, access point, etc.) to another user.
Jini network technology has existed for several years. It enables devices to seamlessly access each other, seek out and exchange applications and information and adapt to a continually changing environment. Until recently, Jini technology's large footprint (3MB) made it impractical for many embedded Java devices.
The emergence of pervasive corporate intranets and the Internet has changed the computing landscape in a fundamental way. Your computer or computing device now has potential access to any other device connected to the network. With the advent of wireless networking technologies, the computing device has become mobile. This distributed network of computing devices, both large and small, wired and wireless, is the future of computing.
Jini network technology is a protocol architecture for providing services in a network and for creating spontaneous interaction between programs that use these services. Jini technology acknowledges that a distributed computing environment is fundamentally different from a single processor system. It was designed to allow service on a network to be available to anyone who can reach it and to do so in a safe and robust way.
Jini network technology was designed to meet the following goals:
- To facilitate network plug and work: The user should be able to plug in (or bring within transmission range) a Jini technology-enabled device or service and have it be visible to the rest of the network without set up work.
- To erase the hardware/software distinction: It should not matter to the network, nor to the end user for that matter, whether the service is hardware or software-based. The service will be available to end users in the same manner whether they are hardware or software-based or a combination.
- To enable spontaneous networking: When services 'plug in' or come within range, the services can be discovered and used by clients or other services.
- To promote service-based architecture: With the simple mechanism for deploying services on networks, more products can be designed as services instead of stand alone applications.
Using Java and Jini, it is possible to use a 'service-centric' architecture to allow effective use of the services available on a network. As long as the service interface is defined, the details of the service implementation can change as you buy new equipment and as equipment or technologies change.
For further information, please see http://wwws.sun.com/software/jini.
For further information, please see http://www.bluetooth.com/.
Bluetooth is being deployed in a variety of consumer devices such as mobile phones, PDAs, digital cameras, automobiles, etc. Bluetooth makes low cost, low power wireless networking a reality for all types of resource-constrained devices.
Bluetooth devices can be used in a variety of single chip-embedded applications such as appliances and wearable computers and can be distributed throughout personal, home, business, industrial and automotive environments.
Bluetooth wireless communications technology is a de facto standard as well as a specification for small-form factor, low cost, short range radio links between mobile PCs, mobile phones and other portable devices. Where cables now connect many devices, a wireless Bluetooth connection will provide low cost wireless communications and networking between devices. This enables wireless connectivity to networks and other devices any time, anywhere. Bluetooth is based on a global radio frequency (RF) standard, which operates on the 2.5 GHz ISM band, providing license-free operation in the United States, most of Europe and Japan.
The Bluetooth Special Interest Group (SIG) is an industry group comprising leaders in the telecommunications and computing industries who are driving development and promotion of Bluetooth wireless technology and bringing it to market in a broad range of products.
The evolution and promotion of Bluetooth wireless technology within the Bluetooth SIG and in the user community is led by the following promoter group companies: Agere, Ericsson, Intel, IBM, Microsoft, Motorola, Nokia and Toshiba.
The Institute of Electrical and Electronics Engineers (IEEE)802.11b specification allows for approximately 11 megabits per second (Mbps) of raw data at distances from several dozen to several hundred feet over the 2.4 GHz unlicensed band. The distance depends on impediments, materials, and line of sight.
The 802.11b standard is a wireless transmission technology, the de facto choice for wireless local area networks (WLANs). It supports data rates of 1,2,5 and 11 Mbps over distances of hundreds of feet to a few miles, though typical devices operate over about 150 feet. At 11 Mbps, it is comparable to the first generation of office Ethernet networks (10 Mbps) and delivers comparable performance. Multiple units can operate in the same area.
WiFi stands for wireless fidelity, also known as wireless networking and commonly uses the 802.11b protocol. Hardware that displays the WiFi logo claims 802.11b compliance should interconnect seamlessly. WiFi is a local area network that uses high frequency radio signals to transmit and receive data over distances of a few hundred feet and uses Ethernet protocol.
The IEEE's 802.11g standard defines the way wireless LAN gear communicates at up to 54 megabits per second while remaining backward compatible with 11 Mbps 802.11b. This important breakthrough enables streaming media, video downloads and a greater concentration of users without interference. In addition to technical hurdles, the standards group had to overcome commercial rivalries and Federal Communications Commission (FCC) rule changes to enact the standard.
In geek speak, the IEEE 802.11b standard is the family of specifications created by the IEEE for wireless, Ethernet local area networks in 2.4 gigahertz bandwidth space. In other words, IEEE 802.11b is a way to connect our computers and other gadgets to each other and to the Internet at very high speed without cumbersome wiring and without a significant price tag. Providing as much wireless speed as it does at such a modest price promises to have profound implications for a world bent on anytime/anywhere communication.
The key to ubiquitous and pervasive computing will be the widespread adoption of a communication infrastructure based on readily available and non-proprietary programming language and communications protocols. This will ensure smart objects made by different manufacturers can communicate with and accept applications from each other.
As more and more non-PC devices become web-enabled, the pervasive computing market potential continues to grow.
As processing power increases and as costs decrease and the availability of IP-enabled data networks continues to grow, more embedded systems will offer connectivity either with other devices or with the Internet.
The proliferation of standards such as Bluetooth and 802.11b in wireless and Java in software is a force driving the shift toward pervasive computing applications. Research by IBM, IDC and Gartner indicates that the pervasive computing market will reach $215B in 2003 with a CGR of 57% from 2000-2003.
The very term 'pervasive computing' indicates that there are almost limitless applications for this technology. The first applications are in the areas of home and industrial automation and controls, automobiles, personal communication devices, health care and mobile commerce.
Distributed Computing Frameworks
This is a type of computing in which the different components and objects comprising an application can be located on different computers connected to a network. So, for example, a word processing application might consist of an editor component on one computer, a spell checker object on a second computer and a thesaurus on a third computer. In this case, a system is created that is greater than the capabilities of each unit. In some distributed computing systems, each of the three computers could even be running a different operating system. It can also be used to share similar workload amongst several computers.
One of the requirements of distributed computing is a set of standards that specifies how objects communicate with one another. There are currently two chief distributed computing standards: CORBA and DCOM.