Adapting Legacy Computational

computerharpySoftware and s/w Development

Dec 2, 2013 (3 years and 8 months ago)

95 views


Adapting Legacy Computational Software for XMSF


1

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Adapting Legacy Computational
Software for XMSF


Elizabeth L. White

and

J. Mark Pullen

Department of Computer Science and C3I Center

George Mason University

Fairfax, VA 22030

white@cs.gmu.edu; mpullen@gmu.edu



Adapting Legacy Computational Software for XMSF


2

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Overview


Background


Web services, XML and SOAP


From legacy code to web services


Experiments to date


Conclusions


Adapting Legacy Computational Software for XMSF


3

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Background
-

Big Picture


Web
-
based technologies applied within an extensible framework will
enable a new generation of modeling & simulation (M&S)
applications to emerge, develop and interoperate.


Support for operational tactical systems is a missing but essential
requirement for such M&S applications frameworks.


The framework of Extensible Markup Language (XML)
-
based
languages can provide a bridge between forthcoming M&S
requirements and open/commercial web standards, while continuing
to support existing M&S technologies.


Compatible and complementary technical approaches are now
possible for model definition, simulation execution, network
-
based
education, network scalability, and 2D/3D graphics views.


The Web approach for technology, software tools, content
production and broad use provides best business cases from an
enterprise
-
wide (
i.e.
world wide) perspective.



Adapting Legacy Computational Software for XMSF


4

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Background
-

Goals

Enable use of legacy code in XMSF:


Approach should be easy to apply


Platform independence


Inexpensive or freely available tools



Adapting Legacy Computational Software for XMSF


5

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Web Services


Definition:
a self
-
contained, self
-
describing
unit of modularity for publishing and
delivering XML
-
based digital services over
the Internet
.


natural extension of the concept of a
resource



accept messages and return replies


all encoding in XML


peer
-
to
-
peer or client
-
server


Adapting Legacy Computational Software for XMSF


6

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Specifying Web Services


Externally visible behavior is described in terms
of the syntax, semantics, and sequencing of
messages exchanged between the service
provider and its client



Described using an XML Schema vocabulary


Web Service interface description document
specifies a contract between the service provider
and its client.


Adapting Legacy Computational Software for XMSF


7

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Web Services Model


Service
Provider


Service
Consumer


Service
Registry

Bind

Publish



Query


Adapting Legacy Computational Software for XMSF


8

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

XML


Universal meta
-
language of the Web



Used for data, content, messaging, and
computing to provide point
-
to
-
point integration in
a platform
-
neutral way



Document
structure, content and semantics
defined by XML schema


Basis for a new generation of lightweight, XML
-
based, application
-
level protocols now emerging


Adapting Legacy Computational Software for XMSF


9

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Simple Object Access Protocol (SOAP)


XML
-
based, lightweight messaging protocol for
exchange of typed information in decentralized,
distributed environments


Enables interoperability among (existing) distributed
applications running on disparate, heterogeneous
platforms using a modest infrastructure


Guiding principles are simplicity and extensibility by
modularity.


Does not define a programming model or require a
specific network transport.


Simply consists of a modular packaging mechanism and
a set of encoding rules.



Adapting Legacy Computational Software for XMSF


10

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

SOAP Benefits


Provides a message format, type information and
encoding mechanism


Allows platforms
-
independent information exchange
information, irrespective object model or programming
language


Packaging mechanism allows for expressing complex
communication semantics ranging from RPC
-
style calls
to general message passing (with or without queuing)


Encoding rules, define a data serialization format for
exchanging application or platform
-
specific datatypes.


SOAP message (encoded as XML document) is a one
-
way transmission routed along a message path



Adapting Legacy Computational Software for XMSF


11

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

From Legacy Code to Web Services



Approach centers on Java and a publicly
available SOAP implementation


Service consumer sends and receives
SOAP messages


Service provider has a Java front end that
processes requests


Experimental implementations of
FORTRAN and C++ services



Adapting Legacy Computational Software for XMSF


12

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Java
-
Based Web services

Service

Consumer

Service

Provider





Legacy

Code

SOAP

Messages


Adapting Legacy Computational Software for XMSF


13

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Source
-
to
-
Source Transformation


Option 1: reimplement the functionality in
Java


automatically via source
-
to
-
source
transformation techniques or by hand


resulting executable can be run on any
architecture that supports Java


even if it does not have a compiler for the legacy
language.


tried this first



Adapting Legacy Computational Software for XMSF


14

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Source
-
to
-
Source Transformation Problems


FORTRAN to Java tools exist


we used f2j



not completely automatable


data type and control flow limitations


Source code access limited or nonexistent


No good way to test the transformed code


legacy code provided no test cases


Potential performance problems


Java is an interpreted language


Adapting Legacy Computational Software for XMSF


15

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Java Wrappers for Legacy Code



Option 2: Java Native Interface (JNI)


user creates Java wrappers to use the native
code executable directly


C, C++ and FORTRAN


appears to be most automatable approach


results in a faster component


but it may not be portable


so, run the service on a platform that supports it


legacy code has already been tested and
accepted


reduces the amount of testing required for the Service


Adapting Legacy Computational Software for XMSF


16

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Java Web Services


Transformation of Java component into a Web
Service is a relatively painless process


Tools closely track the emerging standards for
web
-
based interaction


Quite straightforward to use


developers to know only minimal XML and SOAP


We used Axis


third generation of Apache SOAP.



Adapting Legacy Computational Software for XMSF


17

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Cannon Example

(Bourg,
Physics for Game Developers
, O’Reilly, 2001)


Adapting Legacy Computational Software for XMSF


18

© 2003 White & Pullen, GMU

03F
-
SIW
-
112

Conclusions


Transformation and Java wrappers are both
viable tools


we had more success with wrapping legacy software
transformations


preferred choice depends on availability of
documentation and test procedures


Issues not addressed


economic tradeoffs


module size vs value of conversion


is the size and function worth the trouble?


registries and dynamic discovery/integration