Top Banner
Freight Database Wrapper Module For Dynamic Hypermedia Engine Project (DHymE) Project Report Summer 2000 Submitted to Dr. Michael Bieber Department of Computer and Information Science New Jersey Institute of Technology by Aparna Krishna
245

Freight Database Wrapper Module For Dynamic Hypermedia Engine

Feb 04, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Freight Database Wrapper Module For Dynamic Hypermedia Engine

Freight Database Wrapper Module

For Dynamic Hypermedia Engine Project (DHymE)

Project Report

Summer 2000

Submitted to

Dr. Michael Bieber

Department of Computer and Information Science

New Jersey Institute of Technology

by

Aparna Krishna

Page 2: Freight Database Wrapper Module For Dynamic Hypermedia Engine

2

INDEX

1.Introduction and Background

1.1 Project Background

1.2 Project Introduction

2. Project Description

2.1 Project perspectives

2.2 Project Functions

2.3 General Constraints

2.4 Assumptions and Dependencies

3. System Functional Specification

3.1 Functional Requirements

4. System Performance Requirements

4.1 Efficiency

4.2 Reliability

4.3 Security

4.4 Maintainability

5. System Design Overview

Page 3: Freight Database Wrapper Module For Dynamic Hypermedia Engine

3

5.1 System Organization Chart

5.1.1 Overall Design

5.1.2 Interaction with the rest of the engine

5.2 System Flow chart

5.3 System Data Structure preview

5.4 Operation Overview

5.5 Implementation Languages

5.6 Required Support Software

6. System Data Structure Specification

6.1 Input Specification

6.2 Output Specification

6.3 Bridge Laws

6.3.1 Element Types

6.3.2 Element Hierarchy

6.3.3 Bridge Laws

6.4 Messages

7. Module Design Specifications

Page 4: Freight Database Wrapper Module For Dynamic Hypermedia Engine

4

7.1 Module Functional Specification

7.2 Module Operational and interface specification

7.2.1 Interaction with the rest of the engine

7.2.2 Message Handlers in FDWM

7.3 Module Operation

7.3.1 To start the Module

7.3.2 To Shut down the Module

7.3.3 Error Conditions

7.4 Module Limitation/Restrictions and Rules

8. System Testing

8.1 Functions to be tested

8.2 Testing Procedure

9. Extending the Project

9.1 Some Extensions for this project

10. File Listings

10.1 File Locations

10.2 Explanation for each file

Page 5: Freight Database Wrapper Module For Dynamic Hypermedia Engine

5

Introduction and Background

1.1. Project Background

1.1.1. The Internet and World Wide Web

“The network is computer" comes true. The Internet computing is becoming the mainstream

of all computing. In the past fifteen years a new technology has evolved that makes it possible to

interconnect many disparate physical networks and make them function as a coordinated unit.

The technology called internetworking which accommodates multiple, diverse underlying

hardware technologies by providing a way to interconnect heterogeneous networks and a set of

communication conventions. The internet technology hides the details of networks hardware and

permits computers to communicate independent of their physical network connections. The

internet technology is an open system interconnection. It called an open system because unlike

proprietary communication systems available from one specific vendor, its specifications are

publicly available so anyone can build the software needed to communicate across an internet.

The World Wide Web is the most popular application on the Internet. Web applications

authors the function in a hypermedia environment analogous to second-generation computing

building and managing all hypermedia links using simple anchors and single-step navigation.

But with most of World Wide Web applications people usually suffer from the searching related

information because they can not find satisfied information sometimes.

Page 6: Freight Database Wrapper Module For Dynamic Hypermedia Engine

6

1.1.2. The Dynamic Hypermedia Engine

The Dynamic Hypermedia Engine, DHymE, is an approach to provide hypermedia

linking for World Wide Web applications that dynamically generate their content. It can run in

parallel with other applications and dynamically gives these applications hypermedia

functionality. The dynamic here means that there will be a run-time mapping of the application

information and relationships to hypermedia objects both within the system and external to it.

Many applications being brought to the Web have a well-defined architecture.

A primary portion includes a computational section and a secondary portion includes the

wrapper section which grabs the output of the computational part and formats it into HTML thus

allowing it to be displayed on the browser which forms the final interface to the application. The

DHymE intercepts the messages (in this case, HTML pages) between the application's

computational section and its interface section, automatically detecting the location of

interrelationships in messages and documents based on the knowledge of the application's

internal structure. It defines the mapping rules, Bridge Laws, between the structural relationships

of the application and the hypertext features. Therefore, not only does every anchor essentially

lead to a set of all relationships inside the application, but also leads to any user-specified

annotation and any other relationships external to the application. In this way, It provides not

only broaden information but also create new links, which lead to hidden information. Some

applications that would benefit from hypermedia are applications whose output is generated

dynamically such as Freight and also applications where information on the structure would be

valuable to see like databases.

Page 7: Freight Database Wrapper Module For Dynamic Hypermedia Engine

7

1.1.3. The Hypermedia

Hypermedia is a series of documents, each of which display on the screen as a visible

link to at least one other document in the set. The link represents different kinds of intra- and

interrelationships inherent within application structure. The link is usually highlighted, either by

bold-faced text, reverse text, differently colored text, or underlining. The user "navigates"

through a hypermedia by selecting these links, typically using either the keyboard or the mouse.

The link leads to another document, which in turn offers links to additional documents and so on.

In a well-constructed hypermedia, any significant reference is shown as a link; select that link

and you're reading the linked document.

Hypermedia encourages authors to structure information as an associative network of

nodes and interrelating links. This frees authors from the linear, sequential structure that

dominates most printed documents. Presenting information as an associative network enables

readers to access information in the order most appropriate to their purposes, freeing them from

obeying the implied linear ordering within printed documents. Hypermedia is the study of

relationship management. It concerns both representing a corpus of information in a non-linear

network and giving users access to relationships within a corpus of information. Multimedia also

concerns the development, use, management and integration of various media forms, including

text, graphics, audio, video, and animation. Incorporating multiple media offers the opportunity

to convey much more information effectively than a single medium provides. Hypermedia has a

rich feature set including guided tours, recommended paths, annotation, information overviews,

sophisticated backtracking, and so on.

Page 8: Freight Database Wrapper Module For Dynamic Hypermedia Engine

8

1.1 DHymE Architecture

The goal of this project is to provide full hypermedia functionality to a dynamic

application or "dynamically-mapped information systems" (DMIS) with minimal or no changes

to it. The dynamic- mapping hypermedia engine (DHymE) will serve any DMIS and user

interface system (UIS) that has an appropriate wrapper knowledge base. To integrate a new

DMIS or UIS, one has to specify a wrapper and knowledge base for it. Thus, to provide a DMIS

application with hypermedia support, the developer only has to declare the contents of its DMIS

wrapper and knowledge base. This may prove straightforward or complex. But, in any case it

only must be done only once to apply any DMIS instance.

1.2 Components of DhymE

The components of the hypermedia engine are developed to allow an application,

whether it is developed to use hypermedia or not, to register it's components with the hypermedia

engine in such a way so that a user when placing a request with the components of the system

can be identified. The two components that interact with the two ends of the system, are the user

interface and application, or the User Interface Wrapper (UIW) and the Dynamically Mapped

Information System (DMIS). The DMIS is the application whose components are being mapped

by the hypermedia engine.

Page 9: Freight Database Wrapper Module For Dynamic Hypermedia Engine

9

Figure 1

User Interface System (UIS): The web browser used by the user.

User Interface Wrapper (UIW): The User Interface System Wrapper provides the

following functions:

• Translates messages from the DHymE's standard format to something the

Page 10: Freight Database Wrapper Module For Dynamic Hypermedia Engine

10

UIS can process, and vice versa

• Passes messages between two systems

• Buffers the UIS, implementing any functionality the engine requires of the

UIS, which the UIS cannot provide itself.

Dynamically Mapped Information System (DMIS): The DMIS is an application,

which generates the content of its displays, or otherwise requires the hypermedia engine

to map hypermedia for it automatically at run time. e.g. NJIT registration system can be a

DMIS program which provides the students registration information dynamically, as and

when they are registered in NJIT.

Dynamically Mapped Information System Wrapper (DMISW): DMIS wrapper's

main function is to communicate with the application or DMIS, and to "understand" the

structure of the DMIS in order to map the components and relationships between them.

The DMIS uses a DMIS knowledge base to map the internal structure of the application.

User Preference Module (UPM): As the name suggests, the user can access this module

to set certain preferences for each module, thus it customizes one's environment.

Guided Tour/Index Engine Module: The guided tour module provides the user option

of creating or running a guided tour, which is a path of documents or objects. The guided

tour resides with the hypermedia engine and is closely associated with the index engine

module. The index engine module has the functionality of controlling the index or the

path of the tour and manipulates the tour from user inputs. The guided tour also generates

Page 11: Freight Database Wrapper Module For Dynamic Hypermedia Engine

11

menus for the user interface to receive input from the user in regards to creating a tour,

editing a tour, loading a tour, and navigating through a tour. The guided tour also

interacts with the BLEM or bridge law engine module to filter the links on the tour.

Bridge Law Engine Modules (BLEM): Bridge laws are used to describe the structure of

the application.

• Link Bridge Laws: These are used to identify links. A Link Bridge Law maps

the element instances to the global DMIS elements and produces the links for

them. Once the links are produced they are sent through to the user interface

wrapper. There might be a need to introduce a stopper bridge law which kind of

acts like a filter that removes all unnecessary links for the current anchor that has

been clicked. Alternatively, these bridges law could give the user information

about t hat kind of anchor and allow him or her to choose as to what he wants to

do.

The BLEM module uses the Bridge laws stored in a database to generate the necessary

links and passes them to the relevant module through the Gateway.

Gateway: The Gateway serves as the sole message router in the system. Any inter-

module communication is done with the help of the Gateway server. The Gateway

module provides helper methods to send and receive messages without knowing the

communication-specific implementation details. The Gateway server forwards the

Page 12: Freight Database Wrapper Module For Dynamic Hypermedia Engine

12

message to the appropriate module based on predefined laws.

2. INTRODUCTION AND BACKGROUND

2.1 Perspective

The DHyMe Project currently provides different applications the ability to

dynamically generate links on a user interface system. One of the DMIS within the

current environment is the Freight database application. My project would develop a

wrapper for this DMIS making it the Freight Database Wrapper Module(FDWM). In

Figure1 this would be the box marked Freight System "DMIS Wrapper".

The current freight model is rich in information but it is unstructured. Often, the

user is unable to perceive the underlying mathematical formulas and interactions between

various elements. We have developed a Dynamic Hypermedia Engine which aims at

automating the whole process of adding links and anchors to the original model, at the

same time keeping the application ‘as-is’. This project aims to generate hypertext web

interface for Freight database and display the internal and external relationships among

the application’s knowledge base.

The Freight Information Management System consists of an Access database to

help users access commodity flow information. We need to provide hypertext features to

the Freight Information Management System to provide users with flexible and

customized navigation. Hypertext helps the users in understanding the current domain

Page 13: Freight Database Wrapper Module For Dynamic Hypermedia Engine

13

better.

1. Provide mapping rules for each relationship to existing commands.

2. Provide mapping rules for each relationship/link.

3. Assign a Unique Identifier to each page(could be query screen or a query

result).

2.2 Project Functions

In brief, the FDWM provides automated linking and hypertext navigational features to

the Freight Output and makes the relationships explicit to the user.

The various functions of the wrapper are:

2.2.1 Registering with Gateway:

2.2.2 To send and receive messages.

2.2.3 Display the Freight start page for the user to select.

2.2.4 Show First page(Ex :cfcr1993): Building document to display the left & first page,

in individual frames in the browser using the UIW.

2.2.5 Use of URI to identify the elements.

2.2.6 Parse the output coming from the original Freight system and mark all the

elements.

2.2.7 Identifying Elements: Identify all possible elements and assign element ids to them.

Page 14: Freight Database Wrapper Module For Dynamic Hypermedia Engine

14

2.2.8 Provide BLEM with the bridge laws for this module.

2.2.9 Generating Meta Data: For each identified element of the document, relevant meta

Data should be generated and passed back to BLEM for it to add relevant links. Send this

Meta Data for all elements on demand.

2.2.10 Use RMI

� Extend the abstract Module class of the Gateway

� Implement the processMsg() method

� Use the sendMsgToModule()for communication with Gateway

2.2.11 Use the standard messaging System of engine – FollowLink, DisplayDoc

� DTD for the messages should be the one which is used in present

Implementation

2.3 General Constraints

Since the application will be programmed in Java the computer in which the module resided

must support a Java runtime environment. Also the version of Java should be 1.3 or higher

because the output xml messages from the FDWM module are greater than 64K in size.. The

passing of messages in between the modules will use the XML format. XML messages will be

Page 15: Freight Database Wrapper Module For Dynamic Hypermedia Engine

15

handled by the gateway, which is part of the hypermedia engine. The bridge law engine module

will have to provide a way to attach conditionals to the elements that will be created as links or

anchors on the document. The User Interface Wrapper should have some way to highlight an

element in a document.

2.4 Assumptions and Dependencies

There will be a standard way to pass messages between the various modules within a

predefined structure to create the messages.

- Java will be the standard language for this module.

-

3.System Functional Specification

3.1 Functional requirements

3.1.1 Register with Gateway

Every Module including FDWM must register itself with the Gateway, so that the

Gateway knows which modules are active and able to receive/send messages.

When module register itself with gateway, it need to pass some unique id of itself

so that gateway can send and receive message from that module. FDWM uses method

developed by gateway for initial registration.

As per the gateway design, Every module has to extend class Module (

Page 16: Freight Database Wrapper Module For Dynamic Hypermedia Engine

16

dhyme.gateway.module.Module). This Module class is abstract class and provides all the

functionality to register with gateway and also provide methods to send messages to

gateway and also methods to receive messages from gateway.

FDWM needs to define abstract method public void processMsg(EngMsg m) in

order to extend Module class.

How to register

Pass your module name or id to the constructor of the parent class (Module class). In

case of FDWM it is "fdwm". Also call startMe(String hostname) method of super class

(Module class) and pass machine name on which module is running as an agrument. This

method registers your module name and machine name to gateway registry that helps to

find your module whenever gateway needs to send message to BLEM.

3.1.2 To send and receive messages to gateway.

How to receive message from gateway

Module class takes care of receiving messages from the gateway. After receiving

message, it calls processMsg (EngMsg m) method of the destination of the message. FDWM

needs to define what to do with message in this method.

Page 17: Freight Database Wrapper Module For Dynamic Hypermedia Engine

17

How to send message to gateway

After processing the message FDWM needs to send message back to proper module

through gateway. Module class takes care of internals of sending message to gateway. After

building the message using Engine message object , FDWM needs to call method

sendMsgToModule(message).

3.1.3 Displaying the Start Page for the user to make a selection

When FDWM receives a message to display form, it gets a document with the HTML for the

user to make a selection.

Input is the incoming message discussed in 6.1.1

The parameter value is extracted and that is the name of the HTML that the FDWM will send

back to UIW.

3.1.4 Building Documents:

This functionality of the wrapper is to create the two documents necessary to display in the

browser in two different frames, in the main frame of the engine module along with the other

standard engine frames.

The input to this functionality is the name of the Freight page passed in the incoming XML

message.

3.1.5 Identifying Elements

Page 18: Freight Database Wrapper Module For Dynamic Hypermedia Engine

18

This functionality is to identify all possible kinds of elements in the Freight system. Elements of

interest in the document are found by parsing. The elements are to be identified with respect to

the document in which they are present. The identified elements are assigned object Ids. The

elements are identified to BLEM through messages. If there are bridge laws associated with the

element BLEM turns it into an anchor.

The various elements of interest in the Freight System include

Element Types Pages in which they occur

1. county cfsr1993,cfsr1982,cfcr,misc

2. 1982zone cfsr1982 county to zone, zone to county

3. 1993zone cfsr1993 county to zone, zone to county

4. bothzone cfsr1982, cfsr1993, county to zone, zone to county

5. flow misc , 1982 Flowdata , 1993 Flowdata

6. flowtype misc - Total Commodity Flow

7. floworientation cfsr1993,cfsr1982,cfcr,misc

8. existing_link FreightStart page

9. description cfsr1993,cfsr1982,cfcr,misc

10. state misc- Total Commodity Flow

11. region cfsr1993- County to Region ,Region to County

Page 19: Freight Database Wrapper Module For Dynamic Hypermedia Engine

19

12. us_canada cfsr1993- County to us/canada, us-canada to county

13. worldregion misc- Inflow to County, OutFlow to county

14. flowunit cfsr1993,cfsr1982,cfcr,misc

15. totalflowunit cfsr1993,cfsr1982,cfcr,misc if row name is Total

16. compflowunit Could occur in any page if there are multiple selections

17. stcc1993 misc, cfsr1993 -all items

18. stcc1982 misc, cfsr1982- all items

19. stcccomp cfcr all items

20. oldmode cfsr1982,cfsr1993,misc,cfcr -all items

21. newmode cfsr1993,misc- all items

22. compmode. cfcr- all items

23. stcc cfsr1982, cfsr1993, misc

3.1.6 To Generate Meta data

For each element identified, Meta data is identified and passed along with element location,

type and ID to be displayed in the UI Browser. Any information that is relevant and explains the

elements are passed as Meta data. The Meta information is sent In RDF syntax to the BLEM,

which adds relevant links for that element type and sends the document as meta information to

Page 20: Freight Database Wrapper Module For Dynamic Hypermedia Engine

20

UIW for displaying it on the browser.

3.1.7 Bridge Laws

Some of the bridge laws provided by this module are

• GetCounty_AllCounty_82

• GetAllCounty_County_82

• GetCounty_AllCounty_93

• GetAllCounty_County_93

• GetZone_AllCounty_82

• GetZone_AllCounty_93

• GetAllCounty_Zone_93

• GetAllCounty_Zone _93

• GetSICCode

3.1.8 To execute any FDWM commands underlying the links.

Page 21: Freight Database Wrapper Module For Dynamic Hypermedia Engine

21

When the user clicks on a link BLEM will send a message inserting the command that we had

specified in bridge law in the subject tag of the message. Based on the command, the

corresponding message handler for that link is called and the appropriate action taken.

The output in this case depends on the link clicked by the user. Basically the user will be able

to see a new document with respect to the link clicked.

4.System Performance Requirements

4.1 Efficiency:

Freight Wrapper Module serves the end user using the user interface wrapper on the

browser. With respect to speed, the efficiency of this module depends on the performance speed

of the UIW, BLEM and Gateway. The speed of the module also depends on the Internet

connection speed of the end user since he accesses the Engine module using the Internet.

4.2 Reliability

The module is reliable in the sense that if by any chance the module breaks down or

cannot perform it does not affect the functioning of the other modules. The Gateway of the

Engine module can delete this module from its registry and thus prevent any requests coming to

this module. Once the problem is fixed the module registers itself with gateway again and

proceeds to function normally. Also, all possible exceptions that could occur are captured.

Page 22: Freight Database Wrapper Module For Dynamic Hypermedia Engine

22

4.3 Security

There is not much of a security implementation done right now with the Freight Wrapper

Module as it was not necessary. In future implementations, a separate Security module should

check the validity of the user while making a request on the underlying database.

4.4 Maintainability

The Freight Wrapper Module uses Object oriented programming approach. It is much

easier to maintain and enhance programs that follow this approach. Different programs handle

different functionality of the module. When any functionality has to be modified other programs

need not be changed. To add functionality to the module new programs are added which can

follow the approach used in the other programs.

One way in which the maintainability is simplified in the module is by providing a

Constants file and a properties file for this module. The constants file maintains all the constants

used in the module. All the XML tags used in the module are specified in these files. Any change

in the future to the XML messages going back and forth the modules can be specified here and

the other programs need not change.

The knowledge of element types is in the properties file. This makes maintainability

easier in the sense that if new element types are identified(or new classifications made) in the

future then FDWM code doesn’t have to change. We can just change the element type in the

Page 23: Freight Database Wrapper Module For Dynamic Hypermedia Engine

23

properties file. For example if in future we classify counties according to the Alphabet with

which they start. Then Atlantic would become element of type Acounty, Bergen, Burlington

would become element’s of type Bcounty. We just have to update the properties file to

Atlantic.type=Acounty. The current entry in the properties file is Atlantic.type=county. One

disadvantage here is that an entry in the properties file cannot have white spaces in between. So

the type of Bronx, NY would be stored as Bronx,_NY.type=region. To change the type of

flowunit some more conditionals should be added to the doMarkup method of DocumentMarker

class.

DocumentMarker class is the only one that needs access to the element types because it

has to mark up the elements. Other classes just have to send the input stream to the

DocumentMarker. DocumentMarker class takes care, if there are spaces in an element. The

DocumentMarker class has been written with extreme care to handle any kind of output from the

Freight System. A detailed discussion of the class is given later.

The names of the various programs used in the module are self-explanatory about its

functionality. There are two versions of the FreightWrapperModule. One is the testing version

and the other is the integrated version. The testing version is written to work stand-alone. The

Integrated version works along with the other modules in the Engine project. The name of the

program specifies clearly whether it is a testing version or not. Care has been taken not to write

two versions of each class.

A sophisticated approach to handle testing and integrated version is used. There is only

one version of all the programs except the program that handles the interaction with the rest of

the engine i.e. FreightWrapperModule and FreightWrapperModuleTester. In the rest of the

Page 24: Freight Database Wrapper Module For Dynamic Hypermedia Engine

24

programs the appropriate program FreightWrapperModule or FreightWrapperModuleTester is

called depending on whether we are running the testing version or integrated version.

How to check? When the module is run set a system property “debug” using java –D

debug=””. In all the other programs check to see if the system property debug is set to YES or

NULL. If it is null use the FreightWrapperModule since it means we are running an integrated

version and if it is YES use FreightWrapperModule since it means we are running the testing

version.

Java being the programming language of the Freight Wrapper Module, it provides high

maintainability and portability than programs developed by other languages. Java programs are

compiled to byte-codes so, they run on any platform that supports Java without the necessity to

recompile the programs again when they are moved to a different machine. The Java language is

the same on every computer and platform. You do not need to learn the specific function and

syntax to maintain your code when you work on different machines. With the extensive and

extensible library of classes provided by the Java, it is trouble-free to move and easy to organize

the code on any platform.

5. System Design Overview

Page 25: Freight Database Wrapper Module For Dynamic Hypermedia Engine

5.1 System Organizational Chart

8w

FollowLink 1 8 Displaydoc 7

2

3

6

4 5

5.1.1 Overall Design

The Freight Wrapper Mo

output. FDWM does a http get r

elements. The FDWM resides with

like UIW, BLEM etc through Gate

gateway.

Whenever gateway receive

“processMsg” method of FDWM.

UIW

Gateway

FDWM

BLEM

Freight

25

dule (FDWM) provides hypertext functionality to Freights

equest and analyzes the Freight output and marks all the

in Hypermedia Engine. It interacts with all the other modules

way using RMI. When FDWM is started it registers itself with

s any message to be sent to FDWM, gateway invokes the

Page 26: Freight Database Wrapper Module For Dynamic Hypermedia Engine

26

At this point FDWM starts processing and functions depending on the request it got.

Once it has finished processing the incoming message, it sends a reply message to Gateway to be

sent to the appropriate module.

5.1.2 Information Exchange with rest of the Engine

Information exchange in the Engine architecture between modules is done using

Gateway. FDWM exchanges Bridge laws information with BLEM. This procedure is done

whenever the module wants to add Bridge laws. This information is not exchanged through the

gateway. Apart from this any information exchanged by FDWM to the rest of the engine is

through gateway. The information exchanged depends on the request FDWM receives from

Gateway.

5.2 System Flow chart

The Freight Wrapper Module extends the functionality of the Module object of the

Gateway. When FDWM starts it registers itself with the Gateway and waits to be invoked by the

Gateway with an Engine Message.

When a message is received Gateway invokes the processMsg method of the FDWM. In

that method, FDWM finds out the type of message received and invokes the appropriate message

handler.Each Message Handler processes the message depending on the functionality that it is

supposed to provide and creates a reply message, which is sent to the client through the Gateway.

Page 27: Freight Database Wrapper Module For Dynamic Hypermedia Engine

Engine Message

Engine Message

5.3 System Data Structure Preview

Engine Message Object is used to c

extract information from the messag

There are certain tags that h

module. These are the location of th

the request id of the message receiv

the current destination of the messa

these different modules may expect

y

Freigh

Gatewa

Fig 5.2 System Flow Chart

reate messages to be sent to other module

es received by the module.

ave to be present in all the messages goin

e DTD of the message, the root name of th

ed, the type of the message, and the orig

ge and the final destination of the messag

different tags in the message for their proc

t Wrapper Module

n

r

FDWM properties

DisplayHandler

GetFirst Handler

GetDocument Handler

GetCounty_AllCouty 82Handler

GetAllCounty_County 82Handler

GetCounty_AllCounty 93Handler

s. It is

g bac

e Eng

in of

e. Ov

essing

GetAllCounty_County 93Handler

27

also used to

k and forth a

ine Message,

the message,

er and above

.

GetMetaInfoHandler

DocumentMarke

Freight
Page 28: Freight Database Wrapper Module For Dynamic Hypermedia Engine

28

5.4 Operation Overview

The .class files needed to run the Freight Wrapper Module is located in the shared/java-classes

directory.

There is a script called startFDWM which starts the module.

In order for the FDWM to run, the gateway and BLEM should be up and running. To

actually see some output the UIW should be up and running.

5.5 Implementation Languages

Java is the language of choice for this module and all the modules in the Hypermedia Engine

because it is portable across platforms. Java compiler generates bytecode instructions, which

have nothing to do with particular computer architecture. This feature aids in Java being

portable.

Java is a truly object oriented programming language. When this module or the Engine

project itself grows because of the object oriented approach used in the project scalability and

maintainability are easier.

