Difference between Feature Server and Map Server?

Difference between Feature Server and Map Server?

I have started to work with Esri maps.

What is the difference between Feature Server and Map Server?

(if possible with examples )

A feature server serves individual layers (aka features) as structured text (xml or json) a mapserver serves maps as images (png - jpeg - gif)

The ArcGIS documentation actually has pages titled "What is a feature service" and "What is a map service", the text of which is quoted verbatim here --

Feature Service:

Feature services allow you to serve features over the Internet and provide the symbology to use when displaying the features. Clients can execute queries to get features and perform edits that can be applied to the server. Feature services provide templates that can be used for an enhanced editing experience on the client. Data from relationship classes and nonspatial tables can also be queried and edited using feature services.

Map Service:

The map service is the way that you make maps available to the web using ArcGIS. You'll make the map in ArcMap, then publish the map as a service to your ArcGIS Server site. Internet or intranet users can then use the map service in web applications, ArcGIS for Desktop, ArcGIS Online, and other client applications.

It therefore follows that a Map Server is a host that provides map services, and a Feature Server is a host that provides feature services.

It might help to think of a feature service as a special case of a map server's services, since the same basic publishing process is used, and a map service is a prerequisite for a feature service. It should also be noted that map services can provide feature data on request (read-only), unless that capability is disabled during publishing.

As a user, here's how I see the differences between Feature Services and Map Services:

When I connect to a Feature Service, the resulting vector data that appears on my computer screen (via "the cloud") is indistinguishable from a vector layer (i.e. shapefile, geodatabase feature class) stored on my local drive. For example, I can change a Feature Service's symbology, open its attribute table and make selections, buffer it, save it to my local drive, join another attribute table to it, the list goes on…

