Monday, June 22, 2009

APPLICATION PROGRAMMING INTERFACE

An application programming interface (API) is a set of routines, data structures, object classes and/or protocols provided by libraries and/or operating system services in order to support the building of applications.[1]
An API may be :
Language-dependent; that is, available only in a particular programming language, using the particular syntax and elements of the programming language to make the Application Programming Interface convenient to use in this particular context.
Language-independent; that is, written in a way that means it can be called from several programming languages (typically an assembly or C interface). This is a desired feature for a service-style API that is not bound to a particular process or system and is available as a remote procedure call.
The API itself is largely abstract in that it specifies an interface and controls the behavior of the objects specified in that interface. The software that provides the functionality described by an API is said to be an implementation of the API. An API is typically defined in terms of the programming language used to build an application. The related term, ABI (Application Binary Interface), is a lower level definition concerning details at the Assembly language level. For example, the Linux Standard Base is an ABI, while POSIX is an API.[2]
The API acronym may sometimes be used as a reference not only to the full interface but also to a single function or even a set of multiple APIs provided by an organization. Thus the scope is usually determined by the person or document that communicates the information.

Saturday, June 20, 2009

CLIENT SERVER SYSTEMS

A computing system that is composed of two logical parts: a server, which provides services, and a client, which requests them. The two parts can run on separate machines on a network, allowing users to access powerful server resources from their personal computers. Client-server systems are not limited to traditional computers.
An example is an automated teller machine (ATM) network. Customers typically use ATMs as clients to interface to a server that manages all of the accounts for a bank. This server may in turn work with servers of other banks (such as when withdrawing money at a bank at which the user does not have an account). The ATMs provide a user interface and the servers provide services, such as checking on account balances and transferring money between accounts.
Client-server computing or networking is a distributed application architecture that partitions tasks or work loads between service providers (servers) and service requesters, called clients. Often clients and servers operate over a computer network on separate hardware. A server is a high-performance host that is a registering unit and shares its resources with clients. A client does not share any of its resources, but requests a server's content or service function. Clients therefore initiate communication sessions with servers which await (listen to) incoming requests.

XML TECHNOLOGIES

XML Related Technologies
Below is a list of XML technologies.
XHTML (Extensible HTML) A stricter and cleaner XML based version of HTML.
XML DOM (XML Document Object Model)A standard document model for accessing and manipulating XML.
XSL (Extensible Style Sheet Language) XSL consists of three parts:
XSLT (XSL Transform) - transforms XML into other formats, like HTML
XSL-FO (XSL Formatting Objects)- for formatting XML to screen, paper, etc
XPath - a language for navigating XML documents
XQuery (XML Query Language)An XML based language for querying XML data.
DTD (Document Type Definition)A standard for defining the legal elements in an XML document.
XSD (XML Schema)An XML-based alternative to DTD.
XLink (XML Linking Language)A language for creating hyperlinks in XML documents.
XPointer (XML Pointer Language)Allows the XLink hyperlinks to point to more specific parts in the XML document.
XForms (XML Forms) Uses XML to define form data.
SOAP (Simple Object Access Protocol)An XML-based protocol to let applications exchange information over HTTP.
WSDL (Web Services Description Language)An XML-based language for describing web services.
RDF (Resource Description Framework)An XML-based language for describing web resources.
RSS (Really Simple Syndication)A format for syndicating news and the content of news-like sites.
WAP (Wireless Application Protocol)A XML based language for displaying content on wireless clients, like mobile phones.
SMIL (Synchronized Multimedia Integration Language)A language for describing audiovisual presentations.
SVG (Scalable Vector Graphics) Defines graphics in XML format.

Friday, June 19, 2009

How is SOAP Used?

There are many possible applications for SOAP, here are just a couple:
Business to Business integration - SOAP allows businesses to develop their applications, and then make those applications available to other companies
Distributed applications - programs like databases could be stored on one server and accessed and managed by clients across the Internet

SIMPLE OBJECT ACCESS PROTOCOL-SOAP

A group of vendors from Microsoft, IBM, Lotus and others, created an XML-based protocol that lets you activate applications or objects within an application across the Internet. In a nutshell, SOAP codifies the practice of using XML and HTTP to invoke methods across networks and computer platforms.

Avoid XML Attributes

Some of the problems with using attributes are:
attributes cannot contain multiple values (elements can)
attributes cannot contain tree structures (elements can)
attributes are not easily expandable (for future changes)
Attributes are difficult to read and maintain. Use elements for data.

Use attributes for information that is not relevant to the data.

The Difference Between XML and HTML

XML is not a replacement for HTML.
XML and HTML were designed with different goals:
XML was designed to transport and store data, with focus on what data is.
HTML was designed to display data, with focus on how data looks.
HTML is about displaying information, while XML is about carrying information.