RMI technology is used in this project. RMI is Java’s implementation of RPC (Remote

Procedure call) for java-to-java object distributed communication. RMI allows Java objects

running on the same or separate computers to communicate with one another visa remote method

calls. Such method calls appear the same as those operating on objects in the same program.

Page 29: Freight Database Wrapper Module For Dynamic Hypermedia Engine

29

The system performance requirements also require taking use of the multithread

technique to improve the performance and reliability. Java suits this picture excellently.

Java controls the application as it runs and stops it from wreaking havoc.

Java's exception handling makes run-time error management into the object-oriented

world. This feature provides our application running safely and robustly.

Message Format Language

XML is used to send messages within modules in the Engine Project. XML has been

described as an "open data formatting system", a means to create "smart web pages", or a

"universal standard for describing data". XML is not a fixed format but actually a misnomer: it is

not a single markup language in itself; it is a metalanguage (a language that defines other

languages) that allows the design of one’s own markup language. It has the potential to give

structure and meaning to the information contained in any data format – making such

information easy to index, categorize, and search. XML has been used to create specialized

markup languages for chemistry, music, and Mathematics. So it fits the hypermedia very well.

A markup language defines a way to describe information in a certain class of

documents. XML provides a means to define customized markup languages for many classes of

documents. It can do this because it is written in SGML (Standard Generalized Markup

Language), the international standard metalanguage for markup languages. Metadata – "data

about data"- enables developers to describe content and invent tags that best describe that

Page 30: Freight Database Wrapper Module For Dynamic Hypermedia Engine

30

content. It addresses many of the issues regarding managing, finding, filtering, customizing, and

aggregating Web content in a standardized way.

In our engine project, whether it is a computer file or a paper file, we need a way to make

the knowledge within any object accessible. We need a way to label its knowledge content. A

standardized approach to describing the content of knowledge containers can provide the

foundation for making it easier to find specific information. The XML defined Metadata can be

used for a variety of purposes: to identify the knowledge content of a resource; to evaluate the

quality or fitness for use of a resource; to track the characteristics of a resource for subsequent

maintenance or usage over time; and so on. Developers can use Metadata to build site maps,

search engine data collection (Web crawling), or content ratings. XML, then, is a mechanism to

present metadata in a standardized way.

In our XML message files, we define its syntax rules and tags with Document

Type Definition. DTD, which can be associated with an instance of XML code via Hypertext

Transfer Protocol as an optional attribute in the initial declaration, or can be included in-line with

the XML code (in the case of simpler DTDs). A DTD is used to determine characteristics such

as: Element names which tags can be used in an XML document, The order they should appear

in, How tags can appear inside other ones, and in which combinations, and what attributes are

available for each element type.

5.6 Required Support Software

Page 31: Freight Database Wrapper Module For Dynamic Hypermedia Engine

31

JDK 1.3 or above

IBM XML parser classes

The Java classes of the Gateway and Engine Message of the hypermedia engine

The running modules of the Gateway and UIW of the hypermedia engine

Various utility classes of the Engine project

Freight System up and running.

6. System Data Structure Specification

6.1 Input Specification

All the messages received by FDWM are of message type – FollowLink. When such messages

are received, FDWM is expected to process the message and send a response message back to

gateway. The FDWM identifies what it has to do with a particular message based on the subject

tag of the message it receives.

The Data format or DTD for all follow link messages is the same. This means that any

module, which expects FDWM to perform any function, should send a message in the following

format.

The following is the DTD for a FollowLink Message.

<!ELEMENT EngMsg (RequestID, MsgType, Origin, Current, MsgNo, Destination,

Page 32: Freight Database Wrapper Module For Dynamic Hypermedia Engine

32

MsgBody)>

