Technologies for an Information Age: Building the Distributed Object Grid with Java and XML .opennet - PowerPoint PPT Presentation


PPT – Technologies for an Information Age: Building the Distributed Object Grid with Java and XML .opennet PowerPoint presentation | free to download - id: 3bd7b-MzllN


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation

Technologies for an Information Age: Building the Distributed Object Grid with Java and XML .opennet


... Distributed Object Web: The Confusing Multi-Technology Real World Middleware Server Layer ... Web Technologies in a Nutshell -- Java ... – PowerPoint PPT presentation

Number of Views:108
Avg rating:3.0/5.0
Slides: 36
Provided by: geoffr1


Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Technologies for an Information Age: Building the Distributed Object Grid with Java and XML .opennet

Technologies for an Information Age Building the
Distributed Object Grid with Java and XML
  • Fall Semester 2001 MW 500 pm - 620 pm CENTRAL
    (not Indiana) Time
  • Geoffrey Fox and Bryan Carpenter
  • PTLIU Laboratory for Community Grids

Computer Science, Informatics, Physics Indiana
University Bloomington IN 47404
Abstract of PTLIU Fall 2001 Introductory Lecture
  • This Foilset contains introductory material on
    PTLIU Course IT1 for Fall 2001
  • Some Aspects of Course Logistics -- all students
    must go to web site for complete discussion of
  • http// (Temporary)
  • We give an overview of material covered in the
  • The Internet is the most important and by far the
    largest distributed computer system and it has
    spawned the most remarkable and general purpose
    software ever seen
  • So in studying the Internet, we study distributed
    computing (hardware and software)
  • After this course, Students should be able to
    design and build any distributed system
  • There is not time to give a huge amount of
    programming experience
  • We will give a summary of Base Distributed Object
    Web and Internet Technologies

Leave Now Unless ……
  • You are practically minded and wish to learn how
    to write real software to solve real distributed
  • Your software should work and be documented!
  • We will (depending on survey of students) cover
    enough Java to be able build systems but focus
    will be XML and overall system architecture
  • You need to be experienced enough in programming
    to cope as tools for server side are quite
  • You must be able to tolerate initial confusion as
    I am at a new institution and technology new

