The Application Interface is boundary between 'Internet code' and 'application code'.
The usual rules of object oriented programming apply: While it is very useful for an application programmer to know what is going on inside the Internet 'black box', code that depends on the Internet working in a particular way is wrong. Except in rare instances, an application program should not need to know the IP address or ASN number of a network connection.
Applications are generally divided into 'user applications' such as email and Web browsing and 'information services' which are generally described as being machine-machine interactions. Since it is typically most convenient to build the latter on top of the 'Web' protocol HTTP, the term 'Web Services' has become synonymous with the other.
The fact that the Application Interface is by definition the uppermost layer of the Internet stack does not mean that it isn't useful to define additional layers above it and make use of them to write programs. One of the many reasons HTTP has become the most successful and widely used Internet application protocol is because of the numerous application layer platforms that provide a set of reusable components that can be used to build systems.
In contrast to the network layer, standardization of application layer platforms is matter of cost and convenience rather than a necessity. The Internet could not function at all without a common specification for IPv4 and IPv6 but as intended it supports tens of thousands of Web Service protocols. Less happily, there is remarkably little consistency in the design of Web Service protocols and this has negative implications for both cost and security.