<!ELEMENT RequestID (#PCDATA)>

<!ELEMENT MsgType (#PCDATA)>

<!ELEMENT Origin (#PCDATA)>

<!ELEMENT Current (#PCDATA)>

<!ELEMENT MsgNo (#PCDATA)>

<!ELEMENT Destination (#PCDATA)>

<!ELEMENT MsgBody (Subject, BLid, Parameter*)>

<!ELEMENT Subject (#PCDATA)>

<!ELEMENT BLid (#PCDATA)>

<!ELEMENT Parameter (ParamName, ParamValue*)>

<!ELEMENT ParamName (#PCDATA)>

<!ELEMENT ParamValue (#PCDATA)>

There are some common tags across all messages. These are RequestID, MessageType, Origin,

Current and Destination. Whatever is inside msgBody may change across messages.

RequestID is used by the UIW to identify a response message to a particular request of an end

Page 33: Freight Database Wrapper Module For Dynamic Hypermedia Engine

33

user.

Message type in this case is FOLLOWLINK

Origin will be the module id of the module, which is sending the message

Current will be the module id of the module where the message is currently present.(For

example, all the messages that generate from UIW will go to BLEM before it comes to the

DMISW. In this case when it is with BLEM the origin will be UIW but the current will be

BLEM)

MsgNo is the message number of the message.

For now the Bridge law id will be an empty tag.

Destination will be the Final destination of the message

6.1.1 Display Message: This message is received from the User Interface Wrapper through the

Gateway. This is like a startup message for FDWM since this is the first message that module

expects to receive. When the end user clicks on my module name on the browser, this message is

generated by the user interface wrapper and sent to FDWM.

The message received by FDWM is identified as display message by extracting the

Subject tag information, which should say “display”.

An example of a Display Message

<?xml version="1.0"?>

Page 34: Freight Database Wrapper Module For Dynamic Hypermedia Engine

34

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Fo

llowLink.dtd" >

<EngMsg>

<RequestID>965232386929</RequestID>

<MsgType>FOLLOWLINK</MsgType>

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965232387019</MsgNo>

<Destination>FDWM</Destination>

<MsgBody>

<Subject>display</Subject>

<BLid></BLid>

<Parameter>

<ParamName>Element_ID</ParamName>

<ParamValue>FreightStart</ParamValue>

</Parameter>

</MsgBody>

Page 35: Freight Database Wrapper Module For Dynamic Hypermedia Engine

35

</EngMsg>

There can be any number of parameters. But FDWM expects only one parameter –

Element_ID.

This message is like a startup message, which FDWM will use to send the Freight startup

screen to be displayed in the browser to allow the user to make a selection.

So FDWM expects to get the parameter value as FreightStart, which is the page to be

displayed.

6.1.2. GetFirst Message: This message is received from the UIW through the gateway when the

end user makes a selection in the FreightStart page.

The pagename of Freight that is requested, is got from the UIW in this message. The

parameter name expected by the FDWM is Element_Id and the parameter value is whatever

selection the user made in the browser.

An example of a GetFirst message is :

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Fo

llowLink.dtd" >

<EngMsg>

Page 36: Freight Database Wrapper Module For Dynamic Hypermedia Engine

36

<RequestID>965233839759</RequestID>

<MsgType>FOLLOWLINK</MsgType>

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965233839805</MsgNo>

<Destination>FDWM</Destination>

<MsgBody>

<Subject>getFirst</Subject>

<BLid></BLid>

<Parameter>

<ParamName>type</ParamName>

<ParamValue>dhyme:fdwm:existing_link</ParamValue>

</Parameter>

<Parameter>

<ParamName>Element_ID</ParamName>

<ParamValue>dhyme:fdwm:existing_link:cfsr1993</ParamValue>

</Parameter>

Page 37: Freight Database Wrapper Module For Dynamic Hypermedia Engine

37

</MsgBody>

</EngMsg>

When FDWM receives this message it expects to find Element_ID as the parameter name

and the uniform resource identifier as the parameter value. The parameter value contains the

value of the anchor that the user clicked on.

The following are the messages generated in response to the user clicking on a link for this

module in the browser.

6.1.3 GetDocument Message : When the user does a “submit” on the form for a document , this

is the message that the FDWM expects to receive in order to process the request.

Example of GetDocument Message

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Fo

llowLink.dtd" >

<EngMsg>

<RequestID>965232503099</RequestID>

Page 38: Freight Database Wrapper Module For Dynamic Hypermedia Engine

38

<MsgType>FOLLOWLINK</MsgType>

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965232503164</MsgNo>

<Destination>FDWM</Destination>

<MsgBody>

<Subject>getDocument</Subject>

<BLid></BLid>

<Parameter>

<ParamName>select2</ParamName>

<ParamValue>Air</ParamValue>

</Parameter>

<Parameter>

<ParamName>select1</ParamName>

<ParamValue>Mode93</ParamValue>

</Parameter>

<Parameter>

Page 39: Freight Database Wrapper Module For Dynamic Hypermedia Engine

39

<ParamName>submit</ParamName>

<ParamValue>Submit</ParamValue>

</Parameter>

<Parameter>

<ParamName>Aspfile</ParamName>

<ParamValue>misc:misctcf.asp</ParamValue>

</Parameter>

</MsgBody>

</EngMsg>

When FDWM receives this message it expects to find Element_ID as the parameter name

and the uniform resource identifier as the parameter value. The parameter value contains the

value of the anchor that the user clicked on.

6.1.4 GetCounty_AllCounty_82 Message: This message is received from the UIW through the

gateway when the end user makes a selection in the Browser. This functionality is only for

elements of type county.

The name of county that is requested, is got from the UIW in this message. The

parameter name expected by the FDWM is Element_Id and the parameter value is whatever

Page 40: Freight Database Wrapper Module For Dynamic Hypermedia Engine

40

selection the user made in the browser.

Example of

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM

"/export/home/engine/WWW/public_html/users/shared/dtd/FollowLink.dtd" >

<EngMsg>

<RequestID>965422643049</RequestID>

<MsgType>FOLLOWLINK</MsgType>

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965422643077</MsgNo>

<Destination>FDWM</Destination>

<User_name>guest:guest:Guest User</User_name>

<MsgBody>

<Subject>getCounty_AllCounty_82</Subject>

<BLid>BL_40</BLid>

<Parameter>

<ParamName>Type</ParamName>

<ParamValue>dhyme:BLEM:BridgeLaw</ParamValue>

</Parameter>

<Parameter>

<ParamName>Element_ID</ParamName>

Page 41: Freight Database Wrapper Module For Dynamic Hypermedia Engine

41

<ParamValue>dhyme:fdwm:county:Atlantic</ParamValue>

</Parameter>

</MsgBody>

</EngMsg>

When FDWM receives this message it expects to find Element_ID as the parameter name

and the uniform resource identifier as the parameter value. The parameter value contains the

value of the anchor that the user clicked on.

6.1.5 GetAllCounty_County_82 Message: This message is received from the UIW through the

gateway when the end user makes a selection in the Browser. This functionality is only for

elements of type county.

The name of county that is requested, is got from the UIW in this message. The

parameter name expected by the FDWM is Element_Id and the parameter value is whatever

selection the user made in the browser.

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM

"/export/home/engine/WWW/public_html/users/shared/dtd/FollowLink.dtd" >

<EngMsg>

<RequestID>965422825844</RequestID>

<MsgType>FOLLOWLINK</MsgType>

Page 42: Freight Database Wrapper Module For Dynamic Hypermedia Engine

42

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965422825872</MsgNo>

<Destination>FDWM</Destination>

<User_name>guest:guest:Guest User</User_name>

<MsgBody>

<Subject>getAllCounty_County_82</Subject>

<BLid>BL_41</BLid>

<Parameter>

<ParamName>Type</ParamName>

<ParamValue>dhyme:BLEM:BridgeLaw</ParamValue>

</Parameter>

<Parameter>

<ParamName>Element_ID</ParamName>

<ParamValue>dhyme:fdwm:county:Monmouth</ParamValue>

</Parameter>

</MsgBody>

</EngMsg>

When FDWM receives this message it expects to find Element_ID as the parameter name

and the uniform resource identifier as the parameter value. The parameter value contains the

Page 43: Freight Database Wrapper Module For Dynamic Hypermedia Engine

43

value of the anchor that the user clicked on.

6.1.6 GetCounty_AllCounty_93 Message: This message is received from the UIW through the

gateway when the end user makes a selection in the Browser. This functionality is only for

elements of type county.

The name of county that is requested, is got from the UIW in this message. The

parameter name expected by the FDWM is Element_Id and the parameter value is whatever

selection the user made in the browser.

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM

"/export/home/engine/WWW/public_html/users/shared/dtd/FollowLink.dtd" >

<EngMsg>

<RequestID>965422643049</RequestID>

<MsgType>FOLLOWLINK</MsgType>

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965422643077</MsgNo>

<Destination>FDWM</Destination>

<User_name>guest:guest:Guest User</User_name>

<MsgBody>

Page 44: Freight Database Wrapper Module For Dynamic Hypermedia Engine

44

<Subject>getCounty_AllCounty_93</Subject>

<BLid>BL_42</BLid>

<Parameter>

<ParamName>Type</ParamName>

<ParamValue>dhyme:BLEM:BridgeLaw</ParamValue>

</Parameter>

<Parameter>

<ParamName>Element_ID</ParamName>

<ParamValue>dhyme:fdwm:county:Ber</ParamValue>

</Parameter>

</MsgBody>

</EngMsg>

When FDWM receives this message it expects to find Element_ID as the parameter name

and the uniform resource identifier as the parameter value. The parameter value contains the

value of the anchor that the user clicked on.

6.1.7 GetAllCounty_County_93 Message: This message is received from the UIW through the

gateway when the end user makes a selection in the Browser. This functionality is only for

elements of type county.

The name of county that is requested, is got from the UIW in this message. The

parameter name expected by the FDWM is Element_Id and the parameter value is whatever

Page 45: Freight Database Wrapper Module For Dynamic Hypermedia Engine

45

selection the user made in the browser.

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM

"/export/home/engine/WWW/public_html/users/shared/dtd/FollowLink.dtd" >

<EngMsg>

<RequestID>965422825844</RequestID>

<MsgType>FOLLOWLINK</MsgType>

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965422825872</MsgNo>

<Destination>FDWM</Destination>

<User_name>guest:guest:Guest User</User_name>

<MsgBody>

<Subject>getAllCounty_County_93</Subject>

<BLid>BL_43</BLid>

<Parameter>

<ParamName>Type</ParamName>

<ParamValue>dhyme:BLEM:BridgeLaw</ParamValue>

</Parameter>

<Parameter>

<ParamName>Element_ID</ParamName>

Page 46: Freight Database Wrapper Module For Dynamic Hypermedia Engine

46

<ParamValue>dhyme:fdwm:county:Monmouth</ParamValue>

</Parameter>

</MsgBody>

</EngMsg>

When FDWM receives this message it expects to find Element_ID as the parameter name

and the uniform resource identifier as the parameter value. The parameter value contains the

value of the anchor that the user clicked on.

6.1.8. GetMetaInfo Message

This message is sent to FDWM when meta data about an element is needed to be

displayed to the user. In this message also, the FDWM expects to see parameter name as

“Element_ID’ and the parameter value to be the Element value that the user wants meta

information on.

Example of GetMetaInfo Message

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Fo

llowLink.dtd" >

<EngMsg>

<RequestID>965217698825</RequestID>

Page 47: Freight Database Wrapper Module For Dynamic Hypermedia Engine

47

<MsgType>FOLLOWLINK</MsgType>

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965217698933</MsgNo>

<Destination>FDWM</Destination>

<MsgBody>

<Subject>getMetaInfo</Subject>

<BLid></BLid>

<Parameter>

<ParamName>Type</ParamName>

<ParamValue>dhyme:fdwm:flowunit</ParamValue>

</Parameter>

<Parameter>

<ParamName>Element_ID</ParamName>

<ParamValue>dhyme:fdwm:flowunit:misc:misctcf.asp:Mode82,:Air,:Cape May:Hun

:0</ParamValue>

</Parameter>

Page 48: Freight Database Wrapper Module For Dynamic Hypermedia Engine

48

</MsgBody>

</EngMsg>

6.1.9 GetAllCounty_Zone_82 Message: This message is received from the UIW through the

gateway when the end user makes a selection in the Browser. This functionality is only for

elements of type Zone.

The name of zone that is requested, is got from the UIW in this message. The parameter name

expected by the FDWM is Element_Id and the parameter value is whatever selection the user

made in the browser.

Example of GetAllCounty_Zone_82 message :

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Fo

llowLink.dtd" >

<EngMsg>

<RequestID>965002286159</RequestID>

<MsgType>FOLLOWLINK</MsgType>

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965002286226</MsgNo>

Page 49: Freight Database Wrapper Module For Dynamic Hypermedia Engine

49

<Destination>FDWM</Destination>

<MsgBody>

<Subject>getAllCounty_Zone_82</Subject>

<BLid/>

<Parameter>

<ParamName>Type</ParamName>

<ParamValue>dhyme:fdwm:1982zone</ParamValue>

</Parameter>

<Parameter>

<ParamName>Element_ID</ParamName>

<ParamValue>dhyme:fdwm:1982zone:Philadelphia</ParamValue>

</Parameter>

</MsgBody>

</EngMsg>

When FDWM receives this message it expects to find Element_ID as the parameter name and

the uniform resource identifier as the parameter value. The parameter value contains the value of

the anchor that the user clicked on.

Page 50: Freight Database Wrapper Module For Dynamic Hypermedia Engine

50

6.1.10 GetAllCounty_Zone _93 Message: This message is received from the UIW through the

gateway when the end user makes a selection in the Browser. This functionality is only for

elements of type Zone.

The name of zone that is requested, is got from the UIW in this message. The parameter name

expected by the FDWM is Element_Id and the parameter value is whatever selection the user

made in the browser.

Example of GetAllCounty_Zone _93 Message :

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Fo

llowLink.dtd" >

<EngMsg>

<RequestID>965002286159</RequestID>

<MsgType>FOLLOWLINK</MsgType>

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965002286226</MsgNo>

<Destination>FDWM</Destination>

<MsgBody>

Page 51: Freight Database Wrapper Module For Dynamic Hypermedia Engine

51

<Subject>getAllCounty_Zone_93</Subject>

<BLid/>

<Parameter>

<ParamName>Type</ParamName>

<ParamValue>dhyme:fdwm:1993zone</ParamValue>

</Parameter>

<Parameter>

<ParamName>Element_ID</ParamName>

<ParamValue>dhyme:fdwm:1993zone:All Zones</ParamValue>

</Parameter>

</MsgBody>

</EngMsg>

When FDWM receives this message it expects to find Element_ID as the parameter name and

the uniform resource identifier as the parameter value. The parameter value contains the value of

the anchor that the user clicked on.

6.1.11 GetZone_AllCounty_82 Message: This message is received from the UIW through the

gateway when the end user makes a selection in the Browser. This functionality is only for

Page 52: Freight Database Wrapper Module For Dynamic Hypermedia Engine

52

elements of type Zone.

The name of zone that is requested, is got from the UIW in this message. The parameter name

expected by the FDWM is Element_Id and the parameter value is whatever selection the user

made in the browser.

Example of GetZone_AllCounty_82 Message :

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Fo

llowLink.dtd" >

<EngMsg>

<RequestID>965002286159</RequestID>

<MsgType>FOLLOWLINK</MsgType>

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965002286226</MsgNo>

<Destination>FDWM</Destination>

<MsgBody>

<Subject>getZone_AllCounty_82</Subject>

Page 53: Freight Database Wrapper Module For Dynamic Hypermedia Engine

53

<BLid/>

<Parameter>

<ParamName>Type</ParamName>

<ParamValue>dhyme:fdwm:1982zone</ParamValue>

</Parameter>

<Parameter>

<ParamName>Element_ID</ParamName>

<ParamValue>dhyme:fdwm:1982zone:NJ </ParamValue>

</Parameter>

</MsgBody>

</EngMsg>

When FDWM receives this message it expects to find Element_ID as the parameter name and

the uniform resource identifier as the parameter value. The parameter value contains the value of

the anchor that the user clicked on.

6.1.12 GetZone_AllCounty_93 Message: This message is received from the UIW through the

gateway when the end user makes a selection in the Browser. This functionality is only for

elements of type Zone.

The name of zone that is requested, is got from the UIW in this message. The parameter name

Page 54: Freight Database Wrapper Module For Dynamic Hypermedia Engine

54

expected by the FDWM is Element_Id and the parameter value is whatever selection the user

made in the browser.

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Fo

llowLink.dtd" >

<EngMsg>

<RequestID>965002286159</RequestID>

<MsgType>FOLLOWLINK</MsgType>

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965002286226</MsgNo>

<Destination>FDWM</Destination>

<MsgBody>

<Subject>getZone_AllCounty_93</Subject>

<BLid/>

<Parameter>

<ParamName>Type</ParamName>

Page 55: Freight Database Wrapper Module For Dynamic Hypermedia Engine

55

<ParamValue>dhyme:fdwm:1993zone</ParamValue>

</Parameter>

<Parameter>

<ParamName>Element_ID</ParamName>

<ParamValue>dhyme:fdwm:1993zone:NJ </ParamValue>

</Parameter>

</MsgBody>

</EngMsg>

When FDWM receives this message it expects to find Element_ID as the parameter name and

the uniform resource identifier as the parameter value. The parameter value contains the value of

the anchor that the user clicked on.

6.1.13 GetSICCode Message : This message is received from the UIW through the gateway

when the end user makes a selection in the Browser. This functionality is only for elements of

type stcc.

The stcc code that is requested, is got from the UIW in this message. The parameter name

expected by the FDWM is Element_Id and the parameter value is whatever selection the user

made in the browser.

Example of

Page 56: Freight Database Wrapper Module For Dynamic Hypermedia Engine

56

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Fo

llowLink.dtd" >

<EngMsg>

<RequestID>965002286159</RequestID>

<MsgType>FOLLOWLINK</MsgType>

<Origin>UIW</Origin>

<Current>BLEM</Current>

<MsgNo>UIW:965002286226</MsgNo>

<Destination>FDWM</Destination>

<MsgBody>

<Subject>getSICCode</Subject>

<BLid/>

<Parameter>

<ParamName>Type</ParamName>

<ParamValue>dhyme:fdwm:stcc1982</ParamValue>

</Parameter>

Page 57: Freight Database Wrapper Module For Dynamic Hypermedia Engine

57

<Parameter>

<ParamName>Element_ID</ParamName>

<ParamValue>dhyme:fdwm:stcc1982:26 - Pulp, Paper, or Allied Products</Para

mValue>

</Parameter>

</MsgBody>

</EngMsg>

6.2 Data Output Specification

For the six input messages received by FDWM there are six output messages created by

FDWM. These messages come under the class of message type called “DisplayDocument” since

they all send messages to the UIW to be displayed in the browser.

The following is the data format for all such Display Document Messages.

<!ELEMENT EngMsg (RequestID, MsgType, Origin, Current, MsgNo, Destination,

MsgBody)>

<!ELEMENT RequestID (#PCDATA)>

<!ELEMENT MsgType (#PCDATA)>

<!ELEMENT Origin (#PCDATA)>

Page 58: Freight Database Wrapper Module For Dynamic Hypermedia Engine

58

<!ELEMENT Current (#PCDATA)>

<!ELEMENT MsgNo (#PCDATA)>

<!ELEMENT Destination (#PCDATA)>

<!ELEMENT MsgBody (FramesetDef?, SubFrame+)>

<!ELEMENT FramesetDef (#PCDATA)>

<!ATTLIST FramesetDef target CDATA #REQUIRED>

<!ELEMENT SubFrame (Doc, OutDoc, List_Of_Element)>

<!ATTLIST SubFrame Name CDATA #REQUIRED>

<!ELEMENT Doc (DocID, DocType)>

<!ELEMENT DocID (#PCDATA)>

<!ELEMENT DocType (#PCDATA)>

<!ELEMENT OutDoc (#PCDATA)>

<!ELEMENT List_Of_Element (Element*)>

<!ELEMENT Element (Locator, Type, Element_ID, Action, BridgeLaw_ID?)>

<!ELEMENT Locator (#PCDATA)>

<!ELEMENT Type (#PCDATA)>

<!ELEMENT Element_ID (#PCDATA)>

Page 59: Freight Database Wrapper Module For Dynamic Hypermedia Engine

59

<!ELEMENT Action (#PCDATA)>

<!ELEMENT BridgeLaw_ID (#PCDATA)>

The following are the six output messages.

6.2.1. Display Message:

This message is a response message to the Display message received by FDWM. The

display message received by FDWM is like a startup message to the module. The first thing that

has to happen when the module is called is to show the end user the Freight Startup screen. This

output message does exactly that. It sends a response message to the gateway to be sent to UIW

to display the Freight Start page.

Example of the Message

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM

"/export/home/engine/WWW/public_html/users/shared/dtd/DisplayDoc.dtd" ><EngMsg>

<RequestID>965302565918</RequestID>

<MsgType>DISPLAYDOCUMENT</MsgType>

<Origin>FDWM</Origin>

<Current>BLEM</Current>

Page 60: Freight Database Wrapper Module For Dynamic Hypermedia Engine

60

<MsgNo>FDWM:965302581587</MsgNo>

<Destination>UIW</Destination>

<MsgBody>

<SubFrame Name="MAIN">

<Doc>

<DocID>dhyme:fdwm:DisplayDocument:FreightStart</DocID>

<DocType>dhyme:fdwm:DisplayDocument</DocType> </Doc>

<OutDoc>

<! [CDATA[ <HTML>

<HEAD>

<TITLE>WELCOME TO NJDOT-FREIGHT DHYME</TITLE>

</HEAD>

<BODY background=http://freight.njit.edu/back2.gif >

<P ALIGN=RIGHT>

<TABLE WIDTH=80%>

<TR>

<TD>

Page 61: Freight Database Wrapper Module For Dynamic Hypermedia Engine

61

<IMG SRC="http://freight.njit.edu/njdot1.gif">

</TD>

<TD>

<FONT color=#000080 face=Arial SIZE=4>

The National Center for Transportation and Industrial Productivity<BR>

<A href="http://www.njit.edu/">

<FONT color=red>New Jersey Institute of Technology

</A>

</FONT> NEWARK, NJ 07102 <BR>

<BR>NJDOT FREIGHT INFORMATION MANAGEMENT SYSTEM

</TD>

</TR>

</TABLE>

<HR WIDTH=85% ALIGN=RIGHT>

<TABLE WIDTH=80%>

<TR>

<TD>

Page 62: Freight Database Wrapper Module For Dynamic Hypermedia Engine

62

<BR>

<IMG src="http://freight.njit.edu/ball.gif">

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&Element_ID=dhyme:fdwm:existing_link:about&Subject=getFirst"target=_top>About the

MIS</A>

</TD>

</TR>

<TR>

<TD>

<IMG src="http://freight.njit.edu/ball.gif">

<A HREF="http://freight.njit.edu/execute/"target=_top> Executive Summary Reports</A>

</TD>

</TR>

<TR>

<TD>

Page 63: Freight Database Wrapper Module For Dynamic Hypermedia Engine

63

<IMG src="http://freight.njit.edu/ball.gif">

<A HREF="UIW?MsgType=FOLLOWLINK&Des

tination=FDWM&type=dhyme:fdwm:existing_link&Element_ID=dhyme:fdwm:existing_link:

cfsr1993&Subject=getFirst"target=_top> Commodity Flows Summation Reports (DRI-

1993)</A>

</TD>

</TR>

<TR>

<TD>

<IMG src="http://freight.njit.edu/ball.gif">

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&Elem ent_ID=dhyme:fdwm:existing_link:cfsr1982&Subject=getFirst"target=_top>

Commodity Flows Summation Reports (Rebee-1982)

</A>

</TD>

</TR>

Page 64: Freight Database Wrapper Module For Dynamic Hypermedia Engine

64

<TR>

<TD>

<IMG src="http://freight.njit.edu/ball.gif">

<A HREF="UIW?MsgType=FOLLOWLINK&De

stination=FDWM&type=dhyme:fdwm:existing_link&Element_ID=dhyme:fdwm:existing_link

:cfcr&Subject=getFirst"target=_top> Commodity Flows Comparison Reports (DRI-1993 vs.

Rebee-1982)</A>

</TD>

</TR>

<TR>

<TD>

<IMG src="http://freight.njit.edu/ball.gif"> <A HREF="UIW?MsgType=FOLLOWLINK&De

stination=FDWM&type=dhyme:fdwm:existing_link&Element_ID=dhyme:fdwm:existing_link

:misc&Subject=getFirst"target=_top> Miscellaneous Statistics</A>

</TD>

</TR>

</TABLE>

Page 65: Freight Database Wrapper Module For Dynamic Hypermedia Engine

65

<HR WIDTH=85% ALIGN=RIGHT>

</FONT>

<CENTER><FONT SIZE=2>

<I>This site can be best viewed with Microsoft Internet Explorer 4.0 or higher.</I>

<BR><BR>Copyright c 1999 The National Center for Transportation and Industrial

Productivity, New Jersey Institute of Technology.</FONT> <BR>

<BR>

</CENTER>

</P></BODY></HTML>]]>

</OutDoc>

<List_Of_Element/>

</SubFrame>

</MsgBody>

</EngMsg>

6.2.2 GetFirst Message :

Page 66: Freight Database Wrapper Module For Dynamic Hypermedia Engine

66

This message is a reply message to the message received from UIW with the selection of the

page in Freight(cfsr1993, cfsr1982, cfcr ,misc, about). This message sends as the output 2

documents in two different frames. In one frame, Freight’s left html is shown allowing user to

make selection’s at any time. In the second frame the selected page of the Freight is shown .UIW

displays these two frames in the main frame of the Engine frame.

Example of the Message

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM

"/export/home/engine/WWW/public_html/users/shared/dtd/DisplayDoc.dtd" >

<EngMsg>

<RequestID>965321254971</RequestID>

<MsgType>DISPLAYDOCUMENT</MsgType>

<Origin>FDWM</Origin>

<Current>FDWM</Current>

<MsgNo>FDWM:965321257609</MsgNo>

<Destination>UIW</Destination>

<MsgBody>

Page 67: Freight Database Wrapper Module For Dynamic Hypermedia Engine

67

<FramesetDef target="MAIN">

<![CDATA[<frameset cols='135,*'><frame name='First'><frame

name='Second'></frameset>]]>

</FramesetDef>

<SubFrame Name="First">

<Doc>

<DocID>dhyme:fdwm:left:left</DocID>

<DocType>dhyme:fdwm:left</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

<BODY background="http://freight.njit.edu/back2.gif">

<BR>

<BR><BR>

<BR><FONT COLOR=BLACK SIZE=2>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&Element_ID=dhyme:fdwm:existing_link:about&Subject=getFirst"target=_top >About the

Page 68: Freight Database Wrapper Module For Dynamic Hypermedia Engine

68

MIS</A>

<BR>

<A HREF="http://freight.njit.edu/execute/index.htm"target=_top> Executive Reports</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&Element_ID=dhyme:fdwm:existing_link:cfsr1993&Subject=getFirst"target=_top> CFSR

(1993)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&Element_ID=dhyme:fdwm:existing_link:cfsr1982&Subject=getFirst"target=_top> CFSR

(1982)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&Element_ID=dhyme:fdwm:existing_link:cfcr&Subject=getFirst"target=_top> CFCR (93

vs.82)</A>

<BR>

Page 69: Freight Database Wrapper Module For Dynamic Hypermedia Engine

69

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&Element_ID=dhyme:fdwm:existing_link:misc&Subject=getFirst"target=_top> Misc.

Statistics</A>

</BODY>

</HTML>

]]>

</OutDoc>

<List_Of_Element/>

</SubFrame>

<SubFrame Name="Second">

<Doc>

<DocID>dhyme:fdwm:type:cfcr</DocID>

<DocType>dhyme:fdwm:type</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

<HEAD>

Page 70: Freight Database Wrapper Module For Dynamic Hypermedia Engine

70

</HEAD>

<BODY background=#FFFFF ALINK=#000080 VLINK=#000080 LINK=#000080>

<CENTER>

<FONT COLOR=#000080>

<H1>Commodity Flows Comparison Reports </H1>

<H4>(DRI-1993 vs. Rebee-1982)</H4>

</FONT>

</CENTER>

<P>

<HR><FONT COLOR=#000080 SIZE=+1>

<P><IMG src="http://freight.njit.edu/ball.gif">

<A href="#1">Flows between County and County</A>

<BR>

<BR><IMG src="http://freight.njit.edu/ball.gif">Flows between County and Zone <BR>

</P>

<UL>

</FONT>

Page 71: Freight Database Wrapper Module For Dynamic Hypermedia Engine

71

<B><FONT SIZE=2>Select the Flow

Orientation:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<LI>

<A HREF="#cz">County to Zone</A>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<LI>

<A HREF="#zc">Zone to County</A>

</LI></UL><HR><P><FONT SIZE=+1 COLOR=#000080>

<A NAME=1><STRONG><U>Flows between County and County</U></STRONG>

&nbsp;</A> :&nbsp; <BR></P></FONT>

<FORM ACTION=UIW>

<input type="hidden" name="Destination" value="fdwm">

<input type="hidden" name="MsgType" value="FOLLOWLINK">

<input type="hidden" name="Subject" value="getDocument">

<input type="hidden" name="Aspfile" value="cfcr:cfcr1.asp">

<TABLE>

<TR>

Page 72: Freight Database Wrapper Module For Dynamic Hypermedia Engine

72

<TD><B>County :</B>

</TD><TD>

<B>County : </B>

</TD>

</TR>

<TR>

<TD>Select the Origin County: </TD>

<TD>Select the Destination County: </TD>

</TR>

<TR>

<TD><SELECT id=select1 name=select1 style="HEIGHT: 40px; WIDTH: 200px">

<option value="Atlantic_CCP" selected>Atlantic, NJ

<option value="Bergen_CCP">Bergen, NJ

<option value="Burlington_CCP">Burlington, NJ

<option value="Camden_CCP">Camden, NJ

<option value="Capemay_CCP">Cape May, NJ

Page 73: Freight Database Wrapper Module For Dynamic Hypermedia Engine

73

<option value="Cumberland_CCP">Cumberland, NJ

<option value="Essex_CCP">Essex, NJ

<option value="Gloucester_CCP">Gloucester, NJ

<option value="Hudson_CCP">Hudson, NJ

<option value="Hunterdon_CCP">Hunterdon, NJ

<option value="Mercer_CCP">Mercer, NJ

<option value="Middlesex_CCP">Middlesex, NJ

<option value="Monmouth_CCP">Monmouth, NJ

<option value="Morris_CCP">Morris, NJ

<option value="Ocean_CCP">Ocean, NJ

<option value="Passaic_CCP">Passaic, NJ

<option value="Salem_CCP">Salem, NJ

<option value="Somerset_CCP">Somerset, NJ

<option value="Sussex_CCP">Sussex, NJ

<option value="Union_CCP">Union, NJ

<option value="Warren_CCP">Warren, NJ

</SELECT>

Page 74: Freight Database Wrapper Module For Dynamic Hypermedia Engine

74

</TD>

<TD>

<SELECT id=select2 name=select2 style="HEIGHT: 40px; WIDTH: 200px">

<option value="Atlantic" selected>Atlantic, NJ

<option value="Bergen">Bergen, NJ

<option value="Burlington">Burlington, NJ

<option value="Camden">Camden, NJ

<option value="Cape May">Cape May, NJ

<option value="Cumberland">Cumberland, NJ

<option value="Essex">Essex, NJ

<option value="Gloucester">Gloucester, NJ

<option value="Hudson">Hudson, NJ

<option value="Hunterdon">Hunterdon, NJ

<option value="Mercer">Mercer, NJ

<option value="Middlesex">Middlesex, NJ

<option value="Monmouth">Monmouth, NJ

Page 75: Freight Database Wrapper Module For Dynamic Hypermedia Engine

75

<option value="Morris">Morris, NJ

<option value="Ocean">Ocean, NJ

<option value="Passaic">Passaic, NJ

<option value="Salem">Salem, NJ

<option value="Somerset">Somerset, NJ

<option value="Sussex">Sussex, NJ

<option value="Union">Union, NJ

<option value="Warren">Warren, NJ

</SELECT>

</TD>

</TR>

<TR>

<TD><INPUT id=submit1 name=submit1 type=submit value=Submit>&nbsp;&nbsp;

<INPUT id=reset1 name=reset1 type=reset value=Reset>

</TD>

<TD>&nbsp;

</TD></TR>

Page 76: Freight Database Wrapper Module For Dynamic Hypermedia Engine

76

</TABLE>

</OPTION>

</SELECT>&nbsp;&nbsp;&nbsp; <P></P>

</form><BR><HR><BR><FONT SIZE=+1 COLOR=#000080><B><U>

<A NAME=#2>Flows between County and Zone</A>

</B></U><BR><BR></FONT><A NAME=cz><U><B>County to Zone:</B></U></A>

<FORM ACTION=UIW>

<input type="hidden" name="Destination" value="fdwm">

<input type="hidden" name="MsgType" value="FOLLOWLINK">

<input type="hidden" name="Subject" value="getDocument">

<input type="hidden" name="Aspfile" value="cfcr:cfcr2.asp">

<TABLE>

<TR><TD><B>County :</B> </TD>

<TD><B>Zone : </B></TD>

</TR>

<TR>

Page 77: Freight Database Wrapper Module For Dynamic Hypermedia Engine

77

<TD>Select the County: </TD>

<TD>Select the Zone: </TD>

</TR>

<TR>

<TD>

<SELECT id=select1 name=select1 style="HEIGHT: 40px; WIDTH: 200px">

<option value="Atlantic_CZP" selected>Atlantic, NJ

<option value="Bergen_CZP">Bergen, NJ

<option value="Burlington_CZP">Burlington, NJ

<option value="Camden_CZP">Camden, NJ

<option value="Capemay_CZP">Cape May, NJ

<option value="Cumberland_CZP">Cumberland, NJ

<option value="Essex_CZP">Essex, NJ

<option value="Gloucester_CZP">Gloucester, NJ

<option value="Hudson_CZP">Hudson, NJ

<option value="Hunterdon_CZP">Hunterdon, NJ

<option value="Mercer_CZP">Mercer, NJ

Page 78: Freight Database Wrapper Module For Dynamic Hypermedia Engine

78

<option value="Middlesex_CZP">Middlesex, NJ

<option value="Monmouth_CZP">Monmouth, NJ

<option value="Morris_CZP">Morris, NJ

<option value="Ocean_CZP">Ocean, NJ

<option value="Passaic_CZP">Passaic, NJ

<option value="Salem_CZP">Salem, NJ

<option value="Somerset_CZP">Somerset, NJ

<option value="Sussex_CZP">Sussex, NJ

<option value="Union_CZP">Union, NJ

<option value="Warren_CZP">Warren, NJ

</SELECT>

</OPTION>

</SELECT>

</TD>

<TD><SELECT id=select2 name=select2 style="HEIGHT: 40px; WIDTH: 200px">

<option value="Delaware" selected>Delaware, Val.

<option value="NJ ">NJ

Page 79: Freight Database Wrapper Module For Dynamic Hypermedia Engine

79

<option value="NJ South">NJ South

<option value="NJTPA">NJTPA

<option value="USA">USA

</SELECT>

</TD>

</TR>

</TABLE>

<P>

<INPUT id=submit1 name=submit1 type=submit value=Submit>

&nbsp;&nbsp; <INPUT id=reset1 name=reset1 type=reset value=Reset></P>

</FORM><BR><HR WIDTH=45% ALIGN=left>

<A NAME=zc><U><B>Zone to County:</B></U></A>

<FORM ACTION=UIW>

<input type="hidden" name="Destination" value="fdwm">

<input type="hidden" name="MsgType" value="FOLLOWLINK">

<input type="hidden" name="Subject" value="getDocument">

Page 80: Freight Database Wrapper Module For Dynamic Hypermedia Engine

80

<input type="hidden" name="Aspfile" value="cfcr:cfcr3.asp">

<TABLE>

<TR>

<TD><B>Zone : </B></TD>

<TD><B>County :</B> </TD>

</TR>

<TR><TD>Select the Zone: </TD>

<TD>Select the County: </TD>

</TR>

<TR><TD><SELECT id=select2 name=select2 style="HEIGHT: 40px; WIDTH: 200px">

<option value="Delaware" selected>Delaware, Val.

<option value="NJ ">NJ <option value="NJ South">NJ South

<option value="NJTPA">NJTPA

<option value="USA">USA </SELECT>

</TD>

<TD>

Page 81: Freight Database Wrapper Module For Dynamic Hypermedia Engine

81

<SELECT id=select1 name=select1 style="HEIGHT: 40px; WIDTH: 200px">

<option value="Atlantic_CZP" selected>Atlantic, NJ

<option value="Bergen_CZP">Bergen, NJ

<option value="Burlington_CZP">Burlington, NJ

<option value="Camden_CZP">Camden, NJ

<option value="Capemay_CZP">Cape May, NJ

<option value="Cumberland_CZP">Cumberland, NJ

<option value="Essex_CZP">Essex, NJ

<option value="Gloucester_CZP">Gloucester, NJ

<option value="Hudson_CZP">Hudson, NJ

<option value="Hunterdon_CZP">Hunterdon, NJ

<option value="Mercer_CZP">Mercer, NJ

<option value="Middlesex_CZP">Middlesex, NJ

<option value="Monmouth_CZP">Monmouth, NJ

<option value="Morris_CZP">Morris, NJ

<option value="Ocean_CZP">Ocean, NJ

<option value="Passaic_CZP">Passaic, NJ

Page 82: Freight Database Wrapper Module For Dynamic Hypermedia Engine

82

<option value="Salem_CZP">Salem, NJ

<option value="Somerset_CZP">Somerset, NJ

<option value="Sussex_CZP">Sussex, NJ

<option value="Union_CZP">Union, NJ

<option value="Warren_CZP">Warren, NJ

</SELECT>

</OPTION>

</SELECT>

</TD>

</TR>

</TABLE>

<P>

<INPUT id=submit1 name=submit1 type=submit value=Submit>&nbsp;&nbsp;

<INPUT id=reset1 name=reset1 type=reset value=Reset></P>

</FORM>

<BR><HR>

</FONT>

Page 83: Freight Database Wrapper Module For Dynamic Hypermedia Engine

83

</B>

</BODY>

</HTML>

]]>

</OutDoc>

<List_Of_Element/>

</SubFrame>

</MsgBody>

</EngMsg>

There are four hidden parameters in the message. They are Destination, MsgType, Subject,

Aspfile. These hidden parameters are provided so that when a user does a “submit” on the form,

the UIW sends a message to FDWM with the parameters and the corresponding parameter’s

values.

Parameter Name Parameter Value

Destination fdwm

MsgType FOLLOWLINK

Subject getDocument

Aspfile The filename that has to be included to make a http

Page 84: Freight Database Wrapper Module For Dynamic Hypermedia Engine

84

getrequest on the original Freight System

6.2.3 GetDocument Message

When the user does a “submit” on a page (for example Commodity Flow Summation

Reports 1982 county to county) UIW sends a getDocument message to FDWM. In response to

this message, FDWM requests Freight for the page based on the selected parameters ,that the

FDWM receives from the message.

After receiving the page from Freight FDWM marks it up and sends the output to the UIW, to

be displayed in two frames. The first frame contains the left html allowing users to make a

selection at any time. The second frame contains all the marked up elements(which become

anchors after the action of BLEM).

Here is an example of a GetDocument message :

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Di

splayDoc.dtd" >

<EngMsg>

<RequestID>965002286159</RequestID>

<MsgType>DISPLAYDOCUMENT</MsgType>

Page 85: Freight Database Wrapper Module For Dynamic Hypermedia Engine

85

<Origin>FDWM</Origin>

<Current>FDWM</Current>

<MsgNo>FDWM:965563461061</MsgNo>

<Destination>UIW</Destination>

<MsgBody>

<FramesetDef target="MAIN">

<![CDATA[<frameset cols='135,*'><frame name='First'><frame name='Second'><

/frameset>]]>

</FramesetDef>

<SubFrame Name="First">

<Doc>

<DocID>dhyme:fdwm:left:left</DocID>

<DocType>dhyme:fdwm:left</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

<BODY background="http://freight.njit.edu/back2.gif">

Page 86: Freight Database Wrapper Module For Dynamic Hypermedia Engine

86

<BR>

<BR><BR>

<BR><FONT COLOR=BLACK SIZE=2>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:about&Subject=getFirst"target=_top >About the

MIS</A>

<BR>

<A HREF="http://freight.njit.edu/execute/index.htm"target=_top> Executive Report

s</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1993&Subject=getFirst"target=_top> CFSR (

1993)</A>

<BR>

Page 87: Freight Database Wrapper Module For Dynamic Hypermedia Engine

87

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1982&Subject=getFirst"target=_top> CFSR (

1982)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfcr&Subject=getFirst"target=_top> CFCR (93 v

s.82)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:misc&Subject=getFirst"target=_top> Misc. Stat

istics</A>

</BODY>

Page 88: Freight Database Wrapper Module For Dynamic Hypermedia Engine

88

</HTML>

]]>

</OutDoc>

<List_Of_Element/>

</SubFrame>

<SubFrame Name="Second">

<Doc>

<DocID>dhyme:fdwm:QueryResults:cfcr:cfcr3.asp:Sussex_CZP:NJ South</DocID

>

<DocType>dhyme:fdwm:QueryResults</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

<body BACKGROUND="#FFFFF" ALINK=#000080 VLINK=#000080 LINK=#000080>

<b> From Zone: <#id2>NJ South</#id2>.<br> To County: <#id1>Sussex</#id1>.<br>Flo

w Units in Tons </b>

<table border=1><tr>

Page 89: Freight Database Wrapper Module For Dynamic Hypermedia Engine

89

<td><b><#id3>STCC_compare</#id3></B></td>

<td><b><#id4>Total</#id4></B></td>

<td><b><#id5>DT</#id5></B></td>

<td><b><#id6>Truck</#id6></B></td>

<td><b><#id7>D1</#id7></B></td>

<td><b><#id8>Rail</#id8></B></td>

<td><b><#id9>D2</#id9></B></td>

<td><b><#id10>Air</#id10></B></td>

<td><b><#id11>D3</#id11></B></td>

<td><b><#id12>Water</#id12></B></td>

<td><b><#id13>D4</#id13></B></td></tr> <tr>

<td valign=top><#id14>TOTAL</#id14></td>

<td valign=top><#id15>57.23</#id15></td>

<td valign=top><#id15>57.23</#id15></td>

Page 90: Freight Database Wrapper Module For Dynamic Hypermedia Engine

90

<td valign=top><#id16>958.626465661642</#id16></td>

<td valign=top><#id17>57.23</#id17></td>

<td valign=top><#id18>958.626465661642</#id18></td>

<td valign=top><#id19>0</#id19></td>

<td valign=top><#id20>0</#id20></td>

<td valign=top><#id21>0</#id21></td>

<td valign=top><#id22>0</#id22></td>

<td valign=top><#id23>0</#id23></td>

<td valign=top><#id24>0</#id24></td>

</tr>

message continues ….

</table>Note: '0' may indicates either 1983 or 1993 data not applicable, Or dat

a between 0 and 50 tons.<br><BR><CENTER><b><A HREF=cfcr.htm> BACK TO

COMMODITY F

LOWS COMPARISON REPORTS </A></CENTER></b>

</body>

Page 91: Freight Database Wrapper Module For Dynamic Hypermedia Engine

91

</html>

]]>

</OutDoc>

<List_Of_Element>

<Element>

<Locator>#id209</Locator>

<Type>dhyme:fdwm:flowunit</Type>

<Element_ID>dhyme:fdwm:flowunit:cfcr:cfcr3.asp:Sussex_CZP,:NJ South,:C

HEMICALS OR ALLIED PRODUCTS:D3:0</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id1</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Sussex</Element_ID>

<Action></Action>

</Element>

Page 92: Freight Database Wrapper Module For Dynamic Hypermedia Engine

92

<Element>

<Locator>#id22</Locator>

<Type>dhyme:fdwm:flowunit</Type>

<Element_ID>dhyme:fdwm:flowunit:cfcr:cfcr3.asp:Sussex_CZP,:NJ South,:T

OTAL:D3:0</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id2</Locator>

<Type>dhyme:fdwm:bothzone</Type>

<Element_ID>dhyme:fdwm:bothzone:NJ South</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id234</Locator>

<Type>dhyme:fdwm:stcccomp</Type>

<Element_ID>dhyme:fdwm:stcccomp:LEATHER OR LEATHER

Page 93: Freight Database Wrapper Module For Dynamic Hypermedia Engine

93

PRODUCTS</Element_I

D>

<Action></Action>

</Element>

<Element>

<Locator>#id199</Locator>

<Type>dhyme:fdwm:flowunit</Type>

<Element_ID>dhyme:fdwm:flowunit:cfcr:cfcr3.asp:Sussex_CZP,:NJ South,:P

RINTED MATTER:Water:0</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id12</Locator>

<Type>dhyme:fdwm:oldmode</Type>

<Element_ID>dhyme:fdwm:oldmode:Water</Element_ID>

<Action></Action>

</Element>

Page 94: Freight Database Wrapper Module For Dynamic Hypermedia Engine

94

<Element>

<Locator>#id11</Locator>

<Type>dhyme:fdwm:compmode</Type>

<Element_ID>dhyme:fdwm:compmode:D3</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id171</Locator>

<Type>dhyme:fdwm:flowunit</Type>

<Element_ID>dhyme:fdwm:flowunit:cfcr:cfcr3.asp:Sussex_CZP,:NJ South,:F

URNITURE OR FIXTURES:Truck:-0.01</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id170</Locator>

<Type>dhyme:fdwm:flowunit</Type>

<Element_ID>dhyme:fdwm:flowunit:cfcr:cfcr3.asp:Sussex_CZP,:NJ South,:F

Page 95: Freight Database Wrapper Module For Dynamic Hypermedia Engine

95

URNITURE OR FIXTURES:DT:-100</Element_ID>

<Action></Action>

</Element>

message continues ….

</List_Of_Element>

</SubFrame>

</MsgBody>

</EngMsg>

The above was a sample message with few elements.

To see the complete message click here

6.2.4 GetCounty_AllCounty_82 Message:

When the user selects the “display County to all Counties 1982” link in the browser UIW

sends a getCounty_AllCounty_82 message to FDWM. In response to this message, FDWM

Page 96: Freight Database Wrapper Module For Dynamic Hypermedia Engine

96

requests Freight for the page based on the selected parameter, that the FDWM receives from the

message.

After receiving the page from Freight FDWM marks it up and sends the output to the UIW, to

be displayed in two frames. The first frame contains the left html allowing users to make a

selection at any time. The second frame contains all the marked up elements(which become

anchors after the action of BLEM).

Here is an example of a GetCounty_AllCounty_82 message :

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Di

splayDoc.dtd" >

<EngMsg>

<RequestID>965410300207</RequestID>

<MsgType>DISPLAYDOCUMENT</MsgType>

<Origin>FDWM</Origin>

<Current>FDWM</Current>

<MsgNo>FDWM:965410304933</MsgNo>

<Destination>UIW</Destination>

Page 97: Freight Database Wrapper Module For Dynamic Hypermedia Engine

97

<MsgBody>

<FramesetDef target="MAIN">

<![CDATA[<frameset cols='135,*'><frame name='First'><frame name='Second'><

/frameset>]]>

</FramesetDef>

<SubFrame Name="First">

<Doc>

<DocID>dhyme:fdwm:left:left</DocID>

<DocType>dhyme:fdwm:left</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

<BODY background="http://freight.njit.edu/back2.gif">

<BR>

<BR><BR>

<BR><FONT COLOR=BLACK SIZE=2>

<A

Page 98: Freight Database Wrapper Module For Dynamic Hypermedia Engine

98

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:about&Subject=getFirst"target=_top >About the

MIS</A>

<BR>

<A HREF="http://freight.njit.edu/execute/index.htm"target=_top> Executive Report

s</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1993&Subject=getFirst"target=_top> CFSR (

1993)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1982&Subject=getFirst"target=_top> CFSR (

Page 99: Freight Database Wrapper Module For Dynamic Hypermedia Engine

99

1982)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfcr&Subject=getFirst"target=_top> CFCR (93 v

s.82)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:misc&Subject=getFirst"target=_top> Misc. Stat

istics</A>

</BODY>

</HTML>

]]>

</OutDoc>

<List_Of_Element/>

Page 100: Freight Database Wrapper Module For Dynamic Hypermedia Engine

100

</SubFrame>

<SubFrame Name="Second">

<Doc>

<DocID>dhyme:fdwm:QueryResults:cfsr1982:cfsr1982cc.asp:Camden_CC82:Atlan

tic,Bergen,Burlington,Camden,Cape May,Cumberland,Essex,Gloucester,Hudson,Hunterd

on,Mercer,Middlesex,Monmouth,Morris,Ocean,Passaic,Salem,Somerset,Sussex,Union,Wa

rren</DocID>

<DocType>dhyme:fdwm:QueryResults</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

<head>

<title>

Search Results

</title>

</head>

<BODY BACKGROUND="#FFFFF" ALINK=#000080 VLINK=#000080 LINK=#000080>

Page 101: Freight Database Wrapper Module For Dynamic Hypermedia Engine

101

<b> From Counties: <#id1>Camden</#id1>.<br> To Counties: <#id3>Atlantic</#id3>,

<#id4>Atlantic</#id4>, <#id5>Bergen</#id5>, <#id6>Burlington</#id6>, <#id2>Camde

n</#id2>, <#id7>Cape May</#id7>, <#id8>Cumberland</#id8>, <#id9>Essex</#id9>, <#

id10>Gloucester</#id10>, <#id11>Hudson</#id11>, <#id12>Hunterdon</#id12>, <#id13

>Mercer</#id13>, <#id14>Middlesex</#id14>, <#id15>Monmouth</#id15>, <#id16>Morri

s</#id16>, <#id17>Ocean</#id17>, <#id18>Passaic</#id18>, <#id19>Salem</#id19>, <

#id20>Somerset</#id20>, <#id21>Sussex</#id21>, <#id22>Union</#id22>, <#id23>Warr

en</#id23>.<br>Flow Units in Tons </b>

<table border=1><tr>

<td><b><#id24>STCC</#id24></b></td>

<td><b><#id25>Total</#id25></b></td>

<td><b><#id26>Motor</#id26></b></td>

<td><b><#id27>Rail</#id27></b></td>

<td><b><#id28>Air</#id28></b></td>

<td><b><#id29>Water</#id29></b></td> </tr>

Page 102: Freight Database Wrapper Module For Dynamic Hypermedia Engine

102

<td align="top"><#id30> Total</#id30></td>

<td align="top"><#id31>2401311</#id31></td>

<td align="top"><#id30> Total</#id30></td>

<td align="top"><#id31>2401311</#id31></td>

<td align="top"><#id32>775961</#id32></td>

<td align="top"><#id33>0</#id33></td>

<td align="top"><#id34>3</#id34></td>

<td align="top"><#id35>1625347</#id35></td></tr>

<td align="top"><#id36> 01 - Farm Products</#id36></td>

<td align="top"><#id37>841</#id37></td>

<td align="top"><#id38>837</#id38></td>

<td align="top"><#id39>0</#id39></td>

<td align="top"><#id40>0</#id40></td>

<td align="top"><#id41>4</#id41></td></tr>

<td align="top"><#id42> 08 - Forest Products</#id42></td>

<td align="top"><#id43>0</#id43></td>

<td align="top"><#id44>0</#id44></td>

Page 103: Freight Database Wrapper Module For Dynamic Hypermedia Engine

103

<td align="top"><#id45>0</#id45></td>

<td align="top"><#id46>0</#id46></td>

</tr>

</table>Note: '0' indicates value between 0 to 50 tons or not applicable.

</body>

</html>

]]>

</OutDoc>

<List_Of_Element>

<Element>

<Locator>#id119</Locator>

<Type>dhyme:fdwm:compflowunit</Type>

<Element_ID>dhyme:fdwm:compflowunit:cfsr1982:cfsr1982cc.asp:Camden_CC8

2,:Atlantic,Bergen,Burlington,Camden,Cape May,Cumberland,Essex,Gloucester,Hudson

,Hunterdon,Mercer,Middlesex,Monmouth,Morris,Ocean,Passaic,Salem,Somerset,Sussex,

Union,Warren,: 25 - Furniture or Fixtures:Water:0</Element_ID>

Page 104: Freight Database Wrapper Module For Dynamic Hypermedia Engine

104

<Action></Action>

</Element>

<Element>

<Locator>#id23</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Warren</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id144</Locator>

<Type>dhyme:fdwm:stcc1982</Type>

<Element_ID>dhyme:fdwm:stcc1982: 30 - Rubber or Misc. Plastics</Elemen

t_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id29</Locator>

Page 105: Freight Database Wrapper Module For Dynamic Hypermedia Engine

105

<Type>dhyme:fdwm:oldmode</Type>

<Element_ID>dhyme:fdwm:oldmode:Water</Element_ID>

<Action></Action>

</Element>

<Element>

<Element>

<Locator>#id35</Locator>

<Type>dhyme:fdwm:totalflowunit</Type>

<Element_ID>dhyme:fdwm:totalflowunit:cfsr1982:cfsr1982cc.asp:Camden_CC

82,:Atlantic,Bergen,Burlington,Camden,Cape May,Cumberland,Essex,Gloucester,Hudso

n,Hunterdon,Mercer,Middlesex,Monmouth,Morris,Ocean,Passaic,Salem,Somerset,Sussex

,Union,Warren,: Total:Water:1625347</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id120</Locator>

<Type>dhyme:fdwm:stcc1982</Type>

Page 106: Freight Database Wrapper Module For Dynamic Hypermedia Engine

106

<Element_ID>dhyme:fdwm:stcc1982: 26 - Pulp, Paper, or Allied Products<

/Element_ID>

<Action></Action>

</Element>

message continues …

</List_Of_Element>

</SubFrame>

</MsgBody>

</EngMsg>

The above was a sample message with few elements.

To see the complete message click here

GetAllCounty_County_82 Message :

When the user selects the “display All Counties to County 1982” link in the browser

UIW sends a getAllCounty_County_82 message to FDWM. In response to this message,

Page 107: Freight Database Wrapper Module For Dynamic Hypermedia Engine

107

FDWM requests Freight for the page based on the selected parameter, that the FDWM receives

from the message.

After receiving the page from Freight FDWM marks it up and sends the output to the UIW, to

be displayed in two frames. The first frame contains the left html allowing users to make a

selection at any time. The second frame contains all the marked up elements(which become

anchors after the action of BLEM).

Here is an example of a GetAllCounty_County_82 message:

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Di

splayDoc.dtd" >

<EngMsg>

<RequestID>965327247044</RequestID>

<MsgType>DISPLAYDOCUMENT</MsgType>

<Origin>FDWM</Origin>

<Current>FDWM</Current>

<MsgNo>FDWM:965327250567</MsgNo>

<Destination>UIW</Destination>

Page 108: Freight Database Wrapper Module For Dynamic Hypermedia Engine

108

<MsgBody>

<FramesetDef target="MAIN">

<![CDATA[<frameset cols='135,*'><frame name='First'><frame name='Second'><

/frameset>]]>

</FramesetDef>

<SubFrame Name="First">

<Doc>

<DocID>dhyme:fdwm:left:left</DocID>

<DocType>dhyme:fdwm:left</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

<BODY background="http://freight.njit.edu/back2.gif">

<BR>

<BR><BR>

<BR><FONT COLOR=BLACK SIZE=2>

<A

Page 109: Freight Database Wrapper Module For Dynamic Hypermedia Engine

109

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:about&Subject=getFirst"target=_top >About the

MIS</A>

<BR>

<A HREF="http://freight.njit.edu/execute/index.htm"target=_top> Executive Report

s</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1993&Subject=getFirst"target=_top> CFSR (

1993)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1982&Subject=getFirst"target=_top> CFSR (

Page 110: Freight Database Wrapper Module For Dynamic Hypermedia Engine

110

1982)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfcr&Subject=getFirst"target=_top> CFCR (93 v

s.82)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:misc&Subject=getFirst"target=_top> Misc. Stat

istics</A>

</BODY>

</HTML>

]]>

