SlideShare une entreprise Scribd logo
1  sur  48
Introdução ao desenvolvimento web - 2 Maurício Linhares – mauricio.linhares@gmail.com
Vendendo o seu colega - Dinâmica Juntem-se em pares; Aprenda sobre o seu par (10 minutos); Forme uma estratégia para apresentá-lo em uma entrevista de emprego: Apresente-o; Determine suas capacidades; Demonstre porque ele é uma boa contratação;
Os protocolos da Internet IP TCP UDP DNS POP/SMTP/IMAP HTTP
IP - Internet Protocol - Rede Protocolo baseado em datagramas; Entrega não garantida (besteffortdelivery); Pacotes podem chegar em ordem incorreta; Não é necessário haver conexão entre a origem e o destino;
TCP – TransmissionControlProtocol - Transporte Baseado em conexão; Entrega garantida de dados; Ordenação dos dados entregues; Controle de fluxo; Controle de congestionamento;
UDP – UserDatagramProtocol - Transporte Sem conexão; Pacotes podem chegar na ordem incorreta; Pacotes podem não chegar do outro lado; O controle deve ser feito pela aplicação;
DNS – DomainName System - Aplicação Transforma nomes (hosts) em endereços IPs (e vice-versa); Simplifica a lembrança de endereços em redes (como a internet); Pode ser usado como uma forma de balancear a carga entre vários servidores; Servidores DNS raízes são a fonte oficial dos hosts, sem eles a internet pára;
POP/SMTP/IMAP Protocolos de troca de emails; Ainda o serviço mais utilizado da internet; Possível fonte de dados para aplicações web; Provavelmente o meio de comunicação mais eficiente da atualidade;
HTTP – HyperTextTransferProtocol Protocolo base para transmissão de dados na internet; Tudo é transferido em forma de texto (pouco eficiente para dados binários); Tudo é transferido em forma de documentos ou recursos; É a forma mais simples de transferir dados pela internet;
Tecnologias quentes no desenvolvimento web Java? ASP.NET? PHP? Django (Python)? RubyonRails (Ruby)?
Características Importantes Minimalismo; Pouca burocracia; Resultados rápidos; Turnaround rápido; Integração com tecnologias RIA;
O que está em queda Configurações extensas; Início lento ou com vários artefatos antes do início do código; Poucas opções de componentes/plugins de terceiros; Código fechado;
Um blog utilizando RubyonRails Cuidado pra não se maravilhar demais
Tecnologias RIA – Rich Internet Applications Volta dos fatclients; Aplicações web que emulam aplicações desktop; É possível gravar dados do lado do cliente; Runtimes normalmente se atualizam automaticamente nos navegadores;
Grooveshark - Flex
Problemas? Versões de runtimes diferentes == problemas diferentes pra debugar; Ocupam um pouco mais de memória e processador nas máquinas clientes; Nem sempre estão instalados e atualizados nas máquinas clientes; Novas linguagens, IDEs e ferramentas pra integrar ao processo;
HTML 5 – RIA sem os plugins Suporte nativo a áudio e vídeo (royalties?) Engines melhores para JavaScript V8 – Chrome Spidermonkey – Firefox IE9 CSS 3; Suporte nativo a SVG para desenhos vetoriais no browser;
Problemas? Quando vai ficar pronto? O IE vai implementar tudo certinho? Quando todos os outros IEs vão morrer? E os royalties do H.256? Quando tudo vai funcionar igual em todos os browsers? (Youtube ainda quebra no Chrome)
Tendências e linguagens de programação Programação funcional; Programação concorrente; Linguagens híbridas; Profissionais poliglotas; Projetos heterogêneos;
Concorrência e o futuro O clock dos processadores não consegue mais evoluir na mesma velocidade; Máquinas com múltiplos cores já fazem parte do dia a dia do usuário final (chips com 6 cores para computadores comuns saem esse ano pela Intel); Aplicações não concorrentes não vão conseguir fazer uso disso e vão continuar eternamente lentas;
Problemas de concorrência? Linguagens OO não são boas para programas concorrentes porque costumam direcionar as pessoas a utilizar memórias compartilhadas; Em linguagens puramente funcionais, não existe memória compartilhada; Linguagens que juntam ambos paradigmas são as mais cotadas para o futuro próximo: Scala; Closure;
Quando tudo o que você tem é um martelo, todos os problemas vão parecer pregos Profissionais poliglotas e projetos heterogêneos
Infraestrutura Bancos de dados? Servidores web? Hosdedagem? Sistemas operacionais? Ambientes de execução?
Bancos de dados Bancos relacionais começando a dar sinais de velhice; Movimento NoSQL crescendo e aparecendo em grandes empresas; Várias opções de bancos de dados não-relacionais para resolver problemas do mundo da internet;
Problemas? Milhões de usuários produzindo bilhões de dados; Os mesmos usuários estão: Buscando; Alterando; Reajustando; E produzindo; ...ainda mais informação;
Bancos de dados relacionais não são escaláveis Repositório central de infomações; Modelos arcaicos de replicação; Modelos arcaicos de conexão e extração de dados; Pouco flexíveis quanto a alteração da estrutura das informações (criar uma nova coluna naquela tabela com milhões de linhas? FUUUUUUU!);
Bancos de dados do movimento NoSQL Nascidos na era da internet com um problema definido para resolver; Schema-less ou bem mais flexíveis quanto a alterações nos modelos; Replicação é funcionalidade padrão; Múltiplos servidores, sharding e particionamento/balanceamento são necessidades básicas;
Opções? Cassandra Facebook Twitter AmazonSimpleDB Precisa dizer?  MongoDB TheNew York Times Justin.tv CouchDB
Servidores web Apache 2 Panela velha é quem faz comida boa né... Lighttpd Leve, seguro e bem comum na web Nginx Direto do gelo da Rússia para o mundo Proxies Pound Varnish HAProxy
Cadê os outros? Tomcat? JBoss? IIS? Jetty?
Hospedagem Compartilhada (piedade senhor, piedade) VPS - Virtual PrivateServers Cloud real AmazonElastic Compute Cloud Cloud VPS Rackspace
Compartilhada O ambiente já está pronto; Você compartilha tudo com várias outras pessoas; Segurança? Acredite em Papai Noel também; Se você precisa de alguma coisa que foge do padrão...
VPS – Virtual Private Server Você escolhe o que vai ser instalado; Você configura o ambiente; Você cria contas e instala o que é necessário; Você faz tudo, mas o ambiente não é controlado externamente; Limites em consumo de memória, transferência e uso de processador;
Cloud real - 1 O mundo é efêmero, você configura uma imagem inicial do servidor e sobe ele para executar um trabalho; A instância não tem armazenamento estático, o que estiver gravado nela se perde se ela for “desligada” ou sair do ar; É necessário “plugar” serviços de armazenamento as instâncias para manter dados entre a execução delas;
Cloud real - 2 Perfeito para serviços “fireandforget”: Cálculos matemáticos longos; Processamento de algoritmos complexos; Quaisquer serviços que vão demorar um tempo razoável mas costumam ter “prazo” para terminar e que dependam de muito poder computacional para serem executados; Hospedagem em um serviço desses não é para os fracos de coração;
Cloud VPS É um serviço de cloud que funciona como VPS; Você contrata uma instância em uma VPS e pode aumentar a instância ou crias novas conforme a sua necessidade; Normalmente disponibilizam APIs para acesso e criação de “fazendas de servidores” quando é necessário; Mais fácil de trabalhar quando o interesse é hospedagem;
Sistemas operacionais Windows; Linux: RedHat OpenSUSE Madriva Ubuntu Unix-based Solaris HP-UX
Ambientes de execução CLR – Máquina Virtual do .Net Mono – Máquina Virtual do .Net multiplataforma Java Virtual Machine – Máquina Virtual Java
CLR – CommonLanguageRuntime Ambiente de execução Microsoft para o ambiente .Net; Disponível apenas no Windows; Integração forte com APIs disponíveis do Windows e forma preferida para desenvolvimento de aplicações nessa plataforma;
Projeto Mono - .Net Multiplataforma Leva o runtime do .Net para outras plataformas que não Windows; Costuma estar atrasado quando comparado com o CLR da Microsoft; Não implementa alguns pedaços do .Net Framework por questões jurídicas da Microsoft; Nem sempre apresenta o mesmo comportamento do CLR no Windows;
JVM – Java Virtual Machine Ambiente de execução comumente relacionado a linguagem de programação Java; Já tem um conjunto longo de linguagens executáveis: Ruby; PHP; Scala; Closure; Python (Jython);
Tendências em negócios Aplicações sociais; Aplicações dentro de redes sociais; Jogos em navegadores; SAAS – Software as a Service;
O mundo social ainda não morreu Aplicações sociais continuam surgindo, conseguindo público e ganhando dinheiro: http://foursquare.com/ http://justin.tv/ http://twitter.com/ http://shellfari.com/ Novas aplicações focam em nichos específicos; Redes sociais “genéricas” não vão mais chamar a atenção;
Aplicações dentro de redes sociais Orkut BuddyPoke; Colheita Feliz; MiniFazenda; JogaCraque; Facebook: MafiaWars; FarmVille;
Jogos em navegadores Travian; La Brute; BiteFight; Continua eternamente...
Software as a Service - 1 Modelo de negócio para começar a produzir e vender software; Uso do software fica sempre atrelado ao pagamento de uma assinatura mensal ou taxa de uso; O fluxo de caixa se mantém constante enquanto os clientes estão usando/pagando; Economia de escala barateia os preços de assinatura;
Software as a service - 2 Aplicações com pouca customização, normalmente são produtos de prateleira que são vendidos de forma diferente; Normalmente na forma de aplicações web (mais difícil de piratear e mais fácil de implantar atualizações); Normalmente voltados a pequenas e médias empresas;
Exercício – 30 minutos Juntar-se em grupos; Pensar em um produto SAAS; Definir: Público; Funcionalidades principais; Preços; Como atingir os clientes; Apresentar o produto;

