Web services have been a recognized
(but l ti l i )
(b t relatively minor)
part of web development
since the standardization of web service
standards in the late 1990s
the adoption of simpler
REST based
REST-based web services
has dramatically increased
the possible interoperability
of web applications.
a large number
of real-world web sites
f l ld b it
now routinely integrate
ow ou e y eg a e
(or mashup)
data from external sources
using these services.
g
In the first few years of this decade,
there was a great deal of
h d l f
enthusiasm for
service-oriented computing (SOC)
and
web services.
“SOC will create a nirvana,
in which discrete channels “SOC is the next evolutionary
of business logic become step in software”
reusable, interchangeable
parts that can be strung
together into business
processes with almost no
development cost”
Traditional Application
pp
Functional Functional Functional
Capability Capability Capability
versus
SOC Application
Functional Capability
network Functional Capability
Functional Capability
Web services are
simply one approach
for
one software application
to
connect and communicate
with
another software application
Web services provide a
mechanism for
publishing and consuming services
that makes use of the
HTTP protocol along with XML
In the first iteration
of web services fever,
the attention was on a
series of related XML
vocabularies:
WSDL
SOAP
the WS-protocol stack
While SOAP and WSDL are
complex XML schemas,
l h
this now relatively mature standard
is ll
i well-supported in both
t d i b th
.NET and Java environments.
Yet, despite the superb tool support
in these two en ironments
environments,
by the middle years of the 2000s,
the enthusiasm for web services had certainly cooled
cooled.
It had become an important technique
for some development niches
niches,
but hardly the seismic shift
predicted at the close of the 1990s
1990s.
But by decade s end
decade’s
the enthusiasm for web
services was back,
thanks to the
h k h
significantly simpler
REST-based web
service standard.
REST services are
i
significantly easier to
consume in Javascript
than SOAP.
However, manual XML parsing and
processing is required in order to
deserialize a REST response back
into a usable object.
In our IT degree web
development has a key place
place,
with
two required
and
one optional course.
Consumption of REST services was a
key
k part of the 2009 iteration of
t f th it ti f
our sixth-semester Web 2 course,
which on the technology side mainly
hi h th t h l id i l
focused on ASP.NET development.
1st assignment
The students were given a SQL Server
Express music d t b
E i database that was created by the
author by transforming open-source XML-based data from
the MusicMoz web site.
1st assignment
The students had to create seven
ASP.NET reports/pages of
progressively higher complexity.
2nd assignment
The students had to expand their first
assignment by creating a “real” music
real
portal site that used the same
database data but mashed in content
from three to six different REST
services.
2nd assignment
Some of the REST services used by
the students included:
pictures of the artist from flickr
additional artist info from yahoo, mtv, and lastfm
similar artists f
i il ti t from yahoo, mtv, l tf
h t lastfm
videos by the artist from yahoo, youtube, and mtv
upcoming concerts from yahoo, upcoming.org, and 5gig
track lyrics from freebase, lyricsfly, and lyricswiki
2nd assignment
Other possibilities suggested to the
students included:
play and purchase track from iLike, rhapsody, or
p p
peoplesmusicstore
purchasing album from Amazon
reviews of album from Amazon or yelp
books about this artist from Amazon
upcoming concerts f
i from B d i
Bandsintown, gruvr, livenation,
li i
or jambase
3rd assignment
Added security, user roles, and a
session based
session-based favorites list to their
second assignment solution.
“creating a mashup i a manual manner is a
“ i h in l i
very time-consuming task”
… a perception the
students in this course
would no doubt warmly
agreed with.
That is, where do you find a
service to do job X or
provide data Y?
Students had to use open-ended web
searching or third-party website API
directories (such as programmableweb.com)
programmableweb com)
to find an API with the appropriate data
“Compared to data, services
can present a broader form of
heterogeneity.”
Every single REST service has a totally different
XML schema that has to be parsed and reconciled.
This meant that the students had to work with some
four to six d ff
f different XML schemas
M h
It forced the students to deal with a real
design issue: namely, how to effectively reduce
code duplication in the face of processing
many similar, but different, data sets.
A “key difficulty in creating
mashups is data mediation
between the services to be
mashed up ”
up.
That is, it can be quite challenging to harmonize
the data between different services.
As a consequence of data heterogeneity, the
students were forced to programmatically
mediate between th services.
di t b t the i
Precisely because of these three
issues – this type of development
experience is crucial for the
experience of IT undergraduates.
In the IT2008 Curriculum Guidelines,
describes the five key activities
of the profession as the
“selection, creation, application,
selection,
integration, and administration of
computing technologies.”
p g g
The “ability
Th “ bili to effectively i
ff i l integrate
IT-based solutions into the user
environment” is listed as a key
outcome for IT education.
As such, “the integration of
, g
different technologies and the
integration of technologies into
organizations are fundamental to
Information Technology.”
Integrating heterogeneous
RESTful web services
into web applications
provide an excellent way
to practically integrate “integration”
into the IT curriculum
Randy Connolly
Dept. Computer Science & Information Systems
Mount Royal University, Calgary, Canada
rconnolly@mtroyal.ca
@