</OutDoc>

<List_Of_Element/>

Page 111: Freight Database Wrapper Module For Dynamic Hypermedia Engine

111

</SubFrame>

<SubFrame Name="Second">

<Doc>

<DocID>dhyme:fdwm:QueryResults:cfsr1982:cfsr1982cc.asp:Atlantic_CC82,Ber

gen_CC82,Burlington_CC82,Camden_CC82,CapeMay_CC82,Cumberland_CC82,Essex_CC82,

Glo

ucester_CC82,Hudson_CC82,Hunterdon_CC82,Mercer_CC82,Middlesex_CC82,Monmouth_C

C82

,Morris_CC82,Ocean_CC82,Passaic_CC82,Salem_CC82,Somerset_CC82,Sussex_CC82,Union_

CC82,Warren_CC82:Sussex</DocID>

<DocType>dhyme:fdwm:QueryResults</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

<head>

<title>

Search Results

Page 112: Freight Database Wrapper Module For Dynamic Hypermedia Engine

112

</title>

</head>

<BODY BACKGROUND="#FFFFF" ALINK=#000080 VLINK=#000080 LINK=#000080>

<b> From Counties: <#id1>Atlantic</#id1>, <#id2>Bergen</#id2>, <#id3>Burlington<

/#id3>, <#id4>Camden</#id4>, <#id5>CapeMay</#id5>, <#id6>Cumberland</#id6>, <#id

7>Essex</#id7>, <#id8>Gloucester</#id8>, <#id9>Hudson</#id9>, <#id10>Hunterdon</

#id10>, <#id11>Mercer</#id11>, <#id12>Middlesex</#id12>, <#id13>Monmouth</#id13>

, <#id14>Morris</#id14>, <#id15>Ocean</#id15>, <#id16>Passaic</#id16>, <#id17>Sa

lem</#id17>, <#id18>Somerset</#id18>, <#id19>Sussex</#id19>, <#id22>Union</#id22

>, <#id23>Warren</#id23>.<br> To Counties: <#id20>Sussex</#id20>, <#id21>Sussex<

/#id21>.<br>Flow Units in Tons </b>

<table border=1><tr>

<td><b><#id24>STCC</#id24></b></td>

<td><b><#id25>Total</#id25></b></td>

<td><b><#id26>Motor</#id26></b></td>

<td><b><#id27>Rail</#id27></b></td>

<td><b><#id28>Air</#id28></b></td>

Page 113: Freight Database Wrapper Module For Dynamic Hypermedia Engine

113

<td><b><#id29>Water</#id29></b></td> </tr>

<td align="top"><#id30> Total</#id30></td>

<td align="top"><#id31>116807</#id31></td>

<td align="top"><#id32>116805</#id32></td>

<td align="top"><#id33>0</#id33></td>

<td align="top"><#id34>2</#id34></td>

<td align="top"><#id35>0</#id35></td></tr>

<td align="top"><#id36> 01 - Farm Products</#id36></td>

<td align="top"><#id37>722</#id37></td>

<td align="top"><#id38>722</#id38></td>

<td align="top"><#id39>0</#id39></td>

<td align="top"><#id40>0</#id40></td>

<td align="top"><#id41>0</#id41></td></tr>

<td align="top"><#id42> 08 - Forest Products</#id42></td>

<td align="top"><#id43>0</#id43></td>

<td align="top"><#id44>0</#id44></td>

Page 114: Freight Database Wrapper Module For Dynamic Hypermedia Engine

114

<td align="top"><#id45>0</#id45></td>

<td align="top"><#id46>0</#id46></td>

<td align="top"><#id47>0</#id47></td></tr>

<td align="top"><#id48> 09 - Fresh Fish & Other Marine Products</#id48></td>

<td align="top"><#id49>0</#id49></td>

<td align="top"><#id50>0</#id50></td>

<td align="top"><#id51>0</#id51></td>

<td align="top"><#id52>0</#id52></td>

message continues ….

</table>Note: '0' indicates value between 0 to 50 tons or not applicable.

</body>

</html>

]]>

</OutDoc>

<List_Of_Element>

Page 115: Freight Database Wrapper Module For Dynamic Hypermedia Engine

115

<Element>

<Locator>#id119</Locator>

<Type>dhyme:fdwm:compflowunit</Type>

<Element_ID>dhyme:fdwm:compflowunit:cfsr1982:cfsr1982cc.asp:Atlantic_C

C82,Bergen_CC82,Burlington_CC82,Camden_CC82,CapeMay_CC82,Cumberland_CC82,Esse

x_C

C82,Gloucester_CC82,Hudson_CC82,Hunterdon_CC82,Mercer_CC82,Middlesex_CC82,Monm

ou

th_CC82,Morris_CC82,Ocean_CC82,Passaic_CC82,Salem_CC82,Somerset_CC82,Sussex_CC8

2

,Union_CC82,Warren_CC82,:Sussex,: 25 - Furniture or Fixtures:Water:0</Element_ID

>

<Action></Action>

</Element>

<Element>

<Locator>#id22</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Union</Element_ID>

Page 116: Freight Database Wrapper Module For Dynamic Hypermedia Engine

116

<Action></Action>

</Element>

<Element>

<Locator>#id21</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Sussex</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id144</Locator>

<Type>dhyme:fdwm:stcc1982</Type>

<Element_ID>dhyme:fdwm:stcc1982: 30 - Rubber or Misc. Plastics</Elemen

t_ID>

<Action></Action>

</Element>

<Element>

<Element>

Page 117: Freight Database Wrapper Module For Dynamic Hypermedia Engine

117

<Locator>#id29</Locator>

<Type>dhyme:fdwm:oldmode</Type>

<Element_ID>dhyme:fdwm:oldmode:Water</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id28</Locator>

<Type>dhyme:fdwm:oldmode</Type>

<Element_ID>dhyme:fdwm:oldmode:Air</Element_ID>

<Action></Action>

</Element>

<Element>

<Element>

<Locator>#id35</Locator>

<Type>dhyme:fdwm:totalflowunit</Type>

<Element_ID>dhyme:fdwm:totalflowunit:cfsr1982:cfsr1982cc.asp:Atlantic_

CC82,Bergen_CC82,Burlington_CC82,Camden_CC82,CapeMay_CC82,Cumberland_CC82,Ess

Page 118: Freight Database Wrapper Module For Dynamic Hypermedia Engine

118

ex_

CC82,Gloucester_CC82,Hudson_CC82,Hunterdon_CC82,Mercer_CC82,Middlesex_CC82,Mon

mo

uth_CC82,Morris_CC82,Ocean_CC82,Passaic_CC82,Salem_CC82,Somerset_CC82,Sussex_CC

8

2,Union_CC82,Warren_CC82,:Sussex,: Total:Water:0</Element_ID>

<Action></Action>

</Element>

message continues ….

</List_Of_Element>

</SubFrame>

</MsgBody>

</EngMsg>

Page 119: Freight Database Wrapper Module For Dynamic Hypermedia Engine

119

The above was a sample message with few elements.

To see the complete message click here

6.2.5 GetCounty_AllCounty_93 Message:

When the user selects the “display County to all Counties 1993” link in the browser UIW

sends a getCounty_AllCounty_93 message to FDWM. In response to this message, FDWM

requests Freight for the page based on the selected parameter, that the FDWM receives from the

message.

After receiving the page from Freight FDWM marks it up and sends the output to the UIW, to

be displayed in two frames. The first frame contains the left html allowing users to make a

selection at any time. The second frame contains all the marked up elements(which become

anchors after the action of BLEM).

Here is an example of a GetCounty_AllCounty_93 message :

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Di

splayDoc.dtd" >

<EngMsg>

Page 120: Freight Database Wrapper Module For Dynamic Hypermedia Engine

120

<RequestID>965002286159</RequestID>

<MsgType>DISPLAYDOCUMENT</MsgType>

<Origin>FDWM</Origin>

<Current>FDWM</Current>

<MsgNo>FDWM:965563296630</MsgNo>

<Destination>UIW</Destination>

<MsgBody>

<FramesetDef target="MAIN">

<![CDATA[<frameset cols='135,*'><frame name='First'><frame name='Second'><

/frameset>]]>

</FramesetDef>

<SubFrame Name="First">

<Doc>

<DocID>dhyme:fdwm:left:left</DocID>

<DocType>dhyme:fdwm:left</DocType>

</Doc>

<OutDoc>

Page 121: Freight Database Wrapper Module For Dynamic Hypermedia Engine

121

<![CDATA[<HTML>

<BODY background="http://freight.njit.edu/back2.gif">

<BR>

<BR><BR>

<BR><FONT COLOR=BLACK SIZE=2>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:about&Subject=getFirst"target=_top >About the

MIS</A>

<BR>

<A HREF="http://freight.njit.edu/execute/index.htm"target=_top> Executive Report

s</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1993&Subject=getFirst"target=_top> CFSR (

Page 122: Freight Database Wrapper Module For Dynamic Hypermedia Engine

122

1993)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1982&Subject=getFirst"target=_top> CFSR (

1982)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfcr&Subject=getFirst"target=_top> CFCR (93 v

s.82)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfcr&Subject=getFirst"target=_top> CFCR (93 v

Page 123: Freight Database Wrapper Module For Dynamic Hypermedia Engine

123

s.82)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:misc&Subject=getFirst"target=_top> Misc. Stat

istics</A>

</BODY>

</HTML>

]]>

</OutDoc>

<List_Of_Element/>

</SubFrame>

<SubFrame Name="Second">

<Doc>

<DocID>dhyme:fdwm:QueryResults:cfsr1993:cfsr1993cc.asp:Burlington_cc:Atl

antic,Bergen,Burlington,Camden,Cape May,Cumberland,Essex,Gloucester,Hudson,Hunte

Page 124: Freight Database Wrapper Module For Dynamic Hypermedia Engine

124

rdon,Mercer,Middlesex,Monmouth,Morris,Ocean,Passaic,Salem,Somerset,Sussex,Union,

Warren</DocID>

<DocType>dhyme:fdwm:QueryResults</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

<head>

<title>

Search Results

</title>

</head>

<BODY BACKGROUND="#FFFFF" ALINK=#000080 VLINK=#000080 LINK=#000080>

<b> Origin Counties: <#id1>Burlington</#id1>.<br>Destination Counties: <#id3>Atl

antic</#id3>, <#id4>Bergen</#id4>, <#id2>Burlington</#id2>, <#id5>Camden</#id5>,

<#id6>Cape May</#id6>, <#id7>Cumberland</#id7>, <#id8>Essex</#id8>, <#id9>Glouc

ester</#id9>, <#id10>Hudson</#id10>, <#id11>Hunterdon</#id11>, <#id12>Mercer</#i

d12>, <#id13>Middlesex</#id13>, <#id14>Monmouth</#id14>, <#id15>Morris</#id15>,

Page 125: Freight Database Wrapper Module For Dynamic Hypermedia Engine

125

<#id16>Ocean</#id16>, <#id17>Passaic</#id17>, <#id18>Salem</#id18>, <#id19>Somer

set</#id19>, <#id20>Sussex</#id20>, <#id21>Union</#id21>, <#id22>Warren</#id22>.

<br>Flow Units in Thousand tons </b>

<table border=1><tr>

<!-- <td><b>Destination </b></td>

<td><b>STCC</b></td>

<td><b>Total</b></td>

<td><b>Truck</b></td>

<td><b>Common Carrier</b></td>

<td><b>Package Carrier</b></td>

<td><b>Company Fleet</b></td>

<td><b>Rail</b></td>

<td><b>Boxcars</b></td>

<td><b>TOFC/COFC</b></td>

<td><b>Air</b></td>

<td><b>Water Other</b></td>

--></tr>

Page 126: Freight Database Wrapper Module For Dynamic Hypermedia Engine

126

</table>

<table border=1><tr>

<td><b><#id23>STCC</#id23></b></td>

<td><b><#id24>Total</#id24></b></td>

<td><b><#id25>Truck</#id25></b></td>

<td><b><#id26>Common Carrier</#id26></b></td>

<td><b><#id27>Package Carrier</#id27></b></td>

<td><b><#id28>Company Fleet</#id28></b></td>

<td><b><#id29>Rail</#id29></b></td>

<td><b><#id30>Boxcars</#id30></b></td>

<td><b><#id31>TOFC/COFC</#id31></b></td>

<td><b><#id32>Air</#id32></b></td>

<td><b><#id33>Water Other</#id33></b></td> </tr>

<td align="top"><#id34>Total</#id34></td>

Page 127: Freight Database Wrapper Module For Dynamic Hypermedia Engine

127

<td align="top"><#id35>1795.4</#id35></td>

<td align="top"><#id36>1792.3</#id36></td>

<td align="top"><#id37>441.5</#id37></td>

<td align="top"><#id38>172.4</#id38></td>

<td align="top"><#id39>1178.2</#id39></td>

<td align="top"><#id40>3.2</#id40></td>

<td align="top"><#id41>3.1</#id41></td>

<td align="top"><#id42>0</#id42></td>

<td align="top"><#id43>0</#id43></td>

<td align="top"><#id44>0</#id44></td></tr>

<td align="top"><#id45> 01-Farm Products </#id45></td>

<td align="top"><#id46>4.9</#id46></td>

<td align="top"><#id47>4.9</#id47></td>

<td align="top"><#id48>1.5</#id48></td>

<td align="top"><#id49>0.4</#id49></td>

message continues ….

Page 128: Freight Database Wrapper Module For Dynamic Hypermedia Engine

128

]]>

</tr>

</table>Note: '0' indicates value between 0 to 50 tons or not applicable.

</body>

</html>

]]>

</OutDoc>

<List_Of_Element>

<Element>

<Locator>#id209</Locator>

<Type>dhyme:fdwm:compflowunit</Type>

<Element_ID>dhyme:fdwm:compflowunit:cfsr1993:cfsr1993cc.asp:Burlington

_cc,:Atlantic,Bergen,Burlington,Camden,Cape May,Cumberland,Essex,Gloucester,Huds

on,Hunterdon,Mercer,Middlesex,Monmouth,Morris,Ocean,Passaic,Salem,Somerset,Susse

x,Union,Warren,: 26-Pulp and Paper :Water Other:0</Element_ID>

<Action></Action>

Page 129: Freight Database Wrapper Module For Dynamic Hypermedia Engine

129

</Element>

<Element>

<Locator>#id9</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Gloucester</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id232</Locator>

<Type>dhyme:fdwm:stcc1993</Type>

<Element_ID>dhyme:fdwm:stcc1993: 29-Petroleum and Coal Products </Ele

ment_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id44</Locator>

<Type>dhyme:fdwm:totalflowunit</Type>

Page 130: Freight Database Wrapper Module For Dynamic Hypermedia Engine

130

<Element_ID>dhyme:fdwm:totalflowunit:cfsr1993:cfsr1993cc.asp:Burlingto

n_cc,:Atlantic,Bergen,Burlington,Camden,Cape May,Cumberland,Essex,Gloucester,Hud

son,Hunterdon,Mercer,Middlesex,Monmouth,Morris,Ocean,Passaic,Salem,Somerset,Suss

ex,Union,Warren,:Total:Water Other:0</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id33</Locator>

<Type>dhyme:fdwm:oldmode</Type>

<Element_ID>dhyme:fdwm:oldmode:Water Other</Element_ID>

<Action></Action>

</Element>

<Element>

<Element>

<Locator>#id31</Locator>

<Type>dhyme:fdwm:newmode</Type>

<Element_ID>dhyme:fdwm:newmode:TOFC/COFC</Element_ID>

Page 131: Freight Database Wrapper Module For Dynamic Hypermedia Engine

131

<Action></Action>

</Element>

<Element>

<Element>

<Locator>#id170</Locator>

<Type>dhyme:fdwm:compflowunit</Type>

<Element_ID>dhyme:fdwm:compflowunit:cfsr1993:cfsr1993cc.asp:Burlington

_cc,:Atlantic,Bergen,Burlington,Camden,Cape May,Cumberland,Essex,Gloucester,Huds

on,Hunterdon,Mercer,Middlesex,Monmouth,Morris,Ocean,Passaic,Salem,Somerset,Susse

x,Union,Warren,: 23-Apparel :Package Carrier:0</Element_ID>

<Action></Action>

</Element>

</List_Of_Element>

</SubFrame>

</MsgBody>

</EngMsg>

Page 132: Freight Database Wrapper Module For Dynamic Hypermedia Engine

132

The above was a sample message with few elements.

To see the complete message click here

6.2.7 GetAllCounty_County_93 Message:

When the user selects the “display All Counties to County 1993” link in the browser

UIW sends a getAllCounty_County_93 message to FDWM. In response to this message, FDWM

requests Freight for the page based on the selected parameter, that the FDWM receives from the

message.

After receiving the page from Freight FDWM marks it up and sends the output to the UIW, to

be displayed in two frames. The first frame contains the left html allowing users to make a

selection at any time. The second frame contains all the marked up elements(which become

anchors after the action of BLEM).

Here is an example of a GetAllCounty_County_93 message:

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Di

splayDoc.dtd" >

<EngMsg>

<RequestID>965002286159</RequestID>

Page 133: Freight Database Wrapper Module For Dynamic Hypermedia Engine

133

<MsgType>DISPLAYDOCUMENT</MsgType>

<Origin>FDWM</Origin>

<Current>FDWM</Current>

<MsgNo>FDWM:965563461061</MsgNo>

<Destination>UIW</Destination>

