The document discusses using XML and Java together for building applications. It provides background on XML and Java technologies including parsers, schemas, stylesheets, and servlets. Architectures are presented that use servlets to integrate XML, business objects, and databases in both applet-based and web-based applications. Benefits of the XML and servlet approach include leverage of web server technologies, high scalability, simplified integration, and support for multiple front-ends.
Java EE developers are increasingly required to embrace thin-server-architecture client application development while leveraging their existing components. On the surface, this appears to simply mean using JAX-RS to expose RESTful services. But the real challenges are often misunderstood and underestimated. EclipseLink has solved a large part of this problem through its new JPA-RS feature which integrates JAX-RS, JAXB and JPA to allow developers to expose their persistent entities over REST with support for all lifecycle operations and query execution. In building JPA-RS, EclipseLink faced and overcame many of the challenges developers face when realizing a REST resource model, addressing HATEOS, and the infrastructure for JSON and XML binding.
Presenter manual php and mysql with cms (specially for summer interns)XPERT INFOTECH
XPERT INFOTECH imparts qualitative training in .NET, ASP.NET, PHP, PHP++, JAVA, J2EE, ORACLE DBA, ORALE D2K, RIA, SEO, WEB DEVELOPMENT, MOBILE APPLICATIONS DEVELOPMENT, ANDROID and other latest technologies. The training is designed for the BCA/MCA/B.E./B-Tech students who want to speed up their technical skills and proficiencies into real time development environment.
Java EE developers are increasingly required to embrace thin-server-architecture client application development while leveraging their existing components. On the surface, this appears to simply mean using JAX-RS to expose RESTful services. But the real challenges are often misunderstood and underestimated. EclipseLink has solved a large part of this problem through its new JPA-RS feature which integrates JAX-RS, JAXB and JPA to allow developers to expose their persistent entities over REST with support for all lifecycle operations and query execution. In building JPA-RS, EclipseLink faced and overcame many of the challenges developers face when realizing a REST resource model, addressing HATEOS, and the infrastructure for JSON and XML binding.
Presenter manual php and mysql with cms (specially for summer interns)XPERT INFOTECH
XPERT INFOTECH imparts qualitative training in .NET, ASP.NET, PHP, PHP++, JAVA, J2EE, ORACLE DBA, ORALE D2K, RIA, SEO, WEB DEVELOPMENT, MOBILE APPLICATIONS DEVELOPMENT, ANDROID and other latest technologies. The training is designed for the BCA/MCA/B.E./B-Tech students who want to speed up their technical skills and proficiencies into real time development environment.
Presenter manual RIA technology (specially for summer interns)XPERT INFOTECH
XPERT INFOTECH imparts qualitative training in .NET, ASP.NET, PHP, PHP++, JAVA, J2EE, ORACLE DBA, ORALE D2K, RIA, SEO, WEB DEVELOPMENT, MOBILE APPLICATIONS DEVELOPMENT, ANDROID and other latest technologies. The training is designed for the BCA/MCA/B.E./B-Tech students who want to speed up their technical skills and proficiencies into real time development environment.
Model-Driven Software Development - Strategies for Design & Implementation of...Eelco Visser
Lecture 5 of course on Model-Driven Software Development about Strategies for Design & Implementation of Domain-Specific Languages, discussing design and implementation of WebDSL
XML is a markup language which is used for storing and exchanging data. A markup language marks up the text syntactically in a document under different tags and hence makes the text distinguishable. XML stores data in the form of a structured document; these documents are used for creating web pages and for transporting data. Copy the link given below and paste it in new browser window to get more information on XML:- http://www.transtutors.com/homework-help/computer-science/xml.aspx
The is the RFC for AvocadoDB's query language. AvocadoDB is an open source nosql database (see www.avocadodb.org) offering a mixture of data models like key value pairs, documents and graphs.
The REST API for AvocadoDB is already available and stable and people are writing APIs using it. Awesome. As AvocacoDB offers more complex data structures like graphs and lists REST is not enough. We implemented a first version of a query language some time ago which is very similar to SQL and UNQL.
Then we realized that this approach was not completely satisfying as some queries cannot expressed very well with it, especially multi-valued attributes/lists. UNQL addresses this partly, but does not go far enough. Another issue are graphs. AvocadoDB supports querying graphs, neither SQL nor UNQL offer any "natural" graph traversal facilities.
As we did not find any existing query language that addresses the problems we found we had to define a new query language which is presented in the presentation.
Have some feedback on this? Come to www.avocadodb.org and tell us what you think about it. :-)
Advance Excel Training provided by Corporate Bridge Academy under Training and Development program for Corporate Advance Excel Training Course Covering Advance Excel Formula’s and Programming under Corporate Training and Development programs.
Presenter manual RIA technology (specially for summer interns)XPERT INFOTECH
XPERT INFOTECH imparts qualitative training in .NET, ASP.NET, PHP, PHP++, JAVA, J2EE, ORACLE DBA, ORALE D2K, RIA, SEO, WEB DEVELOPMENT, MOBILE APPLICATIONS DEVELOPMENT, ANDROID and other latest technologies. The training is designed for the BCA/MCA/B.E./B-Tech students who want to speed up their technical skills and proficiencies into real time development environment.
Model-Driven Software Development - Strategies for Design & Implementation of...Eelco Visser
Lecture 5 of course on Model-Driven Software Development about Strategies for Design & Implementation of Domain-Specific Languages, discussing design and implementation of WebDSL
XML is a markup language which is used for storing and exchanging data. A markup language marks up the text syntactically in a document under different tags and hence makes the text distinguishable. XML stores data in the form of a structured document; these documents are used for creating web pages and for transporting data. Copy the link given below and paste it in new browser window to get more information on XML:- http://www.transtutors.com/homework-help/computer-science/xml.aspx
The is the RFC for AvocadoDB's query language. AvocadoDB is an open source nosql database (see www.avocadodb.org) offering a mixture of data models like key value pairs, documents and graphs.
The REST API for AvocadoDB is already available and stable and people are writing APIs using it. Awesome. As AvocacoDB offers more complex data structures like graphs and lists REST is not enough. We implemented a first version of a query language some time ago which is very similar to SQL and UNQL.
Then we realized that this approach was not completely satisfying as some queries cannot expressed very well with it, especially multi-valued attributes/lists. UNQL addresses this partly, but does not go far enough. Another issue are graphs. AvocadoDB supports querying graphs, neither SQL nor UNQL offer any "natural" graph traversal facilities.
As we did not find any existing query language that addresses the problems we found we had to define a new query language which is presented in the presentation.
Have some feedback on this? Come to www.avocadodb.org and tell us what you think about it. :-)
Advance Excel Training provided by Corporate Bridge Academy under Training and Development program for Corporate Advance Excel Training Course Covering Advance Excel Formula’s and Programming under Corporate Training and Development programs.
It tells about how dom really used in javascript & html.And it tells about its levels and its w3c standards. And some Dom example programs with source code and screenshots.
JavaServer Pages enable Web developers and designers to rapidly develop and easily maintain, information-rich, dynamic Web pages that leverage existing business systems.
www.silenceit.ca
Expertezed 2012 Webcast - XML DB Use CasesMarco Gralike
Presentation used during the 3rd December 2012 Expertezed Webcast (see the following websites for more details: www.expertezed.com, www.amis.nl or www.xmldb.nl)
Concurrent programming is one of the major challenges for the software industry. We are in a time of massive experimentation as language designers and programmers search for ways to make concurrent programming easier, less error prone, and more reliable.
This talk will be a survey of concurrent programming constructs which are currently available in some programming language or library. We will look at programming model being presented, as well as examining some of the implementation challenges for the various models.
PyCon US 2009: Challenges and Opportunities for PythonTed Leung
Invited Talk at PyCon 2009
Video on blip.tv at: http://pycon.blip.tv/file/1947412/
We are moving firmly back into a "polyglot" world in terms of programming languages. This presents great opportunities for Python (and other dynamic languages) as well as challenges. In this talk I'll be discussing some of the challenges and opportunities that I see for Python, based on my experience with dynamic language runtimes at Sun.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
3. Distributed OO Middleware
Java XML
Portable Programs Portable Data
Open
Standards
Distributed Object Infrastructure
CORBA
IP Network
Pervasive Networks IP Network
4. XML - eXtensible Markup Language
XML was derived from SGML
80% of function, 20% of complexity
XML is key for e-business
standard way to share structured data
XML and Java work well together
Java = portable code
XML = portable data
XML says nothing about presentation
5. XML example - Address Book
Address Book Markup Language sample
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<!DOCTYPE addressBook SYSTEM quot;abml.dtdquot;>
<addressBook>
<person salary=quot;26350.00quot; band=quot;Dquot;>
<name>
<family>Wallace</family> <given>Bob</given>
</name>
<email>bwallace@megacorp.com</email>
</person>
</addressBook>
6. Document Type Description
DTD Example for Address Book
<?xml encoding=quot;UTF-8quot;?>
<!ELEMENT addressBook (person)+>
<!ELEMENT person (name,email*)>
<!ATTLIST person salary CDATA #REQUIRED >
<!ATTLIST person band (A|B|C|D|E|F) #REQUIRED >
<!ATTLIST person active (true|false) quot;truequot;
#IMPLIED >
<!ELEMENT name (family, given)>
<!ELEMENT family (#PCDATA)>
<!ELEMENT given (#PCDATA)>
<!ELEMENT email (#PCDATA)>
7. A Sampling of DTDs
Bean Markup Language (BML)
Open Financial Exchange
(OFX) Translation Memory eXchange
(TMX)
Online Trading Protocol
(OTP) Mathematical Markup Language
(MathML)
Information and Content
Exchange (ICE) Scalable Vector Graphics (SVG)
XML Bookmark Exchange Astronomical Markup
Language (XBEL) Language (AML)
Channel Definition Format Biopolymer Markup Language
(CDF) (BIOML)
XML Remote Procedure Call Common Business Library
(XML-RPC) (CBL)
Wireless Markup Language Extensible Logfile Format (XLF)
(WML) Genealogical Data in XML
Resource Description (GedML)
Framework (RDF) Human Resources Markup
Precision Graphics Markup Language (HRML)
Language (PGML) and many, many more....
8. XML Parsers
What does a parser do?
Provides an API for a program to access pieces of an XML
document
What API does a parser expose?
DOM = Document Object Model
quot;DOM treequot; = tree structure containing XML information,
accessible by the DOM API
memory intensive
SAX = Simple API for XML
used for processing streams of XML information (without
building a DOM tree)
event driven, and typically non-validating
9. XSLT / XSL
XSL = XML Style Language
XSL is an XML to XML transformation system
There are two parts
XSLT is the tree transformation part of the language
Formatting Objects
The transformation is declaratively specified in XML
A big use of XSL is to convert XML to HTML
this is where browser support comes into play (?)
Still in working draft stage
Being combined with XPointer
10. XSLT Example
<?xml version=quot;1.0quot; encoding=quot;US-ASCIIquot;?>
<xsl:stylesheet xmlns:xsl=quot;http://www.w3.org/XSL/Transform/1.0quot;>
<xsl:template match=quot;personquot;>
<html><body>
<xsl:apply-templates/>
</body></html>
</xsl:template>
<xsl:template match=quot;namequot;> <!-- reverse given & family name -->
<xsl:value-of select='given'/>
<xsl:text> </xsl:text>
<xsl:value-of select='family'/>
</xsl:template>
<xsl:template match=quot;emailquot;>
<a>
<xsl:attribute name=quot;hrefquot;> <!-- add an href attribute -->
<xsl:text>mailto:</xsl:text>
<xsl:apply-templates/>
</xsl:attribute>
<xsl:apply-templates/>
</a>
</xsl:template>
</xsl:stylesheet>
11. XSLT Result
<html>
<body>
Bob Wallace
<a href=quot;mailto:bwallace@megacorp.comquot;>
bwallace@megacorp.com
</a>
</body>
</html>
12. XML Schema
A richer language for constraining XML content
Syntax is regular XML syntax, not DTD syntax
Support for data typing, inheritance
Still in Working Draft form
14. Must I use Java to use XML?
NO!!!
While many of the best programming tools for XML are
currently Java-based, XML is completely language
neutral
XML is about system-to-system interaction and
component-to-component collaboration, regardless of the
underlying programming technology
15. Key Java Technologies
Java Virtual Machine (JVM)
Applets - Java code downloaded into a browser
JavaBeans - Java's component model
Servlets - Java on the server - similar to CGI
Java Server Pages (JSP)- HTML and Java in one file on
the server for dynamic content
Enterprise Java Beans (EJB) - distributed, server
component model
Java Naming and Directory Services (JNDI)
16. Servlets
Servlet is a Java class that can be used to dynamically extend your
server's function. Servlets, as defined by Sun, are:
quot;... objects which conform to a specific interface
that can be plugged into a Java-based server.
Servlets are similar to applets in that they are object
byte codes that can be dynamically loaded off the
net....
They serve as platform independent, dynamically
loadable, plugable helper byte-code objects on the
server side....quot;
In short, a servlet is to the server what the applet is to the client
browser.
Servlets have a standard interface, which is defined in the package
javax.servlet.
17. What XML and Java are Not
A silver bullet
still have to design, code, and test
Guaranteed communication
agreement between vendors and users is still required
Not an Object-Oriented Modeling Language
use UML/XMI for that
Not middleware
used to develop robust middleware
A replacement for HTML
18. XML and Java
XML - Servlets
great way to start on xml server applications
(e.g. xml enabler)
XML - JSPs
a different model to XSL for transformations
XML - EJBs: for more complex applications,
particularly transactional
XML is the technology that ties together EJBs, Message
Broker and Web Serving.
XML supports message formatting and transformation
EJBs provide the model for stateful business logic and
business process logic within business workflow
19. Java + XML - The Winning Team
Application
Client Gateway Resource Managers
Server
DB2
EJBs and
stored procs.
Servlet Enterprise
Applet
JavaBeans gs
JavaBeans
JavaBeans
L ms XML & SQL
XM stored data
XML msgs
XML msgs via IIOP or
MQ or IPC
via IIOP or
via HTTP or
XM
Lm
MQ or IPC
IIOP or MQ
CICS
sgs
EJBs and
Standard CICS trans.
Browser
XML & VSAM
XM
XML
stored data
Lm
Enabled
Browser
sg
s
Domino
EJBs and
Java agents
Applications = Programs + XML & forms
stored data
Data
20. Architectures using Servlets and
XML
We will discuss about some architectures which combine
use of servlet and XML.
The application server which the servlet interacts with could
be an EJB server; a database with or without Java stored
procedures; MQSeries; CICS;etc.
We will present design considerations based on work we
have done with customers when designing servlets and
XML.
special focus on supporting business objects
21. HTML/XML/DB Architecture
HTML -> servlet -> XML -> Query (SQL) -> DB
HTML <- XSL <- XML <- JDBC result set <- DB
RDB
Java Application Server
Browser
Server
WebServer + Servlet Engine
Displays initial
servlet
transform HTML
HTML page
XML converted
into SQL query
JDBC is called
calls
input into XML
Servlets
using
HTML form
HTTP
action
calls a servlet
JDBC
<FORM METHOD=
POST ACTION=
quot;/servlet/GetDataServletquot;> XML4J Parser
HTML generator
HTML page HTML
converted into
showing the
JDBC results
results of the
using XSL
query
XML
XSL
file
22. An Example Application Problem
Client Requirements
support an applet client for Intranet users
support a thin HTML client for Internet users
support interfaces to third-party applications
Complex business logic
business objects to be used on server and in applet
Security
authentication and single logon
SSL encryption
Scalability using multiple servers and tiers
Server to access data in a relational database
Note: other types of backends could be use instead of RDB
23. Applet to Java Server using RMI
(no XML)
Applet <-> RMI <-> servlet
Client Browser Java Application Server RDB
Java Applet (no webserver) Server
Java
Infrastructure to DB - creates
Remote
RMI skeletons and RMI
Method
Invocation
Business Objects
Business Objects
over JDBC
sockets
the busines objects
GUI
RMI stubs
Objects
Java
serialized
objects
are sent
RMI calls
Third-party applications
RMI Skeletons and RMI Objects
24. Applet to Servlet Architecture
using XML
applet <-> bus objects <-> XML <-> servlet <-> bus objects
Client Browser Java Application Server RDB
Java Applet WebServer + Servlet Engine Server
servlet
toXML toXML
calls
using
Infrastructure to DB - creates
HTTP
Java GUI (AWT, Swing)
passing
Business Objects
XML
Business Objects
JDBC
Servlet Callers
the busines objects
Servlets
XML
returned
Customized
Customized
XML 4Java
XML 4Java
Parser using
Parser using
SAX API
SAX API
25. Third-party to Servlet Architecture
using XML
Third-party application <-> XML <-> servlet <-> bus objects
Third-Party Java Application Server RDB
Application WebServer + Servlet Engine Server
servlet
toXML
calls
Infrastructure to DB - creates
Application in using
HTTP
any language
passing
XML
Business Objects
JDBC
XML parser to
the busines objects
Servlets
xxx language
servlet callers
XML
or returned
into a RDB
or Customized
XML 4Java
transformed to
Parser using
HTML SAX API
26. Potential Benefits using XML and
Servlets Together
Leverage webserver technology for provide security
single logon
servlet security
SSL is very simple
Highly scaleable using webserver and load balancing
technology
Integration into a large website is simplified
Provide distinct, flexible interface the application servers
between application components
for 3rd party
Support multiple front-ends
transform results from XML to HTML using XSL
3rd applications written in any language can call the servlets
and receive XML
queuing of messages is easily supported
XML rendered directly in the browser
27. Design Choices - XML
Non-technical considerations
cooperation in industry (suppliers, consumers)
competitive advantage
dominant players may dictate
When to use DTD validation
better performance without validation
turn off when system is closed, turn on for third-party use
XML type definition is limited to Strings
modeling work is required to map objects or tables
Consider XML namespace issues
To transform business objects to XML requires custom
code
Storing XML into a RDB
map from flat text structure to relational tables
map from business object to relational tables
store XML into text extenders
more direct support for XML is coming
28. Design Choices - DOM vs SAX
wrt XML <-> Busines Objects
Both DOM and SAX being widely supported and standardized
DOM SAX
API oriented mechanism
Creates a Document
which is triggered by XML
Object Model tree.
tags
DOM tree which must be
Calls handler when XML
reparsed and converted
tag is read
into business objects.
DOM tree is not really Generates events without
used. the DOM tree
Need to subclass Code is straightforward
business objects from
DOM superclass
Subclassing DOM parser
is more complex code.
29. Design Choices - DTD Specification
Designed to support generalization
Simple instance data represented as attributes instead of
sub-elements
performance tradeoff vs richness of information
Inheritance
XML's flat structure does not provide any inherent support for inheritance
superclass attributes included in the DTD for every concrete subclass
Relationships represented as generalized 'Association
elements'
<!ELEMENT Association EMPTY >
<!ATTLIST Association
name CDATA #REQUIRED
multiplicity (1..1|1..n|n..m) #REQUIRED
oids CDATA #REQUIRED
>
No contained objects are defined in the DTD
Linked to lazy initialization of relationships
Look to modeling community for guidance
30. Design Choices - Servlets
Calls to servlets serve as API calls into the Java Server
'command' and parameters can be included as a parameter
of the servlet
ex. VehicleServlet?command=retrieve&oid=1234567
basic validation of commands
represent the APIs in the XML which is passed to the servlet
Servlet design
Single command processor servlet
Seperate servlet for each set of related commands such as
CRUD for a business object
Seperate servlet for each command
Handle required parameter information versus optional
information
API should be 'forgiving'
i.e. able to handle unexpected information and lack of optional
information
31. Guidelines for Development
Process
Get help/input from business people
Model the business objects and DTD separately
want your DTD to be application independent
DTD should be designed independently of a data or object
model
but with consideration of the databases and applications to be
supported
i.e. start from a purist view and compromise
map between the business objects, database, and XML as
needed
Validate DTD with business people and third-parties
keep it simple where possible
prototype, prototype, prototype
measure performance
search for existing solutions and tools
XML and Java tool space moves quickly
32. XML Architectures
(future is coming quickly)
XML directly in and out of DB2
HTML -> servlet -> XML -> DB2
DB2 -> XML -> XSL processing servlet -> HTML
XML transformed by MQ
XML directly rendered in a browser
using XSL
XML used with MQ Integrator to communicate between
business or systems
XML with Java Messaging Service (JMS)
XML provides configuration information for systems
33. XML Tools
Changing drastically / quickly
Standards are moving quickly, tools keeping up
Java is preferred development language
Unicode
Tool Categories
XML Parsers
Database support
Messaging product support
XML Editors
XSL Processors
Java class libraries
digital signature
visual beans
34. IBM XML Tools
Available from Alphaworks (www.alphaworks.ibm.com)
XML Parser for Java (XML4J)
Lotus XSL
XML Productivity Kit for Java
XML Security Suite
Xeena
Bean Markup Language
P3P
XML Diff and Merge, XML TreeDiff
XML Parser for C++
WebSphere
MQ Series
DB2 6.1
35. DB2 XML and Text Extenders
DB2
Table
CLOB
XML
Doc
FileSystem
XML
Doc
Data Link
Store an XML document in DB2 as column or collection of fields
Store XML document in an external file - Data Links Manager
New structured XML search with DB2 text extender
searches XML stored in column
enables searches to be narrowed more meaningfully
by structure as well as content
36. XML and MQSeries
MQSeries Integrator
Bridging XML and legacy messages
XML is the preferred message format
Dictionary support for messages
Routing and processing based on message content
XML used internally
Configuration management
Links between tools and runtime
MQSeries Family
Consolidation using XML
Common set of GUI tools
Published interfaces
37. alphaWorks XML Technologies...
XML Parser for Java (XML4J) - the core component for
XML solutions, and its companion XML Productivity Kit
DataCraft for creating and publishing XML views of
databases
LotusXSL processor to construct HTML for viewing by a
web browser from an XML document
TexML - this processor allows you to produce typeset
output from XML
P3P Parser - an XML solution which implements Platform
for Privacy Preferences (P3P)
RDF for XML - Resource Description Framework
processor written in Java for building, querying, and
manipulating RDF database structures.
38. alphaWorks XML Technologies...
Dynamic XML for automating Java interpretation of XML
PatML for converting XML documents to other languages
XML TreeDiff used to identify and update DOM trees just
like data files
XML BeanMaker to generate Java bean classes from an
XML DTD
TaskGuide Viewer - an XML-based tool for creating
wizards.
Bean Markup Language (BML) for configuring Java
components
XML EditorMaker for building XML visual editors
XML Enabler for viewing XML in various browsers via
servlet