AutoGRAPH.NET Service (EN) — различия между версиями

Материал из TK
Перейти к: навигация, поиск
(Configuring)
Строка 1: Строка 1:
 
AutoGRAPH.NET Service provide different protocols for integration with external systems. Currently we have two protocols for this: WCF (Windows communication foundation) and JSON for accessing to [[AutoGRAPH.NET]] core. Schemas configuration can be changed by AutoGRAPH.NET software. AutoGRAPH.NET Service can be run in two modes: as console application and as system service.
 
AutoGRAPH.NET Service provide different protocols for integration with external systems. Currently we have two protocols for this: WCF (Windows communication foundation) and JSON for accessing to [[AutoGRAPH.NET]] core. Schemas configuration can be changed by AutoGRAPH.NET software. AutoGRAPH.NET Service can be run in two modes: as console application and as system service.
  +
  +
[[Файл:AGNetService.png]]
   
 
== Minimal requirements for hardware and software environment ==
 
== Minimal requirements for hardware and software environment ==
Строка 10: Строка 12:
 
== Download links ==
 
== Download links ==
   
Last version: 2015.7.18.1, [[Media:AutoGRAPHNETService20150718 1.zip|Download]]
+
Last version: 2016.2.9, http://agi.tk-chel.ru/install/service/AutoGRAPHService20160209.zip
  +
  +
Examples: http://agi.tk-chel.ru/install/service/AutoGRAPHServiceExamples.zip
  +
  +
Access to our demo service: http://m.tk-chel.ru port 8100 (WCF) or 8300 (JSON), login '''service-example''' password '''12345678'''
  +
  +
Load demo configuration DemoCEBIT into AutoGRAPH.Pro: host m.tk-chel.ru port 2230, login '''demo''' password '''demo'''
   
 
== Console mode ==
 
== Console mode ==
Строка 26: Строка 34:
 
<span class="marker">&nbsp;Don't forget space between binPath= and full path &nbsp;</span>
 
<span class="marker">&nbsp;Don't forget space between binPath= and full path &nbsp;</span>
   
== Configuring ==
+
== Working with service ==
   
  +
===[[AutoGRAPH.NET_Service_Config_en|Configuration]]===
1. Extracting archive with AutoGRAPH.NET Service in some directory 2. Open '''AutoGRAPHNETService.exe.config''' in Notepad. You can see next keys in .config file:
 
   
  +
==='''[[AutoGRAPH.NET_Service_Methods_en|Service methods]]'''===
<pre>
 
<add key="address" value="http://localhost:800/"/>
 
<add key="address-json" value="http://localhost:810/"/>
 
<add key="common-directory" value="C:\ProgramData\AutoGRAPH Shell"/>
 
<add key="data-directory" value="C:\Users\denisio\AppData\Roaming\AutoGRAPH Shell\Data"/>
 
