WOW Mobile Rui Miguel Miranda Ramos



Documentos relacionados
RestFull WebServices. Rafael Nunes Arquiteto de Software / Instrutor Globalcode. Globalcode Open4Education

Projecto Integrador. Introdução ao REST. Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 1

Projecto Integrador. Introdução ao REST. Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 1

Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

REST Um Estilo de Arquitetura de Sistemas Distribuídos

Service Oriented Architecture SOA

Service Oriented Architecture SOA

Ricardo R. Lecheta. Novatec

Kassius Vargas Prestes

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Projeto: Plataforma de Integração. Data: 01/08/2014

3 Serviços na Web (Web services)

REST. Caio Nakashima

SUMÁRIO REST. REST + OAuth. Cliente em Java Processamento de respostas JSON

Microsoft.NET. Desenvolvimento Baseado em Componentes

jcompany Service Capítulo Introdução aos RESTful Services via JAX-RS - Um breve histórico sobre REST - O padrão JAX-RS e o jcompany Service

Arquiteturas SOA, WOA, e REST

Web-Services com JAX-WS. Capítulo. Introdução aos Web-Services via JAX-WS. - Um breve histórico sobre Web-Services. - SOAP x REST. Provendo um Serviço

Evolução guiada por APIs. com REST para modernizar seu legado

Como funciona a plataforma Superlógica? - Livro 4 de 4. Como funciona a interface de integração? Como você poderá complementar o sistema?

SCC Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

TDC2012. EJB simples e descomplicado, na prática. Slide 1

Web Services utilizando JAX-WS

Manual de Integração WebService

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

UFG - Instituto de Informática

Criando e consumindo Web service REST com PHP e JSON. Palestrante: Weiberlan Garcia

Capítulo 1 - Java EE 6 por alto - 1

Spring: Um suite de novas opções para Java EE

BatPlone e WebService: Uma dupla dinâmica

Programação Cliente em Sistemas Web

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Integração de sistemas utilizando Web Services do tipo REST

Programação Na Web. Sessão II. Índice. Visão geral da API Sessão. Obter dados sobre uma sessão. Extrair informação sobre uma Sessão

Conceitos Básicos sobre Sistemas Web: Arquitetura e Serviços. Aécio Costa

jcompany Service Capítulo Introdução aos RESTful Services via JAX-RS - Um breve histórico sobre REST - O padrão JAX-RS e o jcompany Service


EMML Enterprise Mashup Markup Language. Jesús Martín Talavera Portocarrero

SOA na Prática Ricardo Limonta

Midleware CXF. Angélica A. P. Ribeiro, Leandro M. G. Sousa. Universidade Federal de Uberlândia (UFU) Caixa Postal Monte Carmelo MG Brazil

Web Services. Autor: Rômulo Rosa Furtado

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Criando Web Services. Palestrante: Daniel Destro do Carmo

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

Web Services. (Introdução)

Webservices LEANDRO MENDES FERREIRA

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.

Grupo de Arquitetos Microsoft Brasil

UNIVERSIDADE. Sistemas Distribuídos

CURSO DESENVOLVEDOR JAVA Edição 2009

Internet e protocolos web. A Internet é uma rede descentralizada de recursos computacionais. Topologia tem de fornecer caminhos alternativos

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

Web Technologies. Tópicos da apresentação

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento

Java Web/UI. Maven3 Redmine CVS. Áreas de conhecimento: Web o Aplicativos Web o Portal de conteúdo o REST Services Web Site Performance

Aula 14 Serviços Internet (Servidor Web Apache)

Interface Homem Máquina para Domótica baseado em tecnologias Web

APLICAÇÕES E SERVIÇOS WEB

REST RESTfulWeb Services JAX-RS

API SEBRAE. Versão 1.1

INSTALAÇÃO E USO DO GOOGLE APP ENGINE PLUGIN utilizando o Eclipse Galileo

Ricardo R. Lecheta. Novatec

Sumário. Capítulo 1 O que é o PHP? Capítulo 2 Instalação do PHP Capítulo 3 Noções básicas de programação... 25

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Anexo I - DAS (Documento de Arquitetura de Software) Concurso de Desenvolvimento de Jogos SEBRAE

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

JPA: Persistência padronizada em Java

CURSO DESENVOLVEDOR JAVA Edição 2010