<MsgBody>

<FramesetDef target="MAIN">

<![CDATA[<frameset cols='135,*'><frame name='First'><frame name='Second'><

/frameset>]]>

</FramesetDef>

<SubFrame Name="First">

<Doc>

<DocID>dhyme:fdwm:left:left</DocID>

<DocType>dhyme:fdwm:left</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

Page 134: Freight Database Wrapper Module For Dynamic Hypermedia Engine

134

<BODY background="http://freight.njit.edu/back2.gif">

<BR>

<BR><BR>

<BR><FONT COLOR=BLACK SIZE=2>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:about&Subject=getFirst"target=_top >About the

MIS</A>

<BR>

<A HREF="http://freight.njit.edu/execute/index.htm"target=_top> Executive Report

s</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1993&Subject=getFirst"target=_top> CFSR (

1993)</A>

Page 135: Freight Database Wrapper Module For Dynamic Hypermedia Engine

135

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1982&Subject=getFirst"target=_top> CFSR (

1982)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfcr&Subject=getFirst"target=_top> CFCR (93 v

s.82)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfcr&Subject=getFirst"target=_top> CFCR (93 v

s.82)</A>

Page 136: Freight Database Wrapper Module For Dynamic Hypermedia Engine

136

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:misc&Subject=getFirst"target=_top> Misc. Stat

istics</A>

</BODY>

</HTML>

]]>

</OutDoc>

<List_Of_Element/>

</SubFrame>

<SubFrame Name="Second">

<Doc>

<DocID>dhyme:fdwm:QueryResults:cfsr1993:cfsr1993cc.asp:Atlantic_cc,Berge

n_cc,Burlington_cc,Camden_cc,Capemay_cc,Cumberland_cc,Essex_cc,Gloucester_cc,Hud

son_cc,Hunterdon_cc,Mercer_cc,Middlesex_cc,Monmouth_cc,Morris_cc,Ocean_cc,Passai

Page 137: Freight Database Wrapper Module For Dynamic Hypermedia Engine

137

c_cc,Salem_cc,Somerset_cc,Sussex_cc,Union_cc,Warren_cc:Burlington</DocID>

<DocType>dhyme:fdwm:QueryResults</DocType>

</Doc>

<OutDoc> <![CDATA[<HTML>

<head>

<title>

Search Results

</title>

</head>

<BODY BACKGROUND="#FFFFF" ALINK=#000080 VLINK=#000080 LINK=#000080>

<b> Origin Counties: <#id1>Atlantic</#id1>, <#id2>Bergen</#id2>, <#id3>Burlingto

n</#id3>, <#id5>Camden</#id5>, <#id6>Capemay</#id6>, <#id7>Cumberland</#id7>, <#

id8>Essex</#id8>, <#id9>Gloucester</#id9>, <#id10>Hudson</#id10>, <#id11>Hunterd

on</#id11>, <#id12>Mercer</#id12>, <#id13>Middlesex</#id13>, <#id14>Monmouth</#i

d14>, <#id15>Morris</#id15>, <#id16>Ocean</#id16>, <#id17>Passaic</#id17>, <#id1

8>Salem</#id18>, <#id19>Somerset</#id19>, <#id20>Sussex</#id20>, <#id21>Union</#

id21>, <#id22>Warren</#id22>.<br>Destination Counties: <#id4>Burlington</#id4>.<

Page 138: Freight Database Wrapper Module For Dynamic Hypermedia Engine

138

br>Flow Units in Thousand tons </b>

<table border=1><tr>

<!-- <td><b>Destination </b></td>

<td><b>STCC</b></td>

<td><b>Total</b></td>

<td><b>Truck</b></td>

<td><b>Common Carrier</b></td>

<td><b>Package Carrier</b></td>

<td><b>Company Fleet</b></td>

<td><b>Rail</b></td>

<td><b>Boxcars</b></td>

<td><b>TOFC/COFC</b></td>

<td><b>Air</b></td>

<td><b>Water Other</b></td>

--></tr>

<td><b><#id23>STCC</#id23></b></td>

<td><b><#id24>Total</#id24></b></td>

Page 139: Freight Database Wrapper Module For Dynamic Hypermedia Engine

139

<td><b><#id25>Truck</#id25></b></td>

<td><b><#id26>Common Carrier</#id26></b></td>

<td><b><#id27>Package Carrier</#id27></b></td>

<td><b><#id28>Company Fleet</#id28></b></td>

<td><b><#id29>Rail</#id29></b></td>

<td><b><#id30>Boxcars</#id30></b></td>

<td><b><#id31>TOFC/COFC</#id31></b></td>

<td><b><#id32>Air</#id32></b></td>

<td><b><#id33>Water Other</#id33></b></td> </tr>

<td align="top"><#id34>Total</#id34></td>

<td align="top"><#id35>2548.3</#id35></td>

<td align="top"><#id36>2545.4</#id36></td>

<td align="top"><#id37>592</#id37></td>

<td align="top"><#id38>168.5</#id38></td>

<td align="top"><#id39>1784.9</#id39></td>

<td align="top"><#id40>2.9</#id40></td>

Page 140: Freight Database Wrapper Module For Dynamic Hypermedia Engine

140

<td align="top"><#id41>2.8</#id41></td>

<td align="top"><#id42>0.1</#id42></td>

<td align="top"><#id43>0</#id43></td>

<td align="top"><#id44>0</#id44></td></tr>

<td align="top"><#id43>0</#id43></td>

<td align="top"><#id44>0</#id44></td></tr> message follows…..

</tr>

</table>Note: '0' indicates value between 0 to 50 tons or not applicable.

</body>

</html>

]]>

</OutDoc>

<List_Of_Element>

<Element>

<Locator>#id209</Locator>

<Type>dhyme:fdwm:compflowunit</Type>

Page 141: Freight Database Wrapper Module For Dynamic Hypermedia Engine

141

<Element_ID>dhyme:fdwm:compflowunit:cfsr1993:cfsr1993cc.asp:Atlantic_c

c,Bergen_cc,Burlington_cc,Camden_cc,Capemay_cc,Cumberland_cc,Essex_cc,Gloucester

_cc,Hudson_cc,Hunterdon_cc,Mercer_cc,Middlesex_cc,Monmouth_cc,Morris_cc,Ocean_cc

,Passaic_cc,Salem_cc,Somerset_cc,Sussex_cc,Union_cc,Warren_cc:Burlington: 26-P

ulp and Paper :Water Other:0</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id25</Locator>

<Type>dhyme:fdwm:oldmode</Type>

<Element_ID>dhyme:fdwm:oldmode:Truck</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id5</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Camden</Element_ID>

Page 142: Freight Database Wrapper Module For Dynamic Hypermedia Engine

142

<Action></Action>

</Element>

<Element>

<Locator>#id30</Locator>

<Type>dhyme:fdwm:newmode</Type>

<Element_ID>dhyme:fdwm:newmode:Boxcars</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id36</Locator>

<Type>dhyme:fdwm:totalflowunit</Type>

<Element_ID>dhyme:fdwm:totalflowunit:cfsr1993:cfsr1993cc.asp:Atlantic_

cc,Bergen_cc,Burlington_cc,Camden_cc,Capemay_cc,Cumberland_cc,Essex_cc,Glouceste

r_cc,Hudson_cc,Hunterdon_cc,Mercer_cc,Middlesex_cc,Monmouth_cc,Morris_cc,Ocean_c

c,Passaic_cc,Salem_cc,Somerset_cc,Sussex_cc,Union_cc,Warren_cc:Burlington:Tota

l:Truck:2545.4</Element_ID>

<Action></Action>

Page 143: Freight Database Wrapper Module For Dynamic Hypermedia Engine

143

</Element>

<Element>

<Locator>#id23</Locator>

<Type>dhyme:fdwm:description</Type>

<Element_ID>dhyme:fdwm:description:STCC</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id265</Locator>

<Type>dhyme:fdwm:stcc1993</Type>

<Element_ID>dhyme:fdwm:stcc1993: 32-Stone, Clay, Glass &amp; Concrete<

/Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id170</Locator>

<Type>dhyme:fdwm:compflowunit</Type>

Page 144: Freight Database Wrapper Module For Dynamic Hypermedia Engine

144

<Element_ID>dhyme:fdwm:compflowunit:cfsr1993:cfsr1993cc.asp:Atlantic_c

c,Bergen_cc,Burlington_cc,Camden_cc,Capemay_cc,Cumberland_cc,Essex_cc,Gloucester

_cc,Hudson_cc,Hunterdon_cc,Mercer_cc,Middlesex_cc,Monmouth_cc,Morris_cc,Ocean_cc

,Passaic_cc,Salem_cc,Somerset_cc,Sussex_cc,Union_cc,Warren_cc:Burlington: 23-A

pparel :Package Carrier:0.1</Element_ID>

<Action></Action>

</Element>

message continues …

</List_Of_Element>

</SubFrame>

</MsgBody>

</EngMsg>

The above was a sample message with few elements.

To see the complete message click here

Page 145: Freight Database Wrapper Module For Dynamic Hypermedia Engine

145

6.2.8 GetMetaInfo Message:

When the user selects an anchor in the browser, UIW sends a getMetaInfo message to

FDWM. In response to this message, FDWM sends the meta data about the element to the user.

FDWM receives the parameter name as “Element_ID’ and the parameter value to be the Element

value (uri) that the user wants meta information about.

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM

"/export/home/engine/WWW/public_html/users/shared/dtd/DisplayDoc.dtd" >

<EngMsg>

<RequestID>965423098808</RequestID>

<MsgType>DISPLAYDOCUMENT</MsgType>

<Origin>FDWM</Origin>

<Current>FDWM</Current>

Page 146: Freight Database Wrapper Module For Dynamic Hypermedia Engine

146

<MsgNo>FDWM:965423102166</MsgNo>

<Destination>UIW</Destination>

<MsgBody>

<SubFrame Name="META">

<Doc>

<DocID>dhyme:fdwm:DisplayDocument:getMetaInfo:dhyme:fdwm:compflowunit:cfsr1982:cfs

r1982cc.asp:Atlantic_CC82,Bergen_CC82,Burlington_CC82,Camden_CC82,CapeMay_CC82,C

umberland_CC82,Essex_CC82,Gloucester_CC82,Hudson_CC82,Hunterdon_CC82,Mercer_CC8

2,Middlesex_CC82,Monmouth_CC82,Morris_CC82,Ocean_CC82,Passaic_CC82,Salem_CC82,

Somerset_CC82,Sussex_CC82,Union_CC82,Warren_CC82:Monmouth: 20 - Food and Kindred

Products:Water:0</DocID>

<DocType>dhyme:fdwm:DisplayDocument</DocType>

</Doc>

<OutDoc>

Page 147: Freight Database Wrapper Module For Dynamic Hypermedia Engine

147

<![CDATA[<?xml version="1.0"?><rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description about="0">

<To>Monmouth</To>

<Type>compflowunit</Type>

<Row> 20 - Food and Kindred Products</Row>

<From>Atlantic_CC82,Bergen_CC82,Burlington_CC82,Camden_CC82,CapeMay_CC82,Cumb

erland_CC82,Essex_CC82,Gloucester_CC82,Hudson_CC82,Hunterdon_CC82,Mercer_CC82,M

iddlesex_CC82,Monmouth_CC82,Morris_CC82,Ocean_CC82,Passaic_CC82,Salem_CC82,Som

erset_CC82,Sussex_CC82,Union_CC82,Warren_CC82</From>

<Col>Water</Col>

</rdf:Description>

</rdf:RDF>]]>

</OutDoc>

Page 148: Freight Database Wrapper Module For Dynamic Hypermedia Engine

148

<List_Of_Element/>

</SubFrame>

</MsgBody>

</EngMsg>

6.2.9 GetZone_AllCounty_82 Message:

When the user selects the “display Zone to all Counties 1982” link in the browser UIW

sends a getZone_AllCounty_82 message to FDWM. In response to this message, FDWM

requests Freight for the page based on the selected parameter, that the FDWM receives from the

message.

After receiving the page from Freight FDWM marks it up and sends the output to the UIW, to

be displayed in two frames. The first frame contains the left html allowing users to make a

selection at any time. The second frame contains all the marked up elements(which become

anchors after the action of BLEM).

Here is an example of a GetZone_AllCounty_82 message : The left doc looks identical to the

above messages. I’ve skipped that. I am including a portion of the outdoc tag of the second

frame.

<SubFrame Name="Second">

<Doc>

Page 149: Freight Database Wrapper Module For Dynamic Hypermedia Engine

149

<DocID>dhyme:fdwm:Get_Document_Results:cfsr1982:cfsr1982zc.asp:Atlantic_

CZ82,Bergen_CZ82,Burlington_CZ82,Camden_CZ82,Capemay_CZ82,Cumberland_CZ82,Esse

x_

CZ82,Gloucester_CZ82,Hudson_CZ82,Hunterdon_CZ82,Mercer_CZ82,Middlesex_CZ82,Mon

mo

uth_CZ82,Morris_CZ82,Ocean_CZ82,Passaic_CZ82,Salem_CZ82,Somerset_CZ82,Sussex_CZ8

2,Union_CZ82,Warren_CZ82:NJ South</DocID>

<DocType>dhyme:fdwm:Get_Document_Results</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

<head>

<title>

Search Results

</title>

</head>

<BODY BACKGROUND="#FFFFF" ALINK=#000080 VLINK=#000080 LINK=#000080>

Page 150: Freight Database Wrapper Module For Dynamic Hypermedia Engine

150

<b>From Zones: <#id22>NJ South</#id22>.<br>To Counties: <#id1>Atlantic</#id1>, <

#id2>Bergen</#id2>, <#id3>Burlington</#id3>, <#id4>Camden</#id4>, <#id5>Capemay<

/#id5>, <#id6>Cumberland</#id6>, <#id7>Essex</#id7>, <#id8>Gloucester</#id8>, <#

id9>Hudson</#id9>, <#id10>Hunterdon</#id10>, <#id11>Mercer</#id11>, <#id12>Middl

esex</#id12>, <#id13>Monmouth</#id13>, <#id14>Morris</#id14>, <#id15>Ocean</#id1

5>, <#id16>Passaic</#id16>, <#id17>Salem</#id17>, <#id18>Somerset</#id18>, <#id1

9>Sussex</#id19>, <#id20>Union</#id20>, <#id21>Warren</#id21>.<br>Flow Units in

Tons </b>

<table border=1><tr>

<td><b><#id23>STCC</#id23></b></td>

<td><b><#id24>Total</#id24></b></td>

<td><b><#id25>Motor</#id25></b></td>

<td><b><#id26>Rail</#id26></b></td>

<td><b><#id27>Air</#id27></b></td>

<td><b><#id28>Water</#id28></b></td> </tr>

Page 151: Freight Database Wrapper Module For Dynamic Hypermedia Engine

151

<td align="top"><#id29>Total</#id29></td>

<td align="top"><#id30>1602196</#id30></td>

<td align="top"><#id31>1326696</#id31></td>

<td align="top"><#id32>275500</#id32></td>

<td align="top"><#id33>0</#id33></td>

<td align="top"><#id34>0</#id34></td></tr>

<td align="top"><#id35>01 - Farm Products</#id35></td>

<td align="top"><#id36>18812</#id36></td>

<td align="top"><#id37>18812</#id37></td>

<td align="top"><#id38>0</#id38></td>

<td align="top"><#id39>0</#id39></td>

message continues …

<Element>

<Locator>#id22</Locator>

<Type>dhyme:fdwm:bothzone</Type>

<Element_ID>dhyme:fdwm:bothzone:NJ South</Element_ID>

Page 152: Freight Database Wrapper Module For Dynamic Hypermedia Engine

152

<Action></Action>

</Element>

<Element>

<Locator>#id23</Locator>

<Type>dhyme:fdwm:description</Type>

<Element_ID>dhyme:fdwm:description:STCC</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id21</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Warren</Element_ID>

<Action></Action>

</Element>

<Element>

<Element>

<Locator>#id25</Locator>

Page 153: Freight Database Wrapper Module For Dynamic Hypermedia Engine

153

<Type>dhyme:fdwm:oldmode</Type>

<Element_ID>dhyme:fdwm:oldmode:Motor</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id35</Locator>

<Type>dhyme:fdwm:stcc1982</Type>

<Element_ID>dhyme:fdwm:stcc:01 - Farm Products</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id33</Locator>

<Type>dhyme:fdwm:totalflowunit</Type>

<Element_ID>dhyme:fdwm:totalflowunit:cfsr1982:cfsr1982zc.asp:Atlantic_

CZ82,Bergen_CZ82,Burlington_CZ82,Camden_CZ82,Capemay_CZ82,Cumberland_CZ82,Esse

x_

CZ82,Gloucester_CZ82,Hudson_CZ82,Hunterdon_CZ82,Mercer_CZ82,Middlesex_CZ82,Mon

Page 154: Freight Database Wrapper Module For Dynamic Hypermedia Engine

154

mo

uth_CZ82,Morris_CZ82,Ocean_CZ82,Passaic_CZ82,Salem_CZ82,Somerset_CZ82,Sussex_CZ8

2,Union_CZ82,Warren_CZ82:NJ South:Total:Air:0</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id159</Locator>

<Type>dhyme:fdwm:compflowunit</Type>

<Element_ID>dhyme:fdwm:compflowunit:cfsr1982:cfsr1982zc.asp:Atlantic_C

Z82,Bergen_CZ82,Burlington_CZ82,Camden_CZ82,Capemay_CZ82,Cumberland_CZ82,Essex

_C

Z82,Gloucester_CZ82,Hudson_CZ82,Hunterdon_CZ82,Mercer_CZ82,Middlesex_CZ82,Monmo

u

th_CZ82,Morris_CZ82,Ocean_CZ82,Passaic_CZ82,Salem_CZ82,Somerset_CZ82,Sussex_CZ82

,Union_CZ82,Warren_CZ82:NJ South:32 - Stone, Clay, Glass or Concrete:Air:0</Elem

ent_ID>

<Action></Action>

Page 155: Freight Database Wrapper Module For Dynamic Hypermedia Engine

155

</Element>

message continues …

</List_Of_Element>

</SubFrame>

</MsgBody>

</EngMsg>

For the complete message click here

6.2.10 GetZone_AllCounty_93 Message:

When the user selects the “display Zone to all Counties 1982” link in the browser UIW

sends a getZone_AllCounty_82 message to FDWM. In response to this message, FDWM

requests Freight for the page based on the selected parameter, that the FDWM receives from the

message.

After receiving the page from Freight FDWM marks it up and sends the output to the UIW, to

be displayed in two frames. The first frame contains the left html allowing users to make a

selection at any time. The second frame contains all the marked up elements(which become

anchors after the action of BLEM).

Because of an error in the original Freight System we get an error here. We get an error

in the original system if we make more than one selection in the counties.If that error is corrected

in future then this handler would work fine.

Page 156: Freight Database Wrapper Module For Dynamic Hypermedia Engine

156

Zone to All Counties gives an error in the original system .The error is given below.

Origin Zones: NJ.

Destination Counties: Atlantic, Bergen, Burlington,

Camden, Capemay, Cumberland, Essex, Gloucester,

Hudson, Hunterdon, Mercer, Middlesex, Monmouth,

Morris, Ocean, Passaic, Salem, Somerset, Sussex,

Union, Warren.

Flow Units in Thousand tons

Microsoft VBScript runtime error '800a0009'

Subscript out of range: 'count'

/cfsr1993/cfsr1993zc.asp, line 85

Here is an example of a GetZone_AllCounty_82 message :

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Di

Page 157: Freight Database Wrapper Module For Dynamic Hypermedia Engine

157

splayDoc.dtd" >

<EngMsg>

<RequestID>965925993172</RequestID>

<MsgType>DISPLAYDOCUMENT</MsgType>

<Origin>FDWM</Origin>

<Current>FDWM</Current>

<MsgNo>FDWM:965925995287</MsgNo>

<Destination>UIW</Destination>

<MsgBody>

<FramesetDef target="MAIN">

<![CDATA[<frameset cols='135,*'><frame name='First'><frame name='Second'><

/frameset>]]>

</FramesetDef>

<SubFrame Name="First">

<Doc>

<DocID>dhyme:fdwm:left:left</DocID>

<DocType>dhyme:fdwm:left</DocType>

Page 158: Freight Database Wrapper Module For Dynamic Hypermedia Engine

158

</Doc>

<OutDoc>

<![CDATA[<HTML>

<BODY background="http://freight.njit.edu/back2.gif">

<BODY background="http://freight.njit.edu/back2.gif">

<BR>

<BR><BR>

<BR><FONT COLOR=BLACK SIZE=2>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:about&Subject=getFirst"target=_top >About the

MIS</A>

<BR>

<A HREF="http://freight.njit.edu/execute/index.htm"target=_top> Executive Report

s</A>

<BR>

Page 159: Freight Database Wrapper Module For Dynamic Hypermedia Engine

159

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1993&Subject=getFirst"target=_top> CFSR (

1993)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1982&Subject=getFirst"target=_top> CFSR (

1982)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfcr&Subject=getFirst"target=_top> CFCR (93 v

s.82)</A>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

Page 160: Freight Database Wrapper Module For Dynamic Hypermedia Engine

160

nk&E

lement_ID=dhyme:fdwm:existing_link:misc&Subject=getFirst"target=_top> Misc. Stat

istics</A>

</BODY>

</HTML>

]]>

</OutDoc>

<List_Of_Element/>

</SubFrame>

<SubFrame Name="Second">

<Doc>

<DocID>dhyme:fdwm:Get_Document_Results:cfsr1993:cfsr1993zc.asp:Atlantic_

CZ,Bergen_CZ,Burlington_CZ,Camden_CZ,Capemay_CZ,Cumberland_CZ,Essex_CZ,Gloucest

e

r_CZ,Hudson_CZ,Hunterdon_CZ,Mercer_CZ,Middlesex_CZ,Monmouth_CZ,Morris_CZ,Ocean

_C

Z,Passaic_CZ,Salem_CZ,Somerset_CZ,Sussex_CZ,Union_CZ,Warren_CZ:NJ</DocID>

Page 161: Freight Database Wrapper Module For Dynamic Hypermedia Engine

161

<DocType>dhyme:fdwm:Get_Document_Results</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

<head>

<title>

Search Results

</title>

</head>

<BODY BACKGROUND="#FFFFF" ALINK=#000080 VLINK=#000080 LINK=#000080>

<b> Origin Zones: <#id22>NJ</#id22>.<br>Destination Counties: <#id1>Atlantic</#i

d1>, <#id2>Bergen</#id2>, <#id3>Burlington</#id3>, <#id4>Camden</#id4>, <#id5>Ca

pemay</#id5>, <#id6>Cumberland</#id6>, <#id7>Essex</#id7>, <#id8>Gloucester</#id

8>, <#id9>Hudson</#id9>, <#id10>Hunterdon</#id10>, <#id11>Mercer</#id11>, <#id12

>Middlesex</#id12>, <#id13>Monmouth</#id13>, <#id14>Morris</#id14>, <#id15>Ocean

</#id15>, <#id16>Passaic</#id16>, <#id17>Salem</#id17>, <#id18>Somerset</#id18>,

<#id19>Sussex</#id19>, <#id20>Union</#id20>, <#id21>Warren</#id21>.<br>Flow Uni

Page 162: Freight Database Wrapper Module For Dynamic Hypermedia Engine

162

ts in Thousand tons </b>

<table border=1><tr>

<!-- <td><b>Destination </b></td>

<td><b>STCC</b></td>

<td><b>Total</b></td>

<td><b>Truck</b></td>

<td><b>Common Carrier</b></td>

<td><b>Package Carrier</b></td>

<td><b>Company Fleet</b></td>

<td><b>Rail</b></td>

<td><b>Boxcars</b></td>

<td><b>TOFC/COFC</b></td>

<td><b>Air</b></td>

<td><b>Water Other</b></td>

--></tr>

<font face="Arial" size=2>

<p>Microsoft VBScript runtime </font> <font face="Arial" size=2>error '800a0009'

Page 163: Freight Database Wrapper Module For Dynamic Hypermedia Engine

163

</font>

<p>

<font face="Arial" size=2>Subscript out of range: 'count'</font>

<p>

<font face="Arial" size=2>/cfsr1993/cfsr1993zc.asp</font><font face="Arial" size

=2>, line 85</font>

]]>

</OutDoc>

<List_Of_Element>

<Element>

<Locator>#id19</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Sussex</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id18</Locator>

Page 164: Freight Database Wrapper Module For Dynamic Hypermedia Engine

164

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Somerset</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id17</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Salem</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id16</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Passaic</Element_ID>

<Action></Action>

<Element>

<Locator>#id15</Locator>

Page 165: Freight Database Wrapper Module For Dynamic Hypermedia Engine

165

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Ocean</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id14</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Morris</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id9</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Hudson</Element_ID>

<Action></Action>

</Element>

<Element>

Page 166: Freight Database Wrapper Module For Dynamic Hypermedia Engine

166

<Locator>#id8</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Gloucester</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id13</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Monmouth</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id7</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Essex</Element_ID>

<Action></Action>

</Element>

Page 167: Freight Database Wrapper Module For Dynamic Hypermedia Engine

167

<Element>

<Locator>#id12</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Middlesex</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id6</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Cumberland</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id11</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Mercer</Element_ID>

<Action></Action>

Page 168: Freight Database Wrapper Module For Dynamic Hypermedia Engine

168

</Element>

<Element>

<Locator>#id5</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Capemay</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id10</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Hunterdon</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id4</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Camden</Element_ID>

Page 169: Freight Database Wrapper Module For Dynamic Hypermedia Engine

169

<Action></Action>

</Element>

<Element>

<Locator>#id3</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Burlington</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id2</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Bergen</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id1</Locator>

<Type>dhyme:fdwm:county</Type>

Page 170: Freight Database Wrapper Module For Dynamic Hypermedia Engine

170

