[MUSIC] Systems with a service oriented architecture can be based on web services, which are built using a variety of web standards and technologies. To appreciate how these standards work and the rise of web applications and web services, we must first study the origin and evolution of web-based systems. Often, you may hear the terms Internet and World Wide Web used interchangeably. While they are related, they actually refer to different things. In fact, the Internet was around nearly 20 years before the web came along. In 1969, the Internet's predecessor, a small computer network called ARPANET, was used by researchers in the United States to send a small amount of data between pairs of computers. This was the first time data was sent across a computer network. In the years that followed, small networks were developed at research institutions across the United States. And they began connecting with each other. The Internet was born when this network of networks grew to a global scale. Visionaries saw the Internet's potential to be used to communicate information across the globe. Inspired by the way the brain links information together through association, Tim Berners-Lee began investigating how documents could be linked together over networks. In 1990, Lee proposed a web management system inspired by hypertext and built on top of the Internet, called the World Wide Web. The World Wide Web, otherwise known as the web, led to standards and technologies for computer-based communication over the Internet. In later lessons, you learn about specific web standards in more detail. For now, let's mention hypertext markup language, or HTML, which is a standard used for expressing web content, and hypertext transport protocol or HTTP, which is a standard used for making requests, receiving responses and communicating content. In the early 1990s, the introduction of HTML and web browsers greatly increased the popularity of the web. HTML and web browsers allowed users to view websites. Websites are made up of web pages. To view a web page, the web browser makes a request to the web server that hosts the web page. The web server handles the request by returning the HTML document that corresponds to the requested web page, and then a browser renders its HTML document to the user. The relationship between web browser and web server is a client-server relationship. Both the request and the response are messages conveyed in HTTP, a communication protocol that both the web browser and web server understand. Originally, the web consisted of only static web pages. Each static web page was stored on the server as a separate HTML file. When you view a static web page in your browser, the HTML rendered on your screen is the same HTML document stored on the web server. This means the HTML document on the web server is not changed or customized before being served to the client. As a developer, if you want to change the look or content of a static web page, then you must change the corresponding HTML document. Sometimes, making a small change to a web page may require you to update many HTML documents to keep things consistent across the whole website. Since all changes require manual developer intervention, static websites are typically used for presenting information that does not change very often, like personal websites or publications. In 1993, dynamic web pages emerged in response to the lack of customizability and scalability imposed by static web pages. A dynamic web page is generated by an application at the time of access. Unlike a static web page, the web page does not exist on the server beforehand. For a dynamic web page, the web server passes on the request to an application to handle. The application can perform a computation, look up some information in a database, or request information from a web service, which produces dynamic content as output. The application can generate an HTML document for the server. And then the server sends that back to your web browser, which in turn displays it to you. As a developer, it is easier to make changes to dynamic websites compared to static websites, because you only need to change one database element or variable in your application to make a change anywhere on the dynamic website. Dynamic web pages are appealing for many reasons. They can be customized for the viewer. They can respond to external events. They generally provide more functionality, and they are easier for a developer to modify. For these and other reasons, dynamic web pages now dominate the web. Dynamic sites are used for everything from personal blogs to newsfeeds. It may not always be clear if the website you are visiting is statically or dynamically generated, though a good clue may be the complexity of the web page. Do the contents of the web page change depending on when you visit the site? Do other people visiting the same web page see different content than you? Do you need to provide extra information, such as a login, before you access the web page? If you answered yes to any of these questions, then you're likely visiting a dynamic web page. Despite their limitations, static web pages have their place on the web. Not every web page needs to be personalized for the viewer, or have its contents changed throughout the day. For simple, unchanging presentations of information, static web pages may be the way to go to ensure performance. Now, there is a growing trend towards web-based applications, or simply web applications. Web applications are like desktop applications, in that they provide graphical user interfaces that allow users to interact with them. The big difference between the two is that desktop applications are run and are stored locally on your computer, whereas web applications run in your web browser, and are stored on a remote web server. Web applications are platform independent, meaning that the application will run on any operating system, provided that a compatible web browser is installed. By relying on web browsers, web applications eliminate the need for users to download and maintain application software on their computer. Unlike many desktop applications, web applications almost always require users to have Internet access, because information is communicated over HTTP, with a web server and or application server on the backend. Depending on the application, the need to be always online may be an acceptable tradeoff. Web applications provide users with a richer, more interactive web experience than simpler dynamic or static web pages. Web applications enable everything from online banking, online learning, online games, calculators, calendars, and more. For example, Google Docs is a web application you may be familiar with. Google Docs is a browser-based word processor which allows multiple users to collaborate on a textual document in real time. A modern website or web application will often integrate with other web services to provide certain content. And these web services could, in turn, rely on other services. The web services can be used to satisfy specific needs, like stock market data, weather reports, and currency conversion. By treating web services like reusable components, information produced by these web services can be used by many different web applications at the same time. Web applications and web services communicate over the web using open standards, like HTTP, XML, and JSON, which are easy for machines to manipulate. While some web services are accessed through programmatic means using these standards, there are services that can come with a user interface that can be embedded in a web page or application. Let's look at a more concrete example. Imagine you were developing a personal landing page. It may have its own content, like a blog or a writing portfolio. It also uses external services, perhaps showing your latest post from a microblogging service provider, or an external photo storage service provider. You may get information from your calendar and your travel itinerary, integrated into an applet to tell people when you have free time to meet and where you will be. Each of these services produces content for the landing page. The request and response of these services is asynchronous, meaning that the logic is designed to continue running instead of waiting for a response. This way, the rest of the page can be generated while the individual services are processing the requests and sending responses. In this lesson, you learned about the origin and history of the web. The web started with static web pages that evolved to dynamic web pages where the HTML display was customized to the user. Now, we see the emergence of web applications, which enable interactive experiences for users. By integrating with web services, web applications can make use of real time information to create more complex, richer applications.