Date post: | 27-Dec-2015 |
Category: |
Documents |
Upload: | august-miller |
View: | 223 times |
Download: | 1 times |
Basic WEB Architecture
1
Data Driven WEB Architecture
2
Recent WEB Applications Architecture
3
Client Tier
4
Service Tier
5
The Web as a Platform for Running Applications
6
Service Oriented Application (SOA)
7
Service Oriented Application (SOA)
8
Service Oriented Application (SOA)
9
Service Oriented Application (SOA)
10
Service Oriented Application (SOA)
11
Front-End
12
Front-End
13
Service Oriented Application (SOA)
14
Middle Layer – Data Link
15
Service Oriented Application (SOA)
16
Back-End- Server Site
17
GROUP DISCUSSION
18
WHAT
TO DO?
What is XML?
eXtensible Markup Language, is a specification for creating custom markup languages
W3C RecommendationPrimary purpose is to help computers to share
dataXML is meta-language. This means that you
use it for creating languages.XML is an extensive concept.
XML Document
Every XML-document is text-based=> sharing data between different computers!=> sharing data in Internet!=> platform independence!
Binary vs. Text
Problems with Binary format– Platform depence– Firewalls– Hard to debug– Inspecting the file can be hard
Since XML is text-based, it does not have the problems mentioned above.
What are the disadvantages in text format?
XML Doc Advantages
Easy data sharing, text documents are readable between any device.
Documents can be modified with any text editor. Possible to understand the contents of the xml-
document just by looking at it with text editor. Easy to manipulate via programming languages Two levels of correctness: Well formed and Valid.
.doc – file format
WindowsMS Word 2000
Mac OS XSince .doc is closed binary-format,there are very few alternatives forword processors that fully support
the doc – file format
0101011010101010001010101010111010101000101110101011101010101101011110101010101010101010
.docx – file format (Office Open XML)
WindowsMS Word 2007
Mac OS XHopefully in the future there
will be loads of free programs that support this new open and easy access file format
<xml><heading1>title</heading1>..</xml>
Now the format isopen and it's much
easier to access
SGML vs. XML
SGML: Standard Generalized Markup Language SGML: Standard Generalized Markup Language
XMLXML
HTML(.html)
XHTML(.xhtml)
MathML(.mml)
OOXML(.docx)
XML – Meta Language
XML is meta language, which you can use to create your own markup languages.
There are several XML Markup Languages made for different purposes
All the languages have common xml-rules Languages: XHTML, OOXML, Open Document, RSS,
SVG, SOAP, SMIL, MathML... List:
– http://en.wikipedia.org/wiki/List_of_XML_markup_languages
XHTML - Example
<?xml version="1.0"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Minimal XHTML 1.0 Document</title> </head> <body> <p>This is a minimal <a href="http://www.w3.org/TR/xhtml1/">XHTML
1.0</a> document.</p> </body></html>
SVG - Example
<?xml version="1.0"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" version="1.1"xmlns="http://www.w3.org/2000/svg">
<circle cx="100" cy="50" r="40" stroke="black"stroke-width="2" fill="red"/>
</svg>
MathML (Open Office)
<?xml version="1.0"?><!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML
1.01//EN" "math.dtd"><math:math xmlns:math="http://www.w3.org/1998/Math/MathML"> <math:semantics> <math:mrow> <math:mi>x</math:mi> <math:mo math:stretchy="false">=</math:mo> <math:mfrac> <math:mrow> ... </math:mrow> <math:annotation math:encoding="StarMath 5.0">x = {-b +-sqrt{b^{2}-
4{ac}} } over {2 {a}} </math:annotation> </math:semantics></math:math>
RSS 2.0 - Example
<?xml version="1.0"?><rss version="2.0"><channel> <title>W3Schools Home Page</title> <link>http://www.w3schools.com</link> <description>Free web building tutorials</description> <item> <title>RSS Tutorial</title> <link>http://www.w3schools.com/rss</link> <description>New RSS tutorial on W3Schools</description> </item> <item> <title>XML Tutorial</title> <link>http://www.w3schools.com/xml</link> <description>New XML tutorial on W3Schools</description> </item></channel></rss>
XML Editors
XML Spy EditiX Microsoft XML NotepadVisual XMLXML ViewerXeenaXML Styler, Morphon, XML Writer…
WELL FORMED XML - DOCUMENT
Rules that Apply to Every XML-Document
Correctness
There are two levels of correctness of an XML document:1. Well-formed. A well-formed document conforms
to all of XML's syntax rules.
2. Valid. A valid document additionally conforms to some semantic rules.
Let's first look at the XML's syntax rules (1).
Simple Generic XML Example
<?xml version="1.0" encoding="utf-8" standalone="yes"?><presentation> <slide number="1"> <name>Introduction to XML</name> <contents>XML is ...</contents> </slide></presentation>
XML-Declaration
XML-declaration is optional in XML 1.0, mandatory in 1.1.– Recommendation: use it.
Version: 1.0 or 1.1 Encoding: character encoding, default utf-8 Standalone:
– is the xml-document linked to external markup declaration– yes: no external markup declarations– no: can have external markup declaration (open issue..)– default: "no"
Comparing Declarations
<?xml version="1.0" encoding="utf-8" standalone="no"?><presentation> <slide> <name>Introduction to XML</name> <contents>XML is ...</contents> </slide></presentation>
<?xml version="1.0"?><presentation> <slide> <name>Introduction to XML</name> <contents>XML is ...</contents> </slide></presentation>
Same DeclarationSame Declaration
Element vs. Tag vs. Attribute
Element consists of start tag, optional content and an end tag:– <name>Introduction to XML</name>
Start tag– <name>
Content– Introduction to XML
End tag– </name>
Start tag may have attribute– <slide number="1">
Rules about Elements
Only one root - element Every element contains starting tag and an ending tag Content is optional: Empty element
– <x></x> <!-- same as -->– <x/>
Tag – names are case-sensitive:– <X></x> <!-- Error -->
Elements must be ended with the end tag in correct order:– <p><i>problem here</p></i> <!– Error
Rules about Attributes
XML elements can have attributes in the start tag.
Attributes must be quoted:– <person sex="female">– <person sex='female'>– <gangster name='George "Shotgun" Ziegler'>– <gangster name="George "Shotgun" Ziegler">
Naming Tags
Names can contain letters, numbers, and other characters
Names must not start with a number or punctuation character
Names must not start with the letters xml (or XML, or Xml, etc)
Names cannot contain spaces
Well-Formed XML
XML document is well-formed if it follows the syntax rules.
XML document must be well-formed! – it's not an xml-document, if it does not follow the
rules..
Is this Well-Formed XML Document?<?xml version="1.0"?><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Minimal XHTML 1.0 Document</title> </head> <body> <p>This is a minimal <a href="http://www.w3.org/TR/xhtml1/">XHTML
1.0</a> document.</p> </body></html>
Is this Well-Formed XML Document?<?xml version="1.0"?><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Minimal XHTML 1.0 Document</title> </head> <body> <jorma>This is a minimal <a
href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> document.</jorma> </body></html>
VALID XML DOCUMENTDefining the Structure for XML documents
Valid XML
XML document is valid if– 1) It is well formed AND– 2) It follows some semantic rules
XML document is usually linked to an external file, that has semantic rules for the document.– The file can be dtd (.dtd) or schema (.xsd)
Semantic rules?– Name of tags, order of elements
DTD Linking
<?xml version="1.0"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Minimal XHTML 1.0 Document</title> </head> <body> <p>This is a minimal <a href="http://www.w3.org/TR/xhtml1/">XHTML
1.0</a> document.</p> </body></html>
Rules for XHTML elements (order, names, etc)
Rules for XHTML elements (order, names, etc)
DTD Linking
Defines the structure, tag names andorder for all xhtml - documents
W3C has created XML-language "XHTML"by defining it's rules in DTD.
W3C has created XML-language "XHTML"by defining it's rules in DTD.
Is this valid XML Document?
<?xml version="1.0"?><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Minimal XHTML 1.0 Document</title> </head> <body> <jorma>This is a minimal <a
href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> document.</jorma> </body></html>
1. There is no DTD! What language is this? MathML? SVG? XHTML?2. Assuming this is XHTML, what version of XHTML? Transitional? Strict?3. Assuming this is XHTML strict, does "jorma" – tag belong to XHTML Language?
1. There is no DTD! What language is this? MathML? SVG? XHTML?2. Assuming this is XHTML, what version of XHTML? Transitional? Strict?3. Assuming this is XHTML strict, does "jorma" – tag belong to XHTML Language?
Invalid XHTML-document
<?xml version="1.0"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Minimal XHTML 1.0 Document</title> </head> <body> <jorma>This is a minimal <a
href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> document.</jorma> </body></html>
Validating with W3C Service
Invalid XHTML in Browser?
May work... or not. Browser tries to detect the errors and tries to understandthem. If it works with one browser, are you certain that it works with all otherbrowsers? And with all the versions with the browsers? What about browsersin handheld devices?
And it might work now, but what about future? How will Firefox 5.0 handleincorrect web pages?
May work... or not. Browser tries to detect the errors and tries to understandthem. If it works with one browser, are you certain that it works with all otherbrowsers? And with all the versions with the browsers? What about browsersin handheld devices?
And it might work now, but what about future? How will Firefox 5.0 handleincorrect web pages?
Invalid XML in General
Because of HTML heritage, browsers try to understand invalid XHTML-pages
This is not the case in other XML-languages. In general, if XML-document is invalid, the
processing of the document is cancelled.
JavaScript Object Notation(JSON)
JSON
JSON (JavaScript Object Notation) is a lightweight data-interchange format.
It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming
Language, Standard ECMA-262 3rd Edition - December 1999.
JSON is a text format that is completely language independent.
These properties make JSON an ideal data-interchange language.
Why JSON?
Because JSON is lightweight, easy to understand, manipulate and generate, it has almost replaced XML which was used previously as the only data-interchange format.
JSON is preferable because of the following reasons:– XML is heavier than JSON – to parse XML, we have to use xPath which is an overhead
removed in JSON because JSON is native to JavaScript – XML uses tags to describe user data and tags increase the
size of data
JSON Structures
JSON is built on two structures:– A collection of name/value pairs.
• In various languages, this is realized as an object, record, dictionary, hash table, keyed list, or associative array.
– An ordered list of values. • In most languages, this is realized as an array, vector,
list, or sequence.
Syntax of JSON
ObjectAn object is an unordered set of name/value pairs. An object begins with { (left brace) and ends with } (right
brace). Each name is followed by : (colon) and the name/value pairs
are separated by , (comma).
Syntax of JSON
Array– An array is an ordered collection of values. – An array begins with [ (left bracket) and ends with ] (right
bracket). Values are separated by , (comma).
Syntax of JSON
A value can be a string in double quotes, or a number, or true or false or null, or an object or an array. These structures can be nested.
A string is a collection of zero or more Unicode characters, wrapped in double quotes, using backslash escapes. A character is represented as a single character string. A string is very much like a C or Java string.
JSON Example
{ “students” :
[
{“id":1, "name":"Adnan Sohail"},
{“id":2, "name":"Irfan Razzaq"}
]
}
XML Example
<?xml version="1.0" ?><root>
<student><id>1</id><name>Adnan Sohail</name>
</student><student>
<id>2</id><name>Irfan Razzaq</name>
</student></root>
Validating JSON &JSON Security JavaScript’s built-in method eval() is used to validate
a JSON string. Note:
– Use eval() only when the source is authentic and trusted which means use it only if you are sure that the string passed to it is a valid JSON string
When you’ve security risks usevar myObject = myJSONtext.parseJSON();
Which is available in http://www.json.org/json.js
– but eval() is faster than parseJSON()
Using JSON APIs
JSON strings can be easily generated using JSON APIs available at http://json.org
There are two main classes available in org.json.* package– org.json.JSONObject– org.json.JSONArray
Strings can be generating from objects of JSONObject or JSONArray using their toString() methods
Benefits of JSON over XML
JSON supports data types like string, integer, boolean etc.
JSON is native data format for JavaScript and therefore it faster for the browser to read and understand.
As JSON contains no tags but data and therefore less data to be transferred between client and the server. So, it’s lighter than XML.
Easy for humans to read and write.
JSON References
http://www.xul.fr/en-xml-ajax.htmlhttp://www.xul.fr/ajax-javascript-json.htmlhttp://json.org/http://www.json.org/java/
WEB SERVICE DESCRIPTION LANGUAGE (WSDL)
Introduction WSDL is an XML language that contains
information about the interface semantics and ‘administrivia’ of a call to a Web Service
Once you develop a Web Service you publish its description and a link to it in a UDDI repository so that potential users can find it
When someone wants to use your service, they request the WSDL file in order to find out the location of the service, the function calls and how to access them
Then they use this information in your WSDL file to form a SOAP request to the computer
Definitions
Definitions:- WSDL is an XML-based language used to
define Web Services and describe how to
access them.
- WSLD is an XML format for describing
network services as a set of endpoints
operating on messages containing either
document-oriented or procedure-oriented
information.
Working of WSDL
Figure 1. A client invoking a Web service.
Working of WSDL contd.
Figure 2. WSDL terminology used for describing Web services.
Working of WSDL (with Java) contd.
Where does it fit in?
What is UDDI? Universal Description Discovery and Integration
Industry-wide initiative supporting web services
Specifications Schemas for service description Schemas for business (service implementers)
description Developed on industry standards (XML, HTTP, TCP/IP,
SOAP) Applies equally to XML and non-XML web services
Implementation Public web service registry and development
resources
Industry-Wide Project Support
All major technology providers Global corporations Strong resource and product commitment Roadmap for transition to standards body
Unprecedented collaboration XML and Web Services recognized as core standards Competition on services built on a common model Technology, platform, and development language
neutral
What Problems Do We Solve?An organization needs to create 400 electronic relationships with partners, each with its own standards and protocols
BroaderB2B
A small business wants to be “plugged in” to every marketplace in the world, but doesn’t know how
SmarterSearch
A B2B marketplace cannot get catalog data for relevant suppliers in its industry, along with connections to shippers, insurers, etc.
Easier Aggregation
Describe Services
Discover Services
IntegrateThemTogether
Provide a standards-based profile for all electronic services that are provided. Includes web sites, other electronic resources
Web ServiceVisibility
Publish for Accessibility
Foundation for Web Services
Ubiquitous Communications: Internet
Universal Data Format: XML
Service Interactions: SOAP
Formal Service Descriptions: WSDL
Broad Industry Support, Simple Process
Publish and Discover Services: UDDI
UDDI Registry Entries Standards Bodies,
Agencies, Programmers, Publishers register specifications for their Service Types
Service providers register precise information about themselves and their Web services
• Business name• General business description
– Any number of languages• Contact info
– Names, phone numbers, fax numbers, web sites, etc.
• Known identifiers– List of unique identifiers for a business
D-U-N-S, Thomas, domain name, stock ticker symbol, other
• Business categories– 3 base taxonomies in V1
• Industry: NAICS (Industry codes - US Govt.)• Product/Services: UNSPSC (ECCMA)• Location: Geographical taxonomy (ISO 3166)• …easy extension in upcoming releases
• New set of information businesses use to describe how to “do e-commerce” with them– Nested model
• Business process (functional)• Service specifications (technical)• Binding information (implementation)
– Programming/platform/implementation agnostic
– Services can also be categorized
How UDDI Works
UDDI Registry
3. UDDI Registry assigns a programmatically unique identifier to each service and registration
Marketplaces, search engines, and business applications query the registry to discover services at other companies and to facilitate integration
4.
Service Types
1.
ImplementationsImplementers populate the registry withdescriptions of their businesses and the services they expose
2.
Large businesses apply the same architecture and technologies internally
5.
Software companies, standards bodies, and developers populate the registry with descriptions (specifications) of types of services
Public Registry Operation
IBM
HP (planned)
Microsoftother
other
• Peer registry nodes (websites)• Information registered
with any node• Registrations replicated
on a daily basis• Complete set of
“registered” recordsavailable at all nodes
• Common set ofSOAP APIs supportedby all nodes
• Compliance enforced by business contract
• All technologies applied
–Interoperability verified constantly
UDDI.org
queries
Applications
Marketplaces
End Users
Developers
UDDI and SOAP
User UDDI
SOAP Request
UDDISOAP Response
UDDI RegistryNode
HTTPServer
SOAPProcessor
UDDIRegistry Service
B2B DirectoryCreate, View, Update, and Deleteregistrations Implementation-
neutral
GROUP DISCUSSION
84
WHAT
TO DO?