Chatbot

Chatbot is a computer program that communicates with a human either via audio or text. It is built with a specific purpose in mind and usually have a very narrower scope.

Chatbots
Chatbot

Is Chatbot same as Personal Assistant like Siri/Cortana?

Personal assistants like Siri or Cortana have a far wider scope. They can answer questions related to current weather conditions. Or they can tell you jokes or recommend currently running movie. Whereas chatbots have a very specific function such as selling a product or providing help related to a product. They can also guide you through FAQ. But they can’t do more than that.

Typically chatbot assumes lot of human traits. It can have a photo of its own or it can have a name of its own. A chatbot can be mentioned in a conversation or it could be called out using name. It could be added to a group conversation or one could have one-to-one chat with the chatbot.

Conversational Chatbot

This type of chatbot uses NLP (Natural Language Processing) to understand human questions and responses and responds in such a fashion that human can understand.

Rule Based Chatbot

This type of chatbot presents the information in a very structured manner and doesn’t really understand conversational language. e.g. Instead of asking “Would you like to have a pizza or pasta?”, it would prompt “Choose your option: 1. Pizza 2. Pasta” etc. NLP is missing in these types of chatbots.

Historically there have been several types of bots such as crawlers, scarpers etc. All these are automated programs and were meant to do specific tasks, but they didn’t communicate with humans directly. Chatbot is advanced version of bots where bots are communicating with Humans. Essentially they are helping humans answering their questions or even selling some products to humans.

Some chatbots can initiate conversation proactively (after first initiation by human) whereas others need humans to start the interaction everytime. Proactive feature could be used by news websites to push the top stories or breaking news to humans who had initiated chat at least once and had opted in to receive these kind of notifications.

Use cases:

  • Selling a product
  • Providing account balance to authenticated customers
  • Handle call center kind of work
  • Send top news items
  • Send movie recommendation

Developers can choose from variety of platforms and software options to build and deploy chatbots quickly.

Related Links

Related Keywords

Artificial Intelligence, NLP

AMQP

AMQP means Advanced Message Queuing Protocol. It is a protocol that is used for communication between two systems, which need to be loosely connected and potentially are heterogeneous.

What is a Message Queue?

When a subsystem (consumer) is dependent on some events occurring in some other subsystem (producer), we need to devise a way for communication between these two subsystems. IPC (Inter process communication) could be one such way, but it requires both the processes (subsystems) to run on same system. This is unlikely in distributed architecture and microservices architecture. As a result a mechanism has been devised where producer will post the events/outcome to a queue. This queue is then read by one ore more consumers. This is referred as Message Queue.

AMQP essentially allows two systems to communicate using Message Queues, but doesn’t put any dependency on the implementation of these systems. One system could be written in a C / C++ and other system could be a Java application. Such heterogeneous systems can comfortably communicate using AMQP. AMQP defines how a message should be constructed and sent over the wire, instead of defining how to implement producer and consumer. It is simply a byte stream across the network. Any consumer conforming to the data format can interpret the message. Hence this is also called as wire-level protocol.

Features of AMQP:

  • Message Orientation
  • Queuing
  • Routing
  • Reliability
  • Security

AMQP implementations allow routing such as point-to-point (one producer – one consumer) or publisher-subscriber model (one or more consumers can subscribe to messages from one or more publishers).

It is often easy to compare JMS (Java Messaging Service) with AMQP. The important difference is that JMS is an API, which defines implementation for producer and consumers, and hence it is tied with Java platform.

AMQP ensures the messages are delivered reliably and acknowledgement is obtained. Hence it forms an important aspect of the communication between producer and consumer.

A compelling example use case of Message Queue would be that of Food delivery ordering system. Typically such systems get loaded during meal hours and can’t afford to loose any orders due to errors. Posting the order data to message queue can ensure every order is processed.

Related Links:

Related Keywords

Software Architecture, AWS SQS, RabbitMQ, Apache Kafka

 

Reverse Proxy

Reverse Proxy is a type of Proxy Server that sits in front of the web server and received the request from internet. It passes on the requests to web server and sends back the response from web server to the clients.

In contrast, Forward Proxy Server or Proxy Server sits in front the the several clients and sends requests to various different websites.

Proxy Server:

