The “X” Factor: The Next Generation of Enterprise Infrastructure
- By Prakash Iyer
Extensible Markup Language (XML) has gained significant attention in the past few years because of the promise of integration between numerous, disparate applications by providing a standard for specifying and presenting data across application boundaries. XML is now being deployed by many businesses with the intention that a single XML infrastructure can be used for interaction between customers, partners and employees through various business applications.
XML is also being used to solve the problem of extending application and corporate data access to non-PC devices, such as PDAs and Internet-enabled phones. The presentation of information to these devices is accomplished through XSL (Extensible Stylesheet Language) style sheets for each device. This is similar to using XSL style sheets for the presentation of information to a browser. While an XML and XSL infrastructure lends support to solving some of the presentation problems in creating mobile applications, it does not address mobile-specific logic, such as integrated alerts, location-based services and session management. Many businesses that have attempted to deploy wireless applications using only XML and XSL have had to implement additional applications to compensate for this lack of mobile logic.
To take full advantage of an XML infrastructure, businesses need to deploy what is now being commonly termed a mobile application platform. The key is for the mobile application platform to integrate the mobile logic, such as session management, location-based services, etc., that is needed to make XML functional in the mobile environment and, ultimately, enable businesses to write once, deploy anywhere.
The Origin and Evolution of XML
XML has gained much attention in the past few years because of its increased use to solve many issues surrounding interoperability and manageability of enterprise applications. To understand the use of XML and why its use is growing from application integration to relational databases, it is important to look at the origin and the evolution of XML.
XML was created so that richly structured documents could be used over the Web. Based on its parent language SGML, Standard Generalized Markup Language, which has its roots in document publishing, XML is used for encoding complex structured documents. In 1996, SGML experts collaborated with the World Wide Web Consortium (W3C) to form a SGML working group that developed a markup language to represent structured documents in a format that could be routed over the Web. XML was born. HTML, the current Web programming language, was found to be too restrictive for this purpose, as it is based on a fixed set of tags. HTML is also derived from SGML, thus making HTML and XML closely related.
The most significant difference between HTML and XML is that in XML you can define new tags and the meaning of those tags as tag elements in a declarative representation. This technique of defining data was found to be very useful in exchanging data between different applications. While HTML encompasses the data and its formatting rules for viewing on a browser, XML documents do not contain any formatting rules. The XSL style sheet is a specification for applying formatting rules to XML documents in a standard way. An XML processor uses the XML document and applies the formatting rules from an associated XSL style sheet to view it on a browser. This allows the same XML data to be presented in multiple ways using separate style sheets.
There are numerous benefits of XML, including interoperability between CRM applications, supply chain management, financial and other business applications, as well as other data sources, such as disparate databases, directories, etc. XML will make a fundamental impact on application integration, content management, publishing, data interchange and the whole concept of corporate portals and workgroup computing. XML will be able to take in documents, multimedia, text, images, business rules, objects and many other forms of data.
XML is now being increasingly used to solve the problem of exchanging data between applications and vendors who use different terminologies for representing the same business data. Many verticals have created XML specifications for the representation of domain-specific data, such as OFX standard in financial applications. Another advantage is that XML elements map readily into relational or hierarchical databases and vice versa. The XML documents can be stored easily in databases, making data exchanges between applications easy to route and process.
XML and the Mobile Device
Many industry pundits believe mobile computing to be the next big wave in the evolution of the Internet. Application integration and content aggregation become even more complex in the mobile world. Using style sheets, XML is advertised to work across any mobile device so that enterprises do not have to create new versions of their applications every time a new mobile device hits the market.
While this use of XML and style sheets with mobile devices is a great theoretical solution, it has proven to be an incomplete solution with actual implementations. Presenting data on a mobile device poses many more challenges than just formatting the data to fit on a small screen. XSL style sheets were originally designed for the flexible presentation of documents to a browser, not to a device.
The reason is that style sheets only delineate the formatting and presentation of information sent to the device. The style sheet engine does not know the state of delivery of data to devices. Since the style sheet engine cannot maintain the state of delivery of data to devices, a different mechanism is needed to maintain the session between the XML and the device.
Mobile applications need handle multiple devices, networks and protocols, and intelligently split the data at run time into varying chunks depending upon the packet size supported by the device and the network. These are just a few of the challenges in delivering data to the multitude of devices with varying capabilities that are flooding the market.
Additionally, mobile logic not required on a desktop browser needs to be integrated to create a complete mobile application. Mobile logic includes, but is not limited to, technology and services, such as location-based services, actionable alerts, session management, server-side features and navigational help:
Location-Based Services. Location-based services provide the location of the device (and the corresponding user) back to the mobile application so that the application can provide information that is relevant to the user’s location. Location-based services are still somewhat nascent and they are really only available in limited networks and devices. Palm.net provides some help to the application developers by giving information, such as Zip code. This can be used to present location specific information to a mobile user.
Cellular carriers will soon be able to provide the location of cellular phone users. The location will be determined either through a GPS transceiver in the phone or through triangulation from the signal strength of each antenna that is tracking the cellular phone. A mobile application environment has to build features that translate the raw GPS information into more meaningful data to create mobile logic. The mobile application platform can handle this in a generic manner by hiding the complexities of having to deal with the raw location information and providing application level support in the design environment.
Actionable Alerts. The mobile application has to have the ability to provide an alert to the user that some type of trigger has occurred. This trigger could be a new lead in a sales force automation application, a stock that has hit a certain price, inventory in a supply chain management program that has fallen below a certain level or a flight cancellation. Once the alert is delivered to the user, there has to be a way for the user to act on the alert. For example, the user could decide to execute a trade on the stock or select a new flight. Alerts might also be combined with location-based services and permission-based wireless advertising to form a mobile solution that notifies a user that a particular item is on sale at a store near him or her.
Session Management. Style sheets do a good job of formatting the information to the form factor of each device, but cannot handle the session management in the mobile application. This means that there is no intelligence to know the state between the mobile device user and the mobile application. Each type of device may have different timeouts and gateway specific features that need to be handled. In other words, each connected session needs to be maintained and handled to support device access using different networks and protocols.
The presentation session must account for differences in device types, and present similar information to them while adhering to the processing power, storage and input challenges posed by each device. A mobile application platform serves as the glue between the device session and the application session. Managing the device state and maintaining the connection status of the mobile application user is one of the most important functions of the mobile application platform.
Server-Side Features. Server-side features, such as java script, frames and cookies, cannot be supported by a thin client device, such as a WAP-enabled phone. These are particularly important issues if the data being presented originates from an existing HTML source. Servers also have to be able to manage and split the data into appropriate "chunks," based on device and network capabilities. This requires detecting the device type at run time and implementing a mechanism to send the right amount of data.
Navigational Help. Many of the existing wireless devices pose a serious challenge for an end user to easily navigate through an application. While new devices may solve some of these problems, users of existing devices need to be relieved of the pain of having to go through several clicks and network round-trips just to complete a simple task within a mobile application. Mobile application platforms provide a framework to create and execute predefined navigational paths and also integrate alerts to create compelling mobile applications that can have an addictive effect on end users.
These are just a few of the challenges encountered in building mobile applications that are beyond the scope of XML. Additionally, regardless of whether you use XML or not, using mobile-specific logic is a must when extending any application for interaction with mobile devices. Contrary to popular belief, this is a not a trivial problem that can be solved simply by using XML and XSL, and a platform and framework are needed to manage this.
Many mobile application platforms use some form of XML templates to define the rules for retrieving data from a backend data source (such as applications or relational databases) and delivering it to the devices in an appropriate format. These servers process XML documents while managing the device sessions thereby providing a single infrastructure from which to run applications that can be accessed by multiple devices.
The emergence of the mobile application platform stems from the need to handle these and other mobile environment issues more efficiently, and isolate them so companies can focus on solving their business issues. Changing standards and emerging devices make it difficult for enterprises to justify a costly attempt to build such a platform in-house. Many businesses have attempted to do so, only to look for an outside solution months later.
Consequently, merely converting data into an XML format and using style sheets is not a universal solution to all integration and presentation problems. But, the use of XML and style sheets or a similar approach can definitely be part of an overall middleware implementation.
Mobile applications hold great promise because of the anytime, anywhere flexibility and quick access to information they provide. Enterprises need to think through how they can take advantage of this potentially huge opportunity by leveraging their existing infrastructures and optimizing them for the mobile environment. The combination of XML plus a mobile application platform will help businesses implement a write once, deploy anywhere infrastructure that enables mobile applications to be insulated from the ever-changing mobile environment.
XML will continue to grow in usage in the coming years as an important technology in the enterprise application market. Because of the overwhelming benefits to business, XML is likely to become the standard way of exchanging data between applications. Businesses who have actually implemented XML infrastructures begin to reap the rewards of this infrastructure almost immediately. Also, many enterprise application vendors are now providing XML interfaces.
Industry pundits have agreed that since the combination of XML and XSL works well in presenting information to a desktop, this combination would also work well in presenting information to mobile devices. While this has proven to be somewhat accurate, interaction via mobile devices has turned out to be much more than just the presentation of the information. The concept of mobile logic to provide an experience that is unique to the mobile environment calls for a platform approach.
Using XML as a way to define both presentation and mobile logic is increasingly becoming a standard practice among mobile application platform vendors. Using XML and XSL is specific to defining the presentation aspects, while the XML template approach addresses all aspects. In the end, enterprises need to focus on the real issues when evaluating components for building a solution and resist the urge to build a solution based on the next hype in programming languages or data formats. Identify the issues and customer needs first, and then determine what is the best approach to solve the problem.
Prakash Iyer is Chief Technical Officer at Everypath Inc. (San Jose, Calif.).