IBM Cloudant at the Tony Awards

By: David Provan

IBM Cloudant at the Tony Awards

This article was written by Gary Reiss, Certified Senior Managing Consultant with IBM iX Events.

IBM has been a proud partner of the American Theatre Wing’s Tony Awards® since 2000. IBM proudly designs, builds and hosts the official website of the Tony Awards®, at TonyAwards.com in partnership with Tony Award Productions. The Tony Awards® are named for Antoinette Perry, a former leader of the American Theatre Wing. The Tony Award statuette and medallion is a highly coveted award in the professional entertainment scene. The Tony Awards® debuted on April 6, 1947, at a dinner in the Grand Ballroom of New York City’s Waldorf Astoria hotel to celebrate theatre excellence. The annual Tony Awards® ceremony and entertainment program is a greatly anticipated highlight of the New York gala theatre season. The awards evening is normally hosted at New York City’s Radio City Music Hall and is broadcast live nationally and internationally by CBS every June.

Problem description

One of the features of TonyAwards.com is a searchable past Tony nominees and winners web application. Prior to the current Tony season, the past winners app was a legacy CGI application that parsed a text delimited file to store the nominee and award data. This solution was based on a legacy software stack, was not a data store that supported true query criteria, error-prone, hard to maintain and replicate and was not positioned to easily support modern web and mobile applications or future enhancements.

For the current season, it was proposed that the Tony past winner search would utilize a multi-region nonSQL data store of nominees and winners provisioned in the IBM Cloud.

Below is a screenshot of the Tony Awards Past Winners search page:

Tony Awards Past Winners search page

Users can search by keyword, first and last name, past show, year and award category or any combination of these fields.  In the example below, a query is being performed on the Broadway legend Patti Lupone to search for all the Tony Awards® and nominations she has received in all shows, years and award categories.

Tony Awards Past Winners search page

The IBM Cloudant data store holds all of the Tony nominees and winner data recorded since the Tonys inception in 1947.

The result of the search is shown below:

result of the search

IBM Bluemix Cloudant NonSQL in the IBM Cloud

By provisioning IBM Bluemix managed IBM Cloudant nonSQL services in the IBM Cloud, IBM was able to quickly deliver a resilient and secure solution with built-in redundancy, able to dynamically scale to the demands of users as interest in the Tonys builds and seasonal web traffic peaks on Tony Night. The IBM Bluemix and IBM Cloudant web portal make it easy to accomplish this task in a matter of minutes.

The IBM Cloudant portal makes it easy to set up the database, create the indexes and views, set security, provide data replication and set up cross-origin resource sharing (CORS) needs in different geographies for cross-geo deployment. IBM takes care of the provisioning, management, and scalability of the data store automatically, freeing up your time to focus on the design, business rules and presentation of your application.

The nominations data

One of the main challenges of the project was transforming all of the Tony nominee data from a delimited text file into a format compatible with deploying it on the web for use within a modern responsive web application.

The great advantage of using IBM Cloudant is that the self-describing nature of the JSON documents stored in the database makes this task much simpler. By leveraging its flexible JSON schema, IBM Cloudant is the ideal solution for modern web and mobile applications. Each document is accessible to the application as JSON via a RESTful HTTPS:// API URL. Documents can be retrieved, stored, or deleted individually or in bulk.

By using simple text editing tools, the data was transformed into a JSON structure that described each nominee in the data store. An example JSON structure is shown below:

{

“year”: 1964,

“category”: “Actress (Featured Role–Musical)”,

“nominees”: [ “Julienne Marie, <i>Foxy</i>”,

“Kay Medford, <i>Funny Girl</i>”,

“Tessie O’Shea, <i>The Girl Who Came to Supper</i>”,

“Louise Troy, <i>High Spirits</i>” ],

“winners”: [ “Tessie O’Shea, <i>The Girl Who Came to Supper</i>” ]

}

Using basic command line curl commands, the data was bulk imported into the data store in a matter of seconds, making it immediately available to the application logic.

Data searches on nominee data are accomplished via a simple RESTful API query HTTPS:// request and response model. For example, a retrieval search on all Tonys awarded in 1973 might look something like this:

https://yourbluemixhost.ibm.com/tonyspastwinners/_design/byYear/_view/by-year?key=1973&reduce=false

This yields a returned response like:

{

“total_rows”: 1589,

“offset”: 470,

“rows”:[

{

“id”: “8f90c8d946594eac65ffadd77dc6d6c”,

“key” :1973,

“value”:

{

“_id”: “8f90c8d946addd4eac65ffa77dc6d6c”,

“_rev”: “1-dbc23e1248b4bd0629dd2602ac373cc”,

“year”: 1973,

“category”: “Actor (Play)”,

“nominees”: [“Jack Albertson, <i>The Sunshine Boys</i>”,”Alan Bates, <i>Butley</i>”,”Wilfrid Hyde White, <i>The Jockey Club Stakes</i>”,”Paul Sorvino, <i>That Championship Season</i>”],

“winners”:[“Alan Bates, <i>Butley</i>”]}},

… and so on …

The JSON object is then available separately to the application and presentation layer logic to be processed and formatted as required.

Conclusion

IBM Cloudant provides powerful tools, performance and an automatically scaling architecture that can handle millions of users and terabytes of data to grow seamlessly alongside your business needs.

By using IBM Cloudant, The RESTful API makes every document in the database accessible as JSON. This makes it compatible with an abundance of advanced language libraries and tools, providing the opportunity to iteratively develop next-generation enhanced AI equipped web and mobile apps. Unlike the legacy platform, IBM Cloudant allows for an agile development process, speeding deployment and laying a strategic and cost-effective foundation for future enhancement.

Be the first to hear about news, product updates, and innovation from IBM Cloud