WME Agenti Online (WMEAOL)

Acesta este un modul al WinMENTOR ENTERPRISE(WME), produs de SC TH JUNIOR SRL. 
Modulul WMEAOL realizeaza o interfata pe browser web pentru operatiuni specifice utilizatorilor WME, destinata agentilor de vanzari.

Detalii tehnice
===============
WMEAOL este alcatuit din trei componenete principale: 
	--server.exe - furnizeaza mediul de comunicare intre aplicatiile client si baza de date WME. 
	--WME AGENTI ONLINE.exe (sau MONITOR) - aplicatie client ce poate fi folosita pentru initializarea si monitorizarea server.exe
	--folderul /WMEAOL/Data/client, sursele pentru instatierea paginii web ce va servi ca interfata pentru utilizatorii aplicatiei

WMEAOL foloseste doua protocoale de comunicare web: 1)HTTP pentru initializarea paginii-client si uploadul de fisiere sursa 
si 2)WS pentru comunicarea paginii web cu server.exe. 

Cerinte
=======
-Sistem de operare Windows Vista, Windows 7, Windows 10
(-Cerinte minime pentru sistemul de operare - in testare)
-instalarea/configurarea in prealabil a unui server HTTP (exemplu: Apache), sau accesul prin ftp la un website; 
-configurarea in reteaua locala a porturilor accesate din exterior (port forwarding) pentru porturile utilizate de aplicatie (vezi app.ini si Instalare, punctul 2)

Instalare
=========
1) Copiati directorul WMEAOL in locatia dorita de pe disc, acolo unde doriti instalarea aplicatiei

Directorul aplicatiei prezinta urmatoarea structura

/[WMEAOL] - root dir
	-WME AGENTI ONLINE.exe
	-server.exe
	/[Data] -dir
		-app.ini
		/[client] -dir
			...

2) Configurare aplicatie 
	- deschideti fisierul app.ini intr-un editor de text, si modificati setarile implicite daca este necesar, respectand instructiunile.
		- [database] : instanta bazei de date Oracle folosita de aplicatie, valoarea 'database'
		- daca folositi o baza de date PostgreSQL, setati parametrul PG = 1 si completati valorile pentru pg_host, pg_port si pg_dbname
		- [porturi] : porturile de acces, valorile 'APP_PORT' si 'EXT_PORT' 
			(Nu este necesara configurare in aplicatie pentru portul de acces prin protocolul http, unde implict este portul 80; Totusi este necesara configurarea 
			pentru accesul din exteriorul retelei locale. Vezi Cerinte.)
		- [GAZDA] : valoarea 'HOST_NAME'
		- [CALE] : valoarea 'CLIENT_DIR'
	
3) Configurare retea (necesara doar pentru accesul din afara retelei locale;)
	-vezi Cerinte si Instalare punctele 6.b si 7.	
	
4) Configurare server web:
	(Apache)
	-Setati valoarea <DocumentRoot> (in httpd.conf), calea catre /WMEAOL/Data/client/	
	-Porniti serverul	
	
5) Pornirea aplicatiei
	-Porniti aplicatia WME AGENTI ONLINE.exe, si asteptati cateva secunde
	-Selectati butonul 'Start AppServer'
		(Pe fereasta WMEOL MONITOR veti putea urmari comunicarea dintre server si clientii conectati. )
		In folderul /WMEAOL/Data/client/ va fi generat un fisier de configurare pt client, /config.js .
	-Daca in fereastra WMEOL MONITOR apar mesaje de la server, se poate trece la pasul urmator.	
	(Dupa pornirea serverului fereastra WMEOL MONITOR poate fi inchisa; 
	Pentru oprirea serverului reporniti WME AGENTI ONLINE.exe, asteptati cateva secunde,
	si apasati butonul Stop AppServer;)
	
6) Acces
	Utilizatorii aplicatiei se pot conecta in doua moduri:
	a) Local: de pe masina pe care s-a instalat aplcatia
		-Deschideti un browser web modern, capabil de conexiuni prin web-socket(Google Chrome, Mozilla Firefox, etc). 
		-Accesati http://localhost
		Daca conexiunea a fost realizata, pe pagina va aparea formularul de autentificare.
		
	b) Remote: de pe alt dispozitiv, prin internet
		-Deschideti un browser web modern, capabil de conexiuni prin web-socket(Google Chrome, Mozilla Firefox, etc). 
		-Accesati http://[HOST_NAME], unde [HOST_NAME] reprezinta valoarea setata in /WMEAOL/Data/app.ini
		Daca conexiunea a fost realizata, pe pagina va aparea formularul de autentificare.

7) Instalarea partii client pe un web-site 
		-Copiati continutul /WMEAOL/Data/client/ in directorul dorit de pe site
		Exemplu:
			Daca se doreste instalarea la adresa http;//www.exemplu.ro/agenti/ se vor copia toate fiserele si sub-directoarele din /WMEAOL/Data/client/ in directorul /agenti/
			de pe serverul care gazduieste site-ul.
			Atentie! Fisierul /WMEAOL/Data/client/config.js trebuie sa fie actualizat cu setarile corespunzatoare din /WMEAOL/Data/app.ini, 
			respectiv adresa si portul la care poate fi accesat server.exe.
		-Accesati http://www.exemplu.ro/agenti/ dintr-un browser modern
		Daca conexiunea a fost realizata, pe pagina va aparea formularul de autentificare.


--------------

Pentru versiunea Postgresql:

Daca primiti o eroare de tipul 
Unable to load dynamic library ...php_pgsql.dll si aveti Postgresql instalat, probabil lipseste un dll dependent, cum ar fi php5ts.dll

Descarcati si instalati Xampp de la adresa https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/5.6.19/ si apoi adaugati in System, Advanced System Settings, Environment Variables, System variables, la Path o noua linie cu calea catre folderul php din Xampp, de exemplu C:\xampp\php

Daca primiti eroarea la login:

pg_connect(): Unable to connect to PostgreSQL server: authentication method 10 not supported on file

trebuie pusa metoda md5 in loc de scram-sha-256, in pg_hba.conf, in tabelul de la final, pe fiecare linie; trebuie adaugata o linie noua, inaintea celorlalte:

host all all 0.0.0.0/0 md5

si trebuie actualizata parola userului cu care va conectati, astfel incat sa fie criptata cu md5:

alter system set password_encryption = 'md5';
select pg_reload_conf();
alter role numele_userului with password 'parola_userului';
select rolpassword from pg_authid where rolname = 'numele_userului';

Acum parola criptata ar trebui sa inceapa cu md5.

-----------------

Serverul poate fi instalat ca un serviciu folosind utilitarul 
nssm.exe (http://nssm.cc)

Rulati 

nssm install nume_serviciu

si alegeti calea catre server.exe in fereastra care se deschide.

Apoi puteti rula

nssm start nume_serviciu
nssm stop nume_serviciu

pentru a porni serviciul (ar trebui sa apara cu numele specificat in Task manager, Services) si a-l opri.

Pentru a dezinstala serviciul, folositi

nssm remove nume_serviciu.