</pre>
 
 
{| border="1" cellspacing="0" cellpadding="5" style="width: 100%;"
 
|-
 
| style="width: 127px;" | address
 
| style="width: 1145px;" | local address end point for working with [https://msdn.microsoft.com/en-us/library/dd699756(v=vs.110).aspx WCF] (<span style="line-height: 20.7999992370605px;">protocol (httpBinding mode)</span>. Uri can be set in url:port format<br/>Also, you can use next variations:
 
*'''<tt>[http://192.168.1.3:8000 http://192.168.1.3:8000]</tt>''' - accept connections on local IP-address 192.168.1.3 and TCP-port 8000 (usually this mode used with several network cards)
 
*'''<tt>[http://0.0.0.0:8000 http://0.0.0.0:8000]</tt>''' or '''<tt><code>[http://*:8000&nbsp http://*:8000]&nbsp;</code></tt>'''- <span style="line-height: 20.7999992370605px;">accept connections &nbsp;</span>on all enabled network interfaces and IP-addressed and TCP-port 8000
 
*'''<tt>[http://127.0.0.1:8000 http://127.0.0.1:8000]</tt>''' - accept connections only locally (usually used with local installed software)
 
 
|-
 
| style="width: 127px;" | address-json
 
| style="width: 1145px;" | <span style="line-height: 20.7999992370605px;">local address end point for working with&nbsp;</span><span style="line-height: 20.7999992370605px;">[https://en.wikipedia.org/wiki/JSON JSON]</span><span style="line-height: 20.7999992370605px;">.&nbsp;Uri can be set in url:port format</span><br/><span style="line-height: 20.7999992370605px;">Also, you can use next variations:</span><ul style="line-height: 20.7999992370605px;">
 
<li>'''<tt>[http://192.168.1.3:8000/ http://192.168.1.3:8000]</tt>'''&nbsp;- accept connections on local IP-address 192.168.1.3 and TCP-port 8000 (usually this mode used with several network cards)</li>
 
<li>'''<tt>[http://0.0.0.0:8000/ http://0.0.0.0:8000]</tt>'''&nbsp;or&nbsp;'''<tt>[http://*:8000&nbsp/ http://*:8000]&nbsp;</tt>'''-&nbsp;<span style="line-height: 20.7999992370605px;">accept connections &nbsp;</span>on all enabled network interfaces and IP-addressed and TCP-port 8000</li>
 
<li>'''<tt>[http://127.0.0.1:8000/ http://127.0.0.1:8000]</tt>'''&nbsp;- accept connections only locally (usually used with local installed software)</li>
 
</ul>
 
 
|-
 
| style="width: 127px;" | common-directory<br/>
 
| style="width: 1145px;" | directory with common data files (directory structure same with directory of [[AutoGRAPH.NET]] software – with Schemes, GeoFences, Devices subdirectories with files)<br/>
 
|-
 
| style="width: 127px;" | data-directory<br/>
 
| style="width: 1145px;" | devices data directory [[AGDataLoader|AutoGRAPH DataLoader]] or [[AutoGRAPH Server 5|AutoGRAPH Server 3.x or 4.x or 5.x]]<br/>
 
|}
 
 
Save .config file after editing and run service or run in command line. Run next command line for generate .cs file with proxy-class:<br/><pre>
 
svcutil.exe http://localhost:800/?wsdl /async /tcv:Version35 /ser:DataContractSerializer
 
</pre><br/>AutoGRAPHSvc.cs and output.config file will created in current directory. This file configured for use WCF-endpoint of AutGRAPH.NET Service.
 
 
== Service methods ==
 
 
*[[AutoGRAPH.NET Service EnumSchemas (EN)|EnumSchemas]] – enumerate allowed schemas
 
*[[AutoGRAPH.NET Service EnumDevices (EN)|EnumDevices]] – enumerate devices in schema
 
*[[AutoGRAPH.NET Service EnumDrivers (EN)|EnumDrivers]] – enumerate drivers in schema
 
*[[AutoGRAPH.NET Service EnumGeoFences (EN)|EnumGeoFences]] – enumerate geofences in schema
 
*[[AutoGRAPH.NET Service GetGeoFences (EN)|GetGeoFences]] – get information about geofences (points, polygons, etc)
 
*[[AutoGRAPH.NET Service GetDevicesInfo (EN)|GetDevicesInfo]] – get information about devices in schema
 
*[[AutoGRAPH.NET Service EnumParameters (EN)|EnumParameters]] – get schema parameters
 
*[[AutoGRAPH.NET Service GetOnlineInfo (EN)|GetOnlineInfo]] – get device(s) last position and last date/time information
 
*[[AutoGRAPH.NET Service GetOnlineInfoAll (EN)|GetOnlineInfoAll]] - get device(s) last position and last date/time information (for ALL devices in schema)
 
*''GetDataRanges – get allowed data files from devices''
 
*[[AutoGRAPH.NET Service GetTrips (EN)|GetTrips]] – get trips information for specified device(s)
 
*[[AutoGRAPH.NET Service GetTripsCustom (EN)|GetTripsCustom]] [[File:Tag-new.png]] – get trips information with custom geofences
 
*[[AutoGRAPH.NET Service GetStage (EN)|GetStage]] [[File:Tag-new.png]] – get single stage information of specified device(s)
 
*[[AutoGRAPH.NET Service GetTrack (EN)|GetTrack]] – get track information (date/time/coordinates/speed/...) of specified device(s)
 
*[[AutoGRAPH.NET Service GetProperties (EN)|GetProperties]] – get property and values list of specified device(s)
 
*[[AutoGRAPH.NET Service GetProperty (EN)|GetProperty]] – get single property value of specified device(s)
 
*[[AutoGRAPH.NET Service GetRoute (EN)|GetRoute]] – calculate route between specified points
 
*[[AutoGRAPH.NET Service WaitData (EN)|WaitData]] [[File:Tag-new.png]] - wait for new device data
 
*[[AutoGRAPH.NET Service EnumReports (EN)|EnumReports]] [[File:Tag-new.png]] - get allowed reports
 
*[[AutoGRAPH.NET Service GetReports (EN)|GetReports]] [[File:Tag-new.png]] - run reports and download in XML/PDF/DOCX/XLS/.../ZIP-file
 
*[[AutoGRAPH.NET Service ExecuteReports (EN)|ExecuteReports]] [[File:Tag-new.png]] - run report asynchronously
 
*[[AutoGRAPH.NET Service GetReportsStatus (EN)|GetReportsStatus]] [[File:Tag-new.png]] - get report executing status (for asynchronous executing)
 
*''CancelReports - cancel report creating''
 
 
== Examples ==
 
 
<pre>
 
using System;
 
using System.Collections.Generic;
 
using System.Globalization;
 
using System.Linq;
 
using System.Text;
 
using AutoGRAPHService;
 
 
namespace AutoGRAPHSvcTest
 
{
 
class Program
 
{
 
static void Main(string[] args)
 
{
 
var svc = new AutoGRAPHSvcClient(); // make proxy class with default end points
 
 
RSchema[] schemas;
 
using (var f = new TimeCalc("EnumSchemas")) // get schemas list
 
schemas = svc.EnumSchemas();
 
 
REnumDevices devices;
 
using (var f = new TimeCalc("EnumDevices"))
 
devices = svc.EnumDevices(schemas[0].Name); // get device list for first allowed schema
 
foreach (var item in devices.Items)
 
Console.WriteLine("\t" + item.Name);
 
 
using (var f = new TimeCalc("EnumGeoFences")) // get geofences list
 
svc.EnumGeoFences(schemas[0].Name);
 
using (var f = new TimeCalc("GetDevicesInfo"))
 
svc.GetDevicesInfo(schemas[0].Name);
 
 
using (var f = new TimeCalc("EnumParameters")) // get parameter list for all devices in schema
 
svc.EnumParameters(schemas[0].Name, devices.Items.Select(p => p.ID).ToArray());
 
 
using (var f = new TimeCalc("GetOnlineInfo")) // get online status of devices
 
svc.GetOnlineInfo(schemas[0].Name, devices.Items.Select(p => p.ID).ToArray());
 
 
using (var f = new TimeCalc("GetTrips")) // get trips list for last 5 days of all devices with numbers more than 9999998
 
svc.GetTrips(schemas[0].Name,
 
devices.Items.Where(p => p.Serial >= 9999998).Select(p => p.ID).ToArray(),
 
DateTime.Now.AddDays(-5), DateTime.Now);
 
 
using (var f = new TimeCalc("GetTrack")) // get tracks for last 5 days of all devices with numbers more than 9999998
 
{
 
var t1 = svc.GetTrack(schemas[0].Name,
 
devices.Items.Where(p => p.Serial >= 9999998).Select(p => p.ID).ToArray(),
 
DateTime.Now.AddDays(-5), DateTime.Now);
 
}
 
 
Console.ReadLine();
 
}
 
}
 
 
// simple class for calculating running time
 
class TimeCalc:IDisposable
 
{
 
readonly DateTime DT;
 
readonly string name;
 
internal TimeCalc(string name) { DT = DateTime.Now; this.name = name; }
 
void IDisposable.Dispose() { Console.WriteLine(name+": "+DateTime.Now.Subtract(DT).TotalSeconds.ToString("F3", CultureInfo.InvariantCulture)); }
 
}
 
}
 
</pre>
 
 
<u>.exe.config of this example</u><br/><pre>
 
<?xml version="1.0" encoding="utf-8" ?>
 
<configuration>
 
<system.serviceModel>
 
<bindings>
 
<basicHttpBinding>
 
<binding name="BasicHttpBinding_IAutoGRAPHSvc"
 
closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
 
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
 
maxBufferPoolSize="524288" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"
 
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
 
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16348"
 
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
 
<security mode="None">
 
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
 
<message clientCredentialType="UserName" algorithmSuite="Default" />
 
</security>
 
</binding>
 
</basicHttpBinding>
 
</bindings>
 
<client>
 
<endpoint address="http://localhost:800/" binding="basicHttpBinding"
 
bindingConfiguration="BasicHttpBinding_IAutoGRAPHSvc" contract="IAutoGRAPHSvc"
 
name="BasicHttpBinding_IAutoGRAPHSvc" />
 
</client>
 
</system.serviceModel>
 
</configuration>
 
</pre>
 
   
== [[AutoGRAPH.NET Service troubleshooting|Troubleshooting]] ==
+
===[[AutoGRAPH.NET_Service_Examples_en|Examples]]===
   
  +
===[[AutoGRAPH.NET_Service_Diagnostics|Troubleshooting]]===
[[AutoGRAPH.NET Service Диагностика неисправностей|здесь]].
 

Версия 11:30, 11 февраля 2016

AutoGRAPH.NET Service provide different protocols for integration with external systems. Currently we have two protocols for this: WCF (Windows communication foundation) and JSON for accessing to AutoGRAPH.NET core. Schemas configuration can be changed by AutoGRAPH.NET software. AutoGRAPH.NET Service can be run in two modes: as console application and as system service.

AGNetService.png

Minimal requirements for hardware and software environment

Download links

Last version: 2016.2.9, http://agi.tk-chel.ru/install/service/AutoGRAPHService20160209.zip

Examples: http://agi.tk-chel.ru/install/service/AutoGRAPHServiceExamples.zip

Access to our demo service: http://m.tk-chel.ru port 8100 (WCF) or 8300 (JSON), login service-example password 12345678

Load demo configuration DemoCEBIT into AutoGRAPH.Pro: host m.tk-chel.ru port 2230, login demo password demo

Console mode

This mode designed for debugging and testing. Simply run AutoGRAPHNETService.exe in console.

Service mode

Installed as system Windows service and working autonomous. Command line for installing:

sc create AutoGRAPHNETService binPath= "C:\TK\WebMapK\Build-Svc\AutoGRAPHNETService.exe"

 Don't forget space between binPath= and full path  

Working with service

Configuration

Service methods

Examples

Troubleshooting