Contenu connexe

Tendances

Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
 
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...Werneck Costa
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122Bruno Souza
 
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do ZabbixArtigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do ZabbixAécio Pires
 
Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...
Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...
Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...Werneck Costa
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
Zabbix FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012Zabbix FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012André Déo
 
O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014
O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014
O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014Marcelo Dieder
 
Monitoramento Enterprise com Zabbix+RHEL
Monitoramento Enterprise com Zabbix+RHELMonitoramento Enterprise com Zabbix+RHEL
Monitoramento Enterprise com Zabbix+RHELAlessandro Silva
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Flávio Lisboa
 
Performance tunning de servidores ColdFusion MX
Performance tunning de servidores ColdFusion MXPerformance tunning de servidores ColdFusion MX
Performance tunning de servidores ColdFusion MXAlex Hübner
 
ConheçA O Apache 2.0 Parte 2
ConheçA O Apache 2.0   Parte 2ConheçA O Apache 2.0   Parte 2
ConheçA O Apache 2.0 Parte 2Felipe Santos
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
Salada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e DockerSalada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e DockerAécio Pires
 
Monitoramento Opensource com Zabbix
Monitoramento Opensource com ZabbixMonitoramento Opensource com Zabbix
Monitoramento Opensource com ZabbixRenato Batista
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Alex Hübner
 
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃOCOMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃOAllan Reis
 

