Network and Services (NETW-903) Dr. Mohamed Abdelwahab Saleh IET-Networks, GUC Fall 2015
Course Outline Introduction to Network Services. Web Services. Multimedia Services. Mobile Services Computation Services. Security Issues.
Course information Evaluation (tentative): Assignments: 15% Project: 15% Mid-term: 20% Final: 40% Quizzes: 10% Schedule: Day Time Location Saturday 12:15 H6 Saturday 14:15 H6 Office hours: Saturday 10:30-12:30
Textbooks: Will be assigned according to topic.
What are Network Services? A network service provides a particular functionality to users through a network connection. Services provided to humans may be: Network file storage, voice communication, e-commerce, e-voting, etc. Services provided to machines (network nodes) may be: DNS, proxy servers, etc.
Evolution of Provision of Services Server + dumb terminals Server + clients Many servers + many clients Time
Data, Business Logic and Presentation Accroding to type of functionality, software tasks can be classified into three layers: Data management such as data storage. Business logic: The operations we would like to perform on data. Presentation: The final form of the results of the operations performed on data. These tasks can all be done in a single application (1-tier application as in the case of server + dumb terminals), in two communicating applications (2-tier as in the case of client + server), or in three applications (3-tier). We may also have an n-tier system.
Client-Server Model In the case of server + dumb terminals, all processing and presentation of data took place in the server. The termials where only used as a keyboard + screen combination. In the client-server model, the presentation layer is implemented in the client side. At this point, the concept of a service emerged; the client requests a service from the server. Clients and servers are both applications, they may run on separate machines or on the same machine. We now need to specify the client/server interface, i.e., the client needs to know excatly how to invoke each service offered by the server. Usually server applications run on powerful hardware since a server they may accept connections from multiple connections.
Multiple Servers + Multiple Clients With the proliferation of networking technology, a client may now routinely need to connect to multiple servers. Now we need a client that can easily communicate with various servers through their interfaces, i.e., the client needs to contain code for each different interface, which complicates client programming. The solution is to standardize interfaces. As an example, clients and servers may use HTTP with predefined message formats, and the client may be just a web browser. The standardization is achieved by inserting a software layer (middleware) between clients and servers. Middleware provides a standard and and unified interface for the client to connect to multiple servers usually having heterogeneous interfaces. Middleware also enables the integration of existing systems, instead of rewriting whole applications.
Connection through Middleware: An Example Client application Middleware Server application Example: Client application HTTP client Middleware Operating system Standard messages via HTTP Server application HTTP server Middleware Operating system Network
Thin Client vs. Fat Client With the presence of middleware, some functionality can now be removed from the client and implemented in middleware. A client with minimal processing tasks and whose main purpose is to communicate with network services is called a thin client. Traditional clients are now called fat clients. As an example, a web browser may act as a thin client. Fat client are usually application-specific and are designed to communicate with a particular server through a specific interface.
Service-oriented Architecture (SOA) In SOA, software is designed as a set of interoperable services. Each software component provides a service, which is a particular functionality. Components communicate through a network. Interfaces and protocols are designed such that communication can take place without knowledge of the implementation details of components. SOA is motivated by the proliferation of networking technologies, the need to integrate existing software systems, and the need for new distributed applications that are composed of heterogeneous components.
Software as a Service (SaaS) Application Service Providers (ASPs) offer IT services to users such as: File hosting (e.g., Dropbox), Graphics (e.g., Adobe Creative Cloud), Malware removal serivces, etc. Internet File hosting Anti-virus Graphic design User
Examples of Services Voice over IP (VOIP) Multimedia services, e.g., video on demand, TV over IP. Web serivces. Mobile services, e.g., location-based services. Computation services, e.g., cloud computing.
Network Requirements for Service Provision Quality of Service (Qos) requirements. New protocols? Bandwidth. Standardization.
Challenges Interoperability. Support by network infrastructure Security. Service composition. Adding another level of complexity in software.
Pervasive Computing Most of the devices we deal with have some processing capabilties (smart). They even have networking capabilties. Instead of having one computer for N persons (the mainframe days), now we have N computers for each person (pervasive computing). How do we integrate the services offered by all these devices into useful applications? How do we deal with issues of privacy and security?