<Element_ID>dhyme:fdwm:county:Atlantic</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id22</Locator>

<Type>dhyme:fdwm:1993zone </Type>

<Element_ID>dhyme:fdwm:1993zone :NJ</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id21</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Warren</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id20</Locator>

Page 171: Freight Database Wrapper Module For Dynamic Hypermedia Engine

171

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Union</Element_ID>

<Action></Action>

</Element>

</List_Of_Element>

</SubFrame>

</MsgBody>

</EngMsg>

6.2.11 GetAllCounty_Zone_82 Message:

When the user selects the “display all Counties to Zone 1982” link in the browser UIW

sends a getAllCounty_Zone_82 message to FDWM. In response to this message, FDWM

requests Freight for the page based on the selected parameter, that the FDWM receives from the

message.

After receiving the page from Freight FDWM marks it up and sends the output to the UIW, to

be displayed in two frames. The first frame contains the left html allowing users to make a

selection at any time. The second frame contains all the marked up elements(which become

anchors after the action of BLEM).

Page 172: Freight Database Wrapper Module For Dynamic Hypermedia Engine

172

Example of GetAllCounty_Zone_82 Message :

I am including only the second frame here.

<SubFrame Name="Second">

<Doc>

<DocID>dhyme:fdwm:Get_Document_Results:cfsr1982:cfsr1982cz.asp:Atlantic_

CZ82,Bergen_CZ82,Burlington_CZ82,Camden_CZ82,Capemay_CZ82,Cumberland_CZ82,Esse

x_

CZ82,Gloucester_CZ82,Hudson_CZ82,Hunterdon_CZ82,Mercer_CZ82,Middlesex_CZ82,Mon

mo

uth_CZ82,Morris_CZ82,Ocean_CZ82,Passaic_CZ82,Salem_CZ82,Somerset_CZ82,Sussex_CZ8

2,Union_CZ82,Warren_CZ82:NY City</DocID>

<DocType>dhyme:fdwm:Get_Document_Results</DocType>

</Doc>

<OutDoc>

<![CDATA[<HTML>

<head>

<title>

Page 173: Freight Database Wrapper Module For Dynamic Hypermedia Engine

173

Search Results

</title>

</head>

<BODY BACKGROUND="#FFFFF" ALINK=#000080 VLINK=#000080 LINK=#000080>

<b>From Counties: <#id1>Atlantic</#id1>, <#id2>Bergen</#id2>, <#id3>Burlington</

#id3>, <#id4>Camden</#id4>, <#id5>Capemay</#id5>, <#id6>Cumberland</#id6>, <#id7

>Essex</#id7>, <#id8>Gloucester</#id8>, <#id9>Hudson</#id9>, <#id10>Hunterdon</#

id10>, <#id11>Mercer</#id11>, <#id12>Middlesex</#id12>, <#id13>Monmouth</#id13>,

<#id14>Morris</#id14>, <#id15>Ocean</#id15>, <#id16>Passaic</#id16>, <#id17>Sal

em</#id17>, <#id18>Somerset</#id18>, <#id19>Sussex</#id19>, <#id20>Union</#id20>

, <#id21>Warren</#id21>.<br>To Zones: <#id22>NY City</#id22>.<br>Flow Units in T

ons </b>

<table border=1><tr>

<td><b><#id23>STCC</#id23></b></td>

<td><b><#id24>Total</#id24></b></td>

<td><b><#id25>Motor</#id25></b></td>

Page 174: Freight Database Wrapper Module For Dynamic Hypermedia Engine

174

<td><b><#id26>Rail</#id26></b></td>

<td><b><#id27>Air</#id27></b></td>

<td><b><#id28>Water</#id28></b></td> </tr>

<td align="top"><#id29>Total</#id29></td>

<td align="top"><#id30>12247603</#id30></td>

<td align="top"><#id31>8493612</#id31></td>

<td align="top"><#id32>34760</#id32></td>

<td align="top"><#id33>4159</#id33></td>

<td align="top"><#id34>3715072</#id34></td></tr>

<td align="top"><#id35>01 - Farm Products</#id35></td>

<td align="top"><#id36>500961</#id36></td>

<td align="top"><#id37>500961</#id37></td>

<td align="top"><#id38>0</#id38></td>

<td align="top"><#id39>0</#id39></td>

<td align="top"><#id40>0</#id40></td></tr>

<td align="top"><#id41>08 - Forest Products</#id41></td>

Page 175: Freight Database Wrapper Module For Dynamic Hypermedia Engine

175

message continues …

<td align="top"><#id249>0</#id249></td>

<td align="top"><#id250>0</#id250></td></tr><td align="top"></td><td align="top"

></td><td align="top"></td><td align="top"></td><td align="top"></td><td align="

top"></td></tr><td align="top"></td><td align="top"></td><td align="top"></td><t

d align="top"></td><td align="top"></td><td align="top"></td></tr><td align="top

"></td><td align="top"></td><td align="top"></td><td align="top"></td><td align=

"top"></td><td align="top"></td></tr>

</tr>

</table>Note: '0' indicates value between 0 to 50 tons or not applicable.

</body>

</html>

]]>

</OutDoc>

<List_Of_Element>

<Element>

Page 176: Freight Database Wrapper Module For Dynamic Hypermedia Engine

176

<Locator>#id119</Locator>

<Type>dhyme:fdwm:stcc1982</Type>

<Element_ID>dhyme:fdwm:stcc:26 - Pulp, Paper, or Allied Products</

Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id41</Locator>

<Type>dhyme:fdwm:stcc1982</Type>

<Element_ID>dhyme:fdwm:stcc:08 - Forest Products</Element_ID>

<Action></Action>

</Element>

<Element>

<Element>

<Locator>#id34</Locator>

<Type>dhyme:fdwm:totalflowunit</Type>

<Element_ID>dhyme:fdwm:totalflowunit:cfsr1982:cfsr1982cz.asp:Atlantic_

Page 177: Freight Database Wrapper Module For Dynamic Hypermedia Engine

177

CZ82,Bergen_CZ82,Burlington_CZ82,Camden_CZ82,Capemay_CZ82,Cumberland_CZ82,Esse

x_

CZ82,Gloucester_CZ82,Hudson_CZ82,Hunterdon_CZ82,Mercer_CZ82,Middlesex_CZ82,Mon

mo

uth_CZ82,Morris_CZ82,Ocean_CZ82,Passaic_CZ82,Salem_CZ82,Somerset_CZ82,Sussex_CZ8

2,Union_CZ82,Warren_CZ82:NY City:Total:Water:3715072</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id22</Locator>

<Type>dhyme:fdwm:bothzone</Type>

<Element_ID>dhyme:fdwm:bothzone:NY City</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id4</Locator>

<Type>dhyme:fdwm:county</Type>

Page 178: Freight Database Wrapper Module For Dynamic Hypermedia Engine

178

<Element_ID>dhyme:fdwm:county:Camden</Element_ID>

<Action></Action>

</Element>

<Element>

</List_Of_Element>

</SubFrame>

</MsgBody>

</EngMsg>

For the complete message click here

6.2.12 GetAllCounty_Zone_93 Message:

When the user selects the “display all Counties to Zone 1993” link in the browser UIW

sends a getAllCounty_Zone_93 message to FDWM. In response to this message, FDWM

requests Freight for the page based on the selected parameter, which the FDWM receives from

the message.

After receiving the page from Freight FDWM marks it up and sends the output to the UIW, to

be displayed in two frames. The first frame contains the left html allowing users to make a

selection at any time. The second frame contains all the marked up elements(which become

Page 179: Freight Database Wrapper Module For Dynamic Hypermedia Engine

179

anchors after the action of BLEM).

Example of GetAllCounty_Zone_93 Message :

I am including only the second frame here.

<SubFrame Name="Second">

<Doc>

<DocID>dhyme:fdwm:Get_Document_Results:cfsr1993:cfsr1993cz.asp:Atlantic_

CZ,Bergen_CZ,Burlington_CZ,Camden_CZ,Capemay_CZ,Cumberland_CZ,Essex_CZ,Gloucest

e

r_CZ,Hudson_CZ,Hunterdon_CZ,Mercer_CZ,Middlesex_CZ,Monmouth_CZ,Morris_CZ,Ocean

_C

Z,Passaic_CZ,Salem_CZ,Somerset_CZ,Sussex_CZ,Union_CZ,Warren_CZ:NJ</DocID>

<DocType>dhyme:fdwm:Get_Document_Results</DocType>

</Doc>

<OutDoc>

<OutDoc>

<![CDATA[<HTML>

<head>

Page 180: Freight Database Wrapper Module For Dynamic Hypermedia Engine

180

<title>

Search Results

</title>

</head>

<BODY BACKGROUND="#FFFFF" ALINK=#000080 VLINK=#000080 LINK=#000080>

<b>From Counties: <#id1>Atlantic</#id1>, <#id2>Bergen</#id2>, <#id3>Burlington</

#id3>, <#id4>Camden</#id4>, <#id5>Capemay</#id5>, <#id6>Cumberland</#id6>, <#id7

>Essex</#id7>, <#id8>Gloucester</#id8>, <#id9>Hudson</#id9>, <#id10>Hunterdon</#

id10>, <#id11>Mercer</#id11>, <#id12>Middlesex</#id12>, <#id13>Monmouth</#id13>,

<#id14>Morris</#id14>, <#id15>Ocean</#id15>, <#id16>Passaic</#id16>, <#id17>Sal

em</#id17>, <#id18>Somerset</#id18>, <#id19>Sussex</#id19>, <#id20>Union</#id20>

, <#id21>Warren</#id21>.<br>To Zones: <#id22>NJ</#id22>.<br>Flow Units in Thousa

nd tons </b>

<table border=1><tr>

<td><b><#id23>STCC</#id23></b></td>

<td><b><#id24>Total</#id24></b></td>

Page 181: Freight Database Wrapper Module For Dynamic Hypermedia Engine

181

<td><b><#id25>Truck</#id25></b></td>

<td><b><#id26>Common Carrier</#id26></b></td>

<td><b><#id27>Package Carrier</#id27></b></td>

<td><b><#id28>Company Fleet</#id28></b></td>

<td><b><#id29>Rail</#id29></b></td>

<td><b><#id30>Boxcars</#id30></b></td>

<td><b><#id31>TOFC/COFC</#id31></b></td>

<td><b><#id32>Air</#id32></b></td>

<td><b><#id33>Water Other</#id33></b></td> </tr>

<td align="top"><#id34>Total</#id34></td>

<td align="top"><#id35>73467.7</#id35></td>

<td align="top"><#id36>63588.4</#id36></td>

<td align="top"><#id37>17903.2</#id37></td>

<td align="top"><#id38>4909.4</#id38></td>

<td align="top"><#id39>40777.8</#id39></td>

<td align="top"><#id40>1690.3</#id40></td>

Page 182: Freight Database Wrapper Module For Dynamic Hypermedia Engine

182

<Element>

<Locator>#id22</Locator>

<Type>dhyme:fdwm:1993zone </Type>

<Element_ID>dhyme:fdwm:1993zone :NJ</Element_ID>

<Action></Action>

</Element>

<Element>

<Element>

<Locator>#id1</Locator>

<Type>dhyme:fdwm:county</Type>

<Element_ID>dhyme:fdwm:county:Atlantic</Element_ID>

<Action></Action>

</Element>

<Element>

<Element>

<Locator>#id30</Locator>

<Type>dhyme:fdwm:newmode</Type>

Page 183: Freight Database Wrapper Module For Dynamic Hypermedia Engine

183

<Element_ID>dhyme:fdwm:newmode:Boxcars</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id29</Locator>

<Type>dhyme:fdwm:oldmode</Type>

<Element_ID>dhyme:fdwm:oldmode:Rail</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id44</Locator>

<Type>dhyme:fdwm:totalflowunit</Type>

<Element_ID>dhyme:fdwm:totalflowunit:cfsr1993:cfsr1993cz.asp:Atlantic_

CZ,Bergen_CZ,Burlington_CZ,Camden_CZ,Capemay_CZ,Cumberland_CZ,Essex_CZ,Gloucest

e

r_CZ,Hudson_CZ,Hunterdon_CZ,Mercer_CZ,Middlesex_CZ,Monmouth_CZ,Morris_CZ,Ocean

_C

Page 184: Freight Database Wrapper Module For Dynamic Hypermedia Engine

184

Z,Passaic_CZ,Salem_CZ,Somerset_CZ,Sussex_CZ,Union_CZ,Warren_CZ:NJ:Total:Water Ot

her:8188.2</Element_ID>

<Action></Action>

</Element>

<Element>

<Locator>#id253</Locator>

<Type>dhyme:fdwm:compflowunit</Type>

<Element_ID>dhyme:fdwm:compflowunit:cfsr1993:cfsr1993cz.asp:Atlantic_C

Z,Bergen_CZ,Burlington_CZ,Camden_CZ,Capemay_CZ,Cumberland_CZ,Essex_CZ,Gloucester

_CZ,Hudson_CZ,Hunterdon_CZ,Mercer_CZ,Middlesex_CZ,Monmouth_CZ,Morris_CZ,Ocean_

CZ

,Passaic_CZ,Salem_CZ,Somerset_CZ,Sussex_CZ,Union_CZ,Warren_CZ:NJ:30-Rubber:Water

Other:0</Element_ID>

<Action></Action>

</Element>

message continues …

</List_Of_Element>

Page 185: Freight Database Wrapper Module For Dynamic Hypermedia Engine

185

</SubFrame>

</MsgBody>

</EngMsg>

For a complete message click here

6.2.13 GetSICCode Message:

When the user selects the “display Corresponding SIC Code” link in the browser UIW

sends a getSICCode message to FDWM. In response to this message, FDWM requests for the

page from the www based on the selected parameter, which the FDWM receives from the

message. This functionality is only for elements of type stcc.

After receiving the page from Freight FDWM marks it up and sends the output to the UIW, to

be displayed in two frames. The first frame contains the left html allowing users to make a

selection at any time. The second frame contains all the marked up elements(which become

anchors after the action of BLEM).

Example of GetSICCode Message :

<?xml version="1.0"?>

<!DOCTYPE EngMsg SYSTEM "/export/home/engine/WWW/public_html/users/shared/dtd/Di

splayDoc.dtd" >

<EngMsg>

Page 186: Freight Database Wrapper Module For Dynamic Hypermedia Engine

186

<RequestID>965927520164</RequestID>

<MsgType>DISPLAYDOCUMENT</MsgType>

<Origin>FDWM</Origin>

<Current>FDWM</Current>

<MsgNo>FDWM:965927522188</MsgNo>

<Destination>UIW</Destination>

<MsgBody>

<FramesetDef target="MAIN">

<![CDATA[<frameset cols='135,*'><frame name='First'><frame name='Second'><

/frameset>]]>

</FramesetDef>

<SubFrame Name="First">

<Doc>

<DocID>dhyme:fdwm:left:left</DocID>

<DocType>dhyme:fdwm:left</DocType>

</Doc>

<OutDoc>

Page 187: Freight Database Wrapper Module For Dynamic Hypermedia Engine

187

<![CDATA[<HTML>

<BODY background="http://freight.njit.edu/back2.gif">

<BR>

<BR><BR>

<BR><FONT COLOR=BLACK SIZE=2>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:about&Subject=getFirst"target=_top >About the

MIS</A>

<BR>

<A HREF="http://freight.njit.edu/execute/index.htm"target=_top> Executive Report

s</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1993&Subject=getFirst"target=_top> CFSR (

Page 188: Freight Database Wrapper Module For Dynamic Hypermedia Engine

188

1993)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfsr1982&Subject=getFirst"target=_top> CFSR (

1982)</A>

<BR>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:cfcr&Subject=getFirst"target=_top> CFCR (93 v

s.82)</A>

<A

HREF="UIW?MsgType=FOLLOWLINK&Destination=FDWM&type=dhyme:fdwm:existing_li

nk&E

lement_ID=dhyme:fdwm:existing_link:misc&Subject=getFirst"target=_top> Misc. Stat

istics</A>

Page 189: Freight Database Wrapper Module For Dynamic Hypermedia Engine

189

</BODY>

</HTML>

]]>

</OutDoc>

<List_Of_Element/>

</SubFrame>

<SubFrame Name="Second">

<Doc>

<DocID>dhyme:fdwm:type:01-Farm Products</DocID>

<DocType>dhyme:fdwm:type</DocType>

</Doc>

<OutDoc>

<![CDATA[<HEAD>

<TITLE>SIC Group 01 - Agricultural Production Crops</TITLE>

<HEAD>

<BODY bgcolor="#b5ffb5" text="#400080" GCOLOR="#FFFFFF" link="#0000ff" VLINK="

#0000ff" ALINK="#00ffff">

Page 190: Freight Database Wrapper Module For Dynamic Hypermedia Engine

190

<CENTER><H2><font face="Comic Sans MS"> 01 - Agricultural Production Crops</H2><

/font>

<table bgcolor="#ffff80" width=90% border=1><FONT FACE="arial">

<FONT FACE="ARIAL">

<th bgcolor="#ff8080">SIC</th><th bgcolor="#ff8080">DESCRIPTION</th></font>

<tr><td><B>011</B></td><td><B>Cash Grains</B></td></tr>

<td>0111</td><td>Wheat</td></tr>

<td>0112</td><td>Rice</td></tr>

<td>0115</td><td>Corn</td></tr>

<td>0116</td><td>Soybeans</td></tr>

<td>0119</td><td>Cash grains, nec</td></tr>

<td><B>013</B></td><td><B>Field Crops, Except Cash Grains</B></td></tr>

<td>0131</td><td>Cotton</td></tr>

<td>0132</td><td>Tobacco</td></tr>

<td>0133</td><td>Sugarcane and sugar beets</td></tr>

<td>0134</td><td>Irish potatoes</td></tr>

<td>0139</td><td>Field crops, except cash grains, not elsewhere classified</td><

Page 191: Freight Database Wrapper Module For Dynamic Hypermedia Engine

191

/tr>

<td><B>016</B></td><td><B>Vegetables and Melons</B></td></tr>

<td>0161</td><td>Vegetables and melons</td></tr>

<td><B>017</B></td><td><B>Fruits and Tree Nuts</B></td></tr>

<td>0171</td><td>Berry crops</td></tr>

<td>0172</td><td>Grapes</td></tr>

<td>0173</td><td>Tree nuts</td></tr>

<td>0174</td><td>Citrus fruits</td></tr>

<td>0175</td><td>Deciduous tree fruits</td></tr>

<td>0179</td><td>Fruits and tree nuts, not elsewhere classified</td></tr>

<td><B>018</B></td><td><B>Horticultural Specialties</B></td></tr>

<td>0181</td><td>Ornamental nursery products</td></tr>

<td>0182</td><td>Food crops grown under cover</td></tr>

<td><B>019</B></td><td><B>General Farms, Primarily Crop</B></td></tr>

<td>0191</td><td>General farms, primarily crop</td></tr>

</table></font></CENTER>

</body>

Page 192: Freight Database Wrapper Module For Dynamic Hypermedia Engine

192

]]>

</OutDoc>

<List_Of_Element/>

</SubFrame>

</MsgBody>

6.3 Bridge Laws:

Bridge laws are Knowledge base of rules that serve as bridge or connection between the

objects defined in the language of the back-end and those in that of hypermedia engine and are

used to describe the structure of the application. The link bridge law specifies what actions can

be taken concerning this type of component.

To identify Bridge laws for a module one must first identify what the different Element

types there are for that system/module. Once the Elements are identified, we can come up with

bridge laws for each of these element types.

Bridge laws are nothing but commands and parameters that a module expects when a link

is clicked. If we write Bridge laws for an element type, then an element belonging to that

element type becomes an anchor. When the user clicks on that anchor, for every bridge law

written for that element type, there will be a link displayed which is also specified by the module

Page 193: Freight Database Wrapper Module For Dynamic Hypermedia Engine

193

in the Bridge law.

For FDWM, the element types identified are

The following are the Element types and the Bridge laws as is defined in the BLEM Module.

6.3.1 Element Types

Element_type Description

1. dhyme.fdwm.county County

2. dhyme.fdwm.1982zone 1982 Zone

3. dhyme.fdwm.1993zone 1993 Zone

4. dhyme.fdwm.bothzone Zone present in 1982 and 1993

5. dhyme.fdwm.flow Flow

6. dhyme.fdwm.flowtype Flow Type

7. dhyme.fdwm.floworientation Flow Orientation

8. dhyme.fdwm.existing_link Existing Link

9. dhyme.fdwm.description Description

10. dhyme.fdwm.state State (not marked currently)

11. dhyme.fdwm.region Region

Page 194: Freight Database Wrapper Module For Dynamic Hypermedia Engine

194

12. dhyme.fdwm.us_canada us_canada regions

13. dhyme.fdwm.worldregion World Region

14. dhyme.fdwm.flowunit Flow Unit

15. dhyme.fdwm.totalflowunit Total Flow Unit

16. dhyme.fdwm.compflowunit Computational Flow Unit

17. dhyme.fdwm.stcc1993 STCC code 1993 (not in use currently)

18. dhyme.fdwm.stcc1982 STCC code 1982 (not in use currently)

19. dhyme.fdwm.stcccomp STCC comparison code

20. dhyme.fdwm.oldmode Old Mode (1982)

21. dhyme.fdwm.newmode New Mode(1993)

22. dhyme.fdwm.compmode. Comparision Mode

23. dhyme.fdwm.stcc STCC Code

6.3.2 Element Hierarchy

Element Parent

dhyme.fdwm.compflowunit dhyme.fdwm.flowunit

dhyme.fdwm.totalflowunit dhyme.fdwm.flowunit

Page 195: Freight Database Wrapper Module For Dynamic Hypermedia Engine

195

dhyme.fdwm.bothzone dhyme.fdwm.1982zone

dhyme.fdwm.bothzone dhyme.fdwm.1993zone

Whenever there is a hierarchy of element’s, an element will inherit all the Bridge Laws

that apply to the parent element type.

For ex:

1982zone has BridgeLaw getZone_AllCounty_82

&

1993zone has BridgeLaw getZone_AllCounty_93

then

bothzone will have two Bridge Laws by virtue of inheritance. It can have any number of

additional Bridge Laws apart from the above.

How to declare inheritance ??

Simple.

Register the element type by using BLEMinterface in ~shared/bin.

Whenever you are registering the element type with BLEM you can specify the parent-element

of that element. BLEMinterface provides that functionality.

6.3.3 Bridge laws

Page 196: Freight Database Wrapper Module For Dynamic Hypermedia Engine

196

Owning-module Command Target-Module Link Label Element Type

FDWM getCounty_AllCounty_82 FDWM display County to All Counties 1982

dhyme:fdwm:county

FDWM getCounty_AllCounty_93 FDWM display County to All Counties 1993

dhyme:fdwm:county

FDWM getAllCounty_County_82 FDWM display All Counties to County 1982

dhyme:fdwm:county

FDWM getAllCounty_County_93 FDWM display All Counties to County 1993

dhyme:fdwm:county

FDWM getZone_AllCounty_82 FDWM display Zone to All Counties 1982

dhyme:fdwm:1982zone

FDWM getZone_AllCounty_93 FDWM display Zone to All Counties 1993

dhyme:fdwm:1993zone

FDWM getAllCounty_Zone_82 FDWM display All Counties to Zone 1982

dhyme:fdwm:1982zone

FDWM getAllCounty_Zone_93 FDWM display All Counties to Zone 1993

dhyme:fdwm:1993zone

FDWM getSICCode FDWM display Corresponding SIC Code dhyme:fdwm:stcc

Page 197: Freight Database Wrapper Module For Dynamic Hypermedia Engine

197

The parameter name for all these bridge laws is Element_ID. The value for this parameter is got

from the UIW depending on the element that the user selected.

6.4 Messages

FDWM receives only messages of type “FollowLink” and outputs only messages of type

“DsiplayDocument”. There are six different input messages that the FDWM can receive and

there are eight different output messages that the FDWM can send.

The input messages are

-Display message -GetFirst Message

-GetMetainfo message -GetDocument message

-GetCounty_AllCounty_82 Message -GetAllCounty_County_82 Message

-GetCounty_AllCounty_93 Message -GetAllCounty_County_93 Message

GetZone_AllCounty_82 Message -GetAllCounty_Zone_82 Message

-GetZone_AllCounty_93 Message -GetAllCounty_Zone _93 Message

-GetSICCode Message

Page 198: Freight Database Wrapper Module For Dynamic Hypermedia Engine

198

The eight output messages are

-Display message -First message

-MetaInfo message - Document message

-County_AllCounty_82 message -AllCounty_County_82 message

-County_AllCounty_93 message -AllCounty_County_93 message

Zone_AllCounty_82 Message -AllCounty_Zone_82 Message

-Zone_AllCounty_93 Message -AllCounty_Zone _93 Message

-SICCode Message

For a more detailed discussion on these message refer 6.1 and 6.2

7. Module Design Specifications

7.1 Module Functional Specification

Display : When the Freight Wrapper Module is invoked, FDWM should send the FreightStart

page to the UIW to be displayed in the browser. This is for the user to make a selection in

Page 199: Freight Database Wrapper Module For Dynamic Hypermedia Engine

199

Freight. This is the first functionality provided by FDWM. When the module is started, it

receives a message to show the Start page and the FDWM sends back the First page to be

displayed.

GetFirst: Once the user makes a selection in Freight Start page, the FDWM sends back the page

selected, to the UIW to be displayed in the browser. Since the FDWM needs the static(First)

HTML files generated by the Freight, the files are assumed to be in a local directory. This

directory name is specified in the FDWM properties file.

GetDocument: The third functionality provided by FDWM is to fetch the Document selected by

the user. The parameters selected are sent by the UIW to FDWM. FDWM then does a http

getRequest and fetches the html from the Freight System. It then marks up all the elements and

sends it to BLEM. BLEM turns all the marked elements to anchors.

