Saturday, July 05, 2008
Building or Augmenting your Information Technology
and other Technology Curriculums
with the SR4 Robot
Introduction
  1. Java
  2. Linux
  3. XML and Web Services

Introduction    The SR4 Robot provides students, young and older, with the opportunity to master key current-day Information Technology skills in an environment that is fun and challenging and rooted firmly in current and future technology. In addition, the IT skills can be augmented with the technical and engineering disciplines of electronics, robotics, mechanical design, and sensor technologies.

The SR4 is an ideal learning/teaching platform for high school, college and university students focusing or majoring in

  • Computer programming
  • Computer science
  • Computer engineering
  • Computer networking
  • Software engineering
  • Electronics engineering
  • Mechanical engineering
  • Physics
  • Mathematics

Below, you will find thumbnail sketches on Java, Linux and XML and Web Services, three cornerstone technologies to the interconnected, interoperable software applications currently being implemented in major US corporations today.

For more specific ideas on syllabuses and curriculums in these and related areas, perform separate searches at the Syllabus Finder, alternately using the terms "Java", "Linux", "XML" and "Web Services" and others you are interested in.

I.   Java

Java was originally developed as a platform-independent programming language and operating system for embedded computer devices (cell phones, cable TV set-top boxes, PDAs, etc.), but was quickly adopted as well by web developers as a tool to bring dynamic functionality to web browsers and web users. Java has a small footprint, able to transfer easily over dial-up lines, but delivering extremely powerful capability, multithreading back to a server for heavy processing beyond the scope of the remote (client) machine. Java is object oriented, very network competent, easy to learn, and able to run on any computer platform with a Java virtual machine installed; PC, Mac, Unix, Linux. Java programs can truly be written anywhere and run anywhere.

As an object oriented language, Java is fully extensible, able to add new functionalities (methods and instance variables) for whatever future requirements the Java programmer may encounter.

In addition to the ubiquitous computing world of embedded and portable computing devices and appliances, and the web world that Java so ably supports, Java is also the programming code behind countless critical business applications; e.g. BellSouth Corporation, Cooper Cameron Corporation, McKesson Corporation, Takata, Wells Fargo Bank, and Xerox Corporation all use Instantis, a java-based application that helps them manage their Six Sigma quality improvement programs; Apple, Burlington Coat Factory, Circuit City, Cole National, The Home Depot, Gap Inc. and KB Toys use 360Commerce's java-based Point-of-Sale, Back Office and Central Office applications; and a great many others.

Java Enterprise Best Practices
http://press.oreilly.com/pub/pr/669

II.  Linux

Linux is a compact and flexible version of the UNIX operating system which by the early 1990’s had become the dominant operating system for computer servers. Linux was introduced in 1993 and has enjoyed a phenomenal growth curve in just the last few years as a result of (1) the reliability of the software, (2) its availability royalty-free as open-source software, (3) the ease of user modification unencumbered by restrictive licensing, and (4) the support and endorsement of Linux by IBM, Intel, Hewlett-Packard, Dell, Oracle Corporation and many major commercial users as well as the educational and academic communities.

If you are already familiar with Unix, then you will be very comfortable with Linux. If you are not familiar with Unix or Linux, then you may well decide that now is the time to begin your exposure to Linux.

There are a number of distributions of Linux available, both by commercial firms bundling Linux with utilities, documentation, training and consulting or by other organizations. You may find The Official Red Hat Linux Getting Started Guide available online, as a good starting point for becoming familiar with the Linux technical landscape.

III.  XML and Web Services

It used to be (and in many places, still is today) that programmers would build software systems that store and manipulate strings and records of data where the strings and records, no matter how deliberately and cleverly designed, were still just “dumb” strings and records. All the smarts and intelligence about the records was hard-wired into the voluminous program code that manipulated them. For example, a record containing personnel data didn’t tell you about itself. All of the instructions regarding what data were contained in the record and what the program was designed to do with it, had to be found in the documentation of the program code or, if there was no documentation, then by meticulously tracing through what the program code actually did to and with the data.

Then, object-oriented programs came along, a huge step forward, closely linking together data and the program routines that acquire, manipulate and serve up the data. Program objects, in and of themselves, are smart. They are aware of both the data they contain and of the programming routines that they contain as well, to manipulate the data. Most important, they have the ability to pass this information on to other objects and devices that require knowledge and use of their data and/or program routines (methods).

But for objects (object oriented programs) to be truly interoperable with one another between programs written by different people (1) in different places, (2) in different programming languages, and (2) at different times (past, present and future) --- they must pass their data with common data tags that “everyone” --- all programs and objects with an interest or stake in them, can understand --- tags that identify and delimit the data. Enter Extensible Markup Language (XML).

To understand this better, you must understand that XML itself is not a single language. It is really a protocol or syntax for writing data tags that are designed to reflect the common and not-so-common data needs of certain applications (payroll or billing or financial reporting) or industries (manufacturing, banking, supermarkets) or domains (insects, mammals, planetary systems). These tag sets (schemas) are agreed upon by those working in those areas to handle the data they all require. The tag sets are not cast in stone and can be extended, modified and augmented as necessary in particular circumstances. What is important is that, once defined (and the definitions themselves are automatically accessible by the programs and parties whenever needed), communications across the office or city or country or world, and between all related parties, can occur between software and hardware automatically and transparently.

But schemes of XML tags don’t need to be agreed upon beyond your own work group or your own company, for you to begin to reap the benefits of interoperability that XML can bring to you --- between new programs that you write, between legacy programs that you’ve had around for a long time and your newer programs --- even between you and your business partners and key customers, except it is outside the company or organization where you will begin see the need to integrate what you are doing more broadly with what others are doing.

Now, with object oriented programs and XML you truly have smart records --- data that drives processes and integrates with other data and even audits itself --- seamlessly, automatically.

Finally, set up a scheme or procedure (SOAP, WSDL and UDDI) whereby programs (objects) can be found, matched, and called by one another --- and linked to one another as necessary --- over the web of any other communication network. This is web services; smart data driving smart programs that can find one another and interoperate with one another over the web.

Once you start programming with objects, XML and web services, you will have serious trouble going back to any of the old methods. The SR4 Robot is a platform on which you can learn and practice and master object-oriented programming (Java) with XML and web services. These skills are equally applicable to your career in Information Technology (IT) as they are to your potential interest in how to program physical active devices in the physical world, like robots.

Java and XML
http://java.sun.com/xml/b2b.html