Application XML Enabling A Holistic Approach SYSTEK Information Technology.
-
Upload
clarence-burke -
Category
Documents
-
view
214 -
download
0
Transcript of Application XML Enabling A 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