EO Java Software

Home
EO News
EO Clients
EO Products
EO Services
EO Software
EO Careers
EO Contact
 

Executive Order

Defense and
Aerospace Systems
/\ /\ /\
Computer Software
Consultants and
Professional
Software
Development
Services.

Executive Order
Corporation is
the information
technology
company to offer
business solutions
for every point in
the technology
information supply
chain, including
retailers, carriers,
portals, developers
and enterprises.
/\ /\ /\
At Executive
Order we
make a difference
in your business!

WHAT IS JAVA  /   JINI   /    JDBC   /  SWING  /  JAVA BEANS

 

 

 

 

Click to go to Java site

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A small group of Sun engineers got together to give some serious thought to digital systems in everyday things -- since toasters, thermostats, games, and countless other devices contain increasingly complex CPU's -- and how they could get them to share information

The people building products, of course, all base their designs from different directions, depending on the hardware platform, operating system, and applications they use.  But what if your want some of these products to work together?  And what about security, reliability, and networking issues?

So these Sun engineers took apart a wide array of products and reassembled them with the goal of getting these disparate devices to talk to each other, pass objects to one another, and understand all the others' behavior in order to work together better.  This would minimize problems for manufacturers and make it simple for consumers to integrate.  When traditional languages proved inadequate, the engineers set out to find something new, modern, and simple.  And Java technology was born.

It was quickly discovered that Java technology had potential beyond what the engineers had envisioned.  Part of the elegance of Java technology lies in the simplicity it offers to both developers and users.  Developers enjoy a broad user base, platform independence, reduced development costs, and a consistent execution environment, while users benefit from live content, just-in-time software, and increased security.

But it was when Java technology was put on the World Wide Web that it really took off.  Java technology shook up the world by making Web pages come alive, yet it was soon obvious that the Java platform had far greater potential.  People adopted Java technology for its unique ability to enable the building and deploying of applications that run across any network, any operating system.  The time and costs involved in software distribution are virtually eliminated, enabling companies to devote more resources to developing their products.  And some industry experts feel that Java technology may change the software sales model from a fixed price to a per-usage strategy, which is more lucrative and discourages bootlegging.

Of course, while its benefits to the enterprise are what many industry experts tout, Java technology's advantages for consumer devices -- not unlike those that the original group of Sun engineers were toiling with -- has led to an explosion of innovative new products as well.

In a nutshell, Java technology is an open, standard, universal platform for network computing that scales from the simplest consumer devices to mission-critical applications, building on your existing hardware and software architectures to create a fully networked enterprise or innovative products beyond the enterprise.

Java was originally called Oak, and designed for use in embedded consumer - electronic applications by James Gosling.  After several years of experience with the language, and significant contributions by Ed. Fank, Patrick Naughton, Jonathan Payne, and Chris Warth it was retargeted to the Internet, renamed Java, and substantially revised to be the language specified here.  The final form of the language was defined by James Gosling, Bill Joy, Guy Steele, Richard Tuck, Frank Yellin, and Arthur van Hoff, with help from Graham Hamilton, Tim Lindholm and many other friends and colleagues.

Java is a general-purpose, concurrent, class-based, object-oriented language.  It is designed to be simple enough that many programmers can achieve fluency in the language.  Java is related to C and C++ but is organized rather differently, with a number of aspects of C and C++ omitted and a few ideas from other languages included.  Java is intended to be a production language, not a research language, and so, as C.  A.R. Hoare suggested in his classic paper on language design, the design of Java has avoided including new and untested features.

Java is strongly typed.  This specification clearly distinguishes between the compile-time errors that can and must be detected at compile time, and those that occur at run time.  Compile time normally consists of translating Java programs into a machine-independent byte-code representation.  Run-time activities include loading and linking of the classes needed to execute a program, optional machine code generation and dynamic optimization of the program, and actual program execution.

Java is a relatively high-level language, in that details of the machine representation are not available through the language.  It includes automatic storage management, typically using a garbage collector, to avoid the safety problems of explicit deallocation (as in C's free of C++'s delete).  High-performance garbage-collected implementations of Java can have bounded pauses to support systems programming and real-time applications.  Java does not include any unsafe constructs, such as array accesses without index checking, since such unsafe constructs would cause a program to behave in an unspecified way.

