Application XML Enabling A Holistic Approach SYSTEK Information Technology.

20
Application XML Enablin A Holistic Approa SYSTEK Information Technology

Transcript of Application XML Enabling A Holistic Approach SYSTEK Information Technology.

Application XML EnablingA Holistic Approach

SYSTEK Information Technology

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 2

Era of Integration

So Many Systems, So Many Platforms!

London

IBM S/390

Japan

HP HP-UX

Australia

Sun SolarisHong Kong

Microsoft NT

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 3

Legacy applications lack access to the Internet!

London

IBM S/390

Japan

IBM AS/400 Hong Kong

Hong Kong

IBM RS6000

In te rn e tLaptop com puter

Singapore

Sun SPARC

Sun SPARC

Reign of the Internet

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 4

Many Systems, Many Platforms

but One Internet Enabled Interface

Towards a Unified Data Exchange Solution

London

IBM S/390

Japan

IBM AS/400 Hong Kong

Hong Kong

IBM RS6000

In te rn e tLaptop com puter

Singapore

Sun SPARC

Sun SPARC

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 5

XML (Extensible Markup Language)

A tag-based textual formatting language document mark-up or data structuring

Based on SGML (Standard Generalised Markup Language) became international standard ISO 8879 in 1986

Standard from W3C (World Wide Web Consortium) recommendation XML version 1.0 (February 1998)

Example<Person>

<Name>Daniel Chan</Name><Title>Chief Technology Officer</Title><Company>Systek I.T. Ltd.</Company>

</Person>

History

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 6

HTML, XML, and SGML are one big family!

SGML XML

HTML

Web PagesXML

Documents / Messages

XMLDocument / Message

Definitions

simplifies

defines

Language

MetaLanguage

Use of theLanguage

MetaData

Data

Comparison of SGML and XMLwww.w3.org/TR/NOTE-sgml-xml-971215

XHTML

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 7

ezXML Approach for the Whole Development Cycle

Design

Management

Implementation

Integration

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 8

ezXML Approach to Application XML Enabling

DTD Editor

Java APIGenerator

JavaApplications

Java, C, C++,COBOL

Applications

Designer

RationalRose

UMLclass

diagrams

DTDDTD

DTDGenerated

API

DTD Repository

ApplicationRequirements

J3C APIGenerator

AMS/3

X12

EDIFACT

FIX

SWIFTGateway

Ready-to-use API

TranslationEngine

TextGateway

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 9

Generating DTD using ezXML Designer

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 10

ezXML Approach to Application XML Enabling

DTD Editor

Java APIGenerator

JavaApplications

Java, C, C++,COBOL

Applications

Designer

RationalRose

UMLclass

diagrams

DTDDTD

DTDGenerated

API

DTD Repository

ApplicationRequirements

J3C APIGenerator

AMS/3

X12

EDIFACT

FIX

SWIFTGateway

Ready-to-use API

TranslationEngine

TextGateway

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 11

DTD Management using ezXML DTD Editor

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 12

ezXML Approach to Application XML Enabling

DTD Editor

Java APIGenerator

JavaApplications

Java, C, C++,COBOL

Applications

Designer

RationalRose

UMLclass

diagrams

DTDDTD

DTDGenerated

API

DTD Repository

ApplicationRequirements

J3C APIGenerator

AMS/3

X12

EDIFACT

FIX

SWIFTGateway

Ready-to-use API

TranslationEngine

TextGateway

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 13

// Get member element Payment of element OrderElementClass_Payment payment =

order.get_Payment();// Get member element CreditCard of element PaymentElementClass_CreditCard creditCard =

payment.get_CreditCard();

// Get element attribute CardType of element CreditCard and display its value

System.out.println("Card Type: " + creditCard.getAttr_CardType());

Convenience from using ezXML Java API Generator

A String of “Visa”, “Master”,or “AmericanExpress”

Attribute Value

Order

Payment

CreditCard

43251789920010115

030712

NameOnCard

ExpiryDate

CardNumber

DanielChan

1111 22223333 4444

0109

Visa

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 14

ezXML Approach to Application XML Enabling

DTD Editor

Java APIGenerator

JavaApplications

Java, C, C++,COBOL

Applications

Designer

RationalRose

UMLclass

diagrams

DTDDTD

DTDGenerated

API

DTD Repository

ApplicationRequirements

J3C APIGenerator

AMS/3

X12

EDIFACT

FIX

SWIFTGateway

Ready-to-use API

TranslationEngine

TextGateway

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 15

Extracting Data from Files using ezXML Text Gateway

