Um PHP client por um web service REST Json

Com o avanço das aplicações Mobile, as tecnologias REST e JSON estão ganhando mercado a cada dia. Como estas tecnologias são muito recentes, os desenvolvedores ainda não sabem como gerar seus Web Services REST JSON corretamente.

REST é um protocolo de comunicação, baseado no protocolo de hipermídia HTTP. Porém ele não impõe restrições ao formato da mensagem, apenas no comportamento dos componentes envolvidos.

A maior vantagem do protocolo REST é sua flexibilidade. O desenvolvedor pode optar pelo formato mais adequado para as mensagens do sistema de acordo com sua necessidade específica. Os formatos mais comuns são JSON, XML e texto puro, mas em teoria qualquer formato pode ser usado.

Isso nos leva a outra vantagem: quase sempre Web Services que usam REST são mais “leves” e, portanto, mais rápidos.

O problema com o REST pode surgir justamente por causa de suas vantagens. Como a definição do corpo de dados fica totalmente a cargo do desenvolvedor, os problemas de interoperabilidade são mais comuns.

O linguagem PHP ajuda muito porque é um linguagem não tipados e assim nao tem problemas com interoperabilidade.

O codigo é muito simple

$endereço_ws_json = “http://meuservidor.mz/meuwesservice/parametro1/paramentro2/”; $res = json_decode(file_get_contents($endereço_ws_json,true));

Por ver a resposta

print_r($res);

 

Desenvolver um simple disaster recovery para Base dados

Em esta artigo vamos desenvolver um simple disaster recovery duma base dados MS SQL SERVER, criando um backup e depois enviando o ficheiro para um servidor FTP.

Ante de enviar o Backup vamos fazer zip do ficheiro e vamos proteger com uma senha, o envio sera feito utilizando o protocolo SFTP.

S.O: window 2008 R2 com .NET 4.0

Linguagem: Visual C#

Continuar a ler

Uma Calculadora Basica em Java

Exercicio para estudantes da UCM por curso de Programaçao Orientada para Objectos.

Tema

Deselvover uma java windows application calculadora basica com as quatros operaçoes: +,-,*,/

Implemente:

  • Uma classe java calcoladora com quatros metodos por cada operaçoes
  • Uma interfacial visual que aceita dois numerous em “JTextField”, com quatros “button” (por cada operaçao) e visualiza o resultado num terceiro “JTextField”.

Pode enviar o trabalha para email smura@ucm.ac.mz

Bibliografia:

Configurar o nosso ubuntu como proxy server

Depois que configuramos o nosso ubuntu como roteador, vamos configurar-lhe como proxy para a nossa rede.

Schema rede

A nossa eth1 é 198.168.10.1/24

Como proxy vamos installa squid3.

Instalação Squid3

  • sudo apt-get install squid3 ccze

Configuraço Squid3

Criar uma pasta para cache

  • sudo mkdir -p /var/log/squid3
  • sudo mkdir -p /var/squid3
  • sudo mkdir -p /var/squid3/cache
  • sudo chmod 777 /var/squid3/cache/
  • sudo chown proxy:proxy /var/squid3/cache/

Configuração

Ante de configurar vamos a criar uma copia de backup
sudo cp /etc/squid3/squid.conf /etc/squid3/squid.conf.original
sudo vim /etc/squid3/squid.conf


Squid3 configuration:

sudo vim /etc/squid3/squid.conf

Squid3 configuration:

# ACCESS CONTROLS OPTIONS
# ====================
#
acl QUERY urlpath_regex -i cgi-bin ? .php$ .asp$ .shtml$ .cfm$ .cfml$ .phtml$ .php3$ localhost
acl all src
acl localnet src 192.168.10.0/24 # Nossa rede
acl localhost src 127.0.0.1/32
acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901 81 3128 1025-65535
acl sslports port 443 563 81 2087 10000
acl manager proto cache_object
acl purge method PURGE
acl connect method CONNECT
acl ym dstdomain .messenger.yahoo.com .psq.yahoo.com
acl ym dstdomain .us.il.yimg.com .msg.yahoo.com .pager.yahoo.com
acl ym dstdomain .rareedge.com .ytunnelpro.com .chat.yahoo.com
acl ym dstdomain .voice.yahoo.com
acl ymregex url_regex yupdater.yim ymsgr myspaceim
#Abilitação internet so no horario 7.00-21.15 na 2 ºfeira ate 6ºfeira 
acl internet_hours time M T W H F 7:00-21:15 
#Abilitação internet so no horario 7.00-13.00 no sabado 
acl saturday time A 7:00-13:00
 