Java is normally compiled to a bytecoded instruction set and binary format defined in the Java Virtual Machine Specification (Addison Wesley, 1996).  Most implementations of Java for general-purpose programming will support the additional packages defined in the series of books under the general title The Java Application Programming Interface (Addison-Wesley).

The Java Language Specification by James Gosling Bill Joy Guy Steele

Jini connection technology is manifest as a new system architecture that makes the improvements these observations suggest: Jini technology brings to the network the facilities of distributed computing, network-based services, seamless expansion, reliable smart devices, and ease of administration.

Here's the vision: When you walk up to an interaction device that is part of a system employing Jini technology, all of its services are as available to you as if they were on your own computer -- and services include not only software but hardware devices as well, including disk drives, DVD players, VCRs, printers, scanners, digital cameras, and almost anything else you could imagine that passes information in and out.  Adding a new device to a system employing Jini technology is simply plugging it in.

How Jini Connection Technology Makes This Work
Jini technology provides simple mechanisms which enable devices to plug together to form an impromptu community -- a community put together without any planning, installation, or human intervention.  Each device provides services that other devices in the community may use.  These devices provide their own interfaces, which ensures reliability and compatibility.

In our story, the hotel suite provided a small network and a lookup service with which devices and services registered.  When the project disk was plugged in, it went through an add-in-protocol  -- called discovery and join--in which the disk first located the lookup service (discovery) where it then uploaded all its services' interfaces (join).  The other devices -- the PDA, the clamshell pager, the cell phone, and the laptop -- all went through the same process.

To use a service, a person or a program locates it using the lookup service.  The service's interface is copied from the lookup service to the requesting device where it will be used.  The lookup service acts as a switchboard to connect a client looking for a service with that service.  Once the connection is made, the lookup service is not involved in any of the resulting interactions between that client and that service.

It doesn't matter where a service is implemented -- compatibility is ensured because each service provides everything needed to interact with it.  There is no central repository of drivers, or anything else for that matter.

In our story, the presentation was mirrored on the TV; to do this, the person operating the laptop selected the TV screen display service and plugged it into the presentation software.  To reserve the hi-res printer, a service was selected that was built on top of the printer service to control who, how, and when the printer is used.

The Java programming language is the key to making Jini technology work.  Devices in a network employing Jini technology are tied together using Java Remote Method Invocation (RMI).  By using the Java programming language, a Jini connection architecture is secure.  The discovery and join protocols, as well as the lookup service, depend on the ability to move Java objects, including their code, between Java virtual machines. Java programming language is the key to making Jini technology work.  Devices in a network employing Jini technology are tied together using Java Remote Method Invocation (RMI).  By using the Java programming language, a Jini connection architecture is secure.  The discovery and join protocols, as well as the lookup service, depend on the ability to move Java objects, including their code, between Java virtual machines.

Jini technology not only defines a set of protocols for discovery, join, and lookup, but also a leasing and transaction mechanism to provide resilience in a dynamic networked environment.  The underlying technology and services architecture is powerful enough to build a fully distributed system on a network of workstations.  And the Jini connection infrastructure is small enough that a community of devices enabled by Jini connection software can be built out of the simplest devices.  For example, it is entirely feasible to build such a device community out of home entertainment devices or a few cellular telephones with no "computer" in sight.

Java Smart Devices

Devices permeate our lives.  Look around:  TVs, VCRs, DVDs, cameras, phones, PDAs, radios, furnaces, disk drives, printers, air conditioners, CD players, pagers and the list goes on.  A device performs a simple task, and only that task:  Today devices are unaware of their surroundings -- they are rigid and cannot adapt.  When you buy a disk drive, you expend a lot of effort to install it or you need expert to do it for you.

Now, devices of even the smallest size and most modest capabilities can affordably contain processors powerful enough for them to self-organize into communities that provide the benefits of multi-way interactions.  A device can be flexible and negotiate the details of its interaction.  We no longer need a computer to act as an intermediary between a cell phone and a printer.  These devices can take care of themselves -- they are flexible, they adapt.

