Showing posts with label task9. Show all posts
Showing posts with label task9. Show all posts

Friday, 16 December 2011

Is AJAX both a success and a failure?


Since it's emergence as a mainstream technology, AJAX has proven it's usefulness. AJAX technologies are now employed by companies such as Microsoft and Google, and are used by millions of web pages. 

AJAX does, however have drawbacks which take away from it's shine. One of the main concerns with AJAX technologies is with it's impact on usability - certain screen readers and other accessibility devices might not respond well to dynamically updated web pages. 

Important issues emerge when a fast internet connection is not available. This can lead to websites being very difficult to use, because AJAX is often used for functionality which requires responsiveness - such as responding to the keys the user types in a search box, by updating a list of matching items. On a slow internet connection, this might lead to serious usability issues. 

Another problem can arise due to the fact that AJAX relies on JavaScript. But many users don't like JavaScript, and all modern browsers provide some mechanism of preventing JavaScript code from executing. If the user has JavaScript disabled, the website will not be dynamically updated. Although improbable, it is also possible that some users visit the web page with browsers which do not support JavaScript - in which case, again, dynamic content will not be updated. 

On the server side, employing AJAX technologies can lead to very high number of requests to serve, which might be difficult to cope for the servers. But companies usually take this into account, and purchase hardware which can cope with the increased load; this is rarely an issue.

Wednesday, 14 December 2011

XML Security


XML is becoming increasingly common, and therefore security issues are also having an increased importance. Given that XML is frequently used in e-commerce, businesses need ways to ensure that stored data is secure, and prevent unauthorized access. This is especially important due to the textual nature of XML - a simple text editor can be used to view the contents and extract sensitive data.

A number of security-related technologies have emerged, one of the most important ones being XACML - the eXtensible Access Control Markup Language. XACML allows for controlling access to information via rules and policies. Other significant initiatives are XML signature and XML encryption. 

The concept of digital signatures is not new, and mature standards have been in place for quite some time. But existing technologies only allow signing individual files. Given the hierarchical nature of XML, more granularity is highly desirable - in other words, the ability to sign portions of an XML document. This is the role fulfilled by XML signature. The high-level algorithm is quite simple - the element to be signed is hashed, the hash being stored inside a DigestValue element. Another digest ( usually a hash ) is produced from this element and is cryptographically signed. The XML signature is then inserted in the signature element. 

XML encryption operates on similar principles to XML signatures - it allows the encryption of XML documents with a high granularity, enabling the encryption of portions of a document. An additional advantage is that different encryption keys and algorithms can be used for each encrypted portion, allowing precise control over who can use which portions of the document. 

XML encryption is especially important in a business environment. For example, a delivery company might define an XML document type which contains one element which contains information about the client, and billing information, and one element containing information about the contents of the delivered package. The driver will have the key for viewing the client information, while the client might be sent via email the key for him to be able to view information about the content and check if anything is missing.

Is the semantic web a failure ?


Although counter-intuitive at first sight, the concept of a failed semantic web takes shape at a closer examination. But first, a definition of the semantic web is in order; as it is accepted now, the semantic web is the next evolutionary step from 'Web 1.0', in which web pages generally lack semantic meaning and web pages are written in HTML which mixes presentation with content.

The advent of technologies such as XML and the XML version of HTML, XHTML were promising, since the line between content and presentation was clearly drawn. However, the fact that the semantic web was possible and desirable did not necessarily translate into it becoming a reality - there were still billions of web pages written in older versions of HTML, which prevented browsers from adopting a tougher stance towards badly written HTML code. 

This pressure to assure backwards compatibility resulted in the continuing proliferation of web pages which do not respect the tenets of the semantic web, since there is little pressure to do so - the browsers are still forgiving. Even with pages which have the XHTML DTD, browsers will be less strict since many of them are not well-formed XML documents. 

In conclusion, the semantic web remains an idea, a concept, rather than an accomplished fact. The realities of the web make it nearly impossible to achieve in practice, but nevertheless a useful concept which encourages best practices.

XUL - what it is, and how is it used.


XUL - XML User Interface Language, pronounced "Zool" is a framework employed by Mozilla in it's applications, such as the Firefox web browser. It is based on XML while also making use of CSS and HTML features. 

XUL is used in the context of Mozilla applications, which consist of components like buttons, labels and text boxes - "widgets". The rendering and handling of user actions within the widget are under the control of the widget itself, while the layout of the widgets and their interactions is specified in the XUL document. 

XUL makes use of numerous other technologies, such as JavaScript - which can be used to program individual widgets, XBL - the eXtensible Bindings Language - used to define "bindings" for widgets, which also allows for event handlers, and adding new interface elements and properties. 

Another technology which can be employed in the context of XUL is XPConnect and XPCOM. XPCOM ( Cross Platform Component Object Model ) is a framework for writing cross-platform, modular software components in native languages, such as C or C++. XPCOM components can be used form within C, C++, JavaScript, Python, Java and Perl. XPConnect enables such XPCOM objects to be accessed from JavaScript. 

It is similar, in some aspects, to XIML since it also aims to provide a way of describing user interfaces, and is based on XML. But there are many differences, one of the most significant ones being that XIML has a broader scope, aiming for a generalization and standardization of UI elements and interactions, while XUL has a more practical perspective, providing a working solution at the expense of standardization, and having a narrower scope.

XIML - what is it, and how it is used.

XIML ( eXtensible Interface Markup Language ) is an XML-based markup language which aims to provide a standard way of representing interaction data - data pertaining to the user interface. XIML allows for the representation and manipulation of such data, which defines and relates all the relevant elements of a user interface. 

XIML aims to provide comprehensive lifecycle support - in other words, the same XIML file could be used during the design of the user interface, as well as at runtime and during the evaluation phases. Tools used for GUI ( Graphical User Interface ) design could output XIML files, which will be used by the application at runtime. The same XIML files could then be used for usability engineering.

Designing a language such as XIML is also complicated by the fact that it needs to be able to represent both abstract, and concrete elements of a user interface. One of the abstract elements consists of the context in which the respective interaction takes place, and the particular task that is accomplished. Concrete elements are much easier to envision, consisting of the various controls or widgets which are to be displayed by the application. 

XIML allows for the definition of relations between the various elements which can be represented. For example, XIML could be used to state that "Type A objects will be displayed with element E", where E is a presentational element, while A is a domain-component.