Although a Map Service also depicts vector data via the cloud, that data is displayed on screen as a static basemap image (think .jpg">

I go this way to differentiate as most of the time I use Non-ESRI Software like QGIS, OpenLayers etc. ArcGIS Feature Service and Map Service in general both have same capabilities in terms of consuming the data, querying using REST APIs.

The differences ONLY when used in ESRI products (ArcGIS Pro, ESRI JS API library etc) as explained by others users comments and answers.

What is is the Difference Between Web GIS and Internet GIS?

In this era Web has changed every aspect of our life from our daily activities to our professions activities like our jobs and so on. Among these changes, GIS has been affected by this technology and a new technology, which is called Web GIS, appeared. Today, a vast majority of Internet users uses this technology but most of them don’t notice it some examples of it could be finding hotels and addresses in an strange city using Google maps or other online maps or when you are lost you can easily locate your location using your phone GPS system and find your path. There are many, many usages that we can name, some refers to this technology and Web GIS and some others call it Internet GIS. This leads to the question, is there a difference between these two terms? What is the difference between Web GIS and Internet GIS?

A GIS basically consists of Hardware, Software, data and users. Seeing the evolution among these components over the years is interesting. In 1960s and 1970s these components were joined together in one computer. Later distributed GIS emerged with the adoption of a local area network (LAN). Using distributed GIS, these components no longer needed to be located together, instead the components could be in separate buildings long distances from each other. With the development of Web GIS these components are now separated farther distances than before GIS users sitting on one side of the globe can access a server located on the other side of the globe.

How a server works

To function as a server, a device must be configured to listen to requests from clients on a network connection. This functionality can exist as part of the operating system as an installed application, role, or a combination of the two.

For example, Microsoft&rsquos Windows Server operating system provides the functionality to listen to and respond to client requests. Additionally installed roles or services increase which kinds of client requests the server can respond to. In another example, an Apache web server responds to Internet browser requests via an additional application, Apache, installed on top of an operating system.

When a client requires data or functionality from a server, it sends a request over the network. The server receives this request and responds with the appropriate information. This is the request and response model of client-server networking, also known as the call and response model.

A server will often perform numerous additional tasks as part of a single request and response, including verifying the identity of the requestor, ensuring that the client has permission to access the data or resources requested, and properly formatting or returning the required response in an expected way.

7 Answers 7

It looks like you are using the Scrum process template. The TFS site has published some very brief information about Product Backlog Items and Features and the idea behind creating a new work item type.

The difference between the two comes down to what granularity you want to work with your work items at:

  • Product Backlog Items are composed of Tasks and have estimated effort.
  • Features are composed of Product Backlog Items and have target dates.

I have not been able to find any official guidance on when to use Features vs Product Backlog Items but I have created my own guidance which I am basing this answer on.

Should you create a Feature or a Product Backlog Item?

  • If you think/hope that the new work item that you are going to create will fit into a single sprint you should create a Product Backlog Item and then break it down into tasks for your sprint.
  • If you think/know that the new work item won't fit into a single sprint you should create a Feature and identify all the value-providing sprint sized items (Product Backlog Items) that the Feature can be broken down into and use these when planning future sprints.

[Update 2014-05-19]

Microsoft have published more information on how to use Features and the agile portfolio concept that has been implemented in TFS

As TFS applies an agile development strategy I think we can say:

Feature = Epic, Backlog item = Story

The epic contents similar stories.

I had the same doubts as OP and my thoughts has been aligned with @josant answer, which is very reasonable to me.

On the other side I'm using the Hundhausen book[1] as a reference for adopting TFS+Scrum.

A feature is a discrete unit of functionality that delivers value to the user or business. A PBI may be large enough to have several features.

A feature may break down into multiple scenarios. A scenario is a narrative that describes a workflow or sequence of steps through the feature that exercises one path toward achieving an expected result.

and continues developing these ideas.

To me, Hundhausen seems to be talking about use cases[2], but still I feel his proposal some counterintuitive, neither seems TFS would be guiding to this analysis method orb I found it referenced in the scrum literature I read.

Probably it's just a matter of choosing a convention you feel more confortable with and adhere to it.

A Feature is a Product Backlog Portfolio.

Feature is a level up to 'backlog items'. team defines work as high-level initiatives and breaks them down into features. which further break down and define the work to be done as 'Backlog'. ref

  • Features: Top Level
  • Backlogs: One Level below Features (a feature is made of backlog items)

Keep in mind that you can LINK work items and you can display them as a Tree List. So, you can link a backlog item to a feature, and later, you can link a task to a backlog item. Thus, you get a nice hierarchical tree list.

This is how I use it. Under the tool items "Work" -> "Backlogs" both "Features" and "Backlog Items" are listed. I start with features so there are no backlog items at that point. I add the features by selecting Features under the Backlog header and adding the Feature name in the form then saving and closing. To the left of each newly added Feature there is a green + sign. Click on the plus sign and selection options appears. Choose "Product Backlog Items". When it opens type the name of the backlog item in the top field just like in Features. You are creating these backlog items, there is no pop-up. Fill in the other information as required then save and close. After creating the Backlog items click the green + on the newly created Backlog Items. Enter the name of the work item like you did for the Backlog Items and the Features. When adding the work items include the sprint in the iteration field and they will be in the sprint when you open it. None of this is documented anywhere that I could find. I hope it is in sufficient detail.

Difference Between Client and Server Operating System


A client operating system is an operating system that operates within desktops and other various portable devices whereas a server operating system is an operating system that is designed to be installed and used on a server. Thus, this is the main difference between client and server operating system.


Moreover, a client operating system can obtain services from a server while a server operating systems can provide services to multiple clients or end-user devices.

Associated Devices

A client operating system runs on a client device such as desktops, mobile phones, tablets, and laptops whereas a server operating system runs on a server. Hence, this is another difference between client and server operating system.

Number of Users

Furthermore, a single user can work on a client operating system at a time while a server operating system can serve multiple client devices at a time. So, this is another difference between client and server operating system.


Complexity is another difference between client and server operating system. Server operating system is more advanced and consists of more features than a client operating system.


Windows, Android, Mac are some examples for client operating systems whereas Red Hat Enterprise Linux, Windows Server, and Mac OS X Server are some examples for server operating systems.


Client operating system and server operating systems are two types of operating systems. The main difference between client and server operating system is that client operating system works in the devices used by the end users such as desktops and other portable devices while server operating system runs on a special device called a server.


1. “Client Operating System.” Computer Network Devices – Hub, Switch, Router, Bridges, Network Card, Modems and Gateway Networking Devices, Available here.
2. “What Is a Server Operating System (Server OS)? – Definition from Techopedia.”, Available here.

Image Courtesy:

1. “Client-server-model” By Gnome-fs-client.svg: David VignoniGnome-fs-server.svg: David Vignoniderivative work: Calimo (talk) – Gnome-fs-client.svgGnome-fs-server.svg (LGPL) via Commons Wikimedia

About the Author: Lithmee

Lithmee holds a Bachelor of Science degree in Computer Systems Engineering and is reading for her Master’s degree in Computer Science. She is passionate about sharing her knowldge in the areas of programming, data science, and computer systems.


The term was originally used [3] when discussing early client–server systems to differentiate servers that contain application logic SQL services [4] and middleware servers as distinct from other types of data-servers.

Currently, despite the fact that web-browsers have become ubiquitous and are typically the client for end-users in many application deployment strategies, browser-based web apps represent only a subset of application-server technologies.

Application servers are system software upon which web applications or desktop applications [ citation needed ] run.

Application servers consist of

  • web server connectors, [clarification needed]
  • computer programming languages, ,
  • database connectors, and
  • the administration code needed to deploy, configure, manage, and connect these components on a web host.

An application server runs behind [ citation needed ] a web Server (e.g. Apache or Microsoft Internet Information Services (IIS)) and (almost always) in front of an SQL [ citation needed ] database (e.g. PostgreSQL, MySQL, or Oracle). Web applications are computer code which run atop application servers and are written in the language(s) the application server supports and call the runtime libraries and components the application server offers.

Many application servers exist. The choice impacts the cost, performance, reliability, scalability, and maintainability of a web application.

Proprietary application servers provide system services in a well-defined but proprietary manner. The application developers develop programs according to the specification of the application server. Dependence on a particular vendor is the drawback of this approach.

An opposite but analogous case is the Java EE platform. Java EE application servers provide system services in a well-defined, open, industry standard. The application developers develop programs according to the Java EE specification and not according to the application server. A Java EE application developed according to Java EE standard can be deployed in any Java EE application server making it vendor-independent.

Java Platform, Enterprise Edition or Java EE (was J2EE) defines the core set of API and features of Java Application Servers.

The Java EE infrastructure is partitioned into logical containers.

  • EJB container: Enterprise JavaBeans (EJB) are used to manage transactions. According to the J2EE blueprints, the business logic of an application resides in Enterprise JavaBeans—a modular server component providing many features, including declarative transaction management, and improving application scalability. : The Web modules include servlets and JavaServer Pages (JSP).
  • JCA container (Java EE Connector Architecture)
  • JMS provider (Java Message Service)

Some Java Application Servers leave off many Java EE features like EJB and Java Message Service (JMS). Their focus is more on Java Servlets and JavaServer Pages.

There are many open source Java application servers that support Java EE.

A Java Server Page (JSP) executes in a web container. JSPs provide a way to create HTML pages by embedding references to the server logic within the page. HTML coders and Java programmers can work side by side by referencing each other's code from within their own.

The application servers mentioned above mainly serve web applications, and services via RMI, EJB, JMS and SOAP. Some application servers target networks other than web-based ones: Session Initiation Protocol servers, for instance, target telephony networks.

Microsoft Edit

Microsoft positions their middle-tier applications and services infrastructure in the Windows Server operating system and the .NET Framework technologies in the role of an application server. [5] The Windows Application Server role includes Internet Information Services (IIS) to provide web server support, the .NET Framework to provide application support, ASP.NET to provide server side scripting, COM+ for application component communication, Message Queuing for multithreaded processing, and the Windows Communication Foundation (WCF) for application communication. [6]

Third-party Edit

    (a cross platform open-source implementation of .NET supporting nearly all its features, with the exception of Windows OS-specific features), sponsored by Microsoft and released under the MIT License

PHP application servers are used for running and managing PHP applications.

Zend Server, built by Zend Technologies, provides application server functionality for the PHP-based applications., built by TechDivision GmbH is a multithreaded application server for PHP written in PHP.

RoadRunner, built by Spiral Scout is a high-performance PHP application server, load-balancer, and process manager written in Golang.

A mobile app server is mobile middleware that makes back-end systems accessible to mobile application to support Mobile application development. Much like a web server that stores, processes, and delivers web pages to clients, a mobile app server bridges the gap from existing infrastructure to mobile devices.

Purpose Edit

Although most standards-based infrastructure (including SOAs ) are designed to connect to any independent of any vendor, product or technology, most enterprises have trouble connecting back-end systems to mobile applications, because mobile devices add the following technological challenges: [7]

  • Limited resources – mobile devices have limited power and bandwidth
  • Intermittent connectivity – cellular service and wifi coverage is often not continuous
  • Difficult to secure [8] – mobility and BYOD make it hard to secure mobile devices

The purpose of a mobile application server is to build on existing infrastructure to accommodate mobile devices.

Common features Edit

Core capabilities of mobile application services include

  • Data routing– data is packaged in smaller (REST) objects with some business logic to minimize demands on bandwidth and battery
  • Orchestration– transactions and data integration across multiple sources
  • Authentication service– secure connectivity to back-end systems is managed by the mobile middleware
  • Off-line support– allows users to access and use data even though the device is not connected
  • Security– data encryption, device control, SSL, call logging

Mobile application servers vs. application servers vs. web servers Edit

Mobile application servers, Application servers, and web servers serve similar purposes: they are pieces of middleware that connect back-end systems to the users that need to access them, but the technology in each of the three differs.

Application servers Edit

Application servers were developed before the ubiquity of web-based applications—expose back-end business logic through various protocols, sometimes including HTTP, and manage security, transaction processing, resource pooling, and messaging. [9] When web-based applications grew in popularity, application servers did not meet the needs of developers, and the webserver was created to fill the gap. [ citation needed ]

Web servers Edit

Web servers provide the caching and scaling functionality demanded by web access and not provided by application servers. They convert requests to static content and serve only HTTP content. [10] Over time, application servers and web servers have morphed from two previously distinct categories, blended features, and arguably have merged. [ citation needed ]

Mobile application servers Edit

Mobile application servers are on a similar path. [ citation needed ] The emergence of mobile devices presents the need for functionality not anticipated by the developers of traditional application server developers, and mobile application servers fill this gap. They take care of the security, data management and off-line requirements not met by existing infrastructure, and present content exclusively in REST.

Over time, these three categories may fully merge and be available in a single product, but the root functions differ.

Content: POP3 Vs IMAP

Comparison Chart

Basis for ComparisonPOP3IMAP
Basic To read the mail ithas to be downloaded first.The mail content can be checked partially before downloading.
OrganizeThe user can not organize mails in the mailbox of the mail server.The user can organize the mails on the server.
FolderThe user can not create, delete or rename mailboxes on a mail server.The user can create, delete or rename mailboxes on the mail server.
ContentA user can not search the content of mail for prior downloading. A user can search the content of mail for specific string of character before downloading.
Partial DownloadThe user has to download the mail for accessing it.The user can partially download the mail if bandwidth is limited.
FunctionsPOP3 is simple and has limited functions.IMAP is more powerful, more complex and has more features over POP3.

Definition of POP3

Post Office Protocol version 3 (POP3) is a message accessing agent (MAA) that transfer the email from mailbox at the server to the local computer of the user. There is a client POP3 software which is installed on the recipient’s computer. The client POP3 software is invoked by the user which thereby creates the connection to the server POP3.

The server POP3 software is installed on the mail server. The connection is made on the TCP port 110. To establish the connection the client has to send username and password for accessing the mailbox. Once the client is authenticated, it can then list and retrieve the emails one by one. The POP3 protocol operates in two modes, the delete mode and the keep mode. The POP3 protocol operates on delete mode when the user is working on its permanent computer. In delete mode, once the mail is retrieved from the mailbox it gets deleted from the mailbox permanently. The mail retrieved from the mailbox is organized on the user’s computer.

The POP3 protocol operates on keep mode when the user is not working on its permanent or primary computer. In keep mode, the mail remains in the mailbox even after its retrieval. The mail is read by the user, but it is kept in the mailbox for later retrieval and organizing of mail on users permanent computer.

Definition of IMAP

Internet Mail Accessing Protocol (IMAP) is also a mail accessing agent like POP3. But it is more powerful, has more features and is more complex than POP3. The POP3 protocol was found deficient in many ways. So IMAP is introduced to overcome these deficiencies.

POP3 does not allow a user to organize mails on the mailbox. The user can not create different folders on the server. The user can not partially check the content of emails before downloading them. The user has to download an email to read it, in POP.IMAP is used to access the mail from the mailbox at the mail server. Using IMAP the user can check the email header before downloading it. The user is able to check the content of the email for a particular string of character that too before downloading the email.

In case, the bandwidth is limited, using IMAP the user can partially download the mail. It is useful in case the email contains multimedia with high bandwidth requirement. The user can create, delete or rename the mailboxes on the server. The user can also create a hierarchy of these mailboxes in a folder. This is how IMAP is more powerful than POP3 protocol.

Thick vs. Thin Client Applications

A thin client machine is going to communicate with a central processing server, meaning there is little hardware and software installed on the user’s machine. At times, thin may be defined as simply not needing the software or operating system installed on the user machine. This allows all end users’ systems to be centrally managed and software deployed on a central server location as opposed to installed on each individual system.

Thin clients are really best-suited to environments in which the same information is going to be accessed by the clients, making it a better solution for public environments. For this reason, thin clients are often deployed in hotels and airports, where installing software to all systems wouldn’t make sense. It would be a massive headache for IT to both deploy and maintain.

When using thin clients, compared to a feature-rich desktop PCs today, they often tend to look a bit primitive and outdated. Since many thin clients run on very little hardware, it is impossible to incorporate rich graphical user interfaces. To use the client, an input device (keyboard) and viewing device (display) is usually the basic requirements. Some may not even require a mouse.

In contrast, a thick client will provide users with more features, graphics and choices making the applications more customizable. Unlike thin clients, thick clients do not rely on a central processing server because the processing is done locally on the user system, and the server is accessed primarily for storage purposes. For that reason, thick clients often are not well-suited for public environments. To maintain a thick client, IT needs to maintain all systems for software deployment and upgrades, rather than just maintaining the applications on the server. Additionally, thick clients often require operating specific applications, again posing more work and limitations for deployment. The trade-off is a more robust and local computing environment.

Difference Between Client and Server

In computing terminology, both “client” and “server” refer to computers that are used for different purposes. A client is a small computer that accesses a server through a network. For example, in an organization, an employee logs in to the client machine to access the files and applications running on a server machine. This two-tier architecture is also known as client-server architecture which mainly focuses on the division of labor in an organization. A server machine is a large-capacity computer that can store a wide variety of files such as application and data files. There are various types of servers, such as application server, file server, web server, database server, print server, proxy server, game server, standalone server, etc. A client can be classified into fat, thin, and hybrid. A fat client supports both local storage and local processing. A thin client is a less powerful machine with minimum hardware installed. It usually utilizes the resources of a host machine and relies on the server to perform any data processing. The primary job of a thin client is just to graphically display the images provided by an application server. A hybrid client processes locally but relies on the server for data storage.

Some application servers may require users to log in from their client machines in order to access specific applications utilizing the client-server architecture. The client machines can not only access the applications and data files, but they can also use the processor of the server to perform certain tasks without having to add any additional hardware resources to the client machine.

The client computer usually contains more end-user software than the server computer. A server usually contains more operating system components. Multiple users can log into a server at the same time. A client machine is simple and inexpensive whereas a server machine is more powerful and expensive.

The main difference between a client machine and a server machine is in its performance. The client machines are considered optimal for applications which require speedy start-up times. A server machine is considered optimal for applications where the emphasis is more on performance.

1. A client machine is a small computer with a basic hardware configuration whereas

a server machine is a high-end computer with an advanced hardware configuration.

2. A client is a simple and less powerful machine whereas a server is a powerful

3. A client is used for simple tasks whereas a server is used for storing huge data

4. A server delivers high performance compared to a client machine.

5. A server supports simultaneous, multiple user log-ins whereas a client supports a

Below pros and cons of the solutions. These are the first that comes to my mind, there are surely others.

Cookie Pros:

  • scalability: all the data is stored in the browser so each request can go through a load balancer to different webservers and you have all the information needed to fullfill the request
  • they can be accessed via javascript on the browser
  • not being on the server they will survive server restarts
  • RESTful: requests don't depend on server state

Cookie Cons:

    to 80 KB (20 cookies, 4 KB each)
  • secure cookies are not easy to implement: take a look at the paper A secure cookie protocol

Session Pros:

Session Cons:

  • more difficult to scale
  • on web server restarts you can lose all sessions or not depending on the implementation
  • not RESTful

You probably mean the difference between Http Only cookies and their counter part?

Http Only cookies cannot be accessed (read from or written to) in client side JavaScript, only server side. If the Http Only flag is not set, or the cookie is created in (client side) JavaScript, the cookie can be read from and written to in (client side) JavaScript as well as server side.

All cookies are client and server

There is no difference. A regular cookie can be set server side or client side. The 'classic' cookie will be sent back with each request. A cookie that is set by the server, will be sent to the client in a response. The server only sends the cookie when it is explicitly set or changed, while the client sends the cookie on each request.

But essentially it's the same cookie.

But, behavior can change

A cookie is basically a name=value pair, but after the value can be a bunch of semi-colon separated attributes that affect the behavior of the cookie if it is so implemented by the client (or server). Those attributes can be about lifetime, context and various security settings.

HTTP-only (is not server-only)

One of those attributes can be set by a server to indicate that it's an HTTP-only cookie. This means that the cookie is still sent back and forth, but it won't be available in JavaScript. Do note, though, that the cookie is still there! It's only a built in protection in the browser, but if somebody would use a ridiculously old browser like IE5, or some custom client, they can actually read the cookie!

So it seems like there are 'server cookies', but there are actually not. Those cookies are still sent to the client. On the client there is no way to prevent a cookie from being sent to the server.

Alternatives to achieve 'only-ness'

If you want to store a value only on the server, or only on the client, then you'd need some other kind of storage, like a file or database on the server, or Local Storage on the client.