Title: Engineering Web Based Legacy Systems
1Engineering Web Based Legacy Systems
Distributed Computing CS843
By Kanchana Eramudugoda
2Content
- What is a Legacy System?
- Typical Problems Associated with it
- Standards for Service Web
- Migrating to Web-based
- Migrating Components in to Network Environment
3What is a Legacy System?
"A computer system or application program which
continues to be used because of the prohibitive
cost of replacing or redesigning it and despite
its poor competitiveness and compatibility with
modern equivalents." Examples IBM AS/400
IBM Mainframe
Tandem
4Problems Associated with Legacy Systems
- They are very difficult and may not easy to
expand - It typically runs on absolute hardware, which is
expensive and hard to maintain - Maintaining the software is expensive Due to
lack of documentation and lack of understanding
of the internal working of the system, tracing
can be costly and time consuming -
5Standards For Service Web (SOAP, WSDL,UDDI)
- Simple Object Access Protocol - SOAP
- is an XML based messaging protocol. It
usually used for exchanging information and
Remote Procedure Call over HTTP(not necessary) - SOAP consists of 4 parts
- 1. SOAP Envelope defines the content of the
message - 2. SOAP Encoding rules defines the
serialization mechanism - 3. SOAP RPC Representation How to make calls
and responses - 4. Protocol Binding HTTP, SMTP
6Some sample Skeleton of SOAP lt?xml
version"1.0"?gt ltsoapEnvelope xmlnssoap"http//
www.w3.org/2001/12/soap-envelope" soapencodingSty
le"http//www.w3.org/2001/12/soap-encoding"gt ltsoa
pHeadergt ... lt/soapHeadergt ltsoapBodygt ...
... ltsoapFaultgt ... ...
lt/soapFaultgt lt/soapBodygt lt/soapEnvelopegt
- Few Things to Consider When Writing a SOAP
- Message MUST be encoded using XML
- Message MUST use the SOAP Envelope namespace
- Message MUST use the SOAP Encoding namespace
- Message must NOT contain a Document Type
Definition (DTD) reference - Message must NOT contain XML Processing
Instructions
7- Web Services Description Language -
WSDL - is a XML language for describing web
services as a set of endpoints (ports) of message
exchange. Each endpoint consists of, Definitions
of operations , messages, binding protocol and
message format. - WSDL is a document written in XML. The document
describes a Web service. It specifies the
location of the service and the operations (or
methods) the service exposes. - A WSDL service definition applies several layers
of abstraction. There are six layers - 1. Data types that the service operates
on - 2. Message types the service can
receive/send - 3. How these messages combine into
operations - 4. What protocols the service will bind
to - 5. WSDL ports (operation protocol)
- 6. A service on a given port
8Main Structure of the WSDL Document
Sample Code
ltdefinitionsgt lttypesgt ..
definition of types........ (The data types used
by the web service ) lt/typesgt ltmessagegt
. definition of a message. (The messages
used by the web service ) lt /messagegt
ltportTypegt . definition of a port......
(The operations performed by the web service
just like a module or class ) lt/portTypegt
ltbindinggt .. definition of a
binding.... (The communication protocols used by
the web service ) lt/bindinggt lt/definitionsgt
message name"getTermRequest"gt ltpart
name"term" type"xsstring"/gt lt/messagegt
ltmessage name"getTermResponse"gt ltpart
name"value" type"xsstring"/gt
lt/messagegt ltportType name"glossaryTerms"gt
ltoperation name"getTerm"gt ltinput
message"getTermRequest"/gt ltoutput
message"getTermResponse"/gt
lt/operationgtlt/portTypegt
9- Universal Description, Discovery, and
Integration - UDDI -
- is the building block that businesses can use to
quickly, easily, and dynamically find and
transact with each another, using their preferred
applications. - UDDI functions include
- Service Provider
- Provides and publishes e-business web services
- Service Registry
- SOAP-activated web service yellow pages
- Service Requester
- Finds required services and binds client to
those services
10- Migrating Components in to Network Environment
- Representation of data/interface using XML
- XML Representation of Component Interface
lt?xml version"1.0"?gt ltConfig PackageAVLgt
ltComponent nameAVL
hrefhttp//www.swen.uwaterloo.ca/BookSt
ockgt lttypedefgt ltsrcType
namechar/gt lttargetType
nameubi_trBool/gt lt/typedefgt
ltInterface nameSampleRec srcClassSampleRecgt
ltOperationgt ltReturn typevoid/gt
ltOpName nameputName srcMethodputName/gt
ltParamsgt ltParam
nameval dirin typechar/gt
lt/Paramsgt lt/Operation/gt
ltOperationgt ltReturn typechar/gt
ltOpName namegetNameString
srcMethodgetName/gt
ltParamsgt ltParam namei
dirin typeint/gt lt/Paramsgt
CORBA IDL module AVL iinterface
corba_SampleRec typedef char corba_ubi_trBool
interface corba_SampleRec void
putName(in string val) string
getName() void putNode(in
corba_ubi_btNode val) corba_ubi_btNode
getNode() long getDataCount()
void putDataCount(in long aval)
11- Wrapping CORBA objects with SOAP
- Enabling of access to CORBA objects with out
installing the ORB runtime capability on the
clients side, thin client s or lightweight
clients, is much harder. Therefore to make it
easy SOAP protocol is used as a messenger between
CORBA objects and the web services.
Process the HTTP/GET or POST requests
Interpretation and Dispatching of messages
It is a Collection of Java Beans Encapsulate all
the services including serialization and
de-serialization
12 struct EchoData long aLong
boolean aBool string aString
EchoData getData( in long l, in boolean b, in
string s)
SOAP interface XML with the corresponding CORBA
IDL definitions. ltesdCType name"EchoData"gt
ltesditem name"aLong" type"xsdint"
builtin"true" array"false" inout"false"/gt
ltesditem name"aBool" type"xsdboolean"
builtin"true" array"false" inout"false"/gt
ltesditem name"aString" type"xsdstring"
builtin"true" array"false" inout"false"/gt lt/es
dCTypegt ltesdMethod name"getData"gt
ltesdInParam name"GetDataRequest"gt
ltesditem name"l" type"xsdint"
builtin"true" array"false" inout"false"/gt
ltesditem name"b" type"xsdboolean"
builtin"true" array"false" inout"false"/gt
ltesditem name"s" type"xsdstring"
builtin"true" array"false" inout"false"/gt
lt/esdInParamgt ltesdOutParam
name"GetDataResponse"gt ltesditem
name"return" type"typensEchoData"
builtin"false" array"false" inout"false"/gt
lt/esdOutParamgt lt/esdMethodgt
13Conclusion
- It is beneficial to engineering web based legacy
system. Because - Allows the company to take advantage of the
latest technologies available - Web-based applications and services promise more
flexible, efficient and cost-effective operations
than the legacy systems that are showing signs of
age and years of patching and fixing.
14Questions ?