Tendances (20)

Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do ZabbixArtigo: Aplicando recomendações de segurança na instalação do Zabbix
Artigo: Aplicando recomendações de segurança na instalação do Zabbix
 
Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...
Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...
Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
tutorial nagios
tutorial nagiostutorial nagios
tutorial nagios
 
Zabbix FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012Zabbix FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012
 
O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014
O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014
O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014
 
Monitoramento Enterprise com Zabbix+RHEL
Monitoramento Enterprise com Zabbix+RHELMonitoramento Enterprise com Zabbix+RHEL
Monitoramento Enterprise com Zabbix+RHEL
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3
 
Performance tunning de servidores ColdFusion MX
Performance tunning de servidores ColdFusion MXPerformance tunning de servidores ColdFusion MX
Performance tunning de servidores ColdFusion MX
 
ConheçA O Apache 2.0 Parte 2
ConheçA O Apache 2.0   Parte 2ConheçA O Apache 2.0   Parte 2
ConheçA O Apache 2.0 Parte 2
 
Alm open source
Alm open sourceAlm open source
Alm open source
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
Palestra Zabbix no 12 Geinfo (2013)
Palestra Zabbix no 12 Geinfo (2013)Palestra Zabbix no 12 Geinfo (2013)
Palestra Zabbix no 12 Geinfo (2013)
 
