ABSTRACT
Chatbots are emerging as the newest platform used by millions of consumers worldwide due in part to the commoditization of natural language services, which provide provide developers with many building blocks to create chatbots inexpensively. However, it is still difficult to build and deploy chatbots. Developers need to handle the coordination of the cognitive services to build the chatbot interface, integrate the chatbot with external services, and worry about extensibility, scalability, and maintenance. In this work, we present the architecture and prototype of a chatbot using a serverless platform, where developers compose stateless functions together to perform useful actions. We describe our serverless architecture based on function sequences, and how we used these functions to coordinate the cognitive microservices in the Watson Developer Cloud to allow the chatbot to interact with external services. The serverless model improves the extensibility of our chatbot, which currently supports 6 abilities: location based weather reports, jokes, date, reminders, and a simple music tutor.
- Weizenbaum, Joseph. "ELIZA---a computer program for the study of natural language communication between man and machine." Communications of the ACM 9.1 (1966): 36--45. Google ScholarDigital Library
- Facebook Messenger Platform, https://messengerplatform.fb.comGoogle Scholar
- AskTanmay, https://github.com/tanmayb123/AskTanmay.Google Scholar
- Watson Developer Cloud, https://www.ibm.com/watson/developercloud/Google Scholar
- OpenWhisk, https://github.com/openwhisk/openwhiskGoogle Scholar
- Shawar, Bayan Abu, and Eric Atwell. "Chatbots: are they really useful?." LDV Forum. Vol. 22. No. 1. 2007.Google Scholar
- Yu, Jin, et al. "Understanding mashup development." IEEE Internet computing 12.5 (2008): 44--52. Google ScholarDigital Library
- Tai, Stefan, Rania Khalaf, and Thomas Mikalsen. "Composition of coordinated web services." ACM/IFIP/USENIX International Conference on Distributed Systems Platforms and Open Distributed Processing. Springer Berlin Heidelberg, 2004. Google ScholarDigital Library
- Alexa Skills Set SDK, https://developer.amazon.com/appsandservices/solutions/alexa/alexa-skills-kit.Google Scholar
- Baldini, I., Castro, P., Cheng, P., Fink, S., Ishakian, V., Mitchell, N., ... & Suter, P. (2016, May). Cloud-native, event-based programming for mobile applications. In Proceedings of the International Workshop on Mobile Software Engineering and Systems (pp. 287--288). ACM. Google ScholarDigital Library
- Hendrickson, Scott, et al. "Serverless Computation with OpenLambda." 8th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud 16). 2016. Google ScholarDigital Library
- AWS Lambda, https://aws.amazon.com/lambda/Google Scholar
- Obie Fernandez, Serverless: Patterns of Modern Application Design Using Microservices (Amazon Web Services Edition), in preparation, https://leanpub.com/serverlessGoogle Scholar
Recommendations
The SPEC cloud group's research vision on FaaS and serverless architectures
WoSC '17: Proceedings of the 2nd International Workshop on Serverless ComputingCloud computing enables an entire ecosystem of developing, composing, and providing IT services. An emerging class of cloud-based software architectures, serverless, focuses on providing software architects the ability to execute arbitrary functions ...
Practical Tooling for Serverless Computing
UCC '17: Proceedings of the10th International Conference on Utility and Cloud ComputingCloud applications are increasingly built from a mixture of runtime technologies. Hosted functions and service-oriented web hooks are among the most recent ones which are natively supported by cloud platforms. They are collectively referred to as ...
Practical Cloud Workloads for Serverless FaaS
SoCC '19: Proceedings of the ACM Symposium on Cloud ComputingServerless computing is gaining popularity with the Function-asa-Service (FaaS) execution model. Without incurring overheads involved in provisioning cloud instances and with high availability and scalability, serverless computing allows developers to ...
Comments