XML is a standard defined for
writing data generating by an application such that it is both machine readable
and human readable.
Before the advent of XML data was
saved in binary formats which were highly format and programming language
dependent. One example is Java serialization: which must be read by Java,
reading & writing the data from a different language is cumbersome at best.
It also poses problems when schema of the data changes its form. Binary data
cannot also be easily edited without a hex editor and appears as a stream of
strange looking ASCII characters in most editors.
XML overcomes these problems by
defining a standard for exchanging data. The specification highlights:
1. Data must be represented using
tags eg. <author> </author>
2. additional attributes may be
represented as : <author name=”john”></author>
3. Every tag must have a
corresponding closing tag.
XML Based applications:
Today XML is being used to store a
very wide variety of data expect for where binary formats are more efficient
eg. SVG : it is a image storage
format in which we use the mathematical equations and the parameters of those
equations to store the drawing rather than the pixels, this allows us to zoom
in the image at any level we want.
ODF, ODS, ODP: Open Documents format
supported by open office are based on XML which do not allows vendor locking
and any software can read them.
Web services: Popular services like Google
maps, Google finance, Google docs all have XML based web service using which
mash up application can be developed which utilize this XML and present it in a
different format as required by the application.
Configuration files: Most complex
software store their configuration and state in XML files which can later be
read from and written to easily. The main advantage here is that users can also
easily edit these files with a simple text editor. Read about Programming in Java.
Advantages:
1.
Standards based data interchange format allows any compliant software to use
the file.
2.
Standard based tools can be developed which allow easy modification of XML
3. Both
machine and human readable.
4. Data
schema modification is very easy.
Disadvantages:
1. They
are usually much less efficient in storage space than binary files.
2. They
require a lot of CPU power to parse and write when the data to be serialized
and de serialized is large.
Rich Interface Application tools
(Ajax, JQuery, HTML5..)
Traditionally interface design was
done in programming languages like Java, C++ etc. which were not really meant
for user interface design and UI design was difficult in such languages.
Hence for the web they chose a
markup language which was easy to write, understand and edit. Since it was
designed for the purpose of page layout it was easy to understand by most
people and hence the Internet grew to the size it is today.
But for a long time the pages
designed using HTML were static and the internet was a large number of web
pages linked to each other by links called hyperlinks. Some interactivity was
possible using animated images but that was just about it. To address this
problem scripting languages were introduced which would download and run on the
client side and could modify the HTML elements on the fly. A further evolution
brought a technology which allowed the script to fetch content from the server
and dynamically change the appearance of the web page without refreshing the
content. Very prominent examples which really allowed everybody to realize the
potential of this new technology called ajax were: the Gmail interface and Google
maps.
The next generation of evolution is
HTML5. In the earlier generation Java script allows modification of the page
but the language was fraught with cross browser issues. HTML5 is designed to
address the cross browsers issue by inviting stake holders and then agreeing
upon a common standard which all browsers will implement. HTML5 add a lot of
features which will further make the Internet experience very fluid and
interactive. Read about Website Designing and Testing Assignment.
Some major enhancements:
1. Provision for a standard video
tag, videos can now be inserted without the need for flash, silverlight or any
other third party plug in. eg. <video src=”file.ogg”/>
2. Allows for client side database
stores which can allows for querying using standard SQL, a big improvement over
cookies.
3. New tag enhancements, for eg to
add captions to image tags in a semantic way, we can now use the figure tag :
<figure><img/> <caption>some
caption</caption</figure>
4. Plans for 3D graphics and sound
directly into HTML code.
Advantages:
1. Standards based: Since it an open
standard made by a board comprising of major stakeholder of this technology, it
ensures that there is no vendor lock in and that there is consistent
implementation of the standard across all browser so that developers can
confidently release their applications.
2. Portable: Since all browsers must
conform to the standard, the application written for HTML5 will be portable
3. Easy : RIA technologies like
JQuery are much easier to implement than traditional statically typed languages
allowing for easy deployment
4. Fluid UI experience: the user get
the feeling of using a desktop application since the page is never refreshed
and all the data is fetched dynamically from the server.
Disadvantages:
1. Since the technology is still in
the transition stages all browsers do not support the entire feature set.
2. The UI experience depends on the
bandwidth : there may be a considerable delay between the user action and
results to appear due to latency.
3. Require a constant Internet
connection : These technology must have a Internet connection to operate,
offline support is still in infancy.
Open Source software:
Open source was a phenomenon started
by a group of hacker at MIT, Artificial Intelligence labs when they were forced
to use and write software under restrictive licenses with Richard Stallman as
their clear leader. It was he who started the movement by forming an
organization called FSF(free software foundation) which started by writing a
free Unix clone, which is today known as GNU/Linux. Slowly the idea of Linux
spread across the globe primarily through the advent of the Internet which
allows thousands of developer to collaborate together:
Open Source, today in the business
sense of the word stands for software which has its source open for modification
by anybody and the organization earn profit by providing services for the
software
Key Ideas:
OSS grants users right by providing
them with a license. Commercial closed source vendors provide a license in the
form of EULA, or the end user license agreement which the user has to buy. The
EULA basically states that any modification, or sharing of software after
modification is illegal and the software is the sole proprietorship of the
company which developed it. The license given to an end user is non transferable.
An open source license however
states that:
1. The user has the freedom to use
the software in any way he chooses.
2. The user has the right to modify
the source code of the software and analyse it for any purpose.
3. The user has the right to distribute
the software with any modifications he has made.
Many OSS licenses require that the
end user must release the software again under the same OSS license so that the
software can continue to be free.
Examples of Open Source Licences: GNU GPL, BSD License, Apache
Public License, MIT License.
Revenue Model: Since open source software
give away their source code for free and is open for modification it definitely
has to follow a different business model than selling software as intellectual
property. Most companies which are in this business use the service model to
generate revenue. They provide customized software solutions to enterprise and
make modifications to the software for fees. They also provide technical
support services, the prominent examples of this model are businesses like :
Canonical , which makes Ubuntu and Redhat Inc, which makes the Redhat
Enterprise server series.
Advantages:
1. OSS provides clear advantages as
being cost effective, since the source is available for anybody to download
there is no need to pay to any vendor for the software.
2. Availability of the source code
allows easy modification of software for specific needs.
3. It creates a truly competitive
market since companies can now compete on the better services rather than on
the basis of monopoly.
4. No vendor lock in : e.g if you
use .NET to develop your application your entire development tool chain must be
from Microsoft and you cannot move to a different vendor if you do not like
their serivces. This problem does not exist in open source.
5. Collective skills of thousands of
programs can be used to allows rapid modification of the source code.
Disadvantages:
1. Since there is nobody who ‘owns’
the software in the business sense some times due to lack of money backing the
project there may be issues like less market acceptance. For some projects it
also means a loss of clear direction in which the project is going.
The technology should be evaluated
on the contention that it:
1. Saves cost due to code availability
2. Allows for easy modification
3. disallows vendor locking
Programming Assignment Help provides plagiarism free assignments i.e. all our solutions are genuine and written by best technical assignment writers who have years of experience.