Salada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e DockerSalada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e Docker
 
Monitoramento Opensource com Zabbix
Monitoramento Opensource com ZabbixMonitoramento Opensource com Zabbix
Monitoramento Opensource com Zabbix
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?
 
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃOCOMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
 

Similaire à IntroduçãO Ao Desenvolvimento Web 2

Desenvolvimento de sistemas jurídicos
Desenvolvimento de sistemas jurídicosDesenvolvimento de sistemas jurídicos
Desenvolvimento de sistemas jurídicosAndre Camilo
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
TDC2017 | POA Trilha BigData - Utilizando o Apache Kudu como Workload Analítico
TDC2017 | POA Trilha BigData - Utilizando o Apache Kudu como Workload AnalíticoTDC2017 | POA Trilha BigData - Utilizando o Apache Kudu como Workload Analítico
TDC2017 | POA Trilha BigData - Utilizando o Apache Kudu como Workload Analíticotdc-globalcode
 
Aula 1 - Introducao.pdf
Aula 1 - Introducao.pdfAula 1 - Introducao.pdf
Aula 1 - Introducao.pdfRoberto Aragy
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Mario Guedes
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosCharles Fortes
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
Aula 01 - Programação Web - PHP
Aula 01  - Programação Web - PHPAula 01  - Programação Web - PHP
Aula 01 - Programação Web - PHPDalton Martins
 
Transformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoTransformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoDarlan Segalin
 
Software Livre em pequenas empresas
Software Livre em pequenas empresasSoftware Livre em pequenas empresas
Software Livre em pequenas empresasPaulo Henrique
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à práticaMario Guedes
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureGiovanni Bassi
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo maisakamud
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseNécio de Lima Veras
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1michellobo
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoRegis Magalhães
 

Similaire à IntroduçãO Ao Desenvolvimento Web 2 (20)

Desenvolvimento de sistemas jurídicos
Desenvolvimento de sistemas jurídicosDesenvolvimento de sistemas jurídicos
Desenvolvimento de sistemas jurídicos
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
TDC2017 | POA Trilha BigData - Utilizando o Apache Kudu como Workload Analítico
TDC2017 | POA Trilha BigData - Utilizando o Apache Kudu como Workload AnalíticoTDC2017 | POA Trilha BigData - Utilizando o Apache Kudu como Workload Analítico
TDC2017 | POA Trilha BigData - Utilizando o Apache Kudu como Workload Analítico
 
Aula 1 - Introducao.pdf
Aula 1 - Introducao.pdfAula 1 - Introducao.pdf
Aula 1 - Introducao.pdf
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Aula 01 - Programação Web - PHP
Aula 01  - Programação Web - PHPAula 01  - Programação Web - PHP
Aula 01 - Programação Web - PHP
 
Transformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoTransformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualização
 
Software Livre em pequenas empresas
Software Livre em pequenas empresasSoftware Livre em pequenas empresas
Software Livre em pequenas empresas
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Cursos
CursosCursos
Cursos
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows Azure
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e Litebase
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1
 
Java 01 Java Visao Geral
Java 01 Java Visao GeralJava 01 Java Visao Geral
Java 01 Java Visao Geral
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
 