Practical Issues Books
  • Inside XML, by Steven Holzner, New Riders
    Publishing ISBN 0735710201, November 2000 (4.5
    star, 1979 Amazon)
  • This book is slightly out of date as some key
    concepts (Schema) were not finalized when book
    went to press
  • There are some 280 XML books at 25
    are not yet published
  • Core Java 2 is one if the best Java book(s)
    chosen from the 1670 available at Amazon. Others
    are also excellent (e.g. Java How to Program by
    Paul J. Deitel, Harvey M. Deitel)
  • Volume 1-Fundamentals (4.5 star, 684 Amazon)
  • Volume 2-Advanced Features (3.5 star, 3134
  • The Sun Microsystems Press Java Series (Prentice
  • Cay S. Horstmann and Gary Cornell
  • Vol 1 ISBN 0130894680 5th Edition December 2000
  • Vol 2 ISBN 0130819344 4th Edition December 1999

More Books
  • Other specialized books cover JavaScript, Dynamic
    HTML, Enterprise Javabeans and J2ME (Java 2
    Microedition for PDAs) for some of this, can
    use Web
  • JavaScript Bible, 4th Edition, Gold Edition ,
    Danny Goodman, Hungry Minds, Inc ISBN
    0764547186, January 2001 (4 star, 19,621 Amazon)
  • Dynamic Html The Definitive Reference by Danny
    Goodman, O'Reilly Associates ISBN 1565924940,
    August 1998 (4.5 star, 1190 Amazon)
  • Enterprise Javabeans by Richard Monson-Haefel,
    O'Reilly Associates ISBN 1565928695, March
    2000 (4.5 star, 889 Amazon)
  • Java 2 Micro Edition (Professional Developer's
    Guide Series) by Eric Giguere, John Wiley Sons
    ISBN 0471390658, November 2000 (4.5 star, 5488

Grading and Support
  • Course Assistant is Xi Rao Computational Science
    and Information Technology
  • We will use a web-linked database (built by
    previous students of this class sequence at
    Syracuse using technologies you are learning)
  • Grade will be based on about 7 homework sets. The
    first of these will be a report and the last a
    major project which will be larger than for IT1.
    The rest will involve various practical
    activities in XML and Java

Overview of .opennet Technologies Course - I
  • We will NOT discuss the beat up client side (in
    Microsoft-Netscape battle won by MSFT) Applets,
    Dynamic HTML and JavaScript (good ideas albeit a
    victims of battle)
  • Course could be useful even if you know Java we
    will discuss topics like
  • Servlets Simple way of building Java Server
    side applications
  • RMI Foundation of pure Java distributed objects
    and systems built in these terms
  • JDBC (Java Database Connectivity) Universal
    interface between Java and databases
  • Java Server Pages (how to build client software
    if you sell servers and dont like MSFT)
  • Enterprise Javabeans building blocks of middle
    tier software

Overview of .opennet Technologies Course - II
  • We will start by discussing XML and some exemplar
    applications such as RDF SMIL WSDL and SVG
  • We will discuss Webs and Grids
  • The four approaches to the Object Grid
  • CORBA from the Object Management Group
  • SOAP (Simple Object Access Protocol) from W3C
    the pure web approach
  • RMI, Enterprise Javabeans (EJB) and Jini the
    pure Java approach
  • COM from Microsoft
  • We will build on discussion of XML as a
    technology to show how it defines Objects and
    then how you make these objects useful by
    manipulating them with Java and accessing them
    with portals

Distributed Objects
  • Anything with a digital signature is an object
  • Examples of current object technologies
  • Documents -- URL
  • "General Programs including database invocations"
  • Old Style Web -- CGI
  • New Style Web -- SOAP makes server side objects
    look like HTML tags as far as invocation goes
  • CORBA and COM -- special "interface definition
    language" (IDL) defines invocation in C like
  • RMI uses Java language as IDL language
  • Benefits of distributed objects
  • allows objects written in different languages to
    communicate seamlessly via standardized messaging
    protocols embodied by middleware.
  • Higher levels of transparency of interoperability
  • Objects can be managers of resources like
    telescopes, satellites, computers, databases,
    medical devices ….
  • provides flexible grain of decomposition for
    building complex systems

Todays Distributed Object Web The Confusing
Multi-Technology Real World Middleware Server
Middle Layer (Server Tier)
W is Web Server PD Parallel Database DC
Distributed Computer PC Parallel Computer O
Object Broker N Network Server e.g. Netsolve T
Collaboratory Server
Third Backend Tier
Multi-Tier Client Server Service
Back-end Tier Services
Middle Tier Servers
Client Tier
Object Broker
Web Server
RMI(IIOP) or Custom
Specialized Java Server
Old and New Useful Backend Systems
Javabean Enterprise Javabean
Distributed Object Web Approach
  • Need to use mix of approaches -- choosing what is
    good and what will last
  • For example develop Web-based databases with Java
    objects using standard JDBC (Java Database
    Connectivity) interfaces
  • Oracle, DB2, Informix, Sybase, Lotus Notes,
    Object database choice becomes an issue of
    performance/robustness NOT functionality
  • Use CORBA (C) or Java as software to wrap
    existing applications with XML as syntax to
    define these distributed objects
  • Note Middle tier insulates client from backend --
    can use one object model for user level (object
    functionality) and different one for backend
    (object access and persistent store)
  • specialized object databases getting
    overwhelmed by multi-tier approach with Oracle
    etc. traditional backends

Write Software in Java but define data and
interfaces in XML
3-Tier Architecture and Different Object Models
  • There are several important Object Models COM,
    CORBA, Java, Web, Oracle Database ……
  • But it doesnt matter!!

XML File System (Web Site)
Middle Tier Business Logic dissociates User and
Back End
Emerging Object Grid Service Model
Clients and their servers
Back End Servers and their services
Middle Tier Services hosted on Web servers
GEM Portal Architecture
Backend Services
Middleware Bunch of Web Servers and Object Brokers
Collaboration Security Lookup Registration Agents/
Application Integration Visualization
Server Seamless Access
Computational Science Portal The Computing
Multidisciplinary Control (WebFlow)
Portal Control
Parallel DB Proxy
NEOS Control Optimization
Optimization Service
Origin 2000 Proxy
NetSolve Linear Alg. Server
Matrix Solver
Agent-based Choice of Compute Engine
IBM SP2 Proxy
Data Analysis Server
Services in Computing Portals
  • Security
  • Fault Tolerance
  • Object Lookup and Registration
  • Object Persistence and Database support (as in
  • Event and Transaction Services
  • Collaboration among scientists around world
  • Job Status as in HotPage (NPACI) and myGrid
  • File Services (as in NPACI Storage Resource
  • Support (XML based) computational science
    specific metadata like MathML, XSIL
  • Visualization
  • Programming
  • Application Integration (chaining services viewed
    as backend compute filters)
  • Seamless Access and integration of resources
    between different users/application domains
  • Parameter Specification Service (get data from
    Web form into Fortran program wrapped as backend

Any Portal
What is a Web Client I?
  • Originally we thought of Web Systems as a set of
    communicating objects with
  • Not much on client linking to UNIX processes
    invoked by CGI
  • Then we excitedly got balanced client server
    applications with JavaScript and Java applets on
    client which was faster as no network traffic for
    small local actions
  • Servlets, Enterprise Javabeans and CORBA provided
    robust middle tier programming model
  • But browsers never became a good programming
    environment as actions (say of JavaScript)
    undefined or quality (of Java virtual machine in
    browser) poor.
  • So browsers are just display technology and one
    should use servers or applications for software
  • HTML SVG XHTML WML are used to define what client
    is to display

What is a Web Client II?
  • Gilders law of the Telecosm (September 2000, Free
    Press ISBN 0684809303, 3557 in Amazon Sales)
    says network bandwidth is improving 3 times
    faster than CPU performance
  • One can make dynamic clients with either client
    side JavaScript (or equivalent) or with server
    side Java Server Pages (JSP)
  • JSP provides similar functionality to Java
    Applets with Java running outside browser in a
    nice robust server
  • This is the old way we built applications done
    with faster networks and more elegant
    implementation (we used to invoke Perl CGI
    scripts to provide dynamic web pages but this was
    too slow)
  • Gilders law supports JSP approach

Palm Tops help define Client Model
  • There is growing interest in wireless portable
    displays in the confluence of cell phone and
    personal digital assistant markets
  • By 2005, 60 million internet ready cell phones
    sold each year
  • 65 of all Broadband Internet accesses via non
    desktop applicances
  • One needs to design web systems so they can be
    accessed from either a PDA or a PC or a Powerwall
  • This implies that only code in browser should be
    that immediately needed to relay events between
    user and web system all logic (state) should
    be outside browser.

Web Technologies in a Nutshell -- Java
  • Java -- Objected Oriented version of C/C
    supporting Interactive Distributed Computing.
  • Original Web architecture (e.g. CGI) was
    server-side. Java allowed design and
    Implementation of balanced Client Server
    Applications but this original motivation is less
    important now
  • Java likely to be a dominant software engineering
    and Scientific Computing language -- see
  • This course discusses Java as a language in
    context of a system building tool
  • Java will probably be preferred language for
    development of next generation general or custom
    Web servers and clients
  • Programmers more productive in Java
  • Java has frameworks (libraries) for key Internet
  • Java can build client side customized GUI's and
    graphics/image processing but Microsoft
    JavaScript and DHTML competes here and MOST
    Industry use of Java is in middle tier
  • New Java 2 has several enhancements including
    very many specialized APIs
  • Javabeans are (visual) component model for Java
  • Enterprise Javabeans are Java middleware
  • Jini and RMI allow distributed objects to be
    found and communicate

Web Technologies in a Nutshell - JavaScript
  • JavaScript -- only superficially related to Java
    and was called LiveScript -- is Netscape's
    (somewhat supported by Microsoft) fully
    interpreted Client side extension of HTML. This
    is a good Client Window integration
    /customization technology where flexibility more
    important than performance
  • i.e. use JavaScript for Rapid Prototyping of
    Complex User Interfaces
  • First examples use JavaScript together with
    frames ( HTML extension) for interactive
    multi-window technologies
  • JavaScript is roughly equivalent to "Abstract
    Windowing Toolkit/ Layout Manager" in Java but
    applied to Browser Frames and not Java windows
  • JavaScript cannot build complex filters or
    simulations as slow
  • But JavaScript with dynamic HTML is powerful
    client technology which is often easier and
    faster than Java -- it is faster as invokes
    optimized browser functions
  • both Internet Explorer 4 and Netscape have
    excellent JavaScript support
  • Server side version of JavaScript called LiveWire
    runs on Netscape Servers -- unsuccessful
  • Originally expected client side use of JavaScript
    to grow in importance but new view of Web clients
    limits use of JavaScript to small critical event
  • JavaScript on Palmtops called WMLScript

Web Technologies in a Nutshell - DHTML
  • There is an emerging DOM or Document Object
    Model which will be uniform model used by W3C,
    Netscape, Microsoft
  • It allow you to address individual components of
    a page e.g. text box, image or collections
    thereof as separate entities
  • DOM is quite close to IE 5 conventions and is
    based on XML
  • DOM ought to be critical for publishing industry
    Microsoft Word does not use except implicitly
    in Web export
  • Cascading Style Sheets allow one more powerful
    ways of assigning properties (such as color fonts
    etc.) to these components using either name(id)
    or type (lth2gt tag etc.)
  • DHTML or dynamic HTML allows one to address the
    components of document and change on the fly
    (without reloading page) the properties of these
  • This includes not only natural style properties
    but also position, size and visibility
  • DHTML currently handicapped by major differences
    between IE5 and Netscape 4 -- functionalities are
    similar but syntax very different
  • JavaScript combined with DHTML allows animations,
    graphs and replacement of just parts of text

Web Technologies in a Nutshell - XML
  • HTML is powerful but does not separate display
    and form (structure of document component as an
  • XML is a generalization of HTML which allows
    definition of arbitrary tags
  • e.g. ltstudent nameJane Doe classCSITIT1
    grade… gtWorking Hardlt/studentgt is more elegant
    way of capturing information in a reliable
    fashion than HTML
  • lth2gtStudentslt/h2gt ltulgtltligtJane Doe Working
    Hardlt/ligtltulgt ltligtClass IT1lt/ligt ltligtGrade
    …lt/ligt …. lt/ulgt lt/ulgt with a PERL program to
    extract data
  • XML allows powerful way of defining dynamic ascii
    databases useful for modest size data such as
    people, document citations etc.
  • XML parsers map XML tags into HTML for display or
    hand to programs to interpret
  • XML can also be used to define extensions to HTML
    such as special tags for mathematics (MathML) or
    chemistry (CML) or …..
  • XML defines syntax for serializing Web objects
    and transmitting between clients and servers SOAP

Example from Special Edition Using XML
  • HTML Version of Sales Sheet
  • ltdlgt
  • lt!-- Fruit --gt ltdtgtAppleslt/dtgt
  • lt!-- Price --gt ltddgt 1lt/ddgt
  • lt!-- Fruit --gt ltdtgt Oranges lt/dtgt
  • lt!-- Price --gt ltddgt 2 lt/ddgt
  • lt/dlgt
  • XML Version of Price list
  • ltFruitPriceListgt
  • ltfruitgt ltfruitnamegtAppleslt/fruitnamegt
  • ltPricegt 1lt/Pricegt lt/fruitgt
  • ltfruitgt ltfruitnamegtOrangeslt/fruitnamegt
  • ltPricegt 2lt/Pricegt lt/fruitgt
  • lt/FruitPriceListgt

Example from Special Edition Using XML
  • ltbottlegt
  • lttopgt type 3 childsafe lt/topgt
  • ltbodygt ltbody-typegt 100 count plastic
  • ltcontentsgt ltcountgt 100 lt/countgt
  • ltcontent-typegt aspirin lt/content-typegt
  • lt/contentsgt lt/bodygt
  • ltlabelinggt
  • ltfrontlabelgt XYZ brand generic lt/frontlabelgt
  • ltrearlabelgt XYZ directions and warning
  • lt/labelinggt
  • lt/bottlegt

XML Topics
  • Syntax and Examples
  • Types of Tools Available
  • How to define well formed and Validated XML DTD
    Namespaces and Schema
  • Events in XML and HTML JavaScript DHTML
  • XSL and CSS Style sheets including XPATH (how to
    specify location in XML document)
  • Parsing XML from Java and .. (SAX and DOM)
  • XLINK and XPOINTER XML hyperlinks
  • Applications of XML XHTML RDF WSDL SMIL SVG
    Dublin Core
  • Mapping XML to Java Castor

Example XML Software Application Descriptor
lt?xml version1.0?gt lt!DOCTYPE application
SYSTEM ApplDescV2.dtdgt ltapplication
iddislocgt lttarget idosprey4.npac.syr.edugt
ltstatus installedYes/gt ltinstalledgt
ltCmdLine command/npac/home/webflow/GEM/JAY/dis2l
oc /gt ltinputgt ltinFile
Namedisloc.output/gt ltsource Path/npac/home/Jigsa
w/WWW/tmp Namedisloc.out/ gt lt/inputgt
ltoutputgt ltoutFile Path/npac/home/webflo
w/GEM/JAY/ Namesimplex.input /gt
Path/npac/home/webflow/GEM/JAY/simplex/ /gt lt/outputgt ltstdout Path/npac/home/haupt/web
flow/history/ Namejob2001.out gt ltstderr Path/tmp/
Namehaupt_job2001.err gt lt/installedgt lt/target
gt lt/applicationgt
XML Applications
  • XHTML HTML done correctly in stricter XML
  • SMIL Syntax to specify multimedia data including
    timing of parallel and sequential displays
  • MathML Syntax to specify either content or
    presentation of Mathematics (TeX in XML)
  • SVG 2D graphics (compare Java2D)
  • RDF Specify Information resources
  • WML Specify how to transmit information to Cell
    Phones or PDAs
  • WSDL Define Grid Services so they can be
    accessed uniformly
  • CML Specify chemistry (e.g. molecules)
  • XSIL Specify Scientific data
  • For instance this can be used as basis of
    Xweather to specify data from sensors
    Xseismic for data from Seismic sensors etc.

The first Homework
  • Read Chapter 1 of Holzners book Inside XML
  • Browse http//
  • Think about this question
  • You are a librarian and wish to convert to an XML
    based card catalog and keyword/metadata system.
  • Your library has books but also a collection of
    13th century art and a collection of MP3 audio
  • This is a set of tags and attributes such as the
    following example
  • ltartifact typemp3 sku1110.223.334gt
    ltauthorgtBeatleslt/authorgt ltdaterecorded
    statusunknown /gt ... lt/artifactgt
  • Discuss and suggest further elements and

Basic Architecture
  • This is .opennet structure

Persistent Managed Store
Object layer
Virtual Machine
Form Output Page viewed by user
Web Technologies in a Nutshell - PERL
  • PERL is a C like Interpreter with powerful direct
    access to UNIX system commands and very easy ways
    of processing text files
  • PERL is a relatively old technology which has
    being overtaken by Java tidal wave.
  • Still PERL has significantly better Systems and
    Document handling capability than Java
  • Very good for UNIX as much easier than Shell for
    system scripts -- PC versions exist but not so
    well integrated into O/S
  • Wonderful regular expression handling
  • PERL is traditional but not best choice for
    server CGI extensions and development of filters
    even for simpler cases involving text documents
  • PERL5 is object oriented but much less elegant
    (in my opinion) than Java
  • PERL5 has very useful multidimensional
    associative and regular arrays
  • Use PERL for UNIX batch jobs to edit text files
    (e.g. map to
    and quick simple Web server extensions Convert
    latter to Java for production

Java Message Service JMS In a Nutshell
  • Supports MOM Message Oriented Middleware
    supporting either
  • Point to point One system sends a message to
    another system
  • Publish/Subscribe There is a server with
    labeled (by topic) queues
  • A given queue could contain all messages on
    Korean Recipes
  • A provider sends messages to appropriate queue
  • Any number of subscribers register interest in
    topics with possible sophisticated selectors
  • When a relevant message is generated for a given
    topic, all subscribers are sent this message.
    They can do what they like with it

Web Technologies in a Nutshell - Databases
  • The Web provides a convenient integration
    environment for "mature" technologies migrating
    from existing computer environments.
  • Object Relational databases are a good example
    where it is now straightforward in Microsoft
    Access, Oracle, DB2, Informix, Sybase etc. to
    provide a Web Interface to access and edit
    database with Java/JavaScript/Forms based
  • Object databases such as Illustra also interfaced
    to Web but this is wrong way to thing about
  • Systems such as Cold Fusion and Dreamweaver
    provide convenient high level interfaces to
    Web-linked databases
  • Note Web Authoring confusion is another result
    of unfortunate browser war lost by Netscape
  • Several excellent Java to Database packages
    becoming available with the JDBC standard based
    on ODBC -- more powerful but lower level than
    systems like Cold Fusion
  • CORBA will have good Web and Java Interfaces and
    in IT2 we will discuss integration of Web CORBA
    and database technologies
  • CORBA views a database as a managed persistent

Web Technologies in a Nutshell VRML/SVG
  • VRML plays same role to 3D worlds that HTML does
    to documents
  • VRML 1.0 has been widely available and specifies
    static 3D scenes through which you can navigate.
    Already provides universal visualization
    environment and we have examples of use In
    Geographical Information Systems
  • Note can embed clickable URL's as with ImageMaps
    which can be used to annotate images to provide
    interactive resources
  • VRML 2.0 is now the standard with critical
    enhancements so that individual elements of 3D
    world are dynamic and can be programmed
  • It is designed to support full interactivity
    (televirtuality) with texture mapped video,
    avatars etc.
  • VRML 2.0 could require huge computing resources
    whether used as the virtual car-dealership /
    interactivity gaming or more academic uses such
    as collaboration between teachers and students in
    3D virtual classroom
  • Bandwidth and computing needs of VRML are
    handicapping acceptance and appears that VRML
    will NOT make it -- replacement unclear
  • Microsoft ChromeEffects (XML based) and
  • Java3D address some but not all VRML applications
  • X3D is XML syntax for VRML
  • SVG is XML for Vector Graphics Primitives (much
    more limited but perhaps more realistic than VRML)