Sumário. Parte I Introdução Introdução O Rails é ágil Explorando o conteúdo Agradecimentos... 19

Associação Carioca de Ensino Superior Centro Universitário Carioca

Sistemas Distribuídos na Web. Pedro Ferreira DI - FCUL

18/04/2006 Micropagamento F2b Web Services Web rev 00

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.

Web das Coisas WoT. Software: APIs para IoT. Prof. João Bosco Teixeira Junior

PROJETO PEDAGÓGICO DE CURSOS

Miguel Fernando Aniceto Nobre. Engenheiro Informático

SOA. Service Oriented Architecture. Maxmiliano Franco Braga

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

DSS 09/10. DSS 09/10 Que métodos é que fazem parte de cada camada? Aplicações Multi-camada JDBC. Aula 3 DSS 09/10

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Interfaces de Serviço na Prática. Luciano Oliveira Sr. Instructor, Consultant Global Field Services

Transcrição:

WOW Mobile Rui Miguel Miranda Ramos

Programa 1. Plataforma WOW 2. WOW Mobile 3. API do WOW 4. Clientes 5. Conclusões

Plataforma WOW

Plataforma WOW Issue tracking system Motor de workflow flexível Plataforma extensível

WOW Mobile

WOW Mobile Requisitos

WOW Mobile Arquitectura

WOW Mobile Arquitectura Java ME Mais controlo sobre o SO GUI mais poderoso/flexível Comunidade de desenvolvimento Instalação por parte do cliente HTML Adaptação do código do WOW web Cross-platform Client-side Limitado a funcionalidades do browser Renderings diferentes

WOW Mobile Comunicação

API do WOW

API do WOW Via de comunicação com os dados da plataforma Desenvolvida para WOW Mobile Principios-chave: integrada, extensível, segura

API do WOW Arquitectura SOAP Simple Object Access Protocol Representational State Transfer REST

API do WOW SOAP Protocolo para troca de mensagens XML Orientado a operações Tradicionalmente usado para integração de sistemas

API do WOW REST Arquitectura para a construção de web services sobre HTTP Orientado a recursos (multiplas representações) Comunicação stateless

API do WOW REST Verbos HTTP Verbos SQL GET SELECT POST UPDATE PUT INSERT DELETE DELETE

API do WOW Arquitectura

API do WOW Arquitectura SOAP REST Standard na integração B2B Funcionalidades adicionais Utilização de contracto (WSDL) Complexidade Clientes dependentes de APIs SOAP Simplicidade Interoperabilidade Escalabilidade Stateless Menos maduro

API do WOW Java JAXB (JSR-222) Java» XML JAX-WS (JSR-224) Java» WSDL / SOAP JAX-RS (JSR-311) Java» HTTP

API do WOW Frameworks

API do WOW Frameworks SOAP REST Apache AXIS2 Metro RESTlet Jersey RESTeasy Gomba Apache CXF

API do WOW Apache CXF Implementa JAX-WS e JAX-RS Flexibilidade Desenvolvimento facilitado, configuração com Spring

