Developing and deploying an extension (SOE or SOI) for a service takes several steps.
- Install an SDK—Before you begin working with SOEs, you need to install one of Esri's SDKs for your language of choice, and have a corresponding integrated development environment (IDE) in which you can write and debug the code. Esri offers the ArcObjects SDKs (for .NET and for Java) for developing extensions for services published from ArcMap, and the ArcGIS Enterprise SDK for developing extensions for services published from ArcGIS Pro..
Make sure you've already installed your IDE of choice prior to installing either the ArcGIS Enterprise SDK or an ArcObjects SDK.
- Write the code—When working in Java, you can get started creating an extension using an Eclipse plug-in wizard. The wizard ensures that your extension implements the required interfaces and can respond to REST or SOAP web service calls.
- Build your project and package it into an .soe file—SOEs and SOIs are both encapsulated in an .soe file. After compiling your code, you create the .soe file using Esri-provided utilities integrated into your IDE.
- Deploy the extension—Before you can use your extension, you need to deploy it to ArcGIS Server. You can do this in ArcGIS Server Manager by browsing to your .soe file.
- Enable the extension on your service—When you create or edit the service, you can enable the extension. The next time the service starts, the extension is available for use. If the extension exposes properties, a property page in Manager allows you to set those.
If you're developing an extension, you can extend its property page. The samples in the SDKs explain how to do this.
- Use the service in a client application that you develop—Since an extension is just a web service that takes HTTP requests, many types of clients can invoke it. In the case of REST extensions, this includes the ArcGIS web and mobile APIs. In the case of SOAP extensions, it includes any client that can make a SOAP web service request. The client code must set up the parameters for the extension, make the web service call, and handle the response.
This section of the ArcGIS Enterprise documentation details these steps in full detail.