GetCounty_AllCounty_82: The Fourth functionality provided by FDWM is to get the results of

the County to All counties for the year 1982. This functionality is available only to the elements

of type County. Depending on the name of the county selected, the FDWM issues a httprequest

for the page. It then marks up all the elements in the document and sends it to BLEM. BLEM

turns all the marked elements to anchors.

Page 200: Freight Database Wrapper Module For Dynamic Hypermedia Engine

200

GetAllCounty_County_82: The Fifth functionality provided by FDWM is to get the results of

the AllCounties to the select county for the year 1982. This functionality is available only to the

elements of type County. Depending on the name of the county selected, the FDWM issues a

httprequest for the page. It then marks up all the elements in the document and sends it to BLEM.

BLEM turns all the marked elements to anchors.

GetCounty_AllCounty_93: The Sixth functionality provided by FDWM is to get the results of

the County to All counties for the year 1993. This functionality is available only to the elements

of type County. Depending on the name of the county selected, the FDWM issues a httprequest

for the page. It then marks up all the elements in the document and sends it to BLEM. BLEM

turns all the marked elements to anchors.

GetAllCounty_County_93: The Seventh functionality provided by FDWM is to get the results

of the AllCounties to the select county for the year 1993. This functionality is available only to

the elements of type County. Depending on the name of the county selected, the FDWM issues a

httprequest for the page. It then marks up all the elements in the document and sends it to BLEM.

BLEM turns all the marked elements to anchors.

Show Meta Info: The eight functionality provided by FDWM is to provide the Meta data of an

element selected.The Meta Data is specified in RDF syntax. There was not enough time to figure

Page 201: Freight Database Wrapper Module For Dynamic Hypermedia Engine

201

out a way to extract Meta data from Freight. The functionality provided for now by FDWM is as

a proof of concept. As more and more Meta data can be extracted from the Freight, it can be

added to the information using the existing method.

GetZone_AllCounty_82: The functionality provided by FDWM is to get the results of the select

zone to AllCounties for the year 1982. This functionality is available only to the elements of type

Zone. Depending on the name of the zone selected FDWM issues a httprequest for the page. It

then marks up all the elements in the document and sends it to BLEM. BLEM turns all the

marked elements to anchors.

GetZone_AllCounty_93: The functionality provided by FDWM is to get the results of the select

zone to AllCounties for the year 1993. This functionality is available only to the elements of type

Zone. Depending on the name of the zone selected, FDWM issues a httprequest for the page. It

then marks up all the elements in the document and sends it to BLEM. BLEM turns all the

marked elements to anchors.

GetAllCounty_Zone _82: The functionality provided by FDWM is to get the results of the

AllCounties to the select zone for the year 1982. This functionality is available only to the

elements of type Zone. Depending on the name of the zone selected, FDWM issues a httprequest

for the page. It then marks up all the elements in the document and sends it to BLEM. BLEM

turns all the marked elements to anchors.

Page 202: Freight Database Wrapper Module For Dynamic Hypermedia Engine

202

GetAllCounty_Zone _93: The functionality provided by FDWM is to get the results of the

AllCounties to the select zone for the year 1993. This functionality is available only to the

elements of type Zone. Depending on the name of the zone selected, FDWM issues a httprequest

for the page. It then marks up all the elements in the document and sends it to BLEM. BLEM

turns all the marked elements to anchors.

GetSICCode : The functionality provided by FDWM is to get the corresponding SIC Code for

the stcc code which the user selects in the browser. This functionality is available only to the

elements of type stcc. Depending on the stcc code selected, the FDWM issues a httprequest for

the page. It then marks up all the elements in the document and sends it to BLEM. BLEM turns

all the marked elements to anchors.

7.2 Module Operational and Interface Specification

7.2.1 Interaction with the rest of the Engine

FDWM interacts with the rest of the Engine using the gateway and Engine Message

Object. Engine message object is used to create messages and the gateway is used to route these

messages to appropriate destination. “FreightWrapperModule” is the interface to the rest of the

engine. This functions like a server by extending the module class provided by gateway and

starting itself by calling the “startMe(localhost)” method.

It then waits for a message to come. Once a message is sent to gateway whose detination

Page 203: Freight Database Wrapper Module For Dynamic Hypermedia Engine

203

is FDWM, gateway invokes the “processMsg” method of FDWM sending the Engine message

received as a parameter.

(Note: All the modules which uses the gateway to interact with rest of the Engine should define

the “processMsg” method and include in that method whatever functionality the module wants to

provide when it receives a message).

The message is parsed in the “processMsg” method and depending on the “Subject “ tag

in the message the appropriate message handlers are instantiated and their public

”handleRequest” methods are called by passing the engine message as one parameter. The other

parameter to this method is a variable of type “paramtable” (dhyme.utils.datastructures) .This

variable has key-value pairs but there can be multiple values for a single key.

7.2.2 Message handlers in FDWM

Message handler Module creates the interface for all the message handlers in the module.

Display Handler: This module in FDWM is invoked if the subject tag of the message received

by the FDWM has the value “display”. There are two methods in this module. One is the

constructor and the other method is the “handleRequest” method. This “handleRequest’ method

is the one called by FreightWrapperModule. In this method, the reply message is created and the

form to be displayed is converted into a string and sent as a CDATA value in the outdoc tag of

Page 204: Freight Database Wrapper Module For Dynamic Hypermedia Engine

204

the reply engine message. The form to be displayed is sent as the parameter value but without the

html extension. So in FDWM the parameter value that it expects is FreightStart. There is a file

called “FreightStart.html” which is the page to be displayed. The StreamStringer class

(dhyme.utils.io) is used to convert this file into a String.

GetFirstHandler: This module in FDWM is invoked if the subject tag of the incoming engine

message received by FDWM has the value “getFirst”. Apart from the Constructor which is used

to instantiate this module, the “handleRequest” method is the main method. This is the method

that is called in the FreightWrapperModule.

The “handleRequest” method is called by passing the engine message as one parameter.

The other parameter to this method is a variable of type “paramtable”

(dhyme.utils.datastructures) .This variable has key-value pairs but there can be multiple values

for a single key. There can be any number of parameters but GetFirstHandler expects a single

parameter Element_ID. From the Element_Id it extarcts the page selected by the user.

An example of a paramvalue for Element_ID is dhyme:dmisw:existing_link:cfsr1993

So the Handler knows that it has to get the cfsr1993 page. All the static html pages belonging to

Freight are available in the ~users/shared/config/fdwm directory. This approach was used

because of the following reasons.

• An overhead of network connection was burdening the existing system.

• There were errors in the html which the ambient browser forgave but the strict xml

Page 205: Freight Database Wrapper Module For Dynamic Hypermedia Engine

205

parser wouldn’t.

• All the action tags of the html form had to be replaced by the UIW so that when a

user does a submit a message is sent to FDWM instead of Freight.

then builds a response message to be sent to the UIW through the gateway. The response

message is built ,in such a way that it splits the main frame in the browser to accommodate the

two frames of the original Freight System.

In the handleRequest method , reply message is created and the page to be displayed is converted

into a string and sent as a CDATA value in the outdoc tag of the reply engine message. In

FDWM the parameter value that it expects is dhyme:dmisw:existing_link:cfsr1993. There is a

file called “cfsr19931.html” which is the page to be displayed. The StreamStringer class

(dhyme.utils.io) is used to convert this file into a String.

GetDocumentHandler: This module in FDWM is invoked if the subject tag of the incoming

engine message received by FDWM has the value “getDocument”. Apart from the Constructor

which is used to instantiate this module, the “handleRequest” method is the main method. This is

the method that is actually called from the FreightWrapperModule. The “handleRequest” method

calls two methods executeQuery and addtoEngineMessage.

The “handleRequest” method is called by passing the engine message as one parameter.

The other parameter to this method is a variable of type “paramtable”

(dhyme.utils.datastructures) .This variable has key-value pairs but there can be multiple values

Page 206: Freight Database Wrapper Module For Dynamic Hypermedia Engine

206

for a single key. There can be any number of parameters but GetDocumentHandler expects three

parameter’s ASP_FILE, SELECT1_PARAM, SELECT2_PARAM.

Both the SELECT1_PARAM, SELECT2_PARAM parameters can have single or

multiple values. If there are multiple values for a key then a vector of values is returned. To

handle this situation getAllParams method (dhyme.utils.datastructures.ParamTable) is used

which returns a String[] .The ASP_FILE parameter’s value gives the pathname.

The executeQuery method expects three parameters – pathname, Select1 [], Select2[].

From the pathname it extracts the dirname and filename .It converts the Select1 Array to a String

seperated by commas.The same is repeated with Select2 Array. This is done, because to make a

http request with multiple parameters you have to send a String of the form select1 =

Atlantic,Bergen.The multiple values have to be seperated by commas.

The execute query method uses the queryString class to encode the URL. It then forms

the appropriate URL and issues a http request. If the request is successful (response code

between 200 & 300) the it gets the inputstream buffers it and creates an object of type

DocumentMarker. The DocumentMarker class expects five parameters – BufferedReader,

dirname, filename, Select1[] and Select2[].The detailed working of the DocumentMarker class is

explained later. The executeQuery method then calls the “getMarkedDocument” and

“getUriHash” methods of the DocumentMarker object. The “getMarkedDocument” method

returns the HTML document converted to String with all the elements marked with the

appropriate locator tags. The “getUriHash” method returns the Hash with the Locator_Id as key

and value as uri.

Page 207: Freight Database Wrapper Module For Dynamic Hypermedia Engine

207

In the addtoEngineMessage method , reply message to be sent to the Gateway is built.

The page to be displayed (marked Document)is sent as a CDATA value in the outdoc tag of the

reply engine message. The response message is built ,in such a way that it splits the main frame

in the browser to accommodate the two frames of the original Freight System.

DocumentMarker : This is the most important class in the FDWM module. Apart from the

constructor the other methods in the class are getMarkedDocument, doMarkup, add_first_elem,

add_second_elem, getURIHash.

getMarkedDocument: The function of this method is to parse the incoming stream and search

for elements. Writing the parser was difficult because of the following reasons.

1. The properties(attributes) were not properly defined.So none of the existing parsers could be

used.

Soln : Write our own parser for Freight.

2. There were no proper line breaks(new Line ). Horizontal space was the delimiter. In fact the

entire html of the table was in a single line for most pages. Some pages had line breaks.

Soln : The parser was written so that it remembers it’s state. The various states in the parser are

BEGIN

BEGIN_TABLE <table

Page 208: Freight Database Wrapper Module For Dynamic Hypermedia Engine

208

END_TABLE <\table

BEGIN_CMT <!--

END_CMT -->

BEGIN_TR <tr

END_TR <\tr

BEGIN_TD <td

END_TD <\td

BEGIN_ELEM <body

The concept of finite automata was employed in the design of the parser.

BEGIN : Initiallly the parser starts with this stage. In this stage it looks for <BODY, <table, <!--.

If any of it is found it changes it’s state accordingly.

BEGIN_ELEM : This state is used to search for elements following the Label(To Counties,

etc). The approach used here is to search for the element’s on which the selection was made.If

the selection was made on Atlantic,Camden to Cape May county then in this state I search for

patterns “Atlantic”, “Camden” & “CapeMay”.

This approach was used because there were there were no proper delimiters. In some

Page 209: Freight Database Wrapper Module For Dynamic Hypermedia Engine

209

pages “;” and in some pages “,” was the delimiter. And some elements had “,” in them.

Ex “Bronxs, NY”

Once an element is found from the select1 list it calls the add_first_elem method, which

marks the element and adds it to th e hash.

Once an element is found from the select2 list it calls the add_second_elem method,

which marks the element and adds it to th e hash.

Another problem in the html was that for some pages it gives the element names more

than once.

Fo r example if a selection was made from Atlantic to Bergen county then the output has

From Counties : Atlantic.

To Counties :Bergen, Bergen.

Soln: Search for all instances of a pattern.

After all the element’s are marked, it changes the state to BEGIN.

BEGIN_TABLE : In this stage it looks for <td <tr, <!--. If any of it is found it changes it’s state

accordingly.

BEGIN_CMT : In this stage it searches for “-�”.If it is not found then it goes to the next line.

If it is found it changes it’s state to BEGIN.

Page 210: Freight Database Wrapper Module For Dynamic Hypermedia Engine

210

BEGIN_TR : In this stage it searches for “-�”, “<td” .If it is not found then it goes to the next

line. If it is found it changes it’s state to accordingly.

There were comments in between tables. The html had comments that spanned across

multiple lines like the example below. So we could not search for patterns like <td> and mark

them directly.

<table border=1><tr>

<!-- <td><b>Destination </b></td>

<td><b>STCC</b></td>

<td><b>Total</b></td>

<td><b>Truck</b></td>

<td><b>Common Carrier</b></td>

<td><b>Package Carrier</b></td>

<td><b>Company Fleet</b></td>

<td><b>Rail</b></td>

<td><b>Boxcars</b></td>

<td><b>TOFC/COFC</b></td>

<td><b>Air</b></td>

Page 211: Freight Database Wrapper Module For Dynamic Hypermedia Engine

211

<td><b>Water Other</b></td>

-->

</tr>

</table>

Soln : At every stage check for Begin Comment. If found then add them to the output buffer as

it is till you reach an end comment. Do not mark an element found in between comments. Do

not delete comments.

BEGIN_TD :

PerlTools in Java is used for pattern matching. There are two patterns that are searched for

<td><b>String<b>

<td align = top > String <td>

The String used for matching was

“/(<td.*?>)(<b>)?((\\w|\\s|[\\.|\\-|\\,|\\(|\\)|\\&|\\/])+)(<\\/b>)?/"

The pattern matching string was designed taking into consideration all kinds of possible output

that Freight could generate.

If a pattern is found then the domarkup method is called .

Parser then searches for a </td>, </TD>, </tr>.If any of them is found, it changes the state

Page 212: Freight Database Wrapper Module For Dynamic Hypermedia Engine

212

accordingly. Some of the html outputs from Freight have “TD” tags.

END_TD : In this state the parser searches for “<td” , “</tr>”. If an “<td” is found, it increments

the column number.

If an “</tr” pattern is found then it increments the row number by one and makes the column

number 0.Why??

Because there were missing <tr> tags in the html. There was no way to know where a row began.

So the end tr(<\tr>) was taken as the criteria to mark the beginning of the next row.

END_TR: In this state the parser searches for “</table>”, “<td”. If “</table>” is found it

changes the state to BEGIN . If “<td” is found it changes the state to BEGIN_TD.

doMarkUp Method : The doMarkup method expects three parameters.The element to be

marked, the row and column no of the element. It looks at the type of the element from the

properties file. Puts the proper Locator tags and adds an entry to the uriHash table. Returns the

string to be appended.

If elemName = Air, row=0, column =2;Puts an entry as ColVector[2] =Air

It returns <#idno>Air</#idno>

Page 213: Freight Database Wrapper Module For Dynamic Hypermedia Engine

213

The doMarkup method checks if the row is zero, ie the row has all column names. It

makes a vector of Column Names. Ex :

Next it checks if the column name is zero, ie the column has row names. It makes a

vector of Row Names. It looks at the type of the element from the properties file. Puts the proper

Locator tags and adds an entry to the uriHash table. Returns the string to be appended.

If both are not zero then the element is a flowtype element.It then checks if there were

multilple selections in either the source or destination selection parameters.If so it marks it as a

computational flow element.

If the row name is Total it marks it as totalflowunit element. else marks it as a flowunit

element.

add_first_elem Method : The method expects one parameter. The element to be marked. It

looks at the type of the element from the properties file. Puts the proper Locator tags and

adds an entry to the uriHash table. Returns the string to be appended. This method is called when

a string in the select1 array is found.

add_second_elem Method : The method expects one parameter. The element to be marked. It

looks at the type of the element from the properties file. Puts the proper Locator tags and adds an

entry to the uriHash table. Returns the string to be appended. This method is called when a string

in the select2 array is found.

GetCounty_AllCounty_82Handler: This module in FDWM is invoked if the subject tag of the

Page 214: Freight Database Wrapper Module For Dynamic Hypermedia Engine

214

incoming engine message received by FDWM has the value “getCounty_AllCounty_82”. Apart

from the Constructor which is used to instantiate this module, the “handleRequest” method is the

main method. This is the method that is called in the FreightWrapperModule.

The “handleRequest” method is called by passing the engine message as one parameter.

The other parameter to this method is a variable of type “paramtable”

(dhyme.utils.datastructures) .This variable has key-value pairs but there can be multiple values

for a single key. There can be any number of parameters but GetCounty_AllCounty_82Handler

expects only one parameter Element_ID.

The county name is extracted from the Element_ID. It is the Select1 parameter.The

Select2 parameter is a String array of all counties.

Inside handleRequest method two other methods are called –executeQuery,

addToEngineMessage.

The executeQuery method expects two parameters –Select1 [], Select2[].It converts the

Select1 Array to a String seperated by commas.The same is repeated with Select2 Array. This is

done, because to make a http request with multiple parameters you have to send a String of the

form select1 = Atlantic,Bergen.The multiple values have to be seperated by commas.

The execute query method uses the queryString class to encode the URL. It then forms

the appropriate URL and issues a http request. If the request is successful (response code

between 200 & 300) the it gets the inputstream buffers it and creates an object of type

DocumentMarker. The DocumentMarker class expects five parameters – BufferedReader,

dirname, filename, Select1[] and Select2[].The detailed working of the DocumentMarker class

Page 215: Freight Database Wrapper Module For Dynamic Hypermedia Engine

215

was explained earlier. The executeQuery method then calls the “getMarkedDocument” and

“getUriHash” methods of the DocumentMarker object. The “getMarkedDocument” method

returns the HTML document converted to String with all the elements marked with the

appropriate locator tags. The “getUriHash” method returns the Hash with the Locator_Id as key

and value as uri.

In the addtoEngineMessage method , reply message to be sent to the Gateway is built.

The page to be displayed (marked Document)is sent as a CDATA value in the outdoc tag of the

reply engine message. The response message is built ,in such a way that it splits the main frame

in the browser to accommodate the two frames of the original Freight System.

GetAllCounty_County_82Handler: This module in FDWM is invoked if the subject tag of the

incoming engine message received by FDWM has the value “getAllCounty_County_82”. Apart

from the Constructor which is used to instantiate this module,the “handleRequest” method is the

main method. This is the method that is called in the FreightWrapperModule.

Inside handleRequest the other method’s that are called are- the “executeQuery” ,

“addToEngineMessage” method.

The “handleRequest” method is called by passing the engine message as one parameter.

The other parameter to this method is a variable of type “paramtable”

(dhyme.utils.datastructures) .This variable has key-value pairs but there can be multiple values

Page 216: Freight Database Wrapper Module For Dynamic Hypermedia Engine

216

for a single key. There can be any number of parameters but GetAllCounty_County_82Handler

expects only one parameter Element_ID.

The county name is extracted from the Element_ID. It is the Select2 parameter. The

Select1 parameter is a String array of all counties.

The executeQuery method expects two parameters –Select1 [], Select2[].It converts the

Select1 Array to a String seperated by commas.The same is repeated with Select2 Array.

The execute query method uses the queryString class to encode the URL. It then forms

the appropriate URL and issues a http request. If the request is successful (response code

between 200 & 300) the it gets the inputstream buffers it and creates an object of type

DocumentMarker.

The DocumentMarker class expects five parameters – BufferedReader, dirname,

filename, Select1[] and Select2[].The detailed working of the DocumentMarker class was

explained earlier. The executeQuery method then calls the “getMarkedDocument” and

“getUriHash” methods of the DocumentMarker object. The “getMarkedDocument” method

returns the HTML document converted to String with all the elements marked with the

appropriate locator tags. The “getUriHash” method returns the Hash with the Locator_Id as key

and value as uri.

In the addtoEngineMessage method , reply message to be sent to the Gateway is built. The page

to be displayed (marked Document)is sent as a CDATA value in the outdoc tag of the reply

engine message. The response message is built ,in such a way that it splits the main frame in the

browser to accommodate the two frames of the original Freight System.

Page 217: Freight Database Wrapper Module For Dynamic Hypermedia Engine

217

GetCounty_AllCounty_93Handler: This module in FDWM is invoked if the subject tag of the

incoming engine message received by FDWM has the value “getCounty_AllCounty_93”. Apart

from the Constructor which is used to instantiate this module, the “handleRequest” method is the

main method. This is the method that is called in the FreightWrapperModule.

The “handleRequest” method is called by passing the engine message as one parameter.

The other parameter to this method is a variable of type “paramtable”

(dhyme.utils.datastructures) .This variable has key-value pairs but there can be multiple values

for a single key. There can be any number of parameters but GetCounty_AllCounty_93Handler

expects only one parameter Element_ID.

The county name is extracted from the Element_ID. It is the Select1 parameter.The

Select2 parameter is a String array of all counties.

Inside handleRequest method two other methods are called –executeQuery,

addToEngineMessage.

The executeQuery method expects two parameters –Select1 [], Select2[].It converts the

Select1 Array to a String seperated by commas.The same is repeated with Select2 Array. This is

done, because to make a http request with multiple parameters you have to send a String of the

form select1 = Atlantic,Bergen.The multiple values have to be seperated by commas.

The execute query method uses the queryString class to encode the URL. It then forms

the appropriate URL and issues a http request. If the request is successful (response code

Page 218: Freight Database Wrapper Module For Dynamic Hypermedia Engine

218

between 200 & 300) the it gets the inputstream buffers it and creates an object of type

DocumentMarker. The DocumentMarker class expects five parameters – BufferedReader,

dirname, filename, Select1[] and Select2[].The detailed working of the DocumentMarker class

was explained earlier. The executeQuery method then calls the “getMarkedDocument” and

“getUriHash” methods of the DocumentMarker object. The “getMarkedDocument” method

returns the HTML document converted to String with all the elements marked with the

appropriate locator tags. The “getUriHash” method returns the Hash with the Locator_Id as key

and value as uri.

In the addtoEngineMessage method , reply message to be sent to the Gateway is built.

The page to be displayed (marked Document)is sent as a CDATA value in the outdoc tag of the

reply engine message. The response message is built ,in such a way that it splits the main frame

in the browser to accommodate the two frames of the original Freight System.

GetAllCounty_County_93Handler: This module in FDWM is invoked if the subject tag of the

incoming engine message received by FDWM has the value

“getAllCounty_County_93Handler”. Apart from the Constructor which is used to instantiate this

module,the “handleRequest” method is the main method. This is the method that is called in the

FreightWrapperModule.

Inside handleRequest the other method’s that are called are- the “executeQuery” ,

“addToEngineMessage” method.

Page 219: Freight Database Wrapper Module For Dynamic Hypermedia Engine

219

The “handleRequest” method is called by passing the engine message as one parameter.

The other parameter to this method is a variable of type “paramtable”

(dhyme.utils.datastructures) .This variable has key-value pairs but there can be multiple values

for a single key. There can be any number of parameters but GetAllCounty_County_82Handler

expects only one parameter Element_ID.

The county name is extracted from the Element_ID. It is the Select2 parameter. The

Select1 parameter is a String array of all counties.

The executeQuery method expects two parameters –Select1 [], Select2[].It converts the

Select1 Array to a String seperated by commas.The same is repeated with Select2 Array.

The execute query method uses the queryString class to encode the URL. It then forms

the appropriate URL and issues a http request. If the request is successful (response code

between 200 & 300) the it gets the inputstream buffers it and creates an object of type

DocumentMarker.

The DocumentMarker class expects five parameters – BufferedReader, dirname,

filename, Select1[] and Select2[].The detailed working of the DocumentMarker class was

explained earlier. The executeQuery method then calls the “getMarkedDocument” and

“getUriHash” methods of the DocumentMarker object. The “getMarkedDocument” method

returns the HTML document converted to String with all the elements marked with the

appropriate locator tags. The “getUriHash” method returns the Hash with the Locator_Id as key

and value as uri.

In the addtoEngineMessage method , reply message to be sent to the Gateway is built. The page

Page 220: Freight Database Wrapper Module For Dynamic Hypermedia Engine

220

to be displayed (marked Document)is sent as a CDATA value in the outdoc tag of the reply

engine message. The response message is built ,in such a way that it splits the main frame in the

browser to accommodate the two frames of the original Freight System.

GetMetainfoHandler: This module in FDWM is invoked if the subject tag of the incoming

engine message received by FDWM has the value . Apart from the Constructor which is used to

instantiate this module, the “handleRequest” method is the main method. This is the method that

is called in the FreightWrapperModule. As of now this method returns only evident meta data

about the element selected. As more and more meta data is identified it can be added in the same

way.

GetZone_AllCounty_82Handler: This module in FDWM is invoked if the subject tag of the

incoming engine message received by FDWM has the value “getZone_AllCounty_82”. Apart

from the Constructor which is used to instantiates this module, the “handleRequest” method is

the main method. This is the method that is called in the FreightWrapperModule.

The “handleRequest” method is called by passing the engine message as one parameter.

The other parameter to this method is a variable of type “paramtable”

(dhyme.utils.datastructures). This variable has key-value pairs but there can be multiple values

for a single key. There can be any number of parameters but GetZone_AllCounty_82Handler

expects only one parameter Element_ID.

The zone name is extracted from the Element_ID. It is the Select2 parameter.The Select1

parameter is a String array of all counties.

Page 221: Freight Database Wrapper Module For Dynamic Hypermedia Engine

221

Inside handleRequest method two other methods are called –executeQuery,

addToEngineMessage.

The executeQuery method expects two parameters –Select1 [], Select2[].It converts the

Select1 Array to a String seperated by commas.The same is repeated with Select2 Array. This is

done, because to make a http request with multiple parameters you have to send a String of the

form select1 = Atlantic,Bergen.The multiple values have to be seperated by commas.

The execute query method uses the queryString class to encode the URL. It then forms