REST em Java JAX-WS Uso do HTTP Binding: @WebService public interface WorkOrderWebService { @Get @HttpResource(location="/workorder/{id}") public WorkOrder getworkorder( @WebParam(name="id") String id);

REST em Java JAX-RS Acesso a recursos mapeado através de URLs e métodos HTTP: @Path( /workorder ) public class WorkOrderWebService { @GET @Path( /{id} ) public WorkOrder getworkorder( @PathParam( id") String id) { } }

REST em Java JAX-RS @PUT @ConsumeMime( application/xml ) public CreateResponse createworkorder( WorkOrder workorder) { } @POST @Path( /{id} ) @ProduceMime("application/json") public UpdateResponse updateworkorder( @PathParam( id") String id, WorkOrder updated) { } @DELETE @Path( /{id} ) public DeleteResponse deleteworkorder( @PathParam( id") String id) { }

REST em Java JAX-RS Sub-resource locators

@Path("/customerservice/") public class CustomerService { @Path("/orders/{orderId}/") public Order getorder(@pathparam("orderid") String orderid) {... } } @XmlRootElement(name = "Order") public class Order { private long id; public Order() { } public long getid() { return id; } @GET @Path("products/{productId}/") public Product getproduct(@pathparam("productid")int productid) {... } }

REST em Java JAX-RS Anotações de Contexto @Path( /workorder ) public class WorkOrderWebService { @Context HttpHeaders headers; }

API do WOW Segurança HTTP Basic HTTP Digest

API do WOW Segurança HTTP Basic HTTP Digest HTTP Basic + SSL!

API do WOW Serviços WorkOrderWebService WorkGroupWebService UserWebService QueriesWebService MobileWebService

Resource URL Method Receives Returns On Succ Update /mobile/update/{versionid} GET GetUpdateInfomationRequest GetUpdateInfomationResponse 200 (OK) Requests /workorder/{id} GET GetRequestInformationRequest GetRequestInformationResponse 200 (OK) /workorder/requesttype/{id}/fields WorkOrderCreationFieldsRequest WorkOrderCreationFieldsResponse /workorder/workorders POST 201 (Creat Actions /workorder/{id}/actions POST AddActionRequest AddActionResponse 201 (Creat /workorder/{id}/action/{aid} GET GetActionRequest GetActionResponse 200 (OK) /workorder/{woid}/action/{actionid}/fields GET GetActionFieldsRequest GetActionFieldsResponse 200 (OK) Queries /query/queries GET QueriesListRequest QueriesListResponse 200 (OK) /queries/withconfiguration GET QueriesListRequest QueriesListResponse 200 (OK) /query/byid/{id} GET QueryByIdRequest QueryByIdResponse 200 (OK) /query/byid/{id}/page/{page} GET QueryByIdRequest QueryByIdResponse 200 (OK) /query/byname/{name} GET QueryByNameRequest QueryByNameResponse /query/byname/{name}/page/{page} GET QueryByNameRequest QueryByNameResponse 200 (OK) Dashboard /mobile/dashboard GET DashboardRequest DashboardResponse 200 (OK) /mobile/config/dashboardqueries POST DashboardQueriesRequest DashboardQueriesResponse 200 (OK) Search /workorders/freesearch/{searchterms} GET WOSimpleListResponse 200 (OK) Info /user/userinfo GET UserInfoRequest UserInfoResponse 200 (OK) WorkGroups /workgroup/contexttree GET ContextTreeRequest ContextTreeResponse 200 (OK) /workgroup/fullcontexttree GET ContextTreeRequest ContextTreeResponse 200 (OK) /workgroup/subtree/{id} GET ContextTreeRequest ContextTreeResponse 200 (OK) /workgroup/requesttype/{id}/destinationgroups GET DestinationGroupsRequest DestinationGroupsResponse 200 (OK) /workgroup/{id}/users GET UsersFromGroupRequest UsersFromGroupResponse 200 (OK) /workgroup/change POST WorkGroupChangeRequest WorkGroupChangeResponse 200 (OK)

Clientes da API

Clientes da API Cliente Java Orientado a operações

Clientes da API Cliente Java Orientado a operações Client client = Client.getInstance(); client.setproperty("username", "rm-ramos"); // work order and action ids GetAction getactionoperation = new GetAction(6556, 19999); // prints out the XML representation getactionoperation.printxml(system.out); // returns the Java representation! GetWorkOrderAction action = (GetWorkOrderAction) getactionoperation.getasobject();

Clientes da API Java Scripting Orientado a recursos

Clientes da API Java Scripting Orientado a recursos WebServicesSession session = new WebServicesSession(); // getting a work-order GetRequestInformationResponse workorder = new GetRequestInformationResponse(); workorder.setrequestid(6773); workorder = (GetRequestInformationResponse)session.get(workOrder); // creating a new action Action sendtoanalysis = new Action(); senttoanalysis.setid(6); sendtoanalysis.setdestinygroup("iti Board"); sendtoanalysis.setdescription("acção inserida programaticamente!"); // submiting the action to the system session.registeraction(sendtoanalysis, workorder);

Clientes da API Outros Framework Javascript Adobe AIR+Adobe FLEX Ruby, Python, PHP,...

Conclusões Desenvolvimento REST potenciado por JAX-RS Frameworks para web services Java Integração de aplicações

Conclusões Valor pessoal e profissional do estágio API como valor acrescentado do WOW Trabalho futuro

Questões? Rui Miguel Miranda Ramos Nº aluno: 501062892 ruiramos@gmail.com