#
http_access deny ym
http_access deny ymregex
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !safeports
http_access deny CONNECT !sslports
http_access allow localhost
http_access allow localnet internet_hours
http_access allow localnet saturday
http_access deny all
#
# NETWORK OPTIONS
# —————
#
http_port 3128 transparent
#
# OPTIONS WHICH AFFECT THE CACHE SIZE
# ==============================
#
cache_mem 8 MB
maximum_object_size_in_memory 32 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
cache_dir aufs /home/precise/cache 10000 14 256
maximum_object_size 128000 KB
cache_swap_low 95
cache_swap_high 99
#
# LOGFILE PATHNAMES AND CACHE DIRECTORIES
# ==================================
#
logformat common %>;a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh
access_log /var/log/squid3/access.log common
cache_log /var/log/squid3/cache.log
cache_store_log none
logfile_rotate 5
log_icp_queries off
#
# OPTIONS FOR TUNING THE CACHE
# ========================
#
cache deny QUERY
refresh_pattern ^ftp: 1440 20% 10080 reload-into-ims
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i .(gif|png|jp?g|ico|bmp|tiff?)$ 10080 95% 43200 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private
refresh_pattern -i .(rpm|cab|deb|exe|msi|msu|zip|tar|xz|bz|bz2|lzma|gz|tgz|rar|bin|7z|doc?|xls?|ppt?|pdf|nth|psd|sis)$ 10080 90% 43200 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private
refresh_pattern -i .(avi|iso|wav|mid|mp?|mpeg|mov|3gp|wm?|swf|flv|x-flv|axd)$ 43200 95% 432000 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private
refresh_pattern -i .(html|htm|css|js)$ 1440 75% 40320
refresh_pattern -i .index.(html|htm)$ 0 75% 10080
refresh_pattern -i (/cgi-bin/|?) 0 0% 0
refresh_pattern . 1440 90% 10080
#
quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100
store_avg_object_size 13 KB
#
# HTTP OPTIONS
# ===========
vary_ignore_expire on
#
# ANONIMITY OPTIONS
# ===============
#
request_header_access From deny all
request_header_access Server deny all
request_header_access Link deny all
request_header_access Via deny all
request_header_access X-Forwarded-For deny all
#
# TIMEOUTS
# =======
#
forward_timeout 240 second
connect_timeout 30 second
peer_connect_timeout 5 second
read_timeout 600 second
request_timeout 60 second
shutdown_lifetime 10 second
#
# ADMINISTRATIVE PARAMETERS
# =====================
#
cache_mgr ninja
cache_effective_user proxy
cache_effective_group proxy
httpd_suppress_version_string on
visible_hostname ninja
#
ftp_list_width 32
ftp_passive on
ftp_sanitycheck on
#
# DNS OPTIONS
# ==========
#
dns_timeout 10 seconds
dns_nameservers 192.168.10.13 8.8.8.8 8.8.4.4 # DNS Server
#
# MISCELLANEOUS
# ===========
#
memory_pools off
client_db off
reload_into_ims on
coredump_dir /cache
pipeline_prefetch on
offline_mode off
#
#Marking ZPH
#==========
zph_mode tos
zph_local 0x04
zph_parent 0
zph_option 136
### END CONFIGURATION ###

Criar pasta swap,

squid3 -z

Restart squid3:

sudo /etc/init.d/squid3 restart

Configuração Iptables

  • sudo iptables-save > iptables.rules
  • vim iptables.rules
  • sudo cp iptable.rules /etc

em *nat adicionar
-A PREROUTING -i eth1 -p tcp -m tcp –dport 80 -j DNAT –to-destination 192.168.10.13:3128
-A PREROUTING -i eth1 -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 3128
-A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

Configuração network

sudo vim /etc/network/interfaces
no final de eth0 inserir

  • pre-up iptables-restore < /etc/iptables.rules

Restart squid3 and network

sudo /etc/init.d/squid3 restart && sudo /etc/init.d/networking restart

References: