BLOG
|
If you got Gateway error (502), based on my search on this topic I found this post that might help: https://social.msdn.microsoft.com/Forums/azure/en-US/a47a60d9-9f17-4254-8a63-bd7f62dc1166/site-sub-application-run-as-iis-application-error-502-and-folder-permissions?forum=windowsazurewebsitespreview
... View more
08-30-2021
01:44 PM
|
0
|
0
|
2252
|
BLOG
|
Introduction Verizon Connect provides multiple fleet management solutions for tracking and managing your fleet of vehicles (Figure 1). This blog will focus specifically on Verizon Connect Reveal and how you can connect to the data feed and perform real-time ingestion and analysis with ArcGIS GeoEvent Server. Figure 1: Verizon fleet management solutions Verizon Connect Reveal provides an API to receive position data from your fleet of vehicles (Figure 2). A couple approaches are available for how you receive the data including polling a REST API endpoint on demand or having the data automatically pushed by a Verizon server to a client endpoint. This blog focuses on the GPS Push Service which based on the latter approach. This approach requires the client endpoint to be set up in such a way that a Verizon server can connect and send the data to it. The client endpoint needs to be protected using basic authentication. The Verizon server will authenticate with the client endpoint prior to sending data. This blog uses Windows IIS and the following steps highlight enabling basic authentication and routing from an IIS endpoint to an ArcGIS GeoEvent Server connector endpoint. An organization firewall or a load balancer can be used in place of IIS. Figure 2: Verizon GPS Push Service It is assumed you have GeoEvent Server installed and configured and are familiar with configuring inputs, GeoEvent Services, and outputs in GeoEvent Manager. If you’re not, access the available quick start guide, documentation, and tutorials. It is also important to properly configure the SSL certificate for the server if applicable. This blog refers to GeoEvent Server 10.8.1. This blog is broken down into five sections. Follow the steps outlined in each section to properly configure, ingest, process, and disseminate the Verizon Connect Reveal data. Configure a GeoEvent Server connector endpoint to receive data from Verizon Connect Reveal Enable basic authentication on the machine Route traffic from an IIS endpoint to a GeoEvent Server connector endpoint Configure GeoEvent Server to process the Verizon Connect Reveal data Test the Verizon Connect Reveal data feed Configure a GeoEvent Server connector endpoint to receive data from Verizon Connect Reveal First, configure a GeoEvent Server input connector to receive data from Verizon Connect Reveal. Open a web browser and navigate to ArcGIS GeoEvent Manager (e.g., https://<your_machine>:6143/geoevent/manager). Click Add Input and then click Receive JSON on a REST Endpoint. Configure the new input connector as illustrated below. Click Save to save the new input. The new verizon-gps-rest-json-in input will be listed under Inputs. Click play to start the input and make it ready to receive incoming data. Notice the input changes from a stopped state to started, indicated by the green icon to the left of the input. Click the verizon-gps-rest-json-in input to open the properties. Copy and paste the URL in the URL parameter to a text editor. You will use this later for a URL Rewrite rule. Enable basic authentication on the machine To enable basic authentication, you will rely on a feature in the Windows operating system. Open the Control Panel and navigate to Programs > Programs and Features. Click Turn Windows features on or off. Navigate to Internet Information Services > World Wide Web Services > Security and check the Basic Authentication checkbox. Click OK to apply the change and Close once the change is applied. Next, you will create a local account on the machine that will provide the URL endpoint for the Verizon Connect Reveal server to authenticate, connect to, and send data to. Open Computer Management and navigate to Local Users and Groups > Users and from More Actions click New User. Enter your User name and Password then confirm. Click Create to create the new user. In File Explorer, create a new folder at C:\VerizonReveal. Open Internet Information Services (IIS) Manager and navigate to Sites and right-click Default Web Site and choose Add Virtual Directory. Enter the Alias and Physical path as illustrated below. then click the OK button to dismiss the dialog. Click OK to add the new virtual directory. The new virtual directory should now appear under Default Web Site. To test the virtual directory, create a new index.html file in the folder C:\VerizonReveal. Open index.html in a text editor and copy and paste the content below. <!DOCTYPE html> <html> <body> Hello Verizon </body> </html> Save the text file. In a browser, enter http://localhost/verizonreveal. The text Hello Verizon should display on the page. Next, it is necessary that basic authentication be enabled for the virtual directory in IIS Manager. Open Internet Information Services (IIS) Manager and navigate to Sites > Default Web Site and select the verizonreveal virtual directory. Double-click Authentication or click Open Feature from the Actions panel on the right. Select Basic Authentication then choose Enable under Actions on the right panel. Notice the Status column for the Basic Authentication changed from Disabled to Enabled. The Anonymous Authentication status is Enabled by default, select it and then choose Disable from Actions panel on the right. The status of the Anonymous Authentication changes to Disabled. To test the basic authentication, open the browser and navigate to http://localhost/verzionreveal/. A Sign in dialog will pop up. Enter your Username and Password for the verizonconnect user and click Sign in. If authentication is successful, the webpage will display Hello Verizon, indicating basic authentication is working properly. Route traffic from an IIS endpoint to a GeoEvent Server connector endpoint IIS provides the URL Rewrite extension that can be used to redirect HTTP traffic. The URL Rewrite module should be installed first. In a browser, navigate to the Web Platform Installer on the Microsoft IIS site. Optionally, in IIS Manager, click Get New Web Platform Components to access the same webpage. Click Install this extension to download the installer. Open the WebPlatformInstaller.msi installer after it downloads. After the installation completes, relaunch IIS Manager to refresh its content. Select your machine, scroll to bottom of the middle panel, and double-click Web Platform Installer. In the search box, search for URL Rewrite. Click Add to add it to add URL Rewrite 2.1 to the installation list. In addition to the URL Rewrite module, the Application Request Routing module also needs to be installed. In the search box, search for ARR and click Add to add Application Request Routing 3.0. Click 2 Items to be installed to show the items to install. Verify Application Request Routing 3.0 and URL Rewrite 2.1 are listed. Click Close to dismiss the dialog. Click Install to install the two items. Click I Accept to continue with the installation. The two items will be installed. After the installation completes, relaunch IIS Manager to refresh its content. In the IIS group, double-click Application Request Routing Cache to open it. In the Actions panel, in the Proxy subgroup, click Server Proxy Settings. Review the Application Request Routing settings and ensure they match the illustrations below. Navigate back to Home in IIS Manager by clicking the machine name in the tree view. Make sure the machine name or Default Web Site is selected before creating the URL Rewrite rule. Double-click on the URL Rewrite to open it. Click Add Rule(s) from the Actions panel. On the Add Rule(s) dialog, select Blank rule and click OK. Enter the rule configuration as illustrated in the example below. NOTE: The Rewrite URL you enter should be the same URL as the GeoEvent Server input connector you created in the Configure a GeoEvent Server connector endpoint to receive data from Verizon Connect Reveal section above. For this example, the Rewrite URL is https://<your_server>:6143/geoevent/rest/receiver/verizon-gps-rest-json-in Click Apply to create the rule. Click Back to Rules to navigate back, the newly created rule will be listed. With everything configured, GeoEvent Server is now ready to receive data from the Verizon Connect Reveal server. Configure GeoEvent Server to process the Verizon Connect Reveal data The Verizon Connect Reveal GPS Push Service data contains sub-hierarchies in its data structure. This data is not easily translated to a feature schema that can be used in ArcGIS applications. So, in this case, the GPS Push Service data needs to be mapped to a flattened schema first. You can accomplish this using the real-time processing capabilities of GeoEvent Server. Below is the hierarchical data directly from the GPS Push Service: And here is the flattened schema required by ArcGIS applications: The steps for flattening the data structure will not be outlined in this blog. The Field Mapper Processor illustrated in the yellow box below) should be used to map the GPS Push Service data from the original hierarchical schema to the flattened schema. Additional guidance on the real-time processing workflows of GeoEvent Services can be found in the GeoEvent Server tutorials. Test the Verizon Connect Reveal data feed Prior to requesting Verizon Connect Reveal start sending data to the IIS endpoint, additional tests should be conducted first. Apps such as Boomerang can be used to post the data to the IIS URL for testing. Open a browser and navigate to Boomerang. Click Quick Request. Change GET to POST. Enter the IIS URL (in this example, https://<your_server>/verizonreveal/). Copy the sample JSON data below and paste into JSON body panel. {
"SequenceId": 162517.0,
"UpdateUTC": 1614364635000,
"DeviceTimeZoneOffset": -5.0,
"DeviceTimeZoneUseDST": false,
"DisplayState": "Moving",
"IsPrivate": false,
"SpeedKmph": 30.0,
"DirectionDegrees": 340.0,
"Heading": "North",
"DeltaDistanceKm": 0.54,
"OdometerKm": 64853.82300541169,
"TotalEngineMinutes": 179742.0,
"IdleTimeMinutes": 0.0,
"Latitude": 35.78075055555556,
"Longitude": -77.90424,
"DeltaTimeInSec": 89.0,
"SensorBits": 0.0,
"f": null,
"token": null,
"SensorValues": null,
"Vehicle": {
"Number": "1234",
"Name": "Truck1234",
"VIN": "1ABCDEF567890",
"ESN": 1.3E7
},
"Address": {
"AddressLine1": "4020 State Rd 1327, Elm City, NC 27822, USA",
"AddressLine2": "4020 State Rd 1327",
"Locality": "Elm City",
"PostalCode": "27822",
"AdministrativeArea": "NC",
"Country": "USA"
},
"Driver": {
"DriverKeyFobId": 0.0,
"DriverLastName": "Bond",
"DriverFirstName": "Jason",
"DriverNumber": null
}
} Click the AUTH tab and click the BASIC auth type. Enter the USERNAME and PASSWORD for the Verizonconnect user you created earlier. Click SEND. Boomerang displays a 200 OK response code if the transmission is successful. In GeoEvent Manager, the Verizon Connect Reveal input’s count will also increase once the data is received. Upon successfully testing the data stream, GeoEvent Server is now ready to receive data from the Verizon Connect Reveal server. The IIS URL and the basic authentication information should be communicated to Verizon Connect Reveal. It is also recommended you encrypt the traffic using an HTTPS URL to avoid exposing the basic authentication information in the HTTP header. Since the HTTP traffic is being sent over a public network, it is also recommended you obtain a CA-signed certificate for your server from a trusted certificate provider (e.g., Verisign, DigiCert, etc.) and apply it to your server. The PDF version of this article is also available in the attachment. Contributors: Morakot Pilouk, Ph.D., Author Greg Tieman, Editor
... View more
06-02-2021
06:32 PM
|
4
|
7
|
3976
|
POST
|
The data feed came from the Spatio-temporal Big Data Store. Query parameters should be set to trim down the data to be specific to what should be shown on the map. In this case the Flight number field was used and it is not unique enough because more than one Flight number can share the same aircraft. This is a reason why the map shows more flight symbols than it should be, but it is enough to get idea across. To improve this, logic on the back end data store should be used to allow query flights by the tail number which will be unique and show better result on the map.
... View more
12-01-2017
11:06 AM
|
0
|
0
|
799
|
POST
|
If selfsigned certificate is used by ArcGIS Server, this can be fixed by regenerating a new certificate in ArcGIS Server Admin and then edit the machine to use the newly generated certificate. After ArcGIS Server successfully applied the new certificate, restart GeoEvent Windows Service twice to allow GeoEvent to synchronize its certificate/security store with ArcGIS Server. You should be able to login to GeoEvent Manager after that.
... View more
04-05-2017
05:12 PM
|
2
|
1
|
1426
|
POST
|
Hi Shawn, I just built it for 10.4.0 and deployed on an instance of GeoEvent 10.4.1 and it showed up just fine. I also built and tested deploying version 10.5.0 without any problem. I would suggest to check the Log page on GeoEvent Manager. In my case the Log entries were as shown in the screen shot below. And the Reverse Geocoder Processor showed up on the list of Processors under the Site/Components page. If you obtained the jar that built from another machine, make sure to do a 2-step copy of the jar to get around the OS file permission. I normally do this by copying the new jar to my Desktop folder first then copy it in the next step from the Desktop folder to the <geoevent>\deploy. When in doubt, stop GeoEvent Windows service and empty out the <geoevent>\data folder to clear all the old jar caches then restart GeoEvent Windows service. Hope this helps, Morakot
... View more
01-10-2017
05:44 PM
|
1
|
0
|
606
|
POST
|
Hi Cassidy, Make sure the field names and types of the outgoing GeoEvent definition match correctly with the schema of the target Feature Service/Feature Class. They are case sensitive (database dependent). One way to make sure of this is to import the GeoEvent definition from the feature layer of the target feature service. If this is not the case then I would suggest to get in touch with Esri Technical Support to get someone to help diagnosing the problem. Morakot
... View more
11-18-2016
04:21 PM
|
2
|
0
|
890
|
POST
|
Hi Elizabeth, My understanding is not all the Networkfleet services are available to customer. I would suggest to check with your Verizon Networkfleet contact to verify this. For example Sensor will need the Networkfleet hardware integration with vehicle sensor. VehicleReg data will only send out on change, e.g. adding or removing vehicle from the fleet. The entire VehicleReg data has to be obtained by other means if you want to use that for, e.g. enriching the GPS data. Hope this helps, Morakot
... View more
11-18-2016
11:49 AM
|
0
|
0
|
463
|
BLOG
|
Since these required geometric operations, using geofences looks to be the right approach to me. You may want to consider different strategies to do geofencing. For example, if majority of static assets are points you can also keep them as points and generate buffer for each point from the incoming feed before doing geometric test. This will help speeding up the geometric operation to a certain degrees (a polygon against a set of points vs a point against a set of polygons). At the 10.3.0 release, GeoEvent added fast and efficient in-memory Quadtree indexing to speed up geometric operations in real-time. While 27000 geofences may seem to be a lot, the Quadtree indexing will help reducing number of candidate geofences to be tested against the incoming point data from the feed. Holding all 27000 geofences in memory will need RAM. The complexity of geofences (e.g. number of vertices per polygon) will be a factor determining how much RAM/memory allocation will be needed. The rate of the incoming feed also determines the load. To meet the required outgoing rate, the hardware resource running GeoEvent will need to be tuned and scaled accordingly, e.g. adding more RAM, cpu-cores, JVM allocation, or adding more instances of GeoEvent. Hope this helps, Morakot
... View more
02-25-2016
10:56 AM
|
1
|
0
|
397
|
POST
|
I tested the custom connector ais-for-geoevent which is available on GitHub here: https://github.com/pilsna/ais-for-geoevent The author implemented this for GeoEvent 10.2.2. It will need to be slightly modified (e.g. pom file and geometry code) to make it work with GeoEvent 10.3.x or later. In general the connector works well with the raw AIS NMEA. The connector only provides coordinates and a subset of fields though. Morakot
... View more
02-23-2016
09:36 AM
|
2
|
0
|
2674
|
POST
|
The speed unit is the same as the selected distance unit per hour, e.g. Kilometers/hour, Miles/hour. The calculation relies on the temporal order of the incoming messages. It may provide strange results in case of store-and-forward messages where message timestamps were in the past. Small time span may also results in very large number. Please note that these calculations don't work well if the incoming messages are from the GeoEvent Simulator with overridden timestamp at the data rate not matching the real world rate during data capture because the calculated timespan between two consecutive messages won't reflect the actual timespan.
... View more
01-22-2016
11:06 AM
|
1
|
0
|
675
|
BLOG
|
On December 8, 2015, the GeoEvent team has released the update to the FlightAware connector. This is the Release 2 that adapts to the message field order changed by FlightAware. All users should adopt this update as the previous release is no longer functional.
... View more
12-18-2015
05:00 PM
|
0
|
0
|
1396
|
BLOG
|
After adding the Verizon Networkfleet input into GeoEvent Server for the first time, it is time to test it. This can be done without waiting for the actual data to come from the Verizon Networkfleet server and it is a good preparation step to ensure that the internal network behind your organization firewall is in a ready state. The UI of the Verizon Networkfleet input should look similar to the illustration below: Highlight the string value next to the URL and copy the string from localhost to the end of the long GUID to the clipboard (e.g. by using ctrl-c on the keyboard). Using a web browser like Google Chrome or Mozilla Firefox, you can simulate data -- Chrome will be used in this example. Launch Chrome then click on the Apps button in the upper left corner. If you already have the DHC app then it will show up on the browser. Otherwise click on the Web Store, search for the DHC app, and add it to Chrome. Click on the DHC app, Chrome will open another browser window. Fill in the DHC input as shown below: - Set the REQUEST to HTTP or HTTPS and POST - Paste the URL copied from the Verizon Networkfleet input into the input box next to HTTP -- if the HTTP is selected then use 6180 after localhost or 6143 for HTTPS. For HTTPS the browser should accept the certificate from the GeoEvent Server instance otherwise posting will fail. - Set the Content-Type to application/x-networkcar-xml - Copy the test XML from below into the BODY <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE NetworkfleetMessage SYSTEM "http://www.networkfleet.com/dtd/dataconnect/DataConnect.v2.1.dtd"> <NetworkfleetMessage Type="GPS"> <VIN>WAUG5678901234567</VIN> <FleetId>6543</FleetId> <MsgId>1761773890</MsgId> <MessageTime>2007-10-03 22:42:13 GMT</MessageTime> <MessageTimeUTF>1191451333</MessageTimeUTF> <DeliveryStatus>Current</DeliveryStatus> <GPSFixes NumFixes="1"> <GPSFix> <FixTime>2015-1-15 22:42:13 GMT</FixTime> <FixTimeUTF>1191451333</FixTimeUTF> <Latitude>39.87545</Latitude> <Longitude>-119.41060</Longitude> <Ignition>On</Ignition> <Speed Type="Avg" Units="MPH">12</Speed> <Speed Type="Inst" Units="MPH">15</Speed> <Speed Type="Max" Units="MPH">27</Speed> <Heading>224</Heading> <Odometer>94068.528</Odometer> <AgeInMiles>0.012</AgeInMiles> </GPSFix> </GPSFixes> </NetworkfleetMessage> Before clicking the Send button, open another Chrome window and log in to GeoEvent Manager and navigate to the Monitor page. Click Reset Statistics to make sure all the counts are set to 0 and ensure the Verizon Networkfleet input is started. In the DHC app, click Send. If all goes well the DHC app will show 200 OK response and the Verizon Networkfleet input count will increase on the Monitor page in GeoEvent Manager. On the DHC app, click the Send button a few more times and notice the Verizon Networkfleet input count increases each time. To test the data flow through GeoEvent Server, create a GeoEvent Service which includes the Verizon Networkfleet input as well as an output such as Write to a JSON File which you can then inspect the content of the file after sending a few more message from the DHC app. Repeat this same test on another computer to verify GeoEvent Server is able to receive the data from other machines. For this, you will need to replace localhost with the actual machine name of the GeoEvent Server instance in the posting URL in the DHC app. If the count values for the Verizon Networkfleet input in the GeoEvent Manager's Monitor page increases after sending more data from the DHC app, then you are successfully configured. If not, first check the firewall rules on the GeoEvent Server instance and ensure communication on port 6180 or 6143 is allowed. If those ports are allowed but you are still not receiving data, there may be other factors related to your network configurations and rules within your organization that may be preventing the data to communicate between machines. In this case, reach out to your organizations network/IT person for assistance.
... View more
12-18-2015
04:21 PM
|
3
|
2
|
5733
|
POST
|
Hi Marshall, Verizon Networkfleet data will come in with multiple message types in one input stream. Before passing the data to a Field Mapper, it is important to put a Filter by GeoEvent Definition Name before it to prevent message with wrong types getting to the Field Mapper. The structure of the NetworkfleetGPS and NetworkfleetSensor are very similar (they have many fields with the same name and type). Your current processing logic allows any message type to get to both Field Mappers causing null values in the results due to the absence of fields when the unintended message type get to the Field Mappers. Wrong value with the same field name also get mapped to the destination message causing the results to be confusing and unreliable. The screenshot below is an example of how the filters by GeoEvent Definition Name are applied before the Field Mappers. Hope this helps, Morakot
... View more
12-16-2015
03:18 PM
|
2
|
3
|
890
|
BLOG
|
The Esri GeoEvent team has been working with FlightAware, a leading provider of worldwide aviation flight tracking data in over 50 countries across North America, Europe, and Oceania. The FlightAware Connector for GeoEvent is now released on the GeoEvent Gallery. The current release is for GeoEvent 10.3.x. The connector uses the FlightAware Firehose API to receive the real-time data stream from the FlightAware data service directly into GeoEvent. Data received from the Firehose API includes flight positions (e.g., RADAR, ADS-B, Mode S, etc ). Using GeoEvent Stream Service allows real-time visualization of flights on Esri WebMap as well as other GIS applications. The connector supports all five data types: Flight Plan, Departure, Arrival, Cancellation, Position. The connector can be downloaded from here. You will need to Due to the high volume and high frequency data, make sure to have a strong and well-tune machine to receive the real-time data stream from the FlightAware Firehose. The accompanying document provides recommendation on machine and GeoEvent tuning steps. You also need an account/subscription with FlightAware to receive the data. Please visit the FlightAware website for more information.
... View more
09-22-2015
05:51 PM
|
0
|
0
|
452
|
Title | Kudos | Posted |
---|---|---|
4 | 06-02-2021 06:32 PM | |
1 | 01-12-2015 05:13 PM | |
1 | 01-10-2017 05:44 PM | |
1 | 01-22-2016 11:06 AM | |
1 | 07-29-2014 03:14 PM |