The ESRI dev summit was a great experience. Meeting fellow developers is always good - you talk the same language, exchange ideas, receive feedback, discuss how things can be made better,... I could go on and on.Ok, so I was asked quite a few server related questions at the summit: What should I keep in mind while coding against the server? Any do's and dont's? Any particular classes / methods I should read more about? etc... So here I'll talk about certain points you should keep in mind while working with the ArcGIS Server, particularly the MapServer:
Use the description objects: Sure the MapServer gives you access to the IMap but you don't have to go there. A lot can be accomplished by using the IMapDescription, ILayerDescription, et al.
Release the ServerContext: In a pooled environment you are sharing the server object with other users. So it's your responsibility to release the context once you have performed your set of operations. For web applications, this translates to releasing the context after every request. Of course, if you are using the ADF, the ADF does that for you so you need not worry. But even then it's good to keep this in mind.
Do not reference server objects after the context has been released: Do you continue to work with the Statement object once the JDBC Connection has been closed? NO. Why? Because aStatement can be executed only while the Connection is live. Similarly, you should not reference ANY server objects once you have released the IServerContext. If you want to persist the state of any server object, you should use the saveObject() method to get a serialized string representation of the object before releasing the context. You can once again rehydrate the object by using theloadObject() method once you have regained access to the context.
In case you had forgotten - use the description objects: Did you know you could add serializable custom graphics to the IMapDescription object?
Use methods exposed by the MapServer: Look at the javadoc for the MapServer and for all the interfaces that it implements. It can do a lot more than you might think - you can export maps, layouts, do queries, identifies, get feature info, handle SOAP requests, and a whole lot more.
Create server objects on the server: You don't create RMI objects on the client. You don't create EJBs on the client. Similarly, you don't create ArcGIS server objects on the client. ALWAYS use theIServerContext.createObject() method to create all and any ArcObject in a server application within your server context at the server.
BTW, use the description objects: Did you know you could change layer visibilities, select features, even set definition expressions with the ILayerDescription object?
This by no means is an exhaustive list but something which might help you when working with the server. Oh yeah, in parting, in case you had missed: use the description objects!
Posted by Keyur Shah
Labels: arcgisserver, bestpractices, esri, java
Are there inexpensive online training resources for ArcGIS Server?
Yes. ESRI provides free, self-paced online training for ArcGIS Server via our popular training seminars. Training seminars deliver focused lectures and demonstrations on the topics most asked for by our customers. Each recorded session lasts approximately 60 minutes.
Check out the top 10 ESRI Training Seminars for ArcGIS Server:
1. Building Mashups Using the ArcGIS APIs for JavaScript
2. Authoring and Publishing Optimized Map Services
3. Using ArcGIS Server Geoprocessing Services
4. Implementing and Optimizing ArcGIS Server Map Caches
5. Publishing KML Services with ArcGIS Server 9.3
6. Building Applications with ArcGIS Server Using the Java Platform
7. Implementing Security for ArcGIS Server 9.3 Java Solutions
8. Implementing Security for ArcGIS Server .NET Solutions
9. ArcGIS Server Setup and Administration
10. Imagery in an Enterprise GIS
How do I create a Web application with ArcGIS Server?
Watch this quick video: Creating a Web Application with ArcGIS Server Manager.
Are there free resources available to help me get started with ArcGIS Server?
Yes. ESRI provides Web help for both ArcGIS Server for the Microsoft .NET Framework and ArcGIS Server for the Java platform. These online documents are excellent resources for understanding important concepts and include valuable tutorials to help you get started quickly. At 9.3, the ArcGIS Server Resource Center provides you with access to online software developer kits (SDKs), sample GIS servers, and online content that you can include in your applications.
Other free resources include
·ArcGIS Server Resource Center
·ESRI Instructional Podcasts and Speaker Series Podcasts
·The ArcGIS Server Development Blog
·The ArcGIS Explorer Blog
·The EDN Web Site Blog
·Inside the Geodatabase
What is ArcGIS Explorer?
ArcGIS Explorer is an easy-to-use geobrowser client for mapping and 3D visualization. It provides a fast and simple way to access the rich functionality of ArcGIS Server. It is intuitive and free. This software is designed to work as a client to ArcGIS Server and can integrate other Web services including OGC WMS, ArcIMS, ArcWeb Services, and KML. ArcGIS Explorer can also read and display local data including shapefiles, file geodatabases, and a wide variety of image formats.
ArcGIS Explorer is not a stand-alone solution but rather an integrated part of the ArcGIS system. ESRI believes that ArcGIS Explorer will be very powerful for GIS organizations to make their GIS knowledge universally available.
Go to the ArcGIS Explorer blog to find out more.
Can you use ArcGIS Server to manage imagery?
Yes. At 9.3, ArcGIS Image Server is integrated with ArcGIS Server as an optional extension: ArcGIS Server Image Extension. For a good overview of ESRI's image management solution, read the ArcUser article, Visualizing an Enterprise Approach to Imagery.
Can I deploy the ArcGIS Web Mapping APIs locally?
Yes. DVD media for the ArcGIS Web Mapping APIs is available for customers with Standard or Advanced editions of ArcGIS Server 9.3 or above, as well as EDN subscribers or users of the Web Mapping APIs for commercial use. ESRI recommends that you use the ArcGIS Web Mapping API SDKs, hosted by ESRI. This will give you access to the latest samples and tutorials as well as additions to the API. If your organization runs on a restricted network with no access to the Internet, you can order any of the ArcGIS Web Mapping APIs from ESRI Customer Service.
Please note that the ArcGIS Web Mapping APIs have a release schedule different from ArcGIS. If you install the APIs locally, you will need to order a new DVD to obtain the latest copy.
What platforms are supported by ArcGIS Server?
See ArcGIS 9.3 System Requirements for details.
What licensing options are offered for ArcGIS Server?
Depending on what features you need and how many simultaneous connections to the multiuser geodatabase you plan to support, you can choose between three editions of ArcGIS Server (Advanced, Standard, and Basic). The functional editions of the product include
·Basic—This edition provides users with a comprehensive GIS server for spatial data management. It focuses on organizing and managing geographic datasets.
·Standard—This edition provides all the features of the Basic edition plus visualization (mapping) and spatial analysis. It also includes 2D mapping and 3D rendering (globe) services; browser-based editing capabilities; and a suite of related features such as geocoding, gazetteer, and routing.
·Advanced—This edition provides all the features of the Standard edition, along with advanced spatial analysis and modeling and a configurable mobile GIS application. The Advanced edition also includes four advanced analysis extensions (3D, Spatial, Network, and Geostatistical) at no additional cost.
Furthermore, each functional edition has levels that define capacity. These levels are
·Workgroup—This level is designed and limited to run on a single machine and includes a SQL Server Express database engine. The Workgroup level supports 10 simultaneous connections to a multiuser geodatabase and 4 GB of data storage on a multiuser geodatabase.
·Enterprise—This level is designed to run and optionally deploy on multiple machines and on a user-defined multiuser database (IBM DB2, Informix Dynamic Server, Microsoft SQL Server, Oracle, or PostgreSQL). The Enterprise level supports unlimited simultaneous connections to a multiuser geodatabase and unlimited storage capacity.
For more information about ArcGIS Server editions and levels, see the ArcGIS Server 9.3.1 Functionality Matrix.
Talk to your local ESRI representative to find which configuration of ArcGIS Server is right for your organization.
How is ArcGIS Server licensed in a virtualized environment?
ArcGIS Server has two licensing options. You can choose to license by the number of cores on either the physical or virtual servers (as described below), whichever is the smaller number.
Option 1: Licensed by the number of cores on the virtual server—When creating a virtual server, a specific hardware server emulation configuration is typically defined. For example, a virtual server could be configured to run on a 2-, 4-, 8-, or 16-core physical server (the physical server does not matter for this option) or could be configured to use the cores from multiple physical servers. If the virtual server is configured as a 4-core virtual server, the license (and the license fee for it) would be a 4-core license. If the virtual server is configured as an 8-core virtual server, then the license and license fee would be a 4-core license with 4 additional cores. In this license model, the number of cores for the virtual server configuration is used to determine the license fee. The number of cores on any physical servers that support the virtual server are notused to determine the license fee.
Option 2: Licensed by the number of cores on the physical servers on which the virtual server is defined—Customers can license the physical servers on which virtual servers are configured. Generally, this model requires that all cores on the physical servers supporting virtual server configurations must be licensed. However, some virtualization technology now supports hardware partitioning. If the customer can document that their virtualization technology supports hardware partitioning, ESRI allows licensing based on the specific hardware resources being utilized by the hardware partition. For example, if the virtualization software supports creating a virtual server that utilizes a particular socket, or specific cores on a socket, then licensing is based on the specific number of physical hardware cores specified. Note: fractional partitioning below the core level still requires that the entire core be counted for licensing purposes. When licensing by the physical server, customers are free to install and run any number of instances of ESRI server software in any virtual servers that they create without the need for additional software licenses, provided that the physical server they are using is properly licensed to run this server software.
In summary, customers can choose whichever option provides the least number of cores to be licensed.
Can an old ESRI Copy Protected (ECP) license registration code be used for licensing newer versions of ESRI software?
No. The ESRI products ArcGIS Server, ArcGIS Engine, and ArcIMS require a new ECP registration code for each released product version.Contact ESRI Customer Service for specific information on product registration, such as obtaining a new registration number or an authorization file.
Do I have to uninstall ArcGIS 9.3 to upgrade to ArcGIS 9.3.1?
Upgrading to ArcGIS 9.3.1 does not require uninstalling ArcGIS 9.3. You can work in mixed environments of ArcGIS 9.3 and ArcGIS 9.3.1 within the same organization since geodatabases, map documents, and APIs did not change between versions.
How do I upgrade my existing ArcGIS Server applications from 9.2 to 9.3?
See the help topic Moving to ArcGIS Server 9.3.
Is an additional license required to install components of ArcGIS Server on another machine (Distributed Setup)?
It depends. At 9.3.1, ArcGIS Server Enterprise users can deploy the following components on multiple machines without paying an additional deployment license fee: Web ADF—SDK or Runtime, Web Service Handlers, and Server Object Manager. If you have ArcGIS Server Workgroup, then yes, you will have to pay additional licensing fees. Talk to your local ESRI representative for more details.
Can I use the Windows XP or Vista operating system as a production environment for ArcGIS Server?
ArcGIS Server 9.3 supports Windows XP and Vista operating systems for basic testing and application development use only. They are not recommended for deployment in a production environment.For more information on Microsoft Vista support, see ESRI Support Center article 34020.
Does ArcGIS Server support 64-bit processors?
ArcGIS on Windows is supported on 64-bit processors with ArcGIS 9.2 Service Pack 3 and higher. Service Pack 3 supports Windows XP 64-bit and Windows 2003 Server 64-bit operating systems. ArcGIS 9.2 Service Pack 3 runs as a 32-bit application on these 64-bit Windows platforms, thereby taking advantage of some of the performance benefits of the 64-bit environment.
ArcGIS Server for .NET and Java and ArcIMS are native 32-bit applications. They are each certified running as a 32-bit application on 64-bit (x64) Microsoft Windows. Web server support is based on the Web server vendor's support of 64-bit Microsoft Windows. Check with a Web server vendor to see if the Web server is supported on 64-bit Microsoft Windows. In addition to Windows, ArcGIS Server for Java and ArcIMS are supported on Solaris and Linux. ArcGIS Server for Java and ArcIMS are both supported in a Solaris 64-bit environment. ArcGIS Server for Java and ArcIMS on 64-bit Linux are not supported.
For more information on 32- and 64-bit support, see ESRI Support Center article 29391.
Can ArcGIS Server and other ArcGIS products be installed on the same Linux or Solaris machine?
Yes, it is possible to install ArcGIS Server and other ArcGIS products on a single Linux/Solaris machine. To prohibit the applications from interfering with one another, ArcGIS Server must be installed with a different user account and in a separate location from the other ArcGIS products. The other ArcGIS products must also be installed in Single User mode, not Multiple User mode. Warning messages are displayed reminding the user of these requirements if conflicts are detected during installation.
What is the difference between the new image service available with ArcGIS Server 9.3 and the new ArcGIS Server Image extension?
An image service is one of the core services available in ArcGIS Server. This means that you can create image services out of the box with the Standard and Advanced editions of ArcGIS Server.
·Image services can be created from any raster dataset in any format.
·Image services provide advanced visualization. For example, ArcGIS Desktop users can connect to an image service and change the band combination of a multiband image.
·Image services provide optimized data transmission. You can adjust the image service for low bandwidth networks.
·Image services can be used as inputs to geoprocessing. For example, ArcGIS Desktop users can use image services with other geoprocessing tools to model geophysical phenomena, such as solar radiation or change detection.
However, to take advantage of all the capabilities an image service has to offer, you will need the ArcGIS Server Image extension, which is available for both Standard and Advanced editions of ArcGIS Server.The Image extension allows you to create a compiled image service definition file (.ISCDef). With ISCDef files, you can define which images are included in the image service; how they will be mosaicked; and other parameters like orthorectification, pan sharpening, and enhancements. This innovative approach to imagery publication reduces the time between imagery acquisition and exploitation.
·The Image extension simplifies image management. For example, not only can you directly publish images in their raw format (without preprocessing) but you can also create an image service from a large number of individual images that may be in different projections, pixel sizes, or locations.
·The Image extension improves the performance of your image services.
·The Image extension allows you to optimize imagery for multiple applications within a single service. For example, elevation data can be served with a range of different renderings.
·The Image extension includes technology that allows you to dynamically change the ordering of overlapping imagery, which is critical for temporal analysis.
·The Image extension also provides detailed metadata about the imagery being viewed.
Find out more about the ArcGIS Server Image extension.
Is there an overview of the enterprise geodatabase architecture?
For a concise overview of the enterprise geodatabase and a list of related resources, read the ArcUser article Enterprise Geodatabase 101. If you just need a basic understanding of the geodatabase, read the Geodatabase Essentials—Part I: What Is the Geodatabase? post on the Inside the Geodatabase blog.
What can I do with my database to improve performance?
Read the Five Best Practices for Maintaining an ArcSDE Geodatabase post on the Inside the Geodatabase blog.
Does ArcGIS Server support an open source enterprise database?
Yes—PostgreSQL. Read the PostgreSQL database support at ArcGIS 9.3 post on the Inside the Geodatabase blog.
How can I learn more about map caching to improve performance?
If you're new to map caching, start with Map caching for beginners and Updating your map caches automatically on theArcGIS Server Development blog. Next, read part 1 ofDeconstructing the map cache tiling scheme. Then read Part 2:Working with map caches programmatically.
You may also be interested in the Creating a 3D globe cache from a 2D map cache post.
Watch the free training seminar, Authoring and Publishing Optimized Map Services.
Tutorials can help you create a map cache and tiling scheme in the Web Help.
Can I have the .NET 2.0 framework and .NET 3.5 framework on the same machine?
Yes. ArcGIS Server for the .NET Framework at 9.3 requires a minimum of .NET Framework 2.0 to run applications, but 2.0 and 3.5 can coexist without issues.
What has ESRI done to improve the Web ADFs?
At 9.3, we have dramatically improved the performance of .NET Web ADF applications by reducing the number of callbacks to the server and optimizing different aspects of the application. We have also worked on improving the user experience while configuring applications with ArcGIS Manager, and while using the Web mapping applications as well.
A new out-of-the-box Print task has been created, and its source code is now part of the code galleries, available from the Developer Help at resources.esri.com. We will continue to post the source code of new tasks in the future.
Working from a developer's point of view, we have fully implemented MS AJAX, allowing developers to follow standard coding patterns in .NET. Java support to AJAX has also been improved. Also, Web ADF Java components are delivered to the NetBeans platform as NetBeans plug-ins that can be updated online in the same way that other standard NetBeans modules can be delivered/updated.
Finally, both the .NET and Java Web ADFs include more comprehensive developer documentation.
Does the Web ADF for .NET 9.3 support Microsoft AJAX 1.0?
At 9.3, ESRI plans to support Web ADF controls with ASP.NET AJAX. For a good discussion on this topic, read the Using ASP.NET AJAX with the Web ADF post on the ArcGIS Server Development blog.
Where can I learn more about best practices or tips and tricks for developing with ArcGIS Server?
For lists of free resources, visit Creating Effective Web Maps. In addition, visit the ArcGIS Server Resource Center for detailed documentation, samples, and code galleries. Subscribe to the ArcGIS Server blog for excellent posts about development tips and tricks and best practices.
Can Bing Maps (formerly Microsoft Virtual Earth) be used in Web mapping applications built on top of ArcGIS Server 9.3.1?
Yes. ArcGIS Server users can access a free 90-day watermarked evaluation of Microsoft Bing Maps that can be leveraged with the .NET ADF as well as JavaScript, Flex, and Silverlight APIs. After the evaluation period, ArcGIS users can purchase an annual subscription.
ArcGIS Server seems oriented to large, integrated systems. Can it be used by small organizations or workgroups?
Yes. ArcGIS Server Standard Workgroup is specifically designed for smaller organizations. For more information about ArcGIS Server editions and levels, see the ArcGIS Server 9.3.1 Functionality Matrix.
Talk to your local ESRI representative to find which configuration of ArcGIS Server is right for your organization.
How can ArcGIS content be exported for visualization in Google Earth?
At 9.3, you can publish your GIS content as Keyhole Markup Language (KML), an XML-based file format used to represent geographic features in applications such as Google Earth and ArcGIS Explorer. If you haven't tried it yet, download ArcGIS Explorer, a free, Google Earth-like application that handles KML easily.
For ArcGIS Desktop, there two new tools in ArcToolbox: Map To KML and Layer To KML. These tools will allow you to publish your GIS content and add it to Google Earth and ArcGIS Explorer. You will literally be able to drag and drop the KML files on those applications to visualize the information. This means you won't have to include basemap information in your map or create a basemap layer, because you'll be using Google Maps or ArcGIS Explorer basemaps.
For ArcGIS Server, any service you create is automatically output as KML as well. Keep in mind that ArcGIS Server services are available to a variety of client applications, including ArcMap, ArcGIS Explorer, Google Earth, Google Maps, and Microsoft Virtual Earth. Check out the services directory Web site for the Portland service hosted on ArcGIS Online. Here, you get metadata about the service, and you can preview the ArcGIS Server service (Portland/Portland_ESRI_LandBase_AGO (MapServer)) that's open to the public in any of those client applications. If you choose Google Earth, you can download the KMZ file for the service, then drop it onto Google Earth or ArcGIS Explorer. If you choose ArcGIS Explorer, you can download the NMF file for the service, then drop it onto ArcGIS Explorer. If you choose ArcGIS JavaScript, you see an interactive map of the service. With ArcGIS Server 9.3, a services directory Web site is automatically generated for every service you create.
Does ESRI support ArcGIS Server in virtualized environments?
Yes. For details, read ArcGIS Server and Virtualization [PDF].
Is there compatibility between ArcGIS Server and ArcIMS products and versions?
Yes. For more information, see the FAQs for compatibility among ArcGIS Server and ArcIMS products and versions. [PDF]
What versions of AutoCAD does ArcGIS for AutoCAD work with?
ArcGIS for AutoCAD requires the .NET API implemented in AutoCAD 2007 and newer versions. AutoCAD 2007, 2008, and 2009 are supported. This includes all AutoCAD-based products that support the AutoCAD .NET 2.0 APIs such as AutoCAD 2007, 2008, and 2009. AutoCAD versions prior to 2007 and AutoCAD LT do not support these APIs required by ArcGIS for AutoCAD.
Can the ArcGIS Mobile SDK connect to ArcGIS Server for Java running on UNIX or Linux?
Yes, the ArcGIS Mobile SDK in ArcGIS Server can be used to connect to ArcGIS Server Advanced editions. The type of Web ADF, .NET, or Java installed on the server does not matter.The server object container (SOC) must be installed on a Windows machine. SOCs installed on Linux and Solaris machines do not work with the ArcGIS Mobile SDK.
Are there instructions for securing ArcGIS Server using a reverse proxy system?
For the complete discussion of using reverse proxy with ArcGIS Server, see ESRI Support Center article 32634.
Monday, October 19, 2009
Subscribe to:
Post Comments (Atom)
ArcCommunity
About Me
- Manoj Singh
- Kanpur/Almora, Uttar Pradesh, India
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.