A device that can take charge of its own interactions can self-configure, self-diagnose, and self-install.  When computers were the size of large rooms, it made sense to have a staff of people to take care of them.  As computers became smaller and shared by fewer people, each sys admin took responsibility for more computers.  But now the cost of a computer is low, and Jini technology creates the possibility of impromptu device communities popping up in all kinds of places far from any sys admin.  Self-managing devices reduce further the need for expert help, and this should lower the total cost of ownership for Jini connection technology-based systems.

Jini Connection Technology - specs etc from Sun

What has happened to Jini? - ZDNet article

JDBC is a java API for executing SQL statements.  (As a point of interest, JDBC is a trademarked name and is not an acronym; nevertheless, JDBC is often thought of as standing for "Java Database Connectivity") It consists of a set of classes and interfaces written in the Java programming language.  JDBC provides a standard API for tool/database developers and makes it possible to write database applications using a pure Java API.

Using JDBC, it is easy to send SQL statements to virtually any relational database.  In other words, with the JDBC API, it isn't necessary to write one program to access a Sybase database, another program to access an Oracle database, another program to access an Informix database, and so on.  One can write a single program using the JDBC API, and the program will be able to send SQL statements to the appropriate database.  And, with an application written in the Java programming language, one also doesn't have to worry about writing different applications to run on different platforms.  The combination of Java and JDBC lets a programmer write it once and run it anywhere.

Swing represents components by a common variation of MVC in which view and controller are combined into an oject called a  delegate.  Delegates both represent the model, as a view does, and translate user input inot the model, as a controller does.  Communication between view and controller is very complex.  Combining the two simplifies the job of component design.

As an example, consider a checkbox widget.  Regardless of visual representation, it has a state that can be either true or false.  This corresponds to the checkbox's model.  The way you represent these two states on the screen refers to its delegate-view.  When a user clicks the mouse on the checkbox, the delegate-controller is responsible for notifying the model of the intended state chacge.  Commonly, the delegate associated with a checkbox uses a checked box to represent the true state and an unchecked box to represent the false state.  It toggles the state when a user clicks within the box.  In this way, the delegate-view reflects the model and the delegate-controller translates user input into the model.

Swing widgets are subclasses of JComponent, such as JButton.  At any given time a JComponent has a single model and a single delegate associated with it.  Possible models for a particular JComponent are classes that implement a model interface specific to that JComponent.  For a class to act as a JButton's model, it must implement the ButtonModel interface.  Likewise, delegates are implementations of a delegate interface specific to the JComponent.  The ButtonUI interface defines a JButton's delegate.

Introduction to JGC/Swing - training course by jGuru Institute

Fundamentals of Java Servlets - training course by jGuru Institute

A JavaBeans component is an object that conforms to a communication and configuration protocol, as prescribed by the JavaBeans specification.  The JavaBeans specification prescribes programming conventions and dynamic discovery mechanisms that (1) minimize the design and implementation effort for small software components while (2) fully supporting the design, implementation, and assembly of sophisticated components.  The three fundamental aspects of the JavaBeans component as defined by the specification are events, properties, and methods. JavaBeans specification.  The JavaBeans specification prescribes programming conventions and dynamic discovery mechanisms that (1) minimize the design and implementation effort for small software components while (2) fully supporting the design, implementation, and assembly of sophisticated components.  The three fundamental aspects of the JavaBeans component as defined by the specification are events, properties, and methods.

BACK TO TOP

 

Home ] Up ] EO Professional Services ] [ EO Java Software ] EO Object Model ] EO Software Patterns ] EO UML Design ]

e-mail Executive Order at

Send email to website@eodas.com with questions or comments about this web site.
Copyright © 1997, 2009 Executive Order Corporation. All Rights Reserved.
Executive Order® is a Registered trademark of Executive Order Corporation.
Legal Terms and Conditions Copyright Notice and Internet Privacy Policy of Executive Order Corp.

Executive Order Corporation - We make IT happen.

Design and Development for your custom software.

Custom wireless solution provider for you organization.