Proxy Server, as name suggests, is an authority which represents some other server. It is in use since 1990s, even before NAT Gateways were introduced. Forward Proxy servers have been used in intranet to regulate or monitor the traffic and to optionally filter or  block the traffic as per the company policies. This is similar to Firewall function.

Advantages of Reverse Proxy

There are several advantages of this proxy server.

  • Load Balancing: There could be multiple web servers behind the reverse proxy. In such cases the reverse proxy server would decide where to send the request depending on the load on the web servers. Hence it can act as load balancer.
  • Caching: Optionally, Revers Proxy Server could cache the responses from the web servers (e.g. static contents). This results in reducing the load on the web servers. This is also referred as Web Acceleration.
  • Security: Since Reverse Proxy shields the backend web/app servers, it becomes difficult for hackers to know about the vulnerabilities of real web or app servers.
  • SSL offloading: Reverse Proxy can handle the SSL and open plain text connection with backend web/app server. This reduces the load on the backend servers. Additionally, Reverse Proxy Server can use hardware based SSL accelerators.

But wait, isn’t it similar to API Gateway?

You are right. API Gateway could be treated as special implementation of Reverse Proxy.

Related Links:

Related Keywords:

API Gateway, Software Architecture, Firewall, Forward Proxy Server

ICO

ICO means Initial Coin Offering. This is a latest buzzword and latest way startups are raising money. The moment I say “raising money”, you will be tempted to compare this term with IPO – Initial Public Offering. However, hold on. They are similar yet very different.

ICO
ICO – Initial Coin Offerings increased multifold in 2017

What is ICO then?

In ICO, a company sells tokens or coins to people of entities who are willing to invest their money in the company’s project or product. The coins or tokens can be purchased in lieu of other digital currencies such as Bitcoin or Ether or  even with real money (e.g. USD). The company who is selling the coins announces their purpose of raising the money. Investors who believe in that purpose, purchase those coins. If company’s project or product is launched and successful, one can expect the value of the purchased coins going up. And then the investor can sell his/her tokens and make profit.

All this sounds familiar with IPO, right?

Let’s talk about the real difference.

When you invest money in the IPO, you get shares in the publicly traded company. You get voting rights, you get ownership in the company equivalent to your shares. You could decide to increase your stake in the company. The company is required to disclose all the accounts, audit reports and is regulated by central agency such as SEC (US) or SEBI (India).

However, in case of ICO, you do not get any ownership of the company. Neither you get any voting rights nor you can hope to increase your stake in the company. The only thing that you can hope and can expect is that the tokens would increase in their values and you get your returns.

ICO can also be referred as crowdsourcing through cryptocurrency.

Facts about ICO

  • First token sale – July 2013
  • Tracked via CoinDesk
  • Money raised until now – USD 3.3B

Related Links

Related Keywords:

Cryptocurrency, Bitcoin, Blockchain

OLTP

OLTP mean On-Line Transaction Processing. This is a type of system which is used in applications involving several short transaction.

Important Features of OLTP databases:

  • Transactions involve very small amounts of data
  • Data Integrity
  • Indexed access to data
  • Performance focus is on Transactions Per Second

Examples of OLTP Databases:

  • MySQL
  • SQL Server
  • PostgreSQL

OLTP Databases are ACID compliant. It means that the database ensures that the transactions are “Atomic”, “Consistent”, “Isolated” and “Durable”.

  • Atomic means either the transaction is successfully recorded or it is rolled back. It is “all or nothing” operation. This ensures in case of the failure, database state is left unchanged.
  • Consistency means every transaction will bring database from one valid state to another. That is data written to the database should be following all the applicable DB rules. Note that this doesn’t involve application level logic.
  • Isolation means database reaches same state whether the transactions are executed in parallel or in sequential manner.
  • Durability means once a transaction committed it remains stored even if there are other issues such as power failure or crashes.

Applications of OLTP databases:

  • Banking applications
  • Retail orders

Typically large applications make use of both OLTP and OLAP (OnLine Analytical Processing) databases. OLAP focuses torwards analysis of data and may not have performance (transactions per second) as compared to OLTP databases. You can find detailed comparison here or can refer to this presentation.

Related Links:

Related Keywords

Databases, OLAP, ACID

Subscribe now. You will get relevant updates frequently. Also, please check our other terms from menu. #TermOfTheDay #ATermADay