Create and deliver personalized experiences across digital properties at scale
Build engaging websites with intuitive web content management
Leverage a complete UI toolbox for web, mobile and desktop development
Build, protect and deploy apps across any platform and mobile device
Build mobile apps for iOS, Android and Windows Phone
Rapidly develop, manage and deploy business apps, delivered as SaaS in the cloud
Automate UI, load and performance testing for web, desktop and mobile
Host, deploy and scale Node.js, Java and .NET Core apps on premise or in the cloud
Optimize data integration with high-performance connectivity
Automate decision processes with a no-code business rules engine
Transform your businesses in order to survive in a completely digitized and connected world driven by software innovation.
Globally scale websites with innovative content management and infrastructure approaches
Content-focused web and mobile solution for empowering marketers
Faster, tailored mobile experiences for any device and data source
UX and app modernization to powerfully navigate today's digital landscape
Fuel agility with ever-ready applications, built in the cloud
Progress VP of Technology, Eduardo Pelegri-Llopart, and Progress Solutions Engineer, Mehfuz Hossain, take you inside the app they designed for a recent Progress conference. Learn how Progress mobile technology was used to create a powerful, responsive and interactive app.
Our team wrote the conference mobile app for ProgressNEXT ’16, the conference for Progress partners, in Las Vegas. The app provides the usual functionality: event agenda, list of speakers, schedule builder, venue map and events plus a couple of additions: the app helps attendees connect to each other, and the app interacts in real-time with attendees using RFID tags. The app was built using several Progress products: Telerik Platform, Kendo UI, Rollbase and Modulus, and also used an IOT platform from a partner, AMTech Solutions. In this post we describe the architecture of the system; in future posts, I’ll go into more details about the IOT portion.
The core app leverages the Telerik Platform tools, runtime and the notification machinery. The app is a hybrid app leveraging Apache; our development time constraints barely missed some key features in NativeScript. The app was delivered in the Apple App Store (link) and via Google Play (link).
The user interface is built around a collection of screens. Here is the initial screen:
Here is the screen for a session where our CPO, Mike Benedict, was presenting:
In addition to the usual features, you may notice the “Star” in the top right, and the attendee count (263). The first is part of creating your schedule. The second is part of the real-time attendance tracking using RFID.
Another feature, Contact-Building, is presented to the attendees via this screen:
This screen shows that the user of the app has received and granted contact requests from two attendees: a fictitious Jane Doe, and Kim King, our VP for Partners and Channels.
The attendee data, as well as sessions, events, etc, is all kept in Rollbase. Rollbase is well suited to this application; our friends at JungleLasers designed the types, and triggers, and helped us populate the data. Rollbase is also used to create and maintain the social connection data.
Rollbase additionally provides an easy way to do operations directly on the data. For example, after the conference started, we quickly created a dashboard to track how many of the attendees were using the App. We also created an on-site registration tool, as we discovered many late-minute additions. Here is a browser-based dashboard.
The app also supports real-time tracking of attendees. We accomplished this through the use of RFID technology. In RFID a tag is attached to an object that will resonate and will respond with some (small) amount of data when receiving an electromagnetic signal. An RFID reader uses an antenna to send the signal and then read the response which can be used to identify and track the object. RFID technology has improved a lot in recent years, and you are likely using it on a regular basis, even if you are unaware of it. For example, in California, our FasTrak tags are (active—i.e. with a battery) RFID tags. And the MagicBand used in Disney World also employs RFID tags. Disney now uses them even in their paper cups to control soda dispensers!
Here is a picture of the tags we used in Las Vegas—dogbone style:
These tags have 96 bits of information. We worked with an RFID company (AtlasRFID) and printed a batch of them with the data for the pre-registered attendees, plus some extras. We then placed them at the back of the conference badge holders:
We next placed RFID Antennas inside and outside of the doors providing entrance to the spaces we wanted to track. The antennas were connected via coaxial cables to RFID readers; these readers then pass data, and are controlled by, a gateway server (written in node.js, btw) from AMTech Solutions.
Below is one antenna, one reader and coax cable. This particular reader (ThingMagic M6) can handle up to 4 antennas and includes an Ethernet port for a wired connection; some other readers have a WiFi chip, but fewer failure points is good. :-)
And here is an antenna (velcroed to a drape stand) covering the inside of a door. A single antenna was able to cover a double door. Whenever possible we used a single pole to hold two antennas, pointing in opposite directions. This setup was not optimal—a better arrangement would have the antennas set somewhere above the doors, to reduce body interference—but it seemed to work pretty well. We could only informally estimate the success rate of these setups, but we guesstimated it to be over 85%.
The events from the gateway are sent via the internet to the AMT platform where they interact with representations of physical objects, like people, rooms, antennas and readers. Below is how our conference floor looks inside the AMT platform.
AMTech supports two main interaction models: you can perform CRUD operations on the objects via HTTPS requests, and you can listen in a Websocket for Notification events delivered as JSON objects. These are pretty standard mechanisms and can be invoked from many places, including OpenEdge and Rollbase, but we used Node.js, running on Modulus.
Combining all this we created a demo app where an attendee would be notified when they entered a room. The notification was delivered to their mobile app, and, in this case, from there to their wearable device. Below is a picture of yours truly receiving a notification on his Apple Watch when entering a predetermined conference room.
The following diagram shows all the pieces together: the Hybrid App communicates to Rollbase via JSDO over HTTPS. Rollbase talks to the node.js services on Modulus, which provide the glue into AMTech and into the Telerik BackEnd Services, which, in this case is only used to send a notification to the phones.
The RFIDs are read by the antennas and the readers; the readers can reach the the M2MBridge gateway (using the LLRP protocol) and from there the data reaches the AMTech platform. The rest of the app interacts with the AMTech Platform via REST and WebSockets.
Things worked well from a methodology perspective. We decoupled the base app and the RFID portion to ensure we could deliver the core functionality on time and that worked well. There was quite a bit of behind the scenes, last minute activity, including unlocking networks and fine-tuning RFID antennas and readers—but at the end everything worked very well.
Technology-wise, the boundary between the mobile app and Rollbase worked very well and led to high productivity. A redesign will also use NativeScript for a better and smoother UX. Using NativeScript would also give us easy access to more device functionality, including iBeacons.
Functionality-wise users of the app were happy, but some refinement would be useful. For example, the social network machinery was added fairly late; the App includes support for QRCode generation and scanning but we de-emphasized that portion after adding the in-app meeting request. If we redesign the app, we will clean up that part. Additional social sharing features would be quite useful too.
On the IOT front, the main goal was to engage our partners on the capabilities of connecting an IOT platform to our technology and to their products, and the app was successful in this. We started multiple conversations with customers and partners, as well as with AMTech, on how to use RFID in different settings and on using different types of sensors. These conversations are still ongoing.
From an IOT perspective, we “outsourced” the design of the IOT layer to the AMTech people. Since then we have been engaged in several projects where we have designed that layer ourselves. We will report on that experience in other posts.
Finally, check out more pictures of event and the App at this Flickr Album, as well as these blog posts talking about highlights of the conference.
Rollbase App from Mark Catanese at JungleLasers; Mobile and Modulus contributions from Mehfuz Hossain at Progress; IOT Platform and RFID setup from Carlos Arteaga and Gerardo Greenham at AMTech Solutions. Special thanks to Eric Benchetrit at the Four Seasons Hotel in Las Vegas for network support, and to Leah Depolo and the rest of the ProgressNEXT team for dealing with all the last minute “stretch goals.”
Eduardo is a VP of Technology in the Office of the CTO at Progress. His work focuses in strategic initiatives for Progress, technology trends and on Corporate Development. Eduardo is also interested in Technology Adoption and tries to stay in touch with the new waves of developers through Hackathons, internships and other community interactions. Eduardo joined Progress in November 2013; before that he worked at BlackBerry, Oracle, Sun Microsystems and Xerox PARC. He has CS degrees from UCB and USB (Venezuela).
Copyright © 2016, Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.
Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks or appropriate markings.