MAKE %GOODS_INFO { GOODS_INFO [ NAME [$name], QUANTITY [$quantity] ]}MATCH { #ROW(+1) #COL(0) ~‘Product Name:’ (100b)? #EVAL($name, 50x) #ROW(+1) #COL(0) ~‘Quantity:’ (100b)? #EVAL($quantity, 20n)

}

IGNORE %BETWEEN_RECORDMATCH { #REJECT(~‘Customer ID’) #ROW(+1) #COL(0)

}

A rule named GOODS_INFO

XML message construction

Pattern in the text file to be matched

A sub-pattern to be matched

Data to be extractedfrom a matched pattern

A rule with no outputEfficient skipping drivenby matched pattern

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 16

ezXML Approach to Application XML Enabling

DTD Editor

Java APIGenerator

JavaApplications

Java, C, C++,COBOL

Applications

Designer

RationalRose

UMLclass

diagrams

DTDDTD

DTDGenerated

API

DTD Repository

ApplicationRequirements

J3C APIGenerator

AMS/3

X12

EDIFACT

FIX

SWIFTGateway

Ready-to-use API

TranslationEngine

TextGateway

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 17

<ezXML_RULE name="test9_program"> <MATCH_TEMPLATE mapping-name='HOUSE_TABLE' name='HouseTable' type='DUMMY'> <MATCH_TEMPLATE name='HouseRecord' type='DUMMY‘> <MATCH_TEMPLATE name='HouseID' type='DUMMY'> <MATCH_TEMPLATE name='houseID1' from='#PCDATA' type='VARIABLE'/> </MATCH_TEMPLATE> <MATCH_TEMPLATE name='HouseName' type='DUMMY'> <MATCH_TEMPLATE name='houseName' from='#PCDATA' type='VARIABLE'/>

</MATCH_TEMPLATE> </MATCH_TEMPLATE> </MATCH_TEMPLATE>

<MAKE_TEMPLATE mapping-name='RESULT' name='Group' type='DUMMY' multiple='TRUE'> <MAKE_TEMPLATE name='GroupName' type='DUMMY' multiple='FALSE'> <MAKE_TEMPLATE name='groupName' type='VARIABLE' multiple='FALSE'/> </MAKE_TEMPLATE> <MAKE_TEMPLATE name='Staff' type='DUMMY' multiple='TRUE'> <MAKE_TEMPLATE name='StaffName' type='DUMMY' multiple='FALSE'> <MAKE_TEMPLATE name='staffID2' associate='staffID1' type='VARIABLE'

multiple='FALSE' hidden='FALSE'/> <MAKE_TEMPLATE name='staffName' type='VARIABLE' multiple='TRUE'/> </MAKE_TEMPLATE> <MAKE_TEMPLATE name='HouseName' type='DUMMY' multiple='TRUE'>

<MAKE_TEMPLATE name='houseID2' associate='houseID1' type='VARIABLE' multiple='FALSE' hidden='FALSE'/> <MAKE_TEMPLATE name='houseName' type='VARIABLE' multiple='TRUE'/> </MAKE_TEMPLATE> </MAKE_TEMPLATE> </MAKE_TEMPLATE></ezXML_RULE>

Translating XML Data using ezXML Translation Engine

A hierarchy oftemplates reflectingthe structure of theinput message

A hierarchy oftemplates toconstruct theoutput message

Variable to hold matched data

Element to be matched

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 18

Performance & Complexity

ezXML JAXP SAX JAXP DOM XML4J DOMRead without print (99 times, ms) - 1072 - -Read with print (99 times, ms) - 1105.33 - -XML to Java Object (99 times, ms) 957.67 - 1218.67 1482Java Object to XML (99 times, ms) 231.00 - 984.67 1345.33Total time taken (99 times, ms) 1141.67 1105.33 2203.33 2827.33Average time taken (ms) 11.53 11.16 22.26 28.56Throughout (KB/s) 231.69 241.67 121.24 97.48

Testing Environment• Celeron 400MHz with 128MB RAM• Windows NT Workstation 4.0 (SP5) with JDK1.3.0• JAXP 1.1 - from Sun Microsystems Inc.• XML4J 3.1.1 - from IBM Corp.• Input XML message is a SWIFT message in XML format of size 2763 bytes

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 19

Conclusions

A holistic approach that addresses the need of the whole development cycle

XML design becomes a part of application design right at the beginning

With ezXML Designer, designs can be formulated using only UML concepts

Just like data, designs need to be managed

With ezXML DTD Editor, designs can be changed as well as stored in and retrieved from either a file system or a database system

DOM and SAX approaches to XML application development is too low level

Significant productivity gain can be obtained using a higher level interface to XML

With ezXML Java API Generator, high level API can be generated for use by Java applications

©2000-2001 SYSTEK Information Technology Limited. All rights Reserved.

Page 20

www.systekit.com/ezxml/

More information …