Consuming Web Services: A Yahoo! Newsfeed Reader

1. INTRODUCTION A fundamental tenet for information architecture is to maintain data consistency. In its simplest connotation, data consistency is about having one version of reality. It is not a fad to want inventory counts or customer information to be a reflection of reality no matter which application accesses (or updates) them. Therefore, enterprise wide data integration (and data consistency) will remain a foundation for building an organization's information architecture. Unfortunately, enterprise data integration remains a challenge for a variety of reasons. First, for most organizations, an unplanned approach to acquiring information systems has led to unintegrated legacy applications and multiple databases with duplicated data and associated inconsistencies. Second, you cannot integrate overnight. Therefore, interim solutions such as data warehousing must be employed to overcome lack of access to integrated data. Third, there is no total solution. Even ERP systems that can, indeed, replace a majority of legacy applications and bring about not only enterprise data integration, but also process integration, must co-exist with other applications today and in the future. Fourth, even if you start with an integrated system, data integration will not be automatic as you acquire new applications. It has become evident that the ideal of enterprise data integration can only be realized if there is an infrastructure for Enterprise Application Integration (EAI). As such, a variety of middleware software have been developed to provide the necessary bridging of applications that is required in order to maintain the goal of one of version of reality no matter which application accesses or updates data. A fundamental requirement for EAI is that each application can deliver the needed data to a requesting application from (its) database. And, with the recognition that the requesting application (the consumer) and the providing application (the producer) may not share the same memory space and in fact be separated by the Internet, XML has come to represent the de facto standard format for transfer of needed data. Software systems that are designed to support such transfer of data to requesting applications have come to be known as Web Services. Service Oriented Architecture (SOA) is, in part, a software design principle advocating engineering an application as a suite of Web Services (Newcomer and Lomow, 2004). It provides the necessary framework for building applications that can be integrated and can reduce the cost of EAI significantly. Organizations are cataloging Web Services of their exiting application portfolio and are beginning to "mashup" applications in a fraction of the time that it used to take to create a new business application from scratch, while maintaining the data integration ideal. As such, information systems (IS) graduates must enter the job market with a firm understanding of Web Services and SOA. This paper presents an ideal opportunity to expose IS students to Web Services as soon as they are introduced to the basics of HTML and programming. The Really Simple Syndication (RSS) newsfeed is used as the vehicle to teach students how to develop a client-side application to consume a Web Service. The next section describes in detail the pedagogical application in VBScript which is supported by Microsoft's Internet Explorer. Appendix A gives a JavaScript implementation while Appendix B presents the application in classic Active Server Pages (ASP) for server-side execution. 2. BUILDING A NEWSFEED READER IN VBSCRIPT The Really Simple Syndication (RSS) is a format for publishing frequently updated content such as news headlines. An RSS document, which is called a newsfeed, is standardized XML data which can be retrieved from a newsfeed provider and processed by software. In this section, we develop a newsfeed reader in VBScript. Yahoo!'s sports newsfeed is used as the sample source in Figure 1 which depicts the application as viewed in Internet Explorer. …