Plus de Maurício Linhares

Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropUnindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropMaurício Linhares
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMaurício Linhares
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleçõesMaurício Linhares
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismoMaurício Linhares
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratosMaurício Linhares
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecasMaurício Linhares
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com javaMaurício Linhares
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetrosMaurício Linhares
 
Outsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemOutsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemMaurício Linhares
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Maurício Linhares
 

Plus de Maurício Linhares (20)

Mercado de TI
Mercado de TIMercado de TI
Mercado de TI
 
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropUnindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
 
Aprendendo ruby
Aprendendo rubyAprendendo ruby
Aprendendo ruby
 
Curso java 07 - exceções
Curso java   07 - exceçõesCurso java   07 - exceções
Curso java 07 - exceções
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleções
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismo
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratos
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
 
Curso java 02 - variáveis
Curso java   02 - variáveisCurso java   02 - variáveis
Curso java 02 - variáveis
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
 
Migrando pra Scala
Migrando pra ScalaMigrando pra Scala
Migrando pra Scala
 
Outsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemOutsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvem
 
Mercado hoje
Mercado hojeMercado hoje
Mercado hoje
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
Revisão html e java script
Revisão html e java scriptRevisão html e java script
Revisão html e java script
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
 

IntroduçãO Ao Desenvolvimento Web 2

  • 1. Introdução ao desenvolvimento web - 2 Maurício Linhares – mauricio.linhares@gmail.com
  • 2. Vendendo o seu colega - Dinâmica Juntem-se em pares; Aprenda sobre o seu par (10 minutos); Forme uma estratégia para apresentá-lo em uma entrevista de emprego: Apresente-o; Determine suas capacidades; Demonstre porque ele é uma boa contratação;
  • 3. Os protocolos da Internet IP TCP UDP DNS POP/SMTP/IMAP HTTP
  • 4. IP - Internet Protocol - Rede Protocolo baseado em datagramas; Entrega não garantida (besteffortdelivery); Pacotes podem chegar em ordem incorreta; Não é necessário haver conexão entre a origem e o destino;
  • 5. TCP – TransmissionControlProtocol - Transporte Baseado em conexão; Entrega garantida de dados; Ordenação dos dados entregues; Controle de fluxo; Controle de congestionamento;
  • 6. UDP – UserDatagramProtocol - Transporte Sem conexão; Pacotes podem chegar na ordem incorreta; Pacotes podem não chegar do outro lado; O controle deve ser feito pela aplicação;
  • 7. DNS – DomainName System - Aplicação Transforma nomes (hosts) em endereços IPs (e vice-versa); Simplifica a lembrança de endereços em redes (como a internet); Pode ser usado como uma forma de balancear a carga entre vários servidores; Servidores DNS raízes são a fonte oficial dos hosts, sem eles a internet pára;
  • 8. POP/SMTP/IMAP Protocolos de troca de emails; Ainda o serviço mais utilizado da internet; Possível fonte de dados para aplicações web; Provavelmente o meio de comunicação mais eficiente da atualidade;
  • 9. HTTP – HyperTextTransferProtocol Protocolo base para transmissão de dados na internet; Tudo é transferido em forma de texto (pouco eficiente para dados binários); Tudo é transferido em forma de documentos ou recursos; É a forma mais simples de transferir dados pela internet;
  • 10. Tecnologias quentes no desenvolvimento web Java? ASP.NET? PHP? Django (Python)? RubyonRails (Ruby)?
  • 11. Características Importantes Minimalismo; Pouca burocracia; Resultados rápidos; Turnaround rápido; Integração com tecnologias RIA;
  • 12. O que está em queda Configurações extensas; Início lento ou com vários artefatos antes do início do código; Poucas opções de componentes/plugins de terceiros; Código fechado;
  • 13. Um blog utilizando RubyonRails Cuidado pra não se maravilhar demais
  • 14. Tecnologias RIA – Rich Internet Applications Volta dos fatclients; Aplicações web que emulam aplicações desktop; É possível gravar dados do lado do cliente; Runtimes normalmente se atualizam automaticamente nos navegadores;
  • 16. Problemas? Versões de runtimes diferentes == problemas diferentes pra debugar; Ocupam um pouco mais de memória e processador nas máquinas clientes; Nem sempre estão instalados e atualizados nas máquinas clientes; Novas linguagens, IDEs e ferramentas pra integrar ao processo;
  • 17. HTML 5 – RIA sem os plugins Suporte nativo a áudio e vídeo (royalties?) Engines melhores para JavaScript V8 – Chrome Spidermonkey – Firefox IE9 CSS 3; Suporte nativo a SVG para desenhos vetoriais no browser;
  • 18. Problemas? Quando vai ficar pronto? O IE vai implementar tudo certinho? Quando todos os outros IEs vão morrer? E os royalties do H.256? Quando tudo vai funcionar igual em todos os browsers? (Youtube ainda quebra no Chrome)
  • 19. Tendências e linguagens de programação Programação funcional; Programação concorrente; Linguagens híbridas; Profissionais poliglotas; Projetos heterogêneos;
  • 20. Concorrência e o futuro O clock dos processadores não consegue mais evoluir na mesma velocidade; Máquinas com múltiplos cores já fazem parte do dia a dia do usuário final (chips com 6 cores para computadores comuns saem esse ano pela Intel); Aplicações não concorrentes não vão conseguir fazer uso disso e vão continuar eternamente lentas;
  • 21. Problemas de concorrência? Linguagens OO não são boas para programas concorrentes porque costumam direcionar as pessoas a utilizar memórias compartilhadas; Em linguagens puramente funcionais, não existe memória compartilhada; Linguagens que juntam ambos paradigmas são as mais cotadas para o futuro próximo: Scala; Closure;
  • 22. Quando tudo o que você tem é um martelo, todos os problemas vão parecer pregos Profissionais poliglotas e projetos heterogêneos
  • 23. Infraestrutura Bancos de dados? Servidores web? Hosdedagem? Sistemas operacionais? Ambientes de execução?
  • 24. Bancos de dados Bancos relacionais começando a dar sinais de velhice; Movimento NoSQL crescendo e aparecendo em grandes empresas; Várias opções de bancos de dados não-relacionais para resolver problemas do mundo da internet;
  • 25. Problemas? Milhões de usuários produzindo bilhões de dados; Os mesmos usuários estão: Buscando; Alterando; Reajustando; E produzindo; ...ainda mais informação;
  • 26. Bancos de dados relacionais não são escaláveis Repositório central de infomações; Modelos arcaicos de replicação; Modelos arcaicos de conexão e extração de dados; Pouco flexíveis quanto a alteração da estrutura das informações (criar uma nova coluna naquela tabela com milhões de linhas? FUUUUUUU!);
  • 27. Bancos de dados do movimento NoSQL Nascidos na era da internet com um problema definido para resolver; Schema-less ou bem mais flexíveis quanto a alterações nos modelos; Replicação é funcionalidade padrão; Múltiplos servidores, sharding e particionamento/balanceamento são necessidades básicas;
  • 28. Opções? Cassandra Facebook Twitter AmazonSimpleDB Precisa dizer?  MongoDB TheNew York Times Justin.tv CouchDB
  • 29. Servidores web Apache 2 Panela velha é quem faz comida boa né... Lighttpd Leve, seguro e bem comum na web Nginx Direto do gelo da Rússia para o mundo Proxies Pound Varnish HAProxy
  • 30. Cadê os outros? Tomcat? JBoss? IIS? Jetty?
  • 31. Hospedagem Compartilhada (piedade senhor, piedade) VPS - Virtual PrivateServers Cloud real AmazonElastic Compute Cloud Cloud VPS Rackspace
  • 32. Compartilhada O ambiente já está pronto; Você compartilha tudo com várias outras pessoas; Segurança? Acredite em Papai Noel também; Se você precisa de alguma coisa que foge do padrão...
  • 33. VPS – Virtual Private Server Você escolhe o que vai ser instalado; Você configura o ambiente; Você cria contas e instala o que é necessário; Você faz tudo, mas o ambiente não é controlado externamente; Limites em consumo de memória, transferência e uso de processador;
  • 34. Cloud real - 1 O mundo é efêmero, você configura uma imagem inicial do servidor e sobe ele para executar um trabalho; A instância não tem armazenamento estático, o que estiver gravado nela se perde se ela for “desligada” ou sair do ar; É necessário “plugar” serviços de armazenamento as instâncias para manter dados entre a execução delas;
  • 35. Cloud real - 2 Perfeito para serviços “fireandforget”: Cálculos matemáticos longos; Processamento de algoritmos complexos; Quaisquer serviços que vão demorar um tempo razoável mas costumam ter “prazo” para terminar e que dependam de muito poder computacional para serem executados; Hospedagem em um serviço desses não é para os fracos de coração;
  • 36. Cloud VPS É um serviço de cloud que funciona como VPS; Você contrata uma instância em uma VPS e pode aumentar a instância ou crias novas conforme a sua necessidade; Normalmente disponibilizam APIs para acesso e criação de “fazendas de servidores” quando é necessário; Mais fácil de trabalhar quando o interesse é hospedagem;
  • 37. Sistemas operacionais Windows; Linux: RedHat OpenSUSE Madriva Ubuntu Unix-based Solaris HP-UX
  • 38. Ambientes de execução CLR – Máquina Virtual do .Net Mono – Máquina Virtual do .Net multiplataforma Java Virtual Machine – Máquina Virtual Java
  • 39. CLR – CommonLanguageRuntime Ambiente de execução Microsoft para o ambiente .Net; Disponível apenas no Windows; Integração forte com APIs disponíveis do Windows e forma preferida para desenvolvimento de aplicações nessa plataforma;
  • 40. Projeto Mono - .Net Multiplataforma Leva o runtime do .Net para outras plataformas que não Windows; Costuma estar atrasado quando comparado com o CLR da Microsoft; Não implementa alguns pedaços do .Net Framework por questões jurídicas da Microsoft; Nem sempre apresenta o mesmo comportamento do CLR no Windows;
  • 41. JVM – Java Virtual Machine Ambiente de execução comumente relacionado a linguagem de programação Java; Já tem um conjunto longo de linguagens executáveis: Ruby; PHP; Scala; Closure; Python (Jython);
  • 42. Tendências em negócios Aplicações sociais; Aplicações dentro de redes sociais; Jogos em navegadores; SAAS – Software as a Service;
  • 43. O mundo social ainda não morreu Aplicações sociais continuam surgindo, conseguindo público e ganhando dinheiro: http://foursquare.com/ http://justin.tv/ http://twitter.com/ http://shellfari.com/ Novas aplicações focam em nichos específicos; Redes sociais “genéricas” não vão mais chamar a atenção;
  • 44. Aplicações dentro de redes sociais Orkut BuddyPoke; Colheita Feliz; MiniFazenda; JogaCraque; Facebook: MafiaWars; FarmVille;
  • 45. Jogos em navegadores Travian; La Brute; BiteFight; Continua eternamente...
  • 46. Software as a Service - 1 Modelo de negócio para começar a produzir e vender software; Uso do software fica sempre atrelado ao pagamento de uma assinatura mensal ou taxa de uso; O fluxo de caixa se mantém constante enquanto os clientes estão usando/pagando; Economia de escala barateia os preços de assinatura;
  • 47. Software as a service - 2 Aplicações com pouca customização, normalmente são produtos de prateleira que são vendidos de forma diferente; Normalmente na forma de aplicações web (mais difícil de piratear e mais fácil de implantar atualizações); Normalmente voltados a pequenas e médias empresas;
  • 48. Exercício – 30 minutos Juntar-se em grupos; Pensar em um produto SAAS; Definir: Público; Funcionalidades principais; Preços; Como atingir os clientes; Apresentar o produto;