the appropriate URL and issues a http request. If the request is successful (response code

between 200 & 300) the it gets the inputstream buffers it and creates an object of type

DocumentMarker. The DocumentMarker class expects five parameters – BufferedReader,

dirname, filename, Select1[] and Select2[].The detailed working of the DocumentMarker class

was explained earlier. The executeQuery method then calls the “getMarkedDocument” and

“getUriHash” methods of the DocumentMarker object. The “getMarkedDocument” method

returns the HTML document converted to String with all the elements marked with the

appropriate locator tags. The “getUriHash” method returns the Hash with the Locator_Id as key

and value as uri.

In the addtoEngineMessage method , reply message to be sent to the Gateway is built.

The page to be displayed (marked Document)is sent as a CDATA value in the outdoc tag of the

reply engine message. The response message is built ,in such a way that it splits the main frame

in the browser to accommodate the two frames of the original Freight System.

Page 222: Freight Database Wrapper Module For Dynamic Hypermedia Engine

222

GetZone_AllCounty_93Handler: This module in FDWM is invoked if the subject tag of the

incoming engine message received by FDWM has the value “getZone_AllCounty_93”. Apart

from the Constructor which is used to instantiates this module, the “handleRequest” method is

the main method. This is the method that is called in the FreightWrapperModule.

The “handleRequest” method is called by passing the engine message as one parameter.

The other parameter to this method is a variable of type “paramtable”

(dhyme.utils.datastructures). This variable has key-value pairs but there can be multiple values

for a single key. There can be any number of parameters but GetZone_AllCounty_93Handler

expects only one parameter Element_ID.

The zone name is extracted from the Element_ID. It is the Select2 parameter. The Select1

parameter is a String array of all counties.

Inside handleRequest method two other methods are called –executeQuery,

addToEngineMessage.

The executeQuery method expects two parameters –Select1 [], Select2[].It converts the

Select1 Array to a String seperated by commas.The same is repeated with Select2 Array. This is

done, because to make a http request with multiple parameters you have to send a String of the

form select1 = Atlantic,Bergen.The multiple values have to be seperated by commas.

The execute query method uses the queryString class to encode the URL. It then forms

the appropriate URL and issues a http request. If the request is successful (response code

between 200 & 300) the it gets the inputstream buffers it and creates an object of type

DocumentMarker. The DocumentMarker class expects five parameters – BufferedReader,

Page 223: Freight Database Wrapper Module For Dynamic Hypermedia Engine

223

dirname, filename, Select1[] and Select2[].The detailed working of the DocumentMarker class

was explained earlier. The executeQuery method then calls the “getMarkedDocument” and

“getUriHash” methods of the DocumentMarker object. The “getMarkedDocument” method

returns the HTML document converted to String with all the elements marked with the

appropriate locator tags. The “getUriHash” method returns the Hash with the Locator_Id as key

and value as uri.

In the addtoEngineMessage method , reply message to be sent to the Gateway is built.

The page to be displayed (marked Document)is sent as a CDATA value in the outdoc tag of the

reply engine message. The response message is built ,in such a way that it splits the main frame

in the browser to accommodate the two frames of the original Freight System.

GetAllCounty_ Zone_82Handler: This module in FDWM is invoked if the subject tag of the

incoming engine message received by FDWM has the value “getAllCounty_Zone_82”. Apart

from the Constructor which is used to instantiates this module, the “handleRequest” method is

the main method. This is the method that is called in the FreightWrapperModule.

The “handleRequest” method is called by passing the engine message as one parameter.

The other parameter to this method is a variable of type “paramtable”

(dhyme.utils.datastructures). This variable has key-value pairs but there can be multiple values

for a single key. There can be any number of parameters but GetAllCounty_Zone_82Handler

expects only one parameter Element_ID.

The zone name is extracted from the Element_ID. It is the Select2 parameter.The Select1

Page 224: Freight Database Wrapper Module For Dynamic Hypermedia Engine

224

parameter is a String array of all counties.

Inside handleRequest method two other methods are called –executeQuery,

addToEngineMessage.

The executeQuery method expects two parameters –Select1 [], Select2[].It converts the

Select1 Array to a String seperated by commas.The same is repeated with Select2 Array. This is

done, because to make a http request with multiple parameters you have to send a String of the

form select1 = Atlantic,Bergen.The multiple values have to be seperated by commas.

The execute query method uses the queryString class to encode the URL. It then forms

the appropriate URL and issues a http request. If the request is successful (response code

between 200 & 300) the it gets the inputstream buffers it and creates an object of type

DocumentMarker. The DocumentMarker class expects five parameters – BufferedReader,

dirname, filename, Select1[] and Select2[].The detailed working of the DocumentMarker class

was explained earlier. The executeQuery method then calls the “getMarkedDocument” and

“getUriHash” methods of the DocumentMarker object. The “getMarkedDocument” method

returns the HTML document converted to String with all the elements marked with the

appropriate locator tags. The “getUriHash” method returns the Hash with the Locator_Id as key

and value as uri.

In the addtoEngineMessage method , reply message to be sent to the Gateway is built. The page

to be displayed (marked Document)is sent as a CDATA value in the outdoc tag of the reply

engine message. The response message is built ,in such a way that it splits the main frame in the

browser to accommodate the two frames of the original Freight System.

Page 225: Freight Database Wrapper Module For Dynamic Hypermedia Engine

225

GetAllCounty_Zone_93Handler: This module in FDWM is invoked if the subject tag of the

incoming engine message received by FDWM has the value “getAllCounty_Zone_93”. Apart

from the Constructor which is used to instantiates this module, the “handleRequest” method is

the main method. This is the method that is called in the FreightWrapperModule.

The “handleRequest” method is called by passing the engine message as one parameter.

The other parameter to this method is a variable of type “paramtable”

(dhyme.utils.datastructures). This variable has key-value pairs but there can be multiple values

for a single key. There can be any number of parameters but GetAllCounty_Zone_93Handler

expects only one parameter Element_ID.

The zone name is extracted from the Element_ID. It is the Select2 parameter. The Select1

parameter is a String array of all counties.

Inside handleRequest method two other methods are called –executeQuery,

addToEngineMessage.

The executeQuery method expects two parameters –Select1 [], Select2[].It converts the

Select1 Array to a String seperated by commas.The same is repeated with Select2 Array. This is

done, because to make a http request with multiple parameters you have to send a String of the

form select1 = Atlantic,Bergen.The multiple values have to be seperated by commas.

The execute query method uses the queryString class to encode the URL. It then forms

the appropriate URL and issues a http request. If the request is successful (response code

Page 226: Freight Database Wrapper Module For Dynamic Hypermedia Engine

226

between 200 & 300) the it gets the inputstream buffers it and creates an object of type

DocumentMarker. The DocumentMarker class expects five parameters – BufferedReader,

dirname, filename, Select1[] and Select2[].The detailed working of the DocumentMarker class

was explained earlier. The executeQuery method then calls the “getMarkedDocument” and

“getUriHash” methods of the DocumentMarker object. The “getMarkedDocument” method

returns the HTML document converted to String with all the elements marked with the

appropriate locator tags. The “getUriHash” method returns the Hash with the Locator_Id as key

and value as uri.

In the addtoEngineMessage method , reply message to be sent to the Gateway is built. The page

to be displayed (marked Document)is sent as a CDATA value in the outdoc tag of the reply

engine message. The response message is built ,in such a way that it splits the main frame in the

browser to accommodate the two frames of the original Freight System.

GetSICCodeHandler: This module in FDWM is invoked if the subject tag of the incoming

engine message received by FDWM has the value “getSICCode”. Apart from the Constructor

which is used to instantiate this module, the “handleRequest” method is the main method. This is

the method that is called in the FreightWrapperModule.

In the handleRequest method , the stcc code for which the corresponding SIC Code is desired is

extracted.The no of the STCC code is extracted from it. Then based on that number a page

request is done from the location on the www. For making a page request HTTPRequestor class

of dhyme.utils.io is used.

Page 227: Freight Database Wrapper Module For Dynamic Hypermedia Engine

227

Reply message to be sent to the Gateway is built. The page to be displayed is sent as a CDATA

value in the outdoc tag of the reply engine message. The response message is built ,in such a way

that it splits the main frame in the browser to accommodate the two frames.The left frame of

Freight System and the page got from the WWW.

7.3 Module Operation

7.3.1 To start the Application

The classes needed to run this module is in shared/classes/dhyme/dmisw/fdwm directory.

There is a script to run the module. It is in shared/bin directory. The script is called startFDWM.

Go to

space/~/WWW/public_html/users/shared/bin and type startFDWM.

The module registers itself with the gateway using the name “fdwm” and starts itself and waits

for an engine message to do processing.

7.3.2 To shut down the application

use "ps -f" to get the process id of the FreightWrapperModule

Page 228: Freight Database Wrapper Module For Dynamic Hypermedia Engine

228

use "kill process id" to shut down the application.

7.3.3 Error Conditions

1. If the incoming XML message does not have a valid <Subject> value – which are display,

getFirst, getDocument, getCounty_AllCounty_82,getCounty_AllCounty_93,

getAllCounty_County82, getAllCounty_County93, getMetaInfo, an error message “[whatever

the value of the subject tag is] & does not have a handler associated with it”. This occurs in the

main module “FreightWrapperModule”. The only way to correct this is to pass a valid XML

message that FDWM understands.

2. If gateway is up and running but FDWM restarts after a problem being rectified or so it can

receive a Gateway

Exception which will look like this

Exception in thread "main" dhyme.gateway.server.GatewayException: Error binding

module FDWM .. already bound exception from RMI

at java.lang.Throwable.fillInStackTrace(Native Method)

at java.lang.Throwable.fillInStackTrace(Compiled Code)

Page 229: Freight Database Wrapper Module For Dynamic Hypermedia Engine

229

at java.lang.Throwable.<init>(Compiled Code)

at java.lang.Exception.<init>(Exception.java:42)

at dhyme.gateway.server.GatewayException.<init>(GatewayException.java:15

)

at dhyme.gateway.module.Module.<init>(Module.java:73)

at dhyme.dmisw.FDWM.FreightWrapperModule.<init>(FreightWrapperMo

dule.java:32)

at dhyme.dmisw.FDWM.FreightWrapperModule.main(FreightWrapperModu

le.java:148)

This is because the module is already in the RMI registry. Gateway has to delete FDWM from

being an active module and then FDWM should restart.

3. If gateway is not up and running, the module outputs a Gateway Exception (Refer to

Gateway module).

4. If there is some problem with the Engine message object, for instance it could not find the

DTD location because the HTTP server in space is down, the modules using it will not

receive an error. The program in the module will terminate abruptly.

Page 230: Freight Database Wrapper Module For Dynamic Hypermedia Engine

230

5. If there is some problem with the Engine message object, for instance if the message is not

valid as in a DTD, then it gives a “Message not valid as in a DTD exception”. This happens

when there are errors in the html output coming from Freight.

To correct this problem, check the input html for missing or additional tags and correct the

html.

6. If there is an exception like

“Gateway could be pinged but the message could not be sent. RMI marshal exception”

Check the current version of Java with the command

java –version

if it says java 1.2.2 go to cshrc file and change java version to 1.3.

Do “source .cshrc” and start the engine again.

FDWM can only work with java1.3 version because of the large size of messages sent by

the module.

After a message is built, FDWM writes it to a file and stores in under

shared/scratch/outgoing/fdwm directory for log purposes. The directory can be browsed to see if

FDWM wrote any output file for every message received which are stored in

shared/scratch/incoming/ifdwm directory. If there is a problem with engine message object, no

output file would be written for that particular incoming message.

Page 231: Freight Database Wrapper Module For Dynamic Hypermedia Engine

231

7.4 Module Limitations and Restrictions and Rules

- Because of the large size of the message’s, FDWM can run only with Java version 1.3.

Java 1.2 does not support the marshalling of parameters greater than 64K in size.

- The only way to communicate with FreightWrapperModule is using XML messages.

There is no GUI interface.

- All the XML messages input to the module must follow the message format mentioned in

section 6.1 otherwise FreightWrapperModule will not know how to process the message.

- The assumption I make in the module is that the Freight static files are available locally to

process. So there is no need to specify any path in the browser .The path where to find the

files are coded in the properties file which can be changed as needed.

8. System testing

8.1 Functions to be tested

Page 232: Freight Database Wrapper Module For Dynamic Hypermedia Engine

232

1.Display: To test whether FDWM produces the start page of Freight when a display message

is sent to it.

2.GetFirst: To test whether FDWM produces two documents in two frames, where one frame

has the Freight’s left , the second frame has the page to be displayed when the name of the page

is supplied as a parameter.

3.GetDocument: To test whether FDWM fetches the page from Freight and marks all the

elements appropriately when the selected variables are passed as parameter’s.

4.GetCounty_AllCounty_82: To test whether FDWM fetches the County to all Counties page

for the year 1982 for the county whose element_id is passed as parameter.

5.GetAllCounty_County_82: To test whether FDWM fetches the All counties to the County

page for the year 1982 for the county whose element_id is passed as parameter.

6. GetCounty_AllCounty_93: To test whether FDWM fetches the County to all Counties

page for the year 1982 for the county whose element_id is passed as parameter.

7.GetAllCounty_County_82: To test whether FDWM fetches the All counties to the County

page for the year 1982 for the county whose element_id is passed as parameter.

8.Getmetainfo: To test whether FDWM passes any meta data about the element whose

element_id is passed as parameter.

Page 233: Freight Database Wrapper Module For Dynamic Hypermedia Engine

233

8.2 Testing Procedure

Go to space/~/WWW/public_html/users/shared/classes

1.Run java -Ddebugmode=true dhyme.dmisw.fdwm.FreightWrapperModuleTester

../../aparna/java-classes/getdisplay.xml

getdisplay.xml contains the input message that FDWM expects to show the Freight’s start page.

2. Run java -Ddebugmode=true dhyme.dmisw.fdwm.FreightWrapperModuleTester

../../aparna/java-classes/getFirst.xml

getFirst.xml contains the input message that FDWM expects to show the required page

7. Run java -Ddebugmode=true dhyme.dmisw.fdwm.FreightWrapperModuleTester

../../aparna/java-classes/getdoc.xml

getdoc.xml contains the input message that FDWM expects to show the Document.

4. Run java -Ddebugmode=true dhyme.dmisw.fdwm.FreightWrapperModuleTester

../../aparna/java-classes/getcc82.xml

Page 234: Freight Database Wrapper Module For Dynamic Hypermedia Engine

234

getcc82.xml contains the input message that FDWM expects to show the 82 county to all county

document.

5. Run java -Ddebugmode=true dhyme.dmisw.fdwm.FreightWrapperModuleTester

../../aparna/java-classes/getacc82.xml

getcac82.xml contains the input message that FDWM expects to show the 82 all counties to

County document

6 Run java -Ddebugmode=true dhyme.dmisw.fdwm.FreightWrapperModuleTester

../../aparna/java-classes/getcc93.xml

getcc93.xml contains the input message that FDWM expects to show the 93 county to all county

document.

7 Run java -Ddebugmode=true dhyme.dmisw.fdwm.FreightWrapperModuleTester

../../aparna/java-classes/getacc93.xml

getcac93.xml contains the input message that FDWM expects to show the 93 all counties to

County document

8 Run java -Ddebugmode=true dhyme.dmisw.fdwm.FreightWrapperModuleTester

../../aparna/java-classes/getmeta.xml

getmeta.xml contains the input message that FDWM expects to show the MetaInfo.

The output xml messages of these test results are stored in

space/`shared/scratch/outgoing/fdwm.

Page 235: Freight Database Wrapper Module For Dynamic Hypermedia Engine

235

For convenience and logging purposes, a directory called fdwm is created under shared/outgoing

and shared/incoming.

Whenever a test version or production version is run, the incoming messages are stored in the

incoming/fdwm directory and the outgoing messages are stored in the outgoing/fdwm directory.

The file names are generated dynamically by using the current time in milliseconds and adding a

xml extension to it.

9. Extending the Project

In order to extend this project a person should be thoroughly familiar with the working of the

Freight system (http://freight.njit.edu) and then understand this project. It would be great if they

have good knowledge of MS Access.

9.1 Some Extensions for this project

1. Redo the screens with checkboxes and anchors to elements: The check boxes appear

only in static pages of Freight system. All the static pages are buffered for efficiency and

their location can be read from the properties file.

There are two ways to redo the screens:

• Get the static pages from Freight by issuing a http get request. Write a small parser

that searches for

Page 236: Freight Database Wrapper Module For Dynamic Hypermedia Engine

236

<option value = “Atlantic_cc”>Atlantic, NJ

tag and then replace it by a

<input type="radio" name="Select" value="Atlantic_cc">.

Then put the appropriate locator id tag beside it.

<input type="radio" name="Select" value="Atlantic_cc"> <#id1>Atlantic <#id1>

This is not a very easy task, and it has to be repeated for every page and every

time a user issue’s a request. Also it would become a very difficult task if the html is not

properly formatted. A better approach is given in 2.

Another problem here is that how would one identify the elements. If each of the

option tag is on a different line than you could use end line character as a delimiter. If

not then some other schema should be devised for it.

• Since the static pages remain the same, any no of times you issue a request a better

approach would be to buffer them and make the changes to it. Replace all the option tags

by radio buttons. You still have to write a parser that searches for input tags and add

locator tags to it. The advantage of having a buffered page is that

1. It reduces the overhead of n/w connection

2. It reduces the amount of time required for processing and the load of processing.

3. If there are any errors in html you can correct them. You can insert line breaks or

Page 237: Freight Database Wrapper Module For Dynamic Hypermedia Engine

237

proper delimiters for convenience.

4. If there are gifs with relative paths, the whole path can be specified.

2. Removing the Freight Start page and adding the four pages(cfcr etc) to the Menus

Frame: This would be a relatively simpler task. It would involve changing the

startup.xml file. Remove the entry

<TR>

<TD><A href="UIW?Element_ID=FreightStart&Subject=display&MsgType=FollowL

ink&Destination=FDWM" target=_top>Freight Wrapper Module</A></TD>

</TR>

Add four additional entries of the form.

<TR>

<TD><A

href="UIW?Element_ID=dhyme:fdwm:existing_link:cfcr&Subject=getFirst&MsgType=Fol

lowLink&Destination=FDWM" target=_top> Commodity Flows Comparison Reports (DRI-

1993 vs. Rebee-1982)</A></TD>

</TR>

Page 238: Freight Database Wrapper Module For Dynamic Hypermedia Engine

238

For help you can look at the FreightStart.html file in ~shared/config/fdwm.

Another change would be to rewrite every handlers’s addToEngineMessage() method.

The current handler’s split the main frame into two. This would not be necessary now. The

addToEngineMesssage() method should be changed to the one used in

dhyme.dmisw.fdwm.DisplayHandler.java

3. Writing Additional Handlers for new Bridge Laws: Due to the time limitation I could not

provide all the possible links for each element type. I have listed all of the possible links for each

element type. These may not be final. The no and type of links depends on the user’s preference.

In fact they can be tailored to suit the needs of individuals.

To make a request we will need two parameters. One of the parameter would be the one

on which the user clicked the link in the browser. The other depends on the handler.

Ex : If it is a Region to all counties link for Bergen county, then one parameter would be Bergen,

the other would be the list of all counties.

Element Type : Possible Links

County County to all Regions All Regions to County

County to all zones 1993 County to all zones 1982

County to USA/Canada USA/Canada to county.

Page 239: Freight Database Wrapper Module For Dynamic Hypermedia Engine

239

Outflow thru AIR/Water… Inflow thru Air/Water ..

Ex : Atlantic is an element of type county.It would be provided with the above links.

oldmode Inflow to all counties using oldmode.

Outflow to all counties using oldmode.

1982/1993 Flow Data using oldmode.

Ex : Air is an element of type oldmode. It would be provided the above links.

1982zone Zone to all counties 1982 All counties to that zone 1982

Ex : Northeast is an element of type 1982zone. It would be provided the above links.

1993zone Zone to all counties 1993 All counties to that zone 1993

Ex : NY North is an element of type 1993zone. It would be provided the above links.

Flow Flow Data to all counties 1993 Flow Data to all counties 1982

Ex : Inflow is an element of type Flow. It would be provided the above functionality.

Region All counties to the Region Region to all counties.

Page 240: Freight Database Wrapper Module For Dynamic Hypermedia Engine

240

Ex : Delaware, PA is an element of type Region. It would be provided with the above

functionality.

US/Canada From all counties To all counties

Ex : New England , USA is an element of type US/Canada

Writing the handlers is a simple task. It can be modeled on the

GetCounty_AllCounty82Handler ( or in fact any of the handler).

For example to write a handler for Region to all counties:

Step 1: Extract the Region name from the incoming message. Now we have one of the two

parameters required .It could be select1 or select2. Be especially careful about which is the

select1 parameter. It might seem natural that in region to county flow orientation region would

be the select1. But this is not the case. Region is the select2 parameter here.

Step 2: See the html of Freight’s corresponding page and get the name of the ASP file for

Region to county selection. It is cfsr1993rc.asp.

Step3: The select1 parameter now would be all counties. Look carefully at how the counties are

represented internally. It could be “Atl” or “Atlantic”, “Atlantic_rc” or any other format. Make

the select1 [] depending on that. You may have to append or delete something. Be careful about

Page 241: Freight Database Wrapper Module For Dynamic Hypermedia Engine

241

the Cape May county because it has many different representations. “CapeMay”, “Capemay”,

“Cap” , “Cape May” are only some of them.

Step4 : Once you have formed the selection parameters, life is easy. You can use the

“executeQuery” and “addToEngineMessage” methods of any of the Handlers. They will fetch

the document from Freight system, mark up the document, and form the reply message.

4. Make it compatible with DBSchema module to show the schema of the freight database :

This would be a separate project in itself. I do not consider it as an extension to FDWM.

Reason : FDWM does not interact with the database at all. It does not know where an element

belongs in the database. It has no way of knowing it. It does not bypass any existing commands

and access the database directly. It mimics existing commands to provide the additional links.

The uri used for fdwm flowunit is

dhyme:fdwm:flowunit:page:file:select1:select2:row:column.

But this would not be the way it is stored in the database. So it would not be of any use to

the DBSchema module.

If an element is given in the form

dhyme:fdwm:table_name:column_name then FDWM has no way of knowing what the element

is.

And I am not sure if there is a way to co-relate two different uri’s to the same element.

Page 242: Freight Database Wrapper Module For Dynamic Hypermedia Engine

242

The Freight database has nearly 150 tables. Each submit button has the action of fetching the

data from a number of tables.

5. Add additional queries to the system with the help of RDWM module: This again has the

same problems as above. The RDWM module can make a query to any database. It can get the

required information. But the uri used for rdwm is different.

It might mark a county type element as

dhyme:rdwm:value:<databasename>:tablename:columnName:value

where as fdwm marks it as dhyme:fdwmcounty:value.

6. Provide limited external links to the STCC code’s from the world wide web: For elements

marked as STCC there could be a bridge law which provides links in the world wide web. Since

each element would have a different url, the stcc code and the corresponding link could be stored

in the properties file and retreived .There could be entries like stcc.link=url in the properties file.

Whenever thehandler gets the stcc code append “.link” to the stcc and get the url from the

properties file.

10 File Listing

10.1 File Locations

Page 243: Freight Database Wrapper Module For Dynamic Hypermedia Engine

243

The source code, class files, properties file, display forms and documentation are all saved under

two different locations. One is under my own directory name and the other is under shared. Any

updating should be done in one’s own directory before moving it onto shared directory.

There is a single version of all the java files except for the FreightWrapperModule. One is the

testing version, which has the same name but has Tester at the end of the name. The testing

version is the standalone version, which does not need the gateway to run and which can take an

xml file containing the message as command line parameter.

The source code for this module is located under two directories

One is under aparna/java-src/dhyme/dmisw/fdwm and the other is

shared/source/dhyme/dmisw/fdwm

The class files for this module is located under two directories

One is under aparna/java-classes/dhyme/dmisw/fdwm and the other is

shared/classes/dhyme/dmisw/fdwm

The properties file for this module is present under two directories. One is aparna/java-classes

and the other is shared/config.

All the static HTML pages are also located under aparna/java-classes and under

shared/config/fdwm

Page 244: Freight Database Wrapper Module For Dynamic Hypermedia Engine

244

10.2 Explanation for each file

DisplayHandler.java – The source file, which handles the message with subject “display” to

send the Freight Start page to UIW.

GetDocumentHandler.java – The source file, which handles the message with subject

“getDocument” to send a document with the elements marked up.

GetFirstHandler.java – The source file, which handles the message with subject “getFirst” to

send a document when the user makes a selection on the Freight’s Start page.

GetAllCounty_County_82Handler.java – The source file, which handles the message with

subject “getAllCounty_County_82” to send a document with the results of all Counties to

County for the year 1982.

GetAllCounty_County_93Handler.java – The source file, which handles the message with

subject “getAllCounty_County_93” to send a document with the results of all Counties to

County for the year 1993.

GetCounty_AllCounty_82Handler.java – The source file, which handles the message with

subject “getCounty_AllCounty_82” to send a document with the results of County to all

Counties for the year 1982.

GetCounty_AllCounty_93Handler.java – The source file, which handles the message with

Page 245: Freight Database Wrapper Module For Dynamic Hypermedia Engine

245

subject “getCounty_AllCounty_93” to send a document with the results of County to all

Counties for the year 1993.

MessageHandler.java – This is the interface for all the message handlers

MetaInfoHandler.java – The source file, which handles the message with subject

“getMetaInfo” to send a document with the meta data about the element selected.

FDWMConstants.java – This defines all the constants for this module.

FreightWrapperModule.java – This is the main program of the module which registers with

gateway and invokes the appropriate message handlers depending on the message received.

FreightWrapperModuleTester.java – This is the main program of the testing version which

calls the processMsg by itself using the command line argument as a parameter.

FDWM.properties - The properties file for this module